diff --git a/.vite/ssr-manifest.json b/.vite/ssr-manifest.json index 3334e475..8bf364b1 100644 --- a/.vite/ssr-manifest.json +++ b/.vite/ssr-manifest.json @@ -6,7 +6,7 @@ "\u0000vite/modulepreload-polyfill.js": [], "\u0000vite/preload-helper.js": [], "../../../../../../../@vite-plugin-pwa/virtual:pwa-register": [ - "/fast-angle/assets/virtual_pwa-register-CPmTglcK.js" + "/fast-angle/assets/virtual_pwa-register-Dy0udGU2.js" ], "../../node_modules/.pnpm/@intlify+core-base@9.13.1/node_modules/@intlify/core-base/dist/core-base.mjs": [], "../../node_modules/.pnpm/@intlify+message-compiler@9.13.1/node_modules/@intlify/message-compiler/dist/message-compiler.esm-browser.js": [], @@ -20,28 +20,28 @@ "../../node_modules/.pnpm/@vue+runtime-core@3.4.38/node_modules/@vue/runtime-core/dist/runtime-core.esm-bundler.js": [], "../../node_modules/.pnpm/@vue+runtime-dom@3.4.38/node_modules/@vue/runtime-dom/dist/runtime-dom.esm-bundler.js": [], "../../node_modules/.pnpm/@vue+shared@3.4.38/node_modules/@vue/shared/dist/shared.esm-bundler.js": [], - "../../node_modules/.pnpm/@vueuse+core@10.11.1_vue@3.4.38_typescript@5.5.4_/node_modules/@vueuse/core/index.mjs": [], + "../../node_modules/.pnpm/@vueuse+core@11.0.3_vue@3.4.38_typescript@5.5.4_/node_modules/@vueuse/core/index.mjs": [], "../../node_modules/.pnpm/@vueuse+gesture@2.0.0_vue@3.4.38_typescript@5.5.4_/node_modules/@vueuse/gesture/dist/index.mjs": [ - "/fast-angle/assets/index-CTXHhIZ7.js", - "/fast-angle/assets/index-CV-JKKpt.css" + "/fast-angle/assets/index-sKdwiapj.js", + "/fast-angle/assets/index-BnNlN_Ib.css" ], - "../../node_modules/.pnpm/@vueuse+integrations@10.11.1_focus-trap@7.5.4_vue@3.4.38_typescript@5.5.4_/node_modules/@vueuse/integrations/useFocusTrap/component.mjs": [ - "/fast-angle/assets/index-CTXHhIZ7.js", - "/fast-angle/assets/index-CV-JKKpt.css" + "../../node_modules/.pnpm/@vueuse+integrations@11.0.3_focus-trap@7.5.4_vue@3.4.38_typescript@5.5.4_/node_modules/@vueuse/integrations/useFocusTrap/component.mjs": [ + "/fast-angle/assets/index-sKdwiapj.js", + "/fast-angle/assets/index-BnNlN_Ib.css" ], - "../../node_modules/.pnpm/@vueuse+shared@10.11.1_vue@3.4.38_typescript@5.5.4_/node_modules/@vueuse/shared/index.mjs": [], + "../../node_modules/.pnpm/@vueuse+shared@11.0.3_vue@3.4.38_typescript@5.5.4_/node_modules/@vueuse/shared/index.mjs": [], "../../node_modules/.pnpm/color-hash@2.0.2/node_modules/color-hash/dist/esm.js": [ - "/fast-angle/assets/index-CTXHhIZ7.js", - "/fast-angle/assets/index-CV-JKKpt.css" + "/fast-angle/assets/index-sKdwiapj.js", + "/fast-angle/assets/index-BnNlN_Ib.css" ], "../../node_modules/.pnpm/focus-trap@7.5.4/node_modules/focus-trap/dist/focus-trap.esm.js": [ - "/fast-angle/assets/index-CTXHhIZ7.js", - "/fast-angle/assets/index-CV-JKKpt.css" + "/fast-angle/assets/index-sKdwiapj.js", + "/fast-angle/assets/index-BnNlN_Ib.css" ], "../../node_modules/.pnpm/hookable@5.5.3/node_modules/hookable/dist/index.mjs": [], "../../node_modules/.pnpm/tabbable@6.2.0/node_modules/tabbable/dist/index.esm.js": [ - "/fast-angle/assets/index-CTXHhIZ7.js", - "/fast-angle/assets/index-CV-JKKpt.css" + "/fast-angle/assets/index-sKdwiapj.js", + "/fast-angle/assets/index-BnNlN_Ib.css" ], "../../node_modules/.pnpm/unhead@1.9.12/node_modules/unhead/dist/index.mjs": [], "../../node_modules/.pnpm/unhead@1.9.15/node_modules/unhead/dist/index.mjs": [], @@ -59,285 +59,285 @@ "locales/pl.yml": [], "src/App.vue?vue&type=script&setup=true&lang.ts": [], "src/components/Board.vue": [ - "/fast-angle/assets/index-CTXHhIZ7.js", - "/fast-angle/assets/index-CV-JKKpt.css" + "/fast-angle/assets/index-sKdwiapj.js", + "/fast-angle/assets/index-BnNlN_Ib.css" ], "src/components/Board.vue?vue&type=script&setup=true&lang.ts": [ - "/fast-angle/assets/index-CTXHhIZ7.js", - "/fast-angle/assets/index-CV-JKKpt.css" + "/fast-angle/assets/index-sKdwiapj.js", + "/fast-angle/assets/index-BnNlN_Ib.css" ], "src/components/Board.vue?vue&type=style&index=0&lang.module.scss": [ - "/fast-angle/assets/index-CTXHhIZ7.js", - "/fast-angle/assets/index-CV-JKKpt.css" + "/fast-angle/assets/index-sKdwiapj.js", + "/fast-angle/assets/index-BnNlN_Ib.css" ], "src/components/BoardControls.vue": [ - "/fast-angle/assets/index-CTXHhIZ7.js", - "/fast-angle/assets/index-CV-JKKpt.css" + "/fast-angle/assets/index-sKdwiapj.js", + "/fast-angle/assets/index-BnNlN_Ib.css" ], "src/components/BoardControls.vue?vue&type=script&setup=true&lang.ts": [ - "/fast-angle/assets/index-CTXHhIZ7.js", - "/fast-angle/assets/index-CV-JKKpt.css" + "/fast-angle/assets/index-sKdwiapj.js", + "/fast-angle/assets/index-BnNlN_Ib.css" ], "src/components/BoardControls.vue?vue&type=style&index=0&lang.module.scss": [ - "/fast-angle/assets/index-CTXHhIZ7.js", - "/fast-angle/assets/index-CV-JKKpt.css" + "/fast-angle/assets/index-sKdwiapj.js", + "/fast-angle/assets/index-BnNlN_Ib.css" ], "src/components/BoardControlsSvgDownload.vue": [ - "/fast-angle/assets/index-CTXHhIZ7.js", - "/fast-angle/assets/index-CV-JKKpt.css" + "/fast-angle/assets/index-sKdwiapj.js", + "/fast-angle/assets/index-BnNlN_Ib.css" ], "src/components/BoardControlsSvgDownload.vue?vue&type=script&setup=true&lang.ts": [ - "/fast-angle/assets/index-CTXHhIZ7.js", - "/fast-angle/assets/index-CV-JKKpt.css" + "/fast-angle/assets/index-sKdwiapj.js", + "/fast-angle/assets/index-BnNlN_Ib.css" ], "src/components/BoardControlsSvgDownload.vue?vue&type=style&index=0&lang.module.scss": [ - "/fast-angle/assets/index-CTXHhIZ7.js", - "/fast-angle/assets/index-CV-JKKpt.css" + "/fast-angle/assets/index-sKdwiapj.js", + "/fast-angle/assets/index-BnNlN_Ib.css" ], "src/components/BoardControlsSvgDownloadModalContent.vue": [ - "/fast-angle/assets/index-CTXHhIZ7.js", - "/fast-angle/assets/index-CV-JKKpt.css" + "/fast-angle/assets/index-sKdwiapj.js", + "/fast-angle/assets/index-BnNlN_Ib.css" ], "src/components/BoardControlsSvgDownloadModalContent.vue?vue&type=script&setup=true&lang.ts": [ - "/fast-angle/assets/index-CTXHhIZ7.js", - "/fast-angle/assets/index-CV-JKKpt.css" + "/fast-angle/assets/index-sKdwiapj.js", + "/fast-angle/assets/index-BnNlN_Ib.css" ], "src/components/BoardControlsSvgDownloadModalContent.vue?vue&type=style&index=0&lang.module.scss": [ - "/fast-angle/assets/index-CTXHhIZ7.js", - "/fast-angle/assets/index-CV-JKKpt.css" + "/fast-angle/assets/index-sKdwiapj.js", + "/fast-angle/assets/index-BnNlN_Ib.css" ], "src/components/BoardControlsSvgHelp.vue": [ - "/fast-angle/assets/index-CTXHhIZ7.js", - "/fast-angle/assets/index-CV-JKKpt.css" + "/fast-angle/assets/index-sKdwiapj.js", + "/fast-angle/assets/index-BnNlN_Ib.css" ], "src/components/BoardControlsSvgHelp.vue?vue&type=script&setup=true&lang.ts": [ - "/fast-angle/assets/index-CTXHhIZ7.js", - "/fast-angle/assets/index-CV-JKKpt.css" + "/fast-angle/assets/index-sKdwiapj.js", + "/fast-angle/assets/index-BnNlN_Ib.css" ], "src/components/BoardControlsSvgHelp.vue?vue&type=style&index=0&lang.module.scss": [ - "/fast-angle/assets/index-CTXHhIZ7.js", - "/fast-angle/assets/index-CV-JKKpt.css" + "/fast-angle/assets/index-sKdwiapj.js", + "/fast-angle/assets/index-BnNlN_Ib.css" ], "src/components/BoardResult.vue": [ - "/fast-angle/assets/index-CTXHhIZ7.js", - "/fast-angle/assets/index-CV-JKKpt.css" + "/fast-angle/assets/index-sKdwiapj.js", + "/fast-angle/assets/index-BnNlN_Ib.css" ], "src/components/BoardResult.vue?vue&type=script&setup=true&lang.ts": [ - "/fast-angle/assets/index-CTXHhIZ7.js", - "/fast-angle/assets/index-CV-JKKpt.css" + "/fast-angle/assets/index-sKdwiapj.js", + "/fast-angle/assets/index-BnNlN_Ib.css" ], "src/components/BoardResult.vue?vue&type=style&index=0&lang.module.scss": [ - "/fast-angle/assets/index-CTXHhIZ7.js", - "/fast-angle/assets/index-CV-JKKpt.css" + "/fast-angle/assets/index-sKdwiapj.js", + "/fast-angle/assets/index-BnNlN_Ib.css" ], "src/components/BoardSummaryItem.vue": [ - "/fast-angle/assets/index-CTXHhIZ7.js", - "/fast-angle/assets/index-CV-JKKpt.css" + "/fast-angle/assets/index-sKdwiapj.js", + "/fast-angle/assets/index-BnNlN_Ib.css" ], "src/components/BoardSummaryItem.vue?vue&type=script&setup=true&lang.ts": [ - "/fast-angle/assets/index-CTXHhIZ7.js", - "/fast-angle/assets/index-CV-JKKpt.css" + "/fast-angle/assets/index-sKdwiapj.js", + "/fast-angle/assets/index-BnNlN_Ib.css" ], "src/components/BoardSummaryItem.vue?vue&type=style&index=0&lang.module.scss": [ - "/fast-angle/assets/index-CTXHhIZ7.js", - "/fast-angle/assets/index-CV-JKKpt.css" + "/fast-angle/assets/index-sKdwiapj.js", + "/fast-angle/assets/index-BnNlN_Ib.css" ], "src/components/BoardSvg.vue?vue&type=script&setup=true&lang.ts": [ - "/fast-angle/assets/index-CTXHhIZ7.js", - "/fast-angle/assets/index-CV-JKKpt.css" + "/fast-angle/assets/index-sKdwiapj.js", + "/fast-angle/assets/index-BnNlN_Ib.css" ], "src/components/Button.vue": [ - "/fast-angle/assets/Button-DRMNlNP8.js", + "/fast-angle/assets/Button-qlJbhzlo.js", "/fast-angle/assets/Button-XV6Wby9K.css" ], "src/components/Button.vue?vue&type=script&setup=true&lang.ts": [ - "/fast-angle/assets/Button-DRMNlNP8.js", + "/fast-angle/assets/Button-qlJbhzlo.js", "/fast-angle/assets/Button-XV6Wby9K.css" ], "src/components/Button.vue?vue&type=style&index=0&lang.module.scss": [ - "/fast-angle/assets/Button-DRMNlNP8.js", + "/fast-angle/assets/Button-qlJbhzlo.js", "/fast-angle/assets/Button-XV6Wby9K.css" ], "src/components/Footer.vue": [ - "/fast-angle/assets/default-BD_Mt-QL.js", - "/fast-angle/assets/default-Fqk_4fJ1.css" + "/fast-angle/assets/default-C3FHDxIb.js", + "/fast-angle/assets/default-D9dwkEVE.css" ], "src/components/Footer.vue?vue&type=script&setup=true&lang.ts": [ - "/fast-angle/assets/default-BD_Mt-QL.js", - "/fast-angle/assets/default-Fqk_4fJ1.css" + "/fast-angle/assets/default-C3FHDxIb.js", + "/fast-angle/assets/default-D9dwkEVE.css" ], "src/components/Footer.vue?vue&type=style&index=0&lang.module.scss": [ - "/fast-angle/assets/default-BD_Mt-QL.js", - "/fast-angle/assets/default-Fqk_4fJ1.css" + "/fast-angle/assets/default-C3FHDxIb.js", + "/fast-angle/assets/default-D9dwkEVE.css" ], "src/components/Header.vue": [ - "/fast-angle/assets/default-BD_Mt-QL.js", - "/fast-angle/assets/default-Fqk_4fJ1.css" + "/fast-angle/assets/default-C3FHDxIb.js", + "/fast-angle/assets/default-D9dwkEVE.css" ], "src/components/Header.vue?vue&type=script&setup=true&lang.ts": [ - "/fast-angle/assets/default-BD_Mt-QL.js", - "/fast-angle/assets/default-Fqk_4fJ1.css" + "/fast-angle/assets/default-C3FHDxIb.js", + "/fast-angle/assets/default-D9dwkEVE.css" ], "src/components/Header.vue?vue&type=style&index=0&lang.module.scss": [ - "/fast-angle/assets/default-BD_Mt-QL.js", - "/fast-angle/assets/default-Fqk_4fJ1.css" + "/fast-angle/assets/default-C3FHDxIb.js", + "/fast-angle/assets/default-D9dwkEVE.css" ], "src/components/Line.vue?vue&type=script&setup=true&lang.ts": [ - "/fast-angle/assets/index-CTXHhIZ7.js", - "/fast-angle/assets/index-CV-JKKpt.css" + "/fast-angle/assets/index-sKdwiapj.js", + "/fast-angle/assets/index-BnNlN_Ib.css" ], "src/components/Modal.vue": [ - "/fast-angle/assets/index-CTXHhIZ7.js", - "/fast-angle/assets/index-CV-JKKpt.css" + "/fast-angle/assets/index-sKdwiapj.js", + "/fast-angle/assets/index-BnNlN_Ib.css" ], "src/components/Modal.vue?vue&type=script&setup=true&lang.ts": [ - "/fast-angle/assets/index-CTXHhIZ7.js", - "/fast-angle/assets/index-CV-JKKpt.css" + "/fast-angle/assets/index-sKdwiapj.js", + "/fast-angle/assets/index-BnNlN_Ib.css" ], "src/components/Modal.vue?vue&type=style&index=0&lang.module.scss": [ - "/fast-angle/assets/index-CTXHhIZ7.js", - "/fast-angle/assets/index-CV-JKKpt.css" + "/fast-angle/assets/index-sKdwiapj.js", + "/fast-angle/assets/index-BnNlN_Ib.css" ], "src/components/Segment.vue?vue&type=script&setup=true&lang.ts": [ - "/fast-angle/assets/index-CTXHhIZ7.js", - "/fast-angle/assets/index-CV-JKKpt.css" + "/fast-angle/assets/index-sKdwiapj.js", + "/fast-angle/assets/index-BnNlN_Ib.css" ], "src/composables/basePath.ts": [], "src/composables/breakpoints.ts": [ - "/fast-angle/assets/index-CTXHhIZ7.js", - "/fast-angle/assets/index-CV-JKKpt.css" + "/fast-angle/assets/index-sKdwiapj.js", + "/fast-angle/assets/index-BnNlN_Ib.css" ], "src/composables/dark.ts": [], "src/composables/favicon.ts": [], "src/composables/host.ts": [], "src/composables/locale.ts": [], "src/composables/useAngle.ts": [ - "/fast-angle/assets/index-CTXHhIZ7.js", - "/fast-angle/assets/index-CV-JKKpt.css" + "/fast-angle/assets/index-sKdwiapj.js", + "/fast-angle/assets/index-BnNlN_Ib.css" ], "src/composables/useAnglesBisectors.ts": [ - "/fast-angle/assets/index-CTXHhIZ7.js", - "/fast-angle/assets/index-CV-JKKpt.css" + "/fast-angle/assets/index-sKdwiapj.js", + "/fast-angle/assets/index-BnNlN_Ib.css" ], "src/composables/useAnglesLabels.ts": [ - "/fast-angle/assets/index-CTXHhIZ7.js", - "/fast-angle/assets/index-CV-JKKpt.css" + "/fast-angle/assets/index-sKdwiapj.js", + "/fast-angle/assets/index-BnNlN_Ib.css" ], "src/composables/useBoardImage.ts": [ - "/fast-angle/assets/index-CTXHhIZ7.js", - "/fast-angle/assets/index-CV-JKKpt.css" + "/fast-angle/assets/index-sKdwiapj.js", + "/fast-angle/assets/index-BnNlN_Ib.css" ], "src/composables/useBoardRef.ts": [ - "/fast-angle/assets/index-CTXHhIZ7.js", - "/fast-angle/assets/index-CV-JKKpt.css" + "/fast-angle/assets/index-sKdwiapj.js", + "/fast-angle/assets/index-BnNlN_Ib.css" ], "src/composables/useBoardSvgDownload.ts": [ - "/fast-angle/assets/index-CTXHhIZ7.js", - "/fast-angle/assets/index-CV-JKKpt.css" + "/fast-angle/assets/index-sKdwiapj.js", + "/fast-angle/assets/index-BnNlN_Ib.css" ], "src/composables/useBoardSvgPanzoom.ts": [ - "/fast-angle/assets/index-CTXHhIZ7.js", - "/fast-angle/assets/index-CV-JKKpt.css" + "/fast-angle/assets/index-sKdwiapj.js", + "/fast-angle/assets/index-BnNlN_Ib.css" ], "src/composables/useBoardSvgRef.ts": [ - "/fast-angle/assets/index-CTXHhIZ7.js", - "/fast-angle/assets/index-CV-JKKpt.css" + "/fast-angle/assets/index-sKdwiapj.js", + "/fast-angle/assets/index-BnNlN_Ib.css" ], "src/composables/useColor.ts": [ - "/fast-angle/assets/index-CTXHhIZ7.js", - "/fast-angle/assets/index-CV-JKKpt.css" + "/fast-angle/assets/index-sKdwiapj.js", + "/fast-angle/assets/index-BnNlN_Ib.css" ], "src/composables/useLine.ts": [ - "/fast-angle/assets/index-CTXHhIZ7.js", - "/fast-angle/assets/index-CV-JKKpt.css" + "/fast-angle/assets/index-sKdwiapj.js", + "/fast-angle/assets/index-BnNlN_Ib.css" ], "src/composables/useLinearFnVariables.ts": [ - "/fast-angle/assets/index-CTXHhIZ7.js", - "/fast-angle/assets/index-CV-JKKpt.css" + "/fast-angle/assets/index-sKdwiapj.js", + "/fast-angle/assets/index-BnNlN_Ib.css" ], "src/composables/useLines.ts": [ - "/fast-angle/assets/index-CTXHhIZ7.js", - "/fast-angle/assets/index-CV-JKKpt.css" + "/fast-angle/assets/index-sKdwiapj.js", + "/fast-angle/assets/index-BnNlN_Ib.css" ], "src/composables/useLinesIntersectionPosition.ts": [ - "/fast-angle/assets/index-CTXHhIZ7.js", - "/fast-angle/assets/index-CV-JKKpt.css" + "/fast-angle/assets/index-sKdwiapj.js", + "/fast-angle/assets/index-BnNlN_Ib.css" ], "src/composables/useOutOfBoundLabels.ts": [ - "/fast-angle/assets/index-CTXHhIZ7.js", - "/fast-angle/assets/index-CV-JKKpt.css" + "/fast-angle/assets/index-sKdwiapj.js", + "/fast-angle/assets/index-BnNlN_Ib.css" ], "src/composables/usePanzoom.ts": [ - "/fast-angle/assets/index-CTXHhIZ7.js", - "/fast-angle/assets/index-CV-JKKpt.css" + "/fast-angle/assets/index-sKdwiapj.js", + "/fast-angle/assets/index-BnNlN_Ib.css" ], "src/composables/usePixelToUnit.ts": [ - "/fast-angle/assets/index-CTXHhIZ7.js", - "/fast-angle/assets/index-CV-JKKpt.css" + "/fast-angle/assets/index-sKdwiapj.js", + "/fast-angle/assets/index-BnNlN_Ib.css" ], "src/composables/useUriLocale.ts": [ - "/fast-angle/assets/useUriLocale-DXOt3j7T.js" + "/fast-angle/assets/useUriLocale-URN521cf.js" ], "src/layouts/centered.vue": [ - "/fast-angle/assets/centered-D9JAbCqt.js", + "/fast-angle/assets/centered-CFGCZuHh.js", "/fast-angle/assets/centered-CsPDCAwg.css" ], "src/layouts/centered.vue?vue&type=script&setup=true&lang.ts": [ - "/fast-angle/assets/centered-D9JAbCqt.js", + "/fast-angle/assets/centered-CFGCZuHh.js", "/fast-angle/assets/centered-CsPDCAwg.css" ], "src/layouts/centered.vue?vue&type=style&index=0&lang.module.scss": [ - "/fast-angle/assets/centered-D9JAbCqt.js", + "/fast-angle/assets/centered-CFGCZuHh.js", "/fast-angle/assets/centered-CsPDCAwg.css" ], "src/layouts/default.vue": [ - "/fast-angle/assets/default-BD_Mt-QL.js", - "/fast-angle/assets/default-Fqk_4fJ1.css" + "/fast-angle/assets/default-C3FHDxIb.js", + "/fast-angle/assets/default-D9dwkEVE.css" ], "src/layouts/default.vue?vue&type=script&setup=true&lang.ts": [ - "/fast-angle/assets/default-BD_Mt-QL.js", - "/fast-angle/assets/default-Fqk_4fJ1.css" + "/fast-angle/assets/default-C3FHDxIb.js", + "/fast-angle/assets/default-D9dwkEVE.css" ], "src/layouts/default.vue?vue&type=style&index=0&lang.module.scss": [ - "/fast-angle/assets/default-BD_Mt-QL.js", - "/fast-angle/assets/default-Fqk_4fJ1.css" + "/fast-angle/assets/default-C3FHDxIb.js", + "/fast-angle/assets/default-D9dwkEVE.css" ], "src/main.ts": [], "src/modules/i18n.ts": [], "src/modules/pwa.ts": [], "src/modules/virtual-keyboard.ts": [], "src/pages/[...all].vue": [ - "/fast-angle/assets/_...all_-DUmKXp0R.js" + "/fast-angle/assets/_...all_-CLOivLzp.js" ], "src/pages/[...all].vue?vue&type=script&setup=true&lang.ts": [ - "/fast-angle/assets/_...all_-DUmKXp0R.js" + "/fast-angle/assets/_...all_-CLOivLzp.js" ], "src/pages/[lang]/index.vue": [ - "/fast-angle/assets/index-CTXHhIZ7.js", - "/fast-angle/assets/index-CV-JKKpt.css" + "/fast-angle/assets/index-sKdwiapj.js", + "/fast-angle/assets/index-BnNlN_Ib.css" ], "src/pages/[lang]/privacy-policy.vue": [ - "/fast-angle/assets/privacy-policy-BdEgNBDr.js", + "/fast-angle/assets/privacy-policy-C6r_wkKn.js", "/fast-angle/assets/privacy-policy-B_SJY2k1.css" ], "src/pages/[lang]/privacy-policy.vue?vue&type=script&setup=true&lang.ts": [ - "/fast-angle/assets/privacy-policy-BdEgNBDr.js", + "/fast-angle/assets/privacy-policy-C6r_wkKn.js", "/fast-angle/assets/privacy-policy-B_SJY2k1.css" ], "src/pages/[lang]/privacy-policy.vue?vue&type=style&index=0&lang.module.scss": [ - "/fast-angle/assets/privacy-policy-BdEgNBDr.js", + "/fast-angle/assets/privacy-policy-C6r_wkKn.js", "/fast-angle/assets/privacy-policy-B_SJY2k1.css" ], "src/pages/[lang]/terms.vue": [ - "/fast-angle/assets/terms-CRRkJi5O.js", + "/fast-angle/assets/terms-Dytl1uwk.js", "/fast-angle/assets/terms-dhC8jLtc.css" ], "src/pages/[lang]/terms.vue?vue&type=script&setup=true&lang.ts": [ - "/fast-angle/assets/terms-CRRkJi5O.js", + "/fast-angle/assets/terms-Dytl1uwk.js", "/fast-angle/assets/terms-dhC8jLtc.css" ], "src/pages/[lang]/terms.vue?vue&type=style&index=0&lang.module.scss": [ - "/fast-angle/assets/terms-CRRkJi5O.js", + "/fast-angle/assets/terms-Dytl1uwk.js", "/fast-angle/assets/terms-dhC8jLtc.css" ], "src/pages/index.vue": [], @@ -346,91 +346,91 @@ "virtual:vite-plugin-pages/generated-pages?id=~pages": [], "virtual:vite-plugin-pages/route-block": [], "~icons/carbon/angle": [ - "/fast-angle/assets/index-CTXHhIZ7.js", - "/fast-angle/assets/index-CV-JKKpt.css" + "/fast-angle/assets/index-sKdwiapj.js", + "/fast-angle/assets/index-BnNlN_Ib.css" ], "~icons/carbon/checkmark": [ - "/fast-angle/assets/index-CTXHhIZ7.js", - "/fast-angle/assets/index-CV-JKKpt.css" + "/fast-angle/assets/index-sKdwiapj.js", + "/fast-angle/assets/index-BnNlN_Ib.css" ], "~icons/carbon/copy": [ - "/fast-angle/assets/index-CTXHhIZ7.js", - "/fast-angle/assets/index-CV-JKKpt.css" + "/fast-angle/assets/index-sKdwiapj.js", + "/fast-angle/assets/index-BnNlN_Ib.css" ], "~icons/carbon/download": [ - "/fast-angle/assets/index-CTXHhIZ7.js", - "/fast-angle/assets/index-CV-JKKpt.css" + "/fast-angle/assets/index-sKdwiapj.js", + "/fast-angle/assets/index-BnNlN_Ib.css" ], "~icons/carbon/favorite-filled": [ - "/fast-angle/assets/index-CTXHhIZ7.js", - "/fast-angle/assets/index-CV-JKKpt.css" + "/fast-angle/assets/index-sKdwiapj.js", + "/fast-angle/assets/index-BnNlN_Ib.css" ], "~icons/carbon/help": [ - "/fast-angle/assets/index-CTXHhIZ7.js", - "/fast-angle/assets/index-CV-JKKpt.css" + "/fast-angle/assets/index-sKdwiapj.js", + "/fast-angle/assets/index-BnNlN_Ib.css" ], "~icons/carbon/image-reference": [ - "/fast-angle/assets/index-CTXHhIZ7.js", - "/fast-angle/assets/index-CV-JKKpt.css" + "/fast-angle/assets/index-sKdwiapj.js", + "/fast-angle/assets/index-BnNlN_Ib.css" ], "~icons/carbon/language": [ - "/fast-angle/assets/default-BD_Mt-QL.js", - "/fast-angle/assets/default-Fqk_4fJ1.css" + "/fast-angle/assets/default-C3FHDxIb.js", + "/fast-angle/assets/default-D9dwkEVE.css" ], "~icons/carbon/locked": [ - "/fast-angle/assets/index-CTXHhIZ7.js", - "/fast-angle/assets/index-CV-JKKpt.css" + "/fast-angle/assets/index-sKdwiapj.js", + "/fast-angle/assets/index-BnNlN_Ib.css" ], "~icons/carbon/logo-github": [ - "/fast-angle/assets/Button-DRMNlNP8.js", + "/fast-angle/assets/Button-qlJbhzlo.js", "/fast-angle/assets/Button-XV6Wby9K.css" ], "~icons/carbon/maximize": [ - "/fast-angle/assets/index-CTXHhIZ7.js", - "/fast-angle/assets/index-CV-JKKpt.css" + "/fast-angle/assets/index-sKdwiapj.js", + "/fast-angle/assets/index-BnNlN_Ib.css" ], "~icons/carbon/minimize": [ - "/fast-angle/assets/index-CTXHhIZ7.js", - "/fast-angle/assets/index-CV-JKKpt.css" + "/fast-angle/assets/index-sKdwiapj.js", + "/fast-angle/assets/index-BnNlN_Ib.css" ], "~icons/carbon/moon": [ - "/fast-angle/assets/default-BD_Mt-QL.js", - "/fast-angle/assets/default-Fqk_4fJ1.css" + "/fast-angle/assets/default-C3FHDxIb.js", + "/fast-angle/assets/default-D9dwkEVE.css" ], "~icons/carbon/redo": [ - "/fast-angle/assets/index-CTXHhIZ7.js", - "/fast-angle/assets/index-CV-JKKpt.css" + "/fast-angle/assets/index-sKdwiapj.js", + "/fast-angle/assets/index-BnNlN_Ib.css" ], "~icons/carbon/sun": [ - "/fast-angle/assets/default-BD_Mt-QL.js", - "/fast-angle/assets/default-Fqk_4fJ1.css" + "/fast-angle/assets/default-C3FHDxIb.js", + "/fast-angle/assets/default-D9dwkEVE.css" ], "~icons/carbon/undo": [ - "/fast-angle/assets/index-CTXHhIZ7.js", - "/fast-angle/assets/index-CV-JKKpt.css" + "/fast-angle/assets/index-sKdwiapj.js", + "/fast-angle/assets/index-BnNlN_Ib.css" ], "~icons/carbon/unlocked": [ - "/fast-angle/assets/index-CTXHhIZ7.js", - "/fast-angle/assets/index-CV-JKKpt.css" + "/fast-angle/assets/index-sKdwiapj.js", + "/fast-angle/assets/index-BnNlN_Ib.css" ], "~icons/carbon/zoom-in": [ - "/fast-angle/assets/index-CTXHhIZ7.js", - "/fast-angle/assets/index-CV-JKKpt.css" + "/fast-angle/assets/index-sKdwiapj.js", + "/fast-angle/assets/index-BnNlN_Ib.css" ], "~icons/carbon/zoom-in-area": [ - "/fast-angle/assets/index-CTXHhIZ7.js", - "/fast-angle/assets/index-CV-JKKpt.css" + "/fast-angle/assets/index-sKdwiapj.js", + "/fast-angle/assets/index-BnNlN_Ib.css" ], "~icons/carbon/zoom-out": [ - "/fast-angle/assets/index-CTXHhIZ7.js", - "/fast-angle/assets/index-CV-JKKpt.css" + "/fast-angle/assets/index-sKdwiapj.js", + "/fast-angle/assets/index-BnNlN_Ib.css" ], "~icons/carbon/zoom-out-area": [ - "/fast-angle/assets/index-CTXHhIZ7.js", - "/fast-angle/assets/index-CV-JKKpt.css" + "/fast-angle/assets/index-sKdwiapj.js", + "/fast-angle/assets/index-BnNlN_Ib.css" ], "~icons/custom/angle-obtuse": [ - "/fast-angle/assets/index-CTXHhIZ7.js", - "/fast-angle/assets/index-CV-JKKpt.css" + "/fast-angle/assets/index-sKdwiapj.js", + "/fast-angle/assets/index-BnNlN_Ib.css" ] } \ No newline at end of file diff --git a/404.html b/404.html index 6dfc0286..6e4631b5 100644 --- a/404.html +++ b/404.html @@ -1 +1 @@ -Fast angle

Fast Angle logo Fast angle

Simple online protractor - measure any angle directly on your image!

Page not found

Page accessed under the address: "/404" was not found. If you believe this is an error, click here to file an issue.

Otherwise, you can go back to the main page by clicking here.

\ No newline at end of file +Fast angle

Fast Angle logo Fast angle

Simple online protractor - measure any angle directly on your image!

Page not found

Page accessed under the address: "/404" was not found. If you believe this is an error, click here to file an issue.

Otherwise, you can go back to the main page by clicking here.

\ No newline at end of file diff --git a/assets/Button-DRMNlNP8.js b/assets/Button-qlJbhzlo.js similarity index 90% rename from assets/Button-DRMNlNP8.js rename to assets/Button-qlJbhzlo.js index 93557cf0..480bdcd2 100644 --- a/assets/Button-DRMNlNP8.js +++ b/assets/Button-qlJbhzlo.js @@ -1 +1 @@ -import{m as l,o,e as a,a as s,d as n,D as c,n as i}from"./app-C_A3Ikqc.js";import{_ as r}from"./_plugin-vue_export-helper-DlAUqK2U.js";const d={viewBox:"0 0 32 32",width:"1.2em",height:"1.2em"},m=s("path",{fill:"currentColor","fill-rule":"evenodd",d:"M16 2a14 14 0 0 0-4.43 27.28c.7.13 1-.3 1-.67v-2.38c-3.89.84-4.71-1.88-4.71-1.88a3.7 3.7 0 0 0-1.62-2.05c-1.27-.86.1-.85.1-.85a2.94 2.94 0 0 1 2.14 1.45a3 3 0 0 0 4.08 1.16a2.93 2.93 0 0 1 .88-1.87c-3.1-.36-6.37-1.56-6.37-6.92a5.4 5.4 0 0 1 1.44-3.76a5 5 0 0 1 .14-3.7s1.17-.38 3.85 1.43a13.3 13.3 0 0 1 7 0c2.67-1.81 3.84-1.43 3.84-1.43a5 5 0 0 1 .14 3.7a5.4 5.4 0 0 1 1.44 3.76c0 5.38-3.27 6.56-6.39 6.91a3.33 3.33 0 0 1 .95 2.59v3.84c0 .46.25.81 1 .67A14 14 0 0 0 16 2"},null,-1),u=[m];function p(t,e){return o(),a("svg",d,[...u])}const S=l({name:"carbon-logo-github",render:p}),_=["aria-label","data-tooltip","data-placement"],f=n({__name:"Button",props:{tooltip:{type:String,default:void 0},tooltipPlacement:{type:String,default:void 0},size:{type:String,default:void 0}},setup(t){return(e,b)=>(o(),a("button",{type:"button",role:"button",class:i(["vertical-middle",{[e.$style.small]:t.size==="small"}]),"aria-label":t.tooltip,"data-tooltip":t.tooltip,"data-placement":t.tooltipPlacement},[c(e.$slots,"default")],10,_))}}),h="f_3",g={small:h},v={$style:g},$=r(f,[["__cssModules",v]]);export{S as I,$ as _}; +import{m as l,o,e as a,a as s,d as n,D as c,n as i}from"./app-DT9tPyzn.js";import{_ as r}from"./_plugin-vue_export-helper-DlAUqK2U.js";const d={viewBox:"0 0 32 32",width:"1.2em",height:"1.2em"},m=s("path",{fill:"currentColor","fill-rule":"evenodd",d:"M16 2a14 14 0 0 0-4.43 27.28c.7.13 1-.3 1-.67v-2.38c-3.89.84-4.71-1.88-4.71-1.88a3.7 3.7 0 0 0-1.62-2.05c-1.27-.86.1-.85.1-.85a2.94 2.94 0 0 1 2.14 1.45a3 3 0 0 0 4.08 1.16a2.93 2.93 0 0 1 .88-1.87c-3.1-.36-6.37-1.56-6.37-6.92a5.4 5.4 0 0 1 1.44-3.76a5 5 0 0 1 .14-3.7s1.17-.38 3.85 1.43a13.3 13.3 0 0 1 7 0c2.67-1.81 3.84-1.43 3.84-1.43a5 5 0 0 1 .14 3.7a5.4 5.4 0 0 1 1.44 3.76c0 5.38-3.27 6.56-6.39 6.91a3.33 3.33 0 0 1 .95 2.59v3.84c0 .46.25.81 1 .67A14 14 0 0 0 16 2"},null,-1),u=[m];function p(t,e){return o(),a("svg",d,[...u])}const S=l({name:"carbon-logo-github",render:p}),_=["aria-label","data-tooltip","data-placement"],f=n({__name:"Button",props:{tooltip:{type:String,default:void 0},tooltipPlacement:{type:String,default:void 0},size:{type:String,default:void 0}},setup(t){return(e,b)=>(o(),a("button",{type:"button",role:"button",class:i(["vertical-middle",{[e.$style.small]:t.size==="small"}]),"aria-label":t.tooltip,"data-tooltip":t.tooltip,"data-placement":t.tooltipPlacement},[c(e.$slots,"default")],10,_))}}),h="f_3",g={small:h},v={$style:g},$=r(f,[["__cssModules",v]]);export{S as I,$ as _}; diff --git a/assets/_...all_-DUmKXp0R.js b/assets/_...all_-CLOivLzp.js similarity index 86% rename from assets/_...all_-DUmKXp0R.js rename to assets/_...all_-CLOivLzp.js index 67adee0d..21a1e0ec 100644 --- a/assets/_...all_-DUmKXp0R.js +++ b/assets/_...all_-CLOivLzp.js @@ -1 +1 @@ -import{d as b,u as k,G as x,i as s,B as g,r,o as c,e as l,a as n,t as e,g as t,b as u,w as i,f as _,E as R,H as p}from"./app-C_A3Ikqc.js";import{u as L}from"./useUriLocale-DXOt3j7T.js";const v=["textContent"],y=["textContent"],B={key:0},N=b({__name:"[...all]",setup(V){const{t:o}=k(),d=x(),f=L(),a=s(()=>g(f.value)),m=s(()=>d.fullPath);return(E,U)=>{const h=r("i18n-t"),C=r("RouterLink");return c(),l("div",null,[n("h1",{textContent:e(t(o)("404.title"))},null,8,v),n("p",null,[u(h,{keypath:"404.description"},{url:i(()=>[n("i",null,e(t(m)),1)]),_:1}),n("a",{rel:"noreferrer",href:"https://github.com/FRSOURCE/fast-angle",target:"_blank",textContent:e(t(o)("404.file_issue_button"))},null,8,y)]),t(a)?(c(),l("p",B,[_(e(t(o)("404.redirect_button_description"))+" ",1),u(C,{to:{name:`lang-${t(a)}`}},{default:i(()=>[_(e(t(o)("404.redirect_button")),1)]),_:1},8,["to"])])):R("",!0)])}}});typeof p=="function"&&p(N);export{N as default}; +import{d as b,u as k,G as x,i as s,B as g,r,o as c,e as l,a as n,t as e,g as t,b as u,w as i,f as _,E as R,H as p}from"./app-DT9tPyzn.js";import{u as L}from"./useUriLocale-URN521cf.js";const v=["textContent"],y=["textContent"],B={key:0},N=b({__name:"[...all]",setup(V){const{t:o}=k(),d=x(),f=L(),a=s(()=>g(f.value)),m=s(()=>d.fullPath);return(E,U)=>{const h=r("i18n-t"),C=r("RouterLink");return c(),l("div",null,[n("h1",{textContent:e(t(o)("404.title"))},null,8,v),n("p",null,[u(h,{keypath:"404.description"},{url:i(()=>[n("i",null,e(t(m)),1)]),_:1}),n("a",{rel:"noreferrer",href:"https://github.com/FRSOURCE/fast-angle",target:"_blank",textContent:e(t(o)("404.file_issue_button"))},null,8,y)]),t(a)?(c(),l("p",B,[_(e(t(o)("404.redirect_button_description"))+" ",1),u(C,{to:{name:`lang-${t(a)}`}},{default:i(()=>[_(e(t(o)("404.redirect_button")),1)]),_:1},8,["to"])])):R("",!0)])}}});typeof p=="function"&&p(N);export{N as default}; diff --git a/assets/app-C_A3Ikqc.js b/assets/app-DT9tPyzn.js similarity index 61% rename from assets/app-C_A3Ikqc.js rename to assets/app-DT9tPyzn.js index 7b707cda..32916988 100644 --- a/assets/app-C_A3Ikqc.js +++ b/assets/app-DT9tPyzn.js @@ -1,39 +1,39 @@ -const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/centered-D9JAbCqt.js","assets/default-BD_Mt-QL.js","assets/Button-DRMNlNP8.js","assets/_plugin-vue_export-helper-DlAUqK2U.js","assets/Button-XV6Wby9K.css","assets/useUriLocale-DXOt3j7T.js","assets/default-Fqk_4fJ1.css","assets/centered-CsPDCAwg.css","assets/_...all_-DUmKXp0R.js","assets/index-CTXHhIZ7.js","assets/index-CV-JKKpt.css","assets/privacy-policy-BdEgNBDr.js","assets/privacy-policy-B_SJY2k1.css","assets/terms-CRRkJi5O.js","assets/terms-dhC8jLtc.css"])))=>i.map(i=>d[i]); +const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/centered-CFGCZuHh.js","assets/default-C3FHDxIb.js","assets/Button-qlJbhzlo.js","assets/_plugin-vue_export-helper-DlAUqK2U.js","assets/Button-XV6Wby9K.css","assets/useUriLocale-URN521cf.js","assets/default-D9dwkEVE.css","assets/centered-CsPDCAwg.css","assets/_...all_-CLOivLzp.js","assets/index-sKdwiapj.js","assets/index-BnNlN_Ib.css","assets/privacy-policy-C6r_wkKn.js","assets/privacy-policy-B_SJY2k1.css","assets/terms-Dytl1uwk.js","assets/terms-dhC8jLtc.css"])))=>i.map(i=>d[i]); (function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const s of document.querySelectorAll('link[rel="modulepreload"]'))r(s);new MutationObserver(s=>{for(const o of s)if(o.type==="childList")for(const i of o.addedNodes)i.tagName==="LINK"&&i.rel==="modulepreload"&&r(i)}).observe(document,{childList:!0,subtree:!0});function n(s){const o={};return s.integrity&&(o.integrity=s.integrity),s.referrerPolicy&&(o.referrerPolicy=s.referrerPolicy),s.crossOrigin==="use-credentials"?o.credentials="include":s.crossOrigin==="anonymous"?o.credentials="omit":o.credentials="same-origin",o}function r(s){if(s.ep)return;s.ep=!0;const o=n(s);fetch(s.href,o)}})();/*! * shared v9.13.1 * (c) 2024 kazuya kawaguchi * Released under the MIT License. - */const wr=typeof window<"u",Ht=(e,t=!1)=>t?Symbol.for(e):Symbol(e),zc=(e,t,n)=>Yc({l:e,k:t,s:n}),Yc=e=>JSON.stringify(e).replace(/\u2028/g,"\\u2028").replace(/\u2029/g,"\\u2029").replace(/\u0027/g,"\\u0027"),Ae=e=>typeof e=="number"&&isFinite(e),Xc=e=>Ol(e)==="[object Date]",Tr=e=>Ol(e)==="[object RegExp]",Ur=e=>le(e)&&Object.keys(e).length===0,De=Object.assign;let Io;const Ys=()=>Io||(Io=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{});function Mo(e){return e.replace(//g,">").replace(/"/g,""").replace(/'/g,"'")}const qc=Object.prototype.hasOwnProperty;function Sr(e,t){return qc.call(e,t)}const Oe=Array.isArray,ve=e=>typeof e=="function",z=e=>typeof e=="string",be=e=>typeof e=="boolean",ue=e=>e!==null&&typeof e=="object",Jc=e=>ue(e)&&ve(e.then)&&ve(e.catch),Sl=Object.prototype.toString,Ol=e=>Sl.call(e),le=e=>{if(!ue(e))return!1;const t=Object.getPrototypeOf(e);return t===null||t.constructor===Object},Qc=e=>e==null?"":Oe(e)||le(e)&&e.toString===Sl?JSON.stringify(e,null,2):String(e);function Zc(e,t=""){return e.reduce((n,r,s)=>s===0?n+r:n+t+r,"")}function jr(e){let t=e;return()=>++t}function eu(e,t){typeof console<"u"&&(console.warn("[intlify] "+e),t&&console.warn(t.stack))}const tr=e=>!ue(e)||Oe(e);function pr(e,t){if(tr(e)||tr(t))throw new Error("Invalid value");const n=[{src:e,des:t}];for(;n.length;){const{src:r,des:s}=n.pop();Object.keys(r).forEach(o=>{tr(r[o])||tr(s[o])?s[o]=r[o]:n.push({src:r[o],des:s[o]})})}}/*! + */const Tr=typeof window<"u",Ht=(e,t=!1)=>t?Symbol.for(e):Symbol(e),zc=(e,t,n)=>Yc({l:e,k:t,s:n}),Yc=e=>JSON.stringify(e).replace(/\u2028/g,"\\u2028").replace(/\u2029/g,"\\u2029").replace(/\u0027/g,"\\u0027"),Ae=e=>typeof e=="number"&&isFinite(e),Xc=e=>Ol(e)==="[object Date]",Sr=e=>Ol(e)==="[object RegExp]",jr=e=>le(e)&&Object.keys(e).length===0,De=Object.assign;let Io;const Ys=()=>Io||(Io=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{});function Mo(e){return e.replace(//g,">").replace(/"/g,""").replace(/'/g,"'")}const qc=Object.prototype.hasOwnProperty;function Or(e,t){return qc.call(e,t)}const Oe=Array.isArray,ve=e=>typeof e=="function",Y=e=>typeof e=="string",be=e=>typeof e=="boolean",ue=e=>e!==null&&typeof e=="object",Jc=e=>ue(e)&&ve(e.then)&&ve(e.catch),Sl=Object.prototype.toString,Ol=e=>Sl.call(e),le=e=>{if(!ue(e))return!1;const t=Object.getPrototypeOf(e);return t===null||t.constructor===Object},Qc=e=>e==null?"":Oe(e)||le(e)&&e.toString===Sl?JSON.stringify(e,null,2):String(e);function Zc(e,t=""){return e.reduce((n,r,s)=>s===0?n+r:n+t+r,"")}function Vr(e){let t=e;return()=>++t}function eu(e,t){typeof console<"u"&&(console.warn("[intlify] "+e),t&&console.warn(t.stack))}const nr=e=>!ue(e)||Oe(e);function mr(e,t){if(nr(e)||nr(t))throw new Error("Invalid value");const n=[{src:e,des:t}];for(;n.length;){const{src:r,des:s}=n.pop();Object.keys(r).forEach(o=>{nr(r[o])||nr(s[o])?s[o]=r[o]:n.push({src:r[o],des:s[o]})})}}/*! * message-compiler v9.13.1 * (c) 2024 kazuya kawaguchi * Released under the MIT License. - */function tu(e,t,n){return{line:e,column:t,offset:n}}function Or(e,t,n){return{start:e,end:t}}const nu=/\{([0-9a-zA-Z]+)\}/g;function Cl(e,...t){return t.length===1&&ru(t[0])&&(t=t[0]),(!t||!t.hasOwnProperty)&&(t={}),e.replace(nu,(n,r)=>t.hasOwnProperty(r)?t[r]:"")}const Ll=Object.assign,xo=e=>typeof e=="string",ru=e=>e!==null&&typeof e=="object";function Al(e,t=""){return e.reduce((n,r,s)=>s===0?n+r:n+t+r,"")}const Xs={USE_MODULO_SYNTAX:1,__EXTEND_POINT__:2},su={[Xs.USE_MODULO_SYNTAX]:"Use modulo before '{{0}}'."};function ou(e,t,...n){const r=Cl(su[e],...n||[]),s={message:String(r),code:e};return t&&(s.location=t),s}const ee={EXPECTED_TOKEN:1,INVALID_TOKEN_IN_PLACEHOLDER:2,UNTERMINATED_SINGLE_QUOTE_IN_PLACEHOLDER:3,UNKNOWN_ESCAPE_SEQUENCE:4,INVALID_UNICODE_ESCAPE_SEQUENCE:5,UNBALANCED_CLOSING_BRACE:6,UNTERMINATED_CLOSING_BRACE:7,EMPTY_PLACEHOLDER:8,NOT_ALLOW_NEST_PLACEHOLDER:9,INVALID_LINKED_FORMAT:10,MUST_HAVE_MESSAGES_IN_PLURAL:11,UNEXPECTED_EMPTY_LINKED_MODIFIER:12,UNEXPECTED_EMPTY_LINKED_KEY:13,UNEXPECTED_LEXICAL_ANALYSIS:14,UNHANDLED_CODEGEN_NODE_TYPE:15,UNHANDLED_MINIFIER_NODE_TYPE:16,__EXTEND_POINT__:17},iu={[ee.EXPECTED_TOKEN]:"Expected token: '{0}'",[ee.INVALID_TOKEN_IN_PLACEHOLDER]:"Invalid token in placeholder: '{0}'",[ee.UNTERMINATED_SINGLE_QUOTE_IN_PLACEHOLDER]:"Unterminated single quote in placeholder",[ee.UNKNOWN_ESCAPE_SEQUENCE]:"Unknown escape sequence: \\{0}",[ee.INVALID_UNICODE_ESCAPE_SEQUENCE]:"Invalid unicode escape sequence: {0}",[ee.UNBALANCED_CLOSING_BRACE]:"Unbalanced closing brace",[ee.UNTERMINATED_CLOSING_BRACE]:"Unterminated closing brace",[ee.EMPTY_PLACEHOLDER]:"Empty placeholder",[ee.NOT_ALLOW_NEST_PLACEHOLDER]:"Not allowed nest placeholder",[ee.INVALID_LINKED_FORMAT]:"Invalid linked format",[ee.MUST_HAVE_MESSAGES_IN_PLURAL]:"Plural must have messages",[ee.UNEXPECTED_EMPTY_LINKED_MODIFIER]:"Unexpected empty linked modifier",[ee.UNEXPECTED_EMPTY_LINKED_KEY]:"Unexpected empty linked key",[ee.UNEXPECTED_LEXICAL_ANALYSIS]:"Unexpected lexical analysis in token: '{0}'",[ee.UNHANDLED_CODEGEN_NODE_TYPE]:"unhandled codegen node type: '{0}'",[ee.UNHANDLED_MINIFIER_NODE_TYPE]:"unhandled mimifier node type: '{0}'"};function Sn(e,t,n={}){const{domain:r,messages:s,args:o}=n,i=Cl((s||iu)[e]||"",...o||[]),a=new SyntaxError(String(i));return a.code=e,t&&(a.location=t),a.domain=r,a}function lu(e){throw e}const gt=" ",au="\r",Ue=` -`,cu="\u2028",uu="\u2029";function fu(e){const t=e;let n=0,r=1,s=1,o=0;const i=A=>t[A]===au&&t[A+1]===Ue,a=A=>t[A]===Ue,l=A=>t[A]===uu,c=A=>t[A]===cu,u=A=>i(A)||a(A)||l(A)||c(A),f=()=>n,d=()=>r,m=()=>s,E=()=>o,v=A=>i(A)||l(A)||c(A)?Ue:t[A],C=()=>v(n),O=()=>v(n+o);function N(){return o=0,u(n)&&(r++,s=0),i(n)&&n++,n++,s++,t[n]}function h(){return i(n+o)&&o++,o++,t[n+o]}function y(){n=0,r=1,s=1,o=0}function S(A=0){o=A}function T(){const A=n+o;for(;A!==n;)N();o=0}return{index:f,line:d,column:m,peekOffset:E,charAt:v,currentChar:C,currentPeek:O,next:N,peek:h,reset:y,resetPeek:S,skipToPeek:T}}const Ot=void 0,du=".",Do="'",hu="tokenizer";function pu(e,t={}){const n=t.location!==!1,r=fu(e),s=()=>r.index(),o=()=>tu(r.line(),r.column(),r.index()),i=o(),a=s(),l={currentType:14,offset:a,startLoc:i,endLoc:i,lastType:14,lastOffset:a,lastStartLoc:i,lastEndLoc:i,braceNest:0,inLinked:!1,text:""},c=()=>l,{onError:u}=t;function f(p,g,w,...I){const j=c();if(g.column+=w,g.offset+=w,u){const $=n?Or(j.startLoc,g):null,L=Sn(p,$,{domain:hu,args:I});u(L)}}function d(p,g,w){p.endLoc=o(),p.currentType=g;const I={type:g};return n&&(I.loc=Or(p.startLoc,p.endLoc)),w!=null&&(I.value=w),I}const m=p=>d(p,14);function E(p,g){return p.currentChar()===g?(p.next(),g):(f(ee.EXPECTED_TOKEN,o(),0,g),"")}function v(p){let g="";for(;p.currentPeek()===gt||p.currentPeek()===Ue;)g+=p.currentPeek(),p.peek();return g}function C(p){const g=v(p);return p.skipToPeek(),g}function O(p){if(p===Ot)return!1;const g=p.charCodeAt(0);return g>=97&&g<=122||g>=65&&g<=90||g===95}function N(p){if(p===Ot)return!1;const g=p.charCodeAt(0);return g>=48&&g<=57}function h(p,g){const{currentType:w}=g;if(w!==2)return!1;v(p);const I=O(p.currentPeek());return p.resetPeek(),I}function y(p,g){const{currentType:w}=g;if(w!==2)return!1;v(p);const I=p.currentPeek()==="-"?p.peek():p.currentPeek(),j=N(I);return p.resetPeek(),j}function S(p,g){const{currentType:w}=g;if(w!==2)return!1;v(p);const I=p.currentPeek()===Do;return p.resetPeek(),I}function T(p,g){const{currentType:w}=g;if(w!==8)return!1;v(p);const I=p.currentPeek()===".";return p.resetPeek(),I}function A(p,g){const{currentType:w}=g;if(w!==9)return!1;v(p);const I=O(p.currentPeek());return p.resetPeek(),I}function D(p,g){const{currentType:w}=g;if(!(w===8||w===12))return!1;v(p);const I=p.currentPeek()===":";return p.resetPeek(),I}function x(p,g){const{currentType:w}=g;if(w!==10)return!1;const I=()=>{const $=p.currentPeek();return $==="{"?O(p.peek()):$==="@"||$==="%"||$==="|"||$===":"||$==="."||$===gt||!$?!1:$===Ue?(p.peek(),I()):B(p,!1)},j=I();return p.resetPeek(),j}function H(p){v(p);const g=p.currentPeek()==="|";return p.resetPeek(),g}function Y(p){const g=v(p),w=p.currentPeek()==="%"&&p.peek()==="{";return p.resetPeek(),{isModulo:w,hasSpace:g.length>0}}function B(p,g=!0){const w=(j=!1,$="",L=!1)=>{const R=p.currentPeek();return R==="{"?$==="%"?!1:j:R==="@"||!R?$==="%"?!0:j:R==="%"?(p.peek(),w(j,"%",!0)):R==="|"?$==="%"||L?!0:!($===gt||$===Ue):R===gt?(p.peek(),w(!0,gt,L)):R===Ue?(p.peek(),w(!0,Ue,L)):!0},I=w();return g&&p.resetPeek(),I}function re(p,g){const w=p.currentChar();return w===Ot?Ot:g(w)?(p.next(),w):null}function Le(p){const g=p.charCodeAt(0);return g>=97&&g<=122||g>=65&&g<=90||g>=48&&g<=57||g===95||g===36}function me(p){return re(p,Le)}function q(p){const g=p.charCodeAt(0);return g>=97&&g<=122||g>=65&&g<=90||g>=48&&g<=57||g===95||g===36||g===45}function te(p){return re(p,q)}function X(p){const g=p.charCodeAt(0);return g>=48&&g<=57}function ye(p){return re(p,X)}function Qe(p){const g=p.charCodeAt(0);return g>=48&&g<=57||g>=65&&g<=70||g>=97&&g<=102}function we(p){return re(p,Qe)}function Te(p){let g="",w="";for(;g=ye(p);)w+=g;return w}function ut(p){C(p);const g=p.currentChar();return g!=="%"&&f(ee.EXPECTED_TOKEN,o(),0,g),p.next(),"%"}function st(p){let g="";for(;;){const w=p.currentChar();if(w==="{"||w==="}"||w==="@"||w==="|"||!w)break;if(w==="%")if(B(p))g+=w,p.next();else break;else if(w===gt||w===Ue)if(B(p))g+=w,p.next();else{if(H(p))break;g+=w,p.next()}else g+=w,p.next()}return g}function St(p){C(p);let g="",w="";for(;g=te(p);)w+=g;return p.currentChar()===Ot&&f(ee.UNTERMINATED_CLOSING_BRACE,o(),0),w}function ke(p){C(p);let g="";return p.currentChar()==="-"?(p.next(),g+=`-${Te(p)}`):g+=Te(p),p.currentChar()===Ot&&f(ee.UNTERMINATED_CLOSING_BRACE,o(),0),g}function M(p){return p!==Do&&p!==Ue}function K(p){C(p),E(p,"'");let g="",w="";for(;g=re(p,M);)g==="\\"?w+=W(p):w+=g;const I=p.currentChar();return I===Ue||I===Ot?(f(ee.UNTERMINATED_SINGLE_QUOTE_IN_PLACEHOLDER,o(),0),I===Ue&&(p.next(),E(p,"'")),w):(E(p,"'"),w)}function W(p){const g=p.currentChar();switch(g){case"\\":case"'":return p.next(),`\\${g}`;case"u":return G(p,g,4);case"U":return G(p,g,6);default:return f(ee.UNKNOWN_ESCAPE_SEQUENCE,o(),0,g),""}}function G(p,g,w){E(p,g);let I="";for(let j=0;j{const I=p.currentChar();return I==="{"||I==="%"||I==="@"||I==="|"||I==="("||I===")"||!I||I===gt?w:(w+=I,p.next(),g(w))};return g("")}function P(p){C(p);const g=E(p,"|");return C(p),g}function F(p,g){let w=null;switch(p.currentChar()){case"{":return g.braceNest>=1&&f(ee.NOT_ALLOW_NEST_PLACEHOLDER,o(),0),p.next(),w=d(g,2,"{"),C(p),g.braceNest++,w;case"}":return g.braceNest>0&&g.currentType===2&&f(ee.EMPTY_PLACEHOLDER,o(),0),p.next(),w=d(g,3,"}"),g.braceNest--,g.braceNest>0&&C(p),g.inLinked&&g.braceNest===0&&(g.inLinked=!1),w;case"@":return g.braceNest>0&&f(ee.UNTERMINATED_CLOSING_BRACE,o(),0),w=k(p,g)||m(g),g.braceNest=0,w;default:{let j=!0,$=!0,L=!0;if(H(p))return g.braceNest>0&&f(ee.UNTERMINATED_CLOSING_BRACE,o(),0),w=d(g,1,P(p)),g.braceNest=0,g.inLinked=!1,w;if(g.braceNest>0&&(g.currentType===5||g.currentType===6||g.currentType===7))return f(ee.UNTERMINATED_CLOSING_BRACE,o(),0),g.braceNest=0,U(p,g);if(j=h(p,g))return w=d(g,5,St(p)),C(p),w;if($=y(p,g))return w=d(g,6,ke(p)),C(p),w;if(L=S(p,g))return w=d(g,7,K(p)),C(p),w;if(!j&&!$&&!L)return w=d(g,13,de(p)),f(ee.INVALID_TOKEN_IN_PLACEHOLDER,o(),0,w.value),C(p),w;break}}return w}function k(p,g){const{currentType:w}=g;let I=null;const j=p.currentChar();switch((w===8||w===9||w===12||w===10)&&(j===Ue||j===gt)&&f(ee.INVALID_LINKED_FORMAT,o(),0),j){case"@":return p.next(),I=d(g,8,"@"),g.inLinked=!0,I;case".":return C(p),p.next(),d(g,9,".");case":":return C(p),p.next(),d(g,10,":");default:return H(p)?(I=d(g,1,P(p)),g.braceNest=0,g.inLinked=!1,I):T(p,g)||D(p,g)?(C(p),k(p,g)):A(p,g)?(C(p),d(g,12,_(p))):x(p,g)?(C(p),j==="{"?F(p,g)||I:d(g,11,b(p))):(w===8&&f(ee.INVALID_LINKED_FORMAT,o(),0),g.braceNest=0,g.inLinked=!1,U(p,g))}}function U(p,g){let w={type:14};if(g.braceNest>0)return F(p,g)||m(g);if(g.inLinked)return k(p,g)||m(g);switch(p.currentChar()){case"{":return F(p,g)||m(g);case"}":return f(ee.UNBALANCED_CLOSING_BRACE,o(),0),p.next(),d(g,3,"}");case"@":return k(p,g)||m(g);default:{if(H(p))return w=d(g,1,P(p)),g.braceNest=0,g.inLinked=!1,w;const{isModulo:j,hasSpace:$}=Y(p);if(j)return $?d(g,0,st(p)):d(g,4,ut(p));if(B(p))return d(g,0,st(p));break}}return w}function V(){const{currentType:p,offset:g,startLoc:w,endLoc:I}=l;return l.lastType=p,l.lastOffset=g,l.lastStartLoc=w,l.lastEndLoc=I,l.offset=s(),l.startLoc=o(),r.currentChar()===Ot?d(l,14):U(r,l)}return{nextToken:V,currentOffset:s,currentPosition:o,context:c}}const mu="parser",gu=/(?:\\\\|\\'|\\u([0-9a-fA-F]{4})|\\U([0-9a-fA-F]{6}))/g;function _u(e,t,n){switch(e){case"\\\\":return"\\";case"\\'":return"'";default:{const r=parseInt(t||n,16);return r<=55295||r>=57344?String.fromCodePoint(r):"�"}}}function yu(e={}){const t=e.location!==!1,{onError:n,onWarn:r}=e;function s(h,y,S,T,...A){const D=h.currentPosition();if(D.offset+=T,D.column+=T,n){const x=t?Or(S,D):null,H=Sn(y,x,{domain:mu,args:A});n(H)}}function o(h,y,S,T,...A){const D=h.currentPosition();if(D.offset+=T,D.column+=T,r){const x=t?Or(S,D):null;r(ou(y,x,A))}}function i(h,y,S){const T={type:h};return t&&(T.start=y,T.end=y,T.loc={start:S,end:S}),T}function a(h,y,S,T){t&&(h.end=y,h.loc&&(h.loc.end=S))}function l(h,y){const S=h.context(),T=i(3,S.offset,S.startLoc);return T.value=y,a(T,h.currentOffset(),h.currentPosition()),T}function c(h,y){const S=h.context(),{lastOffset:T,lastStartLoc:A}=S,D=i(5,T,A);return D.index=parseInt(y,10),h.nextToken(),a(D,h.currentOffset(),h.currentPosition()),D}function u(h,y,S){const T=h.context(),{lastOffset:A,lastStartLoc:D}=T,x=i(4,A,D);return x.key=y,S===!0&&(x.modulo=!0),h.nextToken(),a(x,h.currentOffset(),h.currentPosition()),x}function f(h,y){const S=h.context(),{lastOffset:T,lastStartLoc:A}=S,D=i(9,T,A);return D.value=y.replace(gu,_u),h.nextToken(),a(D,h.currentOffset(),h.currentPosition()),D}function d(h){const y=h.nextToken(),S=h.context(),{lastOffset:T,lastStartLoc:A}=S,D=i(8,T,A);return y.type!==12?(s(h,ee.UNEXPECTED_EMPTY_LINKED_MODIFIER,S.lastStartLoc,0),D.value="",a(D,T,A),{nextConsumeToken:y,node:D}):(y.value==null&&s(h,ee.UNEXPECTED_LEXICAL_ANALYSIS,S.lastStartLoc,0,ot(y)),D.value=y.value||"",a(D,h.currentOffset(),h.currentPosition()),{node:D})}function m(h,y){const S=h.context(),T=i(7,S.offset,S.startLoc);return T.value=y,a(T,h.currentOffset(),h.currentPosition()),T}function E(h){const y=h.context(),S=i(6,y.offset,y.startLoc);let T=h.nextToken();if(T.type===9){const A=d(h);S.modifier=A.node,T=A.nextConsumeToken||h.nextToken()}switch(T.type!==10&&s(h,ee.UNEXPECTED_LEXICAL_ANALYSIS,y.lastStartLoc,0,ot(T)),T=h.nextToken(),T.type===2&&(T=h.nextToken()),T.type){case 11:T.value==null&&s(h,ee.UNEXPECTED_LEXICAL_ANALYSIS,y.lastStartLoc,0,ot(T)),S.key=m(h,T.value||"");break;case 5:T.value==null&&s(h,ee.UNEXPECTED_LEXICAL_ANALYSIS,y.lastStartLoc,0,ot(T)),S.key=u(h,T.value||"");break;case 6:T.value==null&&s(h,ee.UNEXPECTED_LEXICAL_ANALYSIS,y.lastStartLoc,0,ot(T)),S.key=c(h,T.value||"");break;case 7:T.value==null&&s(h,ee.UNEXPECTED_LEXICAL_ANALYSIS,y.lastStartLoc,0,ot(T)),S.key=f(h,T.value||"");break;default:{s(h,ee.UNEXPECTED_EMPTY_LINKED_KEY,y.lastStartLoc,0);const A=h.context(),D=i(7,A.offset,A.startLoc);return D.value="",a(D,A.offset,A.startLoc),S.key=D,a(S,A.offset,A.startLoc),{nextConsumeToken:T,node:S}}}return a(S,h.currentOffset(),h.currentPosition()),{node:S}}function v(h){const y=h.context(),S=y.currentType===1?h.currentOffset():y.offset,T=y.currentType===1?y.endLoc:y.startLoc,A=i(2,S,T);A.items=[];let D=null,x=null;do{const B=D||h.nextToken();switch(D=null,B.type){case 0:B.value==null&&s(h,ee.UNEXPECTED_LEXICAL_ANALYSIS,y.lastStartLoc,0,ot(B)),A.items.push(l(h,B.value||""));break;case 6:B.value==null&&s(h,ee.UNEXPECTED_LEXICAL_ANALYSIS,y.lastStartLoc,0,ot(B)),A.items.push(c(h,B.value||""));break;case 4:x=!0;break;case 5:B.value==null&&s(h,ee.UNEXPECTED_LEXICAL_ANALYSIS,y.lastStartLoc,0,ot(B)),A.items.push(u(h,B.value||"",!!x)),x&&(o(h,Xs.USE_MODULO_SYNTAX,y.lastStartLoc,0,ot(B)),x=null);break;case 7:B.value==null&&s(h,ee.UNEXPECTED_LEXICAL_ANALYSIS,y.lastStartLoc,0,ot(B)),A.items.push(f(h,B.value||""));break;case 8:{const re=E(h);A.items.push(re.node),D=re.nextConsumeToken||null;break}}}while(y.currentType!==14&&y.currentType!==1);const H=y.currentType===1?y.lastOffset:h.currentOffset(),Y=y.currentType===1?y.lastEndLoc:h.currentPosition();return a(A,H,Y),A}function C(h,y,S,T){const A=h.context();let D=T.items.length===0;const x=i(1,y,S);x.cases=[],x.cases.push(T);do{const H=v(h);D||(D=H.items.length===0),x.cases.push(H)}while(A.currentType!==14);return D&&s(h,ee.MUST_HAVE_MESSAGES_IN_PLURAL,S,0),a(x,h.currentOffset(),h.currentPosition()),x}function O(h){const y=h.context(),{offset:S,startLoc:T}=y,A=v(h);return y.currentType===14?A:C(h,S,T,A)}function N(h){const y=pu(h,Ll({},e)),S=y.context(),T=i(0,S.offset,S.startLoc);return t&&T.loc&&(T.loc.source=h),T.body=O(y),e.onCacheKey&&(T.cacheKey=e.onCacheKey(h)),S.currentType!==14&&s(y,ee.UNEXPECTED_LEXICAL_ANALYSIS,S.lastStartLoc,0,h[S.offset]||""),a(T,y.currentOffset(),y.currentPosition()),T}return{parse:N}}function ot(e){if(e.type===14)return"EOF";const t=(e.value||"").replace(/\r?\n/gu,"\\n");return t.length>10?t.slice(0,9)+"…":t}function bu(e,t={}){const n={ast:e,helpers:new Set};return{context:()=>n,helper:o=>(n.helpers.add(o),o)}}function Fo(e,t){for(let n=0;nHo(n)),e}function Ho(e){if(e.items.length===1){const t=e.items[0];(t.type===3||t.type===9)&&(e.static=t.value,delete t.value)}else{const t=[];for(let n=0;na;function c(C,O){a.code+=C}function u(C,O=!0){const N=O?s:"";c(o?N+" ".repeat(C):N)}function f(C=!0){const O=++a.indentLevel;C&&u(O)}function d(C=!0){const O=--a.indentLevel;C&&u(O)}function m(){u(a.indentLevel)}return{context:l,push:c,indent:f,deindent:d,newline:m,helper:C=>`_${C}`,needIndent:()=>a.needIndent}}function Ou(e,t){const{helper:n}=e;e.push(`${n("linked")}(`),gn(e,t.key),t.modifier?(e.push(", "),gn(e,t.modifier),e.push(", _type")):e.push(", undefined, _type"),e.push(")")}function Cu(e,t){const{helper:n,needIndent:r}=e;e.push(`${n("normalize")}([`),e.indent(r());const s=t.items.length;for(let o=0;o1){e.push(`${n("plural")}([`),e.indent(r());const s=t.cases.length;for(let o=0;o{const n=xo(t.mode)?t.mode:"normal",r=xo(t.filename)?t.filename:"message.intl",s=!!t.sourceMap,o=t.breakLineCode!=null?t.breakLineCode:n==="arrow"?";":` + */function tu(e,t,n){return{line:e,column:t,offset:n}}function Cr(e,t,n){return{start:e,end:t}}const nu=/\{([0-9a-zA-Z]+)\}/g;function Cl(e,...t){return t.length===1&&ru(t[0])&&(t=t[0]),(!t||!t.hasOwnProperty)&&(t={}),e.replace(nu,(n,r)=>t.hasOwnProperty(r)?t[r]:"")}const Ll=Object.assign,xo=e=>typeof e=="string",ru=e=>e!==null&&typeof e=="object";function Al(e,t=""){return e.reduce((n,r,s)=>s===0?n+r:n+t+r,"")}const Xs={USE_MODULO_SYNTAX:1,__EXTEND_POINT__:2},su={[Xs.USE_MODULO_SYNTAX]:"Use modulo before '{{0}}'."};function ou(e,t,...n){const r=Cl(su[e],...n||[]),s={message:String(r),code:e};return t&&(s.location=t),s}const te={EXPECTED_TOKEN:1,INVALID_TOKEN_IN_PLACEHOLDER:2,UNTERMINATED_SINGLE_QUOTE_IN_PLACEHOLDER:3,UNKNOWN_ESCAPE_SEQUENCE:4,INVALID_UNICODE_ESCAPE_SEQUENCE:5,UNBALANCED_CLOSING_BRACE:6,UNTERMINATED_CLOSING_BRACE:7,EMPTY_PLACEHOLDER:8,NOT_ALLOW_NEST_PLACEHOLDER:9,INVALID_LINKED_FORMAT:10,MUST_HAVE_MESSAGES_IN_PLURAL:11,UNEXPECTED_EMPTY_LINKED_MODIFIER:12,UNEXPECTED_EMPTY_LINKED_KEY:13,UNEXPECTED_LEXICAL_ANALYSIS:14,UNHANDLED_CODEGEN_NODE_TYPE:15,UNHANDLED_MINIFIER_NODE_TYPE:16,__EXTEND_POINT__:17},iu={[te.EXPECTED_TOKEN]:"Expected token: '{0}'",[te.INVALID_TOKEN_IN_PLACEHOLDER]:"Invalid token in placeholder: '{0}'",[te.UNTERMINATED_SINGLE_QUOTE_IN_PLACEHOLDER]:"Unterminated single quote in placeholder",[te.UNKNOWN_ESCAPE_SEQUENCE]:"Unknown escape sequence: \\{0}",[te.INVALID_UNICODE_ESCAPE_SEQUENCE]:"Invalid unicode escape sequence: {0}",[te.UNBALANCED_CLOSING_BRACE]:"Unbalanced closing brace",[te.UNTERMINATED_CLOSING_BRACE]:"Unterminated closing brace",[te.EMPTY_PLACEHOLDER]:"Empty placeholder",[te.NOT_ALLOW_NEST_PLACEHOLDER]:"Not allowed nest placeholder",[te.INVALID_LINKED_FORMAT]:"Invalid linked format",[te.MUST_HAVE_MESSAGES_IN_PLURAL]:"Plural must have messages",[te.UNEXPECTED_EMPTY_LINKED_MODIFIER]:"Unexpected empty linked modifier",[te.UNEXPECTED_EMPTY_LINKED_KEY]:"Unexpected empty linked key",[te.UNEXPECTED_LEXICAL_ANALYSIS]:"Unexpected lexical analysis in token: '{0}'",[te.UNHANDLED_CODEGEN_NODE_TYPE]:"unhandled codegen node type: '{0}'",[te.UNHANDLED_MINIFIER_NODE_TYPE]:"unhandled mimifier node type: '{0}'"};function On(e,t,n={}){const{domain:r,messages:s,args:o}=n,i=Cl((s||iu)[e]||"",...o||[]),a=new SyntaxError(String(i));return a.code=e,t&&(a.location=t),a.domain=r,a}function lu(e){throw e}const gt=" ",au="\r",Ue=` +`,cu="\u2028",uu="\u2029";function fu(e){const t=e;let n=0,r=1,s=1,o=0;const i=A=>t[A]===au&&t[A+1]===Ue,a=A=>t[A]===Ue,l=A=>t[A]===uu,c=A=>t[A]===cu,u=A=>i(A)||a(A)||l(A)||c(A),f=()=>n,d=()=>r,m=()=>s,E=()=>o,v=A=>i(A)||l(A)||c(A)?Ue:t[A],C=()=>v(n),O=()=>v(n+o);function N(){return o=0,u(n)&&(r++,s=0),i(n)&&n++,n++,s++,t[n]}function h(){return i(n+o)&&o++,o++,t[n+o]}function y(){n=0,r=1,s=1,o=0}function S(A=0){o=A}function T(){const A=n+o;for(;A!==n;)N();o=0}return{index:f,line:d,column:m,peekOffset:E,charAt:v,currentChar:C,currentPeek:O,next:N,peek:h,reset:y,resetPeek:S,skipToPeek:T}}const Ot=void 0,du=".",Do="'",hu="tokenizer";function pu(e,t={}){const n=t.location!==!1,r=fu(e),s=()=>r.index(),o=()=>tu(r.line(),r.column(),r.index()),i=o(),a=s(),l={currentType:14,offset:a,startLoc:i,endLoc:i,lastType:14,lastOffset:a,lastStartLoc:i,lastEndLoc:i,braceNest:0,inLinked:!1,text:""},c=()=>l,{onError:u}=t;function f(p,g,w,...I){const j=c();if(g.column+=w,g.offset+=w,u){const $=n?Cr(j.startLoc,g):null,L=On(p,$,{domain:hu,args:I});u(L)}}function d(p,g,w){p.endLoc=o(),p.currentType=g;const I={type:g};return n&&(I.loc=Cr(p.startLoc,p.endLoc)),w!=null&&(I.value=w),I}const m=p=>d(p,14);function E(p,g){return p.currentChar()===g?(p.next(),g):(f(te.EXPECTED_TOKEN,o(),0,g),"")}function v(p){let g="";for(;p.currentPeek()===gt||p.currentPeek()===Ue;)g+=p.currentPeek(),p.peek();return g}function C(p){const g=v(p);return p.skipToPeek(),g}function O(p){if(p===Ot)return!1;const g=p.charCodeAt(0);return g>=97&&g<=122||g>=65&&g<=90||g===95}function N(p){if(p===Ot)return!1;const g=p.charCodeAt(0);return g>=48&&g<=57}function h(p,g){const{currentType:w}=g;if(w!==2)return!1;v(p);const I=O(p.currentPeek());return p.resetPeek(),I}function y(p,g){const{currentType:w}=g;if(w!==2)return!1;v(p);const I=p.currentPeek()==="-"?p.peek():p.currentPeek(),j=N(I);return p.resetPeek(),j}function S(p,g){const{currentType:w}=g;if(w!==2)return!1;v(p);const I=p.currentPeek()===Do;return p.resetPeek(),I}function T(p,g){const{currentType:w}=g;if(w!==8)return!1;v(p);const I=p.currentPeek()===".";return p.resetPeek(),I}function A(p,g){const{currentType:w}=g;if(w!==9)return!1;v(p);const I=O(p.currentPeek());return p.resetPeek(),I}function F(p,g){const{currentType:w}=g;if(!(w===8||w===12))return!1;v(p);const I=p.currentPeek()===":";return p.resetPeek(),I}function x(p,g){const{currentType:w}=g;if(w!==10)return!1;const I=()=>{const $=p.currentPeek();return $==="{"?O(p.peek()):$==="@"||$==="%"||$==="|"||$===":"||$==="."||$===gt||!$?!1:$===Ue?(p.peek(),I()):K(p,!1)},j=I();return p.resetPeek(),j}function H(p){v(p);const g=p.currentPeek()==="|";return p.resetPeek(),g}function G(p){const g=v(p),w=p.currentPeek()==="%"&&p.peek()==="{";return p.resetPeek(),{isModulo:w,hasSpace:g.length>0}}function K(p,g=!0){const w=(j=!1,$="",L=!1)=>{const R=p.currentPeek();return R==="{"?$==="%"?!1:j:R==="@"||!R?$==="%"?!0:j:R==="%"?(p.peek(),w(j,"%",!0)):R==="|"?$==="%"||L?!0:!($===gt||$===Ue):R===gt?(p.peek(),w(!0,gt,L)):R===Ue?(p.peek(),w(!0,Ue,L)):!0},I=w();return g&&p.resetPeek(),I}function ee(p,g){const w=p.currentChar();return w===Ot?Ot:g(w)?(p.next(),w):null}function Le(p){const g=p.charCodeAt(0);return g>=97&&g<=122||g>=65&&g<=90||g>=48&&g<=57||g===95||g===36}function me(p){return ee(p,Le)}function q(p){const g=p.charCodeAt(0);return g>=97&&g<=122||g>=65&&g<=90||g>=48&&g<=57||g===95||g===36||g===45}function ne(p){return ee(p,q)}function X(p){const g=p.charCodeAt(0);return g>=48&&g<=57}function ye(p){return ee(p,X)}function Qe(p){const g=p.charCodeAt(0);return g>=48&&g<=57||g>=65&&g<=70||g>=97&&g<=102}function we(p){return ee(p,Qe)}function Te(p){let g="",w="";for(;g=ye(p);)w+=g;return w}function ut(p){C(p);const g=p.currentChar();return g!=="%"&&f(te.EXPECTED_TOKEN,o(),0,g),p.next(),"%"}function st(p){let g="";for(;;){const w=p.currentChar();if(w==="{"||w==="}"||w==="@"||w==="|"||!w)break;if(w==="%")if(K(p))g+=w,p.next();else break;else if(w===gt||w===Ue)if(K(p))g+=w,p.next();else{if(H(p))break;g+=w,p.next()}else g+=w,p.next()}return g}function St(p){C(p);let g="",w="";for(;g=ne(p);)w+=g;return p.currentChar()===Ot&&f(te.UNTERMINATED_CLOSING_BRACE,o(),0),w}function ke(p){C(p);let g="";return p.currentChar()==="-"?(p.next(),g+=`-${Te(p)}`):g+=Te(p),p.currentChar()===Ot&&f(te.UNTERMINATED_CLOSING_BRACE,o(),0),g}function M(p){return p!==Do&&p!==Ue}function B(p){C(p),E(p,"'");let g="",w="";for(;g=ee(p,M);)g==="\\"?w+=W(p):w+=g;const I=p.currentChar();return I===Ue||I===Ot?(f(te.UNTERMINATED_SINGLE_QUOTE_IN_PLACEHOLDER,o(),0),I===Ue&&(p.next(),E(p,"'")),w):(E(p,"'"),w)}function W(p){const g=p.currentChar();switch(g){case"\\":case"'":return p.next(),`\\${g}`;case"u":return z(p,g,4);case"U":return z(p,g,6);default:return f(te.UNKNOWN_ESCAPE_SEQUENCE,o(),0,g),""}}function z(p,g,w){E(p,g);let I="";for(let j=0;j{const I=p.currentChar();return I==="{"||I==="%"||I==="@"||I==="|"||I==="("||I===")"||!I||I===gt?w:(w+=I,p.next(),g(w))};return g("")}function P(p){C(p);const g=E(p,"|");return C(p),g}function D(p,g){let w=null;switch(p.currentChar()){case"{":return g.braceNest>=1&&f(te.NOT_ALLOW_NEST_PLACEHOLDER,o(),0),p.next(),w=d(g,2,"{"),C(p),g.braceNest++,w;case"}":return g.braceNest>0&&g.currentType===2&&f(te.EMPTY_PLACEHOLDER,o(),0),p.next(),w=d(g,3,"}"),g.braceNest--,g.braceNest>0&&C(p),g.inLinked&&g.braceNest===0&&(g.inLinked=!1),w;case"@":return g.braceNest>0&&f(te.UNTERMINATED_CLOSING_BRACE,o(),0),w=k(p,g)||m(g),g.braceNest=0,w;default:{let j=!0,$=!0,L=!0;if(H(p))return g.braceNest>0&&f(te.UNTERMINATED_CLOSING_BRACE,o(),0),w=d(g,1,P(p)),g.braceNest=0,g.inLinked=!1,w;if(g.braceNest>0&&(g.currentType===5||g.currentType===6||g.currentType===7))return f(te.UNTERMINATED_CLOSING_BRACE,o(),0),g.braceNest=0,U(p,g);if(j=h(p,g))return w=d(g,5,St(p)),C(p),w;if($=y(p,g))return w=d(g,6,ke(p)),C(p),w;if(L=S(p,g))return w=d(g,7,B(p)),C(p),w;if(!j&&!$&&!L)return w=d(g,13,de(p)),f(te.INVALID_TOKEN_IN_PLACEHOLDER,o(),0,w.value),C(p),w;break}}return w}function k(p,g){const{currentType:w}=g;let I=null;const j=p.currentChar();switch((w===8||w===9||w===12||w===10)&&(j===Ue||j===gt)&&f(te.INVALID_LINKED_FORMAT,o(),0),j){case"@":return p.next(),I=d(g,8,"@"),g.inLinked=!0,I;case".":return C(p),p.next(),d(g,9,".");case":":return C(p),p.next(),d(g,10,":");default:return H(p)?(I=d(g,1,P(p)),g.braceNest=0,g.inLinked=!1,I):T(p,g)||F(p,g)?(C(p),k(p,g)):A(p,g)?(C(p),d(g,12,_(p))):x(p,g)?(C(p),j==="{"?D(p,g)||I:d(g,11,b(p))):(w===8&&f(te.INVALID_LINKED_FORMAT,o(),0),g.braceNest=0,g.inLinked=!1,U(p,g))}}function U(p,g){let w={type:14};if(g.braceNest>0)return D(p,g)||m(g);if(g.inLinked)return k(p,g)||m(g);switch(p.currentChar()){case"{":return D(p,g)||m(g);case"}":return f(te.UNBALANCED_CLOSING_BRACE,o(),0),p.next(),d(g,3,"}");case"@":return k(p,g)||m(g);default:{if(H(p))return w=d(g,1,P(p)),g.braceNest=0,g.inLinked=!1,w;const{isModulo:j,hasSpace:$}=G(p);if(j)return $?d(g,0,st(p)):d(g,4,ut(p));if(K(p))return d(g,0,st(p));break}}return w}function V(){const{currentType:p,offset:g,startLoc:w,endLoc:I}=l;return l.lastType=p,l.lastOffset=g,l.lastStartLoc=w,l.lastEndLoc=I,l.offset=s(),l.startLoc=o(),r.currentChar()===Ot?d(l,14):U(r,l)}return{nextToken:V,currentOffset:s,currentPosition:o,context:c}}const mu="parser",gu=/(?:\\\\|\\'|\\u([0-9a-fA-F]{4})|\\U([0-9a-fA-F]{6}))/g;function _u(e,t,n){switch(e){case"\\\\":return"\\";case"\\'":return"'";default:{const r=parseInt(t||n,16);return r<=55295||r>=57344?String.fromCodePoint(r):"�"}}}function yu(e={}){const t=e.location!==!1,{onError:n,onWarn:r}=e;function s(h,y,S,T,...A){const F=h.currentPosition();if(F.offset+=T,F.column+=T,n){const x=t?Cr(S,F):null,H=On(y,x,{domain:mu,args:A});n(H)}}function o(h,y,S,T,...A){const F=h.currentPosition();if(F.offset+=T,F.column+=T,r){const x=t?Cr(S,F):null;r(ou(y,x,A))}}function i(h,y,S){const T={type:h};return t&&(T.start=y,T.end=y,T.loc={start:S,end:S}),T}function a(h,y,S,T){t&&(h.end=y,h.loc&&(h.loc.end=S))}function l(h,y){const S=h.context(),T=i(3,S.offset,S.startLoc);return T.value=y,a(T,h.currentOffset(),h.currentPosition()),T}function c(h,y){const S=h.context(),{lastOffset:T,lastStartLoc:A}=S,F=i(5,T,A);return F.index=parseInt(y,10),h.nextToken(),a(F,h.currentOffset(),h.currentPosition()),F}function u(h,y,S){const T=h.context(),{lastOffset:A,lastStartLoc:F}=T,x=i(4,A,F);return x.key=y,S===!0&&(x.modulo=!0),h.nextToken(),a(x,h.currentOffset(),h.currentPosition()),x}function f(h,y){const S=h.context(),{lastOffset:T,lastStartLoc:A}=S,F=i(9,T,A);return F.value=y.replace(gu,_u),h.nextToken(),a(F,h.currentOffset(),h.currentPosition()),F}function d(h){const y=h.nextToken(),S=h.context(),{lastOffset:T,lastStartLoc:A}=S,F=i(8,T,A);return y.type!==12?(s(h,te.UNEXPECTED_EMPTY_LINKED_MODIFIER,S.lastStartLoc,0),F.value="",a(F,T,A),{nextConsumeToken:y,node:F}):(y.value==null&&s(h,te.UNEXPECTED_LEXICAL_ANALYSIS,S.lastStartLoc,0,ot(y)),F.value=y.value||"",a(F,h.currentOffset(),h.currentPosition()),{node:F})}function m(h,y){const S=h.context(),T=i(7,S.offset,S.startLoc);return T.value=y,a(T,h.currentOffset(),h.currentPosition()),T}function E(h){const y=h.context(),S=i(6,y.offset,y.startLoc);let T=h.nextToken();if(T.type===9){const A=d(h);S.modifier=A.node,T=A.nextConsumeToken||h.nextToken()}switch(T.type!==10&&s(h,te.UNEXPECTED_LEXICAL_ANALYSIS,y.lastStartLoc,0,ot(T)),T=h.nextToken(),T.type===2&&(T=h.nextToken()),T.type){case 11:T.value==null&&s(h,te.UNEXPECTED_LEXICAL_ANALYSIS,y.lastStartLoc,0,ot(T)),S.key=m(h,T.value||"");break;case 5:T.value==null&&s(h,te.UNEXPECTED_LEXICAL_ANALYSIS,y.lastStartLoc,0,ot(T)),S.key=u(h,T.value||"");break;case 6:T.value==null&&s(h,te.UNEXPECTED_LEXICAL_ANALYSIS,y.lastStartLoc,0,ot(T)),S.key=c(h,T.value||"");break;case 7:T.value==null&&s(h,te.UNEXPECTED_LEXICAL_ANALYSIS,y.lastStartLoc,0,ot(T)),S.key=f(h,T.value||"");break;default:{s(h,te.UNEXPECTED_EMPTY_LINKED_KEY,y.lastStartLoc,0);const A=h.context(),F=i(7,A.offset,A.startLoc);return F.value="",a(F,A.offset,A.startLoc),S.key=F,a(S,A.offset,A.startLoc),{nextConsumeToken:T,node:S}}}return a(S,h.currentOffset(),h.currentPosition()),{node:S}}function v(h){const y=h.context(),S=y.currentType===1?h.currentOffset():y.offset,T=y.currentType===1?y.endLoc:y.startLoc,A=i(2,S,T);A.items=[];let F=null,x=null;do{const K=F||h.nextToken();switch(F=null,K.type){case 0:K.value==null&&s(h,te.UNEXPECTED_LEXICAL_ANALYSIS,y.lastStartLoc,0,ot(K)),A.items.push(l(h,K.value||""));break;case 6:K.value==null&&s(h,te.UNEXPECTED_LEXICAL_ANALYSIS,y.lastStartLoc,0,ot(K)),A.items.push(c(h,K.value||""));break;case 4:x=!0;break;case 5:K.value==null&&s(h,te.UNEXPECTED_LEXICAL_ANALYSIS,y.lastStartLoc,0,ot(K)),A.items.push(u(h,K.value||"",!!x)),x&&(o(h,Xs.USE_MODULO_SYNTAX,y.lastStartLoc,0,ot(K)),x=null);break;case 7:K.value==null&&s(h,te.UNEXPECTED_LEXICAL_ANALYSIS,y.lastStartLoc,0,ot(K)),A.items.push(f(h,K.value||""));break;case 8:{const ee=E(h);A.items.push(ee.node),F=ee.nextConsumeToken||null;break}}}while(y.currentType!==14&&y.currentType!==1);const H=y.currentType===1?y.lastOffset:h.currentOffset(),G=y.currentType===1?y.lastEndLoc:h.currentPosition();return a(A,H,G),A}function C(h,y,S,T){const A=h.context();let F=T.items.length===0;const x=i(1,y,S);x.cases=[],x.cases.push(T);do{const H=v(h);F||(F=H.items.length===0),x.cases.push(H)}while(A.currentType!==14);return F&&s(h,te.MUST_HAVE_MESSAGES_IN_PLURAL,S,0),a(x,h.currentOffset(),h.currentPosition()),x}function O(h){const y=h.context(),{offset:S,startLoc:T}=y,A=v(h);return y.currentType===14?A:C(h,S,T,A)}function N(h){const y=pu(h,Ll({},e)),S=y.context(),T=i(0,S.offset,S.startLoc);return t&&T.loc&&(T.loc.source=h),T.body=O(y),e.onCacheKey&&(T.cacheKey=e.onCacheKey(h)),S.currentType!==14&&s(y,te.UNEXPECTED_LEXICAL_ANALYSIS,S.lastStartLoc,0,h[S.offset]||""),a(T,y.currentOffset(),y.currentPosition()),T}return{parse:N}}function ot(e){if(e.type===14)return"EOF";const t=(e.value||"").replace(/\r?\n/gu,"\\n");return t.length>10?t.slice(0,9)+"…":t}function bu(e,t={}){const n={ast:e,helpers:new Set};return{context:()=>n,helper:o=>(n.helpers.add(o),o)}}function Fo(e,t){for(let n=0;nHo(n)),e}function Ho(e){if(e.items.length===1){const t=e.items[0];(t.type===3||t.type===9)&&(e.static=t.value,delete t.value)}else{const t=[];for(let n=0;na;function c(C,O){a.code+=C}function u(C,O=!0){const N=O?s:"";c(o?N+" ".repeat(C):N)}function f(C=!0){const O=++a.indentLevel;C&&u(O)}function d(C=!0){const O=--a.indentLevel;C&&u(O)}function m(){u(a.indentLevel)}return{context:l,push:c,indent:f,deindent:d,newline:m,helper:C=>`_${C}`,needIndent:()=>a.needIndent}}function Ou(e,t){const{helper:n}=e;e.push(`${n("linked")}(`),gn(e,t.key),t.modifier?(e.push(", "),gn(e,t.modifier),e.push(", _type")):e.push(", undefined, _type"),e.push(")")}function Cu(e,t){const{helper:n,needIndent:r}=e;e.push(`${n("normalize")}([`),e.indent(r());const s=t.items.length;for(let o=0;o1){e.push(`${n("plural")}([`),e.indent(r());const s=t.cases.length;for(let o=0;o{const n=xo(t.mode)?t.mode:"normal",r=xo(t.filename)?t.filename:"message.intl",s=!!t.sourceMap,o=t.breakLineCode!=null?t.breakLineCode:n==="arrow"?";":` `,i=t.needIndent?t.needIndent:n!=="arrow",a=e.helpers||[],l=Su(e,{mode:n,filename:r,sourceMap:s,breakLineCode:o,needIndent:i});l.push(n==="normal"?"function __msg__ (ctx) {":"(ctx) => {"),l.indent(i),a.length>0&&(l.push(`const { ${Al(a.map(f=>`${f}: _${f}`),", ")} } = ctx`),l.newline()),l.push("return "),gn(l,e),l.deindent(i),l.push("}"),delete e.helpers;const{code:c,map:u}=l.context();return{ast:e,code:c,map:u?u.toJSON():void 0}};function Nu(e,t={}){const n=Ll({},t),r=!!n.jit,s=!!n.minify,o=n.optimize==null?!0:n.optimize,a=yu(n).parse(e);return r?(o&&Eu(a),s&&rn(a),{ast:a,code:""}):(vu(a,n),Pu(a,n))}/*! * core-base v9.13.1 * (c) 2024 kazuya kawaguchi * Released under the MIT License. - */function Ru(){typeof __INTLIFY_PROD_DEVTOOLS__!="boolean"&&(Ys().__INTLIFY_PROD_DEVTOOLS__=!1)}const $t=[];$t[0]={w:[0],i:[3,0],"[":[4],o:[7]};$t[1]={w:[1],".":[2],"[":[4],o:[7]};$t[2]={w:[2],i:[3,0],0:[3,0]};$t[3]={i:[3,0],0:[3,0],w:[1,1],".":[2,1],"[":[4,1],o:[7,1]};$t[4]={"'":[5,0],'"':[6,0],"[":[4,2],"]":[1,3],o:8,l:[4,0]};$t[5]={"'":[4,0],o:8,l:[5,0]};$t[6]={'"':[4,0],o:8,l:[6,0]};const ku=/^\s?(?:true|false|-?[\d.]+|'[^']*'|"[^"]*")\s?$/;function Iu(e){return ku.test(e)}function Mu(e){const t=e.charCodeAt(0),n=e.charCodeAt(e.length-1);return t===n&&(t===34||t===39)?e.slice(1,-1):e}function xu(e){if(e==null)return"o";switch(e.charCodeAt(0)){case 91:case 93:case 46:case 34:case 39:return e;case 95:case 36:case 45:return"i";case 9:case 10:case 13:case 160:case 65279:case 8232:case 8233:return"w"}return"i"}function Du(e){const t=e.trim();return e.charAt(0)==="0"&&isNaN(parseInt(e))?!1:Iu(t)?Mu(t):"*"+t}function Fu(e){const t=[];let n=-1,r=0,s=0,o,i,a,l,c,u,f;const d=[];d[0]=()=>{i===void 0?i=a:i+=a},d[1]=()=>{i!==void 0&&(t.push(i),i=void 0)},d[2]=()=>{d[0](),s++},d[3]=()=>{if(s>0)s--,r=4,d[0]();else{if(s=0,i===void 0||(i=Du(i),i===!1))return!1;d[1]()}};function m(){const E=e[n+1];if(r===5&&E==="'"||r===6&&E==='"')return n++,a="\\"+E,d[0](),!0}for(;r!==null;)if(n++,o=e[n],!(o==="\\"&&m())){if(l=xu(o),f=$t[r],c=f[l]||f.l||8,c===8||(r=c[0],c[1]!==void 0&&(u=d[c[1]],u&&(a=o,u()===!1))))return;if(r===7)return t}}const $o=new Map;function Hu(e,t){return ue(e)?e[t]:null}function $u(e,t){if(!ue(e))return null;let n=$o.get(t);if(n||(n=Fu(t),n&&$o.set(t,n)),!n)return null;const r=n.length;let s=e,o=0;for(;oe,ju=e=>"",Vu="text",Wu=e=>e.length===0?"":Zc(e),Ku=Qc;function Uo(e,t){return e=Math.abs(e),t===2?e?e>1?1:0:1:e?Math.min(e,2):0}function Bu(e){const t=Ae(e.pluralIndex)?e.pluralIndex:-1;return e.named&&(Ae(e.named.count)||Ae(e.named.n))?Ae(e.named.count)?e.named.count:Ae(e.named.n)?e.named.n:t:t}function Gu(e,t){t.count||(t.count=e),t.n||(t.n=e)}function zu(e={}){const t=e.locale,n=Bu(e),r=ue(e.pluralRules)&&z(t)&&ve(e.pluralRules[t])?e.pluralRules[t]:Uo,s=ue(e.pluralRules)&&z(t)&&ve(e.pluralRules[t])?Uo:void 0,o=O=>O[r(n,O.length,s)],i=e.list||[],a=O=>i[O],l=e.named||{};Ae(e.pluralIndex)&&Gu(n,l);const c=O=>l[O];function u(O){const N=ve(e.messages)?e.messages(O):ue(e.messages)?e.messages[O]:!1;return N||(e.parent?e.parent.message(O):ju)}const f=O=>e.modifiers?e.modifiers[O]:Uu,d=le(e.processor)&&ve(e.processor.normalize)?e.processor.normalize:Wu,m=le(e.processor)&&ve(e.processor.interpolate)?e.processor.interpolate:Ku,E=le(e.processor)&&z(e.processor.type)?e.processor.type:Vu,C={list:a,named:c,plural:o,linked:(O,...N)=>{const[h,y]=N;let S="text",T="";N.length===1?ue(h)?(T=h.modifier||T,S=h.type||S):z(h)&&(T=h||T):N.length===2&&(z(h)&&(T=h||T),z(y)&&(S=y||S));const A=u(O)(C),D=S==="vnode"&&Oe(A)&&T?A[0]:A;return T?f(T)(D,S):D},message:u,type:E,interpolate:m,normalize:d,values:De({},i,l)};return C}let Vn=null;function Yu(e){Vn=e}function Xu(e,t,n){Vn&&Vn.emit("i18n:init",{timestamp:Date.now(),i18n:e,version:t,meta:n})}const qu=Ju("function:translate");function Ju(e){return t=>Vn&&Vn.emit(e,t)}const Pl=Xs.__EXTEND_POINT__,Wt=jr(Pl),Qu={NOT_FOUND_KEY:Pl,FALLBACK_TO_TRANSLATE:Wt(),CANNOT_FORMAT_NUMBER:Wt(),FALLBACK_TO_NUMBER_FORMAT:Wt(),CANNOT_FORMAT_DATE:Wt(),FALLBACK_TO_DATE_FORMAT:Wt(),EXPERIMENTAL_CUSTOM_MESSAGE_COMPILER:Wt(),__EXTEND_POINT__:Wt()},Nl=ee.__EXTEND_POINT__,Kt=jr(Nl),pt={INVALID_ARGUMENT:Nl,INVALID_DATE_ARGUMENT:Kt(),INVALID_ISO_DATE_ARGUMENT:Kt(),NOT_SUPPORT_NON_STRING_MESSAGE:Kt(),NOT_SUPPORT_LOCALE_PROMISE_VALUE:Kt(),NOT_SUPPORT_LOCALE_ASYNC_FUNCTION:Kt(),NOT_SUPPORT_LOCALE_TYPE:Kt(),__EXTEND_POINT__:Kt()};function vt(e){return Sn(e,null,void 0)}function Js(e,t){return t.locale!=null?jo(t.locale):jo(e.locale)}let os;function jo(e){if(z(e))return e;if(ve(e)){if(e.resolvedOnce&&os!=null)return os;if(e.constructor.name==="Function"){const t=e();if(Jc(t))throw vt(pt.NOT_SUPPORT_LOCALE_PROMISE_VALUE);return os=t}else throw vt(pt.NOT_SUPPORT_LOCALE_ASYNC_FUNCTION)}else throw vt(pt.NOT_SUPPORT_LOCALE_TYPE)}function Zu(e,t,n){return[...new Set([n,...Oe(t)?t:ue(t)?Object.keys(t):z(t)?[t]:[n]])]}function Rl(e,t,n){const r=z(n)?n:Cr,s=e;s.__localeChainCache||(s.__localeChainCache=new Map);let o=s.__localeChainCache.get(r);if(!o){o=[];let i=[n];for(;Oe(i);)i=Vo(o,i,t);const a=Oe(t)||!le(t)?t:t.default?t.default:null;i=z(a)?[a]:a,Oe(i)&&Vo(o,i,!1),s.__localeChainCache.set(r,o)}return o}function Vo(e,t,n){let r=!0;for(let s=0;s`${e.charAt(0).toLocaleUpperCase()}${e.substr(1)}`;function rf(){return{upper:(e,t)=>t==="text"&&z(e)?e.toUpperCase():t==="vnode"&&ue(e)&&"__v_isVNode"in e?e.children.toUpperCase():e,lower:(e,t)=>t==="text"&&z(e)?e.toLowerCase():t==="vnode"&&ue(e)&&"__v_isVNode"in e?e.children.toLowerCase():e,capitalize:(e,t)=>t==="text"&&z(e)?Ko(e):t==="vnode"&&ue(e)&&"__v_isVNode"in e?Ko(e.children):e}}let kl;function sf(e){kl=e}let Il;function of(e){Il=e}let Ml;function lf(e){Ml=e}let xl=null;const af=e=>{xl=e},cf=()=>xl;let Dl=null;const Bo=e=>{Dl=e},uf=()=>Dl;let Go=0;function ff(e={}){const t=ve(e.onWarn)?e.onWarn:eu,n=z(e.version)?e.version:nf,r=z(e.locale)||ve(e.locale)?e.locale:Cr,s=ve(r)?Cr:r,o=Oe(e.fallbackLocale)||le(e.fallbackLocale)||z(e.fallbackLocale)||e.fallbackLocale===!1?e.fallbackLocale:s,i=le(e.messages)?e.messages:{[s]:{}},a=le(e.datetimeFormats)?e.datetimeFormats:{[s]:{}},l=le(e.numberFormats)?e.numberFormats:{[s]:{}},c=De({},e.modifiers||{},rf()),u=e.pluralRules||{},f=ve(e.missing)?e.missing:null,d=be(e.missingWarn)||Tr(e.missingWarn)?e.missingWarn:!0,m=be(e.fallbackWarn)||Tr(e.fallbackWarn)?e.fallbackWarn:!0,E=!!e.fallbackFormat,v=!!e.unresolving,C=ve(e.postTranslation)?e.postTranslation:null,O=le(e.processor)?e.processor:null,N=be(e.warnHtmlMessage)?e.warnHtmlMessage:!0,h=!!e.escapeParameter,y=ve(e.messageCompiler)?e.messageCompiler:kl,S=ve(e.messageResolver)?e.messageResolver:Il||Hu,T=ve(e.localeFallbacker)?e.localeFallbacker:Ml||Zu,A=ue(e.fallbackContext)?e.fallbackContext:void 0,D=e,x=ue(D.__datetimeFormatters)?D.__datetimeFormatters:new Map,H=ue(D.__numberFormatters)?D.__numberFormatters:new Map,Y=ue(D.__meta)?D.__meta:{};Go++;const B={version:n,cid:Go,locale:r,fallbackLocale:o,messages:i,modifiers:c,pluralRules:u,missing:f,missingWarn:d,fallbackWarn:m,fallbackFormat:E,unresolving:v,postTranslation:C,processor:O,warnHtmlMessage:N,escapeParameter:h,messageCompiler:y,messageResolver:S,localeFallbacker:T,fallbackContext:A,onWarn:t,__meta:Y};return B.datetimeFormats=a,B.numberFormats=l,B.__datetimeFormatters=x,B.__numberFormatters=H,__INTLIFY_PROD_DEVTOOLS__&&Xu(B,n,Y),B}function Qs(e,t,n,r,s){const{missing:o,onWarn:i}=e;if(o!==null){const a=o(e,n,t,s);return z(a)?a:t}else return t}function Nn(e,t,n){const r=e;r.__localeChainCache=new Map,e.localeFallbacker(e,n,t)}function df(e,t){return e===t?!1:e.split("-")[0]===t.split("-")[0]}function hf(e,t){const n=t.indexOf(e);if(n===-1)return!1;for(let r=n+1;rpf(n,e)}function pf(e,t){const n=t.b||t.body;if((n.t||n.type)===1){const r=n,s=r.c||r.cases;return e.plural(s.reduce((o,i)=>[...o,zo(e,i)],[]))}else return zo(e,n)}function zo(e,t){const n=t.s||t.static;if(n)return e.type==="text"?n:e.normalize([n]);{const r=(t.i||t.items).reduce((s,o)=>[...s,ws(e,o)],[]);return e.normalize(r)}}function ws(e,t){const n=t.t||t.type;switch(n){case 3:{const r=t;return r.v||r.value}case 9:{const r=t;return r.v||r.value}case 4:{const r=t;return e.interpolate(e.named(r.k||r.key))}case 5:{const r=t;return e.interpolate(e.list(r.i!=null?r.i:r.index))}case 6:{const r=t,s=r.m||r.modifier;return e.linked(ws(e,r.k||r.key),s?ws(e,s):void 0,e.type)}case 7:{const r=t;return r.v||r.value}case 8:{const r=t;return r.v||r.value}default:throw new Error(`unhandled node type on format message part: ${n}`)}}const mf=e=>e;let nr=Object.create(null);const _n=e=>ue(e)&&(e.t===0||e.type===0)&&("b"in e||"body"in e);function gf(e,t={}){let n=!1;const r=t.onError||lu;return t.onError=s=>{n=!0,r(s)},{...Nu(e,t),detectError:n}}function _f(e,t){if(z(e)){be(t.warnHtmlMessage)&&t.warnHtmlMessage;const r=(t.onCacheKey||mf)(e),s=nr[r];if(s)return s;const{ast:o,detectError:i}=gf(e,{...t,location:!1,jit:!0}),a=is(o);return i?a:nr[r]=a}else{const n=e.cacheKey;if(n){const r=nr[n];return r||(nr[n]=is(e))}else return is(e)}}const Yo=()=>"",et=e=>ve(e);function Xo(e,...t){const{fallbackFormat:n,postTranslation:r,unresolving:s,messageCompiler:o,fallbackLocale:i,messages:a}=e,[l,c]=Ts(...t),u=be(c.missingWarn)?c.missingWarn:e.missingWarn,f=be(c.fallbackWarn)?c.fallbackWarn:e.fallbackWarn,d=be(c.escapeParameter)?c.escapeParameter:e.escapeParameter,m=!!c.resolvedMessage,E=z(c.default)||be(c.default)?be(c.default)?o?l:()=>l:c.default:n?o?l:()=>l:"",v=n||E!=="",C=Js(e,c);d&&yf(c);let[O,N,h]=m?[l,C,a[C]||{}]:Fl(e,l,C,i,f,u),y=O,S=l;if(!m&&!(z(y)||_n(y)||et(y))&&v&&(y=E,S=y),!m&&(!(z(y)||_n(y)||et(y))||!z(N)))return s?Vr:l;let T=!1;const A=()=>{T=!0},D=et(y)?y:Hl(e,l,N,y,S,A);if(T)return y;const x=Ef(e,N,h,c),H=zu(x),Y=bf(e,D,H),B=r?r(Y,l):Y;if(__INTLIFY_PROD_DEVTOOLS__){const re={timestamp:Date.now(),key:z(l)?l:et(y)?y.key:"",locale:N||(et(y)?y.locale:""),format:z(y)?y:et(y)?y.source:"",message:B};re.meta=De({},e.__meta,cf()||{}),qu(re)}return B}function yf(e){Oe(e.list)?e.list=e.list.map(t=>z(t)?Mo(t):t):ue(e.named)&&Object.keys(e.named).forEach(t=>{z(e.named[t])&&(e.named[t]=Mo(e.named[t]))})}function Fl(e,t,n,r,s,o){const{messages:i,onWarn:a,messageResolver:l,localeFallbacker:c}=e,u=c(e,r,n);let f={},d,m=null;const E="translate";for(let v=0;vr;return c.locale=n,c.key=t,c}const l=i(r,vf(e,n,s,r,a,o));return l.locale=n,l.key=t,l.source=r,l}function bf(e,t,n){return t(n)}function Ts(...e){const[t,n,r]=e,s={};if(!z(t)&&!Ae(t)&&!et(t)&&!_n(t))throw vt(pt.INVALID_ARGUMENT);const o=Ae(t)?String(t):(et(t),t);return Ae(n)?s.plural=n:z(n)?s.default=n:le(n)&&!Ur(n)?s.named=n:Oe(n)&&(s.list=n),Ae(r)?s.plural=r:z(r)?s.default=r:le(r)&&De(s,r),[o,s]}function vf(e,t,n,r,s,o){return{locale:t,key:n,warnHtmlMessage:s,onError:i=>{throw o&&o(i),i},onCacheKey:i=>zc(t,n,i)}}function Ef(e,t,n,r){const{modifiers:s,pluralRules:o,messageResolver:i,fallbackLocale:a,fallbackWarn:l,missingWarn:c,fallbackContext:u}=e,d={locale:t,modifiers:s,pluralRules:o,messages:m=>{let E=i(n,m);if(E==null&&u){const[,,v]=Fl(u,m,t,a,l,c);E=i(v,m)}if(z(E)||_n(E)){let v=!1;const O=Hl(e,m,t,E,m,()=>{v=!0});return v?Yo:O}else return et(E)?E:Yo}};return e.processor&&(d.processor=e.processor),r.list&&(d.list=r.list),r.named&&(d.named=r.named),Ae(r.plural)&&(d.pluralIndex=r.plural),d}function qo(e,...t){const{datetimeFormats:n,unresolving:r,fallbackLocale:s,onWarn:o,localeFallbacker:i}=e,{__datetimeFormatters:a}=e,[l,c,u,f]=Ss(...t),d=be(u.missingWarn)?u.missingWarn:e.missingWarn;be(u.fallbackWarn)?u.fallbackWarn:e.fallbackWarn;const m=!!u.part,E=Js(e,u),v=i(e,s,E);if(!z(l)||l==="")return new Intl.DateTimeFormat(E,f).format(c);let C={},O,N=null;const h="datetime format";for(let T=0;T{$l.includes(l)?i[l]=n[l]:o[l]=n[l]}),z(r)?o.locale=r:le(r)&&(i=r),le(s)&&(i=s),[o.key||"",a,o,i]}function Jo(e,t,n){const r=e;for(const s in n){const o=`${t}__${s}`;r.__datetimeFormatters.has(o)&&r.__datetimeFormatters.delete(o)}}function Qo(e,...t){const{numberFormats:n,unresolving:r,fallbackLocale:s,onWarn:o,localeFallbacker:i}=e,{__numberFormatters:a}=e,[l,c,u,f]=Os(...t),d=be(u.missingWarn)?u.missingWarn:e.missingWarn;be(u.fallbackWarn)?u.fallbackWarn:e.fallbackWarn;const m=!!u.part,E=Js(e,u),v=i(e,s,E);if(!z(l)||l==="")return new Intl.NumberFormat(E,f).format(c);let C={},O,N=null;const h="number format";for(let T=0;T{Ul.includes(l)?i[l]=n[l]:o[l]=n[l]}),z(r)?o.locale=r:le(r)&&(i=r),le(s)&&(i=s),[o.key||"",a,o,i]}function Zo(e,t,n){const r=e;for(const s in n){const o=`${t}__${s}`;r.__numberFormatters.has(o)&&r.__numberFormatters.delete(o)}}Ru();/** + */function Ru(){typeof __INTLIFY_PROD_DEVTOOLS__!="boolean"&&(Ys().__INTLIFY_PROD_DEVTOOLS__=!1)}const $t=[];$t[0]={w:[0],i:[3,0],"[":[4],o:[7]};$t[1]={w:[1],".":[2],"[":[4],o:[7]};$t[2]={w:[2],i:[3,0],0:[3,0]};$t[3]={i:[3,0],0:[3,0],w:[1,1],".":[2,1],"[":[4,1],o:[7,1]};$t[4]={"'":[5,0],'"':[6,0],"[":[4,2],"]":[1,3],o:8,l:[4,0]};$t[5]={"'":[4,0],o:8,l:[5,0]};$t[6]={'"':[4,0],o:8,l:[6,0]};const ku=/^\s?(?:true|false|-?[\d.]+|'[^']*'|"[^"]*")\s?$/;function Iu(e){return ku.test(e)}function Mu(e){const t=e.charCodeAt(0),n=e.charCodeAt(e.length-1);return t===n&&(t===34||t===39)?e.slice(1,-1):e}function xu(e){if(e==null)return"o";switch(e.charCodeAt(0)){case 91:case 93:case 46:case 34:case 39:return e;case 95:case 36:case 45:return"i";case 9:case 10:case 13:case 160:case 65279:case 8232:case 8233:return"w"}return"i"}function Du(e){const t=e.trim();return e.charAt(0)==="0"&&isNaN(parseInt(e))?!1:Iu(t)?Mu(t):"*"+t}function Fu(e){const t=[];let n=-1,r=0,s=0,o,i,a,l,c,u,f;const d=[];d[0]=()=>{i===void 0?i=a:i+=a},d[1]=()=>{i!==void 0&&(t.push(i),i=void 0)},d[2]=()=>{d[0](),s++},d[3]=()=>{if(s>0)s--,r=4,d[0]();else{if(s=0,i===void 0||(i=Du(i),i===!1))return!1;d[1]()}};function m(){const E=e[n+1];if(r===5&&E==="'"||r===6&&E==='"')return n++,a="\\"+E,d[0](),!0}for(;r!==null;)if(n++,o=e[n],!(o==="\\"&&m())){if(l=xu(o),f=$t[r],c=f[l]||f.l||8,c===8||(r=c[0],c[1]!==void 0&&(u=d[c[1]],u&&(a=o,u()===!1))))return;if(r===7)return t}}const $o=new Map;function Hu(e,t){return ue(e)?e[t]:null}function $u(e,t){if(!ue(e))return null;let n=$o.get(t);if(n||(n=Fu(t),n&&$o.set(t,n)),!n)return null;const r=n.length;let s=e,o=0;for(;oe,ju=e=>"",Vu="text",Wu=e=>e.length===0?"":Zc(e),Ku=Qc;function Uo(e,t){return e=Math.abs(e),t===2?e?e>1?1:0:1:e?Math.min(e,2):0}function Bu(e){const t=Ae(e.pluralIndex)?e.pluralIndex:-1;return e.named&&(Ae(e.named.count)||Ae(e.named.n))?Ae(e.named.count)?e.named.count:Ae(e.named.n)?e.named.n:t:t}function Gu(e,t){t.count||(t.count=e),t.n||(t.n=e)}function zu(e={}){const t=e.locale,n=Bu(e),r=ue(e.pluralRules)&&Y(t)&&ve(e.pluralRules[t])?e.pluralRules[t]:Uo,s=ue(e.pluralRules)&&Y(t)&&ve(e.pluralRules[t])?Uo:void 0,o=O=>O[r(n,O.length,s)],i=e.list||[],a=O=>i[O],l=e.named||{};Ae(e.pluralIndex)&&Gu(n,l);const c=O=>l[O];function u(O){const N=ve(e.messages)?e.messages(O):ue(e.messages)?e.messages[O]:!1;return N||(e.parent?e.parent.message(O):ju)}const f=O=>e.modifiers?e.modifiers[O]:Uu,d=le(e.processor)&&ve(e.processor.normalize)?e.processor.normalize:Wu,m=le(e.processor)&&ve(e.processor.interpolate)?e.processor.interpolate:Ku,E=le(e.processor)&&Y(e.processor.type)?e.processor.type:Vu,C={list:a,named:c,plural:o,linked:(O,...N)=>{const[h,y]=N;let S="text",T="";N.length===1?ue(h)?(T=h.modifier||T,S=h.type||S):Y(h)&&(T=h||T):N.length===2&&(Y(h)&&(T=h||T),Y(y)&&(S=y||S));const A=u(O)(C),F=S==="vnode"&&Oe(A)&&T?A[0]:A;return T?f(T)(F,S):F},message:u,type:E,interpolate:m,normalize:d,values:De({},i,l)};return C}let Wn=null;function Yu(e){Wn=e}function Xu(e,t,n){Wn&&Wn.emit("i18n:init",{timestamp:Date.now(),i18n:e,version:t,meta:n})}const qu=Ju("function:translate");function Ju(e){return t=>Wn&&Wn.emit(e,t)}const Pl=Xs.__EXTEND_POINT__,Wt=Vr(Pl),Qu={NOT_FOUND_KEY:Pl,FALLBACK_TO_TRANSLATE:Wt(),CANNOT_FORMAT_NUMBER:Wt(),FALLBACK_TO_NUMBER_FORMAT:Wt(),CANNOT_FORMAT_DATE:Wt(),FALLBACK_TO_DATE_FORMAT:Wt(),EXPERIMENTAL_CUSTOM_MESSAGE_COMPILER:Wt(),__EXTEND_POINT__:Wt()},Nl=te.__EXTEND_POINT__,Kt=Vr(Nl),pt={INVALID_ARGUMENT:Nl,INVALID_DATE_ARGUMENT:Kt(),INVALID_ISO_DATE_ARGUMENT:Kt(),NOT_SUPPORT_NON_STRING_MESSAGE:Kt(),NOT_SUPPORT_LOCALE_PROMISE_VALUE:Kt(),NOT_SUPPORT_LOCALE_ASYNC_FUNCTION:Kt(),NOT_SUPPORT_LOCALE_TYPE:Kt(),__EXTEND_POINT__:Kt()};function vt(e){return On(e,null,void 0)}function Js(e,t){return t.locale!=null?jo(t.locale):jo(e.locale)}let os;function jo(e){if(Y(e))return e;if(ve(e)){if(e.resolvedOnce&&os!=null)return os;if(e.constructor.name==="Function"){const t=e();if(Jc(t))throw vt(pt.NOT_SUPPORT_LOCALE_PROMISE_VALUE);return os=t}else throw vt(pt.NOT_SUPPORT_LOCALE_ASYNC_FUNCTION)}else throw vt(pt.NOT_SUPPORT_LOCALE_TYPE)}function Zu(e,t,n){return[...new Set([n,...Oe(t)?t:ue(t)?Object.keys(t):Y(t)?[t]:[n]])]}function Rl(e,t,n){const r=Y(n)?n:Lr,s=e;s.__localeChainCache||(s.__localeChainCache=new Map);let o=s.__localeChainCache.get(r);if(!o){o=[];let i=[n];for(;Oe(i);)i=Vo(o,i,t);const a=Oe(t)||!le(t)?t:t.default?t.default:null;i=Y(a)?[a]:a,Oe(i)&&Vo(o,i,!1),s.__localeChainCache.set(r,o)}return o}function Vo(e,t,n){let r=!0;for(let s=0;s`${e.charAt(0).toLocaleUpperCase()}${e.substr(1)}`;function rf(){return{upper:(e,t)=>t==="text"&&Y(e)?e.toUpperCase():t==="vnode"&&ue(e)&&"__v_isVNode"in e?e.children.toUpperCase():e,lower:(e,t)=>t==="text"&&Y(e)?e.toLowerCase():t==="vnode"&&ue(e)&&"__v_isVNode"in e?e.children.toLowerCase():e,capitalize:(e,t)=>t==="text"&&Y(e)?Ko(e):t==="vnode"&&ue(e)&&"__v_isVNode"in e?Ko(e.children):e}}let kl;function sf(e){kl=e}let Il;function of(e){Il=e}let Ml;function lf(e){Ml=e}let xl=null;const af=e=>{xl=e},cf=()=>xl;let Dl=null;const Bo=e=>{Dl=e},uf=()=>Dl;let Go=0;function ff(e={}){const t=ve(e.onWarn)?e.onWarn:eu,n=Y(e.version)?e.version:nf,r=Y(e.locale)||ve(e.locale)?e.locale:Lr,s=ve(r)?Lr:r,o=Oe(e.fallbackLocale)||le(e.fallbackLocale)||Y(e.fallbackLocale)||e.fallbackLocale===!1?e.fallbackLocale:s,i=le(e.messages)?e.messages:{[s]:{}},a=le(e.datetimeFormats)?e.datetimeFormats:{[s]:{}},l=le(e.numberFormats)?e.numberFormats:{[s]:{}},c=De({},e.modifiers||{},rf()),u=e.pluralRules||{},f=ve(e.missing)?e.missing:null,d=be(e.missingWarn)||Sr(e.missingWarn)?e.missingWarn:!0,m=be(e.fallbackWarn)||Sr(e.fallbackWarn)?e.fallbackWarn:!0,E=!!e.fallbackFormat,v=!!e.unresolving,C=ve(e.postTranslation)?e.postTranslation:null,O=le(e.processor)?e.processor:null,N=be(e.warnHtmlMessage)?e.warnHtmlMessage:!0,h=!!e.escapeParameter,y=ve(e.messageCompiler)?e.messageCompiler:kl,S=ve(e.messageResolver)?e.messageResolver:Il||Hu,T=ve(e.localeFallbacker)?e.localeFallbacker:Ml||Zu,A=ue(e.fallbackContext)?e.fallbackContext:void 0,F=e,x=ue(F.__datetimeFormatters)?F.__datetimeFormatters:new Map,H=ue(F.__numberFormatters)?F.__numberFormatters:new Map,G=ue(F.__meta)?F.__meta:{};Go++;const K={version:n,cid:Go,locale:r,fallbackLocale:o,messages:i,modifiers:c,pluralRules:u,missing:f,missingWarn:d,fallbackWarn:m,fallbackFormat:E,unresolving:v,postTranslation:C,processor:O,warnHtmlMessage:N,escapeParameter:h,messageCompiler:y,messageResolver:S,localeFallbacker:T,fallbackContext:A,onWarn:t,__meta:G};return K.datetimeFormats=a,K.numberFormats=l,K.__datetimeFormatters=x,K.__numberFormatters=H,__INTLIFY_PROD_DEVTOOLS__&&Xu(K,n,G),K}function Qs(e,t,n,r,s){const{missing:o,onWarn:i}=e;if(o!==null){const a=o(e,n,t,s);return Y(a)?a:t}else return t}function Rn(e,t,n){const r=e;r.__localeChainCache=new Map,e.localeFallbacker(e,n,t)}function df(e,t){return e===t?!1:e.split("-")[0]===t.split("-")[0]}function hf(e,t){const n=t.indexOf(e);if(n===-1)return!1;for(let r=n+1;rpf(n,e)}function pf(e,t){const n=t.b||t.body;if((n.t||n.type)===1){const r=n,s=r.c||r.cases;return e.plural(s.reduce((o,i)=>[...o,zo(e,i)],[]))}else return zo(e,n)}function zo(e,t){const n=t.s||t.static;if(n)return e.type==="text"?n:e.normalize([n]);{const r=(t.i||t.items).reduce((s,o)=>[...s,ws(e,o)],[]);return e.normalize(r)}}function ws(e,t){const n=t.t||t.type;switch(n){case 3:{const r=t;return r.v||r.value}case 9:{const r=t;return r.v||r.value}case 4:{const r=t;return e.interpolate(e.named(r.k||r.key))}case 5:{const r=t;return e.interpolate(e.list(r.i!=null?r.i:r.index))}case 6:{const r=t,s=r.m||r.modifier;return e.linked(ws(e,r.k||r.key),s?ws(e,s):void 0,e.type)}case 7:{const r=t;return r.v||r.value}case 8:{const r=t;return r.v||r.value}default:throw new Error(`unhandled node type on format message part: ${n}`)}}const mf=e=>e;let rr=Object.create(null);const _n=e=>ue(e)&&(e.t===0||e.type===0)&&("b"in e||"body"in e);function gf(e,t={}){let n=!1;const r=t.onError||lu;return t.onError=s=>{n=!0,r(s)},{...Nu(e,t),detectError:n}}function _f(e,t){if(Y(e)){be(t.warnHtmlMessage)&&t.warnHtmlMessage;const r=(t.onCacheKey||mf)(e),s=rr[r];if(s)return s;const{ast:o,detectError:i}=gf(e,{...t,location:!1,jit:!0}),a=is(o);return i?a:rr[r]=a}else{const n=e.cacheKey;if(n){const r=rr[n];return r||(rr[n]=is(e))}else return is(e)}}const Yo=()=>"",et=e=>ve(e);function Xo(e,...t){const{fallbackFormat:n,postTranslation:r,unresolving:s,messageCompiler:o,fallbackLocale:i,messages:a}=e,[l,c]=Ts(...t),u=be(c.missingWarn)?c.missingWarn:e.missingWarn,f=be(c.fallbackWarn)?c.fallbackWarn:e.fallbackWarn,d=be(c.escapeParameter)?c.escapeParameter:e.escapeParameter,m=!!c.resolvedMessage,E=Y(c.default)||be(c.default)?be(c.default)?o?l:()=>l:c.default:n?o?l:()=>l:"",v=n||E!=="",C=Js(e,c);d&&yf(c);let[O,N,h]=m?[l,C,a[C]||{}]:Fl(e,l,C,i,f,u),y=O,S=l;if(!m&&!(Y(y)||_n(y)||et(y))&&v&&(y=E,S=y),!m&&(!(Y(y)||_n(y)||et(y))||!Y(N)))return s?Wr:l;let T=!1;const A=()=>{T=!0},F=et(y)?y:Hl(e,l,N,y,S,A);if(T)return y;const x=Ef(e,N,h,c),H=zu(x),G=bf(e,F,H),K=r?r(G,l):G;if(__INTLIFY_PROD_DEVTOOLS__){const ee={timestamp:Date.now(),key:Y(l)?l:et(y)?y.key:"",locale:N||(et(y)?y.locale:""),format:Y(y)?y:et(y)?y.source:"",message:K};ee.meta=De({},e.__meta,cf()||{}),qu(ee)}return K}function yf(e){Oe(e.list)?e.list=e.list.map(t=>Y(t)?Mo(t):t):ue(e.named)&&Object.keys(e.named).forEach(t=>{Y(e.named[t])&&(e.named[t]=Mo(e.named[t]))})}function Fl(e,t,n,r,s,o){const{messages:i,onWarn:a,messageResolver:l,localeFallbacker:c}=e,u=c(e,r,n);let f={},d,m=null;const E="translate";for(let v=0;vr;return c.locale=n,c.key=t,c}const l=i(r,vf(e,n,s,r,a,o));return l.locale=n,l.key=t,l.source=r,l}function bf(e,t,n){return t(n)}function Ts(...e){const[t,n,r]=e,s={};if(!Y(t)&&!Ae(t)&&!et(t)&&!_n(t))throw vt(pt.INVALID_ARGUMENT);const o=Ae(t)?String(t):(et(t),t);return Ae(n)?s.plural=n:Y(n)?s.default=n:le(n)&&!jr(n)?s.named=n:Oe(n)&&(s.list=n),Ae(r)?s.plural=r:Y(r)?s.default=r:le(r)&&De(s,r),[o,s]}function vf(e,t,n,r,s,o){return{locale:t,key:n,warnHtmlMessage:s,onError:i=>{throw o&&o(i),i},onCacheKey:i=>zc(t,n,i)}}function Ef(e,t,n,r){const{modifiers:s,pluralRules:o,messageResolver:i,fallbackLocale:a,fallbackWarn:l,missingWarn:c,fallbackContext:u}=e,d={locale:t,modifiers:s,pluralRules:o,messages:m=>{let E=i(n,m);if(E==null&&u){const[,,v]=Fl(u,m,t,a,l,c);E=i(v,m)}if(Y(E)||_n(E)){let v=!1;const O=Hl(e,m,t,E,m,()=>{v=!0});return v?Yo:O}else return et(E)?E:Yo}};return e.processor&&(d.processor=e.processor),r.list&&(d.list=r.list),r.named&&(d.named=r.named),Ae(r.plural)&&(d.pluralIndex=r.plural),d}function qo(e,...t){const{datetimeFormats:n,unresolving:r,fallbackLocale:s,onWarn:o,localeFallbacker:i}=e,{__datetimeFormatters:a}=e,[l,c,u,f]=Ss(...t),d=be(u.missingWarn)?u.missingWarn:e.missingWarn;be(u.fallbackWarn)?u.fallbackWarn:e.fallbackWarn;const m=!!u.part,E=Js(e,u),v=i(e,s,E);if(!Y(l)||l==="")return new Intl.DateTimeFormat(E,f).format(c);let C={},O,N=null;const h="datetime format";for(let T=0;T{$l.includes(l)?i[l]=n[l]:o[l]=n[l]}),Y(r)?o.locale=r:le(r)&&(i=r),le(s)&&(i=s),[o.key||"",a,o,i]}function Jo(e,t,n){const r=e;for(const s in n){const o=`${t}__${s}`;r.__datetimeFormatters.has(o)&&r.__datetimeFormatters.delete(o)}}function Qo(e,...t){const{numberFormats:n,unresolving:r,fallbackLocale:s,onWarn:o,localeFallbacker:i}=e,{__numberFormatters:a}=e,[l,c,u,f]=Os(...t),d=be(u.missingWarn)?u.missingWarn:e.missingWarn;be(u.fallbackWarn)?u.fallbackWarn:e.fallbackWarn;const m=!!u.part,E=Js(e,u),v=i(e,s,E);if(!Y(l)||l==="")return new Intl.NumberFormat(E,f).format(c);let C={},O,N=null;const h="number format";for(let T=0;T{Ul.includes(l)?i[l]=n[l]:o[l]=n[l]}),Y(r)?o.locale=r:le(r)&&(i=r),le(s)&&(i=s),[o.key||"",a,o,i]}function Zo(e,t,n){const r=e;for(const s in n){const o=`${t}__${s}`;r.__numberFormatters.has(o)&&r.__numberFormatters.delete(o)}}Ru();/** * @vue/shared v3.4.38 * (c) 2018-present Yuxi (Evan) You and Vue contributors * @license MIT -**//*! #__NO_SIDE_EFFECTS__ */function Zs(e,t){const n=new Set(e.split(","));return r=>n.has(r)}const ge={},ln=[],nt=()=>{},wf=()=>!1,Xn=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&(e.charCodeAt(2)>122||e.charCodeAt(2)<97),eo=e=>e.startsWith("onUpdate:"),Fe=Object.assign,to=(e,t)=>{const n=e.indexOf(t);n>-1&&e.splice(n,1)},Tf=Object.prototype.hasOwnProperty,ae=(e,t)=>Tf.call(e,t),Z=Array.isArray,an=e=>qn(e)==="[object Map]",Wr=e=>qn(e)==="[object Set]",ei=e=>qn(e)==="[object Date]",ne=e=>typeof e=="function",Ee=e=>typeof e=="string",mt=e=>typeof e=="symbol",pe=e=>e!==null&&typeof e=="object",jl=e=>(pe(e)||ne(e))&&ne(e.then)&&ne(e.catch),Vl=Object.prototype.toString,qn=e=>Vl.call(e),Sf=e=>qn(e).slice(8,-1),Wl=e=>qn(e)==="[object Object]",no=e=>Ee(e)&&e!=="NaN"&&e[0]!=="-"&&""+parseInt(e,10)===e,cn=Zs(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),Kr=e=>{const t=Object.create(null);return n=>t[n]||(t[n]=e(n))},Of=/-(\w)/g,lt=Kr(e=>e.replace(Of,(t,n)=>n?n.toUpperCase():"")),Cf=/\B([A-Z])/g,Zt=Kr(e=>e.replace(Cf,"-$1").toLowerCase()),Br=Kr(e=>e.charAt(0).toUpperCase()+e.slice(1)),ls=Kr(e=>e?`on${Br(e)}`:""),Ft=(e,t)=>!Object.is(e,t),mr=(e,...t)=>{for(let n=0;n{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,writable:r,value:n})},Lr=e=>{const t=parseFloat(e);return isNaN(t)?e:t};let ti;const Bl=()=>ti||(ti=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{});function ro(e){if(Z(e)){const t={};for(let n=0;n{if(n){const r=n.split(Af);r.length>1&&(t[r[0].trim()]=r[1].trim())}}),t}function so(e){let t="";if(Ee(e))t=e;else if(Z(e))for(let n=0;nGr(n,t))}const zl=e=>!!(e&&e.__v_isRef===!0),Cs=e=>Ee(e)?e:e==null?"":Z(e)||pe(e)&&(e.toString===Vl||!ne(e.toString))?zl(e)?Cs(e.value):JSON.stringify(e,Yl,2):String(e),Yl=(e,t)=>zl(t)?Yl(e,t.value):an(t)?{[`Map(${t.size})`]:[...t.entries()].reduce((n,[r,s],o)=>(n[as(r,o)+" =>"]=s,n),{})}:Wr(t)?{[`Set(${t.size})`]:[...t.values()].map(n=>as(n))}:mt(t)?as(t):pe(t)&&!Z(t)&&!Wl(t)?String(t):t,as=(e,t="")=>{var n;return mt(e)?`Symbol(${(n=e.description)!=null?n:t})`:e};/** +**//*! #__NO_SIDE_EFFECTS__ */function Zs(e,t){const n=new Set(e.split(","));return r=>n.has(r)}const ge={},ln=[],nt=()=>{},wf=()=>!1,qn=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&(e.charCodeAt(2)>122||e.charCodeAt(2)<97),eo=e=>e.startsWith("onUpdate:"),Fe=Object.assign,to=(e,t)=>{const n=e.indexOf(t);n>-1&&e.splice(n,1)},Tf=Object.prototype.hasOwnProperty,ae=(e,t)=>Tf.call(e,t),Z=Array.isArray,an=e=>Jn(e)==="[object Map]",Kr=e=>Jn(e)==="[object Set]",ei=e=>Jn(e)==="[object Date]",re=e=>typeof e=="function",Ee=e=>typeof e=="string",mt=e=>typeof e=="symbol",pe=e=>e!==null&&typeof e=="object",jl=e=>(pe(e)||re(e))&&re(e.then)&&re(e.catch),Vl=Object.prototype.toString,Jn=e=>Vl.call(e),Sf=e=>Jn(e).slice(8,-1),Wl=e=>Jn(e)==="[object Object]",no=e=>Ee(e)&&e!=="NaN"&&e[0]!=="-"&&""+parseInt(e,10)===e,cn=Zs(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),Br=e=>{const t=Object.create(null);return n=>t[n]||(t[n]=e(n))},Of=/-(\w)/g,lt=Br(e=>e.replace(Of,(t,n)=>n?n.toUpperCase():"")),Cf=/\B([A-Z])/g,Zt=Br(e=>e.replace(Cf,"-$1").toLowerCase()),Gr=Br(e=>e.charAt(0).toUpperCase()+e.slice(1)),ls=Br(e=>e?`on${Gr(e)}`:""),Ft=(e,t)=>!Object.is(e,t),gr=(e,...t)=>{for(let n=0;n{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,writable:r,value:n})},Ar=e=>{const t=parseFloat(e);return isNaN(t)?e:t};let ti;const Bl=()=>ti||(ti=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{});function ro(e){if(Z(e)){const t={};for(let n=0;n{if(n){const r=n.split(Af);r.length>1&&(t[r[0].trim()]=r[1].trim())}}),t}function so(e){let t="";if(Ee(e))t=e;else if(Z(e))for(let n=0;nzr(n,t))}const zl=e=>!!(e&&e.__v_isRef===!0),Cs=e=>Ee(e)?e:e==null?"":Z(e)||pe(e)&&(e.toString===Vl||!re(e.toString))?zl(e)?Cs(e.value):JSON.stringify(e,Yl,2):String(e),Yl=(e,t)=>zl(t)?Yl(e,t.value):an(t)?{[`Map(${t.size})`]:[...t.entries()].reduce((n,[r,s],o)=>(n[as(r,o)+" =>"]=s,n),{})}:Kr(t)?{[`Set(${t.size})`]:[...t.values()].map(n=>as(n))}:mt(t)?as(t):pe(t)&&!Z(t)&&!Wl(t)?String(t):t,as=(e,t="")=>{var n;return mt(e)?`Symbol(${(n=e.description)!=null?n:t})`:e};/** * @vue/reactivity v3.4.38 * (c) 2018-present Yuxi (Evan) You and Vue contributors * @license MIT -**/let Xe;class Xl{constructor(t=!1){this.detached=t,this._active=!0,this.effects=[],this.cleanups=[],this.parent=Xe,!t&&Xe&&(this.index=(Xe.scopes||(Xe.scopes=[])).push(this)-1)}get active(){return this._active}run(t){if(this._active){const n=Xe;try{return Xe=this,t()}finally{Xe=n}}}on(){Xe=this}off(){Xe=this.parent}stop(t){if(this._active){let n,r;for(n=0,r=this.effects.length;n=4))break}this._dirtyLevel===1&&(this._dirtyLevel=0),jt()}return this._dirtyLevel>=4}set dirty(t){this._dirtyLevel=t?4:0}run(){if(this._dirtyLevel=0,!this.active)return this.fn();let t=It,n=Yt;try{return It=!0,Yt=this,this._runnings++,ni(this),this.fn()}finally{ri(this),this._runnings--,Yt=n,It=t}}stop(){this.active&&(ni(this),ri(this),this.onStop&&this.onStop(),this.active=!1)}}function Ff(e){return e.value}function ni(e){e._trackId++,e._depsLength=0}function ri(e){if(e.deps.length>e._depsLength){for(let t=e._depsLength;t{const n=new Map;return n.cleanup=e,n.computed=t,n},Ar=new WeakMap,Xt=Symbol(""),Ps=Symbol("");function Be(e,t,n){if(It&&Yt){let r=Ar.get(e);r||Ar.set(e,r=new Map);let s=r.get(n);s||r.set(n,s=na(()=>r.delete(n))),ea(Yt,s)}}function Et(e,t,n,r,s,o){const i=Ar.get(e);if(!i)return;let a=[];if(t==="clear")a=[...i.values()];else if(n==="length"&&Z(e)){const l=Number(r);i.forEach((c,u)=>{(u==="length"||!mt(u)&&u>=l)&&a.push(c)})}else switch(n!==void 0&&a.push(i.get(n)),t){case"add":Z(e)?no(n)&&a.push(i.get("length")):(a.push(i.get(Xt)),an(e)&&a.push(i.get(Ps)));break;case"delete":Z(e)||(a.push(i.get(Xt)),an(e)&&a.push(i.get(Ps)));break;case"set":an(e)&&a.push(i.get(Xt));break}io();for(const l of a)l&&ta(l,4);lo()}function Hf(e,t){const n=Ar.get(e);return n&&n.get(t)}const $f=Zs("__proto__,__v_isRef,__isVue"),ra=new Set(Object.getOwnPropertyNames(Symbol).filter(e=>e!=="arguments"&&e!=="caller").map(e=>Symbol[e]).filter(mt)),si=Uf();function Uf(){const e={};return["includes","indexOf","lastIndexOf"].forEach(t=>{e[t]=function(...n){const r=ce(this);for(let o=0,i=this.length;o{e[t]=function(...n){Ut(),io();const r=ce(this)[t].apply(this,n);return lo(),jt(),r}}),e}function jf(e){mt(e)||(e=String(e));const t=ce(this);return Be(t,"has",e),t.hasOwnProperty(e)}class sa{constructor(t=!1,n=!1){this._isReadonly=t,this._isShallow=n}get(t,n,r){const s=this._isReadonly,o=this._isShallow;if(n==="__v_isReactive")return!s;if(n==="__v_isReadonly")return s;if(n==="__v_isShallow")return o;if(n==="__v_raw")return r===(s?o?ed:aa:o?la:ia).get(t)||Object.getPrototypeOf(t)===Object.getPrototypeOf(r)?t:void 0;const i=Z(t);if(!s){if(i&&ae(si,n))return Reflect.get(si,n,r);if(n==="hasOwnProperty")return jf}const a=Reflect.get(t,n,r);return(mt(n)?ra.has(n):$f(n))||(s||Be(t,"get",n),o)?a:Ce(a)?i&&no(n)?a:a.value:pe(a)?s?On(a):yn(a):a}}class oa extends sa{constructor(t=!1){super(!1,t)}set(t,n,r,s){let o=t[n];if(!this._isShallow){const l=Jt(o);if(!bn(r)&&!Jt(r)&&(o=ce(o),r=ce(r)),!Z(t)&&Ce(o)&&!Ce(r))return l?!1:(o.value=r,!0)}const i=Z(t)&&no(n)?Number(n)e,zr=e=>Reflect.getPrototypeOf(e);function rr(e,t,n=!1,r=!1){e=e.__v_raw;const s=ce(e),o=ce(t);n||(Ft(t,o)&&Be(s,"get",t),Be(s,"get",o));const{has:i}=zr(s),a=r?ao:n?ho:Wn;if(i.call(s,t))return a(e.get(t));if(i.call(s,o))return a(e.get(o));e!==s&&e.get(t)}function sr(e,t=!1){const n=this.__v_raw,r=ce(n),s=ce(e);return t||(Ft(e,s)&&Be(r,"has",e),Be(r,"has",s)),e===s?n.has(e):n.has(e)||n.has(s)}function or(e,t=!1){return e=e.__v_raw,!t&&Be(ce(e),"iterate",Xt),Reflect.get(e,"size",e)}function oi(e,t=!1){!t&&!bn(e)&&!Jt(e)&&(e=ce(e));const n=ce(this);return zr(n).has.call(n,e)||(n.add(e),Et(n,"add",e,e)),this}function ii(e,t,n=!1){!n&&!bn(t)&&!Jt(t)&&(t=ce(t));const r=ce(this),{has:s,get:o}=zr(r);let i=s.call(r,e);i||(e=ce(e),i=s.call(r,e));const a=o.call(r,e);return r.set(e,t),i?Ft(t,a)&&Et(r,"set",e,t):Et(r,"add",e,t),this}function li(e){const t=ce(this),{has:n,get:r}=zr(t);let s=n.call(t,e);s||(e=ce(e),s=n.call(t,e)),r&&r.call(t,e);const o=t.delete(e);return s&&Et(t,"delete",e,void 0),o}function ai(){const e=ce(this),t=e.size!==0,n=e.clear();return t&&Et(e,"clear",void 0,void 0),n}function ir(e,t){return function(r,s){const o=this,i=o.__v_raw,a=ce(i),l=t?ao:e?ho:Wn;return!e&&Be(a,"iterate",Xt),i.forEach((c,u)=>r.call(s,l(c),l(u),o))}}function lr(e,t,n){return function(...r){const s=this.__v_raw,o=ce(s),i=an(o),a=e==="entries"||e===Symbol.iterator&&i,l=e==="keys"&&i,c=s[e](...r),u=n?ao:t?ho:Wn;return!t&&Be(o,"iterate",l?Ps:Xt),{next(){const{value:f,done:d}=c.next();return d?{value:f,done:d}:{value:a?[u(f[0]),u(f[1])]:u(f),done:d}},[Symbol.iterator](){return this}}}}function Ct(e){return function(...t){return e==="delete"?!1:e==="clear"?void 0:this}}function Gf(){const e={get(o){return rr(this,o)},get size(){return or(this)},has:sr,add:oi,set:ii,delete:li,clear:ai,forEach:ir(!1,!1)},t={get(o){return rr(this,o,!1,!0)},get size(){return or(this)},has:sr,add(o){return oi.call(this,o,!0)},set(o,i){return ii.call(this,o,i,!0)},delete:li,clear:ai,forEach:ir(!1,!0)},n={get(o){return rr(this,o,!0)},get size(){return or(this,!0)},has(o){return sr.call(this,o,!0)},add:Ct("add"),set:Ct("set"),delete:Ct("delete"),clear:Ct("clear"),forEach:ir(!0,!1)},r={get(o){return rr(this,o,!0,!0)},get size(){return or(this,!0)},has(o){return sr.call(this,o,!0)},add:Ct("add"),set:Ct("set"),delete:Ct("delete"),clear:Ct("clear"),forEach:ir(!0,!0)};return["keys","values","entries",Symbol.iterator].forEach(o=>{e[o]=lr(o,!1,!1),n[o]=lr(o,!0,!1),t[o]=lr(o,!1,!0),r[o]=lr(o,!0,!0)}),[e,n,t,r]}const[zf,Yf,Xf,qf]=Gf();function co(e,t){const n=t?e?qf:Xf:e?Yf:zf;return(r,s,o)=>s==="__v_isReactive"?!e:s==="__v_isReadonly"?e:s==="__v_raw"?r:Reflect.get(ae(n,s)&&s in r?n:r,s,o)}const Jf={get:co(!1,!1)},Qf={get:co(!1,!0)},Zf={get:co(!0,!1)};const ia=new WeakMap,la=new WeakMap,aa=new WeakMap,ed=new WeakMap;function td(e){switch(e){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function nd(e){return e.__v_skip||!Object.isExtensible(e)?0:td(Sf(e))}function yn(e){return Jt(e)?e:fo(e,!1,Wf,Jf,ia)}function uo(e){return fo(e,!1,Bf,Qf,la)}function On(e){return fo(e,!0,Kf,Zf,aa)}function fo(e,t,n,r,s){if(!pe(e)||e.__v_raw&&!(t&&e.__v_isReactive))return e;const o=s.get(e);if(o)return o;const i=nd(e);if(i===0)return e;const a=new Proxy(e,i===2?r:n);return s.set(e,a),a}function un(e){return Jt(e)?un(e.__v_raw):!!(e&&e.__v_isReactive)}function Jt(e){return!!(e&&e.__v_isReadonly)}function bn(e){return!!(e&&e.__v_isShallow)}function ca(e){return e?!!e.__v_raw:!1}function ce(e){const t=e&&e.__v_raw;return t?ce(t):e}function ua(e){return Object.isExtensible(e)&&Kl(e,"__v_skip",!0),e}const Wn=e=>pe(e)?yn(e):e,ho=e=>pe(e)?On(e):e;class fa{constructor(t,n,r,s){this.getter=t,this._setter=n,this.dep=void 0,this.__v_isRef=!0,this.__v_isReadonly=!1,this.effect=new oo(()=>t(this._value),()=>xn(this,this.effect._dirtyLevel===2?2:3)),this.effect.computed=this,this.effect.active=this._cacheable=!s,this.__v_isReadonly=r}get value(){const t=ce(this);return(!t._cacheable||t.effect.dirty)&&Ft(t._value,t._value=t.effect.run())&&xn(t,4),po(t),t.effect._dirtyLevel>=2&&xn(t,2),t._value}set value(t){this._setter(t)}get _dirty(){return this.effect.dirty}set _dirty(t){this.effect.dirty=t}}function rd(e,t,n=!1){let r,s;const o=ne(e);return o?(r=e,s=nt):(r=e.get,s=e.set),new fa(r,s,o||!s,n)}function po(e){var t;It&&Yt&&(e=ce(e),ea(Yt,(t=e.dep)!=null?t:e.dep=na(()=>e.dep=void 0,e instanceof fa?e:void 0)))}function xn(e,t=4,n,r){e=ce(e);const s=e.dep;s&&ta(s,t)}function Ce(e){return!!(e&&e.__v_isRef===!0)}function se(e){return da(e,!1)}function Yr(e){return da(e,!0)}function da(e,t){return Ce(e)?e:new sd(e,t)}class sd{constructor(t,n){this.__v_isShallow=n,this.dep=void 0,this.__v_isRef=!0,this._rawValue=n?t:ce(t),this._value=n?t:Wn(t)}get value(){return po(this),this._value}set value(t){const n=this.__v_isShallow||bn(t)||Jt(t);t=n?t:ce(t),Ft(t,this._rawValue)&&(this._rawValue,this._rawValue=t,this._value=n?t:Wn(t),xn(this,4))}}function Ke(e){return Ce(e)?e.value:e}const od={get:(e,t,n)=>Ke(Reflect.get(e,t,n)),set:(e,t,n,r)=>{const s=e[t];return Ce(s)&&!Ce(n)?(s.value=n,!0):Reflect.set(e,t,n,r)}};function ha(e){return un(e)?e:new Proxy(e,od)}class id{constructor(t){this.dep=void 0,this.__v_isRef=!0;const{get:n,set:r}=t(()=>po(this),()=>xn(this));this._get=n,this._set=r}get value(){return this._get()}set value(t){this._set(t)}}function ld(e){return new id(e)}function v_(e){const t=Z(e)?new Array(e.length):{};for(const n in e)t[n]=pa(e,n);return t}class ad{constructor(t,n,r){this._object=t,this._key=n,this._defaultValue=r,this.__v_isRef=!0}get value(){const t=this._object[this._key];return t===void 0?this._defaultValue:t}set value(t){this._object[this._key]=t}get dep(){return Hf(ce(this._object),this._key)}}class cd{constructor(t){this._getter=t,this.__v_isRef=!0,this.__v_isReadonly=!0}get value(){return this._getter()}}function ud(e,t,n){return Ce(e)?e:ne(e)?new cd(e):pe(e)&&arguments.length>1?pa(e,t,n):se(e)}function pa(e,t,n){const r=e[t];return Ce(r)?r:new ad(e,t,n)}/** +**/let Xe;class Xl{constructor(t=!1){this.detached=t,this._active=!0,this.effects=[],this.cleanups=[],this.parent=Xe,!t&&Xe&&(this.index=(Xe.scopes||(Xe.scopes=[])).push(this)-1)}get active(){return this._active}run(t){if(this._active){const n=Xe;try{return Xe=this,t()}finally{Xe=n}}}on(){Xe=this}off(){Xe=this.parent}stop(t){if(this._active){let n,r;for(n=0,r=this.effects.length;n=4))break}this._dirtyLevel===1&&(this._dirtyLevel=0),jt()}return this._dirtyLevel>=4}set dirty(t){this._dirtyLevel=t?4:0}run(){if(this._dirtyLevel=0,!this.active)return this.fn();let t=It,n=Yt;try{return It=!0,Yt=this,this._runnings++,ni(this),this.fn()}finally{ri(this),this._runnings--,Yt=n,It=t}}stop(){this.active&&(ni(this),ri(this),this.onStop&&this.onStop(),this.active=!1)}}function Ff(e){return e.value}function ni(e){e._trackId++,e._depsLength=0}function ri(e){if(e.deps.length>e._depsLength){for(let t=e._depsLength;t{const n=new Map;return n.cleanup=e,n.computed=t,n},Pr=new WeakMap,Xt=Symbol(""),Ps=Symbol("");function Ge(e,t,n){if(It&&Yt){let r=Pr.get(e);r||Pr.set(e,r=new Map);let s=r.get(n);s||r.set(n,s=na(()=>r.delete(n))),ea(Yt,s)}}function Et(e,t,n,r,s,o){const i=Pr.get(e);if(!i)return;let a=[];if(t==="clear")a=[...i.values()];else if(n==="length"&&Z(e)){const l=Number(r);i.forEach((c,u)=>{(u==="length"||!mt(u)&&u>=l)&&a.push(c)})}else switch(n!==void 0&&a.push(i.get(n)),t){case"add":Z(e)?no(n)&&a.push(i.get("length")):(a.push(i.get(Xt)),an(e)&&a.push(i.get(Ps)));break;case"delete":Z(e)||(a.push(i.get(Xt)),an(e)&&a.push(i.get(Ps)));break;case"set":an(e)&&a.push(i.get(Xt));break}io();for(const l of a)l&&ta(l,4);lo()}function Hf(e,t){const n=Pr.get(e);return n&&n.get(t)}const $f=Zs("__proto__,__v_isRef,__isVue"),ra=new Set(Object.getOwnPropertyNames(Symbol).filter(e=>e!=="arguments"&&e!=="caller").map(e=>Symbol[e]).filter(mt)),si=Uf();function Uf(){const e={};return["includes","indexOf","lastIndexOf"].forEach(t=>{e[t]=function(...n){const r=ce(this);for(let o=0,i=this.length;o{e[t]=function(...n){Ut(),io();const r=ce(this)[t].apply(this,n);return lo(),jt(),r}}),e}function jf(e){mt(e)||(e=String(e));const t=ce(this);return Ge(t,"has",e),t.hasOwnProperty(e)}class sa{constructor(t=!1,n=!1){this._isReadonly=t,this._isShallow=n}get(t,n,r){const s=this._isReadonly,o=this._isShallow;if(n==="__v_isReactive")return!s;if(n==="__v_isReadonly")return s;if(n==="__v_isShallow")return o;if(n==="__v_raw")return r===(s?o?ed:aa:o?la:ia).get(t)||Object.getPrototypeOf(t)===Object.getPrototypeOf(r)?t:void 0;const i=Z(t);if(!s){if(i&&ae(si,n))return Reflect.get(si,n,r);if(n==="hasOwnProperty")return jf}const a=Reflect.get(t,n,r);return(mt(n)?ra.has(n):$f(n))||(s||Ge(t,"get",n),o)?a:Ce(a)?i&&no(n)?a:a.value:pe(a)?s?Cn(a):yn(a):a}}class oa extends sa{constructor(t=!1){super(!1,t)}set(t,n,r,s){let o=t[n];if(!this._isShallow){const l=Jt(o);if(!bn(r)&&!Jt(r)&&(o=ce(o),r=ce(r)),!Z(t)&&Ce(o)&&!Ce(r))return l?!1:(o.value=r,!0)}const i=Z(t)&&no(n)?Number(n)e,Yr=e=>Reflect.getPrototypeOf(e);function sr(e,t,n=!1,r=!1){e=e.__v_raw;const s=ce(e),o=ce(t);n||(Ft(t,o)&&Ge(s,"get",t),Ge(s,"get",o));const{has:i}=Yr(s),a=r?ao:n?ho:Kn;if(i.call(s,t))return a(e.get(t));if(i.call(s,o))return a(e.get(o));e!==s&&e.get(t)}function or(e,t=!1){const n=this.__v_raw,r=ce(n),s=ce(e);return t||(Ft(e,s)&&Ge(r,"has",e),Ge(r,"has",s)),e===s?n.has(e):n.has(e)||n.has(s)}function ir(e,t=!1){return e=e.__v_raw,!t&&Ge(ce(e),"iterate",Xt),Reflect.get(e,"size",e)}function oi(e,t=!1){!t&&!bn(e)&&!Jt(e)&&(e=ce(e));const n=ce(this);return Yr(n).has.call(n,e)||(n.add(e),Et(n,"add",e,e)),this}function ii(e,t,n=!1){!n&&!bn(t)&&!Jt(t)&&(t=ce(t));const r=ce(this),{has:s,get:o}=Yr(r);let i=s.call(r,e);i||(e=ce(e),i=s.call(r,e));const a=o.call(r,e);return r.set(e,t),i?Ft(t,a)&&Et(r,"set",e,t):Et(r,"add",e,t),this}function li(e){const t=ce(this),{has:n,get:r}=Yr(t);let s=n.call(t,e);s||(e=ce(e),s=n.call(t,e)),r&&r.call(t,e);const o=t.delete(e);return s&&Et(t,"delete",e,void 0),o}function ai(){const e=ce(this),t=e.size!==0,n=e.clear();return t&&Et(e,"clear",void 0,void 0),n}function lr(e,t){return function(r,s){const o=this,i=o.__v_raw,a=ce(i),l=t?ao:e?ho:Kn;return!e&&Ge(a,"iterate",Xt),i.forEach((c,u)=>r.call(s,l(c),l(u),o))}}function ar(e,t,n){return function(...r){const s=this.__v_raw,o=ce(s),i=an(o),a=e==="entries"||e===Symbol.iterator&&i,l=e==="keys"&&i,c=s[e](...r),u=n?ao:t?ho:Kn;return!t&&Ge(o,"iterate",l?Ps:Xt),{next(){const{value:f,done:d}=c.next();return d?{value:f,done:d}:{value:a?[u(f[0]),u(f[1])]:u(f),done:d}},[Symbol.iterator](){return this}}}}function Ct(e){return function(...t){return e==="delete"?!1:e==="clear"?void 0:this}}function Gf(){const e={get(o){return sr(this,o)},get size(){return ir(this)},has:or,add:oi,set:ii,delete:li,clear:ai,forEach:lr(!1,!1)},t={get(o){return sr(this,o,!1,!0)},get size(){return ir(this)},has:or,add(o){return oi.call(this,o,!0)},set(o,i){return ii.call(this,o,i,!0)},delete:li,clear:ai,forEach:lr(!1,!0)},n={get(o){return sr(this,o,!0)},get size(){return ir(this,!0)},has(o){return or.call(this,o,!0)},add:Ct("add"),set:Ct("set"),delete:Ct("delete"),clear:Ct("clear"),forEach:lr(!0,!1)},r={get(o){return sr(this,o,!0,!0)},get size(){return ir(this,!0)},has(o){return or.call(this,o,!0)},add:Ct("add"),set:Ct("set"),delete:Ct("delete"),clear:Ct("clear"),forEach:lr(!0,!0)};return["keys","values","entries",Symbol.iterator].forEach(o=>{e[o]=ar(o,!1,!1),n[o]=ar(o,!0,!1),t[o]=ar(o,!1,!0),r[o]=ar(o,!0,!0)}),[e,n,t,r]}const[zf,Yf,Xf,qf]=Gf();function co(e,t){const n=t?e?qf:Xf:e?Yf:zf;return(r,s,o)=>s==="__v_isReactive"?!e:s==="__v_isReadonly"?e:s==="__v_raw"?r:Reflect.get(ae(n,s)&&s in r?n:r,s,o)}const Jf={get:co(!1,!1)},Qf={get:co(!1,!0)},Zf={get:co(!0,!1)};const ia=new WeakMap,la=new WeakMap,aa=new WeakMap,ed=new WeakMap;function td(e){switch(e){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function nd(e){return e.__v_skip||!Object.isExtensible(e)?0:td(Sf(e))}function yn(e){return Jt(e)?e:fo(e,!1,Wf,Jf,ia)}function uo(e){return fo(e,!1,Bf,Qf,la)}function Cn(e){return fo(e,!0,Kf,Zf,aa)}function fo(e,t,n,r,s){if(!pe(e)||e.__v_raw&&!(t&&e.__v_isReactive))return e;const o=s.get(e);if(o)return o;const i=nd(e);if(i===0)return e;const a=new Proxy(e,i===2?r:n);return s.set(e,a),a}function un(e){return Jt(e)?un(e.__v_raw):!!(e&&e.__v_isReactive)}function Jt(e){return!!(e&&e.__v_isReadonly)}function bn(e){return!!(e&&e.__v_isShallow)}function ca(e){return e?!!e.__v_raw:!1}function ce(e){const t=e&&e.__v_raw;return t?ce(t):e}function ua(e){return Object.isExtensible(e)&&Kl(e,"__v_skip",!0),e}const Kn=e=>pe(e)?yn(e):e,ho=e=>pe(e)?Cn(e):e;class fa{constructor(t,n,r,s){this.getter=t,this._setter=n,this.dep=void 0,this.__v_isRef=!0,this.__v_isReadonly=!1,this.effect=new oo(()=>t(this._value),()=>Dn(this,this.effect._dirtyLevel===2?2:3)),this.effect.computed=this,this.effect.active=this._cacheable=!s,this.__v_isReadonly=r}get value(){const t=ce(this);return(!t._cacheable||t.effect.dirty)&&Ft(t._value,t._value=t.effect.run())&&Dn(t,4),po(t),t.effect._dirtyLevel>=2&&Dn(t,2),t._value}set value(t){this._setter(t)}get _dirty(){return this.effect.dirty}set _dirty(t){this.effect.dirty=t}}function rd(e,t,n=!1){let r,s;const o=re(e);return o?(r=e,s=nt):(r=e.get,s=e.set),new fa(r,s,o||!s,n)}function po(e){var t;It&&Yt&&(e=ce(e),ea(Yt,(t=e.dep)!=null?t:e.dep=na(()=>e.dep=void 0,e instanceof fa?e:void 0)))}function Dn(e,t=4,n,r){e=ce(e);const s=e.dep;s&&ta(s,t)}function Ce(e){return!!(e&&e.__v_isRef===!0)}function se(e){return da(e,!1)}function vn(e){return da(e,!0)}function da(e,t){return Ce(e)?e:new sd(e,t)}class sd{constructor(t,n){this.__v_isShallow=n,this.dep=void 0,this.__v_isRef=!0,this._rawValue=n?t:ce(t),this._value=n?t:Kn(t)}get value(){return po(this),this._value}set value(t){const n=this.__v_isShallow||bn(t)||Jt(t);t=n?t:ce(t),Ft(t,this._rawValue)&&(this._rawValue,this._rawValue=t,this._value=n?t:Kn(t),Dn(this,4))}}function Be(e){return Ce(e)?e.value:e}const od={get:(e,t,n)=>Be(Reflect.get(e,t,n)),set:(e,t,n,r)=>{const s=e[t];return Ce(s)&&!Ce(n)?(s.value=n,!0):Reflect.set(e,t,n,r)}};function ha(e){return un(e)?e:new Proxy(e,od)}class id{constructor(t){this.dep=void 0,this.__v_isRef=!0;const{get:n,set:r}=t(()=>po(this),()=>Dn(this));this._get=n,this._set=r}get value(){return this._get()}set value(t){this._set(t)}}function ld(e){return new id(e)}function E_(e){const t=Z(e)?new Array(e.length):{};for(const n in e)t[n]=pa(e,n);return t}class ad{constructor(t,n,r){this._object=t,this._key=n,this._defaultValue=r,this.__v_isRef=!0}get value(){const t=this._object[this._key];return t===void 0?this._defaultValue:t}set value(t){this._object[this._key]=t}get dep(){return Hf(ce(this._object),this._key)}}class cd{constructor(t){this._getter=t,this.__v_isRef=!0,this.__v_isReadonly=!0}get value(){return this._getter()}}function ud(e,t,n){return Ce(e)?e:re(e)?new cd(e):pe(e)&&arguments.length>1?pa(e,t,n):se(e)}function pa(e,t,n){const r=e[t];return Ce(r)?r:new ad(e,t,n)}/** * @vue/runtime-core v3.4.38 * (c) 2018-present Yuxi (Evan) You and Vue contributors * @license MIT -**/function Mt(e,t,n,r){try{return r?e(...r):e()}catch(s){Xr(s,t,n)}}function it(e,t,n,r){if(ne(e)){const s=Mt(e,t,n,r);return s&&jl(s)&&s.catch(o=>{Xr(o,t,n)}),s}if(Z(e)){const s=[];for(let o=0;o>>1,s=xe[r],o=Bn(s);oht&&xe.splice(t,1)}function pd(e){Z(e)?fn.push(...e):(!Pt||!Pt.includes(e,e.allowRecurse?Gt+1:Gt))&&fn.push(e),ga()}function ci(e,t,n=Kn?ht+1:0){for(;nBn(n)-Bn(r));if(fn.length=0,Pt){Pt.push(...t);return}for(Pt=t,Gt=0;Gte.id==null?1/0:e.id,md=(e,t)=>{const n=Bn(e)-Bn(t);if(n===0){if(e.pre&&!t.pre)return-1;if(t.pre&&!e.pre)return 1}return n};function _a(e){Ns=!1,Kn=!0,xe.sort(md);try{for(ht=0;ht{r._d&&Ei(-1);const o=Nr(t);let i;try{i=e(...s)}finally{Nr(o),r._d&&Ei(1)}return i};return r._n=!0,r._c=!0,r._d=!0,r}function E_(e,t){if(Pe===null)return e;const n=es(Pe),r=e.dirs||(e.dirs=[]);for(let s=0;s!!e.type.__asyncLoader,va=e=>e.type.__isKeepAlive;function Ea(e,t){Ta(e,"a",t)}function wa(e,t){Ta(e,"da",t)}function Ta(e,t,n=Re){const r=e.__wdc||(e.__wdc=()=>{let s=n;for(;s;){if(s.isDeactivated)return;s=s.parent}return e()});if(qr(t,r,n),n){let s=n.parent;for(;s&&s.parent;)va(s.parent.vnode)&&_d(r,t,n,s),s=s.parent}}function _d(e,t,n,r){const s=qr(t,e,r,!0);_o(()=>{to(r[t],s)},n)}function qr(e,t,n=Re,r=!1){if(n){const s=n[e]||(n[e]=[]),o=t.__weh||(t.__weh=(...i)=>{Ut();const a=Jn(n),l=it(t,n,e,i);return a(),jt(),l});return r?s.unshift(o):s.push(o),o}}const Tt=e=>(t,n=Re)=>{(!Zr||e==="sp")&&qr(e,(...r)=>t(...r),n)},yd=Tt("bm"),Ln=Tt("m"),bd=Tt("bu"),vd=Tt("u"),Sa=Tt("bum"),_o=Tt("um"),Ed=Tt("sp"),wd=Tt("rtg"),Td=Tt("rtc");function Sd(e,t=Re){qr("ec",e,t)}const Oa="components";function Od(e,t){return La(Oa,e,!0,t)||e}const Ca=Symbol.for("v-ndc");function w_(e){return Ee(e)?La(Oa,e,!1)||e:e||Ca}function La(e,t,n=!0,r=!1){const s=Pe||Re;if(s){const o=s.type;{const a=_h(o,!1);if(a&&(a===t||a===lt(t)||a===Br(lt(t))))return o}const i=ui(s[e]||o[e],t)||ui(s.appContext[e],t);return!i&&r?o:i}}function ui(e,t){return e&&(e[t]||e[lt(t)]||e[Br(lt(t))])}function T_(e,t,n,r){let s;const o=n;if(Z(e)||Ee(e)){s=new Array(e.length);for(let i=0,a=e.length;it(i,a,void 0,o));else{const i=Object.keys(e);s=new Array(i.length);for(let a=0,l=i.length;aIr(t)?!(t.type===wt||t.type===Me&&!Aa(t.children)):!0)?e:null}const Rs=e=>e?Za(e)?es(e):Rs(e.parent):null,Dn=Fe(Object.create(null),{$:e=>e,$el:e=>e.vnode.el,$data:e=>e.data,$props:e=>e.props,$attrs:e=>e.attrs,$slots:e=>e.slots,$refs:e=>e.refs,$parent:e=>Rs(e.parent),$root:e=>Rs(e.root),$emit:e=>e.emit,$options:e=>yo(e),$forceUpdate:e=>e.f||(e.f=()=>{e.effect.dirty=!0,go(e.update)}),$nextTick:e=>e.n||(e.n=Cn.bind(e.proxy)),$watch:e=>Jd.bind(e)}),cs=(e,t)=>e!==ge&&!e.__isScriptSetup&&ae(e,t),Cd={get({_:e},t){if(t==="__v_skip")return!0;const{ctx:n,setupState:r,data:s,props:o,accessCache:i,type:a,appContext:l}=e;let c;if(t[0]!=="$"){const m=i[t];if(m!==void 0)switch(m){case 1:return r[t];case 2:return s[t];case 4:return n[t];case 3:return o[t]}else{if(cs(r,t))return i[t]=1,r[t];if(s!==ge&&ae(s,t))return i[t]=2,s[t];if((c=e.propsOptions[0])&&ae(c,t))return i[t]=3,o[t];if(n!==ge&&ae(n,t))return i[t]=4,n[t];ks&&(i[t]=0)}}const u=Dn[t];let f,d;if(u)return t==="$attrs"&&Be(e.attrs,"get",""),u(e);if((f=a.__cssModules)&&(f=f[t]))return f;if(n!==ge&&ae(n,t))return i[t]=4,n[t];if(d=l.config.globalProperties,ae(d,t))return d[t]},set({_:e},t,n){const{data:r,setupState:s,ctx:o}=e;return cs(s,t)?(s[t]=n,!0):r!==ge&&ae(r,t)?(r[t]=n,!0):ae(e.props,t)||t[0]==="$"&&t.slice(1)in e?!1:(o[t]=n,!0)},has({_:{data:e,setupState:t,accessCache:n,ctx:r,appContext:s,propsOptions:o}},i){let a;return!!n[i]||e!==ge&&ae(e,i)||cs(t,i)||(a=o[0])&&ae(a,i)||ae(r,i)||ae(Dn,i)||ae(s.config.globalProperties,i)},defineProperty(e,t,n){return n.get!=null?e._.accessCache[t]=0:ae(n,"value")&&this.set(e,t,n.value,null),Reflect.defineProperty(e,t,n)}};function fi(e){return Z(e)?e.reduce((t,n)=>(t[n]=null,t),{}):e}let ks=!0;function Ld(e){const t=yo(e),n=e.proxy,r=e.ctx;ks=!1,t.beforeCreate&&di(t.beforeCreate,e,"bc");const{data:s,computed:o,methods:i,watch:a,provide:l,inject:c,created:u,beforeMount:f,mounted:d,beforeUpdate:m,updated:E,activated:v,deactivated:C,beforeDestroy:O,beforeUnmount:N,destroyed:h,unmounted:y,render:S,renderTracked:T,renderTriggered:A,errorCaptured:D,serverPrefetch:x,expose:H,inheritAttrs:Y,components:B,directives:re,filters:Le}=t;if(c&&Ad(c,r,null),i)for(const te in i){const X=i[te];ne(X)&&(r[te]=X.bind(n))}if(s){const te=s.call(n,n);pe(te)&&(e.data=yn(te))}if(ks=!0,o)for(const te in o){const X=o[te],ye=ne(X)?X.bind(n,n):ne(X.get)?X.get.bind(n,n):nt,Qe=!ne(X)&&ne(X.set)?X.set.bind(n):nt,we=oe({get:ye,set:Qe});Object.defineProperty(r,te,{enumerable:!0,configurable:!0,get:()=>we.value,set:Te=>we.value=Te})}if(a)for(const te in a)Pa(a[te],r,n,te);if(l){const te=ne(l)?l.call(n):l;Reflect.ownKeys(te).forEach(X=>{gr(X,te[X])})}u&&di(u,e,"c");function q(te,X){Z(X)?X.forEach(ye=>te(ye.bind(n))):X&&te(X.bind(n))}if(q(yd,f),q(Ln,d),q(bd,m),q(vd,E),q(Ea,v),q(wa,C),q(Sd,D),q(Td,T),q(wd,A),q(Sa,N),q(_o,y),q(Ed,x),Z(H))if(H.length){const te=e.exposed||(e.exposed={});H.forEach(X=>{Object.defineProperty(te,X,{get:()=>n[X],set:ye=>n[X]=ye})})}else e.exposed||(e.exposed={});S&&e.render===nt&&(e.render=S),Y!=null&&(e.inheritAttrs=Y),B&&(e.components=B),re&&(e.directives=re)}function Ad(e,t,n=nt){Z(e)&&(e=Is(e));for(const r in e){const s=e[r];let o;pe(s)?"default"in s?o=Je(s.from||r,s.default,!0):o=Je(s.from||r):o=Je(s),Ce(o)?Object.defineProperty(t,r,{enumerable:!0,configurable:!0,get:()=>o.value,set:i=>o.value=i}):t[r]=o}}function di(e,t,n){it(Z(e)?e.map(r=>r.bind(t.proxy)):e.bind(t.proxy),t,n)}function Pa(e,t,n,r){const s=r.includes(".")?za(n,r):()=>n[r];if(Ee(e)){const o=t[e];ne(o)&&Se(s,o)}else if(ne(e))Se(s,e.bind(n));else if(pe(e))if(Z(e))e.forEach(o=>Pa(o,t,n,r));else{const o=ne(e.handler)?e.handler.bind(n):t[e.handler];ne(o)&&Se(s,o,e)}}function yo(e){const t=e.type,{mixins:n,extends:r}=t,{mixins:s,optionsCache:o,config:{optionMergeStrategies:i}}=e.appContext,a=o.get(t);let l;return a?l=a:!s.length&&!n&&!r?l=t:(l={},s.length&&s.forEach(c=>Rr(l,c,i,!0)),Rr(l,t,i)),pe(t)&&o.set(t,l),l}function Rr(e,t,n,r=!1){const{mixins:s,extends:o}=t;o&&Rr(e,o,n,!0),s&&s.forEach(i=>Rr(e,i,n,!0));for(const i in t)if(!(r&&i==="expose")){const a=Pd[i]||n&&n[i];e[i]=a?a(e[i],t[i]):t[i]}return e}const Pd={data:hi,props:pi,emits:pi,methods:Mn,computed:Mn,beforeCreate:$e,created:$e,beforeMount:$e,mounted:$e,beforeUpdate:$e,updated:$e,beforeDestroy:$e,beforeUnmount:$e,destroyed:$e,unmounted:$e,activated:$e,deactivated:$e,errorCaptured:$e,serverPrefetch:$e,components:Mn,directives:Mn,watch:Rd,provide:hi,inject:Nd};function hi(e,t){return t?e?function(){return Fe(ne(e)?e.call(this,this):e,ne(t)?t.call(this,this):t)}:t:e}function Nd(e,t){return Mn(Is(e),Is(t))}function Is(e){if(Z(e)){const t={};for(let n=0;n1)return n&&ne(t)?t.call(r&&r.proxy):t}}const Ra={},ka=()=>Object.create(Ra),Ia=e=>Object.getPrototypeOf(e)===Ra;function Md(e,t,n,r=!1){const s={},o=ka();e.propsDefaults=Object.create(null),Ma(e,t,s,o);for(const i in e.propsOptions[0])i in s||(s[i]=void 0);n?e.props=r?s:uo(s):e.type.props?e.props=s:e.props=o,e.attrs=o}function xd(e,t,n,r){const{props:s,attrs:o,vnode:{patchFlag:i}}=e,a=ce(s),[l]=e.propsOptions;let c=!1;if((r||i>0)&&!(i&16)){if(i&8){const u=e.vnode.dynamicProps;for(let f=0;f{l=!0;const[d,m]=xa(f,t,!0);Fe(i,d),m&&a.push(...m)};!n&&t.mixins.length&&t.mixins.forEach(u),e.extends&&u(e.extends),e.mixins&&e.mixins.forEach(u)}if(!o&&!l)return pe(e)&&r.set(e,ln),ln;if(Z(o))for(let u=0;ue[0]==="_"||e==="$stable",bo=e=>Z(e)?e.map(tt):[tt(e)],Fd=(e,t,n)=>{if(t._n)return t;const r=gd((...s)=>bo(t(...s)),n);return r._c=!1,r},Fa=(e,t,n)=>{const r=e._ctx;for(const s in e){if(Da(s))continue;const o=e[s];if(ne(o))t[s]=Fd(s,o,r);else if(o!=null){const i=bo(o);t[s]=()=>i}}},Ha=(e,t)=>{const n=bo(t);e.slots.default=()=>n},$a=(e,t,n)=>{for(const r in t)(n||r!=="_")&&(e[r]=t[r])},Hd=(e,t,n)=>{const r=e.slots=ka();if(e.vnode.shapeFlag&32){const s=t._;s?($a(r,t,n),n&&Kl(r,"_",s,!0)):Fa(t,r)}else t&&Ha(e,t)},$d=(e,t,n)=>{const{vnode:r,slots:s}=e;let o=!0,i=ge;if(r.shapeFlag&32){const a=t._;a?n&&a===1?o=!1:$a(s,t,n):(o=!t.$stable,Fa(t,s)),i=t}else t&&(Ha(e,t),i={default:1});if(o)for(const a in s)!Da(a)&&i[a]==null&&delete s[a]};function kr(e,t,n,r,s=!1){if(Z(e)){e.forEach((d,m)=>kr(d,t&&(Z(t)?t[m]:t),n,r,s));return}if(dn(r)&&!s)return;const o=r.shapeFlag&4?es(r.component):r.el,i=s?null:o,{i:a,r:l}=e,c=t&&t.r,u=a.refs===ge?a.refs={}:a.refs,f=a.setupState;if(c!=null&&c!==l&&(Ee(c)?(u[c]=null,ae(f,c)&&(f[c]=null)):Ce(c)&&(c.value=null)),ne(l))Mt(l,a,12,[i,u]);else{const d=Ee(l),m=Ce(l);if(d||m){const E=()=>{if(e.f){const v=d?ae(f,l)?f[l]:u[l]:l.value;s?Z(v)&&to(v,o):Z(v)?v.includes(o)||v.push(o):d?(u[l]=[o],ae(f,l)&&(f[l]=u[l])):(l.value=[o],e.k&&(u[e.k]=l.value))}else d?(u[l]=i,ae(f,l)&&(f[l]=i)):m&&(l.value=i,e.k&&(u[e.k]=i))};i?(E.id=-1,We(E,n)):E()}}}const Ua=Symbol("_vte"),Ud=e=>e.__isTeleport,Fn=e=>e&&(e.disabled||e.disabled===""),gi=e=>typeof SVGElement<"u"&&e instanceof SVGElement,_i=e=>typeof MathMLElement=="function"&&e instanceof MathMLElement,xs=(e,t)=>{const n=e&&e.to;return Ee(n)?t?t(n):null:n},jd={name:"Teleport",__isTeleport:!0,process(e,t,n,r,s,o,i,a,l,c){const{mc:u,pc:f,pbc:d,o:{insert:m,querySelector:E,createText:v,createComment:C}}=c,O=Fn(t.props);let{shapeFlag:N,children:h,dynamicChildren:y}=t;if(e==null){const S=t.el=v(""),T=t.anchor=v("");m(S,n,r),m(T,n,r);const A=t.target=xs(t.props,E),D=Va(A,t,v,m);A&&(i==="svg"||gi(A)?i="svg":(i==="mathml"||_i(A))&&(i="mathml"));const x=(H,Y)=>{N&16&&u(h,H,Y,s,o,i,a,l)};O?x(n,T):A&&x(A,D)}else{t.el=e.el,t.targetStart=e.targetStart;const S=t.anchor=e.anchor,T=t.target=e.target,A=t.targetAnchor=e.targetAnchor,D=Fn(e.props),x=D?n:T,H=D?S:A;if(i==="svg"||gi(T)?i="svg":(i==="mathml"||_i(T))&&(i="mathml"),y?(d(e.dynamicChildren,y,x,s,o,i,a),vo(e,t,!0)):l||f(e,t,x,H,s,o,i,a,!1),O)D?t.props&&e.props&&t.props.to!==e.props.to&&(t.props.to=e.props.to):ar(t,n,S,c,1);else if((t.props&&t.props.to)!==(e.props&&e.props.to)){const Y=t.target=xs(t.props,E);Y&&ar(t,Y,null,c,0)}else D&&ar(t,T,A,c,1)}ja(t)},remove(e,t,n,{um:r,o:{remove:s}},o){const{shapeFlag:i,children:a,anchor:l,targetStart:c,targetAnchor:u,target:f,props:d}=e;if(f&&(s(c),s(u)),o&&s(l),i&16){const m=o||!Fn(d);for(let E=0;E{yi||(console.error("Hydration completed but contains mismatches."),yi=!0)},Wd=e=>e.namespaceURI.includes("svg")&&e.tagName!=="foreignObject",Kd=e=>e.namespaceURI.includes("MathML"),cr=e=>{if(Wd(e))return"svg";if(Kd(e))return"mathml"},ur=e=>e.nodeType===8;function Bd(e){const{mt:t,p:n,o:{patchProp:r,createText:s,nextSibling:o,parentNode:i,remove:a,insert:l,createComment:c}}=e,u=(h,y)=>{if(!y.hasChildNodes()){n(null,h,y),Pr(),y._vnode=h;return}f(y.firstChild,h,null,null,null),Pr(),y._vnode=h},f=(h,y,S,T,A,D=!1)=>{D=D||!!y.dynamicChildren;const x=ur(h)&&h.data==="[",H=()=>v(h,y,S,T,A,x),{type:Y,ref:B,shapeFlag:re,patchFlag:Le}=y;let me=h.nodeType;y.el=h,Le===-2&&(D=!1,y.dynamicChildren=null);let q=null;switch(Y){case xt:me!==3?y.children===""?(l(y.el=s(""),i(h),h),q=h):q=H():(h.data!==y.children&&(nn(),h.data=y.children),q=o(h));break;case wt:N(h)?(q=o(h),O(y.el=h.content.firstChild,h,S)):me!==8||x?q=H():q=o(h);break;case Hn:if(x&&(h=o(h),me=h.nodeType),me===1||me===3){q=h;const te=!y.children.length;for(let X=0;X{D=D||!!y.dynamicChildren;const{type:x,props:H,patchFlag:Y,shapeFlag:B,dirs:re,transition:Le}=y,me=x==="input"||x==="option";if(me||Y!==-1){re&&dt(y,null,S,"created");let q=!1;if(N(h)){q=Ka(T,Le)&&S&&S.vnode.props&&S.vnode.props.appear;const X=h.content.firstChild;q&&Le.beforeEnter(X),O(X,h,S),y.el=h=X}if(B&16&&!(H&&(H.innerHTML||H.textContent))){let X=m(h.firstChild,y,h,S,T,A,D);for(;X;){nn();const ye=X;X=X.nextSibling,a(ye)}}else B&8&&h.textContent!==y.children&&(nn(),h.textContent=y.children);if(H){if(me||!D||Y&48){const X=h.tagName.includes("-");for(const ye in H)(me&&(ye.endsWith("value")||ye==="indeterminate")||Xn(ye)&&!cn(ye)||ye[0]==="."||X)&&r(h,ye,null,H[ye],void 0,S)}else if(H.onClick)r(h,"onClick",null,H.onClick,void 0,S);else if(Y&4&&un(H.style))for(const X in H.style)H.style[X]}let te;(te=H&&H.onVnodeBeforeMount)&&Ze(te,S,y),re&&dt(y,null,S,"beforeMount"),((te=H&&H.onVnodeMounted)||re||q)&&Xa(()=>{te&&Ze(te,S,y),q&&Le.enter(h),re&&dt(y,null,S,"mounted")},T)}return h.nextSibling},m=(h,y,S,T,A,D,x)=>{x=x||!!y.dynamicChildren;const H=y.children,Y=H.length;for(let B=0;B{const{slotScopeIds:x}=y;x&&(A=A?A.concat(x):x);const H=i(h),Y=m(o(h),y,H,S,T,A,D);return Y&&ur(Y)&&Y.data==="]"?o(y.anchor=Y):(nn(),l(y.anchor=c("]"),H,Y),Y)},v=(h,y,S,T,A,D)=>{if(nn(),y.el=null,D){const Y=C(h);for(;;){const B=o(h);if(B&&B!==Y)a(B);else break}}const x=o(h),H=i(h);return a(h),n(null,y,H,x,S,T,cr(H),A),x},C=(h,y="[",S="]")=>{let T=0;for(;h;)if(h=o(h),h&&ur(h)&&(h.data===y&&T++,h.data===S)){if(T===0)return o(h);T--}return h},O=(h,y,S)=>{const T=y.parentNode;T&&T.replaceChild(h,y);let A=S;for(;A;)A.vnode.el===y&&(A.vnode.el=A.subTree.el=h),A=A.parent},N=h=>h.nodeType===1&&h.tagName.toLowerCase()==="template";return[u,f]}const We=Xa;function Gd(e){return Wa(e)}function zd(e){return Wa(e,Bd)}function Wa(e,t){const n=Bl();n.__VUE__=!0;const{insert:r,remove:s,patchProp:o,createElement:i,createText:a,createComment:l,setText:c,setElementText:u,parentNode:f,nextSibling:d,setScopeId:m=nt,insertStaticContent:E}=e,v=(_,b,P,F=null,k=null,U=null,V=void 0,p=null,g=!!b.dynamicChildren)=>{if(_===b)return;_&&!Rn(_,b)&&(F=M(_),Te(_,k,U,!0),_=null),b.patchFlag===-2&&(g=!1,b.dynamicChildren=null);const{type:w,ref:I,shapeFlag:j}=b;switch(w){case xt:C(_,b,P,F);break;case wt:O(_,b,P,F);break;case Hn:_==null&&N(b,P,F,V);break;case Me:B(_,b,P,F,k,U,V,p,g);break;default:j&1?S(_,b,P,F,k,U,V,p,g):j&6?re(_,b,P,F,k,U,V,p,g):(j&64||j&128)&&w.process(_,b,P,F,k,U,V,p,g,G)}I!=null&&k&&kr(I,_&&_.ref,U,b||_,!b)},C=(_,b,P,F)=>{if(_==null)r(b.el=a(b.children),P,F);else{const k=b.el=_.el;b.children!==_.children&&c(k,b.children)}},O=(_,b,P,F)=>{_==null?r(b.el=l(b.children||""),P,F):b.el=_.el},N=(_,b,P,F)=>{[_.el,_.anchor]=E(_.children,b,P,F,_.el,_.anchor)},h=({el:_,anchor:b},P,F)=>{let k;for(;_&&_!==b;)k=d(_),r(_,P,F),_=k;r(b,P,F)},y=({el:_,anchor:b})=>{let P;for(;_&&_!==b;)P=d(_),s(_),_=P;s(b)},S=(_,b,P,F,k,U,V,p,g)=>{b.type==="svg"?V="svg":b.type==="math"&&(V="mathml"),_==null?T(b,P,F,k,U,V,p,g):x(_,b,k,U,V,p,g)},T=(_,b,P,F,k,U,V,p)=>{let g,w;const{props:I,shapeFlag:j,transition:$,dirs:L}=_;if(g=_.el=i(_.type,U,I&&I.is,I),j&8?u(g,_.children):j&16&&D(_.children,g,null,F,k,us(_,U),V,p),L&&dt(_,null,F,"created"),A(g,_,_.scopeId,V,F),I){for(const J in I)J!=="value"&&!cn(J)&&o(g,J,null,I[J],U,F);"value"in I&&o(g,"value",null,I.value,U),(w=I.onVnodeBeforeMount)&&Ze(w,F,_)}L&&dt(_,null,F,"beforeMount");const R=Ka(k,$);R&&$.beforeEnter(g),r(g,b,P),((w=I&&I.onVnodeMounted)||R||L)&&We(()=>{w&&Ze(w,F,_),R&&$.enter(g),L&&dt(_,null,F,"mounted")},k)},A=(_,b,P,F,k)=>{if(P&&m(_,P),F)for(let U=0;U{for(let w=g;w<_.length;w++){const I=_[w]=p?Nt(_[w]):tt(_[w]);v(null,I,b,P,F,k,U,V,p)}},x=(_,b,P,F,k,U,V)=>{const p=b.el=_.el;let{patchFlag:g,dynamicChildren:w,dirs:I}=b;g|=_.patchFlag&16;const j=_.props||ge,$=b.props||ge;let L;if(P&&Bt(P,!1),(L=$.onVnodeBeforeUpdate)&&Ze(L,P,b,_),I&&dt(b,_,P,"beforeUpdate"),P&&Bt(P,!0),(j.innerHTML&&$.innerHTML==null||j.textContent&&$.textContent==null)&&u(p,""),w?H(_.dynamicChildren,w,p,P,F,us(b,k),U):V||X(_,b,p,null,P,F,us(b,k),U,!1),g>0){if(g&16)Y(p,j,$,P,k);else if(g&2&&j.class!==$.class&&o(p,"class",null,$.class,k),g&4&&o(p,"style",j.style,$.style,k),g&8){const R=b.dynamicProps;for(let J=0;J{L&&Ze(L,P,b,_),I&&dt(b,_,P,"updated")},F)},H=(_,b,P,F,k,U,V)=>{for(let p=0;p{if(b!==P){if(b!==ge)for(const U in b)!cn(U)&&!(U in P)&&o(_,U,b[U],null,k,F);for(const U in P){if(cn(U))continue;const V=P[U],p=b[U];V!==p&&U!=="value"&&o(_,U,p,V,k,F)}"value"in P&&o(_,"value",b.value,P.value,k)}},B=(_,b,P,F,k,U,V,p,g)=>{const w=b.el=_?_.el:a(""),I=b.anchor=_?_.anchor:a("");let{patchFlag:j,dynamicChildren:$,slotScopeIds:L}=b;L&&(p=p?p.concat(L):L),_==null?(r(w,P,F),r(I,P,F),D(b.children||[],P,I,k,U,V,p,g)):j>0&&j&64&&$&&_.dynamicChildren?(H(_.dynamicChildren,$,P,k,U,V,p),(b.key!=null||k&&b===k.subTree)&&vo(_,b,!0)):X(_,b,P,I,k,U,V,p,g)},re=(_,b,P,F,k,U,V,p,g)=>{b.slotScopeIds=p,_==null?b.shapeFlag&512?k.ctx.activate(b,P,F,V,g):Le(b,P,F,k,U,V,g):me(_,b,g)},Le=(_,b,P,F,k,U,V)=>{const p=_.component=dh(_,F,k);if(va(_)&&(p.ctx.renderer=G),hh(p,!1,V),p.asyncDep){if(k&&k.registerDep(p,q,V),!_.el){const g=p.subTree=Ne(wt);O(null,g,b,P)}}else q(p,_,b,P,k,U,V)},me=(_,b,P)=>{const F=b.component=_.component;if(nh(_,b,P))if(F.asyncDep&&!F.asyncResolved){te(F,b,P);return}else F.next=b,hd(F.update),F.effect.dirty=!0,F.update();else b.el=_.el,F.vnode=b},q=(_,b,P,F,k,U,V)=>{const p=()=>{if(_.isMounted){let{next:I,bu:j,u:$,parent:L,vnode:R}=_;{const ze=Ba(_);if(ze){I&&(I.el=R.el,te(_,I,V)),ze.asyncDep.then(()=>{_.isUnmounted||p()});return}}let J=I,Q;Bt(_,!1),I?(I.el=R.el,te(_,I,V)):I=R,j&&mr(j),(Q=I.props&&I.props.onVnodeBeforeUpdate)&&Ze(Q,L,I,R),Bt(_,!0);const he=fs(_),Ie=_.subTree;_.subTree=he,v(Ie,he,f(Ie.el),M(Ie),_,k,U),I.el=he.el,J===null&&rh(_,he.el),$&&We($,k),(Q=I.props&&I.props.onVnodeUpdated)&&We(()=>Ze(Q,L,I,R),k)}else{let I;const{el:j,props:$}=b,{bm:L,m:R,parent:J}=_,Q=dn(b);if(Bt(_,!1),L&&mr(L),!Q&&(I=$&&$.onVnodeBeforeMount)&&Ze(I,J,b),Bt(_,!0),j&&de){const he=()=>{_.subTree=fs(_),de(j,_.subTree,_,k,null)};Q?b.type.__asyncLoader().then(()=>!_.isUnmounted&&he()):he()}else{const he=_.subTree=fs(_);v(null,he,P,F,_,k,U),b.el=he.el}if(R&&We(R,k),!Q&&(I=$&&$.onVnodeMounted)){const he=b;We(()=>Ze(I,J,he),k)}(b.shapeFlag&256||J&&dn(J.vnode)&&J.vnode.shapeFlag&256)&&_.a&&We(_.a,k),_.isMounted=!0,b=P=F=null}},g=_.effect=new oo(p,nt,()=>go(w),_.scope),w=_.update=()=>{g.dirty&&g.run()};w.i=_,w.id=_.uid,Bt(_,!0),w()},te=(_,b,P)=>{b.component=_;const F=_.vnode.props;_.vnode=b,_.next=null,xd(_,b.props,F,P),$d(_,b.children,P),Ut(),ci(_),jt()},X=(_,b,P,F,k,U,V,p,g=!1)=>{const w=_&&_.children,I=_?_.shapeFlag:0,j=b.children,{patchFlag:$,shapeFlag:L}=b;if($>0){if($&128){Qe(w,j,P,F,k,U,V,p,g);return}else if($&256){ye(w,j,P,F,k,U,V,p,g);return}}L&8?(I&16&&ke(w,k,U),j!==w&&u(P,j)):I&16?L&16?Qe(w,j,P,F,k,U,V,p,g):ke(w,k,U,!0):(I&8&&u(P,""),L&16&&D(j,P,F,k,U,V,p,g))},ye=(_,b,P,F,k,U,V,p,g)=>{_=_||ln,b=b||ln;const w=_.length,I=b.length,j=Math.min(w,I);let $;for($=0;$I?ke(_,k,U,!0,!1,j):D(b,P,F,k,U,V,p,g,j)},Qe=(_,b,P,F,k,U,V,p,g)=>{let w=0;const I=b.length;let j=_.length-1,$=I-1;for(;w<=j&&w<=$;){const L=_[w],R=b[w]=g?Nt(b[w]):tt(b[w]);if(Rn(L,R))v(L,R,P,null,k,U,V,p,g);else break;w++}for(;w<=j&&w<=$;){const L=_[j],R=b[$]=g?Nt(b[$]):tt(b[$]);if(Rn(L,R))v(L,R,P,null,k,U,V,p,g);else break;j--,$--}if(w>j){if(w<=$){const L=$+1,R=L$)for(;w<=j;)Te(_[w],k,U,!0),w++;else{const L=w,R=w,J=new Map;for(w=R;w<=$;w++){const Ye=b[w]=g?Nt(b[w]):tt(b[w]);Ye.key!=null&&J.set(Ye.key,w)}let Q,he=0;const Ie=$-R+1;let ze=!1,er=0;const tn=new Array(Ie);for(w=0;w=Ie){Te(Ye,k,U,!0);continue}let ft;if(Ye.key!=null)ft=J.get(Ye.key);else for(Q=R;Q<=$;Q++)if(tn[Q-R]===0&&Rn(Ye,b[Q])){ft=Q;break}ft===void 0?Te(Ye,k,U,!0):(tn[ft-R]=w+1,ft>=er?er=ft:ze=!0,v(Ye,b[ft],P,null,k,U,V,p,g),he++)}const Ro=ze?Yd(tn):ln;for(Q=Ro.length-1,w=Ie-1;w>=0;w--){const Ye=R+w,ft=b[Ye],ko=Ye+1{const{el:U,type:V,transition:p,children:g,shapeFlag:w}=_;if(w&6){we(_.component.subTree,b,P,F);return}if(w&128){_.suspense.move(b,P,F);return}if(w&64){V.move(_,b,P,G);return}if(V===Me){r(U,b,P);for(let j=0;jp.enter(U),k);else{const{leave:j,delayLeave:$,afterLeave:L}=p,R=()=>r(U,b,P),J=()=>{j(U,()=>{R(),L&&L()})};$?$(U,R,J):J()}else r(U,b,P)},Te=(_,b,P,F=!1,k=!1)=>{const{type:U,props:V,ref:p,children:g,dynamicChildren:w,shapeFlag:I,patchFlag:j,dirs:$,cacheIndex:L}=_;if(j===-2&&(k=!1),p!=null&&kr(p,null,P,_,!0),L!=null&&(b.renderCache[L]=void 0),I&256){b.ctx.deactivate(_);return}const R=I&1&&$,J=!dn(_);let Q;if(J&&(Q=V&&V.onVnodeBeforeUnmount)&&Ze(Q,b,_),I&6)St(_.component,P,F);else{if(I&128){_.suspense.unmount(P,F);return}R&&dt(_,null,b,"beforeUnmount"),I&64?_.type.remove(_,b,P,G,F):w&&!w.hasOnce&&(U!==Me||j>0&&j&64)?ke(w,b,P,!1,!0):(U===Me&&j&384||!k&&I&16)&&ke(g,b,P),F&&ut(_)}(J&&(Q=V&&V.onVnodeUnmounted)||R)&&We(()=>{Q&&Ze(Q,b,_),R&&dt(_,null,b,"unmounted")},P)},ut=_=>{const{type:b,el:P,anchor:F,transition:k}=_;if(b===Me){st(P,F);return}if(b===Hn){y(_);return}const U=()=>{s(P),k&&!k.persisted&&k.afterLeave&&k.afterLeave()};if(_.shapeFlag&1&&k&&!k.persisted){const{leave:V,delayLeave:p}=k,g=()=>V(P,U);p?p(_.el,U,g):g()}else U()},st=(_,b)=>{let P;for(;_!==b;)P=d(_),s(_),_=P;s(b)},St=(_,b,P)=>{const{bum:F,scope:k,update:U,subTree:V,um:p,m:g,a:w}=_;bi(g),bi(w),F&&mr(F),k.stop(),U&&(U.active=!1,Te(V,_,b,P)),p&&We(p,b),We(()=>{_.isUnmounted=!0},b),b&&b.pendingBranch&&!b.isUnmounted&&_.asyncDep&&!_.asyncResolved&&_.suspenseId===b.pendingId&&(b.deps--,b.deps===0&&b.resolve())},ke=(_,b,P,F=!1,k=!1,U=0)=>{for(let V=U;V<_.length;V++)Te(_[V],b,P,F,k)},M=_=>{if(_.shapeFlag&6)return M(_.component.subTree);if(_.shapeFlag&128)return _.suspense.next();const b=d(_.anchor||_.el),P=b&&b[Ua];return P?d(P):b};let K=!1;const W=(_,b,P)=>{_==null?b._vnode&&Te(b._vnode,null,null,!0):v(b._vnode||null,_,b,null,null,null,P),b._vnode=_,K||(K=!0,ci(),Pr(),K=!1)},G={p:v,um:Te,m:we,r:ut,mt:Le,mc:D,pc:X,pbc:H,n:M,o:e};let ie,de;return t&&([ie,de]=t(G)),{render:W,hydrate:ie,createApp:Id(W,ie)}}function us({type:e,props:t},n){return n==="svg"&&e==="foreignObject"||n==="mathml"&&e==="annotation-xml"&&t&&t.encoding&&t.encoding.includes("html")?void 0:n}function Bt({effect:e,update:t},n){e.allowRecurse=t.allowRecurse=n}function Ka(e,t){return(!e||e&&!e.pendingBranch)&&t&&!t.persisted}function vo(e,t,n=!1){const r=e.children,s=t.children;if(Z(r)&&Z(s))for(let o=0;o>1,e[n[a]]0&&(t[r]=n[o-1]),n[o]=r)}}for(o=n.length,i=n[o-1];o-- >0;)n[o]=i,i=t[i];return n}function Ba(e){const t=e.subTree.component;if(t)return t.asyncDep&&!t.asyncResolved?t:Ba(t)}function bi(e){if(e)for(let t=0;tJe(Xd);function Ga(e,t){return Eo(e,null,t)}const fr={};function Se(e,t,n){return Eo(e,t,n)}function Eo(e,t,{immediate:n,deep:r,flush:s,once:o,onTrack:i,onTrigger:a}=ge){if(t&&o){const T=t;t=(...A)=>{T(...A),S()}}const l=Re,c=T=>r===!0?T:kt(T,r===!1?1:void 0);let u,f=!1,d=!1;if(Ce(e)?(u=()=>e.value,f=bn(e)):un(e)?(u=()=>c(e),f=!0):Z(e)?(d=!0,f=e.some(T=>un(T)||bn(T)),u=()=>e.map(T=>{if(Ce(T))return T.value;if(un(T))return c(T);if(ne(T))return Mt(T,l,2)})):ne(e)?t?u=()=>Mt(e,l,2):u=()=>(m&&m(),it(e,l,3,[E])):u=nt,t&&r){const T=u;u=()=>kt(T())}let m,E=T=>{m=h.onStop=()=>{Mt(T,l,4),m=h.onStop=void 0}},v;if(Zr)if(E=nt,t?n&&it(t,l,3,[u(),d?[]:void 0,E]):u(),s==="sync"){const T=qd();v=T.__watcherHandles||(T.__watcherHandles=[])}else return nt;let C=d?new Array(e.length).fill(fr):fr;const O=()=>{if(!(!h.active||!h.dirty))if(t){const T=h.run();(r||f||(d?T.some((A,D)=>Ft(A,C[D])):Ft(T,C)))&&(m&&m(),it(t,l,3,[T,C===fr?void 0:d&&C[0]===fr?[]:C,E]),C=T)}else h.run()};O.allowRecurse=!!t;let N;s==="sync"?N=O:s==="post"?N=()=>We(O,l&&l.suspense):(O.pre=!0,l&&(O.id=l.uid),N=()=>go(O));const h=new oo(u,nt,N),y=Jl(),S=()=>{h.stop(),y&&to(y.effects,h)};return t?n?O():C=h.run():s==="post"?We(h.run.bind(h),l&&l.suspense):h.run(),v&&v.push(S),S}function Jd(e,t,n){const r=this.proxy,s=Ee(e)?e.includes(".")?za(r,e):()=>r[e]:e.bind(r,r);let o;ne(t)?o=t:(o=t.handler,n=t);const i=Jn(this),a=Eo(s,o.bind(r),n);return i(),a}function za(e,t){const n=t.split(".");return()=>{let r=e;for(let s=0;s{kt(r,t,n)});else if(Wl(e)){for(const r in e)kt(e[r],t,n);for(const r of Object.getOwnPropertySymbols(e))Object.prototype.propertyIsEnumerable.call(e,r)&&kt(e[r],t,n)}return e}const Qd=(e,t)=>t==="modelValue"||t==="model-value"?e.modelModifiers:e[`${t}Modifiers`]||e[`${lt(t)}Modifiers`]||e[`${Zt(t)}Modifiers`];function Zd(e,t,...n){if(e.isUnmounted)return;const r=e.vnode.props||ge;let s=n;const o=t.startsWith("update:"),i=o&&Qd(r,t.slice(7));i&&(i.trim&&(s=n.map(u=>Ee(u)?u.trim():u)),i.number&&(s=n.map(Lr)));let a,l=r[a=ls(t)]||r[a=ls(lt(t))];!l&&o&&(l=r[a=ls(Zt(t))]),l&&it(l,e,6,s);const c=r[a+"Once"];if(c){if(!e.emitted)e.emitted={};else if(e.emitted[a])return;e.emitted[a]=!0,it(c,e,6,s)}}function Ya(e,t,n=!1){const r=t.emitsCache,s=r.get(e);if(s!==void 0)return s;const o=e.emits;let i={},a=!1;if(!ne(e)){const l=c=>{const u=Ya(c,t,!0);u&&(a=!0,Fe(i,u))};!n&&t.mixins.length&&t.mixins.forEach(l),e.extends&&l(e.extends),e.mixins&&e.mixins.forEach(l)}return!o&&!a?(pe(e)&&r.set(e,null),null):(Z(o)?o.forEach(l=>i[l]=null):Fe(i,o),pe(e)&&r.set(e,i),i)}function Jr(e,t){return!e||!Xn(t)?!1:(t=t.slice(2).replace(/Once$/,""),ae(e,t[0].toLowerCase()+t.slice(1))||ae(e,Zt(t))||ae(e,t))}function fs(e){const{type:t,vnode:n,proxy:r,withProxy:s,propsOptions:[o],slots:i,attrs:a,emit:l,render:c,renderCache:u,props:f,data:d,setupState:m,ctx:E,inheritAttrs:v}=e,C=Nr(e);let O,N;try{if(n.shapeFlag&4){const y=s||r,S=y;O=tt(c.call(S,y,u,f,m,d,E)),N=a}else{const y=t;O=tt(y.length>1?y(f,{attrs:a,slots:i,emit:l}):y(f,null)),N=t.props?a:eh(a)}}catch(y){$n.length=0,Xr(y,e,1),O=Ne(wt)}let h=O;if(N&&v!==!1){const y=Object.keys(N),{shapeFlag:S}=h;y.length&&S&7&&(o&&y.some(eo)&&(N=th(N,o)),h=vn(h,N,!1,!0))}return n.dirs&&(h=vn(h,null,!1,!0),h.dirs=h.dirs?h.dirs.concat(n.dirs):n.dirs),n.transition&&(h.transition=n.transition),O=h,Nr(C),O}const eh=e=>{let t;for(const n in e)(n==="class"||n==="style"||Xn(n))&&((t||(t={}))[n]=e[n]);return t},th=(e,t)=>{const n={};for(const r in e)(!eo(r)||!(r.slice(9)in t))&&(n[r]=e[r]);return n};function nh(e,t,n){const{props:r,children:s,component:o}=e,{props:i,children:a,patchFlag:l}=t,c=o.emitsOptions;if(t.dirs||t.transition)return!0;if(n&&l>=0){if(l&1024)return!0;if(l&16)return r?vi(r,i,c):!!i;if(l&8){const u=t.dynamicProps;for(let f=0;fe.__isSuspense;function Xa(e,t){t&&t.pendingBranch?Z(e)?t.effects.push(...e):t.effects.push(e):pd(e)}const Me=Symbol.for("v-fgt"),xt=Symbol.for("v-txt"),wt=Symbol.for("v-cmt"),Hn=Symbol.for("v-stc"),$n=[];let qe=null;function Qr(e=!1){$n.push(qe=e?null:[])}function oh(){$n.pop(),qe=$n[$n.length-1]||null}let Gn=1;function Ei(e){Gn+=e,e<0&&qe&&(qe.hasOnce=!0)}function qa(e){return e.dynamicChildren=Gn>0?qe||ln:null,oh(),Gn>0&&qe&&qe.push(e),e}function ih(e,t,n,r,s,o){return qa(Mr(e,t,n,r,s,o,!0))}function wo(e,t,n,r,s){return qa(Ne(e,t,n,r,s,!0))}function Ir(e){return e?e.__v_isVNode===!0:!1}function Rn(e,t){return e.type===t.type&&e.key===t.key}const Ja=({key:e})=>e??null,_r=({ref:e,ref_key:t,ref_for:n})=>(typeof e=="number"&&(e=""+e),e!=null?Ee(e)||Ce(e)||ne(e)?{i:Pe,r:e,k:t,f:!!n}:e:null);function Mr(e,t=null,n=null,r=0,s=null,o=e===Me?0:1,i=!1,a=!1){const l={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&Ja(t),ref:t&&_r(t),scopeId:ya,slotScopeIds:null,children:n,component:null,suspense:null,ssContent:null,ssFallback:null,dirs:null,transition:null,el:null,anchor:null,target:null,targetStart:null,targetAnchor:null,staticCount:0,shapeFlag:o,patchFlag:r,dynamicProps:s,dynamicChildren:null,appContext:null,ctx:Pe};return a?(To(l,n),o&128&&e.normalize(l)):n&&(l.shapeFlag|=Ee(n)?8:16),Gn>0&&!i&&qe&&(l.patchFlag>0||o&6)&&l.patchFlag!==32&&qe.push(l),l}const Ne=lh;function lh(e,t=null,n=null,r=0,s=null,o=!1){if((!e||e===Ca)&&(e=wt),Ir(e)){const a=vn(e,t,!0);return n&&To(a,n),Gn>0&&!o&&qe&&(a.shapeFlag&6?qe[qe.indexOf(e)]=a:qe.push(a)),a.patchFlag=-2,a}if(yh(e)&&(e=e.__vccOpts),t){t=ah(t);let{class:a,style:l}=t;a&&!Ee(a)&&(t.class=so(a)),pe(l)&&(ca(l)&&!Z(l)&&(l=Fe({},l)),t.style=ro(l))}const i=Ee(e)?1:sh(e)?128:Ud(e)?64:pe(e)?4:ne(e)?2:0;return Mr(e,t,n,r,s,i,o,!0)}function ah(e){return e?ca(e)||Ia(e)?Fe({},e):e:null}function vn(e,t,n=!1,r=!1){const{props:s,ref:o,patchFlag:i,children:a,transition:l}=e,c=t?ch(s||{},t):s,u={__v_isVNode:!0,__v_skip:!0,type:e.type,props:c,key:c&&Ja(c),ref:t&&t.ref?n&&o?Z(o)?o.concat(_r(t)):[o,_r(t)]:_r(t):o,scopeId:e.scopeId,slotScopeIds:e.slotScopeIds,children:a,target:e.target,targetStart:e.targetStart,targetAnchor:e.targetAnchor,staticCount:e.staticCount,shapeFlag:e.shapeFlag,patchFlag:t&&e.type!==Me?i===-1?16:i|16:i,dynamicProps:e.dynamicProps,dynamicChildren:e.dynamicChildren,appContext:e.appContext,dirs:e.dirs,transition:l,component:e.component,suspense:e.suspense,ssContent:e.ssContent&&vn(e.ssContent),ssFallback:e.ssFallback&&vn(e.ssFallback),el:e.el,anchor:e.anchor,ctx:e.ctx,ce:e.ce};return l&&r&&ba(u,l.clone(u)),u}function Qa(e=" ",t=0){return Ne(xt,null,e,t)}function C_(e,t){const n=Ne(Hn,null,e);return n.staticCount=t,n}function L_(e="",t=!1){return t?(Qr(),wo(wt,null,e)):Ne(wt,null,e)}function tt(e){return e==null||typeof e=="boolean"?Ne(wt):Z(e)?Ne(Me,null,e.slice()):typeof e=="object"?Nt(e):Ne(xt,null,String(e))}function Nt(e){return e.el===null&&e.patchFlag!==-1||e.memo?e:vn(e)}function To(e,t){let n=0;const{shapeFlag:r}=e;if(t==null)t=null;else if(Z(t))n=16;else if(typeof t=="object")if(r&65){const s=t.default;s&&(s._c&&(s._d=!1),To(e,s()),s._c&&(s._d=!0));return}else{n=32;const s=t._;!s&&!Ia(t)?t._ctx=Pe:s===3&&Pe&&(Pe.slots._===1?t._=1:(t._=2,e.patchFlag|=1024))}else ne(t)?(t={default:t,_ctx:Pe},n=32):(t=String(t),r&64?(n=16,t=[Qa(t)]):n=8);e.children=t,e.shapeFlag|=n}function ch(...e){const t={};for(let n=0;nRe||Pe;let xr,Ds;{const e=Bl(),t=(n,r)=>{let s;return(s=e[n])||(s=e[n]=[]),s.push(r),o=>{s.length>1?s.forEach(i=>i(o)):s[0](o)}};xr=t("__VUE_INSTANCE_SETTERS__",n=>Re=n),Ds=t("__VUE_SSR_SETTERS__",n=>Zr=n)}const Jn=e=>{const t=Re;return xr(e),e.scope.on(),()=>{e.scope.off(),xr(t)}},wi=()=>{Re&&Re.scope.off(),xr(null)};function Za(e){return e.vnode.shapeFlag&4}let Zr=!1;function hh(e,t=!1,n=!1){t&&Ds(t);const{props:r,children:s}=e.vnode,o=Za(e);Md(e,r,o,t),Hd(e,s,n);const i=o?ph(e,t):void 0;return t&&Ds(!1),i}function ph(e,t){const n=e.type;e.accessCache=Object.create(null),e.proxy=new Proxy(e.ctx,Cd);const{setup:r}=n;if(r){const s=e.setupContext=r.length>1?gh(e):null,o=Jn(e);Ut();const i=Mt(r,e,0,[e.props,s]);if(jt(),o(),jl(i)){if(i.then(wi,wi),t)return i.then(a=>{Ti(e,a,t)}).catch(a=>{Xr(a,e,0)});e.asyncDep=i}else Ti(e,i,t)}else ec(e,t)}function Ti(e,t,n){ne(t)?e.type.__ssrInlineRender?e.ssrRender=t:e.render=t:pe(t)&&(e.setupState=ha(t)),ec(e,n)}let Si;function ec(e,t,n){const r=e.type;if(!e.render){if(!t&&Si&&!r.render){const s=r.template||yo(e).template;if(s){const{isCustomElement:o,compilerOptions:i}=e.appContext.config,{delimiters:a,compilerOptions:l}=r,c=Fe(Fe({isCustomElement:o,delimiters:a},i),l);r.render=Si(s,c)}}e.render=r.render||nt}{const s=Jn(e);Ut();try{Ld(e)}finally{jt(),s()}}}const mh={get(e,t){return Be(e,"get",""),e[t]}};function gh(e){const t=n=>{e.exposed=n||{}};return{attrs:new Proxy(e.attrs,mh),slots:e.slots,emit:e.emit,expose:t}}function es(e){return e.exposed?e.exposeProxy||(e.exposeProxy=new Proxy(ha(ua(e.exposed)),{get(t,n){if(n in t)return t[n];if(n in Dn)return Dn[n](e)},has(t,n){return n in t||n in Dn}})):e.proxy}function _h(e,t=!0){return ne(e)?e.displayName||e.name:e.name||t&&e.__name}function yh(e){return ne(e)&&"__vccOpts"in e}const oe=(e,t)=>rd(e,t,Zr);function ts(e,t,n){const r=arguments.length;return r===2?pe(t)&&!Z(t)?Ir(t)?Ne(e,null,[t]):Ne(e,t):Ne(e,null,t):(r>3?n=Array.prototype.slice.call(arguments,2):r===3&&Ir(n)&&(n=[n]),Ne(e,t,n))}const tc="3.4.38";/** +**/function Mt(e,t,n,r){try{return r?e(...r):e()}catch(s){Xr(s,t,n)}}function it(e,t,n,r){if(re(e)){const s=Mt(e,t,n,r);return s&&jl(s)&&s.catch(o=>{Xr(o,t,n)}),s}if(Z(e)){const s=[];for(let o=0;o>>1,s=xe[r],o=Gn(s);oht&&xe.splice(t,1)}function pd(e){Z(e)?fn.push(...e):(!Pt||!Pt.includes(e,e.allowRecurse?Gt+1:Gt))&&fn.push(e),ga()}function ci(e,t,n=Bn?ht+1:0){for(;nGn(n)-Gn(r));if(fn.length=0,Pt){Pt.push(...t);return}for(Pt=t,Gt=0;Gte.id==null?1/0:e.id,md=(e,t)=>{const n=Gn(e)-Gn(t);if(n===0){if(e.pre&&!t.pre)return-1;if(t.pre&&!e.pre)return 1}return n};function _a(e){Ns=!1,Bn=!0,xe.sort(md);try{for(ht=0;ht{r._d&&Ei(-1);const o=Rr(t);let i;try{i=e(...s)}finally{Rr(o),r._d&&Ei(1)}return i};return r._n=!0,r._c=!0,r._d=!0,r}function w_(e,t){if(Pe===null)return e;const n=es(Pe),r=e.dirs||(e.dirs=[]);for(let s=0;s!!e.type.__asyncLoader,va=e=>e.type.__isKeepAlive;function Ea(e,t){Ta(e,"a",t)}function wa(e,t){Ta(e,"da",t)}function Ta(e,t,n=Re){const r=e.__wdc||(e.__wdc=()=>{let s=n;for(;s;){if(s.isDeactivated)return;s=s.parent}return e()});if(qr(t,r,n),n){let s=n.parent;for(;s&&s.parent;)va(s.parent.vnode)&&_d(r,t,n,s),s=s.parent}}function _d(e,t,n,r){const s=qr(t,e,r,!0);_o(()=>{to(r[t],s)},n)}function qr(e,t,n=Re,r=!1){if(n){const s=n[e]||(n[e]=[]),o=t.__weh||(t.__weh=(...i)=>{Ut();const a=Qn(n),l=it(t,n,e,i);return a(),jt(),l});return r?s.unshift(o):s.push(o),o}}const Tt=e=>(t,n=Re)=>{(!Zr||e==="sp")&&qr(e,(...r)=>t(...r),n)},yd=Tt("bm"),An=Tt("m"),bd=Tt("bu"),vd=Tt("u"),Sa=Tt("bum"),_o=Tt("um"),Ed=Tt("sp"),wd=Tt("rtg"),Td=Tt("rtc");function Sd(e,t=Re){qr("ec",e,t)}const Oa="components";function Od(e,t){return La(Oa,e,!0,t)||e}const Ca=Symbol.for("v-ndc");function T_(e){return Ee(e)?La(Oa,e,!1)||e:e||Ca}function La(e,t,n=!0,r=!1){const s=Pe||Re;if(s){const o=s.type;{const a=_h(o,!1);if(a&&(a===t||a===lt(t)||a===Gr(lt(t))))return o}const i=ui(s[e]||o[e],t)||ui(s.appContext[e],t);return!i&&r?o:i}}function ui(e,t){return e&&(e[t]||e[lt(t)]||e[Gr(lt(t))])}function S_(e,t,n,r){let s;const o=n;if(Z(e)||Ee(e)){s=new Array(e.length);for(let i=0,a=e.length;it(i,a,void 0,o));else{const i=Object.keys(e);s=new Array(i.length);for(let a=0,l=i.length;aMr(t)?!(t.type===wt||t.type===Me&&!Aa(t.children)):!0)?e:null}const Rs=e=>e?Za(e)?es(e):Rs(e.parent):null,Fn=Fe(Object.create(null),{$:e=>e,$el:e=>e.vnode.el,$data:e=>e.data,$props:e=>e.props,$attrs:e=>e.attrs,$slots:e=>e.slots,$refs:e=>e.refs,$parent:e=>Rs(e.parent),$root:e=>Rs(e.root),$emit:e=>e.emit,$options:e=>yo(e),$forceUpdate:e=>e.f||(e.f=()=>{e.effect.dirty=!0,go(e.update)}),$nextTick:e=>e.n||(e.n=Ln.bind(e.proxy)),$watch:e=>Jd.bind(e)}),cs=(e,t)=>e!==ge&&!e.__isScriptSetup&&ae(e,t),Cd={get({_:e},t){if(t==="__v_skip")return!0;const{ctx:n,setupState:r,data:s,props:o,accessCache:i,type:a,appContext:l}=e;let c;if(t[0]!=="$"){const m=i[t];if(m!==void 0)switch(m){case 1:return r[t];case 2:return s[t];case 4:return n[t];case 3:return o[t]}else{if(cs(r,t))return i[t]=1,r[t];if(s!==ge&&ae(s,t))return i[t]=2,s[t];if((c=e.propsOptions[0])&&ae(c,t))return i[t]=3,o[t];if(n!==ge&&ae(n,t))return i[t]=4,n[t];ks&&(i[t]=0)}}const u=Fn[t];let f,d;if(u)return t==="$attrs"&&Ge(e.attrs,"get",""),u(e);if((f=a.__cssModules)&&(f=f[t]))return f;if(n!==ge&&ae(n,t))return i[t]=4,n[t];if(d=l.config.globalProperties,ae(d,t))return d[t]},set({_:e},t,n){const{data:r,setupState:s,ctx:o}=e;return cs(s,t)?(s[t]=n,!0):r!==ge&&ae(r,t)?(r[t]=n,!0):ae(e.props,t)||t[0]==="$"&&t.slice(1)in e?!1:(o[t]=n,!0)},has({_:{data:e,setupState:t,accessCache:n,ctx:r,appContext:s,propsOptions:o}},i){let a;return!!n[i]||e!==ge&&ae(e,i)||cs(t,i)||(a=o[0])&&ae(a,i)||ae(r,i)||ae(Fn,i)||ae(s.config.globalProperties,i)},defineProperty(e,t,n){return n.get!=null?e._.accessCache[t]=0:ae(n,"value")&&this.set(e,t,n.value,null),Reflect.defineProperty(e,t,n)}};function fi(e){return Z(e)?e.reduce((t,n)=>(t[n]=null,t),{}):e}let ks=!0;function Ld(e){const t=yo(e),n=e.proxy,r=e.ctx;ks=!1,t.beforeCreate&&di(t.beforeCreate,e,"bc");const{data:s,computed:o,methods:i,watch:a,provide:l,inject:c,created:u,beforeMount:f,mounted:d,beforeUpdate:m,updated:E,activated:v,deactivated:C,beforeDestroy:O,beforeUnmount:N,destroyed:h,unmounted:y,render:S,renderTracked:T,renderTriggered:A,errorCaptured:F,serverPrefetch:x,expose:H,inheritAttrs:G,components:K,directives:ee,filters:Le}=t;if(c&&Ad(c,r,null),i)for(const ne in i){const X=i[ne];re(X)&&(r[ne]=X.bind(n))}if(s){const ne=s.call(n,n);pe(ne)&&(e.data=yn(ne))}if(ks=!0,o)for(const ne in o){const X=o[ne],ye=re(X)?X.bind(n,n):re(X.get)?X.get.bind(n,n):nt,Qe=!re(X)&&re(X.set)?X.set.bind(n):nt,we=oe({get:ye,set:Qe});Object.defineProperty(r,ne,{enumerable:!0,configurable:!0,get:()=>we.value,set:Te=>we.value=Te})}if(a)for(const ne in a)Pa(a[ne],r,n,ne);if(l){const ne=re(l)?l.call(n):l;Reflect.ownKeys(ne).forEach(X=>{_r(X,ne[X])})}u&&di(u,e,"c");function q(ne,X){Z(X)?X.forEach(ye=>ne(ye.bind(n))):X&&ne(X.bind(n))}if(q(yd,f),q(An,d),q(bd,m),q(vd,E),q(Ea,v),q(wa,C),q(Sd,F),q(Td,T),q(wd,A),q(Sa,N),q(_o,y),q(Ed,x),Z(H))if(H.length){const ne=e.exposed||(e.exposed={});H.forEach(X=>{Object.defineProperty(ne,X,{get:()=>n[X],set:ye=>n[X]=ye})})}else e.exposed||(e.exposed={});S&&e.render===nt&&(e.render=S),G!=null&&(e.inheritAttrs=G),K&&(e.components=K),ee&&(e.directives=ee)}function Ad(e,t,n=nt){Z(e)&&(e=Is(e));for(const r in e){const s=e[r];let o;pe(s)?"default"in s?o=Je(s.from||r,s.default,!0):o=Je(s.from||r):o=Je(s),Ce(o)?Object.defineProperty(t,r,{enumerable:!0,configurable:!0,get:()=>o.value,set:i=>o.value=i}):t[r]=o}}function di(e,t,n){it(Z(e)?e.map(r=>r.bind(t.proxy)):e.bind(t.proxy),t,n)}function Pa(e,t,n,r){const s=r.includes(".")?za(n,r):()=>n[r];if(Ee(e)){const o=t[e];re(o)&&Se(s,o)}else if(re(e))Se(s,e.bind(n));else if(pe(e))if(Z(e))e.forEach(o=>Pa(o,t,n,r));else{const o=re(e.handler)?e.handler.bind(n):t[e.handler];re(o)&&Se(s,o,e)}}function yo(e){const t=e.type,{mixins:n,extends:r}=t,{mixins:s,optionsCache:o,config:{optionMergeStrategies:i}}=e.appContext,a=o.get(t);let l;return a?l=a:!s.length&&!n&&!r?l=t:(l={},s.length&&s.forEach(c=>kr(l,c,i,!0)),kr(l,t,i)),pe(t)&&o.set(t,l),l}function kr(e,t,n,r=!1){const{mixins:s,extends:o}=t;o&&kr(e,o,n,!0),s&&s.forEach(i=>kr(e,i,n,!0));for(const i in t)if(!(r&&i==="expose")){const a=Pd[i]||n&&n[i];e[i]=a?a(e[i],t[i]):t[i]}return e}const Pd={data:hi,props:pi,emits:pi,methods:xn,computed:xn,beforeCreate:$e,created:$e,beforeMount:$e,mounted:$e,beforeUpdate:$e,updated:$e,beforeDestroy:$e,beforeUnmount:$e,destroyed:$e,unmounted:$e,activated:$e,deactivated:$e,errorCaptured:$e,serverPrefetch:$e,components:xn,directives:xn,watch:Rd,provide:hi,inject:Nd};function hi(e,t){return t?e?function(){return Fe(re(e)?e.call(this,this):e,re(t)?t.call(this,this):t)}:t:e}function Nd(e,t){return xn(Is(e),Is(t))}function Is(e){if(Z(e)){const t={};for(let n=0;n1)return n&&re(t)?t.call(r&&r.proxy):t}}const Ra={},ka=()=>Object.create(Ra),Ia=e=>Object.getPrototypeOf(e)===Ra;function Md(e,t,n,r=!1){const s={},o=ka();e.propsDefaults=Object.create(null),Ma(e,t,s,o);for(const i in e.propsOptions[0])i in s||(s[i]=void 0);n?e.props=r?s:uo(s):e.type.props?e.props=s:e.props=o,e.attrs=o}function xd(e,t,n,r){const{props:s,attrs:o,vnode:{patchFlag:i}}=e,a=ce(s),[l]=e.propsOptions;let c=!1;if((r||i>0)&&!(i&16)){if(i&8){const u=e.vnode.dynamicProps;for(let f=0;f{l=!0;const[d,m]=xa(f,t,!0);Fe(i,d),m&&a.push(...m)};!n&&t.mixins.length&&t.mixins.forEach(u),e.extends&&u(e.extends),e.mixins&&e.mixins.forEach(u)}if(!o&&!l)return pe(e)&&r.set(e,ln),ln;if(Z(o))for(let u=0;ue[0]==="_"||e==="$stable",bo=e=>Z(e)?e.map(tt):[tt(e)],Fd=(e,t,n)=>{if(t._n)return t;const r=gd((...s)=>bo(t(...s)),n);return r._c=!1,r},Fa=(e,t,n)=>{const r=e._ctx;for(const s in e){if(Da(s))continue;const o=e[s];if(re(o))t[s]=Fd(s,o,r);else if(o!=null){const i=bo(o);t[s]=()=>i}}},Ha=(e,t)=>{const n=bo(t);e.slots.default=()=>n},$a=(e,t,n)=>{for(const r in t)(n||r!=="_")&&(e[r]=t[r])},Hd=(e,t,n)=>{const r=e.slots=ka();if(e.vnode.shapeFlag&32){const s=t._;s?($a(r,t,n),n&&Kl(r,"_",s,!0)):Fa(t,r)}else t&&Ha(e,t)},$d=(e,t,n)=>{const{vnode:r,slots:s}=e;let o=!0,i=ge;if(r.shapeFlag&32){const a=t._;a?n&&a===1?o=!1:$a(s,t,n):(o=!t.$stable,Fa(t,s)),i=t}else t&&(Ha(e,t),i={default:1});if(o)for(const a in s)!Da(a)&&i[a]==null&&delete s[a]};function Ir(e,t,n,r,s=!1){if(Z(e)){e.forEach((d,m)=>Ir(d,t&&(Z(t)?t[m]:t),n,r,s));return}if(dn(r)&&!s)return;const o=r.shapeFlag&4?es(r.component):r.el,i=s?null:o,{i:a,r:l}=e,c=t&&t.r,u=a.refs===ge?a.refs={}:a.refs,f=a.setupState;if(c!=null&&c!==l&&(Ee(c)?(u[c]=null,ae(f,c)&&(f[c]=null)):Ce(c)&&(c.value=null)),re(l))Mt(l,a,12,[i,u]);else{const d=Ee(l),m=Ce(l);if(d||m){const E=()=>{if(e.f){const v=d?ae(f,l)?f[l]:u[l]:l.value;s?Z(v)&&to(v,o):Z(v)?v.includes(o)||v.push(o):d?(u[l]=[o],ae(f,l)&&(f[l]=u[l])):(l.value=[o],e.k&&(u[e.k]=l.value))}else d?(u[l]=i,ae(f,l)&&(f[l]=i)):m&&(l.value=i,e.k&&(u[e.k]=i))};i?(E.id=-1,Ke(E,n)):E()}}}const Ua=Symbol("_vte"),Ud=e=>e.__isTeleport,Hn=e=>e&&(e.disabled||e.disabled===""),gi=e=>typeof SVGElement<"u"&&e instanceof SVGElement,_i=e=>typeof MathMLElement=="function"&&e instanceof MathMLElement,xs=(e,t)=>{const n=e&&e.to;return Ee(n)?t?t(n):null:n},jd={name:"Teleport",__isTeleport:!0,process(e,t,n,r,s,o,i,a,l,c){const{mc:u,pc:f,pbc:d,o:{insert:m,querySelector:E,createText:v,createComment:C}}=c,O=Hn(t.props);let{shapeFlag:N,children:h,dynamicChildren:y}=t;if(e==null){const S=t.el=v(""),T=t.anchor=v("");m(S,n,r),m(T,n,r);const A=t.target=xs(t.props,E),F=Va(A,t,v,m);A&&(i==="svg"||gi(A)?i="svg":(i==="mathml"||_i(A))&&(i="mathml"));const x=(H,G)=>{N&16&&u(h,H,G,s,o,i,a,l)};O?x(n,T):A&&x(A,F)}else{t.el=e.el,t.targetStart=e.targetStart;const S=t.anchor=e.anchor,T=t.target=e.target,A=t.targetAnchor=e.targetAnchor,F=Hn(e.props),x=F?n:T,H=F?S:A;if(i==="svg"||gi(T)?i="svg":(i==="mathml"||_i(T))&&(i="mathml"),y?(d(e.dynamicChildren,y,x,s,o,i,a),vo(e,t,!0)):l||f(e,t,x,H,s,o,i,a,!1),O)F?t.props&&e.props&&t.props.to!==e.props.to&&(t.props.to=e.props.to):cr(t,n,S,c,1);else if((t.props&&t.props.to)!==(e.props&&e.props.to)){const G=t.target=xs(t.props,E);G&&cr(t,G,null,c,0)}else F&&cr(t,T,A,c,1)}ja(t)},remove(e,t,n,{um:r,o:{remove:s}},o){const{shapeFlag:i,children:a,anchor:l,targetStart:c,targetAnchor:u,target:f,props:d}=e;if(f&&(s(c),s(u)),o&&s(l),i&16){const m=o||!Hn(d);for(let E=0;E{yi||(console.error("Hydration completed but contains mismatches."),yi=!0)},Wd=e=>e.namespaceURI.includes("svg")&&e.tagName!=="foreignObject",Kd=e=>e.namespaceURI.includes("MathML"),ur=e=>{if(Wd(e))return"svg";if(Kd(e))return"mathml"},fr=e=>e.nodeType===8;function Bd(e){const{mt:t,p:n,o:{patchProp:r,createText:s,nextSibling:o,parentNode:i,remove:a,insert:l,createComment:c}}=e,u=(h,y)=>{if(!y.hasChildNodes()){n(null,h,y),Nr(),y._vnode=h;return}f(y.firstChild,h,null,null,null),Nr(),y._vnode=h},f=(h,y,S,T,A,F=!1)=>{F=F||!!y.dynamicChildren;const x=fr(h)&&h.data==="[",H=()=>v(h,y,S,T,A,x),{type:G,ref:K,shapeFlag:ee,patchFlag:Le}=y;let me=h.nodeType;y.el=h,Le===-2&&(F=!1,y.dynamicChildren=null);let q=null;switch(G){case xt:me!==3?y.children===""?(l(y.el=s(""),i(h),h),q=h):q=H():(h.data!==y.children&&(nn(),h.data=y.children),q=o(h));break;case wt:N(h)?(q=o(h),O(y.el=h.content.firstChild,h,S)):me!==8||x?q=H():q=o(h);break;case $n:if(x&&(h=o(h),me=h.nodeType),me===1||me===3){q=h;const ne=!y.children.length;for(let X=0;X{F=F||!!y.dynamicChildren;const{type:x,props:H,patchFlag:G,shapeFlag:K,dirs:ee,transition:Le}=y,me=x==="input"||x==="option";if(me||G!==-1){ee&&dt(y,null,S,"created");let q=!1;if(N(h)){q=Ka(T,Le)&&S&&S.vnode.props&&S.vnode.props.appear;const X=h.content.firstChild;q&&Le.beforeEnter(X),O(X,h,S),y.el=h=X}if(K&16&&!(H&&(H.innerHTML||H.textContent))){let X=m(h.firstChild,y,h,S,T,A,F);for(;X;){nn();const ye=X;X=X.nextSibling,a(ye)}}else K&8&&h.textContent!==y.children&&(nn(),h.textContent=y.children);if(H){if(me||!F||G&48){const X=h.tagName.includes("-");for(const ye in H)(me&&(ye.endsWith("value")||ye==="indeterminate")||qn(ye)&&!cn(ye)||ye[0]==="."||X)&&r(h,ye,null,H[ye],void 0,S)}else if(H.onClick)r(h,"onClick",null,H.onClick,void 0,S);else if(G&4&&un(H.style))for(const X in H.style)H.style[X]}let ne;(ne=H&&H.onVnodeBeforeMount)&&Ze(ne,S,y),ee&&dt(y,null,S,"beforeMount"),((ne=H&&H.onVnodeMounted)||ee||q)&&Xa(()=>{ne&&Ze(ne,S,y),q&&Le.enter(h),ee&&dt(y,null,S,"mounted")},T)}return h.nextSibling},m=(h,y,S,T,A,F,x)=>{x=x||!!y.dynamicChildren;const H=y.children,G=H.length;for(let K=0;K{const{slotScopeIds:x}=y;x&&(A=A?A.concat(x):x);const H=i(h),G=m(o(h),y,H,S,T,A,F);return G&&fr(G)&&G.data==="]"?o(y.anchor=G):(nn(),l(y.anchor=c("]"),H,G),G)},v=(h,y,S,T,A,F)=>{if(nn(),y.el=null,F){const G=C(h);for(;;){const K=o(h);if(K&&K!==G)a(K);else break}}const x=o(h),H=i(h);return a(h),n(null,y,H,x,S,T,ur(H),A),x},C=(h,y="[",S="]")=>{let T=0;for(;h;)if(h=o(h),h&&fr(h)&&(h.data===y&&T++,h.data===S)){if(T===0)return o(h);T--}return h},O=(h,y,S)=>{const T=y.parentNode;T&&T.replaceChild(h,y);let A=S;for(;A;)A.vnode.el===y&&(A.vnode.el=A.subTree.el=h),A=A.parent},N=h=>h.nodeType===1&&h.tagName.toLowerCase()==="template";return[u,f]}const Ke=Xa;function Gd(e){return Wa(e)}function zd(e){return Wa(e,Bd)}function Wa(e,t){const n=Bl();n.__VUE__=!0;const{insert:r,remove:s,patchProp:o,createElement:i,createText:a,createComment:l,setText:c,setElementText:u,parentNode:f,nextSibling:d,setScopeId:m=nt,insertStaticContent:E}=e,v=(_,b,P,D=null,k=null,U=null,V=void 0,p=null,g=!!b.dynamicChildren)=>{if(_===b)return;_&&!kn(_,b)&&(D=M(_),Te(_,k,U,!0),_=null),b.patchFlag===-2&&(g=!1,b.dynamicChildren=null);const{type:w,ref:I,shapeFlag:j}=b;switch(w){case xt:C(_,b,P,D);break;case wt:O(_,b,P,D);break;case $n:_==null&&N(b,P,D,V);break;case Me:K(_,b,P,D,k,U,V,p,g);break;default:j&1?S(_,b,P,D,k,U,V,p,g):j&6?ee(_,b,P,D,k,U,V,p,g):(j&64||j&128)&&w.process(_,b,P,D,k,U,V,p,g,z)}I!=null&&k&&Ir(I,_&&_.ref,U,b||_,!b)},C=(_,b,P,D)=>{if(_==null)r(b.el=a(b.children),P,D);else{const k=b.el=_.el;b.children!==_.children&&c(k,b.children)}},O=(_,b,P,D)=>{_==null?r(b.el=l(b.children||""),P,D):b.el=_.el},N=(_,b,P,D)=>{[_.el,_.anchor]=E(_.children,b,P,D,_.el,_.anchor)},h=({el:_,anchor:b},P,D)=>{let k;for(;_&&_!==b;)k=d(_),r(_,P,D),_=k;r(b,P,D)},y=({el:_,anchor:b})=>{let P;for(;_&&_!==b;)P=d(_),s(_),_=P;s(b)},S=(_,b,P,D,k,U,V,p,g)=>{b.type==="svg"?V="svg":b.type==="math"&&(V="mathml"),_==null?T(b,P,D,k,U,V,p,g):x(_,b,k,U,V,p,g)},T=(_,b,P,D,k,U,V,p)=>{let g,w;const{props:I,shapeFlag:j,transition:$,dirs:L}=_;if(g=_.el=i(_.type,U,I&&I.is,I),j&8?u(g,_.children):j&16&&F(_.children,g,null,D,k,us(_,U),V,p),L&&dt(_,null,D,"created"),A(g,_,_.scopeId,V,D),I){for(const J in I)J!=="value"&&!cn(J)&&o(g,J,null,I[J],U,D);"value"in I&&o(g,"value",null,I.value,U),(w=I.onVnodeBeforeMount)&&Ze(w,D,_)}L&&dt(_,null,D,"beforeMount");const R=Ka(k,$);R&&$.beforeEnter(g),r(g,b,P),((w=I&&I.onVnodeMounted)||R||L)&&Ke(()=>{w&&Ze(w,D,_),R&&$.enter(g),L&&dt(_,null,D,"mounted")},k)},A=(_,b,P,D,k)=>{if(P&&m(_,P),D)for(let U=0;U{for(let w=g;w<_.length;w++){const I=_[w]=p?Nt(_[w]):tt(_[w]);v(null,I,b,P,D,k,U,V,p)}},x=(_,b,P,D,k,U,V)=>{const p=b.el=_.el;let{patchFlag:g,dynamicChildren:w,dirs:I}=b;g|=_.patchFlag&16;const j=_.props||ge,$=b.props||ge;let L;if(P&&Bt(P,!1),(L=$.onVnodeBeforeUpdate)&&Ze(L,P,b,_),I&&dt(b,_,P,"beforeUpdate"),P&&Bt(P,!0),(j.innerHTML&&$.innerHTML==null||j.textContent&&$.textContent==null)&&u(p,""),w?H(_.dynamicChildren,w,p,P,D,us(b,k),U):V||X(_,b,p,null,P,D,us(b,k),U,!1),g>0){if(g&16)G(p,j,$,P,k);else if(g&2&&j.class!==$.class&&o(p,"class",null,$.class,k),g&4&&o(p,"style",j.style,$.style,k),g&8){const R=b.dynamicProps;for(let J=0;J{L&&Ze(L,P,b,_),I&&dt(b,_,P,"updated")},D)},H=(_,b,P,D,k,U,V)=>{for(let p=0;p{if(b!==P){if(b!==ge)for(const U in b)!cn(U)&&!(U in P)&&o(_,U,b[U],null,k,D);for(const U in P){if(cn(U))continue;const V=P[U],p=b[U];V!==p&&U!=="value"&&o(_,U,p,V,k,D)}"value"in P&&o(_,"value",b.value,P.value,k)}},K=(_,b,P,D,k,U,V,p,g)=>{const w=b.el=_?_.el:a(""),I=b.anchor=_?_.anchor:a("");let{patchFlag:j,dynamicChildren:$,slotScopeIds:L}=b;L&&(p=p?p.concat(L):L),_==null?(r(w,P,D),r(I,P,D),F(b.children||[],P,I,k,U,V,p,g)):j>0&&j&64&&$&&_.dynamicChildren?(H(_.dynamicChildren,$,P,k,U,V,p),(b.key!=null||k&&b===k.subTree)&&vo(_,b,!0)):X(_,b,P,I,k,U,V,p,g)},ee=(_,b,P,D,k,U,V,p,g)=>{b.slotScopeIds=p,_==null?b.shapeFlag&512?k.ctx.activate(b,P,D,V,g):Le(b,P,D,k,U,V,g):me(_,b,g)},Le=(_,b,P,D,k,U,V)=>{const p=_.component=dh(_,D,k);if(va(_)&&(p.ctx.renderer=z),hh(p,!1,V),p.asyncDep){if(k&&k.registerDep(p,q,V),!_.el){const g=p.subTree=Ne(wt);O(null,g,b,P)}}else q(p,_,b,P,k,U,V)},me=(_,b,P)=>{const D=b.component=_.component;if(nh(_,b,P))if(D.asyncDep&&!D.asyncResolved){ne(D,b,P);return}else D.next=b,hd(D.update),D.effect.dirty=!0,D.update();else b.el=_.el,D.vnode=b},q=(_,b,P,D,k,U,V)=>{const p=()=>{if(_.isMounted){let{next:I,bu:j,u:$,parent:L,vnode:R}=_;{const ze=Ba(_);if(ze){I&&(I.el=R.el,ne(_,I,V)),ze.asyncDep.then(()=>{_.isUnmounted||p()});return}}let J=I,Q;Bt(_,!1),I?(I.el=R.el,ne(_,I,V)):I=R,j&&gr(j),(Q=I.props&&I.props.onVnodeBeforeUpdate)&&Ze(Q,L,I,R),Bt(_,!0);const he=fs(_),Ie=_.subTree;_.subTree=he,v(Ie,he,f(Ie.el),M(Ie),_,k,U),I.el=he.el,J===null&&rh(_,he.el),$&&Ke($,k),(Q=I.props&&I.props.onVnodeUpdated)&&Ke(()=>Ze(Q,L,I,R),k)}else{let I;const{el:j,props:$}=b,{bm:L,m:R,parent:J}=_,Q=dn(b);if(Bt(_,!1),L&&gr(L),!Q&&(I=$&&$.onVnodeBeforeMount)&&Ze(I,J,b),Bt(_,!0),j&&de){const he=()=>{_.subTree=fs(_),de(j,_.subTree,_,k,null)};Q?b.type.__asyncLoader().then(()=>!_.isUnmounted&&he()):he()}else{const he=_.subTree=fs(_);v(null,he,P,D,_,k,U),b.el=he.el}if(R&&Ke(R,k),!Q&&(I=$&&$.onVnodeMounted)){const he=b;Ke(()=>Ze(I,J,he),k)}(b.shapeFlag&256||J&&dn(J.vnode)&&J.vnode.shapeFlag&256)&&_.a&&Ke(_.a,k),_.isMounted=!0,b=P=D=null}},g=_.effect=new oo(p,nt,()=>go(w),_.scope),w=_.update=()=>{g.dirty&&g.run()};w.i=_,w.id=_.uid,Bt(_,!0),w()},ne=(_,b,P)=>{b.component=_;const D=_.vnode.props;_.vnode=b,_.next=null,xd(_,b.props,D,P),$d(_,b.children,P),Ut(),ci(_),jt()},X=(_,b,P,D,k,U,V,p,g=!1)=>{const w=_&&_.children,I=_?_.shapeFlag:0,j=b.children,{patchFlag:$,shapeFlag:L}=b;if($>0){if($&128){Qe(w,j,P,D,k,U,V,p,g);return}else if($&256){ye(w,j,P,D,k,U,V,p,g);return}}L&8?(I&16&&ke(w,k,U),j!==w&&u(P,j)):I&16?L&16?Qe(w,j,P,D,k,U,V,p,g):ke(w,k,U,!0):(I&8&&u(P,""),L&16&&F(j,P,D,k,U,V,p,g))},ye=(_,b,P,D,k,U,V,p,g)=>{_=_||ln,b=b||ln;const w=_.length,I=b.length,j=Math.min(w,I);let $;for($=0;$I?ke(_,k,U,!0,!1,j):F(b,P,D,k,U,V,p,g,j)},Qe=(_,b,P,D,k,U,V,p,g)=>{let w=0;const I=b.length;let j=_.length-1,$=I-1;for(;w<=j&&w<=$;){const L=_[w],R=b[w]=g?Nt(b[w]):tt(b[w]);if(kn(L,R))v(L,R,P,null,k,U,V,p,g);else break;w++}for(;w<=j&&w<=$;){const L=_[j],R=b[$]=g?Nt(b[$]):tt(b[$]);if(kn(L,R))v(L,R,P,null,k,U,V,p,g);else break;j--,$--}if(w>j){if(w<=$){const L=$+1,R=L$)for(;w<=j;)Te(_[w],k,U,!0),w++;else{const L=w,R=w,J=new Map;for(w=R;w<=$;w++){const Ye=b[w]=g?Nt(b[w]):tt(b[w]);Ye.key!=null&&J.set(Ye.key,w)}let Q,he=0;const Ie=$-R+1;let ze=!1,tr=0;const tn=new Array(Ie);for(w=0;w=Ie){Te(Ye,k,U,!0);continue}let ft;if(Ye.key!=null)ft=J.get(Ye.key);else for(Q=R;Q<=$;Q++)if(tn[Q-R]===0&&kn(Ye,b[Q])){ft=Q;break}ft===void 0?Te(Ye,k,U,!0):(tn[ft-R]=w+1,ft>=tr?tr=ft:ze=!0,v(Ye,b[ft],P,null,k,U,V,p,g),he++)}const Ro=ze?Yd(tn):ln;for(Q=Ro.length-1,w=Ie-1;w>=0;w--){const Ye=R+w,ft=b[Ye],ko=Ye+1{const{el:U,type:V,transition:p,children:g,shapeFlag:w}=_;if(w&6){we(_.component.subTree,b,P,D);return}if(w&128){_.suspense.move(b,P,D);return}if(w&64){V.move(_,b,P,z);return}if(V===Me){r(U,b,P);for(let j=0;jp.enter(U),k);else{const{leave:j,delayLeave:$,afterLeave:L}=p,R=()=>r(U,b,P),J=()=>{j(U,()=>{R(),L&&L()})};$?$(U,R,J):J()}else r(U,b,P)},Te=(_,b,P,D=!1,k=!1)=>{const{type:U,props:V,ref:p,children:g,dynamicChildren:w,shapeFlag:I,patchFlag:j,dirs:$,cacheIndex:L}=_;if(j===-2&&(k=!1),p!=null&&Ir(p,null,P,_,!0),L!=null&&(b.renderCache[L]=void 0),I&256){b.ctx.deactivate(_);return}const R=I&1&&$,J=!dn(_);let Q;if(J&&(Q=V&&V.onVnodeBeforeUnmount)&&Ze(Q,b,_),I&6)St(_.component,P,D);else{if(I&128){_.suspense.unmount(P,D);return}R&&dt(_,null,b,"beforeUnmount"),I&64?_.type.remove(_,b,P,z,D):w&&!w.hasOnce&&(U!==Me||j>0&&j&64)?ke(w,b,P,!1,!0):(U===Me&&j&384||!k&&I&16)&&ke(g,b,P),D&&ut(_)}(J&&(Q=V&&V.onVnodeUnmounted)||R)&&Ke(()=>{Q&&Ze(Q,b,_),R&&dt(_,null,b,"unmounted")},P)},ut=_=>{const{type:b,el:P,anchor:D,transition:k}=_;if(b===Me){st(P,D);return}if(b===$n){y(_);return}const U=()=>{s(P),k&&!k.persisted&&k.afterLeave&&k.afterLeave()};if(_.shapeFlag&1&&k&&!k.persisted){const{leave:V,delayLeave:p}=k,g=()=>V(P,U);p?p(_.el,U,g):g()}else U()},st=(_,b)=>{let P;for(;_!==b;)P=d(_),s(_),_=P;s(b)},St=(_,b,P)=>{const{bum:D,scope:k,update:U,subTree:V,um:p,m:g,a:w}=_;bi(g),bi(w),D&&gr(D),k.stop(),U&&(U.active=!1,Te(V,_,b,P)),p&&Ke(p,b),Ke(()=>{_.isUnmounted=!0},b),b&&b.pendingBranch&&!b.isUnmounted&&_.asyncDep&&!_.asyncResolved&&_.suspenseId===b.pendingId&&(b.deps--,b.deps===0&&b.resolve())},ke=(_,b,P,D=!1,k=!1,U=0)=>{for(let V=U;V<_.length;V++)Te(_[V],b,P,D,k)},M=_=>{if(_.shapeFlag&6)return M(_.component.subTree);if(_.shapeFlag&128)return _.suspense.next();const b=d(_.anchor||_.el),P=b&&b[Ua];return P?d(P):b};let B=!1;const W=(_,b,P)=>{_==null?b._vnode&&Te(b._vnode,null,null,!0):v(b._vnode||null,_,b,null,null,null,P),b._vnode=_,B||(B=!0,ci(),Nr(),B=!1)},z={p:v,um:Te,m:we,r:ut,mt:Le,mc:F,pc:X,pbc:H,n:M,o:e};let ie,de;return t&&([ie,de]=t(z)),{render:W,hydrate:ie,createApp:Id(W,ie)}}function us({type:e,props:t},n){return n==="svg"&&e==="foreignObject"||n==="mathml"&&e==="annotation-xml"&&t&&t.encoding&&t.encoding.includes("html")?void 0:n}function Bt({effect:e,update:t},n){e.allowRecurse=t.allowRecurse=n}function Ka(e,t){return(!e||e&&!e.pendingBranch)&&t&&!t.persisted}function vo(e,t,n=!1){const r=e.children,s=t.children;if(Z(r)&&Z(s))for(let o=0;o>1,e[n[a]]0&&(t[r]=n[o-1]),n[o]=r)}}for(o=n.length,i=n[o-1];o-- >0;)n[o]=i,i=t[i];return n}function Ba(e){const t=e.subTree.component;if(t)return t.asyncDep&&!t.asyncResolved?t:Ba(t)}function bi(e){if(e)for(let t=0;tJe(Xd);function Ga(e,t){return Eo(e,null,t)}const dr={};function Se(e,t,n){return Eo(e,t,n)}function Eo(e,t,{immediate:n,deep:r,flush:s,once:o,onTrack:i,onTrigger:a}=ge){if(t&&o){const T=t;t=(...A)=>{T(...A),S()}}const l=Re,c=T=>r===!0?T:kt(T,r===!1?1:void 0);let u,f=!1,d=!1;if(Ce(e)?(u=()=>e.value,f=bn(e)):un(e)?(u=()=>c(e),f=!0):Z(e)?(d=!0,f=e.some(T=>un(T)||bn(T)),u=()=>e.map(T=>{if(Ce(T))return T.value;if(un(T))return c(T);if(re(T))return Mt(T,l,2)})):re(e)?t?u=()=>Mt(e,l,2):u=()=>(m&&m(),it(e,l,3,[E])):u=nt,t&&r){const T=u;u=()=>kt(T())}let m,E=T=>{m=h.onStop=()=>{Mt(T,l,4),m=h.onStop=void 0}},v;if(Zr)if(E=nt,t?n&&it(t,l,3,[u(),d?[]:void 0,E]):u(),s==="sync"){const T=qd();v=T.__watcherHandles||(T.__watcherHandles=[])}else return nt;let C=d?new Array(e.length).fill(dr):dr;const O=()=>{if(!(!h.active||!h.dirty))if(t){const T=h.run();(r||f||(d?T.some((A,F)=>Ft(A,C[F])):Ft(T,C)))&&(m&&m(),it(t,l,3,[T,C===dr?void 0:d&&C[0]===dr?[]:C,E]),C=T)}else h.run()};O.allowRecurse=!!t;let N;s==="sync"?N=O:s==="post"?N=()=>Ke(O,l&&l.suspense):(O.pre=!0,l&&(O.id=l.uid),N=()=>go(O));const h=new oo(u,nt,N),y=Jl(),S=()=>{h.stop(),y&&to(y.effects,h)};return t?n?O():C=h.run():s==="post"?Ke(h.run.bind(h),l&&l.suspense):h.run(),v&&v.push(S),S}function Jd(e,t,n){const r=this.proxy,s=Ee(e)?e.includes(".")?za(r,e):()=>r[e]:e.bind(r,r);let o;re(t)?o=t:(o=t.handler,n=t);const i=Qn(this),a=Eo(s,o.bind(r),n);return i(),a}function za(e,t){const n=t.split(".");return()=>{let r=e;for(let s=0;s{kt(r,t,n)});else if(Wl(e)){for(const r in e)kt(e[r],t,n);for(const r of Object.getOwnPropertySymbols(e))Object.prototype.propertyIsEnumerable.call(e,r)&&kt(e[r],t,n)}return e}const Qd=(e,t)=>t==="modelValue"||t==="model-value"?e.modelModifiers:e[`${t}Modifiers`]||e[`${lt(t)}Modifiers`]||e[`${Zt(t)}Modifiers`];function Zd(e,t,...n){if(e.isUnmounted)return;const r=e.vnode.props||ge;let s=n;const o=t.startsWith("update:"),i=o&&Qd(r,t.slice(7));i&&(i.trim&&(s=n.map(u=>Ee(u)?u.trim():u)),i.number&&(s=n.map(Ar)));let a,l=r[a=ls(t)]||r[a=ls(lt(t))];!l&&o&&(l=r[a=ls(Zt(t))]),l&&it(l,e,6,s);const c=r[a+"Once"];if(c){if(!e.emitted)e.emitted={};else if(e.emitted[a])return;e.emitted[a]=!0,it(c,e,6,s)}}function Ya(e,t,n=!1){const r=t.emitsCache,s=r.get(e);if(s!==void 0)return s;const o=e.emits;let i={},a=!1;if(!re(e)){const l=c=>{const u=Ya(c,t,!0);u&&(a=!0,Fe(i,u))};!n&&t.mixins.length&&t.mixins.forEach(l),e.extends&&l(e.extends),e.mixins&&e.mixins.forEach(l)}return!o&&!a?(pe(e)&&r.set(e,null),null):(Z(o)?o.forEach(l=>i[l]=null):Fe(i,o),pe(e)&&r.set(e,i),i)}function Jr(e,t){return!e||!qn(t)?!1:(t=t.slice(2).replace(/Once$/,""),ae(e,t[0].toLowerCase()+t.slice(1))||ae(e,Zt(t))||ae(e,t))}function fs(e){const{type:t,vnode:n,proxy:r,withProxy:s,propsOptions:[o],slots:i,attrs:a,emit:l,render:c,renderCache:u,props:f,data:d,setupState:m,ctx:E,inheritAttrs:v}=e,C=Rr(e);let O,N;try{if(n.shapeFlag&4){const y=s||r,S=y;O=tt(c.call(S,y,u,f,m,d,E)),N=a}else{const y=t;O=tt(y.length>1?y(f,{attrs:a,slots:i,emit:l}):y(f,null)),N=t.props?a:eh(a)}}catch(y){Un.length=0,Xr(y,e,1),O=Ne(wt)}let h=O;if(N&&v!==!1){const y=Object.keys(N),{shapeFlag:S}=h;y.length&&S&7&&(o&&y.some(eo)&&(N=th(N,o)),h=En(h,N,!1,!0))}return n.dirs&&(h=En(h,null,!1,!0),h.dirs=h.dirs?h.dirs.concat(n.dirs):n.dirs),n.transition&&(h.transition=n.transition),O=h,Rr(C),O}const eh=e=>{let t;for(const n in e)(n==="class"||n==="style"||qn(n))&&((t||(t={}))[n]=e[n]);return t},th=(e,t)=>{const n={};for(const r in e)(!eo(r)||!(r.slice(9)in t))&&(n[r]=e[r]);return n};function nh(e,t,n){const{props:r,children:s,component:o}=e,{props:i,children:a,patchFlag:l}=t,c=o.emitsOptions;if(t.dirs||t.transition)return!0;if(n&&l>=0){if(l&1024)return!0;if(l&16)return r?vi(r,i,c):!!i;if(l&8){const u=t.dynamicProps;for(let f=0;fe.__isSuspense;function Xa(e,t){t&&t.pendingBranch?Z(e)?t.effects.push(...e):t.effects.push(e):pd(e)}const Me=Symbol.for("v-fgt"),xt=Symbol.for("v-txt"),wt=Symbol.for("v-cmt"),$n=Symbol.for("v-stc"),Un=[];let qe=null;function Qr(e=!1){Un.push(qe=e?null:[])}function oh(){Un.pop(),qe=Un[Un.length-1]||null}let zn=1;function Ei(e){zn+=e,e<0&&qe&&(qe.hasOnce=!0)}function qa(e){return e.dynamicChildren=zn>0?qe||ln:null,oh(),zn>0&&qe&&qe.push(e),e}function ih(e,t,n,r,s,o){return qa(xr(e,t,n,r,s,o,!0))}function wo(e,t,n,r,s){return qa(Ne(e,t,n,r,s,!0))}function Mr(e){return e?e.__v_isVNode===!0:!1}function kn(e,t){return e.type===t.type&&e.key===t.key}const Ja=({key:e})=>e??null,yr=({ref:e,ref_key:t,ref_for:n})=>(typeof e=="number"&&(e=""+e),e!=null?Ee(e)||Ce(e)||re(e)?{i:Pe,r:e,k:t,f:!!n}:e:null);function xr(e,t=null,n=null,r=0,s=null,o=e===Me?0:1,i=!1,a=!1){const l={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&Ja(t),ref:t&&yr(t),scopeId:ya,slotScopeIds:null,children:n,component:null,suspense:null,ssContent:null,ssFallback:null,dirs:null,transition:null,el:null,anchor:null,target:null,targetStart:null,targetAnchor:null,staticCount:0,shapeFlag:o,patchFlag:r,dynamicProps:s,dynamicChildren:null,appContext:null,ctx:Pe};return a?(To(l,n),o&128&&e.normalize(l)):n&&(l.shapeFlag|=Ee(n)?8:16),zn>0&&!i&&qe&&(l.patchFlag>0||o&6)&&l.patchFlag!==32&&qe.push(l),l}const Ne=lh;function lh(e,t=null,n=null,r=0,s=null,o=!1){if((!e||e===Ca)&&(e=wt),Mr(e)){const a=En(e,t,!0);return n&&To(a,n),zn>0&&!o&&qe&&(a.shapeFlag&6?qe[qe.indexOf(e)]=a:qe.push(a)),a.patchFlag=-2,a}if(yh(e)&&(e=e.__vccOpts),t){t=ah(t);let{class:a,style:l}=t;a&&!Ee(a)&&(t.class=so(a)),pe(l)&&(ca(l)&&!Z(l)&&(l=Fe({},l)),t.style=ro(l))}const i=Ee(e)?1:sh(e)?128:Ud(e)?64:pe(e)?4:re(e)?2:0;return xr(e,t,n,r,s,i,o,!0)}function ah(e){return e?ca(e)||Ia(e)?Fe({},e):e:null}function En(e,t,n=!1,r=!1){const{props:s,ref:o,patchFlag:i,children:a,transition:l}=e,c=t?ch(s||{},t):s,u={__v_isVNode:!0,__v_skip:!0,type:e.type,props:c,key:c&&Ja(c),ref:t&&t.ref?n&&o?Z(o)?o.concat(yr(t)):[o,yr(t)]:yr(t):o,scopeId:e.scopeId,slotScopeIds:e.slotScopeIds,children:a,target:e.target,targetStart:e.targetStart,targetAnchor:e.targetAnchor,staticCount:e.staticCount,shapeFlag:e.shapeFlag,patchFlag:t&&e.type!==Me?i===-1?16:i|16:i,dynamicProps:e.dynamicProps,dynamicChildren:e.dynamicChildren,appContext:e.appContext,dirs:e.dirs,transition:l,component:e.component,suspense:e.suspense,ssContent:e.ssContent&&En(e.ssContent),ssFallback:e.ssFallback&&En(e.ssFallback),el:e.el,anchor:e.anchor,ctx:e.ctx,ce:e.ce};return l&&r&&ba(u,l.clone(u)),u}function Qa(e=" ",t=0){return Ne(xt,null,e,t)}function L_(e,t){const n=Ne($n,null,e);return n.staticCount=t,n}function A_(e="",t=!1){return t?(Qr(),wo(wt,null,e)):Ne(wt,null,e)}function tt(e){return e==null||typeof e=="boolean"?Ne(wt):Z(e)?Ne(Me,null,e.slice()):typeof e=="object"?Nt(e):Ne(xt,null,String(e))}function Nt(e){return e.el===null&&e.patchFlag!==-1||e.memo?e:En(e)}function To(e,t){let n=0;const{shapeFlag:r}=e;if(t==null)t=null;else if(Z(t))n=16;else if(typeof t=="object")if(r&65){const s=t.default;s&&(s._c&&(s._d=!1),To(e,s()),s._c&&(s._d=!0));return}else{n=32;const s=t._;!s&&!Ia(t)?t._ctx=Pe:s===3&&Pe&&(Pe.slots._===1?t._=1:(t._=2,e.patchFlag|=1024))}else re(t)?(t={default:t,_ctx:Pe},n=32):(t=String(t),r&64?(n=16,t=[Qa(t)]):n=8);e.children=t,e.shapeFlag|=n}function ch(...e){const t={};for(let n=0;nRe||Pe;let Dr,Ds;{const e=Bl(),t=(n,r)=>{let s;return(s=e[n])||(s=e[n]=[]),s.push(r),o=>{s.length>1?s.forEach(i=>i(o)):s[0](o)}};Dr=t("__VUE_INSTANCE_SETTERS__",n=>Re=n),Ds=t("__VUE_SSR_SETTERS__",n=>Zr=n)}const Qn=e=>{const t=Re;return Dr(e),e.scope.on(),()=>{e.scope.off(),Dr(t)}},wi=()=>{Re&&Re.scope.off(),Dr(null)};function Za(e){return e.vnode.shapeFlag&4}let Zr=!1;function hh(e,t=!1,n=!1){t&&Ds(t);const{props:r,children:s}=e.vnode,o=Za(e);Md(e,r,o,t),Hd(e,s,n);const i=o?ph(e,t):void 0;return t&&Ds(!1),i}function ph(e,t){const n=e.type;e.accessCache=Object.create(null),e.proxy=new Proxy(e.ctx,Cd);const{setup:r}=n;if(r){const s=e.setupContext=r.length>1?gh(e):null,o=Qn(e);Ut();const i=Mt(r,e,0,[e.props,s]);if(jt(),o(),jl(i)){if(i.then(wi,wi),t)return i.then(a=>{Ti(e,a,t)}).catch(a=>{Xr(a,e,0)});e.asyncDep=i}else Ti(e,i,t)}else ec(e,t)}function Ti(e,t,n){re(t)?e.type.__ssrInlineRender?e.ssrRender=t:e.render=t:pe(t)&&(e.setupState=ha(t)),ec(e,n)}let Si;function ec(e,t,n){const r=e.type;if(!e.render){if(!t&&Si&&!r.render){const s=r.template||yo(e).template;if(s){const{isCustomElement:o,compilerOptions:i}=e.appContext.config,{delimiters:a,compilerOptions:l}=r,c=Fe(Fe({isCustomElement:o,delimiters:a},i),l);r.render=Si(s,c)}}e.render=r.render||nt}{const s=Qn(e);Ut();try{Ld(e)}finally{jt(),s()}}}const mh={get(e,t){return Ge(e,"get",""),e[t]}};function gh(e){const t=n=>{e.exposed=n||{}};return{attrs:new Proxy(e.attrs,mh),slots:e.slots,emit:e.emit,expose:t}}function es(e){return e.exposed?e.exposeProxy||(e.exposeProxy=new Proxy(ha(ua(e.exposed)),{get(t,n){if(n in t)return t[n];if(n in Fn)return Fn[n](e)},has(t,n){return n in t||n in Fn}})):e.proxy}function _h(e,t=!0){return re(e)?e.displayName||e.name:e.name||t&&e.__name}function yh(e){return re(e)&&"__vccOpts"in e}const oe=(e,t)=>rd(e,t,Zr);function ts(e,t,n){const r=arguments.length;return r===2?pe(t)&&!Z(t)?Mr(t)?Ne(e,null,[t]):Ne(e,t):Ne(e,null,t):(r>3?n=Array.prototype.slice.call(arguments,2):r===3&&Mr(n)&&(n=[n]),Ne(e,t,n))}const tc="3.4.38";/** * @vue/runtime-dom v3.4.38 * (c) 2018-present Yuxi (Evan) You and Vue contributors * @license MIT -**/const bh="http://www.w3.org/2000/svg",vh="http://www.w3.org/1998/Math/MathML",bt=typeof document<"u"?document:null,Oi=bt&&bt.createElement("template"),Eh={insert:(e,t,n)=>{t.insertBefore(e,n||null)},remove:e=>{const t=e.parentNode;t&&t.removeChild(e)},createElement:(e,t,n,r)=>{const s=t==="svg"?bt.createElementNS(bh,e):t==="mathml"?bt.createElementNS(vh,e):n?bt.createElement(e,{is:n}):bt.createElement(e);return e==="select"&&r&&r.multiple!=null&&s.setAttribute("multiple",r.multiple),s},createText:e=>bt.createTextNode(e),createComment:e=>bt.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>bt.querySelector(e),setScopeId(e,t){e.setAttribute(t,"")},insertStaticContent(e,t,n,r,s,o){const i=n?n.previousSibling:t.lastChild;if(s&&(s===o||s.nextSibling))for(;t.insertBefore(s.cloneNode(!0),n),!(s===o||!(s=s.nextSibling)););else{Oi.innerHTML=r==="svg"?`${e}`:r==="mathml"?`${e}`:e;const a=Oi.content;if(r==="svg"||r==="mathml"){const l=a.firstChild;for(;l.firstChild;)a.appendChild(l.firstChild);a.removeChild(l)}t.insertBefore(a,n)}return[i?i.nextSibling:t.firstChild,n?n.previousSibling:t.lastChild]}},wh=Symbol("_vtc");function Th(e,t,n){const r=e[wh];r&&(t=(t?[t,...r]:[...r]).join(" ")),t==null?e.removeAttribute("class"):n?e.setAttribute("class",t):e.className=t}const Dr=Symbol("_vod"),nc=Symbol("_vsh"),A_={beforeMount(e,{value:t},{transition:n}){e[Dr]=e.style.display==="none"?"":e.style.display,n&&t?n.beforeEnter(e):kn(e,t)},mounted(e,{value:t},{transition:n}){n&&t&&n.enter(e)},updated(e,{value:t,oldValue:n},{transition:r}){!t!=!n&&(r?t?(r.beforeEnter(e),kn(e,!0),r.enter(e)):r.leave(e,()=>{kn(e,!1)}):kn(e,t))},beforeUnmount(e,{value:t}){kn(e,t)}};function kn(e,t){e.style.display=t?e[Dr]:"none",e[nc]=!t}const Sh=Symbol(""),Oh=/(^|;)\s*display\s*:/;function Ch(e,t,n){const r=e.style,s=Ee(n);let o=!1;if(n&&!s){if(t)if(Ee(t))for(const i of t.split(";")){const a=i.slice(0,i.indexOf(":")).trim();n[a]==null&&yr(r,a,"")}else for(const i in t)n[i]==null&&yr(r,i,"");for(const i in n)i==="display"&&(o=!0),yr(r,i,n[i])}else if(s){if(t!==n){const i=r[Sh];i&&(n+=";"+i),r.cssText=n,o=Oh.test(n)}}else t&&e.removeAttribute("style");Dr in e&&(e[Dr]=o?r.display:"",e[nc]&&(r.display="none"))}const Ci=/\s*!important$/;function yr(e,t,n){if(Z(n))n.forEach(r=>yr(e,t,r));else if(n==null&&(n=""),t.startsWith("--"))e.setProperty(t,n);else{const r=Lh(e,t);Ci.test(n)?e.setProperty(Zt(r),n.replace(Ci,""),"important"):e[r]=n}}const Li=["Webkit","Moz","ms"],ds={};function Lh(e,t){const n=ds[t];if(n)return n;let r=lt(t);if(r!=="filter"&&r in e)return ds[t]=r;r=Br(r);for(let s=0;shs||(kh.then(()=>hs=0),hs=Date.now());function Mh(e,t){const n=r=>{if(!r._vts)r._vts=Date.now();else if(r._vts<=n.attached)return;it(xh(r,n.value),t,5,[r])};return n.value=e,n.attached=Ih(),n}function xh(e,t){if(Z(t)){const n=e.stopImmediatePropagation;return e.stopImmediatePropagation=()=>{n.call(e),e._stopped=!0},t.map(r=>s=>!s._stopped&&r&&r(s))}else return t}const ki=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&e.charCodeAt(2)>96&&e.charCodeAt(2)<123,Dh=(e,t,n,r,s,o)=>{const i=s==="svg";t==="class"?Th(e,r,i):t==="style"?Ch(e,n,r):Xn(t)?eo(t)||Nh(e,t,n,r,o):(t[0]==="."?(t=t.slice(1),!0):t[0]==="^"?(t=t.slice(1),!1):Fh(e,t,r,i))?(Ah(e,t,r),!e.tagName.includes("-")&&(t==="value"||t==="checked"||t==="selected")&&Pi(e,t,r,i,o,t!=="value")):(t==="true-value"?e._trueValue=r:t==="false-value"&&(e._falseValue=r),Pi(e,t,r,i))};function Fh(e,t,n,r){if(r)return!!(t==="innerHTML"||t==="textContent"||t in e&&ki(t)&&ne(n));if(t==="spellcheck"||t==="draggable"||t==="translate"||t==="form"||t==="list"&&e.tagName==="INPUT"||t==="type"&&e.tagName==="TEXTAREA")return!1;if(t==="width"||t==="height"){const s=e.tagName;if(s==="IMG"||s==="VIDEO"||s==="CANVAS"||s==="SOURCE")return!1}return ki(t)&&Ee(n)?!1:t in e}const Fr=e=>{const t=e.props["onUpdate:modelValue"]||!1;return Z(t)?n=>mr(t,n):t};function Hh(e){e.target.composing=!0}function Ii(e){const t=e.target;t.composing&&(t.composing=!1,t.dispatchEvent(new Event("input")))}const pn=Symbol("_assign"),P_={created(e,{modifiers:{lazy:t,trim:n,number:r}},s){e[pn]=Fr(s);const o=r||s.props&&s.props.type==="number";zt(e,t?"change":"input",i=>{if(i.target.composing)return;let a=e.value;n&&(a=a.trim()),o&&(a=Lr(a)),e[pn](a)}),n&&zt(e,"change",()=>{e.value=e.value.trim()}),t||(zt(e,"compositionstart",Hh),zt(e,"compositionend",Ii),zt(e,"change",Ii))},mounted(e,{value:t}){e.value=t??""},beforeUpdate(e,{value:t,oldValue:n,modifiers:{lazy:r,trim:s,number:o}},i){if(e[pn]=Fr(i),e.composing)return;const a=(o||e.type==="number")&&!/^0\d/.test(e.value)?Lr(e.value):e.value,l=t??"";a!==l&&(document.activeElement===e&&e.type!=="range"&&(r&&t===n||s&&e.value.trim()===l)||(e.value=l))}},N_={deep:!0,created(e,{value:t,modifiers:{number:n}},r){const s=Wr(t);zt(e,"change",()=>{const o=Array.prototype.filter.call(e.options,i=>i.selected).map(i=>n?Lr(Hr(i)):Hr(i));e[pn](e.multiple?s?new Set(o):o:o[0]),e._assigning=!0,Cn(()=>{e._assigning=!1})}),e[pn]=Fr(r)},mounted(e,{value:t,modifiers:{number:n}}){Mi(e,t)},beforeUpdate(e,t,n){e[pn]=Fr(n)},updated(e,{value:t,modifiers:{number:n}}){e._assigning||Mi(e,t)}};function Mi(e,t,n){const r=e.multiple,s=Z(t);if(!(r&&!s&&!Wr(t))){for(let o=0,i=e.options.length;oString(u)===String(l)):a.selected=Mf(t,l)>-1}else a.selected=t.has(l);else if(Gr(Hr(a),t)){e.selectedIndex!==o&&(e.selectedIndex=o);return}}!r&&e.selectedIndex!==-1&&(e.selectedIndex=-1)}}function Hr(e){return"_value"in e?e._value:e.value}const $h=["ctrl","shift","alt","meta"],Uh={stop:e=>e.stopPropagation(),prevent:e=>e.preventDefault(),self:e=>e.target!==e.currentTarget,ctrl:e=>!e.ctrlKey,shift:e=>!e.shiftKey,alt:e=>!e.altKey,meta:e=>!e.metaKey,left:e=>"button"in e&&e.button!==0,middle:e=>"button"in e&&e.button!==1,right:e=>"button"in e&&e.button!==2,exact:(e,t)=>$h.some(n=>e[`${n}Key`]&&!t.includes(n))},R_=(e,t)=>{const n=e._withMods||(e._withMods={}),r=t.join(".");return n[r]||(n[r]=(s,...o)=>{for(let i=0;i{const t=jh().createApp(...e),{mount:n}=t;return t.mount=r=>{const s=oc(r);if(!s)return;const o=t._component;!ne(o)&&!o.render&&!o.template&&(o.template=s.innerHTML),s.innerHTML="";const i=n(s,!1,sc(s));return s instanceof Element&&(s.removeAttribute("v-cloak"),s.setAttribute("data-v-app","")),i},t},Kh=(...e)=>{const t=Vh().createApp(...e),{mount:n}=t;return t.mount=r=>{const s=oc(r);if(s)return n(s,!0,sc(s))},t};function sc(e){if(e instanceof SVGElement)return"svg";if(typeof MathMLElement=="function"&&e instanceof MathMLElement)return"mathml"}function oc(e){return Ee(e)?document.querySelector(e):e}/*! +**/const bh="http://www.w3.org/2000/svg",vh="http://www.w3.org/1998/Math/MathML",bt=typeof document<"u"?document:null,Oi=bt&&bt.createElement("template"),Eh={insert:(e,t,n)=>{t.insertBefore(e,n||null)},remove:e=>{const t=e.parentNode;t&&t.removeChild(e)},createElement:(e,t,n,r)=>{const s=t==="svg"?bt.createElementNS(bh,e):t==="mathml"?bt.createElementNS(vh,e):n?bt.createElement(e,{is:n}):bt.createElement(e);return e==="select"&&r&&r.multiple!=null&&s.setAttribute("multiple",r.multiple),s},createText:e=>bt.createTextNode(e),createComment:e=>bt.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>bt.querySelector(e),setScopeId(e,t){e.setAttribute(t,"")},insertStaticContent(e,t,n,r,s,o){const i=n?n.previousSibling:t.lastChild;if(s&&(s===o||s.nextSibling))for(;t.insertBefore(s.cloneNode(!0),n),!(s===o||!(s=s.nextSibling)););else{Oi.innerHTML=r==="svg"?`${e}`:r==="mathml"?`${e}`:e;const a=Oi.content;if(r==="svg"||r==="mathml"){const l=a.firstChild;for(;l.firstChild;)a.appendChild(l.firstChild);a.removeChild(l)}t.insertBefore(a,n)}return[i?i.nextSibling:t.firstChild,n?n.previousSibling:t.lastChild]}},wh=Symbol("_vtc");function Th(e,t,n){const r=e[wh];r&&(t=(t?[t,...r]:[...r]).join(" ")),t==null?e.removeAttribute("class"):n?e.setAttribute("class",t):e.className=t}const Fr=Symbol("_vod"),nc=Symbol("_vsh"),P_={beforeMount(e,{value:t},{transition:n}){e[Fr]=e.style.display==="none"?"":e.style.display,n&&t?n.beforeEnter(e):In(e,t)},mounted(e,{value:t},{transition:n}){n&&t&&n.enter(e)},updated(e,{value:t,oldValue:n},{transition:r}){!t!=!n&&(r?t?(r.beforeEnter(e),In(e,!0),r.enter(e)):r.leave(e,()=>{In(e,!1)}):In(e,t))},beforeUnmount(e,{value:t}){In(e,t)}};function In(e,t){e.style.display=t?e[Fr]:"none",e[nc]=!t}const Sh=Symbol(""),Oh=/(^|;)\s*display\s*:/;function Ch(e,t,n){const r=e.style,s=Ee(n);let o=!1;if(n&&!s){if(t)if(Ee(t))for(const i of t.split(";")){const a=i.slice(0,i.indexOf(":")).trim();n[a]==null&&br(r,a,"")}else for(const i in t)n[i]==null&&br(r,i,"");for(const i in n)i==="display"&&(o=!0),br(r,i,n[i])}else if(s){if(t!==n){const i=r[Sh];i&&(n+=";"+i),r.cssText=n,o=Oh.test(n)}}else t&&e.removeAttribute("style");Fr in e&&(e[Fr]=o?r.display:"",e[nc]&&(r.display="none"))}const Ci=/\s*!important$/;function br(e,t,n){if(Z(n))n.forEach(r=>br(e,t,r));else if(n==null&&(n=""),t.startsWith("--"))e.setProperty(t,n);else{const r=Lh(e,t);Ci.test(n)?e.setProperty(Zt(r),n.replace(Ci,""),"important"):e[r]=n}}const Li=["Webkit","Moz","ms"],ds={};function Lh(e,t){const n=ds[t];if(n)return n;let r=lt(t);if(r!=="filter"&&r in e)return ds[t]=r;r=Gr(r);for(let s=0;shs||(kh.then(()=>hs=0),hs=Date.now());function Mh(e,t){const n=r=>{if(!r._vts)r._vts=Date.now();else if(r._vts<=n.attached)return;it(xh(r,n.value),t,5,[r])};return n.value=e,n.attached=Ih(),n}function xh(e,t){if(Z(t)){const n=e.stopImmediatePropagation;return e.stopImmediatePropagation=()=>{n.call(e),e._stopped=!0},t.map(r=>s=>!s._stopped&&r&&r(s))}else return t}const ki=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&e.charCodeAt(2)>96&&e.charCodeAt(2)<123,Dh=(e,t,n,r,s,o)=>{const i=s==="svg";t==="class"?Th(e,r,i):t==="style"?Ch(e,n,r):qn(t)?eo(t)||Nh(e,t,n,r,o):(t[0]==="."?(t=t.slice(1),!0):t[0]==="^"?(t=t.slice(1),!1):Fh(e,t,r,i))?(Ah(e,t,r),!e.tagName.includes("-")&&(t==="value"||t==="checked"||t==="selected")&&Pi(e,t,r,i,o,t!=="value")):(t==="true-value"?e._trueValue=r:t==="false-value"&&(e._falseValue=r),Pi(e,t,r,i))};function Fh(e,t,n,r){if(r)return!!(t==="innerHTML"||t==="textContent"||t in e&&ki(t)&&re(n));if(t==="spellcheck"||t==="draggable"||t==="translate"||t==="form"||t==="list"&&e.tagName==="INPUT"||t==="type"&&e.tagName==="TEXTAREA")return!1;if(t==="width"||t==="height"){const s=e.tagName;if(s==="IMG"||s==="VIDEO"||s==="CANVAS"||s==="SOURCE")return!1}return ki(t)&&Ee(n)?!1:t in e}const Hr=e=>{const t=e.props["onUpdate:modelValue"]||!1;return Z(t)?n=>gr(t,n):t};function Hh(e){e.target.composing=!0}function Ii(e){const t=e.target;t.composing&&(t.composing=!1,t.dispatchEvent(new Event("input")))}const pn=Symbol("_assign"),N_={created(e,{modifiers:{lazy:t,trim:n,number:r}},s){e[pn]=Hr(s);const o=r||s.props&&s.props.type==="number";zt(e,t?"change":"input",i=>{if(i.target.composing)return;let a=e.value;n&&(a=a.trim()),o&&(a=Ar(a)),e[pn](a)}),n&&zt(e,"change",()=>{e.value=e.value.trim()}),t||(zt(e,"compositionstart",Hh),zt(e,"compositionend",Ii),zt(e,"change",Ii))},mounted(e,{value:t}){e.value=t??""},beforeUpdate(e,{value:t,oldValue:n,modifiers:{lazy:r,trim:s,number:o}},i){if(e[pn]=Hr(i),e.composing)return;const a=(o||e.type==="number")&&!/^0\d/.test(e.value)?Ar(e.value):e.value,l=t??"";a!==l&&(document.activeElement===e&&e.type!=="range"&&(r&&t===n||s&&e.value.trim()===l)||(e.value=l))}},R_={deep:!0,created(e,{value:t,modifiers:{number:n}},r){const s=Kr(t);zt(e,"change",()=>{const o=Array.prototype.filter.call(e.options,i=>i.selected).map(i=>n?Ar($r(i)):$r(i));e[pn](e.multiple?s?new Set(o):o:o[0]),e._assigning=!0,Ln(()=>{e._assigning=!1})}),e[pn]=Hr(r)},mounted(e,{value:t,modifiers:{number:n}}){Mi(e,t)},beforeUpdate(e,t,n){e[pn]=Hr(n)},updated(e,{value:t,modifiers:{number:n}}){e._assigning||Mi(e,t)}};function Mi(e,t,n){const r=e.multiple,s=Z(t);if(!(r&&!s&&!Kr(t))){for(let o=0,i=e.options.length;oString(u)===String(l)):a.selected=Mf(t,l)>-1}else a.selected=t.has(l);else if(zr($r(a),t)){e.selectedIndex!==o&&(e.selectedIndex=o);return}}!r&&e.selectedIndex!==-1&&(e.selectedIndex=-1)}}function $r(e){return"_value"in e?e._value:e.value}const $h=["ctrl","shift","alt","meta"],Uh={stop:e=>e.stopPropagation(),prevent:e=>e.preventDefault(),self:e=>e.target!==e.currentTarget,ctrl:e=>!e.ctrlKey,shift:e=>!e.shiftKey,alt:e=>!e.altKey,meta:e=>!e.metaKey,left:e=>"button"in e&&e.button!==0,middle:e=>"button"in e&&e.button!==1,right:e=>"button"in e&&e.button!==2,exact:(e,t)=>$h.some(n=>e[`${n}Key`]&&!t.includes(n))},k_=(e,t)=>{const n=e._withMods||(e._withMods={}),r=t.join(".");return n[r]||(n[r]=(s,...o)=>{for(let i=0;i{const t=jh().createApp(...e),{mount:n}=t;return t.mount=r=>{const s=oc(r);if(!s)return;const o=t._component;!re(o)&&!o.render&&!o.template&&(o.template=s.innerHTML),s.innerHTML="";const i=n(s,!1,sc(s));return s instanceof Element&&(s.removeAttribute("v-cloak"),s.setAttribute("data-v-app","")),i},t},Kh=(...e)=>{const t=Vh().createApp(...e),{mount:n}=t;return t.mount=r=>{const s=oc(r);if(s)return n(s,!0,sc(s))},t};function sc(e){if(e instanceof SVGElement)return"svg";if(typeof MathMLElement=="function"&&e instanceof MathMLElement)return"mathml"}function oc(e){return Ee(e)?document.querySelector(e):e}/*! * vue-i18n v9.13.1 * (c) 2024 kazuya kawaguchi * Released under the MIT License. - */const Bh="9.13.1";function Gh(){typeof __INTLIFY_PROD_DEVTOOLS__!="boolean"&&(Ys().__INTLIFY_PROD_DEVTOOLS__=!1)}const ic=Qu.__EXTEND_POINT__,_t=jr(ic);_t(),_t(),_t(),_t(),_t(),_t(),_t(),_t(),_t();const lc=pt.__EXTEND_POINT__,Ve=jr(lc),rt={UNEXPECTED_RETURN_TYPE:lc,INVALID_ARGUMENT:Ve(),MUST_BE_CALL_SETUP_TOP:Ve(),NOT_INSTALLED:Ve(),NOT_AVAILABLE_IN_LEGACY_MODE:Ve(),REQUIRED_VALUE:Ve(),INVALID_VALUE:Ve(),CANNOT_SETUP_VUE_DEVTOOLS_PLUGIN:Ve(),NOT_INSTALLED_WITH_PROVIDE:Ve(),UNEXPECTED_ERROR:Ve(),NOT_COMPATIBLE_LEGACY_VUE_I18N:Ve(),BRIDGE_SUPPORT_VUE_2_ONLY:Ve(),MUST_DEFINE_I18N_OPTION_IN_ALLOW_COMPOSITION:Ve(),NOT_AVAILABLE_COMPOSITION_IN_LEGACY:Ve(),__EXTEND_POINT__:Ve()};function at(e,...t){return Sn(e,null,void 0)}const Fs=Ht("__translateVNode"),Hs=Ht("__datetimeParts"),$s=Ht("__numberParts"),zh=Ht("__setPluralRules"),Yh=Ht("__injectWithOption"),Us=Ht("__dispose");function zn(e){if(!ue(e))return e;for(const t in e)if(Sr(e,t))if(!t.includes("."))ue(e[t])&&zn(e[t]);else{const n=t.split("."),r=n.length-1;let s=e,o=!1;for(let i=0;i{if("locale"in a&&"resource"in a){const{locale:l,resource:c}=a;l?(i[l]=i[l]||{},pr(c,i[l])):pr(c,i)}else z(a)&&pr(JSON.parse(a),i)}),s==null&&o)for(const a in i)Sr(i,a)&&zn(i[a]);return i}function cc(e){return e.type}function Xh(e,t,n){let r=ue(t.messages)?t.messages:{};"__i18nGlobal"in n&&(r=ac(e.locale.value,{messages:r,__i18n:n.__i18nGlobal}));const s=Object.keys(r);s.length&&s.forEach(o=>{e.mergeLocaleMessage(o,r[o])});{if(ue(t.datetimeFormats)){const o=Object.keys(t.datetimeFormats);o.length&&o.forEach(i=>{e.mergeDateTimeFormat(i,t.datetimeFormats[i])})}if(ue(t.numberFormats)){const o=Object.keys(t.numberFormats);o.length&&o.forEach(i=>{e.mergeNumberFormat(i,t.numberFormats[i])})}}}function Di(e){return Ne(xt,null,e,0)}const Fi="__INTLIFY_META__",Hi=()=>[],qh=()=>!1;let $i=0;function Ui(e){return(t,n,r,s)=>e(n,r,An()||void 0,s)}const Jh=()=>{const e=An();let t=null;return e&&(t=cc(e)[Fi])?{[Fi]:t}:null};function uc(e={},t){const{__root:n,__injectWithOption:r}=e,s=n===void 0,o=e.flatJson,i=wr?se:Yr,a=!!e.translateExistCompatible;let l=be(e.inheritLocale)?e.inheritLocale:!0;const c=i(n&&l?n.locale.value:z(e.locale)?e.locale:Cr),u=i(n&&l?n.fallbackLocale.value:z(e.fallbackLocale)||Oe(e.fallbackLocale)||le(e.fallbackLocale)||e.fallbackLocale===!1?e.fallbackLocale:c.value),f=i(ac(c.value,e)),d=i(le(e.datetimeFormats)?e.datetimeFormats:{[c.value]:{}}),m=i(le(e.numberFormats)?e.numberFormats:{[c.value]:{}});let E=n?n.missingWarn:be(e.missingWarn)||Tr(e.missingWarn)?e.missingWarn:!0,v=n?n.fallbackWarn:be(e.fallbackWarn)||Tr(e.fallbackWarn)?e.fallbackWarn:!0,C=n?n.fallbackRoot:be(e.fallbackRoot)?e.fallbackRoot:!0,O=!!e.fallbackFormat,N=ve(e.missing)?e.missing:null,h=ve(e.missing)?Ui(e.missing):null,y=ve(e.postTranslation)?e.postTranslation:null,S=n?n.warnHtmlMessage:be(e.warnHtmlMessage)?e.warnHtmlMessage:!0,T=!!e.escapeParameter;const A=n?n.modifiers:le(e.modifiers)?e.modifiers:{};let D=e.pluralRules||n&&n.pluralRules,x;x=(()=>{s&&Bo(null);const L={version:Bh,locale:c.value,fallbackLocale:u.value,messages:f.value,modifiers:A,pluralRules:D,missing:h===null?void 0:h,missingWarn:E,fallbackWarn:v,fallbackFormat:O,unresolving:!0,postTranslation:y===null?void 0:y,warnHtmlMessage:S,escapeParameter:T,messageResolver:e.messageResolver,messageCompiler:e.messageCompiler,__meta:{framework:"vue"}};L.datetimeFormats=d.value,L.numberFormats=m.value,L.__datetimeFormatters=le(x)?x.__datetimeFormatters:void 0,L.__numberFormatters=le(x)?x.__numberFormatters:void 0;const R=ff(L);return s&&Bo(R),R})(),Nn(x,c.value,u.value);function Y(){return[c.value,u.value,f.value,d.value,m.value]}const B=oe({get:()=>c.value,set:L=>{c.value=L,x.locale=c.value}}),re=oe({get:()=>u.value,set:L=>{u.value=L,x.fallbackLocale=u.value,Nn(x,c.value,L)}}),Le=oe(()=>f.value),me=oe(()=>d.value),q=oe(()=>m.value);function te(){return ve(y)?y:null}function X(L){y=L,x.postTranslation=L}function ye(){return N}function Qe(L){L!==null&&(h=Ui(L)),N=L,x.missing=h}const we=(L,R,J,Q,he,Ie)=>{Y();let ze;try{__INTLIFY_PROD_DEVTOOLS__,s||(x.fallbackContext=n?uf():void 0),ze=L(x)}finally{__INTLIFY_PROD_DEVTOOLS__,s||(x.fallbackContext=void 0)}if(J!=="translate exists"&&Ae(ze)&&ze===Vr||J==="translate exists"&&!ze){const[er,tn]=R();return n&&C?Q(n):he(er)}else{if(Ie(ze))return ze;throw at(rt.UNEXPECTED_RETURN_TYPE)}};function Te(...L){return we(R=>Reflect.apply(Xo,null,[R,...L]),()=>Ts(...L),"translate",R=>Reflect.apply(R.t,R,[...L]),R=>R,R=>z(R))}function ut(...L){const[R,J,Q]=L;if(Q&&!ue(Q))throw at(rt.INVALID_ARGUMENT);return Te(R,J,De({resolvedMessage:!0},Q||{}))}function st(...L){return we(R=>Reflect.apply(qo,null,[R,...L]),()=>Ss(...L),"datetime format",R=>Reflect.apply(R.d,R,[...L]),()=>Wo,R=>z(R))}function St(...L){return we(R=>Reflect.apply(Qo,null,[R,...L]),()=>Os(...L),"number format",R=>Reflect.apply(R.n,R,[...L]),()=>Wo,R=>z(R))}function ke(L){return L.map(R=>z(R)||Ae(R)||be(R)?Di(String(R)):R)}const K={normalize:ke,interpolate:L=>L,type:"vnode"};function W(...L){return we(R=>{let J;const Q=R;try{Q.processor=K,J=Reflect.apply(Xo,null,[Q,...L])}finally{Q.processor=null}return J},()=>Ts(...L),"translate",R=>R[Fs](...L),R=>[Di(R)],R=>Oe(R))}function G(...L){return we(R=>Reflect.apply(Qo,null,[R,...L]),()=>Os(...L),"number format",R=>R[$s](...L),Hi,R=>z(R)||Oe(R))}function ie(...L){return we(R=>Reflect.apply(qo,null,[R,...L]),()=>Ss(...L),"datetime format",R=>R[Hs](...L),Hi,R=>z(R)||Oe(R))}function de(L){D=L,x.pluralRules=D}function _(L,R){return we(()=>{if(!L)return!1;const J=z(R)?R:c.value,Q=F(J),he=x.messageResolver(Q,L);return a?he!=null:_n(he)||et(he)||z(he)},()=>[L],"translate exists",J=>Reflect.apply(J.te,J,[L,R]),qh,J=>be(J))}function b(L){let R=null;const J=Rl(x,u.value,c.value);for(let Q=0;Q{l&&(c.value=L,x.locale=L,Nn(x,c.value,u.value))}),Se(n.fallbackLocale,L=>{l&&(u.value=L,x.fallbackLocale=L,Nn(x,c.value,u.value))}));const $={id:$i,locale:B,fallbackLocale:re,get inheritLocale(){return l},set inheritLocale(L){l=L,L&&n&&(c.value=n.locale.value,u.value=n.fallbackLocale.value,Nn(x,c.value,u.value))},get availableLocales(){return Object.keys(f.value).sort()},messages:Le,get modifiers(){return A},get pluralRules(){return D||{}},get isGlobal(){return s},get missingWarn(){return E},set missingWarn(L){E=L,x.missingWarn=E},get fallbackWarn(){return v},set fallbackWarn(L){v=L,x.fallbackWarn=v},get fallbackRoot(){return C},set fallbackRoot(L){C=L},get fallbackFormat(){return O},set fallbackFormat(L){O=L,x.fallbackFormat=O},get warnHtmlMessage(){return S},set warnHtmlMessage(L){S=L,x.warnHtmlMessage=L},get escapeParameter(){return T},set escapeParameter(L){T=L,x.escapeParameter=L},t:Te,getLocaleMessage:F,setLocaleMessage:k,mergeLocaleMessage:U,getPostTranslationHandler:te,setPostTranslationHandler:X,getMissingHandler:ye,setMissingHandler:Qe,[zh]:de};return $.datetimeFormats=me,$.numberFormats=q,$.rt=ut,$.te=_,$.tm=P,$.d=st,$.n=St,$.getDateTimeFormat=V,$.setDateTimeFormat=p,$.mergeDateTimeFormat=g,$.getNumberFormat=w,$.setNumberFormat=I,$.mergeNumberFormat=j,$[Yh]=r,$[Fs]=W,$[Hs]=ie,$[$s]=G,$}const So={tag:{type:[String,Object]},locale:{type:String},scope:{type:String,validator:e=>e==="parent"||e==="global",default:"parent"},i18n:{type:Object}};function Qh({slots:e},t){return t.length===1&&t[0]==="default"?(e.default?e.default():[]).reduce((r,s)=>[...r,...s.type===Me?s.children:[s]],[]):t.reduce((n,r)=>{const s=e[r];return s&&(n[r]=s()),n},{})}function fc(e){return Me}const Zh=Vt({name:"i18n-t",props:De({keypath:{type:String,required:!0},plural:{type:[Number,String],validator:e=>Ae(e)||!isNaN(e)}},So),setup(e,t){const{slots:n,attrs:r}=t,s=e.i18n||Qn({useScope:e.scope,__useComponent:!0});return()=>{const o=Object.keys(n).filter(f=>f!=="_"),i={};e.locale&&(i.locale=e.locale),e.plural!==void 0&&(i.plural=z(e.plural)?+e.plural:e.plural);const a=Qh(t,o),l=s[Fs](e.keypath,a,i),c=De({},r),u=z(e.tag)||ue(e.tag)?e.tag:fc();return ts(u,c,l)}}}),ji=Zh;function ep(e){return Oe(e)&&!z(e[0])}function dc(e,t,n,r){const{slots:s,attrs:o}=t;return()=>{const i={part:!0};let a={};e.locale&&(i.locale=e.locale),z(e.format)?i.key=e.format:ue(e.format)&&(z(e.format.key)&&(i.key=e.format.key),a=Object.keys(e.format).reduce((d,m)=>n.includes(m)?De({},d,{[m]:e.format[m]}):d,{}));const l=r(e.value,i,a);let c=[i.key];Oe(l)?c=l.map((d,m)=>{const E=s[d.type],v=E?E({[d.type]:d.value,index:m,parts:l}):[d.value];return ep(v)&&(v[0].key=`${d.type}-${m}`),v}):z(l)&&(c=[l]);const u=De({},o),f=z(e.tag)||ue(e.tag)?e.tag:fc();return ts(f,u,c)}}const tp=Vt({name:"i18n-n",props:De({value:{type:Number,required:!0},format:{type:[String,Object]}},So),setup(e,t){const n=e.i18n||Qn({useScope:e.scope,__useComponent:!0});return dc(e,t,Ul,(...r)=>n[$s](...r))}}),Vi=tp,np=Vt({name:"i18n-d",props:De({value:{type:[Number,Date],required:!0},format:{type:[String,Object]}},So),setup(e,t){const n=e.i18n||Qn({useScope:e.scope,__useComponent:!0});return dc(e,t,$l,(...r)=>n[Hs](...r))}}),Wi=np;function rp(e,t){const n=e;if(e.mode==="composition")return n.__getInstance(t)||e.global;{const r=n.__getInstance(t);return r!=null?r.__composer:e.global.__composer}}function sp(e){const t=i=>{const{instance:a,modifiers:l,value:c}=i;if(!a||!a.$)throw at(rt.UNEXPECTED_ERROR);const u=rp(e,a.$),f=Ki(c);return[Reflect.apply(u.t,u,[...Bi(f)]),u]};return{created:(i,a)=>{const[l,c]=t(a);wr&&e.global===c&&(i.__i18nWatcher=Se(c.locale,()=>{a.instance&&a.instance.$forceUpdate()})),i.__composer=c,i.textContent=l},unmounted:i=>{wr&&i.__i18nWatcher&&(i.__i18nWatcher(),i.__i18nWatcher=void 0,delete i.__i18nWatcher),i.__composer&&(i.__composer=void 0,delete i.__composer)},beforeUpdate:(i,{value:a})=>{if(i.__composer){const l=i.__composer,c=Ki(a);i.textContent=Reflect.apply(l.t,l,[...Bi(c)])}},getSSRProps:i=>{const[a]=t(i);return{textContent:a}}}}function Ki(e){if(z(e))return{path:e};if(le(e)){if(!("path"in e))throw at(rt.REQUIRED_VALUE,"path");return e}else throw at(rt.INVALID_VALUE)}function Bi(e){const{path:t,locale:n,args:r,choice:s,plural:o}=e,i={},a=r||{};return z(n)&&(i.locale=n),Ae(s)&&(i.plural=s),Ae(o)&&(i.plural=o),[t,a,i]}function op(e,t,...n){const r=le(n[0])?n[0]:{},s=!!r.useI18nComponentName;(be(r.globalInstall)?r.globalInstall:!0)&&([s?"i18n":ji.name,"I18nT"].forEach(i=>e.component(i,ji)),[Vi.name,"I18nN"].forEach(i=>e.component(i,Vi)),[Wi.name,"I18nD"].forEach(i=>e.component(i,Wi))),e.directive("t",sp(t))}const ip=Ht("global-vue-i18n");function lp(e={},t){const n=be(e.globalInjection)?e.globalInjection:!0,r=!0,s=new Map,[o,i]=ap(e),a=Ht("");function l(f){return s.get(f)||null}function c(f,d){s.set(f,d)}function u(f){s.delete(f)}{const f={get mode(){return"composition"},get allowComposition(){return r},async install(d,...m){if(d.__VUE_I18N_SYMBOL__=a,d.provide(d.__VUE_I18N_SYMBOL__,f),le(m[0])){const C=m[0];f.__composerExtend=C.__composerExtend,f.__vueI18nExtend=C.__vueI18nExtend}let E=null;n&&(E=gp(d,f.global)),op(d,f,...m);const v=d.unmount;d.unmount=()=>{E&&E(),f.dispose(),v()}},get global(){return i},dispose(){o.stop()},__instances:s,__getInstance:l,__setInstance:c,__deleteInstance:u};return f}}function Qn(e={}){const t=An();if(t==null)throw at(rt.MUST_BE_CALL_SETUP_TOP);if(!t.isCE&&t.appContext.app!=null&&!t.appContext.app.__VUE_I18N_SYMBOL__)throw at(rt.NOT_INSTALLED);const n=cp(t),r=fp(n),s=cc(t),o=up(e,s);if(o==="global")return Xh(r,e,s),r;if(o==="parent"){let l=dp(n,t,e.__useComponent);return l==null&&(l=r),l}const i=n;let a=i.__getInstance(t);if(a==null){const l=De({},e);"__i18n"in s&&(l.__i18n=s.__i18n),r&&(l.__root=r),a=uc(l),i.__composerExtend&&(a[Us]=i.__composerExtend(a)),pp(i,t,a),i.__setInstance(t,a)}return a}function ap(e,t,n){const r=ql();{const s=r.run(()=>uc(e));if(s==null)throw at(rt.UNEXPECTED_ERROR);return[r,s]}}function cp(e){{const t=Je(e.isCE?ip:e.appContext.app.__VUE_I18N_SYMBOL__);if(!t)throw at(e.isCE?rt.NOT_INSTALLED_WITH_PROVIDE:rt.UNEXPECTED_ERROR);return t}}function up(e,t){return Ur(e)?"__i18n"in t?"local":"global":e.useScope?e.useScope:"local"}function fp(e){return e.mode==="composition"?e.global:e.global.__composer}function dp(e,t,n=!1){let r=null;const s=t.root;let o=hp(t,n);for(;o!=null;){const i=e;if(e.mode==="composition"&&(r=i.__getInstance(o)),r!=null||s===o)break;o=o.parent}return r}function hp(e,t=!1){return e==null?null:t&&e.vnode.ctx||e.parent}function pp(e,t,n){Ln(()=>{},t),_o(()=>{const r=n;e.__deleteInstance(t);const s=r[Us];s&&(s(),delete r[Us])},t)}const mp=["locale","fallbackLocale","availableLocales"],Gi=["t","rt","d","n","tm","te"];function gp(e,t){const n=Object.create(null);return mp.forEach(s=>{const o=Object.getOwnPropertyDescriptor(t,s);if(!o)throw at(rt.UNEXPECTED_ERROR);const i=Ce(o.value)?{get(){return o.value.value},set(a){o.value.value=a}}:{get(){return o.get&&o.get()}};Object.defineProperty(n,s,i)}),e.config.globalProperties.$i18n=n,Gi.forEach(s=>{const o=Object.getOwnPropertyDescriptor(t,s);if(!o||!o.value)throw at(rt.UNEXPECTED_ERROR);Object.defineProperty(e.config.globalProperties,`$${s}`,o)}),()=>{delete e.config.globalProperties.$i18n,Gi.forEach(s=>{delete e.config.globalProperties[`$${s}`]})}}Gh();sf(_f);of($u);lf(Rl);if(__INTLIFY_PROD_DEVTOOLS__){const e=Ys();e.__INTLIFY__=!0,Yu(e.__INTLIFY_DEVTOOLS_GLOBAL_HOOK__)}const _p={main:{title:{t:0,b:{t:2,i:[{t:3}],s:"Fast angle"}},description:{t:0,b:{t:2,i:[{t:3}],s:"Einfacher Online-Winkelmesser - messen Sie jeden Winkel direkt auf Ihrem Bild!"}},brought_to_you_by:{t:0,b:{t:2,i:[{t:3}],s:"Präsentiert von"}},visit_our_website:{t:0,b:{t:2,i:[{t:3}],s:"Besuche unsere Webseite"}},star_us_on_github:{t:0,b:{t:2,i:[{t:3}],s:"Star uns auf GitHub"}},donate_us:{t:0,b:{t:2,i:[{t:3}],s:"Spenden Sie uns"}},close:{t:0,b:{t:2,i:[{t:3}],s:"Schließen"}},privacy_policy:{t:0,b:{t:2,i:[{t:3}],s:"Datenschutz-Bestimmungen"}},terms_and_conditions:{t:0,b:{t:2,i:[{t:3}],s:"Geschäftsbedingungen"}}},404:{title:{t:0,b:{t:2,i:[{t:3}],s:"Seite nicht gefunden"}},description:{t:0,b:{t:2,i:[{t:3,v:'Die aufgerufene Seite unter der Adresse: "'},{t:4,k:"url"},{t:3,v:`" wurde nicht gefunden. + */const Bh="9.13.1";function Gh(){typeof __INTLIFY_PROD_DEVTOOLS__!="boolean"&&(Ys().__INTLIFY_PROD_DEVTOOLS__=!1)}const ic=Qu.__EXTEND_POINT__,_t=Vr(ic);_t(),_t(),_t(),_t(),_t(),_t(),_t(),_t(),_t();const lc=pt.__EXTEND_POINT__,We=Vr(lc),rt={UNEXPECTED_RETURN_TYPE:lc,INVALID_ARGUMENT:We(),MUST_BE_CALL_SETUP_TOP:We(),NOT_INSTALLED:We(),NOT_AVAILABLE_IN_LEGACY_MODE:We(),REQUIRED_VALUE:We(),INVALID_VALUE:We(),CANNOT_SETUP_VUE_DEVTOOLS_PLUGIN:We(),NOT_INSTALLED_WITH_PROVIDE:We(),UNEXPECTED_ERROR:We(),NOT_COMPATIBLE_LEGACY_VUE_I18N:We(),BRIDGE_SUPPORT_VUE_2_ONLY:We(),MUST_DEFINE_I18N_OPTION_IN_ALLOW_COMPOSITION:We(),NOT_AVAILABLE_COMPOSITION_IN_LEGACY:We(),__EXTEND_POINT__:We()};function at(e,...t){return On(e,null,void 0)}const Fs=Ht("__translateVNode"),Hs=Ht("__datetimeParts"),$s=Ht("__numberParts"),zh=Ht("__setPluralRules"),Yh=Ht("__injectWithOption"),Us=Ht("__dispose");function Yn(e){if(!ue(e))return e;for(const t in e)if(Or(e,t))if(!t.includes("."))ue(e[t])&&Yn(e[t]);else{const n=t.split("."),r=n.length-1;let s=e,o=!1;for(let i=0;i{if("locale"in a&&"resource"in a){const{locale:l,resource:c}=a;l?(i[l]=i[l]||{},mr(c,i[l])):mr(c,i)}else Y(a)&&mr(JSON.parse(a),i)}),s==null&&o)for(const a in i)Or(i,a)&&Yn(i[a]);return i}function cc(e){return e.type}function Xh(e,t,n){let r=ue(t.messages)?t.messages:{};"__i18nGlobal"in n&&(r=ac(e.locale.value,{messages:r,__i18n:n.__i18nGlobal}));const s=Object.keys(r);s.length&&s.forEach(o=>{e.mergeLocaleMessage(o,r[o])});{if(ue(t.datetimeFormats)){const o=Object.keys(t.datetimeFormats);o.length&&o.forEach(i=>{e.mergeDateTimeFormat(i,t.datetimeFormats[i])})}if(ue(t.numberFormats)){const o=Object.keys(t.numberFormats);o.length&&o.forEach(i=>{e.mergeNumberFormat(i,t.numberFormats[i])})}}}function Di(e){return Ne(xt,null,e,0)}const Fi="__INTLIFY_META__",Hi=()=>[],qh=()=>!1;let $i=0;function Ui(e){return(t,n,r,s)=>e(n,r,Pn()||void 0,s)}const Jh=()=>{const e=Pn();let t=null;return e&&(t=cc(e)[Fi])?{[Fi]:t}:null};function uc(e={},t){const{__root:n,__injectWithOption:r}=e,s=n===void 0,o=e.flatJson,i=Tr?se:vn,a=!!e.translateExistCompatible;let l=be(e.inheritLocale)?e.inheritLocale:!0;const c=i(n&&l?n.locale.value:Y(e.locale)?e.locale:Lr),u=i(n&&l?n.fallbackLocale.value:Y(e.fallbackLocale)||Oe(e.fallbackLocale)||le(e.fallbackLocale)||e.fallbackLocale===!1?e.fallbackLocale:c.value),f=i(ac(c.value,e)),d=i(le(e.datetimeFormats)?e.datetimeFormats:{[c.value]:{}}),m=i(le(e.numberFormats)?e.numberFormats:{[c.value]:{}});let E=n?n.missingWarn:be(e.missingWarn)||Sr(e.missingWarn)?e.missingWarn:!0,v=n?n.fallbackWarn:be(e.fallbackWarn)||Sr(e.fallbackWarn)?e.fallbackWarn:!0,C=n?n.fallbackRoot:be(e.fallbackRoot)?e.fallbackRoot:!0,O=!!e.fallbackFormat,N=ve(e.missing)?e.missing:null,h=ve(e.missing)?Ui(e.missing):null,y=ve(e.postTranslation)?e.postTranslation:null,S=n?n.warnHtmlMessage:be(e.warnHtmlMessage)?e.warnHtmlMessage:!0,T=!!e.escapeParameter;const A=n?n.modifiers:le(e.modifiers)?e.modifiers:{};let F=e.pluralRules||n&&n.pluralRules,x;x=(()=>{s&&Bo(null);const L={version:Bh,locale:c.value,fallbackLocale:u.value,messages:f.value,modifiers:A,pluralRules:F,missing:h===null?void 0:h,missingWarn:E,fallbackWarn:v,fallbackFormat:O,unresolving:!0,postTranslation:y===null?void 0:y,warnHtmlMessage:S,escapeParameter:T,messageResolver:e.messageResolver,messageCompiler:e.messageCompiler,__meta:{framework:"vue"}};L.datetimeFormats=d.value,L.numberFormats=m.value,L.__datetimeFormatters=le(x)?x.__datetimeFormatters:void 0,L.__numberFormatters=le(x)?x.__numberFormatters:void 0;const R=ff(L);return s&&Bo(R),R})(),Rn(x,c.value,u.value);function G(){return[c.value,u.value,f.value,d.value,m.value]}const K=oe({get:()=>c.value,set:L=>{c.value=L,x.locale=c.value}}),ee=oe({get:()=>u.value,set:L=>{u.value=L,x.fallbackLocale=u.value,Rn(x,c.value,L)}}),Le=oe(()=>f.value),me=oe(()=>d.value),q=oe(()=>m.value);function ne(){return ve(y)?y:null}function X(L){y=L,x.postTranslation=L}function ye(){return N}function Qe(L){L!==null&&(h=Ui(L)),N=L,x.missing=h}const we=(L,R,J,Q,he,Ie)=>{G();let ze;try{__INTLIFY_PROD_DEVTOOLS__,s||(x.fallbackContext=n?uf():void 0),ze=L(x)}finally{__INTLIFY_PROD_DEVTOOLS__,s||(x.fallbackContext=void 0)}if(J!=="translate exists"&&Ae(ze)&&ze===Wr||J==="translate exists"&&!ze){const[tr,tn]=R();return n&&C?Q(n):he(tr)}else{if(Ie(ze))return ze;throw at(rt.UNEXPECTED_RETURN_TYPE)}};function Te(...L){return we(R=>Reflect.apply(Xo,null,[R,...L]),()=>Ts(...L),"translate",R=>Reflect.apply(R.t,R,[...L]),R=>R,R=>Y(R))}function ut(...L){const[R,J,Q]=L;if(Q&&!ue(Q))throw at(rt.INVALID_ARGUMENT);return Te(R,J,De({resolvedMessage:!0},Q||{}))}function st(...L){return we(R=>Reflect.apply(qo,null,[R,...L]),()=>Ss(...L),"datetime format",R=>Reflect.apply(R.d,R,[...L]),()=>Wo,R=>Y(R))}function St(...L){return we(R=>Reflect.apply(Qo,null,[R,...L]),()=>Os(...L),"number format",R=>Reflect.apply(R.n,R,[...L]),()=>Wo,R=>Y(R))}function ke(L){return L.map(R=>Y(R)||Ae(R)||be(R)?Di(String(R)):R)}const B={normalize:ke,interpolate:L=>L,type:"vnode"};function W(...L){return we(R=>{let J;const Q=R;try{Q.processor=B,J=Reflect.apply(Xo,null,[Q,...L])}finally{Q.processor=null}return J},()=>Ts(...L),"translate",R=>R[Fs](...L),R=>[Di(R)],R=>Oe(R))}function z(...L){return we(R=>Reflect.apply(Qo,null,[R,...L]),()=>Os(...L),"number format",R=>R[$s](...L),Hi,R=>Y(R)||Oe(R))}function ie(...L){return we(R=>Reflect.apply(qo,null,[R,...L]),()=>Ss(...L),"datetime format",R=>R[Hs](...L),Hi,R=>Y(R)||Oe(R))}function de(L){F=L,x.pluralRules=F}function _(L,R){return we(()=>{if(!L)return!1;const J=Y(R)?R:c.value,Q=D(J),he=x.messageResolver(Q,L);return a?he!=null:_n(he)||et(he)||Y(he)},()=>[L],"translate exists",J=>Reflect.apply(J.te,J,[L,R]),qh,J=>be(J))}function b(L){let R=null;const J=Rl(x,u.value,c.value);for(let Q=0;Q{l&&(c.value=L,x.locale=L,Rn(x,c.value,u.value))}),Se(n.fallbackLocale,L=>{l&&(u.value=L,x.fallbackLocale=L,Rn(x,c.value,u.value))}));const $={id:$i,locale:K,fallbackLocale:ee,get inheritLocale(){return l},set inheritLocale(L){l=L,L&&n&&(c.value=n.locale.value,u.value=n.fallbackLocale.value,Rn(x,c.value,u.value))},get availableLocales(){return Object.keys(f.value).sort()},messages:Le,get modifiers(){return A},get pluralRules(){return F||{}},get isGlobal(){return s},get missingWarn(){return E},set missingWarn(L){E=L,x.missingWarn=E},get fallbackWarn(){return v},set fallbackWarn(L){v=L,x.fallbackWarn=v},get fallbackRoot(){return C},set fallbackRoot(L){C=L},get fallbackFormat(){return O},set fallbackFormat(L){O=L,x.fallbackFormat=O},get warnHtmlMessage(){return S},set warnHtmlMessage(L){S=L,x.warnHtmlMessage=L},get escapeParameter(){return T},set escapeParameter(L){T=L,x.escapeParameter=L},t:Te,getLocaleMessage:D,setLocaleMessage:k,mergeLocaleMessage:U,getPostTranslationHandler:ne,setPostTranslationHandler:X,getMissingHandler:ye,setMissingHandler:Qe,[zh]:de};return $.datetimeFormats=me,$.numberFormats=q,$.rt=ut,$.te=_,$.tm=P,$.d=st,$.n=St,$.getDateTimeFormat=V,$.setDateTimeFormat=p,$.mergeDateTimeFormat=g,$.getNumberFormat=w,$.setNumberFormat=I,$.mergeNumberFormat=j,$[Yh]=r,$[Fs]=W,$[Hs]=ie,$[$s]=z,$}const So={tag:{type:[String,Object]},locale:{type:String},scope:{type:String,validator:e=>e==="parent"||e==="global",default:"parent"},i18n:{type:Object}};function Qh({slots:e},t){return t.length===1&&t[0]==="default"?(e.default?e.default():[]).reduce((r,s)=>[...r,...s.type===Me?s.children:[s]],[]):t.reduce((n,r)=>{const s=e[r];return s&&(n[r]=s()),n},{})}function fc(e){return Me}const Zh=Vt({name:"i18n-t",props:De({keypath:{type:String,required:!0},plural:{type:[Number,String],validator:e=>Ae(e)||!isNaN(e)}},So),setup(e,t){const{slots:n,attrs:r}=t,s=e.i18n||Zn({useScope:e.scope,__useComponent:!0});return()=>{const o=Object.keys(n).filter(f=>f!=="_"),i={};e.locale&&(i.locale=e.locale),e.plural!==void 0&&(i.plural=Y(e.plural)?+e.plural:e.plural);const a=Qh(t,o),l=s[Fs](e.keypath,a,i),c=De({},r),u=Y(e.tag)||ue(e.tag)?e.tag:fc();return ts(u,c,l)}}}),ji=Zh;function ep(e){return Oe(e)&&!Y(e[0])}function dc(e,t,n,r){const{slots:s,attrs:o}=t;return()=>{const i={part:!0};let a={};e.locale&&(i.locale=e.locale),Y(e.format)?i.key=e.format:ue(e.format)&&(Y(e.format.key)&&(i.key=e.format.key),a=Object.keys(e.format).reduce((d,m)=>n.includes(m)?De({},d,{[m]:e.format[m]}):d,{}));const l=r(e.value,i,a);let c=[i.key];Oe(l)?c=l.map((d,m)=>{const E=s[d.type],v=E?E({[d.type]:d.value,index:m,parts:l}):[d.value];return ep(v)&&(v[0].key=`${d.type}-${m}`),v}):Y(l)&&(c=[l]);const u=De({},o),f=Y(e.tag)||ue(e.tag)?e.tag:fc();return ts(f,u,c)}}const tp=Vt({name:"i18n-n",props:De({value:{type:Number,required:!0},format:{type:[String,Object]}},So),setup(e,t){const n=e.i18n||Zn({useScope:e.scope,__useComponent:!0});return dc(e,t,Ul,(...r)=>n[$s](...r))}}),Vi=tp,np=Vt({name:"i18n-d",props:De({value:{type:[Number,Date],required:!0},format:{type:[String,Object]}},So),setup(e,t){const n=e.i18n||Zn({useScope:e.scope,__useComponent:!0});return dc(e,t,$l,(...r)=>n[Hs](...r))}}),Wi=np;function rp(e,t){const n=e;if(e.mode==="composition")return n.__getInstance(t)||e.global;{const r=n.__getInstance(t);return r!=null?r.__composer:e.global.__composer}}function sp(e){const t=i=>{const{instance:a,modifiers:l,value:c}=i;if(!a||!a.$)throw at(rt.UNEXPECTED_ERROR);const u=rp(e,a.$),f=Ki(c);return[Reflect.apply(u.t,u,[...Bi(f)]),u]};return{created:(i,a)=>{const[l,c]=t(a);Tr&&e.global===c&&(i.__i18nWatcher=Se(c.locale,()=>{a.instance&&a.instance.$forceUpdate()})),i.__composer=c,i.textContent=l},unmounted:i=>{Tr&&i.__i18nWatcher&&(i.__i18nWatcher(),i.__i18nWatcher=void 0,delete i.__i18nWatcher),i.__composer&&(i.__composer=void 0,delete i.__composer)},beforeUpdate:(i,{value:a})=>{if(i.__composer){const l=i.__composer,c=Ki(a);i.textContent=Reflect.apply(l.t,l,[...Bi(c)])}},getSSRProps:i=>{const[a]=t(i);return{textContent:a}}}}function Ki(e){if(Y(e))return{path:e};if(le(e)){if(!("path"in e))throw at(rt.REQUIRED_VALUE,"path");return e}else throw at(rt.INVALID_VALUE)}function Bi(e){const{path:t,locale:n,args:r,choice:s,plural:o}=e,i={},a=r||{};return Y(n)&&(i.locale=n),Ae(s)&&(i.plural=s),Ae(o)&&(i.plural=o),[t,a,i]}function op(e,t,...n){const r=le(n[0])?n[0]:{},s=!!r.useI18nComponentName;(be(r.globalInstall)?r.globalInstall:!0)&&([s?"i18n":ji.name,"I18nT"].forEach(i=>e.component(i,ji)),[Vi.name,"I18nN"].forEach(i=>e.component(i,Vi)),[Wi.name,"I18nD"].forEach(i=>e.component(i,Wi))),e.directive("t",sp(t))}const ip=Ht("global-vue-i18n");function lp(e={},t){const n=be(e.globalInjection)?e.globalInjection:!0,r=!0,s=new Map,[o,i]=ap(e),a=Ht("");function l(f){return s.get(f)||null}function c(f,d){s.set(f,d)}function u(f){s.delete(f)}{const f={get mode(){return"composition"},get allowComposition(){return r},async install(d,...m){if(d.__VUE_I18N_SYMBOL__=a,d.provide(d.__VUE_I18N_SYMBOL__,f),le(m[0])){const C=m[0];f.__composerExtend=C.__composerExtend,f.__vueI18nExtend=C.__vueI18nExtend}let E=null;n&&(E=gp(d,f.global)),op(d,f,...m);const v=d.unmount;d.unmount=()=>{E&&E(),f.dispose(),v()}},get global(){return i},dispose(){o.stop()},__instances:s,__getInstance:l,__setInstance:c,__deleteInstance:u};return f}}function Zn(e={}){const t=Pn();if(t==null)throw at(rt.MUST_BE_CALL_SETUP_TOP);if(!t.isCE&&t.appContext.app!=null&&!t.appContext.app.__VUE_I18N_SYMBOL__)throw at(rt.NOT_INSTALLED);const n=cp(t),r=fp(n),s=cc(t),o=up(e,s);if(o==="global")return Xh(r,e,s),r;if(o==="parent"){let l=dp(n,t,e.__useComponent);return l==null&&(l=r),l}const i=n;let a=i.__getInstance(t);if(a==null){const l=De({},e);"__i18n"in s&&(l.__i18n=s.__i18n),r&&(l.__root=r),a=uc(l),i.__composerExtend&&(a[Us]=i.__composerExtend(a)),pp(i,t,a),i.__setInstance(t,a)}return a}function ap(e,t,n){const r=ql();{const s=r.run(()=>uc(e));if(s==null)throw at(rt.UNEXPECTED_ERROR);return[r,s]}}function cp(e){{const t=Je(e.isCE?ip:e.appContext.app.__VUE_I18N_SYMBOL__);if(!t)throw at(e.isCE?rt.NOT_INSTALLED_WITH_PROVIDE:rt.UNEXPECTED_ERROR);return t}}function up(e,t){return jr(e)?"__i18n"in t?"local":"global":e.useScope?e.useScope:"local"}function fp(e){return e.mode==="composition"?e.global:e.global.__composer}function dp(e,t,n=!1){let r=null;const s=t.root;let o=hp(t,n);for(;o!=null;){const i=e;if(e.mode==="composition"&&(r=i.__getInstance(o)),r!=null||s===o)break;o=o.parent}return r}function hp(e,t=!1){return e==null?null:t&&e.vnode.ctx||e.parent}function pp(e,t,n){An(()=>{},t),_o(()=>{const r=n;e.__deleteInstance(t);const s=r[Us];s&&(s(),delete r[Us])},t)}const mp=["locale","fallbackLocale","availableLocales"],Gi=["t","rt","d","n","tm","te"];function gp(e,t){const n=Object.create(null);return mp.forEach(s=>{const o=Object.getOwnPropertyDescriptor(t,s);if(!o)throw at(rt.UNEXPECTED_ERROR);const i=Ce(o.value)?{get(){return o.value.value},set(a){o.value.value=a}}:{get(){return o.get&&o.get()}};Object.defineProperty(n,s,i)}),e.config.globalProperties.$i18n=n,Gi.forEach(s=>{const o=Object.getOwnPropertyDescriptor(t,s);if(!o||!o.value)throw at(rt.UNEXPECTED_ERROR);Object.defineProperty(e.config.globalProperties,`$${s}`,o)}),()=>{delete e.config.globalProperties.$i18n,Gi.forEach(s=>{delete e.config.globalProperties[`$${s}`]})}}Gh();sf(_f);of($u);lf(Rl);if(__INTLIFY_PROD_DEVTOOLS__){const e=Ys();e.__INTLIFY__=!0,Yu(e.__INTLIFY_DEVTOOLS_GLOBAL_HOOK__)}const _p={main:{title:{t:0,b:{t:2,i:[{t:3}],s:"Fast angle"}},description:{t:0,b:{t:2,i:[{t:3}],s:"Einfacher Online-Winkelmesser - messen Sie jeden Winkel direkt auf Ihrem Bild!"}},brought_to_you_by:{t:0,b:{t:2,i:[{t:3}],s:"Präsentiert von"}},visit_our_website:{t:0,b:{t:2,i:[{t:3}],s:"Besuche unsere Webseite"}},star_us_on_github:{t:0,b:{t:2,i:[{t:3}],s:"Star uns auf GitHub"}},donate_us:{t:0,b:{t:2,i:[{t:3}],s:"Spenden Sie uns"}},close:{t:0,b:{t:2,i:[{t:3}],s:"Schließen"}},privacy_policy:{t:0,b:{t:2,i:[{t:3}],s:"Datenschutz-Bestimmungen"}},terms_and_conditions:{t:0,b:{t:2,i:[{t:3}],s:"Geschäftsbedingungen"}}},404:{title:{t:0,b:{t:2,i:[{t:3}],s:"Seite nicht gefunden"}},description:{t:0,b:{t:2,i:[{t:3,v:'Die aufgerufene Seite unter der Adresse: "'},{t:4,k:"url"},{t:3,v:`" wurde nicht gefunden. Wenn Sie glauben, dass dies ein Fehler ist, `}]}},file_issue_button:{t:0,b:{t:2,i:[{t:3}],s:"klicken Sie hier, um ein Problem zu melden."}},redirect_button_description:{t:0,b:{t:2,i:[{t:3}],s:"Andernfalls können Sie zur Hauptseite zurückkehren, indem Sie"}},redirect_button:{t:0,b:{t:2,i:[{t:3}],s:"hier klicken."}}},lang_redirect:{title:{t:0,b:{t:2,i:[{t:3}],s:"Seitenumleitung"}},description:{t:0,b:{t:2,i:[{t:3}],s:"Wir leiten Sie auf die Hauptseite um."}}},board:{drop_file_here:{t:0,b:{t:2,i:[{t:3}],s:"Legen Sie die Datei hier ab"}},click_this_button_or_drop:{t:0,b:{t:2,i:[{t:3}],s:`Klicken Sie hier, um die Messung zu starten. Um das Bild zu öffnen, ziehen Sie es auf dieses Board oder verwenden Sie die Ladeschaltfläche unten. @@ -48,8 +48,8 @@ Jeśli uważasz to za błąd, `}]}},file_issue_button:{t:0,b:{t:2,i:[{t:3}],s:"Kliknij tutaj, by go zgłosić."}},redirect_button_description:{t:0,b:{t:2,i:[{t:3}],s:"Do strony głównej możesz wrócić poprzez"}},redirect_button:{t:0,b:{t:2,i:[{t:3}],s:"naciśnięcie tego linku."}}},lang_redirect:{title:{t:0,b:{t:2,i:[{t:3}],s:"Przekierowanie"}},description:{t:0,b:{t:2,i:[{t:3}],s:"Przekierowujemy Cię do strony głównej."}}},board:{drop_file_here:{t:0,b:{t:2,i:[{t:3}],s:"Upuść plik tutaj"}},click_this_button_or_drop:{t:0,b:{t:2,i:[{t:3}],s:`Kliknij tutaj aby rozpocząć pomiary. By wczytać obrazek, upuść go tutaj lub naciśnij przycisk oznaczony ikoną chmury ze strzałką. Dla większej wygody możesz włączyć tryb pełnoekranowy za pomocą przycisku znajdującego się w prawym-dolnym rogu. -`}},result:{zoom_in:{t:0,b:{t:2,i:[{t:3}],s:"Przybliż"}},zoom_out:{t:0,b:{t:2,i:[{t:3}],s:"Oddal"}}},nav:{download_image:{action:{t:0,b:{t:2,i:[{t:3}],s:"Pobierz obrazek"}},save:{t:0,b:{t:2,i:[{t:3}],s:"Zapisz obrazek"}},heading:{t:0,b:{t:2,i:[{t:3}],s:"Eksport obrazka"}},name_label:{t:0,b:{t:2,i:[{t:3}],s:"Nazwa obrazka"}},format_label:{t:0,b:{t:2,i:[{t:3}],s:"Format"}},sizing_label:{t:0,b:{t:2,i:[{t:3}],s:"Wymiary obrazka"}},width_label:{t:0,b:{t:2,i:[{t:3}],s:"Szerokość"}},height_label:{t:0,b:{t:2,i:[{t:3}],s:"Wysokość"}},keep_aspect_ratio:{t:0,b:{t:2,i:[{t:3}],s:"Zachowuj proporcje obrazka"}},unit_label:{t:0,b:{t:2,i:[{t:3}],s:"Jednostka"}},quality_label:{t:0,b:{t:2,i:[{t:3}],s:"Jakość"}}},upload_file:{t:0,b:{t:2,i:[{t:3}],s:"Kliknij tutaj lub przeciągnij obraz, aby go załadować"}},toggle_fullscreen:{t:0,b:{t:2,i:[{t:3}],s:"Przełącz tryb pełnoekranowy"}},undo:{t:0,b:{t:2,i:[{t:3}],s:"Cofnij poprzednią akcję"}},redo:{t:0,b:{t:2,i:[{t:3}],s:"Przywróć cofniętą akcję"}},toggle_dark:{t:0,b:{t:2,i:[{t:3}],s:"Ustaw tryb nocny"}},toggle_langs:{t:0,b:{t:2,i:[{t:3}],s:"Zmień język"}},help:{action:{t:0,b:{t:2,i:[{t:3}],s:"Otwórz pomoc i informację o aplikacji"}},heading:{t:0,b:{t:2,i:[{t:3}],s:"Pomoc"}},heading_authors:{t:0,b:{t:2,i:[{t:3}],s:"Autorzy"}},key_bindings:{heading:{t:0,b:{t:2,i:[{t:3}],s:"Skróty klawiaturowy"}},description:{t:0,b:{t:2,i:[{t:3}],s:"Akcja"}}},content:[{t:0,b:{t:2,i:[{t:3}],s:"By wczytać obrazek, upuść go na pole rysowania lub naciśnij przycisk oznaczony ikoną obrazka ze strzałką."}},{t:0,b:{t:2,i:[{t:3}],s:"Po narysowaniu drugiej linii, kliknij raz jeszcze by zresetować linie."}},{t:0,b:{t:2,i:[{t:3}],s:"Wygodniej jest obsługiwać aplikację w trybie pełnoekranowym."}}]}}}},wp=Object.freeze(Object.defineProperty({__proto__:null,default:Ep},Symbol.toStringTag,{value:"Module"}));function en(e){return Jl()?(Df(e),!0):!1}function Tp(){const e=new Set,t=s=>{e.delete(s)};return{on:s=>{e.add(s);const o=()=>t(s);return en(o),{off:o}},off:t,trigger:(...s)=>Promise.all(Array.from(e).map(o=>o(...s)))}}function k_(e){let t=0,n,r;const s=()=>{t-=1,r&&t<=0&&(r.stop(),n=void 0,r=void 0)};return(...o)=>(t+=1,n||(r=ql(!0),n=r.run(()=>e(...o))),en(s),n)}function Ge(e){return typeof e=="function"?e():Ke(e)}const Pn=typeof window<"u"&&typeof document<"u";typeof WorkerGlobalScope<"u"&&globalThis instanceof WorkerGlobalScope;const Sp=e=>e!=null,Op=Object.prototype.toString,Cp=e=>Op.call(e)==="[object Object]",Lp=()=>+Date.now(),Dt=()=>{},Ap=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),Pp=Np();function Np(){var e,t;return Pn&&((e=window==null?void 0:window.navigator)==null?void 0:e.userAgent)&&(/iP(?:ad|hone|od)/.test(window.navigator.userAgent)||((t=window==null?void 0:window.navigator)==null?void 0:t.maxTouchPoints)>2&&/iPad|Macintosh/.test(window==null?void 0:window.navigator.userAgent))}function hc(e,t){function n(...r){return new Promise((s,o)=>{Promise.resolve(e(()=>t.apply(this,r),{fn:t,thisArg:this,args:r})).then(s).catch(o)})}return n}const Oo=e=>e();function pc(...e){let t=0,n,r=!0,s=Dt,o,i,a,l,c;!Ce(e[0])&&typeof e[0]=="object"?{delay:i,trailing:a=!0,leading:l=!0,rejectOnCancel:c=!1}=e[0]:[i,a=!0,l=!0,c=!1]=e;const u=()=>{n&&(clearTimeout(n),n=void 0,s(),s=Dt)};return d=>{const m=Ge(i),E=Date.now()-t,v=()=>o=d();return u(),m<=0?(t=Date.now(),v()):(E>m&&(l||!r)?(t=Date.now(),v()):a&&(o=new Promise((C,O)=>{s=c?O:C,n=setTimeout(()=>{t=Date.now(),r=!0,C(v()),u()},Math.max(0,m-E))})),!l&&!n&&(n=setTimeout(()=>r=!0,m)),r=!1,o)}}function mc(e=Oo){const t=se(!0);function n(){t.value=!1}function r(){t.value=!0}const s=(...o)=>{t.value&&e(...o)};return{isActive:On(t),pause:n,resume:r,eventFilter:s}}function Rp(e){let t;function n(){return t||(t=e()),t}return n.reset=async()=>{const r=t;t=void 0,r&&await r},n}function kp(e,t){var n;if(typeof e=="number")return e+t;const r=((n=e.match(/^-?\d+\.?\d*/))==null?void 0:n[0])||"",s=e.slice(r.length),o=Number.parseFloat(r)+t;return Number.isNaN(o)?e:o+s}function Ip(e){return An()}function gc(...e){if(e.length!==1)return ud(...e);const t=e[0];return typeof t=="function"?On(ld(()=>({get:t,set:Dt}))):se(t)}const I_=gc;function _c(e,t,n={}){const{eventFilter:r=Oo,...s}=n;return Se(e,hc(r,t),s)}function Mp(e,t,n={}){const{eventFilter:r,...s}=n,{eventFilter:o,pause:i,resume:a,isActive:l}=mc(r);return{stop:_c(e,t,{...s,eventFilter:o}),pause:i,resume:a,isActive:l}}function Co(e,t=!0,n){Ip()?Ln(e,n):t?e():Cn(e)}function xp(e,t,n={}){const{immediate:r=!0}=n,s=se(!1);let o=null;function i(){o&&(clearTimeout(o),o=null)}function a(){s.value=!1,i()}function l(...c){i(),s.value=!0,o=setTimeout(()=>{s.value=!1,o=null,e(...c)},Ge(t))}return r&&(s.value=!0,Pn&&l()),en(a),{isPending:On(s),start:l,stop:a}}function Dp(e=!1,t={}){const{truthyValue:n=!0,falsyValue:r=!1}=t,s=Ce(e),o=se(e);function i(a){if(arguments.length)return o.value=a,o.value;{const l=Ge(n);return o.value=o.value===l?Ge(r):l,o.value}}return s?i:[o,i]}function Fp(e,t,n={}){const{eventFilter:r=Oo,...s}=n,o=hc(r,t);let i,a,l;if(s.flush==="sync"){const c=se(!1);a=()=>{},i=u=>{c.value=!0,u(),c.value=!1},l=Se(e,(...u)=>{c.value||o(...u)},s)}else{const c=[],u=se(0),f=se(0);a=()=>{u.value=f.value},c.push(Se(e,()=>{f.value++},{...s,flush:"sync"})),i=d=>{const m=f.value;d(),u.value+=f.value-m},c.push(Se(e,(...d)=>{const m=u.value>0&&u.value===f.value;u.value=0,f.value=0,!m&&o(...d)},s)),l=()=>{c.forEach(d=>d())}}return{stop:l,ignoreUpdates:i,ignorePrevAsyncUpdates:a}}function M_(e,t,n={}){const{throttle:r=0,trailing:s=!0,leading:o=!0,...i}=n;return _c(e,t,{...i,eventFilter:pc(r,s,o)})}function x_(e,t,n){return Se(e,(s,o,i)=>{s&&t(s,o,i)},{...n,once:!1})}function je(e){var t;const n=Ge(e);return(t=n==null?void 0:n.$el)!=null?t:n}const He=Pn?window:void 0,yc=Pn?window.document:void 0,bc=Pn?window.navigator:void 0;function _e(...e){let t,n,r,s;if(typeof e[0]=="string"||Array.isArray(e[0])?([n,r,s]=e,t=He):[t,n,r,s]=e,!t)return Dt;Array.isArray(n)||(n=[n]),Array.isArray(r)||(r=[r]);const o=[],i=()=>{o.forEach(u=>u()),o.length=0},a=(u,f,d,m)=>(u.addEventListener(f,d,m),()=>u.removeEventListener(f,d,m)),l=Se(()=>[je(t),Ge(s)],([u,f])=>{if(i(),!u)return;const d=Cp(f)?{...f}:f;o.push(...n.flatMap(m=>r.map(E=>a(u,m,E,d))))},{immediate:!0,flush:"post"}),c=()=>{l(),i()};return en(c),c}let zi=!1;function D_(e,t,n={}){const{window:r=He,ignore:s=[],capture:o=!0,detectIframe:i=!1}=n;if(!r)return Dt;Pp&&!zi&&(zi=!0,Array.from(r.document.body.children).forEach(d=>d.addEventListener("click",Dt)),r.document.documentElement.addEventListener("click",Dt));let a=!0;const l=d=>s.some(m=>{if(typeof m=="string")return Array.from(r.document.querySelectorAll(m)).some(E=>E===d.target||d.composedPath().includes(E));{const E=je(m);return E&&(d.target===E||d.composedPath().includes(E))}}),u=[_e(r,"click",d=>{const m=je(e);if(!(!m||m===d.target||d.composedPath().includes(m))){if(d.detail===0&&(a=!l(d)),!a){a=!0;return}t(d)}},{passive:!0,capture:o}),_e(r,"pointerdown",d=>{const m=je(e);a=!l(d)&&!!(m&&!d.composedPath().includes(m))},{passive:!0}),i&&_e(r,"blur",d=>{setTimeout(()=>{var m;const E=je(e);((m=r.document.activeElement)==null?void 0:m.tagName)==="IFRAME"&&!(E!=null&&E.contains(r.document.activeElement))&&t(d)},0)})].filter(Boolean);return()=>u.forEach(d=>d())}function Hp(e){return typeof e=="function"?e:typeof e=="string"?t=>t.key===e:Array.isArray(e)?t=>e.includes(t.key):()=>!0}function F_(...e){let t,n,r={};e.length===3?(t=e[0],n=e[1],r=e[2]):e.length===2?typeof e[1]=="object"?(t=!0,n=e[0],r=e[1]):(t=e[0],n=e[1]):(t=!0,n=e[0]);const{target:s=He,eventName:o="keydown",passive:i=!1,dedupe:a=!1}=r,l=Hp(t);return _e(s,o,u=>{u.repeat&&Ge(a)||l(u)&&n(u)},i)}function $p(){const e=se(!1),t=An();return t&&Ln(()=>{e.value=!0},t),e}function Zn(e){const t=$p();return oe(()=>(t.value,!!e()))}function sn(e,t={}){const{window:n=He}=t,r=Zn(()=>n&&"matchMedia"in n&&typeof n.matchMedia=="function");let s;const o=se(!1),i=c=>{o.value=c.matches},a=()=>{s&&("removeEventListener"in s?s.removeEventListener("change",i):s.removeListener(i))},l=Ga(()=>{r.value&&(a(),s=n.matchMedia(Ge(e)),"addEventListener"in s?s.addEventListener("change",i):s.addListener(i),o.value=s.matches)});return en(()=>{l(),a(),s=void 0}),o}const H_={sm:640,md:768,lg:1024,xl:1280,"2xl":1536};function $_(e,t={}){function n(u,f){let d=Ge(e[Ge(u)]);return f!=null&&(d=kp(d,f)),typeof d=="number"&&(d=`${d}px`),d}const{window:r=He,strategy:s="min-width"}=t;function o(u){return r?r.matchMedia(u).matches:!1}const i=u=>sn(()=>`(min-width: ${n(u)})`,t),a=u=>sn(()=>`(max-width: ${n(u)})`,t),l=Object.keys(e).reduce((u,f)=>(Object.defineProperty(u,f,{get:()=>s==="min-width"?i(f):a(f),enumerable:!0,configurable:!0}),u),{});function c(){const u=Object.keys(e).map(f=>[f,i(f)]);return oe(()=>u.filter(([,f])=>f.value).map(([f])=>f))}return Object.assign(l,{greaterOrEqual:i,smallerOrEqual:a,greater(u){return sn(()=>`(min-width: ${n(u,.1)})`,t)},smaller(u){return sn(()=>`(max-width: ${n(u,-.1)})`,t)},between(u,f){return sn(()=>`(min-width: ${n(u)}) and (max-width: ${n(f,-.1)})`,t)},isGreater(u){return o(`(min-width: ${n(u,.1)})`)},isGreaterOrEqual(u){return o(`(min-width: ${n(u)})`)},isSmaller(u){return o(`(max-width: ${n(u,-.1)})`)},isSmallerOrEqual(u){return o(`(max-width: ${n(u)})`)},isInBetween(u,f){return o(`(min-width: ${n(u)}) and (max-width: ${n(f,-.1)})`)},current:c,active(){const u=c();return oe(()=>u.value.length===0?"":u.value.at(-1))}})}function Yi(e,t={}){const{controls:n=!1,navigator:r=bc}=t,s=Zn(()=>r&&"permissions"in r);let o;const i=typeof e=="string"?{name:e}:e,a=se(),l=()=>{o&&(a.value=o.state)},c=Rp(async()=>{if(s.value){if(!o)try{o=await r.permissions.query(i),_e(o,"change",l),l()}catch{a.value="prompt"}return o}});return c(),n?{state:a,isSupported:s,query:c}:a}function U_(e={}){const{navigator:t=bc,read:n=!1,source:r,copiedDuring:s=1500,legacy:o=!1}=e,i=Zn(()=>t&&"clipboard"in t),a=Yi("clipboard-read"),l=Yi("clipboard-write"),c=oe(()=>i.value||o),u=se(""),f=se(!1),d=xp(()=>f.value=!1,s);function m(){i.value&&O(a.value)?t.clipboard.readText().then(N=>{u.value=N}):u.value=C()}c.value&&n&&_e(["copy","cut"],m);async function E(N=Ge(r)){c.value&&N!=null&&(i.value&&O(l.value)?await t.clipboard.writeText(N):v(N),u.value=N,f.value=!0,d.start())}function v(N){const h=document.createElement("textarea");h.value=N??"",h.style.position="absolute",h.style.opacity="0",document.body.appendChild(h),h.select(),document.execCommand("copy"),h.remove()}function C(){var N,h,y;return(y=(h=(N=document==null?void 0:document.getSelection)==null?void 0:N.call(document))==null?void 0:h.toString())!=null?y:""}function O(N){return N==="granted"||N==="prompt"}return{isSupported:c,text:u,copied:f,copy:E}}function vc(e){return JSON.parse(JSON.stringify(e))}const dr=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{},hr="__vueuse_ssr_handlers__",Up=jp();function jp(){return hr in dr||(dr[hr]=dr[hr]||{}),dr[hr]}function Ec(e,t){return Up[e]||t}function Vp(e){return e==null?"any":e instanceof Set?"set":e instanceof Map?"map":e instanceof Date?"date":typeof e=="boolean"?"boolean":typeof e=="string"?"string":typeof e=="object"?"object":Number.isNaN(e)?"any":"number"}const Wp={boolean:{read:e=>e==="true",write:e=>String(e)},object:{read:e=>JSON.parse(e),write:e=>JSON.stringify(e)},number:{read:e=>Number.parseFloat(e),write:e=>String(e)},any:{read:e=>e,write:e=>String(e)},string:{read:e=>e,write:e=>String(e)},map:{read:e=>new Map(JSON.parse(e)),write:e=>JSON.stringify(Array.from(e.entries()))},set:{read:e=>new Set(JSON.parse(e)),write:e=>JSON.stringify(Array.from(e))},date:{read:e=>new Date(e),write:e=>e.toISOString()}},Xi="vueuse-storage";function wc(e,t,n,r={}){var s;const{flush:o="pre",deep:i=!0,listenToStorageChanges:a=!0,writeDefaults:l=!0,mergeDefaults:c=!1,shallow:u,window:f=He,eventFilter:d,onError:m=H=>{console.error(H)},initOnMounted:E}=r,v=(u?Yr:se)(typeof t=="function"?t():t);if(!n)try{n=Ec("getDefaultStorage",()=>{var H;return(H=He)==null?void 0:H.localStorage})()}catch(H){m(H)}if(!n)return v;const C=Ge(t),O=Vp(C),N=(s=r.serializer)!=null?s:Wp[O],{pause:h,resume:y}=Mp(v,()=>T(v.value),{flush:o,deep:i,eventFilter:d});f&&a&&Co(()=>{_e(f,"storage",D),_e(f,Xi,x),E&&D()}),E||D();function S(H,Y){f&&f.dispatchEvent(new CustomEvent(Xi,{detail:{key:e,oldValue:H,newValue:Y,storageArea:n}}))}function T(H){try{const Y=n.getItem(e);if(H==null)S(Y,null),n.removeItem(e);else{const B=N.write(H);Y!==B&&(n.setItem(e,B),S(Y,B))}}catch(Y){m(Y)}}function A(H){const Y=H?H.newValue:n.getItem(e);if(Y==null)return l&&C!=null&&n.setItem(e,N.write(C)),C;if(!H&&c){const B=N.read(Y);return typeof c=="function"?c(B,C):O==="object"&&!Array.isArray(B)?{...C,...B}:B}else return typeof Y!="string"?Y:N.read(Y)}function D(H){if(!(H&&H.storageArea!==n)){if(H&&H.key==null){v.value=C;return}if(!(H&&H.key!==e)){h();try{(H==null?void 0:H.newValue)!==N.write(v.value)&&(v.value=A(H))}catch(Y){m(Y)}finally{H?Cn(y):y()}}}}function x(H){D(H.detail)}return v}function Tc(e){return sn("(prefers-color-scheme: dark)",e)}function Kp(e={}){const{selector:t="html",attribute:n="class",initialValue:r="auto",window:s=He,storage:o,storageKey:i="vueuse-color-scheme",listenToStorageChanges:a=!0,storageRef:l,emitAuto:c,disableTransition:u=!0}=e,f={auto:"",light:"light",dark:"dark",...e.modes||{}},d=Tc({window:s}),m=oe(()=>d.value?"dark":"light"),E=l||(i==null?gc(r):wc(i,r,o,{window:s,listenToStorageChanges:a})),v=oe(()=>E.value==="auto"?m.value:E.value),C=Ec("updateHTMLAttrs",(y,S,T)=>{const A=typeof y=="string"?s==null?void 0:s.document.querySelector(y):je(y);if(!A)return;let D;if(u&&(D=s.document.createElement("style"),D.appendChild(document.createTextNode("*,*::before,*::after{-webkit-transition:none!important;-moz-transition:none!important;-o-transition:none!important;-ms-transition:none!important;transition:none!important}")),s.document.head.appendChild(D)),S==="class"){const x=T.split(/\s/g);Object.values(f).flatMap(H=>(H||"").split(/\s/g)).filter(Boolean).forEach(H=>{x.includes(H)?A.classList.add(H):A.classList.remove(H)})}else A.setAttribute(S,T);u&&(s.getComputedStyle(D).opacity,document.head.removeChild(D))});function O(y){var S;C(t,n,(S=f[y])!=null?S:y)}function N(y){e.onChanged?e.onChanged(y,O):O(y)}Se(v,N,{flush:"post",immediate:!0}),Co(()=>N(v.value));const h=oe({get(){return c?E.value:v.value},set(y){E.value=y}});try{return Object.assign(h,{store:E,system:m,state:v})}catch{return h}}function Bp(e={}){const{valueDark:t="dark",valueLight:n="",window:r=He}=e,s=Kp({...e,onChanged:(a,l)=>{var c;e.onChanged?(c=e.onChanged)==null||c.call(e,a==="dark",l,a):l(a)},modes:{dark:t,light:n}}),o=oe(()=>s.system?s.system.value:Tc({window:r}).value?"dark":"light");return oe({get(){return s.value==="dark"},set(a){const l=a?"dark":"light";o.value===l?s.value="auto":s.value=l}})}function Sc(e){return e}function Gp(e,t){return e.value=t}function zp(e){return e?typeof e=="function"?e:vc:Sc}function Yp(e){return e?typeof e=="function"?e:vc:Sc}function Xp(e,t={}){const{clone:n=!1,dump:r=zp(n),parse:s=Yp(n),setSource:o=Gp}=t;function i(){return ua({snapshot:r(e.value),timestamp:Lp()})}const a=se(i()),l=se([]),c=se([]),u=h=>{o(e,s(h.snapshot)),a.value=h},f=()=>{l.value.unshift(a.value),a.value=i(),t.capacity&&l.value.length>t.capacity&&l.value.splice(t.capacity,Number.POSITIVE_INFINITY),c.value.length&&c.value.splice(0,c.value.length)},d=()=>{l.value.splice(0,l.value.length),c.value.splice(0,c.value.length)},m=()=>{const h=l.value.shift();h&&(c.value.unshift(a.value),u(h))},E=()=>{const h=c.value.shift();h&&(l.value.unshift(a.value),u(h))},v=()=>{u(a.value)},C=oe(()=>[a.value,...l.value]),O=oe(()=>l.value.length>0),N=oe(()=>c.value.length>0);return{source:e,undoStack:l,redoStack:c,last:a,history:C,canUndo:O,canRedo:N,clear:d,commit:f,reset:v,undo:m,redo:E}}function j_(e,t={}){const{deep:n=!1,flush:r="pre",eventFilter:s}=t,{eventFilter:o,pause:i,resume:a,isActive:l}=mc(s),{ignoreUpdates:c,ignorePrevAsyncUpdates:u,stop:f}=Fp(e,C,{deep:n,flush:r,eventFilter:o});function d(y,S){u(),c(()=>{y.value=S})}const m=Xp(e,{...t,clone:t.clone||n,setSource:d}),{clear:E,commit:v}=m;function C(){u(),v()}function O(y){a(),y&&C()}function N(y){let S=!1;const T=()=>S=!0;c(()=>{y(T)}),S||C()}function h(){f(),E()}return{...m,isTracking:l,pause:i,resume:O,commit:C,batch:N,dispose:h}}function V_(e,t={}){const n=se(!1),r=Yr(null);let s=0,o=!0;if(Pn){const i=typeof t=="function"?{onDrop:t}:t,a=l=>{var c,u;const f=Array.from((u=(c=l.dataTransfer)==null?void 0:c.files)!=null?u:[]);return r.value=f.length===0?null:f};_e(e,"dragenter",l=>{var c,u;const f=Array.from(((c=l==null?void 0:l.dataTransfer)==null?void 0:c.items)||[]).map(d=>d.kind==="file"?d.type:null).filter(Sp);if(i.dataTypes&&l.dataTransfer){const d=Ke(i.dataTypes);if(o=typeof d=="function"?d(f):d?d.some(m=>f.includes(m)):!0,!o)return}l.preventDefault(),s+=1,n.value=!0,(u=i.onEnter)==null||u.call(i,a(l),l)}),_e(e,"dragover",l=>{var c;o&&(l.preventDefault(),(c=i.onOver)==null||c.call(i,a(l),l))}),_e(e,"dragleave",l=>{var c;o&&(l.preventDefault(),s-=1,s===0&&(n.value=!1),(c=i.onLeave)==null||c.call(i,a(l),l))}),_e(e,"drop",l=>{var c;l.preventDefault(),s=0,n.value=!1,(c=i.onDrop)==null||c.call(i,a(l),l)})}return{files:r,isOverDropZone:n}}function qp(e,t,n={}){const{window:r=He,...s}=n;let o;const i=Zn(()=>r&&"ResizeObserver"in r),a=()=>{o&&(o.disconnect(),o=void 0)},l=oe(()=>Array.isArray(e)?e.map(f=>je(f)):[je(e)]),c=Se(l,f=>{if(a(),i.value&&r){o=new ResizeObserver(t);for(const d of f)d&&o.observe(d,s)}},{immediate:!0,flush:"post"}),u=()=>{a(),c()};return en(u),{isSupported:i,stop:u}}function W_(e,t={width:0,height:0},n={}){const{window:r=He,box:s="content-box"}=n,o=oe(()=>{var f,d;return(d=(f=je(e))==null?void 0:f.namespaceURI)==null?void 0:d.includes("svg")}),i=se(t.width),a=se(t.height),{stop:l}=qp(e,([f])=>{const d=s==="border-box"?f.borderBoxSize:s==="content-box"?f.contentBoxSize:f.devicePixelContentBoxSize;if(r&&o.value){const m=je(e);if(m){const E=m.getBoundingClientRect();i.value=E.width,a.value=E.height}}else if(d){const m=Array.isArray(d)?d:[d];i.value=m.reduce((E,{inlineSize:v})=>E+v,0),a.value=m.reduce((E,{blockSize:v})=>E+v,0)}else i.value=f.contentRect.width,a.value=f.contentRect.height},n);Co(()=>{const f=je(e);f&&(i.value="offsetWidth"in f?f.offsetWidth:t.width,a.value="offsetHeight"in f?f.offsetHeight:t.height)});const c=Se(()=>je(e),f=>{i.value=f?t.width:0,a.value=f?t.height:0});function u(){l(),c()}return{width:i,height:a,stop:u}}const Jp={multiple:!0,accept:"*",reset:!1,directory:!1};function K_(e={}){const{document:t=yc}=e,n=se(null),{on:r,trigger:s}=Tp();let o;t&&(o=t.createElement("input"),o.type="file",o.onchange=l=>{const c=l.target;n.value=c.files,s(n.value)});const i=()=>{n.value=null,o&&o.value&&(o.value="",s(null))},a=l=>{if(!o)return;const c={...Jp,...e,...l};o.multiple=c.multiple,o.accept=c.accept,o.webkitdirectory=c.directory,Ap(c,"capture")&&(o.capture=c.capture),c.reset&&i(),o.click()};return{files:On(n),open:a,reset:i,onChange:r}}const qi=["fullscreenchange","webkitfullscreenchange","webkitendfullscreen","mozfullscreenchange","MSFullscreenChange"];function B_(e,t={}){const{document:n=yc,autoExit:r=!1}=t,s=oe(()=>{var O;return(O=je(e))!=null?O:n==null?void 0:n.querySelector("html")}),o=se(!1),i=oe(()=>["requestFullscreen","webkitRequestFullscreen","webkitEnterFullscreen","webkitEnterFullScreen","webkitRequestFullScreen","mozRequestFullScreen","msRequestFullscreen"].find(O=>n&&O in n||s.value&&O in s.value)),a=oe(()=>["exitFullscreen","webkitExitFullscreen","webkitExitFullScreen","webkitCancelFullScreen","mozCancelFullScreen","msExitFullscreen"].find(O=>n&&O in n||s.value&&O in s.value)),l=oe(()=>["fullScreen","webkitIsFullScreen","webkitDisplayingFullscreen","mozFullScreen","msFullscreenElement"].find(O=>n&&O in n||s.value&&O in s.value)),c=["fullscreenElement","webkitFullscreenElement","mozFullScreenElement","msFullscreenElement"].find(O=>n&&O in n),u=Zn(()=>s.value&&n&&i.value!==void 0&&a.value!==void 0&&l.value!==void 0),f=()=>c?(n==null?void 0:n[c])===s.value:!1,d=()=>{if(l.value){if(n&&n[l.value]!=null)return n[l.value];{const O=s.value;if((O==null?void 0:O[l.value])!=null)return!!O[l.value]}}return!1};async function m(){if(!(!u.value||!o.value)){if(a.value)if((n==null?void 0:n[a.value])!=null)await n[a.value]();else{const O=s.value;(O==null?void 0:O[a.value])!=null&&await O[a.value]()}o.value=!1}}async function E(){if(!u.value||o.value)return;d()&&await m();const O=s.value;i.value&&(O==null?void 0:O[i.value])!=null&&(await O[i.value](),o.value=!0)}async function v(){await(o.value?m():E())}const C=()=>{const O=d();(!O||O&&f())&&(o.value=O)};return _e(n,qi,C,!1),_e(()=>je(s),qi,C,!1),r&&en(m),{isSupported:u,isFullscreen:o,enter:E,exit:m,toggle:v}}function Qp(e,t,n={}){const{window:r=He}=n;return wc(e,t,r==null?void 0:r.localStorage,n)}const Zp={ctrl:"control",command:"meta",cmd:"meta",option:"alt",up:"arrowup",down:"arrowdown",left:"arrowleft",right:"arrowright"};function G_(e={}){const{reactive:t=!1,target:n=He,aliasMap:r=Zp,passive:s=!0,onEventFired:o=Dt}=e,i=yn(new Set),a={toJSON(){return{}},current:i},l=t?yn(a):a,c=new Set,u=new Set;function f(v,C){v in l&&(t?l[v]=C:l[v].value=C)}function d(){i.clear();for(const v of u)f(v,!1)}function m(v,C){var O,N;const h=(O=v.key)==null?void 0:O.toLowerCase(),S=[(N=v.code)==null?void 0:N.toLowerCase(),h].filter(Boolean);h&&(C?i.add(h):i.delete(h));for(const T of S)u.add(T),f(T,C);h==="meta"&&!C?(c.forEach(T=>{i.delete(T),f(T,!1)}),c.clear()):typeof v.getModifierState=="function"&&v.getModifierState("Meta")&&C&&[...i,...S].forEach(T=>c.add(T))}_e(n,"keydown",v=>(m(v,!0),o(v)),{passive:s}),_e(n,"keyup",v=>(m(v,!1),o(v)),{passive:s}),_e("blur",d,{passive:!0}),_e("focus",d,{passive:!0});const E=new Proxy(l,{get(v,C,O){if(typeof C!="string")return Reflect.get(v,C,O);if(C=C.toLowerCase(),C in r&&(C=r[C]),!(C in l))if(/[+_-]/.test(C)){const h=C.split(/[+_-]/g).map(y=>y.trim());l[C]=oe(()=>h.every(y=>Ge(E[y])))}else l[C]=se(!1);const N=Reflect.get(v,C,O);return t?Ge(N):N}});return E}function z_(e,t){const r=uo(new Map),s=(...u)=>JSON.stringify(u),o=(u,...f)=>(r.set(u,e(...f)),r.get(u)),i=(...u)=>o(s(...u),...u),a=(...u)=>{r.delete(s(...u))},l=()=>{r.clear()},c=(...u)=>{const f=s(...u);return r.has(f)?r.get(f):o(f,...u)};return c.load=i,c.delete=a,c.clear=l,c.generateKey=s,c.cache=r,c}const em={page:e=>[e.pageX,e.pageY],client:e=>[e.clientX,e.clientY],screen:e=>[e.screenX,e.screenY],movement:e=>e instanceof Touch?null:[e.movementX,e.movementY]};function tm(e={}){const{type:t="page",touch:n=!0,resetOnTouchEnds:r=!1,initialValue:s={x:0,y:0},window:o=He,target:i=o,scroll:a=!0,eventFilter:l}=e;let c=null;const u=se(s.x),f=se(s.y),d=se(null),m=typeof t=="function"?t:em[t],E=S=>{const T=m(S);c=S,T&&([u.value,f.value]=T,d.value="mouse")},v=S=>{if(S.touches.length>0){const T=m(S.touches[0]);T&&([u.value,f.value]=T,d.value="touch")}},C=()=>{if(!c||!o)return;const S=m(c);c instanceof MouseEvent&&S&&(u.value=S[0]+o.scrollX,f.value=S[1]+o.scrollY)},O=()=>{u.value=s.x,f.value=s.y},N=l?S=>l(()=>E(S),{}):S=>E(S),h=l?S=>l(()=>v(S),{}):S=>v(S),y=l?()=>l(()=>C(),{}):()=>C();if(i){const S={passive:!0};_e(i,["mousemove","dragover"],N,S),n&&t!=="movement"&&(_e(i,["touchstart","touchmove"],h,S),r&&_e(i,"touchend",O,S)),a&&t==="page"&&_e(o,"scroll",y,{passive:!0})}return{x:u,y:f,sourceType:d}}function Y_(e,t={}){const{handleOutside:n=!0,window:r=He}=t,s=t.type||"page",{x:o,y:i,sourceType:a}=tm(t),l=se(e??(r==null?void 0:r.document.body)),c=se(0),u=se(0),f=se(0),d=se(0),m=se(0),E=se(0),v=se(!0);let C=()=>{};return r&&(C=Se([l,o,i],()=>{const O=je(l);if(!O)return;const{left:N,top:h,width:y,height:S}=O.getBoundingClientRect();f.value=N+(s==="page"?r.pageXOffset:0),d.value=h+(s==="page"?r.pageYOffset:0),m.value=S,E.value=y;const T=o.value-f.value,A=i.value-d.value;v.value=y===0||S===0||T<0||A<0||T>y||A>S,(n||!v.value)&&(c.value=T,u.value=A)},{immediate:!0}),_e(document,"mouseleave",()=>{v.value=!0})),{x:o,y:i,sourceType:a,elementX:c,elementY:u,elementPositionX:f,elementPositionY:d,elementHeight:m,elementWidth:E,isOutside:v,stop:C}}function nm(e={}){const{window:t=He}=e;if(!t)return se(["en"]);const n=t.navigator,r=se(n.languages);return _e(t,"languagechange",()=>{r.value=n.languages}),r}const Oc=Object.fromEntries(Object.entries(Object.assign({"../../locales/de.yml":yp,"../../locales/en.yml":vp,"../../locales/pl.yml":wp})).map(([e,t])=>{const n=e.endsWith(".yaml");return[e.slice(14,n?-5:-4),t.default]})),ns="en",rm=nm(),sm=Object.keys(Oc),Cc=e=>sm.includes(e),X_=e=>Cc(e)?e:ns,Lc=se(ns);Se(rm,e=>{Lc.value=e.find(Cc)||ns},{immediate:!0});const js=Qp("fast-angle-locale",Lc.value),om=({app:e})=>{const t=lp({legacy:!1,locale:js.value,fallbackLocale:ns,messages:Oc});e.use(t),Se(t.global.locale,n=>{js.value=n})},im=Object.freeze(Object.defineProperty({__proto__:null,install:om},Symbol.toStringTag,{value:"Module"})),lm="modulepreload",am=function(e){return"/fast-angle/"+e},Ji={},Qt=function(t,n,r){let s=Promise.resolve();if(n&&n.length>0){document.getElementsByTagName("link");const o=document.querySelector("meta[property=csp-nonce]"),i=(o==null?void 0:o.nonce)||(o==null?void 0:o.getAttribute("nonce"));s=Promise.all(n.map(a=>{if(a=am(a),a in Ji)return;Ji[a]=!0;const l=a.endsWith(".css"),c=l?'[rel="stylesheet"]':"";if(document.querySelector(`link[href="${a}"]${c}`))return;const u=document.createElement("link");if(u.rel=l?"stylesheet":lm,l||(u.as="script",u.crossOrigin=""),u.href=a,i&&u.setAttribute("nonce",i),document.head.appendChild(u),l)return new Promise((f,d)=>{u.addEventListener("load",f),u.addEventListener("error",()=>d(new Error(`Unable to preload CSS for ${a}`)))})}))}return s.then(()=>t()).catch(o=>{const i=new Event("vite:preloadError",{cancelable:!0});if(i.payload=o,window.dispatchEvent(i),!i.defaultPrevented)throw o})},cm=async({isClient:e})=>{if(!e)return;const{registerSW:t}=await Qt(async()=>{const{registerSW:n}=await import("./virtual_pwa-register-CPmTglcK.js");return{registerSW:n}},[]);t({immediate:!0})},um=Object.freeze(Object.defineProperty({__proto__:null,install:cm},Symbol.toStringTag,{value:"Module"})),fm=e=>"virtualKeyboard"in e,dm=async({isClient:e})=>{e&&fm(navigator)&&(navigator.virtualKeyboard.overlaysContent=!0)},hm=Object.freeze(Object.defineProperty({__proto__:null,install:dm},Symbol.toStringTag,{value:"Module"}));/*! +`}},result:{zoom_in:{t:0,b:{t:2,i:[{t:3}],s:"Przybliż"}},zoom_out:{t:0,b:{t:2,i:[{t:3}],s:"Oddal"}}},nav:{download_image:{action:{t:0,b:{t:2,i:[{t:3}],s:"Pobierz obrazek"}},save:{t:0,b:{t:2,i:[{t:3}],s:"Zapisz obrazek"}},heading:{t:0,b:{t:2,i:[{t:3}],s:"Eksport obrazka"}},name_label:{t:0,b:{t:2,i:[{t:3}],s:"Nazwa obrazka"}},format_label:{t:0,b:{t:2,i:[{t:3}],s:"Format"}},sizing_label:{t:0,b:{t:2,i:[{t:3}],s:"Wymiary obrazka"}},width_label:{t:0,b:{t:2,i:[{t:3}],s:"Szerokość"}},height_label:{t:0,b:{t:2,i:[{t:3}],s:"Wysokość"}},keep_aspect_ratio:{t:0,b:{t:2,i:[{t:3}],s:"Zachowuj proporcje obrazka"}},unit_label:{t:0,b:{t:2,i:[{t:3}],s:"Jednostka"}},quality_label:{t:0,b:{t:2,i:[{t:3}],s:"Jakość"}}},upload_file:{t:0,b:{t:2,i:[{t:3}],s:"Kliknij tutaj lub przeciągnij obraz, aby go załadować"}},toggle_fullscreen:{t:0,b:{t:2,i:[{t:3}],s:"Przełącz tryb pełnoekranowy"}},undo:{t:0,b:{t:2,i:[{t:3}],s:"Cofnij poprzednią akcję"}},redo:{t:0,b:{t:2,i:[{t:3}],s:"Przywróć cofniętą akcję"}},toggle_dark:{t:0,b:{t:2,i:[{t:3}],s:"Ustaw tryb nocny"}},toggle_langs:{t:0,b:{t:2,i:[{t:3}],s:"Zmień język"}},help:{action:{t:0,b:{t:2,i:[{t:3}],s:"Otwórz pomoc i informację o aplikacji"}},heading:{t:0,b:{t:2,i:[{t:3}],s:"Pomoc"}},heading_authors:{t:0,b:{t:2,i:[{t:3}],s:"Autorzy"}},key_bindings:{heading:{t:0,b:{t:2,i:[{t:3}],s:"Skróty klawiaturowy"}},description:{t:0,b:{t:2,i:[{t:3}],s:"Akcja"}}},content:[{t:0,b:{t:2,i:[{t:3}],s:"By wczytać obrazek, upuść go na pole rysowania lub naciśnij przycisk oznaczony ikoną obrazka ze strzałką."}},{t:0,b:{t:2,i:[{t:3}],s:"Po narysowaniu drugiej linii, kliknij raz jeszcze by zresetować linie."}},{t:0,b:{t:2,i:[{t:3}],s:"Wygodniej jest obsługiwać aplikację w trybie pełnoekranowym."}}]}}}},wp=Object.freeze(Object.defineProperty({__proto__:null,default:Ep},Symbol.toStringTag,{value:"Module"}));function en(e){return Jl()?(Df(e),!0):!1}function Tp(){const e=new Set,t=s=>{e.delete(s)};return{on:s=>{e.add(s);const o=()=>t(s);return en(o),{off:o}},off:t,trigger:(...s)=>Promise.all(Array.from(e).map(o=>o(...s)))}}function I_(e){let t=0,n,r;const s=()=>{t-=1,r&&t<=0&&(r.stop(),n=void 0,r=void 0)};return(...o)=>(t+=1,r||(r=ql(!0),n=r.run(()=>e(...o))),en(s),n)}function Ve(e){return typeof e=="function"?e():Be(e)}const Nn=typeof window<"u"&&typeof document<"u";typeof WorkerGlobalScope<"u"&&globalThis instanceof WorkerGlobalScope;const Sp=e=>e!=null,Op=Object.prototype.toString,Cp=e=>Op.call(e)==="[object Object]",Lp=()=>+Date.now(),Dt=()=>{},Ap=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),Pp=Np();function Np(){var e,t;return Nn&&((e=window==null?void 0:window.navigator)==null?void 0:e.userAgent)&&(/iP(?:ad|hone|od)/.test(window.navigator.userAgent)||((t=window==null?void 0:window.navigator)==null?void 0:t.maxTouchPoints)>2&&/iPad|Macintosh/.test(window==null?void 0:window.navigator.userAgent))}function hc(e,t){function n(...r){return new Promise((s,o)=>{Promise.resolve(e(()=>t.apply(this,r),{fn:t,thisArg:this,args:r})).then(s).catch(o)})}return n}const Oo=e=>e();function pc(...e){let t=0,n,r=!0,s=Dt,o,i,a,l,c;!Ce(e[0])&&typeof e[0]=="object"?{delay:i,trailing:a=!0,leading:l=!0,rejectOnCancel:c=!1}=e[0]:[i,a=!0,l=!0,c=!1]=e;const u=()=>{n&&(clearTimeout(n),n=void 0,s(),s=Dt)};return d=>{const m=Ve(i),E=Date.now()-t,v=()=>o=d();return u(),m<=0?(t=Date.now(),v()):(E>m&&(l||!r)?(t=Date.now(),v()):a&&(o=new Promise((C,O)=>{s=c?O:C,n=setTimeout(()=>{t=Date.now(),r=!0,C(v()),u()},Math.max(0,m-E))})),!l&&!n&&(n=setTimeout(()=>r=!0,m)),r=!1,o)}}function mc(e=Oo){const t=se(!0);function n(){t.value=!1}function r(){t.value=!0}const s=(...o)=>{t.value&&e(...o)};return{isActive:Cn(t),pause:n,resume:r,eventFilter:s}}function Rp(e){let t;function n(){return t||(t=e()),t}return n.reset=async()=>{const r=t;t=void 0,r&&await r},n}function kp(e,t){var n;if(typeof e=="number")return e+t;const r=((n=e.match(/^-?\d+\.?\d*/))==null?void 0:n[0])||"",s=e.slice(r.length),o=Number.parseFloat(r)+t;return Number.isNaN(o)?e:o+s}function Ip(e){return Pn()}function gc(...e){if(e.length!==1)return ud(...e);const t=e[0];return typeof t=="function"?Cn(ld(()=>({get:t,set:Dt}))):se(t)}const M_=gc;function _c(e,t,n={}){const{eventFilter:r=Oo,...s}=n;return Se(e,hc(r,t),s)}function Mp(e,t,n={}){const{eventFilter:r,...s}=n,{eventFilter:o,pause:i,resume:a,isActive:l}=mc(r);return{stop:_c(e,t,{...s,eventFilter:o}),pause:i,resume:a,isActive:l}}function Co(e,t=!0,n){Ip()?An(e,n):t?e():Ln(e)}function xp(e,t,n={}){const{immediate:r=!0}=n,s=se(!1);let o=null;function i(){o&&(clearTimeout(o),o=null)}function a(){s.value=!1,i()}function l(...c){i(),s.value=!0,o=setTimeout(()=>{s.value=!1,o=null,e(...c)},Ve(t))}return r&&(s.value=!0,Nn&&l()),en(a),{isPending:Cn(s),start:l,stop:a}}function Dp(e=!1,t={}){const{truthyValue:n=!0,falsyValue:r=!1}=t,s=Ce(e),o=se(e);function i(a){if(arguments.length)return o.value=a,o.value;{const l=Ve(n);return o.value=o.value===l?Ve(r):l,o.value}}return s?i:[o,i]}function Fp(e,t,n={}){const{eventFilter:r=Oo,...s}=n,o=hc(r,t);let i,a,l;if(s.flush==="sync"){const c=se(!1);a=()=>{},i=u=>{c.value=!0,u(),c.value=!1},l=Se(e,(...u)=>{c.value||o(...u)},s)}else{const c=[],u=se(0),f=se(0);a=()=>{u.value=f.value},c.push(Se(e,()=>{f.value++},{...s,flush:"sync"})),i=d=>{const m=f.value;d(),u.value+=f.value-m},c.push(Se(e,(...d)=>{const m=u.value>0&&u.value===f.value;u.value=0,f.value=0,!m&&o(...d)},s)),l=()=>{c.forEach(d=>d())}}return{stop:l,ignoreUpdates:i,ignorePrevAsyncUpdates:a}}function x_(e,t,n={}){const{throttle:r=0,trailing:s=!0,leading:o=!0,...i}=n;return _c(e,t,{...i,eventFilter:pc(r,s,o)})}function D_(e,t,n){return Se(e,(s,o,i)=>{s&&t(s,o,i)},{...n,once:!1})}function je(e){var t;const n=Ve(e);return(t=n==null?void 0:n.$el)!=null?t:n}const He=Nn?window:void 0,yc=Nn?window.document:void 0,bc=Nn?window.navigator:void 0;function _e(...e){let t,n,r,s;if(typeof e[0]=="string"||Array.isArray(e[0])?([n,r,s]=e,t=He):[t,n,r,s]=e,!t)return Dt;Array.isArray(n)||(n=[n]),Array.isArray(r)||(r=[r]);const o=[],i=()=>{o.forEach(u=>u()),o.length=0},a=(u,f,d,m)=>(u.addEventListener(f,d,m),()=>u.removeEventListener(f,d,m)),l=Se(()=>[je(t),Ve(s)],([u,f])=>{if(i(),!u)return;const d=Cp(f)?{...f}:f;o.push(...n.flatMap(m=>r.map(E=>a(u,m,E,d))))},{immediate:!0,flush:"post"}),c=()=>{l(),i()};return en(c),c}let zi=!1;function F_(e,t,n={}){const{window:r=He,ignore:s=[],capture:o=!0,detectIframe:i=!1}=n;if(!r)return Dt;Pp&&!zi&&(zi=!0,Array.from(r.document.body.children).forEach(d=>d.addEventListener("click",Dt)),r.document.documentElement.addEventListener("click",Dt));let a=!0;const l=d=>s.some(m=>{if(typeof m=="string")return Array.from(r.document.querySelectorAll(m)).some(E=>E===d.target||d.composedPath().includes(E));{const E=je(m);return E&&(d.target===E||d.composedPath().includes(E))}}),u=[_e(r,"click",d=>{const m=je(e);if(!(!m||m===d.target||d.composedPath().includes(m))){if(d.detail===0&&(a=!l(d)),!a){a=!0;return}t(d)}},{passive:!0,capture:o}),_e(r,"pointerdown",d=>{const m=je(e);a=!l(d)&&!!(m&&!d.composedPath().includes(m))},{passive:!0}),i&&_e(r,"blur",d=>{setTimeout(()=>{var m;const E=je(e);((m=r.document.activeElement)==null?void 0:m.tagName)==="IFRAME"&&!(E!=null&&E.contains(r.document.activeElement))&&t(d)},0)})].filter(Boolean);return()=>u.forEach(d=>d())}function Hp(e){return typeof e=="function"?e:typeof e=="string"?t=>t.key===e:Array.isArray(e)?t=>e.includes(t.key):()=>!0}function H_(...e){let t,n,r={};e.length===3?(t=e[0],n=e[1],r=e[2]):e.length===2?typeof e[1]=="object"?(t=!0,n=e[0],r=e[1]):(t=e[0],n=e[1]):(t=!0,n=e[0]);const{target:s=He,eventName:o="keydown",passive:i=!1,dedupe:a=!1}=r,l=Hp(t);return _e(s,o,u=>{u.repeat&&Ve(a)||l(u)&&n(u)},i)}function $p(){const e=se(!1),t=Pn();return t&&An(()=>{e.value=!0},t),e}function er(e){const t=$p();return oe(()=>(t.value,!!e()))}function sn(e,t={}){const{window:n=He}=t,r=er(()=>n&&"matchMedia"in n&&typeof n.matchMedia=="function");let s;const o=se(!1),i=c=>{o.value=c.matches},a=()=>{s&&("removeEventListener"in s?s.removeEventListener("change",i):s.removeListener(i))},l=Ga(()=>{r.value&&(a(),s=n.matchMedia(Ve(e)),"addEventListener"in s?s.addEventListener("change",i):s.addListener(i),o.value=s.matches)});return en(()=>{l(),a(),s=void 0}),o}const $_={sm:640,md:768,lg:1024,xl:1280,"2xl":1536};function U_(e,t={}){function n(u,f){let d=Ve(e[Ve(u)]);return f!=null&&(d=kp(d,f)),typeof d=="number"&&(d=`${d}px`),d}const{window:r=He,strategy:s="min-width"}=t;function o(u){return r?r.matchMedia(u).matches:!1}const i=u=>sn(()=>`(min-width: ${n(u)})`,t),a=u=>sn(()=>`(max-width: ${n(u)})`,t),l=Object.keys(e).reduce((u,f)=>(Object.defineProperty(u,f,{get:()=>s==="min-width"?i(f):a(f),enumerable:!0,configurable:!0}),u),{});function c(){const u=Object.keys(e).map(f=>[f,i(f)]);return oe(()=>u.filter(([,f])=>f.value).map(([f])=>f))}return Object.assign(l,{greaterOrEqual:i,smallerOrEqual:a,greater(u){return sn(()=>`(min-width: ${n(u,.1)})`,t)},smaller(u){return sn(()=>`(max-width: ${n(u,-.1)})`,t)},between(u,f){return sn(()=>`(min-width: ${n(u)}) and (max-width: ${n(f,-.1)})`,t)},isGreater(u){return o(`(min-width: ${n(u,.1)})`)},isGreaterOrEqual(u){return o(`(min-width: ${n(u)})`)},isSmaller(u){return o(`(max-width: ${n(u,-.1)})`)},isSmallerOrEqual(u){return o(`(max-width: ${n(u)})`)},isInBetween(u,f){return o(`(min-width: ${n(u)}) and (max-width: ${n(f,-.1)})`)},current:c,active(){const u=c();return oe(()=>u.value.length===0?"":u.value.at(-1))}})}function Yi(e,t={}){const{controls:n=!1,navigator:r=bc}=t,s=er(()=>r&&"permissions"in r),o=vn(),i=typeof e=="string"?{name:e}:e,a=vn(),l=()=>{var u,f;a.value=(f=(u=o.value)==null?void 0:u.state)!=null?f:"prompt"};_e(o,"change",l);const c=Rp(async()=>{if(s.value){if(!o.value)try{o.value=await r.permissions.query(i)}catch{o.value=void 0}finally{l()}if(n)return ce(o.value)}});return c(),n?{state:a,isSupported:s,query:c}:a}function j_(e={}){const{navigator:t=bc,read:n=!1,source:r,copiedDuring:s=1500,legacy:o=!1}=e,i=er(()=>t&&"clipboard"in t),a=Yi("clipboard-read"),l=Yi("clipboard-write"),c=oe(()=>i.value||o),u=se(""),f=se(!1),d=xp(()=>f.value=!1,s);function m(){i.value&&O(a.value)?t.clipboard.readText().then(N=>{u.value=N}):u.value=C()}c.value&&n&&_e(["copy","cut"],m);async function E(N=Ve(r)){c.value&&N!=null&&(i.value&&O(l.value)?await t.clipboard.writeText(N):v(N),u.value=N,f.value=!0,d.start())}function v(N){const h=document.createElement("textarea");h.value=N??"",h.style.position="absolute",h.style.opacity="0",document.body.appendChild(h),h.select(),document.execCommand("copy"),h.remove()}function C(){var N,h,y;return(y=(h=(N=document==null?void 0:document.getSelection)==null?void 0:N.call(document))==null?void 0:h.toString())!=null?y:""}function O(N){return N==="granted"||N==="prompt"}return{isSupported:c,text:u,copied:f,copy:E}}function vc(e){return JSON.parse(JSON.stringify(e))}const hr=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{},pr="__vueuse_ssr_handlers__",Up=jp();function jp(){return pr in hr||(hr[pr]=hr[pr]||{}),hr[pr]}function Ec(e,t){return Up[e]||t}function Vp(e){return e==null?"any":e instanceof Set?"set":e instanceof Map?"map":e instanceof Date?"date":typeof e=="boolean"?"boolean":typeof e=="string"?"string":typeof e=="object"?"object":Number.isNaN(e)?"any":"number"}const Wp={boolean:{read:e=>e==="true",write:e=>String(e)},object:{read:e=>JSON.parse(e),write:e=>JSON.stringify(e)},number:{read:e=>Number.parseFloat(e),write:e=>String(e)},any:{read:e=>e,write:e=>String(e)},string:{read:e=>e,write:e=>String(e)},map:{read:e=>new Map(JSON.parse(e)),write:e=>JSON.stringify(Array.from(e.entries()))},set:{read:e=>new Set(JSON.parse(e)),write:e=>JSON.stringify(Array.from(e))},date:{read:e=>new Date(e),write:e=>e.toISOString()}},Xi="vueuse-storage";function wc(e,t,n,r={}){var s;const{flush:o="pre",deep:i=!0,listenToStorageChanges:a=!0,writeDefaults:l=!0,mergeDefaults:c=!1,shallow:u,window:f=He,eventFilter:d,onError:m=H=>{console.error(H)},initOnMounted:E}=r,v=(u?vn:se)(typeof t=="function"?t():t);if(!n)try{n=Ec("getDefaultStorage",()=>{var H;return(H=He)==null?void 0:H.localStorage})()}catch(H){m(H)}if(!n)return v;const C=Ve(t),O=Vp(C),N=(s=r.serializer)!=null?s:Wp[O],{pause:h,resume:y}=Mp(v,()=>T(v.value),{flush:o,deep:i,eventFilter:d});f&&a&&Co(()=>{n instanceof Storage?_e(f,"storage",F):_e(f,Xi,x),E&&F()}),E||F();function S(H,G){if(f){const K={key:e,oldValue:H,newValue:G,storageArea:n};f.dispatchEvent(n instanceof Storage?new StorageEvent("storage",K):new CustomEvent(Xi,{detail:K}))}}function T(H){try{const G=n.getItem(e);if(H==null)S(G,null),n.removeItem(e);else{const K=N.write(H);G!==K&&(n.setItem(e,K),S(G,K))}}catch(G){m(G)}}function A(H){const G=H?H.newValue:n.getItem(e);if(G==null)return l&&C!=null&&n.setItem(e,N.write(C)),C;if(!H&&c){const K=N.read(G);return typeof c=="function"?c(K,C):O==="object"&&!Array.isArray(K)?{...C,...K}:K}else return typeof G!="string"?G:N.read(G)}function F(H){if(!(H&&H.storageArea!==n)){if(H&&H.key==null){v.value=C;return}if(!(H&&H.key!==e)){h();try{(H==null?void 0:H.newValue)!==N.write(v.value)&&(v.value=A(H))}catch(G){m(G)}finally{H?Ln(y):y()}}}}function x(H){F(H.detail)}return v}function Tc(e){return sn("(prefers-color-scheme: dark)",e)}const Kp="*,*::before,*::after{-webkit-transition:none!important;-moz-transition:none!important;-o-transition:none!important;-ms-transition:none!important;transition:none!important}";function Bp(e={}){const{selector:t="html",attribute:n="class",initialValue:r="auto",window:s=He,storage:o,storageKey:i="vueuse-color-scheme",listenToStorageChanges:a=!0,storageRef:l,emitAuto:c,disableTransition:u=!0}=e,f={auto:"",light:"light",dark:"dark",...e.modes||{}},d=Tc({window:s}),m=oe(()=>d.value?"dark":"light"),E=l||(i==null?gc(r):wc(i,r,o,{window:s,listenToStorageChanges:a})),v=oe(()=>E.value==="auto"?m.value:E.value),C=Ec("updateHTMLAttrs",(y,S,T)=>{const A=typeof y=="string"?s==null?void 0:s.document.querySelector(y):je(y);if(!A)return;const F=new Set,x=new Set;let H=null;if(S==="class"){const K=T.split(/\s/g);Object.values(f).flatMap(ee=>(ee||"").split(/\s/g)).filter(Boolean).forEach(ee=>{K.includes(ee)?F.add(ee):x.add(ee)})}else H={key:S,value:T};if(F.size===0&&x.size===0&&H===null)return;let G;u&&(G=s.document.createElement("style"),G.appendChild(document.createTextNode(Kp)),s.document.head.appendChild(G));for(const K of F)A.classList.add(K);for(const K of x)A.classList.remove(K);H&&A.setAttribute(H.key,H.value),u&&(s.getComputedStyle(G).opacity,document.head.removeChild(G))});function O(y){var S;C(t,n,(S=f[y])!=null?S:y)}function N(y){e.onChanged?e.onChanged(y,O):O(y)}Se(v,N,{flush:"post",immediate:!0}),Co(()=>N(v.value));const h=oe({get(){return c?E.value:v.value},set(y){E.value=y}});try{return Object.assign(h,{store:E,system:m,state:v})}catch{return h}}function Gp(e={}){const{valueDark:t="dark",valueLight:n="",window:r=He}=e,s=Bp({...e,onChanged:(a,l)=>{var c;e.onChanged?(c=e.onChanged)==null||c.call(e,a==="dark",l,a):l(a)},modes:{dark:t,light:n}}),o=oe(()=>s.system?s.system.value:Tc({window:r}).value?"dark":"light");return oe({get(){return s.value==="dark"},set(a){const l=a?"dark":"light";o.value===l?s.value="auto":s.value=l}})}function Sc(e){return e}function zp(e,t){return e.value=t}function Yp(e){return e?typeof e=="function"?e:vc:Sc}function Xp(e){return e?typeof e=="function"?e:vc:Sc}function qp(e,t={}){const{clone:n=!1,dump:r=Yp(n),parse:s=Xp(n),setSource:o=zp}=t;function i(){return ua({snapshot:r(e.value),timestamp:Lp()})}const a=se(i()),l=se([]),c=se([]),u=h=>{o(e,s(h.snapshot)),a.value=h},f=()=>{l.value.unshift(a.value),a.value=i(),t.capacity&&l.value.length>t.capacity&&l.value.splice(t.capacity,Number.POSITIVE_INFINITY),c.value.length&&c.value.splice(0,c.value.length)},d=()=>{l.value.splice(0,l.value.length),c.value.splice(0,c.value.length)},m=()=>{const h=l.value.shift();h&&(c.value.unshift(a.value),u(h))},E=()=>{const h=c.value.shift();h&&(l.value.unshift(a.value),u(h))},v=()=>{u(a.value)},C=oe(()=>[a.value,...l.value]),O=oe(()=>l.value.length>0),N=oe(()=>c.value.length>0);return{source:e,undoStack:l,redoStack:c,last:a,history:C,canUndo:O,canRedo:N,clear:d,commit:f,reset:v,undo:m,redo:E}}function V_(e,t={}){const{deep:n=!1,flush:r="pre",eventFilter:s}=t,{eventFilter:o,pause:i,resume:a,isActive:l}=mc(s),{ignoreUpdates:c,ignorePrevAsyncUpdates:u,stop:f}=Fp(e,C,{deep:n,flush:r,eventFilter:o});function d(y,S){u(),c(()=>{y.value=S})}const m=qp(e,{...t,clone:t.clone||n,setSource:d}),{clear:E,commit:v}=m;function C(){u(),v()}function O(y){a(),y&&C()}function N(y){let S=!1;const T=()=>S=!0;c(()=>{y(T)}),S||C()}function h(){f(),E()}return{...m,isTracking:l,pause:i,resume:O,commit:C,batch:N,dispose:h}}function W_(e,t={}){const n=se(!1),r=vn(null);let s=0,o=!0;if(Nn){const i=typeof t=="function"?{onDrop:t}:t,a=l=>{var c,u;const f=Array.from((u=(c=l.dataTransfer)==null?void 0:c.files)!=null?u:[]);return r.value=f.length===0?null:f};_e(e,"dragenter",l=>{var c,u;const f=Array.from(((c=l==null?void 0:l.dataTransfer)==null?void 0:c.items)||[]).map(m=>m.kind==="file"?m.type:null).filter(Sp);if(i.dataTypes&&l.dataTransfer){const m=Be(i.dataTypes);if(o=typeof m=="function"?m(f):m?m.some(E=>f.includes(E)):!0,!o)return}l.preventDefault(),s+=1,n.value=!0;const d=a(l);(u=i.onEnter)==null||u.call(i,d,l)}),_e(e,"dragover",l=>{var c;if(!o)return;l.preventDefault();const u=a(l);(c=i.onOver)==null||c.call(i,u,l)}),_e(e,"dragleave",l=>{var c;if(!o)return;l.preventDefault(),s-=1,s===0&&(n.value=!1);const u=a(l);(c=i.onLeave)==null||c.call(i,u,l)}),_e(e,"drop",l=>{var c;l.preventDefault(),s=0,n.value=!1;const u=a(l);(c=i.onDrop)==null||c.call(i,u,l)})}return{files:r,isOverDropZone:n}}function Jp(e,t,n={}){const{window:r=He,...s}=n;let o;const i=er(()=>r&&"ResizeObserver"in r),a=()=>{o&&(o.disconnect(),o=void 0)},l=oe(()=>{const f=Ve(e);return Array.isArray(f)?f.map(d=>je(d)):[je(f)]}),c=Se(l,f=>{if(a(),i.value&&r){o=new ResizeObserver(t);for(const d of f)d&&o.observe(d,s)}},{immediate:!0,flush:"post"}),u=()=>{a(),c()};return en(u),{isSupported:i,stop:u}}function K_(e,t={width:0,height:0},n={}){const{window:r=He,box:s="content-box"}=n,o=oe(()=>{var f,d;return(d=(f=je(e))==null?void 0:f.namespaceURI)==null?void 0:d.includes("svg")}),i=se(t.width),a=se(t.height),{stop:l}=Jp(e,([f])=>{const d=s==="border-box"?f.borderBoxSize:s==="content-box"?f.contentBoxSize:f.devicePixelContentBoxSize;if(r&&o.value){const m=je(e);if(m){const E=m.getBoundingClientRect();i.value=E.width,a.value=E.height}}else if(d){const m=Array.isArray(d)?d:[d];i.value=m.reduce((E,{inlineSize:v})=>E+v,0),a.value=m.reduce((E,{blockSize:v})=>E+v,0)}else i.value=f.contentRect.width,a.value=f.contentRect.height},n);Co(()=>{const f=je(e);f&&(i.value="offsetWidth"in f?f.offsetWidth:t.width,a.value="offsetHeight"in f?f.offsetHeight:t.height)});const c=Se(()=>je(e),f=>{i.value=f?t.width:0,a.value=f?t.height:0});function u(){l(),c()}return{width:i,height:a,stop:u}}const Qp={multiple:!0,accept:"*",reset:!1,directory:!1};function B_(e={}){const{document:t=yc}=e,n=se(null),{on:r,trigger:s}=Tp();let o;t&&(o=t.createElement("input"),o.type="file",o.onchange=l=>{const c=l.target;n.value=c.files,s(n.value)});const i=()=>{n.value=null,o&&o.value&&(o.value="",s(null))},a=l=>{if(!o)return;const c={...Qp,...e,...l};o.multiple=c.multiple,o.accept=c.accept,o.webkitdirectory=c.directory,Ap(c,"capture")&&(o.capture=c.capture),c.reset&&i(),o.click()};return{files:Cn(n),open:a,reset:i,onChange:r}}const qi=["fullscreenchange","webkitfullscreenchange","webkitendfullscreen","mozfullscreenchange","MSFullscreenChange"];function G_(e,t={}){const{document:n=yc,autoExit:r=!1}=t,s=oe(()=>{var O;return(O=je(e))!=null?O:n==null?void 0:n.querySelector("html")}),o=se(!1),i=oe(()=>["requestFullscreen","webkitRequestFullscreen","webkitEnterFullscreen","webkitEnterFullScreen","webkitRequestFullScreen","mozRequestFullScreen","msRequestFullscreen"].find(O=>n&&O in n||s.value&&O in s.value)),a=oe(()=>["exitFullscreen","webkitExitFullscreen","webkitExitFullScreen","webkitCancelFullScreen","mozCancelFullScreen","msExitFullscreen"].find(O=>n&&O in n||s.value&&O in s.value)),l=oe(()=>["fullScreen","webkitIsFullScreen","webkitDisplayingFullscreen","mozFullScreen","msFullscreenElement"].find(O=>n&&O in n||s.value&&O in s.value)),c=["fullscreenElement","webkitFullscreenElement","mozFullScreenElement","msFullscreenElement"].find(O=>n&&O in n),u=er(()=>s.value&&n&&i.value!==void 0&&a.value!==void 0&&l.value!==void 0),f=()=>c?(n==null?void 0:n[c])===s.value:!1,d=()=>{if(l.value){if(n&&n[l.value]!=null)return n[l.value];{const O=s.value;if((O==null?void 0:O[l.value])!=null)return!!O[l.value]}}return!1};async function m(){if(!(!u.value||!o.value)){if(a.value)if((n==null?void 0:n[a.value])!=null)await n[a.value]();else{const O=s.value;(O==null?void 0:O[a.value])!=null&&await O[a.value]()}o.value=!1}}async function E(){if(!u.value||o.value)return;d()&&await m();const O=s.value;i.value&&(O==null?void 0:O[i.value])!=null&&(await O[i.value](),o.value=!0)}async function v(){await(o.value?m():E())}const C=()=>{const O=d();(!O||O&&f())&&(o.value=O)};return _e(n,qi,C,!1),_e(()=>je(s),qi,C,!1),r&&en(m),{isSupported:u,isFullscreen:o,enter:E,exit:m,toggle:v}}function Zp(e,t,n={}){const{window:r=He}=n;return wc(e,t,r==null?void 0:r.localStorage,n)}const em={ctrl:"control",command:"meta",cmd:"meta",option:"alt",up:"arrowup",down:"arrowdown",left:"arrowleft",right:"arrowright"};function z_(e={}){const{reactive:t=!1,target:n=He,aliasMap:r=em,passive:s=!0,onEventFired:o=Dt}=e,i=yn(new Set),a={toJSON(){return{}},current:i},l=t?yn(a):a,c=new Set,u=new Set;function f(v,C){v in l&&(t?l[v]=C:l[v].value=C)}function d(){i.clear();for(const v of u)f(v,!1)}function m(v,C){var O,N;const h=(O=v.key)==null?void 0:O.toLowerCase(),S=[(N=v.code)==null?void 0:N.toLowerCase(),h].filter(Boolean);h&&(C?i.add(h):i.delete(h));for(const T of S)u.add(T),f(T,C);h==="meta"&&!C?(c.forEach(T=>{i.delete(T),f(T,!1)}),c.clear()):typeof v.getModifierState=="function"&&v.getModifierState("Meta")&&C&&[...i,...S].forEach(T=>c.add(T))}_e(n,"keydown",v=>(m(v,!0),o(v)),{passive:s}),_e(n,"keyup",v=>(m(v,!1),o(v)),{passive:s}),_e("blur",d,{passive:!0}),_e("focus",d,{passive:!0});const E=new Proxy(l,{get(v,C,O){if(typeof C!="string")return Reflect.get(v,C,O);if(C=C.toLowerCase(),C in r&&(C=r[C]),!(C in l))if(/[+_-]/.test(C)){const h=C.split(/[+_-]/g).map(y=>y.trim());l[C]=oe(()=>h.every(y=>Ve(E[y])))}else l[C]=se(!1);const N=Reflect.get(v,C,O);return t?Ve(N):N}});return E}function Y_(e,t){const r=uo(new Map),s=(...u)=>JSON.stringify(u),o=(u,...f)=>(r.set(u,e(...f)),r.get(u)),i=(...u)=>o(s(...u),...u),a=(...u)=>{r.delete(s(...u))},l=()=>{r.clear()},c=(...u)=>{const f=s(...u);return r.has(f)?r.get(f):o(f,...u)};return c.load=i,c.delete=a,c.clear=l,c.generateKey=s,c.cache=r,c}const tm={page:e=>[e.pageX,e.pageY],client:e=>[e.clientX,e.clientY],screen:e=>[e.screenX,e.screenY],movement:e=>e instanceof Touch?null:[e.movementX,e.movementY]};function nm(e={}){const{type:t="page",touch:n=!0,resetOnTouchEnds:r=!1,initialValue:s={x:0,y:0},window:o=He,target:i=o,scroll:a=!0,eventFilter:l}=e;let c=null;const u=se(s.x),f=se(s.y),d=se(null),m=typeof t=="function"?t:tm[t],E=S=>{const T=m(S);c=S,T&&([u.value,f.value]=T,d.value="mouse")},v=S=>{if(S.touches.length>0){const T=m(S.touches[0]);T&&([u.value,f.value]=T,d.value="touch")}},C=()=>{if(!c||!o)return;const S=m(c);c instanceof MouseEvent&&S&&(u.value=S[0]+o.scrollX,f.value=S[1]+o.scrollY)},O=()=>{u.value=s.x,f.value=s.y},N=l?S=>l(()=>E(S),{}):S=>E(S),h=l?S=>l(()=>v(S),{}):S=>v(S),y=l?()=>l(()=>C(),{}):()=>C();if(i){const S={passive:!0};_e(i,["mousemove","dragover"],N,S),n&&t!=="movement"&&(_e(i,["touchstart","touchmove"],h,S),r&&_e(i,"touchend",O,S)),a&&t==="page"&&_e(o,"scroll",y,{passive:!0})}return{x:u,y:f,sourceType:d}}function X_(e,t={}){const{handleOutside:n=!0,window:r=He}=t,s=t.type||"page",{x:o,y:i,sourceType:a}=nm(t),l=se(e??(r==null?void 0:r.document.body)),c=se(0),u=se(0),f=se(0),d=se(0),m=se(0),E=se(0),v=se(!0);let C=()=>{};return r&&(C=Se([l,o,i],()=>{const O=je(l);if(!O||!(O instanceof HTMLElement))return;const{left:N,top:h,width:y,height:S}=O.getBoundingClientRect();f.value=N+(s==="page"?r.pageXOffset:0),d.value=h+(s==="page"?r.pageYOffset:0),m.value=S,E.value=y;const T=o.value-f.value,A=i.value-d.value;v.value=y===0||S===0||T<0||A<0||T>y||A>S,(n||!v.value)&&(c.value=T,u.value=A)},{immediate:!0}),_e(document,"mouseleave",()=>{v.value=!0})),{x:o,y:i,sourceType:a,elementX:c,elementY:u,elementPositionX:f,elementPositionY:d,elementHeight:m,elementWidth:E,isOutside:v,stop:C}}function rm(e={}){const{window:t=He}=e;if(!t)return se(["en"]);const n=t.navigator,r=se(n.languages);return _e(t,"languagechange",()=>{r.value=n.languages}),r}const Oc=Object.fromEntries(Object.entries(Object.assign({"../../locales/de.yml":yp,"../../locales/en.yml":vp,"../../locales/pl.yml":wp})).map(([e,t])=>{const n=e.endsWith(".yaml");return[e.slice(14,n?-5:-4),t.default]})),ns="en",sm=rm(),om=Object.keys(Oc),Cc=e=>om.includes(e),q_=e=>Cc(e)?e:ns,Lc=se(ns);Se(sm,e=>{Lc.value=e.find(Cc)||ns},{immediate:!0});const js=Zp("fast-angle-locale",Lc.value),im=({app:e})=>{const t=lp({legacy:!1,locale:js.value,fallbackLocale:ns,messages:Oc});e.use(t),Se(t.global.locale,n=>{js.value=n})},lm=Object.freeze(Object.defineProperty({__proto__:null,install:im},Symbol.toStringTag,{value:"Module"})),am="modulepreload",cm=function(e){return"/fast-angle/"+e},Ji={},Qt=function(t,n,r){let s=Promise.resolve();if(n&&n.length>0){document.getElementsByTagName("link");const o=document.querySelector("meta[property=csp-nonce]"),i=(o==null?void 0:o.nonce)||(o==null?void 0:o.getAttribute("nonce"));s=Promise.all(n.map(a=>{if(a=cm(a),a in Ji)return;Ji[a]=!0;const l=a.endsWith(".css"),c=l?'[rel="stylesheet"]':"";if(document.querySelector(`link[href="${a}"]${c}`))return;const u=document.createElement("link");if(u.rel=l?"stylesheet":am,l||(u.as="script",u.crossOrigin=""),u.href=a,i&&u.setAttribute("nonce",i),document.head.appendChild(u),l)return new Promise((f,d)=>{u.addEventListener("load",f),u.addEventListener("error",()=>d(new Error(`Unable to preload CSS for ${a}`)))})}))}return s.then(()=>t()).catch(o=>{const i=new Event("vite:preloadError",{cancelable:!0});if(i.payload=o,window.dispatchEvent(i),!i.defaultPrevented)throw o})},um=async({isClient:e})=>{if(!e)return;const{registerSW:t}=await Qt(async()=>{const{registerSW:n}=await import("./virtual_pwa-register-Dy0udGU2.js");return{registerSW:n}},[]);t({immediate:!0})},fm=Object.freeze(Object.defineProperty({__proto__:null,install:um},Symbol.toStringTag,{value:"Module"})),dm=e=>"virtualKeyboard"in e,hm=async({isClient:e})=>{e&&dm(navigator)&&(navigator.virtualKeyboard.overlaysContent=!0)},pm=Object.freeze(Object.defineProperty({__proto__:null,install:hm},Symbol.toStringTag,{value:"Module"}));/*! * vue-router v4.4.3 * (c) 2024 Eduardo San Martin Morote * @license MIT - */const on=typeof document<"u";function pm(e){return e.__esModule||e[Symbol.toStringTag]==="Module"}const fe=Object.assign;function ps(e,t){const n={};for(const r in t){const s=t[r];n[r]=ct(s)?s.map(e):e(s)}return n}const jn=()=>{},ct=Array.isArray,Ac=/#/g,mm=/&/g,gm=/\//g,_m=/=/g,ym=/\?/g,Pc=/\+/g,bm=/%5B/g,vm=/%5D/g,Nc=/%5E/g,Em=/%60/g,Rc=/%7B/g,wm=/%7C/g,kc=/%7D/g,Tm=/%20/g;function Lo(e){return encodeURI(""+e).replace(wm,"|").replace(bm,"[").replace(vm,"]")}function Sm(e){return Lo(e).replace(Rc,"{").replace(kc,"}").replace(Nc,"^")}function Vs(e){return Lo(e).replace(Pc,"%2B").replace(Tm,"+").replace(Ac,"%23").replace(mm,"%26").replace(Em,"`").replace(Rc,"{").replace(kc,"}").replace(Nc,"^")}function Om(e){return Vs(e).replace(_m,"%3D")}function Cm(e){return Lo(e).replace(Ac,"%23").replace(ym,"%3F")}function Lm(e){return e==null?"":Cm(e).replace(gm,"%2F")}function Yn(e){try{return decodeURIComponent(""+e)}catch{}return""+e}const Am=/\/$/,Pm=e=>e.replace(Am,"");function ms(e,t,n="/"){let r,s={},o="",i="";const a=t.indexOf("#");let l=t.indexOf("?");return a=0&&(l=-1),l>-1&&(r=t.slice(0,l),o=t.slice(l+1,a>-1?a:t.length),s=e(o)),a>-1&&(r=r||t.slice(0,a),i=t.slice(a,t.length)),r=Im(r??t,n),{fullPath:r+(o&&"?")+o+i,path:r,query:s,hash:Yn(i)}}function Nm(e,t){const n=t.query?e(t.query):"";return t.path+(n&&"?")+n+(t.hash||"")}function Qi(e,t){return!t||!e.toLowerCase().startsWith(t.toLowerCase())?e:e.slice(t.length)||"/"}function Rm(e,t,n){const r=t.matched.length-1,s=n.matched.length-1;return r>-1&&r===s&&En(t.matched[r],n.matched[s])&&Ic(t.params,n.params)&&e(t.query)===e(n.query)&&t.hash===n.hash}function En(e,t){return(e.aliasOf||e)===(t.aliasOf||t)}function Ic(e,t){if(Object.keys(e).length!==Object.keys(t).length)return!1;for(const n in e)if(!km(e[n],t[n]))return!1;return!0}function km(e,t){return ct(e)?Zi(e,t):ct(t)?Zi(t,e):e===t}function Zi(e,t){return ct(t)?e.length===t.length&&e.every((n,r)=>n===t[r]):e.length===1&&e[0]===t}function Im(e,t){if(e.startsWith("/"))return e;if(!e)return t;const n=t.split("/"),r=e.split("/"),s=r[r.length-1];(s===".."||s===".")&&r.push("");let o=n.length-1,i,a;for(i=0;i1&&o--;else break;return n.slice(0,o).join("/")+"/"+r.slice(i).join("/")}const Lt={path:"/",name:void 0,params:{},query:{},hash:"",fullPath:"/",matched:[],meta:{},redirectedFrom:void 0};var wn;(function(e){e.pop="pop",e.push="push"})(wn||(wn={}));var qt;(function(e){e.back="back",e.forward="forward",e.unknown=""})(qt||(qt={}));const gs="";function Mc(e){if(!e)if(on){const t=document.querySelector("base");e=t&&t.getAttribute("href")||"/",e=e.replace(/^\w+:\/\/[^\/]+/,"")}else e="/";return e[0]!=="/"&&e[0]!=="#"&&(e="/"+e),Pm(e)}const Mm=/^[^#]+#/;function xc(e,t){return e.replace(Mm,"#")+t}function xm(e,t){const n=document.documentElement.getBoundingClientRect(),r=e.getBoundingClientRect();return{behavior:t.behavior,left:r.left-n.left-(t.left||0),top:r.top-n.top-(t.top||0)}}const rs=()=>({left:window.scrollX,top:window.scrollY});function Dm(e){let t;if("el"in e){const n=e.el,r=typeof n=="string"&&n.startsWith("#"),s=typeof n=="string"?r?document.getElementById(n.slice(1)):document.querySelector(n):n;if(!s)return;t=xm(s,e)}else t=e;"scrollBehavior"in document.documentElement.style?window.scrollTo(t):window.scrollTo(t.left!=null?t.left:window.scrollX,t.top!=null?t.top:window.scrollY)}function el(e,t){return(history.state?history.state.position-t:-1)+e}const Ws=new Map;function Fm(e,t){Ws.set(e,t)}function Hm(e){const t=Ws.get(e);return Ws.delete(e),t}let $m=()=>location.protocol+"//"+location.host;function Dc(e,t){const{pathname:n,search:r,hash:s}=t,o=e.indexOf("#");if(o>-1){let a=s.includes(e.slice(o))?e.slice(o).length:1,l=s.slice(a);return l[0]!=="/"&&(l="/"+l),Qi(l,"")}return Qi(n,e)+r+s}function Um(e,t,n,r){let s=[],o=[],i=null;const a=({state:d})=>{const m=Dc(e,location),E=n.value,v=t.value;let C=0;if(d){if(n.value=m,t.value=d,i&&i===E){i=null;return}C=v?d.position-v.position:0}else r(m);s.forEach(O=>{O(n.value,E,{delta:C,type:wn.pop,direction:C?C>0?qt.forward:qt.back:qt.unknown})})};function l(){i=n.value}function c(d){s.push(d);const m=()=>{const E=s.indexOf(d);E>-1&&s.splice(E,1)};return o.push(m),m}function u(){const{history:d}=window;d.state&&d.replaceState(fe({},d.state,{scroll:rs()}),"")}function f(){for(const d of o)d();o=[],window.removeEventListener("popstate",a),window.removeEventListener("beforeunload",u)}return window.addEventListener("popstate",a),window.addEventListener("beforeunload",u,{passive:!0}),{pauseListeners:l,listen:c,destroy:f}}function tl(e,t,n,r=!1,s=!1){return{back:e,current:t,forward:n,replaced:r,position:window.history.length,scroll:s?rs():null}}function jm(e){const{history:t,location:n}=window,r={value:Dc(e,n)},s={value:t.state};s.value||o(r.value,{back:null,current:r.value,forward:null,position:t.length-1,replaced:!0,scroll:null},!0);function o(l,c,u){const f=e.indexOf("#"),d=f>-1?(n.host&&document.querySelector("base")?e:e.slice(f))+l:$m()+e+l;try{t[u?"replaceState":"pushState"](c,"",d),s.value=c}catch(m){console.error(m),n[u?"replace":"assign"](d)}}function i(l,c){const u=fe({},t.state,tl(s.value.back,l,s.value.forward,!0),c,{position:s.value.position});o(l,u,!0),r.value=l}function a(l,c){const u=fe({},s.value,t.state,{forward:l,scroll:rs()});o(u.current,u,!0);const f=fe({},tl(r.value,l,null),{position:u.position+1},c);o(l,f,!1),r.value=l}return{location:r,state:s,push:a,replace:i}}function Vm(e){e=Mc(e);const t=jm(e),n=Um(e,t.state,t.location,t.replace);function r(o,i=!0){i||n.pauseListeners(),history.go(o)}const s=fe({location:"",base:e,go:r,createHref:xc.bind(null,e)},t,n);return Object.defineProperty(s,"location",{enumerable:!0,get:()=>t.location.value}),Object.defineProperty(s,"state",{enumerable:!0,get:()=>t.state.value}),s}function Wm(e=""){let t=[],n=[gs],r=0;e=Mc(e);function s(a){r++,r!==n.length&&n.splice(r),n.push(a)}function o(a,l,{direction:c,delta:u}){const f={direction:c,delta:u,type:wn.pop};for(const d of t)d(a,l,f)}const i={location:gs,state:{},base:e,createHref:xc.bind(null,e),replace(a){n.splice(r--,1),s(a)},push(a,l){s(a)},listen(a){return t.push(a),()=>{const l=t.indexOf(a);l>-1&&t.splice(l,1)}},destroy(){t=[],n=[gs],r=0},go(a,l=!0){const c=this.location,u=a<0?qt.back:qt.forward;r=Math.max(0,Math.min(r+a,n.length-1)),l&&o(this.location,c,{direction:u,delta:a})}};return Object.defineProperty(i,"location",{enumerable:!0,get:()=>n[r]}),i}function Km(e){return typeof e=="string"||e&&typeof e=="object"}function Fc(e){return typeof e=="string"||typeof e=="symbol"}const Hc=Symbol("");var nl;(function(e){e[e.aborted=4]="aborted",e[e.cancelled=8]="cancelled",e[e.duplicated=16]="duplicated"})(nl||(nl={}));function Tn(e,t){return fe(new Error,{type:e,[Hc]:!0},t)}function yt(e,t){return e instanceof Error&&Hc in e&&(t==null||!!(e.type&t))}const rl="[^/]+?",Bm={sensitive:!1,strict:!1,start:!0,end:!0},Gm=/[.+*?^${}()[\]/\\]/g;function zm(e,t){const n=fe({},Bm,t),r=[];let s=n.start?"^":"";const o=[];for(const c of e){const u=c.length?[]:[90];n.strict&&!c.length&&(s+="/");for(let f=0;ft.length?t.length===1&&t[0]===80?1:-1:0}function $c(e,t){let n=0;const r=e.score,s=t.score;for(;n0&&t[t.length-1]<0}const Xm={type:0,value:""},qm=/[a-zA-Z0-9_]/;function Jm(e){if(!e)return[[]];if(e==="/")return[[Xm]];if(!e.startsWith("/"))throw new Error(`Invalid path "${e}"`);function t(m){throw new Error(`ERR (${n})/"${c}": ${m}`)}let n=0,r=n;const s=[];let o;function i(){o&&s.push(o),o=[]}let a=0,l,c="",u="";function f(){c&&(n===0?o.push({type:0,value:c}):n===1||n===2||n===3?(o.length>1&&(l==="*"||l==="+")&&t(`A repeatable param (${c}) must be alone in its segment. eg: '/:ids+.`),o.push({type:1,value:c,regexp:u,repeatable:l==="*"||l==="+",optional:l==="*"||l==="?"})):t("Invalid state to consume buffer"),c="")}function d(){c+=l}for(;a{i(h)}:jn}function i(f){if(Fc(f)){const d=r.get(f);d&&(r.delete(f),n.splice(n.indexOf(d),1),d.children.forEach(i),d.alias.forEach(i))}else{const d=n.indexOf(f);d>-1&&(n.splice(d,1),f.record.name&&r.delete(f.record.name),f.children.forEach(i),f.alias.forEach(i))}}function a(){return n}function l(f){const d=rg(f,n);n.splice(d,0,f),f.record.name&&!il(f)&&r.set(f.record.name,f)}function c(f,d){let m,E={},v,C;if("name"in f&&f.name){if(m=r.get(f.name),!m)throw Tn(1,{location:f});C=m.record.name,E=fe(ol(d.params,m.keys.filter(h=>!h.optional).concat(m.parent?m.parent.keys.filter(h=>h.optional):[]).map(h=>h.name)),f.params&&ol(f.params,m.keys.map(h=>h.name))),v=m.stringify(E)}else if(f.path!=null)v=f.path,m=n.find(h=>h.re.test(v)),m&&(E=m.parse(v),C=m.record.name);else{if(m=d.name?r.get(d.name):n.find(h=>h.re.test(d.path)),!m)throw Tn(1,{location:f,currentLocation:d});C=m.record.name,E=fe({},d.params,f.params),v=m.stringify(E)}const O=[];let N=m;for(;N;)O.unshift(N.record),N=N.parent;return{name:C,path:v,params:E,matched:O,meta:ng(O)}}e.forEach(f=>o(f));function u(){n.length=0,r.clear()}return{addRoute:o,resolve:c,removeRoute:i,clearRoutes:u,getRoutes:a,getRecordMatcher:s}}function ol(e,t){const n={};for(const r of t)r in e&&(n[r]=e[r]);return n}function eg(e){return{path:e.path,redirect:e.redirect,name:e.name,meta:e.meta||{},aliasOf:void 0,beforeEnter:e.beforeEnter,props:tg(e),children:e.children||[],instances:{},leaveGuards:new Set,updateGuards:new Set,enterCallbacks:{},components:"components"in e?e.components||null:e.component&&{default:e.component}}}function tg(e){const t={},n=e.props||!1;if("component"in e)t.default=n;else for(const r in e.components)t[r]=typeof n=="object"?n[r]:n;return t}function il(e){for(;e;){if(e.record.aliasOf)return!0;e=e.parent}return!1}function ng(e){return e.reduce((t,n)=>fe(t,n.meta),{})}function ll(e,t){const n={};for(const r in e)n[r]=r in t?t[r]:e[r];return n}function rg(e,t){let n=0,r=t.length;for(;n!==r;){const o=n+r>>1;$c(e,t[o])<0?r=o:n=o+1}const s=sg(e);return s&&(r=t.lastIndexOf(s,r-1)),r}function sg(e){let t=e;for(;t=t.parent;)if(Uc(t)&&$c(e,t)===0)return t}function Uc({record:e}){return!!(e.name||e.components&&Object.keys(e.components).length||e.redirect)}function og(e){const t={};if(e===""||e==="?")return t;const r=(e[0]==="?"?e.slice(1):e).split("&");for(let s=0;so&&Vs(o)):[r&&Vs(r)]).forEach(o=>{o!==void 0&&(t+=(t.length?"&":"")+n,o!=null&&(t+="="+o))})}return t}function ig(e){const t={};for(const n in e){const r=e[n];r!==void 0&&(t[n]=ct(r)?r.map(s=>s==null?null:""+s):r==null?r:""+r)}return t}const lg=Symbol(""),cl=Symbol(""),ss=Symbol(""),Ao=Symbol(""),Ks=Symbol("");function In(){let e=[];function t(r){return e.push(r),()=>{const s=e.indexOf(r);s>-1&&e.splice(s,1)}}function n(){e=[]}return{add:t,list:()=>e.slice(),reset:n}}function Rt(e,t,n,r,s,o=i=>i()){const i=r&&(r.enterCallbacks[s]=r.enterCallbacks[s]||[]);return()=>new Promise((a,l)=>{const c=d=>{d===!1?l(Tn(4,{from:n,to:t})):d instanceof Error?l(d):Km(d)?l(Tn(2,{from:t,to:d})):(i&&r.enterCallbacks[s]===i&&typeof d=="function"&&i.push(d),a())},u=o(()=>e.call(r&&r.instances[s],t,n,c));let f=Promise.resolve(u);e.length<3&&(f=f.then(c)),f.catch(d=>l(d))})}function _s(e,t,n,r,s=o=>o()){const o=[];for(const i of e)for(const a in i.components){let l=i.components[a];if(!(t!=="beforeRouteEnter"&&!i.instances[a]))if(ag(l)){const u=(l.__vccOpts||l)[t];u&&o.push(Rt(u,n,r,i,a,s))}else{let c=l();o.push(()=>c.then(u=>{if(!u)return Promise.reject(new Error(`Couldn't resolve component "${a}" at "${i.path}"`));const f=pm(u)?u.default:u;i.components[a]=f;const m=(f.__vccOpts||f)[t];return m&&Rt(m,n,r,i,a,s)()}))}}return o}function ag(e){return typeof e=="object"||"displayName"in e||"props"in e||"__vccOpts"in e}function ul(e){const t=Je(ss),n=Je(Ao),r=oe(()=>{const l=Ke(e.to);return t.resolve(l)}),s=oe(()=>{const{matched:l}=r.value,{length:c}=l,u=l[c-1],f=n.matched;if(!u||!f.length)return-1;const d=f.findIndex(En.bind(null,u));if(d>-1)return d;const m=fl(l[c-2]);return c>1&&fl(u)===m&&f[f.length-1].path!==m?f.findIndex(En.bind(null,l[c-2])):d}),o=oe(()=>s.value>-1&&dg(n.params,r.value.params)),i=oe(()=>s.value>-1&&s.value===n.matched.length-1&&Ic(n.params,r.value.params));function a(l={}){return fg(l)?t[Ke(e.replace)?"replace":"push"](Ke(e.to)).catch(jn):Promise.resolve()}return{route:r,href:oe(()=>r.value.href),isActive:o,isExactActive:i,navigate:a}}const cg=Vt({name:"RouterLink",compatConfig:{MODE:3},props:{to:{type:[String,Object],required:!0},replace:Boolean,activeClass:String,exactActiveClass:String,custom:Boolean,ariaCurrentValue:{type:String,default:"page"}},useLink:ul,setup(e,{slots:t}){const n=yn(ul(e)),{options:r}=Je(ss),s=oe(()=>({[dl(e.activeClass,r.linkActiveClass,"router-link-active")]:n.isActive,[dl(e.exactActiveClass,r.linkExactActiveClass,"router-link-exact-active")]:n.isExactActive}));return()=>{const o=t.default&&t.default(n);return e.custom?o:ts("a",{"aria-current":n.isExactActive?e.ariaCurrentValue:null,href:n.href,onClick:n.navigate,class:s.value},o)}}}),ug=cg;function fg(e){if(!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)&&!e.defaultPrevented&&!(e.button!==void 0&&e.button!==0)){if(e.currentTarget&&e.currentTarget.getAttribute){const t=e.currentTarget.getAttribute("target");if(/\b_blank\b/i.test(t))return}return e.preventDefault&&e.preventDefault(),!0}}function dg(e,t){for(const n in t){const r=t[n],s=e[n];if(typeof r=="string"){if(r!==s)return!1}else if(!ct(s)||s.length!==r.length||r.some((o,i)=>o!==s[i]))return!1}return!0}function fl(e){return e?e.aliasOf?e.aliasOf.path:e.path:""}const dl=(e,t,n)=>e??t??n,hg=Vt({name:"RouterView",inheritAttrs:!1,props:{name:{type:String,default:"default"},route:Object},compatConfig:{MODE:3},setup(e,{attrs:t,slots:n}){const r=Je(Ks),s=oe(()=>e.route||r.value),o=Je(cl,0),i=oe(()=>{let c=Ke(o);const{matched:u}=s.value;let f;for(;(f=u[c])&&!f.components;)c++;return c}),a=oe(()=>s.value.matched[i.value]);gr(cl,oe(()=>i.value+1)),gr(lg,a),gr(Ks,s);const l=se();return Se(()=>[l.value,a.value,e.name],([c,u,f],[d,m,E])=>{u&&(u.instances[f]=c,m&&m!==u&&c&&c===d&&(u.leaveGuards.size||(u.leaveGuards=m.leaveGuards),u.updateGuards.size||(u.updateGuards=m.updateGuards))),c&&u&&(!m||!En(u,m)||!d)&&(u.enterCallbacks[f]||[]).forEach(v=>v(c))},{flush:"post"}),()=>{const c=s.value,u=e.name,f=a.value,d=f&&f.components[u];if(!d)return hl(n.default,{Component:d,route:c});const m=f.props[u],E=m?m===!0?c.params:typeof m=="function"?m(c):m:null,C=ts(d,fe({},E,t,{onVnodeUnmounted:O=>{O.component.isUnmounted&&(f.instances[u]=null)},ref:l}));return hl(n.default,{Component:C,route:c})||C}}});function hl(e,t){if(!e)return null;const n=e(t);return n.length===1?n[0]:n}const pg=hg;function mg(e){const t=Zm(e.routes,e),n=e.parseQuery||og,r=e.stringifyQuery||al,s=e.history,o=In(),i=In(),a=In(),l=Yr(Lt);let c=Lt;on&&e.scrollBehavior&&"scrollRestoration"in history&&(history.scrollRestoration="manual");const u=ps.bind(null,M=>""+M),f=ps.bind(null,Lm),d=ps.bind(null,Yn);function m(M,K){let W,G;return Fc(M)?(W=t.getRecordMatcher(M),G=K):G=M,t.addRoute(G,W)}function E(M){const K=t.getRecordMatcher(M);K&&t.removeRoute(K)}function v(){return t.getRoutes().map(M=>M.record)}function C(M){return!!t.getRecordMatcher(M)}function O(M,K){if(K=fe({},K||l.value),typeof M=="string"){const b=ms(n,M,K.path),P=t.resolve({path:b.path},K),F=s.createHref(b.fullPath);return fe(b,P,{params:d(P.params),hash:Yn(b.hash),redirectedFrom:void 0,href:F})}let W;if(M.path!=null)W=fe({},M,{path:ms(n,M.path,K.path).path});else{const b=fe({},M.params);for(const P in b)b[P]==null&&delete b[P];W=fe({},M,{params:f(b)}),K.params=f(K.params)}const G=t.resolve(W,K),ie=M.hash||"";G.params=u(d(G.params));const de=Nm(r,fe({},M,{hash:Sm(ie),path:G.path})),_=s.createHref(de);return fe({fullPath:de,hash:ie,query:r===al?ig(M.query):M.query||{}},G,{redirectedFrom:void 0,href:_})}function N(M){return typeof M=="string"?ms(n,M,l.value.path):fe({},M)}function h(M,K){if(c!==M)return Tn(8,{from:K,to:M})}function y(M){return A(M)}function S(M){return y(fe(N(M),{replace:!0}))}function T(M){const K=M.matched[M.matched.length-1];if(K&&K.redirect){const{redirect:W}=K;let G=typeof W=="function"?W(M):W;return typeof G=="string"&&(G=G.includes("?")||G.includes("#")?G=N(G):{path:G},G.params={}),fe({query:M.query,hash:M.hash,params:G.path!=null?{}:M.params},G)}}function A(M,K){const W=c=O(M),G=l.value,ie=M.state,de=M.force,_=M.replace===!0,b=T(W);if(b)return A(fe(N(b),{state:typeof b=="object"?fe({},ie,b.state):ie,force:de,replace:_}),K||W);const P=W;P.redirectedFrom=K;let F;return!de&&Rm(r,G,W)&&(F=Tn(16,{to:P,from:G}),we(G,G,!0,!1)),(F?Promise.resolve(F):H(P,G)).catch(k=>yt(k)?yt(k,2)?k:Qe(k):X(k,P,G)).then(k=>{if(k){if(yt(k,2))return A(fe({replace:_},N(k.to),{state:typeof k.to=="object"?fe({},ie,k.to.state):ie,force:de}),K||P)}else k=B(P,G,!0,_,ie);return Y(P,G,k),k})}function D(M,K){const W=h(M,K);return W?Promise.reject(W):Promise.resolve()}function x(M){const K=st.values().next().value;return K&&typeof K.runWithContext=="function"?K.runWithContext(M):M()}function H(M,K){let W;const[G,ie,de]=gg(M,K);W=_s(G.reverse(),"beforeRouteLeave",M,K);for(const b of G)b.leaveGuards.forEach(P=>{W.push(Rt(P,M,K))});const _=D.bind(null,M,K);return W.push(_),ke(W).then(()=>{W=[];for(const b of o.list())W.push(Rt(b,M,K));return W.push(_),ke(W)}).then(()=>{W=_s(ie,"beforeRouteUpdate",M,K);for(const b of ie)b.updateGuards.forEach(P=>{W.push(Rt(P,M,K))});return W.push(_),ke(W)}).then(()=>{W=[];for(const b of de)if(b.beforeEnter)if(ct(b.beforeEnter))for(const P of b.beforeEnter)W.push(Rt(P,M,K));else W.push(Rt(b.beforeEnter,M,K));return W.push(_),ke(W)}).then(()=>(M.matched.forEach(b=>b.enterCallbacks={}),W=_s(de,"beforeRouteEnter",M,K,x),W.push(_),ke(W))).then(()=>{W=[];for(const b of i.list())W.push(Rt(b,M,K));return W.push(_),ke(W)}).catch(b=>yt(b,8)?b:Promise.reject(b))}function Y(M,K,W){a.list().forEach(G=>x(()=>G(M,K,W)))}function B(M,K,W,G,ie){const de=h(M,K);if(de)return de;const _=K===Lt,b=on?history.state:{};W&&(G||_?s.replace(M.fullPath,fe({scroll:_&&b&&b.scroll},ie)):s.push(M.fullPath,ie)),l.value=M,we(M,K,W,_),Qe()}let re;function Le(){re||(re=s.listen((M,K,W)=>{if(!St.listening)return;const G=O(M),ie=T(G);if(ie){A(fe(ie,{replace:!0}),G).catch(jn);return}c=G;const de=l.value;on&&Fm(el(de.fullPath,W.delta),rs()),H(G,de).catch(_=>yt(_,12)?_:yt(_,2)?(A(_.to,G).then(b=>{yt(b,20)&&!W.delta&&W.type===wn.pop&&s.go(-1,!1)}).catch(jn),Promise.reject()):(W.delta&&s.go(-W.delta,!1),X(_,G,de))).then(_=>{_=_||B(G,de,!1),_&&(W.delta&&!yt(_,8)?s.go(-W.delta,!1):W.type===wn.pop&&yt(_,20)&&s.go(-1,!1)),Y(G,de,_)}).catch(jn)}))}let me=In(),q=In(),te;function X(M,K,W){Qe(M);const G=q.list();return G.length?G.forEach(ie=>ie(M,K,W)):console.error(M),Promise.reject(M)}function ye(){return te&&l.value!==Lt?Promise.resolve():new Promise((M,K)=>{me.add([M,K])})}function Qe(M){return te||(te=!M,Le(),me.list().forEach(([K,W])=>M?W(M):K()),me.reset()),M}function we(M,K,W,G){const{scrollBehavior:ie}=e;if(!on||!ie)return Promise.resolve();const de=!W&&Hm(el(M.fullPath,0))||(G||!W)&&history.state&&history.state.scroll||null;return Cn().then(()=>ie(M,K,de)).then(_=>_&&Dm(_)).catch(_=>X(_,M,K))}const Te=M=>s.go(M);let ut;const st=new Set,St={currentRoute:l,listening:!0,addRoute:m,removeRoute:E,clearRoutes:t.clearRoutes,hasRoute:C,getRoutes:v,resolve:O,options:e,push:y,replace:S,go:Te,back:()=>Te(-1),forward:()=>Te(1),beforeEach:o.add,beforeResolve:i.add,afterEach:a.add,onError:q.add,isReady:ye,install(M){const K=this;M.component("RouterLink",ug),M.component("RouterView",pg),M.config.globalProperties.$router=K,Object.defineProperty(M.config.globalProperties,"$route",{enumerable:!0,get:()=>Ke(l)}),on&&!ut&&l.value===Lt&&(ut=!0,y(s.location).catch(ie=>{}));const W={};for(const ie in Lt)Object.defineProperty(W,ie,{get:()=>l.value[ie],enumerable:!0});M.provide(ss,K),M.provide(Ao,uo(W)),M.provide(Ks,l);const G=M.unmount;st.add(M),M.unmount=function(){st.delete(M),st.size<1&&(c=Lt,re&&re(),re=null,l.value=Lt,ut=!1,te=!1),G()}}};function ke(M){return M.reduce((K,W)=>K.then(()=>x(W)),Promise.resolve())}return St}function gg(e,t){const n=[],r=[],s=[],o=Math.max(t.matched.length,e.matched.length);for(let i=0;iEn(c,a))?r.push(a):n.push(a));const l=e.matched[i];l&&(t.matched.find(c=>En(c,l))||s.push(l))}return[n,r,s]}function _g(){return Je(ss)}function q_(e){return Je(Ao)}function Bs(e,t={},n){for(const r in e){const s=e[r],o=n?`${n}:${r}`:r;typeof s=="object"&&s!==null?Bs(s,t,o):typeof s=="function"&&(t[o]=s)}return t}const yg={run:e=>e()},bg=()=>yg,jc=typeof console.createTask<"u"?console.createTask:bg;function vg(e,t){const n=t.shift(),r=jc(n);return e.reduce((s,o)=>s.then(()=>r.run(()=>o(...t))),Promise.resolve())}function Eg(e,t){const n=t.shift(),r=jc(n);return Promise.all(e.map(s=>r.run(()=>s(...t))))}function ys(e,t){for(const n of[...e])n(t)}class wg{constructor(){this._hooks={},this._before=void 0,this._after=void 0,this._deprecatedMessages=void 0,this._deprecatedHooks={},this.hook=this.hook.bind(this),this.callHook=this.callHook.bind(this),this.callHookWith=this.callHookWith.bind(this)}hook(t,n,r={}){if(!t||typeof n!="function")return()=>{};const s=t;let o;for(;this._deprecatedHooks[t];)o=this._deprecatedHooks[t],t=o.to;if(o&&!r.allowDeprecated){let i=o.message;i||(i=`${s} hook has been deprecated`+(o.to?`, please use ${o.to}`:"")),this._deprecatedMessages||(this._deprecatedMessages=new Set),this._deprecatedMessages.has(i)||(console.warn(i),this._deprecatedMessages.add(i))}if(!n.name)try{Object.defineProperty(n,"name",{get:()=>"_"+t.replace(/\W+/g,"_")+"_hook_cb",configurable:!0})}catch{}return this._hooks[t]=this._hooks[t]||[],this._hooks[t].push(n),()=>{n&&(this.removeHook(t,n),n=void 0)}}hookOnce(t,n){let r,s=(...o)=>(typeof r=="function"&&r(),r=void 0,s=void 0,n(...o));return r=this.hook(t,s),r}removeHook(t,n){if(this._hooks[t]){const r=this._hooks[t].indexOf(n);r!==-1&&this._hooks[t].splice(r,1),this._hooks[t].length===0&&delete this._hooks[t]}}deprecateHook(t,n){this._deprecatedHooks[t]=typeof n=="string"?{to:n}:n;const r=this._hooks[t]||[];delete this._hooks[t];for(const s of r)this.hook(t,s)}deprecateHooks(t){Object.assign(this._deprecatedHooks,t);for(const n in t)this.deprecateHook(n,t[n])}addHooks(t){const n=Bs(t),r=Object.keys(n).map(s=>this.hook(s,n[s]));return()=>{for(const s of r.splice(0,r.length))s()}}removeHooks(t){const n=Bs(t);for(const r in n)this.removeHook(r,n[r])}removeAllHooks(){for(const t in this._hooks)delete this._hooks[t]}callHook(t,...n){return n.unshift(t),this.callHookWith(vg,t,...n)}callHookParallel(t,...n){return n.unshift(t),this.callHookWith(Eg,t,...n)}callHookWith(t,n,...r){const s=this._before||this._after?{name:n,args:r,context:{}}:void 0;this._before&&ys(this._before,s);const o=t(n in this._hooks?[...this._hooks[n]]:[],r);return o instanceof Promise?o.finally(()=>{this._after&&s&&ys(this._after,s)}):(this._after&&s&&ys(this._after,s),o)}beforeEach(t){return this._before=this._before||[],this._before.push(t),()=>{if(this._before!==void 0){const n=this._before.indexOf(t);n!==-1&&this._before.splice(n,1)}}}afterEach(t){return this._after=this._after||[],this._after.push(t),()=>{if(this._after!==void 0){const n=this._after.indexOf(t);n!==-1&&this._after.splice(n,1)}}}}function Tg(){return new wg}function Sg(e){return Array.isArray(e)?e:[e]}const Og=["title","titleTemplate","script","style","noscript"],br=["base","meta","link","style","script","noscript"],Cg=["title","titleTemplate","templateParams","base","htmlAttrs","bodyAttrs","meta","link","style","script","noscript"],Lg=["base","title","titleTemplate","bodyAttrs","htmlAttrs","templateParams"],Vc=["tagPosition","tagPriority","tagDuplicateStrategy","children","innerHTML","textContent","processTemplateParams"],Ag=typeof window<"u";function Po(e){let t=9;for(let n=0;n>>9)+65536).toString(16).substring(1,8).toLowerCase()}function pl(e){return e._h||Po(e._d?e._d:`${e.tag}:${e.textContent||e.innerHTML||""}:${Object.entries(e.props).map(([t,n])=>`${t}:${String(n)}`).join(",")}`)}function Wc(e,t){const{props:n,tag:r}=e;if(Lg.includes(r))return r;if(r==="link"&&n.rel==="canonical")return"canonical";if(n.charset)return"charset";const s=["id"];r==="meta"&&s.push("name","property","http-equiv");for(const o of s)if(typeof n[o]<"u"){const i=String(n[o]);return`${r}:${o}:${i}`}return!1}function ml(e,t){return e==null?t||null:typeof e=="function"?e(t):e}async function Pg(e,t,n){const r={tag:e,props:await Kc(typeof t=="object"&&typeof t!="function"&&!(t instanceof Promise)?{...t}:{[["script","noscript","style"].includes(e)?"innerHTML":"textContent"]:t},["templateParams","titleTemplate"].includes(e))};return Vc.forEach(s=>{const o=typeof r.props[s]<"u"?r.props[s]:n[s];typeof o<"u"&&((!["innerHTML","textContent","children"].includes(s)||Og.includes(r.tag))&&(r[s==="children"?"innerHTML":s]=o),delete r.props[s])}),r.props.body&&(r.tagPosition="bodyClose",delete r.props.body),r.tag==="script"&&typeof r.innerHTML=="object"&&(r.innerHTML=JSON.stringify(r.innerHTML),r.props.type=r.props.type||"application/json"),Array.isArray(r.props.content)?r.props.content.map(s=>({...r,props:{...r.props,content:s}})):r}function Ng(e,t){var r;const n=e==="class"?" ":";";return typeof t=="object"&&!Array.isArray(t)&&(t=Object.entries(t).filter(([,s])=>s).map(([s,o])=>e==="style"?`${s}:${o}`:s)),(r=String(Array.isArray(t)?t.join(n):t))==null?void 0:r.split(n).filter(s=>s.trim()).filter(Boolean).join(n)}async function Kc(e,t){for(const n of Object.keys(e)){if(["class","style"].includes(n)){e[n]=Ng(n,e[n]);continue}if(e[n]instanceof Promise&&(e[n]=await e[n]),!t&&!Vc.includes(n)){const r=String(e[n]),s=n.startsWith("data-");r==="true"||r===""?e[n]=s?"true":!0:e[n]||(s&&r==="false"?e[n]="false":delete e[n])}}return e}const Rg=10;async function kg(e){const t=[];return Object.entries(e.resolvedInput).filter(([n,r])=>typeof r<"u"&&Cg.includes(n)).forEach(([n,r])=>{const s=Sg(r);t.push(...s.map(o=>Pg(n,o,e)).flat())}),(await Promise.all(t)).flat().filter(Boolean).map((n,r)=>(n._e=e._i,e.mode&&(n._m=e.mode),n._p=(e._i<l&&l[c]||void 0,t):a=t[i],typeof a<"u"?(a||"").replace(/"/g,'\\"'):!1}let s=e;try{s=decodeURI(e)}catch{}return(s.match(/%(\w+\.+\w+)|%(\w+)/g)||[]).sort().reverse().forEach(i=>{const a=r(i.slice(1));typeof a=="string"&&(e=e.replace(new RegExp(`\\${i}(\\W|$)`,"g"),(l,c)=>`${a}${c}`).trim())}),e.includes(At)&&(e.endsWith(At)&&(e=e.slice(0,-At.length).trim()),e.startsWith(At)&&(e=e.slice(At.length).trim()),e=e.replace(new RegExp(`\\${At}\\s*\\${At}`,"g"),At),e=vr(e,{separator:n},n)),e}async function Mg(e,t={}){var u;const n=t.document||e.resolvedOptions.document;if(!n||!e.dirty)return;const r={shouldRender:!0,tags:[]};if(await e.hooks.callHook("dom:beforeRender",r),!r.shouldRender)return;const s=(await e.resolveTags()).map(f=>({tag:f,id:br.includes(f.tag)?pl(f):f.tag,shouldRender:!0}));let o=e._dom;if(!o){o={elMap:{htmlAttrs:n.documentElement,bodyAttrs:n.body}};for(const f of["body","head"]){const d=(u=n[f])==null?void 0:u.children,m=[];for(const E of[...d].filter(v=>br.includes(v.tagName.toLowerCase()))){const v={tag:E.tagName.toLowerCase(),props:await Kc(E.getAttributeNames().reduce((N,h)=>({...N,[h]:E.getAttribute(h)}),{})),innerHTML:E.innerHTML};let C=1,O=Wc(v);for(;O&&m.find(N=>N._d===O);)O=`${O}:${C++}`;v._d=O||void 0,m.push(v),o.elMap[E.getAttribute("data-hid")||pl(v)]=E}}}o.pendingSideEffects={...o.sideEffects||{}},o.sideEffects={};function i(f,d,m){const E=`${f}:${d}`;o.sideEffects[E]=m,delete o.pendingSideEffects[E]}function a({id:f,$el:d,tag:m}){const E=m.tag.endsWith("Attrs");o.elMap[f]=d,E||(["textContent","innerHTML"].forEach(v=>{m[v]&&m[v]!==d[v]&&(d[v]=m[v])}),i(f,"el",()=>{var v;(v=o.elMap[f])==null||v.remove(),delete o.elMap[f]}));for(const[v,C]of Object.entries(m._eventHandlers||{}))d.getAttribute(`data-${v}`)!==""&&((m.tag==="bodyAttrs"?n.defaultView:d).addEventListener(v.replace("on",""),C.bind(d)),d.setAttribute(`data-${v}`,""));Object.entries(m.props).forEach(([v,C])=>{const O=`attr:${v}`;if(v==="class")for(const N of(C||"").split(" ").filter(Boolean))E&&i(f,`${O}:${N}`,()=>d.classList.remove(N)),!d.classList.contains(N)&&d.classList.add(N);else if(v==="style")for(const N of(C||"").split(";").filter(Boolean)){const[h,...y]=N.split(":").map(S=>S.trim());i(f,`${O}:${h}`,()=>{d.style.removeProperty(h)}),d.style.setProperty(h,y.join(":"))}else d.getAttribute(v)!==C&&d.setAttribute(v,C===!0?"":String(C)),E&&i(f,O,()=>d.removeAttribute(v))})}const l=[],c={bodyClose:void 0,bodyOpen:void 0,head:void 0};for(const f of s){const{tag:d,shouldRender:m,id:E}=f;if(m){if(d.tag==="title"){n.title=d.textContent;continue}f.$el=f.$el||o.elMap[E],f.$el?a(f):br.includes(d.tag)&&l.push(f)}}for(const f of l){const d=f.tag.tagPosition||"head";f.$el=n.createElement(f.tag.tag),a(f),c[d]=c[d]||n.createDocumentFragment(),c[d].appendChild(f.$el)}for(const f of s)await e.hooks.callHook("dom:renderTag",f,n,i);c.head&&n.head.appendChild(c.head),c.bodyOpen&&n.body.insertBefore(c.bodyOpen,n.body.firstChild),c.bodyClose&&n.body.appendChild(c.bodyClose),Object.values(o.pendingSideEffects).forEach(f=>f()),e._dom=o,e.dirty=!1,await e.hooks.callHook("dom:rendered",{renders:s})}async function xg(e,t={}){const n=t.delayFn||(r=>setTimeout(r,10));return e._domUpdatePromise=e._domUpdatePromise||new Promise(r=>n(async()=>{await Mg(e,t),delete e._domUpdatePromise,r()}))}function Dg(e){return t=>{var r,s;const n=((s=(r=t.resolvedOptions.document)==null?void 0:r.head.querySelector('script[id="unhead:payload"]'))==null?void 0:s.innerHTML)||!1;return n&&t.push(JSON.parse(n)),{mode:"client",hooks:{"entries:updated":function(o){xg(o,e)}}}}}const Fg=["templateParams","htmlAttrs","bodyAttrs"],Hg={hooks:{"tag:normalise":function({tag:e}){["hid","vmid","key"].forEach(r=>{e.props[r]&&(e.key=e.props[r],delete e.props[r])});const n=Wc(e)||(e.key?`${e.tag}:${e.key}`:!1);n&&(e._d=n)},"tags:resolve":function(e){const t={};e.tags.forEach(r=>{const s=(r.key?`${r.tag}:${r.key}`:r._d)||r._p,o=t[s];if(o){let a=r==null?void 0:r.tagDuplicateStrategy;if(!a&&Fg.includes(r.tag)&&(a="merge"),a==="merge"){const l=o.props;["class","style"].forEach(c=>{l[c]&&(r.props[c]?(c==="style"&&!l[c].endsWith(";")&&(l[c]+=";"),r.props[c]=`${l[c]} ${r.props[c]}`):r.props[c]=l[c])}),t[s].props={...l,...r.props};return}else if(r._e===o._e){o._duped=o._duped||[],r._d=`${o._d}:${o._duped.length+1}`,o._duped.push(r);return}else if($r(r)>$r(o))return}const i=Object.keys(r.props).length+(r.innerHTML?1:0)+(r.textContent?1:0);if(br.includes(r.tag)&&i===0){delete t[s];return}t[s]=r});const n=[];Object.values(t).forEach(r=>{const s=r._duped;delete r._duped,n.push(r),s&&n.push(...s)}),e.tags=n,e.tags=e.tags.filter(r=>!(r.tag==="meta"&&(r.props.name||r.props.property)&&!r.props.content))}}},$g={mode:"server",hooks:{"tags:resolve":function(e){const t={};e.tags.filter(n=>["titleTemplate","templateParams","title"].includes(n.tag)&&n._m==="server").forEach(n=>{t[n.tag]=n.tag.startsWith("title")?n.textContent:n.props}),Object.keys(t).length&&e.tags.push({tag:"script",innerHTML:JSON.stringify(t),props:{id:"unhead:payload",type:"application/json"}})}}},Ug=["script","link","bodyAttrs"],jg=e=>({hooks:{"tags:resolve":function(t){for(const n of t.tags.filter(r=>Ug.includes(r.tag)))Object.entries(n.props).forEach(([r,s])=>{r.startsWith("on")&&typeof s=="function"&&(e.ssr&&yl.includes(r)?n.props[r]=`this.dataset.${r}fired = true`:delete n.props[r],n._eventHandlers=n._eventHandlers||{},n._eventHandlers[r]=s)}),e.ssr&&n._eventHandlers&&(n.props.src||n.props.href)&&(n.key=n.key||Po(n.props.src||n.props.href))},"dom:renderTag":function({$el:t,tag:n}){var r,s;for(const o of Object.keys((t==null?void 0:t.dataset)||{}).filter(i=>yl.some(a=>`${a}fired`===i))){const i=o.replace("fired","");(s=(r=n._eventHandlers)==null?void 0:r[i])==null||s.call(t,new Event(i.replace("on","")))}}}}),Vg=["link","style","script","noscript"],Wg={hooks:{"tag:normalise":({tag:e})=>{e.key&&Vg.includes(e.tag)&&(e.props["data-hid"]=e._h=Po(e.key))}}},Kg={hooks:{"tags:resolve":e=>{const t=n=>{var r;return(r=e.tags.find(s=>s._d===n))==null?void 0:r._p};for(const{prefix:n,offset:r}of Ig)for(const s of e.tags.filter(o=>typeof o.tagPriority=="string"&&o.tagPriority.startsWith(n))){const o=t(s.tagPriority.replace(n,""));typeof o<"u"&&(s._p=o+r)}e.tags.sort((n,r)=>n._p-r._p).sort((n,r)=>$r(n)-$r(r))}}},Bg={meta:"content",link:"href",htmlAttrs:"lang"},Gg=e=>({hooks:{"tags:resolve":t=>{var a;const{tags:n}=t,r=(a=n.find(l=>l.tag==="title"))==null?void 0:a.textContent,s=n.findIndex(l=>l.tag==="templateParams"),o=s!==-1?n[s].props:{},i=o.separator||"|";delete o.separator,o.pageTitle=vr(o.pageTitle||r||"",o,i);for(const l of n.filter(c=>c.processTemplateParams!==!1)){const c=Bg[l.tag];c&&typeof l.props[c]=="string"?l.props[c]=vr(l.props[c],o,i):(l.processTemplateParams===!0||["titleTemplate","title"].includes(l.tag))&&["innerHTML","textContent"].forEach(u=>{typeof l[u]=="string"&&(l[u]=vr(l[u],o,i))})}e._templateParams=o,e._separator=i,t.tags=n.filter(l=>l.tag!=="templateParams")}}}),zg={hooks:{"tags:resolve":e=>{const{tags:t}=e;let n=t.findIndex(s=>s.tag==="titleTemplate");const r=t.findIndex(s=>s.tag==="title");if(r!==-1&&n!==-1){const s=ml(t[n].textContent,t[r].textContent);s!==null?t[r].textContent=s||t[r].textContent:delete t[r]}else if(n!==-1){const s=ml(t[n].textContent);s!==null&&(t[n].textContent=s,t[n].tag="title",n=-1)}n!==-1&&delete t[n],e.tags=t.filter(Boolean)}}},Yg={hooks:{"tags:afterResolve":function(e){for(const t of e.tags)typeof t.innerHTML=="string"&&(t.innerHTML&&["application/ld+json","application/json"].includes(t.props.type)?t.innerHTML=t.innerHTML.replace(/{a.dirty=!0,t.callHook("entries:updated",a)};let s=0,o=[];const i=[],a={plugins:i,dirty:!1,resolvedOptions:e,hooks:t,headEntries(){return o},use(l){const c=typeof l=="function"?l(a):l;(!c.key||!i.some(u=>u.key===c.key))&&(i.push(c),bl(c.mode,n)&&t.addHooks(c.hooks||{}))},push(l,c){c==null||delete c.head;const u={_i:s++,input:l,...c};return bl(u.mode,n)&&(o.push(u),r()),{dispose(){o=o.filter(f=>f._i!==u._i),t.callHook("entries:updated",a),r()},patch(f){o=o.map(d=>(d._i===u._i&&(d.input=u.input=f),d)),r()}}},async resolveTags(){const l={tags:[],entries:[...o]};await t.callHook("entries:resolve",l);for(const c of l.entries){const u=c.resolvedInput||c.input;if(c.resolvedInput=await(c.transform?c.transform(u):u),c.resolvedInput)for(const f of await kg(c)){const d={tag:f,entry:c,resolvedOptions:a.resolvedOptions};await t.callHook("tag:normalise",d),l.tags.push(d.tag)}}return await t.callHook("tags:beforeResolve",l),await t.callHook("tags:resolve",l),await t.callHook("tags:afterResolve",l),l.tags},ssr:n};return[Hg,$g,jg,Wg,Kg,Gg,zg,Yg,...(e==null?void 0:e.plugins)||[]].forEach(l=>a.use(l)),a.hooks.callHook("init",a),a}const Jg=tc.startsWith("3");function Qg(e){return typeof e=="function"?e():Ke(e)}function Gs(e,t=""){if(e instanceof Promise)return e;const n=Qg(e);return!e||!n?n:Array.isArray(n)?n.map(r=>Gs(r,t)):typeof n=="object"?Object.fromEntries(Object.entries(n).map(([r,s])=>r==="titleTemplate"||r.startsWith("on")?[r,Ke(s)]:[r,Gs(s,r)])):n}const Zg={hooks:{"entries:resolve":function(e){for(const t of e.entries)t.resolvedInput=Gs(t.input)}}},e_="usehead";function t_(e){return{install(n){Jg&&(n.config.globalProperties.$unhead=e,n.config.globalProperties.$head=e,n.provide(e_,e))}}.install}function n_(e={}){e.domDelayFn=e.domDelayFn||(n=>Cn(()=>setTimeout(()=>n(),0)));const t=Xg(e);return t.use(Zg),t.install=t_(t),t}function r_(e){try{return JSON.parse(e||"{}")}catch(t){return console.error("[SSG] On state deserialization -",t,e),{}}}function s_(e){return document.readyState==="loading"?new Promise(t=>{document.addEventListener("DOMContentLoaded",()=>t(e))}):Promise.resolve(e)}const o_=Vt({setup(e,{slots:t}){const n=se(!1);return Ln(()=>n.value=!0),()=>n.value?t.default&&t.default({}):t.placeholder&&t.placeholder({})}});function i_(e,t,n,r={}){const{transformState:s,registerComponents:o=!0,useHead:i=!0,rootContainer:a="#app"}=r,l=typeof window<"u";async function c(u=!1,f){const d=u?Wh(e):Kh(e);let m;i&&(m=n_(),d.use(m));const E=mg({history:u?Vm(t.base):Wm(t.base),...t}),{routes:v}=t;o&&d.component("ClientOnly",o_);const C=[],h={app:d,head:m,isClient:l,router:E,routes:v,onSSRAppRendered:u?()=>{}:A=>C.push(A),triggerOnSSRAppRendered:()=>Promise.all(C.map(A=>A())),initialState:{},transformState:s,routePath:f};u&&(await s_(),h.initialState=(s==null?void 0:s(window.__INITIAL_STATE__||{}))||r_(window.__INITIAL_STATE__)),await(n==null?void 0:n(h)),d.use(E);let y,S=!0;if(E.beforeEach((A,D,x)=>{(S||y&&y===A.path)&&(S=!1,y=A.path,A.meta.state=h.initialState),x()}),!u){const A=h.routePath??"/";E.push(A),await E.isReady(),h.initialState=E.currentRoute.value.meta.state||{}}const T=h.initialState;return{...h,initialState:T}}return l&&(async()=>{const{app:u,router:f}=await c(!0);await f.isReady(),u.mount(a,!0)})(),c}const l_=e=>{const t={};Object.entries(Object.assign({"/src/layouts/centered.vue":()=>Qt(()=>import("./centered-D9JAbCqt.js"),__vite__mapDeps([0,1,2,3,4,5,6,7])),"/src/layouts/default.vue":()=>Qt(()=>import("./default-BD_Mt-QL.js"),__vite__mapDeps([1,2,3,4,5,6]))})).forEach(([s,o])=>{let i=s.replace("/src/layouts/","").replace(".vue","");t[i]=o});function r(s,o=!0){return s.map(i=>{var a,l,c,u,f,d;if(((a=i.children)==null?void 0:a.length)>0&&(i.children=r(i.children,!1)),o){if(!i.component&&((l=i.children)==null?void 0:l.find(E=>{var v;return(E.path===""||E.path==="/")&&((v=E.meta)==null?void 0:v.isLayout)})))return i;if(((c=i.meta)==null?void 0:c.layout)!==!1)return{path:i.path,component:t[((u=i.meta)==null?void 0:u.layout)||"default"],children:i.path==="/"?[i]:[{...i,path:""}],meta:{isLayout:!0}}}return(f=i.meta)!=null&&f.layout?{path:i.path,component:t[(d=i.meta)==null?void 0:d.layout],children:[{...i,path:""}],meta:{isLayout:!0}}:i})}return r(e)};let a_;function c_(){return a_}function u_(e){return typeof e=="function"?e():Ke(e)}function zs(e,t=""){if(e instanceof Promise)return e;const n=u_(e);return!e||!n?n:Array.isArray(n)?n.map(r=>zs(r,t)):typeof n=="object"?Object.fromEntries(Object.entries(n).map(([r,s])=>r==="titleTemplate"||r.startsWith("on")?[r,Ke(s)]:[r,zs(s,r)])):n}const f_="usehead",vl=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{},El="__unhead_injection_handler__";function d_(){if(El in vl)return vl[El]();const e=Je(f_);return e||c_()}function Bc(e,t={}){const n=t.head||d_();if(n)return n.ssr?n.push(e,t):h_(n,e,t)}function h_(e,t,n={}){const r=se(!1),s=se({});Ga(()=>{s.value=r.value?{}:zs(t)});const o=e.push(s.value,n);return Se(s,a=>{o.patch(a)}),An()&&(Sa(()=>{o.dispose()}),wa(()=>{r.value=!0}),Ea(()=>{r.value=!1})),o}const Er="https://www.frsource.org",mn="/fast-angle/",No=Bp({attribute:"data-theme",valueLight:"light"}),J_=Dp(No),p_=oe(()=>`${mn}${No.value?"favicon-dark.svg":"favicon.svg"}`),m_=Vt({__name:"App",setup(e){const{t,locale:n,availableLocales:r}=Qn(),s=_g(),o=pc(300);function i(){const l=document.querySelector("meta[name=viewport]");l==null||l.setAttribute("content",`width=device-width, height=${window.innerHeight}, initial-scale=1.0`)}const a=()=>o(i,{});return Bc({title:"Fast angle",htmlAttrs:{lang:n},meta:[{name:"description",content:oe(()=>t("main.description"))},{name:"twitter:card",content:"summary"},{name:"twitter:site",content:"@FRSOURCE1"},{name:"og:url",content:`${Er}${mn}`},{name:"og:title",content:"Fast Angle"},{name:"og:description",content:oe(()=>t("main.description"))},{name:"og:image",content:`${Er}${mn}fast-angle-og-image.jpg`},{name:"theme-color",content:oe(()=>(No.value,"#0189e9"))}],link:[{rel:"icon",type:"image/svg+xml",href:p_},...r.map(l=>({rel:"alternate",hreflang:l,href:`${Er}${mn}${s.resolve({name:`lang-${l}`}).fullPath.substring(1)}`}))]}),Ln(()=>{window.addEventListener("resize",a,{passive:!0}),i()}),(l,c)=>{const u=Od("RouterView");return Qr(),wo(u)}}}),g_=["textContent"],__=["textContent"],Gc=Vt({__name:"index",setup(e){const{t}=Qn();return Bc({meta:[{"http-equiv":"status",content:"302"},{"http-equiv":"refresh",content:`0;${Er}${mn}${js.value}`}]}),(n,r)=>(Qr(),ih(Me,null,[Mr("h1",{textContent:Cs(Ke(t)("lang_redirect.title"))},null,8,g_),Mr("p",{textContent:Cs(Ke(t)("lang_redirect.description"))},null,8,__)],64))}}),wl={};typeof wl=="function"&&wl(Gc);const Tl=()=>Qt(()=>import("./_...all_-DUmKXp0R.js"),__vite__mapDeps([8,5])),bs=()=>Qt(()=>import("./index-CTXHhIZ7.js"),__vite__mapDeps([9,2,3,4,10])),vs=()=>Qt(()=>import("./privacy-policy-BdEgNBDr.js"),__vite__mapDeps([11,3,12])),Es=()=>Qt(()=>import("./terms-CRRkJi5O.js"),__vite__mapDeps([13,3,14])),y_=[{name:"index",path:"/",component:Gc,props:!0,meta:{layout:"centered"}},{name:"404",path:"/404",component:Tl,props:!0,meta:{layout:"centered"}},{name:"all",path:"/:all(.*)*",component:Tl,props:!0,meta:{layout:"centered"}},{name:"lang-de",path:"/de",component:bs,props:!0},{name:"lang-en",path:"/en",component:bs,props:!0},{name:"lang-pl",path:"/pl",component:bs,props:!0},{name:"lang-de-privacy-policy",path:"/de/privacy-policy",component:vs,props:!0,meta:{layout:"centered"}},{name:"lang-en-privacy-policy",path:"/en/privacy-policy",component:vs,props:!0,meta:{layout:"centered"}},{name:"lang-pl-privacy-policy",path:"/pl/privacy-policy",component:vs,props:!0,meta:{layout:"centered"}},{name:"lang-de-terms",path:"/de/terms",component:Es,props:!0,meta:{layout:"centered"}},{name:"lang-en-terms",path:"/en/terms",component:Es,props:!0,meta:{layout:"centered"}},{name:"lang-pl-terms",path:"/pl/terms",component:Es,props:!0,meta:{layout:"centered"}}],b_=l_(y_);i_(m_,{routes:b_,base:mn},e=>{Object.values(Object.assign({"./modules/i18n.ts":im,"./modules/pwa.ts":um,"./modules/virtual-keyboard.ts":hm})).forEach(t=>{var n;return(n=t.install)==null?void 0:n.call(t,e)})});export{_o as $,Se as A,X_ as B,_g as C,S_ as D,L_ as E,Me as F,q_ as G,wl as H,se as I,je as J,Df as K,ts as L,ch as M,k_ as N,$_ as O,H_ as P,Qp as Q,v_ as R,P_ as S,O_ as T,W_ as U,G_ as V,U_ as W,j_ as X,An as Y,Ln as Z,Qt as _,Mr as a,Cn as a0,I_ as a1,B_ as a2,K_ as a3,x_ as a4,F_ as a5,z_ as a6,ud as a7,M_ as a8,D_ as a9,w_ as aa,ro as ab,Y_ as ac,A_ as ad,V_ as ae,Bc as af,C_ as ag,Ne as b,wo as c,Vt as d,ih as e,Qa as f,Ke as g,Er as h,oe as i,mn as j,p_ as k,js as l,ua as m,so as n,Qr as o,R_ as p,E_ as q,Od as r,Ce as s,Cs as t,Qn as u,N_ as v,gd as w,T_ as x,J_ as y,No as z}; + */const on=typeof document<"u";function mm(e){return e.__esModule||e[Symbol.toStringTag]==="Module"}const fe=Object.assign;function ps(e,t){const n={};for(const r in t){const s=t[r];n[r]=ct(s)?s.map(e):e(s)}return n}const Vn=()=>{},ct=Array.isArray,Ac=/#/g,gm=/&/g,_m=/\//g,ym=/=/g,bm=/\?/g,Pc=/\+/g,vm=/%5B/g,Em=/%5D/g,Nc=/%5E/g,wm=/%60/g,Rc=/%7B/g,Tm=/%7C/g,kc=/%7D/g,Sm=/%20/g;function Lo(e){return encodeURI(""+e).replace(Tm,"|").replace(vm,"[").replace(Em,"]")}function Om(e){return Lo(e).replace(Rc,"{").replace(kc,"}").replace(Nc,"^")}function Vs(e){return Lo(e).replace(Pc,"%2B").replace(Sm,"+").replace(Ac,"%23").replace(gm,"%26").replace(wm,"`").replace(Rc,"{").replace(kc,"}").replace(Nc,"^")}function Cm(e){return Vs(e).replace(ym,"%3D")}function Lm(e){return Lo(e).replace(Ac,"%23").replace(bm,"%3F")}function Am(e){return e==null?"":Lm(e).replace(_m,"%2F")}function Xn(e){try{return decodeURIComponent(""+e)}catch{}return""+e}const Pm=/\/$/,Nm=e=>e.replace(Pm,"");function ms(e,t,n="/"){let r,s={},o="",i="";const a=t.indexOf("#");let l=t.indexOf("?");return a=0&&(l=-1),l>-1&&(r=t.slice(0,l),o=t.slice(l+1,a>-1?a:t.length),s=e(o)),a>-1&&(r=r||t.slice(0,a),i=t.slice(a,t.length)),r=Mm(r??t,n),{fullPath:r+(o&&"?")+o+i,path:r,query:s,hash:Xn(i)}}function Rm(e,t){const n=t.query?e(t.query):"";return t.path+(n&&"?")+n+(t.hash||"")}function Qi(e,t){return!t||!e.toLowerCase().startsWith(t.toLowerCase())?e:e.slice(t.length)||"/"}function km(e,t,n){const r=t.matched.length-1,s=n.matched.length-1;return r>-1&&r===s&&wn(t.matched[r],n.matched[s])&&Ic(t.params,n.params)&&e(t.query)===e(n.query)&&t.hash===n.hash}function wn(e,t){return(e.aliasOf||e)===(t.aliasOf||t)}function Ic(e,t){if(Object.keys(e).length!==Object.keys(t).length)return!1;for(const n in e)if(!Im(e[n],t[n]))return!1;return!0}function Im(e,t){return ct(e)?Zi(e,t):ct(t)?Zi(t,e):e===t}function Zi(e,t){return ct(t)?e.length===t.length&&e.every((n,r)=>n===t[r]):e.length===1&&e[0]===t}function Mm(e,t){if(e.startsWith("/"))return e;if(!e)return t;const n=t.split("/"),r=e.split("/"),s=r[r.length-1];(s===".."||s===".")&&r.push("");let o=n.length-1,i,a;for(i=0;i1&&o--;else break;return n.slice(0,o).join("/")+"/"+r.slice(i).join("/")}const Lt={path:"/",name:void 0,params:{},query:{},hash:"",fullPath:"/",matched:[],meta:{},redirectedFrom:void 0};var Tn;(function(e){e.pop="pop",e.push="push"})(Tn||(Tn={}));var qt;(function(e){e.back="back",e.forward="forward",e.unknown=""})(qt||(qt={}));const gs="";function Mc(e){if(!e)if(on){const t=document.querySelector("base");e=t&&t.getAttribute("href")||"/",e=e.replace(/^\w+:\/\/[^\/]+/,"")}else e="/";return e[0]!=="/"&&e[0]!=="#"&&(e="/"+e),Nm(e)}const xm=/^[^#]+#/;function xc(e,t){return e.replace(xm,"#")+t}function Dm(e,t){const n=document.documentElement.getBoundingClientRect(),r=e.getBoundingClientRect();return{behavior:t.behavior,left:r.left-n.left-(t.left||0),top:r.top-n.top-(t.top||0)}}const rs=()=>({left:window.scrollX,top:window.scrollY});function Fm(e){let t;if("el"in e){const n=e.el,r=typeof n=="string"&&n.startsWith("#"),s=typeof n=="string"?r?document.getElementById(n.slice(1)):document.querySelector(n):n;if(!s)return;t=Dm(s,e)}else t=e;"scrollBehavior"in document.documentElement.style?window.scrollTo(t):window.scrollTo(t.left!=null?t.left:window.scrollX,t.top!=null?t.top:window.scrollY)}function el(e,t){return(history.state?history.state.position-t:-1)+e}const Ws=new Map;function Hm(e,t){Ws.set(e,t)}function $m(e){const t=Ws.get(e);return Ws.delete(e),t}let Um=()=>location.protocol+"//"+location.host;function Dc(e,t){const{pathname:n,search:r,hash:s}=t,o=e.indexOf("#");if(o>-1){let a=s.includes(e.slice(o))?e.slice(o).length:1,l=s.slice(a);return l[0]!=="/"&&(l="/"+l),Qi(l,"")}return Qi(n,e)+r+s}function jm(e,t,n,r){let s=[],o=[],i=null;const a=({state:d})=>{const m=Dc(e,location),E=n.value,v=t.value;let C=0;if(d){if(n.value=m,t.value=d,i&&i===E){i=null;return}C=v?d.position-v.position:0}else r(m);s.forEach(O=>{O(n.value,E,{delta:C,type:Tn.pop,direction:C?C>0?qt.forward:qt.back:qt.unknown})})};function l(){i=n.value}function c(d){s.push(d);const m=()=>{const E=s.indexOf(d);E>-1&&s.splice(E,1)};return o.push(m),m}function u(){const{history:d}=window;d.state&&d.replaceState(fe({},d.state,{scroll:rs()}),"")}function f(){for(const d of o)d();o=[],window.removeEventListener("popstate",a),window.removeEventListener("beforeunload",u)}return window.addEventListener("popstate",a),window.addEventListener("beforeunload",u,{passive:!0}),{pauseListeners:l,listen:c,destroy:f}}function tl(e,t,n,r=!1,s=!1){return{back:e,current:t,forward:n,replaced:r,position:window.history.length,scroll:s?rs():null}}function Vm(e){const{history:t,location:n}=window,r={value:Dc(e,n)},s={value:t.state};s.value||o(r.value,{back:null,current:r.value,forward:null,position:t.length-1,replaced:!0,scroll:null},!0);function o(l,c,u){const f=e.indexOf("#"),d=f>-1?(n.host&&document.querySelector("base")?e:e.slice(f))+l:Um()+e+l;try{t[u?"replaceState":"pushState"](c,"",d),s.value=c}catch(m){console.error(m),n[u?"replace":"assign"](d)}}function i(l,c){const u=fe({},t.state,tl(s.value.back,l,s.value.forward,!0),c,{position:s.value.position});o(l,u,!0),r.value=l}function a(l,c){const u=fe({},s.value,t.state,{forward:l,scroll:rs()});o(u.current,u,!0);const f=fe({},tl(r.value,l,null),{position:u.position+1},c);o(l,f,!1),r.value=l}return{location:r,state:s,push:a,replace:i}}function Wm(e){e=Mc(e);const t=Vm(e),n=jm(e,t.state,t.location,t.replace);function r(o,i=!0){i||n.pauseListeners(),history.go(o)}const s=fe({location:"",base:e,go:r,createHref:xc.bind(null,e)},t,n);return Object.defineProperty(s,"location",{enumerable:!0,get:()=>t.location.value}),Object.defineProperty(s,"state",{enumerable:!0,get:()=>t.state.value}),s}function Km(e=""){let t=[],n=[gs],r=0;e=Mc(e);function s(a){r++,r!==n.length&&n.splice(r),n.push(a)}function o(a,l,{direction:c,delta:u}){const f={direction:c,delta:u,type:Tn.pop};for(const d of t)d(a,l,f)}const i={location:gs,state:{},base:e,createHref:xc.bind(null,e),replace(a){n.splice(r--,1),s(a)},push(a,l){s(a)},listen(a){return t.push(a),()=>{const l=t.indexOf(a);l>-1&&t.splice(l,1)}},destroy(){t=[],n=[gs],r=0},go(a,l=!0){const c=this.location,u=a<0?qt.back:qt.forward;r=Math.max(0,Math.min(r+a,n.length-1)),l&&o(this.location,c,{direction:u,delta:a})}};return Object.defineProperty(i,"location",{enumerable:!0,get:()=>n[r]}),i}function Bm(e){return typeof e=="string"||e&&typeof e=="object"}function Fc(e){return typeof e=="string"||typeof e=="symbol"}const Hc=Symbol("");var nl;(function(e){e[e.aborted=4]="aborted",e[e.cancelled=8]="cancelled",e[e.duplicated=16]="duplicated"})(nl||(nl={}));function Sn(e,t){return fe(new Error,{type:e,[Hc]:!0},t)}function yt(e,t){return e instanceof Error&&Hc in e&&(t==null||!!(e.type&t))}const rl="[^/]+?",Gm={sensitive:!1,strict:!1,start:!0,end:!0},zm=/[.+*?^${}()[\]/\\]/g;function Ym(e,t){const n=fe({},Gm,t),r=[];let s=n.start?"^":"";const o=[];for(const c of e){const u=c.length?[]:[90];n.strict&&!c.length&&(s+="/");for(let f=0;ft.length?t.length===1&&t[0]===80?1:-1:0}function $c(e,t){let n=0;const r=e.score,s=t.score;for(;n0&&t[t.length-1]<0}const qm={type:0,value:""},Jm=/[a-zA-Z0-9_]/;function Qm(e){if(!e)return[[]];if(e==="/")return[[qm]];if(!e.startsWith("/"))throw new Error(`Invalid path "${e}"`);function t(m){throw new Error(`ERR (${n})/"${c}": ${m}`)}let n=0,r=n;const s=[];let o;function i(){o&&s.push(o),o=[]}let a=0,l,c="",u="";function f(){c&&(n===0?o.push({type:0,value:c}):n===1||n===2||n===3?(o.length>1&&(l==="*"||l==="+")&&t(`A repeatable param (${c}) must be alone in its segment. eg: '/:ids+.`),o.push({type:1,value:c,regexp:u,repeatable:l==="*"||l==="+",optional:l==="*"||l==="?"})):t("Invalid state to consume buffer"),c="")}function d(){c+=l}for(;a{i(h)}:Vn}function i(f){if(Fc(f)){const d=r.get(f);d&&(r.delete(f),n.splice(n.indexOf(d),1),d.children.forEach(i),d.alias.forEach(i))}else{const d=n.indexOf(f);d>-1&&(n.splice(d,1),f.record.name&&r.delete(f.record.name),f.children.forEach(i),f.alias.forEach(i))}}function a(){return n}function l(f){const d=sg(f,n);n.splice(d,0,f),f.record.name&&!il(f)&&r.set(f.record.name,f)}function c(f,d){let m,E={},v,C;if("name"in f&&f.name){if(m=r.get(f.name),!m)throw Sn(1,{location:f});C=m.record.name,E=fe(ol(d.params,m.keys.filter(h=>!h.optional).concat(m.parent?m.parent.keys.filter(h=>h.optional):[]).map(h=>h.name)),f.params&&ol(f.params,m.keys.map(h=>h.name))),v=m.stringify(E)}else if(f.path!=null)v=f.path,m=n.find(h=>h.re.test(v)),m&&(E=m.parse(v),C=m.record.name);else{if(m=d.name?r.get(d.name):n.find(h=>h.re.test(d.path)),!m)throw Sn(1,{location:f,currentLocation:d});C=m.record.name,E=fe({},d.params,f.params),v=m.stringify(E)}const O=[];let N=m;for(;N;)O.unshift(N.record),N=N.parent;return{name:C,path:v,params:E,matched:O,meta:rg(O)}}e.forEach(f=>o(f));function u(){n.length=0,r.clear()}return{addRoute:o,resolve:c,removeRoute:i,clearRoutes:u,getRoutes:a,getRecordMatcher:s}}function ol(e,t){const n={};for(const r of t)r in e&&(n[r]=e[r]);return n}function tg(e){return{path:e.path,redirect:e.redirect,name:e.name,meta:e.meta||{},aliasOf:void 0,beforeEnter:e.beforeEnter,props:ng(e),children:e.children||[],instances:{},leaveGuards:new Set,updateGuards:new Set,enterCallbacks:{},components:"components"in e?e.components||null:e.component&&{default:e.component}}}function ng(e){const t={},n=e.props||!1;if("component"in e)t.default=n;else for(const r in e.components)t[r]=typeof n=="object"?n[r]:n;return t}function il(e){for(;e;){if(e.record.aliasOf)return!0;e=e.parent}return!1}function rg(e){return e.reduce((t,n)=>fe(t,n.meta),{})}function ll(e,t){const n={};for(const r in e)n[r]=r in t?t[r]:e[r];return n}function sg(e,t){let n=0,r=t.length;for(;n!==r;){const o=n+r>>1;$c(e,t[o])<0?r=o:n=o+1}const s=og(e);return s&&(r=t.lastIndexOf(s,r-1)),r}function og(e){let t=e;for(;t=t.parent;)if(Uc(t)&&$c(e,t)===0)return t}function Uc({record:e}){return!!(e.name||e.components&&Object.keys(e.components).length||e.redirect)}function ig(e){const t={};if(e===""||e==="?")return t;const r=(e[0]==="?"?e.slice(1):e).split("&");for(let s=0;so&&Vs(o)):[r&&Vs(r)]).forEach(o=>{o!==void 0&&(t+=(t.length?"&":"")+n,o!=null&&(t+="="+o))})}return t}function lg(e){const t={};for(const n in e){const r=e[n];r!==void 0&&(t[n]=ct(r)?r.map(s=>s==null?null:""+s):r==null?r:""+r)}return t}const ag=Symbol(""),cl=Symbol(""),ss=Symbol(""),Ao=Symbol(""),Ks=Symbol("");function Mn(){let e=[];function t(r){return e.push(r),()=>{const s=e.indexOf(r);s>-1&&e.splice(s,1)}}function n(){e=[]}return{add:t,list:()=>e.slice(),reset:n}}function Rt(e,t,n,r,s,o=i=>i()){const i=r&&(r.enterCallbacks[s]=r.enterCallbacks[s]||[]);return()=>new Promise((a,l)=>{const c=d=>{d===!1?l(Sn(4,{from:n,to:t})):d instanceof Error?l(d):Bm(d)?l(Sn(2,{from:t,to:d})):(i&&r.enterCallbacks[s]===i&&typeof d=="function"&&i.push(d),a())},u=o(()=>e.call(r&&r.instances[s],t,n,c));let f=Promise.resolve(u);e.length<3&&(f=f.then(c)),f.catch(d=>l(d))})}function _s(e,t,n,r,s=o=>o()){const o=[];for(const i of e)for(const a in i.components){let l=i.components[a];if(!(t!=="beforeRouteEnter"&&!i.instances[a]))if(cg(l)){const u=(l.__vccOpts||l)[t];u&&o.push(Rt(u,n,r,i,a,s))}else{let c=l();o.push(()=>c.then(u=>{if(!u)return Promise.reject(new Error(`Couldn't resolve component "${a}" at "${i.path}"`));const f=mm(u)?u.default:u;i.components[a]=f;const m=(f.__vccOpts||f)[t];return m&&Rt(m,n,r,i,a,s)()}))}}return o}function cg(e){return typeof e=="object"||"displayName"in e||"props"in e||"__vccOpts"in e}function ul(e){const t=Je(ss),n=Je(Ao),r=oe(()=>{const l=Be(e.to);return t.resolve(l)}),s=oe(()=>{const{matched:l}=r.value,{length:c}=l,u=l[c-1],f=n.matched;if(!u||!f.length)return-1;const d=f.findIndex(wn.bind(null,u));if(d>-1)return d;const m=fl(l[c-2]);return c>1&&fl(u)===m&&f[f.length-1].path!==m?f.findIndex(wn.bind(null,l[c-2])):d}),o=oe(()=>s.value>-1&&hg(n.params,r.value.params)),i=oe(()=>s.value>-1&&s.value===n.matched.length-1&&Ic(n.params,r.value.params));function a(l={}){return dg(l)?t[Be(e.replace)?"replace":"push"](Be(e.to)).catch(Vn):Promise.resolve()}return{route:r,href:oe(()=>r.value.href),isActive:o,isExactActive:i,navigate:a}}const ug=Vt({name:"RouterLink",compatConfig:{MODE:3},props:{to:{type:[String,Object],required:!0},replace:Boolean,activeClass:String,exactActiveClass:String,custom:Boolean,ariaCurrentValue:{type:String,default:"page"}},useLink:ul,setup(e,{slots:t}){const n=yn(ul(e)),{options:r}=Je(ss),s=oe(()=>({[dl(e.activeClass,r.linkActiveClass,"router-link-active")]:n.isActive,[dl(e.exactActiveClass,r.linkExactActiveClass,"router-link-exact-active")]:n.isExactActive}));return()=>{const o=t.default&&t.default(n);return e.custom?o:ts("a",{"aria-current":n.isExactActive?e.ariaCurrentValue:null,href:n.href,onClick:n.navigate,class:s.value},o)}}}),fg=ug;function dg(e){if(!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)&&!e.defaultPrevented&&!(e.button!==void 0&&e.button!==0)){if(e.currentTarget&&e.currentTarget.getAttribute){const t=e.currentTarget.getAttribute("target");if(/\b_blank\b/i.test(t))return}return e.preventDefault&&e.preventDefault(),!0}}function hg(e,t){for(const n in t){const r=t[n],s=e[n];if(typeof r=="string"){if(r!==s)return!1}else if(!ct(s)||s.length!==r.length||r.some((o,i)=>o!==s[i]))return!1}return!0}function fl(e){return e?e.aliasOf?e.aliasOf.path:e.path:""}const dl=(e,t,n)=>e??t??n,pg=Vt({name:"RouterView",inheritAttrs:!1,props:{name:{type:String,default:"default"},route:Object},compatConfig:{MODE:3},setup(e,{attrs:t,slots:n}){const r=Je(Ks),s=oe(()=>e.route||r.value),o=Je(cl,0),i=oe(()=>{let c=Be(o);const{matched:u}=s.value;let f;for(;(f=u[c])&&!f.components;)c++;return c}),a=oe(()=>s.value.matched[i.value]);_r(cl,oe(()=>i.value+1)),_r(ag,a),_r(Ks,s);const l=se();return Se(()=>[l.value,a.value,e.name],([c,u,f],[d,m,E])=>{u&&(u.instances[f]=c,m&&m!==u&&c&&c===d&&(u.leaveGuards.size||(u.leaveGuards=m.leaveGuards),u.updateGuards.size||(u.updateGuards=m.updateGuards))),c&&u&&(!m||!wn(u,m)||!d)&&(u.enterCallbacks[f]||[]).forEach(v=>v(c))},{flush:"post"}),()=>{const c=s.value,u=e.name,f=a.value,d=f&&f.components[u];if(!d)return hl(n.default,{Component:d,route:c});const m=f.props[u],E=m?m===!0?c.params:typeof m=="function"?m(c):m:null,C=ts(d,fe({},E,t,{onVnodeUnmounted:O=>{O.component.isUnmounted&&(f.instances[u]=null)},ref:l}));return hl(n.default,{Component:C,route:c})||C}}});function hl(e,t){if(!e)return null;const n=e(t);return n.length===1?n[0]:n}const mg=pg;function gg(e){const t=eg(e.routes,e),n=e.parseQuery||ig,r=e.stringifyQuery||al,s=e.history,o=Mn(),i=Mn(),a=Mn(),l=vn(Lt);let c=Lt;on&&e.scrollBehavior&&"scrollRestoration"in history&&(history.scrollRestoration="manual");const u=ps.bind(null,M=>""+M),f=ps.bind(null,Am),d=ps.bind(null,Xn);function m(M,B){let W,z;return Fc(M)?(W=t.getRecordMatcher(M),z=B):z=M,t.addRoute(z,W)}function E(M){const B=t.getRecordMatcher(M);B&&t.removeRoute(B)}function v(){return t.getRoutes().map(M=>M.record)}function C(M){return!!t.getRecordMatcher(M)}function O(M,B){if(B=fe({},B||l.value),typeof M=="string"){const b=ms(n,M,B.path),P=t.resolve({path:b.path},B),D=s.createHref(b.fullPath);return fe(b,P,{params:d(P.params),hash:Xn(b.hash),redirectedFrom:void 0,href:D})}let W;if(M.path!=null)W=fe({},M,{path:ms(n,M.path,B.path).path});else{const b=fe({},M.params);for(const P in b)b[P]==null&&delete b[P];W=fe({},M,{params:f(b)}),B.params=f(B.params)}const z=t.resolve(W,B),ie=M.hash||"";z.params=u(d(z.params));const de=Rm(r,fe({},M,{hash:Om(ie),path:z.path})),_=s.createHref(de);return fe({fullPath:de,hash:ie,query:r===al?lg(M.query):M.query||{}},z,{redirectedFrom:void 0,href:_})}function N(M){return typeof M=="string"?ms(n,M,l.value.path):fe({},M)}function h(M,B){if(c!==M)return Sn(8,{from:B,to:M})}function y(M){return A(M)}function S(M){return y(fe(N(M),{replace:!0}))}function T(M){const B=M.matched[M.matched.length-1];if(B&&B.redirect){const{redirect:W}=B;let z=typeof W=="function"?W(M):W;return typeof z=="string"&&(z=z.includes("?")||z.includes("#")?z=N(z):{path:z},z.params={}),fe({query:M.query,hash:M.hash,params:z.path!=null?{}:M.params},z)}}function A(M,B){const W=c=O(M),z=l.value,ie=M.state,de=M.force,_=M.replace===!0,b=T(W);if(b)return A(fe(N(b),{state:typeof b=="object"?fe({},ie,b.state):ie,force:de,replace:_}),B||W);const P=W;P.redirectedFrom=B;let D;return!de&&km(r,z,W)&&(D=Sn(16,{to:P,from:z}),we(z,z,!0,!1)),(D?Promise.resolve(D):H(P,z)).catch(k=>yt(k)?yt(k,2)?k:Qe(k):X(k,P,z)).then(k=>{if(k){if(yt(k,2))return A(fe({replace:_},N(k.to),{state:typeof k.to=="object"?fe({},ie,k.to.state):ie,force:de}),B||P)}else k=K(P,z,!0,_,ie);return G(P,z,k),k})}function F(M,B){const W=h(M,B);return W?Promise.reject(W):Promise.resolve()}function x(M){const B=st.values().next().value;return B&&typeof B.runWithContext=="function"?B.runWithContext(M):M()}function H(M,B){let W;const[z,ie,de]=_g(M,B);W=_s(z.reverse(),"beforeRouteLeave",M,B);for(const b of z)b.leaveGuards.forEach(P=>{W.push(Rt(P,M,B))});const _=F.bind(null,M,B);return W.push(_),ke(W).then(()=>{W=[];for(const b of o.list())W.push(Rt(b,M,B));return W.push(_),ke(W)}).then(()=>{W=_s(ie,"beforeRouteUpdate",M,B);for(const b of ie)b.updateGuards.forEach(P=>{W.push(Rt(P,M,B))});return W.push(_),ke(W)}).then(()=>{W=[];for(const b of de)if(b.beforeEnter)if(ct(b.beforeEnter))for(const P of b.beforeEnter)W.push(Rt(P,M,B));else W.push(Rt(b.beforeEnter,M,B));return W.push(_),ke(W)}).then(()=>(M.matched.forEach(b=>b.enterCallbacks={}),W=_s(de,"beforeRouteEnter",M,B,x),W.push(_),ke(W))).then(()=>{W=[];for(const b of i.list())W.push(Rt(b,M,B));return W.push(_),ke(W)}).catch(b=>yt(b,8)?b:Promise.reject(b))}function G(M,B,W){a.list().forEach(z=>x(()=>z(M,B,W)))}function K(M,B,W,z,ie){const de=h(M,B);if(de)return de;const _=B===Lt,b=on?history.state:{};W&&(z||_?s.replace(M.fullPath,fe({scroll:_&&b&&b.scroll},ie)):s.push(M.fullPath,ie)),l.value=M,we(M,B,W,_),Qe()}let ee;function Le(){ee||(ee=s.listen((M,B,W)=>{if(!St.listening)return;const z=O(M),ie=T(z);if(ie){A(fe(ie,{replace:!0}),z).catch(Vn);return}c=z;const de=l.value;on&&Hm(el(de.fullPath,W.delta),rs()),H(z,de).catch(_=>yt(_,12)?_:yt(_,2)?(A(_.to,z).then(b=>{yt(b,20)&&!W.delta&&W.type===Tn.pop&&s.go(-1,!1)}).catch(Vn),Promise.reject()):(W.delta&&s.go(-W.delta,!1),X(_,z,de))).then(_=>{_=_||K(z,de,!1),_&&(W.delta&&!yt(_,8)?s.go(-W.delta,!1):W.type===Tn.pop&&yt(_,20)&&s.go(-1,!1)),G(z,de,_)}).catch(Vn)}))}let me=Mn(),q=Mn(),ne;function X(M,B,W){Qe(M);const z=q.list();return z.length?z.forEach(ie=>ie(M,B,W)):console.error(M),Promise.reject(M)}function ye(){return ne&&l.value!==Lt?Promise.resolve():new Promise((M,B)=>{me.add([M,B])})}function Qe(M){return ne||(ne=!M,Le(),me.list().forEach(([B,W])=>M?W(M):B()),me.reset()),M}function we(M,B,W,z){const{scrollBehavior:ie}=e;if(!on||!ie)return Promise.resolve();const de=!W&&$m(el(M.fullPath,0))||(z||!W)&&history.state&&history.state.scroll||null;return Ln().then(()=>ie(M,B,de)).then(_=>_&&Fm(_)).catch(_=>X(_,M,B))}const Te=M=>s.go(M);let ut;const st=new Set,St={currentRoute:l,listening:!0,addRoute:m,removeRoute:E,clearRoutes:t.clearRoutes,hasRoute:C,getRoutes:v,resolve:O,options:e,push:y,replace:S,go:Te,back:()=>Te(-1),forward:()=>Te(1),beforeEach:o.add,beforeResolve:i.add,afterEach:a.add,onError:q.add,isReady:ye,install(M){const B=this;M.component("RouterLink",fg),M.component("RouterView",mg),M.config.globalProperties.$router=B,Object.defineProperty(M.config.globalProperties,"$route",{enumerable:!0,get:()=>Be(l)}),on&&!ut&&l.value===Lt&&(ut=!0,y(s.location).catch(ie=>{}));const W={};for(const ie in Lt)Object.defineProperty(W,ie,{get:()=>l.value[ie],enumerable:!0});M.provide(ss,B),M.provide(Ao,uo(W)),M.provide(Ks,l);const z=M.unmount;st.add(M),M.unmount=function(){st.delete(M),st.size<1&&(c=Lt,ee&&ee(),ee=null,l.value=Lt,ut=!1,ne=!1),z()}}};function ke(M){return M.reduce((B,W)=>B.then(()=>x(W)),Promise.resolve())}return St}function _g(e,t){const n=[],r=[],s=[],o=Math.max(t.matched.length,e.matched.length);for(let i=0;iwn(c,a))?r.push(a):n.push(a));const l=e.matched[i];l&&(t.matched.find(c=>wn(c,l))||s.push(l))}return[n,r,s]}function yg(){return Je(ss)}function J_(e){return Je(Ao)}function Bs(e,t={},n){for(const r in e){const s=e[r],o=n?`${n}:${r}`:r;typeof s=="object"&&s!==null?Bs(s,t,o):typeof s=="function"&&(t[o]=s)}return t}const bg={run:e=>e()},vg=()=>bg,jc=typeof console.createTask<"u"?console.createTask:vg;function Eg(e,t){const n=t.shift(),r=jc(n);return e.reduce((s,o)=>s.then(()=>r.run(()=>o(...t))),Promise.resolve())}function wg(e,t){const n=t.shift(),r=jc(n);return Promise.all(e.map(s=>r.run(()=>s(...t))))}function ys(e,t){for(const n of[...e])n(t)}class Tg{constructor(){this._hooks={},this._before=void 0,this._after=void 0,this._deprecatedMessages=void 0,this._deprecatedHooks={},this.hook=this.hook.bind(this),this.callHook=this.callHook.bind(this),this.callHookWith=this.callHookWith.bind(this)}hook(t,n,r={}){if(!t||typeof n!="function")return()=>{};const s=t;let o;for(;this._deprecatedHooks[t];)o=this._deprecatedHooks[t],t=o.to;if(o&&!r.allowDeprecated){let i=o.message;i||(i=`${s} hook has been deprecated`+(o.to?`, please use ${o.to}`:"")),this._deprecatedMessages||(this._deprecatedMessages=new Set),this._deprecatedMessages.has(i)||(console.warn(i),this._deprecatedMessages.add(i))}if(!n.name)try{Object.defineProperty(n,"name",{get:()=>"_"+t.replace(/\W+/g,"_")+"_hook_cb",configurable:!0})}catch{}return this._hooks[t]=this._hooks[t]||[],this._hooks[t].push(n),()=>{n&&(this.removeHook(t,n),n=void 0)}}hookOnce(t,n){let r,s=(...o)=>(typeof r=="function"&&r(),r=void 0,s=void 0,n(...o));return r=this.hook(t,s),r}removeHook(t,n){if(this._hooks[t]){const r=this._hooks[t].indexOf(n);r!==-1&&this._hooks[t].splice(r,1),this._hooks[t].length===0&&delete this._hooks[t]}}deprecateHook(t,n){this._deprecatedHooks[t]=typeof n=="string"?{to:n}:n;const r=this._hooks[t]||[];delete this._hooks[t];for(const s of r)this.hook(t,s)}deprecateHooks(t){Object.assign(this._deprecatedHooks,t);for(const n in t)this.deprecateHook(n,t[n])}addHooks(t){const n=Bs(t),r=Object.keys(n).map(s=>this.hook(s,n[s]));return()=>{for(const s of r.splice(0,r.length))s()}}removeHooks(t){const n=Bs(t);for(const r in n)this.removeHook(r,n[r])}removeAllHooks(){for(const t in this._hooks)delete this._hooks[t]}callHook(t,...n){return n.unshift(t),this.callHookWith(Eg,t,...n)}callHookParallel(t,...n){return n.unshift(t),this.callHookWith(wg,t,...n)}callHookWith(t,n,...r){const s=this._before||this._after?{name:n,args:r,context:{}}:void 0;this._before&&ys(this._before,s);const o=t(n in this._hooks?[...this._hooks[n]]:[],r);return o instanceof Promise?o.finally(()=>{this._after&&s&&ys(this._after,s)}):(this._after&&s&&ys(this._after,s),o)}beforeEach(t){return this._before=this._before||[],this._before.push(t),()=>{if(this._before!==void 0){const n=this._before.indexOf(t);n!==-1&&this._before.splice(n,1)}}}afterEach(t){return this._after=this._after||[],this._after.push(t),()=>{if(this._after!==void 0){const n=this._after.indexOf(t);n!==-1&&this._after.splice(n,1)}}}}function Sg(){return new Tg}function Og(e){return Array.isArray(e)?e:[e]}const Cg=["title","titleTemplate","script","style","noscript"],vr=["base","meta","link","style","script","noscript"],Lg=["title","titleTemplate","templateParams","base","htmlAttrs","bodyAttrs","meta","link","style","script","noscript"],Ag=["base","title","titleTemplate","bodyAttrs","htmlAttrs","templateParams"],Vc=["tagPosition","tagPriority","tagDuplicateStrategy","children","innerHTML","textContent","processTemplateParams"],Pg=typeof window<"u";function Po(e){let t=9;for(let n=0;n>>9)+65536).toString(16).substring(1,8).toLowerCase()}function pl(e){return e._h||Po(e._d?e._d:`${e.tag}:${e.textContent||e.innerHTML||""}:${Object.entries(e.props).map(([t,n])=>`${t}:${String(n)}`).join(",")}`)}function Wc(e,t){const{props:n,tag:r}=e;if(Ag.includes(r))return r;if(r==="link"&&n.rel==="canonical")return"canonical";if(n.charset)return"charset";const s=["id"];r==="meta"&&s.push("name","property","http-equiv");for(const o of s)if(typeof n[o]<"u"){const i=String(n[o]);return`${r}:${o}:${i}`}return!1}function ml(e,t){return e==null?t||null:typeof e=="function"?e(t):e}async function Ng(e,t,n){const r={tag:e,props:await Kc(typeof t=="object"&&typeof t!="function"&&!(t instanceof Promise)?{...t}:{[["script","noscript","style"].includes(e)?"innerHTML":"textContent"]:t},["templateParams","titleTemplate"].includes(e))};return Vc.forEach(s=>{const o=typeof r.props[s]<"u"?r.props[s]:n[s];typeof o<"u"&&((!["innerHTML","textContent","children"].includes(s)||Cg.includes(r.tag))&&(r[s==="children"?"innerHTML":s]=o),delete r.props[s])}),r.props.body&&(r.tagPosition="bodyClose",delete r.props.body),r.tag==="script"&&typeof r.innerHTML=="object"&&(r.innerHTML=JSON.stringify(r.innerHTML),r.props.type=r.props.type||"application/json"),Array.isArray(r.props.content)?r.props.content.map(s=>({...r,props:{...r.props,content:s}})):r}function Rg(e,t){var r;const n=e==="class"?" ":";";return typeof t=="object"&&!Array.isArray(t)&&(t=Object.entries(t).filter(([,s])=>s).map(([s,o])=>e==="style"?`${s}:${o}`:s)),(r=String(Array.isArray(t)?t.join(n):t))==null?void 0:r.split(n).filter(s=>s.trim()).filter(Boolean).join(n)}async function Kc(e,t){for(const n of Object.keys(e)){if(["class","style"].includes(n)){e[n]=Rg(n,e[n]);continue}if(e[n]instanceof Promise&&(e[n]=await e[n]),!t&&!Vc.includes(n)){const r=String(e[n]),s=n.startsWith("data-");r==="true"||r===""?e[n]=s?"true":!0:e[n]||(s&&r==="false"?e[n]="false":delete e[n])}}return e}const kg=10;async function Ig(e){const t=[];return Object.entries(e.resolvedInput).filter(([n,r])=>typeof r<"u"&&Lg.includes(n)).forEach(([n,r])=>{const s=Og(r);t.push(...s.map(o=>Ng(n,o,e)).flat())}),(await Promise.all(t)).flat().filter(Boolean).map((n,r)=>(n._e=e._i,e.mode&&(n._m=e.mode),n._p=(e._i<l&&l[c]||void 0,t):a=t[i],typeof a<"u"?(a||"").replace(/"/g,'\\"'):!1}let s=e;try{s=decodeURI(e)}catch{}return(s.match(/%(\w+\.+\w+)|%(\w+)/g)||[]).sort().reverse().forEach(i=>{const a=r(i.slice(1));typeof a=="string"&&(e=e.replace(new RegExp(`\\${i}(\\W|$)`,"g"),(l,c)=>`${a}${c}`).trim())}),e.includes(At)&&(e.endsWith(At)&&(e=e.slice(0,-At.length).trim()),e.startsWith(At)&&(e=e.slice(At.length).trim()),e=e.replace(new RegExp(`\\${At}\\s*\\${At}`,"g"),At),e=Er(e,{separator:n},n)),e}async function xg(e,t={}){var u;const n=t.document||e.resolvedOptions.document;if(!n||!e.dirty)return;const r={shouldRender:!0,tags:[]};if(await e.hooks.callHook("dom:beforeRender",r),!r.shouldRender)return;const s=(await e.resolveTags()).map(f=>({tag:f,id:vr.includes(f.tag)?pl(f):f.tag,shouldRender:!0}));let o=e._dom;if(!o){o={elMap:{htmlAttrs:n.documentElement,bodyAttrs:n.body}};for(const f of["body","head"]){const d=(u=n[f])==null?void 0:u.children,m=[];for(const E of[...d].filter(v=>vr.includes(v.tagName.toLowerCase()))){const v={tag:E.tagName.toLowerCase(),props:await Kc(E.getAttributeNames().reduce((N,h)=>({...N,[h]:E.getAttribute(h)}),{})),innerHTML:E.innerHTML};let C=1,O=Wc(v);for(;O&&m.find(N=>N._d===O);)O=`${O}:${C++}`;v._d=O||void 0,m.push(v),o.elMap[E.getAttribute("data-hid")||pl(v)]=E}}}o.pendingSideEffects={...o.sideEffects||{}},o.sideEffects={};function i(f,d,m){const E=`${f}:${d}`;o.sideEffects[E]=m,delete o.pendingSideEffects[E]}function a({id:f,$el:d,tag:m}){const E=m.tag.endsWith("Attrs");o.elMap[f]=d,E||(["textContent","innerHTML"].forEach(v=>{m[v]&&m[v]!==d[v]&&(d[v]=m[v])}),i(f,"el",()=>{var v;(v=o.elMap[f])==null||v.remove(),delete o.elMap[f]}));for(const[v,C]of Object.entries(m._eventHandlers||{}))d.getAttribute(`data-${v}`)!==""&&((m.tag==="bodyAttrs"?n.defaultView:d).addEventListener(v.replace("on",""),C.bind(d)),d.setAttribute(`data-${v}`,""));Object.entries(m.props).forEach(([v,C])=>{const O=`attr:${v}`;if(v==="class")for(const N of(C||"").split(" ").filter(Boolean))E&&i(f,`${O}:${N}`,()=>d.classList.remove(N)),!d.classList.contains(N)&&d.classList.add(N);else if(v==="style")for(const N of(C||"").split(";").filter(Boolean)){const[h,...y]=N.split(":").map(S=>S.trim());i(f,`${O}:${h}`,()=>{d.style.removeProperty(h)}),d.style.setProperty(h,y.join(":"))}else d.getAttribute(v)!==C&&d.setAttribute(v,C===!0?"":String(C)),E&&i(f,O,()=>d.removeAttribute(v))})}const l=[],c={bodyClose:void 0,bodyOpen:void 0,head:void 0};for(const f of s){const{tag:d,shouldRender:m,id:E}=f;if(m){if(d.tag==="title"){n.title=d.textContent;continue}f.$el=f.$el||o.elMap[E],f.$el?a(f):vr.includes(d.tag)&&l.push(f)}}for(const f of l){const d=f.tag.tagPosition||"head";f.$el=n.createElement(f.tag.tag),a(f),c[d]=c[d]||n.createDocumentFragment(),c[d].appendChild(f.$el)}for(const f of s)await e.hooks.callHook("dom:renderTag",f,n,i);c.head&&n.head.appendChild(c.head),c.bodyOpen&&n.body.insertBefore(c.bodyOpen,n.body.firstChild),c.bodyClose&&n.body.appendChild(c.bodyClose),Object.values(o.pendingSideEffects).forEach(f=>f()),e._dom=o,e.dirty=!1,await e.hooks.callHook("dom:rendered",{renders:s})}async function Dg(e,t={}){const n=t.delayFn||(r=>setTimeout(r,10));return e._domUpdatePromise=e._domUpdatePromise||new Promise(r=>n(async()=>{await xg(e,t),delete e._domUpdatePromise,r()}))}function Fg(e){return t=>{var r,s;const n=((s=(r=t.resolvedOptions.document)==null?void 0:r.head.querySelector('script[id="unhead:payload"]'))==null?void 0:s.innerHTML)||!1;return n&&t.push(JSON.parse(n)),{mode:"client",hooks:{"entries:updated":function(o){Dg(o,e)}}}}}const Hg=["templateParams","htmlAttrs","bodyAttrs"],$g={hooks:{"tag:normalise":function({tag:e}){["hid","vmid","key"].forEach(r=>{e.props[r]&&(e.key=e.props[r],delete e.props[r])});const n=Wc(e)||(e.key?`${e.tag}:${e.key}`:!1);n&&(e._d=n)},"tags:resolve":function(e){const t={};e.tags.forEach(r=>{const s=(r.key?`${r.tag}:${r.key}`:r._d)||r._p,o=t[s];if(o){let a=r==null?void 0:r.tagDuplicateStrategy;if(!a&&Hg.includes(r.tag)&&(a="merge"),a==="merge"){const l=o.props;["class","style"].forEach(c=>{l[c]&&(r.props[c]?(c==="style"&&!l[c].endsWith(";")&&(l[c]+=";"),r.props[c]=`${l[c]} ${r.props[c]}`):r.props[c]=l[c])}),t[s].props={...l,...r.props};return}else if(r._e===o._e){o._duped=o._duped||[],r._d=`${o._d}:${o._duped.length+1}`,o._duped.push(r);return}else if(Ur(r)>Ur(o))return}const i=Object.keys(r.props).length+(r.innerHTML?1:0)+(r.textContent?1:0);if(vr.includes(r.tag)&&i===0){delete t[s];return}t[s]=r});const n=[];Object.values(t).forEach(r=>{const s=r._duped;delete r._duped,n.push(r),s&&n.push(...s)}),e.tags=n,e.tags=e.tags.filter(r=>!(r.tag==="meta"&&(r.props.name||r.props.property)&&!r.props.content))}}},Ug={mode:"server",hooks:{"tags:resolve":function(e){const t={};e.tags.filter(n=>["titleTemplate","templateParams","title"].includes(n.tag)&&n._m==="server").forEach(n=>{t[n.tag]=n.tag.startsWith("title")?n.textContent:n.props}),Object.keys(t).length&&e.tags.push({tag:"script",innerHTML:JSON.stringify(t),props:{id:"unhead:payload",type:"application/json"}})}}},jg=["script","link","bodyAttrs"],Vg=e=>({hooks:{"tags:resolve":function(t){for(const n of t.tags.filter(r=>jg.includes(r.tag)))Object.entries(n.props).forEach(([r,s])=>{r.startsWith("on")&&typeof s=="function"&&(e.ssr&&yl.includes(r)?n.props[r]=`this.dataset.${r}fired = true`:delete n.props[r],n._eventHandlers=n._eventHandlers||{},n._eventHandlers[r]=s)}),e.ssr&&n._eventHandlers&&(n.props.src||n.props.href)&&(n.key=n.key||Po(n.props.src||n.props.href))},"dom:renderTag":function({$el:t,tag:n}){var r,s;for(const o of Object.keys((t==null?void 0:t.dataset)||{}).filter(i=>yl.some(a=>`${a}fired`===i))){const i=o.replace("fired","");(s=(r=n._eventHandlers)==null?void 0:r[i])==null||s.call(t,new Event(i.replace("on","")))}}}}),Wg=["link","style","script","noscript"],Kg={hooks:{"tag:normalise":({tag:e})=>{e.key&&Wg.includes(e.tag)&&(e.props["data-hid"]=e._h=Po(e.key))}}},Bg={hooks:{"tags:resolve":e=>{const t=n=>{var r;return(r=e.tags.find(s=>s._d===n))==null?void 0:r._p};for(const{prefix:n,offset:r}of Mg)for(const s of e.tags.filter(o=>typeof o.tagPriority=="string"&&o.tagPriority.startsWith(n))){const o=t(s.tagPriority.replace(n,""));typeof o<"u"&&(s._p=o+r)}e.tags.sort((n,r)=>n._p-r._p).sort((n,r)=>Ur(n)-Ur(r))}}},Gg={meta:"content",link:"href",htmlAttrs:"lang"},zg=e=>({hooks:{"tags:resolve":t=>{var a;const{tags:n}=t,r=(a=n.find(l=>l.tag==="title"))==null?void 0:a.textContent,s=n.findIndex(l=>l.tag==="templateParams"),o=s!==-1?n[s].props:{},i=o.separator||"|";delete o.separator,o.pageTitle=Er(o.pageTitle||r||"",o,i);for(const l of n.filter(c=>c.processTemplateParams!==!1)){const c=Gg[l.tag];c&&typeof l.props[c]=="string"?l.props[c]=Er(l.props[c],o,i):(l.processTemplateParams===!0||["titleTemplate","title"].includes(l.tag))&&["innerHTML","textContent"].forEach(u=>{typeof l[u]=="string"&&(l[u]=Er(l[u],o,i))})}e._templateParams=o,e._separator=i,t.tags=n.filter(l=>l.tag!=="templateParams")}}}),Yg={hooks:{"tags:resolve":e=>{const{tags:t}=e;let n=t.findIndex(s=>s.tag==="titleTemplate");const r=t.findIndex(s=>s.tag==="title");if(r!==-1&&n!==-1){const s=ml(t[n].textContent,t[r].textContent);s!==null?t[r].textContent=s||t[r].textContent:delete t[r]}else if(n!==-1){const s=ml(t[n].textContent);s!==null&&(t[n].textContent=s,t[n].tag="title",n=-1)}n!==-1&&delete t[n],e.tags=t.filter(Boolean)}}},Xg={hooks:{"tags:afterResolve":function(e){for(const t of e.tags)typeof t.innerHTML=="string"&&(t.innerHTML&&["application/ld+json","application/json"].includes(t.props.type)?t.innerHTML=t.innerHTML.replace(/{a.dirty=!0,t.callHook("entries:updated",a)};let s=0,o=[];const i=[],a={plugins:i,dirty:!1,resolvedOptions:e,hooks:t,headEntries(){return o},use(l){const c=typeof l=="function"?l(a):l;(!c.key||!i.some(u=>u.key===c.key))&&(i.push(c),bl(c.mode,n)&&t.addHooks(c.hooks||{}))},push(l,c){c==null||delete c.head;const u={_i:s++,input:l,...c};return bl(u.mode,n)&&(o.push(u),r()),{dispose(){o=o.filter(f=>f._i!==u._i),t.callHook("entries:updated",a),r()},patch(f){o=o.map(d=>(d._i===u._i&&(d.input=u.input=f),d)),r()}}},async resolveTags(){const l={tags:[],entries:[...o]};await t.callHook("entries:resolve",l);for(const c of l.entries){const u=c.resolvedInput||c.input;if(c.resolvedInput=await(c.transform?c.transform(u):u),c.resolvedInput)for(const f of await Ig(c)){const d={tag:f,entry:c,resolvedOptions:a.resolvedOptions};await t.callHook("tag:normalise",d),l.tags.push(d.tag)}}return await t.callHook("tags:beforeResolve",l),await t.callHook("tags:resolve",l),await t.callHook("tags:afterResolve",l),l.tags},ssr:n};return[$g,Ug,Vg,Kg,Bg,zg,Yg,Xg,...(e==null?void 0:e.plugins)||[]].forEach(l=>a.use(l)),a.hooks.callHook("init",a),a}const Qg=tc.startsWith("3");function Zg(e){return typeof e=="function"?e():Be(e)}function Gs(e,t=""){if(e instanceof Promise)return e;const n=Zg(e);return!e||!n?n:Array.isArray(n)?n.map(r=>Gs(r,t)):typeof n=="object"?Object.fromEntries(Object.entries(n).map(([r,s])=>r==="titleTemplate"||r.startsWith("on")?[r,Be(s)]:[r,Gs(s,r)])):n}const e_={hooks:{"entries:resolve":function(e){for(const t of e.entries)t.resolvedInput=Gs(t.input)}}},t_="usehead";function n_(e){return{install(n){Qg&&(n.config.globalProperties.$unhead=e,n.config.globalProperties.$head=e,n.provide(t_,e))}}.install}function r_(e={}){e.domDelayFn=e.domDelayFn||(n=>Ln(()=>setTimeout(()=>n(),0)));const t=qg(e);return t.use(e_),t.install=n_(t),t}function s_(e){try{return JSON.parse(e||"{}")}catch(t){return console.error("[SSG] On state deserialization -",t,e),{}}}function o_(e){return document.readyState==="loading"?new Promise(t=>{document.addEventListener("DOMContentLoaded",()=>t(e))}):Promise.resolve(e)}const i_=Vt({setup(e,{slots:t}){const n=se(!1);return An(()=>n.value=!0),()=>n.value?t.default&&t.default({}):t.placeholder&&t.placeholder({})}});function l_(e,t,n,r={}){const{transformState:s,registerComponents:o=!0,useHead:i=!0,rootContainer:a="#app"}=r,l=typeof window<"u";async function c(u=!1,f){const d=u?Wh(e):Kh(e);let m;i&&(m=r_(),d.use(m));const E=gg({history:u?Wm(t.base):Km(t.base),...t}),{routes:v}=t;o&&d.component("ClientOnly",i_);const C=[],h={app:d,head:m,isClient:l,router:E,routes:v,onSSRAppRendered:u?()=>{}:A=>C.push(A),triggerOnSSRAppRendered:()=>Promise.all(C.map(A=>A())),initialState:{},transformState:s,routePath:f};u&&(await o_(),h.initialState=(s==null?void 0:s(window.__INITIAL_STATE__||{}))||s_(window.__INITIAL_STATE__)),await(n==null?void 0:n(h)),d.use(E);let y,S=!0;if(E.beforeEach((A,F,x)=>{(S||y&&y===A.path)&&(S=!1,y=A.path,A.meta.state=h.initialState),x()}),!u){const A=h.routePath??"/";E.push(A),await E.isReady(),h.initialState=E.currentRoute.value.meta.state||{}}const T=h.initialState;return{...h,initialState:T}}return l&&(async()=>{const{app:u,router:f}=await c(!0);await f.isReady(),u.mount(a,!0)})(),c}const a_=e=>{const t={};Object.entries(Object.assign({"/src/layouts/centered.vue":()=>Qt(()=>import("./centered-CFGCZuHh.js"),__vite__mapDeps([0,1,2,3,4,5,6,7])),"/src/layouts/default.vue":()=>Qt(()=>import("./default-C3FHDxIb.js"),__vite__mapDeps([1,2,3,4,5,6]))})).forEach(([s,o])=>{let i=s.replace("/src/layouts/","").replace(".vue","");t[i]=o});function r(s,o=!0){return s.map(i=>{var a,l,c,u,f,d;if(((a=i.children)==null?void 0:a.length)>0&&(i.children=r(i.children,!1)),o){if(!i.component&&((l=i.children)==null?void 0:l.find(E=>{var v;return(E.path===""||E.path==="/")&&((v=E.meta)==null?void 0:v.isLayout)})))return i;if(((c=i.meta)==null?void 0:c.layout)!==!1)return{path:i.path,component:t[((u=i.meta)==null?void 0:u.layout)||"default"],children:i.path==="/"?[i]:[{...i,path:""}],meta:{isLayout:!0}}}return(f=i.meta)!=null&&f.layout?{path:i.path,component:t[(d=i.meta)==null?void 0:d.layout],children:[{...i,path:""}],meta:{isLayout:!0}}:i})}return r(e)};let c_;function u_(){return c_}function f_(e){return typeof e=="function"?e():Be(e)}function zs(e,t=""){if(e instanceof Promise)return e;const n=f_(e);return!e||!n?n:Array.isArray(n)?n.map(r=>zs(r,t)):typeof n=="object"?Object.fromEntries(Object.entries(n).map(([r,s])=>r==="titleTemplate"||r.startsWith("on")?[r,Be(s)]:[r,zs(s,r)])):n}const d_="usehead",vl=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{},El="__unhead_injection_handler__";function h_(){if(El in vl)return vl[El]();const e=Je(d_);return e||u_()}function Bc(e,t={}){const n=t.head||h_();if(n)return n.ssr?n.push(e,t):p_(n,e,t)}function p_(e,t,n={}){const r=se(!1),s=se({});Ga(()=>{s.value=r.value?{}:zs(t)});const o=e.push(s.value,n);return Se(s,a=>{o.patch(a)}),Pn()&&(Sa(()=>{o.dispose()}),wa(()=>{r.value=!0}),Ea(()=>{r.value=!1})),o}const wr="https://www.frsource.org",mn="/fast-angle/",No=Gp({attribute:"data-theme",valueLight:"light"}),Q_=Dp(No),m_=oe(()=>`${mn}${No.value?"favicon-dark.svg":"favicon.svg"}`),g_=Vt({__name:"App",setup(e){const{t,locale:n,availableLocales:r}=Zn(),s=yg(),o=pc(300);function i(){const l=document.querySelector("meta[name=viewport]");l==null||l.setAttribute("content",`width=device-width, height=${window.innerHeight}, initial-scale=1.0`)}const a=()=>o(i,{});return Bc({title:"Fast angle",htmlAttrs:{lang:n},meta:[{name:"description",content:oe(()=>t("main.description"))},{name:"twitter:card",content:"summary"},{name:"twitter:site",content:"@FRSOURCE1"},{name:"og:url",content:`${wr}${mn}`},{name:"og:title",content:"Fast Angle"},{name:"og:description",content:oe(()=>t("main.description"))},{name:"og:image",content:`${wr}${mn}fast-angle-og-image.jpg`},{name:"theme-color",content:oe(()=>(No.value,"#0189e9"))}],link:[{rel:"icon",type:"image/svg+xml",href:m_},...r.map(l=>({rel:"alternate",hreflang:l,href:`${wr}${mn}${s.resolve({name:`lang-${l}`}).fullPath.substring(1)}`}))]}),An(()=>{window.addEventListener("resize",a,{passive:!0}),i()}),(l,c)=>{const u=Od("RouterView");return Qr(),wo(u)}}}),__=["textContent"],y_=["textContent"],Gc=Vt({__name:"index",setup(e){const{t}=Zn();return Bc({meta:[{"http-equiv":"status",content:"302"},{"http-equiv":"refresh",content:`0;${wr}${mn}${js.value}`}]}),(n,r)=>(Qr(),ih(Me,null,[xr("h1",{textContent:Cs(Be(t)("lang_redirect.title"))},null,8,__),xr("p",{textContent:Cs(Be(t)("lang_redirect.description"))},null,8,y_)],64))}}),wl={};typeof wl=="function"&&wl(Gc);const Tl=()=>Qt(()=>import("./_...all_-CLOivLzp.js"),__vite__mapDeps([8,5])),bs=()=>Qt(()=>import("./index-sKdwiapj.js"),__vite__mapDeps([9,2,3,4,10])),vs=()=>Qt(()=>import("./privacy-policy-C6r_wkKn.js"),__vite__mapDeps([11,3,12])),Es=()=>Qt(()=>import("./terms-Dytl1uwk.js"),__vite__mapDeps([13,3,14])),b_=[{name:"index",path:"/",component:Gc,props:!0,meta:{layout:"centered"}},{name:"404",path:"/404",component:Tl,props:!0,meta:{layout:"centered"}},{name:"all",path:"/:all(.*)*",component:Tl,props:!0,meta:{layout:"centered"}},{name:"lang-de",path:"/de",component:bs,props:!0},{name:"lang-en",path:"/en",component:bs,props:!0},{name:"lang-pl",path:"/pl",component:bs,props:!0},{name:"lang-de-privacy-policy",path:"/de/privacy-policy",component:vs,props:!0,meta:{layout:"centered"}},{name:"lang-en-privacy-policy",path:"/en/privacy-policy",component:vs,props:!0,meta:{layout:"centered"}},{name:"lang-pl-privacy-policy",path:"/pl/privacy-policy",component:vs,props:!0,meta:{layout:"centered"}},{name:"lang-de-terms",path:"/de/terms",component:Es,props:!0,meta:{layout:"centered"}},{name:"lang-en-terms",path:"/en/terms",component:Es,props:!0,meta:{layout:"centered"}},{name:"lang-pl-terms",path:"/pl/terms",component:Es,props:!0,meta:{layout:"centered"}}],v_=a_(b_);l_(g_,{routes:v_,base:mn},e=>{Object.values(Object.assign({"./modules/i18n.ts":lm,"./modules/pwa.ts":fm,"./modules/virtual-keyboard.ts":pm})).forEach(t=>{var n;return(n=t.install)==null?void 0:n.call(t,e)})});export{_o as $,Se as A,q_ as B,yg as C,O_ as D,A_ as E,Me as F,J_ as G,wl as H,se as I,je as J,Df as K,ts as L,ch as M,I_ as N,U_ as O,$_ as P,Zp as Q,E_ as R,N_ as S,C_ as T,K_ as U,z_ as V,j_ as W,V_ as X,Pn as Y,An as Z,Qt as _,xr as a,Ln as a0,M_ as a1,G_ as a2,B_ as a3,D_ as a4,H_ as a5,Y_ as a6,ud as a7,x_ as a8,F_ as a9,T_ as aa,ro as ab,X_ as ac,P_ as ad,W_ as ae,Bc as af,L_ as ag,Ne as b,wo as c,Vt as d,ih as e,Qa as f,Be as g,wr as h,oe as i,mn as j,m_ as k,js as l,ua as m,so as n,Qr as o,k_ as p,w_ as q,Od as r,Ce as s,Cs as t,Zn as u,R_ as v,gd as w,S_ as x,Q_ as y,No as z}; diff --git a/assets/centered-D9JAbCqt.js b/assets/centered-CFGCZuHh.js similarity index 62% rename from assets/centered-D9JAbCqt.js rename to assets/centered-CFGCZuHh.js index 0bce76de..4c5990e4 100644 --- a/assets/centered-D9JAbCqt.js +++ b/assets/centered-CFGCZuHh.js @@ -1 +1 @@ -import s from"./default-BD_Mt-QL.js";import{d as t,r,o as a,c as n,w as c,a as p,b as l,n as _}from"./app-C_A3Ikqc.js";import{_ as m}from"./_plugin-vue_export-helper-DlAUqK2U.js";import"./Button-DRMNlNP8.js";import"./useUriLocale-DXOt3j7T.js";const d=t({__name:"centered",setup(w){return(e,x)=>{const o=r("RouterView");return a(),n(s,null,{default:c(()=>[p("div",{class:_(["flex-grow",e.$style.wrapper])},[l(o)],2)]),_:1})}}}),i="f_d",u={wrapper:i},f={$style:u},k=m(d,[["__cssModules",f]]);export{k as default}; +import s from"./default-C3FHDxIb.js";import{d as t,r,o as a,c as n,w as c,a as p,b as l,n as _}from"./app-DT9tPyzn.js";import{_ as m}from"./_plugin-vue_export-helper-DlAUqK2U.js";import"./Button-qlJbhzlo.js";import"./useUriLocale-URN521cf.js";const d=t({__name:"centered",setup(w){return(e,x)=>{const o=r("RouterView");return a(),n(s,null,{default:c(()=>[p("div",{class:_(["flex-grow",e.$style.wrapper])},[l(o)],2)]),_:1})}}}),i="f_d",u={wrapper:i},f={$style:u},k=m(d,[["__cssModules",f]]);export{k as default}; diff --git a/assets/default-BD_Mt-QL.js b/assets/default-C3FHDxIb.js similarity index 84% rename from assets/default-BD_Mt-QL.js rename to assets/default-C3FHDxIb.js index 87b93ed7..afd68208 100644 --- a/assets/default-BD_Mt-QL.js +++ b/assets/default-C3FHDxIb.js @@ -1 +1 @@ -import{d as v,u as $,r as w,o as l,e as c,a as e,n as o,f as C,t as h,g as t,h as H,b as m,w as g,l as k,m as y,i as L,j as A,k as B,p as F,q as S,v as V,s as D,F as z,x as I,y as N,z as E,c as p,A as M,B as U,C as j,D as q,E as G}from"./app-C_A3Ikqc.js";import{I as O,_ as P}from"./Button-DRMNlNP8.js";import{_ as b}from"./_plugin-vue_export-helper-DlAUqK2U.js";import{u as x}from"./useUriLocale-DXOt3j7T.js";const T=["href","data-tooltip","title"],J=["textContent"],K=["textContent"],Q=["aria-label","data-tooltip"],W=v({__name:"Footer",setup(d){const{t:s}=$();return(a,u)=>{const i=w("RouterLink");return l(),c("footer",null,[e("nav",{class:o(a.$style.nav)},[e("ul",null,[e("li",null,[e("strong",{class:o(a.$style["font-small"])},[C(h(t(s)("main.brought_to_you_by"))+" ",1),e("a",{href:`${"host"in a?a.host:t(H)}/`,"data-tooltip":t(s)("main.visit_our_website"),title:t(s)("main.visit_our_website")},"FRSOURCE",8,T)],2)])]),e("ul",{class:o(a.$style["right-col"])},[e("li",{class:o(a.$style.links)},[m(i,{to:{name:`lang-${t(k)}-terms`}},{default:g(()=>[e("small",{class:o(a.$style["font-small"]),textContent:h(t(s)("main.terms_and_conditions"))},null,10,J)]),_:1},8,["to"]),m(i,{to:{name:`lang-${t(k)}-privacy-policy`}},{default:g(()=>[e("small",{class:o(a.$style["font-small"]),textContent:h(t(s)("main.privacy_policy"))},null,10,K)]),_:1},8,["to"])],2),e("li",null,[e("a",{rel:"noreferrer",href:"https://github.com/FRSOURCE/fast-angle","aria-label":t(s)("main.star_us_on_github"),"data-tooltip":t(s)("main.star_us_on_github"),"data-placement":"left",target:"_blank",title:"GitHub"},[m(t(O))],8,Q)])],2)],2)])}}}),X="f_l",Y="f_n",Z={nav:X,"right-col":"f_m",links:Y,"font-small":"f_o"},tt={$style:Z},et=b(W,[["__cssModules",tt]]),st={viewBox:"0 0 32 32",width:"1.2em",height:"1.2em"},nt=e("path",{fill:"currentColor",d:"M16 12.005a4 4 0 1 1-4 4a4.005 4.005 0 0 1 4-4m0-2a6 6 0 1 0 6 6a6 6 0 0 0-6-6M5.394 6.813L6.81 5.399l3.505 3.506L8.9 10.319zM2 15.005h5v2H2zm3.394 10.193L8.9 21.692l1.414 1.414l-3.505 3.506zM15 25.005h2v5h-2zm6.687-1.9l1.414-1.414l3.506 3.506l-1.414 1.414zm3.313-8.1h5v2h-5zm-3.313-6.101l3.506-3.506l1.414 1.414l-3.506 3.506zM15 2.005h2v5h-2z"},null,-1),ot=[nt];function at(d,s){return l(),c("svg",st,[...ot])}const lt=y({name:"carbon-sun",render:at}),rt={viewBox:"0 0 32 32",width:"1.2em",height:"1.2em"},it=e("path",{fill:"currentColor",d:"M13.503 5.414a15.076 15.076 0 0 0 11.593 18.194a11.1 11.1 0 0 1-7.975 3.39c-.138 0-.278.005-.418 0a11.094 11.094 0 0 1-3.2-21.584M14.98 3a1 1 0 0 0-.175.016a13.096 13.096 0 0 0 1.825 25.981c.164.006.328 0 .49 0a13.07 13.07 0 0 0 10.703-5.555a1.01 1.01 0 0 0-.783-1.565A13.08 13.08 0 0 1 15.89 4.38A1.015 1.015 0 0 0 14.98 3"},null,-1),ct=[it];function ut(d,s){return l(),c("svg",rt,[...ct])}const _t=y({name:"carbon-moon",render:ut}),mt={viewBox:"0 0 32 32",width:"1.2em",height:"1.2em"},ht=e("path",{fill:"currentColor",d:"M18 19h6v2h-6zm0-4h12v2H18zm0-4h12v2H18zm-4 10v-2H9v-2H7v2H2v2h8.215a8.6 8.6 0 0 1-2.216 3.977A9.3 9.3 0 0 1 6.552 23H4.333a10.9 10.9 0 0 0 2.145 3.297A14.7 14.7 0 0 1 3 28.127L3.702 30a16.4 16.4 0 0 0 4.29-2.336A16.5 16.5 0 0 0 12.299 30L13 28.127A14.7 14.7 0 0 1 9.523 26.3a10.3 10.3 0 0 0 2.729-5.3zm-2.833-8h2.166L8.75 2H6.583L2 13h2.166L5 11h5.334zM5.833 9l1.834-4.4L9.5 9z"},null,-1),dt=[ht];function ft(d,s){return l(),c("svg",mt,[...dt])}const gt=y({name:"carbon-language",render:ft}),pt=["href"],vt=["src"],$t=["title","aria-label"],yt=["textContent"],bt=v({__name:"Header",setup(d){const{t:s,availableLocales:a,locale:u}=$(),i=L({get(){return u.value},set(n){u.value=n}});return(n,r)=>{const f=P;return l(),c("header",{class:o(n.$style.header)},[e("hgroup",{class:o(n.$style.heading)},[e("h1",null,[e("a",{href:t(A),class:o(n.$style.title)},[e("img",{src:t(B),class:o(n.$style.favicon),alt:"Fast Angle logo",width:"32",height:"32"},null,10,vt),C(" "+h(t(s)("main.title")),1)],10,pt)]),e("h2",null,h(t(s)("main.description")),1)],2),e("nav",null,[e("ul",null,[e("li",null,[e("form",{onSubmit:r[1]||(r[1]=F(()=>{},["prevent"])),class:o(n.$style.lang)},[m(t(gt),{class:o(n.$style["lang-icon"]),"aria-label":t(s)("board.nav.toggle_langs")},null,8,["class","aria-label"]),S(e("select",{class:o(n.$style["lang-select"]),"onUpdate:modelValue":r[0]||(r[0]=_=>D(i)?i.value=_:null),title:t(s)("board.nav.toggle_langs"),"aria-label":t(s)("board.nav.toggle_langs")},[(l(!0),c(z,null,I(t(a),_=>(l(),c("option",{key:_,textContent:h(_)},null,8,yt))),128))],10,$t),[[V,t(i)]])],34)]),e("li",null,[m(f,{title:t(s)("board.nav.toggle_dark"),onClick:r[2]||(r[2]=_=>t(N)())},{default:g(()=>[t(E)?(l(),p(t(lt),{key:0})):(l(),p(t(_t),{key:1}))]),_:1},8,["title"])])])])],2)}}}),kt="f_p",Mt="f_q",wt="f_r",Ct="f_s",Lt="f_t",zt={header:kt,heading:Mt,title:wt,favicon:Ct,lang:Lt,"lang-icon":"f_u","lang-select":"f_v"},Rt={$style:zt},Ht=b(bt,[["__cssModules",Rt]]),At=v({__name:"default",setup(d){const{locale:s}=$(),a=x();M(a,n=>{n&&n!==s.value&&(s.value=U(n))},{immediate:!0});const u=j(),i=L(()=>(u.currentRoute.value.name||"").split("-").length!==2);return M(s,n=>{const r=u.currentRoute.value.path.split("/");r[1]=n,u.push(r.join("/"))}),(n,r)=>{const f=Ht,_=w("RouterView"),R=et;return l(),c(z,null,[m(f,{class:o(n.$style.header)},null,8,["class"]),e("main",{class:o([n.$style.main,{[n.$style["main-no-footer"]]:!t(i)}])},[q(n.$slots,"default",{},()=>[m(_)]),t(i)?(l(),p(R,{key:0})):G("",!0)],2)],64)}}}),Bt="f_e",Ft="f_f",St={header:Bt,main:Ft,"main-no-footer":"f_g"},Vt={$style:St},Ut=b(At,[["__cssModules",Vt]]);export{Ut as default}; +import{d as v,u as $,r as M,o as l,e as c,a as e,n as o,f as C,t as h,g as t,h as H,b as m,w as g,l as k,m as y,i as L,j as A,k as B,p as F,q as S,v as V,s as D,F as z,x as I,y as N,z as E,c as p,A as w,B as U,C as j,D as x,E as G}from"./app-DT9tPyzn.js";import{I as O,_ as P}from"./Button-qlJbhzlo.js";import{_ as b}from"./_plugin-vue_export-helper-DlAUqK2U.js";import{u as q}from"./useUriLocale-URN521cf.js";const T=["href","data-tooltip","title"],J=["textContent"],K=["textContent"],Q=["aria-label","data-tooltip"],W=v({__name:"Footer",setup(d){const{t:s}=$();return(a,u)=>{const i=M("RouterLink");return l(),c("footer",null,[e("nav",{class:o(a.$style.nav)},[e("ul",null,[e("li",null,[e("strong",{class:o(a.$style["font-small"])},[C(h(t(s)("main.brought_to_you_by"))+" ",1),e("a",{href:`${"host"in a?a.host:t(H)}/`,"data-tooltip":t(s)("main.visit_our_website"),title:t(s)("main.visit_our_website")},"FRSOURCE",8,T)],2)])]),e("ul",{class:o(a.$style["right-col"])},[e("li",{class:o(a.$style.links)},[m(i,{to:{name:`lang-${t(k)}-terms`}},{default:g(()=>[e("small",{class:o(a.$style["font-small"]),textContent:h(t(s)("main.terms_and_conditions"))},null,10,J)]),_:1},8,["to"]),m(i,{to:{name:`lang-${t(k)}-privacy-policy`}},{default:g(()=>[e("small",{class:o(a.$style["font-small"]),textContent:h(t(s)("main.privacy_policy"))},null,10,K)]),_:1},8,["to"])],2),e("li",null,[e("a",{rel:"noreferrer",href:"https://github.com/FRSOURCE/fast-angle","aria-label":t(s)("main.star_us_on_github"),"data-tooltip":t(s)("main.star_us_on_github"),"data-placement":"left",target:"_blank",title:"GitHub"},[m(t(O))],8,Q)])],2)],2)])}}}),X="f_l",Y="f_n",Z={nav:X,"right-col":"f_m",links:Y,"font-small":"f_o"},tt={$style:Z},et=b(W,[["__cssModules",tt]]),st={viewBox:"0 0 32 32",width:"1.2em",height:"1.2em"},nt=e("path",{fill:"currentColor",d:"M16 12.005a4 4 0 1 1-4 4a4.005 4.005 0 0 1 4-4m0-2a6 6 0 1 0 6 6a6 6 0 0 0-6-6M5.394 6.813L6.81 5.399l3.505 3.506L8.9 10.319zM2 15.005h5v2H2zm3.394 10.193L8.9 21.692l1.414 1.414l-3.505 3.506zM15 25.005h2v5h-2zm6.687-1.9l1.414-1.414l3.506 3.506l-1.414 1.414zm3.313-8.1h5v2h-5zm-3.313-6.101l3.506-3.506l1.414 1.414l-3.506 3.506zM15 2.005h2v5h-2z"},null,-1),ot=[nt];function at(d,s){return l(),c("svg",st,[...ot])}const lt=y({name:"carbon-sun",render:at}),rt={viewBox:"0 0 32 32",width:"1.2em",height:"1.2em"},it=e("path",{fill:"currentColor",d:"M13.503 5.414a15.076 15.076 0 0 0 11.593 18.194a11.1 11.1 0 0 1-7.975 3.39c-.138 0-.278.005-.418 0a11.094 11.094 0 0 1-3.2-21.584M14.98 3a1 1 0 0 0-.175.016a13.096 13.096 0 0 0 1.825 25.981c.164.006.328 0 .49 0a13.07 13.07 0 0 0 10.703-5.555a1.01 1.01 0 0 0-.783-1.565A13.08 13.08 0 0 1 15.89 4.38A1.015 1.015 0 0 0 14.98 3"},null,-1),ct=[it];function ut(d,s){return l(),c("svg",rt,[...ct])}const _t=y({name:"carbon-moon",render:ut}),mt={viewBox:"0 0 32 32",width:"1.2em",height:"1.2em"},ht=e("path",{fill:"currentColor",d:"M18 19h6v2h-6zm0-4h12v2H18zm0-4h12v2H18zm-4 10v-2H9v-2H7v2H2v2h8.215a8.6 8.6 0 0 1-2.216 3.977A9.3 9.3 0 0 1 6.552 23H4.333a10.9 10.9 0 0 0 2.145 3.297A14.7 14.7 0 0 1 3 28.127L3.702 30a16.4 16.4 0 0 0 4.29-2.336A16.5 16.5 0 0 0 12.299 30L13 28.127A14.7 14.7 0 0 1 9.523 26.3a10.3 10.3 0 0 0 2.729-5.3zm-2.833-8h2.166L8.75 2H6.583L2 13h2.166L5 11h5.334zM5.833 9l1.834-4.4L9.5 9z"},null,-1),dt=[ht];function ft(d,s){return l(),c("svg",mt,[...dt])}const gt=y({name:"carbon-language",render:ft}),pt=["href"],vt=["src"],$t=["title","aria-label"],yt=["textContent"],bt=v({__name:"Header",setup(d){const{t:s,availableLocales:a,locale:u}=$(),i=L({get(){return u.value},set(n){u.value=n}});return(n,r)=>{const f=P;return l(),c("header",{class:o(n.$style.header)},[e("hgroup",{class:o(n.$style.heading)},[e("h1",null,[e("a",{href:t(A),class:o(n.$style.title)},[e("img",{src:t(B),class:o(n.$style.favicon),alt:"Fast Angle logo",width:"32",height:"32"},null,10,vt),C(" "+h(t(s)("main.title")),1)],10,pt)]),e("h2",null,h(t(s)("main.description")),1)],2),e("nav",null,[e("ul",null,[e("li",null,[e("form",{onSubmit:r[1]||(r[1]=F(()=>{},["prevent"])),class:o(n.$style.lang)},[m(t(gt),{class:o(n.$style["lang-icon"]),"aria-label":t(s)("board.nav.toggle_langs")},null,8,["class","aria-label"]),S(e("select",{class:o(n.$style["lang-select"]),"onUpdate:modelValue":r[0]||(r[0]=_=>D(i)?i.value=_:null),title:t(s)("board.nav.toggle_langs"),"aria-label":t(s)("board.nav.toggle_langs")},[(l(!0),c(z,null,I(t(a),_=>(l(),c("option",{key:_,textContent:h(_)},null,8,yt))),128))],10,$t),[[V,t(i)]])],34)]),e("li",null,[m(f,{title:t(s)("board.nav.toggle_dark"),onClick:r[2]||(r[2]=_=>t(N)())},{default:g(()=>[t(E)?(l(),p(t(lt),{key:0})):(l(),p(t(_t),{key:1}))]),_:1},8,["title"])])])])],2)}}}),kt="f_s",wt="f_t",Mt="f_u",Ct="f_v",Lt="f_w",zt={header:kt,heading:wt,title:Mt,favicon:Ct,lang:Lt,"lang-icon":"f_x","lang-select":"f_y"},Rt={$style:zt},Ht=b(bt,[["__cssModules",Rt]]),At=v({__name:"default",setup(d){const{locale:s}=$(),a=q();w(a,n=>{n&&n!==s.value&&(s.value=U(n))},{immediate:!0});const u=j(),i=L(()=>(u.currentRoute.value.name||"").split("-").length!==2);return w(s,n=>{const r=u.currentRoute.value.path.split("/");r[1]=n,u.push(r.join("/"))}),(n,r)=>{const f=Ht,_=M("RouterView"),R=et;return l(),c(z,null,[m(f,{class:o(n.$style.header)},null,8,["class"]),e("main",{class:o([n.$style.main,{[n.$style["main-no-footer"]]:!t(i)}])},[x(n.$slots,"default",{},()=>[m(_)]),t(i)?(l(),p(R,{key:0})):G("",!0)],2)],64)}}}),Bt="f_e",Ft="f_f",St={header:Bt,main:Ft,"main-no-footer":"f_g"},Vt={$style:St},Ut=b(At,[["__cssModules",Vt]]);export{Ut as default}; diff --git a/assets/default-Fqk_4fJ1.css b/assets/default-D9dwkEVE.css similarity index 61% rename from assets/default-Fqk_4fJ1.css rename to assets/default-D9dwkEVE.css index 47849344..573cb6e2 100644 --- a/assets/default-Fqk_4fJ1.css +++ b/assets/default-D9dwkEVE.css @@ -1 +1 @@ -.f_l{align-items:flex-start;--nav-element-spacing-vertical: .25rem}@media (min-width: 768px){.f_l{--nav-element-spacing-vertical: 1rem}}.f_m{margin-right:0!important}.f_n{margin-inline-end:.5rem;display:flex;flex-flow:column;width:max-content;text-align:right}.f_n:before{display:none}@media (min-width: 640px){.f_n{flex-flow:row;gap:1rem}}.f_o{font-size:.75em}.f_p{--block-spacing-vertical: 0 !important;--nav-element-spacing-vertical: .5rem;display:flex;justify-content:space-between;align-items:center}@media (min-width: 1024px){.f_p{margin:var(--nav-element-spacing-vertical) 0}}.f_q{overflow:hidden;max-height:2.25rem;margin:0;transition:max-height .3s ease-out}@media (min-width: 1024px){.f_q{margin-bottom:calc(var(--nav-element-spacing-vertical) / 2);max-height:120px}}.f_r{vertical-align:middle;font-size:1.5rem;color:var(--h2-color);--underline: rgba(255 255 255 / 0%)}@media (min-width: 1024px){.f_r{display:block;font-size:var(--font-size);margin-bottom:.5rem}}@media (min-width: 768px){.f_s{margin-right:.5rem}}.f_t{position:relative}.f_u{position:absolute;top:50%;left:.5rem;transform:translateY(-50%)}.f_v{width:0;padding-left:1.5rem!important;--nav-link-spacing-vertical: .35rem}.f_e{position:sticky;top:0;background:var(--background-color)}.f_f{--block-spacing-vertical: 0px !important;flex-grow:1;display:flex;flex-flow:column;overflow:hidden}@media (min-width: 768px){.f_g{padding-bottom:.5rem!important}}@media (min-width: 1024px){.f_g{padding-bottom:1rem!important}} +.f_l{align-items:flex-start;--nav-element-spacing-vertical: .25rem}@media (min-width: 768px){.f_l{--nav-element-spacing-vertical: 1rem}}.f_m{margin-right:0!important}.f_n{margin-inline-end:.5rem;display:flex;flex-flow:column;width:max-content;text-align:right}.f_n:before{display:none}@media (min-width: 640px){.f_n{flex-flow:row;gap:1rem}}.f_o{font-size:.75em}.f_s{--block-spacing-vertical: 0 !important;--nav-element-spacing-vertical: .5rem;display:flex;justify-content:space-between;align-items:center}@media (min-width: 1024px){.f_s{margin:var(--nav-element-spacing-vertical) 0}}.f_t{overflow:hidden;max-height:2.25rem;margin:0;transition:max-height .3s ease-out}@media (min-width: 1024px){.f_t{margin-bottom:calc(var(--nav-element-spacing-vertical) / 2);max-height:120px}}.f_u{vertical-align:middle;font-size:1.5rem;color:var(--h2-color);--underline: rgba(255 255 255 / 0%)}@media (min-width: 1024px){.f_u{display:block;font-size:var(--font-size);margin-bottom:.5rem}}@media (min-width: 768px){.f_v{margin-right:.5rem}}.f_w{position:relative}.f_x{position:absolute;top:50%;left:.5rem;transform:translateY(-50%)}.f_y{width:0;padding-left:1.5rem!important;--nav-link-spacing-vertical: .35rem}.f_e{position:sticky;top:0;background:var(--background-color)}.f_f{--block-spacing-vertical: 0px !important;flex-grow:1;display:flex;flex-flow:column;overflow:hidden}@media (min-width: 768px){.f_g{padding-bottom:.5rem!important}}@media (min-width: 1024px){.f_g{padding-bottom:1rem!important}} diff --git a/assets/index-CV-JKKpt.css b/assets/index-BnNlN_Ib.css similarity index 61% rename from assets/index-CV-JKKpt.css rename to assets/index-BnNlN_Ib.css index dfb92cd3..dc8f6b07 100644 --- a/assets/index-CV-JKKpt.css +++ b/assets/index-BnNlN_Ib.css @@ -1 +1 @@ -.f_an{margin:0;max-height:100vh}@media (min-width: 576px){.f_an{margin:var(--spacing);max-height:calc(100vh - var(--spacing) * 2)}}.f_ao{height:80px}.f_ap{position:sticky;bottom:calc(-1 * var(--block-spacing-vertical) - 1px)}.f_ad{flex-shrink:1;flex-grow:1;width:100px;min-width:0}.f_ae{width:160px}.f_af{width:80px}.f_ag,.f_ah{display:flex;gap:.5rem}.f_ag{flex-wrap:wrap}.f_ai{border-bottom:none!important;margin-top:calc(var(--spacing) * .25 + .375rem);cursor:default!important}.f_aj{--form-element-spacing-vertical: .5rem;--form-element-spacing-horizontal: .25rem;margin-right:0}.f_ak{opacity:.5}.f_al{display:flex;gap:.5rem;align-items:center}.f_al .f_am{margin:0 .5rem 0 auto;width:100px;--line-height: 9px;--form-element-spacing-vertical: .5rem;--form-element-spacing-horizontal: .75rem}@media (min-width: 1024px){.f_al .f_am{width:115px}}.f_4{width:auto!important}@media (min-width: 768px){.f_5{min-width:720px}}.f_6{display:none}@media (min-width: 1024px){.f_6{display:block}}.f_7{display:inline-flex;flex-wrap:wrap;gap:.25em}.f_8{font-size:.75em;line-height:2.5em}.f_9{list-style:none}.f__{display:flex;gap:2rem}.f_-{display:inline-flex;vertical-align:middle;margin-right:2em;gap:.5em}.f_aa{display:flex;width:100%;align-items:center;justify-content:space-between;gap:1em}.f_ab{margin-left:.25rem;vertical-align:middle}.f_ac{justify-content:flex-end;border:none;margin:0;font-size:.75em;padding:0;vertical-align:middle;background:none;color:inherit}.f_w{display:flex;justify-content:space-between;align-items:flex-end}.f_x{margin-left:auto;flex-flow:column;--nav-element-spacing-vertical: var(--nav-element-spacing-horizontal)}@media (min-width: 768px){.f_x{flex-flow:row}}.f_y{display:flex;flex-flow:column;gap:.5rem;align-items:center;margin:var(--nav-element-spacing-horizontal);margin-left:0;padding:var(--nav-link-spacing-vertical) var(--nav-link-spacing-horizontal);border-radius:4.5px}.f_z{position:absolute;z-index:1;border-radius:.25rem;box-sizing:content-box;margin:0;padding:0;transition:height .4s ease-in-out,width .4s ease-in-out,top .2s ease-in-out,left .2s ease-in-out,bottom .2s ease-in-out,right .2s ease-in-out}.f_z:not(.f_0):hover .f_1{opacity:.2}.f_z:not(.f_0) .f_2{padding:0;width:100%;height:100%;background:transparent;border-color:transparent;color:inherit}.f_2{position:absolute;z-index:1;top:0;right:0;align-items:center;justify-content:center;transition:none}.f_0 .f_1{opacity:1}.f_0 .f_2{margin:.5rem;padding:.5rem;width:auto}.f_1{height:100%;width:100%;opacity:.5;transition:opacity .2s ease-in-out}.f_h{position:relative;border:solid thin var(--card-border-color);border-radius:2px;display:flex;flex-flow:column;width:100%;height:260px;background:var(--card-background-color)}.f_i{flex-grow:1;min-height:0;width:100%;stroke:#fff;touch-action:none}.f_i:focus{outline:none}.f_i:focus-visible{outline:solid 2px var(--primary-focus)}.f_j{position:absolute;bottom:0;left:var(--nav-element-spacing-horizontal);right:var(--nav-element-spacing-horizontal)}.f_k{position:absolute;top:40%;left:20px;right:70px;margin:auto;max-width:600px;transform:translateY(-50%);text-align:justify;white-space:pre-line;pointer-events:none}@media (min-width: 768px){.f_k{right:20px}} +.f_ad{margin:0;max-height:100vh}@media (min-width: 576px){.f_ad{margin:var(--spacing);max-height:calc(100vh - var(--spacing) * 2)}}.f_ae{height:80px}.f_af{position:sticky;bottom:calc(-1 * var(--block-spacing-vertical) - 1px)}.f_ag{flex-shrink:1;flex-grow:1;width:100px;min-width:0}.f_ah{width:160px}.f_ai{width:80px}.f_aj,.f_ak{display:flex;gap:.5rem}.f_aj{flex-wrap:wrap}.f_al{border-bottom:none!important;margin-top:calc(var(--spacing) * .25 + .375rem);cursor:default!important}.f_am{--form-element-spacing-vertical: .5rem;--form-element-spacing-horizontal: .25rem;margin-right:0}.f_an{opacity:.5}.f_ao{display:flex;gap:.5rem;align-items:center}.f_ao .f_ap{margin:0 .5rem 0 auto;width:100px;--line-height: 9px;--form-element-spacing-vertical: .5rem;--form-element-spacing-horizontal: .75rem}@media (min-width: 1024px){.f_ao .f_ap{width:115px}}.f_4{width:auto!important}@media (min-width: 768px){.f_8{min-width:720px}}.f_9{display:none}@media (min-width: 1024px){.f_9{display:block}}.f__{display:inline-flex;flex-wrap:wrap;gap:.25em}.f_-{font-size:.75em;line-height:2.5em}.f_aa{list-style:none}.f_ab{display:flex;gap:2rem}.f_ac{display:inline-flex;vertical-align:middle;margin-right:2em;gap:.5em}.f_5{display:flex;width:100%;align-items:center;justify-content:space-between;gap:1em}.f_6{margin-left:.25rem;vertical-align:middle}.f_7{justify-content:flex-end;border:none;margin:0;font-size:.75em;padding:0;vertical-align:middle;background:none;color:inherit}.f_p{display:flex;justify-content:space-between;align-items:flex-end}.f_q{margin-left:auto;flex-flow:column;--nav-element-spacing-vertical: var(--nav-element-spacing-horizontal)}@media (min-width: 768px){.f_q{flex-flow:row}}.f_r{display:flex;flex-flow:column;gap:.5rem;align-items:center;margin:var(--nav-element-spacing-horizontal);margin-left:0;padding:var(--nav-link-spacing-vertical) var(--nav-link-spacing-horizontal);border-radius:4.5px}.f_z{position:absolute;z-index:1;border-radius:.25rem;box-sizing:content-box;margin:0;padding:0;transition:height .4s ease-in-out,width .4s ease-in-out,top .2s ease-in-out,left .2s ease-in-out,bottom .2s ease-in-out,right .2s ease-in-out}.f_z:not(.f_0):hover .f_1{opacity:.2}.f_z:not(.f_0) .f_2{padding:0;width:100%;height:100%;background:transparent;border-color:transparent;color:inherit}.f_2{position:absolute;z-index:1;top:0;right:0;align-items:center;justify-content:center;transition:none}.f_0 .f_1{opacity:1}.f_0 .f_2{margin:.5rem;padding:.5rem;width:auto}.f_1{height:100%;width:100%;opacity:.5;transition:opacity .2s ease-in-out}.f_h{position:relative;border:solid thin var(--card-border-color);border-radius:2px;display:flex;flex-flow:column;width:100%;height:260px;background:var(--card-background-color)}.f_i{flex-grow:1;min-height:0;width:100%;stroke:#fff;touch-action:none}.f_i:focus{outline:none}.f_i:focus-visible{outline:solid 2px var(--primary-focus)}.f_j{position:absolute;bottom:0;left:var(--nav-element-spacing-horizontal);right:var(--nav-element-spacing-horizontal)}.f_k{position:absolute;top:40%;left:20px;right:70px;margin:auto;max-width:600px;transform:translateY(-50%);text-align:justify;white-space:pre-line;pointer-events:none}@media (min-width: 768px){.f_k{right:20px}} diff --git a/assets/index-CTXHhIZ7.js b/assets/index-sKdwiapj.js similarity index 97% rename from assets/index-CTXHhIZ7.js rename to assets/index-sKdwiapj.js index b3db9e85..2a1c438c 100644 --- a/assets/index-CTXHhIZ7.js +++ b/assets/index-sKdwiapj.js @@ -1,7 +1,7 @@ -import{_ as Ht,I as Xn}from"./Button-DRMNlNP8.js";import{d as ot,I as O,A as Z,J as Oe,K as Zn,L as Jn,u as Wt,o as k,c as at,b as P,w as H,a as c,M as Ut,p as tt,t as B,D as se,n as C,f as Q,g as l,T as Qn,E as ct,N as Kt,i as A,m as Y,e as E,O as ts,P as es,Q as he,R as _n,q as Ft,S as Jt,s as kt,v as Ye,F as dt,x as Zt,U as ze,V as Be,r as ns,h as ss,l as qe,W as as,X as _e,Y as is,Z as os,$ as rs,a0 as ls,a1 as us,a2 as cs,a3 as ds,a4 as hs,a5 as yn,a6 as fs,z as De,a7 as Xe,a8 as vs,a9 as ps,aa as ms,ab as me,ac as bs,ad as gs,ae as _s}from"./app-C_A3Ikqc.js";import{_ as Et}from"./_plugin-vue_export-helper-DlAUqK2U.js";/*! +import{_ as Ht,I as Xn}from"./Button-qlJbhzlo.js";import{d as ot,I as O,A as Z,J as Oe,K as Zn,L as Jn,u as Wt,o as k,c as at,b as P,w as H,a as c,M as Ut,p as tt,t as B,D as se,n as C,f as Q,g as l,T as Qn,E as ct,N as Kt,i as A,m as Y,e as E,O as ts,P as es,Q as he,R as _n,q as Ft,S as Jt,s as kt,v as Ye,F as dt,x as Zt,U as ze,V as Be,r as ns,h as ss,l as qe,W as as,X as _e,Y as is,Z as os,$ as rs,a0 as ls,a1 as us,a2 as cs,a3 as ds,a4 as hs,a5 as yn,a6 as fs,z as De,a7 as Xe,a8 as vs,a9 as ps,aa as ms,ab as me,ac as bs,ad as gs,ae as _s}from"./app-DT9tPyzn.js";import{_ as Et}from"./_plugin-vue_export-helper-DlAUqK2U.js";/*! * tabbable 6.2.0 * @license MIT, https://github.com/focus-trap/tabbable/blob/master/LICENSE */var wn=["input:not([inert])","select:not([inert])","textarea:not([inert])","a[href]:not([inert])","button:not([inert])","[tabindex]:not(slot):not([inert])","audio[controls]:not([inert])","video[controls]:not([inert])",'[contenteditable]:not([contenteditable="false"]):not([inert])',"details>summary:first-of-type:not([inert])","details:not([inert])"],ye=wn.join(","),xn=typeof Element>"u",Vt=xn?function(){}:Element.prototype.matches||Element.prototype.msMatchesSelector||Element.prototype.webkitMatchesSelector,we=!xn&&Element.prototype.getRootNode?function(n){var t;return n==null||(t=n.getRootNode)===null||t===void 0?void 0:t.call(n)}:function(n){return n==null?void 0:n.ownerDocument},xe=function n(t,e){var s;e===void 0&&(e=!0);var a=t==null||(s=t.getAttribute)===null||s===void 0?void 0:s.call(t,"inert"),o=a===""||a==="true",i=o||e&&t&&n(t.parentNode);return i},ys=function(t){var e,s=t==null||(e=t.getAttribute)===null||e===void 0?void 0:e.call(t,"contenteditable");return s===""||s==="true"},$n=function(t,e,s){if(xe(t))return[];var a=Array.prototype.slice.apply(t.querySelectorAll(ye));return e&&Vt.call(t,ye)&&a.unshift(t),a=a.filter(s),a},Sn=function n(t,e,s){for(var a=[],o=Array.from(t);o.length;){var i=o.shift();if(!xe(i,!1))if(i.tagName==="SLOT"){var r=i.assignedElements(),u=r.length?r:i.children,d=n(u,!0,s);s.flatten?a.push.apply(a,d):a.push({scopeParent:i,candidates:d})}else{var m=Vt.call(i,ye);m&&s.filter(i)&&(e||!t.includes(i))&&a.push(i);var b=i.shadowRoot||typeof s.getShadowRoot=="function"&&s.getShadowRoot(i),p=!xe(b,!1)&&(!s.shadowRootFilter||s.shadowRootFilter(i));if(b&&p){var v=n(b===!0?i.children:b.children,!0,s);s.flatten?a.push.apply(a,v):a.push({scopeParent:i,candidates:v})}else o.unshift.apply(o,i.children)}}return a},kn=function(t){return!isNaN(parseInt(t.getAttribute("tabindex"),10))},Gt=function(t){if(!t)throw new Error("No node provided");return t.tabIndex<0&&(/^(AUDIO|VIDEO|DETAILS)$/.test(t.tagName)||ys(t))&&!kn(t)?0:t.tabIndex},ws=function(t,e){var s=Gt(t);return s<0&&e&&!kn(t)?0:s},xs=function(t,e){return t.tabIndex===e.tabIndex?t.documentOrder-e.documentOrder:t.tabIndex-e.tabIndex},Tn=function(t){return t.tagName==="INPUT"},$s=function(t){return Tn(t)&&t.type==="hidden"},Ss=function(t){var e=t.tagName==="DETAILS"&&Array.prototype.slice.apply(t.children).some(function(s){return s.tagName==="SUMMARY"});return e},ks=function(t,e){for(var s=0;ssummary:first-of-type"),i=o?t.parentElement:t;if(Vt.call(i,"details:not([open]) *"))return!0;if(!s||s==="full"||s==="legacy-full"){if(typeof a=="function"){for(var r=t;t;){var u=t.parentElement,d=we(t);if(u&&!u.shadowRoot&&a(u)===!0)return Ze(t);t.assignedSlot?t=t.assignedSlot:!u&&d!==t.ownerDocument?t=d.host:t=u}t=r}if(Es(t))return!t.getClientRects().length;if(s!=="legacy-full")return!0}else if(s==="non-zero-area")return Ze(t);return!1},Ds=function(t){if(/^(INPUT|BUTTON|SELECT|TEXTAREA)$/.test(t.tagName))for(var e=t.parentElement;e;){if(e.tagName==="FIELDSET"&&e.disabled){for(var s=0;s=0)},Ps=function n(t){var e=[],s=[];return t.forEach(function(a,o){var i=!!a.scopeParent,r=i?a.scopeParent:a,u=ws(r,i),d=i?n(a.candidates):r;u===0?i?e.push.apply(e,d):e.push(r):s.push({documentOrder:o,tabIndex:u,item:a,isScope:i,content:d})}),s.sort(xs).reduce(function(a,o){return o.isScope?a.push.apply(a,o.content):a.push(o.content),a},[]).concat(e)},Ns=function(t,e){e=e||{};var s;return e.getShadowRoot?s=Sn([t],e.includeContainer,{filter:Ne.bind(null,e),flatten:!1,getShadowRoot:e.getShadowRoot,shadowRootFilter:Fs}):s=$n(t,e.includeContainer,Ne.bind(null,e)),Ps(s)},Rs=function(t,e){e=e||{};var s;return e.getShadowRoot?s=Sn([t],e.includeContainer,{filter:$e.bind(null,e),flatten:!0,getShadowRoot:e.getShadowRoot}):s=$n(t,e.includeContainer,$e.bind(null,e)),s},Yt=function(t,e){if(e=e||{},!t)throw new Error("No node provided");return Vt.call(t,ye)===!1?!1:Ne(e,t)},As=wn.concat("iframe").join(","),Fe=function(t,e){if(e=e||{},!t)throw new Error("No node provided");return Vt.call(t,As)===!1?!1:$e(e,t)};/*! * focus-trap 7.5.4 * @license MIT, https://github.com/focus-trap/focus-trap/blob/master/LICENSE -*/function Je(n,t){var e=Object.keys(n);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(n);t&&(s=s.filter(function(a){return Object.getOwnPropertyDescriptor(n,a).enumerable})),e.push.apply(e,s)}return e}function Qe(n){for(var t=1;t0){var s=t[t.length-1];s!==e&&s.pause()}var a=t.indexOf(e);a===-1||t.splice(a,1),t.push(e)},deactivateTrap:function(t,e){var s=t.indexOf(e);s!==-1&&t.splice(s,1),t.length>0&&t[t.length-1].unpause()}},Ls=function(t){return t.tagName&&t.tagName.toLowerCase()==="input"&&typeof t.select=="function"},Gs=function(t){return(t==null?void 0:t.key)==="Escape"||(t==null?void 0:t.key)==="Esc"||(t==null?void 0:t.keyCode)===27},ae=function(t){return(t==null?void 0:t.key)==="Tab"||(t==null?void 0:t.keyCode)===9},Us=function(t){return ae(t)&&!t.shiftKey},Vs=function(t){return ae(t)&&t.shiftKey},en=function(t){return setTimeout(t,0)},nn=function(t,e){var s=-1;return t.every(function(a,o){return e(a)?(s=o,!1):!0}),s},Qt=function(t){for(var e=arguments.length,s=new Array(e>1?e-1:0),a=1;a1?y-1:0),R=1;R=0)h=s.activeElement;else{var f=i.tabbableGroups[0],y=f&&f.firstTabbableNode;h=y||m("fallbackFocus")}if(!h)throw new Error("Your focus-trap needs to have at least one focusable element");return h},p=function(){if(i.containerGroups=i.containers.map(function(h){var f=Ns(h,o.tabbableOptions),y=Rs(h,o.tabbableOptions),N=f.length>0?f[0]:void 0,R=f.length>0?f[f.length-1]:void 0,L=y.find(function(W){return Yt(W)}),G=y.slice().reverse().find(function(W){return Yt(W)}),q=!!f.find(function(W){return Gt(W)>0});return{container:h,tabbableNodes:f,focusableNodes:y,posTabIndexesFound:q,firstTabbableNode:N,lastTabbableNode:R,firstDomTabbableNode:L,lastDomTabbableNode:G,nextTabbableNode:function(ht){var It=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0,ft=f.indexOf(ht);return ft<0?It?y.slice(y.indexOf(ht)+1).find(function(Dt){return Yt(Dt)}):y.slice(0,y.indexOf(ht)).reverse().find(function(Dt){return Yt(Dt)}):f[ft+(It?1:-1)]}}}),i.tabbableGroups=i.containerGroups.filter(function(h){return h.tabbableNodes.length>0}),i.tabbableGroups.length<=0&&!m("fallbackFocus"))throw new Error("Your focus-trap must have at least one container with at least one tabbable node in it at all times");if(i.containerGroups.find(function(h){return h.posTabIndexesFound})&&i.containerGroups.length>1)throw new Error("At least one node with a positive tabindex was found in one of your focus-trap's multiple containers. Positive tabindexes are only supported in single-container focus-traps.")},v=function T(h){var f=h.activeElement;if(f)return f.shadowRoot&&f.shadowRoot.activeElement!==null?T(f.shadowRoot):f},_=function T(h){if(h!==!1&&h!==v(document)){if(!h||!h.focus){T(b());return}h.focus({preventScroll:!!o.preventScroll}),i.mostRecentlyFocusedNode=h,Ls(h)&&h.select()}},$=function(h){var f=m("setReturnFocus",h);return f||(f===!1?!1:h)},D=function(h){var f=h.target,y=h.event,N=h.isBackward,R=N===void 0?!1:N;f=f||fe(y),p();var L=null;if(i.tabbableGroups.length>0){var G=d(f,y),q=G>=0?i.containerGroups[G]:void 0;if(G<0)R?L=i.tabbableGroups[i.tabbableGroups.length-1].lastTabbableNode:L=i.tabbableGroups[0].firstTabbableNode;else if(R){var W=nn(i.tabbableGroups,function(jt){var rt=jt.firstTabbableNode;return f===rt});if(W<0&&(q.container===f||Fe(f,o.tabbableOptions)&&!Yt(f,o.tabbableOptions)&&!q.nextTabbableNode(f,!1))&&(W=G),W>=0){var ht=W===0?i.tabbableGroups.length-1:W-1,It=i.tabbableGroups[ht];L=Gt(f)>=0?It.lastTabbableNode:It.lastDomTabbableNode}else ae(y)||(L=q.nextTabbableNode(f,!1))}else{var ft=nn(i.tabbableGroups,function(jt){var rt=jt.lastTabbableNode;return f===rt});if(ft<0&&(q.container===f||Fe(f,o.tabbableOptions)&&!Yt(f,o.tabbableOptions)&&!q.nextTabbableNode(f))&&(ft=G),ft>=0){var Dt=ft===i.tabbableGroups.length-1?0:ft+1,de=i.tabbableGroups[Dt];L=Gt(f)>=0?de.firstTabbableNode:de.firstDomTabbableNode}else ae(y)||(L=q.nextTabbableNode(f))}}else L=m("fallbackFocus");return L},g=function(h){var f=fe(h);if(!(d(f,h)>=0)){if(Qt(o.clickOutsideDeactivates,h)){r.deactivate({returnFocus:o.returnFocusOnDeactivate});return}Qt(o.allowOutsideClick,h)||h.preventDefault()}},F=function(h){var f=fe(h),y=d(f,h)>=0;if(y||f instanceof Document)y&&(i.mostRecentlyFocusedNode=f);else{h.stopImmediatePropagation();var N,R=!0;if(i.mostRecentlyFocusedNode)if(Gt(i.mostRecentlyFocusedNode)>0){var L=d(i.mostRecentlyFocusedNode),G=i.containerGroups[L].tabbableNodes;if(G.length>0){var q=G.findIndex(function(W){return W===i.mostRecentlyFocusedNode});q>=0&&(o.isKeyForward(i.recentNavEvent)?q+1=0&&(N=G[q-1],R=!1))}}else i.containerGroups.some(function(W){return W.tabbableNodes.some(function(ht){return Gt(ht)>0})})||(R=!1);else R=!1;R&&(N=D({target:i.mostRecentlyFocusedNode,isBackward:o.isKeyBackward(i.recentNavEvent)})),_(N||i.mostRecentlyFocusedNode||b())}i.recentNavEvent=void 0},M=function(h){var f=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1;i.recentNavEvent=h;var y=D({event:h,isBackward:f});y&&(ae(h)&&h.preventDefault(),_(y))},S=function(h){if(Gs(h)&&Qt(o.escapeDeactivates,h)!==!1){h.preventDefault(),r.deactivate();return}(o.isKeyForward(h)||o.isKeyBackward(h))&&M(h,o.isKeyBackward(h))},V=function(h){var f=fe(h);d(f,h)>=0||Qt(o.clickOutsideDeactivates,h)||Qt(o.allowOutsideClick,h)||(h.preventDefault(),h.stopImmediatePropagation())},z=function(){if(i.active)return tn.activateTrap(a,r),i.delayInitialFocusTimer=o.delayInitialFocus?en(function(){_(b())}):_(b()),s.addEventListener("focusin",F,!0),s.addEventListener("mousedown",g,{capture:!0,passive:!1}),s.addEventListener("touchstart",g,{capture:!0,passive:!1}),s.addEventListener("click",V,{capture:!0,passive:!1}),s.addEventListener("keydown",S,{capture:!0,passive:!1}),r},xt=function(){if(i.active)return s.removeEventListener("focusin",F,!0),s.removeEventListener("mousedown",g,!0),s.removeEventListener("touchstart",g,!0),s.removeEventListener("click",V,!0),s.removeEventListener("keydown",S,!0),r},Ot=function(h){var f=h.some(function(y){var N=Array.from(y.removedNodes);return N.some(function(R){return R===i.mostRecentlyFocusedNode})});f&&_(b())},$t=typeof window<"u"&&"MutationObserver"in window?new MutationObserver(Ot):void 0,U=function(){$t&&($t.disconnect(),i.active&&!i.paused&&i.containers.map(function(h){$t.observe(h,{subtree:!0,childList:!0})}))};return r={get active(){return i.active},get paused(){return i.paused},activate:function(h){if(i.active)return this;var f=u(h,"onActivate"),y=u(h,"onPostActivate"),N=u(h,"checkCanFocusTrap");N||p(),i.active=!0,i.paused=!1,i.nodeFocusedBeforeActivation=s.activeElement,f==null||f();var R=function(){N&&p(),z(),U(),y==null||y()};return N?(N(i.containers.concat()).then(R,R),this):(R(),this)},deactivate:function(h){if(!i.active)return this;var f=Qe({onDeactivate:o.onDeactivate,onPostDeactivate:o.onPostDeactivate,checkCanReturnFocus:o.checkCanReturnFocus},h);clearTimeout(i.delayInitialFocusTimer),i.delayInitialFocusTimer=void 0,xt(),i.active=!1,i.paused=!1,U(),tn.deactivateTrap(a,r);var y=u(f,"onDeactivate"),N=u(f,"onPostDeactivate"),R=u(f,"checkCanReturnFocus"),L=u(f,"returnFocus","returnFocusOnDeactivate");y==null||y();var G=function(){en(function(){L&&_($(i.nodeFocusedBeforeActivation)),N==null||N()})};return L&&R?(R($(i.nodeFocusedBeforeActivation)).then(G,G),this):(G(),this)},pause:function(h){if(i.paused||!i.active)return this;var f=u(h,"onPause"),y=u(h,"onPostPause");return i.paused=!0,f==null||f(),xt(),U(),y==null||y(),this},unpause:function(h){if(!i.paused||!i.active)return this;var f=u(h,"onUnpause"),y=u(h,"onPostUnpause");return i.paused=!1,f==null||f(),p(),z(),U(),y==null||y(),this},updateContainerElements:function(h){var f=[].concat(h).filter(Boolean);return i.containers=f.map(function(y){return typeof y=="string"?s.querySelector(y):y}),i.active&&p(),U(),this}},r.updateContainerElements(t),r};const Ks=ot({name:"UseFocusTrap",props:["as","options"],setup(n,{slots:t}){let e;const s=O(),a=()=>e&&e.activate(),o=()=>e&&e.deactivate();return Z(()=>Oe(s),i=>{i&&(e=Ws(i,n.options||{}),a())},{flush:"post"}),Zn(()=>o()),()=>{if(t.default)return Jn(n.as||"div",{ref:s},t.default())}}}),js=["textContent"],Ys={inheritAttrs:!1},qs=ot({...Ys,__name:"Modal",props:{heading:{type:String,required:!0},modelValue:{type:Boolean,required:!0}},emits:["update:modelValue"],setup(n,{emit:t}){const e=t,{t:s}=Wt(),a=O(),o=()=>e("update:modelValue",!1);return Z(a,i=>{i==null||i.showModal()}),(i,r)=>{const u=Ht;return n.modelValue?(k(),at(Qn,{key:0,to:"body"},[P(l(Ks),{options:{immediate:!0,initialFocus:!1}},{default:H(()=>[c("dialog",{ref_key:"dialog",ref:a,"aria-modal":"",onClick:o,onClose:o},[c("article",Ut({class:i.$style.content},i.$attrs,{onClick:r[0]||(r[0]=tt(()=>{},["stop"]))}),[c("h3",{textContent:B(n.heading)},null,8,js),se(i.$slots,"default"),c("footer",{class:C(i.$style.footer)},[se(i.$slots,"footer-pre"),P(u,{onClick:o,class:"outline"},{default:H(()=>[Q(B(l(s)("main.close")),1)]),_:1}),se(i.$slots,"footer")],2)],16)],544)]),_:3})])):ct("",!0)}}}),Xs="f_an",Zs="f_ao",Js="f_ap",Qs={content:Xs,spacer:Zs,footer:Js},ta={$style:Qs},Cn=Et(qs,[["__cssModules",ta]]),Me=Kt(()=>O());function ea(n,t){const e=new MouseEvent("click",{view:window,bubbles:!1,cancelable:!0}),s=document.createElement("a");s.setAttribute("download",t),s.setAttribute("href",n),s.setAttribute("target","_blank"),s.dispatchEvent(e)}async function na(n,t){const e=new XMLSerializer().serializeToString(n),s=new Blob([e],{type:"image/svg+xml;charset=utf-8"}),a=new Image,o=URL.createObjectURL(s);await new Promise((i,r)=>{a.onload=function(){t.drawImage(a,0,0),URL.revokeObjectURL(o),i()},a.onabort=a.onerror=()=>r(),a.src=o})}const ie={JPG:1,PNG:2},sa={[ie.JPG]:{encoding:"image/jpeg",extension:"jpg"},[ie.PNG]:{encoding:"image/png",extension:"png"}};function aa(n){var s;const t=n.cloneNode(!0),e=window.getComputedStyle(n);return(s=t.querySelector("circle"))==null||s.remove(),t.style.setProperty("--background-color-transparent",e.getPropertyValue("--background-color-transparent")),t.style.color=t.style.fill=e.getPropertyValue("--color"),t.style.stroke="#fff",t.style.fontFamily="Arial",t.style.fontSize="20px",t}const Mn=Kt(()=>{const n=document.createElement("canvas"),t=n==null?void 0:n.getContext("2d"),e=Me(),s=A(()=>e.value&&t);return{triggerDownload:async({filename:o,filetype:i,quality:r,width:u,height:d})=>{if(!s.value||!n||!e.value||!t)return console.error("Cannot download due to required api missing:",s.value,n,e.value,t);n.width=u,n.height=d,await na(aa(e.value),t);const{encoding:m,extension:b}=sa[i],p=n.toDataURL(m,r);ea(p,`${o}.${b}`)},isSupported:s}}),Mt={px:1,"%":2,in:3,mm:4};function ia(n,t,e){let s=n;switch(t){case Mt["%"]:s=n*100/e;break;case Mt.in:s=n/window.devicePixelRatio;break;case Mt.mm:s=n*25.4/window.devicePixelRatio;break}return+s.toFixed(6)}function oa(n,t,e){let s=n;switch(t){case Mt["%"]:s=n/100*e;break;case Mt.in:s=n*window.devicePixelRatio;break;case Mt.mm:s=n*window.devicePixelRatio/25.4;break}return+s.toFixed(5)}function sn(n,t,e){const s=O(0),a=O(n.value-1),o=O(0);return Z([n,t],([i,r],[,u])=>{(a.value!==i||r!==u)&&(a.value=i,s.value=ia(i,r,e.value))},{immediate:!0}),Z(o,i=>{s.value!==i&&(a.value=oa(i,t.value,e.value))}),Z(s,i=>o.value=i,{immediate:!0}),o}const ra={viewBox:"0 0 32 32",width:"1.2em",height:"1.2em"},la=c("path",{fill:"currentColor",d:"M24 14h-2V8a6 6 0 0 0-12 0v6H8a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2V16a2 2 0 0 0-2-2M12 8a4 4 0 0 1 8 0v6h-8Zm12 20H8V16h16Z"},null,-1),ua=[la];function ca(n,t){return k(),E("svg",ra,[...ua])}const da=Y({name:"carbon-locked",render:ca}),ha={viewBox:"0 0 32 32",width:"1.2em",height:"1.2em"},fa=c("path",{fill:"currentColor",d:"M24 14H12V8a4 4 0 0 1 8 0h2a6 6 0 0 0-12 0v6H8a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2V16a2 2 0 0 0-2-2m0 14H8V16h16Z"},null,-1),va=[fa];function pa(n,t){return k(),E("svg",ha,[...va])}const ma=Y({name:"carbon-unlocked",render:pa}),ba=ts({...es,xs:480}),ga={class:"flex-grow"},_a=["aria-invalid"],ya=["value","textContent"],wa=["aria-invalid"],xa=["aria-invalid"],$a=["data-tooltip"],Sa=["value","textContent"],ka=["aria-invalid"],Ta=ot({__name:"BoardControlsSvgDownloadModalContent",props:{boardWidth:{type:Number,required:!0},boardHeight:{type:Number,required:!0}},emits:["downloadFinish"],setup(n,{emit:t}){const e=n,s=t,{t:a}=Wt(),{triggerDownload:o}=Mn(),i=he("FA_FILENAME","fast-angle-image"),{boardHeight:r,boardWidth:u}=_n(e),d=O(r.value),m=O(u.value),b=he("FA_SIZE_UNIT",Mt.px),p=O(!0),v=O(u.value/r.value);ba.isGreaterOrEqual("xl")&&Z([u,r],([M,S])=>{m.value=M,d.value=S,v.value=M/S});const _=sn(d,b,r),$=sn(m,b,u);Z([$,_],([M,S])=>{p.value||(v.value=M/S)},{flush:"sync",immediate:!0}),Z(_,()=>{_.value<0&&(_.value=1),p.value&&_.value!==+($.value/v.value).toFixed(3)&&($.value=+(_.value*v.value).toFixed(3))},{flush:"sync"}),Z($,()=>{$.value<0&&($.value=1),p.value&&$.value!==+(_.value*v.value).toFixed(3)&&(_.value=+($.value/v.value).toFixed(3))},{flush:"sync"});const D=he("FA_FILETYPE",ie.PNG),g=he("FA_QUALITY",100);Z(g,()=>{g.value>100&&(g.value=100),g.value<0&&(g.value=0)});async function F(){await o({filename:i.value,filetype:D.value,quality:g.value/100,width:m.value,height:d.value}).catch(()=>{}),s("downloadFinish")}return(M,S)=>{const V=Ht;return k(),E("form",{onSubmit:tt(F,["prevent"])},[c("div",{class:C(M.$style.name)},[c("label",ga,[Q(B(l(a)("board.nav.download_image.name_label"))+" ",1),Ft(c("input",{"onUpdate:modelValue":S[0]||(S[0]=z=>kt(i)?i.value=z:null),type:"text",name:"name",required:"","aria-invalid":!l(i)},null,8,_a),[[Jt,l(i)]])]),c("label",{class:C(M.$style["label--big"])},[Q(B(l(a)("board.nav.download_image.format_label"))+" ",1),Ft(c("select",{"onUpdate:modelValue":S[1]||(S[1]=z=>kt(D)?D.value=z:null),required:""},[(k(!0),E(dt,null,Zt(Object.keys(l(ie)),z=>(k(),E("option",{key:z,value:l(ie)[z],textContent:B(z)},null,8,ya))),128))],512),[[Ye,l(D)]])],2)],2),c("fieldset",{class:C(M.$style.sizing)},[c("legend",null,[c("small",null,B(l(a)("board.nav.download_image.sizing_label")),1)]),c("label",{class:C(M.$style.label)},[Q(B(l(a)("board.nav.download_image.width_label"))+" ",1),Ft(c("input",{"onUpdate:modelValue":S[2]||(S[2]=z=>kt($)?$.value=z:null),min:"1",type:"number",step:"0.000001",name:"width",required:"","aria-invalid":!l($)||l($)<1},null,8,wa),[[Jt,l($),void 0,{number:!0}]])],2),c("label",{class:C(M.$style.label)},[Q(B(l(a)("board.nav.download_image.height_label"))+" ",1),Ft(c("input",{"onUpdate:modelValue":S[3]||(S[3]=z=>kt(_)?_.value=z:null),min:"1",type:"number",step:"0.000001",name:"height",required:"","aria-invalid":!l(_)||l(_)<1},null,8,xa),[[Jt,l(_),void 0,{number:!0}]])],2),c("label",null,[Q("   "),c("div",{class:C(M.$style["aspect-ratio"]),"data-tooltip":l(a)("board.nav.download_image.keep_aspect_ratio"),"data-placement":"left"},[P(V,{"aria-label":l(a)("board.nav.download_image.keep_aspect_ratio"),class:C([M.$style["aspect-ratio-btn"],{[M.$style["aspect-ratio-btn--inactive"]]:!l(p)}]),onClick:S[4]||(S[4]=z=>p.value=!l(p))},{default:H(()=>[l(p)?(k(),at(l(da),{key:0})):(k(),at(l(ma),{key:1}))]),_:1},8,["aria-label","class"])],10,$a)]),c("label",{class:C([M.$style.label,M.$style["label--small"]])},[Q(B(l(a)("board.nav.download_image.unit_label"))+" ",1),Ft(c("select",{"onUpdate:modelValue":S[5]||(S[5]=z=>kt(b)?b.value=z:null),required:""},[(k(!0),E(dt,null,Zt(Object.keys(l(Mt)),z=>(k(),E("option",{key:z,value:l(Mt)[z],textContent:B(z)},null,8,Sa))),128))],512),[[Ye,l(b)]])],2)],2),c("label",null,[c("span",{class:C(M.$style.quality)},[Q(B(l(a)("board.nav.download_image.quality_label"))+" ",1),Ft(c("input",{"onUpdate:modelValue":S[6]||(S[6]=z=>kt(g)?g.value=z:null),type:"number",min:"1",max:"100",class:C(M.$style.quality__input),name:"quality","aria-invalid":!l(g)||l(g)>100||l(g)<1},null,10,ka),[[Jt,l(g),void 0,{number:!0}]]),Q(" % ")],2),Ft(c("input",{"onUpdate:modelValue":S[7]||(S[7]=z=>kt(g)?g.value=z:null),type:"range",min:"1",max:"100",name:"quality"},null,512),[[Jt,l(g),void 0,{number:!0}]])])],32)}}}),Ca="f_ad",Ma="f_ag",Ea="f_ah",Ia="f_al",Da="f_am",Fa={label:Ca,"label--big":"f_ae","label--small":"f_af",sizing:Ma,name:Ea,"aspect-ratio":"f_ai","aspect-ratio-btn":"f_aj","aspect-ratio-btn--inactive":"f_ak",quality:Ia,quality__input:Da},Pa={$style:Fa},Na=Et(Ta,[["__cssModules",Pa]]),Ra={viewBox:"0 0 32 32",width:"1.2em",height:"1.2em"},Aa=c("path",{fill:"currentColor",d:"M26 24v4H6v-4H4v4a2 2 0 0 0 2 2h20a2 2 0 0 0 2-2v-4zm0-10l-1.41-1.41L17 20.17V2h-2v18.17l-7.59-7.58L6 14l10 10z"},null,-1),Oa=[Aa];function za(n,t){return k(),E("svg",Ra,[...Oa])}const Ba=Y({name:"carbon-download",render:za}),Ee=Kt(()=>O()),La={key:0},an="board_svg_download_form",Ga=ot({__name:"BoardControlsSvgDownload",props:{disabled:{type:Boolean,default:!1}},setup(n){const{t}=Wt(),{isSupported:e}=Mn(),s=Ee(),{height:a,width:o}=ze(s),i=O(!1),r=O(!1);return Be({onEventFired(u){(u.ctrlKey||u.metaKey)&&u.key==="s"&&(u.preventDefault(),i.value=!0)},passive:!1}),(u,d)=>{const m=Na,b=Ht,p=Cn;return l(e)?(k(),E("li",La,[P(b,{tooltip:`${l(t)("board.nav.download_image.action")} [ctrl + s][⌘ + s]`,"tooltip-placement":"left",disabled:n.disabled?void 0:!0,onClick:d[3]||(d[3]=v=>i.value=!0),onTouchstart:d[4]||(d[4]=tt(v=>i.value=!0,["stop","prevent"]))},{default:H(()=>[P(l(Ba)),P(p,{modelValue:l(i),"onUpdate:modelValue":d[2]||(d[2]=v=>kt(i)?i.value=v:null),heading:l(t)("board.nav.download_image.heading")},{footer:H(()=>[P(b,{type:"submit",role:"button",form:an,disabled:l(r),"aria-busy":l(r),class:C(u.$style["button-submit"]),autofocus:""},{default:H(()=>[Q(B(l(t)("board.nav.download_image.save")),1)]),_:1},8,["disabled","aria-busy","class"])]),default:H(()=>[P(m,{id:an,"board-height":l(a),"board-width":l(o),onSubmit:d[0]||(d[0]=v=>r.value=!0),onDownloadFinish:d[1]||(d[1]=v=>(r.value=!1,i.value=!1))},null,8,["board-height","board-width"])]),_:1},8,["modelValue","heading"])]),_:1},8,["tooltip","disabled"])])):ct("",!0)}}}),Ua={"button-submit":"f_4"},Va={$style:Ua},Ha=Et(Ga,[["__cssModules",Va]]),Wa={viewBox:"0 0 32 32",width:"1.2em",height:"1.2em"},Ka=c("path",{fill:"currentColor",d:"M16 2a14 14 0 1 0 14 14A14 14 0 0 0 16 2m0 26a12 12 0 1 1 12-12a12 12 0 0 1-12 12"},null,-1),ja=c("circle",{cx:"16",cy:"23.5",r:"1.5",fill:"currentColor"},null,-1),Ya=c("path",{fill:"currentColor",d:"M17 8h-1.5a4.49 4.49 0 0 0-4.5 4.5v.5h2v-.5a2.5 2.5 0 0 1 2.5-2.5H17a2.5 2.5 0 0 1 0 5h-2v4.5h2V17a4.5 4.5 0 0 0 0-9"},null,-1),qa=[Ka,ja,Ya];function Xa(n,t){return k(),E("svg",Wa,[...qa])}const Za=Y({name:"carbon-help",render:Xa}),Ja={viewBox:"0 0 32 32",width:"1.2em",height:"1.2em"},Qa=c("path",{fill:"currentColor",d:"M22.5 4c-2 0-3.9.8-5.3 2.2L16 7.4l-1.1-1.1c-2.9-3-7.7-3-10.6-.1l-.1.1c-3 3-3 7.8 0 10.8L16 29l11.8-11.9c3-3 3-7.8 0-10.8C26.4 4.8 24.5 4 22.5 4"},null,-1),ti=[Qa];function ei(n,t){return k(),E("svg",Ja,[...ti])}const on=Y({name:"carbon-favorite-filled",render:ei}),ni=c("hr",null,null,-1),si=["textContent"],ai={rol:"grid"},ii=c("th",{scope:"col",textContent:"Win"},null,-1),oi=c("th",{scope:"col",textContent:"Mac"},null,-1),ri=["textContent"],li=c("kbd",null,"ctrl",-1),ui=c("kbd",null,"z",-1),ci=c("kbd",null,"⌘",-1),di=c("kbd",null,"z",-1),hi=["textContent"],fi=c("kbd",null,"ctrl",-1),vi=c("kbd",null,"shift",-1),pi=c("kbd",null,"z",-1),mi=c("kbd",null,"⌘",-1),bi=c("kbd",null,"shift",-1),gi=c("kbd",null,"z",-1),_i=["textContent"],yi=c("kbd",null,"ctrl",-1),wi=c("kbd",null,"s",-1),xi=c("kbd",null,"⌘",-1),$i=c("kbd",null,"s",-1),Si=["textContent"],ki=c("kbd",null,"f",-1),Ti=[ki],Ci=c("kbd",null,"f",-1),Mi=[Ci],Ei=["textContent"],Ii=["textContent"],Di=["href","data-tooltip","title"],Fi={rel:"noreferrer",href:"https://github.com/FRSOURCE/fast-angle",target:"_blank",title:"GitHub"},Pi={rel:"noreferrer",href:"https://www.frsource.org/blog/sponsoring",target:"_blank",title:"Sponsoring"},Ni=c("hr",null,null,-1),Ri=["textContent"],Ai=["textContent"],Oi=ot({__name:"BoardControlsSvgHelp",setup(n){const{t,tm:e,rt:s}=Wt(),a=O(!1),o=A(()=>e("board.nav.help.content"));return(i,r)=>{const u=ns("RouterLink"),d=Cn,m=Ht;return k(),E("li",null,[P(m,{tooltip:l(t)("board.nav.help.action"),"tooltip-placement":"left",onClick:r[1]||(r[1]=b=>a.value=!0),onTouchstartCapture:r[2]||(r[2]=tt(b=>a.value=!0,["prevent","stop"]))},{default:H(()=>[P(l(Za)),P(d,{modelValue:l(a),"onUpdate:modelValue":r[0]||(r[0]=b=>kt(a)?a.value=b:null),heading:l(t)("board.nav.help.heading"),class:C(i.$style.modal)},{"footer-pre":H(()=>[c("a",{autofocus:"",rel:"noreferrer",href:"https://github.com/FRSOURCE/fast-angle",target:"_blank",title:"GitHub",class:C(i.$style.donate)},[P(l(on)),c("small",null,B(l(t)("main.donate_us")),1)],2)]),default:H(()=>[c("ul",null,[(k(!0),E(dt,null,Zt(l(o),b=>(k(),E("li",{key:l(s)(b)},B(l(s)(b)),1))),128))]),ni,c("div",{class:C(i.$style["hide-mobile"])},[c("h4",{textContent:B(l(t)("board.nav.help.key_bindings.heading"))},null,8,si),c("table",ai,[c("thead",null,[c("tr",null,[ii,oi,c("th",{scope:"col",textContent:B(l(t)("board.nav.help.key_bindings.description"))},null,8,ri)])]),c("tr",null,[c("td",{scope:"col",class:C(i.$style["binding-item-wrapper"])},[c("div",{class:C(i.$style["binding-item"])},[li,c("small",{class:C(i.$style["binding-item-plus"])},"+",2),ui],2)],2),c("td",{scope:"col",class:C(i.$style["binding-item-wrapper"])},[c("div",{class:C(i.$style["binding-item"])},[ci,c("small",{class:C(i.$style["binding-item-plus"])},"+",2),di],2)],2),c("td",{scope:"col",textContent:B(l(t)("board.nav.undo"))},null,8,hi)]),c("tr",null,[c("td",{scope:"col",class:C(i.$style["binding-item-wrapper"])},[c("div",{class:C(i.$style["binding-item"])},[fi,c("small",{class:C(i.$style["binding-item-plus"])},"+",2),vi,c("small",{class:C(i.$style["binding-item-plus"])},"+",2),pi],2)],2),c("td",{scope:"col",class:C(i.$style["binding-item-wrapper"])},[c("div",{class:C(i.$style["binding-item"])},[mi,c("small",{class:C(i.$style["binding-item-plus"])},"+",2),bi,c("small",{class:C(i.$style["binding-item-plus"])},"+",2),gi],2)],2),c("td",{scope:"col",textContent:B(l(t)("board.nav.download_image.action"))},null,8,_i)]),c("tr",null,[c("td",{scope:"col",class:C(i.$style["binding-item-wrapper"])},[c("div",{class:C(i.$style["binding-item"])},[yi,c("small",{class:C(i.$style["binding-item-plus"])},"+",2),wi],2)],2),c("td",{scope:"col",class:C(i.$style["binding-item-wrapper"])},[c("div",{class:C(i.$style["binding-item"])},[xi,c("small",{class:C(i.$style["binding-item-plus"])},"+",2),$i],2)],2),c("td",{scope:"col",textContent:B(l(t)("board.nav.redo"))},null,8,Si)]),c("tr",null,[c("td",{scope:"col",class:C(i.$style["binding-item-wrapper"])},[c("div",{class:C(i.$style["binding-item"])},Ti,2)],2),c("td",{scope:"col",class:C(i.$style["binding-item-wrapper"])},[c("div",{class:C(i.$style["binding-item"])},Mi,2)],2),c("td",{scope:"col",textContent:B(l(t)("board.nav.toggle_fullscreen"))},null,8,Ei)])])],2),c("h4",{textContent:B(l(t)("board.nav.help.heading_authors"))},null,8,Ii),c("p",null,[Q(B(l(t)("main.brought_to_you_by"))+" ",1),c("a",{href:`${"host"in i?i.host:l(ss)}/`,"data-tooltip":l(t)("main.visit_our_website"),title:l(t)("main.visit_our_website")},"FRSOURCE",8,Di)]),c("p",null,[c("a",Fi,[P(l(Xn)),Q(" "+B(l(t)("main.star_us_on_github")),1)])]),c("p",null,[c("a",Pi,[P(l(on)),Q(" "+B(l(t)("main.donate_us")),1)])]),Ni,c("p",{class:C(i.$style.terms)},[P(u,{to:{name:`lang-${l(qe)}-terms`}},{default:H(()=>[c("small",{textContent:B(l(t)("main.terms_and_conditions"))},null,8,Ri)]),_:1},8,["to"]),P(u,{to:{name:`lang-${l(qe)}-privacy-policy`}},{default:H(()=>[c("small",{textContent:B(l(t)("main.privacy_policy"))},null,8,Ai)]),_:1},8,["to"])],2)]),_:1},8,["modelValue","heading","class"])]),_:1},8,["tooltip"])])}}}),zi="f_5",Bi="f__",Li="f_-",Gi={modal:zi,"hide-mobile":"f_6","binding-item":"f_7","binding-item-plus":"f_8","list-item":"f_9",terms:Bi,donate:Li},Ui={$style:Gi},Vi=Et(Oi,[["__cssModules",Ui]]),Hi={viewBox:"0 0 32 32",width:"1.2em",height:"1.2em"},Wi=c("path",{fill:"currentColor",d:"M28 10v18H10V10zm0-2H10a2 2 0 0 0-2 2v18a2 2 0 0 0 2 2h18a2 2 0 0 0 2-2V10a2 2 0 0 0-2-2"},null,-1),Ki=c("path",{fill:"currentColor",d:"M4 18H2V4a2 2 0 0 1 2-2h14v2H4Z"},null,-1),ji=[Wi,Ki];function Yi(n,t){return k(),E("svg",Hi,[...ji])}const qi=Y({name:"carbon-copy",render:Yi}),Xi={viewBox:"0 0 32 32",width:"1.2em",height:"1.2em"},Zi=c("path",{fill:"currentColor",d:"m13 24l-9-9l1.414-1.414L13 21.171L26.586 7.586L28 9z"},null,-1),Ji=[Zi];function Qi(n,t){return k(),E("svg",Xi,[...Ji])}const to=Y({name:"carbon-checkmark",render:Qi}),eo=ot({__name:"BoardSummaryItem",props:{value:{type:Number,default:0}},setup(n){const t=n,e=A(()=>t.value?t.value.toFixed(3):""),{copy:s,copied:a,isSupported:o}=as({source:e});return(i,r)=>{const u=Ht;return k(),E("small",{class:C(i.$style.item),onClick:r[0]||(r[0]=()=>l(s)())},[c("div",null,[se(i.$slots,"default"),c("span",{class:C(i.$style.text)},[l(e)?(k(),E(dt,{key:0},[Q(B(l(e))+"°",1)],64)):(k(),E(dt,{key:1},[Q("?")],64))],2)]),l(o)&&l(e)?(k(),at(u,{key:0,class:C(i.$style.btn),disabled:l(a)},{default:H(()=>[l(a)?(k(),at(l(to),{key:0})):(k(),at(l(qi),{key:1}))]),_:1},8,["class","disabled"])):ct("",!0)],2)}}}),no="f_aa",so="f_ab",ao="f_ac",io={item:no,text:so,btn:ao},oo={$style:io},ro=Et(eo,[["__cssModules",oo]]),lo={viewBox:"0 0 32 32",width:"1.2em",height:"1.2em"},uo=c("path",{fill:"currentColor",d:"M20 2v2h6.586L18 12.582L19.414 14L28 5.414V12h2V2zm-6 17.416L12.592 18L4 26.586V20H2v10h10v-2H5.414z"},null,-1),co=[uo];function ho(n,t){return k(),E("svg",lo,[...co])}const fo=Y({name:"carbon-maximize",render:ho}),vo={viewBox:"0 0 32 32",width:"1.2em",height:"1.2em"},po=c("path",{fill:"currentColor",d:"M4 18v2h6.586L2 28.582L3.414 30L12 21.414V28h2V18zM30 3.416L28.592 2L20 10.586V4h-2v10h10v-2h-6.586z"},null,-1),mo=[po];function bo(n,t){return k(),E("svg",vo,[...mo])}const go=Y({name:"carbon-minimize",render:bo}),_o={viewBox:"0 0 32 32",width:"1.2em",height:"1.2em"},yo=c("path",{fill:"currentColor",d:"M18 12h-4V8h-2v4H8v2h4v4h2v-4h4z"},null,-1),wo=c("path",{fill:"currentColor",d:"M21.448 20A10.86 10.86 0 0 0 24 13a11 11 0 1 0-11 11a10.86 10.86 0 0 0 7-2.552L27.586 29L29 27.586ZM13 22a9 9 0 1 1 9-9a9.01 9.01 0 0 1-9 9"},null,-1),xo=[yo,wo];function $o(n,t){return k(),E("svg",_o,[...xo])}const So=Y({name:"carbon-zoom-in",render:$o}),ko={viewBox:"0 0 32 32",width:"1.2em",height:"1.2em"},To=c("path",{fill:"currentColor",d:"M8 12h10v2H8z"},null,-1),Co=c("path",{fill:"currentColor",d:"M21.448 20A10.86 10.86 0 0 0 24 13a11 11 0 1 0-11 11a10.86 10.86 0 0 0 7-2.552L27.586 29L29 27.586ZM13 22a9 9 0 1 1 9-9a9.01 9.01 0 0 1-9 9"},null,-1),Mo=[To,Co];function Eo(n,t){return k(),E("svg",ko,[...Mo])}const Io=Y({name:"carbon-zoom-out",render:Eo}),Do={viewBox:"0 0 32 32",width:"1.2em",height:"1.2em"},Fo=c("path",{fill:"currentColor",d:"M4 20v2h4.586L2 28.586L3.414 30L10 23.414V28h2v-8zm15-6a3 3 0 1 0-3-3a3 3 0 0 0 3 3m0-4a1 1 0 1 1-1 1a1 1 0 0 1 1-1"},null,-1),Po=c("path",{fill:"currentColor",d:"M26 4H6a2 2 0 0 0-2 2v10h2V6h20v15.17l-3.59-3.59a2 2 0 0 0-2.82 0L18 19.17L11.83 13l-1.414 1.416L14 18l2.59 2.59a2 2 0 0 0 2.82 0L21 19l5 5v2H16v2h10a2 2 0 0 0 2-2V6a2 2 0 0 0-2-2"},null,-1),No=[Fo,Po];function Ro(n,t){return k(),E("svg",Do,[...No])}const Ao=Y({name:"carbon-image-reference",render:Ro}),Oo={viewBox:"0 0 32 32",width:"1.2em",height:"1.2em"},zo=c("path",{d:"M9 24a3.51 3.51 0 0 0-.88-1.86l9.53-16.58l-1.73-1l-9.57 16.56A3.06 3.06 0 0 0 5.5 21a3.5 3.5 0 1 0 3.15 5H28v-2zm-3.5 2A1.5 1.5 0 1 1 7 24.5A1.5 1.5 0 0 1 5.5 26z",fill:"currentColor"},null,-1),Bo=c("path",{d:"M22 21h2a13 13 0 0 0-5.42-10.56l-1.16 1.62A11 11 0 0 1 22 21z",fill:"currentColor"},null,-1),Lo=[zo,Bo];function Go(n,t){return k(),E("svg",Oo,[...Lo])}const Uo=Y({name:"carbon-angle",render:Go}),Vo={viewBox:"0 0 32 32",width:"1.2em",height:"1.2em"},Ho=c("path",{fill:"currentColor",d:"M20 10H7.815l3.587-3.586L10 5l-6 6l6 6l1.402-1.415L7.818 12H20a6 6 0 0 1 0 12h-8v2h8a8 8 0 0 0 0-16"},null,-1),Wo=[Ho];function Ko(n,t){return k(),E("svg",Vo,[...Wo])}const jo=Y({name:"carbon-undo",render:Ko}),Yo={viewBox:"0 0 32 32",width:"1.2em",height:"1.2em"},qo=c("path",{fill:"currentColor",d:"M12 10h12.185l-3.587-3.586L22 5l6 6l-6 6l-1.402-1.415L24.182 12H12a6 6 0 0 0 0 12h8v2h-8a8 8 0 0 1 0-16"},null,-1),Xo=[qo];function Zo(n,t){return k(),E("svg",Yo,[...Xo])}const Jo=Y({name:"carbon-redo",render:Zo}),Qo={width:"1.2em",height:"1.2em",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 32 32",fill:"currentColor"},tr=c("path",{d:"M18.3 26a3.5 3.5 0 006.6-3.05 3 3 0 00-.7-.8l7.53-15.58-1.73-1-7.57 15.56a2.7 2.7 0 00-.8-.1 3.5 3.5 0 00-3.33 2.97h-17.973v2Zm3.4.1a1.5 1.5 0 111.5-1.5 1.5 1.5 0 01-1.5 1.5Z"},null,-1),er=c("path",{d:"M3.75 21.25a13.2 13.2 90 0120.25-10.56l-.87 1.44a11.75 11.75 90 00-17.6 9.13z"},null,-1),nr=[tr,er];function sr(n,t){return k(),E("svg",Qo,[...nr])}const ar=Y({name:"custom-angle-obtuse",render:sr}),Pe=4,Se=Kt(()=>{const n=O([]),t=O([]),e=O(Pe-1);let s=()=>{},a=()=>{};Z(n,g=>{t.value=[...g]},{deep:!0,flush:"sync"});const o=(g,F)=>{++e.value>=Pe&&(e.value=0,n.value=[]);const M=Math.floor(e.value/2);if(e.value%2){const S=n.value[M][0];if(!S)return;n.value[M]=[S,[g,F]]}else n.value[M]=[[g,F]]},i=(g,F)=>{const M=e.value+1>=Pe?0:e.value+1,S=Math.floor(M/2);if(M%2){const V=t.value[S][0];if(!V)return;t.value[S]=[V,[g,F]]}else t.value[S]=[[g,F]]},{undo:r,redo:u,canUndo:d,canRedo:m}=_e(e),{undo:b,redo:p,canUndo:v,canRedo:_}=_e(n,{deep:!0}),$=()=>{b(),s(),r()},D=()=>{p(),a(),u()};return Be({onEventFired(g){(g.ctrlKey||g.metaKey)&&g.key==="z"&&(g.shiftKey?D():$())}}),{step:e,lines:t,drawNextPoint:o,predictNextPoint:i,undo:$,redo:D,canUndo:A(()=>d.value&&v.value),canRedo:A(()=>m.value&&_.value),registerOnUndo:g=>s=g,registerOnRedo:g=>a=g}});function En(n){const[[[t,e],[s,a]],[[o,i],[r,u]]]=n,d=s-t,m=a-e,b=r-o,p=u-i,v=Math.atan2(d*p-m*b,d*b+m*p);return Math.abs(v)*(180/Math.PI)}function Le(n){return A(()=>{var t,e;return(((t=n.value[0])==null?void 0:t.length)||0)<2||(((e=n.value[1])==null?void 0:e.length)||0)<2?0:En(n.value)})}function ir(){try{return"constructor"in GestureEvent}catch{return!1}}function In(){return typeof window<"u"&&"ontouchstart"in window}function Dn(n){return"pointerId"in n?null:n.type==="touchend"?n.changedTouches:n.targetTouches}function Ge(n){return Array.from(Dn(n)).map(t=>t.identifier)}function Tt(n){const t="buttons"in n?n.buttons:0,{shiftKey:e,altKey:s,metaKey:a,ctrlKey:o}=n;return{buttons:t,shiftKey:e,altKey:s,metaKey:a,ctrlKey:o}}const Ie=n=>n;function rn(n,t=Ie){const e=Dn(n),{clientX:s,clientY:a}=e?e[0]:n;return t([s,a])}function ln(n,t,e=Ie){const[s,a]=Array.from(n.touches).filter(v=>t.includes(v.identifier));if(!s||!a)throw Error("The event doesn't have two pointers matching the pointerIds");const o=a.clientX-s.clientX,i=a.clientY-s.clientY,r=(a.clientX+s.clientX)/2,u=(a.clientY+s.clientY)/2,d=Math.hypot(o,i),m=-(Math.atan2(o,i)*180)/Math.PI,b=e([d,m]),p=e([r,u]);return{values:b,origin:p}}const un=40,cn=800;function Fn(n,t=Ie){let{deltaX:e,deltaY:s,deltaMode:a}=n;return a===1?(e*=un,s*=un):a===2&&(e*=cn,s*=cn),t([e,s])}function dn(n,t=Ie){return t([n.scale,n.rotation])}function Pn(){}function Nn(...n){return n.length===0?Pn:n.length===1?n[0]:function(){var t;for(let e of n)t=e.apply(this,arguments)||t;return t}}function At(n,t){if(n===void 0){if(t===void 0)throw new Error("Must define fallback value if undefined is expected");n=t}return Array.isArray(n)?n:[n,n]}function hn(n,t){return Object.assign({},t,n||{})}function ke(n,...t){return typeof n=="function"?n(...t):n}function te(n){return{_active:!1,_blocked:!1,_intentional:[!1,!1],_movement:[0,0],_initial:[0,0],_bounds:[[-1/0,1/0],[-1/0,1/0]],_lastEventType:void 0,_dragStarted:!1,_dragPreventScroll:!1,_dragIsTap:!0,_dragDelayed:!1,event:void 0,intentional:!1,values:[0,0],velocities:[0,0],delta:[0,0],movement:[0,0],offset:[0,0],lastOffset:[0,0],direction:[0,0],initial:[0,0],previous:[0,0],first:!1,last:!1,active:!1,timeStamp:0,startTime:0,elapsedTime:0,cancel:Pn,canceled:!1,memo:void 0,args:void 0,...n}}function Re(){const n={hovering:!1,scrolling:!1,wheeling:!1,dragging:!1,moving:!1,pinching:!1,touches:0,buttons:0,down:!1,shiftKey:!1,altKey:!1,metaKey:!1,ctrlKey:!1,locked:!1},t=te({_pointerId:void 0,axis:void 0,xy:[0,0],vxvy:[0,0],velocity:0,distance:0,tap:!1,swipe:[0,0]}),e=te({_pointerIds:[],da:[0,0],vdva:[0,0],origin:void 0,turns:0}),s=te({axis:void 0,xy:[0,0],vxvy:[0,0],velocity:0,distance:0}),a=te({axis:void 0,xy:[0,0],vxvy:[0,0],velocity:0,distance:0}),o=te({axis:void 0,xy:[0,0],vxvy:[0,0],velocity:0,distance:0});return{shared:n,drag:t,pinch:e,wheel:s,move:a,scroll:o}}var or=Object.defineProperty,rr=(n,t,e)=>t in n?or(n,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):n[t]=e,et=(n,t,e)=>(rr(n,typeof t!="symbol"?t+"":t,e),e);class lr{constructor(t){this.classes=t,et(this,"nativeRefs"),et(this,"config"),et(this,"handlers"),et(this,"state"),et(this,"timeouts"),et(this,"domListeners"),et(this,"windowListeners"),et(this,"pointerIds",new Set),et(this,"touchIds",new Set),et(this,"supportsTouchEvents",In()),et(this,"supportsGestureEvents",ir()),et(this,"bind",(...e)=>{const s={};for(let a of this.classes)new a(this,e).addBindings(s);for(let a in this.nativeRefs)K(s,a,o=>this.nativeRefs[a]({...this.state.shared,event:o,args:e}));return this.config.domTarget?hr(this,s):fr(this,s)}),et(this,"clean",()=>{const{eventOptions:e,domTarget:s}=this.config,a=l(s);a&&ue(a,On(this.domListeners),e),Object.values(this.timeouts).forEach(clearTimeout),ur(this)}),et(this,"reset",()=>{this.state=Re()}),this.classes=t,this.state=Re(),this.timeouts={},this.domListeners=[],this.windowListeners={}}}function Rn(n,t){"pointerId"in t?n.pointerIds.add(t.pointerId):n.touchIds=new Set(Ge(t))}function An(n,t){"pointerId"in t?n.pointerIds.delete(t.pointerId):Ge(t).forEach(e=>n.touchIds.delete(e))}function ur(n){const{config:{window:t,eventOptions:e},windowListeners:s}=n,a=l(t);if(a){for(let o in s){const i=s[o];ue(a,i,e)}n.windowListeners={}}}function cr({config:n,windowListeners:t},e,s=n.eventOptions){const a=l(n.window);a&&(ue(a,t[e],s),delete t[e])}function dr({config:n,windowListeners:t},e,s=[],a=n.eventOptions){const o=l(n.window);o&&(ue(o,t[e],a),zn(o,t[e]=s,a))}function hr({config:n,domListeners:t},e){const{eventOptions:s,domTarget:a}=n,o=l(a);if(!o)throw new Error("domTarget must be defined");ue(o,On(t),s);for(let[i,r]of Object.entries(e)){const u=i.slice(2).toLowerCase();t.push([u,Nn(...r)])}zn(o,t,s)}function fr({config:n},t){const e={},s=n.eventOptions.capture?"Capture":"";for(let[a,o]of Object.entries(t)){const i=Array.isArray(o)?o:[o],r=a+s;e[r]=Nn(...i)}return e}function On(n=[]){return n.splice(0,n.length)}function K(n,t,e){n[t]||(n[t]=[]),n[t].push(e)}function zn(n,t=[],e={}){if(n)for(let[s,a]of t)n.addEventListener(s,a,e)}function ue(n,t=[],e={}){if(n)for(let[s,a]of t)n.removeEventListener(s,a,e)}function Te(n,t){return n.map((e,s)=>e+t[s])}function Ue(n,t){return n.map((e,s)=>e-t[s])}function re(n){return Math.hypot(...n)}function vr(n,t=n){const e=re(t),s=e===0?0:1/e,a=t.map(i=>s*i);return{distance:re(n),direction:a}}function Bn(n,t,e){const s=re(t),a=s===0?0:1/s,o=e===0?0:1/e,i=o*s,r=t.map(m=>o*m),u=t.map(m=>a*m),d=re(n);return{velocities:r,velocity:i,distance:d,direction:u}}function Ce(n){return Math.sign?Math.sign(n):+(n>0)-+(n<0)||+n}function pr(n,t,e){return Math.max(t,Math.min(n,e))}function mr(n,t){return Math.pow(n,t*5)}function fn(n,t,e){return t===0||Math.abs(t)===1/0?mr(n,e):n*t*e/(t+e*n)}function vn(n,t,e,s=.15){return s===0?pr(n,t,e):ne?+fn(n-e,e-t,s)+e:n}var br=Object.defineProperty,gr=(n,t,e)=>t in n?br(n,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):n[t]=e,ve=(n,t,e)=>(gr(n,typeof t!="symbol"?t+"":t,e),e);const Ct=new Map,_r=n=>n;class Ln{constructor(t,e=[]){this.controller=t,this.args=e,ve(this,"debounced",!0),ve(this,"setTimeout",(s,a=140,...o)=>{clearTimeout(this.controller.timeouts[this.stateKey]),this.controller.timeouts[this.stateKey]=window.setTimeout(s,a,...o)}),ve(this,"clearTimeout",()=>{clearTimeout(this.controller.timeouts[this.stateKey])}),ve(this,"fireGestureHandler",(s=!1)=>{if(this.state._blocked)return this.debounced||(this.state._active=!1,this.clean()),null;if(!s&&!this.state.intentional&&!this.config.triggerAllEvents)return null;if(this.state.intentional){const u=this.state.active,d=this.state._active;this.state.active=d,this.state.first=d&&!u,this.state.last=u&&!d,this.controller.state.shared[this.ingKey]=d}const a=this.controller.pointerIds.size||this.controller.touchIds.size,o=this.controller.state.shared.buttons>0||a>0,i={...this.controller.state.shared,...this.state,...this.mapStateValues(this.state),locked:!!document.pointerLockElement,touches:a,down:o},r=this.handler(i);return this.state.memo=r!==void 0?r:this.state.memo,i}),this.controller=t,this.args=e}get config(){return this.controller.config[this.stateKey]}get enabled(){return this.controller.config.enabled&&this.config.enabled}get state(){return this.controller.state[this.stateKey]}get handler(){return this.controller.handlers[this.stateKey]}get transform(){return this.config.transform||this.controller.config.transform||_r}updateSharedState(t){Object.assign(this.controller.state.shared,t)}updateGestureState(t){Object.assign(this.state,t)}checkIntentionality(t,e){return{_intentional:t,_blocked:!1}}getMovement(t){const{rubberband:e,threshold:s}=this.config,{_bounds:a,_initial:o,_active:i,_intentional:r,lastOffset:u,movement:d}=this.state,m=this.getInternalMovement(t,this.state),b=this.transform(s).map(Math.abs),p=r[0]===!1?pn(m[0],b[0]):r[0],v=r[1]===!1?pn(m[1],b[1]):r[1],_=this.checkIntentionality([p,v],m);if(_._blocked)return{..._,_movement:m,delta:[0,0]};const $=_._intentional,D=m;let g=[$[0]!==!1?m[0]-$[0]:0,$[1]!==!1?m[1]-$[1]:0];const F=Te(g,u),M=i?e:[0,0];return g=mn(a,Te(g,o),M),{..._,intentional:$[0]!==!1||$[1]!==!1,_initial:o,_movement:D,movement:g,values:t,offset:mn(a,F,M),delta:Ue(g,d)}}clean(){this.clearTimeout()}}function pn(n,t){return Math.abs(n)>=t?Ce(n)*t:!1}function mn(n,[t,e],[s,a]){const[[o,i],[r,u]]=n;return[vn(t,o,i,s),vn(e,r,u,a)]}function st({state:n},t,e){const{timeStamp:s,type:a}=t,o=n.values,i=e?0:s-n.startTime;return{_lastEventType:a,event:t,timeStamp:s,elapsedTime:i,previous:o}}function oe({state:n,config:t,stateKey:e,args:s},a,o){const i=n.offset,r=o.timeStamp,{initial:u,bounds:d}=t,m={...Re()[e],_active:!0,args:s,values:a,initial:a,offset:i,lastOffset:i,startTime:r};return{...m,_initial:ke(u,m),_bounds:ke(d,m)}}class Gn extends Ln{getInternalMovement(t,e){return Ue(t,e.initial)}checkIntentionality(t,e){if(t[0]===!1&&t[1]===!1)return{_intentional:t,axis:this.state.axis};const[s,a]=e.map(Math.abs),o=this.state.axis||(s>a?"x":st in n?yr(n,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):n[t]=e,X=(n,t,e)=>(wr(n,typeof t!="symbol"?t+"":t,e),e);const xr=3;function bn(n){"persist"in n&&typeof n.persist=="function"&&n.persist()}class $r extends Gn{constructor(){super(...arguments),X(this,"ingKey","dragging"),X(this,"stateKey","drag"),X(this,"setPointerCapture",t=>{if(this.config.useTouch||document.pointerLockElement)return;const{target:e,pointerId:s}=t;e&&"setPointerCapture"in e&&e.setPointerCapture(s),this.updateGestureState({_dragTarget:e,_dragPointerId:s})}),X(this,"releasePointerCapture",()=>{if(this.config.useTouch||document.pointerLockElement)return;const{_dragTarget:t,_dragPointerId:e}=this.state;if(e&&t&&"releasePointerCapture"in t&&(!("hasPointerCapture"in t)||t.hasPointerCapture(e)))try{t.releasePointerCapture(e)}catch{}}),X(this,"preventScroll",t=>{this.state._dragPreventScroll&&t.cancelable&&t.preventDefault()}),X(this,"getEventId",t=>this.config.useTouch?t.changedTouches[0].identifier:t.pointerId),X(this,"isValidEvent",t=>this.state._pointerId===this.getEventId(t)),X(this,"shouldPreventWindowScrollY",this.config.preventWindowScrollY&&this.controller.supportsTouchEvents),X(this,"setUpWindowScrollDetection",t=>{bn(t),dr(this.controller,this.stateKey,[["touchmove",this.preventScroll],["touchend",this.clean.bind(this)],["touchcancel",this.clean.bind(this)]],{passive:!1}),this.setTimeout(this.startDrag.bind(this),250,t)}),X(this,"setUpDelayedDragTrigger",t=>{this.state._dragDelayed=!0,bn(t),this.setTimeout(this.startDrag.bind(this),this.config.delay,t)}),X(this,"setStartState",t=>{const e=rn(t,this.transform);this.updateSharedState(Tt(t)),this.updateGestureState({...oe(this,e,t),...st(this,t,!0),_pointerId:this.getEventId(t)}),this.updateGestureState(this.getMovement(e))}),X(this,"onDragStart",t=>{Rn(this.controller,t),!(!this.enabled||this.state._active)&&(this.setStartState(t),this.setPointerCapture(t),this.shouldPreventWindowScrollY?this.setUpWindowScrollDetection(t):this.config.delay>0?this.setUpDelayedDragTrigger(t):this.startDrag(t,!0))}),X(this,"onDragChange",t=>{if(this.state.canceled||!this.state._active||!this.isValidEvent(t)||this.state._lastEventType===t.type&&t.timeStamp===this.state.timeStamp)return;let e;if(document.pointerLockElement){const{movementX:u,movementY:d}=t;e=Te(this.transform([u,d]),this.state.values)}else e=rn(t,this.transform);const s=this.getKinematics(e,t);if(!this.state._dragStarted){if(this.state._dragDelayed){this.startDrag(t);return}if(this.shouldPreventWindowScrollY)if(!this.state._dragPreventScroll&&s.axis)if(s.axis==="x")this.startDrag(t);else{this.state._active=!1;return}else return;else return}const a=Tt(t);this.updateSharedState(a);const o=st(this,t),i=re(s._movement);let{_dragIsTap:r}=this.state;r&&i>=xr&&(r=!1),this.updateGestureState({...o,...s,_dragIsTap:r}),this.fireGestureHandler()}),X(this,"onDragEnd",t=>{if(An(this.controller,t),!this.isValidEvent(t)||(this.clean(),!this.state._active))return;this.state._active=!1;const e=this.state._dragIsTap,[s,a]=this.state.velocities,[o,i]=this.state.movement,[r,u]=this.state._intentional,[d,m]=this.config.swipeVelocity,[b,p]=this.config.swipeDistance,v=this.config.swipeDuration,_={...st(this,t),...this.getMovement(this.state.values)},$=[0,0];_.elapsedTimed&&Math.abs(o)>b&&($[0]=Ce(s)),u!==!1&&Math.abs(a)>m&&Math.abs(i)>p&&($[1]=Ce(a))),this.updateSharedState({buttons:0}),this.updateGestureState({..._,tap:e,swipe:$}),this.fireGestureHandler(this.config.filterTaps&&e===!0)}),X(this,"clean",()=>{super.clean(),this.state._dragStarted=!1,this.releasePointerCapture(),cr(this.controller,this.stateKey)}),X(this,"onCancel",()=>{this.state.canceled||(this.updateGestureState({canceled:!0,_active:!1}),this.updateSharedState({buttons:0}),ls(this.fireGestureHandler))}),X(this,"onClick",t=>{this.state._dragIsTap||t.stopPropagation()})}startDrag(t,e=!1){!this.state._active||this.state._dragStarted||(e||this.setStartState(t),this.updateGestureState({_dragStarted:!0,_dragPreventScroll:!0,cancel:this.onCancel}),this.clearTimeout(),this.fireGestureHandler())}addBindings(t){if(this.config.useTouch?(K(t,"onTouchStart",this.onDragStart),K(t,"onTouchMove",this.onDragChange),K(t,"onTouchEnd",this.onDragEnd),K(t,"onTouchCancel",this.onDragEnd)):(K(t,"onPointerDown",this.onDragStart),K(t,"onPointerMove",this.onDragChange),K(t,"onPointerUp",this.onDragEnd),K(t,"onPointerCancel",this.onDragEnd)),this.config.filterTaps){const e=this.controller.config.eventOptions.capture?"onClick":"onClickCapture";K(t,e,this.onClick)}}}function Ve(n,t){let e,s=[],a,o=!1;function i(...r){return o&&e===this&&t(r,s)||(a=n.apply(this,r),o=!0,e=this,s=r),a}return i}function be(n,t){if(n===t)return!0;if(n&&t&&typeof n=="object"&&typeof t=="object"){if(n.constructor!==t.constructor)return!1;let e,s,a;if(Array.isArray(n)){if(e=n.length,e!==t.length)return!1;for(s=e;s--!==0;)if(!be(n[s],t[s]))return!1;return!0}let o;if(typeof Map=="function"&&n instanceof Map&&t instanceof Map){if(n.size!==t.size)return!1;for(o=n.entries();!(s=o.next()).done;)if(!t.has(s.value[0]))return!1;for(o=n.entries();!(s=o.next()).done;)if(!be(s.value[1],t.get(s.value[0])))return!1;return!0}if(typeof Set=="function"&&n instanceof Set&&t instanceof Set){if(n.size!==t.size)return!1;for(o=n.entries();!(s=o.next()).done;)if(!t.has(s.value[0]))return!1;return!0}if(n.constructor===RegExp)return n.source===t.source&&n.flags===t.flags;if(n.valueOf!==Object.prototype.valueOf)return n.valueOf()===t.valueOf();if(n.toString!==Object.prototype.toString)return n.toString()===t.toString();if(a=Object.keys(n),e=a.length,e!==Object.keys(t).length)return!1;for(s=e;s--!==0;)if(!Object.prototype.hasOwnProperty.call(t,a[s]))return!1;if(typeof Element<"u"&&n instanceof Element)return!1;for(s=e;s--!==0;)if(!(a[s]==="_owner"&&n.$$typeof)&&!be(n[a[s]],t[a[s]]))return!1;return!0}return n!==n&&t!==t}function He(n,t){try{return be(n,t)}catch(e){if((e.message||"").match(/stack|recursion/i))return console.warn("react-fast-compare cannot handle circular refs"),!1;throw e}}function ce(n={},t){const e={};for(const[s,a]of Object.entries(t))switch(typeof a){case"function":e[s]=a.call(e,n[s],s,n);break;case"object":e[s]=ce(n[s],a);break;case"boolean":a&&(e[s]=n[s]);break}return e}const Sr=180,kr=.15,Tr=.5,Cr=50,Mr=250,Un={threshold(n=0){return At(n)},rubberband(n=0){switch(n){case!0:return At(kr);case!1:return At(0);default:return At(n)}},enabled(n=!0){return n},triggerAllEvents(n=!1){return n},initial(n=0){return typeof n=="function"?n:At(n)},transform:!0},We={...Un,axis:!0,lockDirection(n=!1){return n},bounds(n={}){if(typeof n=="function")return o=>We.bounds(n(o));const{left:t=-1/0,right:e=1/0,top:s=-1/0,bottom:a=1/0}=n;return[[t,e],[s,a]]}},Er=typeof window<"u"&&window.document&&window.document.createElement,Ir={enabled(n=!0){return n},domTarget:!0,window(n=Er?window:void 0){return n},eventOptions({passive:n=!0,capture:t=!1}={}){return{passive:n,capture:t}},transform:!0},Dr={...Un,bounds(n,t,{distanceBounds:e={},angleBounds:s={}}){const a=i=>{const r=hn(ke(e,i),{min:-1/0,max:1/0});return[r.min,r.max]},o=i=>{const r=hn(ke(s,i),{min:-1/0,max:1/0});return[r.min,r.max]};return typeof e!="function"&&typeof s!="function"?[a(),o()]:i=>[a(i),o(i)]}},Fr={...We,useTouch(n=!0){return n&&In()},preventWindowScrollY(n=!1){return n},threshold(n,t,{filterTaps:e=!1,lockDirection:s=!1,axis:a=void 0}){const o=At(n,e?3:s||a?1:0);return this.filterTaps=e,o},swipeVelocity(n=Tr){return At(n)},swipeDistance(n=Cr){return At(n)},swipeDuration(n=Mr){return n},delay(n=0){switch(n){case!0:return Sr;case!1:return 0;default:return n}}};function Ke(n){return ce(n,Ir)}function Pr(n={}){return ce(n,We)}function Nr(n={}){return ce(n,Dr)}function Rr(n={}){return ce(n,Fr)}function Ar({domTarget:n,eventOptions:t,window:e,enabled:s,...a}){const o=Ke({domTarget:n,eventOptions:t,window:e,enabled:s});return o.drag=Rr(a),o}function Or({domTarget:n,eventOptions:t,window:e,enabled:s,...a}){const o=Ke({domTarget:n,eventOptions:t,window:e,enabled:s});return o.pinch=Nr(a),o}function zr({domTarget:n,eventOptions:t,window:e,enabled:s,...a}){const o=Ke({domTarget:n,eventOptions:t,window:e,enabled:s});return o.wheel=Pr(a),o}function je(n,t,e={}){const s=Br(n),a=new lr(s);return a.config=t,a.handlers=n,a.nativeRefs=e,is()&&!t.manual&&(os(a.bind),rs(a.clean)),a}function Br(n){const t=new Set;return n.drag&&t.add(Ct.get("drag")),n.wheel&&t.add(Ct.get("wheel")),n.scroll&&t.add(Ct.get("scroll")),n.move&&t.add(Ct.get("move")),n.pinch&&t.add(Ct.get("pinch")),n.hover&&t.add(Ct.get("hover")),t}function Lr(n,t={}){Ct.set("drag",$r);const e=O();return e.value||(e.value=Ve(Ar,He)),je({drag:n},e.value(t))}class Gr extends Ln{getInternalMovement(t,e){const s=e.values[1];let[a,o=s]=t,i=o-s,r=e.turns;return Math.abs(i)>270&&(r+=Ce(i)),Ue([a,o-360*r],e.initial)}getKinematics(t,e){const s=this.getMovement(t),a=(t[1]-s._movement[1]-this.state.initial[1])/360,o=e.timeStamp-this.state.timeStamp,{distance:i,velocity:r,...u}=Bn(s.movement,s.delta,o);return{turns:a,...s,...u}}mapStateValues(t){return{da:t.values,vdva:t.velocities}}}var Ur=Object.defineProperty,Vr=(n,t,e)=>t in n?Ur(n,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):n[t]=e,J=(n,t,e)=>(Vr(n,typeof t!="symbol"?t+"":t,e),e);const Hr=7,Wr=260;class Kr extends Gr{constructor(){super(...arguments),J(this,"ingKey","pinching"),J(this,"stateKey","pinch"),J(this,"onPinchStart",t=>{Rn(this.controller,t);const e=this.controller.touchIds;if(!this.enabled||this.state._active&&this.state._pointerIds.every(i=>e.has(i))||e.size<2)return;const s=Array.from(e).slice(0,2),{values:a,origin:o}=ln(t,s,this.transform);this.updateSharedState(Tt(t)),this.updateGestureState({...oe(this,a,t),...st(this,t,!0),_pointerIds:s,cancel:this.onCancel,origin:o}),this.updateGestureState(this.getMovement(a)),this.fireGestureHandler()}),J(this,"onPinchChange",t=>{const{canceled:e,_active:s}=this.state;if(e||!s||t.timeStamp===this.state.timeStamp)return;const a=Tt(t);this.updateSharedState(a);try{const{values:o,origin:i}=ln(t,this.state._pointerIds,this.transform),r=this.getKinematics(o,t);this.updateGestureState({...st(this,t),...r,origin:i}),this.fireGestureHandler()}catch{this.onPinchEnd(t)}}),J(this,"onPinchEnd",t=>{An(this.controller,t);const e=Ge(t);this.state._pointerIds.every(s=>!e.includes(s))||(this.clean(),this.state._active&&(this.updateGestureState({...st(this,t),...this.getMovement(this.state.values),_active:!1}),this.fireGestureHandler()))}),J(this,"onCancel",()=>{this.state.canceled||(this.updateGestureState({_active:!1,canceled:!0}),this.fireGestureHandler())}),J(this,"onGestureStart",t=>{if(!this.enabled)return;t.preventDefault();const e=dn(t,this.transform);this.updateSharedState(Tt(t)),this.updateGestureState({...oe(this,e,t),...st(this,t,!0),origin:[t.clientX,t.clientY],cancel:this.onCancel}),this.updateGestureState(this.getMovement(e)),this.fireGestureHandler()}),J(this,"onGestureChange",t=>{const{canceled:e,_active:s}=this.state;if(e||!s)return;t.preventDefault();const a=Tt(t);this.updateSharedState(a);const o=dn(t,this.transform);o[0]=(o[0]-this.state.event.scale)*Wr+this.state.values[0];const i=this.getKinematics(o,t);this.updateGestureState({...st(this,t),...i,origin:[t.clientX,t.clientY]}),this.fireGestureHandler()}),J(this,"onGestureEnd",t=>{this.clean(),this.state._active&&(this.updateGestureState({...st(this,t),...this.getMovement(this.state.values),_active:!1,origin:[t.clientX,t.clientY]}),this.fireGestureHandler())}),J(this,"wheelShouldRun",t=>this.enabled&&t.ctrlKey),J(this,"getWheelValuesFromEvent",t=>{const[,e]=Fn(t,this.transform),{values:[s,a]}=this.state;return{values:[s-e*Hr,a!==void 0?a:0],origin:[t.clientX,t.clientY],delta:[0,e]}}),J(this,"onWheel",t=>{this.wheelShouldRun(t)&&(this.setTimeout(this.onWheelEnd),this.state._active?this.onWheelChange(t):this.onWheelStart(t))}),J(this,"onWheelStart",t=>{const{values:e,delta:s,origin:a}=this.getWheelValuesFromEvent(t);t.cancelable&&t.preventDefault(),this.updateSharedState(Tt(t)),this.updateGestureState({...oe(this,e,t),...st(this,t,!0),initial:this.state.values,offset:e,delta:s,origin:a}),this.updateGestureState(this.getMovement(e)),this.fireGestureHandler()}),J(this,"onWheelChange",t=>{t.cancelable&&t.preventDefault(),this.updateSharedState(Tt(t));const{values:e,origin:s,delta:a}=this.getWheelValuesFromEvent(t);this.updateGestureState({...st(this,t),...this.getKinematics(e,t),origin:s,delta:a}),this.fireGestureHandler()}),J(this,"onWheelEnd",()=>{this.clean(),this.state._active&&(this.state._active=!1,this.updateGestureState(this.getMovement(this.state.values)),this.fireGestureHandler())})}addBindings(t){this.controller.config.domTarget&&!this.controller.supportsTouchEvents&&this.controller.supportsGestureEvents?(K(t,"onGestureStart",this.onGestureStart),K(t,"onGestureChange",this.onGestureChange),K(t,"onGestureEnd",this.onGestureEnd)):(K(t,"onTouchStart",this.onPinchStart),K(t,"onTouchMove",this.onPinchChange),K(t,"onTouchEnd",this.onPinchEnd),K(t,"onTouchCancel",this.onPinchEnd),K(t,"onWheel",this.onWheel))}}var jr=Object.defineProperty,Yr=(n,t,e)=>t in n?jr(n,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):n[t]=e,ee=(n,t,e)=>(Yr(n,typeof t!="symbol"?t+"":t,e),e);class qr extends Gn{constructor(){super(...arguments),ee(this,"ingKey","wheeling"),ee(this,"stateKey","wheel"),ee(this,"debounced",!0),ee(this,"handleEvent",t=>{if(t.ctrlKey&&"pinch"in this.controller.handlers||!this.enabled)return;this.setTimeout(this.onEnd),this.updateSharedState(Tt(t));const e=Te(Fn(t,this.transform),this.state.values);if(this.state._active)this.updateGestureState({...st(this,t),...this.getKinematics(e,t)});else{this.updateGestureState({...oe(this,e,t),...st(this,t,!0),initial:this.state.values});const s=this.getMovement(e),a=vr(s.delta);this.updateGestureState(s),this.updateGestureState(a)}this.fireGestureHandler()}),ee(this,"onEnd",()=>{if(this.clean(),!this.state._active)return;const t=this.getMovement(this.state.values);this.updateGestureState(t),this.updateGestureState({_active:!1,velocities:[0,0],velocity:0}),this.fireGestureHandler()})}addBindings(t){K(t,"onWheel",this.handleEvent)}}function Xr(n,t={}){Ct.set("pinch",Kr);const e=O();return e.value||(e.value=Ve(Or,He)),je({pinch:n},e.value(t))}function Zr(n,t={}){Ct.set("wheel",qr);const e=O();return e.value||(e.value=Ve(zr,He)),je({wheel:n},e.value(t))}function Jr(n,t){const e=us(t),s=A(()=>{var p;return((p=l(e))==null?void 0:p.enabled)??!0}),a=O(!1),o=O([0,0]),i=O(1),r=A({set(p){return p>10?i.value=10:p<.1?i.value=.1:i.value=p,i.value},get(){return i.value}}),u=O([0,0]),d=A(()=>{var p;return(p=Oe(n))==null?void 0:p.getBoundingClientRect()}),m=p=>(p=(p+1800)/1800,p<=0?.01:p),b=({wheeling:p,dragging:v,pinching:_,intentional:$,enabled:D,touches:g,ctrlKey:F,event:M})=>{const S=!D||!$?!1:v&&(g===2||"pointerType"in M&&M.pointerType==="mouse")||_||p&&!F;return a.value?requestAnimationFrame(()=>a.value=S):a.value=S,S};return Lr(({wheeling:p,dragging:v,pinching:_,touches:$,intentional:D,delta:g,ctrlKey:F,event:M})=>{b({wheeling:p,dragging:v,pinching:_,intentional:D,enabled:s.value,ctrlKey:F,touches:$,event:M})&&(o.value[0]+=g[0],o.value[1]+=g[1])},{domTarget:n,filterTaps:!0}),Zr(({event:p,delta:v,wheeling:_,dragging:$,pinching:D,touches:g,intentional:F,ctrlKey:M})=>{b({dragging:$,pinching:D,wheeling:_,intentional:F,enabled:s.value,touches:g,ctrlKey:M,event:p})&&(p.preventDefault(),o.value[0]+=v[0],o.value[1]+=v[1])},{domTarget:n,eventOptions:{passive:!1}}),Xr(({offset:[p],origin:v,pinching:_,dragging:$,wheeling:D,ctrlKey:g,touches:F,intentional:M,event:S})=>{if(!b({dragging:$,pinching:_,wheeling:D,intentional:M,enabled:s.value,touches:F,ctrlKey:g,event:S}))return;const V=r.value;r.value=m(p),d.value&&(v[0]-=d.value.x,v[1]-=d.value.y,o.value[0]-=(v[0]-d.value.width/2)*(r.value-V),o.value[1]-=(v[1]-d.value.height/2)*(r.value-V)),o.value[0]-=v[0]-u.value[0],o.value[1]-=v[1]-u.value[1],u.value=v},{domTarget:n,eventOptions:{passive:!1},distanceBounds:()=>({min:-1800,max:16200})}),{offset:A(()=>[o.value[0]+u.value[0],o.value[1]+u.value[1]]),zoom:r,transformOrigin:u,active:a}}const Vn=Kt(()=>Jr(Me())),Hn=Kt(()=>{const n=O(""),t=O(0),e=O(0);return{src:n,width:t,height:e,processFiles:a=>{if(!((a==null?void 0:a[0])instanceof File))return;const o=new FileReader;o.addEventListener("load",i=>{var r;if((r=i.target)!=null&&r.result){const u=new Image;u.onload=()=>{n.value=u.src,t.value=u.width,e.value=u.height},u.src=i.target.result.toString()}}),o.readAsDataURL(a[0])}}}),Qr={class:"d-none md-d-inline-block"},tl={class:"d-none md-d-inline-block"},el={key:0},nl=ot({__name:"BoardControls",props:{info:{type:Array,required:!0}},setup(n){const{t}=Wt(),{lines:e}=Se(),s=Le(e),{zoom:a,transformOrigin:o}=Vn(),i=Ee(),r=Me(),u=A(()=>{const U=Oe(r);return U?U.viewBox.baseVal:{x:0,y:0,width:0,height:0}});function d(){o.value=[(u.value.width/2-(u.value.x+u.value.width/2)/2)*a.value,(u.value.height/2-(u.value.y+u.value.height/2)/2)*a.value]}function m(){d(),a.value+=.1}function b(){d(),a.value-=.1}const{toggle:p,isFullscreen:v,isSupported:_}=cs(i),{undo:$,redo:D,canUndo:g,canRedo:F}=Se(),M=A(()=>`${t("board.nav.undo")} [ctrl + z][⌘ + z]`),S=A(()=>`${t("board.nav.redo")} [ctrl + shift + z][⌘ + shift + z]`),V=O();Z(s,U=>U===void 0?V.value=void 0:V.value=U>90?180-U:U);const z=A(()=>V.value?180-V.value:void 0),{processFiles:xt}=Hn(),{files:Ot,open:$t}=ds({multiple:!1,accept:"image/*"});return hs(Ot,U=>{xt(Array.from(U))}),yn("f",p),(U,T)=>{const h=ro,f=Vi,y=Ht,N=Ha;return k(),E("div",{class:C([U.$style.bar,"pointer-none"])},[c("div",{class:C(["pointer-all bg-bg-transparent-inverse text-inverse whitespace-nowrap",U.$style["info-box"]]),onMousemoveCapture:T[0]||(T[0]=tt(()=>{},["prevent","stop"]))},[P(h,{value:l(V)},{default:H(()=>[P(l(Uo))]),_:1},8,["value"]),P(h,{value:l(z)},{default:H(()=>[P(l(ar))]),_:1},8,["value"])],34),(k(!0),E(dt,null,Zt(n.info,R=>(k(),E("li",{key:R,class:C(["bg-bg-transparent-inverse text-inverse min-w-0",U.$style["info-box"]])},[c("small",null,B(R),1)],2))),128)),c("nav",{class:C(U.$style.nav)},[c("ul",{class:C(["pointer-all",U.$style.nav__btns])},[P(f),c("li",null,[P(y,{disabled:!l(g),tooltip:l(M),"tooltip-placement":"left",onClick:l($),onTouchstartCapture:tt(l($),["prevent","stop"])},{default:H(()=>[P(l(jo))]),_:1},8,["disabled","tooltip","onClick","onTouchstartCapture"])]),c("li",null,[P(y,{disabled:!l(F),tooltip:l(S),"tooltip-placement":"left",onClick:l(D),onTouchstartCapture:tt(l(D),["prevent","stop"])},{default:H(()=>[P(l(Jo))]),_:1},8,["disabled","tooltip","onClick","onTouchstartCapture"])]),P(N,{disabled:l(g)},null,8,["disabled"]),c("li",null,[P(y,{tooltip:l(t)("board.nav.upload_file"),"tooltip-placement":"left",onClick:T[1]||(T[1]=R=>l($t)()),onTouchstartCapture:T[2]||(T[2]=tt(()=>{},["stop"]))},{default:H(()=>[P(l(Ao))]),_:1},8,["tooltip"])]),c("li",Qr,[P(y,{disabled:!l(g),tooltip:`${l(t)("board.result.zoom_out")} [-]`,"tooltip-placement":"left",onClick:T[3]||(T[3]=R=>b()),onTouchstartCapture:T[4]||(T[4]=tt(R=>b(),["prevent","stop"]))},{default:H(()=>[P(l(Io))]),_:1},8,["disabled","tooltip"])]),c("li",tl,[P(y,{disabled:!l(g),tooltip:`${l(t)("board.result.zoom_in")} [+]`,"tooltip-placement":"left",onClick:T[5]||(T[5]=R=>m()),onTouchstartCapture:T[6]||(T[6]=tt(R=>m(),["prevent","stop"]))},{default:H(()=>[P(l(So))]),_:1},8,["disabled","tooltip"])]),l(_)?(k(),E("li",el,[P(y,{tooltip:`${l(t)("board.nav.toggle_fullscreen")} [f]`,"tooltip-placement":"left",onClick:l(p),onTouchstartCapture:tt(l(p),["prevent","stop"])},{default:H(()=>[l(v)?(k(),at(l(go),{key:0})):(k(),at(l(fo),{key:1}))]),_:1},8,["tooltip","onClick","onTouchstartCapture"])])):ct("",!0)],2)],2)],2)}}}),sl="f_w",al="f_x",il={bar:sl,nav__btns:al,"info-box":"f_y"},ol={$style:il},rl=Et(nl,[["__cssModules",ol]]),ll=["x1","y1","x2","y2"],ul=ot({__name:"Segment",props:{pointStart:{type:Array,default:void 0},pointStop:{type:Array,default:void 0}},setup(n){return(t,e)=>n.pointStart&&n.pointStop?(k(),E("line",{key:0,x1:n.pointStart[0],y1:n.pointStart[1],x2:n.pointStop[0],y2:n.pointStop[1]},null,8,ll)):ct("",!0)}}),cl=fs((n,t,e,s)=>{if(!n||!t||!e||!s)return;n===e&&(n+=.1);const a=(t-s)/(n-e),o=s-e*a;return{slope:a,intercept:o}});function le(n){return A(()=>cl(...n.value[0]||[],...n.value[1]||[]))}var I=function(n,t,e){if(!t.has(n))throw new TypeError("attempted to set private field on non-instance");return t.set(n,e),e},w=function(n,t){if(!t.has(n))throw new TypeError("attempted to get private field on non-instance");return t.get(n)},Pt,Bt,ut,qt,ne,vt,pt,mt,bt,gt,_t,yt,wt,Lt,Xt,Nt,ge,Rt;const dl=function(n){var t=131,e=137,s=0;n+="x";var a=Math.floor(9007199254740991/e);for(let o=0;oa&&(s=Math.floor(s/e)),s=s*t+n.charCodeAt(o);return s},x="0123456789abcdef".split(""),hl=[-2147483648,8388608,32768,128],lt=[24,16,8,0],pe=[1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298],j=[];class fl{constructor(t=!1,e=!1){Pt.set(this,void 0),Bt.set(this,void 0),ut.set(this,void 0),qt.set(this,void 0),ne.set(this,void 0),vt.set(this,void 0),pt.set(this,void 0),mt.set(this,void 0),bt.set(this,void 0),gt.set(this,void 0),_t.set(this,void 0),yt.set(this,void 0),wt.set(this,void 0),Lt.set(this,void 0),Xt.set(this,void 0),Nt.set(this,void 0),ge.set(this,0),Rt.set(this,void 0),this.init(t,e)}init(t,e){e?(j[0]=j[16]=j[1]=j[2]=j[3]=j[4]=j[5]=j[6]=j[7]=j[8]=j[9]=j[10]=j[11]=j[12]=j[13]=j[14]=j[15]=0,I(this,Bt,j)):I(this,Bt,[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]),t?(I(this,vt,3238371032),I(this,pt,914150663),I(this,mt,812702999),I(this,bt,4144912697),I(this,gt,4290775857),I(this,_t,1750603025),I(this,yt,1694076839),I(this,wt,3204075428)):(I(this,vt,1779033703),I(this,pt,3144134277),I(this,mt,1013904242),I(this,bt,2773480762),I(this,gt,1359893119),I(this,_t,2600822924),I(this,yt,528734635),I(this,wt,1541459225)),I(this,Pt,I(this,Rt,I(this,ut,I(this,Xt,0)))),I(this,qt,I(this,Lt,!1)),I(this,ne,!0),I(this,Nt,t)}update(t){if(w(this,qt))return this;let e;t instanceof ArrayBuffer?e=new Uint8Array(t):e=t;let s=0;const a=e.length,o=w(this,Bt);for(;s>2]|=e[s]<>2]|=r<>2]|=(192|r>>6)<>2]|=(128|r&63)<=57344?(o[i>>2]|=(224|r>>12)<>2]|=(128|r>>6&63)<>2]|=(128|r&63)<>2]|=(240|r>>18)<>2]|=(128|r>>12&63)<>2]|=(128|r>>6&63)<>2]|=(128|r&63)<=64?(I(this,Pt,o[16]),I(this,Rt,i-64),this.hash(),I(this,Lt,!0)):I(this,Rt,i)}return w(this,ut)>4294967295&&(I(this,Xt,w(this,Xt)+(w(this,ut)/4294967296<<0)),I(this,ut,w(this,ut)%4294967296)),this}finalize(){if(w(this,qt))return;I(this,qt,!0);const t=w(this,Bt),e=w(this,ge);t[16]=w(this,Pt),t[e>>2]|=hl[e&3],I(this,Pt,t[16]),e>=56&&(w(this,Lt)||this.hash(),t[0]=w(this,Pt),t[16]=t[1]=t[2]=t[3]=t[4]=t[5]=t[6]=t[7]=t[8]=t[9]=t[10]=t[11]=t[12]=t[13]=t[14]=t[15]=0),t[14]=w(this,Xt)<<3|w(this,ut)>>>29,t[15]=w(this,ut)<<3,this.hash()}hash(){let t=w(this,vt),e=w(this,pt),s=w(this,mt),a=w(this,bt),o=w(this,gt),i=w(this,_t),r=w(this,yt),u=w(this,wt);const d=w(this,Bt);let m,b,p,v,_,$,D,g,F,M;for(let S=16;S<64;++S)v=d[S-15],m=(v>>>7|v<<25)^(v>>>18|v<<14)^v>>>3,v=d[S-2],b=(v>>>17|v<<15)^(v>>>19|v<<13)^v>>>10,d[S]=d[S-16]+m+d[S-7]+b<<0;M=e&s;for(let S=0;S<64;S+=4)w(this,ne)?(w(this,Nt)?(D=300032,v=d[0]-1413257819,u=v-150054599<<0,a=v+24177077<<0):(D=704751109,v=d[0]-210244248,u=v-1521486534<<0,a=v+143694565<<0),I(this,ne,!1)):(m=(t>>>2|t<<30)^(t>>>13|t<<19)^(t>>>22|t<<10),b=(o>>>6|o<<26)^(o>>>11|o<<21)^(o>>>25|o<<7),D=t&e,p=D^t&s^M,$=o&i^~o&r,v=u+b+$+pe[S]+d[S],_=m+p,u=a+v<<0,a=v+_<<0),m=(a>>>2|a<<30)^(a>>>13|a<<19)^(a>>>22|a<<10),b=(u>>>6|u<<26)^(u>>>11|u<<21)^(u>>>25|u<<7),g=a&t,p=g^a&e^D,$=u&o^~u&i,v=r+b+$+pe[S+1]+d[S+1],_=m+p,r=s+v<<0,s=v+_<<0,m=(s>>>2|s<<30)^(s>>>13|s<<19)^(s>>>22|s<<10),b=(r>>>6|r<<26)^(r>>>11|r<<21)^(r>>>25|r<<7),F=s&a,p=F^s&t^g,$=r&u^~r&o,v=i+b+$+pe[S+2]+d[S+2],_=m+p,i=e+v<<0,e=v+_<<0,m=(e>>>2|e<<30)^(e>>>13|e<<19)^(e>>>22|e<<10),b=(i>>>6|i<<26)^(i>>>11|i<<21)^(i>>>25|i<<7),M=e&s,p=M^e&a^F,$=i&r^~i&u,v=o+b+$+pe[S+3]+d[S+3],_=m+p,o=t+v<<0,t=v+_<<0;I(this,vt,w(this,vt)+t<<0),I(this,pt,w(this,pt)+e<<0),I(this,mt,w(this,mt)+s<<0),I(this,bt,w(this,bt)+a<<0),I(this,gt,w(this,gt)+o<<0),I(this,_t,w(this,_t)+i<<0),I(this,yt,w(this,yt)+r<<0),I(this,wt,w(this,wt)+u<<0)}hex(){this.finalize();const t=w(this,vt),e=w(this,pt),s=w(this,mt),a=w(this,bt),o=w(this,gt),i=w(this,_t),r=w(this,yt),u=w(this,wt);let d=x[t>>28&15]+x[t>>24&15]+x[t>>20&15]+x[t>>16&15]+x[t>>12&15]+x[t>>8&15]+x[t>>4&15]+x[t&15]+x[e>>28&15]+x[e>>24&15]+x[e>>20&15]+x[e>>16&15]+x[e>>12&15]+x[e>>8&15]+x[e>>4&15]+x[e&15]+x[s>>28&15]+x[s>>24&15]+x[s>>20&15]+x[s>>16&15]+x[s>>12&15]+x[s>>8&15]+x[s>>4&15]+x[s&15]+x[a>>28&15]+x[a>>24&15]+x[a>>20&15]+x[a>>16&15]+x[a>>12&15]+x[a>>8&15]+x[a>>4&15]+x[a&15]+x[o>>28&15]+x[o>>24&15]+x[o>>20&15]+x[o>>16&15]+x[o>>12&15]+x[o>>8&15]+x[o>>4&15]+x[o&15]+x[i>>28&15]+x[i>>24&15]+x[i>>20&15]+x[i>>16&15]+x[i>>12&15]+x[i>>8&15]+x[i>>4&15]+x[i&15]+x[r>>28&15]+x[r>>24&15]+x[r>>20&15]+x[r>>16&15]+x[r>>12&15]+x[r>>8&15]+x[r>>4&15]+x[r&15];return w(this,Nt)||(d+=x[u>>28&15]+x[u>>24&15]+x[u>>20&15]+x[u>>16&15]+x[u>>12&15]+x[u>>8&15]+x[u>>4&15]+x[u&15]),d}toString(){return this.hex()}digest(){this.finalize();const t=w(this,vt),e=w(this,pt),s=w(this,mt),a=w(this,bt),o=w(this,gt),i=w(this,_t),r=w(this,yt),u=w(this,wt),d=[t>>24&255,t>>16&255,t>>8&255,t&255,e>>24&255,e>>16&255,e>>8&255,e&255,s>>24&255,s>>16&255,s>>8&255,s&255,a>>24&255,a>>16&255,a>>8&255,a&255,o>>24&255,o>>16&255,o>>8&255,o&255,i>>24&255,i>>16&255,i>>8&255,i&255,r>>24&255,r>>16&255,r>>8&255,r&255];return w(this,Nt)||d.push(u>>24&255,u>>16&255,u>>8&255,u&255),d}array(){return this.digest()}arrayBuffer(){this.finalize();const t=new ArrayBuffer(w(this,Nt)?28:32),e=new DataView(t);return e.setUint32(0,w(this,vt)),e.setUint32(4,w(this,pt)),e.setUint32(8,w(this,mt)),e.setUint32(12,w(this,bt)),e.setUint32(16,w(this,gt)),e.setUint32(20,w(this,_t)),e.setUint32(24,w(this,yt)),w(this,Nt)||e.setUint32(28,w(this,wt)),t}}Pt=new WeakMap,Bt=new WeakMap,ut=new WeakMap,qt=new WeakMap,ne=new WeakMap,vt=new WeakMap,pt=new WeakMap,mt=new WeakMap,bt=new WeakMap,gt=new WeakMap,_t=new WeakMap,yt=new WeakMap,wt=new WeakMap,Lt=new WeakMap,Xt=new WeakMap,Nt=new WeakMap,ge=new WeakMap,Rt=new WeakMap;function vl(n){const t=new fl;return t.update(n),parseInt(t.hex().substring(0,8),16)}const pl=function(n){var t="#";return n.forEach(function(e){e<16&&(t+=0),t+=e.toString(16)}),t},ml=function(n,t,e){n/=360;var s=e<.5?e*(1+t):e+t-e*t,a=2*e-s;return[n+1/3,n,n-1/3].map(function(o){return o<0&&o++,o>1&&o--,o<1/6?o=a+(s-a)*6*o:o<.5?o=s:o<2/3?o=a+(s-a)*6*(2/3-o):o=a,Math.round(o*255)})};class bl{constructor(t={}){const[e,s]=[t.lightness,t.saturation].map(function(a){return a=a!==void 0?a:[.35,.5,.65],Array.isArray(a)?a.concat():[a]});this.L=e,this.S=s,typeof t.hue=="number"&&(t.hue={min:t.hue,max:t.hue}),typeof t.hue=="object"&&!Array.isArray(t.hue)&&(t.hue=[t.hue]),typeof t.hue>"u"&&(t.hue=[]),this.hueRanges=t.hue.map(function(a){return{min:typeof a.min>"u"?0:a.min,max:typeof a.max>"u"?360:a.max}}),this.hash=vl,typeof t.hash=="function"&&(this.hash=t.hash),t.hash==="bkdr"&&(this.hash=dl)}hsl(t){var e,s,a,o=this.hash(t),i=727;if(this.hueRanges.length){const r=this.hueRanges[o%this.hueRanges.length];e=o/this.hueRanges.length%i*(r.max-r.min)/i+r.min}else e=o%359;return o=Math.ceil(o/360),s=this.S[o%this.S.length],o=Math.ceil(o/this.S.length),a=this.L[o%this.L.length],[e,s,a]}rgb(t){var e=this.hsl(t);return ml.apply(this,e)}hex(t){var e=this.rgb(t);return pl(e)}}const gl=Array.from({length:550},(n,t)=>(t+401)/1e3),_l=Array.from({length:551},(n,t)=>(t+50)/1e3);function Ae(n){return A(()=>{const t=JSON.stringify(n.value),e=De.value?gl:_l,[s,a,o]=new bl({lightness:e}).hsl(t);return`hsl(${[s,`${De.value&&o<.3||!De.value&&o>.7?Math.min(a+.4,1)*100:a*100}%`,`${o*100}%`].join(",")})`})}const Wn=ot({__name:"Line",props:{points:{type:Array,default:()=>[]},pathWidth:{type:Number,default:1},svgSize:{type:Object,default:void 0},svgOffset:{type:Object,default:void 0}},setup(n){const t=n,e=le(Xe(t,"points")),s=Ae(Xe(t,"points")),a=A(()=>{var p,v,_,$;const{svgSize:i,svgOffset:r}=t;if(!i||!r||!e.value||((p=t.points[0])==null?void 0:p[0])===((v=t.points[1])==null?void 0:v[0])&&((_=t.points[0])==null?void 0:_[1])===(($=t.points[1])==null?void 0:$[1]))return;const{slope:u,intercept:d}=e.value,m=r.x,b=i.width+r.x;return[[m,u*m+d],[b,u*b+d]]}),o=A(()=>`${t.pathWidth} ${2*t.pathWidth}`);return(i,r)=>{const u=ul;return k(),E(dt,null,[a.value?(k(),E(dt,{key:0},[P(u,Ut(i.$attrs,{"stroke-width":n.pathWidth*.8,stroke:"var(--background-color-transparent)","point-start":a.value[0],"point-stop":a.value[1],"stroke-dasharray":o.value,"stroke-linecap":"round",opacity:".2"}),null,16,["stroke-width","point-start","point-stop","stroke-dasharray"]),P(u,Ut({"stroke-width":n.pathWidth*.4,stroke:l(s)},i.$attrs,{"point-start":a.value[0],"point-stop":a.value[1],"stroke-dasharray":o.value,"stroke-linecap":"round"}),null,16,["stroke-width","stroke","point-start","point-stop","stroke-dasharray"])],64)):ct("",!0),P(u,Ut(i.$attrs,{"stroke-width":n.pathWidth*1.2,stroke:"var(--background-color-transparent)","point-start":n.points[0],"point-stop":n.points[1],"stroke-linecap":"round",opacity:".3"}),null,16,["stroke-width","point-start","point-stop"]),P(u,Ut({stroke:l(s)},i.$attrs,{"stroke-linecap":"round","point-start":n.points[0],"point-stop":n.points[1]}),null,16,["stroke","point-start","point-stop"])],64)}}}),yl={viewBox:"0 0 32 32",width:"1.2em",height:"1.2em"},wl=c("path",{fill:"currentColor",d:"M24 19h-3v-3h-2v3h-3v2h3v3h2v-3h3z"},null,-1),xl=c("path",{fill:"currentColor",d:"m31 29.586l-4.688-4.688a8.028 8.028 0 1 0-1.415 1.414L29.586 31zM20 26a6 6 0 1 1 6-6a6.007 6.007 0 0 1-6 6M4 8H2V4a2 2 0 0 1 2-2h4v2H4zm22 0h-2V4h-4V2h4a2 2 0 0 1 2 2zM12 2h4v2h-4zM8 26H4a2 2 0 0 1-2-2v-4h2v4h4zM2 12h2v4H2z"},null,-1),$l=[wl,xl];function Sl(n,t){return k(),E("svg",yl,[...$l])}const kl=Y({name:"carbon-zoom-in-area",render:Sl}),Tl={viewBox:"0 0 32 32",width:"1.2em",height:"1.2em"},Cl=c("path",{fill:"currentColor",d:"M16 19h8v2h-8z"},null,-1),Ml=c("path",{fill:"currentColor",d:"m31 29.586l-4.688-4.688a8.028 8.028 0 1 0-1.415 1.414L29.586 31zM20 26a6 6 0 1 1 6-6a6.007 6.007 0 0 1-6 6M4 8H2V4a2 2 0 0 1 2-2h4v2H4zm22 0h-2V4h-4V2h4a2 2 0 0 1 2 2zM12 2h4v2h-4zM8 26H4a2 2 0 0 1-2-2v-4h2v4h4zM2 12h2v4H2z"},null,-1),El=[Cl,Ml];function Il(n,t){return k(),E("svg",Tl,[...El])}const Dl=Y({name:"carbon-zoom-out-area",render:Il});var St=(n=>(n[n.UP=0]="UP",n[n.DOWN=1]="DOWN",n[n.LEFT=2]="LEFT",n[n.RIGHT=3]="RIGHT",n))(St||{});const Kn=Kt(()=>{const n=O(!1);return{outOfBoundLabels:n,setOutBoundLabels(t,e,s){const a={x:30,y:4.5},o=t.find(({x:u,y:d})=>(u-=s.x,d-=s.y,ue.width-a.x||de.height-a.y));if(!o)return n.value=!1;let{x:i,y:r}=o;return i-=s.x,r-=s.y,ie.width-a.x?n.value={direction:3,y:r}:r{if(!n.value||!t.value)return;const{slope:e,intercept:s}=n.value,{slope:a,intercept:o}=t.value;let i;return e===a?i=o-s:i=(s-o)/(a-e),{x:i,y:e*i+s}})}function Yn(n,t,e,s){return A(()=>{if(!t.value||!e.value||!s.value||!n.value)return;const a=e.value,o=s.value;let i=Math.tan((Math.atan(a.slope)+Math.atan(o.slope))/2),r=-1/i,u=a.slope*t.value.x+a.intercept-i*t.value.x,d=a.slope*t.value.x+a.intercept-r*t.value.x;const m=En([[[0,a.intercept],[t.value.x,a.slope*t.value.x+a.intercept]],[[0,u],[t.value.x,i*t.value.x+u]]])*2;return(m-1>n.value||m+1{if(!t.value||!e.value||!n.value)return s.value=[];const{acute:{slope:a,intercept:o},obtuse:{slope:i,intercept:r}}=e.value,u=70,d=n.value,m=Math.cos(Math.atan(a))*(u+(90-d)*.4)+t.value.x,b=180-d,p=-Math.cos(Math.atan(i))*(u+(90-b)*.4)+t.value.x;s.value=[{x:m,y:a*m+o,value:d},{x:p,y:i*p+r,value:b}]},{throttle:20,immediate:!0}),s}function gn(n,t){return A(()=>{if(!t.value||!n.value)return;const{slope:e,intercept:s}=n.value,{x1:a,x2:o}=t.value;return[[a,e*a+s],[o,e*o+s]]})}const Fl=["viewBox"],Pl=["transform"],Nl=["x","y"],Rl=ot({__name:"BoardResult",setup(n){const{t}=Wt(),e=O(!1);function s(){e.value&&(e.value=!1)}const a=O();ps(a,s),yn("Escape",s);const{height:o,width:i}=ze(Ee()),r=A(()=>({width:300,height:300*o.value/i.value})),{outOfBoundLabels:u}=Kn(),d=A(()=>{const T=e.value?260:50;return{width:T,height:T}}),m=A(()=>({minY:d.value.height,maxY:o.value-d.value.height,minX:d.value.width,maxX:i.value-d.value.width})),b=A(()=>{const{minX:T,maxX:h,minY:f,maxY:y}=m.value,N=G=>G>y?y:GG>h?h:Gp.value[0]||[]),$=A(()=>p.value[1]||[]),D=le(_),g=le($),F=jn(D,g),M=Yn(v,F,D,g),S=qn(v,F,M),V=A(()=>F.value&&{x1:F.value.x-r.value.width,x2:F.value.x+r.value.width}),z=gn(D,V),xt=gn(g,V),Ot=Ae(_),$t=Ae($),U={[St.UP]:"bottom",[St.DOWN]:void 0,[St.LEFT]:"right",[St.RIGHT]:"left"};return(T,h)=>{const f=Ht,y=Wn;return l(D)&&l(g)&&l(F)&&l(u)?(k(),E("section",{key:0,ref_key:"el",ref:a,class:C(["bg-bg-transparent-inverse text-inverse",[T.$style.result,{[T.$style["result--open"]]:l(e)}]]),style:me(l(b)),onMousemove:h[0]||(h[0]=tt(()=>{},["prevent","stop"])),onClick:h[1]||(h[1]=N=>e.value=!l(e))},[P(f,{class:C(T.$style.btn),tooltip:l(e)?l(t)("board.result.zoom_out"):l(t)("board.result.zoom_in"),"tooltip-placement":l(e)?"left":U[l(u).direction]},{default:H(()=>[(k(),at(ms(l(e)?l(Dl):l(kl))))]),_:1},8,["class","tooltip","tooltip-placement"]),(k(),E("svg",{viewBox:`${l(r).width*.1} ${l(r).height*.1} ${l(r).width*.8} ${l(r).height*.8}`,class:C(T.$style.svg)},[c("g",{transform:`translate(${-l(F).x+l(r).width*.5} ${-l(F).y+l(r).height*.5})`},[l(z)?(k(),at(y,Ut({key:0,"stroke-width":"4","stroke-linecap":"round"},T.$attrs,{stroke:l(Ot),"path-width":4,points:l(z),"stroke-dasharray":"5 10",filter:"saturate(2.5)"}),null,16,["stroke","points"])):ct("",!0),l(xt)?(k(),at(y,Ut({key:1,"stroke-width":"4","stroke-linecap":"round"},T.$attrs,{stroke:l($t),"path-width":4,points:l(xt),"stroke-dasharray":"5 10",filter:"saturate(2.5)"}),null,16,["stroke","points"])):ct("",!0),(k(!0),E(dt,null,Zt(l(S),N=>(k(),E("text",{key:`${N.x}|${N.y}`,x:N.x,y:N.y,"text-anchor":"middle","dominant-baseline":"middle",stroke:"transparent"},B(N.value.toFixed(3))+"° ",9,Nl))),128))],8,Pl)],10,Fl))],38)):ct("",!0)}}}),Al="f_z",Ol="f_1",zl="f_2",Bl={result:Al,"result--open":"f_0",svg:Ol,btn:zl},Ll={$style:Bl},Gl=Et(Rl,[["__cssModules",Ll]]),Ul=["viewBox","stroke-width"],Vl=["cx","cy","r"],Hl=["x","y","stroke-width"],Wl=["x","y"],Kl=ot({__name:"BoardSvg",props:{width:{type:Number,default:0},height:{type:Number,default:0}},emits:["pressed"],setup(n,{emit:t}){const e=n,s=t,{width:a,height:o}=_n(e),i=Me(),r=O(!1),{ctrl:u,meta:d,option:m}=Be(),b=A(()=>{if(d.value)return"move"}),{offset:p,active:v,zoom:_,transformOrigin:$}=Vn(),D=A(()=>5/_.value),g=A(()=>({width:a.value/_.value,height:o.value/_.value})),F=A(()=>({x:-p.value[0]/_.value,y:-p.value[1]/_.value})),{elementX:M,elementY:S}=bs(i,{handleOutside:!1}),V=A(()=>(M.value-p.value[0])/_.value),z=A(()=>(S.value-p.value[1])/_.value),{undo:xt,redo:Ot}=_e(M),{undo:$t,redo:U}=_e(S),{lines:T,predictNextPoint:h,drawNextPoint:f,step:y,registerOnRedo:N,registerOnUndo:R}=Se();N(()=>{Ot(),U()}),R(()=>{xt(),$t()}),Z([V,z],([rt,it])=>{y.value===2&&h(rt,it)});const L=Le(T),G=A(()=>T.value[0]||[]),q=A(()=>T.value[1]||[]),W=le(G),ht=le(q),It=jn(W,ht),ft=Yn(L,It,W,ht),Dt=qn(L,It,ft),{setOutBoundLabels:de}=Kn();Z([Dt,g,F],([rt,it,zt])=>de(rt,it,zt)),Z([a,o],([rt,it],[zt,nt])=>{$.value=[$.value[0]+(rt-zt)/2,$.value[1]+(it-nt)/2]});function jt(){v.value||(f(V.value,z.value),s("pressed"))}return(rt,it)=>{const zt=Wn;return k(),E("svg",{ref_key:"svgRef",ref:i,viewBox:`${l(F).x} ${l(F).y} ${l(g).width} ${l(g).height}`,"stroke-width":l(D),tabindex:"0",style:me({cursor:l(b)}),onTouchend:tt(jt,["prevent"]),onMouseup:tt(jt,["left","prevent"]),onMousedownOnce:it[0]||(it[0]=tt(nt=>r.value=!0,["left"])),onMousemovePassiveOnce:it[1]||(it[1]=nt=>r.value=!0),onTouchstartPassiveOnce:it[2]||(it[2]=nt=>r.value=!0)},[se(rt.$slots,"default"),l(y)%2?Ft((k(),E("circle",{key:0,cx:`${l(V)}px`,cy:`${l(z)}px`,r:l(D),"stroke-width":1},null,8,Vl)),[[gs,l(r)&&!l(u)&&!l(d)&&!l(m)]]):(k(),at(zt,{key:1,points:[l(T)[Math.floor(l(y)/2)][0],[l(V),l(z)]],"svg-size":l(g),"svg-offset":l(F),"path-width":l(D)},null,8,["points","svg-size","svg-offset","path-width"])),P(zt,{points:l(T)[0],"svg-size":l(g),"svg-offset":l(F),"path-width":l(D)},null,8,["points","svg-size","svg-offset","path-width"]),P(zt,{points:l(T)[1],"svg-size":l(g),"svg-offset":l(F),"path-width":l(D)},null,8,["points","svg-size","svg-offset","path-width"]),(k(!0),E(dt,null,Zt(l(Dt),nt=>(k(),E(dt,{key:`${nt.x}|${nt.y}`},[c("text",{x:nt.x,y:nt.y,"text-anchor":"middle","dominant-baseline":"middle",stroke:"var(--background-color-transparent)","stroke-width":l(D),style:me(`font-size:${l(D)/5}em`)},B(nt.value.toFixed(3))+"° ",13,Hl),c("text",{x:nt.x,y:nt.y,"text-anchor":"middle","dominant-baseline":"middle",stroke:"transparent",style:me(`font-size:${l(D)/5}em`)},B(nt.value.toFixed(3))+"° ",13,Wl)],64))),128))],44,Ul)}}}),jl=["href","x","y","height","width"],Yl=ot({__name:"Board",setup(n){const{t}=Wt(),e=O(!0),s=Ee(),{height:a,width:o}=ze(s),{src:i,width:r,height:u,processFiles:d}=Hn(),m=O(0),b=O(0);Z(i,()=>{if(u&&r)if(r.value>o.value||u.value>a.value){const _=Math.min(o.value/r.value,a.value/u.value);m.value=u.value*_,b.value=r.value*_}else m.value=u.value,b.value=r.value});const{isOverDropZone:p}=_s(s,d),v=A(()=>p.value?[t("board.drop_file_here")]:[]);return(_,$)=>{const D=Kl,g=Gl,F=rl;return k(),E("div",{ref_key:"boardRef",ref:s,class:C(_.$style.board)},[P(D,{class:C(_.$style.board__svg),width:l(o),height:l(a),onPressed:$[0]||($[0]=M=>e.value=!1)},{default:H(()=>[l(i)?(k(),E("image",{key:0,href:l(i),x:l(b)/-2,y:l(m)/-2,height:`${l(m)}`,width:`${l(b)}`},null,8,jl)):ct("",!0)]),_:1},8,["class","width","height"]),l(e)&&!l(i)?(k(),E("div",{key:0,class:C(_.$style.board__hint)},B(l(t)("board.click_this_button_or_drop")),3)):ct("",!0),P(g),P(F,{class:C(_.$style.board__nav),info:l(v),"onUpdate:files":l(d)},null,8,["class","info","onUpdate:files"])],2)}}}),ql="f_h",Xl="f_i",Zl="f_j",Jl="f_k",Ql={board:ql,board__svg:Xl,board__nav:Zl,board__hint:Jl},tu={$style:Ql},eu=Et(Yl,[["__cssModules",tu]]),nu={};function su(n,t){const e=eu;return k(),at(e,{class:"flex-grow"})}const ru=Et(nu,[["render",su]]);export{ru as default}; +*/function Je(n,t){var e=Object.keys(n);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(n);t&&(s=s.filter(function(a){return Object.getOwnPropertyDescriptor(n,a).enumerable})),e.push.apply(e,s)}return e}function Qe(n){for(var t=1;t0){var s=t[t.length-1];s!==e&&s.pause()}var a=t.indexOf(e);a===-1||t.splice(a,1),t.push(e)},deactivateTrap:function(t,e){var s=t.indexOf(e);s!==-1&&t.splice(s,1),t.length>0&&t[t.length-1].unpause()}},Ls=function(t){return t.tagName&&t.tagName.toLowerCase()==="input"&&typeof t.select=="function"},Gs=function(t){return(t==null?void 0:t.key)==="Escape"||(t==null?void 0:t.key)==="Esc"||(t==null?void 0:t.keyCode)===27},ae=function(t){return(t==null?void 0:t.key)==="Tab"||(t==null?void 0:t.keyCode)===9},Us=function(t){return ae(t)&&!t.shiftKey},Vs=function(t){return ae(t)&&t.shiftKey},en=function(t){return setTimeout(t,0)},nn=function(t,e){var s=-1;return t.every(function(a,o){return e(a)?(s=o,!1):!0}),s},Qt=function(t){for(var e=arguments.length,s=new Array(e>1?e-1:0),a=1;a1?y-1:0),R=1;R=0)h=s.activeElement;else{var f=i.tabbableGroups[0],y=f&&f.firstTabbableNode;h=y||m("fallbackFocus")}if(!h)throw new Error("Your focus-trap needs to have at least one focusable element");return h},p=function(){if(i.containerGroups=i.containers.map(function(h){var f=Ns(h,o.tabbableOptions),y=Rs(h,o.tabbableOptions),N=f.length>0?f[0]:void 0,R=f.length>0?f[f.length-1]:void 0,L=y.find(function(W){return Yt(W)}),G=y.slice().reverse().find(function(W){return Yt(W)}),q=!!f.find(function(W){return Gt(W)>0});return{container:h,tabbableNodes:f,focusableNodes:y,posTabIndexesFound:q,firstTabbableNode:N,lastTabbableNode:R,firstDomTabbableNode:L,lastDomTabbableNode:G,nextTabbableNode:function(ht){var It=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0,ft=f.indexOf(ht);return ft<0?It?y.slice(y.indexOf(ht)+1).find(function(Dt){return Yt(Dt)}):y.slice(0,y.indexOf(ht)).reverse().find(function(Dt){return Yt(Dt)}):f[ft+(It?1:-1)]}}}),i.tabbableGroups=i.containerGroups.filter(function(h){return h.tabbableNodes.length>0}),i.tabbableGroups.length<=0&&!m("fallbackFocus"))throw new Error("Your focus-trap must have at least one container with at least one tabbable node in it at all times");if(i.containerGroups.find(function(h){return h.posTabIndexesFound})&&i.containerGroups.length>1)throw new Error("At least one node with a positive tabindex was found in one of your focus-trap's multiple containers. Positive tabindexes are only supported in single-container focus-traps.")},v=function T(h){var f=h.activeElement;if(f)return f.shadowRoot&&f.shadowRoot.activeElement!==null?T(f.shadowRoot):f},_=function T(h){if(h!==!1&&h!==v(document)){if(!h||!h.focus){T(b());return}h.focus({preventScroll:!!o.preventScroll}),i.mostRecentlyFocusedNode=h,Ls(h)&&h.select()}},$=function(h){var f=m("setReturnFocus",h);return f||(f===!1?!1:h)},D=function(h){var f=h.target,y=h.event,N=h.isBackward,R=N===void 0?!1:N;f=f||fe(y),p();var L=null;if(i.tabbableGroups.length>0){var G=d(f,y),q=G>=0?i.containerGroups[G]:void 0;if(G<0)R?L=i.tabbableGroups[i.tabbableGroups.length-1].lastTabbableNode:L=i.tabbableGroups[0].firstTabbableNode;else if(R){var W=nn(i.tabbableGroups,function(jt){var rt=jt.firstTabbableNode;return f===rt});if(W<0&&(q.container===f||Fe(f,o.tabbableOptions)&&!Yt(f,o.tabbableOptions)&&!q.nextTabbableNode(f,!1))&&(W=G),W>=0){var ht=W===0?i.tabbableGroups.length-1:W-1,It=i.tabbableGroups[ht];L=Gt(f)>=0?It.lastTabbableNode:It.lastDomTabbableNode}else ae(y)||(L=q.nextTabbableNode(f,!1))}else{var ft=nn(i.tabbableGroups,function(jt){var rt=jt.lastTabbableNode;return f===rt});if(ft<0&&(q.container===f||Fe(f,o.tabbableOptions)&&!Yt(f,o.tabbableOptions)&&!q.nextTabbableNode(f))&&(ft=G),ft>=0){var Dt=ft===i.tabbableGroups.length-1?0:ft+1,de=i.tabbableGroups[Dt];L=Gt(f)>=0?de.firstTabbableNode:de.firstDomTabbableNode}else ae(y)||(L=q.nextTabbableNode(f))}}else L=m("fallbackFocus");return L},g=function(h){var f=fe(h);if(!(d(f,h)>=0)){if(Qt(o.clickOutsideDeactivates,h)){r.deactivate({returnFocus:o.returnFocusOnDeactivate});return}Qt(o.allowOutsideClick,h)||h.preventDefault()}},F=function(h){var f=fe(h),y=d(f,h)>=0;if(y||f instanceof Document)y&&(i.mostRecentlyFocusedNode=f);else{h.stopImmediatePropagation();var N,R=!0;if(i.mostRecentlyFocusedNode)if(Gt(i.mostRecentlyFocusedNode)>0){var L=d(i.mostRecentlyFocusedNode),G=i.containerGroups[L].tabbableNodes;if(G.length>0){var q=G.findIndex(function(W){return W===i.mostRecentlyFocusedNode});q>=0&&(o.isKeyForward(i.recentNavEvent)?q+1=0&&(N=G[q-1],R=!1))}}else i.containerGroups.some(function(W){return W.tabbableNodes.some(function(ht){return Gt(ht)>0})})||(R=!1);else R=!1;R&&(N=D({target:i.mostRecentlyFocusedNode,isBackward:o.isKeyBackward(i.recentNavEvent)})),_(N||i.mostRecentlyFocusedNode||b())}i.recentNavEvent=void 0},M=function(h){var f=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1;i.recentNavEvent=h;var y=D({event:h,isBackward:f});y&&(ae(h)&&h.preventDefault(),_(y))},S=function(h){if(Gs(h)&&Qt(o.escapeDeactivates,h)!==!1){h.preventDefault(),r.deactivate();return}(o.isKeyForward(h)||o.isKeyBackward(h))&&M(h,o.isKeyBackward(h))},V=function(h){var f=fe(h);d(f,h)>=0||Qt(o.clickOutsideDeactivates,h)||Qt(o.allowOutsideClick,h)||(h.preventDefault(),h.stopImmediatePropagation())},z=function(){if(i.active)return tn.activateTrap(a,r),i.delayInitialFocusTimer=o.delayInitialFocus?en(function(){_(b())}):_(b()),s.addEventListener("focusin",F,!0),s.addEventListener("mousedown",g,{capture:!0,passive:!1}),s.addEventListener("touchstart",g,{capture:!0,passive:!1}),s.addEventListener("click",V,{capture:!0,passive:!1}),s.addEventListener("keydown",S,{capture:!0,passive:!1}),r},xt=function(){if(i.active)return s.removeEventListener("focusin",F,!0),s.removeEventListener("mousedown",g,!0),s.removeEventListener("touchstart",g,!0),s.removeEventListener("click",V,!0),s.removeEventListener("keydown",S,!0),r},Ot=function(h){var f=h.some(function(y){var N=Array.from(y.removedNodes);return N.some(function(R){return R===i.mostRecentlyFocusedNode})});f&&_(b())},$t=typeof window<"u"&&"MutationObserver"in window?new MutationObserver(Ot):void 0,U=function(){$t&&($t.disconnect(),i.active&&!i.paused&&i.containers.map(function(h){$t.observe(h,{subtree:!0,childList:!0})}))};return r={get active(){return i.active},get paused(){return i.paused},activate:function(h){if(i.active)return this;var f=u(h,"onActivate"),y=u(h,"onPostActivate"),N=u(h,"checkCanFocusTrap");N||p(),i.active=!0,i.paused=!1,i.nodeFocusedBeforeActivation=s.activeElement,f==null||f();var R=function(){N&&p(),z(),U(),y==null||y()};return N?(N(i.containers.concat()).then(R,R),this):(R(),this)},deactivate:function(h){if(!i.active)return this;var f=Qe({onDeactivate:o.onDeactivate,onPostDeactivate:o.onPostDeactivate,checkCanReturnFocus:o.checkCanReturnFocus},h);clearTimeout(i.delayInitialFocusTimer),i.delayInitialFocusTimer=void 0,xt(),i.active=!1,i.paused=!1,U(),tn.deactivateTrap(a,r);var y=u(f,"onDeactivate"),N=u(f,"onPostDeactivate"),R=u(f,"checkCanReturnFocus"),L=u(f,"returnFocus","returnFocusOnDeactivate");y==null||y();var G=function(){en(function(){L&&_($(i.nodeFocusedBeforeActivation)),N==null||N()})};return L&&R?(R($(i.nodeFocusedBeforeActivation)).then(G,G),this):(G(),this)},pause:function(h){if(i.paused||!i.active)return this;var f=u(h,"onPause"),y=u(h,"onPostPause");return i.paused=!0,f==null||f(),xt(),U(),y==null||y(),this},unpause:function(h){if(!i.paused||!i.active)return this;var f=u(h,"onUnpause"),y=u(h,"onPostUnpause");return i.paused=!1,f==null||f(),p(),z(),U(),y==null||y(),this},updateContainerElements:function(h){var f=[].concat(h).filter(Boolean);return i.containers=f.map(function(y){return typeof y=="string"?s.querySelector(y):y}),i.active&&p(),U(),this}},r.updateContainerElements(t),r};const Ks=ot({name:"UseFocusTrap",props:["as","options"],setup(n,{slots:t}){let e;const s=O(),a=()=>e&&e.activate(),o=()=>e&&e.deactivate();return Z(()=>Oe(s),i=>{i&&(e=Ws(i,n.options||{}),a())},{flush:"post"}),Zn(()=>o()),()=>{if(t.default)return Jn(n.as||"div",{ref:s},t.default())}}}),js=["textContent"],Ys={inheritAttrs:!1},qs=ot({...Ys,__name:"Modal",props:{heading:{type:String,required:!0},modelValue:{type:Boolean,required:!0}},emits:["update:modelValue"],setup(n,{emit:t}){const e=t,{t:s}=Wt(),a=O(),o=()=>e("update:modelValue",!1);return Z(a,i=>{i==null||i.showModal()}),(i,r)=>{const u=Ht;return n.modelValue?(k(),at(Qn,{key:0,to:"body"},[P(l(Ks),{options:{immediate:!0,initialFocus:!1}},{default:H(()=>[c("dialog",{ref_key:"dialog",ref:a,"aria-modal":"",onClick:o,onClose:o},[c("article",Ut({class:i.$style.content},i.$attrs,{onClick:r[0]||(r[0]=tt(()=>{},["stop"]))}),[c("h3",{textContent:B(n.heading)},null,8,js),se(i.$slots,"default"),c("footer",{class:C(i.$style.footer)},[se(i.$slots,"footer-pre"),P(u,{onClick:o,class:"outline"},{default:H(()=>[Q(B(l(s)("main.close")),1)]),_:1}),se(i.$slots,"footer")],2)],16)],544)]),_:3})])):ct("",!0)}}}),Xs="f_ad",Zs="f_ae",Js="f_af",Qs={content:Xs,spacer:Zs,footer:Js},ta={$style:Qs},Cn=Et(qs,[["__cssModules",ta]]),Me=Kt(()=>O());function ea(n,t){const e=new MouseEvent("click",{view:window,bubbles:!1,cancelable:!0}),s=document.createElement("a");s.setAttribute("download",t),s.setAttribute("href",n),s.setAttribute("target","_blank"),s.dispatchEvent(e)}async function na(n,t){const e=new XMLSerializer().serializeToString(n),s=new Blob([e],{type:"image/svg+xml;charset=utf-8"}),a=new Image,o=URL.createObjectURL(s);await new Promise((i,r)=>{a.onload=function(){t.drawImage(a,0,0),URL.revokeObjectURL(o),i()},a.onabort=a.onerror=()=>r(),a.src=o})}const ie={JPG:1,PNG:2},sa={[ie.JPG]:{encoding:"image/jpeg",extension:"jpg"},[ie.PNG]:{encoding:"image/png",extension:"png"}};function aa(n){var s;const t=n.cloneNode(!0),e=window.getComputedStyle(n);return(s=t.querySelector("circle"))==null||s.remove(),t.style.setProperty("--background-color-transparent",e.getPropertyValue("--background-color-transparent")),t.style.color=t.style.fill=e.getPropertyValue("--color"),t.style.stroke="#fff",t.style.fontFamily="Arial",t.style.fontSize="20px",t}const Mn=Kt(()=>{const n=document.createElement("canvas"),t=n==null?void 0:n.getContext("2d"),e=Me(),s=A(()=>e.value&&t);return{triggerDownload:async({filename:o,filetype:i,quality:r,width:u,height:d})=>{if(!s.value||!n||!e.value||!t)return console.error("Cannot download due to required api missing:",s.value,n,e.value,t);n.width=u,n.height=d,await na(aa(e.value),t);const{encoding:m,extension:b}=sa[i],p=n.toDataURL(m,r);ea(p,`${o}.${b}`)},isSupported:s}}),Mt={px:1,"%":2,in:3,mm:4};function ia(n,t,e){let s=n;switch(t){case Mt["%"]:s=n*100/e;break;case Mt.in:s=n/window.devicePixelRatio;break;case Mt.mm:s=n*25.4/window.devicePixelRatio;break}return+s.toFixed(6)}function oa(n,t,e){let s=n;switch(t){case Mt["%"]:s=n/100*e;break;case Mt.in:s=n*window.devicePixelRatio;break;case Mt.mm:s=n*window.devicePixelRatio/25.4;break}return+s.toFixed(5)}function sn(n,t,e){const s=O(0),a=O(n.value-1),o=O(0);return Z([n,t],([i,r],[,u])=>{(a.value!==i||r!==u)&&(a.value=i,s.value=ia(i,r,e.value))},{immediate:!0}),Z(o,i=>{s.value!==i&&(a.value=oa(i,t.value,e.value))}),Z(s,i=>o.value=i,{immediate:!0}),o}const ra={viewBox:"0 0 32 32",width:"1.2em",height:"1.2em"},la=c("path",{fill:"currentColor",d:"M24 14h-2V8a6 6 0 0 0-12 0v6H8a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2V16a2 2 0 0 0-2-2M12 8a4 4 0 0 1 8 0v6h-8Zm12 20H8V16h16Z"},null,-1),ua=[la];function ca(n,t){return k(),E("svg",ra,[...ua])}const da=Y({name:"carbon-locked",render:ca}),ha={viewBox:"0 0 32 32",width:"1.2em",height:"1.2em"},fa=c("path",{fill:"currentColor",d:"M24 14H12V8a4 4 0 0 1 8 0h2a6 6 0 0 0-12 0v6H8a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2V16a2 2 0 0 0-2-2m0 14H8V16h16Z"},null,-1),va=[fa];function pa(n,t){return k(),E("svg",ha,[...va])}const ma=Y({name:"carbon-unlocked",render:pa}),ba=ts({...es,xs:480}),ga={class:"flex-grow"},_a=["aria-invalid"],ya=["value","textContent"],wa=["aria-invalid"],xa=["aria-invalid"],$a=["data-tooltip"],Sa=["value","textContent"],ka=["aria-invalid"],Ta=ot({__name:"BoardControlsSvgDownloadModalContent",props:{boardWidth:{type:Number,required:!0},boardHeight:{type:Number,required:!0}},emits:["downloadFinish"],setup(n,{emit:t}){const e=n,s=t,{t:a}=Wt(),{triggerDownload:o}=Mn(),i=he("FA_FILENAME","fast-angle-image"),{boardHeight:r,boardWidth:u}=_n(e),d=O(r.value),m=O(u.value),b=he("FA_SIZE_UNIT",Mt.px),p=O(!0),v=O(u.value/r.value);ba.isGreaterOrEqual("xl")&&Z([u,r],([M,S])=>{m.value=M,d.value=S,v.value=M/S});const _=sn(d,b,r),$=sn(m,b,u);Z([$,_],([M,S])=>{p.value||(v.value=M/S)},{flush:"sync",immediate:!0}),Z(_,()=>{_.value<0&&(_.value=1),p.value&&_.value!==+($.value/v.value).toFixed(3)&&($.value=+(_.value*v.value).toFixed(3))},{flush:"sync"}),Z($,()=>{$.value<0&&($.value=1),p.value&&$.value!==+(_.value*v.value).toFixed(3)&&(_.value=+($.value/v.value).toFixed(3))},{flush:"sync"});const D=he("FA_FILETYPE",ie.PNG),g=he("FA_QUALITY",100);Z(g,()=>{g.value>100&&(g.value=100),g.value<0&&(g.value=0)});async function F(){await o({filename:i.value,filetype:D.value,quality:g.value/100,width:m.value,height:d.value}).catch(()=>{}),s("downloadFinish")}return(M,S)=>{const V=Ht;return k(),E("form",{onSubmit:tt(F,["prevent"])},[c("div",{class:C(M.$style.name)},[c("label",ga,[Q(B(l(a)("board.nav.download_image.name_label"))+" ",1),Ft(c("input",{"onUpdate:modelValue":S[0]||(S[0]=z=>kt(i)?i.value=z:null),type:"text",name:"name",required:"","aria-invalid":!l(i)},null,8,_a),[[Jt,l(i)]])]),c("label",{class:C(M.$style["label--big"])},[Q(B(l(a)("board.nav.download_image.format_label"))+" ",1),Ft(c("select",{"onUpdate:modelValue":S[1]||(S[1]=z=>kt(D)?D.value=z:null),required:""},[(k(!0),E(dt,null,Zt(Object.keys(l(ie)),z=>(k(),E("option",{key:z,value:l(ie)[z],textContent:B(z)},null,8,ya))),128))],512),[[Ye,l(D)]])],2)],2),c("fieldset",{class:C(M.$style.sizing)},[c("legend",null,[c("small",null,B(l(a)("board.nav.download_image.sizing_label")),1)]),c("label",{class:C(M.$style.label)},[Q(B(l(a)("board.nav.download_image.width_label"))+" ",1),Ft(c("input",{"onUpdate:modelValue":S[2]||(S[2]=z=>kt($)?$.value=z:null),min:"1",type:"number",step:"0.000001",name:"width",required:"","aria-invalid":!l($)||l($)<1},null,8,wa),[[Jt,l($),void 0,{number:!0}]])],2),c("label",{class:C(M.$style.label)},[Q(B(l(a)("board.nav.download_image.height_label"))+" ",1),Ft(c("input",{"onUpdate:modelValue":S[3]||(S[3]=z=>kt(_)?_.value=z:null),min:"1",type:"number",step:"0.000001",name:"height",required:"","aria-invalid":!l(_)||l(_)<1},null,8,xa),[[Jt,l(_),void 0,{number:!0}]])],2),c("label",null,[Q("   "),c("div",{class:C(M.$style["aspect-ratio"]),"data-tooltip":l(a)("board.nav.download_image.keep_aspect_ratio"),"data-placement":"left"},[P(V,{"aria-label":l(a)("board.nav.download_image.keep_aspect_ratio"),class:C([M.$style["aspect-ratio-btn"],{[M.$style["aspect-ratio-btn--inactive"]]:!l(p)}]),onClick:S[4]||(S[4]=z=>p.value=!l(p))},{default:H(()=>[l(p)?(k(),at(l(da),{key:0})):(k(),at(l(ma),{key:1}))]),_:1},8,["aria-label","class"])],10,$a)]),c("label",{class:C([M.$style.label,M.$style["label--small"]])},[Q(B(l(a)("board.nav.download_image.unit_label"))+" ",1),Ft(c("select",{"onUpdate:modelValue":S[5]||(S[5]=z=>kt(b)?b.value=z:null),required:""},[(k(!0),E(dt,null,Zt(Object.keys(l(Mt)),z=>(k(),E("option",{key:z,value:l(Mt)[z],textContent:B(z)},null,8,Sa))),128))],512),[[Ye,l(b)]])],2)],2),c("label",null,[c("span",{class:C(M.$style.quality)},[Q(B(l(a)("board.nav.download_image.quality_label"))+" ",1),Ft(c("input",{"onUpdate:modelValue":S[6]||(S[6]=z=>kt(g)?g.value=z:null),type:"number",min:"1",max:"100",class:C(M.$style.quality__input),name:"quality","aria-invalid":!l(g)||l(g)>100||l(g)<1},null,10,ka),[[Jt,l(g),void 0,{number:!0}]]),Q(" % ")],2),Ft(c("input",{"onUpdate:modelValue":S[7]||(S[7]=z=>kt(g)?g.value=z:null),type:"range",min:"1",max:"100",name:"quality"},null,512),[[Jt,l(g),void 0,{number:!0}]])])],32)}}}),Ca="f_ag",Ma="f_aj",Ea="f_ak",Ia="f_ao",Da="f_ap",Fa={label:Ca,"label--big":"f_ah","label--small":"f_ai",sizing:Ma,name:Ea,"aspect-ratio":"f_al","aspect-ratio-btn":"f_am","aspect-ratio-btn--inactive":"f_an",quality:Ia,quality__input:Da},Pa={$style:Fa},Na=Et(Ta,[["__cssModules",Pa]]),Ra={viewBox:"0 0 32 32",width:"1.2em",height:"1.2em"},Aa=c("path",{fill:"currentColor",d:"M26 24v4H6v-4H4v4a2 2 0 0 0 2 2h20a2 2 0 0 0 2-2v-4zm0-10l-1.41-1.41L17 20.17V2h-2v18.17l-7.59-7.58L6 14l10 10z"},null,-1),Oa=[Aa];function za(n,t){return k(),E("svg",Ra,[...Oa])}const Ba=Y({name:"carbon-download",render:za}),Ee=Kt(()=>O()),La={key:0},an="board_svg_download_form",Ga=ot({__name:"BoardControlsSvgDownload",props:{disabled:{type:Boolean,default:!1}},setup(n){const{t}=Wt(),{isSupported:e}=Mn(),s=Ee(),{height:a,width:o}=ze(s),i=O(!1),r=O(!1);return Be({onEventFired(u){(u.ctrlKey||u.metaKey)&&u.key==="s"&&(u.preventDefault(),i.value=!0)},passive:!1}),(u,d)=>{const m=Na,b=Ht,p=Cn;return l(e)?(k(),E("li",La,[P(b,{tooltip:`${l(t)("board.nav.download_image.action")} [ctrl + s][⌘ + s]`,"tooltip-placement":"left",disabled:n.disabled?void 0:!0,onClick:d[3]||(d[3]=v=>i.value=!0),onTouchstart:d[4]||(d[4]=tt(v=>i.value=!0,["stop","prevent"]))},{default:H(()=>[P(l(Ba)),P(p,{modelValue:l(i),"onUpdate:modelValue":d[2]||(d[2]=v=>kt(i)?i.value=v:null),heading:l(t)("board.nav.download_image.heading")},{footer:H(()=>[P(b,{type:"submit",role:"button",form:an,disabled:l(r),"aria-busy":l(r),class:C(u.$style["button-submit"]),autofocus:""},{default:H(()=>[Q(B(l(t)("board.nav.download_image.save")),1)]),_:1},8,["disabled","aria-busy","class"])]),default:H(()=>[P(m,{id:an,"board-height":l(a),"board-width":l(o),onSubmit:d[0]||(d[0]=v=>r.value=!0),onDownloadFinish:d[1]||(d[1]=v=>(r.value=!1,i.value=!1))},null,8,["board-height","board-width"])]),_:1},8,["modelValue","heading"])]),_:1},8,["tooltip","disabled"])])):ct("",!0)}}}),Ua={"button-submit":"f_4"},Va={$style:Ua},Ha=Et(Ga,[["__cssModules",Va]]),Wa={viewBox:"0 0 32 32",width:"1.2em",height:"1.2em"},Ka=c("path",{fill:"currentColor",d:"M16 2a14 14 0 1 0 14 14A14 14 0 0 0 16 2m0 26a12 12 0 1 1 12-12a12 12 0 0 1-12 12"},null,-1),ja=c("circle",{cx:"16",cy:"23.5",r:"1.5",fill:"currentColor"},null,-1),Ya=c("path",{fill:"currentColor",d:"M17 8h-1.5a4.49 4.49 0 0 0-4.5 4.5v.5h2v-.5a2.5 2.5 0 0 1 2.5-2.5H17a2.5 2.5 0 0 1 0 5h-2v4.5h2V17a4.5 4.5 0 0 0 0-9"},null,-1),qa=[Ka,ja,Ya];function Xa(n,t){return k(),E("svg",Wa,[...qa])}const Za=Y({name:"carbon-help",render:Xa}),Ja={viewBox:"0 0 32 32",width:"1.2em",height:"1.2em"},Qa=c("path",{fill:"currentColor",d:"M22.5 4c-2 0-3.9.8-5.3 2.2L16 7.4l-1.1-1.1c-2.9-3-7.7-3-10.6-.1l-.1.1c-3 3-3 7.8 0 10.8L16 29l11.8-11.9c3-3 3-7.8 0-10.8C26.4 4.8 24.5 4 22.5 4"},null,-1),ti=[Qa];function ei(n,t){return k(),E("svg",Ja,[...ti])}const on=Y({name:"carbon-favorite-filled",render:ei}),ni=c("hr",null,null,-1),si=["textContent"],ai={rol:"grid"},ii=c("th",{scope:"col",textContent:"Win"},null,-1),oi=c("th",{scope:"col",textContent:"Mac"},null,-1),ri=["textContent"],li=c("kbd",null,"ctrl",-1),ui=c("kbd",null,"z",-1),ci=c("kbd",null,"⌘",-1),di=c("kbd",null,"z",-1),hi=["textContent"],fi=c("kbd",null,"ctrl",-1),vi=c("kbd",null,"shift",-1),pi=c("kbd",null,"z",-1),mi=c("kbd",null,"⌘",-1),bi=c("kbd",null,"shift",-1),gi=c("kbd",null,"z",-1),_i=["textContent"],yi=c("kbd",null,"ctrl",-1),wi=c("kbd",null,"s",-1),xi=c("kbd",null,"⌘",-1),$i=c("kbd",null,"s",-1),Si=["textContent"],ki=c("kbd",null,"f",-1),Ti=[ki],Ci=c("kbd",null,"f",-1),Mi=[Ci],Ei=["textContent"],Ii=["textContent"],Di=["href","data-tooltip","title"],Fi={rel:"noreferrer",href:"https://github.com/FRSOURCE/fast-angle",target:"_blank",title:"GitHub"},Pi={rel:"noreferrer",href:"https://www.frsource.org/blog/sponsoring",target:"_blank",title:"Sponsoring"},Ni=c("hr",null,null,-1),Ri=["textContent"],Ai=["textContent"],Oi=ot({__name:"BoardControlsSvgHelp",setup(n){const{t,tm:e,rt:s}=Wt(),a=O(!1),o=A(()=>e("board.nav.help.content"));return(i,r)=>{const u=ns("RouterLink"),d=Cn,m=Ht;return k(),E("li",null,[P(m,{tooltip:l(t)("board.nav.help.action"),"tooltip-placement":"left",onClick:r[1]||(r[1]=b=>a.value=!0),onTouchstartCapture:r[2]||(r[2]=tt(b=>a.value=!0,["prevent","stop"]))},{default:H(()=>[P(l(Za)),P(d,{modelValue:l(a),"onUpdate:modelValue":r[0]||(r[0]=b=>kt(a)?a.value=b:null),heading:l(t)("board.nav.help.heading"),class:C(i.$style.modal)},{"footer-pre":H(()=>[c("a",{autofocus:"",rel:"noreferrer",href:"https://github.com/FRSOURCE/fast-angle",target:"_blank",title:"GitHub",class:C(i.$style.donate)},[P(l(on)),c("small",null,B(l(t)("main.donate_us")),1)],2)]),default:H(()=>[c("ul",null,[(k(!0),E(dt,null,Zt(l(o),b=>(k(),E("li",{key:l(s)(b)},B(l(s)(b)),1))),128))]),ni,c("div",{class:C(i.$style["hide-mobile"])},[c("h4",{textContent:B(l(t)("board.nav.help.key_bindings.heading"))},null,8,si),c("table",ai,[c("thead",null,[c("tr",null,[ii,oi,c("th",{scope:"col",textContent:B(l(t)("board.nav.help.key_bindings.description"))},null,8,ri)])]),c("tr",null,[c("td",{scope:"col",class:C(i.$style["binding-item-wrapper"])},[c("div",{class:C(i.$style["binding-item"])},[li,c("small",{class:C(i.$style["binding-item-plus"])},"+",2),ui],2)],2),c("td",{scope:"col",class:C(i.$style["binding-item-wrapper"])},[c("div",{class:C(i.$style["binding-item"])},[ci,c("small",{class:C(i.$style["binding-item-plus"])},"+",2),di],2)],2),c("td",{scope:"col",textContent:B(l(t)("board.nav.undo"))},null,8,hi)]),c("tr",null,[c("td",{scope:"col",class:C(i.$style["binding-item-wrapper"])},[c("div",{class:C(i.$style["binding-item"])},[fi,c("small",{class:C(i.$style["binding-item-plus"])},"+",2),vi,c("small",{class:C(i.$style["binding-item-plus"])},"+",2),pi],2)],2),c("td",{scope:"col",class:C(i.$style["binding-item-wrapper"])},[c("div",{class:C(i.$style["binding-item"])},[mi,c("small",{class:C(i.$style["binding-item-plus"])},"+",2),bi,c("small",{class:C(i.$style["binding-item-plus"])},"+",2),gi],2)],2),c("td",{scope:"col",textContent:B(l(t)("board.nav.download_image.action"))},null,8,_i)]),c("tr",null,[c("td",{scope:"col",class:C(i.$style["binding-item-wrapper"])},[c("div",{class:C(i.$style["binding-item"])},[yi,c("small",{class:C(i.$style["binding-item-plus"])},"+",2),wi],2)],2),c("td",{scope:"col",class:C(i.$style["binding-item-wrapper"])},[c("div",{class:C(i.$style["binding-item"])},[xi,c("small",{class:C(i.$style["binding-item-plus"])},"+",2),$i],2)],2),c("td",{scope:"col",textContent:B(l(t)("board.nav.redo"))},null,8,Si)]),c("tr",null,[c("td",{scope:"col",class:C(i.$style["binding-item-wrapper"])},[c("div",{class:C(i.$style["binding-item"])},Ti,2)],2),c("td",{scope:"col",class:C(i.$style["binding-item-wrapper"])},[c("div",{class:C(i.$style["binding-item"])},Mi,2)],2),c("td",{scope:"col",textContent:B(l(t)("board.nav.toggle_fullscreen"))},null,8,Ei)])])],2),c("h4",{textContent:B(l(t)("board.nav.help.heading_authors"))},null,8,Ii),c("p",null,[Q(B(l(t)("main.brought_to_you_by"))+" ",1),c("a",{href:`${"host"in i?i.host:l(ss)}/`,"data-tooltip":l(t)("main.visit_our_website"),title:l(t)("main.visit_our_website")},"FRSOURCE",8,Di)]),c("p",null,[c("a",Fi,[P(l(Xn)),Q(" "+B(l(t)("main.star_us_on_github")),1)])]),c("p",null,[c("a",Pi,[P(l(on)),Q(" "+B(l(t)("main.donate_us")),1)])]),Ni,c("p",{class:C(i.$style.terms)},[P(u,{to:{name:`lang-${l(qe)}-terms`}},{default:H(()=>[c("small",{textContent:B(l(t)("main.terms_and_conditions"))},null,8,Ri)]),_:1},8,["to"]),P(u,{to:{name:`lang-${l(qe)}-privacy-policy`}},{default:H(()=>[c("small",{textContent:B(l(t)("main.privacy_policy"))},null,8,Ai)]),_:1},8,["to"])],2)]),_:1},8,["modelValue","heading","class"])]),_:1},8,["tooltip"])])}}}),zi="f_8",Bi="f_ab",Li="f_ac",Gi={modal:zi,"hide-mobile":"f_9","binding-item":"f__","binding-item-plus":"f_-","list-item":"f_aa",terms:Bi,donate:Li},Ui={$style:Gi},Vi=Et(Oi,[["__cssModules",Ui]]),Hi={viewBox:"0 0 32 32",width:"1.2em",height:"1.2em"},Wi=c("path",{fill:"currentColor",d:"M28 10v18H10V10zm0-2H10a2 2 0 0 0-2 2v18a2 2 0 0 0 2 2h18a2 2 0 0 0 2-2V10a2 2 0 0 0-2-2"},null,-1),Ki=c("path",{fill:"currentColor",d:"M4 18H2V4a2 2 0 0 1 2-2h14v2H4Z"},null,-1),ji=[Wi,Ki];function Yi(n,t){return k(),E("svg",Hi,[...ji])}const qi=Y({name:"carbon-copy",render:Yi}),Xi={viewBox:"0 0 32 32",width:"1.2em",height:"1.2em"},Zi=c("path",{fill:"currentColor",d:"m13 24l-9-9l1.414-1.414L13 21.171L26.586 7.586L28 9z"},null,-1),Ji=[Zi];function Qi(n,t){return k(),E("svg",Xi,[...Ji])}const to=Y({name:"carbon-checkmark",render:Qi}),eo=ot({__name:"BoardSummaryItem",props:{value:{type:Number,default:0}},setup(n){const t=n,e=A(()=>t.value?t.value.toFixed(3):""),{copy:s,copied:a,isSupported:o}=as({source:e});return(i,r)=>{const u=Ht;return k(),E("small",{class:C(i.$style.item),onClick:r[0]||(r[0]=()=>l(s)())},[c("div",null,[se(i.$slots,"default"),c("span",{class:C(i.$style.text)},[l(e)?(k(),E(dt,{key:0},[Q(B(l(e))+"°",1)],64)):(k(),E(dt,{key:1},[Q("?")],64))],2)]),l(o)&&l(e)?(k(),at(u,{key:0,class:C(i.$style.btn),disabled:l(a)},{default:H(()=>[l(a)?(k(),at(l(to),{key:0})):(k(),at(l(qi),{key:1}))]),_:1},8,["class","disabled"])):ct("",!0)],2)}}}),no="f_5",so="f_6",ao="f_7",io={item:no,text:so,btn:ao},oo={$style:io},ro=Et(eo,[["__cssModules",oo]]),lo={viewBox:"0 0 32 32",width:"1.2em",height:"1.2em"},uo=c("path",{fill:"currentColor",d:"M20 2v2h6.586L18 12.582L19.414 14L28 5.414V12h2V2zm-6 17.416L12.592 18L4 26.586V20H2v10h10v-2H5.414z"},null,-1),co=[uo];function ho(n,t){return k(),E("svg",lo,[...co])}const fo=Y({name:"carbon-maximize",render:ho}),vo={viewBox:"0 0 32 32",width:"1.2em",height:"1.2em"},po=c("path",{fill:"currentColor",d:"M4 18v2h6.586L2 28.582L3.414 30L12 21.414V28h2V18zM30 3.416L28.592 2L20 10.586V4h-2v10h10v-2h-6.586z"},null,-1),mo=[po];function bo(n,t){return k(),E("svg",vo,[...mo])}const go=Y({name:"carbon-minimize",render:bo}),_o={viewBox:"0 0 32 32",width:"1.2em",height:"1.2em"},yo=c("path",{fill:"currentColor",d:"M18 12h-4V8h-2v4H8v2h4v4h2v-4h4z"},null,-1),wo=c("path",{fill:"currentColor",d:"M21.448 20A10.86 10.86 0 0 0 24 13a11 11 0 1 0-11 11a10.86 10.86 0 0 0 7-2.552L27.586 29L29 27.586ZM13 22a9 9 0 1 1 9-9a9.01 9.01 0 0 1-9 9"},null,-1),xo=[yo,wo];function $o(n,t){return k(),E("svg",_o,[...xo])}const So=Y({name:"carbon-zoom-in",render:$o}),ko={viewBox:"0 0 32 32",width:"1.2em",height:"1.2em"},To=c("path",{fill:"currentColor",d:"M8 12h10v2H8z"},null,-1),Co=c("path",{fill:"currentColor",d:"M21.448 20A10.86 10.86 0 0 0 24 13a11 11 0 1 0-11 11a10.86 10.86 0 0 0 7-2.552L27.586 29L29 27.586ZM13 22a9 9 0 1 1 9-9a9.01 9.01 0 0 1-9 9"},null,-1),Mo=[To,Co];function Eo(n,t){return k(),E("svg",ko,[...Mo])}const Io=Y({name:"carbon-zoom-out",render:Eo}),Do={viewBox:"0 0 32 32",width:"1.2em",height:"1.2em"},Fo=c("path",{fill:"currentColor",d:"M4 20v2h4.586L2 28.586L3.414 30L10 23.414V28h2v-8zm15-6a3 3 0 1 0-3-3a3 3 0 0 0 3 3m0-4a1 1 0 1 1-1 1a1 1 0 0 1 1-1"},null,-1),Po=c("path",{fill:"currentColor",d:"M26 4H6a2 2 0 0 0-2 2v10h2V6h20v15.17l-3.59-3.59a2 2 0 0 0-2.82 0L18 19.17L11.83 13l-1.414 1.416L14 18l2.59 2.59a2 2 0 0 0 2.82 0L21 19l5 5v2H16v2h10a2 2 0 0 0 2-2V6a2 2 0 0 0-2-2"},null,-1),No=[Fo,Po];function Ro(n,t){return k(),E("svg",Do,[...No])}const Ao=Y({name:"carbon-image-reference",render:Ro}),Oo={viewBox:"0 0 32 32",width:"1.2em",height:"1.2em"},zo=c("path",{d:"M9 24a3.51 3.51 0 0 0-.88-1.86l9.53-16.58l-1.73-1l-9.57 16.56A3.06 3.06 0 0 0 5.5 21a3.5 3.5 0 1 0 3.15 5H28v-2zm-3.5 2A1.5 1.5 0 1 1 7 24.5A1.5 1.5 0 0 1 5.5 26z",fill:"currentColor"},null,-1),Bo=c("path",{d:"M22 21h2a13 13 0 0 0-5.42-10.56l-1.16 1.62A11 11 0 0 1 22 21z",fill:"currentColor"},null,-1),Lo=[zo,Bo];function Go(n,t){return k(),E("svg",Oo,[...Lo])}const Uo=Y({name:"carbon-angle",render:Go}),Vo={viewBox:"0 0 32 32",width:"1.2em",height:"1.2em"},Ho=c("path",{fill:"currentColor",d:"M20 10H7.815l3.587-3.586L10 5l-6 6l6 6l1.402-1.415L7.818 12H20a6 6 0 0 1 0 12h-8v2h8a8 8 0 0 0 0-16"},null,-1),Wo=[Ho];function Ko(n,t){return k(),E("svg",Vo,[...Wo])}const jo=Y({name:"carbon-undo",render:Ko}),Yo={viewBox:"0 0 32 32",width:"1.2em",height:"1.2em"},qo=c("path",{fill:"currentColor",d:"M12 10h12.185l-3.587-3.586L22 5l6 6l-6 6l-1.402-1.415L24.182 12H12a6 6 0 0 0 0 12h8v2h-8a8 8 0 0 1 0-16"},null,-1),Xo=[qo];function Zo(n,t){return k(),E("svg",Yo,[...Xo])}const Jo=Y({name:"carbon-redo",render:Zo}),Qo={width:"1.2em",height:"1.2em",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 32 32",fill:"currentColor"},tr=c("path",{d:"M18.3 26a3.5 3.5 0 006.6-3.05 3 3 0 00-.7-.8l7.53-15.58-1.73-1-7.57 15.56a2.7 2.7 0 00-.8-.1 3.5 3.5 0 00-3.33 2.97h-17.973v2Zm3.4.1a1.5 1.5 0 111.5-1.5 1.5 1.5 0 01-1.5 1.5Z"},null,-1),er=c("path",{d:"M3.75 21.25a13.2 13.2 90 0120.25-10.56l-.87 1.44a11.75 11.75 90 00-17.6 9.13z"},null,-1),nr=[tr,er];function sr(n,t){return k(),E("svg",Qo,[...nr])}const ar=Y({name:"custom-angle-obtuse",render:sr}),Pe=4,Se=Kt(()=>{const n=O([]),t=O([]),e=O(Pe-1);let s=()=>{},a=()=>{};Z(n,g=>{t.value=[...g]},{deep:!0,flush:"sync"});const o=(g,F)=>{++e.value>=Pe&&(e.value=0,n.value=[]);const M=Math.floor(e.value/2);if(e.value%2){const S=n.value[M][0];if(!S)return;n.value[M]=[S,[g,F]]}else n.value[M]=[[g,F]]},i=(g,F)=>{const M=e.value+1>=Pe?0:e.value+1,S=Math.floor(M/2);if(M%2){const V=t.value[S][0];if(!V)return;t.value[S]=[V,[g,F]]}else t.value[S]=[[g,F]]},{undo:r,redo:u,canUndo:d,canRedo:m}=_e(e),{undo:b,redo:p,canUndo:v,canRedo:_}=_e(n,{deep:!0}),$=()=>{b(),s(),r()},D=()=>{p(),a(),u()};return Be({onEventFired(g){(g.ctrlKey||g.metaKey)&&g.key==="z"&&(g.shiftKey?D():$())}}),{step:e,lines:t,drawNextPoint:o,predictNextPoint:i,undo:$,redo:D,canUndo:A(()=>d.value&&v.value),canRedo:A(()=>m.value&&_.value),registerOnUndo:g=>s=g,registerOnRedo:g=>a=g}});function En(n){const[[[t,e],[s,a]],[[o,i],[r,u]]]=n,d=s-t,m=a-e,b=r-o,p=u-i,v=Math.atan2(d*p-m*b,d*b+m*p);return Math.abs(v)*(180/Math.PI)}function Le(n){return A(()=>{var t,e;return(((t=n.value[0])==null?void 0:t.length)||0)<2||(((e=n.value[1])==null?void 0:e.length)||0)<2?0:En(n.value)})}function ir(){try{return"constructor"in GestureEvent}catch{return!1}}function In(){return typeof window<"u"&&"ontouchstart"in window}function Dn(n){return"pointerId"in n?null:n.type==="touchend"?n.changedTouches:n.targetTouches}function Ge(n){return Array.from(Dn(n)).map(t=>t.identifier)}function Tt(n){const t="buttons"in n?n.buttons:0,{shiftKey:e,altKey:s,metaKey:a,ctrlKey:o}=n;return{buttons:t,shiftKey:e,altKey:s,metaKey:a,ctrlKey:o}}const Ie=n=>n;function rn(n,t=Ie){const e=Dn(n),{clientX:s,clientY:a}=e?e[0]:n;return t([s,a])}function ln(n,t,e=Ie){const[s,a]=Array.from(n.touches).filter(v=>t.includes(v.identifier));if(!s||!a)throw Error("The event doesn't have two pointers matching the pointerIds");const o=a.clientX-s.clientX,i=a.clientY-s.clientY,r=(a.clientX+s.clientX)/2,u=(a.clientY+s.clientY)/2,d=Math.hypot(o,i),m=-(Math.atan2(o,i)*180)/Math.PI,b=e([d,m]),p=e([r,u]);return{values:b,origin:p}}const un=40,cn=800;function Fn(n,t=Ie){let{deltaX:e,deltaY:s,deltaMode:a}=n;return a===1?(e*=un,s*=un):a===2&&(e*=cn,s*=cn),t([e,s])}function dn(n,t=Ie){return t([n.scale,n.rotation])}function Pn(){}function Nn(...n){return n.length===0?Pn:n.length===1?n[0]:function(){var t;for(let e of n)t=e.apply(this,arguments)||t;return t}}function At(n,t){if(n===void 0){if(t===void 0)throw new Error("Must define fallback value if undefined is expected");n=t}return Array.isArray(n)?n:[n,n]}function hn(n,t){return Object.assign({},t,n||{})}function ke(n,...t){return typeof n=="function"?n(...t):n}function te(n){return{_active:!1,_blocked:!1,_intentional:[!1,!1],_movement:[0,0],_initial:[0,0],_bounds:[[-1/0,1/0],[-1/0,1/0]],_lastEventType:void 0,_dragStarted:!1,_dragPreventScroll:!1,_dragIsTap:!0,_dragDelayed:!1,event:void 0,intentional:!1,values:[0,0],velocities:[0,0],delta:[0,0],movement:[0,0],offset:[0,0],lastOffset:[0,0],direction:[0,0],initial:[0,0],previous:[0,0],first:!1,last:!1,active:!1,timeStamp:0,startTime:0,elapsedTime:0,cancel:Pn,canceled:!1,memo:void 0,args:void 0,...n}}function Re(){const n={hovering:!1,scrolling:!1,wheeling:!1,dragging:!1,moving:!1,pinching:!1,touches:0,buttons:0,down:!1,shiftKey:!1,altKey:!1,metaKey:!1,ctrlKey:!1,locked:!1},t=te({_pointerId:void 0,axis:void 0,xy:[0,0],vxvy:[0,0],velocity:0,distance:0,tap:!1,swipe:[0,0]}),e=te({_pointerIds:[],da:[0,0],vdva:[0,0],origin:void 0,turns:0}),s=te({axis:void 0,xy:[0,0],vxvy:[0,0],velocity:0,distance:0}),a=te({axis:void 0,xy:[0,0],vxvy:[0,0],velocity:0,distance:0}),o=te({axis:void 0,xy:[0,0],vxvy:[0,0],velocity:0,distance:0});return{shared:n,drag:t,pinch:e,wheel:s,move:a,scroll:o}}var or=Object.defineProperty,rr=(n,t,e)=>t in n?or(n,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):n[t]=e,et=(n,t,e)=>(rr(n,typeof t!="symbol"?t+"":t,e),e);class lr{constructor(t){this.classes=t,et(this,"nativeRefs"),et(this,"config"),et(this,"handlers"),et(this,"state"),et(this,"timeouts"),et(this,"domListeners"),et(this,"windowListeners"),et(this,"pointerIds",new Set),et(this,"touchIds",new Set),et(this,"supportsTouchEvents",In()),et(this,"supportsGestureEvents",ir()),et(this,"bind",(...e)=>{const s={};for(let a of this.classes)new a(this,e).addBindings(s);for(let a in this.nativeRefs)K(s,a,o=>this.nativeRefs[a]({...this.state.shared,event:o,args:e}));return this.config.domTarget?hr(this,s):fr(this,s)}),et(this,"clean",()=>{const{eventOptions:e,domTarget:s}=this.config,a=l(s);a&&ue(a,On(this.domListeners),e),Object.values(this.timeouts).forEach(clearTimeout),ur(this)}),et(this,"reset",()=>{this.state=Re()}),this.classes=t,this.state=Re(),this.timeouts={},this.domListeners=[],this.windowListeners={}}}function Rn(n,t){"pointerId"in t?n.pointerIds.add(t.pointerId):n.touchIds=new Set(Ge(t))}function An(n,t){"pointerId"in t?n.pointerIds.delete(t.pointerId):Ge(t).forEach(e=>n.touchIds.delete(e))}function ur(n){const{config:{window:t,eventOptions:e},windowListeners:s}=n,a=l(t);if(a){for(let o in s){const i=s[o];ue(a,i,e)}n.windowListeners={}}}function cr({config:n,windowListeners:t},e,s=n.eventOptions){const a=l(n.window);a&&(ue(a,t[e],s),delete t[e])}function dr({config:n,windowListeners:t},e,s=[],a=n.eventOptions){const o=l(n.window);o&&(ue(o,t[e],a),zn(o,t[e]=s,a))}function hr({config:n,domListeners:t},e){const{eventOptions:s,domTarget:a}=n,o=l(a);if(!o)throw new Error("domTarget must be defined");ue(o,On(t),s);for(let[i,r]of Object.entries(e)){const u=i.slice(2).toLowerCase();t.push([u,Nn(...r)])}zn(o,t,s)}function fr({config:n},t){const e={},s=n.eventOptions.capture?"Capture":"";for(let[a,o]of Object.entries(t)){const i=Array.isArray(o)?o:[o],r=a+s;e[r]=Nn(...i)}return e}function On(n=[]){return n.splice(0,n.length)}function K(n,t,e){n[t]||(n[t]=[]),n[t].push(e)}function zn(n,t=[],e={}){if(n)for(let[s,a]of t)n.addEventListener(s,a,e)}function ue(n,t=[],e={}){if(n)for(let[s,a]of t)n.removeEventListener(s,a,e)}function Te(n,t){return n.map((e,s)=>e+t[s])}function Ue(n,t){return n.map((e,s)=>e-t[s])}function re(n){return Math.hypot(...n)}function vr(n,t=n){const e=re(t),s=e===0?0:1/e,a=t.map(i=>s*i);return{distance:re(n),direction:a}}function Bn(n,t,e){const s=re(t),a=s===0?0:1/s,o=e===0?0:1/e,i=o*s,r=t.map(m=>o*m),u=t.map(m=>a*m),d=re(n);return{velocities:r,velocity:i,distance:d,direction:u}}function Ce(n){return Math.sign?Math.sign(n):+(n>0)-+(n<0)||+n}function pr(n,t,e){return Math.max(t,Math.min(n,e))}function mr(n,t){return Math.pow(n,t*5)}function fn(n,t,e){return t===0||Math.abs(t)===1/0?mr(n,e):n*t*e/(t+e*n)}function vn(n,t,e,s=.15){return s===0?pr(n,t,e):ne?+fn(n-e,e-t,s)+e:n}var br=Object.defineProperty,gr=(n,t,e)=>t in n?br(n,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):n[t]=e,ve=(n,t,e)=>(gr(n,typeof t!="symbol"?t+"":t,e),e);const Ct=new Map,_r=n=>n;class Ln{constructor(t,e=[]){this.controller=t,this.args=e,ve(this,"debounced",!0),ve(this,"setTimeout",(s,a=140,...o)=>{clearTimeout(this.controller.timeouts[this.stateKey]),this.controller.timeouts[this.stateKey]=window.setTimeout(s,a,...o)}),ve(this,"clearTimeout",()=>{clearTimeout(this.controller.timeouts[this.stateKey])}),ve(this,"fireGestureHandler",(s=!1)=>{if(this.state._blocked)return this.debounced||(this.state._active=!1,this.clean()),null;if(!s&&!this.state.intentional&&!this.config.triggerAllEvents)return null;if(this.state.intentional){const u=this.state.active,d=this.state._active;this.state.active=d,this.state.first=d&&!u,this.state.last=u&&!d,this.controller.state.shared[this.ingKey]=d}const a=this.controller.pointerIds.size||this.controller.touchIds.size,o=this.controller.state.shared.buttons>0||a>0,i={...this.controller.state.shared,...this.state,...this.mapStateValues(this.state),locked:!!document.pointerLockElement,touches:a,down:o},r=this.handler(i);return this.state.memo=r!==void 0?r:this.state.memo,i}),this.controller=t,this.args=e}get config(){return this.controller.config[this.stateKey]}get enabled(){return this.controller.config.enabled&&this.config.enabled}get state(){return this.controller.state[this.stateKey]}get handler(){return this.controller.handlers[this.stateKey]}get transform(){return this.config.transform||this.controller.config.transform||_r}updateSharedState(t){Object.assign(this.controller.state.shared,t)}updateGestureState(t){Object.assign(this.state,t)}checkIntentionality(t,e){return{_intentional:t,_blocked:!1}}getMovement(t){const{rubberband:e,threshold:s}=this.config,{_bounds:a,_initial:o,_active:i,_intentional:r,lastOffset:u,movement:d}=this.state,m=this.getInternalMovement(t,this.state),b=this.transform(s).map(Math.abs),p=r[0]===!1?pn(m[0],b[0]):r[0],v=r[1]===!1?pn(m[1],b[1]):r[1],_=this.checkIntentionality([p,v],m);if(_._blocked)return{..._,_movement:m,delta:[0,0]};const $=_._intentional,D=m;let g=[$[0]!==!1?m[0]-$[0]:0,$[1]!==!1?m[1]-$[1]:0];const F=Te(g,u),M=i?e:[0,0];return g=mn(a,Te(g,o),M),{..._,intentional:$[0]!==!1||$[1]!==!1,_initial:o,_movement:D,movement:g,values:t,offset:mn(a,F,M),delta:Ue(g,d)}}clean(){this.clearTimeout()}}function pn(n,t){return Math.abs(n)>=t?Ce(n)*t:!1}function mn(n,[t,e],[s,a]){const[[o,i],[r,u]]=n;return[vn(t,o,i,s),vn(e,r,u,a)]}function st({state:n},t,e){const{timeStamp:s,type:a}=t,o=n.values,i=e?0:s-n.startTime;return{_lastEventType:a,event:t,timeStamp:s,elapsedTime:i,previous:o}}function oe({state:n,config:t,stateKey:e,args:s},a,o){const i=n.offset,r=o.timeStamp,{initial:u,bounds:d}=t,m={...Re()[e],_active:!0,args:s,values:a,initial:a,offset:i,lastOffset:i,startTime:r};return{...m,_initial:ke(u,m),_bounds:ke(d,m)}}class Gn extends Ln{getInternalMovement(t,e){return Ue(t,e.initial)}checkIntentionality(t,e){if(t[0]===!1&&t[1]===!1)return{_intentional:t,axis:this.state.axis};const[s,a]=e.map(Math.abs),o=this.state.axis||(s>a?"x":st in n?yr(n,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):n[t]=e,X=(n,t,e)=>(wr(n,typeof t!="symbol"?t+"":t,e),e);const xr=3;function bn(n){"persist"in n&&typeof n.persist=="function"&&n.persist()}class $r extends Gn{constructor(){super(...arguments),X(this,"ingKey","dragging"),X(this,"stateKey","drag"),X(this,"setPointerCapture",t=>{if(this.config.useTouch||document.pointerLockElement)return;const{target:e,pointerId:s}=t;e&&"setPointerCapture"in e&&e.setPointerCapture(s),this.updateGestureState({_dragTarget:e,_dragPointerId:s})}),X(this,"releasePointerCapture",()=>{if(this.config.useTouch||document.pointerLockElement)return;const{_dragTarget:t,_dragPointerId:e}=this.state;if(e&&t&&"releasePointerCapture"in t&&(!("hasPointerCapture"in t)||t.hasPointerCapture(e)))try{t.releasePointerCapture(e)}catch{}}),X(this,"preventScroll",t=>{this.state._dragPreventScroll&&t.cancelable&&t.preventDefault()}),X(this,"getEventId",t=>this.config.useTouch?t.changedTouches[0].identifier:t.pointerId),X(this,"isValidEvent",t=>this.state._pointerId===this.getEventId(t)),X(this,"shouldPreventWindowScrollY",this.config.preventWindowScrollY&&this.controller.supportsTouchEvents),X(this,"setUpWindowScrollDetection",t=>{bn(t),dr(this.controller,this.stateKey,[["touchmove",this.preventScroll],["touchend",this.clean.bind(this)],["touchcancel",this.clean.bind(this)]],{passive:!1}),this.setTimeout(this.startDrag.bind(this),250,t)}),X(this,"setUpDelayedDragTrigger",t=>{this.state._dragDelayed=!0,bn(t),this.setTimeout(this.startDrag.bind(this),this.config.delay,t)}),X(this,"setStartState",t=>{const e=rn(t,this.transform);this.updateSharedState(Tt(t)),this.updateGestureState({...oe(this,e,t),...st(this,t,!0),_pointerId:this.getEventId(t)}),this.updateGestureState(this.getMovement(e))}),X(this,"onDragStart",t=>{Rn(this.controller,t),!(!this.enabled||this.state._active)&&(this.setStartState(t),this.setPointerCapture(t),this.shouldPreventWindowScrollY?this.setUpWindowScrollDetection(t):this.config.delay>0?this.setUpDelayedDragTrigger(t):this.startDrag(t,!0))}),X(this,"onDragChange",t=>{if(this.state.canceled||!this.state._active||!this.isValidEvent(t)||this.state._lastEventType===t.type&&t.timeStamp===this.state.timeStamp)return;let e;if(document.pointerLockElement){const{movementX:u,movementY:d}=t;e=Te(this.transform([u,d]),this.state.values)}else e=rn(t,this.transform);const s=this.getKinematics(e,t);if(!this.state._dragStarted){if(this.state._dragDelayed){this.startDrag(t);return}if(this.shouldPreventWindowScrollY)if(!this.state._dragPreventScroll&&s.axis)if(s.axis==="x")this.startDrag(t);else{this.state._active=!1;return}else return;else return}const a=Tt(t);this.updateSharedState(a);const o=st(this,t),i=re(s._movement);let{_dragIsTap:r}=this.state;r&&i>=xr&&(r=!1),this.updateGestureState({...o,...s,_dragIsTap:r}),this.fireGestureHandler()}),X(this,"onDragEnd",t=>{if(An(this.controller,t),!this.isValidEvent(t)||(this.clean(),!this.state._active))return;this.state._active=!1;const e=this.state._dragIsTap,[s,a]=this.state.velocities,[o,i]=this.state.movement,[r,u]=this.state._intentional,[d,m]=this.config.swipeVelocity,[b,p]=this.config.swipeDistance,v=this.config.swipeDuration,_={...st(this,t),...this.getMovement(this.state.values)},$=[0,0];_.elapsedTimed&&Math.abs(o)>b&&($[0]=Ce(s)),u!==!1&&Math.abs(a)>m&&Math.abs(i)>p&&($[1]=Ce(a))),this.updateSharedState({buttons:0}),this.updateGestureState({..._,tap:e,swipe:$}),this.fireGestureHandler(this.config.filterTaps&&e===!0)}),X(this,"clean",()=>{super.clean(),this.state._dragStarted=!1,this.releasePointerCapture(),cr(this.controller,this.stateKey)}),X(this,"onCancel",()=>{this.state.canceled||(this.updateGestureState({canceled:!0,_active:!1}),this.updateSharedState({buttons:0}),ls(this.fireGestureHandler))}),X(this,"onClick",t=>{this.state._dragIsTap||t.stopPropagation()})}startDrag(t,e=!1){!this.state._active||this.state._dragStarted||(e||this.setStartState(t),this.updateGestureState({_dragStarted:!0,_dragPreventScroll:!0,cancel:this.onCancel}),this.clearTimeout(),this.fireGestureHandler())}addBindings(t){if(this.config.useTouch?(K(t,"onTouchStart",this.onDragStart),K(t,"onTouchMove",this.onDragChange),K(t,"onTouchEnd",this.onDragEnd),K(t,"onTouchCancel",this.onDragEnd)):(K(t,"onPointerDown",this.onDragStart),K(t,"onPointerMove",this.onDragChange),K(t,"onPointerUp",this.onDragEnd),K(t,"onPointerCancel",this.onDragEnd)),this.config.filterTaps){const e=this.controller.config.eventOptions.capture?"onClick":"onClickCapture";K(t,e,this.onClick)}}}function Ve(n,t){let e,s=[],a,o=!1;function i(...r){return o&&e===this&&t(r,s)||(a=n.apply(this,r),o=!0,e=this,s=r),a}return i}function be(n,t){if(n===t)return!0;if(n&&t&&typeof n=="object"&&typeof t=="object"){if(n.constructor!==t.constructor)return!1;let e,s,a;if(Array.isArray(n)){if(e=n.length,e!==t.length)return!1;for(s=e;s--!==0;)if(!be(n[s],t[s]))return!1;return!0}let o;if(typeof Map=="function"&&n instanceof Map&&t instanceof Map){if(n.size!==t.size)return!1;for(o=n.entries();!(s=o.next()).done;)if(!t.has(s.value[0]))return!1;for(o=n.entries();!(s=o.next()).done;)if(!be(s.value[1],t.get(s.value[0])))return!1;return!0}if(typeof Set=="function"&&n instanceof Set&&t instanceof Set){if(n.size!==t.size)return!1;for(o=n.entries();!(s=o.next()).done;)if(!t.has(s.value[0]))return!1;return!0}if(n.constructor===RegExp)return n.source===t.source&&n.flags===t.flags;if(n.valueOf!==Object.prototype.valueOf)return n.valueOf()===t.valueOf();if(n.toString!==Object.prototype.toString)return n.toString()===t.toString();if(a=Object.keys(n),e=a.length,e!==Object.keys(t).length)return!1;for(s=e;s--!==0;)if(!Object.prototype.hasOwnProperty.call(t,a[s]))return!1;if(typeof Element<"u"&&n instanceof Element)return!1;for(s=e;s--!==0;)if(!(a[s]==="_owner"&&n.$$typeof)&&!be(n[a[s]],t[a[s]]))return!1;return!0}return n!==n&&t!==t}function He(n,t){try{return be(n,t)}catch(e){if((e.message||"").match(/stack|recursion/i))return console.warn("react-fast-compare cannot handle circular refs"),!1;throw e}}function ce(n={},t){const e={};for(const[s,a]of Object.entries(t))switch(typeof a){case"function":e[s]=a.call(e,n[s],s,n);break;case"object":e[s]=ce(n[s],a);break;case"boolean":a&&(e[s]=n[s]);break}return e}const Sr=180,kr=.15,Tr=.5,Cr=50,Mr=250,Un={threshold(n=0){return At(n)},rubberband(n=0){switch(n){case!0:return At(kr);case!1:return At(0);default:return At(n)}},enabled(n=!0){return n},triggerAllEvents(n=!1){return n},initial(n=0){return typeof n=="function"?n:At(n)},transform:!0},We={...Un,axis:!0,lockDirection(n=!1){return n},bounds(n={}){if(typeof n=="function")return o=>We.bounds(n(o));const{left:t=-1/0,right:e=1/0,top:s=-1/0,bottom:a=1/0}=n;return[[t,e],[s,a]]}},Er=typeof window<"u"&&window.document&&window.document.createElement,Ir={enabled(n=!0){return n},domTarget:!0,window(n=Er?window:void 0){return n},eventOptions({passive:n=!0,capture:t=!1}={}){return{passive:n,capture:t}},transform:!0},Dr={...Un,bounds(n,t,{distanceBounds:e={},angleBounds:s={}}){const a=i=>{const r=hn(ke(e,i),{min:-1/0,max:1/0});return[r.min,r.max]},o=i=>{const r=hn(ke(s,i),{min:-1/0,max:1/0});return[r.min,r.max]};return typeof e!="function"&&typeof s!="function"?[a(),o()]:i=>[a(i),o(i)]}},Fr={...We,useTouch(n=!0){return n&&In()},preventWindowScrollY(n=!1){return n},threshold(n,t,{filterTaps:e=!1,lockDirection:s=!1,axis:a=void 0}){const o=At(n,e?3:s||a?1:0);return this.filterTaps=e,o},swipeVelocity(n=Tr){return At(n)},swipeDistance(n=Cr){return At(n)},swipeDuration(n=Mr){return n},delay(n=0){switch(n){case!0:return Sr;case!1:return 0;default:return n}}};function Ke(n){return ce(n,Ir)}function Pr(n={}){return ce(n,We)}function Nr(n={}){return ce(n,Dr)}function Rr(n={}){return ce(n,Fr)}function Ar({domTarget:n,eventOptions:t,window:e,enabled:s,...a}){const o=Ke({domTarget:n,eventOptions:t,window:e,enabled:s});return o.drag=Rr(a),o}function Or({domTarget:n,eventOptions:t,window:e,enabled:s,...a}){const o=Ke({domTarget:n,eventOptions:t,window:e,enabled:s});return o.pinch=Nr(a),o}function zr({domTarget:n,eventOptions:t,window:e,enabled:s,...a}){const o=Ke({domTarget:n,eventOptions:t,window:e,enabled:s});return o.wheel=Pr(a),o}function je(n,t,e={}){const s=Br(n),a=new lr(s);return a.config=t,a.handlers=n,a.nativeRefs=e,is()&&!t.manual&&(os(a.bind),rs(a.clean)),a}function Br(n){const t=new Set;return n.drag&&t.add(Ct.get("drag")),n.wheel&&t.add(Ct.get("wheel")),n.scroll&&t.add(Ct.get("scroll")),n.move&&t.add(Ct.get("move")),n.pinch&&t.add(Ct.get("pinch")),n.hover&&t.add(Ct.get("hover")),t}function Lr(n,t={}){Ct.set("drag",$r);const e=O();return e.value||(e.value=Ve(Ar,He)),je({drag:n},e.value(t))}class Gr extends Ln{getInternalMovement(t,e){const s=e.values[1];let[a,o=s]=t,i=o-s,r=e.turns;return Math.abs(i)>270&&(r+=Ce(i)),Ue([a,o-360*r],e.initial)}getKinematics(t,e){const s=this.getMovement(t),a=(t[1]-s._movement[1]-this.state.initial[1])/360,o=e.timeStamp-this.state.timeStamp,{distance:i,velocity:r,...u}=Bn(s.movement,s.delta,o);return{turns:a,...s,...u}}mapStateValues(t){return{da:t.values,vdva:t.velocities}}}var Ur=Object.defineProperty,Vr=(n,t,e)=>t in n?Ur(n,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):n[t]=e,J=(n,t,e)=>(Vr(n,typeof t!="symbol"?t+"":t,e),e);const Hr=7,Wr=260;class Kr extends Gr{constructor(){super(...arguments),J(this,"ingKey","pinching"),J(this,"stateKey","pinch"),J(this,"onPinchStart",t=>{Rn(this.controller,t);const e=this.controller.touchIds;if(!this.enabled||this.state._active&&this.state._pointerIds.every(i=>e.has(i))||e.size<2)return;const s=Array.from(e).slice(0,2),{values:a,origin:o}=ln(t,s,this.transform);this.updateSharedState(Tt(t)),this.updateGestureState({...oe(this,a,t),...st(this,t,!0),_pointerIds:s,cancel:this.onCancel,origin:o}),this.updateGestureState(this.getMovement(a)),this.fireGestureHandler()}),J(this,"onPinchChange",t=>{const{canceled:e,_active:s}=this.state;if(e||!s||t.timeStamp===this.state.timeStamp)return;const a=Tt(t);this.updateSharedState(a);try{const{values:o,origin:i}=ln(t,this.state._pointerIds,this.transform),r=this.getKinematics(o,t);this.updateGestureState({...st(this,t),...r,origin:i}),this.fireGestureHandler()}catch{this.onPinchEnd(t)}}),J(this,"onPinchEnd",t=>{An(this.controller,t);const e=Ge(t);this.state._pointerIds.every(s=>!e.includes(s))||(this.clean(),this.state._active&&(this.updateGestureState({...st(this,t),...this.getMovement(this.state.values),_active:!1}),this.fireGestureHandler()))}),J(this,"onCancel",()=>{this.state.canceled||(this.updateGestureState({_active:!1,canceled:!0}),this.fireGestureHandler())}),J(this,"onGestureStart",t=>{if(!this.enabled)return;t.preventDefault();const e=dn(t,this.transform);this.updateSharedState(Tt(t)),this.updateGestureState({...oe(this,e,t),...st(this,t,!0),origin:[t.clientX,t.clientY],cancel:this.onCancel}),this.updateGestureState(this.getMovement(e)),this.fireGestureHandler()}),J(this,"onGestureChange",t=>{const{canceled:e,_active:s}=this.state;if(e||!s)return;t.preventDefault();const a=Tt(t);this.updateSharedState(a);const o=dn(t,this.transform);o[0]=(o[0]-this.state.event.scale)*Wr+this.state.values[0];const i=this.getKinematics(o,t);this.updateGestureState({...st(this,t),...i,origin:[t.clientX,t.clientY]}),this.fireGestureHandler()}),J(this,"onGestureEnd",t=>{this.clean(),this.state._active&&(this.updateGestureState({...st(this,t),...this.getMovement(this.state.values),_active:!1,origin:[t.clientX,t.clientY]}),this.fireGestureHandler())}),J(this,"wheelShouldRun",t=>this.enabled&&t.ctrlKey),J(this,"getWheelValuesFromEvent",t=>{const[,e]=Fn(t,this.transform),{values:[s,a]}=this.state;return{values:[s-e*Hr,a!==void 0?a:0],origin:[t.clientX,t.clientY],delta:[0,e]}}),J(this,"onWheel",t=>{this.wheelShouldRun(t)&&(this.setTimeout(this.onWheelEnd),this.state._active?this.onWheelChange(t):this.onWheelStart(t))}),J(this,"onWheelStart",t=>{const{values:e,delta:s,origin:a}=this.getWheelValuesFromEvent(t);t.cancelable&&t.preventDefault(),this.updateSharedState(Tt(t)),this.updateGestureState({...oe(this,e,t),...st(this,t,!0),initial:this.state.values,offset:e,delta:s,origin:a}),this.updateGestureState(this.getMovement(e)),this.fireGestureHandler()}),J(this,"onWheelChange",t=>{t.cancelable&&t.preventDefault(),this.updateSharedState(Tt(t));const{values:e,origin:s,delta:a}=this.getWheelValuesFromEvent(t);this.updateGestureState({...st(this,t),...this.getKinematics(e,t),origin:s,delta:a}),this.fireGestureHandler()}),J(this,"onWheelEnd",()=>{this.clean(),this.state._active&&(this.state._active=!1,this.updateGestureState(this.getMovement(this.state.values)),this.fireGestureHandler())})}addBindings(t){this.controller.config.domTarget&&!this.controller.supportsTouchEvents&&this.controller.supportsGestureEvents?(K(t,"onGestureStart",this.onGestureStart),K(t,"onGestureChange",this.onGestureChange),K(t,"onGestureEnd",this.onGestureEnd)):(K(t,"onTouchStart",this.onPinchStart),K(t,"onTouchMove",this.onPinchChange),K(t,"onTouchEnd",this.onPinchEnd),K(t,"onTouchCancel",this.onPinchEnd),K(t,"onWheel",this.onWheel))}}var jr=Object.defineProperty,Yr=(n,t,e)=>t in n?jr(n,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):n[t]=e,ee=(n,t,e)=>(Yr(n,typeof t!="symbol"?t+"":t,e),e);class qr extends Gn{constructor(){super(...arguments),ee(this,"ingKey","wheeling"),ee(this,"stateKey","wheel"),ee(this,"debounced",!0),ee(this,"handleEvent",t=>{if(t.ctrlKey&&"pinch"in this.controller.handlers||!this.enabled)return;this.setTimeout(this.onEnd),this.updateSharedState(Tt(t));const e=Te(Fn(t,this.transform),this.state.values);if(this.state._active)this.updateGestureState({...st(this,t),...this.getKinematics(e,t)});else{this.updateGestureState({...oe(this,e,t),...st(this,t,!0),initial:this.state.values});const s=this.getMovement(e),a=vr(s.delta);this.updateGestureState(s),this.updateGestureState(a)}this.fireGestureHandler()}),ee(this,"onEnd",()=>{if(this.clean(),!this.state._active)return;const t=this.getMovement(this.state.values);this.updateGestureState(t),this.updateGestureState({_active:!1,velocities:[0,0],velocity:0}),this.fireGestureHandler()})}addBindings(t){K(t,"onWheel",this.handleEvent)}}function Xr(n,t={}){Ct.set("pinch",Kr);const e=O();return e.value||(e.value=Ve(Or,He)),je({pinch:n},e.value(t))}function Zr(n,t={}){Ct.set("wheel",qr);const e=O();return e.value||(e.value=Ve(zr,He)),je({wheel:n},e.value(t))}function Jr(n,t){const e=us(t),s=A(()=>{var p;return((p=l(e))==null?void 0:p.enabled)??!0}),a=O(!1),o=O([0,0]),i=O(1),r=A({set(p){return p>10?i.value=10:p<.1?i.value=.1:i.value=p,i.value},get(){return i.value}}),u=O([0,0]),d=A(()=>{var p;return(p=Oe(n))==null?void 0:p.getBoundingClientRect()}),m=p=>(p=(p+1800)/1800,p<=0?.01:p),b=({wheeling:p,dragging:v,pinching:_,intentional:$,enabled:D,touches:g,ctrlKey:F,event:M})=>{const S=!D||!$?!1:v&&(g===2||"pointerType"in M&&M.pointerType==="mouse")||_||p&&!F;return a.value?requestAnimationFrame(()=>a.value=S):a.value=S,S};return Lr(({wheeling:p,dragging:v,pinching:_,touches:$,intentional:D,delta:g,ctrlKey:F,event:M})=>{b({wheeling:p,dragging:v,pinching:_,intentional:D,enabled:s.value,ctrlKey:F,touches:$,event:M})&&(o.value[0]+=g[0],o.value[1]+=g[1])},{domTarget:n,filterTaps:!0}),Zr(({event:p,delta:v,wheeling:_,dragging:$,pinching:D,touches:g,intentional:F,ctrlKey:M})=>{b({dragging:$,pinching:D,wheeling:_,intentional:F,enabled:s.value,touches:g,ctrlKey:M,event:p})&&(p.preventDefault(),o.value[0]+=v[0],o.value[1]+=v[1])},{domTarget:n,eventOptions:{passive:!1}}),Xr(({offset:[p],origin:v,pinching:_,dragging:$,wheeling:D,ctrlKey:g,touches:F,intentional:M,event:S})=>{if(!b({dragging:$,pinching:_,wheeling:D,intentional:M,enabled:s.value,touches:F,ctrlKey:g,event:S}))return;const V=r.value;r.value=m(p),d.value&&(v[0]-=d.value.x,v[1]-=d.value.y,o.value[0]-=(v[0]-d.value.width/2)*(r.value-V),o.value[1]-=(v[1]-d.value.height/2)*(r.value-V)),o.value[0]-=v[0]-u.value[0],o.value[1]-=v[1]-u.value[1],u.value=v},{domTarget:n,eventOptions:{passive:!1},distanceBounds:()=>({min:-1800,max:16200})}),{offset:A(()=>[o.value[0]+u.value[0],o.value[1]+u.value[1]]),zoom:r,transformOrigin:u,active:a}}const Vn=Kt(()=>Jr(Me())),Hn=Kt(()=>{const n=O(""),t=O(0),e=O(0);return{src:n,width:t,height:e,processFiles:a=>{if(!((a==null?void 0:a[0])instanceof File))return;const o=new FileReader;o.addEventListener("load",i=>{var r;if((r=i.target)!=null&&r.result){const u=new Image;u.onload=()=>{n.value=u.src,t.value=u.width,e.value=u.height},u.src=i.target.result.toString()}}),o.readAsDataURL(a[0])}}}),Qr={class:"d-none md-d-inline-block"},tl={class:"d-none md-d-inline-block"},el={key:0},nl=ot({__name:"BoardControls",props:{info:{type:Array,required:!0}},setup(n){const{t}=Wt(),{lines:e}=Se(),s=Le(e),{zoom:a,transformOrigin:o}=Vn(),i=Ee(),r=Me(),u=A(()=>{const U=Oe(r);return U?U.viewBox.baseVal:{x:0,y:0,width:0,height:0}});function d(){o.value=[(u.value.width/2-(u.value.x+u.value.width/2)/2)*a.value,(u.value.height/2-(u.value.y+u.value.height/2)/2)*a.value]}function m(){d(),a.value+=.1}function b(){d(),a.value-=.1}const{toggle:p,isFullscreen:v,isSupported:_}=cs(i),{undo:$,redo:D,canUndo:g,canRedo:F}=Se(),M=A(()=>`${t("board.nav.undo")} [ctrl + z][⌘ + z]`),S=A(()=>`${t("board.nav.redo")} [ctrl + shift + z][⌘ + shift + z]`),V=O();Z(s,U=>U===void 0?V.value=void 0:V.value=U>90?180-U:U);const z=A(()=>V.value?180-V.value:void 0),{processFiles:xt}=Hn(),{files:Ot,open:$t}=ds({multiple:!1,accept:"image/*"});return hs(Ot,U=>{xt(Array.from(U))}),yn("f",p),(U,T)=>{const h=ro,f=Vi,y=Ht,N=Ha;return k(),E("div",{class:C([U.$style.bar,"pointer-none"])},[c("div",{class:C(["pointer-all bg-bg-transparent-inverse text-inverse whitespace-nowrap",U.$style["info-box"]]),onMousemoveCapture:T[0]||(T[0]=tt(()=>{},["prevent","stop"]))},[P(h,{value:l(V)},{default:H(()=>[P(l(Uo))]),_:1},8,["value"]),P(h,{value:l(z)},{default:H(()=>[P(l(ar))]),_:1},8,["value"])],34),(k(!0),E(dt,null,Zt(n.info,R=>(k(),E("li",{key:R,class:C(["bg-bg-transparent-inverse text-inverse min-w-0",U.$style["info-box"]])},[c("small",null,B(R),1)],2))),128)),c("nav",{class:C(U.$style.nav)},[c("ul",{class:C(["pointer-all",U.$style.nav__btns])},[P(f),c("li",null,[P(y,{disabled:!l(g),tooltip:l(M),"tooltip-placement":"left",onClick:l($),onTouchstartCapture:tt(l($),["prevent","stop"])},{default:H(()=>[P(l(jo))]),_:1},8,["disabled","tooltip","onClick","onTouchstartCapture"])]),c("li",null,[P(y,{disabled:!l(F),tooltip:l(S),"tooltip-placement":"left",onClick:l(D),onTouchstartCapture:tt(l(D),["prevent","stop"])},{default:H(()=>[P(l(Jo))]),_:1},8,["disabled","tooltip","onClick","onTouchstartCapture"])]),P(N,{disabled:l(g)},null,8,["disabled"]),c("li",null,[P(y,{tooltip:l(t)("board.nav.upload_file"),"tooltip-placement":"left",onClick:T[1]||(T[1]=R=>l($t)()),onTouchstartCapture:T[2]||(T[2]=tt(()=>{},["stop"]))},{default:H(()=>[P(l(Ao))]),_:1},8,["tooltip"])]),c("li",Qr,[P(y,{disabled:!l(g),tooltip:`${l(t)("board.result.zoom_out")} [-]`,"tooltip-placement":"left",onClick:T[3]||(T[3]=R=>b()),onTouchstartCapture:T[4]||(T[4]=tt(R=>b(),["prevent","stop"]))},{default:H(()=>[P(l(Io))]),_:1},8,["disabled","tooltip"])]),c("li",tl,[P(y,{disabled:!l(g),tooltip:`${l(t)("board.result.zoom_in")} [+]`,"tooltip-placement":"left",onClick:T[5]||(T[5]=R=>m()),onTouchstartCapture:T[6]||(T[6]=tt(R=>m(),["prevent","stop"]))},{default:H(()=>[P(l(So))]),_:1},8,["disabled","tooltip"])]),l(_)?(k(),E("li",el,[P(y,{tooltip:`${l(t)("board.nav.toggle_fullscreen")} [f]`,"tooltip-placement":"left",onClick:l(p),onTouchstartCapture:tt(l(p),["prevent","stop"])},{default:H(()=>[l(v)?(k(),at(l(go),{key:0})):(k(),at(l(fo),{key:1}))]),_:1},8,["tooltip","onClick","onTouchstartCapture"])])):ct("",!0)],2)],2)],2)}}}),sl="f_p",al="f_q",il={bar:sl,nav__btns:al,"info-box":"f_r"},ol={$style:il},rl=Et(nl,[["__cssModules",ol]]),ll=["x1","y1","x2","y2"],ul=ot({__name:"Segment",props:{pointStart:{type:Array,default:void 0},pointStop:{type:Array,default:void 0}},setup(n){return(t,e)=>n.pointStart&&n.pointStop?(k(),E("line",{key:0,x1:n.pointStart[0],y1:n.pointStart[1],x2:n.pointStop[0],y2:n.pointStop[1]},null,8,ll)):ct("",!0)}}),cl=fs((n,t,e,s)=>{if(!n||!t||!e||!s)return;n===e&&(n+=.1);const a=(t-s)/(n-e),o=s-e*a;return{slope:a,intercept:o}});function le(n){return A(()=>cl(...n.value[0]||[],...n.value[1]||[]))}var I=function(n,t,e){if(!t.has(n))throw new TypeError("attempted to set private field on non-instance");return t.set(n,e),e},w=function(n,t){if(!t.has(n))throw new TypeError("attempted to get private field on non-instance");return t.get(n)},Pt,Bt,ut,qt,ne,vt,pt,mt,bt,gt,_t,yt,wt,Lt,Xt,Nt,ge,Rt;const dl=function(n){var t=131,e=137,s=0;n+="x";var a=Math.floor(9007199254740991/e);for(let o=0;oa&&(s=Math.floor(s/e)),s=s*t+n.charCodeAt(o);return s},x="0123456789abcdef".split(""),hl=[-2147483648,8388608,32768,128],lt=[24,16,8,0],pe=[1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298],j=[];class fl{constructor(t=!1,e=!1){Pt.set(this,void 0),Bt.set(this,void 0),ut.set(this,void 0),qt.set(this,void 0),ne.set(this,void 0),vt.set(this,void 0),pt.set(this,void 0),mt.set(this,void 0),bt.set(this,void 0),gt.set(this,void 0),_t.set(this,void 0),yt.set(this,void 0),wt.set(this,void 0),Lt.set(this,void 0),Xt.set(this,void 0),Nt.set(this,void 0),ge.set(this,0),Rt.set(this,void 0),this.init(t,e)}init(t,e){e?(j[0]=j[16]=j[1]=j[2]=j[3]=j[4]=j[5]=j[6]=j[7]=j[8]=j[9]=j[10]=j[11]=j[12]=j[13]=j[14]=j[15]=0,I(this,Bt,j)):I(this,Bt,[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]),t?(I(this,vt,3238371032),I(this,pt,914150663),I(this,mt,812702999),I(this,bt,4144912697),I(this,gt,4290775857),I(this,_t,1750603025),I(this,yt,1694076839),I(this,wt,3204075428)):(I(this,vt,1779033703),I(this,pt,3144134277),I(this,mt,1013904242),I(this,bt,2773480762),I(this,gt,1359893119),I(this,_t,2600822924),I(this,yt,528734635),I(this,wt,1541459225)),I(this,Pt,I(this,Rt,I(this,ut,I(this,Xt,0)))),I(this,qt,I(this,Lt,!1)),I(this,ne,!0),I(this,Nt,t)}update(t){if(w(this,qt))return this;let e;t instanceof ArrayBuffer?e=new Uint8Array(t):e=t;let s=0;const a=e.length,o=w(this,Bt);for(;s>2]|=e[s]<>2]|=r<>2]|=(192|r>>6)<>2]|=(128|r&63)<=57344?(o[i>>2]|=(224|r>>12)<>2]|=(128|r>>6&63)<>2]|=(128|r&63)<>2]|=(240|r>>18)<>2]|=(128|r>>12&63)<>2]|=(128|r>>6&63)<>2]|=(128|r&63)<=64?(I(this,Pt,o[16]),I(this,Rt,i-64),this.hash(),I(this,Lt,!0)):I(this,Rt,i)}return w(this,ut)>4294967295&&(I(this,Xt,w(this,Xt)+(w(this,ut)/4294967296<<0)),I(this,ut,w(this,ut)%4294967296)),this}finalize(){if(w(this,qt))return;I(this,qt,!0);const t=w(this,Bt),e=w(this,ge);t[16]=w(this,Pt),t[e>>2]|=hl[e&3],I(this,Pt,t[16]),e>=56&&(w(this,Lt)||this.hash(),t[0]=w(this,Pt),t[16]=t[1]=t[2]=t[3]=t[4]=t[5]=t[6]=t[7]=t[8]=t[9]=t[10]=t[11]=t[12]=t[13]=t[14]=t[15]=0),t[14]=w(this,Xt)<<3|w(this,ut)>>>29,t[15]=w(this,ut)<<3,this.hash()}hash(){let t=w(this,vt),e=w(this,pt),s=w(this,mt),a=w(this,bt),o=w(this,gt),i=w(this,_t),r=w(this,yt),u=w(this,wt);const d=w(this,Bt);let m,b,p,v,_,$,D,g,F,M;for(let S=16;S<64;++S)v=d[S-15],m=(v>>>7|v<<25)^(v>>>18|v<<14)^v>>>3,v=d[S-2],b=(v>>>17|v<<15)^(v>>>19|v<<13)^v>>>10,d[S]=d[S-16]+m+d[S-7]+b<<0;M=e&s;for(let S=0;S<64;S+=4)w(this,ne)?(w(this,Nt)?(D=300032,v=d[0]-1413257819,u=v-150054599<<0,a=v+24177077<<0):(D=704751109,v=d[0]-210244248,u=v-1521486534<<0,a=v+143694565<<0),I(this,ne,!1)):(m=(t>>>2|t<<30)^(t>>>13|t<<19)^(t>>>22|t<<10),b=(o>>>6|o<<26)^(o>>>11|o<<21)^(o>>>25|o<<7),D=t&e,p=D^t&s^M,$=o&i^~o&r,v=u+b+$+pe[S]+d[S],_=m+p,u=a+v<<0,a=v+_<<0),m=(a>>>2|a<<30)^(a>>>13|a<<19)^(a>>>22|a<<10),b=(u>>>6|u<<26)^(u>>>11|u<<21)^(u>>>25|u<<7),g=a&t,p=g^a&e^D,$=u&o^~u&i,v=r+b+$+pe[S+1]+d[S+1],_=m+p,r=s+v<<0,s=v+_<<0,m=(s>>>2|s<<30)^(s>>>13|s<<19)^(s>>>22|s<<10),b=(r>>>6|r<<26)^(r>>>11|r<<21)^(r>>>25|r<<7),F=s&a,p=F^s&t^g,$=r&u^~r&o,v=i+b+$+pe[S+2]+d[S+2],_=m+p,i=e+v<<0,e=v+_<<0,m=(e>>>2|e<<30)^(e>>>13|e<<19)^(e>>>22|e<<10),b=(i>>>6|i<<26)^(i>>>11|i<<21)^(i>>>25|i<<7),M=e&s,p=M^e&a^F,$=i&r^~i&u,v=o+b+$+pe[S+3]+d[S+3],_=m+p,o=t+v<<0,t=v+_<<0;I(this,vt,w(this,vt)+t<<0),I(this,pt,w(this,pt)+e<<0),I(this,mt,w(this,mt)+s<<0),I(this,bt,w(this,bt)+a<<0),I(this,gt,w(this,gt)+o<<0),I(this,_t,w(this,_t)+i<<0),I(this,yt,w(this,yt)+r<<0),I(this,wt,w(this,wt)+u<<0)}hex(){this.finalize();const t=w(this,vt),e=w(this,pt),s=w(this,mt),a=w(this,bt),o=w(this,gt),i=w(this,_t),r=w(this,yt),u=w(this,wt);let d=x[t>>28&15]+x[t>>24&15]+x[t>>20&15]+x[t>>16&15]+x[t>>12&15]+x[t>>8&15]+x[t>>4&15]+x[t&15]+x[e>>28&15]+x[e>>24&15]+x[e>>20&15]+x[e>>16&15]+x[e>>12&15]+x[e>>8&15]+x[e>>4&15]+x[e&15]+x[s>>28&15]+x[s>>24&15]+x[s>>20&15]+x[s>>16&15]+x[s>>12&15]+x[s>>8&15]+x[s>>4&15]+x[s&15]+x[a>>28&15]+x[a>>24&15]+x[a>>20&15]+x[a>>16&15]+x[a>>12&15]+x[a>>8&15]+x[a>>4&15]+x[a&15]+x[o>>28&15]+x[o>>24&15]+x[o>>20&15]+x[o>>16&15]+x[o>>12&15]+x[o>>8&15]+x[o>>4&15]+x[o&15]+x[i>>28&15]+x[i>>24&15]+x[i>>20&15]+x[i>>16&15]+x[i>>12&15]+x[i>>8&15]+x[i>>4&15]+x[i&15]+x[r>>28&15]+x[r>>24&15]+x[r>>20&15]+x[r>>16&15]+x[r>>12&15]+x[r>>8&15]+x[r>>4&15]+x[r&15];return w(this,Nt)||(d+=x[u>>28&15]+x[u>>24&15]+x[u>>20&15]+x[u>>16&15]+x[u>>12&15]+x[u>>8&15]+x[u>>4&15]+x[u&15]),d}toString(){return this.hex()}digest(){this.finalize();const t=w(this,vt),e=w(this,pt),s=w(this,mt),a=w(this,bt),o=w(this,gt),i=w(this,_t),r=w(this,yt),u=w(this,wt),d=[t>>24&255,t>>16&255,t>>8&255,t&255,e>>24&255,e>>16&255,e>>8&255,e&255,s>>24&255,s>>16&255,s>>8&255,s&255,a>>24&255,a>>16&255,a>>8&255,a&255,o>>24&255,o>>16&255,o>>8&255,o&255,i>>24&255,i>>16&255,i>>8&255,i&255,r>>24&255,r>>16&255,r>>8&255,r&255];return w(this,Nt)||d.push(u>>24&255,u>>16&255,u>>8&255,u&255),d}array(){return this.digest()}arrayBuffer(){this.finalize();const t=new ArrayBuffer(w(this,Nt)?28:32),e=new DataView(t);return e.setUint32(0,w(this,vt)),e.setUint32(4,w(this,pt)),e.setUint32(8,w(this,mt)),e.setUint32(12,w(this,bt)),e.setUint32(16,w(this,gt)),e.setUint32(20,w(this,_t)),e.setUint32(24,w(this,yt)),w(this,Nt)||e.setUint32(28,w(this,wt)),t}}Pt=new WeakMap,Bt=new WeakMap,ut=new WeakMap,qt=new WeakMap,ne=new WeakMap,vt=new WeakMap,pt=new WeakMap,mt=new WeakMap,bt=new WeakMap,gt=new WeakMap,_t=new WeakMap,yt=new WeakMap,wt=new WeakMap,Lt=new WeakMap,Xt=new WeakMap,Nt=new WeakMap,ge=new WeakMap,Rt=new WeakMap;function vl(n){const t=new fl;return t.update(n),parseInt(t.hex().substring(0,8),16)}const pl=function(n){var t="#";return n.forEach(function(e){e<16&&(t+=0),t+=e.toString(16)}),t},ml=function(n,t,e){n/=360;var s=e<.5?e*(1+t):e+t-e*t,a=2*e-s;return[n+1/3,n,n-1/3].map(function(o){return o<0&&o++,o>1&&o--,o<1/6?o=a+(s-a)*6*o:o<.5?o=s:o<2/3?o=a+(s-a)*6*(2/3-o):o=a,Math.round(o*255)})};class bl{constructor(t={}){const[e,s]=[t.lightness,t.saturation].map(function(a){return a=a!==void 0?a:[.35,.5,.65],Array.isArray(a)?a.concat():[a]});this.L=e,this.S=s,typeof t.hue=="number"&&(t.hue={min:t.hue,max:t.hue}),typeof t.hue=="object"&&!Array.isArray(t.hue)&&(t.hue=[t.hue]),typeof t.hue>"u"&&(t.hue=[]),this.hueRanges=t.hue.map(function(a){return{min:typeof a.min>"u"?0:a.min,max:typeof a.max>"u"?360:a.max}}),this.hash=vl,typeof t.hash=="function"&&(this.hash=t.hash),t.hash==="bkdr"&&(this.hash=dl)}hsl(t){var e,s,a,o=this.hash(t),i=727;if(this.hueRanges.length){const r=this.hueRanges[o%this.hueRanges.length];e=o/this.hueRanges.length%i*(r.max-r.min)/i+r.min}else e=o%359;return o=Math.ceil(o/360),s=this.S[o%this.S.length],o=Math.ceil(o/this.S.length),a=this.L[o%this.L.length],[e,s,a]}rgb(t){var e=this.hsl(t);return ml.apply(this,e)}hex(t){var e=this.rgb(t);return pl(e)}}const gl=Array.from({length:550},(n,t)=>(t+401)/1e3),_l=Array.from({length:551},(n,t)=>(t+50)/1e3);function Ae(n){return A(()=>{const t=JSON.stringify(n.value),e=De.value?gl:_l,[s,a,o]=new bl({lightness:e}).hsl(t);return`hsl(${[s,`${De.value&&o<.3||!De.value&&o>.7?Math.min(a+.4,1)*100:a*100}%`,`${o*100}%`].join(",")})`})}const Wn=ot({__name:"Line",props:{points:{type:Array,default:()=>[]},pathWidth:{type:Number,default:1},svgSize:{type:Object,default:void 0},svgOffset:{type:Object,default:void 0}},setup(n){const t=n,e=le(Xe(t,"points")),s=Ae(Xe(t,"points")),a=A(()=>{var p,v,_,$;const{svgSize:i,svgOffset:r}=t;if(!i||!r||!e.value||((p=t.points[0])==null?void 0:p[0])===((v=t.points[1])==null?void 0:v[0])&&((_=t.points[0])==null?void 0:_[1])===(($=t.points[1])==null?void 0:$[1]))return;const{slope:u,intercept:d}=e.value,m=r.x,b=i.width+r.x;return[[m,u*m+d],[b,u*b+d]]}),o=A(()=>`${t.pathWidth} ${2*t.pathWidth}`);return(i,r)=>{const u=ul;return k(),E(dt,null,[a.value?(k(),E(dt,{key:0},[P(u,Ut(i.$attrs,{"stroke-width":n.pathWidth*.8,stroke:"var(--background-color-transparent)","point-start":a.value[0],"point-stop":a.value[1],"stroke-dasharray":o.value,"stroke-linecap":"round",opacity:".2"}),null,16,["stroke-width","point-start","point-stop","stroke-dasharray"]),P(u,Ut({"stroke-width":n.pathWidth*.4,stroke:l(s)},i.$attrs,{"point-start":a.value[0],"point-stop":a.value[1],"stroke-dasharray":o.value,"stroke-linecap":"round"}),null,16,["stroke-width","stroke","point-start","point-stop","stroke-dasharray"])],64)):ct("",!0),P(u,Ut(i.$attrs,{"stroke-width":n.pathWidth*1.2,stroke:"var(--background-color-transparent)","point-start":n.points[0],"point-stop":n.points[1],"stroke-linecap":"round",opacity:".3"}),null,16,["stroke-width","point-start","point-stop"]),P(u,Ut({stroke:l(s)},i.$attrs,{"stroke-linecap":"round","point-start":n.points[0],"point-stop":n.points[1]}),null,16,["stroke","point-start","point-stop"])],64)}}}),yl={viewBox:"0 0 32 32",width:"1.2em",height:"1.2em"},wl=c("path",{fill:"currentColor",d:"M24 19h-3v-3h-2v3h-3v2h3v3h2v-3h3z"},null,-1),xl=c("path",{fill:"currentColor",d:"m31 29.586l-4.688-4.688a8.028 8.028 0 1 0-1.415 1.414L29.586 31zM20 26a6 6 0 1 1 6-6a6.007 6.007 0 0 1-6 6M4 8H2V4a2 2 0 0 1 2-2h4v2H4zm22 0h-2V4h-4V2h4a2 2 0 0 1 2 2zM12 2h4v2h-4zM8 26H4a2 2 0 0 1-2-2v-4h2v4h4zM2 12h2v4H2z"},null,-1),$l=[wl,xl];function Sl(n,t){return k(),E("svg",yl,[...$l])}const kl=Y({name:"carbon-zoom-in-area",render:Sl}),Tl={viewBox:"0 0 32 32",width:"1.2em",height:"1.2em"},Cl=c("path",{fill:"currentColor",d:"M16 19h8v2h-8z"},null,-1),Ml=c("path",{fill:"currentColor",d:"m31 29.586l-4.688-4.688a8.028 8.028 0 1 0-1.415 1.414L29.586 31zM20 26a6 6 0 1 1 6-6a6.007 6.007 0 0 1-6 6M4 8H2V4a2 2 0 0 1 2-2h4v2H4zm22 0h-2V4h-4V2h4a2 2 0 0 1 2 2zM12 2h4v2h-4zM8 26H4a2 2 0 0 1-2-2v-4h2v4h4zM2 12h2v4H2z"},null,-1),El=[Cl,Ml];function Il(n,t){return k(),E("svg",Tl,[...El])}const Dl=Y({name:"carbon-zoom-out-area",render:Il});var St=(n=>(n[n.UP=0]="UP",n[n.DOWN=1]="DOWN",n[n.LEFT=2]="LEFT",n[n.RIGHT=3]="RIGHT",n))(St||{});const Kn=Kt(()=>{const n=O(!1);return{outOfBoundLabels:n,setOutBoundLabels(t,e,s){const a={x:30,y:4.5},o=t.find(({x:u,y:d})=>(u-=s.x,d-=s.y,ue.width-a.x||de.height-a.y));if(!o)return n.value=!1;let{x:i,y:r}=o;return i-=s.x,r-=s.y,ie.width-a.x?n.value={direction:3,y:r}:r{if(!n.value||!t.value)return;const{slope:e,intercept:s}=n.value,{slope:a,intercept:o}=t.value;let i;return e===a?i=o-s:i=(s-o)/(a-e),{x:i,y:e*i+s}})}function Yn(n,t,e,s){return A(()=>{if(!t.value||!e.value||!s.value||!n.value)return;const a=e.value,o=s.value;let i=Math.tan((Math.atan(a.slope)+Math.atan(o.slope))/2),r=-1/i,u=a.slope*t.value.x+a.intercept-i*t.value.x,d=a.slope*t.value.x+a.intercept-r*t.value.x;const m=En([[[0,a.intercept],[t.value.x,a.slope*t.value.x+a.intercept]],[[0,u],[t.value.x,i*t.value.x+u]]])*2;return(m-1>n.value||m+1{if(!t.value||!e.value||!n.value)return s.value=[];const{acute:{slope:a,intercept:o},obtuse:{slope:i,intercept:r}}=e.value,u=70,d=n.value,m=Math.cos(Math.atan(a))*(u+(90-d)*.4)+t.value.x,b=180-d,p=-Math.cos(Math.atan(i))*(u+(90-b)*.4)+t.value.x;s.value=[{x:m,y:a*m+o,value:d},{x:p,y:i*p+r,value:b}]},{throttle:20,immediate:!0}),s}function gn(n,t){return A(()=>{if(!t.value||!n.value)return;const{slope:e,intercept:s}=n.value,{x1:a,x2:o}=t.value;return[[a,e*a+s],[o,e*o+s]]})}const Fl=["viewBox"],Pl=["transform"],Nl=["x","y"],Rl=ot({__name:"BoardResult",setup(n){const{t}=Wt(),e=O(!1);function s(){e.value&&(e.value=!1)}const a=O();ps(a,s),yn("Escape",s);const{height:o,width:i}=ze(Ee()),r=A(()=>({width:300,height:300*o.value/i.value})),{outOfBoundLabels:u}=Kn(),d=A(()=>{const T=e.value?260:50;return{width:T,height:T}}),m=A(()=>({minY:d.value.height,maxY:o.value-d.value.height,minX:d.value.width,maxX:i.value-d.value.width})),b=A(()=>{const{minX:T,maxX:h,minY:f,maxY:y}=m.value,N=G=>G>y?y:GG>h?h:Gp.value[0]||[]),$=A(()=>p.value[1]||[]),D=le(_),g=le($),F=jn(D,g),M=Yn(v,F,D,g),S=qn(v,F,M),V=A(()=>F.value&&{x1:F.value.x-r.value.width,x2:F.value.x+r.value.width}),z=gn(D,V),xt=gn(g,V),Ot=Ae(_),$t=Ae($),U={[St.UP]:"bottom",[St.DOWN]:void 0,[St.LEFT]:"right",[St.RIGHT]:"left"};return(T,h)=>{const f=Ht,y=Wn;return l(D)&&l(g)&&l(F)&&l(u)?(k(),E("section",{key:0,ref_key:"el",ref:a,class:C(["bg-bg-transparent-inverse text-inverse",[T.$style.result,{[T.$style["result--open"]]:l(e)}]]),style:me(l(b)),onMousemove:h[0]||(h[0]=tt(()=>{},["prevent","stop"])),onClick:h[1]||(h[1]=N=>e.value=!l(e))},[P(f,{class:C(T.$style.btn),tooltip:l(e)?l(t)("board.result.zoom_out"):l(t)("board.result.zoom_in"),"tooltip-placement":l(e)?"left":U[l(u).direction]},{default:H(()=>[(k(),at(ms(l(e)?l(Dl):l(kl))))]),_:1},8,["class","tooltip","tooltip-placement"]),(k(),E("svg",{viewBox:`${l(r).width*.1} ${l(r).height*.1} ${l(r).width*.8} ${l(r).height*.8}`,class:C(T.$style.svg)},[c("g",{transform:`translate(${-l(F).x+l(r).width*.5} ${-l(F).y+l(r).height*.5})`},[l(z)?(k(),at(y,Ut({key:0,"stroke-width":"4","stroke-linecap":"round"},T.$attrs,{stroke:l(Ot),"path-width":4,points:l(z),"stroke-dasharray":"5 10",filter:"saturate(2.5)"}),null,16,["stroke","points"])):ct("",!0),l(xt)?(k(),at(y,Ut({key:1,"stroke-width":"4","stroke-linecap":"round"},T.$attrs,{stroke:l($t),"path-width":4,points:l(xt),"stroke-dasharray":"5 10",filter:"saturate(2.5)"}),null,16,["stroke","points"])):ct("",!0),(k(!0),E(dt,null,Zt(l(S),N=>(k(),E("text",{key:`${N.x}|${N.y}`,x:N.x,y:N.y,"text-anchor":"middle","dominant-baseline":"middle",stroke:"transparent"},B(N.value.toFixed(3))+"° ",9,Nl))),128))],8,Pl)],10,Fl))],38)):ct("",!0)}}}),Al="f_z",Ol="f_1",zl="f_2",Bl={result:Al,"result--open":"f_0",svg:Ol,btn:zl},Ll={$style:Bl},Gl=Et(Rl,[["__cssModules",Ll]]),Ul=["viewBox","stroke-width"],Vl=["cx","cy","r"],Hl=["x","y","stroke-width"],Wl=["x","y"],Kl=ot({__name:"BoardSvg",props:{width:{type:Number,default:0},height:{type:Number,default:0}},emits:["pressed"],setup(n,{emit:t}){const e=n,s=t,{width:a,height:o}=_n(e),i=Me(),r=O(!1),{ctrl:u,meta:d,option:m}=Be(),b=A(()=>{if(d.value)return"move"}),{offset:p,active:v,zoom:_,transformOrigin:$}=Vn(),D=A(()=>5/_.value),g=A(()=>({width:a.value/_.value,height:o.value/_.value})),F=A(()=>({x:-p.value[0]/_.value,y:-p.value[1]/_.value})),{elementX:M,elementY:S}=bs(i,{handleOutside:!1}),V=A(()=>(M.value-p.value[0])/_.value),z=A(()=>(S.value-p.value[1])/_.value),{undo:xt,redo:Ot}=_e(M),{undo:$t,redo:U}=_e(S),{lines:T,predictNextPoint:h,drawNextPoint:f,step:y,registerOnRedo:N,registerOnUndo:R}=Se();N(()=>{Ot(),U()}),R(()=>{xt(),$t()}),Z([V,z],([rt,it])=>{y.value===2&&h(rt,it)});const L=Le(T),G=A(()=>T.value[0]||[]),q=A(()=>T.value[1]||[]),W=le(G),ht=le(q),It=jn(W,ht),ft=Yn(L,It,W,ht),Dt=qn(L,It,ft),{setOutBoundLabels:de}=Kn();Z([Dt,g,F],([rt,it,zt])=>de(rt,it,zt)),Z([a,o],([rt,it],[zt,nt])=>{$.value=[$.value[0]+(rt-zt)/2,$.value[1]+(it-nt)/2]});function jt(){v.value||(f(V.value,z.value),s("pressed"))}return(rt,it)=>{const zt=Wn;return k(),E("svg",{ref_key:"svgRef",ref:i,viewBox:`${l(F).x} ${l(F).y} ${l(g).width} ${l(g).height}`,"stroke-width":l(D),tabindex:"0",style:me({cursor:l(b)}),onTouchend:tt(jt,["prevent"]),onMouseup:tt(jt,["left","prevent"]),onMousedownOnce:it[0]||(it[0]=tt(nt=>r.value=!0,["left"])),onMousemovePassiveOnce:it[1]||(it[1]=nt=>r.value=!0),onTouchstartPassiveOnce:it[2]||(it[2]=nt=>r.value=!0)},[se(rt.$slots,"default"),l(y)%2?Ft((k(),E("circle",{key:0,cx:`${l(V)}px`,cy:`${l(z)}px`,r:l(D),"stroke-width":1},null,8,Vl)),[[gs,l(r)&&!l(u)&&!l(d)&&!l(m)]]):(k(),at(zt,{key:1,points:[l(T)[Math.floor(l(y)/2)][0],[l(V),l(z)]],"svg-size":l(g),"svg-offset":l(F),"path-width":l(D)},null,8,["points","svg-size","svg-offset","path-width"])),P(zt,{points:l(T)[0],"svg-size":l(g),"svg-offset":l(F),"path-width":l(D)},null,8,["points","svg-size","svg-offset","path-width"]),P(zt,{points:l(T)[1],"svg-size":l(g),"svg-offset":l(F),"path-width":l(D)},null,8,["points","svg-size","svg-offset","path-width"]),(k(!0),E(dt,null,Zt(l(Dt),nt=>(k(),E(dt,{key:`${nt.x}|${nt.y}`},[c("text",{x:nt.x,y:nt.y,"text-anchor":"middle","dominant-baseline":"middle",stroke:"var(--background-color-transparent)","stroke-width":l(D),style:me(`font-size:${l(D)/5}em`)},B(nt.value.toFixed(3))+"° ",13,Hl),c("text",{x:nt.x,y:nt.y,"text-anchor":"middle","dominant-baseline":"middle",stroke:"transparent",style:me(`font-size:${l(D)/5}em`)},B(nt.value.toFixed(3))+"° ",13,Wl)],64))),128))],44,Ul)}}}),jl=["href","x","y","height","width"],Yl=ot({__name:"Board",setup(n){const{t}=Wt(),e=O(!0),s=Ee(),{height:a,width:o}=ze(s),{src:i,width:r,height:u,processFiles:d}=Hn(),m=O(0),b=O(0);Z(i,()=>{if(u&&r)if(r.value>o.value||u.value>a.value){const _=Math.min(o.value/r.value,a.value/u.value);m.value=u.value*_,b.value=r.value*_}else m.value=u.value,b.value=r.value});const{isOverDropZone:p}=_s(s,d),v=A(()=>p.value?[t("board.drop_file_here")]:[]);return(_,$)=>{const D=Kl,g=Gl,F=rl;return k(),E("div",{ref_key:"boardRef",ref:s,class:C(_.$style.board)},[P(D,{class:C(_.$style.board__svg),width:l(o),height:l(a),onPressed:$[0]||($[0]=M=>e.value=!1)},{default:H(()=>[l(i)?(k(),E("image",{key:0,href:l(i),x:l(b)/-2,y:l(m)/-2,height:`${l(m)}`,width:`${l(b)}`},null,8,jl)):ct("",!0)]),_:1},8,["class","width","height"]),l(e)&&!l(i)?(k(),E("div",{key:0,class:C(_.$style.board__hint)},B(l(t)("board.click_this_button_or_drop")),3)):ct("",!0),P(g),P(F,{class:C(_.$style.board__nav),info:l(v),"onUpdate:files":l(d)},null,8,["class","info","onUpdate:files"])],2)}}}),ql="f_h",Xl="f_i",Zl="f_j",Jl="f_k",Ql={board:ql,board__svg:Xl,board__nav:Zl,board__hint:Jl},tu={$style:Ql},eu=Et(Yl,[["__cssModules",tu]]),nu={};function su(n,t){const e=eu;return k(),at(e,{class:"flex-grow"})}const ru=Et(nu,[["render",su]]);export{ru as default}; diff --git a/assets/privacy-policy-BdEgNBDr.js b/assets/privacy-policy-C6r_wkKn.js similarity index 99% rename from assets/privacy-policy-BdEgNBDr.js rename to assets/privacy-policy-C6r_wkKn.js index 4cff4b74..27576be1 100644 --- a/assets/privacy-policy-BdEgNBDr.js +++ b/assets/privacy-policy-C6r_wkKn.js @@ -1 +1 @@ -import{d as c,af as p,o as h,e as d,a as e,f as n,g as t,h as r,j as a,t as f,n as s,ag as i,H as l}from"./app-C_A3Ikqc.js";import{_ as y}from"./_plugin-vue_export-helper-DlAUqK2U.js";const m=i("

PRIVACY NOTICE

Last updated November 03, 2022

This privacy notice for FRS Jakub Freisler ("Company," "we," "us," or "our"), describes how and why we might collect, store, use, and/or share ("process") your information when you use our services ("Services"), such as when you:

",2),g=["href","textContent"],w=i('
  • Download and use our mobile application (Fast Angle), or any other application of ours that links to this privacy notice
  • Engage with us in other related ways, including any sales, marketing, or events

Questions or concerns? Reading this privacy notice will help you understand your privacy rights and choices. If you do not agree with our policies and practices, please do not use our Services. If you still have any questions or concerns, please contact us at hi@frsource.org.

SUMMARY OF KEY POINTS

This summary provides key points from our privacy notice, but you can find out more details about any of these topics by clicking the link following each key point or by using our table of contents below to find the section you are looking for. You can also click here to go directly to our table of contents.

What personal information do we process? When you visit, use, or navigate our Services, we may process personal information depending on how you interact with FRS Jakub Freisler and the Services, the choices you make, and the products and features you use. Click here to learn more.

Do we process any sensitive personal information? We do not process sensitive personal information.

Do we receive any information from third parties? We do not receive any information from third parties.

How do we process your information? We process your information to provide, improve, and administer our Services, communicate with you, for security and fraud prevention, and to comply with law. We may also process your information for other purposes with your consent. We process your information only when we have a valid legal reason to do so. Click here to learn more.

In what situations and with which parties do we share personal information? We may share information in specific situations and with specific third parties. Click here to learn more.

What are your rights? Depending on where you are located geographically, the applicable privacy law may mean you have certain rights regarding your personal information. Click here to learn more.

How do you exercise your rights? The easiest way to exercise your rights is by filling out our data subject request form available here: privacy@frsource.org, or by contacting us. We will consider and act upon any request in accordance with applicable data protection laws.

Want to learn more about what FRS Jakub Freisler does with any information we collect? Click here to review the notice in full.

TABLE OF CONTENTS

  1. WHAT INFORMATION DO WE COLLECT?
  2. HOW DO WE PROCESS YOUR INFORMATION?
  3. WHAT LEGAL BASES DO WE RELY ON TO PROCESS YOUR PERSONAL INFORMATION?
  4. WHEN AND WITH WHOM DO WE SHARE YOUR PERSONAL INFORMATION?
  5. HOW LONG DO WE KEEP YOUR INFORMATION?
  6. WHAT ARE YOUR PRIVACY RIGHTS?
  7. CONTROLS FOR DO-NOT-TRACK FEATURES
  8. DO CALIFORNIA RESIDENTS HAVE SPECIFIC PRIVACY RIGHTS?
  9. DO WE MAKE UPDATES TO THIS NOTICE?
  10. HOW CAN YOU CONTACT US ABOUT THIS NOTICE?
  11. HOW CAN YOU REVIEW, UPDATE, OR DELETE THE DATA WE COLLECT FROM YOU?

1. WHAT INFORMATION DO WE COLLECT?

Personal information you disclose to us

In Short: We collect personal information that you provide to us.

We collect personal information that you voluntarily provide to us when you express an interest in obtaining information about us or our products and Services, when you participate in activities on the Services, or otherwise when you contact us.

Sensitive Information. We do not process sensitive information.

All personal information that you provide to us must be true, complete, and accurate, and you must notify us of any changes to such personal information.

2. HOW DO WE PROCESS YOUR INFORMATION?

In Short: We process your information to provide, improve, and administer our Services, communicate with you, for security and fraud prevention, and to comply with law. We may also process your information for other purposes with your consent.

We process your personal information for a variety of reasons, depending on how you interact with our Services, including:

  • To save or protect an individual's vital interest. We may process your information when necessary to save or protect an individual’s vital interest, such as to prevent harm.

3. WHAT LEGAL BASES DO WE RELY ON TO PROCESS YOUR INFORMATION?

In Short: We only process your personal information when we believe it is necessary and we have a valid legal reason (i.e., legal basis) to do so under applicable law, like with your consent, to comply with laws, to provide you with services to enter into or fulfill our contractual obligations, to protect your rights, or to fulfill our legitimate business interests.

If you are located in the EU or UK, this section applies to you.

The General Data Protection Regulation (GDPR) and UK GDPR require us to explain the valid legal bases we rely on in order to process your personal information. As such, we may rely on the following legal bases to process your personal information:

  • Consent. We may process your information if you have given us permission (i.e., consent) to use your personal information for a specific purpose. You can withdraw your consent at any time. Click here to learn more.
  • Legal Obligations. We may process your information where we believe it is necessary for compliance with our legal obligations, such as to cooperate with a law enforcement body or regulatory agency, exercise or defend our legal rights, or disclose your information as evidence in litigation in which we are involved.
  • Vital Interests. We may process your information where we believe it is necessary to protect your vital interests or the vital interests of a third party, such as situations involving potential threats to the safety of any person.

If you are located in Canada, this section applies to you.

We may process your information if you have given us specific permission (i.e., express consent) to use your personal information for a specific purpose, or in situations where your permission can be inferred (i.e., implied consent). You can withdraw your consent at any time. Click here to learn more.

In some exceptional cases, we may be legally permitted under applicable law to process your information without your consent, including, for example:

  • If collection is clearly in the interests of an individual and consent cannot be obtained in a timely way
  • For investigations and fraud detection and prevention
  • For business transactions provided certain conditions are met
  • If it is contained in a witness statement and the collection is necessary to assess, process, or settle an insurance claim
  • For identifying injured, ill, or deceased persons and communicating with next of kin
  • If we have reasonable grounds to believe an individual has been, is, or may be victim of financial abuse
  • If it is reasonable to expect collection and use with consent would compromise the availability or the accuracy of the information and the collection is reasonable for purposes related to investigating a breach of an agreement or a contravention of the laws of Canada or a province
  • If disclosure is required to comply with a subpoena, warrant, court order, or rules of the court relating to the production of records
  • If it was produced by an individual in the course of their employment, business, or profession and the collection is consistent with the purposes for which the information was produced
  • If the collection is solely for journalistic, artistic, or literary purposes
  • If the information is publicly available and is specified by the regulations

4. WHEN AND WITH WHOM DO WE SHARE YOUR PERSONAL INFORMATION?

In Short: We may share information in specific situations described in this section and/or with the following third parties.

We may need to share your personal information in the following situations:

  • Business Transfers. We may share or transfer your information in connection with, or during negotiations of, any merger, sale of company assets, financing, or acquisition of all or a portion of our business to another company.

5. HOW LONG DO WE KEEP YOUR INFORMATION?

In Short: We keep your information for as long as necessary to fulfill the purposes outlined in this privacy notice unless otherwise required by law.

We will only keep your personal information for as long as it is necessary for the purposes set out in this privacy notice, unless a longer retention period is required or permitted by law (such as tax, accounting, or other legal requirements).

When we have no ongoing legitimate business need to process your personal information, we will either delete or anonymize such information, or, if this is not possible (for example, because your personal information has been stored in backup archives), then we will securely store your personal information and isolate it from any further processing until deletion is possible.

6. WHAT ARE YOUR PRIVACY RIGHTS?

In Short: In some regions, such as the European Economic Area (EEA), United Kingdom (UK), and Canada, you have rights that allow you greater access to and control over your personal information. You may review, change, or terminate your account at any time.

In some regions (like the EEA, UK, and Canada), you have certain rights under applicable data protection laws. These may include the right (i) to request access and obtain a copy of your personal information, (ii) to request rectification or erasure; (iii) to restrict the processing of your personal information; and (iv) if applicable, to data portability. In certain circumstances, you may also have the right to object to the processing of your personal information. You can make such a request by contacting us by using the contact details provided in the section "HOW CAN YOU CONTACT US ABOUT THIS NOTICE?" below.

We will consider and act upon any request in accordance with applicable data protection laws.

 

If you are located in the EEA or UK and you believe we are unlawfully processing your personal information, you also have the right to complain to your local data protection supervisory authority. You can find their contact details here: https://ec.europa.eu/justice/data-protection/bodies/authorities/index_en.htm.

If you are located in Switzerland, the contact details for the data protection authorities are available here: https://www.edoeb.admin.ch/edoeb/en/home.html.

Withdrawing your consent: If we are relying on your consent to process your personal information, which may be express and/or implied consent depending on the applicable law, you have the right to withdraw your consent at any time. You can withdraw your consent at any time by contacting us by using the contact details provided in the section "HOW CAN YOU CONTACT US ABOUT THIS NOTICE?" below.

However, please note that this will not affect the lawfulness of the processing before its withdrawal nor, when applicable law allows, will it affect the processing of your personal information conducted in reliance on lawful processing grounds other than consent.

If you have questions or comments about your privacy rights, you may email us at privacy@frsource.org.

7. CONTROLS FOR DO-NOT-TRACK FEATURES

Most web browsers and some mobile operating systems and mobile applications include a Do-Not-Track ("DNT") feature or setting you can activate to signal your privacy preference not to have data about your online browsing activities monitored and collected. At this stage no uniform technology standard for recognizing and implementing DNT signals has been finalized. As such, we do not currently respond to DNT browser signals or any other mechanism that automatically communicates your choice not to be tracked online. If a standard for online tracking is adopted that we must follow in the future, we will inform you about that practice in a revised version of this privacy notice.

8. DO CALIFORNIA RESIDENTS HAVE SPECIFIC PRIVACY RIGHTS?

In Short: Yes, if you are a resident of California, you are granted specific rights regarding access to your personal information.

California Civil Code Section 1798.83, also known as the "Shine The Light" law, permits our users who are California residents to request and obtain from us, once a year and free of charge, information about categories of personal information (if any) we disclosed to third parties for direct marketing purposes and the names and addresses of all third parties with which we shared personal information in the immediately preceding calendar year. If you are a California resident and would like to make such a request, please submit your request in writing to us using the contact information provided below.

If you are under 18 years of age, reside in California, and have a registered account with Services, you have the right to request removal of unwanted data that you publicly post on the Services. To request removal of such data, please contact us using the contact information provided below and include the email address associated with your account and a statement that you reside in California. We will make sure the data is not publicly displayed on the Services, but please be aware that the data may not be completely or comprehensively removed from all our systems (e.g., backups, etc.).

CCPA Privacy Notice

The California Code of Regulations defines a "resident" as:

(1) every individual who is in the State of California for other than a temporary or transitory purpose and

(2) every individual who is domiciled in the State of California who is outside the State of California for a temporary or transitory purpose

All other individuals are defined as "non-residents."

If this definition of "resident" applies to you, we must adhere to certain rights and obligations regarding your personal information.

What categories of personal information do we collect?

We have collected the following categories of personal information in the past twelve (12) months:

',78),v=e("tbody",null,[e("tr",null,[e("td",null,[e("strong",null,"Category")]),e("td",null,[e("strong",null,"Examples")]),e("td",null,[e("strong",null,"Collected")])]),e("tr",null,[e("td",null,[e("p",null,"A. Identifiers")]),e("td",null,[e("p",null," Contact details, such as real name, alias, postal address, telephone or mobile contact number, unique personal identifier, online identifier, Internet Protocol address, email address, and account name ")]),e("td",null,[e("p",null,"NO")])]),e("tr",null,[e("td",null,[e("p",null," B. Personal information categories listed in the California Customer Records statute ")]),e("td",null,[e("p",null," Name, contact information, education, employment, employment history, and financial information ")]),e("td",null,[e("p",null,"NO")])]),e("tr",null,[e("td",null,[e("p",null," C. Protected classification characteristics under California or federal law ")]),e("td",null,[e("p",null,"Gender and date of birth")]),e("td",null,[e("p",null,"NO")])]),e("tr",null,[e("td",null,[e("p",null,"D. Commercial information")]),e("td",null,[e("p",null," Transaction information, purchase history, financial details, and payment information ")]),e("td",null,[e("p",null,"NO")])]),e("tr",null,[e("td",null,[e("p",null,"E. Biometric information")]),e("td",null,[e("p",null,"Fingerprints and voiceprints")]),e("td",null,[e("p",null,"NO")])]),e("tr",null,[e("td",null,[e("p",null,"F. Internet or other similar network activity")]),e("td",null,[e("p",null," Browsing history, search history, online behavior, interest data, and interactions with our and other websites, applications, systems, and advertisements ")]),e("td",null,[e("p",null,"NO")])]),e("tr",null,[e("td",null,[e("p",null,"G. Geolocation data")]),e("td",null,[e("p",null,"Device location")]),e("td",null,[e("p",null,"NO")])]),e("tr",null,[e("td",null,[e("p",null," H. Audio, electronic, visual, thermal, olfactory, or similar information ")]),e("td",null,[e("p",null," Images and audio, video or call recordings created in connection with our business activities ")]),e("td",null,[e("p",null,"NO")])]),e("tr",null,[e("td",null,[e("p",null,"I. Professional or employment-related information")]),e("td",null,[e("p",null," Business contact details in order to provide you our Services at a business level or job title, work history, and professional qualifications if you apply for a job with us ")]),e("td",null,[e("p",null,"NO")])]),e("tr",null,[e("td",null,[e("p",null,"J. Education Information")]),e("td",null,[e("p",null,"Student records and directory information")]),e("td",null,[e("p",null,"NO")])]),e("tr",null,[e("td",null,[e("p",null,"K. Inferences drawn from other personal information")]),e("td",null,[e("p",null," Inferences drawn from any of the collected personal information listed above to create a profile or summary about, for example, an individual’s preferences and characteristics ")]),e("td",null,[e("p",null,"NO")])])],-1),b=[v],O=i('

We may also collect other personal information outside of these categories through instances where you interact with us in person, online, or by phone or mail in the context of:

  • Receiving help through our customer support channels;
  • Participation in customer surveys or contests; and
  • Facilitation in the delivery of our Services and to respond to your inquiries.

How do we use and share your personal information?

More information about our data collection and sharing practices can be found in this privacy notice.

You may contact us by email at ccpa@frsource.org, or by referring to the contact details at the bottom of this document.

If you are using an authorized agent to exercise your right to opt out we may deny a request if the authorized agent does not submit proof that they have been validly authorized to act on your behalf.

Will your information be shared with anyone else?

We may disclose your personal information with our service providers pursuant to a written contract between us and each service provider. Each service provider is a for-profit entity that processes the information on our behalf.

We may use your personal information for our own business purposes, such as for undertaking internal research for technological development and demonstration. This is not considered to be "selling" of your personal information.

FRS Jakub Freisler has not disclosed or sold any personal information to third parties for a business or commercial purpose in the preceding twelve (12) months. FRS Jakub Freisler will not sell personal information in the future belonging to website visitors, users, and other consumers.

Your rights with respect to your personal data

Right to request deletion of the data — Request to delete

You can ask for the deletion of your personal information. If you ask us to delete your personal information, we will respect your request and delete your personal information, subject to certain exceptions provided by law, such as (but not limited to) the exercise by another consumer of his or her right to free speech, our compliance requirements resulting from a legal obligation, or any processing that may be required to protect against illegal activities.

Right to be informed — Request to know

Depending on the circumstances, you have a right to know:

  • whether we collect and use your personal information;
  • the categories of personal information that we collect;
  • the purposes for which the collected personal information is used;
  • whether we sell your personal information to third parties;
  • the categories of personal information that we sold or disclosed for a business purpose;
  • the categories of third parties to whom the personal information was sold or disclosed for a business purpose; and
  • the business or commercial purpose for collecting or selling personal information.

In accordance with applicable law, we are not obligated to provide or delete consumer information that is de-identified in response to a consumer request or to re-identify individual data to verify a consumer request.

Right to Non-Discrimination for the Exercise of a Consumer’s Privacy Rights

We will not discriminate against you if you exercise your privacy rights.

Verification process

Upon receiving your request, we will need to verify your identity to determine you are the same person about whom we have the information in our system. These verification efforts require us to ask you to provide information so that we can match it with information you have previously provided us. For instance, depending on the type of request you submit, we may ask you to provide certain information so that we can match the information you provide with the information we already have on file, or we may contact you through a communication method (e.g., phone or email) that you have previously provided to us. We may also use other verification methods as the circumstances dictate.

We will only use personal information provided in your request to verify your identity or authority to make the request. To the extent possible, we will avoid requesting additional information from you for the purposes of verification. However, if we cannot verify your identity from the information already maintained by us, we may request that you provide additional information for the purposes of verifying your identity and for security or fraud-prevention purposes. We will delete such additionally provided information as soon as we finish verifying you.

Other privacy rights

  • You may object to the processing of your personal information.
  • You may request correction of your personal data if it is incorrect or no longer relevant, or ask to restrict the processing of the information.
  • You can designate an authorized agent to make a request under the CCPA on your behalf. We may deny a request from an authorized agent that does not submit proof that they have been validly authorized to act on your behalf in accordance with the CCPA.
  • You may request to opt out from future selling of your personal information to third parties. Upon receiving an opt-out request, we will act upon the request as soon as feasibly possible, but no later than fifteen (15) days from the date of the request submission.

To exercise these rights, you can contact us by email at ccpa@frsource.org, or by referring to the contact details at the bottom of this document. If you have a complaint about how we handle your data, we would like to hear from you.

9. DO WE MAKE UPDATES TO THIS NOTICE?

In Short: Yes, we will update this notice as necessary to stay compliant with relevant laws.

We may update this privacy notice from time to time. The updated version will be indicated by an updated "Revised" date and the updated version will be effective as soon as it is accessible. If we make material changes to this privacy notice, we may notify you either by prominently posting a notice of such changes or by directly sending you a notification. We encourage you to review this privacy notice frequently to be informed of how we are protecting your information.

10. HOW CAN YOU CONTACT US ABOUT THIS NOTICE?

If you have questions or comments about this notice, you may email us at privacy@frsource.org or by post to:

FRS Jakub Freisler
ul. Królewska 92 / 8
Kraków, Małopolska 30-079
Poland

11. HOW CAN YOU REVIEW, UPDATE, OR DELETE THE DATA WE COLLECT FROM YOU?

Based on the applicable laws of your country, you may have the right to request access to the personal information we collect from you, change that information, or delete it. To request to review, update, or delete your personal information, please email us at: privacy@frsource.org.

',44),u=c({__name:"privacy-policy",setup(A){return p({title:"Privacy Policy"}),(o,S)=>(h(),d("article",{class:s(o.$style.article)},[m,e("ul",null,[e("li",null,[n(" Visit our website at "),e("a",{href:`${"host"in o?o.host:t(r)}${"basePath"in o?o.basePath:t(a)}`,textContent:f(`${"host"in o?o.host:t(r)}${"basePath"in o?o.basePath:t(a)}`)},null,8,g),n(", or any website of ours that links to this privacy notice ")])]),w,e("table",{class:s(o.$style.table)},b,2),O],2))}}),I="f_b",T="f_c",E={article:I,table:T},C={$style:E};typeof l=="function"&&l(u);const q=y(u,[["__cssModules",C]]);export{q as default}; +import{d as c,af as p,o as h,e as d,a as e,f as n,g as t,h as r,j as a,t as f,n as s,ag as i,H as l}from"./app-DT9tPyzn.js";import{_ as y}from"./_plugin-vue_export-helper-DlAUqK2U.js";const m=i("

PRIVACY NOTICE

Last updated November 03, 2022

This privacy notice for FRS Jakub Freisler ("Company," "we," "us," or "our"), describes how and why we might collect, store, use, and/or share ("process") your information when you use our services ("Services"), such as when you:

",2),g=["href","textContent"],w=i('
  • Download and use our mobile application (Fast Angle), or any other application of ours that links to this privacy notice
  • Engage with us in other related ways, including any sales, marketing, or events

Questions or concerns? Reading this privacy notice will help you understand your privacy rights and choices. If you do not agree with our policies and practices, please do not use our Services. If you still have any questions or concerns, please contact us at hi@frsource.org.

SUMMARY OF KEY POINTS

This summary provides key points from our privacy notice, but you can find out more details about any of these topics by clicking the link following each key point or by using our table of contents below to find the section you are looking for. You can also click here to go directly to our table of contents.

What personal information do we process? When you visit, use, or navigate our Services, we may process personal information depending on how you interact with FRS Jakub Freisler and the Services, the choices you make, and the products and features you use. Click here to learn more.

Do we process any sensitive personal information? We do not process sensitive personal information.

Do we receive any information from third parties? We do not receive any information from third parties.

How do we process your information? We process your information to provide, improve, and administer our Services, communicate with you, for security and fraud prevention, and to comply with law. We may also process your information for other purposes with your consent. We process your information only when we have a valid legal reason to do so. Click here to learn more.

In what situations and with which parties do we share personal information? We may share information in specific situations and with specific third parties. Click here to learn more.

What are your rights? Depending on where you are located geographically, the applicable privacy law may mean you have certain rights regarding your personal information. Click here to learn more.

How do you exercise your rights? The easiest way to exercise your rights is by filling out our data subject request form available here: privacy@frsource.org, or by contacting us. We will consider and act upon any request in accordance with applicable data protection laws.

Want to learn more about what FRS Jakub Freisler does with any information we collect? Click here to review the notice in full.

TABLE OF CONTENTS

  1. WHAT INFORMATION DO WE COLLECT?
  2. HOW DO WE PROCESS YOUR INFORMATION?
  3. WHAT LEGAL BASES DO WE RELY ON TO PROCESS YOUR PERSONAL INFORMATION?
  4. WHEN AND WITH WHOM DO WE SHARE YOUR PERSONAL INFORMATION?
  5. HOW LONG DO WE KEEP YOUR INFORMATION?
  6. WHAT ARE YOUR PRIVACY RIGHTS?
  7. CONTROLS FOR DO-NOT-TRACK FEATURES
  8. DO CALIFORNIA RESIDENTS HAVE SPECIFIC PRIVACY RIGHTS?
  9. DO WE MAKE UPDATES TO THIS NOTICE?
  10. HOW CAN YOU CONTACT US ABOUT THIS NOTICE?
  11. HOW CAN YOU REVIEW, UPDATE, OR DELETE THE DATA WE COLLECT FROM YOU?

1. WHAT INFORMATION DO WE COLLECT?

Personal information you disclose to us

In Short: We collect personal information that you provide to us.

We collect personal information that you voluntarily provide to us when you express an interest in obtaining information about us or our products and Services, when you participate in activities on the Services, or otherwise when you contact us.

Sensitive Information. We do not process sensitive information.

All personal information that you provide to us must be true, complete, and accurate, and you must notify us of any changes to such personal information.

2. HOW DO WE PROCESS YOUR INFORMATION?

In Short: We process your information to provide, improve, and administer our Services, communicate with you, for security and fraud prevention, and to comply with law. We may also process your information for other purposes with your consent.

We process your personal information for a variety of reasons, depending on how you interact with our Services, including:

  • To save or protect an individual's vital interest. We may process your information when necessary to save or protect an individual’s vital interest, such as to prevent harm.

3. WHAT LEGAL BASES DO WE RELY ON TO PROCESS YOUR INFORMATION?

In Short: We only process your personal information when we believe it is necessary and we have a valid legal reason (i.e., legal basis) to do so under applicable law, like with your consent, to comply with laws, to provide you with services to enter into or fulfill our contractual obligations, to protect your rights, or to fulfill our legitimate business interests.

If you are located in the EU or UK, this section applies to you.

The General Data Protection Regulation (GDPR) and UK GDPR require us to explain the valid legal bases we rely on in order to process your personal information. As such, we may rely on the following legal bases to process your personal information:

  • Consent. We may process your information if you have given us permission (i.e., consent) to use your personal information for a specific purpose. You can withdraw your consent at any time. Click here to learn more.
  • Legal Obligations. We may process your information where we believe it is necessary for compliance with our legal obligations, such as to cooperate with a law enforcement body or regulatory agency, exercise or defend our legal rights, or disclose your information as evidence in litigation in which we are involved.
  • Vital Interests. We may process your information where we believe it is necessary to protect your vital interests or the vital interests of a third party, such as situations involving potential threats to the safety of any person.

If you are located in Canada, this section applies to you.

We may process your information if you have given us specific permission (i.e., express consent) to use your personal information for a specific purpose, or in situations where your permission can be inferred (i.e., implied consent). You can withdraw your consent at any time. Click here to learn more.

In some exceptional cases, we may be legally permitted under applicable law to process your information without your consent, including, for example:

  • If collection is clearly in the interests of an individual and consent cannot be obtained in a timely way
  • For investigations and fraud detection and prevention
  • For business transactions provided certain conditions are met
  • If it is contained in a witness statement and the collection is necessary to assess, process, or settle an insurance claim
  • For identifying injured, ill, or deceased persons and communicating with next of kin
  • If we have reasonable grounds to believe an individual has been, is, or may be victim of financial abuse
  • If it is reasonable to expect collection and use with consent would compromise the availability or the accuracy of the information and the collection is reasonable for purposes related to investigating a breach of an agreement or a contravention of the laws of Canada or a province
  • If disclosure is required to comply with a subpoena, warrant, court order, or rules of the court relating to the production of records
  • If it was produced by an individual in the course of their employment, business, or profession and the collection is consistent with the purposes for which the information was produced
  • If the collection is solely for journalistic, artistic, or literary purposes
  • If the information is publicly available and is specified by the regulations

4. WHEN AND WITH WHOM DO WE SHARE YOUR PERSONAL INFORMATION?

In Short: We may share information in specific situations described in this section and/or with the following third parties.

We may need to share your personal information in the following situations:

  • Business Transfers. We may share or transfer your information in connection with, or during negotiations of, any merger, sale of company assets, financing, or acquisition of all or a portion of our business to another company.

5. HOW LONG DO WE KEEP YOUR INFORMATION?

In Short: We keep your information for as long as necessary to fulfill the purposes outlined in this privacy notice unless otherwise required by law.

We will only keep your personal information for as long as it is necessary for the purposes set out in this privacy notice, unless a longer retention period is required or permitted by law (such as tax, accounting, or other legal requirements).

When we have no ongoing legitimate business need to process your personal information, we will either delete or anonymize such information, or, if this is not possible (for example, because your personal information has been stored in backup archives), then we will securely store your personal information and isolate it from any further processing until deletion is possible.

6. WHAT ARE YOUR PRIVACY RIGHTS?

In Short: In some regions, such as the European Economic Area (EEA), United Kingdom (UK), and Canada, you have rights that allow you greater access to and control over your personal information. You may review, change, or terminate your account at any time.

In some regions (like the EEA, UK, and Canada), you have certain rights under applicable data protection laws. These may include the right (i) to request access and obtain a copy of your personal information, (ii) to request rectification or erasure; (iii) to restrict the processing of your personal information; and (iv) if applicable, to data portability. In certain circumstances, you may also have the right to object to the processing of your personal information. You can make such a request by contacting us by using the contact details provided in the section "HOW CAN YOU CONTACT US ABOUT THIS NOTICE?" below.

We will consider and act upon any request in accordance with applicable data protection laws.

 

If you are located in the EEA or UK and you believe we are unlawfully processing your personal information, you also have the right to complain to your local data protection supervisory authority. You can find their contact details here: https://ec.europa.eu/justice/data-protection/bodies/authorities/index_en.htm.

If you are located in Switzerland, the contact details for the data protection authorities are available here: https://www.edoeb.admin.ch/edoeb/en/home.html.

Withdrawing your consent: If we are relying on your consent to process your personal information, which may be express and/or implied consent depending on the applicable law, you have the right to withdraw your consent at any time. You can withdraw your consent at any time by contacting us by using the contact details provided in the section "HOW CAN YOU CONTACT US ABOUT THIS NOTICE?" below.

However, please note that this will not affect the lawfulness of the processing before its withdrawal nor, when applicable law allows, will it affect the processing of your personal information conducted in reliance on lawful processing grounds other than consent.

If you have questions or comments about your privacy rights, you may email us at privacy@frsource.org.

7. CONTROLS FOR DO-NOT-TRACK FEATURES

Most web browsers and some mobile operating systems and mobile applications include a Do-Not-Track ("DNT") feature or setting you can activate to signal your privacy preference not to have data about your online browsing activities monitored and collected. At this stage no uniform technology standard for recognizing and implementing DNT signals has been finalized. As such, we do not currently respond to DNT browser signals or any other mechanism that automatically communicates your choice not to be tracked online. If a standard for online tracking is adopted that we must follow in the future, we will inform you about that practice in a revised version of this privacy notice.

8. DO CALIFORNIA RESIDENTS HAVE SPECIFIC PRIVACY RIGHTS?

In Short: Yes, if you are a resident of California, you are granted specific rights regarding access to your personal information.

California Civil Code Section 1798.83, also known as the "Shine The Light" law, permits our users who are California residents to request and obtain from us, once a year and free of charge, information about categories of personal information (if any) we disclosed to third parties for direct marketing purposes and the names and addresses of all third parties with which we shared personal information in the immediately preceding calendar year. If you are a California resident and would like to make such a request, please submit your request in writing to us using the contact information provided below.

If you are under 18 years of age, reside in California, and have a registered account with Services, you have the right to request removal of unwanted data that you publicly post on the Services. To request removal of such data, please contact us using the contact information provided below and include the email address associated with your account and a statement that you reside in California. We will make sure the data is not publicly displayed on the Services, but please be aware that the data may not be completely or comprehensively removed from all our systems (e.g., backups, etc.).

CCPA Privacy Notice

The California Code of Regulations defines a "resident" as:

(1) every individual who is in the State of California for other than a temporary or transitory purpose and

(2) every individual who is domiciled in the State of California who is outside the State of California for a temporary or transitory purpose

All other individuals are defined as "non-residents."

If this definition of "resident" applies to you, we must adhere to certain rights and obligations regarding your personal information.

What categories of personal information do we collect?

We have collected the following categories of personal information in the past twelve (12) months:

',78),v=e("tbody",null,[e("tr",null,[e("td",null,[e("strong",null,"Category")]),e("td",null,[e("strong",null,"Examples")]),e("td",null,[e("strong",null,"Collected")])]),e("tr",null,[e("td",null,[e("p",null,"A. Identifiers")]),e("td",null,[e("p",null," Contact details, such as real name, alias, postal address, telephone or mobile contact number, unique personal identifier, online identifier, Internet Protocol address, email address, and account name ")]),e("td",null,[e("p",null,"NO")])]),e("tr",null,[e("td",null,[e("p",null," B. Personal information categories listed in the California Customer Records statute ")]),e("td",null,[e("p",null," Name, contact information, education, employment, employment history, and financial information ")]),e("td",null,[e("p",null,"NO")])]),e("tr",null,[e("td",null,[e("p",null," C. Protected classification characteristics under California or federal law ")]),e("td",null,[e("p",null,"Gender and date of birth")]),e("td",null,[e("p",null,"NO")])]),e("tr",null,[e("td",null,[e("p",null,"D. Commercial information")]),e("td",null,[e("p",null," Transaction information, purchase history, financial details, and payment information ")]),e("td",null,[e("p",null,"NO")])]),e("tr",null,[e("td",null,[e("p",null,"E. Biometric information")]),e("td",null,[e("p",null,"Fingerprints and voiceprints")]),e("td",null,[e("p",null,"NO")])]),e("tr",null,[e("td",null,[e("p",null,"F. Internet or other similar network activity")]),e("td",null,[e("p",null," Browsing history, search history, online behavior, interest data, and interactions with our and other websites, applications, systems, and advertisements ")]),e("td",null,[e("p",null,"NO")])]),e("tr",null,[e("td",null,[e("p",null,"G. Geolocation data")]),e("td",null,[e("p",null,"Device location")]),e("td",null,[e("p",null,"NO")])]),e("tr",null,[e("td",null,[e("p",null," H. Audio, electronic, visual, thermal, olfactory, or similar information ")]),e("td",null,[e("p",null," Images and audio, video or call recordings created in connection with our business activities ")]),e("td",null,[e("p",null,"NO")])]),e("tr",null,[e("td",null,[e("p",null,"I. Professional or employment-related information")]),e("td",null,[e("p",null," Business contact details in order to provide you our Services at a business level or job title, work history, and professional qualifications if you apply for a job with us ")]),e("td",null,[e("p",null,"NO")])]),e("tr",null,[e("td",null,[e("p",null,"J. Education Information")]),e("td",null,[e("p",null,"Student records and directory information")]),e("td",null,[e("p",null,"NO")])]),e("tr",null,[e("td",null,[e("p",null,"K. Inferences drawn from other personal information")]),e("td",null,[e("p",null," Inferences drawn from any of the collected personal information listed above to create a profile or summary about, for example, an individual’s preferences and characteristics ")]),e("td",null,[e("p",null,"NO")])])],-1),b=[v],O=i('

We may also collect other personal information outside of these categories through instances where you interact with us in person, online, or by phone or mail in the context of:

  • Receiving help through our customer support channels;
  • Participation in customer surveys or contests; and
  • Facilitation in the delivery of our Services and to respond to your inquiries.

How do we use and share your personal information?

More information about our data collection and sharing practices can be found in this privacy notice.

You may contact us by email at ccpa@frsource.org, or by referring to the contact details at the bottom of this document.

If you are using an authorized agent to exercise your right to opt out we may deny a request if the authorized agent does not submit proof that they have been validly authorized to act on your behalf.

Will your information be shared with anyone else?

We may disclose your personal information with our service providers pursuant to a written contract between us and each service provider. Each service provider is a for-profit entity that processes the information on our behalf.

We may use your personal information for our own business purposes, such as for undertaking internal research for technological development and demonstration. This is not considered to be "selling" of your personal information.

FRS Jakub Freisler has not disclosed or sold any personal information to third parties for a business or commercial purpose in the preceding twelve (12) months. FRS Jakub Freisler will not sell personal information in the future belonging to website visitors, users, and other consumers.

Your rights with respect to your personal data

Right to request deletion of the data — Request to delete

You can ask for the deletion of your personal information. If you ask us to delete your personal information, we will respect your request and delete your personal information, subject to certain exceptions provided by law, such as (but not limited to) the exercise by another consumer of his or her right to free speech, our compliance requirements resulting from a legal obligation, or any processing that may be required to protect against illegal activities.

Right to be informed — Request to know

Depending on the circumstances, you have a right to know:

  • whether we collect and use your personal information;
  • the categories of personal information that we collect;
  • the purposes for which the collected personal information is used;
  • whether we sell your personal information to third parties;
  • the categories of personal information that we sold or disclosed for a business purpose;
  • the categories of third parties to whom the personal information was sold or disclosed for a business purpose; and
  • the business or commercial purpose for collecting or selling personal information.

In accordance with applicable law, we are not obligated to provide or delete consumer information that is de-identified in response to a consumer request or to re-identify individual data to verify a consumer request.

Right to Non-Discrimination for the Exercise of a Consumer’s Privacy Rights

We will not discriminate against you if you exercise your privacy rights.

Verification process

Upon receiving your request, we will need to verify your identity to determine you are the same person about whom we have the information in our system. These verification efforts require us to ask you to provide information so that we can match it with information you have previously provided us. For instance, depending on the type of request you submit, we may ask you to provide certain information so that we can match the information you provide with the information we already have on file, or we may contact you through a communication method (e.g., phone or email) that you have previously provided to us. We may also use other verification methods as the circumstances dictate.

We will only use personal information provided in your request to verify your identity or authority to make the request. To the extent possible, we will avoid requesting additional information from you for the purposes of verification. However, if we cannot verify your identity from the information already maintained by us, we may request that you provide additional information for the purposes of verifying your identity and for security or fraud-prevention purposes. We will delete such additionally provided information as soon as we finish verifying you.

Other privacy rights

  • You may object to the processing of your personal information.
  • You may request correction of your personal data if it is incorrect or no longer relevant, or ask to restrict the processing of the information.
  • You can designate an authorized agent to make a request under the CCPA on your behalf. We may deny a request from an authorized agent that does not submit proof that they have been validly authorized to act on your behalf in accordance with the CCPA.
  • You may request to opt out from future selling of your personal information to third parties. Upon receiving an opt-out request, we will act upon the request as soon as feasibly possible, but no later than fifteen (15) days from the date of the request submission.

To exercise these rights, you can contact us by email at ccpa@frsource.org, or by referring to the contact details at the bottom of this document. If you have a complaint about how we handle your data, we would like to hear from you.

9. DO WE MAKE UPDATES TO THIS NOTICE?

In Short: Yes, we will update this notice as necessary to stay compliant with relevant laws.

We may update this privacy notice from time to time. The updated version will be indicated by an updated "Revised" date and the updated version will be effective as soon as it is accessible. If we make material changes to this privacy notice, we may notify you either by prominently posting a notice of such changes or by directly sending you a notification. We encourage you to review this privacy notice frequently to be informed of how we are protecting your information.

10. HOW CAN YOU CONTACT US ABOUT THIS NOTICE?

If you have questions or comments about this notice, you may email us at privacy@frsource.org or by post to:

FRS Jakub Freisler
ul. Królewska 92 / 8
Kraków, Małopolska 30-079
Poland

11. HOW CAN YOU REVIEW, UPDATE, OR DELETE THE DATA WE COLLECT FROM YOU?

Based on the applicable laws of your country, you may have the right to request access to the personal information we collect from you, change that information, or delete it. To request to review, update, or delete your personal information, please email us at: privacy@frsource.org.

',44),u=c({__name:"privacy-policy",setup(A){return p({title:"Privacy Policy"}),(o,S)=>(h(),d("article",{class:s(o.$style.article)},[m,e("ul",null,[e("li",null,[n(" Visit our website at "),e("a",{href:`${"host"in o?o.host:t(r)}${"basePath"in o?o.basePath:t(a)}`,textContent:f(`${"host"in o?o.host:t(r)}${"basePath"in o?o.basePath:t(a)}`)},null,8,g),n(", or any website of ours that links to this privacy notice ")])]),w,e("table",{class:s(o.$style.table)},b,2),O],2))}}),I="f_b",T="f_c",E={article:I,table:T},C={$style:E};typeof l=="function"&&l(u);const q=y(u,[["__cssModules",C]]);export{q as default}; diff --git a/assets/terms-CRRkJi5O.js b/assets/terms-Dytl1uwk.js similarity index 99% rename from assets/terms-CRRkJi5O.js rename to assets/terms-Dytl1uwk.js index 8df2539a..a9cc3998 100644 --- a/assets/terms-CRRkJi5O.js +++ b/assets/terms-Dytl1uwk.js @@ -1 +1 @@ -import{d as u,af as d,o as p,e as y,a as i,f as o,g as t,h as a,j as r,t as s,l,n as m,ag as n,H as h}from"./app-C_A3Ikqc.js";import{_ as f}from"./_plugin-vue_export-helper-DlAUqK2U.js";const T=n('

Terms and Conditions

Last updated November 03, 2022

TABLE OF CONTENTS

  1. AGREEMENT TO TERMS
  2. INTELLECTUAL PROPERTY RIGHTS
  3. USER REPRESENTATIONS
  4. PROHIBITED ACTIVITIES
  5. USER GENERATED CONTRIBUTIONS
  6. CONTRIBUTION LICENSE
  7. MOBILE APPLICATION LICENSE
  8. SUBMISSIONS
  9. THIRD-PARTY WEBSITE AND CONTENT
  10. SITE MANAGEMENT
  11. PRIVACY POLICY
  12. TERM AND TERMINATION
  13. MODIFICATIONS AND INTERRUPTIONS
  14. GOVERNING LAW
  15. DISPUTE RESOLUTION
  16. CORRECTIONS
  17. DISCLAIMER
  18. LIMITATIONS OF LIABILITY
  19. INDEMNIFICATION
  20. USER DATA
  21. ELECTRONIC COMMUNICATIONS, TRANSACTIONS, AND SIGNATURES
  22. CALIFORNIA USERS AND RESIDENTS
  23. MISCELLANEOUS
  24. CONTACT US

1. AGREEMENT TO TERMS

',4),E=i("strong",null,"Company",-1),S=i("strong",null,"we",-1),g=i("strong",null,"us",-1),I=i("strong",null,"our",-1),b=["href","textContent"],A=n('

Supplemental terms and conditions or documents that may be posted on the Site from time to time are hereby expressly incorporated herein by reference. We reserve the right, in our sole discretion, to make changes or modifications to these Terms of Use from time to time. We will alert you about any changes by updating the “Last updated” date of these Terms of Use, and you waive any right to receive specific notice of each such change. Please ensure that you check the applicable Terms every time you use our Site so that you understand which Terms apply. You will be subject to, and will be deemed to have been made aware of and to have accepted, the changes in any revised Terms of Use by your continued use of the Site after the date such revised Terms of Use are posted.

The information provided on the Site is not intended for distribution to or use by any person or entity in any jurisdiction or country where such distribution or use would be contrary to law or regulation or which would subject us to any registration requirement within such jurisdiction or country. Accordingly, those persons who choose to access the Site from other locations do so on their own initiative and are solely responsible for compliance with local laws, if and to the extent local laws are applicable.

The Site is not tailored to comply with industry-specific regulations (Health Insurance Portability and Accountability Act (HIPAA), Federal Information Security Management Act (FISMA), etc.), so if your interactions would be subjected to such laws, you may not use this Site. You may not use the Site in a way that would violate the Gramm-Leach-Bliley Act (GLBA).

All users who are minors in the jurisdiction in which they reside (generally under the age of 18) must have the permission of, and be directly supervised by, their parent or guardian to use the Site. If you are a minor, you must have your parent or guardian read and agree to these Terms of Use prior to you using the Site.

2. INTELLECTUAL PROPERTY RIGHTS

Unless otherwise indicated, the Site is our proprietary property and all source code, databases, functionality, software, website designs, audio, video, text, photographs, and graphics on the Site (collectively, the “Content”) and the trademarks, service marks, and logos contained therein (the “Marks”) are owned or controlled by us or licensed to us, and are protected by copyright and trademark laws and various other intellectual property rights and unfair competition laws of the United States, international copyright laws, and international conventions. The Content and the Marks are provided on the Site “AS IS” for your information and personal use only. Except as expressly provided in these Terms of Use, no part of the Site and no Content or Marks may be copied, reproduced, aggregated, republished, uploaded, posted, publicly displayed, encoded, translated, transmitted, distributed, sold, licensed, or otherwise exploited for any commercial purpose whatsoever, without our express prior written permission.

Provided that you are eligible to use the Site, you are granted a limited license to access and use the Site and to download or print a copy of any portion of the Content to which you have properly gained access solely for your personal, non-commercial use. We reserve all rights not expressly granted to you in and to the Site, the Content and the Marks.

3. USER REPRESENTATIONS

By using the Site, you represent and warrant that: (1) you have the legal capacity and you agree to comply with these Terms of Use; (2) you are not a minor in the jurisdiction in which you reside, or if a minor, you have received parental permission to use the Site; (3) you will not access the Site through automated or non-human means, whether through a bot, script, or otherwise; (4) you will not use the Site for any illegal or unauthorized purpose; and (5) your use of the Site will not violate any applicable law or regulation.

If you provide any information that is untrue, inaccurate, not current, or incomplete, we have the right to suspend or terminate your account and refuse any and all current or future use of the Site (or any portion thereof).

4. PROHIBITED ACTIVITIES

You may not access or use the Site for any purpose other than that for which we make the Site available. The Site may not be used in connection with any commercial endeavors except those that are specifically endorsed or approved by us.

As a user of the Site, you agree not to:

  • Systematically retrieve data or other content from the Site to create or compile, directly or indirectly, a collection, compilation, database, or directory without written permission from us.
  • Trick, defraud, or mislead us and other users, especially in any attempt to learn sensitive account information such as user passwords.
  • Circumvent, disable, or otherwise interfere with security-related features of the Site, including features that prevent or restrict the use or copying of any Content or enforce limitations on the use of the Site and/or the Content contained therein.
  • Disparage, tarnish, or otherwise harm, in our opinion, us and/or the Site.
  • Use any information obtained from the Site in order to harass, abuse, or harm another person.
  • Make improper use of our support services or submit false reports of abuse or misconduct.
  • Use the Site in a manner inconsistent with any applicable laws or regulations.
  • Engage in unauthorized framing of or linking to the Site.
  • Upload or transmit (or attempt to upload or to transmit) viruses, Trojan horses, or other material, including excessive use of capital letters and spamming (continuous posting of repetitive text), that interferes with any party’s uninterrupted use and enjoyment of the Site or modifies, impairs, disrupts, alters, or interferes with the use, features, functions, operation, or maintenance of the Site.
  • Engage in any automated use of the system, such as using scripts to send comments or messages, or using any data mining, robots, or similar data gathering and extraction tools.
  • Delete the copyright or other proprietary rights notice from any Content.
  • Attempt to impersonate another user or person or use the username of another user.
  • Upload or transmit (or attempt to upload or to transmit) any material that acts as a passive or active information collection or transmission mechanism, including without limitation, clear graphics interchange formats (“gifs”), 1×1 pixels, web bugs, cookies, or other similar devices (sometimes referred to as “spyware” or “passive collection mechanisms” or “pcms”).
  • Interfere with, disrupt, or create an undue burden on the Site or the networks or services connected to the Site.
  • Harass, annoy, intimidate, or threaten any of our employees or agents engaged in providing any portion of the Site to you.
  • Attempt to bypass any measures of the Site designed to prevent or restrict access to the Site, or any portion of the Site.
  • Copy or adapt the Site’s software, including but not limited to Flash, PHP, HTML, JavaScript, or other code.
  • Except as permitted by applicable law, decipher, decompile, disassemble, or reverse engineer any of the software comprising or in any way making up a part of the Site.
  • Except as may be the result of standard search engine or Internet browser usage, use, launch, develop, or distribute any automated system, including without limitation, any spider, robot, cheat utility, scraper, or offline reader that accesses the Site, or using or launching any unauthorized script or other software.
  • Use a buying agent or purchasing agent to make purchases on the Site.
  • Make any unauthorized use of the Site, including collecting usernames and/or email addresses of users by electronic or other means for the purpose of sending unsolicited email, or creating user accounts by automated means or under false pretenses.
  • Use the Site as part of any effort to compete with us or otherwise use the Site and/or the Content for any revenue-generating endeavor or commercial enterprise.
  • Use the Site to advertise or offer to sell goods and services.
  • Sell or otherwise transfer your profile.

5. USER GENERATED CONTRIBUTIONS

The Site does not offer users to submit or post content. We may provide you with the opportunity to create, submit, post, display, transmit, perform, publish, distribute, or broadcast content and materials to us or on the Site, including but not limited to text, writings, video, audio, photographs, graphics, comments, suggestions, or personal information or other material (collectively, "Contributions"). Contributions may be viewable by other users of the Site and through third-party websites. As such, any Contributions you transmit may be treated in accordance with the Site Privacy Policy. When you create or make available any Contributions, you thereby represent and warrant that:

  • The creation, distribution, transmission, public display, or performance, and the accessing, downloading, or copying of your Contributions do not and will not infringe the proprietary rights, including but not limited to the copyright, patent, trademark, trade secret, or moral rights of any third party.
  • You are the creator and owner of or have the necessary licenses, rights, consents, releases, and permissions to use and to authorize us, the Site, and other users of the Site to use your Contributions in any manner contemplated by the Site and these Terms of Use.
  • You have the written consent, release, and/or permission of each and every identifiable individual person in your Contributions to use the name or likeness of each and every such identifiable individual person to enable inclusion and use of your Contributions in any manner contemplated by the Site and these Terms of Use.
  • Your Contributions are not false, inaccurate, or misleading.
  • Your Contributions are not unsolicited or unauthorized advertising, promotional materials, pyramid schemes, chain letters, spam, mass mailings, or other forms of solicitation.
  • Your Contributions are not obscene, lewd, lascivious, filthy, violent, harassing, libelous, slanderous, or otherwise objectionable (as determined by us).
  • Your Contributions do not ridicule, mock, disparage, intimidate, or abuse anyone.
  • Your Contributions are not used to harass or threaten (in the legal sense of those terms) any other person and to promote violence against a specific person or class of people.
  • Your Contributions do not violate any applicable law, regulation, or rule.
  • Your Contributions do not violate the privacy or publicity rights of any third party.
  • Your Contributions do not violate any applicable law concerning child pornography, or otherwise intended to protect the health or well-being of minors.
  • Your Contributions do not include any offensive comments that are connected to race, national origin, gender, sexual preference, or physical handicap.
  • Your Contributions do not otherwise violate, or link to material that violates, any provision of these Terms of Use, or any applicable law or regulation.

Any use of the Site in violation of the foregoing violates these Terms of Use and may result in, among other things, termination or suspension of your rights to use the Site.

6. CONTRIBUTION LICENSE

You agree that we may access, store, process, and use any information and personal data that you provide following the terms of the Privacy Policy and your choices (including settings).

By submitting suggestions or other feedback regarding the Site, you agree that we can use and share such feedback for any purpose without compensation to you.

We do not assert any ownership over your Contributions. You retain full ownership of all of your Contributions and any intellectual property rights or other proprietary rights associated with your Contributions. We are not liable for any statements or representations in your Contributions provided by you in any area on the Site. You are solely responsible for your Contributions to the Site and you expressly agree to exonerate us from any and all responsibility and to refrain from any legal action against us regarding your Contributions.

7. MOBILE APPLICATION LICENSE

Use License

If you access the Site via a mobile application, then we grant you a revocable, non-exclusive, non-transferable, limited right to install and use the mobile application on wireless electronic devices owned or controlled by you, and to access and use the mobile application on such devices strictly in accordance with the terms and conditions of this mobile application license contained in these Terms of Use. You shall not: (1) except as permitted by applicable law, decompile, reverse engineer, disassemble, attempt to derive the source code of, or decrypt the application; (2) make any modification, adaptation, improvement, enhancement, translation, or derivative work from the application; (3) violate any applicable laws, rules, or regulations in connection with your access or use of the application; (4) remove, alter, or obscure any proprietary notice (including any notice of copyright or trademark) posted by us or the licensors of the application; (5) use the application for any revenue generating endeavor, commercial enterprise, or other purpose for which it is not designed or intended; (6) make the application available over a network or other environment permitting access or use by multiple devices or users at the same time; (7) use the application for creating a product, service, or software that is, directly or indirectly, competitive with or in any way a substitute for the application; (8) use the application to send automated queries to any website or to send any unsolicited commercial e-mail; or (9) use any proprietary information or any of our interfaces or our other intellectual property in the design, development, manufacture, licensing, or distribution of any applications, accessories, or devices for use with the application.

Apple and Android Devices

The following terms apply when you use a mobile application obtained from either the Apple Store or Google Play (each an “App Distributor”) to access the Site: (1) the license granted to you for our mobile application is limited to a non-transferable license to use the application on a device that utilizes the Apple iOS or Android operating systems, as applicable, and in accordance with the usage rules set forth in the applicable App Distributor’s terms of service; (2) we are responsible for providing any maintenance and support services with respect to the mobile application as specified in the terms and conditions of this mobile application license contained in these Terms of Use or as otherwise required under applicable law, and you acknowledge that each App Distributor has no obligation whatsoever to furnish any maintenance and support services with respect to the mobile application; (3) in the event of any failure of the mobile application to conform to any applicable warranty, you may notify the applicable App Distributor, and the App Distributor, in accordance with its terms and policies, may refund the purchase price, if any, paid for the mobile application, and to the maximum extent permitted by applicable law, the App Distributor will have no other warranty obligation whatsoever with respect to the mobile application; (4) you represent and warrant that (i) you are not located in a country that is subject to a U.S. government embargo, or that has been designated by the U.S. government as a “terrorist supporting” country and (ii) you are not listed on any U.S. government list of prohibited or restricted parties; (5) you must comply with applicable third-party terms of agreement when using the mobile application, e.g., if you have a VoIP application, then you must not be in violation of their wireless data service agreement when using the mobile application; and (6) you acknowledge and agree that the App Distributors are third-party beneficiaries of the terms and conditions in this mobile application license contained in these Terms of Use, and that each App Distributor will have the right (and will be deemed to have accepted the right) to enforce the terms and conditions in this mobile application license contained in these Terms of Use against you as a third-party beneficiary thereof.

8. SUBMISSIONS

You acknowledge and agree that any questions, comments, suggestions, ideas, feedback, or other information regarding the Site ("Submissions") provided by you to us are non-confidential and shall become our sole property. We shall own exclusive rights, including all intellectual property rights, and shall be entitled to the unrestricted use and dissemination of these Submissions for any lawful purpose, commercial or otherwise, without acknowledgment or compensation to you. You hereby waive all moral rights to any such Submissions, and you hereby warrant that any such Submissions are original with you or that you have the right to submit such Submissions. You agree there shall be no recourse against us for any alleged or actual infringement or misappropriation of any proprietary right in your Submissions.

9. THIRD-PARTY WEBSITE AND CONTENT

The Site may contain (or you may be sent via the Site) links to other websites ("Third-Party Websites") as well as articles, photographs, text, graphics, pictures, designs, music, sound, video, information, applications, software, and other content or items belonging to or originating from third parties ("Third-Party Content"). Such Third-Party Websites and Third-Party Content are not investigated, monitored, or checked for accuracy, appropriateness, or completeness by us, and we are not responsible for any Third-Party Websites accessed through the Site or any Third-Party Content posted on, available through, or installed from the Site, including the content, accuracy, offensiveness, opinions, reliability, privacy practices, or other policies of or contained in the Third-Party Websites or the Third-Party Content. Inclusion of, linking to, or permitting the use or installation of any Third-Party Websites or any Third-Party Content does not imply approval or endorsement thereof by us. If you decide to leave the Site and access the Third-Party Websites or to use or install any Third-Party Content, you do so at your own risk, and you should be aware these Terms of Use no longer govern. You should review the applicable terms and policies, including privacy and data gathering practices, of any website to which you navigate from the Site or relating to any applications you use or install from the Site. Any purchases you make through Third-Party Websites will be through other websites and from other companies, and we take no responsibility whatsoever in relation to such purchases which are exclusively between you and the applicable third party. You agree and acknowledge that we do not endorse the products or services offered on Third-Party Websites and you shall hold us harmless from any harm caused by your purchase of such products or services. Additionally, you shall hold us harmless from any losses sustained by you or harm caused to you relating to or resulting in any way from any Third-Party Content or any contact with Third-Party Websites.

10. SITE MANAGEMENT

We reserve the right, but not the obligation, to: (1) monitor the Site for violations of these Terms of Use; (2) take appropriate legal action against anyone who, in our sole discretion, violates the law or these Terms of Use, including without limitation, reporting such user to law enforcement authorities; (3) in our sole discretion and without limitation, refuse, restrict access to, limit the availability of, or disable (to the extent technologically feasible) any of your Contributions or any portion thereof; (4) in our sole discretion and without limitation, notice, or liability, to remove from the Site or otherwise disable all files and content that are excessive in size or are in any way burdensome to our systems; and (5) otherwise manage the Site in a manner designed to protect our rights and property and to facilitate the proper functioning of the Site.

11. PRIVACY POLICY

',34),O=["href","textContent"],N=n('

12. TERM AND TERMINATION

These Terms of Use shall remain in full force and effect while you use the Site. WITHOUT LIMITING ANY OTHER PROVISION OF THESE TERMS OF USE, WE RESERVE THE RIGHT TO, IN OUR SOLE DISCRETION AND WITHOUT NOTICE OR LIABILITY, DENY ACCESS TO AND USE OF THE SITE (INCLUDING BLOCKING CERTAIN IP ADDRESSES), TO ANY PERSON FOR ANY REASON OR FOR NO REASON, INCLUDING WITHOUT LIMITATION FOR BREACH OF ANY REPRESENTATION, WARRANTY, OR COVENANT CONTAINED IN THESE TERMS OF USE OR OF ANY APPLICABLE LAW OR REGULATION. WE MAY TERMINATE YOUR USE OR PARTICIPATION IN THE SITE OR DELETE ANY CONTENT OR INFORMATION THAT YOU POSTED AT ANY TIME, WITHOUT WARNING, IN OUR SOLE DISCRETION.

If we terminate or suspend your account for any reason, you are prohibited from registering and creating a new account under your name, a fake or borrowed name, or the name of any third party, even if you may be acting on behalf of the third party. In addition to terminating or suspending your account, we reserve the right to take appropriate legal action, including without limitation pursuing civil, criminal, and injunctive redress.

13. MODIFICATIONS AND INTERRUPTIONS

We reserve the right to change, modify, or remove the contents of the Site at any time or for any reason at our sole discretion without notice. However, we have no obligation to update any information on our Site. We also reserve the right to modify or discontinue all or part of the Site without notice at any time. We will not be liable to you or any third party for any modification, price change, suspension, or discontinuance of the Site.

We cannot guarantee the Site will be available at all times. We may experience hardware, software, or other problems or need to perform maintenance related to the Site, resulting in interruptions, delays, or errors. We reserve the right to change, revise, update, suspend, discontinue, or otherwise modify the Site at any time or for any reason without notice to you. You agree that we have no liability whatsoever for any loss, damage, or inconvenience caused by your inability to access or use the Site during any downtime or discontinuance of the Site. Nothing in these Terms of Use will be construed to obligate us to maintain and support the Site or to supply any corrections, updates, or releases in connection therewith.

14. GOVERNING LAW

These conditions are governed by and interpreted following the laws of Poland, and the use of the United Nations Convention of Contracts for the International Sale of Goods is expressly excluded. If your habitual residence is in the EU, and you are a consumer, you additionally possess the protection provided to you by obligatory provisions of the law of your country of residence. FRS Jakub Freisler and yourself both agree to submit to the non-exclusive jurisdiction of the courts of Krowodrza, Kraków, Poland, which means that you may make a claim to defend your consumer protection rights in regards to these Terms of Use in Poland, or in the EU country in which you reside.

15. DISPUTE RESOLUTION

Informal Negotiations

To expedite resolution and control the cost of any dispute, controversy, or claim related to these Terms of Use (each "Dispute" and collectively, the “Disputes”) brought by either you or us (individually, a “Party” and collectively, the “Parties”), the Parties agree to first attempt to negotiate any Dispute (except those Disputes expressly provided below) informally for at least thirty (30) days before initiating arbitration. Such informal negotiations commence upon written notice from one Party to the other Party.

Binding Arbitration

',12),R=n('

Any dispute arising from the relationships between the Parties to this contract shall be determined by one arbitrator who will be chosen in accordance with the Arbitration and Internal Rules of the European Court of Arbitration being part of the European Centre of Arbitration having its seat in Strasbourg, and which are in force at the time the application for arbitration is filed, and of which adoption of this clause constitutes acceptance. The seat of arbitration shall be Kraków, Poland. The language of the proceedings shall be English. Applicable rules of substantive law shall be the law of Poland.

Restrictions

The Parties agree that any arbitration shall be limited to the Dispute between the Parties individually. To the full extent permitted by law, (a) no arbitration shall be joined with any other proceeding; (b) there is no right or authority for any Dispute to be arbitrated on a class-action basis or to utilize class action procedures; and (c) there is no right or authority for any Dispute to be brought in a purported representative capacity on behalf of the general public or any other persons.

Exceptions to Informal Negotiations and Arbitration

The Parties agree that the following Disputes are not subject to the above provisions concerning informal negotiations and binding arbitration: (a) any Disputes seeking to enforce or protect, or concerning the validity of, any of the intellectual property rights of a Party; (b) any Dispute related to, or arising from, allegations of theft, piracy, invasion of privacy, or unauthorized use; and (c) any claim for injunctive relief. If this provision is found to be illegal or unenforceable, then neither Party will elect to arbitrate any Dispute falling within that portion of this provision found to be illegal or unenforceable and such Dispute shall be decided by a court of competent jurisdiction within the courts listed for jurisdiction above, and the Parties agree to submit to the personal jurisdiction of that court.

16. CORRECTIONS

There may be information on the Site that contains typographical errors, inaccuracies, or omissions, including descriptions, pricing, availability, and various other information. We reserve the right to correct any errors, inaccuracies, or omissions and to change or update the information on the Site at any time, without prior notice.

17. DISCLAIMER

THE SITE IS PROVIDED ON AN AS-IS AND AS-AVAILABLE BASIS. YOU AGREE THAT YOUR USE OF THE SITE AND OUR SERVICES WILL BE AT YOUR SOLE RISK. TO THE FULLEST EXTENT PERMITTED BY LAW, WE DISCLAIM ALL WARRANTIES, EXPRESS OR IMPLIED, IN CONNECTION WITH THE SITE AND YOUR USE THEREOF, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, AND NON-INFRINGEMENT. WE MAKE NO WARRANTIES OR REPRESENTATIONS ABOUT THE ACCURACY OR COMPLETENESS OF THE SITE’S CONTENT OR THE CONTENT OF ANY WEBSITES LINKED TO THE SITE AND WE WILL ASSUME NO LIABILITY OR RESPONSIBILITY FOR ANY (1) ERRORS, MISTAKES, OR INACCURACIES OF CONTENT AND MATERIALS, (2) PERSONAL INJURY OR PROPERTY DAMAGE, OF ANY NATURE WHATSOEVER, RESULTING FROM YOUR ACCESS TO AND USE OF THE SITE, (3) ANY UNAUTHORIZED ACCESS TO OR USE OF OUR SECURE SERVERS AND/OR ANY AND ALL PERSONAL INFORMATION AND/OR FINANCIAL INFORMATION STORED THEREIN, (4) ANY INTERRUPTION OR CESSATION OF TRANSMISSION TO OR FROM THE SITE, (5) ANY BUGS, VIRUSES, TROJAN HORSES, OR THE LIKE WHICH MAY BE TRANSMITTED TO OR THROUGH THE SITE BY ANY THIRD PARTY, AND/OR (6) ANY ERRORS OR OMISSIONS IN ANY CONTENT AND MATERIALS OR FOR ANY LOSS OR DAMAGE OF ANY KIND INCURRED AS A RESULT OF THE USE OF ANY CONTENT POSTED, TRANSMITTED, OR OTHERWISE MADE AVAILABLE VIA THE SITE. WE DO NOT WARRANT, ENDORSE, GUARANTEE, OR ASSUME RESPONSIBILITY FOR ANY PRODUCT OR SERVICE ADVERTISED OR OFFERED BY A THIRD PARTY THROUGH THE SITE, ANY HYPERLINKED WEBSITE, OR ANY WEBSITE OR MOBILE APPLICATION FEATURED IN ANY BANNER OR OTHER ADVERTISING, AND WE WILL NOT BE A PARTY TO OR IN ANY WAY BE RESPONSIBLE FOR MONITORING ANY TRANSACTION BETWEEN YOU AND ANY THIRD-PARTY PROVIDERS OF PRODUCTS OR SERVICES. AS WITH THE PURCHASE OF A PRODUCT OR SERVICE THROUGH ANY MEDIUM OR IN ANY ENVIRONMENT, YOU SHOULD USE YOUR BEST JUDGMENT AND EXERCISE CAUTION WHERE APPROPRIATE.

18. LIMITATIONS OF LIABILITY

IN NO EVENT WILL WE OR OUR DIRECTORS, EMPLOYEES, OR AGENTS BE LIABLE TO YOU OR ANY THIRD PARTY FOR ANY DIRECT, INDIRECT, CONSEQUENTIAL, EXEMPLARY, INCIDENTAL, SPECIAL, OR PUNITIVE DAMAGES, INCLUDING LOST PROFIT, LOST REVENUE, LOSS OF DATA, OR OTHER DAMAGES ARISING FROM YOUR USE OF THE SITE, EVEN IF WE HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. NOTWITHSTANDING ANYTHING TO THE CONTRARY CONTAINED HEREIN, OUR LIABILITY TO YOU FOR ANY CAUSE WHATSOEVER AND REGARDLESS OF THE FORM OF THE ACTION, WILL AT ALL TIMES BE LIMITED TO THE LESSER OF THE AMOUNT PAID, IF ANY, BY YOU TO US DURING THE three (3) MONTH PERIOD PRIOR TO ANY CAUSE OF ACTION ARISING OR $0.00 USD. CERTAIN US STATE LAWS AND INTERNATIONAL LAWS DO NOT ALLOW LIMITATIONS ON IMPLIED WARRANTIES OR THE EXCLUSION OR LIMITATION OF CERTAIN DAMAGES. IF THESE LAWS APPLY TO YOU, SOME OR ALL OF THE ABOVE DISCLAIMERS OR LIMITATIONS MAY NOT APPLY TO YOU, AND YOU MAY HAVE ADDITIONAL RIGHTS.

19. INDEMNIFICATION

You agree to defend, indemnify, and hold us harmless, including our subsidiaries, affiliates, and all of our respective officers, agents, partners, and employees, from and against any loss, damage, liability, claim, or demand, including reasonable attorneys’ fees and expenses, made by any third party due to or arising out of: (1) use of the Site; (2) breach of these Terms of Use; (3) any breach of your representations and warranties set forth in these Terms of Use; (4) your violation of the rights of a third party, including but not limited to intellectual property rights; or (5) any overt harmful act toward any other user of the Site with whom you connected via the Site. Notwithstanding the foregoing, we reserve the right, at your expense, to assume the exclusive defense and control of any matter for which you are required to indemnify us, and you agree to cooperate, at your expense, with our defense of such claims. We will use reasonable efforts to notify you of any such claim, action, or proceeding which is subject to this indemnification upon becoming aware of it.

20. USER DATA

We will maintain certain data that you transmit to the Site for the purpose of managing the performance of the Site, as well as data relating to your use of the Site. Although we perform regular routine backups of data, you are solely responsible for all data that you transmit or that relates to any activity you have undertaken using the Site. You agree that we shall have no liability to you for any loss or corruption of any such data, and you hereby waive any right of action against us arising from any such loss or corruption of such data.

21. ELECTRONIC COMMUNICATIONS, TRANSACTIONS, AND SIGNATURES

Visiting the Site, sending us emails, and completing online forms constitute electronic communications. You consent to receive electronic communications, and you agree that all agreements, notices, disclosures, and other communications we provide to you electronically, via email and on the Site, satisfy any legal requirement that such communication be in writing. YOU HEREBY AGREE TO THE USE OF ELECTRONIC SIGNATURES, CONTRACTS, ORDERS, AND OTHER RECORDS, AND TO ELECTRONIC DELIVERY OF NOTICES, POLICIES, AND RECORDS OF TRANSACTIONS INITIATED OR COMPLETED BY US OR VIA THE SITE. You hereby waive any rights or requirements under any statutes, regulations, rules, ordinances, or other laws in any jurisdiction which require an original signature or delivery or retention of non-electronic records, or to payments or the granting of credits by any means other than electronic means.

22. CALIFORNIA USERS AND RESIDENTS

If any complaint with us is not satisfactorily resolved, you can contact the Complaint Assistance Unit of the Division of Consumer Services of the California Department of Consumer Affairs in writing at 1625 North Market Blvd., Suite N 112, Sacramento, California 95834 or by telephone at (800) 952-5210 or (916) 445-1254.

23. MISCELLANEOUS

These Terms of Use and any policies or operating rules posted by us on the Site or in respect to the Site constitute the entire agreement and understanding between you and us. Our failure to exercise or enforce any right or provision of these Terms of Use shall not operate as a waiver of such right or provision. These Terms of Use operate to the fullest extent permissible by law. We may assign any or all of our rights and obligations to others at any time. We shall not be responsible or liable for any loss, damage, delay, or failure to act caused by any cause beyond our reasonable control. If any provision or part of a provision of these Terms of Use is determined to be unlawful, void, or unenforceable, that provision or part of the provision is deemed severable from these Terms of Use and does not affect the validity and enforceability of any remaining provisions. There is no joint venture, partnership, employment or agency relationship created between you and us as a result of these Terms of Use or use of the Site. You agree that these Terms of Use will not be construed against us by virtue of having drafted them. You hereby waive any and all defenses you may have based on the electronic form of these Terms of Use and the lack of signing by the parties hereto to execute these Terms of Use.

24. CONTACT US

In order to resolve a complaint regarding the Site or to receive further information regarding use of the Site, please contact us at:

FRS Jakub Freisler
ul. Królewska 92 / 8
Kraków, Małopolska 30-079
Poland
Phone: +48882568430
complaint@frsource.org
',24),c=u({__name:"terms",setup(U){return d({title:"Terms and Conditions"}),(e,D)=>(p(),y("article",{class:m(e.$style.article)},[T,i("p",null,[o(' These Terms of Use constitute a legally binding agreement made between you, whether personally or on behalf of an entity (“you”) and FRS Jakub Freisler ("'),E,o('," “'),S,o('," “'),g,o('," or “'),I,o("”), concerning your access to and use of the "),i("a",{href:`${"host"in e?e.host:t(a)}${"basePath"in e?e.basePath:t(r)}`,textContent:s(`${"host"in e?e.host:t(a)}${"basePath"in e?e.basePath:t(r)}`)},null,8,b),o(" website as well as any other media form, media channel, mobile website or mobile application related, linked, or otherwise connected thereto (collectively, the “Site”). We are registered in Poland and have our registered office at ul. Królewska 92 / 8, Kraków, Małopolska 30-079. Our VAT number is PL 6783179514. You agree that by accessing the Site, you have read, understood, and agreed to be bound by all of these Terms of Use. IF YOU DO NOT AGREE WITH ALL OF THESE TERMS OF USE, THEN YOU ARE EXPRESSLY PROHIBITED FROM USING THE SITE AND YOU MUST DISCONTINUE USE IMMEDIATELY. ")]),A,i("p",null,[o(" We care about data privacy and security. Please review our Privacy Policy: "),i("strong",null,[i("a",{href:`${"host"in e?e.host:t(a)}${"basePath"in e?e.basePath:t(r)}${"locale"in e?e.locale:t(l)}/privacy-policy`,textContent:s(`${"host"in e?e.host:t(a)}${"basePath"in e?e.basePath:t(r)}${"locale"in e?e.locale:t(l)}/privacy-policy`)},null,8,O)]),o(". By using the Site, you agree to be bound by our Privacy Policy, which is incorporated into these Terms of Use. Please be advised the Site is hosted in the United States. If you access the Site from any other region of the world with laws or other requirements governing personal data collection, use, or disclosure that differ from applicable laws in the United States, then through your continued use of the Site, you are transferring your data to the United States, and you agree to have your data transferred to and processed in the United States. ")]),N,o("     "),R],2))}}),w="f_a",v={article:w},C={$style:v};typeof h=="function"&&h(c);const Y=f(c,[["__cssModules",C]]);export{Y as default}; +import{d as u,af as d,o as p,e as y,a as i,f as o,g as t,h as a,j as r,t as s,l,n as m,ag as n,H as h}from"./app-DT9tPyzn.js";import{_ as f}from"./_plugin-vue_export-helper-DlAUqK2U.js";const T=n('

Terms and Conditions

Last updated November 03, 2022

TABLE OF CONTENTS

  1. AGREEMENT TO TERMS
  2. INTELLECTUAL PROPERTY RIGHTS
  3. USER REPRESENTATIONS
  4. PROHIBITED ACTIVITIES
  5. USER GENERATED CONTRIBUTIONS
  6. CONTRIBUTION LICENSE
  7. MOBILE APPLICATION LICENSE
  8. SUBMISSIONS
  9. THIRD-PARTY WEBSITE AND CONTENT
  10. SITE MANAGEMENT
  11. PRIVACY POLICY
  12. TERM AND TERMINATION
  13. MODIFICATIONS AND INTERRUPTIONS
  14. GOVERNING LAW
  15. DISPUTE RESOLUTION
  16. CORRECTIONS
  17. DISCLAIMER
  18. LIMITATIONS OF LIABILITY
  19. INDEMNIFICATION
  20. USER DATA
  21. ELECTRONIC COMMUNICATIONS, TRANSACTIONS, AND SIGNATURES
  22. CALIFORNIA USERS AND RESIDENTS
  23. MISCELLANEOUS
  24. CONTACT US

1. AGREEMENT TO TERMS

',4),E=i("strong",null,"Company",-1),S=i("strong",null,"we",-1),g=i("strong",null,"us",-1),I=i("strong",null,"our",-1),b=["href","textContent"],A=n('

Supplemental terms and conditions or documents that may be posted on the Site from time to time are hereby expressly incorporated herein by reference. We reserve the right, in our sole discretion, to make changes or modifications to these Terms of Use from time to time. We will alert you about any changes by updating the “Last updated” date of these Terms of Use, and you waive any right to receive specific notice of each such change. Please ensure that you check the applicable Terms every time you use our Site so that you understand which Terms apply. You will be subject to, and will be deemed to have been made aware of and to have accepted, the changes in any revised Terms of Use by your continued use of the Site after the date such revised Terms of Use are posted.

The information provided on the Site is not intended for distribution to or use by any person or entity in any jurisdiction or country where such distribution or use would be contrary to law or regulation or which would subject us to any registration requirement within such jurisdiction or country. Accordingly, those persons who choose to access the Site from other locations do so on their own initiative and are solely responsible for compliance with local laws, if and to the extent local laws are applicable.

The Site is not tailored to comply with industry-specific regulations (Health Insurance Portability and Accountability Act (HIPAA), Federal Information Security Management Act (FISMA), etc.), so if your interactions would be subjected to such laws, you may not use this Site. You may not use the Site in a way that would violate the Gramm-Leach-Bliley Act (GLBA).

All users who are minors in the jurisdiction in which they reside (generally under the age of 18) must have the permission of, and be directly supervised by, their parent or guardian to use the Site. If you are a minor, you must have your parent or guardian read and agree to these Terms of Use prior to you using the Site.

2. INTELLECTUAL PROPERTY RIGHTS

Unless otherwise indicated, the Site is our proprietary property and all source code, databases, functionality, software, website designs, audio, video, text, photographs, and graphics on the Site (collectively, the “Content”) and the trademarks, service marks, and logos contained therein (the “Marks”) are owned or controlled by us or licensed to us, and are protected by copyright and trademark laws and various other intellectual property rights and unfair competition laws of the United States, international copyright laws, and international conventions. The Content and the Marks are provided on the Site “AS IS” for your information and personal use only. Except as expressly provided in these Terms of Use, no part of the Site and no Content or Marks may be copied, reproduced, aggregated, republished, uploaded, posted, publicly displayed, encoded, translated, transmitted, distributed, sold, licensed, or otherwise exploited for any commercial purpose whatsoever, without our express prior written permission.

Provided that you are eligible to use the Site, you are granted a limited license to access and use the Site and to download or print a copy of any portion of the Content to which you have properly gained access solely for your personal, non-commercial use. We reserve all rights not expressly granted to you in and to the Site, the Content and the Marks.

3. USER REPRESENTATIONS

By using the Site, you represent and warrant that: (1) you have the legal capacity and you agree to comply with these Terms of Use; (2) you are not a minor in the jurisdiction in which you reside, or if a minor, you have received parental permission to use the Site; (3) you will not access the Site through automated or non-human means, whether through a bot, script, or otherwise; (4) you will not use the Site for any illegal or unauthorized purpose; and (5) your use of the Site will not violate any applicable law or regulation.

If you provide any information that is untrue, inaccurate, not current, or incomplete, we have the right to suspend or terminate your account and refuse any and all current or future use of the Site (or any portion thereof).

4. PROHIBITED ACTIVITIES

You may not access or use the Site for any purpose other than that for which we make the Site available. The Site may not be used in connection with any commercial endeavors except those that are specifically endorsed or approved by us.

As a user of the Site, you agree not to:

  • Systematically retrieve data or other content from the Site to create or compile, directly or indirectly, a collection, compilation, database, or directory without written permission from us.
  • Trick, defraud, or mislead us and other users, especially in any attempt to learn sensitive account information such as user passwords.
  • Circumvent, disable, or otherwise interfere with security-related features of the Site, including features that prevent or restrict the use or copying of any Content or enforce limitations on the use of the Site and/or the Content contained therein.
  • Disparage, tarnish, or otherwise harm, in our opinion, us and/or the Site.
  • Use any information obtained from the Site in order to harass, abuse, or harm another person.
  • Make improper use of our support services or submit false reports of abuse or misconduct.
  • Use the Site in a manner inconsistent with any applicable laws or regulations.
  • Engage in unauthorized framing of or linking to the Site.
  • Upload or transmit (or attempt to upload or to transmit) viruses, Trojan horses, or other material, including excessive use of capital letters and spamming (continuous posting of repetitive text), that interferes with any party’s uninterrupted use and enjoyment of the Site or modifies, impairs, disrupts, alters, or interferes with the use, features, functions, operation, or maintenance of the Site.
  • Engage in any automated use of the system, such as using scripts to send comments or messages, or using any data mining, robots, or similar data gathering and extraction tools.
  • Delete the copyright or other proprietary rights notice from any Content.
  • Attempt to impersonate another user or person or use the username of another user.
  • Upload or transmit (or attempt to upload or to transmit) any material that acts as a passive or active information collection or transmission mechanism, including without limitation, clear graphics interchange formats (“gifs”), 1×1 pixels, web bugs, cookies, or other similar devices (sometimes referred to as “spyware” or “passive collection mechanisms” or “pcms”).
  • Interfere with, disrupt, or create an undue burden on the Site or the networks or services connected to the Site.
  • Harass, annoy, intimidate, or threaten any of our employees or agents engaged in providing any portion of the Site to you.
  • Attempt to bypass any measures of the Site designed to prevent or restrict access to the Site, or any portion of the Site.
  • Copy or adapt the Site’s software, including but not limited to Flash, PHP, HTML, JavaScript, or other code.
  • Except as permitted by applicable law, decipher, decompile, disassemble, or reverse engineer any of the software comprising or in any way making up a part of the Site.
  • Except as may be the result of standard search engine or Internet browser usage, use, launch, develop, or distribute any automated system, including without limitation, any spider, robot, cheat utility, scraper, or offline reader that accesses the Site, or using or launching any unauthorized script or other software.
  • Use a buying agent or purchasing agent to make purchases on the Site.
  • Make any unauthorized use of the Site, including collecting usernames and/or email addresses of users by electronic or other means for the purpose of sending unsolicited email, or creating user accounts by automated means or under false pretenses.
  • Use the Site as part of any effort to compete with us or otherwise use the Site and/or the Content for any revenue-generating endeavor or commercial enterprise.
  • Use the Site to advertise or offer to sell goods and services.
  • Sell or otherwise transfer your profile.

5. USER GENERATED CONTRIBUTIONS

The Site does not offer users to submit or post content. We may provide you with the opportunity to create, submit, post, display, transmit, perform, publish, distribute, or broadcast content and materials to us or on the Site, including but not limited to text, writings, video, audio, photographs, graphics, comments, suggestions, or personal information or other material (collectively, "Contributions"). Contributions may be viewable by other users of the Site and through third-party websites. As such, any Contributions you transmit may be treated in accordance with the Site Privacy Policy. When you create or make available any Contributions, you thereby represent and warrant that:

  • The creation, distribution, transmission, public display, or performance, and the accessing, downloading, or copying of your Contributions do not and will not infringe the proprietary rights, including but not limited to the copyright, patent, trademark, trade secret, or moral rights of any third party.
  • You are the creator and owner of or have the necessary licenses, rights, consents, releases, and permissions to use and to authorize us, the Site, and other users of the Site to use your Contributions in any manner contemplated by the Site and these Terms of Use.
  • You have the written consent, release, and/or permission of each and every identifiable individual person in your Contributions to use the name or likeness of each and every such identifiable individual person to enable inclusion and use of your Contributions in any manner contemplated by the Site and these Terms of Use.
  • Your Contributions are not false, inaccurate, or misleading.
  • Your Contributions are not unsolicited or unauthorized advertising, promotional materials, pyramid schemes, chain letters, spam, mass mailings, or other forms of solicitation.
  • Your Contributions are not obscene, lewd, lascivious, filthy, violent, harassing, libelous, slanderous, or otherwise objectionable (as determined by us).
  • Your Contributions do not ridicule, mock, disparage, intimidate, or abuse anyone.
  • Your Contributions are not used to harass or threaten (in the legal sense of those terms) any other person and to promote violence against a specific person or class of people.
  • Your Contributions do not violate any applicable law, regulation, or rule.
  • Your Contributions do not violate the privacy or publicity rights of any third party.
  • Your Contributions do not violate any applicable law concerning child pornography, or otherwise intended to protect the health or well-being of minors.
  • Your Contributions do not include any offensive comments that are connected to race, national origin, gender, sexual preference, or physical handicap.
  • Your Contributions do not otherwise violate, or link to material that violates, any provision of these Terms of Use, or any applicable law or regulation.

Any use of the Site in violation of the foregoing violates these Terms of Use and may result in, among other things, termination or suspension of your rights to use the Site.

6. CONTRIBUTION LICENSE

You agree that we may access, store, process, and use any information and personal data that you provide following the terms of the Privacy Policy and your choices (including settings).

By submitting suggestions or other feedback regarding the Site, you agree that we can use and share such feedback for any purpose without compensation to you.

We do not assert any ownership over your Contributions. You retain full ownership of all of your Contributions and any intellectual property rights or other proprietary rights associated with your Contributions. We are not liable for any statements or representations in your Contributions provided by you in any area on the Site. You are solely responsible for your Contributions to the Site and you expressly agree to exonerate us from any and all responsibility and to refrain from any legal action against us regarding your Contributions.

7. MOBILE APPLICATION LICENSE

Use License

If you access the Site via a mobile application, then we grant you a revocable, non-exclusive, non-transferable, limited right to install and use the mobile application on wireless electronic devices owned or controlled by you, and to access and use the mobile application on such devices strictly in accordance with the terms and conditions of this mobile application license contained in these Terms of Use. You shall not: (1) except as permitted by applicable law, decompile, reverse engineer, disassemble, attempt to derive the source code of, or decrypt the application; (2) make any modification, adaptation, improvement, enhancement, translation, or derivative work from the application; (3) violate any applicable laws, rules, or regulations in connection with your access or use of the application; (4) remove, alter, or obscure any proprietary notice (including any notice of copyright or trademark) posted by us or the licensors of the application; (5) use the application for any revenue generating endeavor, commercial enterprise, or other purpose for which it is not designed or intended; (6) make the application available over a network or other environment permitting access or use by multiple devices or users at the same time; (7) use the application for creating a product, service, or software that is, directly or indirectly, competitive with or in any way a substitute for the application; (8) use the application to send automated queries to any website or to send any unsolicited commercial e-mail; or (9) use any proprietary information or any of our interfaces or our other intellectual property in the design, development, manufacture, licensing, or distribution of any applications, accessories, or devices for use with the application.

Apple and Android Devices

The following terms apply when you use a mobile application obtained from either the Apple Store or Google Play (each an “App Distributor”) to access the Site: (1) the license granted to you for our mobile application is limited to a non-transferable license to use the application on a device that utilizes the Apple iOS or Android operating systems, as applicable, and in accordance with the usage rules set forth in the applicable App Distributor’s terms of service; (2) we are responsible for providing any maintenance and support services with respect to the mobile application as specified in the terms and conditions of this mobile application license contained in these Terms of Use or as otherwise required under applicable law, and you acknowledge that each App Distributor has no obligation whatsoever to furnish any maintenance and support services with respect to the mobile application; (3) in the event of any failure of the mobile application to conform to any applicable warranty, you may notify the applicable App Distributor, and the App Distributor, in accordance with its terms and policies, may refund the purchase price, if any, paid for the mobile application, and to the maximum extent permitted by applicable law, the App Distributor will have no other warranty obligation whatsoever with respect to the mobile application; (4) you represent and warrant that (i) you are not located in a country that is subject to a U.S. government embargo, or that has been designated by the U.S. government as a “terrorist supporting” country and (ii) you are not listed on any U.S. government list of prohibited or restricted parties; (5) you must comply with applicable third-party terms of agreement when using the mobile application, e.g., if you have a VoIP application, then you must not be in violation of their wireless data service agreement when using the mobile application; and (6) you acknowledge and agree that the App Distributors are third-party beneficiaries of the terms and conditions in this mobile application license contained in these Terms of Use, and that each App Distributor will have the right (and will be deemed to have accepted the right) to enforce the terms and conditions in this mobile application license contained in these Terms of Use against you as a third-party beneficiary thereof.

8. SUBMISSIONS

You acknowledge and agree that any questions, comments, suggestions, ideas, feedback, or other information regarding the Site ("Submissions") provided by you to us are non-confidential and shall become our sole property. We shall own exclusive rights, including all intellectual property rights, and shall be entitled to the unrestricted use and dissemination of these Submissions for any lawful purpose, commercial or otherwise, without acknowledgment or compensation to you. You hereby waive all moral rights to any such Submissions, and you hereby warrant that any such Submissions are original with you or that you have the right to submit such Submissions. You agree there shall be no recourse against us for any alleged or actual infringement or misappropriation of any proprietary right in your Submissions.

9. THIRD-PARTY WEBSITE AND CONTENT

The Site may contain (or you may be sent via the Site) links to other websites ("Third-Party Websites") as well as articles, photographs, text, graphics, pictures, designs, music, sound, video, information, applications, software, and other content or items belonging to or originating from third parties ("Third-Party Content"). Such Third-Party Websites and Third-Party Content are not investigated, monitored, or checked for accuracy, appropriateness, or completeness by us, and we are not responsible for any Third-Party Websites accessed through the Site or any Third-Party Content posted on, available through, or installed from the Site, including the content, accuracy, offensiveness, opinions, reliability, privacy practices, or other policies of or contained in the Third-Party Websites or the Third-Party Content. Inclusion of, linking to, or permitting the use or installation of any Third-Party Websites or any Third-Party Content does not imply approval or endorsement thereof by us. If you decide to leave the Site and access the Third-Party Websites or to use or install any Third-Party Content, you do so at your own risk, and you should be aware these Terms of Use no longer govern. You should review the applicable terms and policies, including privacy and data gathering practices, of any website to which you navigate from the Site or relating to any applications you use or install from the Site. Any purchases you make through Third-Party Websites will be through other websites and from other companies, and we take no responsibility whatsoever in relation to such purchases which are exclusively between you and the applicable third party. You agree and acknowledge that we do not endorse the products or services offered on Third-Party Websites and you shall hold us harmless from any harm caused by your purchase of such products or services. Additionally, you shall hold us harmless from any losses sustained by you or harm caused to you relating to or resulting in any way from any Third-Party Content or any contact with Third-Party Websites.

10. SITE MANAGEMENT

We reserve the right, but not the obligation, to: (1) monitor the Site for violations of these Terms of Use; (2) take appropriate legal action against anyone who, in our sole discretion, violates the law or these Terms of Use, including without limitation, reporting such user to law enforcement authorities; (3) in our sole discretion and without limitation, refuse, restrict access to, limit the availability of, or disable (to the extent technologically feasible) any of your Contributions or any portion thereof; (4) in our sole discretion and without limitation, notice, or liability, to remove from the Site or otherwise disable all files and content that are excessive in size or are in any way burdensome to our systems; and (5) otherwise manage the Site in a manner designed to protect our rights and property and to facilitate the proper functioning of the Site.

11. PRIVACY POLICY

',34),O=["href","textContent"],N=n('

12. TERM AND TERMINATION

These Terms of Use shall remain in full force and effect while you use the Site. WITHOUT LIMITING ANY OTHER PROVISION OF THESE TERMS OF USE, WE RESERVE THE RIGHT TO, IN OUR SOLE DISCRETION AND WITHOUT NOTICE OR LIABILITY, DENY ACCESS TO AND USE OF THE SITE (INCLUDING BLOCKING CERTAIN IP ADDRESSES), TO ANY PERSON FOR ANY REASON OR FOR NO REASON, INCLUDING WITHOUT LIMITATION FOR BREACH OF ANY REPRESENTATION, WARRANTY, OR COVENANT CONTAINED IN THESE TERMS OF USE OR OF ANY APPLICABLE LAW OR REGULATION. WE MAY TERMINATE YOUR USE OR PARTICIPATION IN THE SITE OR DELETE ANY CONTENT OR INFORMATION THAT YOU POSTED AT ANY TIME, WITHOUT WARNING, IN OUR SOLE DISCRETION.

If we terminate or suspend your account for any reason, you are prohibited from registering and creating a new account under your name, a fake or borrowed name, or the name of any third party, even if you may be acting on behalf of the third party. In addition to terminating or suspending your account, we reserve the right to take appropriate legal action, including without limitation pursuing civil, criminal, and injunctive redress.

13. MODIFICATIONS AND INTERRUPTIONS

We reserve the right to change, modify, or remove the contents of the Site at any time or for any reason at our sole discretion without notice. However, we have no obligation to update any information on our Site. We also reserve the right to modify or discontinue all or part of the Site without notice at any time. We will not be liable to you or any third party for any modification, price change, suspension, or discontinuance of the Site.

We cannot guarantee the Site will be available at all times. We may experience hardware, software, or other problems or need to perform maintenance related to the Site, resulting in interruptions, delays, or errors. We reserve the right to change, revise, update, suspend, discontinue, or otherwise modify the Site at any time or for any reason without notice to you. You agree that we have no liability whatsoever for any loss, damage, or inconvenience caused by your inability to access or use the Site during any downtime or discontinuance of the Site. Nothing in these Terms of Use will be construed to obligate us to maintain and support the Site or to supply any corrections, updates, or releases in connection therewith.

14. GOVERNING LAW

These conditions are governed by and interpreted following the laws of Poland, and the use of the United Nations Convention of Contracts for the International Sale of Goods is expressly excluded. If your habitual residence is in the EU, and you are a consumer, you additionally possess the protection provided to you by obligatory provisions of the law of your country of residence. FRS Jakub Freisler and yourself both agree to submit to the non-exclusive jurisdiction of the courts of Krowodrza, Kraków, Poland, which means that you may make a claim to defend your consumer protection rights in regards to these Terms of Use in Poland, or in the EU country in which you reside.

15. DISPUTE RESOLUTION

Informal Negotiations

To expedite resolution and control the cost of any dispute, controversy, or claim related to these Terms of Use (each "Dispute" and collectively, the “Disputes”) brought by either you or us (individually, a “Party” and collectively, the “Parties”), the Parties agree to first attempt to negotiate any Dispute (except those Disputes expressly provided below) informally for at least thirty (30) days before initiating arbitration. Such informal negotiations commence upon written notice from one Party to the other Party.

Binding Arbitration

',12),R=n('

Any dispute arising from the relationships between the Parties to this contract shall be determined by one arbitrator who will be chosen in accordance with the Arbitration and Internal Rules of the European Court of Arbitration being part of the European Centre of Arbitration having its seat in Strasbourg, and which are in force at the time the application for arbitration is filed, and of which adoption of this clause constitutes acceptance. The seat of arbitration shall be Kraków, Poland. The language of the proceedings shall be English. Applicable rules of substantive law shall be the law of Poland.

Restrictions

The Parties agree that any arbitration shall be limited to the Dispute between the Parties individually. To the full extent permitted by law, (a) no arbitration shall be joined with any other proceeding; (b) there is no right or authority for any Dispute to be arbitrated on a class-action basis or to utilize class action procedures; and (c) there is no right or authority for any Dispute to be brought in a purported representative capacity on behalf of the general public or any other persons.

Exceptions to Informal Negotiations and Arbitration

The Parties agree that the following Disputes are not subject to the above provisions concerning informal negotiations and binding arbitration: (a) any Disputes seeking to enforce or protect, or concerning the validity of, any of the intellectual property rights of a Party; (b) any Dispute related to, or arising from, allegations of theft, piracy, invasion of privacy, or unauthorized use; and (c) any claim for injunctive relief. If this provision is found to be illegal or unenforceable, then neither Party will elect to arbitrate any Dispute falling within that portion of this provision found to be illegal or unenforceable and such Dispute shall be decided by a court of competent jurisdiction within the courts listed for jurisdiction above, and the Parties agree to submit to the personal jurisdiction of that court.

16. CORRECTIONS

There may be information on the Site that contains typographical errors, inaccuracies, or omissions, including descriptions, pricing, availability, and various other information. We reserve the right to correct any errors, inaccuracies, or omissions and to change or update the information on the Site at any time, without prior notice.

17. DISCLAIMER

THE SITE IS PROVIDED ON AN AS-IS AND AS-AVAILABLE BASIS. YOU AGREE THAT YOUR USE OF THE SITE AND OUR SERVICES WILL BE AT YOUR SOLE RISK. TO THE FULLEST EXTENT PERMITTED BY LAW, WE DISCLAIM ALL WARRANTIES, EXPRESS OR IMPLIED, IN CONNECTION WITH THE SITE AND YOUR USE THEREOF, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, AND NON-INFRINGEMENT. WE MAKE NO WARRANTIES OR REPRESENTATIONS ABOUT THE ACCURACY OR COMPLETENESS OF THE SITE’S CONTENT OR THE CONTENT OF ANY WEBSITES LINKED TO THE SITE AND WE WILL ASSUME NO LIABILITY OR RESPONSIBILITY FOR ANY (1) ERRORS, MISTAKES, OR INACCURACIES OF CONTENT AND MATERIALS, (2) PERSONAL INJURY OR PROPERTY DAMAGE, OF ANY NATURE WHATSOEVER, RESULTING FROM YOUR ACCESS TO AND USE OF THE SITE, (3) ANY UNAUTHORIZED ACCESS TO OR USE OF OUR SECURE SERVERS AND/OR ANY AND ALL PERSONAL INFORMATION AND/OR FINANCIAL INFORMATION STORED THEREIN, (4) ANY INTERRUPTION OR CESSATION OF TRANSMISSION TO OR FROM THE SITE, (5) ANY BUGS, VIRUSES, TROJAN HORSES, OR THE LIKE WHICH MAY BE TRANSMITTED TO OR THROUGH THE SITE BY ANY THIRD PARTY, AND/OR (6) ANY ERRORS OR OMISSIONS IN ANY CONTENT AND MATERIALS OR FOR ANY LOSS OR DAMAGE OF ANY KIND INCURRED AS A RESULT OF THE USE OF ANY CONTENT POSTED, TRANSMITTED, OR OTHERWISE MADE AVAILABLE VIA THE SITE. WE DO NOT WARRANT, ENDORSE, GUARANTEE, OR ASSUME RESPONSIBILITY FOR ANY PRODUCT OR SERVICE ADVERTISED OR OFFERED BY A THIRD PARTY THROUGH THE SITE, ANY HYPERLINKED WEBSITE, OR ANY WEBSITE OR MOBILE APPLICATION FEATURED IN ANY BANNER OR OTHER ADVERTISING, AND WE WILL NOT BE A PARTY TO OR IN ANY WAY BE RESPONSIBLE FOR MONITORING ANY TRANSACTION BETWEEN YOU AND ANY THIRD-PARTY PROVIDERS OF PRODUCTS OR SERVICES. AS WITH THE PURCHASE OF A PRODUCT OR SERVICE THROUGH ANY MEDIUM OR IN ANY ENVIRONMENT, YOU SHOULD USE YOUR BEST JUDGMENT AND EXERCISE CAUTION WHERE APPROPRIATE.

18. LIMITATIONS OF LIABILITY

IN NO EVENT WILL WE OR OUR DIRECTORS, EMPLOYEES, OR AGENTS BE LIABLE TO YOU OR ANY THIRD PARTY FOR ANY DIRECT, INDIRECT, CONSEQUENTIAL, EXEMPLARY, INCIDENTAL, SPECIAL, OR PUNITIVE DAMAGES, INCLUDING LOST PROFIT, LOST REVENUE, LOSS OF DATA, OR OTHER DAMAGES ARISING FROM YOUR USE OF THE SITE, EVEN IF WE HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. NOTWITHSTANDING ANYTHING TO THE CONTRARY CONTAINED HEREIN, OUR LIABILITY TO YOU FOR ANY CAUSE WHATSOEVER AND REGARDLESS OF THE FORM OF THE ACTION, WILL AT ALL TIMES BE LIMITED TO THE LESSER OF THE AMOUNT PAID, IF ANY, BY YOU TO US DURING THE three (3) MONTH PERIOD PRIOR TO ANY CAUSE OF ACTION ARISING OR $0.00 USD. CERTAIN US STATE LAWS AND INTERNATIONAL LAWS DO NOT ALLOW LIMITATIONS ON IMPLIED WARRANTIES OR THE EXCLUSION OR LIMITATION OF CERTAIN DAMAGES. IF THESE LAWS APPLY TO YOU, SOME OR ALL OF THE ABOVE DISCLAIMERS OR LIMITATIONS MAY NOT APPLY TO YOU, AND YOU MAY HAVE ADDITIONAL RIGHTS.

19. INDEMNIFICATION

You agree to defend, indemnify, and hold us harmless, including our subsidiaries, affiliates, and all of our respective officers, agents, partners, and employees, from and against any loss, damage, liability, claim, or demand, including reasonable attorneys’ fees and expenses, made by any third party due to or arising out of: (1) use of the Site; (2) breach of these Terms of Use; (3) any breach of your representations and warranties set forth in these Terms of Use; (4) your violation of the rights of a third party, including but not limited to intellectual property rights; or (5) any overt harmful act toward any other user of the Site with whom you connected via the Site. Notwithstanding the foregoing, we reserve the right, at your expense, to assume the exclusive defense and control of any matter for which you are required to indemnify us, and you agree to cooperate, at your expense, with our defense of such claims. We will use reasonable efforts to notify you of any such claim, action, or proceeding which is subject to this indemnification upon becoming aware of it.

20. USER DATA

We will maintain certain data that you transmit to the Site for the purpose of managing the performance of the Site, as well as data relating to your use of the Site. Although we perform regular routine backups of data, you are solely responsible for all data that you transmit or that relates to any activity you have undertaken using the Site. You agree that we shall have no liability to you for any loss or corruption of any such data, and you hereby waive any right of action against us arising from any such loss or corruption of such data.

21. ELECTRONIC COMMUNICATIONS, TRANSACTIONS, AND SIGNATURES

Visiting the Site, sending us emails, and completing online forms constitute electronic communications. You consent to receive electronic communications, and you agree that all agreements, notices, disclosures, and other communications we provide to you electronically, via email and on the Site, satisfy any legal requirement that such communication be in writing. YOU HEREBY AGREE TO THE USE OF ELECTRONIC SIGNATURES, CONTRACTS, ORDERS, AND OTHER RECORDS, AND TO ELECTRONIC DELIVERY OF NOTICES, POLICIES, AND RECORDS OF TRANSACTIONS INITIATED OR COMPLETED BY US OR VIA THE SITE. You hereby waive any rights or requirements under any statutes, regulations, rules, ordinances, or other laws in any jurisdiction which require an original signature or delivery or retention of non-electronic records, or to payments or the granting of credits by any means other than electronic means.

22. CALIFORNIA USERS AND RESIDENTS

If any complaint with us is not satisfactorily resolved, you can contact the Complaint Assistance Unit of the Division of Consumer Services of the California Department of Consumer Affairs in writing at 1625 North Market Blvd., Suite N 112, Sacramento, California 95834 or by telephone at (800) 952-5210 or (916) 445-1254.

23. MISCELLANEOUS

These Terms of Use and any policies or operating rules posted by us on the Site or in respect to the Site constitute the entire agreement and understanding between you and us. Our failure to exercise or enforce any right or provision of these Terms of Use shall not operate as a waiver of such right or provision. These Terms of Use operate to the fullest extent permissible by law. We may assign any or all of our rights and obligations to others at any time. We shall not be responsible or liable for any loss, damage, delay, or failure to act caused by any cause beyond our reasonable control. If any provision or part of a provision of these Terms of Use is determined to be unlawful, void, or unenforceable, that provision or part of the provision is deemed severable from these Terms of Use and does not affect the validity and enforceability of any remaining provisions. There is no joint venture, partnership, employment or agency relationship created between you and us as a result of these Terms of Use or use of the Site. You agree that these Terms of Use will not be construed against us by virtue of having drafted them. You hereby waive any and all defenses you may have based on the electronic form of these Terms of Use and the lack of signing by the parties hereto to execute these Terms of Use.

24. CONTACT US

In order to resolve a complaint regarding the Site or to receive further information regarding use of the Site, please contact us at:

FRS Jakub Freisler
ul. Królewska 92 / 8
Kraków, Małopolska 30-079
Poland
Phone: +48882568430
complaint@frsource.org
',24),c=u({__name:"terms",setup(U){return d({title:"Terms and Conditions"}),(e,D)=>(p(),y("article",{class:m(e.$style.article)},[T,i("p",null,[o(' These Terms of Use constitute a legally binding agreement made between you, whether personally or on behalf of an entity (“you”) and FRS Jakub Freisler ("'),E,o('," “'),S,o('," “'),g,o('," or “'),I,o("”), concerning your access to and use of the "),i("a",{href:`${"host"in e?e.host:t(a)}${"basePath"in e?e.basePath:t(r)}`,textContent:s(`${"host"in e?e.host:t(a)}${"basePath"in e?e.basePath:t(r)}`)},null,8,b),o(" website as well as any other media form, media channel, mobile website or mobile application related, linked, or otherwise connected thereto (collectively, the “Site”). We are registered in Poland and have our registered office at ul. Królewska 92 / 8, Kraków, Małopolska 30-079. Our VAT number is PL 6783179514. You agree that by accessing the Site, you have read, understood, and agreed to be bound by all of these Terms of Use. IF YOU DO NOT AGREE WITH ALL OF THESE TERMS OF USE, THEN YOU ARE EXPRESSLY PROHIBITED FROM USING THE SITE AND YOU MUST DISCONTINUE USE IMMEDIATELY. ")]),A,i("p",null,[o(" We care about data privacy and security. Please review our Privacy Policy: "),i("strong",null,[i("a",{href:`${"host"in e?e.host:t(a)}${"basePath"in e?e.basePath:t(r)}${"locale"in e?e.locale:t(l)}/privacy-policy`,textContent:s(`${"host"in e?e.host:t(a)}${"basePath"in e?e.basePath:t(r)}${"locale"in e?e.locale:t(l)}/privacy-policy`)},null,8,O)]),o(". By using the Site, you agree to be bound by our Privacy Policy, which is incorporated into these Terms of Use. Please be advised the Site is hosted in the United States. If you access the Site from any other region of the world with laws or other requirements governing personal data collection, use, or disclosure that differ from applicable laws in the United States, then through your continued use of the Site, you are transferring your data to the United States, and you agree to have your data transferred to and processed in the United States. ")]),N,o("     "),R],2))}}),w="f_a",v={article:w},C={$style:v};typeof h=="function"&&h(c);const Y=f(c,[["__cssModules",C]]);export{Y as default}; diff --git a/assets/useUriLocale-DXOt3j7T.js b/assets/useUriLocale-DXOt3j7T.js deleted file mode 100644 index d0d5d0d0..00000000 --- a/assets/useUriLocale-DXOt3j7T.js +++ /dev/null @@ -1 +0,0 @@ -import{G as e,i as o}from"./app-C_A3Ikqc.js";function r(){const t=e();return o(()=>t.path.split("/")[1])}export{r as u}; diff --git a/assets/useUriLocale-URN521cf.js b/assets/useUriLocale-URN521cf.js new file mode 100644 index 00000000..501cbeaf --- /dev/null +++ b/assets/useUriLocale-URN521cf.js @@ -0,0 +1 @@ +import{G as e,i as o}from"./app-DT9tPyzn.js";function r(){const t=e();return o(()=>t.path.split("/")[1])}export{r as u}; diff --git a/assets/virtual_pwa-register-CPmTglcK.js b/assets/virtual_pwa-register-Dy0udGU2.js similarity index 91% rename from assets/virtual_pwa-register-CPmTglcK.js rename to assets/virtual_pwa-register-Dy0udGU2.js index c6dc0083..4e6d66e0 100644 --- a/assets/virtual_pwa-register-CPmTglcK.js +++ b/assets/virtual_pwa-register-Dy0udGU2.js @@ -1 +1 @@ -import{_ as f}from"./app-C_A3Ikqc.js";function _(c={}){const{immediate:o=!1,onNeedRefresh:u,onOfflineReady:i,onRegistered:s,onRegisteredSW:r,onRegisterError:t}=c;let a,n;const d=async(e=!0)=>{await n};async function l(){if("serviceWorker"in navigator){if(a=await f(async()=>{const{Workbox:e}=await import("./workbox-window.prod.es5-D5gOYdM7.js");return{Workbox:e}},[]).then(({Workbox:e})=>new e("/fast-angle/sw.js",{scope:"/fast-angle/",type:"classic"})).catch(e=>{t==null||t(e)}),!a)return;a.addEventListener("activated",e=>{(e.isUpdate||e.isExternal)&&window.location.reload()}),a.addEventListener("installed",e=>{e.isUpdate||i==null||i()}),a.register({immediate:o}).then(e=>{r?r("/fast-angle/sw.js",e):s==null||s(e)}).catch(e=>{t==null||t(e)})}}return n=l(),d}export{_ as registerSW}; +import{_ as f}from"./app-DT9tPyzn.js";function _(c={}){const{immediate:o=!1,onNeedRefresh:u,onOfflineReady:i,onRegistered:s,onRegisteredSW:r,onRegisterError:t}=c;let a,n;const d=async(e=!0)=>{await n};async function l(){if("serviceWorker"in navigator){if(a=await f(async()=>{const{Workbox:e}=await import("./workbox-window.prod.es5-D5gOYdM7.js");return{Workbox:e}},[]).then(({Workbox:e})=>new e("/fast-angle/sw.js",{scope:"/fast-angle/",type:"classic"})).catch(e=>{t==null||t(e)}),!a)return;a.addEventListener("activated",e=>{(e.isUpdate||e.isExternal)&&window.location.reload()}),a.addEventListener("installed",e=>{e.isUpdate||i==null||i()}),a.register({immediate:o}).then(e=>{r?r("/fast-angle/sw.js",e):s==null||s(e)}).catch(e=>{t==null||t(e)})}}return n=l(),d}export{_ as registerSW}; diff --git a/de.html b/de.html index b1ec0524..889a39f3 100644 --- a/de.html +++ b/de.html @@ -1 +1 @@ -Fast angle

Fast Angle logo Fast angle

Einfacher Online-Winkelmesser - messen Sie jeden Winkel direkt auf Ihrem Bild!

Klicken Sie hier, um die Messung zu starten. Um das Bild zu öffnen, ziehen Sie es auf dieses Board oder verwenden Sie die Ladeschaltfläche unten. Für ein besseres Erlebnis - aktivieren Sie den Vollbildmodus, indem Sie auf die Schaltfläche in der unteren rechten Ecke klicken.
?
?
\ No newline at end of file +Fast angle

Fast Angle logo Fast angle

Einfacher Online-Winkelmesser - messen Sie jeden Winkel direkt auf Ihrem Bild!

Klicken Sie hier, um die Messung zu starten. Um das Bild zu öffnen, ziehen Sie es auf dieses Board oder verwenden Sie die Ladeschaltfläche unten. Für ein besseres Erlebnis - aktivieren Sie den Vollbildmodus, indem Sie auf die Schaltfläche in der unteren rechten Ecke klicken.
?
?
\ No newline at end of file diff --git a/de/privacy-policy.html b/de/privacy-policy.html index 621bed8f..3d693f3d 100644 --- a/de/privacy-policy.html +++ b/de/privacy-policy.html @@ -1 +1 @@ -Privacy Policy

Fast Angle logo Fast angle

Einfacher Online-Winkelmesser - messen Sie jeden Winkel direkt auf Ihrem Bild!

PRIVACY NOTICE

Last updated November 03, 2022

This privacy notice for FRS Jakub Freisler ("Company," "we," "us," or "our"), describes how and why we might collect, store, use, and/or share ("process") your information when you use our services ("Services"), such as when you:

  • Download and use our mobile application (Fast Angle), or any other application of ours that links to this privacy notice
  • Engage with us in other related ways, including any sales, marketing, or events

Questions or concerns? Reading this privacy notice will help you understand your privacy rights and choices. If you do not agree with our policies and practices, please do not use our Services. If you still have any questions or concerns, please contact us at hi@frsource.org.

SUMMARY OF KEY POINTS

This summary provides key points from our privacy notice, but you can find out more details about any of these topics by clicking the link following each key point or by using our table of contents below to find the section you are looking for. You can also click here to go directly to our table of contents.

What personal information do we process? When you visit, use, or navigate our Services, we may process personal information depending on how you interact with FRS Jakub Freisler and the Services, the choices you make, and the products and features you use. Click here to learn more.

Do we process any sensitive personal information? We do not process sensitive personal information.

Do we receive any information from third parties? We do not receive any information from third parties.

How do we process your information? We process your information to provide, improve, and administer our Services, communicate with you, for security and fraud prevention, and to comply with law. We may also process your information for other purposes with your consent. We process your information only when we have a valid legal reason to do so. Click here to learn more.

In what situations and with which parties do we share personal information? We may share information in specific situations and with specific third parties. Click here to learn more.

What are your rights? Depending on where you are located geographically, the applicable privacy law may mean you have certain rights regarding your personal information. Click here to learn more.

How do you exercise your rights? The easiest way to exercise your rights is by filling out our data subject request form available here: privacy@frsource.org, or by contacting us. We will consider and act upon any request in accordance with applicable data protection laws.

Want to learn more about what FRS Jakub Freisler does with any information we collect? Click here to review the notice in full.

TABLE OF CONTENTS

  1. WHAT INFORMATION DO WE COLLECT?
  2. HOW DO WE PROCESS YOUR INFORMATION?
  3. WHAT LEGAL BASES DO WE RELY ON TO PROCESS YOUR PERSONAL INFORMATION?
  4. WHEN AND WITH WHOM DO WE SHARE YOUR PERSONAL INFORMATION?
  5. HOW LONG DO WE KEEP YOUR INFORMATION?
  6. WHAT ARE YOUR PRIVACY RIGHTS?
  7. CONTROLS FOR DO-NOT-TRACK FEATURES
  8. DO CALIFORNIA RESIDENTS HAVE SPECIFIC PRIVACY RIGHTS?
  9. DO WE MAKE UPDATES TO THIS NOTICE?
  10. HOW CAN YOU CONTACT US ABOUT THIS NOTICE?
  11. HOW CAN YOU REVIEW, UPDATE, OR DELETE THE DATA WE COLLECT FROM YOU?

1. WHAT INFORMATION DO WE COLLECT?

Personal information you disclose to us

In Short: We collect personal information that you provide to us.

We collect personal information that you voluntarily provide to us when you express an interest in obtaining information about us or our products and Services, when you participate in activities on the Services, or otherwise when you contact us.

Sensitive Information. We do not process sensitive information.

All personal information that you provide to us must be true, complete, and accurate, and you must notify us of any changes to such personal information.

2. HOW DO WE PROCESS YOUR INFORMATION?

In Short: We process your information to provide, improve, and administer our Services, communicate with you, for security and fraud prevention, and to comply with law. We may also process your information for other purposes with your consent.

We process your personal information for a variety of reasons, depending on how you interact with our Services, including:

  • To save or protect an individual's vital interest. We may process your information when necessary to save or protect an individual’s vital interest, such as to prevent harm.

3. WHAT LEGAL BASES DO WE RELY ON TO PROCESS YOUR INFORMATION?

In Short: We only process your personal information when we believe it is necessary and we have a valid legal reason (i.e., legal basis) to do so under applicable law, like with your consent, to comply with laws, to provide you with services to enter into or fulfill our contractual obligations, to protect your rights, or to fulfill our legitimate business interests.

If you are located in the EU or UK, this section applies to you.

The General Data Protection Regulation (GDPR) and UK GDPR require us to explain the valid legal bases we rely on in order to process your personal information. As such, we may rely on the following legal bases to process your personal information:

  • Consent. We may process your information if you have given us permission (i.e., consent) to use your personal information for a specific purpose. You can withdraw your consent at any time. Click here to learn more.
  • Legal Obligations. We may process your information where we believe it is necessary for compliance with our legal obligations, such as to cooperate with a law enforcement body or regulatory agency, exercise or defend our legal rights, or disclose your information as evidence in litigation in which we are involved.
  • Vital Interests. We may process your information where we believe it is necessary to protect your vital interests or the vital interests of a third party, such as situations involving potential threats to the safety of any person.

If you are located in Canada, this section applies to you.

We may process your information if you have given us specific permission (i.e., express consent) to use your personal information for a specific purpose, or in situations where your permission can be inferred (i.e., implied consent). You can withdraw your consent at any time. Click here to learn more.

In some exceptional cases, we may be legally permitted under applicable law to process your information without your consent, including, for example:

  • If collection is clearly in the interests of an individual and consent cannot be obtained in a timely way
  • For investigations and fraud detection and prevention
  • For business transactions provided certain conditions are met
  • If it is contained in a witness statement and the collection is necessary to assess, process, or settle an insurance claim
  • For identifying injured, ill, or deceased persons and communicating with next of kin
  • If we have reasonable grounds to believe an individual has been, is, or may be victim of financial abuse
  • If it is reasonable to expect collection and use with consent would compromise the availability or the accuracy of the information and the collection is reasonable for purposes related to investigating a breach of an agreement or a contravention of the laws of Canada or a province
  • If disclosure is required to comply with a subpoena, warrant, court order, or rules of the court relating to the production of records
  • If it was produced by an individual in the course of their employment, business, or profession and the collection is consistent with the purposes for which the information was produced
  • If the collection is solely for journalistic, artistic, or literary purposes
  • If the information is publicly available and is specified by the regulations

4. WHEN AND WITH WHOM DO WE SHARE YOUR PERSONAL INFORMATION?

In Short: We may share information in specific situations described in this section and/or with the following third parties.

We may need to share your personal information in the following situations:

  • Business Transfers. We may share or transfer your information in connection with, or during negotiations of, any merger, sale of company assets, financing, or acquisition of all or a portion of our business to another company.

5. HOW LONG DO WE KEEP YOUR INFORMATION?

In Short: We keep your information for as long as necessary to fulfill the purposes outlined in this privacy notice unless otherwise required by law.

We will only keep your personal information for as long as it is necessary for the purposes set out in this privacy notice, unless a longer retention period is required or permitted by law (such as tax, accounting, or other legal requirements).

When we have no ongoing legitimate business need to process your personal information, we will either delete or anonymize such information, or, if this is not possible (for example, because your personal information has been stored in backup archives), then we will securely store your personal information and isolate it from any further processing until deletion is possible.

6. WHAT ARE YOUR PRIVACY RIGHTS?

In Short: In some regions, such as the European Economic Area (EEA), United Kingdom (UK), and Canada, you have rights that allow you greater access to and control over your personal information. You may review, change, or terminate your account at any time.

In some regions (like the EEA, UK, and Canada), you have certain rights under applicable data protection laws. These may include the right (i) to request access and obtain a copy of your personal information, (ii) to request rectification or erasure; (iii) to restrict the processing of your personal information; and (iv) if applicable, to data portability. In certain circumstances, you may also have the right to object to the processing of your personal information. You can make such a request by contacting us by using the contact details provided in the section "HOW CAN YOU CONTACT US ABOUT THIS NOTICE?" below.

We will consider and act upon any request in accordance with applicable data protection laws.

 

If you are located in the EEA or UK and you believe we are unlawfully processing your personal information, you also have the right to complain to your local data protection supervisory authority. You can find their contact details here: https://ec.europa.eu/justice/data-protection/bodies/authorities/index_en.htm.

If you are located in Switzerland, the contact details for the data protection authorities are available here: https://www.edoeb.admin.ch/edoeb/en/home.html.

Withdrawing your consent: If we are relying on your consent to process your personal information, which may be express and/or implied consent depending on the applicable law, you have the right to withdraw your consent at any time. You can withdraw your consent at any time by contacting us by using the contact details provided in the section "HOW CAN YOU CONTACT US ABOUT THIS NOTICE?" below.

However, please note that this will not affect the lawfulness of the processing before its withdrawal nor, when applicable law allows, will it affect the processing of your personal information conducted in reliance on lawful processing grounds other than consent.

If you have questions or comments about your privacy rights, you may email us at privacy@frsource.org.

7. CONTROLS FOR DO-NOT-TRACK FEATURES

Most web browsers and some mobile operating systems and mobile applications include a Do-Not-Track ("DNT") feature or setting you can activate to signal your privacy preference not to have data about your online browsing activities monitored and collected. At this stage no uniform technology standard for recognizing and implementing DNT signals has been finalized. As such, we do not currently respond to DNT browser signals or any other mechanism that automatically communicates your choice not to be tracked online. If a standard for online tracking is adopted that we must follow in the future, we will inform you about that practice in a revised version of this privacy notice.

8. DO CALIFORNIA RESIDENTS HAVE SPECIFIC PRIVACY RIGHTS?

In Short: Yes, if you are a resident of California, you are granted specific rights regarding access to your personal information.

California Civil Code Section 1798.83, also known as the "Shine The Light" law, permits our users who are California residents to request and obtain from us, once a year and free of charge, information about categories of personal information (if any) we disclosed to third parties for direct marketing purposes and the names and addresses of all third parties with which we shared personal information in the immediately preceding calendar year. If you are a California resident and would like to make such a request, please submit your request in writing to us using the contact information provided below.

If you are under 18 years of age, reside in California, and have a registered account with Services, you have the right to request removal of unwanted data that you publicly post on the Services. To request removal of such data, please contact us using the contact information provided below and include the email address associated with your account and a statement that you reside in California. We will make sure the data is not publicly displayed on the Services, but please be aware that the data may not be completely or comprehensively removed from all our systems (e.g., backups, etc.).

CCPA Privacy Notice

The California Code of Regulations defines a "resident" as:

(1) every individual who is in the State of California for other than a temporary or transitory purpose and

(2) every individual who is domiciled in the State of California who is outside the State of California for a temporary or transitory purpose

All other individuals are defined as "non-residents."

If this definition of "resident" applies to you, we must adhere to certain rights and obligations regarding your personal information.

What categories of personal information do we collect?

We have collected the following categories of personal information in the past twelve (12) months:

CategoryExamplesCollected

A. Identifiers

Contact details, such as real name, alias, postal address, telephone or mobile contact number, unique personal identifier, online identifier, Internet Protocol address, email address, and account name

NO

B. Personal information categories listed in the California Customer Records statute

Name, contact information, education, employment, employment history, and financial information

NO

C. Protected classification characteristics under California or federal law

Gender and date of birth

NO

D. Commercial information

Transaction information, purchase history, financial details, and payment information

NO

E. Biometric information

Fingerprints and voiceprints

NO

F. Internet or other similar network activity

Browsing history, search history, online behavior, interest data, and interactions with our and other websites, applications, systems, and advertisements

NO

G. Geolocation data

Device location

NO

H. Audio, electronic, visual, thermal, olfactory, or similar information

Images and audio, video or call recordings created in connection with our business activities

NO

I. Professional or employment-related information

Business contact details in order to provide you our Services at a business level or job title, work history, and professional qualifications if you apply for a job with us

NO

J. Education Information

Student records and directory information

NO

K. Inferences drawn from other personal information

Inferences drawn from any of the collected personal information listed above to create a profile or summary about, for example, an individual’s preferences and characteristics

NO

We may also collect other personal information outside of these categories through instances where you interact with us in person, online, or by phone or mail in the context of:

  • Receiving help through our customer support channels;
  • Participation in customer surveys or contests; and
  • Facilitation in the delivery of our Services and to respond to your inquiries.

How do we use and share your personal information?

More information about our data collection and sharing practices can be found in this privacy notice.

You may contact us by email at ccpa@frsource.org, or by referring to the contact details at the bottom of this document.

If you are using an authorized agent to exercise your right to opt out we may deny a request if the authorized agent does not submit proof that they have been validly authorized to act on your behalf.

Will your information be shared with anyone else?

We may disclose your personal information with our service providers pursuant to a written contract between us and each service provider. Each service provider is a for-profit entity that processes the information on our behalf.

We may use your personal information for our own business purposes, such as for undertaking internal research for technological development and demonstration. This is not considered to be "selling" of your personal information.

FRS Jakub Freisler has not disclosed or sold any personal information to third parties for a business or commercial purpose in the preceding twelve (12) months. FRS Jakub Freisler will not sell personal information in the future belonging to website visitors, users, and other consumers.

Your rights with respect to your personal data

Right to request deletion of the data — Request to delete

You can ask for the deletion of your personal information. If you ask us to delete your personal information, we will respect your request and delete your personal information, subject to certain exceptions provided by law, such as (but not limited to) the exercise by another consumer of his or her right to free speech, our compliance requirements resulting from a legal obligation, or any processing that may be required to protect against illegal activities.

Right to be informed — Request to know

Depending on the circumstances, you have a right to know:

  • whether we collect and use your personal information;
  • the categories of personal information that we collect;
  • the purposes for which the collected personal information is used;
  • whether we sell your personal information to third parties;
  • the categories of personal information that we sold or disclosed for a business purpose;
  • the categories of third parties to whom the personal information was sold or disclosed for a business purpose; and
  • the business or commercial purpose for collecting or selling personal information.

In accordance with applicable law, we are not obligated to provide or delete consumer information that is de-identified in response to a consumer request or to re-identify individual data to verify a consumer request.

Right to Non-Discrimination for the Exercise of a Consumer’s Privacy Rights

We will not discriminate against you if you exercise your privacy rights.

Verification process

Upon receiving your request, we will need to verify your identity to determine you are the same person about whom we have the information in our system. These verification efforts require us to ask you to provide information so that we can match it with information you have previously provided us. For instance, depending on the type of request you submit, we may ask you to provide certain information so that we can match the information you provide with the information we already have on file, or we may contact you through a communication method (e.g., phone or email) that you have previously provided to us. We may also use other verification methods as the circumstances dictate.

We will only use personal information provided in your request to verify your identity or authority to make the request. To the extent possible, we will avoid requesting additional information from you for the purposes of verification. However, if we cannot verify your identity from the information already maintained by us, we may request that you provide additional information for the purposes of verifying your identity and for security or fraud-prevention purposes. We will delete such additionally provided information as soon as we finish verifying you.

Other privacy rights

  • You may object to the processing of your personal information.
  • You may request correction of your personal data if it is incorrect or no longer relevant, or ask to restrict the processing of the information.
  • You can designate an authorized agent to make a request under the CCPA on your behalf. We may deny a request from an authorized agent that does not submit proof that they have been validly authorized to act on your behalf in accordance with the CCPA.
  • You may request to opt out from future selling of your personal information to third parties. Upon receiving an opt-out request, we will act upon the request as soon as feasibly possible, but no later than fifteen (15) days from the date of the request submission.

To exercise these rights, you can contact us by email at ccpa@frsource.org, or by referring to the contact details at the bottom of this document. If you have a complaint about how we handle your data, we would like to hear from you.

9. DO WE MAKE UPDATES TO THIS NOTICE?

In Short: Yes, we will update this notice as necessary to stay compliant with relevant laws.

We may update this privacy notice from time to time. The updated version will be indicated by an updated "Revised" date and the updated version will be effective as soon as it is accessible. If we make material changes to this privacy notice, we may notify you either by prominently posting a notice of such changes or by directly sending you a notification. We encourage you to review this privacy notice frequently to be informed of how we are protecting your information.

10. HOW CAN YOU CONTACT US ABOUT THIS NOTICE?

If you have questions or comments about this notice, you may email us at privacy@frsource.org or by post to:

FRS Jakub Freisler
ul. Królewska 92 / 8
Kraków, Małopolska 30-079
Poland

11. HOW CAN YOU REVIEW, UPDATE, OR DELETE THE DATA WE COLLECT FROM YOU?

Based on the applicable laws of your country, you may have the right to request access to the personal information we collect from you, change that information, or delete it. To request to review, update, or delete your personal information, please email us at: privacy@frsource.org.

\ No newline at end of file +Privacy Policy

Fast Angle logo Fast angle

Einfacher Online-Winkelmesser - messen Sie jeden Winkel direkt auf Ihrem Bild!

PRIVACY NOTICE

Last updated November 03, 2022

This privacy notice for FRS Jakub Freisler ("Company," "we," "us," or "our"), describes how and why we might collect, store, use, and/or share ("process") your information when you use our services ("Services"), such as when you:

  • Download and use our mobile application (Fast Angle), or any other application of ours that links to this privacy notice
  • Engage with us in other related ways, including any sales, marketing, or events

Questions or concerns? Reading this privacy notice will help you understand your privacy rights and choices. If you do not agree with our policies and practices, please do not use our Services. If you still have any questions or concerns, please contact us at hi@frsource.org.

SUMMARY OF KEY POINTS

This summary provides key points from our privacy notice, but you can find out more details about any of these topics by clicking the link following each key point or by using our table of contents below to find the section you are looking for. You can also click here to go directly to our table of contents.

What personal information do we process? When you visit, use, or navigate our Services, we may process personal information depending on how you interact with FRS Jakub Freisler and the Services, the choices you make, and the products and features you use. Click here to learn more.

Do we process any sensitive personal information? We do not process sensitive personal information.

Do we receive any information from third parties? We do not receive any information from third parties.

How do we process your information? We process your information to provide, improve, and administer our Services, communicate with you, for security and fraud prevention, and to comply with law. We may also process your information for other purposes with your consent. We process your information only when we have a valid legal reason to do so. Click here to learn more.

In what situations and with which parties do we share personal information? We may share information in specific situations and with specific third parties. Click here to learn more.

What are your rights? Depending on where you are located geographically, the applicable privacy law may mean you have certain rights regarding your personal information. Click here to learn more.

How do you exercise your rights? The easiest way to exercise your rights is by filling out our data subject request form available here: privacy@frsource.org, or by contacting us. We will consider and act upon any request in accordance with applicable data protection laws.

Want to learn more about what FRS Jakub Freisler does with any information we collect? Click here to review the notice in full.

TABLE OF CONTENTS

  1. WHAT INFORMATION DO WE COLLECT?
  2. HOW DO WE PROCESS YOUR INFORMATION?
  3. WHAT LEGAL BASES DO WE RELY ON TO PROCESS YOUR PERSONAL INFORMATION?
  4. WHEN AND WITH WHOM DO WE SHARE YOUR PERSONAL INFORMATION?
  5. HOW LONG DO WE KEEP YOUR INFORMATION?
  6. WHAT ARE YOUR PRIVACY RIGHTS?
  7. CONTROLS FOR DO-NOT-TRACK FEATURES
  8. DO CALIFORNIA RESIDENTS HAVE SPECIFIC PRIVACY RIGHTS?
  9. DO WE MAKE UPDATES TO THIS NOTICE?
  10. HOW CAN YOU CONTACT US ABOUT THIS NOTICE?
  11. HOW CAN YOU REVIEW, UPDATE, OR DELETE THE DATA WE COLLECT FROM YOU?

1. WHAT INFORMATION DO WE COLLECT?

Personal information you disclose to us

In Short: We collect personal information that you provide to us.

We collect personal information that you voluntarily provide to us when you express an interest in obtaining information about us or our products and Services, when you participate in activities on the Services, or otherwise when you contact us.

Sensitive Information. We do not process sensitive information.

All personal information that you provide to us must be true, complete, and accurate, and you must notify us of any changes to such personal information.

2. HOW DO WE PROCESS YOUR INFORMATION?

In Short: We process your information to provide, improve, and administer our Services, communicate with you, for security and fraud prevention, and to comply with law. We may also process your information for other purposes with your consent.

We process your personal information for a variety of reasons, depending on how you interact with our Services, including:

  • To save or protect an individual's vital interest. We may process your information when necessary to save or protect an individual’s vital interest, such as to prevent harm.

3. WHAT LEGAL BASES DO WE RELY ON TO PROCESS YOUR INFORMATION?

In Short: We only process your personal information when we believe it is necessary and we have a valid legal reason (i.e., legal basis) to do so under applicable law, like with your consent, to comply with laws, to provide you with services to enter into or fulfill our contractual obligations, to protect your rights, or to fulfill our legitimate business interests.

If you are located in the EU or UK, this section applies to you.

The General Data Protection Regulation (GDPR) and UK GDPR require us to explain the valid legal bases we rely on in order to process your personal information. As such, we may rely on the following legal bases to process your personal information:

  • Consent. We may process your information if you have given us permission (i.e., consent) to use your personal information for a specific purpose. You can withdraw your consent at any time. Click here to learn more.
  • Legal Obligations. We may process your information where we believe it is necessary for compliance with our legal obligations, such as to cooperate with a law enforcement body or regulatory agency, exercise or defend our legal rights, or disclose your information as evidence in litigation in which we are involved.
  • Vital Interests. We may process your information where we believe it is necessary to protect your vital interests or the vital interests of a third party, such as situations involving potential threats to the safety of any person.

If you are located in Canada, this section applies to you.

We may process your information if you have given us specific permission (i.e., express consent) to use your personal information for a specific purpose, or in situations where your permission can be inferred (i.e., implied consent). You can withdraw your consent at any time. Click here to learn more.

In some exceptional cases, we may be legally permitted under applicable law to process your information without your consent, including, for example:

  • If collection is clearly in the interests of an individual and consent cannot be obtained in a timely way
  • For investigations and fraud detection and prevention
  • For business transactions provided certain conditions are met
  • If it is contained in a witness statement and the collection is necessary to assess, process, or settle an insurance claim
  • For identifying injured, ill, or deceased persons and communicating with next of kin
  • If we have reasonable grounds to believe an individual has been, is, or may be victim of financial abuse
  • If it is reasonable to expect collection and use with consent would compromise the availability or the accuracy of the information and the collection is reasonable for purposes related to investigating a breach of an agreement or a contravention of the laws of Canada or a province
  • If disclosure is required to comply with a subpoena, warrant, court order, or rules of the court relating to the production of records
  • If it was produced by an individual in the course of their employment, business, or profession and the collection is consistent with the purposes for which the information was produced
  • If the collection is solely for journalistic, artistic, or literary purposes
  • If the information is publicly available and is specified by the regulations

4. WHEN AND WITH WHOM DO WE SHARE YOUR PERSONAL INFORMATION?

In Short: We may share information in specific situations described in this section and/or with the following third parties.

We may need to share your personal information in the following situations:

  • Business Transfers. We may share or transfer your information in connection with, or during negotiations of, any merger, sale of company assets, financing, or acquisition of all or a portion of our business to another company.

5. HOW LONG DO WE KEEP YOUR INFORMATION?

In Short: We keep your information for as long as necessary to fulfill the purposes outlined in this privacy notice unless otherwise required by law.

We will only keep your personal information for as long as it is necessary for the purposes set out in this privacy notice, unless a longer retention period is required or permitted by law (such as tax, accounting, or other legal requirements).

When we have no ongoing legitimate business need to process your personal information, we will either delete or anonymize such information, or, if this is not possible (for example, because your personal information has been stored in backup archives), then we will securely store your personal information and isolate it from any further processing until deletion is possible.

6. WHAT ARE YOUR PRIVACY RIGHTS?

In Short: In some regions, such as the European Economic Area (EEA), United Kingdom (UK), and Canada, you have rights that allow you greater access to and control over your personal information. You may review, change, or terminate your account at any time.

In some regions (like the EEA, UK, and Canada), you have certain rights under applicable data protection laws. These may include the right (i) to request access and obtain a copy of your personal information, (ii) to request rectification or erasure; (iii) to restrict the processing of your personal information; and (iv) if applicable, to data portability. In certain circumstances, you may also have the right to object to the processing of your personal information. You can make such a request by contacting us by using the contact details provided in the section "HOW CAN YOU CONTACT US ABOUT THIS NOTICE?" below.

We will consider and act upon any request in accordance with applicable data protection laws.

 

If you are located in the EEA or UK and you believe we are unlawfully processing your personal information, you also have the right to complain to your local data protection supervisory authority. You can find their contact details here: https://ec.europa.eu/justice/data-protection/bodies/authorities/index_en.htm.

If you are located in Switzerland, the contact details for the data protection authorities are available here: https://www.edoeb.admin.ch/edoeb/en/home.html.

Withdrawing your consent: If we are relying on your consent to process your personal information, which may be express and/or implied consent depending on the applicable law, you have the right to withdraw your consent at any time. You can withdraw your consent at any time by contacting us by using the contact details provided in the section "HOW CAN YOU CONTACT US ABOUT THIS NOTICE?" below.

However, please note that this will not affect the lawfulness of the processing before its withdrawal nor, when applicable law allows, will it affect the processing of your personal information conducted in reliance on lawful processing grounds other than consent.

If you have questions or comments about your privacy rights, you may email us at privacy@frsource.org.

7. CONTROLS FOR DO-NOT-TRACK FEATURES

Most web browsers and some mobile operating systems and mobile applications include a Do-Not-Track ("DNT") feature or setting you can activate to signal your privacy preference not to have data about your online browsing activities monitored and collected. At this stage no uniform technology standard for recognizing and implementing DNT signals has been finalized. As such, we do not currently respond to DNT browser signals or any other mechanism that automatically communicates your choice not to be tracked online. If a standard for online tracking is adopted that we must follow in the future, we will inform you about that practice in a revised version of this privacy notice.

8. DO CALIFORNIA RESIDENTS HAVE SPECIFIC PRIVACY RIGHTS?

In Short: Yes, if you are a resident of California, you are granted specific rights regarding access to your personal information.

California Civil Code Section 1798.83, also known as the "Shine The Light" law, permits our users who are California residents to request and obtain from us, once a year and free of charge, information about categories of personal information (if any) we disclosed to third parties for direct marketing purposes and the names and addresses of all third parties with which we shared personal information in the immediately preceding calendar year. If you are a California resident and would like to make such a request, please submit your request in writing to us using the contact information provided below.

If you are under 18 years of age, reside in California, and have a registered account with Services, you have the right to request removal of unwanted data that you publicly post on the Services. To request removal of such data, please contact us using the contact information provided below and include the email address associated with your account and a statement that you reside in California. We will make sure the data is not publicly displayed on the Services, but please be aware that the data may not be completely or comprehensively removed from all our systems (e.g., backups, etc.).

CCPA Privacy Notice

The California Code of Regulations defines a "resident" as:

(1) every individual who is in the State of California for other than a temporary or transitory purpose and

(2) every individual who is domiciled in the State of California who is outside the State of California for a temporary or transitory purpose

All other individuals are defined as "non-residents."

If this definition of "resident" applies to you, we must adhere to certain rights and obligations regarding your personal information.

What categories of personal information do we collect?

We have collected the following categories of personal information in the past twelve (12) months:

CategoryExamplesCollected

A. Identifiers

Contact details, such as real name, alias, postal address, telephone or mobile contact number, unique personal identifier, online identifier, Internet Protocol address, email address, and account name

NO

B. Personal information categories listed in the California Customer Records statute

Name, contact information, education, employment, employment history, and financial information

NO

C. Protected classification characteristics under California or federal law

Gender and date of birth

NO

D. Commercial information

Transaction information, purchase history, financial details, and payment information

NO

E. Biometric information

Fingerprints and voiceprints

NO

F. Internet or other similar network activity

Browsing history, search history, online behavior, interest data, and interactions with our and other websites, applications, systems, and advertisements

NO

G. Geolocation data

Device location

NO

H. Audio, electronic, visual, thermal, olfactory, or similar information

Images and audio, video or call recordings created in connection with our business activities

NO

I. Professional or employment-related information

Business contact details in order to provide you our Services at a business level or job title, work history, and professional qualifications if you apply for a job with us

NO

J. Education Information

Student records and directory information

NO

K. Inferences drawn from other personal information

Inferences drawn from any of the collected personal information listed above to create a profile or summary about, for example, an individual’s preferences and characteristics

NO

We may also collect other personal information outside of these categories through instances where you interact with us in person, online, or by phone or mail in the context of:

  • Receiving help through our customer support channels;
  • Participation in customer surveys or contests; and
  • Facilitation in the delivery of our Services and to respond to your inquiries.

How do we use and share your personal information?

More information about our data collection and sharing practices can be found in this privacy notice.

You may contact us by email at ccpa@frsource.org, or by referring to the contact details at the bottom of this document.

If you are using an authorized agent to exercise your right to opt out we may deny a request if the authorized agent does not submit proof that they have been validly authorized to act on your behalf.

Will your information be shared with anyone else?

We may disclose your personal information with our service providers pursuant to a written contract between us and each service provider. Each service provider is a for-profit entity that processes the information on our behalf.

We may use your personal information for our own business purposes, such as for undertaking internal research for technological development and demonstration. This is not considered to be "selling" of your personal information.

FRS Jakub Freisler has not disclosed or sold any personal information to third parties for a business or commercial purpose in the preceding twelve (12) months. FRS Jakub Freisler will not sell personal information in the future belonging to website visitors, users, and other consumers.

Your rights with respect to your personal data

Right to request deletion of the data — Request to delete

You can ask for the deletion of your personal information. If you ask us to delete your personal information, we will respect your request and delete your personal information, subject to certain exceptions provided by law, such as (but not limited to) the exercise by another consumer of his or her right to free speech, our compliance requirements resulting from a legal obligation, or any processing that may be required to protect against illegal activities.

Right to be informed — Request to know

Depending on the circumstances, you have a right to know:

  • whether we collect and use your personal information;
  • the categories of personal information that we collect;
  • the purposes for which the collected personal information is used;
  • whether we sell your personal information to third parties;
  • the categories of personal information that we sold or disclosed for a business purpose;
  • the categories of third parties to whom the personal information was sold or disclosed for a business purpose; and
  • the business or commercial purpose for collecting or selling personal information.

In accordance with applicable law, we are not obligated to provide or delete consumer information that is de-identified in response to a consumer request or to re-identify individual data to verify a consumer request.

Right to Non-Discrimination for the Exercise of a Consumer’s Privacy Rights

We will not discriminate against you if you exercise your privacy rights.

Verification process

Upon receiving your request, we will need to verify your identity to determine you are the same person about whom we have the information in our system. These verification efforts require us to ask you to provide information so that we can match it with information you have previously provided us. For instance, depending on the type of request you submit, we may ask you to provide certain information so that we can match the information you provide with the information we already have on file, or we may contact you through a communication method (e.g., phone or email) that you have previously provided to us. We may also use other verification methods as the circumstances dictate.

We will only use personal information provided in your request to verify your identity or authority to make the request. To the extent possible, we will avoid requesting additional information from you for the purposes of verification. However, if we cannot verify your identity from the information already maintained by us, we may request that you provide additional information for the purposes of verifying your identity and for security or fraud-prevention purposes. We will delete such additionally provided information as soon as we finish verifying you.

Other privacy rights

  • You may object to the processing of your personal information.
  • You may request correction of your personal data if it is incorrect or no longer relevant, or ask to restrict the processing of the information.
  • You can designate an authorized agent to make a request under the CCPA on your behalf. We may deny a request from an authorized agent that does not submit proof that they have been validly authorized to act on your behalf in accordance with the CCPA.
  • You may request to opt out from future selling of your personal information to third parties. Upon receiving an opt-out request, we will act upon the request as soon as feasibly possible, but no later than fifteen (15) days from the date of the request submission.

To exercise these rights, you can contact us by email at ccpa@frsource.org, or by referring to the contact details at the bottom of this document. If you have a complaint about how we handle your data, we would like to hear from you.

9. DO WE MAKE UPDATES TO THIS NOTICE?

In Short: Yes, we will update this notice as necessary to stay compliant with relevant laws.

We may update this privacy notice from time to time. The updated version will be indicated by an updated "Revised" date and the updated version will be effective as soon as it is accessible. If we make material changes to this privacy notice, we may notify you either by prominently posting a notice of such changes or by directly sending you a notification. We encourage you to review this privacy notice frequently to be informed of how we are protecting your information.

10. HOW CAN YOU CONTACT US ABOUT THIS NOTICE?

If you have questions or comments about this notice, you may email us at privacy@frsource.org or by post to:

FRS Jakub Freisler
ul. Królewska 92 / 8
Kraków, Małopolska 30-079
Poland

11. HOW CAN YOU REVIEW, UPDATE, OR DELETE THE DATA WE COLLECT FROM YOU?

Based on the applicable laws of your country, you may have the right to request access to the personal information we collect from you, change that information, or delete it. To request to review, update, or delete your personal information, please email us at: privacy@frsource.org.

\ No newline at end of file diff --git a/de/terms.html b/de/terms.html index 536842f1..e2ced821 100644 --- a/de/terms.html +++ b/de/terms.html @@ -1 +1 @@ -Terms and Conditions

Fast Angle logo Fast angle

Einfacher Online-Winkelmesser - messen Sie jeden Winkel direkt auf Ihrem Bild!

Terms and Conditions

Last updated November 03, 2022

TABLE OF CONTENTS

  1. AGREEMENT TO TERMS
  2. INTELLECTUAL PROPERTY RIGHTS
  3. USER REPRESENTATIONS
  4. PROHIBITED ACTIVITIES
  5. USER GENERATED CONTRIBUTIONS
  6. CONTRIBUTION LICENSE
  7. MOBILE APPLICATION LICENSE
  8. SUBMISSIONS
  9. THIRD-PARTY WEBSITE AND CONTENT
  10. SITE MANAGEMENT
  11. PRIVACY POLICY
  12. TERM AND TERMINATION
  13. MODIFICATIONS AND INTERRUPTIONS
  14. GOVERNING LAW
  15. DISPUTE RESOLUTION
  16. CORRECTIONS
  17. DISCLAIMER
  18. LIMITATIONS OF LIABILITY
  19. INDEMNIFICATION
  20. USER DATA
  21. ELECTRONIC COMMUNICATIONS, TRANSACTIONS, AND SIGNATURES
  22. CALIFORNIA USERS AND RESIDENTS
  23. MISCELLANEOUS
  24. CONTACT US

1. AGREEMENT TO TERMS

These Terms of Use constitute a legally binding agreement made between you, whether personally or on behalf of an entity (“you”) and FRS Jakub Freisler ("Company," “we," “us," or “our”), concerning your access to and use of the https://www.frsource.org/fast-angle/ website as well as any other media form, media channel, mobile website or mobile application related, linked, or otherwise connected thereto (collectively, the “Site”). We are registered in Poland and have our registered office at ul. Królewska 92 / 8, Kraków, Małopolska 30-079. Our VAT number is PL 6783179514. You agree that by accessing the Site, you have read, understood, and agreed to be bound by all of these Terms of Use. IF YOU DO NOT AGREE WITH ALL OF THESE TERMS OF USE, THEN YOU ARE EXPRESSLY PROHIBITED FROM USING THE SITE AND YOU MUST DISCONTINUE USE IMMEDIATELY.

Supplemental terms and conditions or documents that may be posted on the Site from time to time are hereby expressly incorporated herein by reference. We reserve the right, in our sole discretion, to make changes or modifications to these Terms of Use from time to time. We will alert you about any changes by updating the “Last updated” date of these Terms of Use, and you waive any right to receive specific notice of each such change. Please ensure that you check the applicable Terms every time you use our Site so that you understand which Terms apply. You will be subject to, and will be deemed to have been made aware of and to have accepted, the changes in any revised Terms of Use by your continued use of the Site after the date such revised Terms of Use are posted.

The information provided on the Site is not intended for distribution to or use by any person or entity in any jurisdiction or country where such distribution or use would be contrary to law or regulation or which would subject us to any registration requirement within such jurisdiction or country. Accordingly, those persons who choose to access the Site from other locations do so on their own initiative and are solely responsible for compliance with local laws, if and to the extent local laws are applicable.

The Site is not tailored to comply with industry-specific regulations (Health Insurance Portability and Accountability Act (HIPAA), Federal Information Security Management Act (FISMA), etc.), so if your interactions would be subjected to such laws, you may not use this Site. You may not use the Site in a way that would violate the Gramm-Leach-Bliley Act (GLBA).

All users who are minors in the jurisdiction in which they reside (generally under the age of 18) must have the permission of, and be directly supervised by, their parent or guardian to use the Site. If you are a minor, you must have your parent or guardian read and agree to these Terms of Use prior to you using the Site.

2. INTELLECTUAL PROPERTY RIGHTS

Unless otherwise indicated, the Site is our proprietary property and all source code, databases, functionality, software, website designs, audio, video, text, photographs, and graphics on the Site (collectively, the “Content”) and the trademarks, service marks, and logos contained therein (the “Marks”) are owned or controlled by us or licensed to us, and are protected by copyright and trademark laws and various other intellectual property rights and unfair competition laws of the United States, international copyright laws, and international conventions. The Content and the Marks are provided on the Site “AS IS” for your information and personal use only. Except as expressly provided in these Terms of Use, no part of the Site and no Content or Marks may be copied, reproduced, aggregated, republished, uploaded, posted, publicly displayed, encoded, translated, transmitted, distributed, sold, licensed, or otherwise exploited for any commercial purpose whatsoever, without our express prior written permission.

Provided that you are eligible to use the Site, you are granted a limited license to access and use the Site and to download or print a copy of any portion of the Content to which you have properly gained access solely for your personal, non-commercial use. We reserve all rights not expressly granted to you in and to the Site, the Content and the Marks.

3. USER REPRESENTATIONS

By using the Site, you represent and warrant that: (1) you have the legal capacity and you agree to comply with these Terms of Use; (2) you are not a minor in the jurisdiction in which you reside, or if a minor, you have received parental permission to use the Site; (3) you will not access the Site through automated or non-human means, whether through a bot, script, or otherwise; (4) you will not use the Site for any illegal or unauthorized purpose; and (5) your use of the Site will not violate any applicable law or regulation.

If you provide any information that is untrue, inaccurate, not current, or incomplete, we have the right to suspend or terminate your account and refuse any and all current or future use of the Site (or any portion thereof).

4. PROHIBITED ACTIVITIES

You may not access or use the Site for any purpose other than that for which we make the Site available. The Site may not be used in connection with any commercial endeavors except those that are specifically endorsed or approved by us.

As a user of the Site, you agree not to:

  • Systematically retrieve data or other content from the Site to create or compile, directly or indirectly, a collection, compilation, database, or directory without written permission from us.
  • Trick, defraud, or mislead us and other users, especially in any attempt to learn sensitive account information such as user passwords.
  • Circumvent, disable, or otherwise interfere with security-related features of the Site, including features that prevent or restrict the use or copying of any Content or enforce limitations on the use of the Site and/or the Content contained therein.
  • Disparage, tarnish, or otherwise harm, in our opinion, us and/or the Site.
  • Use any information obtained from the Site in order to harass, abuse, or harm another person.
  • Make improper use of our support services or submit false reports of abuse or misconduct.
  • Use the Site in a manner inconsistent with any applicable laws or regulations.
  • Engage in unauthorized framing of or linking to the Site.
  • Upload or transmit (or attempt to upload or to transmit) viruses, Trojan horses, or other material, including excessive use of capital letters and spamming (continuous posting of repetitive text), that interferes with any party’s uninterrupted use and enjoyment of the Site or modifies, impairs, disrupts, alters, or interferes with the use, features, functions, operation, or maintenance of the Site.
  • Engage in any automated use of the system, such as using scripts to send comments or messages, or using any data mining, robots, or similar data gathering and extraction tools.
  • Delete the copyright or other proprietary rights notice from any Content.
  • Attempt to impersonate another user or person or use the username of another user.
  • Upload or transmit (or attempt to upload or to transmit) any material that acts as a passive or active information collection or transmission mechanism, including without limitation, clear graphics interchange formats (“gifs”), 1×1 pixels, web bugs, cookies, or other similar devices (sometimes referred to as “spyware” or “passive collection mechanisms” or “pcms”).
  • Interfere with, disrupt, or create an undue burden on the Site or the networks or services connected to the Site.
  • Harass, annoy, intimidate, or threaten any of our employees or agents engaged in providing any portion of the Site to you.
  • Attempt to bypass any measures of the Site designed to prevent or restrict access to the Site, or any portion of the Site.
  • Copy or adapt the Site’s software, including but not limited to Flash, PHP, HTML, JavaScript, or other code.
  • Except as permitted by applicable law, decipher, decompile, disassemble, or reverse engineer any of the software comprising or in any way making up a part of the Site.
  • Except as may be the result of standard search engine or Internet browser usage, use, launch, develop, or distribute any automated system, including without limitation, any spider, robot, cheat utility, scraper, or offline reader that accesses the Site, or using or launching any unauthorized script or other software.
  • Use a buying agent or purchasing agent to make purchases on the Site.
  • Make any unauthorized use of the Site, including collecting usernames and/or email addresses of users by electronic or other means for the purpose of sending unsolicited email, or creating user accounts by automated means or under false pretenses.
  • Use the Site as part of any effort to compete with us or otherwise use the Site and/or the Content for any revenue-generating endeavor or commercial enterprise.
  • Use the Site to advertise or offer to sell goods and services.
  • Sell or otherwise transfer your profile.

5. USER GENERATED CONTRIBUTIONS

The Site does not offer users to submit or post content. We may provide you with the opportunity to create, submit, post, display, transmit, perform, publish, distribute, or broadcast content and materials to us or on the Site, including but not limited to text, writings, video, audio, photographs, graphics, comments, suggestions, or personal information or other material (collectively, "Contributions"). Contributions may be viewable by other users of the Site and through third-party websites. As such, any Contributions you transmit may be treated in accordance with the Site Privacy Policy. When you create or make available any Contributions, you thereby represent and warrant that:

  • The creation, distribution, transmission, public display, or performance, and the accessing, downloading, or copying of your Contributions do not and will not infringe the proprietary rights, including but not limited to the copyright, patent, trademark, trade secret, or moral rights of any third party.
  • You are the creator and owner of or have the necessary licenses, rights, consents, releases, and permissions to use and to authorize us, the Site, and other users of the Site to use your Contributions in any manner contemplated by the Site and these Terms of Use.
  • You have the written consent, release, and/or permission of each and every identifiable individual person in your Contributions to use the name or likeness of each and every such identifiable individual person to enable inclusion and use of your Contributions in any manner contemplated by the Site and these Terms of Use.
  • Your Contributions are not false, inaccurate, or misleading.
  • Your Contributions are not unsolicited or unauthorized advertising, promotional materials, pyramid schemes, chain letters, spam, mass mailings, or other forms of solicitation.
  • Your Contributions are not obscene, lewd, lascivious, filthy, violent, harassing, libelous, slanderous, or otherwise objectionable (as determined by us).
  • Your Contributions do not ridicule, mock, disparage, intimidate, or abuse anyone.
  • Your Contributions are not used to harass or threaten (in the legal sense of those terms) any other person and to promote violence against a specific person or class of people.
  • Your Contributions do not violate any applicable law, regulation, or rule.
  • Your Contributions do not violate the privacy or publicity rights of any third party.
  • Your Contributions do not violate any applicable law concerning child pornography, or otherwise intended to protect the health or well-being of minors.
  • Your Contributions do not include any offensive comments that are connected to race, national origin, gender, sexual preference, or physical handicap.
  • Your Contributions do not otherwise violate, or link to material that violates, any provision of these Terms of Use, or any applicable law or regulation.

Any use of the Site in violation of the foregoing violates these Terms of Use and may result in, among other things, termination or suspension of your rights to use the Site.

6. CONTRIBUTION LICENSE

You agree that we may access, store, process, and use any information and personal data that you provide following the terms of the Privacy Policy and your choices (including settings).

By submitting suggestions or other feedback regarding the Site, you agree that we can use and share such feedback for any purpose without compensation to you.

We do not assert any ownership over your Contributions. You retain full ownership of all of your Contributions and any intellectual property rights or other proprietary rights associated with your Contributions. We are not liable for any statements or representations in your Contributions provided by you in any area on the Site. You are solely responsible for your Contributions to the Site and you expressly agree to exonerate us from any and all responsibility and to refrain from any legal action against us regarding your Contributions.

7. MOBILE APPLICATION LICENSE

Use License

If you access the Site via a mobile application, then we grant you a revocable, non-exclusive, non-transferable, limited right to install and use the mobile application on wireless electronic devices owned or controlled by you, and to access and use the mobile application on such devices strictly in accordance with the terms and conditions of this mobile application license contained in these Terms of Use. You shall not: (1) except as permitted by applicable law, decompile, reverse engineer, disassemble, attempt to derive the source code of, or decrypt the application; (2) make any modification, adaptation, improvement, enhancement, translation, or derivative work from the application; (3) violate any applicable laws, rules, or regulations in connection with your access or use of the application; (4) remove, alter, or obscure any proprietary notice (including any notice of copyright or trademark) posted by us or the licensors of the application; (5) use the application for any revenue generating endeavor, commercial enterprise, or other purpose for which it is not designed or intended; (6) make the application available over a network or other environment permitting access or use by multiple devices or users at the same time; (7) use the application for creating a product, service, or software that is, directly or indirectly, competitive with or in any way a substitute for the application; (8) use the application to send automated queries to any website or to send any unsolicited commercial e-mail; or (9) use any proprietary information or any of our interfaces or our other intellectual property in the design, development, manufacture, licensing, or distribution of any applications, accessories, or devices for use with the application.

Apple and Android Devices

The following terms apply when you use a mobile application obtained from either the Apple Store or Google Play (each an “App Distributor”) to access the Site: (1) the license granted to you for our mobile application is limited to a non-transferable license to use the application on a device that utilizes the Apple iOS or Android operating systems, as applicable, and in accordance with the usage rules set forth in the applicable App Distributor’s terms of service; (2) we are responsible for providing any maintenance and support services with respect to the mobile application as specified in the terms and conditions of this mobile application license contained in these Terms of Use or as otherwise required under applicable law, and you acknowledge that each App Distributor has no obligation whatsoever to furnish any maintenance and support services with respect to the mobile application; (3) in the event of any failure of the mobile application to conform to any applicable warranty, you may notify the applicable App Distributor, and the App Distributor, in accordance with its terms and policies, may refund the purchase price, if any, paid for the mobile application, and to the maximum extent permitted by applicable law, the App Distributor will have no other warranty obligation whatsoever with respect to the mobile application; (4) you represent and warrant that (i) you are not located in a country that is subject to a U.S. government embargo, or that has been designated by the U.S. government as a “terrorist supporting” country and (ii) you are not listed on any U.S. government list of prohibited or restricted parties; (5) you must comply with applicable third-party terms of agreement when using the mobile application, e.g., if you have a VoIP application, then you must not be in violation of their wireless data service agreement when using the mobile application; and (6) you acknowledge and agree that the App Distributors are third-party beneficiaries of the terms and conditions in this mobile application license contained in these Terms of Use, and that each App Distributor will have the right (and will be deemed to have accepted the right) to enforce the terms and conditions in this mobile application license contained in these Terms of Use against you as a third-party beneficiary thereof.

8. SUBMISSIONS

You acknowledge and agree that any questions, comments, suggestions, ideas, feedback, or other information regarding the Site ("Submissions") provided by you to us are non-confidential and shall become our sole property. We shall own exclusive rights, including all intellectual property rights, and shall be entitled to the unrestricted use and dissemination of these Submissions for any lawful purpose, commercial or otherwise, without acknowledgment or compensation to you. You hereby waive all moral rights to any such Submissions, and you hereby warrant that any such Submissions are original with you or that you have the right to submit such Submissions. You agree there shall be no recourse against us for any alleged or actual infringement or misappropriation of any proprietary right in your Submissions.

9. THIRD-PARTY WEBSITE AND CONTENT

The Site may contain (or you may be sent via the Site) links to other websites ("Third-Party Websites") as well as articles, photographs, text, graphics, pictures, designs, music, sound, video, information, applications, software, and other content or items belonging to or originating from third parties ("Third-Party Content"). Such Third-Party Websites and Third-Party Content are not investigated, monitored, or checked for accuracy, appropriateness, or completeness by us, and we are not responsible for any Third-Party Websites accessed through the Site or any Third-Party Content posted on, available through, or installed from the Site, including the content, accuracy, offensiveness, opinions, reliability, privacy practices, or other policies of or contained in the Third-Party Websites or the Third-Party Content. Inclusion of, linking to, or permitting the use or installation of any Third-Party Websites or any Third-Party Content does not imply approval or endorsement thereof by us. If you decide to leave the Site and access the Third-Party Websites or to use or install any Third-Party Content, you do so at your own risk, and you should be aware these Terms of Use no longer govern. You should review the applicable terms and policies, including privacy and data gathering practices, of any website to which you navigate from the Site or relating to any applications you use or install from the Site. Any purchases you make through Third-Party Websites will be through other websites and from other companies, and we take no responsibility whatsoever in relation to such purchases which are exclusively between you and the applicable third party. You agree and acknowledge that we do not endorse the products or services offered on Third-Party Websites and you shall hold us harmless from any harm caused by your purchase of such products or services. Additionally, you shall hold us harmless from any losses sustained by you or harm caused to you relating to or resulting in any way from any Third-Party Content or any contact with Third-Party Websites.

10. SITE MANAGEMENT

We reserve the right, but not the obligation, to: (1) monitor the Site for violations of these Terms of Use; (2) take appropriate legal action against anyone who, in our sole discretion, violates the law or these Terms of Use, including without limitation, reporting such user to law enforcement authorities; (3) in our sole discretion and without limitation, refuse, restrict access to, limit the availability of, or disable (to the extent technologically feasible) any of your Contributions or any portion thereof; (4) in our sole discretion and without limitation, notice, or liability, to remove from the Site or otherwise disable all files and content that are excessive in size or are in any way burdensome to our systems; and (5) otherwise manage the Site in a manner designed to protect our rights and property and to facilitate the proper functioning of the Site.

11. PRIVACY POLICY

We care about data privacy and security. Please review our Privacy Policy: https://www.frsource.org/fast-angle/pl/privacy-policy. By using the Site, you agree to be bound by our Privacy Policy, which is incorporated into these Terms of Use. Please be advised the Site is hosted in the United States. If you access the Site from any other region of the world with laws or other requirements governing personal data collection, use, or disclosure that differ from applicable laws in the United States, then through your continued use of the Site, you are transferring your data to the United States, and you agree to have your data transferred to and processed in the United States.

12. TERM AND TERMINATION

These Terms of Use shall remain in full force and effect while you use the Site. WITHOUT LIMITING ANY OTHER PROVISION OF THESE TERMS OF USE, WE RESERVE THE RIGHT TO, IN OUR SOLE DISCRETION AND WITHOUT NOTICE OR LIABILITY, DENY ACCESS TO AND USE OF THE SITE (INCLUDING BLOCKING CERTAIN IP ADDRESSES), TO ANY PERSON FOR ANY REASON OR FOR NO REASON, INCLUDING WITHOUT LIMITATION FOR BREACH OF ANY REPRESENTATION, WARRANTY, OR COVENANT CONTAINED IN THESE TERMS OF USE OR OF ANY APPLICABLE LAW OR REGULATION. WE MAY TERMINATE YOUR USE OR PARTICIPATION IN THE SITE OR DELETE ANY CONTENT OR INFORMATION THAT YOU POSTED AT ANY TIME, WITHOUT WARNING, IN OUR SOLE DISCRETION.

If we terminate or suspend your account for any reason, you are prohibited from registering and creating a new account under your name, a fake or borrowed name, or the name of any third party, even if you may be acting on behalf of the third party. In addition to terminating or suspending your account, we reserve the right to take appropriate legal action, including without limitation pursuing civil, criminal, and injunctive redress.

13. MODIFICATIONS AND INTERRUPTIONS

We reserve the right to change, modify, or remove the contents of the Site at any time or for any reason at our sole discretion without notice. However, we have no obligation to update any information on our Site. We also reserve the right to modify or discontinue all or part of the Site without notice at any time. We will not be liable to you or any third party for any modification, price change, suspension, or discontinuance of the Site.

We cannot guarantee the Site will be available at all times. We may experience hardware, software, or other problems or need to perform maintenance related to the Site, resulting in interruptions, delays, or errors. We reserve the right to change, revise, update, suspend, discontinue, or otherwise modify the Site at any time or for any reason without notice to you. You agree that we have no liability whatsoever for any loss, damage, or inconvenience caused by your inability to access or use the Site during any downtime or discontinuance of the Site. Nothing in these Terms of Use will be construed to obligate us to maintain and support the Site or to supply any corrections, updates, or releases in connection therewith.

14. GOVERNING LAW

These conditions are governed by and interpreted following the laws of Poland, and the use of the United Nations Convention of Contracts for the International Sale of Goods is expressly excluded. If your habitual residence is in the EU, and you are a consumer, you additionally possess the protection provided to you by obligatory provisions of the law of your country of residence. FRS Jakub Freisler and yourself both agree to submit to the non-exclusive jurisdiction of the courts of Krowodrza, Kraków, Poland, which means that you may make a claim to defend your consumer protection rights in regards to these Terms of Use in Poland, or in the EU country in which you reside.

15. DISPUTE RESOLUTION

Informal Negotiations

To expedite resolution and control the cost of any dispute, controversy, or claim related to these Terms of Use (each "Dispute" and collectively, the “Disputes”) brought by either you or us (individually, a “Party” and collectively, the “Parties”), the Parties agree to first attempt to negotiate any Dispute (except those Disputes expressly provided below) informally for at least thirty (30) days before initiating arbitration. Such informal negotiations commence upon written notice from one Party to the other Party.

Binding Arbitration

   

Any dispute arising from the relationships between the Parties to this contract shall be determined by one arbitrator who will be chosen in accordance with the Arbitration and Internal Rules of the European Court of Arbitration being part of the European Centre of Arbitration having its seat in Strasbourg, and which are in force at the time the application for arbitration is filed, and of which adoption of this clause constitutes acceptance. The seat of arbitration shall be Kraków, Poland. The language of the proceedings shall be English. Applicable rules of substantive law shall be the law of Poland.

Restrictions

The Parties agree that any arbitration shall be limited to the Dispute between the Parties individually. To the full extent permitted by law, (a) no arbitration shall be joined with any other proceeding; (b) there is no right or authority for any Dispute to be arbitrated on a class-action basis or to utilize class action procedures; and (c) there is no right or authority for any Dispute to be brought in a purported representative capacity on behalf of the general public or any other persons.

Exceptions to Informal Negotiations and Arbitration

The Parties agree that the following Disputes are not subject to the above provisions concerning informal negotiations and binding arbitration: (a) any Disputes seeking to enforce or protect, or concerning the validity of, any of the intellectual property rights of a Party; (b) any Dispute related to, or arising from, allegations of theft, piracy, invasion of privacy, or unauthorized use; and (c) any claim for injunctive relief. If this provision is found to be illegal or unenforceable, then neither Party will elect to arbitrate any Dispute falling within that portion of this provision found to be illegal or unenforceable and such Dispute shall be decided by a court of competent jurisdiction within the courts listed for jurisdiction above, and the Parties agree to submit to the personal jurisdiction of that court.

16. CORRECTIONS

There may be information on the Site that contains typographical errors, inaccuracies, or omissions, including descriptions, pricing, availability, and various other information. We reserve the right to correct any errors, inaccuracies, or omissions and to change or update the information on the Site at any time, without prior notice.

17. DISCLAIMER

THE SITE IS PROVIDED ON AN AS-IS AND AS-AVAILABLE BASIS. YOU AGREE THAT YOUR USE OF THE SITE AND OUR SERVICES WILL BE AT YOUR SOLE RISK. TO THE FULLEST EXTENT PERMITTED BY LAW, WE DISCLAIM ALL WARRANTIES, EXPRESS OR IMPLIED, IN CONNECTION WITH THE SITE AND YOUR USE THEREOF, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, AND NON-INFRINGEMENT. WE MAKE NO WARRANTIES OR REPRESENTATIONS ABOUT THE ACCURACY OR COMPLETENESS OF THE SITE’S CONTENT OR THE CONTENT OF ANY WEBSITES LINKED TO THE SITE AND WE WILL ASSUME NO LIABILITY OR RESPONSIBILITY FOR ANY (1) ERRORS, MISTAKES, OR INACCURACIES OF CONTENT AND MATERIALS, (2) PERSONAL INJURY OR PROPERTY DAMAGE, OF ANY NATURE WHATSOEVER, RESULTING FROM YOUR ACCESS TO AND USE OF THE SITE, (3) ANY UNAUTHORIZED ACCESS TO OR USE OF OUR SECURE SERVERS AND/OR ANY AND ALL PERSONAL INFORMATION AND/OR FINANCIAL INFORMATION STORED THEREIN, (4) ANY INTERRUPTION OR CESSATION OF TRANSMISSION TO OR FROM THE SITE, (5) ANY BUGS, VIRUSES, TROJAN HORSES, OR THE LIKE WHICH MAY BE TRANSMITTED TO OR THROUGH THE SITE BY ANY THIRD PARTY, AND/OR (6) ANY ERRORS OR OMISSIONS IN ANY CONTENT AND MATERIALS OR FOR ANY LOSS OR DAMAGE OF ANY KIND INCURRED AS A RESULT OF THE USE OF ANY CONTENT POSTED, TRANSMITTED, OR OTHERWISE MADE AVAILABLE VIA THE SITE. WE DO NOT WARRANT, ENDORSE, GUARANTEE, OR ASSUME RESPONSIBILITY FOR ANY PRODUCT OR SERVICE ADVERTISED OR OFFERED BY A THIRD PARTY THROUGH THE SITE, ANY HYPERLINKED WEBSITE, OR ANY WEBSITE OR MOBILE APPLICATION FEATURED IN ANY BANNER OR OTHER ADVERTISING, AND WE WILL NOT BE A PARTY TO OR IN ANY WAY BE RESPONSIBLE FOR MONITORING ANY TRANSACTION BETWEEN YOU AND ANY THIRD-PARTY PROVIDERS OF PRODUCTS OR SERVICES. AS WITH THE PURCHASE OF A PRODUCT OR SERVICE THROUGH ANY MEDIUM OR IN ANY ENVIRONMENT, YOU SHOULD USE YOUR BEST JUDGMENT AND EXERCISE CAUTION WHERE APPROPRIATE.

18. LIMITATIONS OF LIABILITY

IN NO EVENT WILL WE OR OUR DIRECTORS, EMPLOYEES, OR AGENTS BE LIABLE TO YOU OR ANY THIRD PARTY FOR ANY DIRECT, INDIRECT, CONSEQUENTIAL, EXEMPLARY, INCIDENTAL, SPECIAL, OR PUNITIVE DAMAGES, INCLUDING LOST PROFIT, LOST REVENUE, LOSS OF DATA, OR OTHER DAMAGES ARISING FROM YOUR USE OF THE SITE, EVEN IF WE HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. NOTWITHSTANDING ANYTHING TO THE CONTRARY CONTAINED HEREIN, OUR LIABILITY TO YOU FOR ANY CAUSE WHATSOEVER AND REGARDLESS OF THE FORM OF THE ACTION, WILL AT ALL TIMES BE LIMITED TO THE LESSER OF THE AMOUNT PAID, IF ANY, BY YOU TO US DURING THE three (3) MONTH PERIOD PRIOR TO ANY CAUSE OF ACTION ARISING OR $0.00 USD. CERTAIN US STATE LAWS AND INTERNATIONAL LAWS DO NOT ALLOW LIMITATIONS ON IMPLIED WARRANTIES OR THE EXCLUSION OR LIMITATION OF CERTAIN DAMAGES. IF THESE LAWS APPLY TO YOU, SOME OR ALL OF THE ABOVE DISCLAIMERS OR LIMITATIONS MAY NOT APPLY TO YOU, AND YOU MAY HAVE ADDITIONAL RIGHTS.

19. INDEMNIFICATION

You agree to defend, indemnify, and hold us harmless, including our subsidiaries, affiliates, and all of our respective officers, agents, partners, and employees, from and against any loss, damage, liability, claim, or demand, including reasonable attorneys’ fees and expenses, made by any third party due to or arising out of: (1) use of the Site; (2) breach of these Terms of Use; (3) any breach of your representations and warranties set forth in these Terms of Use; (4) your violation of the rights of a third party, including but not limited to intellectual property rights; or (5) any overt harmful act toward any other user of the Site with whom you connected via the Site. Notwithstanding the foregoing, we reserve the right, at your expense, to assume the exclusive defense and control of any matter for which you are required to indemnify us, and you agree to cooperate, at your expense, with our defense of such claims. We will use reasonable efforts to notify you of any such claim, action, or proceeding which is subject to this indemnification upon becoming aware of it.

20. USER DATA

We will maintain certain data that you transmit to the Site for the purpose of managing the performance of the Site, as well as data relating to your use of the Site. Although we perform regular routine backups of data, you are solely responsible for all data that you transmit or that relates to any activity you have undertaken using the Site. You agree that we shall have no liability to you for any loss or corruption of any such data, and you hereby waive any right of action against us arising from any such loss or corruption of such data.

21. ELECTRONIC COMMUNICATIONS, TRANSACTIONS, AND SIGNATURES

Visiting the Site, sending us emails, and completing online forms constitute electronic communications. You consent to receive electronic communications, and you agree that all agreements, notices, disclosures, and other communications we provide to you electronically, via email and on the Site, satisfy any legal requirement that such communication be in writing. YOU HEREBY AGREE TO THE USE OF ELECTRONIC SIGNATURES, CONTRACTS, ORDERS, AND OTHER RECORDS, AND TO ELECTRONIC DELIVERY OF NOTICES, POLICIES, AND RECORDS OF TRANSACTIONS INITIATED OR COMPLETED BY US OR VIA THE SITE. You hereby waive any rights or requirements under any statutes, regulations, rules, ordinances, or other laws in any jurisdiction which require an original signature or delivery or retention of non-electronic records, or to payments or the granting of credits by any means other than electronic means.

22. CALIFORNIA USERS AND RESIDENTS

If any complaint with us is not satisfactorily resolved, you can contact the Complaint Assistance Unit of the Division of Consumer Services of the California Department of Consumer Affairs in writing at 1625 North Market Blvd., Suite N 112, Sacramento, California 95834 or by telephone at (800) 952-5210 or (916) 445-1254.

23. MISCELLANEOUS

These Terms of Use and any policies or operating rules posted by us on the Site or in respect to the Site constitute the entire agreement and understanding between you and us. Our failure to exercise or enforce any right or provision of these Terms of Use shall not operate as a waiver of such right or provision. These Terms of Use operate to the fullest extent permissible by law. We may assign any or all of our rights and obligations to others at any time. We shall not be responsible or liable for any loss, damage, delay, or failure to act caused by any cause beyond our reasonable control. If any provision or part of a provision of these Terms of Use is determined to be unlawful, void, or unenforceable, that provision or part of the provision is deemed severable from these Terms of Use and does not affect the validity and enforceability of any remaining provisions. There is no joint venture, partnership, employment or agency relationship created between you and us as a result of these Terms of Use or use of the Site. You agree that these Terms of Use will not be construed against us by virtue of having drafted them. You hereby waive any and all defenses you may have based on the electronic form of these Terms of Use and the lack of signing by the parties hereto to execute these Terms of Use.

24. CONTACT US

In order to resolve a complaint regarding the Site or to receive further information regarding use of the Site, please contact us at:

FRS Jakub Freisler
ul. Królewska 92 / 8
Kraków, Małopolska 30-079
Poland
Phone: +48882568430
complaint@frsource.org
\ No newline at end of file +Terms and Conditions

Fast Angle logo Fast angle

Einfacher Online-Winkelmesser - messen Sie jeden Winkel direkt auf Ihrem Bild!

Terms and Conditions

Last updated November 03, 2022

TABLE OF CONTENTS

  1. AGREEMENT TO TERMS
  2. INTELLECTUAL PROPERTY RIGHTS
  3. USER REPRESENTATIONS
  4. PROHIBITED ACTIVITIES
  5. USER GENERATED CONTRIBUTIONS
  6. CONTRIBUTION LICENSE
  7. MOBILE APPLICATION LICENSE
  8. SUBMISSIONS
  9. THIRD-PARTY WEBSITE AND CONTENT
  10. SITE MANAGEMENT
  11. PRIVACY POLICY
  12. TERM AND TERMINATION
  13. MODIFICATIONS AND INTERRUPTIONS
  14. GOVERNING LAW
  15. DISPUTE RESOLUTION
  16. CORRECTIONS
  17. DISCLAIMER
  18. LIMITATIONS OF LIABILITY
  19. INDEMNIFICATION
  20. USER DATA
  21. ELECTRONIC COMMUNICATIONS, TRANSACTIONS, AND SIGNATURES
  22. CALIFORNIA USERS AND RESIDENTS
  23. MISCELLANEOUS
  24. CONTACT US

1. AGREEMENT TO TERMS

These Terms of Use constitute a legally binding agreement made between you, whether personally or on behalf of an entity (“you”) and FRS Jakub Freisler ("Company," “we," “us," or “our”), concerning your access to and use of the https://www.frsource.org/fast-angle/ website as well as any other media form, media channel, mobile website or mobile application related, linked, or otherwise connected thereto (collectively, the “Site”). We are registered in Poland and have our registered office at ul. Królewska 92 / 8, Kraków, Małopolska 30-079. Our VAT number is PL 6783179514. You agree that by accessing the Site, you have read, understood, and agreed to be bound by all of these Terms of Use. IF YOU DO NOT AGREE WITH ALL OF THESE TERMS OF USE, THEN YOU ARE EXPRESSLY PROHIBITED FROM USING THE SITE AND YOU MUST DISCONTINUE USE IMMEDIATELY.

Supplemental terms and conditions or documents that may be posted on the Site from time to time are hereby expressly incorporated herein by reference. We reserve the right, in our sole discretion, to make changes or modifications to these Terms of Use from time to time. We will alert you about any changes by updating the “Last updated” date of these Terms of Use, and you waive any right to receive specific notice of each such change. Please ensure that you check the applicable Terms every time you use our Site so that you understand which Terms apply. You will be subject to, and will be deemed to have been made aware of and to have accepted, the changes in any revised Terms of Use by your continued use of the Site after the date such revised Terms of Use are posted.

The information provided on the Site is not intended for distribution to or use by any person or entity in any jurisdiction or country where such distribution or use would be contrary to law or regulation or which would subject us to any registration requirement within such jurisdiction or country. Accordingly, those persons who choose to access the Site from other locations do so on their own initiative and are solely responsible for compliance with local laws, if and to the extent local laws are applicable.

The Site is not tailored to comply with industry-specific regulations (Health Insurance Portability and Accountability Act (HIPAA), Federal Information Security Management Act (FISMA), etc.), so if your interactions would be subjected to such laws, you may not use this Site. You may not use the Site in a way that would violate the Gramm-Leach-Bliley Act (GLBA).

All users who are minors in the jurisdiction in which they reside (generally under the age of 18) must have the permission of, and be directly supervised by, their parent or guardian to use the Site. If you are a minor, you must have your parent or guardian read and agree to these Terms of Use prior to you using the Site.

2. INTELLECTUAL PROPERTY RIGHTS

Unless otherwise indicated, the Site is our proprietary property and all source code, databases, functionality, software, website designs, audio, video, text, photographs, and graphics on the Site (collectively, the “Content”) and the trademarks, service marks, and logos contained therein (the “Marks”) are owned or controlled by us or licensed to us, and are protected by copyright and trademark laws and various other intellectual property rights and unfair competition laws of the United States, international copyright laws, and international conventions. The Content and the Marks are provided on the Site “AS IS” for your information and personal use only. Except as expressly provided in these Terms of Use, no part of the Site and no Content or Marks may be copied, reproduced, aggregated, republished, uploaded, posted, publicly displayed, encoded, translated, transmitted, distributed, sold, licensed, or otherwise exploited for any commercial purpose whatsoever, without our express prior written permission.

Provided that you are eligible to use the Site, you are granted a limited license to access and use the Site and to download or print a copy of any portion of the Content to which you have properly gained access solely for your personal, non-commercial use. We reserve all rights not expressly granted to you in and to the Site, the Content and the Marks.

3. USER REPRESENTATIONS

By using the Site, you represent and warrant that: (1) you have the legal capacity and you agree to comply with these Terms of Use; (2) you are not a minor in the jurisdiction in which you reside, or if a minor, you have received parental permission to use the Site; (3) you will not access the Site through automated or non-human means, whether through a bot, script, or otherwise; (4) you will not use the Site for any illegal or unauthorized purpose; and (5) your use of the Site will not violate any applicable law or regulation.

If you provide any information that is untrue, inaccurate, not current, or incomplete, we have the right to suspend or terminate your account and refuse any and all current or future use of the Site (or any portion thereof).

4. PROHIBITED ACTIVITIES

You may not access or use the Site for any purpose other than that for which we make the Site available. The Site may not be used in connection with any commercial endeavors except those that are specifically endorsed or approved by us.

As a user of the Site, you agree not to:

  • Systematically retrieve data or other content from the Site to create or compile, directly or indirectly, a collection, compilation, database, or directory without written permission from us.
  • Trick, defraud, or mislead us and other users, especially in any attempt to learn sensitive account information such as user passwords.
  • Circumvent, disable, or otherwise interfere with security-related features of the Site, including features that prevent or restrict the use or copying of any Content or enforce limitations on the use of the Site and/or the Content contained therein.
  • Disparage, tarnish, or otherwise harm, in our opinion, us and/or the Site.
  • Use any information obtained from the Site in order to harass, abuse, or harm another person.
  • Make improper use of our support services or submit false reports of abuse or misconduct.
  • Use the Site in a manner inconsistent with any applicable laws or regulations.
  • Engage in unauthorized framing of or linking to the Site.
  • Upload or transmit (or attempt to upload or to transmit) viruses, Trojan horses, or other material, including excessive use of capital letters and spamming (continuous posting of repetitive text), that interferes with any party’s uninterrupted use and enjoyment of the Site or modifies, impairs, disrupts, alters, or interferes with the use, features, functions, operation, or maintenance of the Site.
  • Engage in any automated use of the system, such as using scripts to send comments or messages, or using any data mining, robots, or similar data gathering and extraction tools.
  • Delete the copyright or other proprietary rights notice from any Content.
  • Attempt to impersonate another user or person or use the username of another user.
  • Upload or transmit (or attempt to upload or to transmit) any material that acts as a passive or active information collection or transmission mechanism, including without limitation, clear graphics interchange formats (“gifs”), 1×1 pixels, web bugs, cookies, or other similar devices (sometimes referred to as “spyware” or “passive collection mechanisms” or “pcms”).
  • Interfere with, disrupt, or create an undue burden on the Site or the networks or services connected to the Site.
  • Harass, annoy, intimidate, or threaten any of our employees or agents engaged in providing any portion of the Site to you.
  • Attempt to bypass any measures of the Site designed to prevent or restrict access to the Site, or any portion of the Site.
  • Copy or adapt the Site’s software, including but not limited to Flash, PHP, HTML, JavaScript, or other code.
  • Except as permitted by applicable law, decipher, decompile, disassemble, or reverse engineer any of the software comprising or in any way making up a part of the Site.
  • Except as may be the result of standard search engine or Internet browser usage, use, launch, develop, or distribute any automated system, including without limitation, any spider, robot, cheat utility, scraper, or offline reader that accesses the Site, or using or launching any unauthorized script or other software.
  • Use a buying agent or purchasing agent to make purchases on the Site.
  • Make any unauthorized use of the Site, including collecting usernames and/or email addresses of users by electronic or other means for the purpose of sending unsolicited email, or creating user accounts by automated means or under false pretenses.
  • Use the Site as part of any effort to compete with us or otherwise use the Site and/or the Content for any revenue-generating endeavor or commercial enterprise.
  • Use the Site to advertise or offer to sell goods and services.
  • Sell or otherwise transfer your profile.

5. USER GENERATED CONTRIBUTIONS

The Site does not offer users to submit or post content. We may provide you with the opportunity to create, submit, post, display, transmit, perform, publish, distribute, or broadcast content and materials to us or on the Site, including but not limited to text, writings, video, audio, photographs, graphics, comments, suggestions, or personal information or other material (collectively, "Contributions"). Contributions may be viewable by other users of the Site and through third-party websites. As such, any Contributions you transmit may be treated in accordance with the Site Privacy Policy. When you create or make available any Contributions, you thereby represent and warrant that:

  • The creation, distribution, transmission, public display, or performance, and the accessing, downloading, or copying of your Contributions do not and will not infringe the proprietary rights, including but not limited to the copyright, patent, trademark, trade secret, or moral rights of any third party.
  • You are the creator and owner of or have the necessary licenses, rights, consents, releases, and permissions to use and to authorize us, the Site, and other users of the Site to use your Contributions in any manner contemplated by the Site and these Terms of Use.
  • You have the written consent, release, and/or permission of each and every identifiable individual person in your Contributions to use the name or likeness of each and every such identifiable individual person to enable inclusion and use of your Contributions in any manner contemplated by the Site and these Terms of Use.
  • Your Contributions are not false, inaccurate, or misleading.
  • Your Contributions are not unsolicited or unauthorized advertising, promotional materials, pyramid schemes, chain letters, spam, mass mailings, or other forms of solicitation.
  • Your Contributions are not obscene, lewd, lascivious, filthy, violent, harassing, libelous, slanderous, or otherwise objectionable (as determined by us).
  • Your Contributions do not ridicule, mock, disparage, intimidate, or abuse anyone.
  • Your Contributions are not used to harass or threaten (in the legal sense of those terms) any other person and to promote violence against a specific person or class of people.
  • Your Contributions do not violate any applicable law, regulation, or rule.
  • Your Contributions do not violate the privacy or publicity rights of any third party.
  • Your Contributions do not violate any applicable law concerning child pornography, or otherwise intended to protect the health or well-being of minors.
  • Your Contributions do not include any offensive comments that are connected to race, national origin, gender, sexual preference, or physical handicap.
  • Your Contributions do not otherwise violate, or link to material that violates, any provision of these Terms of Use, or any applicable law or regulation.

Any use of the Site in violation of the foregoing violates these Terms of Use and may result in, among other things, termination or suspension of your rights to use the Site.

6. CONTRIBUTION LICENSE

You agree that we may access, store, process, and use any information and personal data that you provide following the terms of the Privacy Policy and your choices (including settings).

By submitting suggestions or other feedback regarding the Site, you agree that we can use and share such feedback for any purpose without compensation to you.

We do not assert any ownership over your Contributions. You retain full ownership of all of your Contributions and any intellectual property rights or other proprietary rights associated with your Contributions. We are not liable for any statements or representations in your Contributions provided by you in any area on the Site. You are solely responsible for your Contributions to the Site and you expressly agree to exonerate us from any and all responsibility and to refrain from any legal action against us regarding your Contributions.

7. MOBILE APPLICATION LICENSE

Use License

If you access the Site via a mobile application, then we grant you a revocable, non-exclusive, non-transferable, limited right to install and use the mobile application on wireless electronic devices owned or controlled by you, and to access and use the mobile application on such devices strictly in accordance with the terms and conditions of this mobile application license contained in these Terms of Use. You shall not: (1) except as permitted by applicable law, decompile, reverse engineer, disassemble, attempt to derive the source code of, or decrypt the application; (2) make any modification, adaptation, improvement, enhancement, translation, or derivative work from the application; (3) violate any applicable laws, rules, or regulations in connection with your access or use of the application; (4) remove, alter, or obscure any proprietary notice (including any notice of copyright or trademark) posted by us or the licensors of the application; (5) use the application for any revenue generating endeavor, commercial enterprise, or other purpose for which it is not designed or intended; (6) make the application available over a network or other environment permitting access or use by multiple devices or users at the same time; (7) use the application for creating a product, service, or software that is, directly or indirectly, competitive with or in any way a substitute for the application; (8) use the application to send automated queries to any website or to send any unsolicited commercial e-mail; or (9) use any proprietary information or any of our interfaces or our other intellectual property in the design, development, manufacture, licensing, or distribution of any applications, accessories, or devices for use with the application.

Apple and Android Devices

The following terms apply when you use a mobile application obtained from either the Apple Store or Google Play (each an “App Distributor”) to access the Site: (1) the license granted to you for our mobile application is limited to a non-transferable license to use the application on a device that utilizes the Apple iOS or Android operating systems, as applicable, and in accordance with the usage rules set forth in the applicable App Distributor’s terms of service; (2) we are responsible for providing any maintenance and support services with respect to the mobile application as specified in the terms and conditions of this mobile application license contained in these Terms of Use or as otherwise required under applicable law, and you acknowledge that each App Distributor has no obligation whatsoever to furnish any maintenance and support services with respect to the mobile application; (3) in the event of any failure of the mobile application to conform to any applicable warranty, you may notify the applicable App Distributor, and the App Distributor, in accordance with its terms and policies, may refund the purchase price, if any, paid for the mobile application, and to the maximum extent permitted by applicable law, the App Distributor will have no other warranty obligation whatsoever with respect to the mobile application; (4) you represent and warrant that (i) you are not located in a country that is subject to a U.S. government embargo, or that has been designated by the U.S. government as a “terrorist supporting” country and (ii) you are not listed on any U.S. government list of prohibited or restricted parties; (5) you must comply with applicable third-party terms of agreement when using the mobile application, e.g., if you have a VoIP application, then you must not be in violation of their wireless data service agreement when using the mobile application; and (6) you acknowledge and agree that the App Distributors are third-party beneficiaries of the terms and conditions in this mobile application license contained in these Terms of Use, and that each App Distributor will have the right (and will be deemed to have accepted the right) to enforce the terms and conditions in this mobile application license contained in these Terms of Use against you as a third-party beneficiary thereof.

8. SUBMISSIONS

You acknowledge and agree that any questions, comments, suggestions, ideas, feedback, or other information regarding the Site ("Submissions") provided by you to us are non-confidential and shall become our sole property. We shall own exclusive rights, including all intellectual property rights, and shall be entitled to the unrestricted use and dissemination of these Submissions for any lawful purpose, commercial or otherwise, without acknowledgment or compensation to you. You hereby waive all moral rights to any such Submissions, and you hereby warrant that any such Submissions are original with you or that you have the right to submit such Submissions. You agree there shall be no recourse against us for any alleged or actual infringement or misappropriation of any proprietary right in your Submissions.

9. THIRD-PARTY WEBSITE AND CONTENT

The Site may contain (or you may be sent via the Site) links to other websites ("Third-Party Websites") as well as articles, photographs, text, graphics, pictures, designs, music, sound, video, information, applications, software, and other content or items belonging to or originating from third parties ("Third-Party Content"). Such Third-Party Websites and Third-Party Content are not investigated, monitored, or checked for accuracy, appropriateness, or completeness by us, and we are not responsible for any Third-Party Websites accessed through the Site or any Third-Party Content posted on, available through, or installed from the Site, including the content, accuracy, offensiveness, opinions, reliability, privacy practices, or other policies of or contained in the Third-Party Websites or the Third-Party Content. Inclusion of, linking to, or permitting the use or installation of any Third-Party Websites or any Third-Party Content does not imply approval or endorsement thereof by us. If you decide to leave the Site and access the Third-Party Websites or to use or install any Third-Party Content, you do so at your own risk, and you should be aware these Terms of Use no longer govern. You should review the applicable terms and policies, including privacy and data gathering practices, of any website to which you navigate from the Site or relating to any applications you use or install from the Site. Any purchases you make through Third-Party Websites will be through other websites and from other companies, and we take no responsibility whatsoever in relation to such purchases which are exclusively between you and the applicable third party. You agree and acknowledge that we do not endorse the products or services offered on Third-Party Websites and you shall hold us harmless from any harm caused by your purchase of such products or services. Additionally, you shall hold us harmless from any losses sustained by you or harm caused to you relating to or resulting in any way from any Third-Party Content or any contact with Third-Party Websites.

10. SITE MANAGEMENT

We reserve the right, but not the obligation, to: (1) monitor the Site for violations of these Terms of Use; (2) take appropriate legal action against anyone who, in our sole discretion, violates the law or these Terms of Use, including without limitation, reporting such user to law enforcement authorities; (3) in our sole discretion and without limitation, refuse, restrict access to, limit the availability of, or disable (to the extent technologically feasible) any of your Contributions or any portion thereof; (4) in our sole discretion and without limitation, notice, or liability, to remove from the Site or otherwise disable all files and content that are excessive in size or are in any way burdensome to our systems; and (5) otherwise manage the Site in a manner designed to protect our rights and property and to facilitate the proper functioning of the Site.

11. PRIVACY POLICY

We care about data privacy and security. Please review our Privacy Policy: https://www.frsource.org/fast-angle/pl/privacy-policy. By using the Site, you agree to be bound by our Privacy Policy, which is incorporated into these Terms of Use. Please be advised the Site is hosted in the United States. If you access the Site from any other region of the world with laws or other requirements governing personal data collection, use, or disclosure that differ from applicable laws in the United States, then through your continued use of the Site, you are transferring your data to the United States, and you agree to have your data transferred to and processed in the United States.

12. TERM AND TERMINATION

These Terms of Use shall remain in full force and effect while you use the Site. WITHOUT LIMITING ANY OTHER PROVISION OF THESE TERMS OF USE, WE RESERVE THE RIGHT TO, IN OUR SOLE DISCRETION AND WITHOUT NOTICE OR LIABILITY, DENY ACCESS TO AND USE OF THE SITE (INCLUDING BLOCKING CERTAIN IP ADDRESSES), TO ANY PERSON FOR ANY REASON OR FOR NO REASON, INCLUDING WITHOUT LIMITATION FOR BREACH OF ANY REPRESENTATION, WARRANTY, OR COVENANT CONTAINED IN THESE TERMS OF USE OR OF ANY APPLICABLE LAW OR REGULATION. WE MAY TERMINATE YOUR USE OR PARTICIPATION IN THE SITE OR DELETE ANY CONTENT OR INFORMATION THAT YOU POSTED AT ANY TIME, WITHOUT WARNING, IN OUR SOLE DISCRETION.

If we terminate or suspend your account for any reason, you are prohibited from registering and creating a new account under your name, a fake or borrowed name, or the name of any third party, even if you may be acting on behalf of the third party. In addition to terminating or suspending your account, we reserve the right to take appropriate legal action, including without limitation pursuing civil, criminal, and injunctive redress.

13. MODIFICATIONS AND INTERRUPTIONS

We reserve the right to change, modify, or remove the contents of the Site at any time or for any reason at our sole discretion without notice. However, we have no obligation to update any information on our Site. We also reserve the right to modify or discontinue all or part of the Site without notice at any time. We will not be liable to you or any third party for any modification, price change, suspension, or discontinuance of the Site.

We cannot guarantee the Site will be available at all times. We may experience hardware, software, or other problems or need to perform maintenance related to the Site, resulting in interruptions, delays, or errors. We reserve the right to change, revise, update, suspend, discontinue, or otherwise modify the Site at any time or for any reason without notice to you. You agree that we have no liability whatsoever for any loss, damage, or inconvenience caused by your inability to access or use the Site during any downtime or discontinuance of the Site. Nothing in these Terms of Use will be construed to obligate us to maintain and support the Site or to supply any corrections, updates, or releases in connection therewith.

14. GOVERNING LAW

These conditions are governed by and interpreted following the laws of Poland, and the use of the United Nations Convention of Contracts for the International Sale of Goods is expressly excluded. If your habitual residence is in the EU, and you are a consumer, you additionally possess the protection provided to you by obligatory provisions of the law of your country of residence. FRS Jakub Freisler and yourself both agree to submit to the non-exclusive jurisdiction of the courts of Krowodrza, Kraków, Poland, which means that you may make a claim to defend your consumer protection rights in regards to these Terms of Use in Poland, or in the EU country in which you reside.

15. DISPUTE RESOLUTION

Informal Negotiations

To expedite resolution and control the cost of any dispute, controversy, or claim related to these Terms of Use (each "Dispute" and collectively, the “Disputes”) brought by either you or us (individually, a “Party” and collectively, the “Parties”), the Parties agree to first attempt to negotiate any Dispute (except those Disputes expressly provided below) informally for at least thirty (30) days before initiating arbitration. Such informal negotiations commence upon written notice from one Party to the other Party.

Binding Arbitration

   

Any dispute arising from the relationships between the Parties to this contract shall be determined by one arbitrator who will be chosen in accordance with the Arbitration and Internal Rules of the European Court of Arbitration being part of the European Centre of Arbitration having its seat in Strasbourg, and which are in force at the time the application for arbitration is filed, and of which adoption of this clause constitutes acceptance. The seat of arbitration shall be Kraków, Poland. The language of the proceedings shall be English. Applicable rules of substantive law shall be the law of Poland.

Restrictions

The Parties agree that any arbitration shall be limited to the Dispute between the Parties individually. To the full extent permitted by law, (a) no arbitration shall be joined with any other proceeding; (b) there is no right or authority for any Dispute to be arbitrated on a class-action basis or to utilize class action procedures; and (c) there is no right or authority for any Dispute to be brought in a purported representative capacity on behalf of the general public or any other persons.

Exceptions to Informal Negotiations and Arbitration

The Parties agree that the following Disputes are not subject to the above provisions concerning informal negotiations and binding arbitration: (a) any Disputes seeking to enforce or protect, or concerning the validity of, any of the intellectual property rights of a Party; (b) any Dispute related to, or arising from, allegations of theft, piracy, invasion of privacy, or unauthorized use; and (c) any claim for injunctive relief. If this provision is found to be illegal or unenforceable, then neither Party will elect to arbitrate any Dispute falling within that portion of this provision found to be illegal or unenforceable and such Dispute shall be decided by a court of competent jurisdiction within the courts listed for jurisdiction above, and the Parties agree to submit to the personal jurisdiction of that court.

16. CORRECTIONS

There may be information on the Site that contains typographical errors, inaccuracies, or omissions, including descriptions, pricing, availability, and various other information. We reserve the right to correct any errors, inaccuracies, or omissions and to change or update the information on the Site at any time, without prior notice.

17. DISCLAIMER

THE SITE IS PROVIDED ON AN AS-IS AND AS-AVAILABLE BASIS. YOU AGREE THAT YOUR USE OF THE SITE AND OUR SERVICES WILL BE AT YOUR SOLE RISK. TO THE FULLEST EXTENT PERMITTED BY LAW, WE DISCLAIM ALL WARRANTIES, EXPRESS OR IMPLIED, IN CONNECTION WITH THE SITE AND YOUR USE THEREOF, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, AND NON-INFRINGEMENT. WE MAKE NO WARRANTIES OR REPRESENTATIONS ABOUT THE ACCURACY OR COMPLETENESS OF THE SITE’S CONTENT OR THE CONTENT OF ANY WEBSITES LINKED TO THE SITE AND WE WILL ASSUME NO LIABILITY OR RESPONSIBILITY FOR ANY (1) ERRORS, MISTAKES, OR INACCURACIES OF CONTENT AND MATERIALS, (2) PERSONAL INJURY OR PROPERTY DAMAGE, OF ANY NATURE WHATSOEVER, RESULTING FROM YOUR ACCESS TO AND USE OF THE SITE, (3) ANY UNAUTHORIZED ACCESS TO OR USE OF OUR SECURE SERVERS AND/OR ANY AND ALL PERSONAL INFORMATION AND/OR FINANCIAL INFORMATION STORED THEREIN, (4) ANY INTERRUPTION OR CESSATION OF TRANSMISSION TO OR FROM THE SITE, (5) ANY BUGS, VIRUSES, TROJAN HORSES, OR THE LIKE WHICH MAY BE TRANSMITTED TO OR THROUGH THE SITE BY ANY THIRD PARTY, AND/OR (6) ANY ERRORS OR OMISSIONS IN ANY CONTENT AND MATERIALS OR FOR ANY LOSS OR DAMAGE OF ANY KIND INCURRED AS A RESULT OF THE USE OF ANY CONTENT POSTED, TRANSMITTED, OR OTHERWISE MADE AVAILABLE VIA THE SITE. WE DO NOT WARRANT, ENDORSE, GUARANTEE, OR ASSUME RESPONSIBILITY FOR ANY PRODUCT OR SERVICE ADVERTISED OR OFFERED BY A THIRD PARTY THROUGH THE SITE, ANY HYPERLINKED WEBSITE, OR ANY WEBSITE OR MOBILE APPLICATION FEATURED IN ANY BANNER OR OTHER ADVERTISING, AND WE WILL NOT BE A PARTY TO OR IN ANY WAY BE RESPONSIBLE FOR MONITORING ANY TRANSACTION BETWEEN YOU AND ANY THIRD-PARTY PROVIDERS OF PRODUCTS OR SERVICES. AS WITH THE PURCHASE OF A PRODUCT OR SERVICE THROUGH ANY MEDIUM OR IN ANY ENVIRONMENT, YOU SHOULD USE YOUR BEST JUDGMENT AND EXERCISE CAUTION WHERE APPROPRIATE.

18. LIMITATIONS OF LIABILITY

IN NO EVENT WILL WE OR OUR DIRECTORS, EMPLOYEES, OR AGENTS BE LIABLE TO YOU OR ANY THIRD PARTY FOR ANY DIRECT, INDIRECT, CONSEQUENTIAL, EXEMPLARY, INCIDENTAL, SPECIAL, OR PUNITIVE DAMAGES, INCLUDING LOST PROFIT, LOST REVENUE, LOSS OF DATA, OR OTHER DAMAGES ARISING FROM YOUR USE OF THE SITE, EVEN IF WE HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. NOTWITHSTANDING ANYTHING TO THE CONTRARY CONTAINED HEREIN, OUR LIABILITY TO YOU FOR ANY CAUSE WHATSOEVER AND REGARDLESS OF THE FORM OF THE ACTION, WILL AT ALL TIMES BE LIMITED TO THE LESSER OF THE AMOUNT PAID, IF ANY, BY YOU TO US DURING THE three (3) MONTH PERIOD PRIOR TO ANY CAUSE OF ACTION ARISING OR $0.00 USD. CERTAIN US STATE LAWS AND INTERNATIONAL LAWS DO NOT ALLOW LIMITATIONS ON IMPLIED WARRANTIES OR THE EXCLUSION OR LIMITATION OF CERTAIN DAMAGES. IF THESE LAWS APPLY TO YOU, SOME OR ALL OF THE ABOVE DISCLAIMERS OR LIMITATIONS MAY NOT APPLY TO YOU, AND YOU MAY HAVE ADDITIONAL RIGHTS.

19. INDEMNIFICATION

You agree to defend, indemnify, and hold us harmless, including our subsidiaries, affiliates, and all of our respective officers, agents, partners, and employees, from and against any loss, damage, liability, claim, or demand, including reasonable attorneys’ fees and expenses, made by any third party due to or arising out of: (1) use of the Site; (2) breach of these Terms of Use; (3) any breach of your representations and warranties set forth in these Terms of Use; (4) your violation of the rights of a third party, including but not limited to intellectual property rights; or (5) any overt harmful act toward any other user of the Site with whom you connected via the Site. Notwithstanding the foregoing, we reserve the right, at your expense, to assume the exclusive defense and control of any matter for which you are required to indemnify us, and you agree to cooperate, at your expense, with our defense of such claims. We will use reasonable efforts to notify you of any such claim, action, or proceeding which is subject to this indemnification upon becoming aware of it.

20. USER DATA

We will maintain certain data that you transmit to the Site for the purpose of managing the performance of the Site, as well as data relating to your use of the Site. Although we perform regular routine backups of data, you are solely responsible for all data that you transmit or that relates to any activity you have undertaken using the Site. You agree that we shall have no liability to you for any loss or corruption of any such data, and you hereby waive any right of action against us arising from any such loss or corruption of such data.

21. ELECTRONIC COMMUNICATIONS, TRANSACTIONS, AND SIGNATURES

Visiting the Site, sending us emails, and completing online forms constitute electronic communications. You consent to receive electronic communications, and you agree that all agreements, notices, disclosures, and other communications we provide to you electronically, via email and on the Site, satisfy any legal requirement that such communication be in writing. YOU HEREBY AGREE TO THE USE OF ELECTRONIC SIGNATURES, CONTRACTS, ORDERS, AND OTHER RECORDS, AND TO ELECTRONIC DELIVERY OF NOTICES, POLICIES, AND RECORDS OF TRANSACTIONS INITIATED OR COMPLETED BY US OR VIA THE SITE. You hereby waive any rights or requirements under any statutes, regulations, rules, ordinances, or other laws in any jurisdiction which require an original signature or delivery or retention of non-electronic records, or to payments or the granting of credits by any means other than electronic means.

22. CALIFORNIA USERS AND RESIDENTS

If any complaint with us is not satisfactorily resolved, you can contact the Complaint Assistance Unit of the Division of Consumer Services of the California Department of Consumer Affairs in writing at 1625 North Market Blvd., Suite N 112, Sacramento, California 95834 or by telephone at (800) 952-5210 or (916) 445-1254.

23. MISCELLANEOUS

These Terms of Use and any policies or operating rules posted by us on the Site or in respect to the Site constitute the entire agreement and understanding between you and us. Our failure to exercise or enforce any right or provision of these Terms of Use shall not operate as a waiver of such right or provision. These Terms of Use operate to the fullest extent permissible by law. We may assign any or all of our rights and obligations to others at any time. We shall not be responsible or liable for any loss, damage, delay, or failure to act caused by any cause beyond our reasonable control. If any provision or part of a provision of these Terms of Use is determined to be unlawful, void, or unenforceable, that provision or part of the provision is deemed severable from these Terms of Use and does not affect the validity and enforceability of any remaining provisions. There is no joint venture, partnership, employment or agency relationship created between you and us as a result of these Terms of Use or use of the Site. You agree that these Terms of Use will not be construed against us by virtue of having drafted them. You hereby waive any and all defenses you may have based on the electronic form of these Terms of Use and the lack of signing by the parties hereto to execute these Terms of Use.

24. CONTACT US

In order to resolve a complaint regarding the Site or to receive further information regarding use of the Site, please contact us at:

FRS Jakub Freisler
ul. Królewska 92 / 8
Kraków, Małopolska 30-079
Poland
Phone: +48882568430
complaint@frsource.org
\ No newline at end of file diff --git a/en.html b/en.html index 5b1667e7..5272db9a 100644 --- a/en.html +++ b/en.html @@ -1 +1 @@ -Fast angle

Fast Angle logo Fast angle

Simple online protractor - measure any angle directly on your image!

Click here to start measurement. To open image, drop it onto this board or use load button below. For better experience - enable fullscreen mode by clicking on button located in bottom-right corner.
?
?
\ No newline at end of file +Fast angle

Fast Angle logo Fast angle

Simple online protractor - measure any angle directly on your image!

Click here to start measurement. To open image, drop it onto this board or use load button below. For better experience - enable fullscreen mode by clicking on button located in bottom-right corner.
?
?
\ No newline at end of file diff --git a/en/privacy-policy.html b/en/privacy-policy.html index 8cb9bc17..d0f25060 100644 --- a/en/privacy-policy.html +++ b/en/privacy-policy.html @@ -1 +1 @@ -Privacy Policy

Fast Angle logo Fast angle

Simple online protractor - measure any angle directly on your image!

PRIVACY NOTICE

Last updated November 03, 2022

This privacy notice for FRS Jakub Freisler ("Company," "we," "us," or "our"), describes how and why we might collect, store, use, and/or share ("process") your information when you use our services ("Services"), such as when you:

  • Download and use our mobile application (Fast Angle), or any other application of ours that links to this privacy notice
  • Engage with us in other related ways, including any sales, marketing, or events

Questions or concerns? Reading this privacy notice will help you understand your privacy rights and choices. If you do not agree with our policies and practices, please do not use our Services. If you still have any questions or concerns, please contact us at hi@frsource.org.

SUMMARY OF KEY POINTS

This summary provides key points from our privacy notice, but you can find out more details about any of these topics by clicking the link following each key point or by using our table of contents below to find the section you are looking for. You can also click here to go directly to our table of contents.

What personal information do we process? When you visit, use, or navigate our Services, we may process personal information depending on how you interact with FRS Jakub Freisler and the Services, the choices you make, and the products and features you use. Click here to learn more.

Do we process any sensitive personal information? We do not process sensitive personal information.

Do we receive any information from third parties? We do not receive any information from third parties.

How do we process your information? We process your information to provide, improve, and administer our Services, communicate with you, for security and fraud prevention, and to comply with law. We may also process your information for other purposes with your consent. We process your information only when we have a valid legal reason to do so. Click here to learn more.

In what situations and with which parties do we share personal information? We may share information in specific situations and with specific third parties. Click here to learn more.

What are your rights? Depending on where you are located geographically, the applicable privacy law may mean you have certain rights regarding your personal information. Click here to learn more.

How do you exercise your rights? The easiest way to exercise your rights is by filling out our data subject request form available here: privacy@frsource.org, or by contacting us. We will consider and act upon any request in accordance with applicable data protection laws.

Want to learn more about what FRS Jakub Freisler does with any information we collect? Click here to review the notice in full.

TABLE OF CONTENTS

  1. WHAT INFORMATION DO WE COLLECT?
  2. HOW DO WE PROCESS YOUR INFORMATION?
  3. WHAT LEGAL BASES DO WE RELY ON TO PROCESS YOUR PERSONAL INFORMATION?
  4. WHEN AND WITH WHOM DO WE SHARE YOUR PERSONAL INFORMATION?
  5. HOW LONG DO WE KEEP YOUR INFORMATION?
  6. WHAT ARE YOUR PRIVACY RIGHTS?
  7. CONTROLS FOR DO-NOT-TRACK FEATURES
  8. DO CALIFORNIA RESIDENTS HAVE SPECIFIC PRIVACY RIGHTS?
  9. DO WE MAKE UPDATES TO THIS NOTICE?
  10. HOW CAN YOU CONTACT US ABOUT THIS NOTICE?
  11. HOW CAN YOU REVIEW, UPDATE, OR DELETE THE DATA WE COLLECT FROM YOU?

1. WHAT INFORMATION DO WE COLLECT?

Personal information you disclose to us

In Short: We collect personal information that you provide to us.

We collect personal information that you voluntarily provide to us when you express an interest in obtaining information about us or our products and Services, when you participate in activities on the Services, or otherwise when you contact us.

Sensitive Information. We do not process sensitive information.

All personal information that you provide to us must be true, complete, and accurate, and you must notify us of any changes to such personal information.

2. HOW DO WE PROCESS YOUR INFORMATION?

In Short: We process your information to provide, improve, and administer our Services, communicate with you, for security and fraud prevention, and to comply with law. We may also process your information for other purposes with your consent.

We process your personal information for a variety of reasons, depending on how you interact with our Services, including:

  • To save or protect an individual's vital interest. We may process your information when necessary to save or protect an individual’s vital interest, such as to prevent harm.

3. WHAT LEGAL BASES DO WE RELY ON TO PROCESS YOUR INFORMATION?

In Short: We only process your personal information when we believe it is necessary and we have a valid legal reason (i.e., legal basis) to do so under applicable law, like with your consent, to comply with laws, to provide you with services to enter into or fulfill our contractual obligations, to protect your rights, or to fulfill our legitimate business interests.

If you are located in the EU or UK, this section applies to you.

The General Data Protection Regulation (GDPR) and UK GDPR require us to explain the valid legal bases we rely on in order to process your personal information. As such, we may rely on the following legal bases to process your personal information:

  • Consent. We may process your information if you have given us permission (i.e., consent) to use your personal information for a specific purpose. You can withdraw your consent at any time. Click here to learn more.
  • Legal Obligations. We may process your information where we believe it is necessary for compliance with our legal obligations, such as to cooperate with a law enforcement body or regulatory agency, exercise or defend our legal rights, or disclose your information as evidence in litigation in which we are involved.
  • Vital Interests. We may process your information where we believe it is necessary to protect your vital interests or the vital interests of a third party, such as situations involving potential threats to the safety of any person.

If you are located in Canada, this section applies to you.

We may process your information if you have given us specific permission (i.e., express consent) to use your personal information for a specific purpose, or in situations where your permission can be inferred (i.e., implied consent). You can withdraw your consent at any time. Click here to learn more.

In some exceptional cases, we may be legally permitted under applicable law to process your information without your consent, including, for example:

  • If collection is clearly in the interests of an individual and consent cannot be obtained in a timely way
  • For investigations and fraud detection and prevention
  • For business transactions provided certain conditions are met
  • If it is contained in a witness statement and the collection is necessary to assess, process, or settle an insurance claim
  • For identifying injured, ill, or deceased persons and communicating with next of kin
  • If we have reasonable grounds to believe an individual has been, is, or may be victim of financial abuse
  • If it is reasonable to expect collection and use with consent would compromise the availability or the accuracy of the information and the collection is reasonable for purposes related to investigating a breach of an agreement or a contravention of the laws of Canada or a province
  • If disclosure is required to comply with a subpoena, warrant, court order, or rules of the court relating to the production of records
  • If it was produced by an individual in the course of their employment, business, or profession and the collection is consistent with the purposes for which the information was produced
  • If the collection is solely for journalistic, artistic, or literary purposes
  • If the information is publicly available and is specified by the regulations

4. WHEN AND WITH WHOM DO WE SHARE YOUR PERSONAL INFORMATION?

In Short: We may share information in specific situations described in this section and/or with the following third parties.

We may need to share your personal information in the following situations:

  • Business Transfers. We may share or transfer your information in connection with, or during negotiations of, any merger, sale of company assets, financing, or acquisition of all or a portion of our business to another company.

5. HOW LONG DO WE KEEP YOUR INFORMATION?

In Short: We keep your information for as long as necessary to fulfill the purposes outlined in this privacy notice unless otherwise required by law.

We will only keep your personal information for as long as it is necessary for the purposes set out in this privacy notice, unless a longer retention period is required or permitted by law (such as tax, accounting, or other legal requirements).

When we have no ongoing legitimate business need to process your personal information, we will either delete or anonymize such information, or, if this is not possible (for example, because your personal information has been stored in backup archives), then we will securely store your personal information and isolate it from any further processing until deletion is possible.

6. WHAT ARE YOUR PRIVACY RIGHTS?

In Short: In some regions, such as the European Economic Area (EEA), United Kingdom (UK), and Canada, you have rights that allow you greater access to and control over your personal information. You may review, change, or terminate your account at any time.

In some regions (like the EEA, UK, and Canada), you have certain rights under applicable data protection laws. These may include the right (i) to request access and obtain a copy of your personal information, (ii) to request rectification or erasure; (iii) to restrict the processing of your personal information; and (iv) if applicable, to data portability. In certain circumstances, you may also have the right to object to the processing of your personal information. You can make such a request by contacting us by using the contact details provided in the section "HOW CAN YOU CONTACT US ABOUT THIS NOTICE?" below.

We will consider and act upon any request in accordance with applicable data protection laws.

 

If you are located in the EEA or UK and you believe we are unlawfully processing your personal information, you also have the right to complain to your local data protection supervisory authority. You can find their contact details here: https://ec.europa.eu/justice/data-protection/bodies/authorities/index_en.htm.

If you are located in Switzerland, the contact details for the data protection authorities are available here: https://www.edoeb.admin.ch/edoeb/en/home.html.

Withdrawing your consent: If we are relying on your consent to process your personal information, which may be express and/or implied consent depending on the applicable law, you have the right to withdraw your consent at any time. You can withdraw your consent at any time by contacting us by using the contact details provided in the section "HOW CAN YOU CONTACT US ABOUT THIS NOTICE?" below.

However, please note that this will not affect the lawfulness of the processing before its withdrawal nor, when applicable law allows, will it affect the processing of your personal information conducted in reliance on lawful processing grounds other than consent.

If you have questions or comments about your privacy rights, you may email us at privacy@frsource.org.

7. CONTROLS FOR DO-NOT-TRACK FEATURES

Most web browsers and some mobile operating systems and mobile applications include a Do-Not-Track ("DNT") feature or setting you can activate to signal your privacy preference not to have data about your online browsing activities monitored and collected. At this stage no uniform technology standard for recognizing and implementing DNT signals has been finalized. As such, we do not currently respond to DNT browser signals or any other mechanism that automatically communicates your choice not to be tracked online. If a standard for online tracking is adopted that we must follow in the future, we will inform you about that practice in a revised version of this privacy notice.

8. DO CALIFORNIA RESIDENTS HAVE SPECIFIC PRIVACY RIGHTS?

In Short: Yes, if you are a resident of California, you are granted specific rights regarding access to your personal information.

California Civil Code Section 1798.83, also known as the "Shine The Light" law, permits our users who are California residents to request and obtain from us, once a year and free of charge, information about categories of personal information (if any) we disclosed to third parties for direct marketing purposes and the names and addresses of all third parties with which we shared personal information in the immediately preceding calendar year. If you are a California resident and would like to make such a request, please submit your request in writing to us using the contact information provided below.

If you are under 18 years of age, reside in California, and have a registered account with Services, you have the right to request removal of unwanted data that you publicly post on the Services. To request removal of such data, please contact us using the contact information provided below and include the email address associated with your account and a statement that you reside in California. We will make sure the data is not publicly displayed on the Services, but please be aware that the data may not be completely or comprehensively removed from all our systems (e.g., backups, etc.).

CCPA Privacy Notice

The California Code of Regulations defines a "resident" as:

(1) every individual who is in the State of California for other than a temporary or transitory purpose and

(2) every individual who is domiciled in the State of California who is outside the State of California for a temporary or transitory purpose

All other individuals are defined as "non-residents."

If this definition of "resident" applies to you, we must adhere to certain rights and obligations regarding your personal information.

What categories of personal information do we collect?

We have collected the following categories of personal information in the past twelve (12) months:

CategoryExamplesCollected

A. Identifiers

Contact details, such as real name, alias, postal address, telephone or mobile contact number, unique personal identifier, online identifier, Internet Protocol address, email address, and account name

NO

B. Personal information categories listed in the California Customer Records statute

Name, contact information, education, employment, employment history, and financial information

NO

C. Protected classification characteristics under California or federal law

Gender and date of birth

NO

D. Commercial information

Transaction information, purchase history, financial details, and payment information

NO

E. Biometric information

Fingerprints and voiceprints

NO

F. Internet or other similar network activity

Browsing history, search history, online behavior, interest data, and interactions with our and other websites, applications, systems, and advertisements

NO

G. Geolocation data

Device location

NO

H. Audio, electronic, visual, thermal, olfactory, or similar information

Images and audio, video or call recordings created in connection with our business activities

NO

I. Professional or employment-related information

Business contact details in order to provide you our Services at a business level or job title, work history, and professional qualifications if you apply for a job with us

NO

J. Education Information

Student records and directory information

NO

K. Inferences drawn from other personal information

Inferences drawn from any of the collected personal information listed above to create a profile or summary about, for example, an individual’s preferences and characteristics

NO

We may also collect other personal information outside of these categories through instances where you interact with us in person, online, or by phone or mail in the context of:

  • Receiving help through our customer support channels;
  • Participation in customer surveys or contests; and
  • Facilitation in the delivery of our Services and to respond to your inquiries.

How do we use and share your personal information?

More information about our data collection and sharing practices can be found in this privacy notice.

You may contact us by email at ccpa@frsource.org, or by referring to the contact details at the bottom of this document.

If you are using an authorized agent to exercise your right to opt out we may deny a request if the authorized agent does not submit proof that they have been validly authorized to act on your behalf.

Will your information be shared with anyone else?

We may disclose your personal information with our service providers pursuant to a written contract between us and each service provider. Each service provider is a for-profit entity that processes the information on our behalf.

We may use your personal information for our own business purposes, such as for undertaking internal research for technological development and demonstration. This is not considered to be "selling" of your personal information.

FRS Jakub Freisler has not disclosed or sold any personal information to third parties for a business or commercial purpose in the preceding twelve (12) months. FRS Jakub Freisler will not sell personal information in the future belonging to website visitors, users, and other consumers.

Your rights with respect to your personal data

Right to request deletion of the data — Request to delete

You can ask for the deletion of your personal information. If you ask us to delete your personal information, we will respect your request and delete your personal information, subject to certain exceptions provided by law, such as (but not limited to) the exercise by another consumer of his or her right to free speech, our compliance requirements resulting from a legal obligation, or any processing that may be required to protect against illegal activities.

Right to be informed — Request to know

Depending on the circumstances, you have a right to know:

  • whether we collect and use your personal information;
  • the categories of personal information that we collect;
  • the purposes for which the collected personal information is used;
  • whether we sell your personal information to third parties;
  • the categories of personal information that we sold or disclosed for a business purpose;
  • the categories of third parties to whom the personal information was sold or disclosed for a business purpose; and
  • the business or commercial purpose for collecting or selling personal information.

In accordance with applicable law, we are not obligated to provide or delete consumer information that is de-identified in response to a consumer request or to re-identify individual data to verify a consumer request.

Right to Non-Discrimination for the Exercise of a Consumer’s Privacy Rights

We will not discriminate against you if you exercise your privacy rights.

Verification process

Upon receiving your request, we will need to verify your identity to determine you are the same person about whom we have the information in our system. These verification efforts require us to ask you to provide information so that we can match it with information you have previously provided us. For instance, depending on the type of request you submit, we may ask you to provide certain information so that we can match the information you provide with the information we already have on file, or we may contact you through a communication method (e.g., phone or email) that you have previously provided to us. We may also use other verification methods as the circumstances dictate.

We will only use personal information provided in your request to verify your identity or authority to make the request. To the extent possible, we will avoid requesting additional information from you for the purposes of verification. However, if we cannot verify your identity from the information already maintained by us, we may request that you provide additional information for the purposes of verifying your identity and for security or fraud-prevention purposes. We will delete such additionally provided information as soon as we finish verifying you.

Other privacy rights

  • You may object to the processing of your personal information.
  • You may request correction of your personal data if it is incorrect or no longer relevant, or ask to restrict the processing of the information.
  • You can designate an authorized agent to make a request under the CCPA on your behalf. We may deny a request from an authorized agent that does not submit proof that they have been validly authorized to act on your behalf in accordance with the CCPA.
  • You may request to opt out from future selling of your personal information to third parties. Upon receiving an opt-out request, we will act upon the request as soon as feasibly possible, but no later than fifteen (15) days from the date of the request submission.

To exercise these rights, you can contact us by email at ccpa@frsource.org, or by referring to the contact details at the bottom of this document. If you have a complaint about how we handle your data, we would like to hear from you.

9. DO WE MAKE UPDATES TO THIS NOTICE?

In Short: Yes, we will update this notice as necessary to stay compliant with relevant laws.

We may update this privacy notice from time to time. The updated version will be indicated by an updated "Revised" date and the updated version will be effective as soon as it is accessible. If we make material changes to this privacy notice, we may notify you either by prominently posting a notice of such changes or by directly sending you a notification. We encourage you to review this privacy notice frequently to be informed of how we are protecting your information.

10. HOW CAN YOU CONTACT US ABOUT THIS NOTICE?

If you have questions or comments about this notice, you may email us at privacy@frsource.org or by post to:

FRS Jakub Freisler
ul. Królewska 92 / 8
Kraków, Małopolska 30-079
Poland

11. HOW CAN YOU REVIEW, UPDATE, OR DELETE THE DATA WE COLLECT FROM YOU?

Based on the applicable laws of your country, you may have the right to request access to the personal information we collect from you, change that information, or delete it. To request to review, update, or delete your personal information, please email us at: privacy@frsource.org.

\ No newline at end of file +Privacy Policy

Fast Angle logo Fast angle

Simple online protractor - measure any angle directly on your image!

PRIVACY NOTICE

Last updated November 03, 2022

This privacy notice for FRS Jakub Freisler ("Company," "we," "us," or "our"), describes how and why we might collect, store, use, and/or share ("process") your information when you use our services ("Services"), such as when you:

  • Download and use our mobile application (Fast Angle), or any other application of ours that links to this privacy notice
  • Engage with us in other related ways, including any sales, marketing, or events

Questions or concerns? Reading this privacy notice will help you understand your privacy rights and choices. If you do not agree with our policies and practices, please do not use our Services. If you still have any questions or concerns, please contact us at hi@frsource.org.

SUMMARY OF KEY POINTS

This summary provides key points from our privacy notice, but you can find out more details about any of these topics by clicking the link following each key point or by using our table of contents below to find the section you are looking for. You can also click here to go directly to our table of contents.

What personal information do we process? When you visit, use, or navigate our Services, we may process personal information depending on how you interact with FRS Jakub Freisler and the Services, the choices you make, and the products and features you use. Click here to learn more.

Do we process any sensitive personal information? We do not process sensitive personal information.

Do we receive any information from third parties? We do not receive any information from third parties.

How do we process your information? We process your information to provide, improve, and administer our Services, communicate with you, for security and fraud prevention, and to comply with law. We may also process your information for other purposes with your consent. We process your information only when we have a valid legal reason to do so. Click here to learn more.

In what situations and with which parties do we share personal information? We may share information in specific situations and with specific third parties. Click here to learn more.

What are your rights? Depending on where you are located geographically, the applicable privacy law may mean you have certain rights regarding your personal information. Click here to learn more.

How do you exercise your rights? The easiest way to exercise your rights is by filling out our data subject request form available here: privacy@frsource.org, or by contacting us. We will consider and act upon any request in accordance with applicable data protection laws.

Want to learn more about what FRS Jakub Freisler does with any information we collect? Click here to review the notice in full.

TABLE OF CONTENTS

  1. WHAT INFORMATION DO WE COLLECT?
  2. HOW DO WE PROCESS YOUR INFORMATION?
  3. WHAT LEGAL BASES DO WE RELY ON TO PROCESS YOUR PERSONAL INFORMATION?
  4. WHEN AND WITH WHOM DO WE SHARE YOUR PERSONAL INFORMATION?
  5. HOW LONG DO WE KEEP YOUR INFORMATION?
  6. WHAT ARE YOUR PRIVACY RIGHTS?
  7. CONTROLS FOR DO-NOT-TRACK FEATURES
  8. DO CALIFORNIA RESIDENTS HAVE SPECIFIC PRIVACY RIGHTS?
  9. DO WE MAKE UPDATES TO THIS NOTICE?
  10. HOW CAN YOU CONTACT US ABOUT THIS NOTICE?
  11. HOW CAN YOU REVIEW, UPDATE, OR DELETE THE DATA WE COLLECT FROM YOU?

1. WHAT INFORMATION DO WE COLLECT?

Personal information you disclose to us

In Short: We collect personal information that you provide to us.

We collect personal information that you voluntarily provide to us when you express an interest in obtaining information about us or our products and Services, when you participate in activities on the Services, or otherwise when you contact us.

Sensitive Information. We do not process sensitive information.

All personal information that you provide to us must be true, complete, and accurate, and you must notify us of any changes to such personal information.

2. HOW DO WE PROCESS YOUR INFORMATION?

In Short: We process your information to provide, improve, and administer our Services, communicate with you, for security and fraud prevention, and to comply with law. We may also process your information for other purposes with your consent.

We process your personal information for a variety of reasons, depending on how you interact with our Services, including:

  • To save or protect an individual's vital interest. We may process your information when necessary to save or protect an individual’s vital interest, such as to prevent harm.

3. WHAT LEGAL BASES DO WE RELY ON TO PROCESS YOUR INFORMATION?

In Short: We only process your personal information when we believe it is necessary and we have a valid legal reason (i.e., legal basis) to do so under applicable law, like with your consent, to comply with laws, to provide you with services to enter into or fulfill our contractual obligations, to protect your rights, or to fulfill our legitimate business interests.

If you are located in the EU or UK, this section applies to you.

The General Data Protection Regulation (GDPR) and UK GDPR require us to explain the valid legal bases we rely on in order to process your personal information. As such, we may rely on the following legal bases to process your personal information:

  • Consent. We may process your information if you have given us permission (i.e., consent) to use your personal information for a specific purpose. You can withdraw your consent at any time. Click here to learn more.
  • Legal Obligations. We may process your information where we believe it is necessary for compliance with our legal obligations, such as to cooperate with a law enforcement body or regulatory agency, exercise or defend our legal rights, or disclose your information as evidence in litigation in which we are involved.
  • Vital Interests. We may process your information where we believe it is necessary to protect your vital interests or the vital interests of a third party, such as situations involving potential threats to the safety of any person.

If you are located in Canada, this section applies to you.

We may process your information if you have given us specific permission (i.e., express consent) to use your personal information for a specific purpose, or in situations where your permission can be inferred (i.e., implied consent). You can withdraw your consent at any time. Click here to learn more.

In some exceptional cases, we may be legally permitted under applicable law to process your information without your consent, including, for example:

  • If collection is clearly in the interests of an individual and consent cannot be obtained in a timely way
  • For investigations and fraud detection and prevention
  • For business transactions provided certain conditions are met
  • If it is contained in a witness statement and the collection is necessary to assess, process, or settle an insurance claim
  • For identifying injured, ill, or deceased persons and communicating with next of kin
  • If we have reasonable grounds to believe an individual has been, is, or may be victim of financial abuse
  • If it is reasonable to expect collection and use with consent would compromise the availability or the accuracy of the information and the collection is reasonable for purposes related to investigating a breach of an agreement or a contravention of the laws of Canada or a province
  • If disclosure is required to comply with a subpoena, warrant, court order, or rules of the court relating to the production of records
  • If it was produced by an individual in the course of their employment, business, or profession and the collection is consistent with the purposes for which the information was produced
  • If the collection is solely for journalistic, artistic, or literary purposes
  • If the information is publicly available and is specified by the regulations

4. WHEN AND WITH WHOM DO WE SHARE YOUR PERSONAL INFORMATION?

In Short: We may share information in specific situations described in this section and/or with the following third parties.

We may need to share your personal information in the following situations:

  • Business Transfers. We may share or transfer your information in connection with, or during negotiations of, any merger, sale of company assets, financing, or acquisition of all or a portion of our business to another company.

5. HOW LONG DO WE KEEP YOUR INFORMATION?

In Short: We keep your information for as long as necessary to fulfill the purposes outlined in this privacy notice unless otherwise required by law.

We will only keep your personal information for as long as it is necessary for the purposes set out in this privacy notice, unless a longer retention period is required or permitted by law (such as tax, accounting, or other legal requirements).

When we have no ongoing legitimate business need to process your personal information, we will either delete or anonymize such information, or, if this is not possible (for example, because your personal information has been stored in backup archives), then we will securely store your personal information and isolate it from any further processing until deletion is possible.

6. WHAT ARE YOUR PRIVACY RIGHTS?

In Short: In some regions, such as the European Economic Area (EEA), United Kingdom (UK), and Canada, you have rights that allow you greater access to and control over your personal information. You may review, change, or terminate your account at any time.

In some regions (like the EEA, UK, and Canada), you have certain rights under applicable data protection laws. These may include the right (i) to request access and obtain a copy of your personal information, (ii) to request rectification or erasure; (iii) to restrict the processing of your personal information; and (iv) if applicable, to data portability. In certain circumstances, you may also have the right to object to the processing of your personal information. You can make such a request by contacting us by using the contact details provided in the section "HOW CAN YOU CONTACT US ABOUT THIS NOTICE?" below.

We will consider and act upon any request in accordance with applicable data protection laws.

 

If you are located in the EEA or UK and you believe we are unlawfully processing your personal information, you also have the right to complain to your local data protection supervisory authority. You can find their contact details here: https://ec.europa.eu/justice/data-protection/bodies/authorities/index_en.htm.

If you are located in Switzerland, the contact details for the data protection authorities are available here: https://www.edoeb.admin.ch/edoeb/en/home.html.

Withdrawing your consent: If we are relying on your consent to process your personal information, which may be express and/or implied consent depending on the applicable law, you have the right to withdraw your consent at any time. You can withdraw your consent at any time by contacting us by using the contact details provided in the section "HOW CAN YOU CONTACT US ABOUT THIS NOTICE?" below.

However, please note that this will not affect the lawfulness of the processing before its withdrawal nor, when applicable law allows, will it affect the processing of your personal information conducted in reliance on lawful processing grounds other than consent.

If you have questions or comments about your privacy rights, you may email us at privacy@frsource.org.

7. CONTROLS FOR DO-NOT-TRACK FEATURES

Most web browsers and some mobile operating systems and mobile applications include a Do-Not-Track ("DNT") feature or setting you can activate to signal your privacy preference not to have data about your online browsing activities monitored and collected. At this stage no uniform technology standard for recognizing and implementing DNT signals has been finalized. As such, we do not currently respond to DNT browser signals or any other mechanism that automatically communicates your choice not to be tracked online. If a standard for online tracking is adopted that we must follow in the future, we will inform you about that practice in a revised version of this privacy notice.

8. DO CALIFORNIA RESIDENTS HAVE SPECIFIC PRIVACY RIGHTS?

In Short: Yes, if you are a resident of California, you are granted specific rights regarding access to your personal information.

California Civil Code Section 1798.83, also known as the "Shine The Light" law, permits our users who are California residents to request and obtain from us, once a year and free of charge, information about categories of personal information (if any) we disclosed to third parties for direct marketing purposes and the names and addresses of all third parties with which we shared personal information in the immediately preceding calendar year. If you are a California resident and would like to make such a request, please submit your request in writing to us using the contact information provided below.

If you are under 18 years of age, reside in California, and have a registered account with Services, you have the right to request removal of unwanted data that you publicly post on the Services. To request removal of such data, please contact us using the contact information provided below and include the email address associated with your account and a statement that you reside in California. We will make sure the data is not publicly displayed on the Services, but please be aware that the data may not be completely or comprehensively removed from all our systems (e.g., backups, etc.).

CCPA Privacy Notice

The California Code of Regulations defines a "resident" as:

(1) every individual who is in the State of California for other than a temporary or transitory purpose and

(2) every individual who is domiciled in the State of California who is outside the State of California for a temporary or transitory purpose

All other individuals are defined as "non-residents."

If this definition of "resident" applies to you, we must adhere to certain rights and obligations regarding your personal information.

What categories of personal information do we collect?

We have collected the following categories of personal information in the past twelve (12) months:

CategoryExamplesCollected

A. Identifiers

Contact details, such as real name, alias, postal address, telephone or mobile contact number, unique personal identifier, online identifier, Internet Protocol address, email address, and account name

NO

B. Personal information categories listed in the California Customer Records statute

Name, contact information, education, employment, employment history, and financial information

NO

C. Protected classification characteristics under California or federal law

Gender and date of birth

NO

D. Commercial information

Transaction information, purchase history, financial details, and payment information

NO

E. Biometric information

Fingerprints and voiceprints

NO

F. Internet or other similar network activity

Browsing history, search history, online behavior, interest data, and interactions with our and other websites, applications, systems, and advertisements

NO

G. Geolocation data

Device location

NO

H. Audio, electronic, visual, thermal, olfactory, or similar information

Images and audio, video or call recordings created in connection with our business activities

NO

I. Professional or employment-related information

Business contact details in order to provide you our Services at a business level or job title, work history, and professional qualifications if you apply for a job with us

NO

J. Education Information

Student records and directory information

NO

K. Inferences drawn from other personal information

Inferences drawn from any of the collected personal information listed above to create a profile or summary about, for example, an individual’s preferences and characteristics

NO

We may also collect other personal information outside of these categories through instances where you interact with us in person, online, or by phone or mail in the context of:

  • Receiving help through our customer support channels;
  • Participation in customer surveys or contests; and
  • Facilitation in the delivery of our Services and to respond to your inquiries.

How do we use and share your personal information?

More information about our data collection and sharing practices can be found in this privacy notice.

You may contact us by email at ccpa@frsource.org, or by referring to the contact details at the bottom of this document.

If you are using an authorized agent to exercise your right to opt out we may deny a request if the authorized agent does not submit proof that they have been validly authorized to act on your behalf.

Will your information be shared with anyone else?

We may disclose your personal information with our service providers pursuant to a written contract between us and each service provider. Each service provider is a for-profit entity that processes the information on our behalf.

We may use your personal information for our own business purposes, such as for undertaking internal research for technological development and demonstration. This is not considered to be "selling" of your personal information.

FRS Jakub Freisler has not disclosed or sold any personal information to third parties for a business or commercial purpose in the preceding twelve (12) months. FRS Jakub Freisler will not sell personal information in the future belonging to website visitors, users, and other consumers.

Your rights with respect to your personal data

Right to request deletion of the data — Request to delete

You can ask for the deletion of your personal information. If you ask us to delete your personal information, we will respect your request and delete your personal information, subject to certain exceptions provided by law, such as (but not limited to) the exercise by another consumer of his or her right to free speech, our compliance requirements resulting from a legal obligation, or any processing that may be required to protect against illegal activities.

Right to be informed — Request to know

Depending on the circumstances, you have a right to know:

  • whether we collect and use your personal information;
  • the categories of personal information that we collect;
  • the purposes for which the collected personal information is used;
  • whether we sell your personal information to third parties;
  • the categories of personal information that we sold or disclosed for a business purpose;
  • the categories of third parties to whom the personal information was sold or disclosed for a business purpose; and
  • the business or commercial purpose for collecting or selling personal information.

In accordance with applicable law, we are not obligated to provide or delete consumer information that is de-identified in response to a consumer request or to re-identify individual data to verify a consumer request.

Right to Non-Discrimination for the Exercise of a Consumer’s Privacy Rights

We will not discriminate against you if you exercise your privacy rights.

Verification process

Upon receiving your request, we will need to verify your identity to determine you are the same person about whom we have the information in our system. These verification efforts require us to ask you to provide information so that we can match it with information you have previously provided us. For instance, depending on the type of request you submit, we may ask you to provide certain information so that we can match the information you provide with the information we already have on file, or we may contact you through a communication method (e.g., phone or email) that you have previously provided to us. We may also use other verification methods as the circumstances dictate.

We will only use personal information provided in your request to verify your identity or authority to make the request. To the extent possible, we will avoid requesting additional information from you for the purposes of verification. However, if we cannot verify your identity from the information already maintained by us, we may request that you provide additional information for the purposes of verifying your identity and for security or fraud-prevention purposes. We will delete such additionally provided information as soon as we finish verifying you.

Other privacy rights

  • You may object to the processing of your personal information.
  • You may request correction of your personal data if it is incorrect or no longer relevant, or ask to restrict the processing of the information.
  • You can designate an authorized agent to make a request under the CCPA on your behalf. We may deny a request from an authorized agent that does not submit proof that they have been validly authorized to act on your behalf in accordance with the CCPA.
  • You may request to opt out from future selling of your personal information to third parties. Upon receiving an opt-out request, we will act upon the request as soon as feasibly possible, but no later than fifteen (15) days from the date of the request submission.

To exercise these rights, you can contact us by email at ccpa@frsource.org, or by referring to the contact details at the bottom of this document. If you have a complaint about how we handle your data, we would like to hear from you.

9. DO WE MAKE UPDATES TO THIS NOTICE?

In Short: Yes, we will update this notice as necessary to stay compliant with relevant laws.

We may update this privacy notice from time to time. The updated version will be indicated by an updated "Revised" date and the updated version will be effective as soon as it is accessible. If we make material changes to this privacy notice, we may notify you either by prominently posting a notice of such changes or by directly sending you a notification. We encourage you to review this privacy notice frequently to be informed of how we are protecting your information.

10. HOW CAN YOU CONTACT US ABOUT THIS NOTICE?

If you have questions or comments about this notice, you may email us at privacy@frsource.org or by post to:

FRS Jakub Freisler
ul. Królewska 92 / 8
Kraków, Małopolska 30-079
Poland

11. HOW CAN YOU REVIEW, UPDATE, OR DELETE THE DATA WE COLLECT FROM YOU?

Based on the applicable laws of your country, you may have the right to request access to the personal information we collect from you, change that information, or delete it. To request to review, update, or delete your personal information, please email us at: privacy@frsource.org.

\ No newline at end of file diff --git a/en/terms.html b/en/terms.html index 7a9b1213..a6b6e811 100644 --- a/en/terms.html +++ b/en/terms.html @@ -1 +1 @@ -Terms and Conditions

Fast Angle logo Fast angle

Simple online protractor - measure any angle directly on your image!

Terms and Conditions

Last updated November 03, 2022

TABLE OF CONTENTS

  1. AGREEMENT TO TERMS
  2. INTELLECTUAL PROPERTY RIGHTS
  3. USER REPRESENTATIONS
  4. PROHIBITED ACTIVITIES
  5. USER GENERATED CONTRIBUTIONS
  6. CONTRIBUTION LICENSE
  7. MOBILE APPLICATION LICENSE
  8. SUBMISSIONS
  9. THIRD-PARTY WEBSITE AND CONTENT
  10. SITE MANAGEMENT
  11. PRIVACY POLICY
  12. TERM AND TERMINATION
  13. MODIFICATIONS AND INTERRUPTIONS
  14. GOVERNING LAW
  15. DISPUTE RESOLUTION
  16. CORRECTIONS
  17. DISCLAIMER
  18. LIMITATIONS OF LIABILITY
  19. INDEMNIFICATION
  20. USER DATA
  21. ELECTRONIC COMMUNICATIONS, TRANSACTIONS, AND SIGNATURES
  22. CALIFORNIA USERS AND RESIDENTS
  23. MISCELLANEOUS
  24. CONTACT US

1. AGREEMENT TO TERMS

These Terms of Use constitute a legally binding agreement made between you, whether personally or on behalf of an entity (“you”) and FRS Jakub Freisler ("Company," “we," “us," or “our”), concerning your access to and use of the https://www.frsource.org/fast-angle/ website as well as any other media form, media channel, mobile website or mobile application related, linked, or otherwise connected thereto (collectively, the “Site”). We are registered in Poland and have our registered office at ul. Królewska 92 / 8, Kraków, Małopolska 30-079. Our VAT number is PL 6783179514. You agree that by accessing the Site, you have read, understood, and agreed to be bound by all of these Terms of Use. IF YOU DO NOT AGREE WITH ALL OF THESE TERMS OF USE, THEN YOU ARE EXPRESSLY PROHIBITED FROM USING THE SITE AND YOU MUST DISCONTINUE USE IMMEDIATELY.

Supplemental terms and conditions or documents that may be posted on the Site from time to time are hereby expressly incorporated herein by reference. We reserve the right, in our sole discretion, to make changes or modifications to these Terms of Use from time to time. We will alert you about any changes by updating the “Last updated” date of these Terms of Use, and you waive any right to receive specific notice of each such change. Please ensure that you check the applicable Terms every time you use our Site so that you understand which Terms apply. You will be subject to, and will be deemed to have been made aware of and to have accepted, the changes in any revised Terms of Use by your continued use of the Site after the date such revised Terms of Use are posted.

The information provided on the Site is not intended for distribution to or use by any person or entity in any jurisdiction or country where such distribution or use would be contrary to law or regulation or which would subject us to any registration requirement within such jurisdiction or country. Accordingly, those persons who choose to access the Site from other locations do so on their own initiative and are solely responsible for compliance with local laws, if and to the extent local laws are applicable.

The Site is not tailored to comply with industry-specific regulations (Health Insurance Portability and Accountability Act (HIPAA), Federal Information Security Management Act (FISMA), etc.), so if your interactions would be subjected to such laws, you may not use this Site. You may not use the Site in a way that would violate the Gramm-Leach-Bliley Act (GLBA).

All users who are minors in the jurisdiction in which they reside (generally under the age of 18) must have the permission of, and be directly supervised by, their parent or guardian to use the Site. If you are a minor, you must have your parent or guardian read and agree to these Terms of Use prior to you using the Site.

2. INTELLECTUAL PROPERTY RIGHTS

Unless otherwise indicated, the Site is our proprietary property and all source code, databases, functionality, software, website designs, audio, video, text, photographs, and graphics on the Site (collectively, the “Content”) and the trademarks, service marks, and logos contained therein (the “Marks”) are owned or controlled by us or licensed to us, and are protected by copyright and trademark laws and various other intellectual property rights and unfair competition laws of the United States, international copyright laws, and international conventions. The Content and the Marks are provided on the Site “AS IS” for your information and personal use only. Except as expressly provided in these Terms of Use, no part of the Site and no Content or Marks may be copied, reproduced, aggregated, republished, uploaded, posted, publicly displayed, encoded, translated, transmitted, distributed, sold, licensed, or otherwise exploited for any commercial purpose whatsoever, without our express prior written permission.

Provided that you are eligible to use the Site, you are granted a limited license to access and use the Site and to download or print a copy of any portion of the Content to which you have properly gained access solely for your personal, non-commercial use. We reserve all rights not expressly granted to you in and to the Site, the Content and the Marks.

3. USER REPRESENTATIONS

By using the Site, you represent and warrant that: (1) you have the legal capacity and you agree to comply with these Terms of Use; (2) you are not a minor in the jurisdiction in which you reside, or if a minor, you have received parental permission to use the Site; (3) you will not access the Site through automated or non-human means, whether through a bot, script, or otherwise; (4) you will not use the Site for any illegal or unauthorized purpose; and (5) your use of the Site will not violate any applicable law or regulation.

If you provide any information that is untrue, inaccurate, not current, or incomplete, we have the right to suspend or terminate your account and refuse any and all current or future use of the Site (or any portion thereof).

4. PROHIBITED ACTIVITIES

You may not access or use the Site for any purpose other than that for which we make the Site available. The Site may not be used in connection with any commercial endeavors except those that are specifically endorsed or approved by us.

As a user of the Site, you agree not to:

  • Systematically retrieve data or other content from the Site to create or compile, directly or indirectly, a collection, compilation, database, or directory without written permission from us.
  • Trick, defraud, or mislead us and other users, especially in any attempt to learn sensitive account information such as user passwords.
  • Circumvent, disable, or otherwise interfere with security-related features of the Site, including features that prevent or restrict the use or copying of any Content or enforce limitations on the use of the Site and/or the Content contained therein.
  • Disparage, tarnish, or otherwise harm, in our opinion, us and/or the Site.
  • Use any information obtained from the Site in order to harass, abuse, or harm another person.
  • Make improper use of our support services or submit false reports of abuse or misconduct.
  • Use the Site in a manner inconsistent with any applicable laws or regulations.
  • Engage in unauthorized framing of or linking to the Site.
  • Upload or transmit (or attempt to upload or to transmit) viruses, Trojan horses, or other material, including excessive use of capital letters and spamming (continuous posting of repetitive text), that interferes with any party’s uninterrupted use and enjoyment of the Site or modifies, impairs, disrupts, alters, or interferes with the use, features, functions, operation, or maintenance of the Site.
  • Engage in any automated use of the system, such as using scripts to send comments or messages, or using any data mining, robots, or similar data gathering and extraction tools.
  • Delete the copyright or other proprietary rights notice from any Content.
  • Attempt to impersonate another user or person or use the username of another user.
  • Upload or transmit (or attempt to upload or to transmit) any material that acts as a passive or active information collection or transmission mechanism, including without limitation, clear graphics interchange formats (“gifs”), 1×1 pixels, web bugs, cookies, or other similar devices (sometimes referred to as “spyware” or “passive collection mechanisms” or “pcms”).
  • Interfere with, disrupt, or create an undue burden on the Site or the networks or services connected to the Site.
  • Harass, annoy, intimidate, or threaten any of our employees or agents engaged in providing any portion of the Site to you.
  • Attempt to bypass any measures of the Site designed to prevent or restrict access to the Site, or any portion of the Site.
  • Copy or adapt the Site’s software, including but not limited to Flash, PHP, HTML, JavaScript, or other code.
  • Except as permitted by applicable law, decipher, decompile, disassemble, or reverse engineer any of the software comprising or in any way making up a part of the Site.
  • Except as may be the result of standard search engine or Internet browser usage, use, launch, develop, or distribute any automated system, including without limitation, any spider, robot, cheat utility, scraper, or offline reader that accesses the Site, or using or launching any unauthorized script or other software.
  • Use a buying agent or purchasing agent to make purchases on the Site.
  • Make any unauthorized use of the Site, including collecting usernames and/or email addresses of users by electronic or other means for the purpose of sending unsolicited email, or creating user accounts by automated means or under false pretenses.
  • Use the Site as part of any effort to compete with us or otherwise use the Site and/or the Content for any revenue-generating endeavor or commercial enterprise.
  • Use the Site to advertise or offer to sell goods and services.
  • Sell or otherwise transfer your profile.

5. USER GENERATED CONTRIBUTIONS

The Site does not offer users to submit or post content. We may provide you with the opportunity to create, submit, post, display, transmit, perform, publish, distribute, or broadcast content and materials to us or on the Site, including but not limited to text, writings, video, audio, photographs, graphics, comments, suggestions, or personal information or other material (collectively, "Contributions"). Contributions may be viewable by other users of the Site and through third-party websites. As such, any Contributions you transmit may be treated in accordance with the Site Privacy Policy. When you create or make available any Contributions, you thereby represent and warrant that:

  • The creation, distribution, transmission, public display, or performance, and the accessing, downloading, or copying of your Contributions do not and will not infringe the proprietary rights, including but not limited to the copyright, patent, trademark, trade secret, or moral rights of any third party.
  • You are the creator and owner of or have the necessary licenses, rights, consents, releases, and permissions to use and to authorize us, the Site, and other users of the Site to use your Contributions in any manner contemplated by the Site and these Terms of Use.
  • You have the written consent, release, and/or permission of each and every identifiable individual person in your Contributions to use the name or likeness of each and every such identifiable individual person to enable inclusion and use of your Contributions in any manner contemplated by the Site and these Terms of Use.
  • Your Contributions are not false, inaccurate, or misleading.
  • Your Contributions are not unsolicited or unauthorized advertising, promotional materials, pyramid schemes, chain letters, spam, mass mailings, or other forms of solicitation.
  • Your Contributions are not obscene, lewd, lascivious, filthy, violent, harassing, libelous, slanderous, or otherwise objectionable (as determined by us).
  • Your Contributions do not ridicule, mock, disparage, intimidate, or abuse anyone.
  • Your Contributions are not used to harass or threaten (in the legal sense of those terms) any other person and to promote violence against a specific person or class of people.
  • Your Contributions do not violate any applicable law, regulation, or rule.
  • Your Contributions do not violate the privacy or publicity rights of any third party.
  • Your Contributions do not violate any applicable law concerning child pornography, or otherwise intended to protect the health or well-being of minors.
  • Your Contributions do not include any offensive comments that are connected to race, national origin, gender, sexual preference, or physical handicap.
  • Your Contributions do not otherwise violate, or link to material that violates, any provision of these Terms of Use, or any applicable law or regulation.

Any use of the Site in violation of the foregoing violates these Terms of Use and may result in, among other things, termination or suspension of your rights to use the Site.

6. CONTRIBUTION LICENSE

You agree that we may access, store, process, and use any information and personal data that you provide following the terms of the Privacy Policy and your choices (including settings).

By submitting suggestions or other feedback regarding the Site, you agree that we can use and share such feedback for any purpose without compensation to you.

We do not assert any ownership over your Contributions. You retain full ownership of all of your Contributions and any intellectual property rights or other proprietary rights associated with your Contributions. We are not liable for any statements or representations in your Contributions provided by you in any area on the Site. You are solely responsible for your Contributions to the Site and you expressly agree to exonerate us from any and all responsibility and to refrain from any legal action against us regarding your Contributions.

7. MOBILE APPLICATION LICENSE

Use License

If you access the Site via a mobile application, then we grant you a revocable, non-exclusive, non-transferable, limited right to install and use the mobile application on wireless electronic devices owned or controlled by you, and to access and use the mobile application on such devices strictly in accordance with the terms and conditions of this mobile application license contained in these Terms of Use. You shall not: (1) except as permitted by applicable law, decompile, reverse engineer, disassemble, attempt to derive the source code of, or decrypt the application; (2) make any modification, adaptation, improvement, enhancement, translation, or derivative work from the application; (3) violate any applicable laws, rules, or regulations in connection with your access or use of the application; (4) remove, alter, or obscure any proprietary notice (including any notice of copyright or trademark) posted by us or the licensors of the application; (5) use the application for any revenue generating endeavor, commercial enterprise, or other purpose for which it is not designed or intended; (6) make the application available over a network or other environment permitting access or use by multiple devices or users at the same time; (7) use the application for creating a product, service, or software that is, directly or indirectly, competitive with or in any way a substitute for the application; (8) use the application to send automated queries to any website or to send any unsolicited commercial e-mail; or (9) use any proprietary information or any of our interfaces or our other intellectual property in the design, development, manufacture, licensing, or distribution of any applications, accessories, or devices for use with the application.

Apple and Android Devices

The following terms apply when you use a mobile application obtained from either the Apple Store or Google Play (each an “App Distributor”) to access the Site: (1) the license granted to you for our mobile application is limited to a non-transferable license to use the application on a device that utilizes the Apple iOS or Android operating systems, as applicable, and in accordance with the usage rules set forth in the applicable App Distributor’s terms of service; (2) we are responsible for providing any maintenance and support services with respect to the mobile application as specified in the terms and conditions of this mobile application license contained in these Terms of Use or as otherwise required under applicable law, and you acknowledge that each App Distributor has no obligation whatsoever to furnish any maintenance and support services with respect to the mobile application; (3) in the event of any failure of the mobile application to conform to any applicable warranty, you may notify the applicable App Distributor, and the App Distributor, in accordance with its terms and policies, may refund the purchase price, if any, paid for the mobile application, and to the maximum extent permitted by applicable law, the App Distributor will have no other warranty obligation whatsoever with respect to the mobile application; (4) you represent and warrant that (i) you are not located in a country that is subject to a U.S. government embargo, or that has been designated by the U.S. government as a “terrorist supporting” country and (ii) you are not listed on any U.S. government list of prohibited or restricted parties; (5) you must comply with applicable third-party terms of agreement when using the mobile application, e.g., if you have a VoIP application, then you must not be in violation of their wireless data service agreement when using the mobile application; and (6) you acknowledge and agree that the App Distributors are third-party beneficiaries of the terms and conditions in this mobile application license contained in these Terms of Use, and that each App Distributor will have the right (and will be deemed to have accepted the right) to enforce the terms and conditions in this mobile application license contained in these Terms of Use against you as a third-party beneficiary thereof.

8. SUBMISSIONS

You acknowledge and agree that any questions, comments, suggestions, ideas, feedback, or other information regarding the Site ("Submissions") provided by you to us are non-confidential and shall become our sole property. We shall own exclusive rights, including all intellectual property rights, and shall be entitled to the unrestricted use and dissemination of these Submissions for any lawful purpose, commercial or otherwise, without acknowledgment or compensation to you. You hereby waive all moral rights to any such Submissions, and you hereby warrant that any such Submissions are original with you or that you have the right to submit such Submissions. You agree there shall be no recourse against us for any alleged or actual infringement or misappropriation of any proprietary right in your Submissions.

9. THIRD-PARTY WEBSITE AND CONTENT

The Site may contain (or you may be sent via the Site) links to other websites ("Third-Party Websites") as well as articles, photographs, text, graphics, pictures, designs, music, sound, video, information, applications, software, and other content or items belonging to or originating from third parties ("Third-Party Content"). Such Third-Party Websites and Third-Party Content are not investigated, monitored, or checked for accuracy, appropriateness, or completeness by us, and we are not responsible for any Third-Party Websites accessed through the Site or any Third-Party Content posted on, available through, or installed from the Site, including the content, accuracy, offensiveness, opinions, reliability, privacy practices, or other policies of or contained in the Third-Party Websites or the Third-Party Content. Inclusion of, linking to, or permitting the use or installation of any Third-Party Websites or any Third-Party Content does not imply approval or endorsement thereof by us. If you decide to leave the Site and access the Third-Party Websites or to use or install any Third-Party Content, you do so at your own risk, and you should be aware these Terms of Use no longer govern. You should review the applicable terms and policies, including privacy and data gathering practices, of any website to which you navigate from the Site or relating to any applications you use or install from the Site. Any purchases you make through Third-Party Websites will be through other websites and from other companies, and we take no responsibility whatsoever in relation to such purchases which are exclusively between you and the applicable third party. You agree and acknowledge that we do not endorse the products or services offered on Third-Party Websites and you shall hold us harmless from any harm caused by your purchase of such products or services. Additionally, you shall hold us harmless from any losses sustained by you or harm caused to you relating to or resulting in any way from any Third-Party Content or any contact with Third-Party Websites.

10. SITE MANAGEMENT

We reserve the right, but not the obligation, to: (1) monitor the Site for violations of these Terms of Use; (2) take appropriate legal action against anyone who, in our sole discretion, violates the law or these Terms of Use, including without limitation, reporting such user to law enforcement authorities; (3) in our sole discretion and without limitation, refuse, restrict access to, limit the availability of, or disable (to the extent technologically feasible) any of your Contributions or any portion thereof; (4) in our sole discretion and without limitation, notice, or liability, to remove from the Site or otherwise disable all files and content that are excessive in size or are in any way burdensome to our systems; and (5) otherwise manage the Site in a manner designed to protect our rights and property and to facilitate the proper functioning of the Site.

11. PRIVACY POLICY

We care about data privacy and security. Please review our Privacy Policy: https://www.frsource.org/fast-angle/pl/privacy-policy. By using the Site, you agree to be bound by our Privacy Policy, which is incorporated into these Terms of Use. Please be advised the Site is hosted in the United States. If you access the Site from any other region of the world with laws or other requirements governing personal data collection, use, or disclosure that differ from applicable laws in the United States, then through your continued use of the Site, you are transferring your data to the United States, and you agree to have your data transferred to and processed in the United States.

12. TERM AND TERMINATION

These Terms of Use shall remain in full force and effect while you use the Site. WITHOUT LIMITING ANY OTHER PROVISION OF THESE TERMS OF USE, WE RESERVE THE RIGHT TO, IN OUR SOLE DISCRETION AND WITHOUT NOTICE OR LIABILITY, DENY ACCESS TO AND USE OF THE SITE (INCLUDING BLOCKING CERTAIN IP ADDRESSES), TO ANY PERSON FOR ANY REASON OR FOR NO REASON, INCLUDING WITHOUT LIMITATION FOR BREACH OF ANY REPRESENTATION, WARRANTY, OR COVENANT CONTAINED IN THESE TERMS OF USE OR OF ANY APPLICABLE LAW OR REGULATION. WE MAY TERMINATE YOUR USE OR PARTICIPATION IN THE SITE OR DELETE ANY CONTENT OR INFORMATION THAT YOU POSTED AT ANY TIME, WITHOUT WARNING, IN OUR SOLE DISCRETION.

If we terminate or suspend your account for any reason, you are prohibited from registering and creating a new account under your name, a fake or borrowed name, or the name of any third party, even if you may be acting on behalf of the third party. In addition to terminating or suspending your account, we reserve the right to take appropriate legal action, including without limitation pursuing civil, criminal, and injunctive redress.

13. MODIFICATIONS AND INTERRUPTIONS

We reserve the right to change, modify, or remove the contents of the Site at any time or for any reason at our sole discretion without notice. However, we have no obligation to update any information on our Site. We also reserve the right to modify or discontinue all or part of the Site without notice at any time. We will not be liable to you or any third party for any modification, price change, suspension, or discontinuance of the Site.

We cannot guarantee the Site will be available at all times. We may experience hardware, software, or other problems or need to perform maintenance related to the Site, resulting in interruptions, delays, or errors. We reserve the right to change, revise, update, suspend, discontinue, or otherwise modify the Site at any time or for any reason without notice to you. You agree that we have no liability whatsoever for any loss, damage, or inconvenience caused by your inability to access or use the Site during any downtime or discontinuance of the Site. Nothing in these Terms of Use will be construed to obligate us to maintain and support the Site or to supply any corrections, updates, or releases in connection therewith.

14. GOVERNING LAW

These conditions are governed by and interpreted following the laws of Poland, and the use of the United Nations Convention of Contracts for the International Sale of Goods is expressly excluded. If your habitual residence is in the EU, and you are a consumer, you additionally possess the protection provided to you by obligatory provisions of the law of your country of residence. FRS Jakub Freisler and yourself both agree to submit to the non-exclusive jurisdiction of the courts of Krowodrza, Kraków, Poland, which means that you may make a claim to defend your consumer protection rights in regards to these Terms of Use in Poland, or in the EU country in which you reside.

15. DISPUTE RESOLUTION

Informal Negotiations

To expedite resolution and control the cost of any dispute, controversy, or claim related to these Terms of Use (each "Dispute" and collectively, the “Disputes”) brought by either you or us (individually, a “Party” and collectively, the “Parties”), the Parties agree to first attempt to negotiate any Dispute (except those Disputes expressly provided below) informally for at least thirty (30) days before initiating arbitration. Such informal negotiations commence upon written notice from one Party to the other Party.

Binding Arbitration

   

Any dispute arising from the relationships between the Parties to this contract shall be determined by one arbitrator who will be chosen in accordance with the Arbitration and Internal Rules of the European Court of Arbitration being part of the European Centre of Arbitration having its seat in Strasbourg, and which are in force at the time the application for arbitration is filed, and of which adoption of this clause constitutes acceptance. The seat of arbitration shall be Kraków, Poland. The language of the proceedings shall be English. Applicable rules of substantive law shall be the law of Poland.

Restrictions

The Parties agree that any arbitration shall be limited to the Dispute between the Parties individually. To the full extent permitted by law, (a) no arbitration shall be joined with any other proceeding; (b) there is no right or authority for any Dispute to be arbitrated on a class-action basis or to utilize class action procedures; and (c) there is no right or authority for any Dispute to be brought in a purported representative capacity on behalf of the general public or any other persons.

Exceptions to Informal Negotiations and Arbitration

The Parties agree that the following Disputes are not subject to the above provisions concerning informal negotiations and binding arbitration: (a) any Disputes seeking to enforce or protect, or concerning the validity of, any of the intellectual property rights of a Party; (b) any Dispute related to, or arising from, allegations of theft, piracy, invasion of privacy, or unauthorized use; and (c) any claim for injunctive relief. If this provision is found to be illegal or unenforceable, then neither Party will elect to arbitrate any Dispute falling within that portion of this provision found to be illegal or unenforceable and such Dispute shall be decided by a court of competent jurisdiction within the courts listed for jurisdiction above, and the Parties agree to submit to the personal jurisdiction of that court.

16. CORRECTIONS

There may be information on the Site that contains typographical errors, inaccuracies, or omissions, including descriptions, pricing, availability, and various other information. We reserve the right to correct any errors, inaccuracies, or omissions and to change or update the information on the Site at any time, without prior notice.

17. DISCLAIMER

THE SITE IS PROVIDED ON AN AS-IS AND AS-AVAILABLE BASIS. YOU AGREE THAT YOUR USE OF THE SITE AND OUR SERVICES WILL BE AT YOUR SOLE RISK. TO THE FULLEST EXTENT PERMITTED BY LAW, WE DISCLAIM ALL WARRANTIES, EXPRESS OR IMPLIED, IN CONNECTION WITH THE SITE AND YOUR USE THEREOF, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, AND NON-INFRINGEMENT. WE MAKE NO WARRANTIES OR REPRESENTATIONS ABOUT THE ACCURACY OR COMPLETENESS OF THE SITE’S CONTENT OR THE CONTENT OF ANY WEBSITES LINKED TO THE SITE AND WE WILL ASSUME NO LIABILITY OR RESPONSIBILITY FOR ANY (1) ERRORS, MISTAKES, OR INACCURACIES OF CONTENT AND MATERIALS, (2) PERSONAL INJURY OR PROPERTY DAMAGE, OF ANY NATURE WHATSOEVER, RESULTING FROM YOUR ACCESS TO AND USE OF THE SITE, (3) ANY UNAUTHORIZED ACCESS TO OR USE OF OUR SECURE SERVERS AND/OR ANY AND ALL PERSONAL INFORMATION AND/OR FINANCIAL INFORMATION STORED THEREIN, (4) ANY INTERRUPTION OR CESSATION OF TRANSMISSION TO OR FROM THE SITE, (5) ANY BUGS, VIRUSES, TROJAN HORSES, OR THE LIKE WHICH MAY BE TRANSMITTED TO OR THROUGH THE SITE BY ANY THIRD PARTY, AND/OR (6) ANY ERRORS OR OMISSIONS IN ANY CONTENT AND MATERIALS OR FOR ANY LOSS OR DAMAGE OF ANY KIND INCURRED AS A RESULT OF THE USE OF ANY CONTENT POSTED, TRANSMITTED, OR OTHERWISE MADE AVAILABLE VIA THE SITE. WE DO NOT WARRANT, ENDORSE, GUARANTEE, OR ASSUME RESPONSIBILITY FOR ANY PRODUCT OR SERVICE ADVERTISED OR OFFERED BY A THIRD PARTY THROUGH THE SITE, ANY HYPERLINKED WEBSITE, OR ANY WEBSITE OR MOBILE APPLICATION FEATURED IN ANY BANNER OR OTHER ADVERTISING, AND WE WILL NOT BE A PARTY TO OR IN ANY WAY BE RESPONSIBLE FOR MONITORING ANY TRANSACTION BETWEEN YOU AND ANY THIRD-PARTY PROVIDERS OF PRODUCTS OR SERVICES. AS WITH THE PURCHASE OF A PRODUCT OR SERVICE THROUGH ANY MEDIUM OR IN ANY ENVIRONMENT, YOU SHOULD USE YOUR BEST JUDGMENT AND EXERCISE CAUTION WHERE APPROPRIATE.

18. LIMITATIONS OF LIABILITY

IN NO EVENT WILL WE OR OUR DIRECTORS, EMPLOYEES, OR AGENTS BE LIABLE TO YOU OR ANY THIRD PARTY FOR ANY DIRECT, INDIRECT, CONSEQUENTIAL, EXEMPLARY, INCIDENTAL, SPECIAL, OR PUNITIVE DAMAGES, INCLUDING LOST PROFIT, LOST REVENUE, LOSS OF DATA, OR OTHER DAMAGES ARISING FROM YOUR USE OF THE SITE, EVEN IF WE HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. NOTWITHSTANDING ANYTHING TO THE CONTRARY CONTAINED HEREIN, OUR LIABILITY TO YOU FOR ANY CAUSE WHATSOEVER AND REGARDLESS OF THE FORM OF THE ACTION, WILL AT ALL TIMES BE LIMITED TO THE LESSER OF THE AMOUNT PAID, IF ANY, BY YOU TO US DURING THE three (3) MONTH PERIOD PRIOR TO ANY CAUSE OF ACTION ARISING OR $0.00 USD. CERTAIN US STATE LAWS AND INTERNATIONAL LAWS DO NOT ALLOW LIMITATIONS ON IMPLIED WARRANTIES OR THE EXCLUSION OR LIMITATION OF CERTAIN DAMAGES. IF THESE LAWS APPLY TO YOU, SOME OR ALL OF THE ABOVE DISCLAIMERS OR LIMITATIONS MAY NOT APPLY TO YOU, AND YOU MAY HAVE ADDITIONAL RIGHTS.

19. INDEMNIFICATION

You agree to defend, indemnify, and hold us harmless, including our subsidiaries, affiliates, and all of our respective officers, agents, partners, and employees, from and against any loss, damage, liability, claim, or demand, including reasonable attorneys’ fees and expenses, made by any third party due to or arising out of: (1) use of the Site; (2) breach of these Terms of Use; (3) any breach of your representations and warranties set forth in these Terms of Use; (4) your violation of the rights of a third party, including but not limited to intellectual property rights; or (5) any overt harmful act toward any other user of the Site with whom you connected via the Site. Notwithstanding the foregoing, we reserve the right, at your expense, to assume the exclusive defense and control of any matter for which you are required to indemnify us, and you agree to cooperate, at your expense, with our defense of such claims. We will use reasonable efforts to notify you of any such claim, action, or proceeding which is subject to this indemnification upon becoming aware of it.

20. USER DATA

We will maintain certain data that you transmit to the Site for the purpose of managing the performance of the Site, as well as data relating to your use of the Site. Although we perform regular routine backups of data, you are solely responsible for all data that you transmit or that relates to any activity you have undertaken using the Site. You agree that we shall have no liability to you for any loss or corruption of any such data, and you hereby waive any right of action against us arising from any such loss or corruption of such data.

21. ELECTRONIC COMMUNICATIONS, TRANSACTIONS, AND SIGNATURES

Visiting the Site, sending us emails, and completing online forms constitute electronic communications. You consent to receive electronic communications, and you agree that all agreements, notices, disclosures, and other communications we provide to you electronically, via email and on the Site, satisfy any legal requirement that such communication be in writing. YOU HEREBY AGREE TO THE USE OF ELECTRONIC SIGNATURES, CONTRACTS, ORDERS, AND OTHER RECORDS, AND TO ELECTRONIC DELIVERY OF NOTICES, POLICIES, AND RECORDS OF TRANSACTIONS INITIATED OR COMPLETED BY US OR VIA THE SITE. You hereby waive any rights or requirements under any statutes, regulations, rules, ordinances, or other laws in any jurisdiction which require an original signature or delivery or retention of non-electronic records, or to payments or the granting of credits by any means other than electronic means.

22. CALIFORNIA USERS AND RESIDENTS

If any complaint with us is not satisfactorily resolved, you can contact the Complaint Assistance Unit of the Division of Consumer Services of the California Department of Consumer Affairs in writing at 1625 North Market Blvd., Suite N 112, Sacramento, California 95834 or by telephone at (800) 952-5210 or (916) 445-1254.

23. MISCELLANEOUS

These Terms of Use and any policies or operating rules posted by us on the Site or in respect to the Site constitute the entire agreement and understanding between you and us. Our failure to exercise or enforce any right or provision of these Terms of Use shall not operate as a waiver of such right or provision. These Terms of Use operate to the fullest extent permissible by law. We may assign any or all of our rights and obligations to others at any time. We shall not be responsible or liable for any loss, damage, delay, or failure to act caused by any cause beyond our reasonable control. If any provision or part of a provision of these Terms of Use is determined to be unlawful, void, or unenforceable, that provision or part of the provision is deemed severable from these Terms of Use and does not affect the validity and enforceability of any remaining provisions. There is no joint venture, partnership, employment or agency relationship created between you and us as a result of these Terms of Use or use of the Site. You agree that these Terms of Use will not be construed against us by virtue of having drafted them. You hereby waive any and all defenses you may have based on the electronic form of these Terms of Use and the lack of signing by the parties hereto to execute these Terms of Use.

24. CONTACT US

In order to resolve a complaint regarding the Site or to receive further information regarding use of the Site, please contact us at:

FRS Jakub Freisler
ul. Królewska 92 / 8
Kraków, Małopolska 30-079
Poland
Phone: +48882568430
complaint@frsource.org
\ No newline at end of file +Terms and Conditions

Fast Angle logo Fast angle

Simple online protractor - measure any angle directly on your image!

Terms and Conditions

Last updated November 03, 2022

TABLE OF CONTENTS

  1. AGREEMENT TO TERMS
  2. INTELLECTUAL PROPERTY RIGHTS
  3. USER REPRESENTATIONS
  4. PROHIBITED ACTIVITIES
  5. USER GENERATED CONTRIBUTIONS
  6. CONTRIBUTION LICENSE
  7. MOBILE APPLICATION LICENSE
  8. SUBMISSIONS
  9. THIRD-PARTY WEBSITE AND CONTENT
  10. SITE MANAGEMENT
  11. PRIVACY POLICY
  12. TERM AND TERMINATION
  13. MODIFICATIONS AND INTERRUPTIONS
  14. GOVERNING LAW
  15. DISPUTE RESOLUTION
  16. CORRECTIONS
  17. DISCLAIMER
  18. LIMITATIONS OF LIABILITY
  19. INDEMNIFICATION
  20. USER DATA
  21. ELECTRONIC COMMUNICATIONS, TRANSACTIONS, AND SIGNATURES
  22. CALIFORNIA USERS AND RESIDENTS
  23. MISCELLANEOUS
  24. CONTACT US

1. AGREEMENT TO TERMS

These Terms of Use constitute a legally binding agreement made between you, whether personally or on behalf of an entity (“you”) and FRS Jakub Freisler ("Company," “we," “us," or “our”), concerning your access to and use of the https://www.frsource.org/fast-angle/ website as well as any other media form, media channel, mobile website or mobile application related, linked, or otherwise connected thereto (collectively, the “Site”). We are registered in Poland and have our registered office at ul. Królewska 92 / 8, Kraków, Małopolska 30-079. Our VAT number is PL 6783179514. You agree that by accessing the Site, you have read, understood, and agreed to be bound by all of these Terms of Use. IF YOU DO NOT AGREE WITH ALL OF THESE TERMS OF USE, THEN YOU ARE EXPRESSLY PROHIBITED FROM USING THE SITE AND YOU MUST DISCONTINUE USE IMMEDIATELY.

Supplemental terms and conditions or documents that may be posted on the Site from time to time are hereby expressly incorporated herein by reference. We reserve the right, in our sole discretion, to make changes or modifications to these Terms of Use from time to time. We will alert you about any changes by updating the “Last updated” date of these Terms of Use, and you waive any right to receive specific notice of each such change. Please ensure that you check the applicable Terms every time you use our Site so that you understand which Terms apply. You will be subject to, and will be deemed to have been made aware of and to have accepted, the changes in any revised Terms of Use by your continued use of the Site after the date such revised Terms of Use are posted.

The information provided on the Site is not intended for distribution to or use by any person or entity in any jurisdiction or country where such distribution or use would be contrary to law or regulation or which would subject us to any registration requirement within such jurisdiction or country. Accordingly, those persons who choose to access the Site from other locations do so on their own initiative and are solely responsible for compliance with local laws, if and to the extent local laws are applicable.

The Site is not tailored to comply with industry-specific regulations (Health Insurance Portability and Accountability Act (HIPAA), Federal Information Security Management Act (FISMA), etc.), so if your interactions would be subjected to such laws, you may not use this Site. You may not use the Site in a way that would violate the Gramm-Leach-Bliley Act (GLBA).

All users who are minors in the jurisdiction in which they reside (generally under the age of 18) must have the permission of, and be directly supervised by, their parent or guardian to use the Site. If you are a minor, you must have your parent or guardian read and agree to these Terms of Use prior to you using the Site.

2. INTELLECTUAL PROPERTY RIGHTS

Unless otherwise indicated, the Site is our proprietary property and all source code, databases, functionality, software, website designs, audio, video, text, photographs, and graphics on the Site (collectively, the “Content”) and the trademarks, service marks, and logos contained therein (the “Marks”) are owned or controlled by us or licensed to us, and are protected by copyright and trademark laws and various other intellectual property rights and unfair competition laws of the United States, international copyright laws, and international conventions. The Content and the Marks are provided on the Site “AS IS” for your information and personal use only. Except as expressly provided in these Terms of Use, no part of the Site and no Content or Marks may be copied, reproduced, aggregated, republished, uploaded, posted, publicly displayed, encoded, translated, transmitted, distributed, sold, licensed, or otherwise exploited for any commercial purpose whatsoever, without our express prior written permission.

Provided that you are eligible to use the Site, you are granted a limited license to access and use the Site and to download or print a copy of any portion of the Content to which you have properly gained access solely for your personal, non-commercial use. We reserve all rights not expressly granted to you in and to the Site, the Content and the Marks.

3. USER REPRESENTATIONS

By using the Site, you represent and warrant that: (1) you have the legal capacity and you agree to comply with these Terms of Use; (2) you are not a minor in the jurisdiction in which you reside, or if a minor, you have received parental permission to use the Site; (3) you will not access the Site through automated or non-human means, whether through a bot, script, or otherwise; (4) you will not use the Site for any illegal or unauthorized purpose; and (5) your use of the Site will not violate any applicable law or regulation.

If you provide any information that is untrue, inaccurate, not current, or incomplete, we have the right to suspend or terminate your account and refuse any and all current or future use of the Site (or any portion thereof).

4. PROHIBITED ACTIVITIES

You may not access or use the Site for any purpose other than that for which we make the Site available. The Site may not be used in connection with any commercial endeavors except those that are specifically endorsed or approved by us.

As a user of the Site, you agree not to:

  • Systematically retrieve data or other content from the Site to create or compile, directly or indirectly, a collection, compilation, database, or directory without written permission from us.
  • Trick, defraud, or mislead us and other users, especially in any attempt to learn sensitive account information such as user passwords.
  • Circumvent, disable, or otherwise interfere with security-related features of the Site, including features that prevent or restrict the use or copying of any Content or enforce limitations on the use of the Site and/or the Content contained therein.
  • Disparage, tarnish, or otherwise harm, in our opinion, us and/or the Site.
  • Use any information obtained from the Site in order to harass, abuse, or harm another person.
  • Make improper use of our support services or submit false reports of abuse or misconduct.
  • Use the Site in a manner inconsistent with any applicable laws or regulations.
  • Engage in unauthorized framing of or linking to the Site.
  • Upload or transmit (or attempt to upload or to transmit) viruses, Trojan horses, or other material, including excessive use of capital letters and spamming (continuous posting of repetitive text), that interferes with any party’s uninterrupted use and enjoyment of the Site or modifies, impairs, disrupts, alters, or interferes with the use, features, functions, operation, or maintenance of the Site.
  • Engage in any automated use of the system, such as using scripts to send comments or messages, or using any data mining, robots, or similar data gathering and extraction tools.
  • Delete the copyright or other proprietary rights notice from any Content.
  • Attempt to impersonate another user or person or use the username of another user.
  • Upload or transmit (or attempt to upload or to transmit) any material that acts as a passive or active information collection or transmission mechanism, including without limitation, clear graphics interchange formats (“gifs”), 1×1 pixels, web bugs, cookies, or other similar devices (sometimes referred to as “spyware” or “passive collection mechanisms” or “pcms”).
  • Interfere with, disrupt, or create an undue burden on the Site or the networks or services connected to the Site.
  • Harass, annoy, intimidate, or threaten any of our employees or agents engaged in providing any portion of the Site to you.
  • Attempt to bypass any measures of the Site designed to prevent or restrict access to the Site, or any portion of the Site.
  • Copy or adapt the Site’s software, including but not limited to Flash, PHP, HTML, JavaScript, or other code.
  • Except as permitted by applicable law, decipher, decompile, disassemble, or reverse engineer any of the software comprising or in any way making up a part of the Site.
  • Except as may be the result of standard search engine or Internet browser usage, use, launch, develop, or distribute any automated system, including without limitation, any spider, robot, cheat utility, scraper, or offline reader that accesses the Site, or using or launching any unauthorized script or other software.
  • Use a buying agent or purchasing agent to make purchases on the Site.
  • Make any unauthorized use of the Site, including collecting usernames and/or email addresses of users by electronic or other means for the purpose of sending unsolicited email, or creating user accounts by automated means or under false pretenses.
  • Use the Site as part of any effort to compete with us or otherwise use the Site and/or the Content for any revenue-generating endeavor or commercial enterprise.
  • Use the Site to advertise or offer to sell goods and services.
  • Sell or otherwise transfer your profile.

5. USER GENERATED CONTRIBUTIONS

The Site does not offer users to submit or post content. We may provide you with the opportunity to create, submit, post, display, transmit, perform, publish, distribute, or broadcast content and materials to us or on the Site, including but not limited to text, writings, video, audio, photographs, graphics, comments, suggestions, or personal information or other material (collectively, "Contributions"). Contributions may be viewable by other users of the Site and through third-party websites. As such, any Contributions you transmit may be treated in accordance with the Site Privacy Policy. When you create or make available any Contributions, you thereby represent and warrant that:

  • The creation, distribution, transmission, public display, or performance, and the accessing, downloading, or copying of your Contributions do not and will not infringe the proprietary rights, including but not limited to the copyright, patent, trademark, trade secret, or moral rights of any third party.
  • You are the creator and owner of or have the necessary licenses, rights, consents, releases, and permissions to use and to authorize us, the Site, and other users of the Site to use your Contributions in any manner contemplated by the Site and these Terms of Use.
  • You have the written consent, release, and/or permission of each and every identifiable individual person in your Contributions to use the name or likeness of each and every such identifiable individual person to enable inclusion and use of your Contributions in any manner contemplated by the Site and these Terms of Use.
  • Your Contributions are not false, inaccurate, or misleading.
  • Your Contributions are not unsolicited or unauthorized advertising, promotional materials, pyramid schemes, chain letters, spam, mass mailings, or other forms of solicitation.
  • Your Contributions are not obscene, lewd, lascivious, filthy, violent, harassing, libelous, slanderous, or otherwise objectionable (as determined by us).
  • Your Contributions do not ridicule, mock, disparage, intimidate, or abuse anyone.
  • Your Contributions are not used to harass or threaten (in the legal sense of those terms) any other person and to promote violence against a specific person or class of people.
  • Your Contributions do not violate any applicable law, regulation, or rule.
  • Your Contributions do not violate the privacy or publicity rights of any third party.
  • Your Contributions do not violate any applicable law concerning child pornography, or otherwise intended to protect the health or well-being of minors.
  • Your Contributions do not include any offensive comments that are connected to race, national origin, gender, sexual preference, or physical handicap.
  • Your Contributions do not otherwise violate, or link to material that violates, any provision of these Terms of Use, or any applicable law or regulation.

Any use of the Site in violation of the foregoing violates these Terms of Use and may result in, among other things, termination or suspension of your rights to use the Site.

6. CONTRIBUTION LICENSE

You agree that we may access, store, process, and use any information and personal data that you provide following the terms of the Privacy Policy and your choices (including settings).

By submitting suggestions or other feedback regarding the Site, you agree that we can use and share such feedback for any purpose without compensation to you.

We do not assert any ownership over your Contributions. You retain full ownership of all of your Contributions and any intellectual property rights or other proprietary rights associated with your Contributions. We are not liable for any statements or representations in your Contributions provided by you in any area on the Site. You are solely responsible for your Contributions to the Site and you expressly agree to exonerate us from any and all responsibility and to refrain from any legal action against us regarding your Contributions.

7. MOBILE APPLICATION LICENSE

Use License

If you access the Site via a mobile application, then we grant you a revocable, non-exclusive, non-transferable, limited right to install and use the mobile application on wireless electronic devices owned or controlled by you, and to access and use the mobile application on such devices strictly in accordance with the terms and conditions of this mobile application license contained in these Terms of Use. You shall not: (1) except as permitted by applicable law, decompile, reverse engineer, disassemble, attempt to derive the source code of, or decrypt the application; (2) make any modification, adaptation, improvement, enhancement, translation, or derivative work from the application; (3) violate any applicable laws, rules, or regulations in connection with your access or use of the application; (4) remove, alter, or obscure any proprietary notice (including any notice of copyright or trademark) posted by us or the licensors of the application; (5) use the application for any revenue generating endeavor, commercial enterprise, or other purpose for which it is not designed or intended; (6) make the application available over a network or other environment permitting access or use by multiple devices or users at the same time; (7) use the application for creating a product, service, or software that is, directly or indirectly, competitive with or in any way a substitute for the application; (8) use the application to send automated queries to any website or to send any unsolicited commercial e-mail; or (9) use any proprietary information or any of our interfaces or our other intellectual property in the design, development, manufacture, licensing, or distribution of any applications, accessories, or devices for use with the application.

Apple and Android Devices

The following terms apply when you use a mobile application obtained from either the Apple Store or Google Play (each an “App Distributor”) to access the Site: (1) the license granted to you for our mobile application is limited to a non-transferable license to use the application on a device that utilizes the Apple iOS or Android operating systems, as applicable, and in accordance with the usage rules set forth in the applicable App Distributor’s terms of service; (2) we are responsible for providing any maintenance and support services with respect to the mobile application as specified in the terms and conditions of this mobile application license contained in these Terms of Use or as otherwise required under applicable law, and you acknowledge that each App Distributor has no obligation whatsoever to furnish any maintenance and support services with respect to the mobile application; (3) in the event of any failure of the mobile application to conform to any applicable warranty, you may notify the applicable App Distributor, and the App Distributor, in accordance with its terms and policies, may refund the purchase price, if any, paid for the mobile application, and to the maximum extent permitted by applicable law, the App Distributor will have no other warranty obligation whatsoever with respect to the mobile application; (4) you represent and warrant that (i) you are not located in a country that is subject to a U.S. government embargo, or that has been designated by the U.S. government as a “terrorist supporting” country and (ii) you are not listed on any U.S. government list of prohibited or restricted parties; (5) you must comply with applicable third-party terms of agreement when using the mobile application, e.g., if you have a VoIP application, then you must not be in violation of their wireless data service agreement when using the mobile application; and (6) you acknowledge and agree that the App Distributors are third-party beneficiaries of the terms and conditions in this mobile application license contained in these Terms of Use, and that each App Distributor will have the right (and will be deemed to have accepted the right) to enforce the terms and conditions in this mobile application license contained in these Terms of Use against you as a third-party beneficiary thereof.

8. SUBMISSIONS

You acknowledge and agree that any questions, comments, suggestions, ideas, feedback, or other information regarding the Site ("Submissions") provided by you to us are non-confidential and shall become our sole property. We shall own exclusive rights, including all intellectual property rights, and shall be entitled to the unrestricted use and dissemination of these Submissions for any lawful purpose, commercial or otherwise, without acknowledgment or compensation to you. You hereby waive all moral rights to any such Submissions, and you hereby warrant that any such Submissions are original with you or that you have the right to submit such Submissions. You agree there shall be no recourse against us for any alleged or actual infringement or misappropriation of any proprietary right in your Submissions.

9. THIRD-PARTY WEBSITE AND CONTENT

The Site may contain (or you may be sent via the Site) links to other websites ("Third-Party Websites") as well as articles, photographs, text, graphics, pictures, designs, music, sound, video, information, applications, software, and other content or items belonging to or originating from third parties ("Third-Party Content"). Such Third-Party Websites and Third-Party Content are not investigated, monitored, or checked for accuracy, appropriateness, or completeness by us, and we are not responsible for any Third-Party Websites accessed through the Site or any Third-Party Content posted on, available through, or installed from the Site, including the content, accuracy, offensiveness, opinions, reliability, privacy practices, or other policies of or contained in the Third-Party Websites or the Third-Party Content. Inclusion of, linking to, or permitting the use or installation of any Third-Party Websites or any Third-Party Content does not imply approval or endorsement thereof by us. If you decide to leave the Site and access the Third-Party Websites or to use or install any Third-Party Content, you do so at your own risk, and you should be aware these Terms of Use no longer govern. You should review the applicable terms and policies, including privacy and data gathering practices, of any website to which you navigate from the Site or relating to any applications you use or install from the Site. Any purchases you make through Third-Party Websites will be through other websites and from other companies, and we take no responsibility whatsoever in relation to such purchases which are exclusively between you and the applicable third party. You agree and acknowledge that we do not endorse the products or services offered on Third-Party Websites and you shall hold us harmless from any harm caused by your purchase of such products or services. Additionally, you shall hold us harmless from any losses sustained by you or harm caused to you relating to or resulting in any way from any Third-Party Content or any contact with Third-Party Websites.

10. SITE MANAGEMENT

We reserve the right, but not the obligation, to: (1) monitor the Site for violations of these Terms of Use; (2) take appropriate legal action against anyone who, in our sole discretion, violates the law or these Terms of Use, including without limitation, reporting such user to law enforcement authorities; (3) in our sole discretion and without limitation, refuse, restrict access to, limit the availability of, or disable (to the extent technologically feasible) any of your Contributions or any portion thereof; (4) in our sole discretion and without limitation, notice, or liability, to remove from the Site or otherwise disable all files and content that are excessive in size or are in any way burdensome to our systems; and (5) otherwise manage the Site in a manner designed to protect our rights and property and to facilitate the proper functioning of the Site.

11. PRIVACY POLICY

We care about data privacy and security. Please review our Privacy Policy: https://www.frsource.org/fast-angle/pl/privacy-policy. By using the Site, you agree to be bound by our Privacy Policy, which is incorporated into these Terms of Use. Please be advised the Site is hosted in the United States. If you access the Site from any other region of the world with laws or other requirements governing personal data collection, use, or disclosure that differ from applicable laws in the United States, then through your continued use of the Site, you are transferring your data to the United States, and you agree to have your data transferred to and processed in the United States.

12. TERM AND TERMINATION

These Terms of Use shall remain in full force and effect while you use the Site. WITHOUT LIMITING ANY OTHER PROVISION OF THESE TERMS OF USE, WE RESERVE THE RIGHT TO, IN OUR SOLE DISCRETION AND WITHOUT NOTICE OR LIABILITY, DENY ACCESS TO AND USE OF THE SITE (INCLUDING BLOCKING CERTAIN IP ADDRESSES), TO ANY PERSON FOR ANY REASON OR FOR NO REASON, INCLUDING WITHOUT LIMITATION FOR BREACH OF ANY REPRESENTATION, WARRANTY, OR COVENANT CONTAINED IN THESE TERMS OF USE OR OF ANY APPLICABLE LAW OR REGULATION. WE MAY TERMINATE YOUR USE OR PARTICIPATION IN THE SITE OR DELETE ANY CONTENT OR INFORMATION THAT YOU POSTED AT ANY TIME, WITHOUT WARNING, IN OUR SOLE DISCRETION.

If we terminate or suspend your account for any reason, you are prohibited from registering and creating a new account under your name, a fake or borrowed name, or the name of any third party, even if you may be acting on behalf of the third party. In addition to terminating or suspending your account, we reserve the right to take appropriate legal action, including without limitation pursuing civil, criminal, and injunctive redress.

13. MODIFICATIONS AND INTERRUPTIONS

We reserve the right to change, modify, or remove the contents of the Site at any time or for any reason at our sole discretion without notice. However, we have no obligation to update any information on our Site. We also reserve the right to modify or discontinue all or part of the Site without notice at any time. We will not be liable to you or any third party for any modification, price change, suspension, or discontinuance of the Site.

We cannot guarantee the Site will be available at all times. We may experience hardware, software, or other problems or need to perform maintenance related to the Site, resulting in interruptions, delays, or errors. We reserve the right to change, revise, update, suspend, discontinue, or otherwise modify the Site at any time or for any reason without notice to you. You agree that we have no liability whatsoever for any loss, damage, or inconvenience caused by your inability to access or use the Site during any downtime or discontinuance of the Site. Nothing in these Terms of Use will be construed to obligate us to maintain and support the Site or to supply any corrections, updates, or releases in connection therewith.

14. GOVERNING LAW

These conditions are governed by and interpreted following the laws of Poland, and the use of the United Nations Convention of Contracts for the International Sale of Goods is expressly excluded. If your habitual residence is in the EU, and you are a consumer, you additionally possess the protection provided to you by obligatory provisions of the law of your country of residence. FRS Jakub Freisler and yourself both agree to submit to the non-exclusive jurisdiction of the courts of Krowodrza, Kraków, Poland, which means that you may make a claim to defend your consumer protection rights in regards to these Terms of Use in Poland, or in the EU country in which you reside.

15. DISPUTE RESOLUTION

Informal Negotiations

To expedite resolution and control the cost of any dispute, controversy, or claim related to these Terms of Use (each "Dispute" and collectively, the “Disputes”) brought by either you or us (individually, a “Party” and collectively, the “Parties”), the Parties agree to first attempt to negotiate any Dispute (except those Disputes expressly provided below) informally for at least thirty (30) days before initiating arbitration. Such informal negotiations commence upon written notice from one Party to the other Party.

Binding Arbitration

   

Any dispute arising from the relationships between the Parties to this contract shall be determined by one arbitrator who will be chosen in accordance with the Arbitration and Internal Rules of the European Court of Arbitration being part of the European Centre of Arbitration having its seat in Strasbourg, and which are in force at the time the application for arbitration is filed, and of which adoption of this clause constitutes acceptance. The seat of arbitration shall be Kraków, Poland. The language of the proceedings shall be English. Applicable rules of substantive law shall be the law of Poland.

Restrictions

The Parties agree that any arbitration shall be limited to the Dispute between the Parties individually. To the full extent permitted by law, (a) no arbitration shall be joined with any other proceeding; (b) there is no right or authority for any Dispute to be arbitrated on a class-action basis or to utilize class action procedures; and (c) there is no right or authority for any Dispute to be brought in a purported representative capacity on behalf of the general public or any other persons.

Exceptions to Informal Negotiations and Arbitration

The Parties agree that the following Disputes are not subject to the above provisions concerning informal negotiations and binding arbitration: (a) any Disputes seeking to enforce or protect, or concerning the validity of, any of the intellectual property rights of a Party; (b) any Dispute related to, or arising from, allegations of theft, piracy, invasion of privacy, or unauthorized use; and (c) any claim for injunctive relief. If this provision is found to be illegal or unenforceable, then neither Party will elect to arbitrate any Dispute falling within that portion of this provision found to be illegal or unenforceable and such Dispute shall be decided by a court of competent jurisdiction within the courts listed for jurisdiction above, and the Parties agree to submit to the personal jurisdiction of that court.

16. CORRECTIONS

There may be information on the Site that contains typographical errors, inaccuracies, or omissions, including descriptions, pricing, availability, and various other information. We reserve the right to correct any errors, inaccuracies, or omissions and to change or update the information on the Site at any time, without prior notice.

17. DISCLAIMER

THE SITE IS PROVIDED ON AN AS-IS AND AS-AVAILABLE BASIS. YOU AGREE THAT YOUR USE OF THE SITE AND OUR SERVICES WILL BE AT YOUR SOLE RISK. TO THE FULLEST EXTENT PERMITTED BY LAW, WE DISCLAIM ALL WARRANTIES, EXPRESS OR IMPLIED, IN CONNECTION WITH THE SITE AND YOUR USE THEREOF, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, AND NON-INFRINGEMENT. WE MAKE NO WARRANTIES OR REPRESENTATIONS ABOUT THE ACCURACY OR COMPLETENESS OF THE SITE’S CONTENT OR THE CONTENT OF ANY WEBSITES LINKED TO THE SITE AND WE WILL ASSUME NO LIABILITY OR RESPONSIBILITY FOR ANY (1) ERRORS, MISTAKES, OR INACCURACIES OF CONTENT AND MATERIALS, (2) PERSONAL INJURY OR PROPERTY DAMAGE, OF ANY NATURE WHATSOEVER, RESULTING FROM YOUR ACCESS TO AND USE OF THE SITE, (3) ANY UNAUTHORIZED ACCESS TO OR USE OF OUR SECURE SERVERS AND/OR ANY AND ALL PERSONAL INFORMATION AND/OR FINANCIAL INFORMATION STORED THEREIN, (4) ANY INTERRUPTION OR CESSATION OF TRANSMISSION TO OR FROM THE SITE, (5) ANY BUGS, VIRUSES, TROJAN HORSES, OR THE LIKE WHICH MAY BE TRANSMITTED TO OR THROUGH THE SITE BY ANY THIRD PARTY, AND/OR (6) ANY ERRORS OR OMISSIONS IN ANY CONTENT AND MATERIALS OR FOR ANY LOSS OR DAMAGE OF ANY KIND INCURRED AS A RESULT OF THE USE OF ANY CONTENT POSTED, TRANSMITTED, OR OTHERWISE MADE AVAILABLE VIA THE SITE. WE DO NOT WARRANT, ENDORSE, GUARANTEE, OR ASSUME RESPONSIBILITY FOR ANY PRODUCT OR SERVICE ADVERTISED OR OFFERED BY A THIRD PARTY THROUGH THE SITE, ANY HYPERLINKED WEBSITE, OR ANY WEBSITE OR MOBILE APPLICATION FEATURED IN ANY BANNER OR OTHER ADVERTISING, AND WE WILL NOT BE A PARTY TO OR IN ANY WAY BE RESPONSIBLE FOR MONITORING ANY TRANSACTION BETWEEN YOU AND ANY THIRD-PARTY PROVIDERS OF PRODUCTS OR SERVICES. AS WITH THE PURCHASE OF A PRODUCT OR SERVICE THROUGH ANY MEDIUM OR IN ANY ENVIRONMENT, YOU SHOULD USE YOUR BEST JUDGMENT AND EXERCISE CAUTION WHERE APPROPRIATE.

18. LIMITATIONS OF LIABILITY

IN NO EVENT WILL WE OR OUR DIRECTORS, EMPLOYEES, OR AGENTS BE LIABLE TO YOU OR ANY THIRD PARTY FOR ANY DIRECT, INDIRECT, CONSEQUENTIAL, EXEMPLARY, INCIDENTAL, SPECIAL, OR PUNITIVE DAMAGES, INCLUDING LOST PROFIT, LOST REVENUE, LOSS OF DATA, OR OTHER DAMAGES ARISING FROM YOUR USE OF THE SITE, EVEN IF WE HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. NOTWITHSTANDING ANYTHING TO THE CONTRARY CONTAINED HEREIN, OUR LIABILITY TO YOU FOR ANY CAUSE WHATSOEVER AND REGARDLESS OF THE FORM OF THE ACTION, WILL AT ALL TIMES BE LIMITED TO THE LESSER OF THE AMOUNT PAID, IF ANY, BY YOU TO US DURING THE three (3) MONTH PERIOD PRIOR TO ANY CAUSE OF ACTION ARISING OR $0.00 USD. CERTAIN US STATE LAWS AND INTERNATIONAL LAWS DO NOT ALLOW LIMITATIONS ON IMPLIED WARRANTIES OR THE EXCLUSION OR LIMITATION OF CERTAIN DAMAGES. IF THESE LAWS APPLY TO YOU, SOME OR ALL OF THE ABOVE DISCLAIMERS OR LIMITATIONS MAY NOT APPLY TO YOU, AND YOU MAY HAVE ADDITIONAL RIGHTS.

19. INDEMNIFICATION

You agree to defend, indemnify, and hold us harmless, including our subsidiaries, affiliates, and all of our respective officers, agents, partners, and employees, from and against any loss, damage, liability, claim, or demand, including reasonable attorneys’ fees and expenses, made by any third party due to or arising out of: (1) use of the Site; (2) breach of these Terms of Use; (3) any breach of your representations and warranties set forth in these Terms of Use; (4) your violation of the rights of a third party, including but not limited to intellectual property rights; or (5) any overt harmful act toward any other user of the Site with whom you connected via the Site. Notwithstanding the foregoing, we reserve the right, at your expense, to assume the exclusive defense and control of any matter for which you are required to indemnify us, and you agree to cooperate, at your expense, with our defense of such claims. We will use reasonable efforts to notify you of any such claim, action, or proceeding which is subject to this indemnification upon becoming aware of it.

20. USER DATA

We will maintain certain data that you transmit to the Site for the purpose of managing the performance of the Site, as well as data relating to your use of the Site. Although we perform regular routine backups of data, you are solely responsible for all data that you transmit or that relates to any activity you have undertaken using the Site. You agree that we shall have no liability to you for any loss or corruption of any such data, and you hereby waive any right of action against us arising from any such loss or corruption of such data.

21. ELECTRONIC COMMUNICATIONS, TRANSACTIONS, AND SIGNATURES

Visiting the Site, sending us emails, and completing online forms constitute electronic communications. You consent to receive electronic communications, and you agree that all agreements, notices, disclosures, and other communications we provide to you electronically, via email and on the Site, satisfy any legal requirement that such communication be in writing. YOU HEREBY AGREE TO THE USE OF ELECTRONIC SIGNATURES, CONTRACTS, ORDERS, AND OTHER RECORDS, AND TO ELECTRONIC DELIVERY OF NOTICES, POLICIES, AND RECORDS OF TRANSACTIONS INITIATED OR COMPLETED BY US OR VIA THE SITE. You hereby waive any rights or requirements under any statutes, regulations, rules, ordinances, or other laws in any jurisdiction which require an original signature or delivery or retention of non-electronic records, or to payments or the granting of credits by any means other than electronic means.

22. CALIFORNIA USERS AND RESIDENTS

If any complaint with us is not satisfactorily resolved, you can contact the Complaint Assistance Unit of the Division of Consumer Services of the California Department of Consumer Affairs in writing at 1625 North Market Blvd., Suite N 112, Sacramento, California 95834 or by telephone at (800) 952-5210 or (916) 445-1254.

23. MISCELLANEOUS

These Terms of Use and any policies or operating rules posted by us on the Site or in respect to the Site constitute the entire agreement and understanding between you and us. Our failure to exercise or enforce any right or provision of these Terms of Use shall not operate as a waiver of such right or provision. These Terms of Use operate to the fullest extent permissible by law. We may assign any or all of our rights and obligations to others at any time. We shall not be responsible or liable for any loss, damage, delay, or failure to act caused by any cause beyond our reasonable control. If any provision or part of a provision of these Terms of Use is determined to be unlawful, void, or unenforceable, that provision or part of the provision is deemed severable from these Terms of Use and does not affect the validity and enforceability of any remaining provisions. There is no joint venture, partnership, employment or agency relationship created between you and us as a result of these Terms of Use or use of the Site. You agree that these Terms of Use will not be construed against us by virtue of having drafted them. You hereby waive any and all defenses you may have based on the electronic form of these Terms of Use and the lack of signing by the parties hereto to execute these Terms of Use.

24. CONTACT US

In order to resolve a complaint regarding the Site or to receive further information regarding use of the Site, please contact us at:

FRS Jakub Freisler
ul. Królewska 92 / 8
Kraków, Małopolska 30-079
Poland
Phone: +48882568430
complaint@frsource.org
\ No newline at end of file diff --git a/index.html b/index.html index 027c0afb..485d490d 100644 --- a/index.html +++ b/index.html @@ -1 +1 @@ -Fast angle

Fast Angle logo Fast angle

Simple online protractor - measure any angle directly on your image!

Page Redirect

We're redirecting you to the main page.

\ No newline at end of file +Fast angle

Fast Angle logo Fast angle

Simple online protractor - measure any angle directly on your image!

Page Redirect

We're redirecting you to the main page.

\ No newline at end of file diff --git a/pl.html b/pl.html index 5cb766ff..9b48f9f9 100644 --- a/pl.html +++ b/pl.html @@ -1 +1 @@ -Fast angle

Fast Angle logo Fast angle

Prosty kątomierz online - zmierz dowolny kąt bezpośrednio na Twoim obrazku!

Kliknij tutaj aby rozpocząć pomiary. By wczytać obrazek, upuść go tutaj lub naciśnij przycisk oznaczony ikoną chmury ze strzałką. Dla większej wygody możesz włączyć tryb pełnoekranowy za pomocą przycisku znajdującego się w prawym-dolnym rogu.
?
?
\ No newline at end of file +Fast angle

Fast Angle logo Fast angle

Prosty kątomierz online - zmierz dowolny kąt bezpośrednio na Twoim obrazku!

Kliknij tutaj aby rozpocząć pomiary. By wczytać obrazek, upuść go tutaj lub naciśnij przycisk oznaczony ikoną chmury ze strzałką. Dla większej wygody możesz włączyć tryb pełnoekranowy za pomocą przycisku znajdującego się w prawym-dolnym rogu.
?
?
\ No newline at end of file diff --git a/pl/privacy-policy.html b/pl/privacy-policy.html index 1a0df7fb..3b20c0c2 100644 --- a/pl/privacy-policy.html +++ b/pl/privacy-policy.html @@ -1 +1 @@ -Privacy Policy

Fast Angle logo Fast angle

Prosty kątomierz online - zmierz dowolny kąt bezpośrednio na Twoim obrazku!

PRIVACY NOTICE

Last updated November 03, 2022

This privacy notice for FRS Jakub Freisler ("Company," "we," "us," or "our"), describes how and why we might collect, store, use, and/or share ("process") your information when you use our services ("Services"), such as when you:

  • Download and use our mobile application (Fast Angle), or any other application of ours that links to this privacy notice
  • Engage with us in other related ways, including any sales, marketing, or events

Questions or concerns? Reading this privacy notice will help you understand your privacy rights and choices. If you do not agree with our policies and practices, please do not use our Services. If you still have any questions or concerns, please contact us at hi@frsource.org.

SUMMARY OF KEY POINTS

This summary provides key points from our privacy notice, but you can find out more details about any of these topics by clicking the link following each key point or by using our table of contents below to find the section you are looking for. You can also click here to go directly to our table of contents.

What personal information do we process? When you visit, use, or navigate our Services, we may process personal information depending on how you interact with FRS Jakub Freisler and the Services, the choices you make, and the products and features you use. Click here to learn more.

Do we process any sensitive personal information? We do not process sensitive personal information.

Do we receive any information from third parties? We do not receive any information from third parties.

How do we process your information? We process your information to provide, improve, and administer our Services, communicate with you, for security and fraud prevention, and to comply with law. We may also process your information for other purposes with your consent. We process your information only when we have a valid legal reason to do so. Click here to learn more.

In what situations and with which parties do we share personal information? We may share information in specific situations and with specific third parties. Click here to learn more.

What are your rights? Depending on where you are located geographically, the applicable privacy law may mean you have certain rights regarding your personal information. Click here to learn more.

How do you exercise your rights? The easiest way to exercise your rights is by filling out our data subject request form available here: privacy@frsource.org, or by contacting us. We will consider and act upon any request in accordance with applicable data protection laws.

Want to learn more about what FRS Jakub Freisler does with any information we collect? Click here to review the notice in full.

TABLE OF CONTENTS

  1. WHAT INFORMATION DO WE COLLECT?
  2. HOW DO WE PROCESS YOUR INFORMATION?
  3. WHAT LEGAL BASES DO WE RELY ON TO PROCESS YOUR PERSONAL INFORMATION?
  4. WHEN AND WITH WHOM DO WE SHARE YOUR PERSONAL INFORMATION?
  5. HOW LONG DO WE KEEP YOUR INFORMATION?
  6. WHAT ARE YOUR PRIVACY RIGHTS?
  7. CONTROLS FOR DO-NOT-TRACK FEATURES
  8. DO CALIFORNIA RESIDENTS HAVE SPECIFIC PRIVACY RIGHTS?
  9. DO WE MAKE UPDATES TO THIS NOTICE?
  10. HOW CAN YOU CONTACT US ABOUT THIS NOTICE?
  11. HOW CAN YOU REVIEW, UPDATE, OR DELETE THE DATA WE COLLECT FROM YOU?

1. WHAT INFORMATION DO WE COLLECT?

Personal information you disclose to us

In Short: We collect personal information that you provide to us.

We collect personal information that you voluntarily provide to us when you express an interest in obtaining information about us or our products and Services, when you participate in activities on the Services, or otherwise when you contact us.

Sensitive Information. We do not process sensitive information.

All personal information that you provide to us must be true, complete, and accurate, and you must notify us of any changes to such personal information.

2. HOW DO WE PROCESS YOUR INFORMATION?

In Short: We process your information to provide, improve, and administer our Services, communicate with you, for security and fraud prevention, and to comply with law. We may also process your information for other purposes with your consent.

We process your personal information for a variety of reasons, depending on how you interact with our Services, including:

  • To save or protect an individual's vital interest. We may process your information when necessary to save or protect an individual’s vital interest, such as to prevent harm.

3. WHAT LEGAL BASES DO WE RELY ON TO PROCESS YOUR INFORMATION?

In Short: We only process your personal information when we believe it is necessary and we have a valid legal reason (i.e., legal basis) to do so under applicable law, like with your consent, to comply with laws, to provide you with services to enter into or fulfill our contractual obligations, to protect your rights, or to fulfill our legitimate business interests.

If you are located in the EU or UK, this section applies to you.

The General Data Protection Regulation (GDPR) and UK GDPR require us to explain the valid legal bases we rely on in order to process your personal information. As such, we may rely on the following legal bases to process your personal information:

  • Consent. We may process your information if you have given us permission (i.e., consent) to use your personal information for a specific purpose. You can withdraw your consent at any time. Click here to learn more.
  • Legal Obligations. We may process your information where we believe it is necessary for compliance with our legal obligations, such as to cooperate with a law enforcement body or regulatory agency, exercise or defend our legal rights, or disclose your information as evidence in litigation in which we are involved.
  • Vital Interests. We may process your information where we believe it is necessary to protect your vital interests or the vital interests of a third party, such as situations involving potential threats to the safety of any person.

If you are located in Canada, this section applies to you.

We may process your information if you have given us specific permission (i.e., express consent) to use your personal information for a specific purpose, or in situations where your permission can be inferred (i.e., implied consent). You can withdraw your consent at any time. Click here to learn more.

In some exceptional cases, we may be legally permitted under applicable law to process your information without your consent, including, for example:

  • If collection is clearly in the interests of an individual and consent cannot be obtained in a timely way
  • For investigations and fraud detection and prevention
  • For business transactions provided certain conditions are met
  • If it is contained in a witness statement and the collection is necessary to assess, process, or settle an insurance claim
  • For identifying injured, ill, or deceased persons and communicating with next of kin
  • If we have reasonable grounds to believe an individual has been, is, or may be victim of financial abuse
  • If it is reasonable to expect collection and use with consent would compromise the availability or the accuracy of the information and the collection is reasonable for purposes related to investigating a breach of an agreement or a contravention of the laws of Canada or a province
  • If disclosure is required to comply with a subpoena, warrant, court order, or rules of the court relating to the production of records
  • If it was produced by an individual in the course of their employment, business, or profession and the collection is consistent with the purposes for which the information was produced
  • If the collection is solely for journalistic, artistic, or literary purposes
  • If the information is publicly available and is specified by the regulations

4. WHEN AND WITH WHOM DO WE SHARE YOUR PERSONAL INFORMATION?

In Short: We may share information in specific situations described in this section and/or with the following third parties.

We may need to share your personal information in the following situations:

  • Business Transfers. We may share or transfer your information in connection with, or during negotiations of, any merger, sale of company assets, financing, or acquisition of all or a portion of our business to another company.

5. HOW LONG DO WE KEEP YOUR INFORMATION?

In Short: We keep your information for as long as necessary to fulfill the purposes outlined in this privacy notice unless otherwise required by law.

We will only keep your personal information for as long as it is necessary for the purposes set out in this privacy notice, unless a longer retention period is required or permitted by law (such as tax, accounting, or other legal requirements).

When we have no ongoing legitimate business need to process your personal information, we will either delete or anonymize such information, or, if this is not possible (for example, because your personal information has been stored in backup archives), then we will securely store your personal information and isolate it from any further processing until deletion is possible.

6. WHAT ARE YOUR PRIVACY RIGHTS?

In Short: In some regions, such as the European Economic Area (EEA), United Kingdom (UK), and Canada, you have rights that allow you greater access to and control over your personal information. You may review, change, or terminate your account at any time.

In some regions (like the EEA, UK, and Canada), you have certain rights under applicable data protection laws. These may include the right (i) to request access and obtain a copy of your personal information, (ii) to request rectification or erasure; (iii) to restrict the processing of your personal information; and (iv) if applicable, to data portability. In certain circumstances, you may also have the right to object to the processing of your personal information. You can make such a request by contacting us by using the contact details provided in the section "HOW CAN YOU CONTACT US ABOUT THIS NOTICE?" below.

We will consider and act upon any request in accordance with applicable data protection laws.

 

If you are located in the EEA or UK and you believe we are unlawfully processing your personal information, you also have the right to complain to your local data protection supervisory authority. You can find their contact details here: https://ec.europa.eu/justice/data-protection/bodies/authorities/index_en.htm.

If you are located in Switzerland, the contact details for the data protection authorities are available here: https://www.edoeb.admin.ch/edoeb/en/home.html.

Withdrawing your consent: If we are relying on your consent to process your personal information, which may be express and/or implied consent depending on the applicable law, you have the right to withdraw your consent at any time. You can withdraw your consent at any time by contacting us by using the contact details provided in the section "HOW CAN YOU CONTACT US ABOUT THIS NOTICE?" below.

However, please note that this will not affect the lawfulness of the processing before its withdrawal nor, when applicable law allows, will it affect the processing of your personal information conducted in reliance on lawful processing grounds other than consent.

If you have questions or comments about your privacy rights, you may email us at privacy@frsource.org.

7. CONTROLS FOR DO-NOT-TRACK FEATURES

Most web browsers and some mobile operating systems and mobile applications include a Do-Not-Track ("DNT") feature or setting you can activate to signal your privacy preference not to have data about your online browsing activities monitored and collected. At this stage no uniform technology standard for recognizing and implementing DNT signals has been finalized. As such, we do not currently respond to DNT browser signals or any other mechanism that automatically communicates your choice not to be tracked online. If a standard for online tracking is adopted that we must follow in the future, we will inform you about that practice in a revised version of this privacy notice.

8. DO CALIFORNIA RESIDENTS HAVE SPECIFIC PRIVACY RIGHTS?

In Short: Yes, if you are a resident of California, you are granted specific rights regarding access to your personal information.

California Civil Code Section 1798.83, also known as the "Shine The Light" law, permits our users who are California residents to request and obtain from us, once a year and free of charge, information about categories of personal information (if any) we disclosed to third parties for direct marketing purposes and the names and addresses of all third parties with which we shared personal information in the immediately preceding calendar year. If you are a California resident and would like to make such a request, please submit your request in writing to us using the contact information provided below.

If you are under 18 years of age, reside in California, and have a registered account with Services, you have the right to request removal of unwanted data that you publicly post on the Services. To request removal of such data, please contact us using the contact information provided below and include the email address associated with your account and a statement that you reside in California. We will make sure the data is not publicly displayed on the Services, but please be aware that the data may not be completely or comprehensively removed from all our systems (e.g., backups, etc.).

CCPA Privacy Notice

The California Code of Regulations defines a "resident" as:

(1) every individual who is in the State of California for other than a temporary or transitory purpose and

(2) every individual who is domiciled in the State of California who is outside the State of California for a temporary or transitory purpose

All other individuals are defined as "non-residents."

If this definition of "resident" applies to you, we must adhere to certain rights and obligations regarding your personal information.

What categories of personal information do we collect?

We have collected the following categories of personal information in the past twelve (12) months:

CategoryExamplesCollected

A. Identifiers

Contact details, such as real name, alias, postal address, telephone or mobile contact number, unique personal identifier, online identifier, Internet Protocol address, email address, and account name

NO

B. Personal information categories listed in the California Customer Records statute

Name, contact information, education, employment, employment history, and financial information

NO

C. Protected classification characteristics under California or federal law

Gender and date of birth

NO

D. Commercial information

Transaction information, purchase history, financial details, and payment information

NO

E. Biometric information

Fingerprints and voiceprints

NO

F. Internet or other similar network activity

Browsing history, search history, online behavior, interest data, and interactions with our and other websites, applications, systems, and advertisements

NO

G. Geolocation data

Device location

NO

H. Audio, electronic, visual, thermal, olfactory, or similar information

Images and audio, video or call recordings created in connection with our business activities

NO

I. Professional or employment-related information

Business contact details in order to provide you our Services at a business level or job title, work history, and professional qualifications if you apply for a job with us

NO

J. Education Information

Student records and directory information

NO

K. Inferences drawn from other personal information

Inferences drawn from any of the collected personal information listed above to create a profile or summary about, for example, an individual’s preferences and characteristics

NO

We may also collect other personal information outside of these categories through instances where you interact with us in person, online, or by phone or mail in the context of:

  • Receiving help through our customer support channels;
  • Participation in customer surveys or contests; and
  • Facilitation in the delivery of our Services and to respond to your inquiries.

How do we use and share your personal information?

More information about our data collection and sharing practices can be found in this privacy notice.

You may contact us by email at ccpa@frsource.org, or by referring to the contact details at the bottom of this document.

If you are using an authorized agent to exercise your right to opt out we may deny a request if the authorized agent does not submit proof that they have been validly authorized to act on your behalf.

Will your information be shared with anyone else?

We may disclose your personal information with our service providers pursuant to a written contract between us and each service provider. Each service provider is a for-profit entity that processes the information on our behalf.

We may use your personal information for our own business purposes, such as for undertaking internal research for technological development and demonstration. This is not considered to be "selling" of your personal information.

FRS Jakub Freisler has not disclosed or sold any personal information to third parties for a business or commercial purpose in the preceding twelve (12) months. FRS Jakub Freisler will not sell personal information in the future belonging to website visitors, users, and other consumers.

Your rights with respect to your personal data

Right to request deletion of the data — Request to delete

You can ask for the deletion of your personal information. If you ask us to delete your personal information, we will respect your request and delete your personal information, subject to certain exceptions provided by law, such as (but not limited to) the exercise by another consumer of his or her right to free speech, our compliance requirements resulting from a legal obligation, or any processing that may be required to protect against illegal activities.

Right to be informed — Request to know

Depending on the circumstances, you have a right to know:

  • whether we collect and use your personal information;
  • the categories of personal information that we collect;
  • the purposes for which the collected personal information is used;
  • whether we sell your personal information to third parties;
  • the categories of personal information that we sold or disclosed for a business purpose;
  • the categories of third parties to whom the personal information was sold or disclosed for a business purpose; and
  • the business or commercial purpose for collecting or selling personal information.

In accordance with applicable law, we are not obligated to provide or delete consumer information that is de-identified in response to a consumer request or to re-identify individual data to verify a consumer request.

Right to Non-Discrimination for the Exercise of a Consumer’s Privacy Rights

We will not discriminate against you if you exercise your privacy rights.

Verification process

Upon receiving your request, we will need to verify your identity to determine you are the same person about whom we have the information in our system. These verification efforts require us to ask you to provide information so that we can match it with information you have previously provided us. For instance, depending on the type of request you submit, we may ask you to provide certain information so that we can match the information you provide with the information we already have on file, or we may contact you through a communication method (e.g., phone or email) that you have previously provided to us. We may also use other verification methods as the circumstances dictate.

We will only use personal information provided in your request to verify your identity or authority to make the request. To the extent possible, we will avoid requesting additional information from you for the purposes of verification. However, if we cannot verify your identity from the information already maintained by us, we may request that you provide additional information for the purposes of verifying your identity and for security or fraud-prevention purposes. We will delete such additionally provided information as soon as we finish verifying you.

Other privacy rights

  • You may object to the processing of your personal information.
  • You may request correction of your personal data if it is incorrect or no longer relevant, or ask to restrict the processing of the information.
  • You can designate an authorized agent to make a request under the CCPA on your behalf. We may deny a request from an authorized agent that does not submit proof that they have been validly authorized to act on your behalf in accordance with the CCPA.
  • You may request to opt out from future selling of your personal information to third parties. Upon receiving an opt-out request, we will act upon the request as soon as feasibly possible, but no later than fifteen (15) days from the date of the request submission.

To exercise these rights, you can contact us by email at ccpa@frsource.org, or by referring to the contact details at the bottom of this document. If you have a complaint about how we handle your data, we would like to hear from you.

9. DO WE MAKE UPDATES TO THIS NOTICE?

In Short: Yes, we will update this notice as necessary to stay compliant with relevant laws.

We may update this privacy notice from time to time. The updated version will be indicated by an updated "Revised" date and the updated version will be effective as soon as it is accessible. If we make material changes to this privacy notice, we may notify you either by prominently posting a notice of such changes or by directly sending you a notification. We encourage you to review this privacy notice frequently to be informed of how we are protecting your information.

10. HOW CAN YOU CONTACT US ABOUT THIS NOTICE?

If you have questions or comments about this notice, you may email us at privacy@frsource.org or by post to:

FRS Jakub Freisler
ul. Królewska 92 / 8
Kraków, Małopolska 30-079
Poland

11. HOW CAN YOU REVIEW, UPDATE, OR DELETE THE DATA WE COLLECT FROM YOU?

Based on the applicable laws of your country, you may have the right to request access to the personal information we collect from you, change that information, or delete it. To request to review, update, or delete your personal information, please email us at: privacy@frsource.org.

\ No newline at end of file +Privacy Policy

Fast Angle logo Fast angle

Prosty kątomierz online - zmierz dowolny kąt bezpośrednio na Twoim obrazku!

PRIVACY NOTICE

Last updated November 03, 2022

This privacy notice for FRS Jakub Freisler ("Company," "we," "us," or "our"), describes how and why we might collect, store, use, and/or share ("process") your information when you use our services ("Services"), such as when you:

  • Download and use our mobile application (Fast Angle), or any other application of ours that links to this privacy notice
  • Engage with us in other related ways, including any sales, marketing, or events

Questions or concerns? Reading this privacy notice will help you understand your privacy rights and choices. If you do not agree with our policies and practices, please do not use our Services. If you still have any questions or concerns, please contact us at hi@frsource.org.

SUMMARY OF KEY POINTS

This summary provides key points from our privacy notice, but you can find out more details about any of these topics by clicking the link following each key point or by using our table of contents below to find the section you are looking for. You can also click here to go directly to our table of contents.

What personal information do we process? When you visit, use, or navigate our Services, we may process personal information depending on how you interact with FRS Jakub Freisler and the Services, the choices you make, and the products and features you use. Click here to learn more.

Do we process any sensitive personal information? We do not process sensitive personal information.

Do we receive any information from third parties? We do not receive any information from third parties.

How do we process your information? We process your information to provide, improve, and administer our Services, communicate with you, for security and fraud prevention, and to comply with law. We may also process your information for other purposes with your consent. We process your information only when we have a valid legal reason to do so. Click here to learn more.

In what situations and with which parties do we share personal information? We may share information in specific situations and with specific third parties. Click here to learn more.

What are your rights? Depending on where you are located geographically, the applicable privacy law may mean you have certain rights regarding your personal information. Click here to learn more.

How do you exercise your rights? The easiest way to exercise your rights is by filling out our data subject request form available here: privacy@frsource.org, or by contacting us. We will consider and act upon any request in accordance with applicable data protection laws.

Want to learn more about what FRS Jakub Freisler does with any information we collect? Click here to review the notice in full.

TABLE OF CONTENTS

  1. WHAT INFORMATION DO WE COLLECT?
  2. HOW DO WE PROCESS YOUR INFORMATION?
  3. WHAT LEGAL BASES DO WE RELY ON TO PROCESS YOUR PERSONAL INFORMATION?
  4. WHEN AND WITH WHOM DO WE SHARE YOUR PERSONAL INFORMATION?
  5. HOW LONG DO WE KEEP YOUR INFORMATION?
  6. WHAT ARE YOUR PRIVACY RIGHTS?
  7. CONTROLS FOR DO-NOT-TRACK FEATURES
  8. DO CALIFORNIA RESIDENTS HAVE SPECIFIC PRIVACY RIGHTS?
  9. DO WE MAKE UPDATES TO THIS NOTICE?
  10. HOW CAN YOU CONTACT US ABOUT THIS NOTICE?
  11. HOW CAN YOU REVIEW, UPDATE, OR DELETE THE DATA WE COLLECT FROM YOU?

1. WHAT INFORMATION DO WE COLLECT?

Personal information you disclose to us

In Short: We collect personal information that you provide to us.

We collect personal information that you voluntarily provide to us when you express an interest in obtaining information about us or our products and Services, when you participate in activities on the Services, or otherwise when you contact us.

Sensitive Information. We do not process sensitive information.

All personal information that you provide to us must be true, complete, and accurate, and you must notify us of any changes to such personal information.

2. HOW DO WE PROCESS YOUR INFORMATION?

In Short: We process your information to provide, improve, and administer our Services, communicate with you, for security and fraud prevention, and to comply with law. We may also process your information for other purposes with your consent.

We process your personal information for a variety of reasons, depending on how you interact with our Services, including:

  • To save or protect an individual's vital interest. We may process your information when necessary to save or protect an individual’s vital interest, such as to prevent harm.

3. WHAT LEGAL BASES DO WE RELY ON TO PROCESS YOUR INFORMATION?

In Short: We only process your personal information when we believe it is necessary and we have a valid legal reason (i.e., legal basis) to do so under applicable law, like with your consent, to comply with laws, to provide you with services to enter into or fulfill our contractual obligations, to protect your rights, or to fulfill our legitimate business interests.

If you are located in the EU or UK, this section applies to you.

The General Data Protection Regulation (GDPR) and UK GDPR require us to explain the valid legal bases we rely on in order to process your personal information. As such, we may rely on the following legal bases to process your personal information:

  • Consent. We may process your information if you have given us permission (i.e., consent) to use your personal information for a specific purpose. You can withdraw your consent at any time. Click here to learn more.
  • Legal Obligations. We may process your information where we believe it is necessary for compliance with our legal obligations, such as to cooperate with a law enforcement body or regulatory agency, exercise or defend our legal rights, or disclose your information as evidence in litigation in which we are involved.
  • Vital Interests. We may process your information where we believe it is necessary to protect your vital interests or the vital interests of a third party, such as situations involving potential threats to the safety of any person.

If you are located in Canada, this section applies to you.

We may process your information if you have given us specific permission (i.e., express consent) to use your personal information for a specific purpose, or in situations where your permission can be inferred (i.e., implied consent). You can withdraw your consent at any time. Click here to learn more.

In some exceptional cases, we may be legally permitted under applicable law to process your information without your consent, including, for example:

  • If collection is clearly in the interests of an individual and consent cannot be obtained in a timely way
  • For investigations and fraud detection and prevention
  • For business transactions provided certain conditions are met
  • If it is contained in a witness statement and the collection is necessary to assess, process, or settle an insurance claim
  • For identifying injured, ill, or deceased persons and communicating with next of kin
  • If we have reasonable grounds to believe an individual has been, is, or may be victim of financial abuse
  • If it is reasonable to expect collection and use with consent would compromise the availability or the accuracy of the information and the collection is reasonable for purposes related to investigating a breach of an agreement or a contravention of the laws of Canada or a province
  • If disclosure is required to comply with a subpoena, warrant, court order, or rules of the court relating to the production of records
  • If it was produced by an individual in the course of their employment, business, or profession and the collection is consistent with the purposes for which the information was produced
  • If the collection is solely for journalistic, artistic, or literary purposes
  • If the information is publicly available and is specified by the regulations

4. WHEN AND WITH WHOM DO WE SHARE YOUR PERSONAL INFORMATION?

In Short: We may share information in specific situations described in this section and/or with the following third parties.

We may need to share your personal information in the following situations:

  • Business Transfers. We may share or transfer your information in connection with, or during negotiations of, any merger, sale of company assets, financing, or acquisition of all or a portion of our business to another company.

5. HOW LONG DO WE KEEP YOUR INFORMATION?

In Short: We keep your information for as long as necessary to fulfill the purposes outlined in this privacy notice unless otherwise required by law.

We will only keep your personal information for as long as it is necessary for the purposes set out in this privacy notice, unless a longer retention period is required or permitted by law (such as tax, accounting, or other legal requirements).

When we have no ongoing legitimate business need to process your personal information, we will either delete or anonymize such information, or, if this is not possible (for example, because your personal information has been stored in backup archives), then we will securely store your personal information and isolate it from any further processing until deletion is possible.

6. WHAT ARE YOUR PRIVACY RIGHTS?

In Short: In some regions, such as the European Economic Area (EEA), United Kingdom (UK), and Canada, you have rights that allow you greater access to and control over your personal information. You may review, change, or terminate your account at any time.

In some regions (like the EEA, UK, and Canada), you have certain rights under applicable data protection laws. These may include the right (i) to request access and obtain a copy of your personal information, (ii) to request rectification or erasure; (iii) to restrict the processing of your personal information; and (iv) if applicable, to data portability. In certain circumstances, you may also have the right to object to the processing of your personal information. You can make such a request by contacting us by using the contact details provided in the section "HOW CAN YOU CONTACT US ABOUT THIS NOTICE?" below.

We will consider and act upon any request in accordance with applicable data protection laws.

 

If you are located in the EEA or UK and you believe we are unlawfully processing your personal information, you also have the right to complain to your local data protection supervisory authority. You can find their contact details here: https://ec.europa.eu/justice/data-protection/bodies/authorities/index_en.htm.

If you are located in Switzerland, the contact details for the data protection authorities are available here: https://www.edoeb.admin.ch/edoeb/en/home.html.

Withdrawing your consent: If we are relying on your consent to process your personal information, which may be express and/or implied consent depending on the applicable law, you have the right to withdraw your consent at any time. You can withdraw your consent at any time by contacting us by using the contact details provided in the section "HOW CAN YOU CONTACT US ABOUT THIS NOTICE?" below.

However, please note that this will not affect the lawfulness of the processing before its withdrawal nor, when applicable law allows, will it affect the processing of your personal information conducted in reliance on lawful processing grounds other than consent.

If you have questions or comments about your privacy rights, you may email us at privacy@frsource.org.

7. CONTROLS FOR DO-NOT-TRACK FEATURES

Most web browsers and some mobile operating systems and mobile applications include a Do-Not-Track ("DNT") feature or setting you can activate to signal your privacy preference not to have data about your online browsing activities monitored and collected. At this stage no uniform technology standard for recognizing and implementing DNT signals has been finalized. As such, we do not currently respond to DNT browser signals or any other mechanism that automatically communicates your choice not to be tracked online. If a standard for online tracking is adopted that we must follow in the future, we will inform you about that practice in a revised version of this privacy notice.

8. DO CALIFORNIA RESIDENTS HAVE SPECIFIC PRIVACY RIGHTS?

In Short: Yes, if you are a resident of California, you are granted specific rights regarding access to your personal information.

California Civil Code Section 1798.83, also known as the "Shine The Light" law, permits our users who are California residents to request and obtain from us, once a year and free of charge, information about categories of personal information (if any) we disclosed to third parties for direct marketing purposes and the names and addresses of all third parties with which we shared personal information in the immediately preceding calendar year. If you are a California resident and would like to make such a request, please submit your request in writing to us using the contact information provided below.

If you are under 18 years of age, reside in California, and have a registered account with Services, you have the right to request removal of unwanted data that you publicly post on the Services. To request removal of such data, please contact us using the contact information provided below and include the email address associated with your account and a statement that you reside in California. We will make sure the data is not publicly displayed on the Services, but please be aware that the data may not be completely or comprehensively removed from all our systems (e.g., backups, etc.).

CCPA Privacy Notice

The California Code of Regulations defines a "resident" as:

(1) every individual who is in the State of California for other than a temporary or transitory purpose and

(2) every individual who is domiciled in the State of California who is outside the State of California for a temporary or transitory purpose

All other individuals are defined as "non-residents."

If this definition of "resident" applies to you, we must adhere to certain rights and obligations regarding your personal information.

What categories of personal information do we collect?

We have collected the following categories of personal information in the past twelve (12) months:

CategoryExamplesCollected

A. Identifiers

Contact details, such as real name, alias, postal address, telephone or mobile contact number, unique personal identifier, online identifier, Internet Protocol address, email address, and account name

NO

B. Personal information categories listed in the California Customer Records statute

Name, contact information, education, employment, employment history, and financial information

NO

C. Protected classification characteristics under California or federal law

Gender and date of birth

NO

D. Commercial information

Transaction information, purchase history, financial details, and payment information

NO

E. Biometric information

Fingerprints and voiceprints

NO

F. Internet or other similar network activity

Browsing history, search history, online behavior, interest data, and interactions with our and other websites, applications, systems, and advertisements

NO

G. Geolocation data

Device location

NO

H. Audio, electronic, visual, thermal, olfactory, or similar information

Images and audio, video or call recordings created in connection with our business activities

NO

I. Professional or employment-related information

Business contact details in order to provide you our Services at a business level or job title, work history, and professional qualifications if you apply for a job with us

NO

J. Education Information

Student records and directory information

NO

K. Inferences drawn from other personal information

Inferences drawn from any of the collected personal information listed above to create a profile or summary about, for example, an individual’s preferences and characteristics

NO

We may also collect other personal information outside of these categories through instances where you interact with us in person, online, or by phone or mail in the context of:

  • Receiving help through our customer support channels;
  • Participation in customer surveys or contests; and
  • Facilitation in the delivery of our Services and to respond to your inquiries.

How do we use and share your personal information?

More information about our data collection and sharing practices can be found in this privacy notice.

You may contact us by email at ccpa@frsource.org, or by referring to the contact details at the bottom of this document.

If you are using an authorized agent to exercise your right to opt out we may deny a request if the authorized agent does not submit proof that they have been validly authorized to act on your behalf.

Will your information be shared with anyone else?

We may disclose your personal information with our service providers pursuant to a written contract between us and each service provider. Each service provider is a for-profit entity that processes the information on our behalf.

We may use your personal information for our own business purposes, such as for undertaking internal research for technological development and demonstration. This is not considered to be "selling" of your personal information.

FRS Jakub Freisler has not disclosed or sold any personal information to third parties for a business or commercial purpose in the preceding twelve (12) months. FRS Jakub Freisler will not sell personal information in the future belonging to website visitors, users, and other consumers.

Your rights with respect to your personal data

Right to request deletion of the data — Request to delete

You can ask for the deletion of your personal information. If you ask us to delete your personal information, we will respect your request and delete your personal information, subject to certain exceptions provided by law, such as (but not limited to) the exercise by another consumer of his or her right to free speech, our compliance requirements resulting from a legal obligation, or any processing that may be required to protect against illegal activities.

Right to be informed — Request to know

Depending on the circumstances, you have a right to know:

  • whether we collect and use your personal information;
  • the categories of personal information that we collect;
  • the purposes for which the collected personal information is used;
  • whether we sell your personal information to third parties;
  • the categories of personal information that we sold or disclosed for a business purpose;
  • the categories of third parties to whom the personal information was sold or disclosed for a business purpose; and
  • the business or commercial purpose for collecting or selling personal information.

In accordance with applicable law, we are not obligated to provide or delete consumer information that is de-identified in response to a consumer request or to re-identify individual data to verify a consumer request.

Right to Non-Discrimination for the Exercise of a Consumer’s Privacy Rights

We will not discriminate against you if you exercise your privacy rights.

Verification process

Upon receiving your request, we will need to verify your identity to determine you are the same person about whom we have the information in our system. These verification efforts require us to ask you to provide information so that we can match it with information you have previously provided us. For instance, depending on the type of request you submit, we may ask you to provide certain information so that we can match the information you provide with the information we already have on file, or we may contact you through a communication method (e.g., phone or email) that you have previously provided to us. We may also use other verification methods as the circumstances dictate.

We will only use personal information provided in your request to verify your identity or authority to make the request. To the extent possible, we will avoid requesting additional information from you for the purposes of verification. However, if we cannot verify your identity from the information already maintained by us, we may request that you provide additional information for the purposes of verifying your identity and for security or fraud-prevention purposes. We will delete such additionally provided information as soon as we finish verifying you.

Other privacy rights

  • You may object to the processing of your personal information.
  • You may request correction of your personal data if it is incorrect or no longer relevant, or ask to restrict the processing of the information.
  • You can designate an authorized agent to make a request under the CCPA on your behalf. We may deny a request from an authorized agent that does not submit proof that they have been validly authorized to act on your behalf in accordance with the CCPA.
  • You may request to opt out from future selling of your personal information to third parties. Upon receiving an opt-out request, we will act upon the request as soon as feasibly possible, but no later than fifteen (15) days from the date of the request submission.

To exercise these rights, you can contact us by email at ccpa@frsource.org, or by referring to the contact details at the bottom of this document. If you have a complaint about how we handle your data, we would like to hear from you.

9. DO WE MAKE UPDATES TO THIS NOTICE?

In Short: Yes, we will update this notice as necessary to stay compliant with relevant laws.

We may update this privacy notice from time to time. The updated version will be indicated by an updated "Revised" date and the updated version will be effective as soon as it is accessible. If we make material changes to this privacy notice, we may notify you either by prominently posting a notice of such changes or by directly sending you a notification. We encourage you to review this privacy notice frequently to be informed of how we are protecting your information.

10. HOW CAN YOU CONTACT US ABOUT THIS NOTICE?

If you have questions or comments about this notice, you may email us at privacy@frsource.org or by post to:

FRS Jakub Freisler
ul. Królewska 92 / 8
Kraków, Małopolska 30-079
Poland

11. HOW CAN YOU REVIEW, UPDATE, OR DELETE THE DATA WE COLLECT FROM YOU?

Based on the applicable laws of your country, you may have the right to request access to the personal information we collect from you, change that information, or delete it. To request to review, update, or delete your personal information, please email us at: privacy@frsource.org.

\ No newline at end of file diff --git a/pl/terms.html b/pl/terms.html index 9b9666d5..6e2d8294 100644 --- a/pl/terms.html +++ b/pl/terms.html @@ -1 +1 @@ -Terms and Conditions

Fast Angle logo Fast angle

Prosty kątomierz online - zmierz dowolny kąt bezpośrednio na Twoim obrazku!

Terms and Conditions

Last updated November 03, 2022

TABLE OF CONTENTS

  1. AGREEMENT TO TERMS
  2. INTELLECTUAL PROPERTY RIGHTS
  3. USER REPRESENTATIONS
  4. PROHIBITED ACTIVITIES
  5. USER GENERATED CONTRIBUTIONS
  6. CONTRIBUTION LICENSE
  7. MOBILE APPLICATION LICENSE
  8. SUBMISSIONS
  9. THIRD-PARTY WEBSITE AND CONTENT
  10. SITE MANAGEMENT
  11. PRIVACY POLICY
  12. TERM AND TERMINATION
  13. MODIFICATIONS AND INTERRUPTIONS
  14. GOVERNING LAW
  15. DISPUTE RESOLUTION
  16. CORRECTIONS
  17. DISCLAIMER
  18. LIMITATIONS OF LIABILITY
  19. INDEMNIFICATION
  20. USER DATA
  21. ELECTRONIC COMMUNICATIONS, TRANSACTIONS, AND SIGNATURES
  22. CALIFORNIA USERS AND RESIDENTS
  23. MISCELLANEOUS
  24. CONTACT US

1. AGREEMENT TO TERMS

These Terms of Use constitute a legally binding agreement made between you, whether personally or on behalf of an entity (“you”) and FRS Jakub Freisler ("Company," “we," “us," or “our”), concerning your access to and use of the https://www.frsource.org/fast-angle/ website as well as any other media form, media channel, mobile website or mobile application related, linked, or otherwise connected thereto (collectively, the “Site”). We are registered in Poland and have our registered office at ul. Królewska 92 / 8, Kraków, Małopolska 30-079. Our VAT number is PL 6783179514. You agree that by accessing the Site, you have read, understood, and agreed to be bound by all of these Terms of Use. IF YOU DO NOT AGREE WITH ALL OF THESE TERMS OF USE, THEN YOU ARE EXPRESSLY PROHIBITED FROM USING THE SITE AND YOU MUST DISCONTINUE USE IMMEDIATELY.

Supplemental terms and conditions or documents that may be posted on the Site from time to time are hereby expressly incorporated herein by reference. We reserve the right, in our sole discretion, to make changes or modifications to these Terms of Use from time to time. We will alert you about any changes by updating the “Last updated” date of these Terms of Use, and you waive any right to receive specific notice of each such change. Please ensure that you check the applicable Terms every time you use our Site so that you understand which Terms apply. You will be subject to, and will be deemed to have been made aware of and to have accepted, the changes in any revised Terms of Use by your continued use of the Site after the date such revised Terms of Use are posted.

The information provided on the Site is not intended for distribution to or use by any person or entity in any jurisdiction or country where such distribution or use would be contrary to law or regulation or which would subject us to any registration requirement within such jurisdiction or country. Accordingly, those persons who choose to access the Site from other locations do so on their own initiative and are solely responsible for compliance with local laws, if and to the extent local laws are applicable.

The Site is not tailored to comply with industry-specific regulations (Health Insurance Portability and Accountability Act (HIPAA), Federal Information Security Management Act (FISMA), etc.), so if your interactions would be subjected to such laws, you may not use this Site. You may not use the Site in a way that would violate the Gramm-Leach-Bliley Act (GLBA).

All users who are minors in the jurisdiction in which they reside (generally under the age of 18) must have the permission of, and be directly supervised by, their parent or guardian to use the Site. If you are a minor, you must have your parent or guardian read and agree to these Terms of Use prior to you using the Site.

2. INTELLECTUAL PROPERTY RIGHTS

Unless otherwise indicated, the Site is our proprietary property and all source code, databases, functionality, software, website designs, audio, video, text, photographs, and graphics on the Site (collectively, the “Content”) and the trademarks, service marks, and logos contained therein (the “Marks”) are owned or controlled by us or licensed to us, and are protected by copyright and trademark laws and various other intellectual property rights and unfair competition laws of the United States, international copyright laws, and international conventions. The Content and the Marks are provided on the Site “AS IS” for your information and personal use only. Except as expressly provided in these Terms of Use, no part of the Site and no Content or Marks may be copied, reproduced, aggregated, republished, uploaded, posted, publicly displayed, encoded, translated, transmitted, distributed, sold, licensed, or otherwise exploited for any commercial purpose whatsoever, without our express prior written permission.

Provided that you are eligible to use the Site, you are granted a limited license to access and use the Site and to download or print a copy of any portion of the Content to which you have properly gained access solely for your personal, non-commercial use. We reserve all rights not expressly granted to you in and to the Site, the Content and the Marks.

3. USER REPRESENTATIONS

By using the Site, you represent and warrant that: (1) you have the legal capacity and you agree to comply with these Terms of Use; (2) you are not a minor in the jurisdiction in which you reside, or if a minor, you have received parental permission to use the Site; (3) you will not access the Site through automated or non-human means, whether through a bot, script, or otherwise; (4) you will not use the Site for any illegal or unauthorized purpose; and (5) your use of the Site will not violate any applicable law or regulation.

If you provide any information that is untrue, inaccurate, not current, or incomplete, we have the right to suspend or terminate your account and refuse any and all current or future use of the Site (or any portion thereof).

4. PROHIBITED ACTIVITIES

You may not access or use the Site for any purpose other than that for which we make the Site available. The Site may not be used in connection with any commercial endeavors except those that are specifically endorsed or approved by us.

As a user of the Site, you agree not to:

  • Systematically retrieve data or other content from the Site to create or compile, directly or indirectly, a collection, compilation, database, or directory without written permission from us.
  • Trick, defraud, or mislead us and other users, especially in any attempt to learn sensitive account information such as user passwords.
  • Circumvent, disable, or otherwise interfere with security-related features of the Site, including features that prevent or restrict the use or copying of any Content or enforce limitations on the use of the Site and/or the Content contained therein.
  • Disparage, tarnish, or otherwise harm, in our opinion, us and/or the Site.
  • Use any information obtained from the Site in order to harass, abuse, or harm another person.
  • Make improper use of our support services or submit false reports of abuse or misconduct.
  • Use the Site in a manner inconsistent with any applicable laws or regulations.
  • Engage in unauthorized framing of or linking to the Site.
  • Upload or transmit (or attempt to upload or to transmit) viruses, Trojan horses, or other material, including excessive use of capital letters and spamming (continuous posting of repetitive text), that interferes with any party’s uninterrupted use and enjoyment of the Site or modifies, impairs, disrupts, alters, or interferes with the use, features, functions, operation, or maintenance of the Site.
  • Engage in any automated use of the system, such as using scripts to send comments or messages, or using any data mining, robots, or similar data gathering and extraction tools.
  • Delete the copyright or other proprietary rights notice from any Content.
  • Attempt to impersonate another user or person or use the username of another user.
  • Upload or transmit (or attempt to upload or to transmit) any material that acts as a passive or active information collection or transmission mechanism, including without limitation, clear graphics interchange formats (“gifs”), 1×1 pixels, web bugs, cookies, or other similar devices (sometimes referred to as “spyware” or “passive collection mechanisms” or “pcms”).
  • Interfere with, disrupt, or create an undue burden on the Site or the networks or services connected to the Site.
  • Harass, annoy, intimidate, or threaten any of our employees or agents engaged in providing any portion of the Site to you.
  • Attempt to bypass any measures of the Site designed to prevent or restrict access to the Site, or any portion of the Site.
  • Copy or adapt the Site’s software, including but not limited to Flash, PHP, HTML, JavaScript, or other code.
  • Except as permitted by applicable law, decipher, decompile, disassemble, or reverse engineer any of the software comprising or in any way making up a part of the Site.
  • Except as may be the result of standard search engine or Internet browser usage, use, launch, develop, or distribute any automated system, including without limitation, any spider, robot, cheat utility, scraper, or offline reader that accesses the Site, or using or launching any unauthorized script or other software.
  • Use a buying agent or purchasing agent to make purchases on the Site.
  • Make any unauthorized use of the Site, including collecting usernames and/or email addresses of users by electronic or other means for the purpose of sending unsolicited email, or creating user accounts by automated means or under false pretenses.
  • Use the Site as part of any effort to compete with us or otherwise use the Site and/or the Content for any revenue-generating endeavor or commercial enterprise.
  • Use the Site to advertise or offer to sell goods and services.
  • Sell or otherwise transfer your profile.

5. USER GENERATED CONTRIBUTIONS

The Site does not offer users to submit or post content. We may provide you with the opportunity to create, submit, post, display, transmit, perform, publish, distribute, or broadcast content and materials to us or on the Site, including but not limited to text, writings, video, audio, photographs, graphics, comments, suggestions, or personal information or other material (collectively, "Contributions"). Contributions may be viewable by other users of the Site and through third-party websites. As such, any Contributions you transmit may be treated in accordance with the Site Privacy Policy. When you create or make available any Contributions, you thereby represent and warrant that:

  • The creation, distribution, transmission, public display, or performance, and the accessing, downloading, or copying of your Contributions do not and will not infringe the proprietary rights, including but not limited to the copyright, patent, trademark, trade secret, or moral rights of any third party.
  • You are the creator and owner of or have the necessary licenses, rights, consents, releases, and permissions to use and to authorize us, the Site, and other users of the Site to use your Contributions in any manner contemplated by the Site and these Terms of Use.
  • You have the written consent, release, and/or permission of each and every identifiable individual person in your Contributions to use the name or likeness of each and every such identifiable individual person to enable inclusion and use of your Contributions in any manner contemplated by the Site and these Terms of Use.
  • Your Contributions are not false, inaccurate, or misleading.
  • Your Contributions are not unsolicited or unauthorized advertising, promotional materials, pyramid schemes, chain letters, spam, mass mailings, or other forms of solicitation.
  • Your Contributions are not obscene, lewd, lascivious, filthy, violent, harassing, libelous, slanderous, or otherwise objectionable (as determined by us).
  • Your Contributions do not ridicule, mock, disparage, intimidate, or abuse anyone.
  • Your Contributions are not used to harass or threaten (in the legal sense of those terms) any other person and to promote violence against a specific person or class of people.
  • Your Contributions do not violate any applicable law, regulation, or rule.
  • Your Contributions do not violate the privacy or publicity rights of any third party.
  • Your Contributions do not violate any applicable law concerning child pornography, or otherwise intended to protect the health or well-being of minors.
  • Your Contributions do not include any offensive comments that are connected to race, national origin, gender, sexual preference, or physical handicap.
  • Your Contributions do not otherwise violate, or link to material that violates, any provision of these Terms of Use, or any applicable law or regulation.

Any use of the Site in violation of the foregoing violates these Terms of Use and may result in, among other things, termination or suspension of your rights to use the Site.

6. CONTRIBUTION LICENSE

You agree that we may access, store, process, and use any information and personal data that you provide following the terms of the Privacy Policy and your choices (including settings).

By submitting suggestions or other feedback regarding the Site, you agree that we can use and share such feedback for any purpose without compensation to you.

We do not assert any ownership over your Contributions. You retain full ownership of all of your Contributions and any intellectual property rights or other proprietary rights associated with your Contributions. We are not liable for any statements or representations in your Contributions provided by you in any area on the Site. You are solely responsible for your Contributions to the Site and you expressly agree to exonerate us from any and all responsibility and to refrain from any legal action against us regarding your Contributions.

7. MOBILE APPLICATION LICENSE

Use License

If you access the Site via a mobile application, then we grant you a revocable, non-exclusive, non-transferable, limited right to install and use the mobile application on wireless electronic devices owned or controlled by you, and to access and use the mobile application on such devices strictly in accordance with the terms and conditions of this mobile application license contained in these Terms of Use. You shall not: (1) except as permitted by applicable law, decompile, reverse engineer, disassemble, attempt to derive the source code of, or decrypt the application; (2) make any modification, adaptation, improvement, enhancement, translation, or derivative work from the application; (3) violate any applicable laws, rules, or regulations in connection with your access or use of the application; (4) remove, alter, or obscure any proprietary notice (including any notice of copyright or trademark) posted by us or the licensors of the application; (5) use the application for any revenue generating endeavor, commercial enterprise, or other purpose for which it is not designed or intended; (6) make the application available over a network or other environment permitting access or use by multiple devices or users at the same time; (7) use the application for creating a product, service, or software that is, directly or indirectly, competitive with or in any way a substitute for the application; (8) use the application to send automated queries to any website or to send any unsolicited commercial e-mail; or (9) use any proprietary information or any of our interfaces or our other intellectual property in the design, development, manufacture, licensing, or distribution of any applications, accessories, or devices for use with the application.

Apple and Android Devices

The following terms apply when you use a mobile application obtained from either the Apple Store or Google Play (each an “App Distributor”) to access the Site: (1) the license granted to you for our mobile application is limited to a non-transferable license to use the application on a device that utilizes the Apple iOS or Android operating systems, as applicable, and in accordance with the usage rules set forth in the applicable App Distributor’s terms of service; (2) we are responsible for providing any maintenance and support services with respect to the mobile application as specified in the terms and conditions of this mobile application license contained in these Terms of Use or as otherwise required under applicable law, and you acknowledge that each App Distributor has no obligation whatsoever to furnish any maintenance and support services with respect to the mobile application; (3) in the event of any failure of the mobile application to conform to any applicable warranty, you may notify the applicable App Distributor, and the App Distributor, in accordance with its terms and policies, may refund the purchase price, if any, paid for the mobile application, and to the maximum extent permitted by applicable law, the App Distributor will have no other warranty obligation whatsoever with respect to the mobile application; (4) you represent and warrant that (i) you are not located in a country that is subject to a U.S. government embargo, or that has been designated by the U.S. government as a “terrorist supporting” country and (ii) you are not listed on any U.S. government list of prohibited or restricted parties; (5) you must comply with applicable third-party terms of agreement when using the mobile application, e.g., if you have a VoIP application, then you must not be in violation of their wireless data service agreement when using the mobile application; and (6) you acknowledge and agree that the App Distributors are third-party beneficiaries of the terms and conditions in this mobile application license contained in these Terms of Use, and that each App Distributor will have the right (and will be deemed to have accepted the right) to enforce the terms and conditions in this mobile application license contained in these Terms of Use against you as a third-party beneficiary thereof.

8. SUBMISSIONS

You acknowledge and agree that any questions, comments, suggestions, ideas, feedback, or other information regarding the Site ("Submissions") provided by you to us are non-confidential and shall become our sole property. We shall own exclusive rights, including all intellectual property rights, and shall be entitled to the unrestricted use and dissemination of these Submissions for any lawful purpose, commercial or otherwise, without acknowledgment or compensation to you. You hereby waive all moral rights to any such Submissions, and you hereby warrant that any such Submissions are original with you or that you have the right to submit such Submissions. You agree there shall be no recourse against us for any alleged or actual infringement or misappropriation of any proprietary right in your Submissions.

9. THIRD-PARTY WEBSITE AND CONTENT

The Site may contain (or you may be sent via the Site) links to other websites ("Third-Party Websites") as well as articles, photographs, text, graphics, pictures, designs, music, sound, video, information, applications, software, and other content or items belonging to or originating from third parties ("Third-Party Content"). Such Third-Party Websites and Third-Party Content are not investigated, monitored, or checked for accuracy, appropriateness, or completeness by us, and we are not responsible for any Third-Party Websites accessed through the Site or any Third-Party Content posted on, available through, or installed from the Site, including the content, accuracy, offensiveness, opinions, reliability, privacy practices, or other policies of or contained in the Third-Party Websites or the Third-Party Content. Inclusion of, linking to, or permitting the use or installation of any Third-Party Websites or any Third-Party Content does not imply approval or endorsement thereof by us. If you decide to leave the Site and access the Third-Party Websites or to use or install any Third-Party Content, you do so at your own risk, and you should be aware these Terms of Use no longer govern. You should review the applicable terms and policies, including privacy and data gathering practices, of any website to which you navigate from the Site or relating to any applications you use or install from the Site. Any purchases you make through Third-Party Websites will be through other websites and from other companies, and we take no responsibility whatsoever in relation to such purchases which are exclusively between you and the applicable third party. You agree and acknowledge that we do not endorse the products or services offered on Third-Party Websites and you shall hold us harmless from any harm caused by your purchase of such products or services. Additionally, you shall hold us harmless from any losses sustained by you or harm caused to you relating to or resulting in any way from any Third-Party Content or any contact with Third-Party Websites.

10. SITE MANAGEMENT

We reserve the right, but not the obligation, to: (1) monitor the Site for violations of these Terms of Use; (2) take appropriate legal action against anyone who, in our sole discretion, violates the law or these Terms of Use, including without limitation, reporting such user to law enforcement authorities; (3) in our sole discretion and without limitation, refuse, restrict access to, limit the availability of, or disable (to the extent technologically feasible) any of your Contributions or any portion thereof; (4) in our sole discretion and without limitation, notice, or liability, to remove from the Site or otherwise disable all files and content that are excessive in size or are in any way burdensome to our systems; and (5) otherwise manage the Site in a manner designed to protect our rights and property and to facilitate the proper functioning of the Site.

11. PRIVACY POLICY

We care about data privacy and security. Please review our Privacy Policy: https://www.frsource.org/fast-angle/pl/privacy-policy. By using the Site, you agree to be bound by our Privacy Policy, which is incorporated into these Terms of Use. Please be advised the Site is hosted in the United States. If you access the Site from any other region of the world with laws or other requirements governing personal data collection, use, or disclosure that differ from applicable laws in the United States, then through your continued use of the Site, you are transferring your data to the United States, and you agree to have your data transferred to and processed in the United States.

12. TERM AND TERMINATION

These Terms of Use shall remain in full force and effect while you use the Site. WITHOUT LIMITING ANY OTHER PROVISION OF THESE TERMS OF USE, WE RESERVE THE RIGHT TO, IN OUR SOLE DISCRETION AND WITHOUT NOTICE OR LIABILITY, DENY ACCESS TO AND USE OF THE SITE (INCLUDING BLOCKING CERTAIN IP ADDRESSES), TO ANY PERSON FOR ANY REASON OR FOR NO REASON, INCLUDING WITHOUT LIMITATION FOR BREACH OF ANY REPRESENTATION, WARRANTY, OR COVENANT CONTAINED IN THESE TERMS OF USE OR OF ANY APPLICABLE LAW OR REGULATION. WE MAY TERMINATE YOUR USE OR PARTICIPATION IN THE SITE OR DELETE ANY CONTENT OR INFORMATION THAT YOU POSTED AT ANY TIME, WITHOUT WARNING, IN OUR SOLE DISCRETION.

If we terminate or suspend your account for any reason, you are prohibited from registering and creating a new account under your name, a fake or borrowed name, or the name of any third party, even if you may be acting on behalf of the third party. In addition to terminating or suspending your account, we reserve the right to take appropriate legal action, including without limitation pursuing civil, criminal, and injunctive redress.

13. MODIFICATIONS AND INTERRUPTIONS

We reserve the right to change, modify, or remove the contents of the Site at any time or for any reason at our sole discretion without notice. However, we have no obligation to update any information on our Site. We also reserve the right to modify or discontinue all or part of the Site without notice at any time. We will not be liable to you or any third party for any modification, price change, suspension, or discontinuance of the Site.

We cannot guarantee the Site will be available at all times. We may experience hardware, software, or other problems or need to perform maintenance related to the Site, resulting in interruptions, delays, or errors. We reserve the right to change, revise, update, suspend, discontinue, or otherwise modify the Site at any time or for any reason without notice to you. You agree that we have no liability whatsoever for any loss, damage, or inconvenience caused by your inability to access or use the Site during any downtime or discontinuance of the Site. Nothing in these Terms of Use will be construed to obligate us to maintain and support the Site or to supply any corrections, updates, or releases in connection therewith.

14. GOVERNING LAW

These conditions are governed by and interpreted following the laws of Poland, and the use of the United Nations Convention of Contracts for the International Sale of Goods is expressly excluded. If your habitual residence is in the EU, and you are a consumer, you additionally possess the protection provided to you by obligatory provisions of the law of your country of residence. FRS Jakub Freisler and yourself both agree to submit to the non-exclusive jurisdiction of the courts of Krowodrza, Kraków, Poland, which means that you may make a claim to defend your consumer protection rights in regards to these Terms of Use in Poland, or in the EU country in which you reside.

15. DISPUTE RESOLUTION

Informal Negotiations

To expedite resolution and control the cost of any dispute, controversy, or claim related to these Terms of Use (each "Dispute" and collectively, the “Disputes”) brought by either you or us (individually, a “Party” and collectively, the “Parties”), the Parties agree to first attempt to negotiate any Dispute (except those Disputes expressly provided below) informally for at least thirty (30) days before initiating arbitration. Such informal negotiations commence upon written notice from one Party to the other Party.

Binding Arbitration

   

Any dispute arising from the relationships between the Parties to this contract shall be determined by one arbitrator who will be chosen in accordance with the Arbitration and Internal Rules of the European Court of Arbitration being part of the European Centre of Arbitration having its seat in Strasbourg, and which are in force at the time the application for arbitration is filed, and of which adoption of this clause constitutes acceptance. The seat of arbitration shall be Kraków, Poland. The language of the proceedings shall be English. Applicable rules of substantive law shall be the law of Poland.

Restrictions

The Parties agree that any arbitration shall be limited to the Dispute between the Parties individually. To the full extent permitted by law, (a) no arbitration shall be joined with any other proceeding; (b) there is no right or authority for any Dispute to be arbitrated on a class-action basis or to utilize class action procedures; and (c) there is no right or authority for any Dispute to be brought in a purported representative capacity on behalf of the general public or any other persons.

Exceptions to Informal Negotiations and Arbitration

The Parties agree that the following Disputes are not subject to the above provisions concerning informal negotiations and binding arbitration: (a) any Disputes seeking to enforce or protect, or concerning the validity of, any of the intellectual property rights of a Party; (b) any Dispute related to, or arising from, allegations of theft, piracy, invasion of privacy, or unauthorized use; and (c) any claim for injunctive relief. If this provision is found to be illegal or unenforceable, then neither Party will elect to arbitrate any Dispute falling within that portion of this provision found to be illegal or unenforceable and such Dispute shall be decided by a court of competent jurisdiction within the courts listed for jurisdiction above, and the Parties agree to submit to the personal jurisdiction of that court.

16. CORRECTIONS

There may be information on the Site that contains typographical errors, inaccuracies, or omissions, including descriptions, pricing, availability, and various other information. We reserve the right to correct any errors, inaccuracies, or omissions and to change or update the information on the Site at any time, without prior notice.

17. DISCLAIMER

THE SITE IS PROVIDED ON AN AS-IS AND AS-AVAILABLE BASIS. YOU AGREE THAT YOUR USE OF THE SITE AND OUR SERVICES WILL BE AT YOUR SOLE RISK. TO THE FULLEST EXTENT PERMITTED BY LAW, WE DISCLAIM ALL WARRANTIES, EXPRESS OR IMPLIED, IN CONNECTION WITH THE SITE AND YOUR USE THEREOF, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, AND NON-INFRINGEMENT. WE MAKE NO WARRANTIES OR REPRESENTATIONS ABOUT THE ACCURACY OR COMPLETENESS OF THE SITE’S CONTENT OR THE CONTENT OF ANY WEBSITES LINKED TO THE SITE AND WE WILL ASSUME NO LIABILITY OR RESPONSIBILITY FOR ANY (1) ERRORS, MISTAKES, OR INACCURACIES OF CONTENT AND MATERIALS, (2) PERSONAL INJURY OR PROPERTY DAMAGE, OF ANY NATURE WHATSOEVER, RESULTING FROM YOUR ACCESS TO AND USE OF THE SITE, (3) ANY UNAUTHORIZED ACCESS TO OR USE OF OUR SECURE SERVERS AND/OR ANY AND ALL PERSONAL INFORMATION AND/OR FINANCIAL INFORMATION STORED THEREIN, (4) ANY INTERRUPTION OR CESSATION OF TRANSMISSION TO OR FROM THE SITE, (5) ANY BUGS, VIRUSES, TROJAN HORSES, OR THE LIKE WHICH MAY BE TRANSMITTED TO OR THROUGH THE SITE BY ANY THIRD PARTY, AND/OR (6) ANY ERRORS OR OMISSIONS IN ANY CONTENT AND MATERIALS OR FOR ANY LOSS OR DAMAGE OF ANY KIND INCURRED AS A RESULT OF THE USE OF ANY CONTENT POSTED, TRANSMITTED, OR OTHERWISE MADE AVAILABLE VIA THE SITE. WE DO NOT WARRANT, ENDORSE, GUARANTEE, OR ASSUME RESPONSIBILITY FOR ANY PRODUCT OR SERVICE ADVERTISED OR OFFERED BY A THIRD PARTY THROUGH THE SITE, ANY HYPERLINKED WEBSITE, OR ANY WEBSITE OR MOBILE APPLICATION FEATURED IN ANY BANNER OR OTHER ADVERTISING, AND WE WILL NOT BE A PARTY TO OR IN ANY WAY BE RESPONSIBLE FOR MONITORING ANY TRANSACTION BETWEEN YOU AND ANY THIRD-PARTY PROVIDERS OF PRODUCTS OR SERVICES. AS WITH THE PURCHASE OF A PRODUCT OR SERVICE THROUGH ANY MEDIUM OR IN ANY ENVIRONMENT, YOU SHOULD USE YOUR BEST JUDGMENT AND EXERCISE CAUTION WHERE APPROPRIATE.

18. LIMITATIONS OF LIABILITY

IN NO EVENT WILL WE OR OUR DIRECTORS, EMPLOYEES, OR AGENTS BE LIABLE TO YOU OR ANY THIRD PARTY FOR ANY DIRECT, INDIRECT, CONSEQUENTIAL, EXEMPLARY, INCIDENTAL, SPECIAL, OR PUNITIVE DAMAGES, INCLUDING LOST PROFIT, LOST REVENUE, LOSS OF DATA, OR OTHER DAMAGES ARISING FROM YOUR USE OF THE SITE, EVEN IF WE HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. NOTWITHSTANDING ANYTHING TO THE CONTRARY CONTAINED HEREIN, OUR LIABILITY TO YOU FOR ANY CAUSE WHATSOEVER AND REGARDLESS OF THE FORM OF THE ACTION, WILL AT ALL TIMES BE LIMITED TO THE LESSER OF THE AMOUNT PAID, IF ANY, BY YOU TO US DURING THE three (3) MONTH PERIOD PRIOR TO ANY CAUSE OF ACTION ARISING OR $0.00 USD. CERTAIN US STATE LAWS AND INTERNATIONAL LAWS DO NOT ALLOW LIMITATIONS ON IMPLIED WARRANTIES OR THE EXCLUSION OR LIMITATION OF CERTAIN DAMAGES. IF THESE LAWS APPLY TO YOU, SOME OR ALL OF THE ABOVE DISCLAIMERS OR LIMITATIONS MAY NOT APPLY TO YOU, AND YOU MAY HAVE ADDITIONAL RIGHTS.

19. INDEMNIFICATION

You agree to defend, indemnify, and hold us harmless, including our subsidiaries, affiliates, and all of our respective officers, agents, partners, and employees, from and against any loss, damage, liability, claim, or demand, including reasonable attorneys’ fees and expenses, made by any third party due to or arising out of: (1) use of the Site; (2) breach of these Terms of Use; (3) any breach of your representations and warranties set forth in these Terms of Use; (4) your violation of the rights of a third party, including but not limited to intellectual property rights; or (5) any overt harmful act toward any other user of the Site with whom you connected via the Site. Notwithstanding the foregoing, we reserve the right, at your expense, to assume the exclusive defense and control of any matter for which you are required to indemnify us, and you agree to cooperate, at your expense, with our defense of such claims. We will use reasonable efforts to notify you of any such claim, action, or proceeding which is subject to this indemnification upon becoming aware of it.

20. USER DATA

We will maintain certain data that you transmit to the Site for the purpose of managing the performance of the Site, as well as data relating to your use of the Site. Although we perform regular routine backups of data, you are solely responsible for all data that you transmit or that relates to any activity you have undertaken using the Site. You agree that we shall have no liability to you for any loss or corruption of any such data, and you hereby waive any right of action against us arising from any such loss or corruption of such data.

21. ELECTRONIC COMMUNICATIONS, TRANSACTIONS, AND SIGNATURES

Visiting the Site, sending us emails, and completing online forms constitute electronic communications. You consent to receive electronic communications, and you agree that all agreements, notices, disclosures, and other communications we provide to you electronically, via email and on the Site, satisfy any legal requirement that such communication be in writing. YOU HEREBY AGREE TO THE USE OF ELECTRONIC SIGNATURES, CONTRACTS, ORDERS, AND OTHER RECORDS, AND TO ELECTRONIC DELIVERY OF NOTICES, POLICIES, AND RECORDS OF TRANSACTIONS INITIATED OR COMPLETED BY US OR VIA THE SITE. You hereby waive any rights or requirements under any statutes, regulations, rules, ordinances, or other laws in any jurisdiction which require an original signature or delivery or retention of non-electronic records, or to payments or the granting of credits by any means other than electronic means.

22. CALIFORNIA USERS AND RESIDENTS

If any complaint with us is not satisfactorily resolved, you can contact the Complaint Assistance Unit of the Division of Consumer Services of the California Department of Consumer Affairs in writing at 1625 North Market Blvd., Suite N 112, Sacramento, California 95834 or by telephone at (800) 952-5210 or (916) 445-1254.

23. MISCELLANEOUS

These Terms of Use and any policies or operating rules posted by us on the Site or in respect to the Site constitute the entire agreement and understanding between you and us. Our failure to exercise or enforce any right or provision of these Terms of Use shall not operate as a waiver of such right or provision. These Terms of Use operate to the fullest extent permissible by law. We may assign any or all of our rights and obligations to others at any time. We shall not be responsible or liable for any loss, damage, delay, or failure to act caused by any cause beyond our reasonable control. If any provision or part of a provision of these Terms of Use is determined to be unlawful, void, or unenforceable, that provision or part of the provision is deemed severable from these Terms of Use and does not affect the validity and enforceability of any remaining provisions. There is no joint venture, partnership, employment or agency relationship created between you and us as a result of these Terms of Use or use of the Site. You agree that these Terms of Use will not be construed against us by virtue of having drafted them. You hereby waive any and all defenses you may have based on the electronic form of these Terms of Use and the lack of signing by the parties hereto to execute these Terms of Use.

24. CONTACT US

In order to resolve a complaint regarding the Site or to receive further information regarding use of the Site, please contact us at:

FRS Jakub Freisler
ul. Królewska 92 / 8
Kraków, Małopolska 30-079
Poland
Phone: +48882568430
complaint@frsource.org
\ No newline at end of file +Terms and Conditions

Fast Angle logo Fast angle

Prosty kątomierz online - zmierz dowolny kąt bezpośrednio na Twoim obrazku!

Terms and Conditions

Last updated November 03, 2022

TABLE OF CONTENTS

  1. AGREEMENT TO TERMS
  2. INTELLECTUAL PROPERTY RIGHTS
  3. USER REPRESENTATIONS
  4. PROHIBITED ACTIVITIES
  5. USER GENERATED CONTRIBUTIONS
  6. CONTRIBUTION LICENSE
  7. MOBILE APPLICATION LICENSE
  8. SUBMISSIONS
  9. THIRD-PARTY WEBSITE AND CONTENT
  10. SITE MANAGEMENT
  11. PRIVACY POLICY
  12. TERM AND TERMINATION
  13. MODIFICATIONS AND INTERRUPTIONS
  14. GOVERNING LAW
  15. DISPUTE RESOLUTION
  16. CORRECTIONS
  17. DISCLAIMER
  18. LIMITATIONS OF LIABILITY
  19. INDEMNIFICATION
  20. USER DATA
  21. ELECTRONIC COMMUNICATIONS, TRANSACTIONS, AND SIGNATURES
  22. CALIFORNIA USERS AND RESIDENTS
  23. MISCELLANEOUS
  24. CONTACT US

1. AGREEMENT TO TERMS

These Terms of Use constitute a legally binding agreement made between you, whether personally or on behalf of an entity (“you”) and FRS Jakub Freisler ("Company," “we," “us," or “our”), concerning your access to and use of the https://www.frsource.org/fast-angle/ website as well as any other media form, media channel, mobile website or mobile application related, linked, or otherwise connected thereto (collectively, the “Site”). We are registered in Poland and have our registered office at ul. Królewska 92 / 8, Kraków, Małopolska 30-079. Our VAT number is PL 6783179514. You agree that by accessing the Site, you have read, understood, and agreed to be bound by all of these Terms of Use. IF YOU DO NOT AGREE WITH ALL OF THESE TERMS OF USE, THEN YOU ARE EXPRESSLY PROHIBITED FROM USING THE SITE AND YOU MUST DISCONTINUE USE IMMEDIATELY.

Supplemental terms and conditions or documents that may be posted on the Site from time to time are hereby expressly incorporated herein by reference. We reserve the right, in our sole discretion, to make changes or modifications to these Terms of Use from time to time. We will alert you about any changes by updating the “Last updated” date of these Terms of Use, and you waive any right to receive specific notice of each such change. Please ensure that you check the applicable Terms every time you use our Site so that you understand which Terms apply. You will be subject to, and will be deemed to have been made aware of and to have accepted, the changes in any revised Terms of Use by your continued use of the Site after the date such revised Terms of Use are posted.

The information provided on the Site is not intended for distribution to or use by any person or entity in any jurisdiction or country where such distribution or use would be contrary to law or regulation or which would subject us to any registration requirement within such jurisdiction or country. Accordingly, those persons who choose to access the Site from other locations do so on their own initiative and are solely responsible for compliance with local laws, if and to the extent local laws are applicable.

The Site is not tailored to comply with industry-specific regulations (Health Insurance Portability and Accountability Act (HIPAA), Federal Information Security Management Act (FISMA), etc.), so if your interactions would be subjected to such laws, you may not use this Site. You may not use the Site in a way that would violate the Gramm-Leach-Bliley Act (GLBA).

All users who are minors in the jurisdiction in which they reside (generally under the age of 18) must have the permission of, and be directly supervised by, their parent or guardian to use the Site. If you are a minor, you must have your parent or guardian read and agree to these Terms of Use prior to you using the Site.

2. INTELLECTUAL PROPERTY RIGHTS

Unless otherwise indicated, the Site is our proprietary property and all source code, databases, functionality, software, website designs, audio, video, text, photographs, and graphics on the Site (collectively, the “Content”) and the trademarks, service marks, and logos contained therein (the “Marks”) are owned or controlled by us or licensed to us, and are protected by copyright and trademark laws and various other intellectual property rights and unfair competition laws of the United States, international copyright laws, and international conventions. The Content and the Marks are provided on the Site “AS IS” for your information and personal use only. Except as expressly provided in these Terms of Use, no part of the Site and no Content or Marks may be copied, reproduced, aggregated, republished, uploaded, posted, publicly displayed, encoded, translated, transmitted, distributed, sold, licensed, or otherwise exploited for any commercial purpose whatsoever, without our express prior written permission.

Provided that you are eligible to use the Site, you are granted a limited license to access and use the Site and to download or print a copy of any portion of the Content to which you have properly gained access solely for your personal, non-commercial use. We reserve all rights not expressly granted to you in and to the Site, the Content and the Marks.

3. USER REPRESENTATIONS

By using the Site, you represent and warrant that: (1) you have the legal capacity and you agree to comply with these Terms of Use; (2) you are not a minor in the jurisdiction in which you reside, or if a minor, you have received parental permission to use the Site; (3) you will not access the Site through automated or non-human means, whether through a bot, script, or otherwise; (4) you will not use the Site for any illegal or unauthorized purpose; and (5) your use of the Site will not violate any applicable law or regulation.

If you provide any information that is untrue, inaccurate, not current, or incomplete, we have the right to suspend or terminate your account and refuse any and all current or future use of the Site (or any portion thereof).

4. PROHIBITED ACTIVITIES

You may not access or use the Site for any purpose other than that for which we make the Site available. The Site may not be used in connection with any commercial endeavors except those that are specifically endorsed or approved by us.

As a user of the Site, you agree not to:

  • Systematically retrieve data or other content from the Site to create or compile, directly or indirectly, a collection, compilation, database, or directory without written permission from us.
  • Trick, defraud, or mislead us and other users, especially in any attempt to learn sensitive account information such as user passwords.
  • Circumvent, disable, or otherwise interfere with security-related features of the Site, including features that prevent or restrict the use or copying of any Content or enforce limitations on the use of the Site and/or the Content contained therein.
  • Disparage, tarnish, or otherwise harm, in our opinion, us and/or the Site.
  • Use any information obtained from the Site in order to harass, abuse, or harm another person.
  • Make improper use of our support services or submit false reports of abuse or misconduct.
  • Use the Site in a manner inconsistent with any applicable laws or regulations.
  • Engage in unauthorized framing of or linking to the Site.
  • Upload or transmit (or attempt to upload or to transmit) viruses, Trojan horses, or other material, including excessive use of capital letters and spamming (continuous posting of repetitive text), that interferes with any party’s uninterrupted use and enjoyment of the Site or modifies, impairs, disrupts, alters, or interferes with the use, features, functions, operation, or maintenance of the Site.
  • Engage in any automated use of the system, such as using scripts to send comments or messages, or using any data mining, robots, or similar data gathering and extraction tools.
  • Delete the copyright or other proprietary rights notice from any Content.
  • Attempt to impersonate another user or person or use the username of another user.
  • Upload or transmit (or attempt to upload or to transmit) any material that acts as a passive or active information collection or transmission mechanism, including without limitation, clear graphics interchange formats (“gifs”), 1×1 pixels, web bugs, cookies, or other similar devices (sometimes referred to as “spyware” or “passive collection mechanisms” or “pcms”).
  • Interfere with, disrupt, or create an undue burden on the Site or the networks or services connected to the Site.
  • Harass, annoy, intimidate, or threaten any of our employees or agents engaged in providing any portion of the Site to you.
  • Attempt to bypass any measures of the Site designed to prevent or restrict access to the Site, or any portion of the Site.
  • Copy or adapt the Site’s software, including but not limited to Flash, PHP, HTML, JavaScript, or other code.
  • Except as permitted by applicable law, decipher, decompile, disassemble, or reverse engineer any of the software comprising or in any way making up a part of the Site.
  • Except as may be the result of standard search engine or Internet browser usage, use, launch, develop, or distribute any automated system, including without limitation, any spider, robot, cheat utility, scraper, or offline reader that accesses the Site, or using or launching any unauthorized script or other software.
  • Use a buying agent or purchasing agent to make purchases on the Site.
  • Make any unauthorized use of the Site, including collecting usernames and/or email addresses of users by electronic or other means for the purpose of sending unsolicited email, or creating user accounts by automated means or under false pretenses.
  • Use the Site as part of any effort to compete with us or otherwise use the Site and/or the Content for any revenue-generating endeavor or commercial enterprise.
  • Use the Site to advertise or offer to sell goods and services.
  • Sell or otherwise transfer your profile.

5. USER GENERATED CONTRIBUTIONS

The Site does not offer users to submit or post content. We may provide you with the opportunity to create, submit, post, display, transmit, perform, publish, distribute, or broadcast content and materials to us or on the Site, including but not limited to text, writings, video, audio, photographs, graphics, comments, suggestions, or personal information or other material (collectively, "Contributions"). Contributions may be viewable by other users of the Site and through third-party websites. As such, any Contributions you transmit may be treated in accordance with the Site Privacy Policy. When you create or make available any Contributions, you thereby represent and warrant that:

  • The creation, distribution, transmission, public display, or performance, and the accessing, downloading, or copying of your Contributions do not and will not infringe the proprietary rights, including but not limited to the copyright, patent, trademark, trade secret, or moral rights of any third party.
  • You are the creator and owner of or have the necessary licenses, rights, consents, releases, and permissions to use and to authorize us, the Site, and other users of the Site to use your Contributions in any manner contemplated by the Site and these Terms of Use.
  • You have the written consent, release, and/or permission of each and every identifiable individual person in your Contributions to use the name or likeness of each and every such identifiable individual person to enable inclusion and use of your Contributions in any manner contemplated by the Site and these Terms of Use.
  • Your Contributions are not false, inaccurate, or misleading.
  • Your Contributions are not unsolicited or unauthorized advertising, promotional materials, pyramid schemes, chain letters, spam, mass mailings, or other forms of solicitation.
  • Your Contributions are not obscene, lewd, lascivious, filthy, violent, harassing, libelous, slanderous, or otherwise objectionable (as determined by us).
  • Your Contributions do not ridicule, mock, disparage, intimidate, or abuse anyone.
  • Your Contributions are not used to harass or threaten (in the legal sense of those terms) any other person and to promote violence against a specific person or class of people.
  • Your Contributions do not violate any applicable law, regulation, or rule.
  • Your Contributions do not violate the privacy or publicity rights of any third party.
  • Your Contributions do not violate any applicable law concerning child pornography, or otherwise intended to protect the health or well-being of minors.
  • Your Contributions do not include any offensive comments that are connected to race, national origin, gender, sexual preference, or physical handicap.
  • Your Contributions do not otherwise violate, or link to material that violates, any provision of these Terms of Use, or any applicable law or regulation.

Any use of the Site in violation of the foregoing violates these Terms of Use and may result in, among other things, termination or suspension of your rights to use the Site.

6. CONTRIBUTION LICENSE

You agree that we may access, store, process, and use any information and personal data that you provide following the terms of the Privacy Policy and your choices (including settings).

By submitting suggestions or other feedback regarding the Site, you agree that we can use and share such feedback for any purpose without compensation to you.

We do not assert any ownership over your Contributions. You retain full ownership of all of your Contributions and any intellectual property rights or other proprietary rights associated with your Contributions. We are not liable for any statements or representations in your Contributions provided by you in any area on the Site. You are solely responsible for your Contributions to the Site and you expressly agree to exonerate us from any and all responsibility and to refrain from any legal action against us regarding your Contributions.

7. MOBILE APPLICATION LICENSE

Use License

If you access the Site via a mobile application, then we grant you a revocable, non-exclusive, non-transferable, limited right to install and use the mobile application on wireless electronic devices owned or controlled by you, and to access and use the mobile application on such devices strictly in accordance with the terms and conditions of this mobile application license contained in these Terms of Use. You shall not: (1) except as permitted by applicable law, decompile, reverse engineer, disassemble, attempt to derive the source code of, or decrypt the application; (2) make any modification, adaptation, improvement, enhancement, translation, or derivative work from the application; (3) violate any applicable laws, rules, or regulations in connection with your access or use of the application; (4) remove, alter, or obscure any proprietary notice (including any notice of copyright or trademark) posted by us or the licensors of the application; (5) use the application for any revenue generating endeavor, commercial enterprise, or other purpose for which it is not designed or intended; (6) make the application available over a network or other environment permitting access or use by multiple devices or users at the same time; (7) use the application for creating a product, service, or software that is, directly or indirectly, competitive with or in any way a substitute for the application; (8) use the application to send automated queries to any website or to send any unsolicited commercial e-mail; or (9) use any proprietary information or any of our interfaces or our other intellectual property in the design, development, manufacture, licensing, or distribution of any applications, accessories, or devices for use with the application.

Apple and Android Devices

The following terms apply when you use a mobile application obtained from either the Apple Store or Google Play (each an “App Distributor”) to access the Site: (1) the license granted to you for our mobile application is limited to a non-transferable license to use the application on a device that utilizes the Apple iOS or Android operating systems, as applicable, and in accordance with the usage rules set forth in the applicable App Distributor’s terms of service; (2) we are responsible for providing any maintenance and support services with respect to the mobile application as specified in the terms and conditions of this mobile application license contained in these Terms of Use or as otherwise required under applicable law, and you acknowledge that each App Distributor has no obligation whatsoever to furnish any maintenance and support services with respect to the mobile application; (3) in the event of any failure of the mobile application to conform to any applicable warranty, you may notify the applicable App Distributor, and the App Distributor, in accordance with its terms and policies, may refund the purchase price, if any, paid for the mobile application, and to the maximum extent permitted by applicable law, the App Distributor will have no other warranty obligation whatsoever with respect to the mobile application; (4) you represent and warrant that (i) you are not located in a country that is subject to a U.S. government embargo, or that has been designated by the U.S. government as a “terrorist supporting” country and (ii) you are not listed on any U.S. government list of prohibited or restricted parties; (5) you must comply with applicable third-party terms of agreement when using the mobile application, e.g., if you have a VoIP application, then you must not be in violation of their wireless data service agreement when using the mobile application; and (6) you acknowledge and agree that the App Distributors are third-party beneficiaries of the terms and conditions in this mobile application license contained in these Terms of Use, and that each App Distributor will have the right (and will be deemed to have accepted the right) to enforce the terms and conditions in this mobile application license contained in these Terms of Use against you as a third-party beneficiary thereof.

8. SUBMISSIONS

You acknowledge and agree that any questions, comments, suggestions, ideas, feedback, or other information regarding the Site ("Submissions") provided by you to us are non-confidential and shall become our sole property. We shall own exclusive rights, including all intellectual property rights, and shall be entitled to the unrestricted use and dissemination of these Submissions for any lawful purpose, commercial or otherwise, without acknowledgment or compensation to you. You hereby waive all moral rights to any such Submissions, and you hereby warrant that any such Submissions are original with you or that you have the right to submit such Submissions. You agree there shall be no recourse against us for any alleged or actual infringement or misappropriation of any proprietary right in your Submissions.

9. THIRD-PARTY WEBSITE AND CONTENT

The Site may contain (or you may be sent via the Site) links to other websites ("Third-Party Websites") as well as articles, photographs, text, graphics, pictures, designs, music, sound, video, information, applications, software, and other content or items belonging to or originating from third parties ("Third-Party Content"). Such Third-Party Websites and Third-Party Content are not investigated, monitored, or checked for accuracy, appropriateness, or completeness by us, and we are not responsible for any Third-Party Websites accessed through the Site or any Third-Party Content posted on, available through, or installed from the Site, including the content, accuracy, offensiveness, opinions, reliability, privacy practices, or other policies of or contained in the Third-Party Websites or the Third-Party Content. Inclusion of, linking to, or permitting the use or installation of any Third-Party Websites or any Third-Party Content does not imply approval or endorsement thereof by us. If you decide to leave the Site and access the Third-Party Websites or to use or install any Third-Party Content, you do so at your own risk, and you should be aware these Terms of Use no longer govern. You should review the applicable terms and policies, including privacy and data gathering practices, of any website to which you navigate from the Site or relating to any applications you use or install from the Site. Any purchases you make through Third-Party Websites will be through other websites and from other companies, and we take no responsibility whatsoever in relation to such purchases which are exclusively between you and the applicable third party. You agree and acknowledge that we do not endorse the products or services offered on Third-Party Websites and you shall hold us harmless from any harm caused by your purchase of such products or services. Additionally, you shall hold us harmless from any losses sustained by you or harm caused to you relating to or resulting in any way from any Third-Party Content or any contact with Third-Party Websites.

10. SITE MANAGEMENT

We reserve the right, but not the obligation, to: (1) monitor the Site for violations of these Terms of Use; (2) take appropriate legal action against anyone who, in our sole discretion, violates the law or these Terms of Use, including without limitation, reporting such user to law enforcement authorities; (3) in our sole discretion and without limitation, refuse, restrict access to, limit the availability of, or disable (to the extent technologically feasible) any of your Contributions or any portion thereof; (4) in our sole discretion and without limitation, notice, or liability, to remove from the Site or otherwise disable all files and content that are excessive in size or are in any way burdensome to our systems; and (5) otherwise manage the Site in a manner designed to protect our rights and property and to facilitate the proper functioning of the Site.

11. PRIVACY POLICY

We care about data privacy and security. Please review our Privacy Policy: https://www.frsource.org/fast-angle/pl/privacy-policy. By using the Site, you agree to be bound by our Privacy Policy, which is incorporated into these Terms of Use. Please be advised the Site is hosted in the United States. If you access the Site from any other region of the world with laws or other requirements governing personal data collection, use, or disclosure that differ from applicable laws in the United States, then through your continued use of the Site, you are transferring your data to the United States, and you agree to have your data transferred to and processed in the United States.

12. TERM AND TERMINATION

These Terms of Use shall remain in full force and effect while you use the Site. WITHOUT LIMITING ANY OTHER PROVISION OF THESE TERMS OF USE, WE RESERVE THE RIGHT TO, IN OUR SOLE DISCRETION AND WITHOUT NOTICE OR LIABILITY, DENY ACCESS TO AND USE OF THE SITE (INCLUDING BLOCKING CERTAIN IP ADDRESSES), TO ANY PERSON FOR ANY REASON OR FOR NO REASON, INCLUDING WITHOUT LIMITATION FOR BREACH OF ANY REPRESENTATION, WARRANTY, OR COVENANT CONTAINED IN THESE TERMS OF USE OR OF ANY APPLICABLE LAW OR REGULATION. WE MAY TERMINATE YOUR USE OR PARTICIPATION IN THE SITE OR DELETE ANY CONTENT OR INFORMATION THAT YOU POSTED AT ANY TIME, WITHOUT WARNING, IN OUR SOLE DISCRETION.

If we terminate or suspend your account for any reason, you are prohibited from registering and creating a new account under your name, a fake or borrowed name, or the name of any third party, even if you may be acting on behalf of the third party. In addition to terminating or suspending your account, we reserve the right to take appropriate legal action, including without limitation pursuing civil, criminal, and injunctive redress.

13. MODIFICATIONS AND INTERRUPTIONS

We reserve the right to change, modify, or remove the contents of the Site at any time or for any reason at our sole discretion without notice. However, we have no obligation to update any information on our Site. We also reserve the right to modify or discontinue all or part of the Site without notice at any time. We will not be liable to you or any third party for any modification, price change, suspension, or discontinuance of the Site.

We cannot guarantee the Site will be available at all times. We may experience hardware, software, or other problems or need to perform maintenance related to the Site, resulting in interruptions, delays, or errors. We reserve the right to change, revise, update, suspend, discontinue, or otherwise modify the Site at any time or for any reason without notice to you. You agree that we have no liability whatsoever for any loss, damage, or inconvenience caused by your inability to access or use the Site during any downtime or discontinuance of the Site. Nothing in these Terms of Use will be construed to obligate us to maintain and support the Site or to supply any corrections, updates, or releases in connection therewith.

14. GOVERNING LAW

These conditions are governed by and interpreted following the laws of Poland, and the use of the United Nations Convention of Contracts for the International Sale of Goods is expressly excluded. If your habitual residence is in the EU, and you are a consumer, you additionally possess the protection provided to you by obligatory provisions of the law of your country of residence. FRS Jakub Freisler and yourself both agree to submit to the non-exclusive jurisdiction of the courts of Krowodrza, Kraków, Poland, which means that you may make a claim to defend your consumer protection rights in regards to these Terms of Use in Poland, or in the EU country in which you reside.

15. DISPUTE RESOLUTION

Informal Negotiations

To expedite resolution and control the cost of any dispute, controversy, or claim related to these Terms of Use (each "Dispute" and collectively, the “Disputes”) brought by either you or us (individually, a “Party” and collectively, the “Parties”), the Parties agree to first attempt to negotiate any Dispute (except those Disputes expressly provided below) informally for at least thirty (30) days before initiating arbitration. Such informal negotiations commence upon written notice from one Party to the other Party.

Binding Arbitration

   

Any dispute arising from the relationships between the Parties to this contract shall be determined by one arbitrator who will be chosen in accordance with the Arbitration and Internal Rules of the European Court of Arbitration being part of the European Centre of Arbitration having its seat in Strasbourg, and which are in force at the time the application for arbitration is filed, and of which adoption of this clause constitutes acceptance. The seat of arbitration shall be Kraków, Poland. The language of the proceedings shall be English. Applicable rules of substantive law shall be the law of Poland.

Restrictions

The Parties agree that any arbitration shall be limited to the Dispute between the Parties individually. To the full extent permitted by law, (a) no arbitration shall be joined with any other proceeding; (b) there is no right or authority for any Dispute to be arbitrated on a class-action basis or to utilize class action procedures; and (c) there is no right or authority for any Dispute to be brought in a purported representative capacity on behalf of the general public or any other persons.

Exceptions to Informal Negotiations and Arbitration

The Parties agree that the following Disputes are not subject to the above provisions concerning informal negotiations and binding arbitration: (a) any Disputes seeking to enforce or protect, or concerning the validity of, any of the intellectual property rights of a Party; (b) any Dispute related to, or arising from, allegations of theft, piracy, invasion of privacy, or unauthorized use; and (c) any claim for injunctive relief. If this provision is found to be illegal or unenforceable, then neither Party will elect to arbitrate any Dispute falling within that portion of this provision found to be illegal or unenforceable and such Dispute shall be decided by a court of competent jurisdiction within the courts listed for jurisdiction above, and the Parties agree to submit to the personal jurisdiction of that court.

16. CORRECTIONS

There may be information on the Site that contains typographical errors, inaccuracies, or omissions, including descriptions, pricing, availability, and various other information. We reserve the right to correct any errors, inaccuracies, or omissions and to change or update the information on the Site at any time, without prior notice.

17. DISCLAIMER

THE SITE IS PROVIDED ON AN AS-IS AND AS-AVAILABLE BASIS. YOU AGREE THAT YOUR USE OF THE SITE AND OUR SERVICES WILL BE AT YOUR SOLE RISK. TO THE FULLEST EXTENT PERMITTED BY LAW, WE DISCLAIM ALL WARRANTIES, EXPRESS OR IMPLIED, IN CONNECTION WITH THE SITE AND YOUR USE THEREOF, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, AND NON-INFRINGEMENT. WE MAKE NO WARRANTIES OR REPRESENTATIONS ABOUT THE ACCURACY OR COMPLETENESS OF THE SITE’S CONTENT OR THE CONTENT OF ANY WEBSITES LINKED TO THE SITE AND WE WILL ASSUME NO LIABILITY OR RESPONSIBILITY FOR ANY (1) ERRORS, MISTAKES, OR INACCURACIES OF CONTENT AND MATERIALS, (2) PERSONAL INJURY OR PROPERTY DAMAGE, OF ANY NATURE WHATSOEVER, RESULTING FROM YOUR ACCESS TO AND USE OF THE SITE, (3) ANY UNAUTHORIZED ACCESS TO OR USE OF OUR SECURE SERVERS AND/OR ANY AND ALL PERSONAL INFORMATION AND/OR FINANCIAL INFORMATION STORED THEREIN, (4) ANY INTERRUPTION OR CESSATION OF TRANSMISSION TO OR FROM THE SITE, (5) ANY BUGS, VIRUSES, TROJAN HORSES, OR THE LIKE WHICH MAY BE TRANSMITTED TO OR THROUGH THE SITE BY ANY THIRD PARTY, AND/OR (6) ANY ERRORS OR OMISSIONS IN ANY CONTENT AND MATERIALS OR FOR ANY LOSS OR DAMAGE OF ANY KIND INCURRED AS A RESULT OF THE USE OF ANY CONTENT POSTED, TRANSMITTED, OR OTHERWISE MADE AVAILABLE VIA THE SITE. WE DO NOT WARRANT, ENDORSE, GUARANTEE, OR ASSUME RESPONSIBILITY FOR ANY PRODUCT OR SERVICE ADVERTISED OR OFFERED BY A THIRD PARTY THROUGH THE SITE, ANY HYPERLINKED WEBSITE, OR ANY WEBSITE OR MOBILE APPLICATION FEATURED IN ANY BANNER OR OTHER ADVERTISING, AND WE WILL NOT BE A PARTY TO OR IN ANY WAY BE RESPONSIBLE FOR MONITORING ANY TRANSACTION BETWEEN YOU AND ANY THIRD-PARTY PROVIDERS OF PRODUCTS OR SERVICES. AS WITH THE PURCHASE OF A PRODUCT OR SERVICE THROUGH ANY MEDIUM OR IN ANY ENVIRONMENT, YOU SHOULD USE YOUR BEST JUDGMENT AND EXERCISE CAUTION WHERE APPROPRIATE.

18. LIMITATIONS OF LIABILITY

IN NO EVENT WILL WE OR OUR DIRECTORS, EMPLOYEES, OR AGENTS BE LIABLE TO YOU OR ANY THIRD PARTY FOR ANY DIRECT, INDIRECT, CONSEQUENTIAL, EXEMPLARY, INCIDENTAL, SPECIAL, OR PUNITIVE DAMAGES, INCLUDING LOST PROFIT, LOST REVENUE, LOSS OF DATA, OR OTHER DAMAGES ARISING FROM YOUR USE OF THE SITE, EVEN IF WE HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. NOTWITHSTANDING ANYTHING TO THE CONTRARY CONTAINED HEREIN, OUR LIABILITY TO YOU FOR ANY CAUSE WHATSOEVER AND REGARDLESS OF THE FORM OF THE ACTION, WILL AT ALL TIMES BE LIMITED TO THE LESSER OF THE AMOUNT PAID, IF ANY, BY YOU TO US DURING THE three (3) MONTH PERIOD PRIOR TO ANY CAUSE OF ACTION ARISING OR $0.00 USD. CERTAIN US STATE LAWS AND INTERNATIONAL LAWS DO NOT ALLOW LIMITATIONS ON IMPLIED WARRANTIES OR THE EXCLUSION OR LIMITATION OF CERTAIN DAMAGES. IF THESE LAWS APPLY TO YOU, SOME OR ALL OF THE ABOVE DISCLAIMERS OR LIMITATIONS MAY NOT APPLY TO YOU, AND YOU MAY HAVE ADDITIONAL RIGHTS.

19. INDEMNIFICATION

You agree to defend, indemnify, and hold us harmless, including our subsidiaries, affiliates, and all of our respective officers, agents, partners, and employees, from and against any loss, damage, liability, claim, or demand, including reasonable attorneys’ fees and expenses, made by any third party due to or arising out of: (1) use of the Site; (2) breach of these Terms of Use; (3) any breach of your representations and warranties set forth in these Terms of Use; (4) your violation of the rights of a third party, including but not limited to intellectual property rights; or (5) any overt harmful act toward any other user of the Site with whom you connected via the Site. Notwithstanding the foregoing, we reserve the right, at your expense, to assume the exclusive defense and control of any matter for which you are required to indemnify us, and you agree to cooperate, at your expense, with our defense of such claims. We will use reasonable efforts to notify you of any such claim, action, or proceeding which is subject to this indemnification upon becoming aware of it.

20. USER DATA

We will maintain certain data that you transmit to the Site for the purpose of managing the performance of the Site, as well as data relating to your use of the Site. Although we perform regular routine backups of data, you are solely responsible for all data that you transmit or that relates to any activity you have undertaken using the Site. You agree that we shall have no liability to you for any loss or corruption of any such data, and you hereby waive any right of action against us arising from any such loss or corruption of such data.

21. ELECTRONIC COMMUNICATIONS, TRANSACTIONS, AND SIGNATURES

Visiting the Site, sending us emails, and completing online forms constitute electronic communications. You consent to receive electronic communications, and you agree that all agreements, notices, disclosures, and other communications we provide to you electronically, via email and on the Site, satisfy any legal requirement that such communication be in writing. YOU HEREBY AGREE TO THE USE OF ELECTRONIC SIGNATURES, CONTRACTS, ORDERS, AND OTHER RECORDS, AND TO ELECTRONIC DELIVERY OF NOTICES, POLICIES, AND RECORDS OF TRANSACTIONS INITIATED OR COMPLETED BY US OR VIA THE SITE. You hereby waive any rights or requirements under any statutes, regulations, rules, ordinances, or other laws in any jurisdiction which require an original signature or delivery or retention of non-electronic records, or to payments or the granting of credits by any means other than electronic means.

22. CALIFORNIA USERS AND RESIDENTS

If any complaint with us is not satisfactorily resolved, you can contact the Complaint Assistance Unit of the Division of Consumer Services of the California Department of Consumer Affairs in writing at 1625 North Market Blvd., Suite N 112, Sacramento, California 95834 or by telephone at (800) 952-5210 or (916) 445-1254.

23. MISCELLANEOUS

These Terms of Use and any policies or operating rules posted by us on the Site or in respect to the Site constitute the entire agreement and understanding between you and us. Our failure to exercise or enforce any right or provision of these Terms of Use shall not operate as a waiver of such right or provision. These Terms of Use operate to the fullest extent permissible by law. We may assign any or all of our rights and obligations to others at any time. We shall not be responsible or liable for any loss, damage, delay, or failure to act caused by any cause beyond our reasonable control. If any provision or part of a provision of these Terms of Use is determined to be unlawful, void, or unenforceable, that provision or part of the provision is deemed severable from these Terms of Use and does not affect the validity and enforceability of any remaining provisions. There is no joint venture, partnership, employment or agency relationship created between you and us as a result of these Terms of Use or use of the Site. You agree that these Terms of Use will not be construed against us by virtue of having drafted them. You hereby waive any and all defenses you may have based on the electronic form of these Terms of Use and the lack of signing by the parties hereto to execute these Terms of Use.

24. CONTACT US

In order to resolve a complaint regarding the Site or to receive further information regarding use of the Site, please contact us at:

FRS Jakub Freisler
ul. Królewska 92 / 8
Kraków, Małopolska 30-079
Poland
Phone: +48882568430
complaint@frsource.org
\ No newline at end of file diff --git a/sitemap.xml b/sitemap.xml index f9dd04ec..683468f1 100644 --- a/sitemap.xml +++ b/sitemap.xml @@ -1 +1 @@ -https://www.frsource.org/fast-angle/4042024-08-26T00:49:06.041Zdaily1.0https://www.frsource.org/fast-angle/de2024-08-26T00:49:06.041Zdaily1.0https://www.frsource.org/fast-angle/en2024-08-26T00:49:06.041Zdaily1.0https://www.frsource.org/fast-angle/pl2024-08-26T00:49:06.041Zdaily1.0https://www.frsource.org/fast-angle/de/privacy-policy2024-08-26T00:49:06.041Zdaily1.0https://www.frsource.org/fast-angle/de/terms2024-08-26T00:49:06.041Zdaily1.0https://www.frsource.org/fast-angle/en/privacy-policy2024-08-26T00:49:06.041Zdaily1.0https://www.frsource.org/fast-angle/en/terms2024-08-26T00:49:06.041Zdaily1.0https://www.frsource.org/fast-angle/pl/privacy-policy2024-08-26T00:49:06.041Zdaily1.0https://www.frsource.org/fast-angle/pl/terms2024-08-26T00:49:06.041Zdaily1.0 \ No newline at end of file +https://www.frsource.org/fast-angle/4042024-09-01T18:53:28.561Zdaily1.0https://www.frsource.org/fast-angle/de2024-09-01T18:53:28.561Zdaily1.0https://www.frsource.org/fast-angle/en2024-09-01T18:53:28.561Zdaily1.0https://www.frsource.org/fast-angle/pl2024-09-01T18:53:28.561Zdaily1.0https://www.frsource.org/fast-angle/de/privacy-policy2024-09-01T18:53:28.561Zdaily1.0https://www.frsource.org/fast-angle/de/terms2024-09-01T18:53:28.561Zdaily1.0https://www.frsource.org/fast-angle/en/privacy-policy2024-09-01T18:53:28.561Zdaily1.0https://www.frsource.org/fast-angle/en/terms2024-09-01T18:53:28.561Zdaily1.0https://www.frsource.org/fast-angle/pl/privacy-policy2024-09-01T18:53:28.561Zdaily1.0https://www.frsource.org/fast-angle/pl/terms2024-09-01T18:53:28.561Zdaily1.0 \ No newline at end of file diff --git a/sw.js b/sw.js index 1939772a..584e7b7c 100644 --- a/sw.js +++ b/sw.js @@ -1 +1 @@ -if(!self.define){let e,s={};const i=(i,l)=>(i=new URL(i+".js",l).href,s[i]||new Promise((s=>{if("document"in self){const e=document.createElement("script");e.src=i,e.onload=s,document.head.appendChild(e)}else e=i,importScripts(i),s()})).then((()=>{let e=s[i];if(!e)throw new Error(`Module ${i} didn’t register its module`);return e})));self.define=(l,r)=>{const n=e||("document"in self?document.currentScript.src:"")||location.href;if(s[n])return;let a={};const c=e=>i(e,n),t={module:{uri:n},exports:a,require:c};s[n]=Promise.all(l.map((e=>t[e]||c(e)))).then((e=>(r(...e),a)))}}define(["./workbox-9f7b9521"],(function(e){"use strict";self.skipWaiting(),e.clientsClaim(),e.precacheAndRoute([{url:"404.html",revision:"ed3436cdc6134f357abdb77310ac7226"},{url:"assets/_...all_-DUmKXp0R.js",revision:null},{url:"assets/_plugin-vue_export-helper-DlAUqK2U.js",revision:null},{url:"assets/app-BUT5I0Zb.css",revision:null},{url:"assets/app-C_A3Ikqc.js",revision:null},{url:"assets/Button-DRMNlNP8.js",revision:null},{url:"assets/Button-XV6Wby9K.css",revision:null},{url:"assets/centered-CsPDCAwg.css",revision:null},{url:"assets/centered-D9JAbCqt.js",revision:null},{url:"assets/default-BD_Mt-QL.js",revision:null},{url:"assets/default-Fqk_4fJ1.css",revision:null},{url:"assets/index-CTXHhIZ7.js",revision:null},{url:"assets/index-CV-JKKpt.css",revision:null},{url:"assets/privacy-policy-B_SJY2k1.css",revision:null},{url:"assets/privacy-policy-BdEgNBDr.js",revision:null},{url:"assets/terms-CRRkJi5O.js",revision:null},{url:"assets/terms-dhC8jLtc.css",revision:null},{url:"assets/useUriLocale-DXOt3j7T.js",revision:null},{url:"assets/virtual_pwa-register-CPmTglcK.js",revision:null},{url:"assets/workbox-window.prod.es5-D5gOYdM7.js",revision:null},{url:"de.html",revision:"c6653589d319263b8b36833c6a741501"},{url:"de/privacy-policy.html",revision:"99a6f90a3a710279a67f928800b362a8"},{url:"de/terms.html",revision:"a8a6734b7e3925869a6f4612a003db54"},{url:"en.html",revision:"ade94fa4dc7d79dd01f85453caabe618"},{url:"en/privacy-policy.html",revision:"5e2e54993eea8f740f0ea01aaddc30f1"},{url:"en/terms.html",revision:"db6344130f08f2b4f581479c36ef8509"},{url:"index.html",revision:"e4c605026fd4ef259b4a2c5e90f1cc44"},{url:"pl.html",revision:"d7f7fcabd60a1b5509f504edf236160c"},{url:"pl/privacy-policy.html",revision:"2520a4d172379cc5560f4a4135c5f1a8"},{url:"pl/terms.html",revision:"df02fffa9a6d142640bf88637efc3427"},{url:"favicon-dark.svg",revision:"98cd02853d9e8386612b5fbd7f9eb630"},{url:"favicon.svg",revision:"e476a8de9eefda3467f128aed07c007d"},{url:"pwa-192x192.png",revision:"307aeecc8a6cf708adcbd0b21274b92f"},{url:"pwa-512x512.png",revision:"50c3254ba3466da79827fcceb4807241"},{url:"pwa-maskable-512x512.png",revision:"5123dacbec6173fc269500f01c0834a8"},{url:"pwa-monochrome-192x192.png",revision:"47c8c3bba4d5b3cc780c268659f6a3fc"},{url:"safari-pinned-tab.svg",revision:"037dc7a68e4764080ef4d13890a13140"},{url:"manifest.webmanifest",revision:"0ffbc5bda62c00c71ebb6dee55f5fc48"}],{}),e.cleanupOutdatedCaches(),e.registerRoute(new e.NavigationRoute(e.createHandlerBoundToURL("index.html")))})); +if(!self.define){let e,s={};const i=(i,l)=>(i=new URL(i+".js",l).href,s[i]||new Promise((s=>{if("document"in self){const e=document.createElement("script");e.src=i,e.onload=s,document.head.appendChild(e)}else e=i,importScripts(i),s()})).then((()=>{let e=s[i];if(!e)throw new Error(`Module ${i} didn’t register its module`);return e})));self.define=(l,r)=>{const n=e||("document"in self?document.currentScript.src:"")||location.href;if(s[n])return;let c={};const u=e=>i(e,n),a={module:{uri:n},exports:c,require:u};s[n]=Promise.all(l.map((e=>a[e]||u(e)))).then((e=>(r(...e),c)))}}define(["./workbox-9f7b9521"],(function(e){"use strict";self.skipWaiting(),e.clientsClaim(),e.precacheAndRoute([{url:"404.html",revision:"4d3413b86639d0b1186f167b7769ca76"},{url:"assets/_...all_-CLOivLzp.js",revision:null},{url:"assets/_plugin-vue_export-helper-DlAUqK2U.js",revision:null},{url:"assets/app-BUT5I0Zb.css",revision:null},{url:"assets/app-DT9tPyzn.js",revision:null},{url:"assets/Button-qlJbhzlo.js",revision:null},{url:"assets/Button-XV6Wby9K.css",revision:null},{url:"assets/centered-CFGCZuHh.js",revision:null},{url:"assets/centered-CsPDCAwg.css",revision:null},{url:"assets/default-C3FHDxIb.js",revision:null},{url:"assets/default-D9dwkEVE.css",revision:null},{url:"assets/index-BnNlN_Ib.css",revision:null},{url:"assets/index-sKdwiapj.js",revision:null},{url:"assets/privacy-policy-B_SJY2k1.css",revision:null},{url:"assets/privacy-policy-C6r_wkKn.js",revision:null},{url:"assets/terms-dhC8jLtc.css",revision:null},{url:"assets/terms-Dytl1uwk.js",revision:null},{url:"assets/useUriLocale-URN521cf.js",revision:null},{url:"assets/virtual_pwa-register-Dy0udGU2.js",revision:null},{url:"assets/workbox-window.prod.es5-D5gOYdM7.js",revision:null},{url:"de.html",revision:"8a3dc33e6c90cc7cb26d7fa0ba1f7bf5"},{url:"de/privacy-policy.html",revision:"a8eae0ad40617c8bef6b31391b0d3c98"},{url:"de/terms.html",revision:"60707cc300ac4e075cc9bb5046329beb"},{url:"en.html",revision:"b013b24a7eeb0db838c32563acefa28b"},{url:"en/privacy-policy.html",revision:"b6ecf82cea1a5ff219e9df1be7b2cac1"},{url:"en/terms.html",revision:"fc31b230295db244e582f0e8e9b6cfff"},{url:"index.html",revision:"d9c65f208e7b53235338763c81eced86"},{url:"pl.html",revision:"d76ecc576f032463683124d90efb7fbf"},{url:"pl/privacy-policy.html",revision:"59defeddd1d7b0c7a54cbb6dc08f1a0b"},{url:"pl/terms.html",revision:"e99fd9ab65c69e558836dd08847dd5b1"},{url:"favicon-dark.svg",revision:"98cd02853d9e8386612b5fbd7f9eb630"},{url:"favicon.svg",revision:"e476a8de9eefda3467f128aed07c007d"},{url:"pwa-192x192.png",revision:"307aeecc8a6cf708adcbd0b21274b92f"},{url:"pwa-512x512.png",revision:"50c3254ba3466da79827fcceb4807241"},{url:"pwa-maskable-512x512.png",revision:"5123dacbec6173fc269500f01c0834a8"},{url:"pwa-monochrome-192x192.png",revision:"47c8c3bba4d5b3cc780c268659f6a3fc"},{url:"safari-pinned-tab.svg",revision:"037dc7a68e4764080ef4d13890a13140"},{url:"manifest.webmanifest",revision:"0ffbc5bda62c00c71ebb6dee55f5fc48"}],{}),e.cleanupOutdatedCaches(),e.registerRoute(new e.NavigationRoute(e.createHandlerBoundToURL("index.html")))}));