@baseplate-dev/project-builder-web 0.3.5 → 0.3.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (106) hide show
  1. package/dist/assets/{-constants-BYERQCO8.js → -constants-CBBXnsgS.js} +2 -2
  2. package/dist/assets/{-constants-BYERQCO8.js.map → -constants-CBBXnsgS.js.map} +1 -1
  3. package/dist/assets/__federation_shared_@baseplate-dev/project-builder-lib/web-Db9HEBw5.js.map +1 -1
  4. package/dist/assets/__federation_shared_@baseplate-dev/project-builder-lib-fZlnH9Ds.js.map +1 -1
  5. package/dist/assets/__federation_shared_@baseplate-dev/ui-components-CoxJjxbV.js.map +1 -1
  6. package/dist/assets/__federation_shared_@baseplate-dev/utils-Bhl1WBIT.js.map +1 -1
  7. package/dist/assets/__federation_shared_@tanstack/react-router-JHHIpdEJ.js.map +1 -1
  8. package/dist/assets/__federation_shared_react-WURrSs1p.js.map +1 -1
  9. package/dist/assets/__federation_shared_react-dom-CWagDEjd.js.map +1 -1
  10. package/dist/assets/__federation_shared_zod-CBKZOTZP.js.map +1 -1
  11. package/dist/assets/_virtual___federation_fn_import-D3sI42Ph.js.map +1 -1
  12. package/dist/assets/{admin-Dy1xMuLp.js → admin-BmEAbqDf.js} +2 -2
  13. package/dist/assets/{admin-Dy1xMuLp.js.map → admin-BmEAbqDf.js.map} +1 -1
  14. package/dist/assets/{backend-SevlkhOM.js → backend-3ZlC6POv.js} +2 -2
  15. package/dist/assets/{backend-SevlkhOM.js.map → backend-3ZlC6POv.js.map} +1 -1
  16. package/dist/assets/badge-with-type-label-CThmzNSh.js.map +1 -1
  17. package/dist/assets/capitalize-gOJXDbsR.js.map +1 -1
  18. package/dist/assets/{edit._key-BgnflZIL.js → edit._key-D-7xw9rv.js} +2 -2
  19. package/dist/assets/{edit._key-BgnflZIL.js.map → edit._key-D-7xw9rv.js.map} +1 -1
  20. package/dist/assets/{edit._sectionKey-D4mTSUhO.js → edit._sectionKey-CZgof0ob.js} +3 -3
  21. package/dist/assets/edit._sectionKey-CZgof0ob.js.map +1 -0
  22. package/dist/assets/enum-info-form-3ykREN-o.js.map +1 -1
  23. package/dist/assets/{graphql-C37jbnTG.js → graphql-DFecTG83.js} +2 -2
  24. package/dist/assets/{graphql-C37jbnTG.js.map → graphql-DFecTG83.js.map} +1 -1
  25. package/dist/assets/{hierarchy-CNBHjTAJ.js → hierarchy-jFN5DTrv.js} +2 -2
  26. package/dist/assets/{hierarchy-CNBHjTAJ.js.map → hierarchy-jFN5DTrv.js.map} +1 -1
  27. package/dist/assets/immer-B7fdkLVi.js.map +1 -1
  28. package/dist/assets/{index-CFlVUowS.js → index-B4AqRYYd.js} +2 -2
  29. package/dist/assets/{index-CFlVUowS.js.map → index-B4AqRYYd.js.map} +1 -1
  30. package/dist/assets/{index-B3A5IWAQ.js → index-BJlq0bmu.js} +2 -2
  31. package/dist/assets/{index-B3A5IWAQ.js.map → index-BJlq0bmu.js.map} +1 -1
  32. package/dist/assets/{index-CDx3IfgN.js → index-BPRSO52F.js} +2 -2
  33. package/dist/assets/{index-CDx3IfgN.js.map → index-BPRSO52F.js.map} +1 -1
  34. package/dist/assets/{index-CAFf3K5-.js → index-BWWBFiT1.js} +2 -2
  35. package/dist/assets/{index-CAFf3K5-.js.map → index-BWWBFiT1.js.map} +1 -1
  36. package/dist/assets/{index-Ckh17o1U.js → index-BZ4uW6kN.js} +2 -2
  37. package/dist/assets/{index-Ckh17o1U.js.map → index-BZ4uW6kN.js.map} +1 -1
  38. package/dist/assets/{index-D48MR3bL.js → index-BpFwTs3X.js} +2 -2
  39. package/dist/assets/{index-D48MR3bL.js.map → index-BpFwTs3X.js.map} +1 -1
  40. package/dist/assets/{index-mFxKl9yz.js → index-CbnCfDth.js} +2 -2
  41. package/dist/assets/{index-mFxKl9yz.js.map → index-CbnCfDth.js.map} +1 -1
  42. package/dist/assets/{index-DEKFCy0H.js → index-Cd_baD6T.js} +4 -4
  43. package/dist/assets/index-Cd_baD6T.js.map +1 -0
  44. package/dist/assets/index-D5UX5AHP.js.map +1 -1
  45. package/dist/assets/index-DRRJXHq_.js.map +1 -1
  46. package/dist/assets/{index-2EwzbJik.js → index-DhfdQsvQ.js} +2 -2
  47. package/dist/assets/{index-2EwzbJik.js.map → index-DhfdQsvQ.js.map} +1 -1
  48. package/dist/assets/index-DqHVrEeL.js.map +1 -1
  49. package/dist/assets/index-Dqph-b0R.css +1 -0
  50. package/dist/assets/{index-B2l1e3vi.js → index-UtPzkFI2.js} +2 -2
  51. package/dist/assets/{index-B2l1e3vi.js.map → index-UtPzkFI2.js.map} +1 -1
  52. package/dist/assets/index-c0qeY2gs.js.map +1 -1
  53. package/dist/assets/index-tHURiz2C.js.map +1 -1
  54. package/dist/assets/index-tflukq04.js.map +1 -1
  55. package/dist/assets/index.esm-CdP29Ssb.js.map +1 -1
  56. package/dist/assets/inflection-C1nKqrJS.js.map +1 -1
  57. package/dist/assets/isEqual-C420KeG-.js.map +1 -1
  58. package/dist/assets/jsx-runtime-D_zvdyIk.js.map +1 -1
  59. package/dist/assets/model-info-form-koY65NLs.js.map +1 -1
  60. package/dist/assets/model-merger-D1L5cIAo.js.map +1 -1
  61. package/dist/assets/{new-admin-section-dialog-4X2fxo7a.js → new-admin-section-dialog-DFpUuP_Z.js} +2 -2
  62. package/dist/assets/{new-admin-section-dialog-4X2fxo7a.js.map → new-admin-section-dialog-DFpUuP_Z.js.map} +1 -1
  63. package/dist/assets/{new-app-dialog-CCI4q4Mt.js → new-app-dialog-Cnp9A5Cx.js} +2 -2
  64. package/dist/assets/{new-app-dialog-CCI4q4Mt.js.map → new-app-dialog-Cnp9A5Cx.js.map} +1 -1
  65. package/dist/assets/{new-enum-dialog-B5zvBxhT.js → new-enum-dialog-CE3pNVPW.js} +2 -2
  66. package/dist/assets/{new-enum-dialog-B5zvBxhT.js.map → new-enum-dialog-CE3pNVPW.js.map} +1 -1
  67. package/dist/assets/{new-model-dialog-CiwTpKcZ.js → new-model-dialog-BUqUnu3F.js} +2 -2
  68. package/dist/assets/{new-model-dialog-CiwTpKcZ.js.map → new-model-dialog-BUqUnu3F.js.map} +1 -1
  69. package/dist/assets/{route-PmxQsBVj.js → route-BMREAhaC.js} +2 -2
  70. package/dist/assets/{route-PmxQsBVj.js.map → route-BMREAhaC.js.map} +1 -1
  71. package/dist/assets/{route-CZgTuGeJ.js → route-B_y_fjG1.js} +2 -2
  72. package/dist/assets/{route-CZgTuGeJ.js.map → route-B_y_fjG1.js.map} +1 -1
  73. package/dist/assets/{route-DluQ5e3_.js → route-CM78Qts_.js} +2 -2
  74. package/dist/assets/{route-DluQ5e3_.js.map → route-CM78Qts_.js.map} +1 -1
  75. package/dist/assets/{route-6ErXC2Qt.js → route-D-8r4X0U.js} +2 -2
  76. package/dist/assets/{route-6ErXC2Qt.js.map → route-D-8r4X0U.js.map} +1 -1
  77. package/dist/assets/{route-gzD4oiAl.js → route-D7DRL965.js} +2 -2
  78. package/dist/assets/{route-gzD4oiAl.js.map → route-D7DRL965.js.map} +1 -1
  79. package/dist/assets/{route-C6wCPwVj.js → route-DGnyRZBc.js} +2 -2
  80. package/dist/assets/{route-C6wCPwVj.js.map → route-DGnyRZBc.js.map} +1 -1
  81. package/dist/assets/route-Dm8VYkZY.js +2 -0
  82. package/dist/assets/{route-DLz_DL5S.js.map → route-Dm8VYkZY.js.map} +1 -1
  83. package/dist/assets/{route-C3eBLQEr.js → route-Dpt-JNZC.js} +2 -2
  84. package/dist/assets/{route-C3eBLQEr.js.map → route-Dpt-JNZC.js.map} +1 -1
  85. package/dist/assets/{route-DzYT3FNA.js → route-pfSpaHo3.js} +2 -2
  86. package/dist/assets/{route-DzYT3FNA.js.map → route-pfSpaHo3.js.map} +1 -1
  87. package/dist/assets/{route-gYB7kkkm.js → route-x978fCyu.js} +2 -2
  88. package/dist/assets/{route-gYB7kkkm.js.map → route-x978fCyu.js.map} +1 -1
  89. package/dist/assets/{service--2LVz4Ht.js → service-BSH0RhEL.js} +2 -2
  90. package/dist/assets/{service--2LVz4Ht.js.map → service-BSH0RhEL.js.map} +1 -1
  91. package/dist/assets/sortBy-C9bvycg5.js.map +1 -1
  92. package/dist/assets/{template-extractor-D33LuEZ8.js → template-extractor-Dzitw66S.js} +2 -2
  93. package/dist/assets/{template-extractor-D33LuEZ8.js.map → template-extractor-Dzitw66S.js.map} +1 -1
  94. package/dist/assets/{theme-builder-CWetoMuo.js → theme-builder-00-pJhvO.js} +2 -2
  95. package/dist/assets/{theme-builder-CWetoMuo.js.map → theme-builder-00-pJhvO.js.map} +1 -1
  96. package/dist/assets/use-definition-schema-BuO4pbji.js.map +1 -1
  97. package/dist/assets/{use-enum-form-BRBAlWJc.js → use-enum-form-CiJfrBqR.js} +2 -2
  98. package/dist/assets/{use-enum-form-BRBAlWJc.js.map → use-enum-form-CiJfrBqR.js.map} +1 -1
  99. package/dist/assets/{use-model-form-psj-JlE9.js → use-model-form-AKI1Wi68.js} +2 -2
  100. package/dist/assets/{use-model-form-psj-JlE9.js.map → use-model-form-AKI1Wi68.js.map} +1 -1
  101. package/dist/index.html +2 -2
  102. package/package.json +11 -11
  103. package/dist/assets/edit._sectionKey-D4mTSUhO.js.map +0 -1
  104. package/dist/assets/index-DEKFCy0H.js.map +0 -1
  105. package/dist/assets/index-DPK1IfNZ.css +0 -1
  106. package/dist/assets/route-DLz_DL5S.js +0 -2
@@ -1 +1 @@
1
- {"version":3,"file":"react-router-JHHIpdEJ.js","sources":["../../../../../node_modules/.pnpm/use-sync-external-store@1.5.0_react@19.1.0/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.production.js","../../../../../node_modules/.pnpm/use-sync-external-store@1.5.0_react@19.1.0/node_modules/use-sync-external-store/shim/index.js","../../../../../node_modules/.pnpm/tiny-invariant@1.3.3/node_modules/tiny-invariant/dist/esm/tiny-invariant.js","../../../../../node_modules/.pnpm/tiny-warning@1.0.3/node_modules/tiny-warning/dist/tiny-warning.esm.js","../../../../../node_modules/.pnpm/@tanstack+store@0.7.2/node_modules/@tanstack/store/dist/esm/scheduler.js","../../../../../node_modules/.pnpm/@tanstack+store@0.7.2/node_modules/@tanstack/store/dist/esm/types.js","../../../../../node_modules/.pnpm/@tanstack+store@0.7.2/node_modules/@tanstack/store/dist/esm/store.js","../../../../../node_modules/.pnpm/@tanstack+store@0.7.2/node_modules/@tanstack/store/dist/esm/derived.js","../../../../../node_modules/.pnpm/@tanstack+history@1.129.7/node_modules/@tanstack/history/dist/esm/index.js","../../../../../node_modules/.pnpm/@tanstack+router-core@1.130.8/node_modules/@tanstack/router-core/dist/esm/utils.js","../../../../../node_modules/.pnpm/@tanstack+router-core@1.130.8/node_modules/@tanstack/router-core/dist/esm/path.js","../../../../../node_modules/.pnpm/@tanstack+router-core@1.130.8/node_modules/@tanstack/router-core/dist/esm/not-found.js","../../../../../node_modules/.pnpm/@tanstack+router-core@1.130.8/node_modules/@tanstack/router-core/dist/esm/scroll-restoration.js","../../../../../node_modules/.pnpm/@tanstack+router-core@1.130.8/node_modules/@tanstack/router-core/dist/esm/qss.js","../../../../../node_modules/.pnpm/@tanstack+router-core@1.130.8/node_modules/@tanstack/router-core/dist/esm/searchParams.js","../../../../../node_modules/.pnpm/@tanstack+router-core@1.130.8/node_modules/@tanstack/router-core/dist/esm/root.js","../../../../../node_modules/.pnpm/@tanstack+router-core@1.130.8/node_modules/@tanstack/router-core/dist/esm/redirect.js","../../../../../node_modules/.pnpm/@tanstack+router-core@1.130.8/node_modules/@tanstack/router-core/dist/esm/lru-cache.js","../../../../../node_modules/.pnpm/@tanstack+router-core@1.130.8/node_modules/@tanstack/router-core/dist/esm/router.js","../../../../../node_modules/.pnpm/@tanstack+router-core@1.130.8/node_modules/@tanstack/router-core/dist/esm/defer.js","../../../../../node_modules/.pnpm/@tanstack+router-core@1.130.8/node_modules/@tanstack/router-core/dist/esm/link.js","../../../../../node_modules/.pnpm/@tanstack+router-core@1.130.8/node_modules/@tanstack/router-core/dist/esm/Matches.js","../../../../../node_modules/.pnpm/@tanstack+router-core@1.130.8/node_modules/@tanstack/router-core/dist/esm/route.js","../../../../../node_modules/.pnpm/@tanstack+router-core@1.130.8/node_modules/@tanstack/router-core/dist/esm/searchMiddleware.js","../../../../../node_modules/.pnpm/@tanstack+react-router@1.130.8_react-dom@19.1.0_react@19.1.0__react@19.1.0/node_modules/@tanstack/react-router/dist/esm/awaited.js","../../../../../node_modules/.pnpm/@tanstack+react-router@1.130.8_react-dom@19.1.0_react@19.1.0__react@19.1.0/node_modules/@tanstack/react-router/dist/esm/CatchBoundary.js","../../../../../node_modules/.pnpm/@tanstack+react-router@1.130.8_react-dom@19.1.0_react@19.1.0__react@19.1.0/node_modules/@tanstack/react-router/dist/esm/ClientOnly.js","../../../../../node_modules/.pnpm/use-sync-external-store@1.5.0_react@19.1.0/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.production.js","../../../../../node_modules/.pnpm/use-sync-external-store@1.5.0_react@19.1.0/node_modules/use-sync-external-store/shim/with-selector.js","../../../../../node_modules/.pnpm/@tanstack+react-store@0.7.3_react-dom@19.1.0_react@19.1.0__react@19.1.0/node_modules/@tanstack/react-store/dist/esm/index.js","../../../../../node_modules/.pnpm/@tanstack+react-router@1.130.8_react-dom@19.1.0_react@19.1.0__react@19.1.0/node_modules/@tanstack/react-router/dist/esm/routerContext.js","../../../../../node_modules/.pnpm/@tanstack+react-router@1.130.8_react-dom@19.1.0_react@19.1.0__react@19.1.0/node_modules/@tanstack/react-router/dist/esm/useRouter.js","../../../../../node_modules/.pnpm/@tanstack+react-router@1.130.8_react-dom@19.1.0_react@19.1.0__react@19.1.0/node_modules/@tanstack/react-router/dist/esm/useRouterState.js","../../../../../node_modules/.pnpm/@tanstack+react-router@1.130.8_react-dom@19.1.0_react@19.1.0__react@19.1.0/node_modules/@tanstack/react-router/dist/esm/matchContext.js","../../../../../node_modules/.pnpm/@tanstack+react-router@1.130.8_react-dom@19.1.0_react@19.1.0__react@19.1.0/node_modules/@tanstack/react-router/dist/esm/useMatch.js","../../../../../node_modules/.pnpm/@tanstack+react-router@1.130.8_react-dom@19.1.0_react@19.1.0__react@19.1.0/node_modules/@tanstack/react-router/dist/esm/useLoaderData.js","../../../../../node_modules/.pnpm/@tanstack+react-router@1.130.8_react-dom@19.1.0_react@19.1.0__react@19.1.0/node_modules/@tanstack/react-router/dist/esm/useLoaderDeps.js","../../../../../node_modules/.pnpm/@tanstack+react-router@1.130.8_react-dom@19.1.0_react@19.1.0__react@19.1.0/node_modules/@tanstack/react-router/dist/esm/useParams.js","../../../../../node_modules/.pnpm/@tanstack+react-router@1.130.8_react-dom@19.1.0_react@19.1.0__react@19.1.0/node_modules/@tanstack/react-router/dist/esm/useSearch.js","../../../../../node_modules/.pnpm/@tanstack+react-router@1.130.8_react-dom@19.1.0_react@19.1.0__react@19.1.0/node_modules/@tanstack/react-router/dist/esm/useNavigate.js","../../../../../node_modules/.pnpm/@tanstack+react-router@1.130.8_react-dom@19.1.0_react@19.1.0__react@19.1.0/node_modules/@tanstack/react-router/dist/esm/utils.js","../../../../../node_modules/.pnpm/@tanstack+react-router@1.130.8_react-dom@19.1.0_react@19.1.0__react@19.1.0/node_modules/@tanstack/react-router/dist/esm/link.js","../../../../../node_modules/.pnpm/@tanstack+react-router@1.130.8_react-dom@19.1.0_react@19.1.0__react@19.1.0/node_modules/@tanstack/react-router/dist/esm/route.js","../../../../../node_modules/.pnpm/@tanstack+react-router@1.130.8_react-dom@19.1.0_react@19.1.0__react@19.1.0/node_modules/@tanstack/react-router/dist/esm/fileRoute.js","../../../../../node_modules/.pnpm/@tanstack+react-router@1.130.8_react-dom@19.1.0_react@19.1.0__react@19.1.0/node_modules/@tanstack/react-router/dist/esm/lazyRouteComponent.js","../../../../../node_modules/.pnpm/@tanstack+react-router@1.130.8_react-dom@19.1.0_react@19.1.0__react@19.1.0/node_modules/@tanstack/react-router/dist/esm/Transitioner.js","../../../../../node_modules/.pnpm/@tanstack+react-router@1.130.8_react-dom@19.1.0_react@19.1.0__react@19.1.0/node_modules/@tanstack/react-router/dist/esm/not-found.js","../../../../../node_modules/.pnpm/@tanstack+react-router@1.130.8_react-dom@19.1.0_react@19.1.0__react@19.1.0/node_modules/@tanstack/react-router/dist/esm/SafeFragment.js","../../../../../node_modules/.pnpm/@tanstack+react-router@1.130.8_react-dom@19.1.0_react@19.1.0__react@19.1.0/node_modules/@tanstack/react-router/dist/esm/renderRouteNotFound.js","../../../../../node_modules/.pnpm/@tanstack+react-router@1.130.8_react-dom@19.1.0_react@19.1.0__react@19.1.0/node_modules/@tanstack/react-router/dist/esm/ScriptOnce.js","../../../../../node_modules/.pnpm/@tanstack+react-router@1.130.8_react-dom@19.1.0_react@19.1.0__react@19.1.0/node_modules/@tanstack/react-router/dist/esm/scroll-restoration.js","../../../../../node_modules/.pnpm/@tanstack+react-router@1.130.8_react-dom@19.1.0_react@19.1.0__react@19.1.0/node_modules/@tanstack/react-router/dist/esm/Match.js","../../../../../node_modules/.pnpm/@tanstack+react-router@1.130.8_react-dom@19.1.0_react@19.1.0__react@19.1.0/node_modules/@tanstack/react-router/dist/esm/Matches.js","../../../../../node_modules/.pnpm/@tanstack+react-router@1.130.8_react-dom@19.1.0_react@19.1.0__react@19.1.0/node_modules/@tanstack/react-router/dist/esm/router.js","../../../../../node_modules/.pnpm/@tanstack+react-router@1.130.8_react-dom@19.1.0_react@19.1.0__react@19.1.0/node_modules/@tanstack/react-router/dist/esm/RouterProvider.js","../../../../../node_modules/.pnpm/@tanstack+react-router@1.130.8_react-dom@19.1.0_react@19.1.0__react@19.1.0/node_modules/@tanstack/react-router/dist/esm/ScrollRestoration.js","../../../../../node_modules/.pnpm/@tanstack+react-router@1.130.8_react-dom@19.1.0_react@19.1.0__react@19.1.0/node_modules/@tanstack/react-router/dist/esm/useBlocker.js","../../../../../node_modules/.pnpm/@tanstack+react-router@1.130.8_react-dom@19.1.0_react@19.1.0__react@19.1.0/node_modules/@tanstack/react-router/dist/esm/useRouteContext.js","../../../../../node_modules/.pnpm/@tanstack+react-router@1.130.8_react-dom@19.1.0_react@19.1.0__react@19.1.0/node_modules/@tanstack/react-router/dist/esm/useLocation.js","../../../../../node_modules/.pnpm/@tanstack+react-router@1.130.8_react-dom@19.1.0_react@19.1.0__react@19.1.0/node_modules/@tanstack/react-router/dist/esm/useCanGoBack.js","../../../../../node_modules/.pnpm/@tanstack+react-router@1.130.8_react-dom@19.1.0_react@19.1.0__react@19.1.0/node_modules/@tanstack/react-router/dist/esm/Asset.js","../../../../../node_modules/.pnpm/@tanstack+react-router@1.130.8_react-dom@19.1.0_react@19.1.0__react@19.1.0/node_modules/@tanstack/react-router/dist/esm/HeadContent.js","../../../../../node_modules/.pnpm/@tanstack+react-router@1.130.8_react-dom@19.1.0_react@19.1.0__react@19.1.0/node_modules/@tanstack/react-router/dist/esm/Scripts.js"],"sourcesContent":["/**\n * @license React\n * use-sync-external-store-shim.production.js\n *\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\"use strict\";\nvar React = require(\"react\");\nfunction is(x, y) {\n return (x === y && (0 !== x || 1 / x === 1 / y)) || (x !== x && y !== y);\n}\nvar objectIs = \"function\" === typeof Object.is ? Object.is : is,\n useState = React.useState,\n useEffect = React.useEffect,\n useLayoutEffect = React.useLayoutEffect,\n useDebugValue = React.useDebugValue;\nfunction useSyncExternalStore$2(subscribe, getSnapshot) {\n var value = getSnapshot(),\n _useState = useState({ inst: { value: value, getSnapshot: getSnapshot } }),\n inst = _useState[0].inst,\n forceUpdate = _useState[1];\n useLayoutEffect(\n function () {\n inst.value = value;\n inst.getSnapshot = getSnapshot;\n checkIfSnapshotChanged(inst) && forceUpdate({ inst: inst });\n },\n [subscribe, value, getSnapshot]\n );\n useEffect(\n function () {\n checkIfSnapshotChanged(inst) && forceUpdate({ inst: inst });\n return subscribe(function () {\n checkIfSnapshotChanged(inst) && forceUpdate({ inst: inst });\n });\n },\n [subscribe]\n );\n useDebugValue(value);\n return value;\n}\nfunction checkIfSnapshotChanged(inst) {\n var latestGetSnapshot = inst.getSnapshot;\n inst = inst.value;\n try {\n var nextValue = latestGetSnapshot();\n return !objectIs(inst, nextValue);\n } catch (error) {\n return !0;\n }\n}\nfunction useSyncExternalStore$1(subscribe, getSnapshot) {\n return getSnapshot();\n}\nvar shim =\n \"undefined\" === typeof window ||\n \"undefined\" === typeof window.document ||\n \"undefined\" === typeof window.document.createElement\n ? useSyncExternalStore$1\n : useSyncExternalStore$2;\nexports.useSyncExternalStore =\n void 0 !== React.useSyncExternalStore ? React.useSyncExternalStore : shim;\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('../cjs/use-sync-external-store-shim.production.js');\n} else {\n module.exports = require('../cjs/use-sync-external-store-shim.development.js');\n}\n","var isProduction = process.env.NODE_ENV === 'production';\nvar prefix = 'Invariant failed';\nfunction invariant(condition, message) {\n if (condition) {\n return;\n }\n if (isProduction) {\n throw new Error(prefix);\n }\n var provided = typeof message === 'function' ? message() : message;\n var value = provided ? \"\".concat(prefix, \": \").concat(provided) : prefix;\n throw new Error(value);\n}\n\nexport { invariant as default };\n","var isProduction = process.env.NODE_ENV === 'production';\nfunction warning(condition, message) {\n if (!isProduction) {\n if (condition) {\n return;\n }\n\n var text = \"Warning: \" + message;\n\n if (typeof console !== 'undefined') {\n console.warn(text);\n }\n\n try {\n throw Error(text);\n } catch (x) {}\n }\n}\n\nexport default warning;\n","import { Derived } from \"./derived.js\";\nconst __storeToDerived = /* @__PURE__ */ new WeakMap();\nconst __derivedToStore = /* @__PURE__ */ new WeakMap();\nconst __depsThatHaveWrittenThisTick = {\n current: []\n};\nlet __isFlushing = false;\nlet __batchDepth = 0;\nconst __pendingUpdates = /* @__PURE__ */ new Set();\nconst __initialBatchValues = /* @__PURE__ */ new Map();\nfunction __flush_internals(relatedVals) {\n const sorted = Array.from(relatedVals).sort((a, b) => {\n if (a instanceof Derived && a.options.deps.includes(b)) return 1;\n if (b instanceof Derived && b.options.deps.includes(a)) return -1;\n return 0;\n });\n for (const derived of sorted) {\n if (__depsThatHaveWrittenThisTick.current.includes(derived)) {\n continue;\n }\n __depsThatHaveWrittenThisTick.current.push(derived);\n derived.recompute();\n const stores = __derivedToStore.get(derived);\n if (stores) {\n for (const store of stores) {\n const relatedLinkedDerivedVals = __storeToDerived.get(store);\n if (!relatedLinkedDerivedVals) continue;\n __flush_internals(relatedLinkedDerivedVals);\n }\n }\n }\n}\nfunction __notifyListeners(store) {\n store.listeners.forEach(\n (listener) => listener({\n prevVal: store.prevState,\n currentVal: store.state\n })\n );\n}\nfunction __notifyDerivedListeners(derived) {\n derived.listeners.forEach(\n (listener) => listener({\n prevVal: derived.prevState,\n currentVal: derived.state\n })\n );\n}\nfunction __flush(store) {\n if (__batchDepth > 0 && !__initialBatchValues.has(store)) {\n __initialBatchValues.set(store, store.prevState);\n }\n __pendingUpdates.add(store);\n if (__batchDepth > 0) return;\n if (__isFlushing) return;\n try {\n __isFlushing = true;\n while (__pendingUpdates.size > 0) {\n const stores = Array.from(__pendingUpdates);\n __pendingUpdates.clear();\n for (const store2 of stores) {\n const prevState = __initialBatchValues.get(store2) ?? store2.prevState;\n store2.prevState = prevState;\n __notifyListeners(store2);\n }\n for (const store2 of stores) {\n const derivedVals = __storeToDerived.get(store2);\n if (!derivedVals) continue;\n __depsThatHaveWrittenThisTick.current.push(store2);\n __flush_internals(derivedVals);\n }\n for (const store2 of stores) {\n const derivedVals = __storeToDerived.get(store2);\n if (!derivedVals) continue;\n for (const derived of derivedVals) {\n __notifyDerivedListeners(derived);\n }\n }\n }\n } finally {\n __isFlushing = false;\n __depsThatHaveWrittenThisTick.current = [];\n __initialBatchValues.clear();\n }\n}\nfunction batch(fn) {\n __batchDepth++;\n try {\n fn();\n } finally {\n __batchDepth--;\n if (__batchDepth === 0) {\n const pendingUpdateToFlush = Array.from(__pendingUpdates)[0];\n if (pendingUpdateToFlush) {\n __flush(pendingUpdateToFlush);\n }\n }\n }\n}\nexport {\n __depsThatHaveWrittenThisTick,\n __derivedToStore,\n __flush,\n __storeToDerived,\n batch\n};\n//# sourceMappingURL=scheduler.js.map\n","function isUpdaterFunction(updater) {\n return typeof updater === \"function\";\n}\nexport {\n isUpdaterFunction\n};\n//# sourceMappingURL=types.js.map\n","import { __flush } from \"./scheduler.js\";\nimport { isUpdaterFunction } from \"./types.js\";\nclass Store {\n constructor(initialState, options) {\n this.listeners = /* @__PURE__ */ new Set();\n this.subscribe = (listener) => {\n var _a, _b;\n this.listeners.add(listener);\n const unsub = (_b = (_a = this.options) == null ? void 0 : _a.onSubscribe) == null ? void 0 : _b.call(_a, listener, this);\n return () => {\n this.listeners.delete(listener);\n unsub == null ? void 0 : unsub();\n };\n };\n this.prevState = initialState;\n this.state = initialState;\n this.options = options;\n }\n setState(updater) {\n var _a, _b, _c;\n this.prevState = this.state;\n if ((_a = this.options) == null ? void 0 : _a.updateFn) {\n this.state = this.options.updateFn(this.prevState)(updater);\n } else {\n if (isUpdaterFunction(updater)) {\n this.state = updater(this.prevState);\n } else {\n this.state = updater;\n }\n }\n (_c = (_b = this.options) == null ? void 0 : _b.onUpdate) == null ? void 0 : _c.call(_b);\n __flush(this);\n }\n}\nexport {\n Store\n};\n//# sourceMappingURL=store.js.map\n","import { Store } from \"./store.js\";\nimport { __storeToDerived, __derivedToStore } from \"./scheduler.js\";\nclass Derived {\n constructor(options) {\n this.listeners = /* @__PURE__ */ new Set();\n this._subscriptions = [];\n this.lastSeenDepValues = [];\n this.getDepVals = () => {\n const prevDepVals = [];\n const currDepVals = [];\n for (const dep of this.options.deps) {\n prevDepVals.push(dep.prevState);\n currDepVals.push(dep.state);\n }\n this.lastSeenDepValues = currDepVals;\n return {\n prevDepVals,\n currDepVals,\n prevVal: this.prevState ?? void 0\n };\n };\n this.recompute = () => {\n var _a, _b;\n this.prevState = this.state;\n const { prevDepVals, currDepVals, prevVal } = this.getDepVals();\n this.state = this.options.fn({\n prevDepVals,\n currDepVals,\n prevVal\n });\n (_b = (_a = this.options).onUpdate) == null ? void 0 : _b.call(_a);\n };\n this.checkIfRecalculationNeededDeeply = () => {\n for (const dep of this.options.deps) {\n if (dep instanceof Derived) {\n dep.checkIfRecalculationNeededDeeply();\n }\n }\n let shouldRecompute = false;\n const lastSeenDepValues = this.lastSeenDepValues;\n const { currDepVals } = this.getDepVals();\n for (let i = 0; i < currDepVals.length; i++) {\n if (currDepVals[i] !== lastSeenDepValues[i]) {\n shouldRecompute = true;\n break;\n }\n }\n if (shouldRecompute) {\n this.recompute();\n }\n };\n this.mount = () => {\n this.registerOnGraph();\n this.checkIfRecalculationNeededDeeply();\n return () => {\n this.unregisterFromGraph();\n for (const cleanup of this._subscriptions) {\n cleanup();\n }\n };\n };\n this.subscribe = (listener) => {\n var _a, _b;\n this.listeners.add(listener);\n const unsub = (_b = (_a = this.options).onSubscribe) == null ? void 0 : _b.call(_a, listener, this);\n return () => {\n this.listeners.delete(listener);\n unsub == null ? void 0 : unsub();\n };\n };\n this.options = options;\n this.state = options.fn({\n prevDepVals: void 0,\n prevVal: void 0,\n currDepVals: this.getDepVals().currDepVals\n });\n }\n registerOnGraph(deps = this.options.deps) {\n for (const dep of deps) {\n if (dep instanceof Derived) {\n dep.registerOnGraph();\n this.registerOnGraph(dep.options.deps);\n } else if (dep instanceof Store) {\n let relatedLinkedDerivedVals = __storeToDerived.get(dep);\n if (!relatedLinkedDerivedVals) {\n relatedLinkedDerivedVals = /* @__PURE__ */ new Set();\n __storeToDerived.set(dep, relatedLinkedDerivedVals);\n }\n relatedLinkedDerivedVals.add(this);\n let relatedStores = __derivedToStore.get(this);\n if (!relatedStores) {\n relatedStores = /* @__PURE__ */ new Set();\n __derivedToStore.set(this, relatedStores);\n }\n relatedStores.add(dep);\n }\n }\n }\n unregisterFromGraph(deps = this.options.deps) {\n for (const dep of deps) {\n if (dep instanceof Derived) {\n this.unregisterFromGraph(dep.options.deps);\n } else if (dep instanceof Store) {\n const relatedLinkedDerivedVals = __storeToDerived.get(dep);\n if (relatedLinkedDerivedVals) {\n relatedLinkedDerivedVals.delete(this);\n }\n const relatedStores = __derivedToStore.get(this);\n if (relatedStores) {\n relatedStores.delete(dep);\n }\n }\n }\n }\n}\nexport {\n Derived\n};\n//# sourceMappingURL=derived.js.map\n","const stateIndexKey = \"__TSR_index\";\nconst popStateEvent = \"popstate\";\nconst beforeUnloadEvent = \"beforeunload\";\nfunction createHistory(opts) {\n let location = opts.getLocation();\n const subscribers = /* @__PURE__ */ new Set();\n const notify = (action) => {\n location = opts.getLocation();\n subscribers.forEach((subscriber) => subscriber({ location, action }));\n };\n const handleIndexChange = (action) => {\n if (opts.notifyOnIndexChange ?? true) notify(action);\n else location = opts.getLocation();\n };\n const tryNavigation = async ({\n task,\n navigateOpts,\n ...actionInfo\n }) => {\n var _a, _b;\n const ignoreBlocker = (navigateOpts == null ? void 0 : navigateOpts.ignoreBlocker) ?? false;\n if (ignoreBlocker) {\n task();\n return;\n }\n const blockers = ((_a = opts.getBlockers) == null ? void 0 : _a.call(opts)) ?? [];\n const isPushOrReplace = actionInfo.type === \"PUSH\" || actionInfo.type === \"REPLACE\";\n if (typeof document !== \"undefined\" && blockers.length && isPushOrReplace) {\n for (const blocker of blockers) {\n const nextLocation = parseHref(actionInfo.path, actionInfo.state);\n const isBlocked = await blocker.blockerFn({\n currentLocation: location,\n nextLocation,\n action: actionInfo.type\n });\n if (isBlocked) {\n (_b = opts.onBlocked) == null ? void 0 : _b.call(opts);\n return;\n }\n }\n }\n task();\n };\n return {\n get location() {\n return location;\n },\n get length() {\n return opts.getLength();\n },\n subscribers,\n subscribe: (cb) => {\n subscribers.add(cb);\n return () => {\n subscribers.delete(cb);\n };\n },\n push: (path, state, navigateOpts) => {\n const currentIndex = location.state[stateIndexKey];\n state = assignKeyAndIndex(currentIndex + 1, state);\n tryNavigation({\n task: () => {\n opts.pushState(path, state);\n notify({ type: \"PUSH\" });\n },\n navigateOpts,\n type: \"PUSH\",\n path,\n state\n });\n },\n replace: (path, state, navigateOpts) => {\n const currentIndex = location.state[stateIndexKey];\n state = assignKeyAndIndex(currentIndex, state);\n tryNavigation({\n task: () => {\n opts.replaceState(path, state);\n notify({ type: \"REPLACE\" });\n },\n navigateOpts,\n type: \"REPLACE\",\n path,\n state\n });\n },\n go: (index, navigateOpts) => {\n tryNavigation({\n task: () => {\n opts.go(index);\n handleIndexChange({ type: \"GO\", index });\n },\n navigateOpts,\n type: \"GO\"\n });\n },\n back: (navigateOpts) => {\n tryNavigation({\n task: () => {\n opts.back((navigateOpts == null ? void 0 : navigateOpts.ignoreBlocker) ?? false);\n handleIndexChange({ type: \"BACK\" });\n },\n navigateOpts,\n type: \"BACK\"\n });\n },\n forward: (navigateOpts) => {\n tryNavigation({\n task: () => {\n opts.forward((navigateOpts == null ? void 0 : navigateOpts.ignoreBlocker) ?? false);\n handleIndexChange({ type: \"FORWARD\" });\n },\n navigateOpts,\n type: \"FORWARD\"\n });\n },\n canGoBack: () => location.state[stateIndexKey] !== 0,\n createHref: (str) => opts.createHref(str),\n block: (blocker) => {\n var _a;\n if (!opts.setBlockers) return () => {\n };\n const blockers = ((_a = opts.getBlockers) == null ? void 0 : _a.call(opts)) ?? [];\n opts.setBlockers([...blockers, blocker]);\n return () => {\n var _a2, _b;\n const blockers2 = ((_a2 = opts.getBlockers) == null ? void 0 : _a2.call(opts)) ?? [];\n (_b = opts.setBlockers) == null ? void 0 : _b.call(opts, blockers2.filter((b) => b !== blocker));\n };\n },\n flush: () => {\n var _a;\n return (_a = opts.flush) == null ? void 0 : _a.call(opts);\n },\n destroy: () => {\n var _a;\n return (_a = opts.destroy) == null ? void 0 : _a.call(opts);\n },\n notify\n };\n}\nfunction assignKeyAndIndex(index, state) {\n if (!state) {\n state = {};\n }\n const key = createRandomKey();\n return {\n ...state,\n key,\n // TODO: Remove in v2 - use __TSR_key instead\n __TSR_key: key,\n [stateIndexKey]: index\n };\n}\nfunction createBrowserHistory(opts) {\n var _a, _b;\n const win = (opts == null ? void 0 : opts.window) ?? (typeof document !== \"undefined\" ? window : void 0);\n const originalPushState = win.history.pushState;\n const originalReplaceState = win.history.replaceState;\n let blockers = [];\n const _getBlockers = () => blockers;\n const _setBlockers = (newBlockers) => blockers = newBlockers;\n const createHref = (opts == null ? void 0 : opts.createHref) ?? ((path) => path);\n const parseLocation = (opts == null ? void 0 : opts.parseLocation) ?? (() => parseHref(\n `${win.location.pathname}${win.location.search}${win.location.hash}`,\n win.history.state\n ));\n if (!((_a = win.history.state) == null ? void 0 : _a.__TSR_key) && !((_b = win.history.state) == null ? void 0 : _b.key)) {\n const addedKey = createRandomKey();\n win.history.replaceState(\n {\n [stateIndexKey]: 0,\n key: addedKey,\n // TODO: Remove in v2 - use __TSR_key instead\n __TSR_key: addedKey\n },\n \"\"\n );\n }\n let currentLocation = parseLocation();\n let rollbackLocation;\n let nextPopIsGo = false;\n let ignoreNextPop = false;\n let skipBlockerNextPop = false;\n let ignoreNextBeforeUnload = false;\n const getLocation = () => currentLocation;\n let next;\n let scheduled;\n const flush = () => {\n if (!next) {\n return;\n }\n history._ignoreSubscribers = true;\n (next.isPush ? win.history.pushState : win.history.replaceState)(\n next.state,\n \"\",\n next.href\n );\n history._ignoreSubscribers = false;\n next = void 0;\n scheduled = void 0;\n rollbackLocation = void 0;\n };\n const queueHistoryAction = (type, destHref, state) => {\n const href = createHref(destHref);\n if (!scheduled) {\n rollbackLocation = currentLocation;\n }\n currentLocation = parseHref(destHref, state);\n next = {\n href,\n state,\n isPush: (next == null ? void 0 : next.isPush) || type === \"push\"\n };\n if (!scheduled) {\n scheduled = Promise.resolve().then(() => flush());\n }\n };\n const onPushPop = (type) => {\n currentLocation = parseLocation();\n history.notify({ type });\n };\n const onPushPopEvent = async () => {\n if (ignoreNextPop) {\n ignoreNextPop = false;\n return;\n }\n const nextLocation = parseLocation();\n const delta = nextLocation.state[stateIndexKey] - currentLocation.state[stateIndexKey];\n const isForward = delta === 1;\n const isBack = delta === -1;\n const isGo = !isForward && !isBack || nextPopIsGo;\n nextPopIsGo = false;\n const action = isGo ? \"GO\" : isBack ? \"BACK\" : \"FORWARD\";\n const notify = isGo ? {\n type: \"GO\",\n index: delta\n } : {\n type: isBack ? \"BACK\" : \"FORWARD\"\n };\n if (skipBlockerNextPop) {\n skipBlockerNextPop = false;\n } else {\n const blockers2 = _getBlockers();\n if (typeof document !== \"undefined\" && blockers2.length) {\n for (const blocker of blockers2) {\n const isBlocked = await blocker.blockerFn({\n currentLocation,\n nextLocation,\n action\n });\n if (isBlocked) {\n ignoreNextPop = true;\n win.history.go(1);\n history.notify(notify);\n return;\n }\n }\n }\n }\n currentLocation = parseLocation();\n history.notify(notify);\n };\n const onBeforeUnload = (e) => {\n if (ignoreNextBeforeUnload) {\n ignoreNextBeforeUnload = false;\n return;\n }\n let shouldBlock = false;\n const blockers2 = _getBlockers();\n if (typeof document !== \"undefined\" && blockers2.length) {\n for (const blocker of blockers2) {\n const shouldHaveBeforeUnload = blocker.enableBeforeUnload ?? true;\n if (shouldHaveBeforeUnload === true) {\n shouldBlock = true;\n break;\n }\n if (typeof shouldHaveBeforeUnload === \"function\" && shouldHaveBeforeUnload() === true) {\n shouldBlock = true;\n break;\n }\n }\n }\n if (shouldBlock) {\n e.preventDefault();\n return e.returnValue = \"\";\n }\n return;\n };\n const history = createHistory({\n getLocation,\n getLength: () => win.history.length,\n pushState: (href, state) => queueHistoryAction(\"push\", href, state),\n replaceState: (href, state) => queueHistoryAction(\"replace\", href, state),\n back: (ignoreBlocker) => {\n if (ignoreBlocker) skipBlockerNextPop = true;\n ignoreNextBeforeUnload = true;\n return win.history.back();\n },\n forward: (ignoreBlocker) => {\n if (ignoreBlocker) skipBlockerNextPop = true;\n ignoreNextBeforeUnload = true;\n win.history.forward();\n },\n go: (n) => {\n nextPopIsGo = true;\n win.history.go(n);\n },\n createHref: (href) => createHref(href),\n flush,\n destroy: () => {\n win.history.pushState = originalPushState;\n win.history.replaceState = originalReplaceState;\n win.removeEventListener(beforeUnloadEvent, onBeforeUnload, {\n capture: true\n });\n win.removeEventListener(popStateEvent, onPushPopEvent);\n },\n onBlocked: () => {\n if (rollbackLocation && currentLocation !== rollbackLocation) {\n currentLocation = rollbackLocation;\n }\n },\n getBlockers: _getBlockers,\n setBlockers: _setBlockers,\n notifyOnIndexChange: false\n });\n win.addEventListener(beforeUnloadEvent, onBeforeUnload, { capture: true });\n win.addEventListener(popStateEvent, onPushPopEvent);\n win.history.pushState = function(...args) {\n const res = originalPushState.apply(win.history, args);\n if (!history._ignoreSubscribers) onPushPop(\"PUSH\");\n return res;\n };\n win.history.replaceState = function(...args) {\n const res = originalReplaceState.apply(win.history, args);\n if (!history._ignoreSubscribers) onPushPop(\"REPLACE\");\n return res;\n };\n return history;\n}\nfunction createHashHistory(opts) {\n const win = (opts == null ? void 0 : opts.window) ?? (typeof document !== \"undefined\" ? window : void 0);\n return createBrowserHistory({\n window: win,\n parseLocation: () => {\n const hashSplit = win.location.hash.split(\"#\").slice(1);\n const pathPart = hashSplit[0] ?? \"/\";\n const searchPart = win.location.search;\n const hashEntries = hashSplit.slice(1);\n const hashPart = hashEntries.length === 0 ? \"\" : `#${hashEntries.join(\"#\")}`;\n const hashHref = `${pathPart}${searchPart}${hashPart}`;\n return parseHref(hashHref, win.history.state);\n },\n createHref: (href) => `${win.location.pathname}${win.location.search}#${href}`\n });\n}\nfunction createMemoryHistory(opts = {\n initialEntries: [\"/\"]\n}) {\n const entries = opts.initialEntries;\n let index = opts.initialIndex ? Math.min(Math.max(opts.initialIndex, 0), entries.length - 1) : entries.length - 1;\n const states = entries.map(\n (_entry, index2) => assignKeyAndIndex(index2, void 0)\n );\n const getLocation = () => parseHref(entries[index], states[index]);\n return createHistory({\n getLocation,\n getLength: () => entries.length,\n pushState: (path, state) => {\n if (index < entries.length - 1) {\n entries.splice(index + 1);\n states.splice(index + 1);\n }\n states.push(state);\n entries.push(path);\n index = Math.max(entries.length - 1, 0);\n },\n replaceState: (path, state) => {\n states[index] = state;\n entries[index] = path;\n },\n back: () => {\n index = Math.max(index - 1, 0);\n },\n forward: () => {\n index = Math.min(index + 1, entries.length - 1);\n },\n go: (n) => {\n index = Math.min(Math.max(index + n, 0), entries.length - 1);\n },\n createHref: (path) => path\n });\n}\nfunction parseHref(href, state) {\n const hashIndex = href.indexOf(\"#\");\n const searchIndex = href.indexOf(\"?\");\n const addedKey = createRandomKey();\n return {\n href,\n pathname: href.substring(\n 0,\n hashIndex > 0 ? searchIndex > 0 ? Math.min(hashIndex, searchIndex) : hashIndex : searchIndex > 0 ? searchIndex : href.length\n ),\n hash: hashIndex > -1 ? href.substring(hashIndex) : \"\",\n search: searchIndex > -1 ? href.slice(searchIndex, hashIndex === -1 ? void 0 : hashIndex) : \"\",\n state: state || { [stateIndexKey]: 0, key: addedKey, __TSR_key: addedKey }\n };\n}\nfunction createRandomKey() {\n return (Math.random() + 1).toString(36).substring(7);\n}\nexport {\n createBrowserHistory,\n createHashHistory,\n createHistory,\n createMemoryHistory,\n parseHref\n};\n//# sourceMappingURL=index.js.map\n","function last(arr) {\n return arr[arr.length - 1];\n}\nfunction isFunction(d) {\n return typeof d === \"function\";\n}\nfunction functionalUpdate(updater, previous) {\n if (isFunction(updater)) {\n return updater(previous);\n }\n return updater;\n}\nfunction pick(parent, keys) {\n return keys.reduce((obj, key) => {\n obj[key] = parent[key];\n return obj;\n }, {});\n}\nfunction replaceEqualDeep(prev, _next) {\n if (prev === _next) {\n return prev;\n }\n const next = _next;\n const array = isPlainArray(prev) && isPlainArray(next);\n if (array || isSimplePlainObject(prev) && isSimplePlainObject(next)) {\n const prevItems = array ? prev : Object.keys(prev).concat(\n Object.getOwnPropertySymbols(prev)\n );\n const prevSize = prevItems.length;\n const nextItems = array ? next : Object.keys(next).concat(\n Object.getOwnPropertySymbols(next)\n );\n const nextSize = nextItems.length;\n const copy = array ? [] : {};\n let equalItems = 0;\n for (let i = 0; i < nextSize; i++) {\n const key = array ? i : nextItems[i];\n if ((!array && prevItems.includes(key) || array) && prev[key] === void 0 && next[key] === void 0) {\n copy[key] = void 0;\n equalItems++;\n } else {\n copy[key] = replaceEqualDeep(prev[key], next[key]);\n if (copy[key] === prev[key] && prev[key] !== void 0) {\n equalItems++;\n }\n }\n }\n return prevSize === nextSize && equalItems === prevSize ? prev : copy;\n }\n return next;\n}\nfunction isSimplePlainObject(o) {\n return (\n // all the checks from isPlainObject are more likely to hit so we perform them first\n isPlainObject(o) && Object.getOwnPropertyNames(o).length === Object.keys(o).length\n );\n}\nfunction isPlainObject(o) {\n if (!hasObjectPrototype(o)) {\n return false;\n }\n const ctor = o.constructor;\n if (typeof ctor === \"undefined\") {\n return true;\n }\n const prot = ctor.prototype;\n if (!hasObjectPrototype(prot)) {\n return false;\n }\n if (!prot.hasOwnProperty(\"isPrototypeOf\")) {\n return false;\n }\n return true;\n}\nfunction hasObjectPrototype(o) {\n return Object.prototype.toString.call(o) === \"[object Object]\";\n}\nfunction isPlainArray(value) {\n return Array.isArray(value) && value.length === Object.keys(value).length;\n}\nfunction getObjectKeys(obj, ignoreUndefined) {\n let keys = Object.keys(obj);\n if (ignoreUndefined) {\n keys = keys.filter((key) => obj[key] !== void 0);\n }\n return keys;\n}\nfunction deepEqual(a, b, opts) {\n if (a === b) {\n return true;\n }\n if (typeof a !== typeof b) {\n return false;\n }\n if (isPlainObject(a) && isPlainObject(b)) {\n const ignoreUndefined = (opts == null ? void 0 : opts.ignoreUndefined) ?? true;\n const aKeys = getObjectKeys(a, ignoreUndefined);\n const bKeys = getObjectKeys(b, ignoreUndefined);\n if (!(opts == null ? void 0 : opts.partial) && aKeys.length !== bKeys.length) {\n return false;\n }\n return bKeys.every((key) => deepEqual(a[key], b[key], opts));\n }\n if (Array.isArray(a) && Array.isArray(b)) {\n if (a.length !== b.length) {\n return false;\n }\n return !a.some((item, index) => !deepEqual(item, b[index], opts));\n }\n return false;\n}\nfunction createControlledPromise(onResolve) {\n let resolveLoadPromise;\n let rejectLoadPromise;\n const controlledPromise = new Promise((resolve, reject) => {\n resolveLoadPromise = resolve;\n rejectLoadPromise = reject;\n });\n controlledPromise.status = \"pending\";\n controlledPromise.resolve = (value) => {\n controlledPromise.status = \"resolved\";\n controlledPromise.value = value;\n resolveLoadPromise(value);\n onResolve == null ? void 0 : onResolve(value);\n };\n controlledPromise.reject = (e) => {\n controlledPromise.status = \"rejected\";\n rejectLoadPromise(e);\n };\n return controlledPromise;\n}\nfunction escapeJSON(jsonString) {\n return jsonString.replace(/\\\\/g, \"\\\\\\\\\").replace(/'/g, \"\\\\'\").replace(/\"/g, '\\\\\"');\n}\nfunction shallow(objA, objB) {\n if (Object.is(objA, objB)) {\n return true;\n }\n if (typeof objA !== \"object\" || objA === null || typeof objB !== \"object\" || objB === null) {\n return false;\n }\n const keysA = Object.keys(objA);\n if (keysA.length !== Object.keys(objB).length) {\n return false;\n }\n for (const item of keysA) {\n if (!Object.prototype.hasOwnProperty.call(objB, item) || !Object.is(objA[item], objB[item])) {\n return false;\n }\n }\n return true;\n}\nfunction isModuleNotFoundError(error) {\n if (typeof (error == null ? void 0 : error.message) !== \"string\") return false;\n return error.message.startsWith(\"Failed to fetch dynamically imported module\") || error.message.startsWith(\"error loading dynamically imported module\") || error.message.startsWith(\"Importing a module script failed\");\n}\nexport {\n createControlledPromise,\n deepEqual,\n escapeJSON,\n functionalUpdate,\n isModuleNotFoundError,\n isPlainArray,\n isPlainObject,\n last,\n pick,\n replaceEqualDeep,\n shallow\n};\n//# sourceMappingURL=utils.js.map\n","import { last } from \"./utils.js\";\nconst SEGMENT_TYPE_PATHNAME = 0;\nconst SEGMENT_TYPE_PARAM = 1;\nconst SEGMENT_TYPE_WILDCARD = 2;\nconst SEGMENT_TYPE_OPTIONAL_PARAM = 3;\nfunction joinPaths(paths) {\n return cleanPath(\n paths.filter((val) => {\n return val !== void 0;\n }).join(\"/\")\n );\n}\nfunction cleanPath(path) {\n return path.replace(/\\/{2,}/g, \"/\");\n}\nfunction trimPathLeft(path) {\n return path === \"/\" ? path : path.replace(/^\\/{1,}/, \"\");\n}\nfunction trimPathRight(path) {\n return path === \"/\" ? path : path.replace(/\\/{1,}$/, \"\");\n}\nfunction trimPath(path) {\n return trimPathRight(trimPathLeft(path));\n}\nfunction removeTrailingSlash(value, basepath) {\n if ((value == null ? void 0 : value.endsWith(\"/\")) && value !== \"/\" && value !== `${basepath}/`) {\n return value.slice(0, -1);\n }\n return value;\n}\nfunction exactPathTest(pathName1, pathName2, basepath) {\n return removeTrailingSlash(pathName1, basepath) === removeTrailingSlash(pathName2, basepath);\n}\nfunction segmentToString(segment) {\n const { type, value } = segment;\n if (type === SEGMENT_TYPE_PATHNAME) {\n return value;\n }\n const { prefixSegment, suffixSegment } = segment;\n if (type === SEGMENT_TYPE_PARAM) {\n const param = value.substring(1);\n if (prefixSegment && suffixSegment) {\n return `${prefixSegment}{$${param}}${suffixSegment}`;\n } else if (prefixSegment) {\n return `${prefixSegment}{$${param}}`;\n } else if (suffixSegment) {\n return `{$${param}}${suffixSegment}`;\n }\n }\n if (type === SEGMENT_TYPE_OPTIONAL_PARAM) {\n const param = value.substring(1);\n if (prefixSegment && suffixSegment) {\n return `${prefixSegment}{-$${param}}${suffixSegment}`;\n } else if (prefixSegment) {\n return `${prefixSegment}{-$${param}}`;\n } else if (suffixSegment) {\n return `{-$${param}}${suffixSegment}`;\n }\n return `{-$${param}}`;\n }\n if (type === SEGMENT_TYPE_WILDCARD) {\n if (prefixSegment && suffixSegment) {\n return `${prefixSegment}{$}${suffixSegment}`;\n } else if (prefixSegment) {\n return `${prefixSegment}{$}`;\n } else if (suffixSegment) {\n return `{$}${suffixSegment}`;\n }\n }\n return value;\n}\nfunction resolvePath({\n basepath,\n base,\n to,\n trailingSlash = \"never\",\n caseSensitive,\n parseCache\n}) {\n var _a;\n base = removeBasepath(basepath, base, caseSensitive);\n to = removeBasepath(basepath, to, caseSensitive);\n let baseSegments = parsePathname(base, parseCache).slice();\n const toSegments = parsePathname(to, parseCache);\n if (baseSegments.length > 1 && ((_a = last(baseSegments)) == null ? void 0 : _a.value) === \"/\") {\n baseSegments.pop();\n }\n for (let index = 0, length = toSegments.length; index < length; index++) {\n const toSegment = toSegments[index];\n const value = toSegment.value;\n if (value === \"/\") {\n if (!index) {\n baseSegments = [toSegment];\n } else if (index === length - 1) {\n baseSegments.push(toSegment);\n } else ;\n } else if (value === \"..\") {\n baseSegments.pop();\n } else if (value === \".\") ;\n else {\n baseSegments.push(toSegment);\n }\n }\n if (baseSegments.length > 1) {\n if (last(baseSegments).value === \"/\") {\n if (trailingSlash === \"never\") {\n baseSegments.pop();\n }\n } else if (trailingSlash === \"always\") {\n baseSegments.push({ type: SEGMENT_TYPE_PATHNAME, value: \"/\" });\n }\n }\n const segmentValues = baseSegments.map(segmentToString);\n const joined = joinPaths([basepath, ...segmentValues]);\n return joined;\n}\nconst parsePathname = (pathname, cache) => {\n if (!pathname) return [];\n const cached = cache == null ? void 0 : cache.get(pathname);\n if (cached) return cached;\n const parsed = baseParsePathname(pathname);\n cache == null ? void 0 : cache.set(pathname, parsed);\n return parsed;\n};\nconst PARAM_RE = /^\\$.{1,}$/;\nconst PARAM_W_CURLY_BRACES_RE = /^(.*?)\\{(\\$[a-zA-Z_$][a-zA-Z0-9_$]*)\\}(.*)$/;\nconst OPTIONAL_PARAM_W_CURLY_BRACES_RE = /^(.*?)\\{-(\\$[a-zA-Z_$][a-zA-Z0-9_$]*)\\}(.*)$/;\nconst WILDCARD_RE = /^\\$$/;\nconst WILDCARD_W_CURLY_BRACES_RE = /^(.*?)\\{\\$\\}(.*)$/;\nfunction baseParsePathname(pathname) {\n pathname = cleanPath(pathname);\n const segments = [];\n if (pathname.slice(0, 1) === \"/\") {\n pathname = pathname.substring(1);\n segments.push({\n type: SEGMENT_TYPE_PATHNAME,\n value: \"/\"\n });\n }\n if (!pathname) {\n return segments;\n }\n const split = pathname.split(\"/\").filter(Boolean);\n segments.push(\n ...split.map((part) => {\n const wildcardBracesMatch = part.match(WILDCARD_W_CURLY_BRACES_RE);\n if (wildcardBracesMatch) {\n const prefix = wildcardBracesMatch[1];\n const suffix = wildcardBracesMatch[2];\n return {\n type: SEGMENT_TYPE_WILDCARD,\n value: \"$\",\n prefixSegment: prefix || void 0,\n suffixSegment: suffix || void 0\n };\n }\n const optionalParamBracesMatch = part.match(\n OPTIONAL_PARAM_W_CURLY_BRACES_RE\n );\n if (optionalParamBracesMatch) {\n const prefix = optionalParamBracesMatch[1];\n const paramName = optionalParamBracesMatch[2];\n const suffix = optionalParamBracesMatch[3];\n return {\n type: SEGMENT_TYPE_OPTIONAL_PARAM,\n value: paramName,\n // Now just $paramName (no prefix)\n prefixSegment: prefix || void 0,\n suffixSegment: suffix || void 0\n };\n }\n const paramBracesMatch = part.match(PARAM_W_CURLY_BRACES_RE);\n if (paramBracesMatch) {\n const prefix = paramBracesMatch[1];\n const paramName = paramBracesMatch[2];\n const suffix = paramBracesMatch[3];\n return {\n type: SEGMENT_TYPE_PARAM,\n value: \"\" + paramName,\n prefixSegment: prefix || void 0,\n suffixSegment: suffix || void 0\n };\n }\n if (PARAM_RE.test(part)) {\n const paramName = part.substring(1);\n return {\n type: SEGMENT_TYPE_PARAM,\n value: \"$\" + paramName,\n prefixSegment: void 0,\n suffixSegment: void 0\n };\n }\n if (WILDCARD_RE.test(part)) {\n return {\n type: SEGMENT_TYPE_WILDCARD,\n value: \"$\",\n prefixSegment: void 0,\n suffixSegment: void 0\n };\n }\n return {\n type: SEGMENT_TYPE_PATHNAME,\n value: part.includes(\"%25\") ? part.split(\"%25\").map((segment) => decodeURI(segment)).join(\"%25\") : decodeURI(part)\n };\n })\n );\n if (pathname.slice(-1) === \"/\") {\n pathname = pathname.substring(1);\n segments.push({\n type: SEGMENT_TYPE_PATHNAME,\n value: \"/\"\n });\n }\n return segments;\n}\nfunction interpolatePath({\n path,\n params,\n leaveWildcards,\n leaveParams,\n decodeCharMap,\n parseCache\n}) {\n const interpolatedPathSegments = parsePathname(path, parseCache);\n function encodeParam(key) {\n const value = params[key];\n const isValueString = typeof value === \"string\";\n if (key === \"*\" || key === \"_splat\") {\n return isValueString ? encodeURI(value) : value;\n } else {\n return isValueString ? encodePathParam(value, decodeCharMap) : value;\n }\n }\n let isMissingParams = false;\n const usedParams = {};\n const interpolatedPath = joinPaths(\n interpolatedPathSegments.map((segment) => {\n if (segment.type === SEGMENT_TYPE_PATHNAME) {\n return segment.value;\n }\n if (segment.type === SEGMENT_TYPE_WILDCARD) {\n usedParams._splat = params._splat;\n const segmentPrefix = segment.prefixSegment || \"\";\n const segmentSuffix = segment.suffixSegment || \"\";\n if (!(\"_splat\" in params)) {\n isMissingParams = true;\n if (leaveWildcards) {\n return `${segmentPrefix}${segment.value}${segmentSuffix}`;\n }\n if (segmentPrefix || segmentSuffix) {\n return `${segmentPrefix}${segmentSuffix}`;\n }\n return void 0;\n }\n const value = encodeParam(\"_splat\");\n if (leaveWildcards) {\n return `${segmentPrefix}${segment.value}${value ?? \"\"}${segmentSuffix}`;\n }\n return `${segmentPrefix}${value}${segmentSuffix}`;\n }\n if (segment.type === SEGMENT_TYPE_PARAM) {\n const key = segment.value.substring(1);\n if (!isMissingParams && !(key in params)) {\n isMissingParams = true;\n }\n usedParams[key] = params[key];\n const segmentPrefix = segment.prefixSegment || \"\";\n const segmentSuffix = segment.suffixSegment || \"\";\n if (leaveParams) {\n const value = encodeParam(segment.value);\n return `${segmentPrefix}${segment.value}${value ?? \"\"}${segmentSuffix}`;\n }\n return `${segmentPrefix}${encodeParam(key) ?? \"undefined\"}${segmentSuffix}`;\n }\n if (segment.type === SEGMENT_TYPE_OPTIONAL_PARAM) {\n const key = segment.value.substring(1);\n const segmentPrefix = segment.prefixSegment || \"\";\n const segmentSuffix = segment.suffixSegment || \"\";\n if (!(key in params) || params[key] == null) {\n if (leaveWildcards) {\n return `${segmentPrefix}${key}${segmentSuffix}`;\n }\n if (segmentPrefix || segmentSuffix) {\n return `${segmentPrefix}${segmentSuffix}`;\n }\n return void 0;\n }\n usedParams[key] = params[key];\n if (leaveParams) {\n const value = encodeParam(segment.value);\n return `${segmentPrefix}${segment.value}${value ?? \"\"}${segmentSuffix}`;\n }\n if (leaveWildcards) {\n return `${segmentPrefix}${key}${encodeParam(key) ?? \"\"}${segmentSuffix}`;\n }\n return `${segmentPrefix}${encodeParam(key) ?? \"\"}${segmentSuffix}`;\n }\n return segment.value;\n })\n );\n return { usedParams, interpolatedPath, isMissingParams };\n}\nfunction encodePathParam(value, decodeCharMap) {\n let encoded = encodeURIComponent(value);\n if (decodeCharMap) {\n for (const [encodedChar, char] of decodeCharMap) {\n encoded = encoded.replaceAll(encodedChar, char);\n }\n }\n return encoded;\n}\nfunction matchPathname(basepath, currentPathname, matchLocation, parseCache) {\n const pathParams = matchByPath(\n basepath,\n currentPathname,\n matchLocation,\n parseCache\n );\n if (matchLocation.to && !pathParams) {\n return;\n }\n return pathParams ?? {};\n}\nfunction removeBasepath(basepath, pathname, caseSensitive = false) {\n const normalizedBasepath = caseSensitive ? basepath : basepath.toLowerCase();\n const normalizedPathname = caseSensitive ? pathname : pathname.toLowerCase();\n switch (true) {\n // default behaviour is to serve app from the root - pathname\n // left untouched\n case normalizedBasepath === \"/\":\n return pathname;\n // shortcut for removing the basepath if it matches the pathname\n case normalizedPathname === normalizedBasepath:\n return \"\";\n // in case pathname is shorter than basepath - there is\n // nothing to remove\n case pathname.length < basepath.length:\n return pathname;\n // avoid matching partial segments - strict equality handled\n // earlier, otherwise, basepath separated from pathname with\n // separator, therefore lack of separator means partial\n // segment match (`/app` should not match `/application`)\n case normalizedPathname[normalizedBasepath.length] !== \"/\":\n return pathname;\n // remove the basepath from the pathname if it starts with it\n case normalizedPathname.startsWith(normalizedBasepath):\n return pathname.slice(basepath.length);\n // otherwise, return the pathname as is\n default:\n return pathname;\n }\n}\nfunction matchByPath(basepath, from, {\n to,\n fuzzy,\n caseSensitive\n}, parseCache) {\n if (basepath !== \"/\" && !from.startsWith(basepath)) {\n return void 0;\n }\n from = removeBasepath(basepath, from, caseSensitive);\n to = removeBasepath(basepath, `${to ?? \"$\"}`, caseSensitive);\n const baseSegments = parsePathname(\n from.startsWith(\"/\") ? from : `/${from}`,\n parseCache\n );\n const routeSegments = parsePathname(\n to.startsWith(\"/\") ? to : `/${to}`,\n parseCache\n );\n const params = {};\n const result = isMatch(\n baseSegments,\n routeSegments,\n params,\n fuzzy,\n caseSensitive\n );\n return result ? params : void 0;\n}\nfunction isMatch(baseSegments, routeSegments, params, fuzzy, caseSensitive) {\n var _a, _b, _c;\n let baseIndex = 0;\n let routeIndex = 0;\n while (baseIndex < baseSegments.length || routeIndex < routeSegments.length) {\n const baseSegment = baseSegments[baseIndex];\n const routeSegment = routeSegments[routeIndex];\n if (routeSegment) {\n if (routeSegment.type === SEGMENT_TYPE_WILDCARD) {\n const remainingBaseSegments = baseSegments.slice(baseIndex);\n let _splat;\n if (routeSegment.prefixSegment || routeSegment.suffixSegment) {\n if (!baseSegment) return false;\n const prefix = routeSegment.prefixSegment || \"\";\n const suffix = routeSegment.suffixSegment || \"\";\n const baseValue = baseSegment.value;\n if (\"prefixSegment\" in routeSegment) {\n if (!baseValue.startsWith(prefix)) {\n return false;\n }\n }\n if (\"suffixSegment\" in routeSegment) {\n if (!((_a = baseSegments[baseSegments.length - 1]) == null ? void 0 : _a.value.endsWith(suffix))) {\n return false;\n }\n }\n let rejoinedSplat = decodeURI(\n joinPaths(remainingBaseSegments.map((d) => d.value))\n );\n if (prefix && rejoinedSplat.startsWith(prefix)) {\n rejoinedSplat = rejoinedSplat.slice(prefix.length);\n }\n if (suffix && rejoinedSplat.endsWith(suffix)) {\n rejoinedSplat = rejoinedSplat.slice(\n 0,\n rejoinedSplat.length - suffix.length\n );\n }\n _splat = rejoinedSplat;\n } else {\n _splat = decodeURI(\n joinPaths(remainingBaseSegments.map((d) => d.value))\n );\n }\n params[\"*\"] = _splat;\n params[\"_splat\"] = _splat;\n return true;\n }\n if (routeSegment.type === SEGMENT_TYPE_PATHNAME) {\n if (routeSegment.value === \"/\" && !(baseSegment == null ? void 0 : baseSegment.value)) {\n routeIndex++;\n continue;\n }\n if (baseSegment) {\n if (caseSensitive) {\n if (routeSegment.value !== baseSegment.value) {\n return false;\n }\n } else if (routeSegment.value.toLowerCase() !== baseSegment.value.toLowerCase()) {\n return false;\n }\n baseIndex++;\n routeIndex++;\n continue;\n } else {\n return false;\n }\n }\n if (routeSegment.type === SEGMENT_TYPE_PARAM) {\n if (!baseSegment) {\n return false;\n }\n if (baseSegment.value === \"/\") {\n return false;\n }\n let _paramValue = \"\";\n let matched = false;\n if (routeSegment.prefixSegment || routeSegment.suffixSegment) {\n const prefix = routeSegment.prefixSegment || \"\";\n const suffix = routeSegment.suffixSegment || \"\";\n const baseValue = baseSegment.value;\n if (prefix && !baseValue.startsWith(prefix)) {\n return false;\n }\n if (suffix && !baseValue.endsWith(suffix)) {\n return false;\n }\n let paramValue = baseValue;\n if (prefix && paramValue.startsWith(prefix)) {\n paramValue = paramValue.slice(prefix.length);\n }\n if (suffix && paramValue.endsWith(suffix)) {\n paramValue = paramValue.slice(0, paramValue.length - suffix.length);\n }\n _paramValue = decodeURIComponent(paramValue);\n matched = true;\n } else {\n _paramValue = decodeURIComponent(baseSegment.value);\n matched = true;\n }\n if (matched) {\n params[routeSegment.value.substring(1)] = _paramValue;\n baseIndex++;\n }\n routeIndex++;\n continue;\n }\n if (routeSegment.type === SEGMENT_TYPE_OPTIONAL_PARAM) {\n if (!baseSegment) {\n routeIndex++;\n continue;\n }\n if (baseSegment.value === \"/\") {\n routeIndex++;\n continue;\n }\n let _paramValue = \"\";\n let matched = false;\n if (routeSegment.prefixSegment || routeSegment.suffixSegment) {\n const prefix = routeSegment.prefixSegment || \"\";\n const suffix = routeSegment.suffixSegment || \"\";\n const baseValue = baseSegment.value;\n if ((!prefix || baseValue.startsWith(prefix)) && (!suffix || baseValue.endsWith(suffix))) {\n let paramValue = baseValue;\n if (prefix && paramValue.startsWith(prefix)) {\n paramValue = paramValue.slice(prefix.length);\n }\n if (suffix && paramValue.endsWith(suffix)) {\n paramValue = paramValue.slice(\n 0,\n paramValue.length - suffix.length\n );\n }\n _paramValue = decodeURIComponent(paramValue);\n matched = true;\n }\n } else {\n let shouldMatchOptional = true;\n for (let lookAhead = routeIndex + 1; lookAhead < routeSegments.length; lookAhead++) {\n const futureRouteSegment = routeSegments[lookAhead];\n if ((futureRouteSegment == null ? void 0 : futureRouteSegment.type) === SEGMENT_TYPE_PATHNAME && futureRouteSegment.value === baseSegment.value) {\n shouldMatchOptional = false;\n break;\n }\n if ((futureRouteSegment == null ? void 0 : futureRouteSegment.type) === SEGMENT_TYPE_PARAM || (futureRouteSegment == null ? void 0 : futureRouteSegment.type) === SEGMENT_TYPE_WILDCARD) {\n break;\n }\n }\n if (shouldMatchOptional) {\n _paramValue = decodeURIComponent(baseSegment.value);\n matched = true;\n }\n }\n if (matched) {\n params[routeSegment.value.substring(1)] = _paramValue;\n baseIndex++;\n }\n routeIndex++;\n continue;\n }\n }\n if (baseIndex < baseSegments.length && routeIndex >= routeSegments.length) {\n params[\"**\"] = joinPaths(\n baseSegments.slice(baseIndex).map((d) => d.value)\n );\n return !!fuzzy && ((_b = routeSegments[routeSegments.length - 1]) == null ? void 0 : _b.value) !== \"/\";\n }\n if (routeIndex < routeSegments.length && baseIndex >= baseSegments.length) {\n for (let i = routeIndex; i < routeSegments.length; i++) {\n if (((_c = routeSegments[i]) == null ? void 0 : _c.type) !== SEGMENT_TYPE_OPTIONAL_PARAM) {\n return false;\n }\n }\n break;\n }\n break;\n }\n return true;\n}\nexport {\n SEGMENT_TYPE_OPTIONAL_PARAM,\n SEGMENT_TYPE_PARAM,\n SEGMENT_TYPE_PATHNAME,\n SEGMENT_TYPE_WILDCARD,\n cleanPath,\n exactPathTest,\n interpolatePath,\n joinPaths,\n matchByPath,\n matchPathname,\n parsePathname,\n removeBasepath,\n removeTrailingSlash,\n resolvePath,\n trimPath,\n trimPathLeft,\n trimPathRight\n};\n//# sourceMappingURL=path.js.map\n","function notFound(options = {}) {\n options.isNotFound = true;\n if (options.throw) throw options;\n return options;\n}\nfunction isNotFound(obj) {\n return !!(obj == null ? void 0 : obj.isNotFound);\n}\nexport {\n isNotFound,\n notFound\n};\n//# sourceMappingURL=not-found.js.map\n","import { functionalUpdate } from \"./utils.js\";\nfunction getSafeSessionStorage() {\n try {\n if (typeof window !== \"undefined\" && typeof window.sessionStorage === \"object\") {\n return window.sessionStorage;\n }\n } catch {\n return void 0;\n }\n return void 0;\n}\nconst storageKey = \"tsr-scroll-restoration-v1_3\";\nconst throttle = (fn, wait) => {\n let timeout;\n return (...args) => {\n if (!timeout) {\n timeout = setTimeout(() => {\n fn(...args);\n timeout = null;\n }, wait);\n }\n };\n};\nfunction createScrollRestorationCache() {\n const safeSessionStorage = getSafeSessionStorage();\n if (!safeSessionStorage) {\n return void 0;\n }\n const persistedState = safeSessionStorage.getItem(storageKey);\n let state = persistedState ? JSON.parse(persistedState) : {};\n return {\n state,\n // This setter is simply to make sure that we set the sessionStorage right\n // after the state is updated. It doesn't necessarily need to be a functional\n // update.\n set: (updater) => (state = functionalUpdate(updater, state) || state, safeSessionStorage.setItem(storageKey, JSON.stringify(state)))\n };\n}\nconst scrollRestorationCache = createScrollRestorationCache();\nconst defaultGetScrollRestorationKey = (location) => {\n return location.state.__TSR_key || location.href;\n};\nfunction getCssSelector(el) {\n const path = [];\n let parent;\n while (parent = el.parentNode) {\n path.unshift(\n `${el.tagName}:nth-child(${[].indexOf.call(parent.children, el) + 1})`\n );\n el = parent;\n }\n return `${path.join(\" > \")}`.toLowerCase();\n}\nlet ignoreScroll = false;\nfunction restoreScroll({\n storageKey: storageKey2,\n key,\n behavior,\n shouldScrollRestoration,\n scrollToTopSelectors,\n location\n}) {\n var _a;\n let byKey;\n try {\n byKey = JSON.parse(sessionStorage.getItem(storageKey2) || \"{}\");\n } catch (error) {\n console.error(error);\n return;\n }\n const resolvedKey = key || ((_a = window.history.state) == null ? void 0 : _a.key);\n const elementEntries = byKey[resolvedKey];\n ignoreScroll = true;\n (() => {\n if (shouldScrollRestoration && elementEntries && Object.keys(elementEntries).length > 0) {\n for (const elementSelector in elementEntries) {\n const entry = elementEntries[elementSelector];\n if (elementSelector === \"window\") {\n window.scrollTo({\n top: entry.scrollY,\n left: entry.scrollX,\n behavior\n });\n } else if (elementSelector) {\n const element = document.querySelector(elementSelector);\n if (element) {\n element.scrollLeft = entry.scrollX;\n element.scrollTop = entry.scrollY;\n }\n }\n }\n return;\n }\n const hash = (location ?? window.location).hash.split(\"#\")[1];\n if (hash) {\n const hashScrollIntoViewOptions = (window.history.state || {}).__hashScrollIntoViewOptions ?? true;\n if (hashScrollIntoViewOptions) {\n const el = document.getElementById(hash);\n if (el) {\n el.scrollIntoView(hashScrollIntoViewOptions);\n }\n }\n return;\n }\n [\n \"window\",\n ...(scrollToTopSelectors == null ? void 0 : scrollToTopSelectors.filter((d) => d !== \"window\")) ?? []\n ].forEach((selector) => {\n const element = selector === \"window\" ? window : typeof selector === \"function\" ? selector() : document.querySelector(selector);\n if (element) {\n element.scrollTo({\n top: 0,\n left: 0,\n behavior\n });\n }\n });\n })();\n ignoreScroll = false;\n}\nfunction setupScrollRestoration(router, force) {\n if (scrollRestorationCache === void 0) {\n return;\n }\n const shouldScrollRestoration = force ?? router.options.scrollRestoration ?? false;\n if (shouldScrollRestoration) {\n router.isScrollRestoring = true;\n }\n if (typeof document === \"undefined\" || router.isScrollRestorationSetup) {\n return;\n }\n router.isScrollRestorationSetup = true;\n ignoreScroll = false;\n const getKey = router.options.getScrollRestorationKey || defaultGetScrollRestorationKey;\n window.history.scrollRestoration = \"manual\";\n const onScroll = (event) => {\n if (ignoreScroll || !router.isScrollRestoring) {\n return;\n }\n let elementSelector = \"\";\n if (event.target === document || event.target === window) {\n elementSelector = \"window\";\n } else {\n const attrId = event.target.getAttribute(\n \"data-scroll-restoration-id\"\n );\n if (attrId) {\n elementSelector = `[data-scroll-restoration-id=\"${attrId}\"]`;\n } else {\n elementSelector = getCssSelector(event.target);\n }\n }\n const restoreKey = getKey(router.state.location);\n scrollRestorationCache.set((state) => {\n const keyEntry = state[restoreKey] = state[restoreKey] || {};\n const elementEntry = keyEntry[elementSelector] = keyEntry[elementSelector] || {};\n if (elementSelector === \"window\") {\n elementEntry.scrollX = window.scrollX || 0;\n elementEntry.scrollY = window.scrollY || 0;\n } else if (elementSelector) {\n const element = document.querySelector(elementSelector);\n if (element) {\n elementEntry.scrollX = element.scrollLeft || 0;\n elementEntry.scrollY = element.scrollTop || 0;\n }\n }\n return state;\n });\n };\n if (typeof document !== \"undefined\") {\n document.addEventListener(\"scroll\", throttle(onScroll, 100), true);\n }\n router.subscribe(\"onRendered\", (event) => {\n const cacheKey = getKey(event.toLocation);\n if (!router.resetNextScroll) {\n router.resetNextScroll = true;\n return;\n }\n restoreScroll({\n storageKey,\n key: cacheKey,\n behavior: router.options.scrollRestorationBehavior,\n shouldScrollRestoration: router.isScrollRestoring,\n scrollToTopSelectors: router.options.scrollToTopSelectors,\n location: router.history.location\n });\n if (router.isScrollRestoring) {\n scrollRestorationCache.set((state) => {\n state[cacheKey] = state[cacheKey] || {};\n return state;\n });\n }\n });\n}\nfunction handleHashScroll(router) {\n if (typeof document !== \"undefined\" && document.querySelector) {\n const hashScrollIntoViewOptions = router.state.location.state.__hashScrollIntoViewOptions ?? true;\n if (hashScrollIntoViewOptions && router.state.location.hash !== \"\") {\n const el = document.getElementById(router.state.location.hash);\n if (el) {\n el.scrollIntoView(hashScrollIntoViewOptions);\n }\n }\n }\n}\nexport {\n defaultGetScrollRestorationKey,\n getCssSelector,\n handleHashScroll,\n restoreScroll,\n scrollRestorationCache,\n setupScrollRestoration,\n storageKey\n};\n//# sourceMappingURL=scroll-restoration.js.map\n","function encode(obj, pfx) {\n const normalizedObject = Object.entries(obj).flatMap(([key, value]) => {\n if (Array.isArray(value)) {\n return value.map((v) => [key, String(v)]);\n } else {\n return [[key, String(value)]];\n }\n });\n const searchParams = new URLSearchParams(normalizedObject);\n return (pfx || \"\") + searchParams.toString();\n}\nfunction toValue(str) {\n if (!str) return \"\";\n if (str === \"false\") return false;\n if (str === \"true\") return true;\n return +str * 0 === 0 && +str + \"\" === str ? +str : str;\n}\nfunction decode(str, pfx) {\n const searchParamsPart = pfx ? str.slice(pfx.length) : str;\n const searchParams = new URLSearchParams(searchParamsPart);\n const entries = [...searchParams.entries()];\n return entries.reduce((acc, [key, value]) => {\n const previousValue = acc[key];\n if (previousValue == null) {\n acc[key] = toValue(value);\n } else {\n acc[key] = Array.isArray(previousValue) ? [...previousValue, toValue(value)] : [previousValue, toValue(value)];\n }\n return acc;\n }, {});\n}\nexport {\n decode,\n encode\n};\n//# sourceMappingURL=qss.js.map\n","import { decode, encode } from \"./qss.js\";\nconst defaultParseSearch = parseSearchWith(JSON.parse);\nconst defaultStringifySearch = stringifySearchWith(\n JSON.stringify,\n JSON.parse\n);\nfunction parseSearchWith(parser) {\n return (searchStr) => {\n if (searchStr.substring(0, 1) === \"?\") {\n searchStr = searchStr.substring(1);\n }\n const query = decode(searchStr);\n for (const key in query) {\n const value = query[key];\n if (typeof value === \"string\") {\n try {\n query[key] = parser(value);\n } catch (err) {\n }\n }\n }\n return query;\n };\n}\nfunction stringifySearchWith(stringify, parser) {\n function stringifyValue(val) {\n if (typeof val === \"object\" && val !== null) {\n try {\n return stringify(val);\n } catch (err) {\n }\n } else if (typeof val === \"string\" && typeof parser === \"function\") {\n try {\n parser(val);\n return stringify(val);\n } catch (err) {\n }\n }\n return val;\n }\n return (search) => {\n search = { ...search };\n Object.keys(search).forEach((key) => {\n const val = search[key];\n if (typeof val === \"undefined\" || val === void 0) {\n delete search[key];\n } else {\n search[key] = stringifyValue(val);\n }\n });\n const searchStr = encode(search).toString();\n return searchStr ? `?${searchStr}` : \"\";\n };\n}\nexport {\n defaultParseSearch,\n defaultStringifySearch,\n parseSearchWith,\n stringifySearchWith\n};\n//# sourceMappingURL=searchParams.js.map\n","const rootRouteId = \"__root__\";\nexport {\n rootRouteId\n};\n//# sourceMappingURL=root.js.map\n","function redirect(opts) {\n opts.statusCode = opts.statusCode || opts.code || 307;\n if (!opts.reloadDocument) {\n try {\n new URL(`${opts.href}`);\n opts.reloadDocument = true;\n } catch {\n }\n }\n const headers = new Headers(opts.headers || {});\n if (opts.href && headers.get(\"Location\") === null) {\n headers.set(\"Location\", opts.href);\n }\n const response = new Response(null, {\n status: opts.statusCode,\n headers\n });\n response.options = opts;\n if (opts.throw) {\n throw response;\n }\n return response;\n}\nfunction isRedirect(obj) {\n return obj instanceof Response && !!obj.options;\n}\nfunction isResolvedRedirect(obj) {\n return isRedirect(obj) && !!obj.options.href;\n}\nfunction parseRedirect(obj) {\n if (typeof obj === \"object\" && obj.isSerializedRedirect) {\n return redirect(obj);\n }\n return void 0;\n}\nexport {\n isRedirect,\n isResolvedRedirect,\n parseRedirect,\n redirect\n};\n//# sourceMappingURL=redirect.js.map\n","function createLRUCache(max) {\n const cache = /* @__PURE__ */ new Map();\n let oldest;\n let newest;\n const touch = (entry) => {\n if (!entry.next) return;\n if (!entry.prev) {\n entry.next.prev = void 0;\n oldest = entry.next;\n entry.next = void 0;\n if (newest) {\n entry.prev = newest;\n newest.next = entry;\n }\n } else {\n entry.prev.next = entry.next;\n entry.next.prev = entry.prev;\n entry.next = void 0;\n if (newest) {\n newest.next = entry;\n entry.prev = newest;\n }\n }\n newest = entry;\n };\n return {\n get(key) {\n const entry = cache.get(key);\n if (!entry) return void 0;\n touch(entry);\n return entry.value;\n },\n set(key, value) {\n if (cache.size >= max && oldest) {\n const toDelete = oldest;\n cache.delete(toDelete.key);\n if (toDelete.next) {\n oldest = toDelete.next;\n toDelete.next.prev = void 0;\n }\n if (toDelete === newest) {\n newest = void 0;\n }\n }\n const existing = cache.get(key);\n if (existing) {\n existing.value = value;\n touch(existing);\n } else {\n const entry = { key, value, prev: newest };\n if (newest) newest.next = entry;\n newest = entry;\n if (!oldest) oldest = entry;\n cache.set(key, entry);\n }\n }\n };\n}\nexport {\n createLRUCache\n};\n//# sourceMappingURL=lru-cache.js.map\n","import { Store, batch } from \"@tanstack/store\";\nimport { createMemoryHistory, createBrowserHistory, parseHref } from \"@tanstack/history\";\nimport invariant from \"tiny-invariant\";\nimport { pick, createControlledPromise, deepEqual, replaceEqualDeep, last, functionalUpdate } from \"./utils.js\";\nimport { trimPath, resolvePath, cleanPath, matchPathname, trimPathRight, interpolatePath, joinPaths, trimPathLeft, parsePathname, SEGMENT_TYPE_PARAM, SEGMENT_TYPE_OPTIONAL_PARAM, SEGMENT_TYPE_WILDCARD, SEGMENT_TYPE_PATHNAME } from \"./path.js\";\nimport { isNotFound } from \"./not-found.js\";\nimport { setupScrollRestoration } from \"./scroll-restoration.js\";\nimport { defaultParseSearch, defaultStringifySearch } from \"./searchParams.js\";\nimport { rootRouteId } from \"./root.js\";\nimport { redirect, isRedirect } from \"./redirect.js\";\nimport { createLRUCache } from \"./lru-cache.js\";\nfunction defaultSerializeError(err) {\n if (err instanceof Error) {\n const obj = {\n name: err.name,\n message: err.message\n };\n if (process.env.NODE_ENV === \"development\") {\n obj.stack = err.stack;\n }\n return obj;\n }\n return {\n data: err\n };\n}\nfunction getLocationChangeInfo(routerState) {\n const fromLocation = routerState.resolvedLocation;\n const toLocation = routerState.location;\n const pathChanged = (fromLocation == null ? void 0 : fromLocation.pathname) !== toLocation.pathname;\n const hrefChanged = (fromLocation == null ? void 0 : fromLocation.href) !== toLocation.href;\n const hashChanged = (fromLocation == null ? void 0 : fromLocation.hash) !== toLocation.hash;\n return { fromLocation, toLocation, pathChanged, hrefChanged, hashChanged };\n}\nclass RouterCore {\n /**\n * @deprecated Use the `createRouter` function instead\n */\n constructor(options) {\n this.tempLocationKey = `${Math.round(\n Math.random() * 1e7\n )}`;\n this.resetNextScroll = true;\n this.shouldViewTransition = void 0;\n this.isViewTransitionTypesSupported = void 0;\n this.subscribers = /* @__PURE__ */ new Set();\n this.isScrollRestoring = false;\n this.isScrollRestorationSetup = false;\n this.startTransition = (fn) => fn();\n this.update = (newOptions) => {\n var _a;\n if (newOptions.notFoundRoute) {\n console.warn(\n \"The notFoundRoute API is deprecated and will be removed in the next major version. See https://tanstack.com/router/v1/docs/framework/react/guide/not-found-errors#migrating-from-notfoundroute for more info.\"\n );\n }\n const previousOptions = this.options;\n this.options = {\n ...this.options,\n ...newOptions\n };\n this.isServer = this.options.isServer ?? typeof document === \"undefined\";\n this.pathParamsDecodeCharMap = this.options.pathParamsAllowedCharacters ? new Map(\n this.options.pathParamsAllowedCharacters.map((char) => [\n encodeURIComponent(char),\n char\n ])\n ) : void 0;\n if (!this.basepath || newOptions.basepath && newOptions.basepath !== previousOptions.basepath) {\n if (newOptions.basepath === void 0 || newOptions.basepath === \"\" || newOptions.basepath === \"/\") {\n this.basepath = \"/\";\n } else {\n this.basepath = `/${trimPath(newOptions.basepath)}`;\n }\n }\n if (!this.history || this.options.history && this.options.history !== this.history) {\n this.history = this.options.history ?? (this.isServer ? createMemoryHistory({\n initialEntries: [this.basepath || \"/\"]\n }) : createBrowserHistory());\n this.latestLocation = this.parseLocation();\n }\n if (this.options.routeTree !== this.routeTree) {\n this.routeTree = this.options.routeTree;\n this.buildRouteTree();\n }\n if (!this.__store) {\n this.__store = new Store(getInitialRouterState(this.latestLocation), {\n onUpdate: () => {\n this.__store.state = {\n ...this.state,\n cachedMatches: this.state.cachedMatches.filter(\n (d) => ![\"redirected\"].includes(d.status)\n )\n };\n }\n });\n setupScrollRestoration(this);\n }\n if (typeof window !== \"undefined\" && \"CSS\" in window && typeof ((_a = window.CSS) == null ? void 0 : _a.supports) === \"function\") {\n this.isViewTransitionTypesSupported = window.CSS.supports(\n \"selector(:active-view-transition-type(a)\"\n );\n }\n };\n this.buildRouteTree = () => {\n const { routesById, routesByPath, flatRoutes } = processRouteTree({\n routeTree: this.routeTree,\n initRoute: (route, i) => {\n route.init({\n originalIndex: i\n });\n }\n });\n this.routesById = routesById;\n this.routesByPath = routesByPath;\n this.flatRoutes = flatRoutes;\n const notFoundRoute = this.options.notFoundRoute;\n if (notFoundRoute) {\n notFoundRoute.init({\n originalIndex: 99999999999\n });\n this.routesById[notFoundRoute.id] = notFoundRoute;\n }\n };\n this.subscribe = (eventType, fn) => {\n const listener = {\n eventType,\n fn\n };\n this.subscribers.add(listener);\n return () => {\n this.subscribers.delete(listener);\n };\n };\n this.emit = (routerEvent) => {\n this.subscribers.forEach((listener) => {\n if (listener.eventType === routerEvent.type) {\n listener.fn(routerEvent);\n }\n });\n };\n this.parseLocation = (previousLocation, locationToParse) => {\n const parse = ({\n pathname,\n search,\n hash,\n state\n }) => {\n const parsedSearch = this.options.parseSearch(search);\n const searchStr = this.options.stringifySearch(parsedSearch);\n return {\n pathname,\n searchStr,\n search: replaceEqualDeep(previousLocation == null ? void 0 : previousLocation.search, parsedSearch),\n hash: hash.split(\"#\").reverse()[0] ?? \"\",\n href: `${pathname}${searchStr}${hash}`,\n state: replaceEqualDeep(previousLocation == null ? void 0 : previousLocation.state, state)\n };\n };\n const location = parse(locationToParse ?? this.history.location);\n const { __tempLocation, __tempKey } = location.state;\n if (__tempLocation && (!__tempKey || __tempKey === this.tempLocationKey)) {\n const parsedTempLocation = parse(__tempLocation);\n parsedTempLocation.state.key = location.state.key;\n parsedTempLocation.state.__TSR_key = location.state.__TSR_key;\n delete parsedTempLocation.state.__tempLocation;\n return {\n ...parsedTempLocation,\n maskedLocation: location\n };\n }\n return location;\n };\n this.resolvePathWithBase = (from, path) => {\n const resolvedPath = resolvePath({\n basepath: this.basepath,\n base: from,\n to: cleanPath(path),\n trailingSlash: this.options.trailingSlash,\n caseSensitive: this.options.caseSensitive,\n parseCache: this.parsePathnameCache\n });\n return resolvedPath;\n };\n this.matchRoutes = (pathnameOrNext, locationSearchOrOpts, opts) => {\n if (typeof pathnameOrNext === \"string\") {\n return this.matchRoutesInternal(\n {\n pathname: pathnameOrNext,\n search: locationSearchOrOpts\n },\n opts\n );\n }\n return this.matchRoutesInternal(pathnameOrNext, locationSearchOrOpts);\n };\n this.parsePathnameCache = createLRUCache(1e3);\n this.getMatchedRoutes = (pathname, routePathname) => {\n return getMatchedRoutes({\n pathname,\n routePathname,\n basepath: this.basepath,\n caseSensitive: this.options.caseSensitive,\n routesByPath: this.routesByPath,\n routesById: this.routesById,\n flatRoutes: this.flatRoutes,\n parseCache: this.parsePathnameCache\n });\n };\n this.cancelMatch = (id) => {\n const match = this.getMatch(id);\n if (!match) return;\n match.abortController.abort();\n this.updateMatch(id, (prev) => {\n clearTimeout(prev.pendingTimeout);\n return {\n ...prev,\n pendingTimeout: void 0\n };\n });\n };\n this.cancelMatches = () => {\n var _a;\n (_a = this.state.pendingMatches) == null ? void 0 : _a.forEach((match) => {\n this.cancelMatch(match.id);\n });\n };\n this.buildLocation = (opts) => {\n const build = (dest = {}) => {\n var _a;\n const currentLocation = dest._fromLocation || this.latestLocation;\n const allCurrentLocationMatches = this.matchRoutes(currentLocation, {\n _buildLocation: true\n });\n const lastMatch = last(allCurrentLocationMatches);\n let fromPath = lastMatch.fullPath;\n const toPath = dest.to ? this.resolvePathWithBase(fromPath, `${dest.to}`) : this.resolvePathWithBase(fromPath, \".\");\n const routeIsChanging = !!dest.to && !comparePaths(dest.to.toString(), fromPath) && !comparePaths(toPath, fromPath);\n if (dest.unsafeRelative === \"path\") {\n fromPath = currentLocation.pathname;\n } else if (routeIsChanging && dest.from) {\n fromPath = dest.from;\n if (process.env.NODE_ENV !== \"production\" && dest._isNavigate) {\n const allFromMatches = this.getMatchedRoutes(\n dest.from,\n void 0\n ).matchedRoutes;\n const matchedFrom = [...allCurrentLocationMatches].reverse().find((d) => {\n return comparePaths(d.fullPath, fromPath);\n });\n const matchedCurrent = [...allFromMatches].reverse().find((d) => {\n return comparePaths(d.fullPath, currentLocation.pathname);\n });\n if (!matchedFrom && !matchedCurrent) {\n console.warn(`Could not find match for from: ${fromPath}`);\n }\n }\n }\n const fromSearch = lastMatch.search;\n const fromParams = { ...lastMatch.params };\n const nextTo = dest.to ? this.resolvePathWithBase(fromPath, `${dest.to}`) : this.resolvePathWithBase(fromPath, \".\");\n let nextParams = dest.params === false || dest.params === null ? {} : (dest.params ?? true) === true ? fromParams : {\n ...fromParams,\n ...functionalUpdate(dest.params, fromParams)\n };\n const interpolatedNextTo = interpolatePath({\n path: nextTo,\n params: nextParams ?? {},\n parseCache: this.parsePathnameCache\n }).interpolatedPath;\n const destRoutes = this.matchRoutes(\n interpolatedNextTo,\n {},\n {\n _buildLocation: true\n }\n ).map((d) => this.looseRoutesById[d.routeId]);\n if (Object.keys(nextParams).length > 0) {\n destRoutes.map((route) => {\n var _a2;\n return ((_a2 = route.options.params) == null ? void 0 : _a2.stringify) ?? route.options.stringifyParams;\n }).filter(Boolean).forEach((fn) => {\n nextParams = { ...nextParams, ...fn(nextParams) };\n });\n }\n const nextPathname = interpolatePath({\n // Use the original template path for interpolation\n // This preserves the original parameter syntax including optional parameters\n path: nextTo,\n params: nextParams ?? {},\n leaveWildcards: false,\n leaveParams: opts.leaveParams,\n decodeCharMap: this.pathParamsDecodeCharMap,\n parseCache: this.parsePathnameCache\n }).interpolatedPath;\n let nextSearch = fromSearch;\n if (opts._includeValidateSearch && ((_a = this.options.search) == null ? void 0 : _a.strict)) {\n let validatedSearch = {};\n destRoutes.forEach((route) => {\n try {\n if (route.options.validateSearch) {\n validatedSearch = {\n ...validatedSearch,\n ...validateSearch(route.options.validateSearch, {\n ...validatedSearch,\n ...nextSearch\n }) ?? {}\n };\n }\n } catch {\n }\n });\n nextSearch = validatedSearch;\n }\n nextSearch = applySearchMiddleware({\n search: nextSearch,\n dest,\n destRoutes,\n _includeValidateSearch: opts._includeValidateSearch\n });\n nextSearch = replaceEqualDeep(fromSearch, nextSearch);\n const searchStr = this.options.stringifySearch(nextSearch);\n const hash = dest.hash === true ? currentLocation.hash : dest.hash ? functionalUpdate(dest.hash, currentLocation.hash) : void 0;\n const hashStr = hash ? `#${hash}` : \"\";\n let nextState = dest.state === true ? currentLocation.state : dest.state ? functionalUpdate(dest.state, currentLocation.state) : {};\n nextState = replaceEqualDeep(currentLocation.state, nextState);\n return {\n pathname: nextPathname,\n search: nextSearch,\n searchStr,\n state: nextState,\n hash: hash ?? \"\",\n href: `${nextPathname}${searchStr}${hashStr}`,\n unmaskOnReload: dest.unmaskOnReload\n };\n };\n const buildWithMatches = (dest = {}, maskedDest) => {\n var _a;\n const next = build(dest);\n let maskedNext = maskedDest ? build(maskedDest) : void 0;\n if (!maskedNext) {\n let params = {};\n const foundMask = (_a = this.options.routeMasks) == null ? void 0 : _a.find((d) => {\n const match = matchPathname(\n this.basepath,\n next.pathname,\n {\n to: d.from,\n caseSensitive: false,\n fuzzy: false\n },\n this.parsePathnameCache\n );\n if (match) {\n params = match;\n return true;\n }\n return false;\n });\n if (foundMask) {\n const { from: _from, ...maskProps } = foundMask;\n maskedDest = {\n ...pick(opts, [\"from\"]),\n ...maskProps,\n params\n };\n maskedNext = build(maskedDest);\n }\n }\n if (maskedNext) {\n const maskedFinal = build(maskedDest);\n next.maskedLocation = maskedFinal;\n }\n return next;\n };\n if (opts.mask) {\n return buildWithMatches(opts, {\n ...pick(opts, [\"from\"]),\n ...opts.mask\n });\n }\n return buildWithMatches(opts);\n };\n this.commitLocation = ({\n viewTransition,\n ignoreBlocker,\n ...next\n }) => {\n const isSameState = () => {\n const ignoredProps = [\n \"key\",\n // TODO: Remove in v2 - use __TSR_key instead\n \"__TSR_key\",\n \"__TSR_index\",\n \"__hashScrollIntoViewOptions\"\n ];\n ignoredProps.forEach((prop) => {\n next.state[prop] = this.latestLocation.state[prop];\n });\n const isEqual = deepEqual(next.state, this.latestLocation.state);\n ignoredProps.forEach((prop) => {\n delete next.state[prop];\n });\n return isEqual;\n };\n const isSameUrl = this.latestLocation.href === next.href;\n const previousCommitPromise = this.commitLocationPromise;\n this.commitLocationPromise = createControlledPromise(() => {\n previousCommitPromise == null ? void 0 : previousCommitPromise.resolve();\n });\n if (isSameUrl && isSameState()) {\n this.load();\n } else {\n let { maskedLocation, hashScrollIntoView, ...nextHistory } = next;\n if (maskedLocation) {\n nextHistory = {\n ...maskedLocation,\n state: {\n ...maskedLocation.state,\n __tempKey: void 0,\n __tempLocation: {\n ...nextHistory,\n search: nextHistory.searchStr,\n state: {\n ...nextHistory.state,\n __tempKey: void 0,\n __tempLocation: void 0,\n __TSR_key: void 0,\n key: void 0\n // TODO: Remove in v2 - use __TSR_key instead\n }\n }\n }\n };\n if (nextHistory.unmaskOnReload ?? this.options.unmaskOnReload ?? false) {\n nextHistory.state.__tempKey = this.tempLocationKey;\n }\n }\n nextHistory.state.__hashScrollIntoViewOptions = hashScrollIntoView ?? this.options.defaultHashScrollIntoView ?? true;\n this.shouldViewTransition = viewTransition;\n this.history[next.replace ? \"replace\" : \"push\"](\n nextHistory.href,\n nextHistory.state,\n { ignoreBlocker }\n );\n }\n this.resetNextScroll = next.resetScroll ?? true;\n if (!this.history.subscribers.size) {\n this.load();\n }\n return this.commitLocationPromise;\n };\n this.buildAndCommitLocation = ({\n replace,\n resetScroll,\n hashScrollIntoView,\n viewTransition,\n ignoreBlocker,\n href,\n ...rest\n } = {}) => {\n if (href) {\n const currentIndex = this.history.location.state.__TSR_index;\n const parsed = parseHref(href, {\n __TSR_index: replace ? currentIndex : currentIndex + 1\n });\n rest.to = parsed.pathname;\n rest.search = this.options.parseSearch(parsed.search);\n rest.hash = parsed.hash.slice(1);\n }\n const location = this.buildLocation({\n ...rest,\n _includeValidateSearch: true\n });\n return this.commitLocation({\n ...location,\n viewTransition,\n replace,\n resetScroll,\n hashScrollIntoView,\n ignoreBlocker\n });\n };\n this.navigate = ({ to, reloadDocument, href, ...rest }) => {\n if (!reloadDocument && href) {\n try {\n new URL(`${href}`);\n reloadDocument = true;\n } catch {\n }\n }\n if (reloadDocument) {\n if (!href) {\n const location = this.buildLocation({ to, ...rest });\n href = this.history.createHref(location.href);\n }\n if (rest.replace) {\n window.location.replace(href);\n } else {\n window.location.href = href;\n }\n return Promise.resolve();\n }\n return this.buildAndCommitLocation({\n ...rest,\n href,\n to,\n _isNavigate: true\n });\n };\n this.beforeLoad = () => {\n this.cancelMatches();\n this.latestLocation = this.parseLocation(this.latestLocation);\n if (this.isServer) {\n const nextLocation = this.buildLocation({\n to: this.latestLocation.pathname,\n search: true,\n params: true,\n hash: true,\n state: true,\n _includeValidateSearch: true\n });\n const normalizeUrl = (url) => {\n try {\n return encodeURI(decodeURI(url));\n } catch {\n return url;\n }\n };\n if (trimPath(normalizeUrl(this.latestLocation.href)) !== trimPath(normalizeUrl(nextLocation.href))) {\n throw redirect({ href: nextLocation.href });\n }\n }\n const pendingMatches = this.matchRoutes(this.latestLocation);\n this.__store.setState((s) => ({\n ...s,\n status: \"pending\",\n statusCode: 200,\n isLoading: true,\n location: this.latestLocation,\n pendingMatches,\n // If a cached moved to pendingMatches, remove it from cachedMatches\n cachedMatches: s.cachedMatches.filter(\n (d) => !pendingMatches.some((e) => e.id === d.id)\n )\n }));\n };\n this.load = async (opts) => {\n let redirect2;\n let notFound;\n let loadPromise;\n loadPromise = new Promise((resolve) => {\n this.startTransition(async () => {\n var _a;\n try {\n this.beforeLoad();\n const next = this.latestLocation;\n const prevLocation = this.state.resolvedLocation;\n if (!this.state.redirect) {\n this.emit({\n type: \"onBeforeNavigate\",\n ...getLocationChangeInfo({\n resolvedLocation: prevLocation,\n location: next\n })\n });\n }\n this.emit({\n type: \"onBeforeLoad\",\n ...getLocationChangeInfo({\n resolvedLocation: prevLocation,\n location: next\n })\n });\n await this.loadMatches({\n sync: opts == null ? void 0 : opts.sync,\n matches: this.state.pendingMatches,\n location: next,\n // eslint-disable-next-line @typescript-eslint/require-await\n onReady: async () => {\n this.startViewTransition(async () => {\n let exitingMatches;\n let enteringMatches;\n let stayingMatches;\n batch(() => {\n this.__store.setState((s) => {\n const previousMatches = s.matches;\n const newMatches = s.pendingMatches || s.matches;\n exitingMatches = previousMatches.filter(\n (match) => !newMatches.some((d) => d.id === match.id)\n );\n enteringMatches = newMatches.filter(\n (match) => !previousMatches.some((d) => d.id === match.id)\n );\n stayingMatches = previousMatches.filter(\n (match) => newMatches.some((d) => d.id === match.id)\n );\n return {\n ...s,\n isLoading: false,\n loadedAt: Date.now(),\n matches: newMatches,\n pendingMatches: void 0,\n cachedMatches: [\n ...s.cachedMatches,\n ...exitingMatches.filter((d) => d.status !== \"error\")\n ]\n };\n });\n this.clearExpiredCache();\n });\n [\n [exitingMatches, \"onLeave\"],\n [enteringMatches, \"onEnter\"],\n [stayingMatches, \"onStay\"]\n ].forEach(([matches, hook]) => {\n matches.forEach((match) => {\n var _a2, _b;\n (_b = (_a2 = this.looseRoutesById[match.routeId].options)[hook]) == null ? void 0 : _b.call(_a2, match);\n });\n });\n });\n }\n });\n } catch (err) {\n if (isRedirect(err)) {\n redirect2 = err;\n if (!this.isServer) {\n this.navigate({\n ...redirect2.options,\n replace: true,\n ignoreBlocker: true\n });\n }\n } else if (isNotFound(err)) {\n notFound = err;\n }\n this.__store.setState((s) => ({\n ...s,\n statusCode: redirect2 ? redirect2.status : notFound ? 404 : s.matches.some((d) => d.status === \"error\") ? 500 : 200,\n redirect: redirect2\n }));\n }\n if (this.latestLoadPromise === loadPromise) {\n (_a = this.commitLocationPromise) == null ? void 0 : _a.resolve();\n this.latestLoadPromise = void 0;\n this.commitLocationPromise = void 0;\n }\n resolve();\n });\n });\n this.latestLoadPromise = loadPromise;\n await loadPromise;\n while (this.latestLoadPromise && loadPromise !== this.latestLoadPromise) {\n await this.latestLoadPromise;\n }\n if (this.hasNotFoundMatch()) {\n this.__store.setState((s) => ({\n ...s,\n statusCode: 404\n }));\n }\n };\n this.startViewTransition = (fn) => {\n const shouldViewTransition = this.shouldViewTransition ?? this.options.defaultViewTransition;\n delete this.shouldViewTransition;\n if (shouldViewTransition && typeof document !== \"undefined\" && \"startViewTransition\" in document && typeof document.startViewTransition === \"function\") {\n let startViewTransitionParams;\n if (typeof shouldViewTransition === \"object\" && this.isViewTransitionTypesSupported) {\n const next = this.latestLocation;\n const prevLocation = this.state.resolvedLocation;\n const resolvedViewTransitionTypes = typeof shouldViewTransition.types === \"function\" ? shouldViewTransition.types(\n getLocationChangeInfo({\n resolvedLocation: prevLocation,\n location: next\n })\n ) : shouldViewTransition.types;\n startViewTransitionParams = {\n update: fn,\n types: resolvedViewTransitionTypes\n };\n } else {\n startViewTransitionParams = fn;\n }\n document.startViewTransition(startViewTransitionParams);\n } else {\n fn();\n }\n };\n this.updateMatch = (id, updater) => {\n var _a;\n const matchesKey = ((_a = this.state.pendingMatches) == null ? void 0 : _a.some((d) => d.id === id)) ? \"pendingMatches\" : this.state.matches.some((d) => d.id === id) ? \"matches\" : this.state.cachedMatches.some((d) => d.id === id) ? \"cachedMatches\" : \"\";\n if (matchesKey) {\n this.__store.setState((s) => {\n var _a2;\n return {\n ...s,\n [matchesKey]: (_a2 = s[matchesKey]) == null ? void 0 : _a2.map((d) => d.id === id ? updater(d) : d)\n };\n });\n }\n };\n this.getMatch = (matchId) => {\n var _a;\n const findFn = (d) => d.id === matchId;\n return this.state.cachedMatches.find(findFn) ?? ((_a = this.state.pendingMatches) == null ? void 0 : _a.find(findFn)) ?? this.state.matches.find(findFn);\n };\n this.loadMatches = async ({\n location,\n matches,\n preload: allPreload,\n onReady,\n updateMatch = this.updateMatch,\n sync\n }) => {\n let firstBadMatchIndex;\n let rendered = false;\n const triggerOnReady = async () => {\n if (!rendered) {\n rendered = true;\n await (onReady == null ? void 0 : onReady());\n }\n };\n const resolvePreload = (matchId) => {\n return !!(allPreload && !this.state.matches.some((d) => d.id === matchId));\n };\n if (!this.isServer && this.state.matches.some((d) => d._forcePending)) {\n triggerOnReady();\n }\n const handleRedirectAndNotFound = (match, err) => {\n var _a, _b, _c;\n if (isRedirect(err) || isNotFound(err)) {\n if (isRedirect(err)) {\n if (err.redirectHandled) {\n if (!err.options.reloadDocument) {\n throw err;\n }\n }\n }\n (_a = match.beforeLoadPromise) == null ? void 0 : _a.resolve();\n (_b = match.loaderPromise) == null ? void 0 : _b.resolve();\n updateMatch(match.id, (prev) => ({\n ...prev,\n status: isRedirect(err) ? \"redirected\" : isNotFound(err) ? \"notFound\" : \"error\",\n isFetching: false,\n error: err,\n beforeLoadPromise: void 0,\n loaderPromise: void 0\n }));\n if (!err.routeId) {\n err.routeId = match.routeId;\n }\n (_c = match.loadPromise) == null ? void 0 : _c.resolve();\n if (isRedirect(err)) {\n rendered = true;\n err.options._fromLocation = location;\n err.redirectHandled = true;\n err = this.resolveRedirect(err);\n throw err;\n } else if (isNotFound(err)) {\n this._handleNotFound(matches, err, {\n updateMatch\n });\n throw err;\n }\n }\n };\n const shouldSkipLoader = (matchId) => {\n const match = this.getMatch(matchId);\n if (!this.isServer && match._dehydrated) {\n return true;\n }\n if (this.isServer) {\n if (match.ssr === false) {\n return true;\n }\n }\n return false;\n };\n try {\n await new Promise((resolveAll, rejectAll) => {\n ;\n (async () => {\n var _a, _b, _c, _d;\n try {\n const handleSerialError = (index, err, routerCode) => {\n var _a2, _b2;\n const { id: matchId, routeId } = matches[index];\n const route = this.looseRoutesById[routeId];\n if (err instanceof Promise) {\n throw err;\n }\n err.routerCode = routerCode;\n firstBadMatchIndex = firstBadMatchIndex ?? index;\n handleRedirectAndNotFound(this.getMatch(matchId), err);\n try {\n (_b2 = (_a2 = route.options).onError) == null ? void 0 : _b2.call(_a2, err);\n } catch (errorHandlerErr) {\n err = errorHandlerErr;\n handleRedirectAndNotFound(this.getMatch(matchId), err);\n }\n updateMatch(matchId, (prev) => {\n var _a3, _b3;\n (_a3 = prev.beforeLoadPromise) == null ? void 0 : _a3.resolve();\n (_b3 = prev.loadPromise) == null ? void 0 : _b3.resolve();\n return {\n ...prev,\n error: err,\n status: \"error\",\n isFetching: false,\n updatedAt: Date.now(),\n abortController: new AbortController(),\n beforeLoadPromise: void 0\n };\n });\n };\n for (const [index, { id: matchId, routeId }] of matches.entries()) {\n const existingMatch = this.getMatch(matchId);\n const parentMatchId = (_a = matches[index - 1]) == null ? void 0 : _a.id;\n const parentMatch = parentMatchId ? this.getMatch(parentMatchId) : void 0;\n const route = this.looseRoutesById[routeId];\n const pendingMs = route.options.pendingMs ?? this.options.defaultPendingMs;\n if (this.isServer) {\n let ssr;\n if (this.isShell()) {\n ssr = matchId === rootRouteId;\n } else {\n const defaultSsr = this.options.defaultSsr ?? true;\n if ((parentMatch == null ? void 0 : parentMatch.ssr) === false) {\n ssr = false;\n } else {\n let tempSsr;\n if (route.options.ssr === void 0) {\n tempSsr = defaultSsr;\n } else if (typeof route.options.ssr === \"function\") {\n let makeMaybe = function(value, error) {\n if (error) {\n return { status: \"error\", error };\n }\n return { status: \"success\", value };\n };\n const { search, params } = this.getMatch(matchId);\n const ssrFnContext = {\n search: makeMaybe(search, existingMatch.searchError),\n params: makeMaybe(params, existingMatch.paramsError),\n location,\n matches: matches.map((match) => ({\n index: match.index,\n pathname: match.pathname,\n fullPath: match.fullPath,\n staticData: match.staticData,\n id: match.id,\n routeId: match.routeId,\n search: makeMaybe(match.search, match.searchError),\n params: makeMaybe(match.params, match.paramsError),\n ssr: match.ssr\n }))\n };\n tempSsr = await route.options.ssr(ssrFnContext) ?? defaultSsr;\n } else {\n tempSsr = route.options.ssr;\n }\n if (tempSsr === true && (parentMatch == null ? void 0 : parentMatch.ssr) === \"data-only\") {\n ssr = \"data-only\";\n } else {\n ssr = tempSsr;\n }\n }\n }\n updateMatch(matchId, (prev) => ({\n ...prev,\n ssr\n }));\n }\n if (shouldSkipLoader(matchId)) {\n continue;\n }\n const shouldPending = !!(onReady && !this.isServer && !resolvePreload(matchId) && (route.options.loader || route.options.beforeLoad || routeNeedsPreload(route)) && typeof pendingMs === \"number\" && pendingMs !== Infinity && (route.options.pendingComponent ?? ((_b = this.options) == null ? void 0 : _b.defaultPendingComponent)));\n let executeBeforeLoad = true;\n const setupPendingTimeout = () => {\n if (shouldPending && this.getMatch(matchId).pendingTimeout === void 0) {\n const pendingTimeout = setTimeout(() => {\n try {\n triggerOnReady();\n } catch {\n }\n }, pendingMs);\n updateMatch(matchId, (prev) => ({\n ...prev,\n pendingTimeout\n }));\n }\n };\n if (\n // If we are in the middle of a load, either of these will be present\n // (not to be confused with `loadPromise`, which is always defined)\n existingMatch.beforeLoadPromise || existingMatch.loaderPromise\n ) {\n setupPendingTimeout();\n await existingMatch.beforeLoadPromise;\n const match = this.getMatch(matchId);\n if (match.status === \"error\") {\n executeBeforeLoad = true;\n } else if (match.preload && (match.status === \"redirected\" || match.status === \"notFound\")) {\n handleRedirectAndNotFound(match, match.error);\n }\n }\n if (executeBeforeLoad) {\n try {\n updateMatch(matchId, (prev) => {\n const prevLoadPromise = prev.loadPromise;\n return {\n ...prev,\n loadPromise: createControlledPromise(() => {\n prevLoadPromise == null ? void 0 : prevLoadPromise.resolve();\n }),\n beforeLoadPromise: createControlledPromise()\n };\n });\n const { paramsError, searchError } = this.getMatch(matchId);\n if (paramsError) {\n handleSerialError(index, paramsError, \"PARSE_PARAMS\");\n }\n if (searchError) {\n handleSerialError(index, searchError, \"VALIDATE_SEARCH\");\n }\n setupPendingTimeout();\n const abortController = new AbortController();\n const parentMatchContext = (parentMatch == null ? void 0 : parentMatch.context) ?? this.options.context ?? {};\n updateMatch(matchId, (prev) => ({\n ...prev,\n isFetching: \"beforeLoad\",\n fetchCount: prev.fetchCount + 1,\n abortController,\n context: {\n ...parentMatchContext,\n ...prev.__routeContext\n }\n }));\n const { search, params, context, cause } = this.getMatch(matchId);\n const preload = resolvePreload(matchId);\n const beforeLoadFnContext = {\n search,\n abortController,\n params,\n preload,\n context,\n location,\n navigate: (opts) => this.navigate({ ...opts, _fromLocation: location }),\n buildLocation: this.buildLocation,\n cause: preload ? \"preload\" : cause,\n matches\n };\n const beforeLoadContext = await ((_d = (_c = route.options).beforeLoad) == null ? void 0 : _d.call(_c, beforeLoadFnContext));\n if (isRedirect(beforeLoadContext) || isNotFound(beforeLoadContext)) {\n handleSerialError(index, beforeLoadContext, \"BEFORE_LOAD\");\n }\n updateMatch(matchId, (prev) => {\n return {\n ...prev,\n __beforeLoadContext: beforeLoadContext,\n context: {\n ...parentMatchContext,\n ...prev.__routeContext,\n ...beforeLoadContext\n },\n abortController\n };\n });\n } catch (err) {\n handleSerialError(index, err, \"BEFORE_LOAD\");\n }\n updateMatch(matchId, (prev) => {\n var _a2;\n (_a2 = prev.beforeLoadPromise) == null ? void 0 : _a2.resolve();\n return {\n ...prev,\n beforeLoadPromise: void 0,\n isFetching: false\n };\n });\n }\n }\n const validResolvedMatches = matches.slice(0, firstBadMatchIndex);\n const matchPromises = [];\n validResolvedMatches.forEach(({ id: matchId, routeId }, index) => {\n matchPromises.push(\n (async () => {\n let loaderShouldRunAsync = false;\n let loaderIsRunningAsync = false;\n const route = this.looseRoutesById[routeId];\n const executeHead = async () => {\n var _a2, _b2, _c2, _d2, _e, _f;\n const match = this.getMatch(matchId);\n if (!match) {\n return;\n }\n const assetContext = {\n matches,\n match,\n params: match.params,\n loaderData: match.loaderData\n };\n const headFnContent = await ((_b2 = (_a2 = route.options).head) == null ? void 0 : _b2.call(_a2, assetContext));\n const meta = headFnContent == null ? void 0 : headFnContent.meta;\n const links = headFnContent == null ? void 0 : headFnContent.links;\n const headScripts = headFnContent == null ? void 0 : headFnContent.scripts;\n const styles = headFnContent == null ? void 0 : headFnContent.styles;\n const scripts = await ((_d2 = (_c2 = route.options).scripts) == null ? void 0 : _d2.call(_c2, assetContext));\n const headers = await ((_f = (_e = route.options).headers) == null ? void 0 : _f.call(_e, assetContext));\n return {\n meta,\n links,\n headScripts,\n headers,\n scripts,\n styles\n };\n };\n const potentialPendingMinPromise = async () => {\n const latestMatch = this.getMatch(matchId);\n if (latestMatch.minPendingPromise) {\n await latestMatch.minPendingPromise;\n }\n };\n const prevMatch = this.getMatch(matchId);\n if (shouldSkipLoader(matchId)) {\n if (this.isServer) {\n const head = await executeHead();\n updateMatch(matchId, (prev) => ({\n ...prev,\n ...head\n }));\n return this.getMatch(matchId);\n }\n } else if (prevMatch.loaderPromise) {\n if (prevMatch.status === \"success\" && !sync && !prevMatch.preload) {\n return this.getMatch(matchId);\n }\n await prevMatch.loaderPromise;\n const match = this.getMatch(matchId);\n if (match.error) {\n handleRedirectAndNotFound(match, match.error);\n }\n } else {\n const parentMatchPromise = matchPromises[index - 1];\n const getLoaderContext = () => {\n const {\n params,\n loaderDeps,\n abortController,\n context,\n cause\n } = this.getMatch(matchId);\n const preload2 = resolvePreload(matchId);\n return {\n params,\n deps: loaderDeps,\n preload: !!preload2,\n parentMatchPromise,\n abortController,\n context,\n location,\n navigate: (opts) => this.navigate({ ...opts, _fromLocation: location }),\n cause: preload2 ? \"preload\" : cause,\n route\n };\n };\n const age = Date.now() - this.getMatch(matchId).updatedAt;\n const preload = resolvePreload(matchId);\n const staleAge = preload ? route.options.preloadStaleTime ?? this.options.defaultPreloadStaleTime ?? 3e4 : route.options.staleTime ?? this.options.defaultStaleTime ?? 0;\n const shouldReloadOption = route.options.shouldReload;\n const shouldReload = typeof shouldReloadOption === \"function\" ? shouldReloadOption(getLoaderContext()) : shouldReloadOption;\n updateMatch(matchId, (prev) => ({\n ...prev,\n loaderPromise: createControlledPromise(),\n preload: !!preload && !this.state.matches.some((d) => d.id === matchId)\n }));\n const runLoader = async () => {\n var _a2, _b2, _c2, _d2;\n try {\n try {\n if (!this.isServer || this.isServer && this.getMatch(matchId).ssr === true) {\n this.loadRouteChunk(route);\n }\n updateMatch(matchId, (prev) => ({\n ...prev,\n isFetching: \"loader\"\n }));\n const loaderData = await ((_b2 = (_a2 = route.options).loader) == null ? void 0 : _b2.call(_a2, getLoaderContext()));\n handleRedirectAndNotFound(\n this.getMatch(matchId),\n loaderData\n );\n updateMatch(matchId, (prev) => ({\n ...prev,\n loaderData\n }));\n await route._lazyPromise;\n const head = await executeHead();\n await potentialPendingMinPromise();\n await route._componentsPromise;\n updateMatch(matchId, (prev) => ({\n ...prev,\n error: void 0,\n status: \"success\",\n isFetching: false,\n updatedAt: Date.now(),\n ...head\n }));\n } catch (e) {\n let error = e;\n await potentialPendingMinPromise();\n handleRedirectAndNotFound(this.getMatch(matchId), e);\n try {\n (_d2 = (_c2 = route.options).onError) == null ? void 0 : _d2.call(_c2, e);\n } catch (onErrorError) {\n error = onErrorError;\n handleRedirectAndNotFound(\n this.getMatch(matchId),\n onErrorError\n );\n }\n const head = await executeHead();\n updateMatch(matchId, (prev) => ({\n ...prev,\n error,\n status: \"error\",\n isFetching: false,\n ...head\n }));\n }\n } catch (err) {\n const head = await executeHead();\n updateMatch(matchId, (prev) => ({\n ...prev,\n loaderPromise: void 0,\n ...head\n }));\n handleRedirectAndNotFound(this.getMatch(matchId), err);\n }\n };\n const { status, invalid } = this.getMatch(matchId);\n loaderShouldRunAsync = status === \"success\" && (invalid || (shouldReload ?? age > staleAge));\n if (preload && route.options.preload === false) {\n } else if (loaderShouldRunAsync && !sync) {\n loaderIsRunningAsync = true;\n (async () => {\n try {\n await runLoader();\n const { loaderPromise, loadPromise } = this.getMatch(matchId);\n loaderPromise == null ? void 0 : loaderPromise.resolve();\n loadPromise == null ? void 0 : loadPromise.resolve();\n updateMatch(matchId, (prev) => ({\n ...prev,\n loaderPromise: void 0\n }));\n } catch (err) {\n if (isRedirect(err)) {\n await this.navigate(err.options);\n }\n }\n })();\n } else if (status !== \"success\" || loaderShouldRunAsync && sync) {\n await runLoader();\n } else {\n const head = await executeHead();\n updateMatch(matchId, (prev) => ({\n ...prev,\n ...head\n }));\n }\n }\n if (!loaderIsRunningAsync) {\n const { loaderPromise, loadPromise } = this.getMatch(matchId);\n loaderPromise == null ? void 0 : loaderPromise.resolve();\n loadPromise == null ? void 0 : loadPromise.resolve();\n }\n updateMatch(matchId, (prev) => {\n clearTimeout(prev.pendingTimeout);\n return {\n ...prev,\n isFetching: loaderIsRunningAsync ? prev.isFetching : false,\n loaderPromise: loaderIsRunningAsync ? prev.loaderPromise : void 0,\n invalid: false,\n pendingTimeout: void 0,\n _dehydrated: void 0\n };\n });\n return this.getMatch(matchId);\n })()\n );\n });\n await Promise.all(matchPromises);\n resolveAll();\n } catch (err) {\n rejectAll(err);\n }\n })();\n });\n await triggerOnReady();\n } catch (err) {\n if (isRedirect(err) || isNotFound(err)) {\n if (isNotFound(err) && !allPreload) {\n await triggerOnReady();\n }\n throw err;\n }\n }\n return matches;\n };\n this.invalidate = (opts) => {\n const invalidate = (d) => {\n var _a;\n if (((_a = opts == null ? void 0 : opts.filter) == null ? void 0 : _a.call(opts, d)) ?? true) {\n return {\n ...d,\n invalid: true,\n ...(opts == null ? void 0 : opts.forcePending) || d.status === \"error\" ? { status: \"pending\", error: void 0 } : {}\n };\n }\n return d;\n };\n this.__store.setState((s) => {\n var _a;\n return {\n ...s,\n matches: s.matches.map(invalidate),\n cachedMatches: s.cachedMatches.map(invalidate),\n pendingMatches: (_a = s.pendingMatches) == null ? void 0 : _a.map(invalidate)\n };\n });\n this.shouldViewTransition = false;\n return this.load({ sync: opts == null ? void 0 : opts.sync });\n };\n this.resolveRedirect = (redirect2) => {\n if (!redirect2.options.href) {\n redirect2.options.href = this.buildLocation(redirect2.options).href;\n redirect2.headers.set(\"Location\", redirect2.options.href);\n }\n if (!redirect2.headers.get(\"Location\")) {\n redirect2.headers.set(\"Location\", redirect2.options.href);\n }\n return redirect2;\n };\n this.clearCache = (opts) => {\n const filter = opts == null ? void 0 : opts.filter;\n if (filter !== void 0) {\n this.__store.setState((s) => {\n return {\n ...s,\n cachedMatches: s.cachedMatches.filter(\n (m) => !filter(m)\n )\n };\n });\n } else {\n this.__store.setState((s) => {\n return {\n ...s,\n cachedMatches: []\n };\n });\n }\n };\n this.clearExpiredCache = () => {\n const filter = (d) => {\n const route = this.looseRoutesById[d.routeId];\n if (!route.options.loader) {\n return true;\n }\n const gcTime = (d.preload ? route.options.preloadGcTime ?? this.options.defaultPreloadGcTime : route.options.gcTime ?? this.options.defaultGcTime) ?? 5 * 60 * 1e3;\n const isError = d.status === \"error\";\n if (isError) return true;\n const gcEligible = Date.now() - d.updatedAt >= gcTime;\n return gcEligible;\n };\n this.clearCache({ filter });\n };\n this.loadRouteChunk = (route) => {\n if (route._lazyPromise === void 0) {\n if (route.lazyFn) {\n route._lazyPromise = route.lazyFn().then((lazyRoute) => {\n const { id: _id, ...options2 } = lazyRoute.options;\n Object.assign(route.options, options2);\n });\n } else {\n route._lazyPromise = Promise.resolve();\n }\n }\n if (route._componentsPromise === void 0) {\n route._componentsPromise = route._lazyPromise.then(\n () => Promise.all(\n componentTypes.map(async (type) => {\n const component = route.options[type];\n if (component == null ? void 0 : component.preload) {\n await component.preload();\n }\n })\n )\n );\n }\n return route._componentsPromise;\n };\n this.preloadRoute = async (opts) => {\n const next = this.buildLocation(opts);\n let matches = this.matchRoutes(next, {\n throwOnError: true,\n preload: true,\n dest: opts\n });\n const activeMatchIds = new Set(\n [...this.state.matches, ...this.state.pendingMatches ?? []].map(\n (d) => d.id\n )\n );\n const loadedMatchIds = /* @__PURE__ */ new Set([\n ...activeMatchIds,\n ...this.state.cachedMatches.map((d) => d.id)\n ]);\n batch(() => {\n matches.forEach((match) => {\n if (!loadedMatchIds.has(match.id)) {\n this.__store.setState((s) => ({\n ...s,\n cachedMatches: [...s.cachedMatches, match]\n }));\n }\n });\n });\n try {\n matches = await this.loadMatches({\n matches,\n location: next,\n preload: true,\n updateMatch: (id, updater) => {\n if (activeMatchIds.has(id)) {\n matches = matches.map((d) => d.id === id ? updater(d) : d);\n } else {\n this.updateMatch(id, updater);\n }\n }\n });\n return matches;\n } catch (err) {\n if (isRedirect(err)) {\n if (err.options.reloadDocument) {\n return void 0;\n }\n return await this.preloadRoute({\n ...err.options,\n _fromLocation: next\n });\n }\n if (!isNotFound(err)) {\n console.error(err);\n }\n return void 0;\n }\n };\n this.matchRoute = (location, opts) => {\n const matchLocation = {\n ...location,\n to: location.to ? this.resolvePathWithBase(\n location.from || \"\",\n location.to\n ) : void 0,\n params: location.params || {},\n leaveParams: true\n };\n const next = this.buildLocation(matchLocation);\n if ((opts == null ? void 0 : opts.pending) && this.state.status !== \"pending\") {\n return false;\n }\n const pending = (opts == null ? void 0 : opts.pending) === void 0 ? !this.state.isLoading : opts.pending;\n const baseLocation = pending ? this.latestLocation : this.state.resolvedLocation || this.state.location;\n const match = matchPathname(\n this.basepath,\n baseLocation.pathname,\n {\n ...opts,\n to: next.pathname\n },\n this.parsePathnameCache\n );\n if (!match) {\n return false;\n }\n if (location.params) {\n if (!deepEqual(match, location.params, { partial: true })) {\n return false;\n }\n }\n if (match && ((opts == null ? void 0 : opts.includeSearch) ?? true)) {\n return deepEqual(baseLocation.search, next.search, { partial: true }) ? match : false;\n }\n return match;\n };\n this._handleNotFound = (matches, err, {\n updateMatch = this.updateMatch\n } = {}) => {\n var _a;\n const routeCursor = this.routesById[err.routeId ?? \"\"] ?? this.routeTree;\n const matchesByRouteId = {};\n for (const match of matches) {\n matchesByRouteId[match.routeId] = match;\n }\n if (!routeCursor.options.notFoundComponent && ((_a = this.options) == null ? void 0 : _a.defaultNotFoundComponent)) {\n routeCursor.options.notFoundComponent = this.options.defaultNotFoundComponent;\n }\n invariant(\n routeCursor.options.notFoundComponent,\n \"No notFoundComponent found. Please set a notFoundComponent on your route or provide a defaultNotFoundComponent to the router.\"\n );\n const matchForRoute = matchesByRouteId[routeCursor.id];\n invariant(\n matchForRoute,\n \"Could not find match for route: \" + routeCursor.id\n );\n updateMatch(matchForRoute.id, (prev) => ({\n ...prev,\n status: \"notFound\",\n error: err,\n isFetching: false\n }));\n if (err.routerCode === \"BEFORE_LOAD\" && routeCursor.parentRoute) {\n err.routeId = routeCursor.parentRoute.id;\n this._handleNotFound(matches, err, {\n updateMatch\n });\n }\n };\n this.hasNotFoundMatch = () => {\n return this.__store.state.matches.some(\n (d) => d.status === \"notFound\" || d.globalNotFound\n );\n };\n this.update({\n defaultPreloadDelay: 50,\n defaultPendingMs: 1e3,\n defaultPendingMinMs: 500,\n context: void 0,\n ...options,\n caseSensitive: options.caseSensitive ?? false,\n notFoundMode: options.notFoundMode ?? \"fuzzy\",\n stringifySearch: options.stringifySearch ?? defaultStringifySearch,\n parseSearch: options.parseSearch ?? defaultParseSearch\n });\n if (typeof document !== \"undefined\") {\n self.__TSR_ROUTER__ = this;\n }\n }\n isShell() {\n return !!this.options.isShell;\n }\n isPrerendering() {\n return !!this.options.isPrerendering;\n }\n get state() {\n return this.__store.state;\n }\n get looseRoutesById() {\n return this.routesById;\n }\n matchRoutesInternal(next, opts) {\n var _a;\n const { foundRoute, matchedRoutes, routeParams } = this.getMatchedRoutes(\n next.pathname,\n (_a = opts == null ? void 0 : opts.dest) == null ? void 0 : _a.to\n );\n let isGlobalNotFound = false;\n if (\n // If we found a route, and it's not an index route and we have left over path\n foundRoute ? foundRoute.path !== \"/\" && routeParams[\"**\"] : (\n // Or if we didn't find a route and we have left over path\n trimPathRight(next.pathname)\n )\n ) {\n if (this.options.notFoundRoute) {\n matchedRoutes.push(this.options.notFoundRoute);\n } else {\n isGlobalNotFound = true;\n }\n }\n const globalNotFoundRouteId = (() => {\n if (!isGlobalNotFound) {\n return void 0;\n }\n if (this.options.notFoundMode !== \"root\") {\n for (let i = matchedRoutes.length - 1; i >= 0; i--) {\n const route = matchedRoutes[i];\n if (route.children) {\n return route.id;\n }\n }\n }\n return rootRouteId;\n })();\n const parseErrors = matchedRoutes.map((route) => {\n var _a2;\n let parsedParamsError;\n const parseParams = ((_a2 = route.options.params) == null ? void 0 : _a2.parse) ?? route.options.parseParams;\n if (parseParams) {\n try {\n const parsedParams = parseParams(routeParams);\n Object.assign(routeParams, parsedParams);\n } catch (err) {\n parsedParamsError = new PathParamError(err.message, {\n cause: err\n });\n if (opts == null ? void 0 : opts.throwOnError) {\n throw parsedParamsError;\n }\n return parsedParamsError;\n }\n }\n return;\n });\n const matches = [];\n const getParentContext = (parentMatch) => {\n const parentMatchId = parentMatch == null ? void 0 : parentMatch.id;\n const parentContext = !parentMatchId ? this.options.context ?? {} : parentMatch.context ?? this.options.context ?? {};\n return parentContext;\n };\n matchedRoutes.forEach((route, index) => {\n var _a2, _b;\n const parentMatch = matches[index - 1];\n const [preMatchSearch, strictMatchSearch, searchError] = (() => {\n const parentSearch = (parentMatch == null ? void 0 : parentMatch.search) ?? next.search;\n const parentStrictSearch = (parentMatch == null ? void 0 : parentMatch._strictSearch) ?? {};\n try {\n const strictSearch = validateSearch(route.options.validateSearch, { ...parentSearch }) ?? {};\n return [\n {\n ...parentSearch,\n ...strictSearch\n },\n { ...parentStrictSearch, ...strictSearch },\n void 0\n ];\n } catch (err) {\n let searchParamError = err;\n if (!(err instanceof SearchParamError)) {\n searchParamError = new SearchParamError(err.message, {\n cause: err\n });\n }\n if (opts == null ? void 0 : opts.throwOnError) {\n throw searchParamError;\n }\n return [parentSearch, {}, searchParamError];\n }\n })();\n const loaderDeps = ((_b = (_a2 = route.options).loaderDeps) == null ? void 0 : _b.call(_a2, {\n search: preMatchSearch\n })) ?? \"\";\n const loaderDepsHash = loaderDeps ? JSON.stringify(loaderDeps) : \"\";\n const { usedParams, interpolatedPath } = interpolatePath({\n path: route.fullPath,\n params: routeParams,\n decodeCharMap: this.pathParamsDecodeCharMap\n });\n const matchId = interpolatePath({\n path: route.id,\n params: routeParams,\n leaveWildcards: true,\n decodeCharMap: this.pathParamsDecodeCharMap,\n parseCache: this.parsePathnameCache\n }).interpolatedPath + loaderDepsHash;\n const existingMatch = this.getMatch(matchId);\n const previousMatch = this.state.matches.find(\n (d) => d.routeId === route.id\n );\n const cause = previousMatch ? \"stay\" : \"enter\";\n let match;\n if (existingMatch) {\n match = {\n ...existingMatch,\n cause,\n params: previousMatch ? replaceEqualDeep(previousMatch.params, routeParams) : routeParams,\n _strictParams: usedParams,\n search: previousMatch ? replaceEqualDeep(previousMatch.search, preMatchSearch) : replaceEqualDeep(existingMatch.search, preMatchSearch),\n _strictSearch: strictMatchSearch\n };\n } else {\n const status = route.options.loader || route.options.beforeLoad || route.lazyFn || routeNeedsPreload(route) ? \"pending\" : \"success\";\n match = {\n id: matchId,\n index,\n routeId: route.id,\n params: previousMatch ? replaceEqualDeep(previousMatch.params, routeParams) : routeParams,\n _strictParams: usedParams,\n pathname: joinPaths([this.basepath, interpolatedPath]),\n updatedAt: Date.now(),\n search: previousMatch ? replaceEqualDeep(previousMatch.search, preMatchSearch) : preMatchSearch,\n _strictSearch: strictMatchSearch,\n searchError: void 0,\n status,\n isFetching: false,\n error: void 0,\n paramsError: parseErrors[index],\n __routeContext: {},\n __beforeLoadContext: void 0,\n context: {},\n abortController: new AbortController(),\n fetchCount: 0,\n cause,\n loaderDeps: previousMatch ? replaceEqualDeep(previousMatch.loaderDeps, loaderDeps) : loaderDeps,\n invalid: false,\n preload: false,\n links: void 0,\n scripts: void 0,\n headScripts: void 0,\n meta: void 0,\n staticData: route.options.staticData || {},\n loadPromise: createControlledPromise(),\n fullPath: route.fullPath\n };\n }\n if (!(opts == null ? void 0 : opts.preload)) {\n match.globalNotFound = globalNotFoundRouteId === route.id;\n }\n match.searchError = searchError;\n const parentContext = getParentContext(parentMatch);\n match.context = {\n ...parentContext,\n ...match.__routeContext,\n ...match.__beforeLoadContext\n };\n matches.push(match);\n });\n matches.forEach((match, index) => {\n var _a2, _b;\n const route = this.looseRoutesById[match.routeId];\n const existingMatch = this.getMatch(match.id);\n if (!existingMatch && (opts == null ? void 0 : opts._buildLocation) !== true) {\n const parentMatch = matches[index - 1];\n const parentContext = getParentContext(parentMatch);\n const contextFnContext = {\n deps: match.loaderDeps,\n params: match.params,\n context: parentContext,\n location: next,\n navigate: (opts2) => this.navigate({ ...opts2, _fromLocation: next }),\n buildLocation: this.buildLocation,\n cause: match.cause,\n abortController: match.abortController,\n preload: !!match.preload,\n matches\n };\n match.__routeContext = ((_b = (_a2 = route.options).context) == null ? void 0 : _b.call(_a2, contextFnContext)) ?? {};\n match.context = {\n ...parentContext,\n ...match.__routeContext,\n ...match.__beforeLoadContext\n };\n }\n });\n return matches;\n }\n}\nclass SearchParamError extends Error {\n}\nclass PathParamError extends Error {\n}\nconst normalize = (str) => str.endsWith(\"/\") && str.length > 1 ? str.slice(0, -1) : str;\nfunction comparePaths(a, b) {\n return normalize(a) === normalize(b);\n}\nfunction lazyFn(fn, key) {\n return async (...args) => {\n const imported = await fn();\n return imported[key || \"default\"](...args);\n };\n}\nfunction getInitialRouterState(location) {\n return {\n loadedAt: 0,\n isLoading: false,\n isTransitioning: false,\n status: \"idle\",\n resolvedLocation: void 0,\n location,\n matches: [],\n pendingMatches: [],\n cachedMatches: [],\n statusCode: 200\n };\n}\nfunction validateSearch(validateSearch2, input) {\n if (validateSearch2 == null) return {};\n if (\"~standard\" in validateSearch2) {\n const result = validateSearch2[\"~standard\"].validate(input);\n if (result instanceof Promise)\n throw new SearchParamError(\"Async validation not supported\");\n if (result.issues)\n throw new SearchParamError(JSON.stringify(result.issues, void 0, 2), {\n cause: result\n });\n return result.value;\n }\n if (\"parse\" in validateSearch2) {\n return validateSearch2.parse(input);\n }\n if (typeof validateSearch2 === \"function\") {\n return validateSearch2(input);\n }\n return {};\n}\nconst componentTypes = [\n \"component\",\n \"errorComponent\",\n \"pendingComponent\",\n \"notFoundComponent\"\n];\nfunction routeNeedsPreload(route) {\n var _a;\n for (const componentType of componentTypes) {\n if ((_a = route.options[componentType]) == null ? void 0 : _a.preload) {\n return true;\n }\n }\n return false;\n}\nconst REQUIRED_PARAM_BASE_SCORE = 0.5;\nconst OPTIONAL_PARAM_BASE_SCORE = 0.4;\nconst WILDCARD_PARAM_BASE_SCORE = 0.25;\nfunction handleParam(segment, baseScore) {\n if (segment.prefixSegment && segment.suffixSegment) {\n return baseScore + 0.05;\n }\n if (segment.prefixSegment) {\n return baseScore + 0.02;\n }\n if (segment.suffixSegment) {\n return baseScore + 0.01;\n }\n return baseScore;\n}\nfunction processRouteTree({\n routeTree,\n initRoute\n}) {\n const routesById = {};\n const routesByPath = {};\n const recurseRoutes = (childRoutes) => {\n childRoutes.forEach((childRoute, i) => {\n initRoute == null ? void 0 : initRoute(childRoute, i);\n const existingRoute = routesById[childRoute.id];\n invariant(\n !existingRoute,\n `Duplicate routes found with id: ${String(childRoute.id)}`\n );\n routesById[childRoute.id] = childRoute;\n if (!childRoute.isRoot && childRoute.path) {\n const trimmedFullPath = trimPathRight(childRoute.fullPath);\n if (!routesByPath[trimmedFullPath] || childRoute.fullPath.endsWith(\"/\")) {\n routesByPath[trimmedFullPath] = childRoute;\n }\n }\n const children = childRoute.children;\n if (children == null ? void 0 : children.length) {\n recurseRoutes(children);\n }\n });\n };\n recurseRoutes([routeTree]);\n const scoredRoutes = [];\n const routes = Object.values(routesById);\n routes.forEach((d, i) => {\n var _a;\n if (d.isRoot || !d.path) {\n return;\n }\n const trimmed = trimPathLeft(d.fullPath);\n let parsed = parsePathname(trimmed);\n let skip = 0;\n while (parsed.length > skip + 1 && ((_a = parsed[skip]) == null ? void 0 : _a.value) === \"/\") {\n skip++;\n }\n if (skip > 0) parsed = parsed.slice(skip);\n let optionalParamCount = 0;\n let hasStaticAfter = false;\n const scores = parsed.map((segment, index) => {\n if (segment.value === \"/\") {\n return 0.75;\n }\n let baseScore = void 0;\n if (segment.type === SEGMENT_TYPE_PARAM) {\n baseScore = REQUIRED_PARAM_BASE_SCORE;\n } else if (segment.type === SEGMENT_TYPE_OPTIONAL_PARAM) {\n baseScore = OPTIONAL_PARAM_BASE_SCORE;\n optionalParamCount++;\n } else if (segment.type === SEGMENT_TYPE_WILDCARD) {\n baseScore = WILDCARD_PARAM_BASE_SCORE;\n }\n if (baseScore) {\n for (let i2 = index + 1; i2 < parsed.length; i2++) {\n const nextSegment = parsed[i2];\n if (nextSegment.type === SEGMENT_TYPE_PATHNAME && nextSegment.value !== \"/\") {\n hasStaticAfter = true;\n return handleParam(segment, baseScore + 0.2);\n }\n }\n return handleParam(segment, baseScore);\n }\n return 1;\n });\n scoredRoutes.push({\n child: d,\n trimmed,\n parsed,\n index: i,\n scores,\n optionalParamCount,\n hasStaticAfter\n });\n });\n const flatRoutes = scoredRoutes.sort((a, b) => {\n const minLength = Math.min(a.scores.length, b.scores.length);\n for (let i = 0; i < minLength; i++) {\n if (a.scores[i] !== b.scores[i]) {\n return b.scores[i] - a.scores[i];\n }\n }\n if (a.scores.length !== b.scores.length) {\n if (a.optionalParamCount !== b.optionalParamCount) {\n if (a.hasStaticAfter === b.hasStaticAfter) {\n return a.optionalParamCount - b.optionalParamCount;\n } else if (a.hasStaticAfter && !b.hasStaticAfter) {\n return -1;\n } else if (!a.hasStaticAfter && b.hasStaticAfter) {\n return 1;\n }\n }\n return b.scores.length - a.scores.length;\n }\n for (let i = 0; i < minLength; i++) {\n if (a.parsed[i].value !== b.parsed[i].value) {\n return a.parsed[i].value > b.parsed[i].value ? 1 : -1;\n }\n }\n return a.index - b.index;\n }).map((d, i) => {\n d.child.rank = i;\n return d.child;\n });\n return { routesById, routesByPath, flatRoutes };\n}\nfunction getMatchedRoutes({\n pathname,\n routePathname,\n basepath,\n caseSensitive,\n routesByPath,\n routesById,\n flatRoutes,\n parseCache\n}) {\n let routeParams = {};\n const trimmedPath = trimPathRight(pathname);\n const getMatchedParams = (route) => {\n var _a;\n const result = matchPathname(\n basepath,\n trimmedPath,\n {\n to: route.fullPath,\n caseSensitive: ((_a = route.options) == null ? void 0 : _a.caseSensitive) ?? caseSensitive,\n // we need fuzzy matching for `notFoundMode: 'fuzzy'`\n fuzzy: true\n },\n parseCache\n );\n return result;\n };\n let foundRoute = routePathname !== void 0 ? routesByPath[routePathname] : void 0;\n if (foundRoute) {\n routeParams = getMatchedParams(foundRoute);\n } else {\n let fuzzyMatch = void 0;\n for (const route of flatRoutes) {\n const matchedParams = getMatchedParams(route);\n if (matchedParams) {\n if (route.path !== \"/\" && matchedParams[\"**\"]) {\n if (!fuzzyMatch) {\n fuzzyMatch = { foundRoute: route, routeParams: matchedParams };\n }\n } else {\n foundRoute = route;\n routeParams = matchedParams;\n break;\n }\n }\n }\n if (!foundRoute && fuzzyMatch) {\n foundRoute = fuzzyMatch.foundRoute;\n routeParams = fuzzyMatch.routeParams;\n }\n }\n let routeCursor = foundRoute || routesById[rootRouteId];\n const matchedRoutes = [routeCursor];\n while (routeCursor.parentRoute) {\n routeCursor = routeCursor.parentRoute;\n matchedRoutes.push(routeCursor);\n }\n matchedRoutes.reverse();\n return { matchedRoutes, routeParams, foundRoute };\n}\nfunction applySearchMiddleware({\n search,\n dest,\n destRoutes,\n _includeValidateSearch\n}) {\n const allMiddlewares = destRoutes.reduce(\n (acc, route) => {\n var _a;\n const middlewares = [];\n if (\"search\" in route.options) {\n if ((_a = route.options.search) == null ? void 0 : _a.middlewares) {\n middlewares.push(...route.options.search.middlewares);\n }\n } else if (route.options.preSearchFilters || route.options.postSearchFilters) {\n const legacyMiddleware = ({\n search: search2,\n next\n }) => {\n let nextSearch = search2;\n if (\"preSearchFilters\" in route.options && route.options.preSearchFilters) {\n nextSearch = route.options.preSearchFilters.reduce(\n (prev, next2) => next2(prev),\n search2\n );\n }\n const result = next(nextSearch);\n if (\"postSearchFilters\" in route.options && route.options.postSearchFilters) {\n return route.options.postSearchFilters.reduce(\n (prev, next2) => next2(prev),\n result\n );\n }\n return result;\n };\n middlewares.push(legacyMiddleware);\n }\n if (_includeValidateSearch && route.options.validateSearch) {\n const validate = ({ search: search2, next }) => {\n const result = next(search2);\n try {\n const validatedSearch = {\n ...result,\n ...validateSearch(route.options.validateSearch, result) ?? {}\n };\n return validatedSearch;\n } catch {\n return result;\n }\n };\n middlewares.push(validate);\n }\n return acc.concat(middlewares);\n },\n []\n ) ?? [];\n const final = ({ search: search2 }) => {\n if (!dest.search) {\n return {};\n }\n if (dest.search === true) {\n return search2;\n }\n return functionalUpdate(dest.search, search2);\n };\n allMiddlewares.push(final);\n const applyNext = (index, currentSearch) => {\n if (index >= allMiddlewares.length) {\n return currentSearch;\n }\n const middleware = allMiddlewares[index];\n const next = (newSearch) => {\n return applyNext(index + 1, newSearch);\n };\n return middleware({ search: currentSearch, next });\n };\n return applyNext(0, search);\n}\nexport {\n PathParamError,\n RouterCore,\n SearchParamError,\n componentTypes,\n defaultSerializeError,\n getInitialRouterState,\n getLocationChangeInfo,\n getMatchedRoutes,\n lazyFn,\n processRouteTree\n};\n//# sourceMappingURL=router.js.map\n","import { defaultSerializeError } from \"./router.js\";\nconst TSR_DEFERRED_PROMISE = Symbol.for(\"TSR_DEFERRED_PROMISE\");\nfunction defer(_promise, options) {\n const promise = _promise;\n if (promise[TSR_DEFERRED_PROMISE]) {\n return promise;\n }\n promise[TSR_DEFERRED_PROMISE] = { status: \"pending\" };\n promise.then((data) => {\n promise[TSR_DEFERRED_PROMISE].status = \"success\";\n promise[TSR_DEFERRED_PROMISE].data = data;\n }).catch((error) => {\n promise[TSR_DEFERRED_PROMISE].status = \"error\";\n promise[TSR_DEFERRED_PROMISE].error = {\n data: ((options == null ? void 0 : options.serializeError) ?? defaultSerializeError)(error),\n __isServerError: true\n };\n });\n return promise;\n}\nexport {\n TSR_DEFERRED_PROMISE,\n defer\n};\n//# sourceMappingURL=defer.js.map\n","const preloadWarning = \"Error preloading route! ☝️\";\nexport {\n preloadWarning\n};\n//# sourceMappingURL=link.js.map\n","const isMatch = (match, path) => {\n const parts = path.split(\".\");\n let part;\n let value = match;\n while ((part = parts.shift()) != null && value != null) {\n value = value[part];\n }\n return value != null;\n};\nexport {\n isMatch\n};\n//# sourceMappingURL=Matches.js.map\n","import invariant from \"tiny-invariant\";\nimport { trimPathLeft, joinPaths } from \"./path.js\";\nimport { notFound } from \"./not-found.js\";\nimport { rootRouteId } from \"./root.js\";\nclass BaseRoute {\n constructor(options) {\n this.init = (opts) => {\n var _a, _b;\n this.originalIndex = opts.originalIndex;\n const options2 = this.options;\n const isRoot = !(options2 == null ? void 0 : options2.path) && !(options2 == null ? void 0 : options2.id);\n this.parentRoute = (_b = (_a = this.options).getParentRoute) == null ? void 0 : _b.call(_a);\n if (isRoot) {\n this._path = rootRouteId;\n } else if (!this.parentRoute) {\n invariant(\n false,\n `Child Route instances must pass a 'getParentRoute: () => ParentRoute' option that returns a Route instance.`\n );\n }\n let path = isRoot ? rootRouteId : options2 == null ? void 0 : options2.path;\n if (path && path !== \"/\") {\n path = trimPathLeft(path);\n }\n const customId = (options2 == null ? void 0 : options2.id) || path;\n let id = isRoot ? rootRouteId : joinPaths([\n this.parentRoute.id === rootRouteId ? \"\" : this.parentRoute.id,\n customId\n ]);\n if (path === rootRouteId) {\n path = \"/\";\n }\n if (id !== rootRouteId) {\n id = joinPaths([\"/\", id]);\n }\n const fullPath = id === rootRouteId ? \"/\" : joinPaths([this.parentRoute.fullPath, path]);\n this._path = path;\n this._id = id;\n this._fullPath = fullPath;\n this._to = fullPath;\n };\n this.clone = (other) => {\n this._path = other._path;\n this._id = other._id;\n this._fullPath = other._fullPath;\n this._to = other._to;\n this.options.getParentRoute = other.options.getParentRoute;\n this.children = other.children;\n };\n this.addChildren = (children) => {\n return this._addFileChildren(children);\n };\n this._addFileChildren = (children) => {\n if (Array.isArray(children)) {\n this.children = children;\n }\n if (typeof children === \"object\" && children !== null) {\n this.children = Object.values(children);\n }\n return this;\n };\n this._addFileTypes = () => {\n return this;\n };\n this.updateLoader = (options2) => {\n Object.assign(this.options, options2);\n return this;\n };\n this.update = (options2) => {\n Object.assign(this.options, options2);\n return this;\n };\n this.lazy = (lazyFn) => {\n this.lazyFn = lazyFn;\n return this;\n };\n this.options = options || {};\n this.isRoot = !(options == null ? void 0 : options.getParentRoute);\n if ((options == null ? void 0 : options.id) && (options == null ? void 0 : options.path)) {\n throw new Error(`Route cannot have both an 'id' and a 'path' option.`);\n }\n }\n get to() {\n return this._to;\n }\n get id() {\n return this._id;\n }\n get path() {\n return this._path;\n }\n get fullPath() {\n return this._fullPath;\n }\n}\nclass BaseRouteApi {\n constructor({ id }) {\n this.notFound = (opts) => {\n return notFound({ routeId: this.id, ...opts });\n };\n this.id = id;\n }\n}\nclass BaseRootRoute extends BaseRoute {\n constructor(options) {\n super(options);\n }\n}\nexport {\n BaseRootRoute,\n BaseRoute,\n BaseRouteApi\n};\n//# sourceMappingURL=route.js.map\n","import { deepEqual } from \"./utils.js\";\nfunction retainSearchParams(keys) {\n return ({ search, next }) => {\n const result = next(search);\n if (keys === true) {\n return { ...search, ...result };\n }\n keys.forEach((key) => {\n if (!(key in result)) {\n result[key] = search[key];\n }\n });\n return result;\n };\n}\nfunction stripSearchParams(input) {\n return ({ search, next }) => {\n if (input === true) {\n return {};\n }\n const result = next(search);\n if (Array.isArray(input)) {\n input.forEach((key) => {\n delete result[key];\n });\n } else {\n Object.entries(input).forEach(\n ([key, value]) => {\n if (deepEqual(result[key], value)) {\n delete result[key];\n }\n }\n );\n }\n return result;\n };\n}\nexport {\n retainSearchParams,\n stripSearchParams\n};\n//# sourceMappingURL=searchMiddleware.js.map\n","import { jsx } from \"react/jsx-runtime\";\nimport * as React from \"react\";\nimport { defer, TSR_DEFERRED_PROMISE } from \"@tanstack/router-core\";\nfunction useAwaited({\n promise: _promise\n}) {\n const promise = defer(_promise);\n if (promise[TSR_DEFERRED_PROMISE].status === \"pending\") {\n throw promise;\n }\n if (promise[TSR_DEFERRED_PROMISE].status === \"error\") {\n throw promise[TSR_DEFERRED_PROMISE].error;\n }\n return [promise[TSR_DEFERRED_PROMISE].data, promise];\n}\nfunction Await(props) {\n const inner = /* @__PURE__ */ jsx(AwaitInner, { ...props });\n if (props.fallback) {\n return /* @__PURE__ */ jsx(React.Suspense, { fallback: props.fallback, children: inner });\n }\n return inner;\n}\nfunction AwaitInner(props) {\n const [data] = useAwaited(props);\n return props.children(data);\n}\nexport {\n Await,\n useAwaited\n};\n//# sourceMappingURL=awaited.js.map\n","import { jsx, jsxs } from \"react/jsx-runtime\";\nimport * as React from \"react\";\nfunction CatchBoundary(props) {\n const errorComponent = props.errorComponent ?? ErrorComponent;\n return /* @__PURE__ */ jsx(\n CatchBoundaryImpl,\n {\n getResetKey: props.getResetKey,\n onCatch: props.onCatch,\n children: ({ error, reset }) => {\n if (error) {\n return React.createElement(errorComponent, {\n error,\n reset\n });\n }\n return props.children;\n }\n }\n );\n}\nclass CatchBoundaryImpl extends React.Component {\n constructor() {\n super(...arguments);\n this.state = { error: null };\n }\n static getDerivedStateFromProps(props) {\n return { resetKey: props.getResetKey() };\n }\n static getDerivedStateFromError(error) {\n return { error };\n }\n reset() {\n this.setState({ error: null });\n }\n componentDidUpdate(prevProps, prevState) {\n if (prevState.error && prevState.resetKey !== this.state.resetKey) {\n this.reset();\n }\n }\n componentDidCatch(error, errorInfo) {\n if (this.props.onCatch) {\n this.props.onCatch(error, errorInfo);\n }\n }\n render() {\n return this.props.children({\n error: this.state.resetKey !== this.props.getResetKey() ? null : this.state.error,\n reset: () => {\n this.reset();\n }\n });\n }\n}\nfunction ErrorComponent({ error }) {\n const [show, setShow] = React.useState(process.env.NODE_ENV !== \"production\");\n return /* @__PURE__ */ jsxs(\"div\", { style: { padding: \".5rem\", maxWidth: \"100%\" }, children: [\n /* @__PURE__ */ jsxs(\"div\", { style: { display: \"flex\", alignItems: \"center\", gap: \".5rem\" }, children: [\n /* @__PURE__ */ jsx(\"strong\", { style: { fontSize: \"1rem\" }, children: \"Something went wrong!\" }),\n /* @__PURE__ */ jsx(\n \"button\",\n {\n style: {\n appearance: \"none\",\n fontSize: \".6em\",\n border: \"1px solid currentColor\",\n padding: \".1rem .2rem\",\n fontWeight: \"bold\",\n borderRadius: \".25rem\"\n },\n onClick: () => setShow((d) => !d),\n children: show ? \"Hide Error\" : \"Show Error\"\n }\n )\n ] }),\n /* @__PURE__ */ jsx(\"div\", { style: { height: \".25rem\" } }),\n show ? /* @__PURE__ */ jsx(\"div\", { children: /* @__PURE__ */ jsx(\n \"pre\",\n {\n style: {\n fontSize: \".7em\",\n border: \"1px solid red\",\n borderRadius: \".25rem\",\n padding: \".3rem\",\n color: \"red\",\n overflow: \"auto\"\n },\n children: error.message ? /* @__PURE__ */ jsx(\"code\", { children: error.message }) : null\n }\n ) }) : null\n ] });\n}\nexport {\n CatchBoundary,\n ErrorComponent\n};\n//# sourceMappingURL=CatchBoundary.js.map\n","import { jsx } from \"react/jsx-runtime\";\nimport React__default from \"react\";\nfunction ClientOnly({ children, fallback = null }) {\n return useHydrated() ? /* @__PURE__ */ jsx(React__default.Fragment, { children }) : /* @__PURE__ */ jsx(React__default.Fragment, { children: fallback });\n}\nfunction useHydrated() {\n return React__default.useSyncExternalStore(\n subscribe,\n () => true,\n () => false\n );\n}\nfunction subscribe() {\n return () => {\n };\n}\nexport {\n ClientOnly\n};\n//# sourceMappingURL=ClientOnly.js.map\n","/**\n * @license React\n * use-sync-external-store-shim/with-selector.production.js\n *\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\"use strict\";\nvar React = require(\"react\"),\n shim = require(\"use-sync-external-store/shim\");\nfunction is(x, y) {\n return (x === y && (0 !== x || 1 / x === 1 / y)) || (x !== x && y !== y);\n}\nvar objectIs = \"function\" === typeof Object.is ? Object.is : is,\n useSyncExternalStore = shim.useSyncExternalStore,\n useRef = React.useRef,\n useEffect = React.useEffect,\n useMemo = React.useMemo,\n useDebugValue = React.useDebugValue;\nexports.useSyncExternalStoreWithSelector = function (\n subscribe,\n getSnapshot,\n getServerSnapshot,\n selector,\n isEqual\n) {\n var instRef = useRef(null);\n if (null === instRef.current) {\n var inst = { hasValue: !1, value: null };\n instRef.current = inst;\n } else inst = instRef.current;\n instRef = useMemo(\n function () {\n function memoizedSelector(nextSnapshot) {\n if (!hasMemo) {\n hasMemo = !0;\n memoizedSnapshot = nextSnapshot;\n nextSnapshot = selector(nextSnapshot);\n if (void 0 !== isEqual && inst.hasValue) {\n var currentSelection = inst.value;\n if (isEqual(currentSelection, nextSnapshot))\n return (memoizedSelection = currentSelection);\n }\n return (memoizedSelection = nextSnapshot);\n }\n currentSelection = memoizedSelection;\n if (objectIs(memoizedSnapshot, nextSnapshot)) return currentSelection;\n var nextSelection = selector(nextSnapshot);\n if (void 0 !== isEqual && isEqual(currentSelection, nextSelection))\n return (memoizedSnapshot = nextSnapshot), currentSelection;\n memoizedSnapshot = nextSnapshot;\n return (memoizedSelection = nextSelection);\n }\n var hasMemo = !1,\n memoizedSnapshot,\n memoizedSelection,\n maybeGetServerSnapshot =\n void 0 === getServerSnapshot ? null : getServerSnapshot;\n return [\n function () {\n return memoizedSelector(getSnapshot());\n },\n null === maybeGetServerSnapshot\n ? void 0\n : function () {\n return memoizedSelector(maybeGetServerSnapshot());\n }\n ];\n },\n [getSnapshot, getServerSnapshot, selector, isEqual]\n );\n var value = useSyncExternalStore(subscribe, instRef[0], instRef[1]);\n useEffect(\n function () {\n inst.hasValue = !0;\n inst.value = value;\n },\n [value]\n );\n useDebugValue(value);\n return value;\n};\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('../cjs/use-sync-external-store-shim/with-selector.production.js');\n} else {\n module.exports = require('../cjs/use-sync-external-store-shim/with-selector.development.js');\n}\n","import { useSyncExternalStoreWithSelector } from \"use-sync-external-store/shim/with-selector.js\";\nexport * from \"@tanstack/store\";\nfunction useStore(store, selector = (d) => d) {\n const slice = useSyncExternalStoreWithSelector(\n store.subscribe,\n () => store.state,\n () => store.state,\n selector,\n shallow\n );\n return slice;\n}\nfunction shallow(objA, objB) {\n if (Object.is(objA, objB)) {\n return true;\n }\n if (typeof objA !== \"object\" || objA === null || typeof objB !== \"object\" || objB === null) {\n return false;\n }\n if (objA instanceof Map && objB instanceof Map) {\n if (objA.size !== objB.size) return false;\n for (const [k, v] of objA) {\n if (!objB.has(k) || !Object.is(v, objB.get(k))) return false;\n }\n return true;\n }\n if (objA instanceof Set && objB instanceof Set) {\n if (objA.size !== objB.size) return false;\n for (const v of objA) {\n if (!objB.has(v)) return false;\n }\n return true;\n }\n if (objA instanceof Date && objB instanceof Date) {\n if (objA.getTime() !== objB.getTime()) return false;\n return true;\n }\n const keysA = Object.keys(objA);\n if (keysA.length !== Object.keys(objB).length) {\n return false;\n }\n for (let i = 0; i < keysA.length; i++) {\n if (!Object.prototype.hasOwnProperty.call(objB, keysA[i]) || !Object.is(objA[keysA[i]], objB[keysA[i]])) {\n return false;\n }\n }\n return true;\n}\nexport {\n shallow,\n useStore\n};\n//# sourceMappingURL=index.js.map\n","import * as React from \"react\";\nconst routerContext = React.createContext(null);\nfunction getRouterContext() {\n if (typeof document === \"undefined\") {\n return routerContext;\n }\n if (window.__TSR_ROUTER_CONTEXT__) {\n return window.__TSR_ROUTER_CONTEXT__;\n }\n window.__TSR_ROUTER_CONTEXT__ = routerContext;\n return routerContext;\n}\nexport {\n getRouterContext\n};\n//# sourceMappingURL=routerContext.js.map\n","import * as React from \"react\";\nimport warning from \"tiny-warning\";\nimport { getRouterContext } from \"./routerContext.js\";\nfunction useRouter(opts) {\n const value = React.useContext(getRouterContext());\n warning(\n !(((opts == null ? void 0 : opts.warn) ?? true) && !value),\n \"useRouter must be used inside a <RouterProvider> component!\"\n );\n return value;\n}\nexport {\n useRouter\n};\n//# sourceMappingURL=useRouter.js.map\n","import { useStore } from \"@tanstack/react-store\";\nimport { useRef } from \"react\";\nimport { replaceEqualDeep } from \"@tanstack/router-core\";\nimport { useRouter } from \"./useRouter.js\";\nfunction useRouterState(opts) {\n const contextRouter = useRouter({\n warn: (opts == null ? void 0 : opts.router) === void 0\n });\n const router = (opts == null ? void 0 : opts.router) || contextRouter;\n const previousResult = useRef(void 0);\n return useStore(router.__store, (state) => {\n if (opts == null ? void 0 : opts.select) {\n if (opts.structuralSharing ?? router.options.defaultStructuralSharing) {\n const newSlice = replaceEqualDeep(\n previousResult.current,\n opts.select(state)\n );\n previousResult.current = newSlice;\n return newSlice;\n }\n return opts.select(state);\n }\n return state;\n });\n}\nexport {\n useRouterState\n};\n//# sourceMappingURL=useRouterState.js.map\n","import * as React from \"react\";\nconst matchContext = React.createContext(void 0);\nconst dummyMatchContext = React.createContext(\n void 0\n);\nexport {\n dummyMatchContext,\n matchContext\n};\n//# sourceMappingURL=matchContext.js.map\n","import * as React from \"react\";\nimport invariant from \"tiny-invariant\";\nimport { useRouterState } from \"./useRouterState.js\";\nimport { dummyMatchContext, matchContext } from \"./matchContext.js\";\nfunction useMatch(opts) {\n const nearestMatchId = React.useContext(\n opts.from ? dummyMatchContext : matchContext\n );\n const matchSelection = useRouterState({\n select: (state) => {\n const match = state.matches.find(\n (d) => opts.from ? opts.from === d.routeId : d.id === nearestMatchId\n );\n invariant(\n !((opts.shouldThrow ?? true) && !match),\n `Could not find ${opts.from ? `an active match from \"${opts.from}\"` : \"a nearest match!\"}`\n );\n if (match === void 0) {\n return void 0;\n }\n return opts.select ? opts.select(match) : match;\n },\n structuralSharing: opts.structuralSharing\n });\n return matchSelection;\n}\nexport {\n useMatch\n};\n//# sourceMappingURL=useMatch.js.map\n","import { useMatch } from \"./useMatch.js\";\nfunction useLoaderData(opts) {\n return useMatch({\n from: opts.from,\n strict: opts.strict,\n structuralSharing: opts.structuralSharing,\n select: (s) => {\n return opts.select ? opts.select(s.loaderData) : s.loaderData;\n }\n });\n}\nexport {\n useLoaderData\n};\n//# sourceMappingURL=useLoaderData.js.map\n","import { useMatch } from \"./useMatch.js\";\nfunction useLoaderDeps(opts) {\n const { select, ...rest } = opts;\n return useMatch({\n ...rest,\n select: (s) => {\n return select ? select(s.loaderDeps) : s.loaderDeps;\n }\n });\n}\nexport {\n useLoaderDeps\n};\n//# sourceMappingURL=useLoaderDeps.js.map\n","import { useMatch } from \"./useMatch.js\";\nfunction useParams(opts) {\n return useMatch({\n from: opts.from,\n strict: opts.strict,\n shouldThrow: opts.shouldThrow,\n structuralSharing: opts.structuralSharing,\n select: (match) => {\n return opts.select ? opts.select(match.params) : match.params;\n }\n });\n}\nexport {\n useParams\n};\n//# sourceMappingURL=useParams.js.map\n","import { useMatch } from \"./useMatch.js\";\nfunction useSearch(opts) {\n return useMatch({\n from: opts.from,\n strict: opts.strict,\n shouldThrow: opts.shouldThrow,\n structuralSharing: opts.structuralSharing,\n select: (match) => {\n return opts.select ? opts.select(match.search) : match.search;\n }\n });\n}\nexport {\n useSearch\n};\n//# sourceMappingURL=useSearch.js.map\n","import * as React from \"react\";\nimport { useRouter } from \"./useRouter.js\";\nimport { useMatch } from \"./useMatch.js\";\nfunction useNavigate(_defaultOpts) {\n const { navigate, state } = useRouter();\n const matchIndex = useMatch({\n strict: false,\n select: (match) => match.index\n });\n return React.useCallback(\n (options) => {\n const from = options.from ?? (_defaultOpts == null ? void 0 : _defaultOpts.from) ?? state.matches[matchIndex].fullPath;\n return navigate({\n ...options,\n from\n });\n },\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [_defaultOpts == null ? void 0 : _defaultOpts.from, navigate]\n );\n}\nfunction Navigate(props) {\n const router = useRouter();\n const navigate = useNavigate();\n const previousPropsRef = React.useRef(null);\n React.useEffect(() => {\n if (previousPropsRef.current !== props) {\n navigate(props);\n previousPropsRef.current = props;\n }\n }, [router, props, navigate]);\n return null;\n}\nexport {\n Navigate,\n useNavigate\n};\n//# sourceMappingURL=useNavigate.js.map\n","import * as React from \"react\";\nfunction useStableCallback(fn) {\n const fnRef = React.useRef(fn);\n fnRef.current = fn;\n const ref = React.useRef((...args) => fnRef.current(...args));\n return ref.current;\n}\nconst useLayoutEffect = typeof window !== \"undefined\" ? React.useLayoutEffect : React.useEffect;\nfunction usePrevious(value) {\n const ref = React.useRef({\n value,\n prev: null\n });\n const current = ref.current.value;\n if (value !== current) {\n ref.current = {\n value,\n prev: current\n };\n }\n return ref.current.prev;\n}\nfunction useIntersectionObserver(ref, callback, intersectionObserverOptions = {}, options = {}) {\n React.useEffect(() => {\n if (!ref.current || options.disabled || typeof IntersectionObserver !== \"function\") {\n return;\n }\n const observer = new IntersectionObserver(([entry]) => {\n callback(entry);\n }, intersectionObserverOptions);\n observer.observe(ref.current);\n return () => {\n observer.disconnect();\n };\n }, [callback, intersectionObserverOptions, options.disabled, ref]);\n}\nfunction useForwardedRef(ref) {\n const innerRef = React.useRef(null);\n React.useImperativeHandle(ref, () => innerRef.current, []);\n return innerRef;\n}\nexport {\n useForwardedRef,\n useIntersectionObserver,\n useLayoutEffect,\n usePrevious,\n useStableCallback\n};\n//# sourceMappingURL=utils.js.map\n","import { jsx } from \"react/jsx-runtime\";\nimport * as React from \"react\";\nimport { flushSync } from \"react-dom\";\nimport { preloadWarning, functionalUpdate, exactPathTest, removeTrailingSlash, deepEqual } from \"@tanstack/router-core\";\nimport { useRouterState } from \"./useRouterState.js\";\nimport { useRouter } from \"./useRouter.js\";\nimport { useForwardedRef, useIntersectionObserver } from \"./utils.js\";\nimport { useMatch } from \"./useMatch.js\";\nfunction useLinkProps(options, forwardedRef) {\n const router = useRouter();\n const [isTransitioning, setIsTransitioning] = React.useState(false);\n const hasRenderFetched = React.useRef(false);\n const innerRef = useForwardedRef(forwardedRef);\n const {\n // custom props\n activeProps,\n inactiveProps,\n activeOptions,\n to,\n preload: userPreload,\n preloadDelay: userPreloadDelay,\n hashScrollIntoView,\n replace,\n startTransition,\n resetScroll,\n viewTransition,\n // element props\n children,\n target,\n disabled,\n style,\n className,\n onClick,\n onFocus,\n onMouseEnter,\n onMouseLeave,\n onTouchStart,\n ignoreBlocker,\n // prevent these from being returned\n params: _params,\n search: _search,\n hash: _hash,\n state: _state,\n mask: _mask,\n reloadDocument: _reloadDocument,\n unsafeRelative: _unsafeRelative,\n from: _from,\n _fromLocation,\n ...propsSafeToSpread\n } = options;\n const type = React.useMemo(() => {\n try {\n new URL(to);\n return \"external\";\n } catch {\n }\n return \"internal\";\n }, [to]);\n const currentSearch = useRouterState({\n select: (s) => s.location.search,\n structuralSharing: true\n });\n const from = useMatch({\n strict: false,\n select: (match) => options.from ?? match.fullPath\n });\n const next = React.useMemo(\n () => router.buildLocation({ ...options, from }),\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [\n router,\n currentSearch,\n options._fromLocation,\n from,\n options.hash,\n options.to,\n options.search,\n options.params,\n options.state,\n options.mask,\n options.unsafeRelative\n ]\n );\n const isExternal = type === \"external\";\n const preload = options.reloadDocument || isExternal ? false : userPreload ?? router.options.defaultPreload;\n const preloadDelay = userPreloadDelay ?? router.options.defaultPreloadDelay ?? 0;\n const isActive = useRouterState({\n select: (s) => {\n if (isExternal) return false;\n if (activeOptions == null ? void 0 : activeOptions.exact) {\n const testExact = exactPathTest(\n s.location.pathname,\n next.pathname,\n router.basepath\n );\n if (!testExact) {\n return false;\n }\n } else {\n const currentPathSplit = removeTrailingSlash(\n s.location.pathname,\n router.basepath\n );\n const nextPathSplit = removeTrailingSlash(\n next.pathname,\n router.basepath\n );\n const pathIsFuzzyEqual = currentPathSplit.startsWith(nextPathSplit) && (currentPathSplit.length === nextPathSplit.length || currentPathSplit[nextPathSplit.length] === \"/\");\n if (!pathIsFuzzyEqual) {\n return false;\n }\n }\n if ((activeOptions == null ? void 0 : activeOptions.includeSearch) ?? true) {\n const searchTest = deepEqual(s.location.search, next.search, {\n partial: !(activeOptions == null ? void 0 : activeOptions.exact),\n ignoreUndefined: !(activeOptions == null ? void 0 : activeOptions.explicitUndefined)\n });\n if (!searchTest) {\n return false;\n }\n }\n if (activeOptions == null ? void 0 : activeOptions.includeHash) {\n return s.location.hash === next.hash;\n }\n return true;\n }\n });\n const doPreload = React.useCallback(\n () => {\n router.preloadRoute({ ...options, from }).catch((err) => {\n console.warn(err);\n console.warn(preloadWarning);\n });\n },\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [\n router,\n options.to,\n options._fromLocation,\n from,\n options.search,\n options.hash,\n options.params,\n options.state,\n options.mask,\n options.unsafeRelative,\n options.hashScrollIntoView,\n options.href,\n options.ignoreBlocker,\n options.reloadDocument,\n options.replace,\n options.resetScroll,\n options.viewTransition\n ]\n );\n const preloadViewportIoCallback = React.useCallback(\n (entry) => {\n if (entry == null ? void 0 : entry.isIntersecting) {\n doPreload();\n }\n },\n [doPreload]\n );\n useIntersectionObserver(\n innerRef,\n preloadViewportIoCallback,\n intersectionObserverOptions,\n { disabled: !!disabled || !(preload === \"viewport\") }\n );\n React.useEffect(() => {\n if (hasRenderFetched.current) {\n return;\n }\n if (!disabled && preload === \"render\") {\n doPreload();\n hasRenderFetched.current = true;\n }\n }, [disabled, doPreload, preload]);\n if (isExternal) {\n return {\n ...propsSafeToSpread,\n ref: innerRef,\n type,\n href: to,\n ...children && { children },\n ...target && { target },\n ...disabled && { disabled },\n ...style && { style },\n ...className && { className },\n ...onClick && { onClick },\n ...onFocus && { onFocus },\n ...onMouseEnter && { onMouseEnter },\n ...onMouseLeave && { onMouseLeave },\n ...onTouchStart && { onTouchStart }\n };\n }\n const handleClick = (e) => {\n if (!disabled && !isCtrlEvent(e) && !e.defaultPrevented && (!target || target === \"_self\") && e.button === 0) {\n e.preventDefault();\n flushSync(() => {\n setIsTransitioning(true);\n });\n const unsub = router.subscribe(\"onResolved\", () => {\n unsub();\n setIsTransitioning(false);\n });\n router.navigate({\n ...options,\n from,\n replace,\n resetScroll,\n hashScrollIntoView,\n startTransition,\n viewTransition,\n ignoreBlocker\n });\n }\n };\n const handleFocus = (_) => {\n if (disabled) return;\n if (preload) {\n doPreload();\n }\n };\n const handleTouchStart = handleFocus;\n const handleEnter = (e) => {\n if (disabled || !preload) return;\n if (!preloadDelay) {\n doPreload();\n } else {\n const eventTarget = e.target;\n if (timeoutMap.has(eventTarget)) {\n return;\n }\n const id = setTimeout(() => {\n timeoutMap.delete(eventTarget);\n doPreload();\n }, preloadDelay);\n timeoutMap.set(eventTarget, id);\n }\n };\n const handleLeave = (e) => {\n if (disabled || !preload || !preloadDelay) return;\n const eventTarget = e.target;\n const id = timeoutMap.get(eventTarget);\n if (id) {\n clearTimeout(id);\n timeoutMap.delete(eventTarget);\n }\n };\n const resolvedActiveProps = isActive ? functionalUpdate(activeProps, {}) ?? STATIC_ACTIVE_OBJECT : STATIC_EMPTY_OBJECT;\n const resolvedInactiveProps = isActive ? STATIC_EMPTY_OBJECT : functionalUpdate(inactiveProps, {}) ?? STATIC_EMPTY_OBJECT;\n const resolvedClassName = [\n className,\n resolvedActiveProps.className,\n resolvedInactiveProps.className\n ].filter(Boolean).join(\" \");\n const resolvedStyle = (style || resolvedActiveProps.style || resolvedInactiveProps.style) && {\n ...style,\n ...resolvedActiveProps.style,\n ...resolvedInactiveProps.style\n };\n return {\n ...propsSafeToSpread,\n ...resolvedActiveProps,\n ...resolvedInactiveProps,\n href: disabled ? void 0 : next.maskedLocation ? router.history.createHref(next.maskedLocation.href) : router.history.createHref(next.href),\n ref: innerRef,\n onClick: composeHandlers([onClick, handleClick]),\n onFocus: composeHandlers([onFocus, handleFocus]),\n onMouseEnter: composeHandlers([onMouseEnter, handleEnter]),\n onMouseLeave: composeHandlers([onMouseLeave, handleLeave]),\n onTouchStart: composeHandlers([onTouchStart, handleTouchStart]),\n disabled: !!disabled,\n target,\n ...resolvedStyle && { style: resolvedStyle },\n ...resolvedClassName && { className: resolvedClassName },\n ...disabled && STATIC_DISABLED_PROPS,\n ...isActive && STATIC_ACTIVE_PROPS,\n ...isTransitioning && STATIC_TRANSITIONING_PROPS\n };\n}\nconst STATIC_EMPTY_OBJECT = {};\nconst STATIC_ACTIVE_OBJECT = { className: \"active\" };\nconst STATIC_DISABLED_PROPS = { role: \"link\", \"aria-disabled\": true };\nconst STATIC_ACTIVE_PROPS = { \"data-status\": \"active\", \"aria-current\": \"page\" };\nconst STATIC_TRANSITIONING_PROPS = { \"data-transitioning\": \"transitioning\" };\nconst timeoutMap = /* @__PURE__ */ new WeakMap();\nconst intersectionObserverOptions = {\n rootMargin: \"100px\"\n};\nconst composeHandlers = (handlers) => (e) => {\n handlers.filter(Boolean).forEach((handler) => {\n if (e.defaultPrevented) return;\n handler(e);\n });\n};\nfunction createLink(Comp) {\n return React.forwardRef(function CreatedLink(props, ref) {\n return /* @__PURE__ */ jsx(Link, { ...props, _asChild: Comp, ref });\n });\n}\nconst Link = React.forwardRef(\n (props, ref) => {\n const { _asChild, ...rest } = props;\n const {\n type: _type,\n ref: innerRef,\n ...linkProps\n } = useLinkProps(rest, ref);\n const children = typeof rest.children === \"function\" ? rest.children({\n isActive: linkProps[\"data-status\"] === \"active\"\n }) : rest.children;\n if (_asChild === void 0) {\n delete linkProps.disabled;\n }\n return React.createElement(\n _asChild ? _asChild : \"a\",\n {\n ...linkProps,\n ref: innerRef\n },\n children\n );\n }\n);\nfunction isCtrlEvent(e) {\n return !!(e.metaKey || e.altKey || e.ctrlKey || e.shiftKey);\n}\nconst linkOptions = (options) => {\n return options;\n};\nexport {\n Link,\n createLink,\n linkOptions,\n useLinkProps\n};\n//# sourceMappingURL=link.js.map\n","import { jsx } from \"react/jsx-runtime\";\nimport { BaseRouteApi, notFound, BaseRoute, BaseRootRoute } from \"@tanstack/router-core\";\nimport React__default from \"react\";\nimport { useLoaderData } from \"./useLoaderData.js\";\nimport { useLoaderDeps } from \"./useLoaderDeps.js\";\nimport { useParams } from \"./useParams.js\";\nimport { useSearch } from \"./useSearch.js\";\nimport { useNavigate } from \"./useNavigate.js\";\nimport { useMatch } from \"./useMatch.js\";\nimport { useRouter } from \"./useRouter.js\";\nimport { Link } from \"./link.js\";\nfunction getRouteApi(id) {\n return new RouteApi({ id });\n}\nclass RouteApi extends BaseRouteApi {\n /**\n * @deprecated Use the `getRouteApi` function instead.\n */\n constructor({ id }) {\n super({ id });\n this.useMatch = (opts) => {\n return useMatch({\n select: opts == null ? void 0 : opts.select,\n from: this.id,\n structuralSharing: opts == null ? void 0 : opts.structuralSharing\n });\n };\n this.useRouteContext = (opts) => {\n return useMatch({\n from: this.id,\n select: (d) => (opts == null ? void 0 : opts.select) ? opts.select(d.context) : d.context\n });\n };\n this.useSearch = (opts) => {\n return useSearch({\n select: opts == null ? void 0 : opts.select,\n structuralSharing: opts == null ? void 0 : opts.structuralSharing,\n from: this.id\n });\n };\n this.useParams = (opts) => {\n return useParams({\n select: opts == null ? void 0 : opts.select,\n structuralSharing: opts == null ? void 0 : opts.structuralSharing,\n from: this.id\n });\n };\n this.useLoaderDeps = (opts) => {\n return useLoaderDeps({ ...opts, from: this.id, strict: false });\n };\n this.useLoaderData = (opts) => {\n return useLoaderData({ ...opts, from: this.id, strict: false });\n };\n this.useNavigate = () => {\n const router = useRouter();\n return useNavigate({ from: router.routesById[this.id].fullPath });\n };\n this.notFound = (opts) => {\n return notFound({ routeId: this.id, ...opts });\n };\n this.Link = React__default.forwardRef((props, ref) => {\n const router = useRouter();\n const fullPath = router.routesById[this.id].fullPath;\n return /* @__PURE__ */ jsx(Link, { ref, from: fullPath, ...props });\n });\n }\n}\nclass Route extends BaseRoute {\n /**\n * @deprecated Use the `createRoute` function instead.\n */\n constructor(options) {\n super(options);\n this.useMatch = (opts) => {\n return useMatch({\n select: opts == null ? void 0 : opts.select,\n from: this.id,\n structuralSharing: opts == null ? void 0 : opts.structuralSharing\n });\n };\n this.useRouteContext = (opts) => {\n return useMatch({\n ...opts,\n from: this.id,\n select: (d) => (opts == null ? void 0 : opts.select) ? opts.select(d.context) : d.context\n });\n };\n this.useSearch = (opts) => {\n return useSearch({\n select: opts == null ? void 0 : opts.select,\n structuralSharing: opts == null ? void 0 : opts.structuralSharing,\n from: this.id\n });\n };\n this.useParams = (opts) => {\n return useParams({\n select: opts == null ? void 0 : opts.select,\n structuralSharing: opts == null ? void 0 : opts.structuralSharing,\n from: this.id\n });\n };\n this.useLoaderDeps = (opts) => {\n return useLoaderDeps({ ...opts, from: this.id });\n };\n this.useLoaderData = (opts) => {\n return useLoaderData({ ...opts, from: this.id });\n };\n this.useNavigate = () => {\n return useNavigate({ from: this.fullPath });\n };\n this.Link = React__default.forwardRef(\n (props, ref) => {\n return /* @__PURE__ */ jsx(Link, { ref, from: this.fullPath, ...props });\n }\n );\n this.$$typeof = Symbol.for(\"react.memo\");\n }\n}\nfunction createRoute(options) {\n return new Route(options);\n}\nfunction createRootRouteWithContext() {\n return (options) => {\n return createRootRoute(options);\n };\n}\nconst rootRouteWithContext = createRootRouteWithContext;\nclass RootRoute extends BaseRootRoute {\n /**\n * @deprecated `RootRoute` is now an internal implementation detail. Use `createRootRoute()` instead.\n */\n constructor(options) {\n super(options);\n this.useMatch = (opts) => {\n return useMatch({\n select: opts == null ? void 0 : opts.select,\n from: this.id,\n structuralSharing: opts == null ? void 0 : opts.structuralSharing\n });\n };\n this.useRouteContext = (opts) => {\n return useMatch({\n ...opts,\n from: this.id,\n select: (d) => (opts == null ? void 0 : opts.select) ? opts.select(d.context) : d.context\n });\n };\n this.useSearch = (opts) => {\n return useSearch({\n select: opts == null ? void 0 : opts.select,\n structuralSharing: opts == null ? void 0 : opts.structuralSharing,\n from: this.id\n });\n };\n this.useParams = (opts) => {\n return useParams({\n select: opts == null ? void 0 : opts.select,\n structuralSharing: opts == null ? void 0 : opts.structuralSharing,\n from: this.id\n });\n };\n this.useLoaderDeps = (opts) => {\n return useLoaderDeps({ ...opts, from: this.id });\n };\n this.useLoaderData = (opts) => {\n return useLoaderData({ ...opts, from: this.id });\n };\n this.useNavigate = () => {\n return useNavigate({ from: this.fullPath });\n };\n this.Link = React__default.forwardRef(\n (props, ref) => {\n return /* @__PURE__ */ jsx(Link, { ref, from: this.fullPath, ...props });\n }\n );\n this.$$typeof = Symbol.for(\"react.memo\");\n }\n}\nfunction createRootRoute(options) {\n return new RootRoute(options);\n}\nfunction createRouteMask(opts) {\n return opts;\n}\nclass NotFoundRoute extends Route {\n constructor(options) {\n super({\n ...options,\n id: \"404\"\n });\n }\n}\nexport {\n NotFoundRoute,\n RootRoute,\n Route,\n RouteApi,\n createRootRoute,\n createRootRouteWithContext,\n createRoute,\n createRouteMask,\n getRouteApi,\n rootRouteWithContext\n};\n//# sourceMappingURL=route.js.map\n","import warning from \"tiny-warning\";\nimport { createRoute } from \"./route.js\";\nimport { useMatch } from \"./useMatch.js\";\nimport { useLoaderDeps } from \"./useLoaderDeps.js\";\nimport { useLoaderData } from \"./useLoaderData.js\";\nimport { useSearch } from \"./useSearch.js\";\nimport { useParams } from \"./useParams.js\";\nimport { useNavigate } from \"./useNavigate.js\";\nimport { useRouter } from \"./useRouter.js\";\nfunction createFileRoute(path) {\n if (typeof path === \"object\") {\n return new FileRoute(path, {\n silent: true\n }).createRoute(path);\n }\n return new FileRoute(path, {\n silent: true\n }).createRoute;\n}\nclass FileRoute {\n constructor(path, _opts) {\n this.path = path;\n this.createRoute = (options) => {\n warning(\n this.silent,\n \"FileRoute is deprecated and will be removed in the next major version. Use the createFileRoute(path)(options) function instead.\"\n );\n const route = createRoute(options);\n route.isRoot = false;\n return route;\n };\n this.silent = _opts == null ? void 0 : _opts.silent;\n }\n}\nfunction FileRouteLoader(_path) {\n warning(\n false,\n `FileRouteLoader is deprecated and will be removed in the next major version. Please place the loader function in the the main route file, inside the \\`createFileRoute('/path/to/file')(options)\\` options`\n );\n return (loaderFn) => loaderFn;\n}\nclass LazyRoute {\n constructor(opts) {\n this.useMatch = (opts2) => {\n return useMatch({\n select: opts2 == null ? void 0 : opts2.select,\n from: this.options.id,\n structuralSharing: opts2 == null ? void 0 : opts2.structuralSharing\n });\n };\n this.useRouteContext = (opts2) => {\n return useMatch({\n from: this.options.id,\n select: (d) => (opts2 == null ? void 0 : opts2.select) ? opts2.select(d.context) : d.context\n });\n };\n this.useSearch = (opts2) => {\n return useSearch({\n select: opts2 == null ? void 0 : opts2.select,\n structuralSharing: opts2 == null ? void 0 : opts2.structuralSharing,\n from: this.options.id\n });\n };\n this.useParams = (opts2) => {\n return useParams({\n select: opts2 == null ? void 0 : opts2.select,\n structuralSharing: opts2 == null ? void 0 : opts2.structuralSharing,\n from: this.options.id\n });\n };\n this.useLoaderDeps = (opts2) => {\n return useLoaderDeps({ ...opts2, from: this.options.id });\n };\n this.useLoaderData = (opts2) => {\n return useLoaderData({ ...opts2, from: this.options.id });\n };\n this.useNavigate = () => {\n const router = useRouter();\n return useNavigate({ from: router.routesById[this.options.id].fullPath });\n };\n this.options = opts;\n this.$$typeof = Symbol.for(\"react.memo\");\n }\n}\nfunction createLazyRoute(id) {\n return (opts) => {\n return new LazyRoute({\n id,\n ...opts\n });\n };\n}\nfunction createLazyFileRoute(id) {\n if (typeof id === \"object\") {\n return new LazyRoute(id);\n }\n return (opts) => new LazyRoute({ id, ...opts });\n}\nexport {\n FileRoute,\n FileRouteLoader,\n LazyRoute,\n createFileRoute,\n createLazyFileRoute,\n createLazyRoute\n};\n//# sourceMappingURL=fileRoute.js.map\n","import * as React from \"react\";\nimport { isModuleNotFoundError } from \"@tanstack/router-core\";\nfunction lazyRouteComponent(importer, exportName) {\n let loadPromise;\n let comp;\n let error;\n let reload;\n const load = () => {\n if (!loadPromise) {\n loadPromise = importer().then((res) => {\n loadPromise = void 0;\n comp = res[exportName ?? \"default\"];\n }).catch((err) => {\n error = err;\n if (isModuleNotFoundError(error)) {\n if (error instanceof Error && typeof window !== \"undefined\" && typeof sessionStorage !== \"undefined\") {\n const storageKey = `tanstack_router_reload:${error.message}`;\n if (!sessionStorage.getItem(storageKey)) {\n sessionStorage.setItem(storageKey, \"1\");\n reload = true;\n }\n }\n }\n });\n }\n return loadPromise;\n };\n const lazyComp = function Lazy(props) {\n if (reload) {\n window.location.reload();\n throw new Promise(() => {\n });\n }\n if (error) {\n throw error;\n }\n if (!comp) {\n throw load();\n }\n return React.createElement(comp, props);\n };\n lazyComp.preload = load;\n return lazyComp;\n}\nexport {\n lazyRouteComponent\n};\n//# sourceMappingURL=lazyRouteComponent.js.map\n","import * as React from \"react\";\nimport { trimPathRight, getLocationChangeInfo, handleHashScroll } from \"@tanstack/router-core\";\nimport { usePrevious, useLayoutEffect } from \"./utils.js\";\nimport { useRouter } from \"./useRouter.js\";\nimport { useRouterState } from \"./useRouterState.js\";\nfunction Transitioner() {\n const router = useRouter();\n const mountLoadForRouter = React.useRef({ router, mounted: false });\n const [isTransitioning, setIsTransitioning] = React.useState(false);\n const { hasPendingMatches, isLoading } = useRouterState({\n select: (s) => ({\n isLoading: s.isLoading,\n hasPendingMatches: s.matches.some((d) => d.status === \"pending\")\n }),\n structuralSharing: true\n });\n const previousIsLoading = usePrevious(isLoading);\n const isAnyPending = isLoading || isTransitioning || hasPendingMatches;\n const previousIsAnyPending = usePrevious(isAnyPending);\n const isPagePending = isLoading || hasPendingMatches;\n const previousIsPagePending = usePrevious(isPagePending);\n router.startTransition = (fn) => {\n setIsTransitioning(true);\n React.startTransition(() => {\n fn();\n setIsTransitioning(false);\n });\n };\n React.useEffect(() => {\n const unsub = router.history.subscribe(router.load);\n const nextLocation = router.buildLocation({\n to: router.latestLocation.pathname,\n search: true,\n params: true,\n hash: true,\n state: true,\n _includeValidateSearch: true\n });\n if (trimPathRight(router.latestLocation.href) !== trimPathRight(nextLocation.href)) {\n router.commitLocation({ ...nextLocation, replace: true });\n }\n return () => {\n unsub();\n };\n }, [router, router.history]);\n useLayoutEffect(() => {\n if (\n // if we are hydrating from SSR, loading is triggered in ssr-client\n typeof window !== \"undefined\" && router.ssr || mountLoadForRouter.current.router === router && mountLoadForRouter.current.mounted\n ) {\n return;\n }\n mountLoadForRouter.current = { router, mounted: true };\n const tryLoad = async () => {\n try {\n await router.load();\n } catch (err) {\n console.error(err);\n }\n };\n tryLoad();\n }, [router]);\n useLayoutEffect(() => {\n if (previousIsLoading && !isLoading) {\n router.emit({\n type: \"onLoad\",\n // When the new URL has committed, when the new matches have been loaded into state.matches\n ...getLocationChangeInfo(router.state)\n });\n }\n }, [previousIsLoading, router, isLoading]);\n useLayoutEffect(() => {\n if (previousIsPagePending && !isPagePending) {\n router.emit({\n type: \"onBeforeRouteMount\",\n ...getLocationChangeInfo(router.state)\n });\n }\n }, [isPagePending, previousIsPagePending, router]);\n useLayoutEffect(() => {\n if (previousIsAnyPending && !isAnyPending) {\n router.emit({\n type: \"onResolved\",\n ...getLocationChangeInfo(router.state)\n });\n router.__store.setState((s) => ({\n ...s,\n status: \"idle\",\n resolvedLocation: s.location\n }));\n handleHashScroll(router);\n }\n }, [isAnyPending, previousIsAnyPending, router]);\n return null;\n}\nexport {\n Transitioner\n};\n//# sourceMappingURL=Transitioner.js.map\n","import { jsx } from \"react/jsx-runtime\";\nimport { isNotFound } from \"@tanstack/router-core\";\nimport { CatchBoundary } from \"./CatchBoundary.js\";\nimport { useRouterState } from \"./useRouterState.js\";\nfunction CatchNotFound(props) {\n const resetKey = useRouterState({\n select: (s) => `not-found-${s.location.pathname}-${s.status}`\n });\n return /* @__PURE__ */ jsx(\n CatchBoundary,\n {\n getResetKey: () => resetKey,\n onCatch: (error, errorInfo) => {\n var _a;\n if (isNotFound(error)) {\n (_a = props.onCatch) == null ? void 0 : _a.call(props, error, errorInfo);\n } else {\n throw error;\n }\n },\n errorComponent: ({ error }) => {\n var _a;\n if (isNotFound(error)) {\n return (_a = props.fallback) == null ? void 0 : _a.call(props, error);\n } else {\n throw error;\n }\n },\n children: props.children\n }\n );\n}\nfunction DefaultGlobalNotFound() {\n return /* @__PURE__ */ jsx(\"p\", { children: \"Not Found\" });\n}\nexport {\n CatchNotFound,\n DefaultGlobalNotFound\n};\n//# sourceMappingURL=not-found.js.map\n","import { jsx, Fragment } from \"react/jsx-runtime\";\nfunction SafeFragment(props) {\n return /* @__PURE__ */ jsx(Fragment, { children: props.children });\n}\nexport {\n SafeFragment\n};\n//# sourceMappingURL=SafeFragment.js.map\n","import { jsx } from \"react/jsx-runtime\";\nimport warning from \"tiny-warning\";\nimport { DefaultGlobalNotFound } from \"./not-found.js\";\nfunction renderRouteNotFound(router, route, data) {\n if (!route.options.notFoundComponent) {\n if (router.options.defaultNotFoundComponent) {\n return /* @__PURE__ */ jsx(router.options.defaultNotFoundComponent, { data });\n }\n if (process.env.NODE_ENV === \"development\") {\n warning(\n route.options.notFoundComponent,\n `A notFoundError was encountered on the route with ID \"${route.id}\", but a notFoundComponent option was not configured, nor was a router level defaultNotFoundComponent configured. Consider configuring at least one of these to avoid TanStack Router's overly generic defaultNotFoundComponent (<div>Not Found<div>)`\n );\n }\n return /* @__PURE__ */ jsx(DefaultGlobalNotFound, {});\n }\n return /* @__PURE__ */ jsx(route.options.notFoundComponent, { data });\n}\nexport {\n renderRouteNotFound\n};\n//# sourceMappingURL=renderRouteNotFound.js.map\n","import { jsx } from \"react/jsx-runtime\";\nfunction ScriptOnce({\n children\n}) {\n if (typeof document !== \"undefined\") {\n return null;\n }\n return /* @__PURE__ */ jsx(\n \"script\",\n {\n className: \"$tsr\",\n dangerouslySetInnerHTML: {\n __html: [children].filter(Boolean).join(\"\\n\")\n }\n }\n );\n}\nexport {\n ScriptOnce\n};\n//# sourceMappingURL=ScriptOnce.js.map\n","import { jsx } from \"react/jsx-runtime\";\nimport { defaultGetScrollRestorationKey, restoreScroll, storageKey } from \"@tanstack/router-core\";\nimport { useRouter } from \"./useRouter.js\";\nimport { ScriptOnce } from \"./ScriptOnce.js\";\nfunction ScrollRestoration() {\n const router = useRouter();\n const getKey = router.options.getScrollRestorationKey || defaultGetScrollRestorationKey;\n const userKey = getKey(router.latestLocation);\n const resolvedKey = userKey !== defaultGetScrollRestorationKey(router.latestLocation) ? userKey : void 0;\n if (!router.isScrollRestoring || !router.isServer) {\n return null;\n }\n const restoreScrollOptions = {\n storageKey,\n shouldScrollRestoration: true\n };\n if (resolvedKey) {\n restoreScrollOptions.key = resolvedKey;\n }\n return /* @__PURE__ */ jsx(\n ScriptOnce,\n {\n children: `(${restoreScroll.toString()})(${JSON.stringify(restoreScrollOptions)})`\n }\n );\n}\nexport {\n ScrollRestoration\n};\n//# sourceMappingURL=scroll-restoration.js.map\n","import { jsxs, jsx, Fragment } from \"react/jsx-runtime\";\nimport * as React from \"react\";\nimport invariant from \"tiny-invariant\";\nimport warning from \"tiny-warning\";\nimport { isNotFound, rootRouteId, pick, createControlledPromise, isRedirect, getLocationChangeInfo } from \"@tanstack/router-core\";\nimport { CatchBoundary, ErrorComponent } from \"./CatchBoundary.js\";\nimport { useRouterState } from \"./useRouterState.js\";\nimport { useRouter } from \"./useRouter.js\";\nimport { CatchNotFound } from \"./not-found.js\";\nimport { matchContext } from \"./matchContext.js\";\nimport { SafeFragment } from \"./SafeFragment.js\";\nimport { renderRouteNotFound } from \"./renderRouteNotFound.js\";\nimport { ScrollRestoration } from \"./scroll-restoration.js\";\nimport { ClientOnly } from \"./ClientOnly.js\";\nconst Match = React.memo(function MatchImpl({\n matchId\n}) {\n var _a, _b;\n const router = useRouter();\n const matchState = useRouterState({\n select: (s) => {\n const match = s.matches.find((d) => d.id === matchId);\n invariant(\n match,\n `Could not find match for matchId \"${matchId}\". Please file an issue!`\n );\n return pick(match, [\"routeId\", \"ssr\", \"_displayPending\"]);\n },\n structuralSharing: true\n });\n const route = router.routesById[matchState.routeId];\n const PendingComponent = route.options.pendingComponent ?? router.options.defaultPendingComponent;\n const pendingElement = PendingComponent ? /* @__PURE__ */ jsx(PendingComponent, {}) : null;\n const routeErrorComponent = route.options.errorComponent ?? router.options.defaultErrorComponent;\n const routeOnCatch = route.options.onCatch ?? router.options.defaultOnCatch;\n const routeNotFoundComponent = route.isRoot ? (\n // If it's the root route, use the globalNotFound option, with fallback to the notFoundRoute's component\n route.options.notFoundComponent ?? ((_a = router.options.notFoundRoute) == null ? void 0 : _a.options.component)\n ) : route.options.notFoundComponent;\n const resolvedNoSsr = matchState.ssr === false || matchState.ssr === \"data-only\";\n const ResolvedSuspenseBoundary = (\n // If we're on the root route, allow forcefully wrapping in suspense\n (!route.isRoot || route.options.wrapInSuspense || resolvedNoSsr) && (route.options.wrapInSuspense ?? PendingComponent ?? (((_b = route.options.errorComponent) == null ? void 0 : _b.preload) || resolvedNoSsr)) ? React.Suspense : SafeFragment\n );\n const ResolvedCatchBoundary = routeErrorComponent ? CatchBoundary : SafeFragment;\n const ResolvedNotFoundBoundary = routeNotFoundComponent ? CatchNotFound : SafeFragment;\n const resetKey = useRouterState({\n select: (s) => s.loadedAt\n });\n const parentRouteId = useRouterState({\n select: (s) => {\n var _a2;\n const index = s.matches.findIndex((d) => d.id === matchId);\n return (_a2 = s.matches[index - 1]) == null ? void 0 : _a2.routeId;\n }\n });\n const ShellComponent = route.isRoot ? route.options.shellComponent ?? SafeFragment : SafeFragment;\n return /* @__PURE__ */ jsxs(ShellComponent, { children: [\n /* @__PURE__ */ jsx(matchContext.Provider, { value: matchId, children: /* @__PURE__ */ jsx(ResolvedSuspenseBoundary, { fallback: pendingElement, children: /* @__PURE__ */ jsx(\n ResolvedCatchBoundary,\n {\n getResetKey: () => resetKey,\n errorComponent: routeErrorComponent || ErrorComponent,\n onCatch: (error, errorInfo) => {\n if (isNotFound(error)) throw error;\n warning(false, `Error in route match: ${matchId}`);\n routeOnCatch == null ? void 0 : routeOnCatch(error, errorInfo);\n },\n children: /* @__PURE__ */ jsx(\n ResolvedNotFoundBoundary,\n {\n fallback: (error) => {\n if (!routeNotFoundComponent || error.routeId && error.routeId !== matchState.routeId || !error.routeId && !route.isRoot)\n throw error;\n return React.createElement(routeNotFoundComponent, error);\n },\n children: resolvedNoSsr || matchState._displayPending ? /* @__PURE__ */ jsx(ClientOnly, { fallback: pendingElement, children: /* @__PURE__ */ jsx(MatchInner, { matchId }) }) : /* @__PURE__ */ jsx(MatchInner, { matchId })\n }\n )\n }\n ) }) }),\n parentRouteId === rootRouteId && router.options.scrollRestoration ? /* @__PURE__ */ jsxs(Fragment, { children: [\n /* @__PURE__ */ jsx(OnRendered, {}),\n /* @__PURE__ */ jsx(ScrollRestoration, {})\n ] }) : null\n ] });\n});\nfunction OnRendered() {\n const router = useRouter();\n const prevLocationRef = React.useRef(\n void 0\n );\n return /* @__PURE__ */ jsx(\n \"script\",\n {\n suppressHydrationWarning: true,\n ref: (el) => {\n if (el && (prevLocationRef.current === void 0 || prevLocationRef.current.href !== router.latestLocation.href)) {\n router.emit({\n type: \"onRendered\",\n ...getLocationChangeInfo(router.state)\n });\n prevLocationRef.current = router.latestLocation;\n }\n }\n },\n router.latestLocation.state.__TSR_key\n );\n}\nconst MatchInner = React.memo(function MatchInnerImpl({\n matchId\n}) {\n var _a, _b, _c, _d, _e;\n const router = useRouter();\n const { match, key, routeId } = useRouterState({\n select: (s) => {\n const matchIndex = s.matches.findIndex((d) => d.id === matchId);\n const match2 = s.matches[matchIndex];\n const routeId2 = match2.routeId;\n const remountFn = router.routesById[routeId2].options.remountDeps ?? router.options.defaultRemountDeps;\n const remountDeps = remountFn == null ? void 0 : remountFn({\n routeId: routeId2,\n loaderDeps: match2.loaderDeps,\n params: match2._strictParams,\n search: match2._strictSearch\n });\n const key2 = remountDeps ? JSON.stringify(remountDeps) : void 0;\n return {\n key: key2,\n routeId: routeId2,\n match: pick(match2, [\n \"id\",\n \"status\",\n \"error\",\n \"_forcePending\",\n \"_displayPending\"\n ])\n };\n },\n structuralSharing: true\n });\n const route = router.routesById[routeId];\n const out = React.useMemo(() => {\n const Comp = route.options.component ?? router.options.defaultComponent;\n if (Comp) {\n return /* @__PURE__ */ jsx(Comp, {}, key);\n }\n return /* @__PURE__ */ jsx(Outlet, {});\n }, [key, route.options.component, router.options.defaultComponent]);\n if (match._displayPending) {\n throw (_a = router.getMatch(match.id)) == null ? void 0 : _a.displayPendingPromise;\n }\n if (match._forcePending) {\n throw (_b = router.getMatch(match.id)) == null ? void 0 : _b.minPendingPromise;\n }\n if (match.status === \"pending\") {\n const pendingMinMs = route.options.pendingMinMs ?? router.options.defaultPendingMinMs;\n if (pendingMinMs && !((_c = router.getMatch(match.id)) == null ? void 0 : _c.minPendingPromise)) {\n if (!router.isServer) {\n const minPendingPromise = createControlledPromise();\n Promise.resolve().then(() => {\n router.updateMatch(match.id, (prev) => ({\n ...prev,\n minPendingPromise\n }));\n });\n setTimeout(() => {\n minPendingPromise.resolve();\n router.updateMatch(match.id, (prev) => ({\n ...prev,\n minPendingPromise: void 0\n }));\n }, pendingMinMs);\n }\n }\n throw (_d = router.getMatch(match.id)) == null ? void 0 : _d.loadPromise;\n }\n if (match.status === \"notFound\") {\n invariant(isNotFound(match.error), \"Expected a notFound error\");\n return renderRouteNotFound(router, route, match.error);\n }\n if (match.status === \"redirected\") {\n invariant(isRedirect(match.error), \"Expected a redirect error\");\n throw (_e = router.getMatch(match.id)) == null ? void 0 : _e.loadPromise;\n }\n if (match.status === \"error\") {\n if (router.isServer) {\n const RouteErrorComponent = (route.options.errorComponent ?? router.options.defaultErrorComponent) || ErrorComponent;\n return /* @__PURE__ */ jsx(\n RouteErrorComponent,\n {\n error: match.error,\n reset: void 0,\n info: {\n componentStack: \"\"\n }\n }\n );\n }\n throw match.error;\n }\n return out;\n});\nconst Outlet = React.memo(function OutletImpl() {\n const router = useRouter();\n const matchId = React.useContext(matchContext);\n const routeId = useRouterState({\n select: (s) => {\n var _a;\n return (_a = s.matches.find((d) => d.id === matchId)) == null ? void 0 : _a.routeId;\n }\n });\n const route = router.routesById[routeId];\n const parentGlobalNotFound = useRouterState({\n select: (s) => {\n const matches = s.matches;\n const parentMatch = matches.find((d) => d.id === matchId);\n invariant(\n parentMatch,\n `Could not find parent match for matchId \"${matchId}\"`\n );\n return parentMatch.globalNotFound;\n }\n });\n const childMatchId = useRouterState({\n select: (s) => {\n var _a;\n const matches = s.matches;\n const index = matches.findIndex((d) => d.id === matchId);\n return (_a = matches[index + 1]) == null ? void 0 : _a.id;\n }\n });\n const pendingElement = router.options.defaultPendingComponent ? /* @__PURE__ */ jsx(router.options.defaultPendingComponent, {}) : null;\n if (parentGlobalNotFound) {\n return renderRouteNotFound(router, route, void 0);\n }\n if (!childMatchId) {\n return null;\n }\n const nextMatch = /* @__PURE__ */ jsx(Match, { matchId: childMatchId });\n if (matchId === rootRouteId) {\n return /* @__PURE__ */ jsx(React.Suspense, { fallback: pendingElement, children: nextMatch });\n }\n return nextMatch;\n});\nexport {\n Match,\n MatchInner,\n Outlet\n};\n//# sourceMappingURL=Match.js.map\n","import { jsx, jsxs } from \"react/jsx-runtime\";\nimport * as React from \"react\";\nimport warning from \"tiny-warning\";\nimport { CatchBoundary, ErrorComponent } from \"./CatchBoundary.js\";\nimport { useRouterState } from \"./useRouterState.js\";\nimport { useRouter } from \"./useRouter.js\";\nimport { Transitioner } from \"./Transitioner.js\";\nimport { matchContext } from \"./matchContext.js\";\nimport { Match } from \"./Match.js\";\nimport { SafeFragment } from \"./SafeFragment.js\";\nfunction Matches() {\n const router = useRouter();\n const pendingElement = router.options.defaultPendingComponent ? /* @__PURE__ */ jsx(router.options.defaultPendingComponent, {}) : null;\n const ResolvedSuspense = router.isServer || typeof document !== \"undefined\" && router.ssr ? SafeFragment : React.Suspense;\n const inner = /* @__PURE__ */ jsxs(ResolvedSuspense, { fallback: pendingElement, children: [\n !router.isServer && /* @__PURE__ */ jsx(Transitioner, {}),\n /* @__PURE__ */ jsx(MatchesInner, {})\n ] });\n return router.options.InnerWrap ? /* @__PURE__ */ jsx(router.options.InnerWrap, { children: inner }) : inner;\n}\nfunction MatchesInner() {\n const router = useRouter();\n const matchId = useRouterState({\n select: (s) => {\n var _a;\n return (_a = s.matches[0]) == null ? void 0 : _a.id;\n }\n });\n const resetKey = useRouterState({\n select: (s) => s.loadedAt\n });\n const matchComponent = matchId ? /* @__PURE__ */ jsx(Match, { matchId }) : null;\n return /* @__PURE__ */ jsx(matchContext.Provider, { value: matchId, children: router.options.disableGlobalCatchBoundary ? matchComponent : /* @__PURE__ */ jsx(\n CatchBoundary,\n {\n getResetKey: () => resetKey,\n errorComponent: ErrorComponent,\n onCatch: (error) => {\n warning(\n false,\n `The following error wasn't caught by any route! At the very least, consider setting an 'errorComponent' in your RootRoute!`\n );\n warning(false, error.message || error.toString());\n },\n children: matchComponent\n }\n ) });\n}\nfunction useMatchRoute() {\n const router = useRouter();\n useRouterState({\n select: (s) => {\n var _a;\n return [s.location.href, (_a = s.resolvedLocation) == null ? void 0 : _a.href, s.status];\n },\n structuralSharing: true\n });\n return React.useCallback(\n (opts) => {\n const { pending, caseSensitive, fuzzy, includeSearch, ...rest } = opts;\n return router.matchRoute(rest, {\n pending,\n caseSensitive,\n fuzzy,\n includeSearch\n });\n },\n [router]\n );\n}\nfunction MatchRoute(props) {\n const matchRoute = useMatchRoute();\n const params = matchRoute(props);\n if (typeof props.children === \"function\") {\n return props.children(params);\n }\n return params ? props.children : null;\n}\nfunction useMatches(opts) {\n return useRouterState({\n select: (state) => {\n const matches = state.matches;\n return (opts == null ? void 0 : opts.select) ? opts.select(matches) : matches;\n },\n structuralSharing: opts == null ? void 0 : opts.structuralSharing\n });\n}\nfunction useParentMatches(opts) {\n const contextMatchId = React.useContext(matchContext);\n return useMatches({\n select: (matches) => {\n matches = matches.slice(\n 0,\n matches.findIndex((d) => d.id === contextMatchId)\n );\n return (opts == null ? void 0 : opts.select) ? opts.select(matches) : matches;\n },\n structuralSharing: opts == null ? void 0 : opts.structuralSharing\n });\n}\nfunction useChildMatches(opts) {\n const contextMatchId = React.useContext(matchContext);\n return useMatches({\n select: (matches) => {\n matches = matches.slice(\n matches.findIndex((d) => d.id === contextMatchId) + 1\n );\n return (opts == null ? void 0 : opts.select) ? opts.select(matches) : matches;\n },\n structuralSharing: opts == null ? void 0 : opts.structuralSharing\n });\n}\nexport {\n MatchRoute,\n Matches,\n useChildMatches,\n useMatchRoute,\n useMatches,\n useParentMatches\n};\n//# sourceMappingURL=Matches.js.map\n","import { RouterCore } from \"@tanstack/router-core\";\nimport { createFileRoute, createLazyFileRoute } from \"./fileRoute.js\";\nconst createRouter = (options) => {\n return new Router(options);\n};\nclass Router extends RouterCore {\n constructor(options) {\n super(options);\n }\n}\nif (typeof globalThis !== \"undefined\") {\n globalThis.createFileRoute = createFileRoute;\n globalThis.createLazyFileRoute = createLazyFileRoute;\n} else if (typeof window !== \"undefined\") {\n window.createFileRoute = createFileRoute;\n window.createFileRoute = createLazyFileRoute;\n}\nexport {\n Router,\n createRouter\n};\n//# sourceMappingURL=router.js.map\n","import { jsx } from \"react/jsx-runtime\";\nimport { Matches } from \"./Matches.js\";\nimport { getRouterContext } from \"./routerContext.js\";\nfunction RouterContextProvider({\n router,\n children,\n ...rest\n}) {\n if (Object.keys(rest).length > 0) {\n router.update({\n ...router.options,\n ...rest,\n context: {\n ...router.options.context,\n ...rest.context\n }\n });\n }\n const routerContext = getRouterContext();\n const provider = /* @__PURE__ */ jsx(routerContext.Provider, { value: router, children });\n if (router.options.Wrap) {\n return /* @__PURE__ */ jsx(router.options.Wrap, { children: provider });\n }\n return provider;\n}\nfunction RouterProvider({ router, ...rest }) {\n return /* @__PURE__ */ jsx(RouterContextProvider, { router, ...rest, children: /* @__PURE__ */ jsx(Matches, {}) });\n}\nexport {\n RouterContextProvider,\n RouterProvider\n};\n//# sourceMappingURL=RouterProvider.js.map\n","import { defaultGetScrollRestorationKey, getCssSelector, scrollRestorationCache, setupScrollRestoration } from \"@tanstack/router-core\";\nimport { useRouter } from \"./useRouter.js\";\nfunction useScrollRestoration() {\n const router = useRouter();\n setupScrollRestoration(router, true);\n}\nfunction ScrollRestoration(_props) {\n useScrollRestoration();\n if (process.env.NODE_ENV === \"development\") {\n console.warn(\n \"The ScrollRestoration component is deprecated. Use createRouter's `scrollRestoration` option instead.\"\n );\n }\n return null;\n}\nfunction useElementScrollRestoration(options) {\n var _a, _b;\n useScrollRestoration();\n const router = useRouter();\n const getKey = options.getKey || defaultGetScrollRestorationKey;\n let elementSelector = \"\";\n if (options.id) {\n elementSelector = `[data-scroll-restoration-id=\"${options.id}\"]`;\n } else {\n const element = (_a = options.getElement) == null ? void 0 : _a.call(options);\n if (!element) {\n return;\n }\n elementSelector = element instanceof Window ? \"window\" : getCssSelector(element);\n }\n const restoreKey = getKey(router.latestLocation);\n const byKey = (_b = scrollRestorationCache) == null ? void 0 : _b.state[restoreKey];\n return byKey == null ? void 0 : byKey[elementSelector];\n}\nexport {\n ScrollRestoration,\n useElementScrollRestoration\n};\n//# sourceMappingURL=ScrollRestoration.js.map\n","import * as React from \"react\";\nimport { useRouter } from \"./useRouter.js\";\nfunction _resolveBlockerOpts(opts, condition) {\n if (opts === void 0) {\n return {\n shouldBlockFn: () => true,\n withResolver: false\n };\n }\n if (\"shouldBlockFn\" in opts) {\n return opts;\n }\n if (typeof opts === \"function\") {\n const shouldBlock2 = Boolean(condition ?? true);\n const _customBlockerFn2 = async () => {\n if (shouldBlock2) return await opts();\n return false;\n };\n return {\n shouldBlockFn: _customBlockerFn2,\n enableBeforeUnload: shouldBlock2,\n withResolver: false\n };\n }\n const shouldBlock = Boolean(opts.condition ?? true);\n const fn = opts.blockerFn;\n const _customBlockerFn = async () => {\n if (shouldBlock && fn !== void 0) {\n return await fn();\n }\n return shouldBlock;\n };\n return {\n shouldBlockFn: _customBlockerFn,\n enableBeforeUnload: shouldBlock,\n withResolver: fn === void 0\n };\n}\nfunction useBlocker(opts, condition) {\n const {\n shouldBlockFn,\n enableBeforeUnload = true,\n disabled = false,\n withResolver = false\n } = _resolveBlockerOpts(opts, condition);\n const router = useRouter();\n const { history } = router;\n const [resolver, setResolver] = React.useState({\n status: \"idle\",\n current: void 0,\n next: void 0,\n action: void 0,\n proceed: void 0,\n reset: void 0\n });\n React.useEffect(() => {\n const blockerFnComposed = async (blockerFnArgs) => {\n function getLocation(location) {\n const parsedLocation = router.parseLocation(void 0, location);\n const matchedRoutes = router.getMatchedRoutes(\n parsedLocation.pathname,\n void 0\n );\n if (matchedRoutes.foundRoute === void 0) {\n throw new Error(`No route found for location ${location.href}`);\n }\n return {\n routeId: matchedRoutes.foundRoute.id,\n fullPath: matchedRoutes.foundRoute.fullPath,\n pathname: parsedLocation.pathname,\n params: matchedRoutes.routeParams,\n search: parsedLocation.search\n };\n }\n const current = getLocation(blockerFnArgs.currentLocation);\n const next = getLocation(blockerFnArgs.nextLocation);\n const shouldBlock = await shouldBlockFn({\n action: blockerFnArgs.action,\n current,\n next\n });\n if (!withResolver) {\n return shouldBlock;\n }\n if (!shouldBlock) {\n return false;\n }\n const promise = new Promise((resolve) => {\n setResolver({\n status: \"blocked\",\n current,\n next,\n action: blockerFnArgs.action,\n proceed: () => resolve(false),\n reset: () => resolve(true)\n });\n });\n const canNavigateAsync = await promise;\n setResolver({\n status: \"idle\",\n current: void 0,\n next: void 0,\n action: void 0,\n proceed: void 0,\n reset: void 0\n });\n return canNavigateAsync;\n };\n return disabled ? void 0 : history.block({ blockerFn: blockerFnComposed, enableBeforeUnload });\n }, [\n shouldBlockFn,\n enableBeforeUnload,\n disabled,\n withResolver,\n history,\n router\n ]);\n return resolver;\n}\nconst _resolvePromptBlockerArgs = (props) => {\n if (\"shouldBlockFn\" in props) {\n return { ...props };\n }\n const shouldBlock = Boolean(props.condition ?? true);\n const fn = props.blockerFn;\n const _customBlockerFn = async () => {\n if (shouldBlock && fn !== void 0) {\n return await fn();\n }\n return shouldBlock;\n };\n return {\n shouldBlockFn: _customBlockerFn,\n enableBeforeUnload: shouldBlock,\n withResolver: fn === void 0\n };\n};\nfunction Block(opts) {\n const { children, ...rest } = opts;\n const args = _resolvePromptBlockerArgs(rest);\n const resolver = useBlocker(args);\n return children ? typeof children === \"function\" ? children(resolver) : children : null;\n}\nexport {\n Block,\n useBlocker\n};\n//# sourceMappingURL=useBlocker.js.map\n","import { useMatch } from \"./useMatch.js\";\nfunction useRouteContext(opts) {\n return useMatch({\n ...opts,\n select: (match) => opts.select ? opts.select(match.context) : match.context\n });\n}\nexport {\n useRouteContext\n};\n//# sourceMappingURL=useRouteContext.js.map\n","import { useRouterState } from \"./useRouterState.js\";\nfunction useLocation(opts) {\n return useRouterState({\n select: (state) => (opts == null ? void 0 : opts.select) ? opts.select(state.location) : state.location\n });\n}\nexport {\n useLocation\n};\n//# sourceMappingURL=useLocation.js.map\n","import { useRouterState } from \"./useRouterState.js\";\nfunction useCanGoBack() {\n return useRouterState({ select: (s) => s.location.state.__TSR_index !== 0 });\n}\nexport {\n useCanGoBack\n};\n//# sourceMappingURL=useCanGoBack.js.map\n","import { jsx } from \"react/jsx-runtime\";\nimport * as React from \"react\";\nfunction Asset({\n tag,\n attrs,\n children\n}) {\n switch (tag) {\n case \"title\":\n return /* @__PURE__ */ jsx(\"title\", { ...attrs, suppressHydrationWarning: true, children });\n case \"meta\":\n return /* @__PURE__ */ jsx(\"meta\", { ...attrs, suppressHydrationWarning: true });\n case \"link\":\n return /* @__PURE__ */ jsx(\"link\", { ...attrs, suppressHydrationWarning: true });\n case \"style\":\n return /* @__PURE__ */ jsx(\n \"style\",\n {\n ...attrs,\n dangerouslySetInnerHTML: { __html: children }\n }\n );\n case \"script\":\n return /* @__PURE__ */ jsx(Script, { attrs, children });\n default:\n return null;\n }\n}\nfunction Script({\n attrs,\n children\n}) {\n React.useEffect(() => {\n if (attrs == null ? void 0 : attrs.src) {\n const script = document.createElement(\"script\");\n for (const [key, value] of Object.entries(attrs)) {\n if (key !== \"suppressHydrationWarning\" && value !== void 0 && value !== false) {\n script.setAttribute(\n key,\n typeof value === \"boolean\" ? \"\" : String(value)\n );\n }\n }\n document.head.appendChild(script);\n return () => {\n if (script.parentNode) {\n script.parentNode.removeChild(script);\n }\n };\n }\n if (typeof children === \"string\") {\n const script = document.createElement(\"script\");\n script.textContent = children;\n if (attrs) {\n for (const [key, value] of Object.entries(attrs)) {\n if (key !== \"suppressHydrationWarning\" && value !== void 0 && value !== false) {\n script.setAttribute(\n key,\n typeof value === \"boolean\" ? \"\" : String(value)\n );\n }\n }\n }\n document.head.appendChild(script);\n return () => {\n if (script.parentNode) {\n script.parentNode.removeChild(script);\n }\n };\n }\n return void 0;\n }, [attrs, children]);\n if ((attrs == null ? void 0 : attrs.src) && typeof attrs.src === \"string\") {\n return /* @__PURE__ */ jsx(\"script\", { ...attrs, suppressHydrationWarning: true });\n }\n if (typeof children === \"string\") {\n return /* @__PURE__ */ jsx(\n \"script\",\n {\n ...attrs,\n dangerouslySetInnerHTML: { __html: children },\n suppressHydrationWarning: true\n }\n );\n }\n return null;\n}\nexport {\n Asset\n};\n//# sourceMappingURL=Asset.js.map\n","import * as React from \"react\";\nimport { createElement } from \"react\";\nimport { Asset } from \"./Asset.js\";\nimport { useRouter } from \"./useRouter.js\";\nimport { useRouterState } from \"./useRouterState.js\";\nconst useTags = () => {\n const router = useRouter();\n const routeMeta = useRouterState({\n select: (state) => {\n return state.matches.map((match) => match.meta).filter(Boolean);\n }\n });\n const meta = React.useMemo(() => {\n const resultMeta = [];\n const metaByAttribute = {};\n let title;\n [...routeMeta].reverse().forEach((metas) => {\n [...metas].reverse().forEach((m) => {\n if (!m) return;\n if (m.title) {\n if (!title) {\n title = {\n tag: \"title\",\n children: m.title\n };\n }\n } else {\n const attribute = m.name ?? m.property;\n if (attribute) {\n if (metaByAttribute[attribute]) {\n return;\n } else {\n metaByAttribute[attribute] = true;\n }\n }\n resultMeta.push({\n tag: \"meta\",\n attrs: {\n ...m\n }\n });\n }\n });\n });\n if (title) {\n resultMeta.push(title);\n }\n resultMeta.reverse();\n return resultMeta;\n }, [routeMeta]);\n const links = useRouterState({\n select: (state) => {\n var _a;\n const constructed = state.matches.map((match) => match.links).filter(Boolean).flat(1).map((link) => ({\n tag: \"link\",\n attrs: {\n ...link\n }\n }));\n const manifest = (_a = router.ssr) == null ? void 0 : _a.manifest;\n const assets = state.matches.map((match) => {\n var _a2;\n return ((_a2 = manifest == null ? void 0 : manifest.routes[match.routeId]) == null ? void 0 : _a2.assets) ?? [];\n }).filter(Boolean).flat(1).filter((asset) => asset.tag === \"link\").map(\n (asset) => ({\n tag: \"link\",\n attrs: {\n ...asset.attrs,\n suppressHydrationWarning: true\n }\n })\n );\n return [...constructed, ...assets];\n },\n structuralSharing: true\n });\n const preloadMeta = useRouterState({\n select: (state) => {\n const preloadMeta2 = [];\n state.matches.map((match) => router.looseRoutesById[match.routeId]).forEach(\n (route) => {\n var _a, _b, _c, _d;\n return (_d = (_c = (_b = (_a = router.ssr) == null ? void 0 : _a.manifest) == null ? void 0 : _b.routes[route.id]) == null ? void 0 : _c.preloads) == null ? void 0 : _d.filter(Boolean).forEach((preload) => {\n preloadMeta2.push({\n tag: \"link\",\n attrs: {\n rel: \"modulepreload\",\n href: preload\n }\n });\n });\n }\n );\n return preloadMeta2;\n },\n structuralSharing: true\n });\n const styles = useRouterState({\n select: (state) => state.matches.map((match) => match.styles).flat(1).filter(Boolean).map(({ children, ...attrs }) => ({\n tag: \"style\",\n attrs,\n children\n })),\n structuralSharing: true\n });\n const headScripts = useRouterState({\n select: (state) => state.matches.map((match) => match.headScripts).flat(1).filter(Boolean).map(({ children, ...script }) => ({\n tag: \"script\",\n attrs: {\n ...script\n },\n children\n })),\n structuralSharing: true\n });\n return uniqBy(\n [\n ...meta,\n ...preloadMeta,\n ...links,\n ...styles,\n ...headScripts\n ],\n (d) => {\n return JSON.stringify(d);\n }\n );\n};\nfunction HeadContent() {\n const tags = useTags();\n return tags.map((tag) => /* @__PURE__ */ createElement(Asset, { ...tag, key: `tsr-meta-${JSON.stringify(tag)}` }));\n}\nfunction uniqBy(arr, fn) {\n const seen = /* @__PURE__ */ new Set();\n return arr.filter((item) => {\n const key = fn(item);\n if (seen.has(key)) {\n return false;\n }\n seen.add(key);\n return true;\n });\n}\nexport {\n HeadContent,\n useTags\n};\n//# sourceMappingURL=HeadContent.js.map\n","import { jsx, Fragment } from \"react/jsx-runtime\";\nimport { createElement } from \"react\";\nimport { Asset } from \"./Asset.js\";\nimport { useRouterState } from \"./useRouterState.js\";\nimport { useRouter } from \"./useRouter.js\";\nconst Scripts = () => {\n const router = useRouter();\n const assetScripts = useRouterState({\n select: (state) => {\n var _a;\n const assetScripts2 = [];\n const manifest = (_a = router.ssr) == null ? void 0 : _a.manifest;\n if (!manifest) {\n return [];\n }\n state.matches.map((match) => router.looseRoutesById[match.routeId]).forEach(\n (route) => {\n var _a2, _b;\n return (_b = (_a2 = manifest.routes[route.id]) == null ? void 0 : _a2.assets) == null ? void 0 : _b.filter((d) => d.tag === \"script\").forEach((asset) => {\n assetScripts2.push({\n tag: \"script\",\n attrs: asset.attrs,\n children: asset.children\n });\n });\n }\n );\n return assetScripts2;\n },\n structuralSharing: true\n });\n const { scripts } = useRouterState({\n select: (state) => ({\n scripts: state.matches.map((match) => match.scripts).flat(1).filter(Boolean).map(({ children, ...script }) => ({\n tag: \"script\",\n attrs: {\n ...script,\n suppressHydrationWarning: true\n },\n children\n }))\n }),\n structuralSharing: true\n });\n const allScripts = [...scripts, ...assetScripts];\n return /* @__PURE__ */ jsx(Fragment, { children: allScripts.map((asset, i) => /* @__PURE__ */ createElement(Asset, { ...asset, key: `tsr-scripts-${asset.tag}-${i}` })) });\n};\nexport {\n Scripts\n};\n//# sourceMappingURL=Scripts.js.map\n"],"names":["React","require$$0","is","x","y","objectIs","useState","useEffect","useLayoutEffect","useDebugValue","useSyncExternalStore$2","subscribe","getSnapshot","value","_useState","inst","forceUpdate","checkIfSnapshotChanged","latestGetSnapshot","nextValue","useSyncExternalStore$1","shim","useSyncExternalStoreShim_production","shimModule","prefix","invariant","condition","message","warning","__storeToDerived","__derivedToStore","__depsThatHaveWrittenThisTick","__isFlushing","__batchDepth","__pendingUpdates","__initialBatchValues","__flush_internals","relatedVals","sorted","a","b","Derived","derived","stores","store","relatedLinkedDerivedVals","__notifyListeners","listener","__notifyDerivedListeners","__flush","store2","prevState","derivedVals","batch","fn","pendingUpdateToFlush","isUpdaterFunction","updater","Store","initialState","options","_a","_b","unsub","_c","prevDepVals","currDepVals","dep","prevVal","shouldRecompute","lastSeenDepValues","i","cleanup","deps","relatedStores","stateIndexKey","popStateEvent","beforeUnloadEvent","createHistory","opts","location","subscribers","notify","action","subscriber","handleIndexChange","tryNavigation","task","navigateOpts","actionInfo","blockers","isPushOrReplace","blocker","nextLocation","parseHref","cb","path","state","currentIndex","assignKeyAndIndex","index","str","_a2","blockers2","key","createRandomKey","createBrowserHistory","win","originalPushState","originalReplaceState","_getBlockers","_setBlockers","newBlockers","createHref","parseLocation","addedKey","currentLocation","rollbackLocation","nextPopIsGo","ignoreNextPop","skipBlockerNextPop","ignoreNextBeforeUnload","getLocation","next","scheduled","flush","history","queueHistoryAction","type","destHref","href","onPushPop","onPushPopEvent","delta","isForward","isBack","isGo","onBeforeUnload","e","shouldBlock","shouldHaveBeforeUnload","ignoreBlocker","n","args","res","createHashHistory","hashSplit","pathPart","searchPart","hashEntries","hashPart","hashHref","createMemoryHistory","entries","states","_entry","index2","hashIndex","searchIndex","last","arr","isFunction","d","functionalUpdate","previous","pick","parent","keys","obj","replaceEqualDeep","prev","_next","array","isPlainArray","isSimplePlainObject","prevItems","prevSize","nextItems","nextSize","copy","equalItems","o","isPlainObject","hasObjectPrototype","ctor","prot","getObjectKeys","ignoreUndefined","deepEqual","aKeys","bKeys","item","createControlledPromise","onResolve","resolveLoadPromise","rejectLoadPromise","controlledPromise","resolve","reject","escapeJSON","jsonString","shallow","objA","objB","keysA","isModuleNotFoundError","error","SEGMENT_TYPE_PATHNAME","SEGMENT_TYPE_PARAM","SEGMENT_TYPE_WILDCARD","SEGMENT_TYPE_OPTIONAL_PARAM","joinPaths","paths","cleanPath","val","trimPathLeft","trimPathRight","trimPath","removeTrailingSlash","basepath","exactPathTest","pathName1","pathName2","segmentToString","segment","prefixSegment","suffixSegment","param","resolvePath","base","to","trailingSlash","caseSensitive","parseCache","removeBasepath","baseSegments","parsePathname","toSegments","length","toSegment","segmentValues","pathname","cache","cached","parsed","baseParsePathname","PARAM_RE","PARAM_W_CURLY_BRACES_RE","OPTIONAL_PARAM_W_CURLY_BRACES_RE","WILDCARD_RE","WILDCARD_W_CURLY_BRACES_RE","segments","split","part","wildcardBracesMatch","suffix","optionalParamBracesMatch","paramName","paramBracesMatch","interpolatePath","params","leaveWildcards","leaveParams","decodeCharMap","interpolatedPathSegments","encodeParam","isValueString","encodePathParam","isMissingParams","usedParams","interpolatedPath","segmentPrefix","segmentSuffix","encoded","encodedChar","char","matchPathname","currentPathname","matchLocation","pathParams","matchByPath","normalizedBasepath","normalizedPathname","from","fuzzy","routeSegments","isMatch","baseIndex","routeIndex","baseSegment","routeSegment","remainingBaseSegments","_splat","baseValue","rejoinedSplat","_paramValue","matched","paramValue","shouldMatchOptional","lookAhead","futureRouteSegment","notFound","isNotFound","getSafeSessionStorage","storageKey","throttle","wait","timeout","createScrollRestorationCache","safeSessionStorage","persistedState","scrollRestorationCache","defaultGetScrollRestorationKey","getCssSelector","el","ignoreScroll","restoreScroll","storageKey2","behavior","shouldScrollRestoration","scrollToTopSelectors","byKey","resolvedKey","elementEntries","elementSelector","entry","element","hash","hashScrollIntoViewOptions","selector","setupScrollRestoration","router","force","getKey","onScroll","event","attrId","restoreKey","keyEntry","elementEntry","cacheKey","handleHashScroll","encode","pfx","normalizedObject","v","searchParams","toValue","decode","searchParamsPart","acc","previousValue","defaultParseSearch","parseSearchWith","defaultStringifySearch","stringifySearchWith","parser","searchStr","query","stringify","stringifyValue","search","rootRouteId","redirect","headers","response","isRedirect","createLRUCache","max","oldest","newest","touch","toDelete","existing","defaultSerializeError","err","getLocationChangeInfo","routerState","fromLocation","toLocation","pathChanged","hrefChanged","hashChanged","RouterCore","newOptions","previousOptions","getInitialRouterState","routesById","routesByPath","flatRoutes","processRouteTree","route","notFoundRoute","eventType","routerEvent","previousLocation","locationToParse","parse","parsedSearch","__tempLocation","__tempKey","parsedTempLocation","pathnameOrNext","locationSearchOrOpts","routePathname","getMatchedRoutes","id","match","build","dest","allCurrentLocationMatches","lastMatch","fromPath","toPath","routeIsChanging","comparePaths","fromSearch","fromParams","nextTo","nextParams","interpolatedNextTo","destRoutes","nextPathname","nextSearch","validatedSearch","validateSearch","applySearchMiddleware","hashStr","nextState","buildWithMatches","maskedDest","maskedNext","foundMask","_from","maskProps","maskedFinal","viewTransition","isSameState","ignoredProps","prop","isEqual","isSameUrl","previousCommitPromise","maskedLocation","hashScrollIntoView","nextHistory","replace","resetScroll","rest","reloadDocument","normalizeUrl","url","pendingMatches","s","redirect2","loadPromise","prevLocation","exitingMatches","enteringMatches","stayingMatches","previousMatches","newMatches","matches","hook","shouldViewTransition","startViewTransitionParams","resolvedViewTransitionTypes","matchesKey","matchId","findFn","allPreload","onReady","updateMatch","sync","firstBadMatchIndex","rendered","triggerOnReady","resolvePreload","handleRedirectAndNotFound","shouldSkipLoader","resolveAll","rejectAll","_d","handleSerialError","routerCode","_b2","routeId","errorHandlerErr","_a3","_b3","existingMatch","parentMatchId","parentMatch","pendingMs","ssr","defaultSsr","tempSsr","makeMaybe","ssrFnContext","shouldPending","routeNeedsPreload","executeBeforeLoad","setupPendingTimeout","pendingTimeout","prevLoadPromise","paramsError","searchError","abortController","parentMatchContext","context","cause","preload","beforeLoadFnContext","beforeLoadContext","validResolvedMatches","matchPromises","loaderShouldRunAsync","loaderIsRunningAsync","executeHead","_c2","_d2","_e","_f","assetContext","headFnContent","meta","links","headScripts","styles","scripts","potentialPendingMinPromise","latestMatch","prevMatch","head","parentMatchPromise","getLoaderContext","loaderDeps","preload2","age","staleAge","shouldReloadOption","shouldReload","runLoader","loaderData","onErrorError","status","invalid","loaderPromise","invalidate","filter","m","gcTime","lazyRoute","_id","options2","componentTypes","component","activeMatchIds","loadedMatchIds","baseLocation","routeCursor","matchesByRouteId","matchForRoute","foundRoute","matchedRoutes","routeParams","isGlobalNotFound","globalNotFoundRouteId","parseErrors","parsedParamsError","parseParams","parsedParams","PathParamError","getParentContext","preMatchSearch","strictMatchSearch","parentSearch","parentStrictSearch","strictSearch","searchParamError","SearchParamError","loaderDepsHash","previousMatch","parentContext","contextFnContext","opts2","normalize","lazyFn","validateSearch2","input","result","componentType","REQUIRED_PARAM_BASE_SCORE","OPTIONAL_PARAM_BASE_SCORE","WILDCARD_PARAM_BASE_SCORE","handleParam","baseScore","routeTree","initRoute","recurseRoutes","childRoutes","childRoute","existingRoute","trimmedFullPath","children","scoredRoutes","trimmed","skip","optionalParamCount","hasStaticAfter","scores","i2","nextSegment","minLength","trimmedPath","getMatchedParams","fuzzyMatch","matchedParams","_includeValidateSearch","allMiddlewares","middlewares","legacyMiddleware","search2","next2","validate","final","applyNext","currentSearch","middleware","newSearch","TSR_DEFERRED_PROMISE","defer","_promise","promise","data","preloadWarning","parts","BaseRoute","isRoot","customId","fullPath","other","BaseRouteApi","BaseRootRoute","retainSearchParams","stripSearchParams","importShared","useAwaited","Await","props","inner","jsx","AwaitInner","CatchBoundary","errorComponent","ErrorComponent","CatchBoundaryImpl","reset","prevProps","errorInfo","show","setShow","jsxs","React__default","ClientOnly","fallback","useHydrated","require$$1","useSyncExternalStore","useRef","useMemo","withSelector_production","getServerSnapshot","instRef","memoizedSelector","nextSnapshot","hasMemo","memoizedSnapshot","currentSelection","memoizedSelection","nextSelection","maybeGetServerSnapshot","withSelectorModule","useStore","useSyncExternalStoreWithSelector","k","routerContext","getRouterContext","useRouter","useRouterState","contextRouter","previousResult","newSlice","matchContext","dummyMatchContext","useMatch","nearestMatchId","useLoaderData","useLoaderDeps","select","useParams","useSearch","useNavigate","_defaultOpts","navigate","matchIndex","Navigate","previousPropsRef","useStableCallback","fnRef","usePrevious","ref","current","useIntersectionObserver","callback","intersectionObserverOptions","observer","useForwardedRef","innerRef","flushSync","useLinkProps","forwardedRef","isTransitioning","setIsTransitioning","hasRenderFetched","activeProps","inactiveProps","activeOptions","userPreload","userPreloadDelay","startTransition","target","disabled","style","className","onClick","onFocus","onMouseEnter","onMouseLeave","onTouchStart","_params","_search","_hash","_state","_mask","_reloadDocument","_unsafeRelative","_fromLocation","propsSafeToSpread","isExternal","preloadDelay","isActive","currentPathSplit","nextPathSplit","doPreload","preloadViewportIoCallback","handleClick","isCtrlEvent","handleFocus","_","handleTouchStart","handleEnter","eventTarget","timeoutMap","handleLeave","resolvedActiveProps","STATIC_ACTIVE_OBJECT","STATIC_EMPTY_OBJECT","resolvedInactiveProps","resolvedClassName","resolvedStyle","composeHandlers","STATIC_DISABLED_PROPS","STATIC_ACTIVE_PROPS","STATIC_TRANSITIONING_PROPS","handlers","handler","createLink","Comp","Link","_asChild","_type","linkProps","linkOptions","getRouteApi","RouteApi","Route","createRoute","createRootRouteWithContext","createRootRoute","rootRouteWithContext","RootRoute","createRouteMask","NotFoundRoute","createFileRoute","FileRoute","_opts","FileRouteLoader","_path","loaderFn","LazyRoute","createLazyRoute","createLazyFileRoute","lazyRouteComponent","importer","exportName","comp","reload","load","lazyComp","Transitioner","mountLoadForRouter","hasPendingMatches","isLoading","previousIsLoading","isAnyPending","previousIsAnyPending","isPagePending","previousIsPagePending","CatchNotFound","resetKey","DefaultGlobalNotFound","SafeFragment","Fragment","renderRouteNotFound","ScriptOnce","ScrollRestoration","userKey","restoreScrollOptions","Match","matchState","PendingComponent","pendingElement","routeErrorComponent","routeOnCatch","routeNotFoundComponent","resolvedNoSsr","ResolvedSuspenseBoundary","ResolvedCatchBoundary","ResolvedNotFoundBoundary","parentRouteId","ShellComponent","MatchInner","OnRendered","prevLocationRef","match2","routeId2","remountFn","remountDeps","out","Outlet","pendingMinMs","minPendingPromise","RouteErrorComponent","parentGlobalNotFound","childMatchId","nextMatch","Matches","ResolvedSuspense","MatchesInner","matchComponent","useMatchRoute","pending","includeSearch","MatchRoute","useMatches","useParentMatches","contextMatchId","useChildMatches","createRouter","Router","RouterContextProvider","provider","RouterProvider","useScrollRestoration","_props","useElementScrollRestoration","_resolveBlockerOpts","shouldBlock2","useBlocker","shouldBlockFn","enableBeforeUnload","withResolver","resolver","setResolver","blockerFnComposed","blockerFnArgs","parsedLocation","canNavigateAsync","_resolvePromptBlockerArgs","Block","useRouteContext","useLocation","useCanGoBack","Asset","tag","attrs","Script","script","createElement","useTags","routeMeta","resultMeta","metaByAttribute","title","metas","attribute","constructed","link","manifest","assets","asset","preloadMeta","preloadMeta2","uniqBy","HeadContent","seen","Scripts","assetScripts","assetScripts2","allScripts"],"mappings":";;;;;;;;6CAWA,IAAIA,EAAQC,GAAgB,EAC5B,SAASC,EAAGC,EAAGC,EAAG,CAChB,OAAQD,IAAMC,IAAYD,IAAN,GAAW,EAAIA,IAAM,EAAIC,IAAQD,IAAMA,GAAKC,IAAMA,CACxE,CACA,IAAIC,EAA0B,OAAO,OAAO,IAA7B,WAAkC,OAAO,GAAKH,EAC3DI,EAAWN,EAAM,SACjBO,EAAYP,EAAM,UAClBQ,EAAkBR,EAAM,gBACxBS,EAAgBT,EAAM,cACxB,SAASU,EAAuBC,EAAWC,EAAa,CACtD,IAAIC,EAAQD,EAAa,EACvBE,EAAYR,EAAS,CAAE,KAAM,CAAE,MAAOO,EAAO,YAAaD,CAAW,EAAI,EACzEG,EAAOD,EAAU,CAAC,EAAE,KACpBE,EAAcF,EAAU,CAAC,EAC3B,OAAAN,EACE,UAAY,CACVO,EAAK,MAAQF,EACbE,EAAK,YAAcH,EACnBK,EAAuBF,CAAI,GAAKC,EAAY,CAAE,KAAMD,CAAI,CAAE,CAC3D,EACD,CAACJ,EAAWE,EAAOD,CAAW,CAC/B,EACDL,EACE,UAAY,CACV,OAAAU,EAAuBF,CAAI,GAAKC,EAAY,CAAE,KAAMD,CAAI,CAAE,EACnDJ,EAAU,UAAY,CAC3BM,EAAuBF,CAAI,GAAKC,EAAY,CAAE,KAAMD,CAAI,CAAE,CAClE,CAAO,CACF,EACD,CAACJ,CAAS,CACX,EACDF,EAAcI,CAAK,EACZA,CACT,CACA,SAASI,EAAuBF,EAAM,CACpC,IAAIG,EAAoBH,EAAK,YAC7BA,EAAOA,EAAK,MACZ,GAAI,CACF,IAAII,EAAYD,EAAmB,EACnC,MAAO,CAACb,EAASU,EAAMI,CAAS,CACjC,MAAe,CACd,MAAO,EACX,CACA,CACA,SAASC,EAAuBT,EAAWC,EAAa,CACtD,OAAOA,EAAa,CACtB,CACA,IAAIS,EACc,OAAO,OAAvB,KACgB,OAAO,OAAO,SAA9B,KACgB,OAAO,OAAO,SAAS,cAAvC,IACID,EACAV,EACsB,OAAAY,GAAA,qBACftB,EAAM,uBAAjB,OAAwCA,EAAM,qBAAuBqB,2CC9D9DE,GAAA,QAAUtB,GAA2D,cCF9E,IAAIuB,GAAS,mBACb,SAASC,GAAUC,EAAWC,EAAS,CACnC,GAAI,CAAAD,EAIM,MAAA,IAAI,MAAMF,EAAM,CAK9B,CCXA,SAASI,GAAQF,EAAWC,EAAS,CAgBrC,CChBA,MAAME,GAAmC,IAAI,QACvCC,GAAmC,IAAI,QACvCC,GAAgC,CACpC,QAAS,CAAA,CACX,EACA,IAAIC,GAAe,GACfC,GAAe,EACnB,MAAMC,GAAmC,IAAI,IACvCC,GAAuC,IAAI,IACjD,SAASC,GAAkBC,EAAa,CACtC,MAAMC,EAAS,MAAM,KAAKD,CAAW,EAAE,KAAK,CAACE,EAAGC,IAC1CD,aAAaE,IAAWF,EAAE,QAAQ,KAAK,SAASC,CAAC,EAAU,EAC3DA,aAAaC,IAAWD,EAAE,QAAQ,KAAK,SAASD,CAAC,EAAU,GACxD,CACR,EACD,UAAWG,KAAWJ,EAAQ,CAC5B,GAAIP,GAA8B,QAAQ,SAASW,CAAO,EACxD,SAEFX,GAA8B,QAAQ,KAAKW,CAAO,EAClDA,EAAQ,UAAW,EACnB,MAAMC,EAASb,GAAiB,IAAIY,CAAO,EAC3C,GAAIC,EACF,UAAWC,KAASD,EAAQ,CAC1B,MAAME,EAA2BhB,GAAiB,IAAIe,CAAK,EACtDC,GACLT,GAAkBS,CAAwB,CAClD,CAEA,CACA,CACA,SAASC,GAAkBF,EAAO,CAChCA,EAAM,UAAU,QACbG,GAAaA,EAAS,CACrB,QAASH,EAAM,UACf,WAAYA,EAAM,KACnB,CAAA,CACF,CACH,CACA,SAASI,GAAyBN,EAAS,CACzCA,EAAQ,UAAU,QACfK,GAAaA,EAAS,CACrB,QAASL,EAAQ,UACjB,WAAYA,EAAQ,KACrB,CAAA,CACF,CACH,CACA,SAASO,GAAQL,EAAO,CAKtB,GAJIX,GAAe,GAAK,CAACE,GAAqB,IAAIS,CAAK,GACrDT,GAAqB,IAAIS,EAAOA,EAAM,SAAS,EAEjDV,GAAiB,IAAIU,CAAK,EACtB,EAAAX,GAAe,IACf,CAAAD,GACJ,GAAI,CAEF,IADAA,GAAe,GACRE,GAAiB,KAAO,GAAG,CAChC,MAAMS,EAAS,MAAM,KAAKT,EAAgB,EAC1CA,GAAiB,MAAO,EACxB,UAAWgB,KAAUP,EAAQ,CAC3B,MAAMQ,EAAYhB,GAAqB,IAAIe,CAAM,GAAKA,EAAO,UAC7DA,EAAO,UAAYC,EACnBL,GAAkBI,CAAM,CAChC,CACM,UAAWA,KAAUP,EAAQ,CAC3B,MAAMS,EAAcvB,GAAiB,IAAIqB,CAAM,EAC1CE,IACLrB,GAA8B,QAAQ,KAAKmB,CAAM,EACjDd,GAAkBgB,CAAW,EACrC,CACM,UAAWF,KAAUP,EAAQ,CAC3B,MAAMS,EAAcvB,GAAiB,IAAIqB,CAAM,EAC/C,GAAKE,EACL,UAAWV,KAAWU,EACpBJ,GAAyBN,CAAO,CAE1C,CACA,CACA,QAAY,CACRV,GAAe,GACfD,GAA8B,QAAU,CAAE,EAC1CI,GAAqB,MAAO,CAChC,CACA,CACA,SAASkB,GAAMC,EAAI,CACjBrB,KACA,GAAI,CACFqB,EAAI,CACR,QAAY,CAER,GADArB,KACIA,KAAiB,EAAG,CACtB,MAAMsB,EAAuB,MAAM,KAAKrB,EAAgB,EAAE,CAAC,EACvDqB,GACFN,GAAQM,CAAoB,CAEpC,CACA,CACA,CClGA,SAASC,GAAkBC,EAAS,CAClC,OAAO,OAAOA,GAAY,UAC5B,CCAA,MAAMC,EAAM,CACV,YAAYC,EAAcC,EAAS,CACjC,KAAK,UAA4B,IAAI,IACrC,KAAK,UAAab,GAAa,CAC7B,IAAIc,EAAIC,EACR,KAAK,UAAU,IAAIf,CAAQ,EAC3B,MAAMgB,GAASD,GAAMD,EAAK,KAAK,UAAY,KAAO,OAASA,EAAG,cAAgB,KAAO,OAASC,EAAG,KAAKD,EAAId,EAAU,IAAI,EACxH,MAAO,IAAM,CACX,KAAK,UAAU,OAAOA,CAAQ,EACLgB,IAAO,CACjC,CACF,EACD,KAAK,UAAYJ,EACjB,KAAK,MAAQA,EACb,KAAK,QAAUC,CACnB,CACE,SAASH,EAAS,CAChB,IAAII,EAAIC,EAAIE,EACZ,KAAK,UAAY,KAAK,OACjBH,EAAK,KAAK,UAAY,MAAgBA,EAAG,SAC5C,KAAK,MAAQ,KAAK,QAAQ,SAAS,KAAK,SAAS,EAAEJ,CAAO,EAEtDD,GAAkBC,CAAO,EAC3B,KAAK,MAAQA,EAAQ,KAAK,SAAS,EAEnC,KAAK,MAAQA,GAGhBO,GAAMF,EAAK,KAAK,UAAY,KAAO,OAASA,EAAG,WAAa,MAAgBE,EAAG,KAAKF,CAAE,EACvFb,GAAQ,IAAI,CAChB,CACA,CC/BA,MAAMR,EAAQ,CACZ,YAAYmB,EAAS,CACnB,KAAK,UAA4B,IAAI,IACrC,KAAK,eAAiB,CAAE,EACxB,KAAK,kBAAoB,CAAE,EAC3B,KAAK,WAAa,IAAM,CACtB,MAAMK,EAAc,CAAE,EAChBC,EAAc,CAAE,EACtB,UAAWC,KAAO,KAAK,QAAQ,KAC7BF,EAAY,KAAKE,EAAI,SAAS,EAC9BD,EAAY,KAAKC,EAAI,KAAK,EAE5B,YAAK,kBAAoBD,EAClB,CACL,YAAAD,EACA,YAAAC,EACA,QAAS,KAAK,WAAa,MAC5B,CACF,EACD,KAAK,UAAY,IAAM,CACrB,IAAIL,EAAIC,EACR,KAAK,UAAY,KAAK,MACtB,KAAM,CAAE,YAAAG,EAAa,YAAAC,EAAa,QAAAE,CAAO,EAAK,KAAK,WAAY,EAC/D,KAAK,MAAQ,KAAK,QAAQ,GAAG,CAC3B,YAAAH,EACA,YAAAC,EACA,QAAAE,CACR,CAAO,GACAN,GAAMD,EAAK,KAAK,SAAS,WAAa,MAAgBC,EAAG,KAAKD,CAAE,CAClE,EACD,KAAK,iCAAmC,IAAM,CAC5C,UAAWM,KAAO,KAAK,QAAQ,KACzBA,aAAe1B,IACjB0B,EAAI,iCAAkC,EAG1C,IAAIE,EAAkB,GACtB,MAAMC,EAAoB,KAAK,kBACzB,CAAE,YAAAJ,CAAW,EAAK,KAAK,WAAY,EACzC,QAASK,EAAI,EAAGA,EAAIL,EAAY,OAAQK,IACtC,GAAIL,EAAYK,CAAC,IAAMD,EAAkBC,CAAC,EAAG,CAC3CF,EAAkB,GAClB,KACV,CAEUA,GACF,KAAK,UAAW,CAEnB,EACD,KAAK,MAAQ,KACX,KAAK,gBAAiB,EACtB,KAAK,iCAAkC,EAChC,IAAM,CACX,KAAK,oBAAqB,EAC1B,UAAWG,KAAW,KAAK,eACzBA,EAAS,CAEZ,GAEH,KAAK,UAAazB,GAAa,CAC7B,IAAIc,EAAIC,EACR,KAAK,UAAU,IAAIf,CAAQ,EAC3B,MAAMgB,GAASD,GAAMD,EAAK,KAAK,SAAS,cAAgB,KAAO,OAASC,EAAG,KAAKD,EAAId,EAAU,IAAI,EAClG,MAAO,IAAM,CACX,KAAK,UAAU,OAAOA,CAAQ,EACLgB,IAAO,CACjC,CACF,EACD,KAAK,QAAUH,EACf,KAAK,MAAQA,EAAQ,GAAG,CACtB,YAAa,OACb,QAAS,OACT,YAAa,KAAK,aAAa,WACrC,CAAK,CACL,CACE,gBAAgBa,EAAO,KAAK,QAAQ,KAAM,CACxC,UAAWN,KAAOM,EAChB,GAAIN,aAAe1B,GACjB0B,EAAI,gBAAiB,EACrB,KAAK,gBAAgBA,EAAI,QAAQ,IAAI,UAC5BA,aAAeT,GAAO,CAC/B,IAAIb,EAA2BhB,GAAiB,IAAIsC,CAAG,EAClDtB,IACHA,EAA2C,IAAI,IAC/ChB,GAAiB,IAAIsC,EAAKtB,CAAwB,GAEpDA,EAAyB,IAAI,IAAI,EACjC,IAAI6B,EAAgB5C,GAAiB,IAAI,IAAI,EACxC4C,IACHA,EAAgC,IAAI,IACpC5C,GAAiB,IAAI,KAAM4C,CAAa,GAE1CA,EAAc,IAAIP,CAAG,CAC7B,CAEA,CACE,oBAAoBM,EAAO,KAAK,QAAQ,KAAM,CAC5C,UAAWN,KAAOM,EAChB,GAAIN,aAAe1B,GACjB,KAAK,oBAAoB0B,EAAI,QAAQ,IAAI,UAChCA,aAAeT,GAAO,CAC/B,MAAMb,EAA2BhB,GAAiB,IAAIsC,CAAG,EACrDtB,GACFA,EAAyB,OAAO,IAAI,EAEtC,MAAM6B,EAAgB5C,GAAiB,IAAI,IAAI,EAC3C4C,GACFA,EAAc,OAAOP,CAAG,CAElC,CAEA,CACA,CClHA,MAAMQ,GAAgB,cAChBC,GAAgB,WAChBC,GAAoB,eAC1B,SAASC,GAAcC,EAAM,CAC3B,IAAIC,EAAWD,EAAK,YAAa,EACjC,MAAME,EAA8B,IAAI,IAClCC,EAAUC,GAAW,CACzBH,EAAWD,EAAK,YAAa,EAC7BE,EAAY,QAASG,GAAeA,EAAW,CAAE,SAAAJ,EAAU,OAAAG,CAAM,CAAE,CAAC,CACrE,EACKE,EAAqBF,GAAW,CAChCJ,EAAK,qBAAuB,GAAMG,EAAOC,CAAM,EAC9CH,EAAWD,EAAK,YAAa,CACnC,EACKO,EAAgB,MAAO,CAC3B,KAAAC,EACA,aAAAC,EACA,GAAGC,CACP,IAAQ,CACJ,IAAI5B,EAAIC,EAER,GADuD0B,GAAa,eAAkB,GACnE,CACjBD,EAAM,EACN,MACN,CACI,MAAMG,IAAa7B,EAAKkB,EAAK,cAAgB,KAAO,OAASlB,EAAG,KAAKkB,CAAI,IAAM,CAAE,EAC3EY,EAAkBF,EAAW,OAAS,QAAUA,EAAW,OAAS,UAC1E,GAAI,OAAO,SAAa,KAAeC,EAAS,QAAUC,EACxD,UAAWC,KAAWF,EAAU,CAC9B,MAAMG,EAAeC,GAAUL,EAAW,KAAMA,EAAW,KAAK,EAMhE,GALkB,MAAMG,EAAQ,UAAU,CACxC,gBAAiBZ,EACjB,aAAAa,EACA,OAAQJ,EAAW,IAC7B,CAAS,EACc,EACZ3B,EAAKiB,EAAK,YAAc,MAAgBjB,EAAG,KAAKiB,CAAI,EACrD,MACV,CACA,CAEIQ,EAAM,CACP,EACD,MAAO,CACL,IAAI,UAAW,CACb,OAAOP,CACR,EACD,IAAI,QAAS,CACX,OAAOD,EAAK,UAAW,CACxB,EACD,YAAAE,EACA,UAAYc,IACVd,EAAY,IAAIc,CAAE,EACX,IAAM,CACXd,EAAY,OAAOc,CAAE,CACtB,GAEH,KAAM,CAACC,EAAMC,EAAOT,IAAiB,CACnC,MAAMU,EAAelB,EAAS,MAAML,EAAa,EACjDsB,EAAQE,GAAkBD,EAAe,EAAGD,CAAK,EACjDX,EAAc,CACZ,KAAM,IAAM,CACVP,EAAK,UAAUiB,EAAMC,CAAK,EAC1Bf,EAAO,CAAE,KAAM,OAAQ,CACxB,EACD,aAAAM,EACA,KAAM,OACN,KAAAQ,EACA,MAAAC,CACR,CAAO,CACF,EACD,QAAS,CAACD,EAAMC,EAAOT,IAAiB,CACtC,MAAMU,EAAelB,EAAS,MAAML,EAAa,EACjDsB,EAAQE,GAAkBD,EAAcD,CAAK,EAC7CX,EAAc,CACZ,KAAM,IAAM,CACVP,EAAK,aAAaiB,EAAMC,CAAK,EAC7Bf,EAAO,CAAE,KAAM,UAAW,CAC3B,EACD,aAAAM,EACA,KAAM,UACN,KAAAQ,EACA,MAAAC,CACR,CAAO,CACF,EACD,GAAI,CAACG,EAAOZ,IAAiB,CAC3BF,EAAc,CACZ,KAAM,IAAM,CACVP,EAAK,GAAGqB,CAAK,EACbf,EAAkB,CAAE,KAAM,KAAM,MAAAe,CAAK,CAAE,CACxC,EACD,aAAAZ,EACA,KAAM,IACd,CAAO,CACF,EACD,KAAOA,GAAiB,CACtBF,EAAc,CACZ,KAAM,IAAM,CACVP,EAAK,KAAsCS,GAAa,eAAkB,EAAK,EAC/EH,EAAkB,CAAE,KAAM,OAAQ,CACnC,EACD,aAAAG,EACA,KAAM,MACd,CAAO,CACF,EACD,QAAUA,GAAiB,CACzBF,EAAc,CACZ,KAAM,IAAM,CACVP,EAAK,QAAyCS,GAAa,eAAkB,EAAK,EAClFH,EAAkB,CAAE,KAAM,UAAW,CACtC,EACD,aAAAG,EACA,KAAM,SACd,CAAO,CACF,EACD,UAAW,IAAMR,EAAS,MAAML,EAAa,IAAM,EACnD,WAAa0B,GAAQtB,EAAK,WAAWsB,CAAG,EACxC,MAAQT,GAAY,CAClB,IAAI/B,EACJ,GAAI,CAACkB,EAAK,YAAa,MAAO,IAAM,CACnC,EACD,MAAMW,IAAa7B,EAAKkB,EAAK,cAAgB,KAAO,OAASlB,EAAG,KAAKkB,CAAI,IAAM,CAAE,EACjF,OAAAA,EAAK,YAAY,CAAC,GAAGW,EAAUE,CAAO,CAAC,EAChC,IAAM,CACX,IAAIU,EAAKxC,EACT,MAAMyC,IAAcD,EAAMvB,EAAK,cAAgB,KAAO,OAASuB,EAAI,KAAKvB,CAAI,IAAM,CAAE,GACnFjB,EAAKiB,EAAK,cAAgB,MAAgBjB,EAAG,KAAKiB,EAAMwB,EAAU,OAAQ/D,GAAMA,IAAMoD,CAAO,CAAC,CAChG,CACF,EACD,MAAO,IAAM,CACX,IAAI/B,EACJ,OAAQA,EAAKkB,EAAK,QAAU,KAAO,OAASlB,EAAG,KAAKkB,CAAI,CACzD,EACD,QAAS,IAAM,CACb,IAAIlB,EACJ,OAAQA,EAAKkB,EAAK,UAAY,KAAO,OAASlB,EAAG,KAAKkB,CAAI,CAC3D,EACD,OAAAG,CACD,CACH,CACA,SAASiB,GAAkBC,EAAOH,EAAO,CAClCA,IACHA,EAAQ,CAAE,GAEZ,MAAMO,EAAMC,GAAiB,EAC7B,MAAO,CACL,GAAGR,EACH,IAAAO,EAEA,UAAWA,EACX,CAAC7B,EAAa,EAAGyB,CAClB,CACH,CACA,SAASM,GAAqB3B,EAAM,CAClC,IAAIlB,EAAIC,EACR,MAAM6C,EAA+B5B,GAAK,SAAY,OAAO,SAAa,IAAc,OAAS,QAC3F6B,EAAoBD,EAAI,QAAQ,UAChCE,EAAuBF,EAAI,QAAQ,aACzC,IAAIjB,EAAW,CAAE,EACjB,MAAMoB,EAAe,IAAMpB,EACrBqB,EAAgBC,GAAgBtB,EAAWsB,EAC3CC,EAAsClC,GAAK,aAAiBiB,GAASA,GACrEkB,EAAyCnC,GAAK,gBAAmB,IAAMe,GAC3E,GAAGa,EAAI,SAAS,QAAQ,GAAGA,EAAI,SAAS,MAAM,GAAGA,EAAI,SAAS,IAAI,GAClEA,EAAI,QAAQ,KAChB,GACE,GAAI,GAAG9C,EAAK8C,EAAI,QAAQ,QAAU,MAAgB9C,EAAG,YAAc,GAAGC,EAAK6C,EAAI,QAAQ,QAAU,MAAgB7C,EAAG,KAAM,CACxH,MAAMqD,EAAWV,GAAiB,EAClCE,EAAI,QAAQ,aACV,CACE,CAAChC,EAAa,EAAG,EACjB,IAAKwC,EAEL,UAAWA,CACZ,EACD,EACD,CACL,CACE,IAAIC,EAAkBF,EAAe,EACjCG,EACAC,EAAc,GACdC,EAAgB,GAChBC,EAAqB,GACrBC,EAAyB,GAC7B,MAAMC,EAAc,IAAMN,EAC1B,IAAIO,EACAC,EACJ,MAAMC,EAAQ,IAAM,CACbF,IAGLG,EAAQ,mBAAqB,IAC5BH,EAAK,OAAShB,EAAI,QAAQ,UAAYA,EAAI,QAAQ,cACjDgB,EAAK,MACL,GACAA,EAAK,IACN,EACDG,EAAQ,mBAAqB,GAC7BH,EAAO,OACPC,EAAY,OACZP,EAAmB,OACpB,EACKU,EAAqB,CAACC,EAAMC,EAAUhC,IAAU,CACpD,MAAMiC,EAAOjB,EAAWgB,CAAQ,EAC3BL,IACHP,EAAmBD,GAErBA,EAAkBtB,GAAUmC,EAAUhC,CAAK,EAC3C0B,EAAO,CACL,KAAAO,EACA,MAAAjC,EACA,OAAiC0B,GAAK,QAAWK,IAAS,MAC3D,EACIJ,IACHA,EAAY,QAAQ,QAAO,EAAG,KAAK,IAAMC,EAAK,CAAE,EAEnD,EACKM,EAAaH,GAAS,CAC1BZ,EAAkBF,EAAe,EACjCY,EAAQ,OAAO,CAAE,KAAAE,EAAM,CACxB,EACKI,EAAiB,SAAY,CACjC,GAAIb,EAAe,CACjBA,EAAgB,GAChB,MACN,CACI,MAAM1B,EAAeqB,EAAe,EAC9BmB,EAAQxC,EAAa,MAAMlB,EAAa,EAAIyC,EAAgB,MAAMzC,EAAa,EAC/E2D,EAAYD,IAAU,EACtBE,EAASF,IAAU,GACnBG,EAAO,CAACF,GAAa,CAACC,GAAUjB,EACtCA,EAAc,GACd,MAAMnC,EAASqD,EAAO,KAAOD,EAAS,OAAS,UACzCrD,EAASsD,EAAO,CACpB,KAAM,KACN,MAAOH,CACb,EAAQ,CACF,KAAME,EAAS,OAAS,SACzB,EACD,GAAIf,EACFA,EAAqB,OAChB,CACL,MAAMjB,EAAYO,EAAc,EAChC,GAAI,OAAO,SAAa,KAAeP,EAAU,QAC/C,UAAWX,KAAWW,EAMpB,GALkB,MAAMX,EAAQ,UAAU,CACxC,gBAAAwB,EACA,aAAAvB,EACA,OAAAV,CACZ,CAAW,EACc,CACboC,EAAgB,GAChBZ,EAAI,QAAQ,GAAG,CAAC,EAChBmB,EAAQ,OAAO5C,CAAM,EACrB,MACZ,EAGA,CACIkC,EAAkBF,EAAe,EACjCY,EAAQ,OAAO5C,CAAM,CACtB,EACKuD,EAAkBC,GAAM,CAC5B,GAAIjB,EAAwB,CAC1BA,EAAyB,GACzB,MACN,CACI,IAAIkB,EAAc,GAClB,MAAMpC,EAAYO,EAAc,EAChC,GAAI,OAAO,SAAa,KAAeP,EAAU,OAC/C,UAAWX,KAAWW,EAAW,CAC/B,MAAMqC,EAAyBhD,EAAQ,oBAAsB,GAC7D,GAAIgD,IAA2B,GAAM,CACnCD,EAAc,GACd,KACV,CACQ,GAAI,OAAOC,GAA2B,YAAcA,EAAsB,IAAO,GAAM,CACrFD,EAAc,GACd,KACV,CACA,CAEI,GAAIA,EACF,OAAAD,EAAE,eAAgB,EACXA,EAAE,YAAc,EAG1B,EACKZ,EAAUhD,GAAc,CAC5B,YAAA4C,EACA,UAAW,IAAMf,EAAI,QAAQ,OAC7B,UAAW,CAACuB,EAAMjC,IAAU8B,EAAmB,OAAQG,EAAMjC,CAAK,EAClE,aAAc,CAACiC,EAAMjC,IAAU8B,EAAmB,UAAWG,EAAMjC,CAAK,EACxE,KAAO4C,IACDA,IAAerB,EAAqB,IACxCC,EAAyB,GAClBd,EAAI,QAAQ,KAAM,GAE3B,QAAUkC,GAAkB,CACtBA,IAAerB,EAAqB,IACxCC,EAAyB,GACzBd,EAAI,QAAQ,QAAS,CACtB,EACD,GAAKmC,GAAM,CACTxB,EAAc,GACdX,EAAI,QAAQ,GAAGmC,CAAC,CACjB,EACD,WAAaZ,GAASjB,EAAWiB,CAAI,EACrC,MAAAL,EACA,QAAS,IAAM,CACblB,EAAI,QAAQ,UAAYC,EACxBD,EAAI,QAAQ,aAAeE,EAC3BF,EAAI,oBAAoB9B,GAAmB4D,EAAgB,CACzD,QAAS,EACjB,CAAO,EACD9B,EAAI,oBAAoB/B,GAAewD,CAAc,CACtD,EACD,UAAW,IAAM,CACXf,GAAoBD,IAAoBC,IAC1CD,EAAkBC,EAErB,EACD,YAAaP,EACb,YAAaC,EACb,oBAAqB,EACzB,CAAG,EACD,OAAAJ,EAAI,iBAAiB9B,GAAmB4D,EAAgB,CAAE,QAAS,GAAM,EACzE9B,EAAI,iBAAiB/B,GAAewD,CAAc,EAClDzB,EAAI,QAAQ,UAAY,YAAYoC,EAAM,CACxC,MAAMC,EAAMpC,EAAkB,MAAMD,EAAI,QAASoC,CAAI,EACrD,OAAKjB,EAAQ,oBAAoBK,EAAU,MAAM,EAC1Ca,CACR,EACDrC,EAAI,QAAQ,aAAe,YAAYoC,EAAM,CAC3C,MAAMC,EAAMnC,EAAqB,MAAMF,EAAI,QAASoC,CAAI,EACxD,OAAKjB,EAAQ,oBAAoBK,EAAU,SAAS,EAC7Ca,CACR,EACMlB,CACT,CACA,SAASmB,GAAkBlE,EAAM,CAC/B,MAAM4B,EAA+B5B,GAAK,SAAY,OAAO,SAAa,IAAc,OAAS,QACjG,OAAO2B,GAAqB,CAC1B,OAAQC,EACR,cAAe,IAAM,CACnB,MAAMuC,EAAYvC,EAAI,SAAS,KAAK,MAAM,GAAG,EAAE,MAAM,CAAC,EAChDwC,EAAWD,EAAU,CAAC,GAAK,IAC3BE,EAAazC,EAAI,SAAS,OAC1B0C,EAAcH,EAAU,MAAM,CAAC,EAC/BI,EAAWD,EAAY,SAAW,EAAI,GAAK,IAAIA,EAAY,KAAK,GAAG,CAAC,GACpEE,EAAW,GAAGJ,CAAQ,GAAGC,CAAU,GAAGE,CAAQ,GACpD,OAAOxD,GAAUyD,EAAU5C,EAAI,QAAQ,KAAK,CAC7C,EACD,WAAauB,GAAS,GAAGvB,EAAI,SAAS,QAAQ,GAAGA,EAAI,SAAS,MAAM,IAAIuB,CAAI,EAChF,CAAG,CACH,CACA,SAASsB,GAAoBzE,EAAO,CAClC,eAAgB,CAAC,GAAG,CACtB,EAAG,CACD,MAAM0E,EAAU1E,EAAK,eACrB,IAAIqB,EAAQrB,EAAK,aAAe,KAAK,IAAI,KAAK,IAAIA,EAAK,aAAc,CAAC,EAAG0E,EAAQ,OAAS,CAAC,EAAIA,EAAQ,OAAS,EAChH,MAAMC,EAASD,EAAQ,IACrB,CAACE,EAAQC,IAAWzD,GAAkByD,EAAQ,MAAM,CACrD,EAED,OAAO9E,GAAc,CACnB,YAFkB,IAAMgB,GAAU2D,EAAQrD,CAAK,EAAGsD,EAAOtD,CAAK,CAAC,EAG/D,UAAW,IAAMqD,EAAQ,OACzB,UAAW,CAACzD,EAAMC,IAAU,CACtBG,EAAQqD,EAAQ,OAAS,IAC3BA,EAAQ,OAAOrD,EAAQ,CAAC,EACxBsD,EAAO,OAAOtD,EAAQ,CAAC,GAEzBsD,EAAO,KAAKzD,CAAK,EACjBwD,EAAQ,KAAKzD,CAAI,EACjBI,EAAQ,KAAK,IAAIqD,EAAQ,OAAS,EAAG,CAAC,CACvC,EACD,aAAc,CAACzD,EAAMC,IAAU,CAC7ByD,EAAOtD,CAAK,EAAIH,EAChBwD,EAAQrD,CAAK,EAAIJ,CAClB,EACD,KAAM,IAAM,CACVI,EAAQ,KAAK,IAAIA,EAAQ,EAAG,CAAC,CAC9B,EACD,QAAS,IAAM,CACbA,EAAQ,KAAK,IAAIA,EAAQ,EAAGqD,EAAQ,OAAS,CAAC,CAC/C,EACD,GAAKX,GAAM,CACT1C,EAAQ,KAAK,IAAI,KAAK,IAAIA,EAAQ0C,EAAG,CAAC,EAAGW,EAAQ,OAAS,CAAC,CAC5D,EACD,WAAazD,GAASA,CAC1B,CAAG,CACH,CACA,SAASF,GAAUoC,EAAMjC,EAAO,CAC9B,MAAM4D,EAAY3B,EAAK,QAAQ,GAAG,EAC5B4B,EAAc5B,EAAK,QAAQ,GAAG,EAC9Bf,EAAWV,GAAiB,EAClC,MAAO,CACL,KAAAyB,EACA,SAAUA,EAAK,UACb,EACA2B,EAAY,EAAIC,EAAc,EAAI,KAAK,IAAID,EAAWC,CAAW,EAAID,EAAYC,EAAc,EAAIA,EAAc5B,EAAK,MACvH,EACD,KAAM2B,EAAY,GAAK3B,EAAK,UAAU2B,CAAS,EAAI,GACnD,OAAQC,EAAc,GAAK5B,EAAK,MAAM4B,EAAaD,IAAc,GAAK,OAASA,CAAS,EAAI,GAC5F,MAAO5D,GAAS,CAAE,CAACtB,EAAa,EAAG,EAAG,IAAKwC,EAAU,UAAWA,CAAQ,CACzE,CACH,CACA,SAASV,IAAkB,CACzB,OAAQ,KAAK,SAAW,GAAG,SAAS,EAAE,EAAE,UAAU,CAAC,CACrD,CC1ZA,SAASsD,GAAKC,EAAK,CACjB,OAAOA,EAAIA,EAAI,OAAS,CAAC,CAC3B,CACA,SAASC,GAAWC,EAAG,CACrB,OAAO,OAAOA,GAAM,UACtB,CACA,SAASC,GAAiB1G,EAAS2G,EAAU,CAC3C,OAAIH,GAAWxG,CAAO,EACbA,EAAQ2G,CAAQ,EAElB3G,CACT,CACA,SAAS4G,GAAKC,EAAQC,EAAM,CAC1B,OAAOA,EAAK,OAAO,CAACC,EAAKhE,KACvBgE,EAAIhE,CAAG,EAAI8D,EAAO9D,CAAG,EACdgE,GACN,EAAE,CACP,CACA,SAASC,GAAiBC,EAAMC,EAAO,CACrC,GAAID,IAASC,EACX,OAAOD,EAET,MAAM/C,EAAOgD,EACPC,EAAQC,GAAaH,CAAI,GAAKG,GAAalD,CAAI,EACrD,GAAIiD,GAASE,GAAoBJ,CAAI,GAAKI,GAAoBnD,CAAI,EAAG,CACnE,MAAMoD,EAAYH,EAAQF,EAAO,OAAO,KAAKA,CAAI,EAAE,OACjD,OAAO,sBAAsBA,CAAI,CAClC,EACKM,EAAWD,EAAU,OACrBE,EAAYL,EAAQjD,EAAO,OAAO,KAAKA,CAAI,EAAE,OACjD,OAAO,sBAAsBA,CAAI,CAClC,EACKuD,EAAWD,EAAU,OACrBE,EAAOP,EAAQ,CAAA,EAAK,CAAE,EAC5B,IAAIQ,EAAa,EACjB,QAAS7G,EAAI,EAAGA,EAAI2G,EAAU3G,IAAK,CACjC,MAAMiC,EAAMoE,EAAQrG,EAAI0G,EAAU1G,CAAC,GAC9B,CAACqG,GAASG,EAAU,SAASvE,CAAG,GAAKoE,IAAUF,EAAKlE,CAAG,IAAM,QAAUmB,EAAKnB,CAAG,IAAM,QACxF2E,EAAK3E,CAAG,EAAI,OACZ4E,MAEAD,EAAK3E,CAAG,EAAIiE,GAAiBC,EAAKlE,CAAG,EAAGmB,EAAKnB,CAAG,CAAC,EAC7C2E,EAAK3E,CAAG,IAAMkE,EAAKlE,CAAG,GAAKkE,EAAKlE,CAAG,IAAM,QAC3C4E,IAGV,CACI,OAAOJ,IAAaE,GAAYE,IAAeJ,EAAWN,EAAOS,CACrE,CACE,OAAOxD,CACT,CACA,SAASmD,GAAoBO,EAAG,CAC9B,OAEEC,GAAcD,CAAC,GAAK,OAAO,oBAAoBA,CAAC,EAAE,SAAW,OAAO,KAAKA,CAAC,EAAE,MAEhF,CACA,SAASC,GAAcD,EAAG,CACxB,GAAI,CAACE,GAAmBF,CAAC,EACvB,MAAO,GAET,MAAMG,EAAOH,EAAE,YACf,GAAI,OAAOG,EAAS,IAClB,MAAO,GAET,MAAMC,EAAOD,EAAK,UAIlB,MAHI,GAACD,GAAmBE,CAAI,GAGxB,CAACA,EAAK,eAAe,eAAe,EAI1C,CACA,SAASF,GAAmBF,EAAG,CAC7B,OAAO,OAAO,UAAU,SAAS,KAAKA,CAAC,IAAM,iBAC/C,CACA,SAASR,GAAahK,EAAO,CAC3B,OAAO,MAAM,QAAQA,CAAK,GAAKA,EAAM,SAAW,OAAO,KAAKA,CAAK,EAAE,MACrE,CACA,SAAS6K,GAAclB,EAAKmB,EAAiB,CAC3C,IAAIpB,EAAO,OAAO,KAAKC,CAAG,EAC1B,OAAImB,IACFpB,EAAOA,EAAK,OAAQ/D,GAAQgE,EAAIhE,CAAG,IAAM,MAAM,GAE1C+D,CACT,CACA,SAASqB,GAAUrJ,EAAGC,EAAGuC,EAAM,CAC7B,GAAIxC,IAAMC,EACR,MAAO,GAET,GAAI,OAAOD,GAAM,OAAOC,EACtB,MAAO,GAET,GAAI8I,GAAc/I,CAAC,GAAK+I,GAAc9I,CAAC,EAAG,CACxC,MAAMmJ,EAA2C5G,GAAK,iBAAoB,GACpE8G,EAAQH,GAAcnJ,EAAGoJ,CAAe,EACxCG,EAAQJ,GAAclJ,EAAGmJ,CAAe,EAC9C,MAAI,CAA0B5G,GAAK,SAAY8G,EAAM,SAAWC,EAAM,OAC7D,GAEFA,EAAM,MAAOtF,GAAQoF,GAAUrJ,EAAEiE,CAAG,EAAGhE,EAAEgE,CAAG,EAAGzB,CAAI,CAAC,CAC/D,CACE,OAAI,MAAM,QAAQxC,CAAC,GAAK,MAAM,QAAQC,CAAC,EACjCD,EAAE,SAAWC,EAAE,OACV,GAEF,CAACD,EAAE,KAAK,CAACwJ,EAAM3F,IAAU,CAACwF,GAAUG,EAAMvJ,EAAE4D,CAAK,EAAGrB,CAAI,CAAC,EAE3D,EACT,CACA,SAASiH,GAAwBC,EAAW,CAC1C,IAAIC,EACAC,EACJ,MAAMC,EAAoB,IAAI,QAAQ,CAACC,EAASC,IAAW,CACzDJ,EAAqBG,EACrBF,EAAoBG,CACxB,CAAG,EACD,OAAAF,EAAkB,OAAS,UAC3BA,EAAkB,QAAWvL,GAAU,CACrCuL,EAAkB,OAAS,WAC3BA,EAAkB,MAAQvL,EAC1BqL,EAAmBrL,CAAK,EACKoL,IAAUpL,CAAK,CAC7C,EACDuL,EAAkB,OAAU1D,GAAM,CAChC0D,EAAkB,OAAS,WAC3BD,EAAkBzD,CAAC,CACpB,EACM0D,CACT,CACA,SAASG,GAAWC,EAAY,CAC9B,OAAOA,EAAW,QAAQ,MAAO,MAAM,EAAE,QAAQ,KAAM,KAAK,EAAE,QAAQ,KAAM,KAAK,CACnF,CACA,SAASC,GAAQC,EAAMC,EAAM,CAC3B,GAAI,OAAO,GAAGD,EAAMC,CAAI,EACtB,MAAO,GAET,GAAI,OAAOD,GAAS,UAAYA,IAAS,MAAQ,OAAOC,GAAS,UAAYA,IAAS,KACpF,MAAO,GAET,MAAMC,EAAQ,OAAO,KAAKF,CAAI,EAC9B,GAAIE,EAAM,SAAW,OAAO,KAAKD,CAAI,EAAE,OACrC,MAAO,GAET,UAAWZ,KAAQa,EACjB,GAAI,CAAC,OAAO,UAAU,eAAe,KAAKD,EAAMZ,CAAI,GAAK,CAAC,OAAO,GAAGW,EAAKX,CAAI,EAAGY,EAAKZ,CAAI,CAAC,EACxF,MAAO,GAGX,MAAO,EACT,CACA,SAASc,GAAsBC,EAAO,CACpC,OAAI,OAAiCA,GAAM,SAAa,SAAiB,GAClEA,EAAM,QAAQ,WAAW,6CAA6C,GAAKA,EAAM,QAAQ,WAAW,2CAA2C,GAAKA,EAAM,QAAQ,WAAW,kCAAkC,CACxN,CC1JA,MAAMC,GAAwB,EACxBC,GAAqB,EACrBC,GAAwB,EACxBC,GAA8B,EACpC,SAASC,GAAUC,EAAO,CACxB,OAAOC,GACLD,EAAM,OAAQE,GACLA,IAAQ,MAChB,EAAE,KAAK,GAAG,CACZ,CACH,CACA,SAASD,GAAUrH,EAAM,CACvB,OAAOA,EAAK,QAAQ,UAAW,GAAG,CACpC,CACA,SAASuH,GAAavH,EAAM,CAC1B,OAAOA,IAAS,IAAMA,EAAOA,EAAK,QAAQ,UAAW,EAAE,CACzD,CACA,SAASwH,GAAcxH,EAAM,CAC3B,OAAOA,IAAS,IAAMA,EAAOA,EAAK,QAAQ,UAAW,EAAE,CACzD,CACA,SAASyH,GAASzH,EAAM,CACtB,OAAOwH,GAAcD,GAAavH,CAAI,CAAC,CACzC,CACA,SAAS0H,GAAoB7M,EAAO8M,EAAU,CAC5C,OAA8B9M,GAAM,SAAS,GAAG,GAAMA,IAAU,KAAOA,IAAU,GAAG8M,CAAQ,IACnF9M,EAAM,MAAM,EAAG,EAAE,EAEnBA,CACT,CACA,SAAS+M,GAAcC,EAAWC,EAAWH,EAAU,CACrD,OAAOD,GAAoBG,EAAWF,CAAQ,IAAMD,GAAoBI,EAAWH,CAAQ,CAC7F,CACA,SAASI,GAAgBC,EAAS,CAChC,KAAM,CAAE,KAAAhG,EAAM,MAAAnH,CAAK,EAAKmN,EACxB,GAAIhG,IAAS+E,GACX,OAAOlM,EAET,KAAM,CAAE,cAAAoN,EAAe,cAAAC,CAAa,EAAKF,EACzC,GAAIhG,IAASgF,GAAoB,CAC/B,MAAMmB,EAAQtN,EAAM,UAAU,CAAC,EAC/B,GAAIoN,GAAiBC,EACnB,MAAO,GAAGD,CAAa,KAAKE,CAAK,IAAID,CAAa,GAC7C,GAAID,EACT,MAAO,GAAGA,CAAa,KAAKE,CAAK,IAC5B,GAAID,EACT,MAAO,KAAKC,CAAK,IAAID,CAAa,EAExC,CACE,GAAIlG,IAASkF,GAA6B,CACxC,MAAMiB,EAAQtN,EAAM,UAAU,CAAC,EAC/B,OAAIoN,GAAiBC,EACZ,GAAGD,CAAa,MAAME,CAAK,IAAID,CAAa,GAC1CD,EACF,GAAGA,CAAa,MAAME,CAAK,IACzBD,EACF,MAAMC,CAAK,IAAID,CAAa,GAE9B,MAAMC,CAAK,GACtB,CACE,GAAInG,IAASiF,GAAuB,CAClC,GAAIgB,GAAiBC,EACnB,MAAO,GAAGD,CAAa,MAAMC,CAAa,GACrC,GAAID,EACT,MAAO,GAAGA,CAAa,MAClB,GAAIC,EACT,MAAO,MAAMA,CAAa,EAEhC,CACE,OAAOrN,CACT,CACA,SAASuN,GAAY,CACnB,SAAAT,EACA,KAAAU,EACA,GAAAC,EACA,cAAAC,EAAgB,QAChB,cAAAC,EACA,WAAAC,CACF,EAAG,CACD,IAAI5K,EACJwK,EAAOK,GAAef,EAAUU,EAAMG,CAAa,EACnDF,EAAKI,GAAef,EAAUW,EAAIE,CAAa,EAC/C,IAAIG,EAAeC,GAAcP,EAAMI,CAAU,EAAE,MAAO,EAC1D,MAAMI,EAAaD,GAAcN,EAAIG,CAAU,EAC3CE,EAAa,OAAS,KAAO9K,EAAKkG,GAAK4E,CAAY,IAAM,KAAO,OAAS9K,EAAG,SAAW,KACzF8K,EAAa,IAAK,EAEpB,QAASvI,EAAQ,EAAG0I,EAASD,EAAW,OAAQzI,EAAQ0I,EAAQ1I,IAAS,CACvE,MAAM2I,EAAYF,EAAWzI,CAAK,EAC5BvF,EAAQkO,EAAU,MACpBlO,IAAU,IACPuF,EAEMA,IAAU0I,EAAS,GAC5BH,EAAa,KAAKI,CAAS,EAF3BJ,EAAe,CAACI,CAAS,EAIlBlO,IAAU,KACnB8N,EAAa,IAAK,EACT9N,IAAU,KAEnB8N,EAAa,KAAKI,CAAS,CAEjC,CACMJ,EAAa,OAAS,IACpB5E,GAAK4E,CAAY,EAAE,QAAU,IAC3BJ,IAAkB,SACpBI,EAAa,IAAK,EAEXJ,IAAkB,UAC3BI,EAAa,KAAK,CAAE,KAAM5B,GAAuB,MAAO,IAAK,GAGjE,MAAMiC,EAAgBL,EAAa,IAAIZ,EAAe,EAEtD,OADeZ,GAAU,CAACQ,EAAU,GAAGqB,CAAa,CAAC,CAEvD,CACK,MAACJ,GAAgB,CAACK,EAAUC,IAAU,CACzC,GAAI,CAACD,EAAU,MAAO,CAAE,EACxB,MAAME,EAAkCD,GAAM,IAAID,CAAQ,EAC1D,GAAIE,EAAQ,OAAOA,EACnB,MAAMC,EAASC,GAAkBJ,CAAQ,EACzC,OAAyBC,GAAM,IAAID,EAAUG,CAAM,EAC5CA,CACT,EACME,GAAW,YACXC,GAA0B,8CAC1BC,GAAmC,+CACnCC,GAAc,OACdC,GAA6B,oBACnC,SAASL,GAAkBJ,EAAU,CACnCA,EAAW5B,GAAU4B,CAAQ,EAC7B,MAAMU,EAAW,CAAE,EAQnB,GAPIV,EAAS,MAAM,EAAG,CAAC,IAAM,MAC3BA,EAAWA,EAAS,UAAU,CAAC,EAC/BU,EAAS,KAAK,CACZ,KAAM5C,GACN,MAAO,GACb,CAAK,GAEC,CAACkC,EACH,OAAOU,EAET,MAAMC,EAAQX,EAAS,MAAM,GAAG,EAAE,OAAO,OAAO,EAChD,OAAAU,EAAS,KACP,GAAGC,EAAM,IAAKC,GAAS,CACrB,MAAMC,EAAsBD,EAAK,MAAMH,EAA0B,EACjE,GAAII,EAAqB,CACvB,MAAMtO,EAASsO,EAAoB,CAAC,EAC9BC,EAASD,EAAoB,CAAC,EACpC,MAAO,CACL,KAAM7C,GACN,MAAO,IACP,cAAezL,GAAU,OACzB,cAAeuO,GAAU,MAC1B,CACT,CACM,MAAMC,EAA2BH,EAAK,MACpCL,EACD,EACD,GAAIQ,EAA0B,CAC5B,MAAMxO,EAASwO,EAAyB,CAAC,EACnCC,EAAYD,EAAyB,CAAC,EACtCD,EAASC,EAAyB,CAAC,EACzC,MAAO,CACL,KAAM9C,GACN,MAAO+C,EAEP,cAAezO,GAAU,OACzB,cAAeuO,GAAU,MAC1B,CACT,CACM,MAAMG,EAAmBL,EAAK,MAAMN,EAAuB,EAC3D,GAAIW,EAAkB,CACpB,MAAM1O,EAAS0O,EAAiB,CAAC,EAC3BD,EAAYC,EAAiB,CAAC,EAC9BH,EAASG,EAAiB,CAAC,EACjC,MAAO,CACL,KAAMlD,GACN,MAAO,GAAKiD,EACZ,cAAezO,GAAU,OACzB,cAAeuO,GAAU,MAC1B,CACT,CACM,GAAIT,GAAS,KAAKO,CAAI,EAAG,CACvB,MAAMI,EAAYJ,EAAK,UAAU,CAAC,EAClC,MAAO,CACL,KAAM7C,GACN,MAAO,IAAMiD,EACb,cAAe,OACf,cAAe,MAChB,CACT,CACM,OAAIR,GAAY,KAAKI,CAAI,EAChB,CACL,KAAM5C,GACN,MAAO,IACP,cAAe,OACf,cAAe,MAChB,EAEI,CACL,KAAMF,GACN,MAAO8C,EAAK,SAAS,KAAK,EAAIA,EAAK,MAAM,KAAK,EAAE,IAAK7B,GAAY,UAAUA,CAAO,CAAC,EAAE,KAAK,KAAK,EAAI,UAAU6B,CAAI,CAClH,CACF,CAAA,CACF,EACGZ,EAAS,MAAM,EAAE,IAAM,MACzBA,EAAWA,EAAS,UAAU,CAAC,EAC/BU,EAAS,KAAK,CACZ,KAAM5C,GACN,MAAO,GACb,CAAK,GAEI4C,CACT,CACA,SAASQ,GAAgB,CACvB,KAAAnK,EACA,OAAAoK,EACA,eAAAC,EACA,YAAAC,EACA,cAAAC,EACA,WAAA9B,CACF,EAAG,CACD,MAAM+B,EAA2B5B,GAAc5I,EAAMyI,CAAU,EAC/D,SAASgC,EAAYjK,EAAK,CACxB,MAAM3F,EAAQuP,EAAO5J,CAAG,EAClBkK,EAAgB,OAAO7P,GAAU,SACvC,OAAI2F,IAAQ,KAAOA,IAAQ,SAClBkK,EAAgB,UAAU7P,CAAK,EAAIA,EAEnC6P,EAAgBC,GAAgB9P,EAAO0P,CAAa,EAAI1P,CAErE,CACE,IAAI+P,EAAkB,GACtB,MAAMC,EAAa,CAAE,EACfC,EAAmB3D,GACvBqD,EAAyB,IAAKxC,GAAY,CACxC,GAAIA,EAAQ,OAASjB,GACnB,OAAOiB,EAAQ,MAEjB,GAAIA,EAAQ,OAASf,GAAuB,CAC1C4D,EAAW,OAAST,EAAO,OAC3B,MAAMW,EAAgB/C,EAAQ,eAAiB,GACzCgD,EAAgBhD,EAAQ,eAAiB,GAC/C,GAAI,EAAE,WAAYoC,GAEhB,OADAQ,EAAkB,GACdP,EACK,GAAGU,CAAa,GAAG/C,EAAQ,KAAK,GAAGgD,CAAa,GAErDD,GAAiBC,EACZ,GAAGD,CAAa,GAAGC,CAAa,GAEzC,OAEF,MAAMnQ,EAAQ4P,EAAY,QAAQ,EAClC,OAAIJ,EACK,GAAGU,CAAa,GAAG/C,EAAQ,KAAK,GAAGnN,GAAS,EAAE,GAAGmQ,CAAa,GAEhE,GAAGD,CAAa,GAAGlQ,CAAK,GAAGmQ,CAAa,EACvD,CACM,GAAIhD,EAAQ,OAAShB,GAAoB,CACvC,MAAMxG,EAAMwH,EAAQ,MAAM,UAAU,CAAC,EACjC,CAAC4C,GAAmB,EAAEpK,KAAO4J,KAC/BQ,EAAkB,IAEpBC,EAAWrK,CAAG,EAAI4J,EAAO5J,CAAG,EAC5B,MAAMuK,EAAgB/C,EAAQ,eAAiB,GACzCgD,EAAgBhD,EAAQ,eAAiB,GAC/C,GAAIsC,EAAa,CACf,MAAMzP,EAAQ4P,EAAYzC,EAAQ,KAAK,EACvC,MAAO,GAAG+C,CAAa,GAAG/C,EAAQ,KAAK,GAAGnN,GAAS,EAAE,GAAGmQ,CAAa,EAC/E,CACQ,MAAO,GAAGD,CAAa,GAAGN,EAAYjK,CAAG,GAAK,WAAW,GAAGwK,CAAa,EACjF,CACM,GAAIhD,EAAQ,OAASd,GAA6B,CAChD,MAAM1G,EAAMwH,EAAQ,MAAM,UAAU,CAAC,EAC/B+C,EAAgB/C,EAAQ,eAAiB,GACzCgD,EAAgBhD,EAAQ,eAAiB,GAC/C,GAAI,EAAExH,KAAO4J,IAAWA,EAAO5J,CAAG,GAAK,KACrC,OAAI6J,EACK,GAAGU,CAAa,GAAGvK,CAAG,GAAGwK,CAAa,GAE3CD,GAAiBC,EACZ,GAAGD,CAAa,GAAGC,CAAa,GAEzC,OAGF,GADAH,EAAWrK,CAAG,EAAI4J,EAAO5J,CAAG,EACxB8J,EAAa,CACf,MAAMzP,EAAQ4P,EAAYzC,EAAQ,KAAK,EACvC,MAAO,GAAG+C,CAAa,GAAG/C,EAAQ,KAAK,GAAGnN,GAAS,EAAE,GAAGmQ,CAAa,EAC/E,CACQ,OAAIX,EACK,GAAGU,CAAa,GAAGvK,CAAG,GAAGiK,EAAYjK,CAAG,GAAK,EAAE,GAAGwK,CAAa,GAEjE,GAAGD,CAAa,GAAGN,EAAYjK,CAAG,GAAK,EAAE,GAAGwK,CAAa,EACxE,CACM,OAAOhD,EAAQ,KAChB,CAAA,CACF,EACD,MAAO,CAAE,WAAA6C,EAAY,iBAAAC,EAAkB,gBAAAF,CAAiB,CAC1D,CACA,SAASD,GAAgB9P,EAAO0P,EAAe,CAC7C,IAAIU,EAAU,mBAAmBpQ,CAAK,EACtC,GAAI0P,EACF,SAAW,CAACW,EAAaC,CAAI,IAAKZ,EAChCU,EAAUA,EAAQ,WAAWC,EAAaC,CAAI,EAGlD,OAAOF,CACT,CACA,SAASG,GAAczD,EAAU0D,EAAiBC,EAAe7C,EAAY,CAC3E,MAAM8C,EAAaC,GACjB7D,EACA0D,EACAC,EACA7C,CACD,EACD,GAAI,EAAA6C,EAAc,IAAM,CAACC,GAGzB,OAAOA,GAAc,CAAE,CACzB,CACA,SAAS7C,GAAef,EAAUsB,EAAUT,EAAgB,GAAO,CACjE,MAAMiD,EAAqBjD,EAAgBb,EAAWA,EAAS,YAAa,EACtE+D,EAAqBlD,EAAgBS,EAAWA,EAAS,YAAa,EAC5E,OAAQ,GAAI,CAGV,KAAKwC,IAAuB,IAC1B,OAAOxC,EAET,KAAKyC,IAAuBD,EAC1B,MAAO,GAGT,KAAKxC,EAAS,OAAStB,EAAS,OAC9B,OAAOsB,EAKT,KAAKyC,EAAmBD,EAAmB,MAAM,IAAM,IACrD,OAAOxC,EAET,KAAKyC,EAAmB,WAAWD,CAAkB,EACnD,OAAOxC,EAAS,MAAMtB,EAAS,MAAM,EAEvC,QACE,OAAOsB,CACb,CACA,CACA,SAASuC,GAAY7D,EAAUgE,EAAM,CACnC,GAAArD,EACA,MAAAsD,EACA,cAAApD,CACF,EAAGC,EAAY,CACb,GAAId,IAAa,KAAO,CAACgE,EAAK,WAAWhE,CAAQ,EAC/C,OAEFgE,EAAOjD,GAAef,EAAUgE,EAAMnD,CAAa,EACnDF,EAAKI,GAAef,EAAU,GAAGW,GAAM,GAAG,GAAIE,CAAa,EAC3D,MAAMG,EAAeC,GACnB+C,EAAK,WAAW,GAAG,EAAIA,EAAO,IAAIA,CAAI,GACtClD,CACD,EACKoD,EAAgBjD,GACpBN,EAAG,WAAW,GAAG,EAAIA,EAAK,IAAIA,CAAE,GAChCG,CACD,EACK2B,EAAS,CAAE,EAQjB,OAPe0B,GACbnD,EACAkD,EACAzB,EACAwB,EACApD,CACD,EACe4B,EAAS,MAC3B,CACA,SAAS0B,GAAQnD,EAAckD,EAAezB,EAAQwB,EAAOpD,EAAe,CAC1E,IAAI3K,EAAIC,EAAIE,EACZ,IAAI+N,EAAY,EACZC,EAAa,EACjB,KAAOD,EAAYpD,EAAa,QAAUqD,EAAaH,EAAc,QAAQ,CAC3E,MAAMI,EAActD,EAAaoD,CAAS,EACpCG,EAAeL,EAAcG,CAAU,EAC7C,GAAIE,EAAc,CAChB,GAAIA,EAAa,OAASjF,GAAuB,CAC/C,MAAMkF,EAAwBxD,EAAa,MAAMoD,CAAS,EAC1D,IAAIK,EACJ,GAAIF,EAAa,eAAiBA,EAAa,cAAe,CAC5D,GAAI,CAACD,EAAa,MAAO,GACzB,MAAMzQ,EAAS0Q,EAAa,eAAiB,GACvCnC,EAASmC,EAAa,eAAiB,GACvCG,EAAYJ,EAAY,MAM9B,GALI,kBAAmBC,GACjB,CAACG,EAAU,WAAW7Q,CAAM,GAI9B,kBAAmB0Q,GACjB,GAAGrO,EAAK8K,EAAaA,EAAa,OAAS,CAAC,IAAM,MAAgB9K,EAAG,MAAM,SAASkM,CAAM,GAC5F,MAAO,GAGX,IAAIuC,EAAgB,UAClBnF,GAAUgF,EAAsB,IAAKjI,GAAMA,EAAE,KAAK,CAAC,CACpD,EACG1I,GAAU8Q,EAAc,WAAW9Q,CAAM,IAC3C8Q,EAAgBA,EAAc,MAAM9Q,EAAO,MAAM,GAE/CuO,GAAUuC,EAAc,SAASvC,CAAM,IACzCuC,EAAgBA,EAAc,MAC5B,EACAA,EAAc,OAASvC,EAAO,MAC/B,GAEHqC,EAASE,CACnB,MACUF,EAAS,UACPjF,GAAUgF,EAAsB,IAAKjI,GAAMA,EAAE,KAAK,CAAC,CACpD,EAEH,OAAAkG,EAAO,GAAG,EAAIgC,EACdhC,EAAO,OAAYgC,EACZ,EACf,CACM,GAAIF,EAAa,OAASnF,GAAuB,CAC/C,GAAImF,EAAa,QAAU,KAAO,CAAiCD,GAAY,MAAQ,CACrFD,IACA,QACV,CACQ,GAAIC,EAAa,CACf,GAAIzD,GACF,GAAI0D,EAAa,QAAUD,EAAY,MACrC,MAAO,WAEAC,EAAa,MAAM,YAAa,IAAKD,EAAY,MAAM,cAChE,MAAO,GAETF,IACAC,IACA,QACV,KACU,OAAO,EAEjB,CACM,GAAIE,EAAa,OAASlF,GAAoB,CAI5C,GAHI,CAACiF,GAGDA,EAAY,QAAU,IACxB,MAAO,GAET,IAAIM,EAAc,GACdC,EAAU,GACd,GAAIN,EAAa,eAAiBA,EAAa,cAAe,CAC5D,MAAM1Q,EAAS0Q,EAAa,eAAiB,GACvCnC,EAASmC,EAAa,eAAiB,GACvCG,EAAYJ,EAAY,MAI9B,GAHIzQ,GAAU,CAAC6Q,EAAU,WAAW7Q,CAAM,GAGtCuO,GAAU,CAACsC,EAAU,SAAStC,CAAM,EACtC,MAAO,GAET,IAAI0C,EAAaJ,EACb7Q,GAAUiR,EAAW,WAAWjR,CAAM,IACxCiR,EAAaA,EAAW,MAAMjR,EAAO,MAAM,GAEzCuO,GAAU0C,EAAW,SAAS1C,CAAM,IACtC0C,EAAaA,EAAW,MAAM,EAAGA,EAAW,OAAS1C,EAAO,MAAM,GAEpEwC,EAAc,mBAAmBE,CAAU,EAC3CD,EAAU,EACpB,MACUD,EAAc,mBAAmBN,EAAY,KAAK,EAClDO,EAAU,GAERA,IACFpC,EAAO8B,EAAa,MAAM,UAAU,CAAC,CAAC,EAAIK,EAC1CR,KAEFC,IACA,QACR,CACM,GAAIE,EAAa,OAAShF,GAA6B,CACrD,GAAI,CAAC+E,EAAa,CAChBD,IACA,QACV,CACQ,GAAIC,EAAY,QAAU,IAAK,CAC7BD,IACA,QACV,CACQ,IAAIO,EAAc,GACdC,EAAU,GACd,GAAIN,EAAa,eAAiBA,EAAa,cAAe,CAC5D,MAAM1Q,EAAS0Q,EAAa,eAAiB,GACvCnC,EAASmC,EAAa,eAAiB,GACvCG,EAAYJ,EAAY,MAC9B,IAAK,CAACzQ,GAAU6Q,EAAU,WAAW7Q,CAAM,KAAO,CAACuO,GAAUsC,EAAU,SAAStC,CAAM,GAAI,CACxF,IAAI0C,EAAaJ,EACb7Q,GAAUiR,EAAW,WAAWjR,CAAM,IACxCiR,EAAaA,EAAW,MAAMjR,EAAO,MAAM,GAEzCuO,GAAU0C,EAAW,SAAS1C,CAAM,IACtC0C,EAAaA,EAAW,MACtB,EACAA,EAAW,OAAS1C,EAAO,MAC5B,GAEHwC,EAAc,mBAAmBE,CAAU,EAC3CD,EAAU,EACtB,CACA,KAAe,CACL,IAAIE,EAAsB,GAC1B,QAASC,EAAYX,EAAa,EAAGW,EAAYd,EAAc,OAAQc,IAAa,CAClF,MAAMC,EAAqBf,EAAcc,CAAS,EAClD,GAA2CC,GAAmB,OAAU7F,IAAyB6F,EAAmB,QAAUX,EAAY,MAAO,CAC/IS,EAAsB,GACtB,KACd,CACY,GAA2CE,GAAmB,OAAU5F,IAA6D4F,GAAmB,OAAU3F,GAChK,KAEd,CACcyF,IACFH,EAAc,mBAAmBN,EAAY,KAAK,EAClDO,EAAU,GAEtB,CACYA,IACFpC,EAAO8B,EAAa,MAAM,UAAU,CAAC,CAAC,EAAIK,EAC1CR,KAEFC,IACA,QACR,CACA,CACI,GAAID,EAAYpD,EAAa,QAAUqD,GAAcH,EAAc,OACjE,OAAAzB,EAAO,IAAI,EAAIjD,GACbwB,EAAa,MAAMoD,CAAS,EAAE,IAAK7H,GAAMA,EAAE,KAAK,CACjD,EACM,CAAC,CAAC0H,KAAW9N,EAAK+N,EAAcA,EAAc,OAAS,CAAC,IAAM,KAAO,OAAS/N,EAAG,SAAW,IAErG,GAAIkO,EAAaH,EAAc,QAAUE,GAAapD,EAAa,OAAQ,CACzE,QAASpK,EAAIyN,EAAYzN,EAAIsN,EAAc,OAAQtN,IACjD,KAAMP,EAAK6N,EAActN,CAAC,IAAM,KAAO,OAASP,EAAG,QAAUkJ,GAC3D,MAAO,GAGX,KACN,CACI,KACJ,CACE,MAAO,EACT,CC9iBA,SAAS2F,GAASjP,EAAU,GAAI,CAE9B,GADAA,EAAQ,WAAa,GACjBA,EAAQ,MAAO,MAAMA,EACzB,OAAOA,CACT,CACA,SAASkP,GAAWtI,EAAK,CACvB,MAAO,CAAC,CAAyBA,GAAI,UACvC,CCNA,SAASuI,IAAwB,CAC/B,GAAI,CACF,GAAI,OAAO,OAAW,KAAe,OAAO,OAAO,gBAAmB,SACpE,OAAO,OAAO,cAEpB,MAAU,CACN,MACJ,CAEA,CACA,MAAMC,GAAa,8BACbC,GAAW,CAAC3P,EAAI4P,IAAS,CAC7B,IAAIC,EACJ,MAAO,IAAIpK,IAAS,CACboK,IACHA,EAAU,WAAW,IAAM,CACzB7P,EAAG,GAAGyF,CAAI,EACVoK,EAAU,IACX,EAAED,CAAI,EAEV,CACH,EACA,SAASE,IAA+B,CACtC,MAAMC,EAAqBN,GAAuB,EAClD,GAAI,CAACM,EACH,OAEF,MAAMC,EAAiBD,EAAmB,QAAQL,EAAU,EAC5D,IAAI/M,EAAQqN,EAAiB,KAAK,MAAMA,CAAc,EAAI,CAAE,EAC5D,MAAO,CACL,MAAArN,EAIA,IAAMxC,IAAawC,EAAQkE,GAAiB1G,EAASwC,CAAK,GAAKA,EAAOoN,EAAmB,QAAQL,GAAY,KAAK,UAAU/M,CAAK,CAAC,EACnI,CACH,CACA,MAAMsN,GAAyBH,GAA8B,EACvDI,GAAkCxO,GAC/BA,EAAS,MAAM,WAAaA,EAAS,KAE9C,SAASyO,GAAeC,EAAI,CAC1B,MAAM1N,EAAO,CAAE,EACf,IAAIsE,EACJ,KAAOA,EAASoJ,EAAG,YACjB1N,EAAK,QACH,GAAG0N,EAAG,OAAO,cAAc,CAAA,EAAG,QAAQ,KAAKpJ,EAAO,SAAUoJ,CAAE,EAAI,CAAC,GACpE,EACDA,EAAKpJ,EAEP,MAAO,GAAGtE,EAAK,KAAK,KAAK,CAAC,GAAG,YAAa,CAC5C,CACA,IAAI2N,GAAe,GACnB,SAASC,GAAc,CACrB,WAAYC,EACZ,IAAArN,EACA,SAAAsN,EACA,wBAAAC,EACA,qBAAAC,EACA,SAAAhP,CACF,EAAG,CACD,IAAInB,EACJ,IAAIoQ,EACJ,GAAI,CACFA,EAAQ,KAAK,MAAM,eAAe,QAAQJ,CAAW,GAAK,IAAI,CAC/D,OAAQ/G,EAAO,CACd,QAAQ,MAAMA,CAAK,EACnB,MACJ,CACE,MAAMoH,EAAc1N,KAAS3C,EAAK,OAAO,QAAQ,QAAU,KAAO,OAASA,EAAG,KACxEsQ,EAAiBF,EAAMC,CAAW,EACxCP,GAAe,IACd,IAAM,CACL,GAAII,GAA2BI,GAAkB,OAAO,KAAKA,CAAc,EAAE,OAAS,EAAG,CACvF,UAAWC,KAAmBD,EAAgB,CAC5C,MAAME,EAAQF,EAAeC,CAAe,EAC5C,GAAIA,IAAoB,SACtB,OAAO,SAAS,CACd,IAAKC,EAAM,QACX,KAAMA,EAAM,QACZ,SAAAP,CACZ,CAAW,UACQM,EAAiB,CAC1B,MAAME,EAAU,SAAS,cAAcF,CAAe,EAClDE,IACFA,EAAQ,WAAaD,EAAM,QAC3BC,EAAQ,UAAYD,EAAM,QAEtC,CACA,CACM,MACN,CACI,MAAME,GAAQvP,GAAY,OAAO,UAAU,KAAK,MAAM,GAAG,EAAE,CAAC,EAC5D,GAAIuP,EAAM,CACR,MAAMC,GAA6B,OAAO,QAAQ,OAAS,CAAA,GAAI,6BAA+B,GAC9F,GAAIA,EAA2B,CAC7B,MAAMd,EAAK,SAAS,eAAea,CAAI,EACnCb,GACFA,EAAG,eAAec,CAAyB,CAErD,CACM,MACN,CACI,CACE,SACA,GAA4CR,GAAqB,OAAQ9J,GAAMA,IAAM,QAAQ,GAAM,CAAA,CACzG,EAAM,QAASuK,GAAa,CACtB,MAAMH,EAAUG,IAAa,SAAW,OAAS,OAAOA,GAAa,WAAaA,EAAU,EAAG,SAAS,cAAcA,CAAQ,EAC1HH,GACFA,EAAQ,SAAS,CACf,IAAK,EACL,KAAM,EACN,SAAAR,CACV,CAAS,CAET,CAAK,CACL,GAAM,EACJH,GAAe,EACjB,CACA,SAASe,GAAuBC,EAAQC,EAAO,CAQ7C,GAPIrB,KAA2B,UAGCqB,GAASD,EAAO,QAAQ,mBAAqB,MAE3EA,EAAO,kBAAoB,IAEzB,OAAO,SAAa,KAAeA,EAAO,0BAC5C,OAEFA,EAAO,yBAA2B,GAClChB,GAAe,GACf,MAAMkB,EAASF,EAAO,QAAQ,yBAA2BnB,GACzD,OAAO,QAAQ,kBAAoB,SACnC,MAAMsB,EAAYC,GAAU,CAC1B,GAAIpB,IAAgB,CAACgB,EAAO,kBAC1B,OAEF,IAAIP,EAAkB,GACtB,GAAIW,EAAM,SAAW,UAAYA,EAAM,SAAW,OAChDX,EAAkB,aACb,CACL,MAAMY,EAASD,EAAM,OAAO,aAC1B,4BACD,EACGC,EACFZ,EAAkB,gCAAgCY,CAAM,KAExDZ,EAAkBX,GAAesB,EAAM,MAAM,CAErD,CACI,MAAME,EAAaJ,EAAOF,EAAO,MAAM,QAAQ,EAC/CpB,GAAuB,IAAKtN,GAAU,CACpC,MAAMiP,EAAWjP,EAAMgP,CAAU,EAAIhP,EAAMgP,CAAU,GAAK,CAAE,EACtDE,EAAeD,EAASd,CAAe,EAAIc,EAASd,CAAe,GAAK,CAAE,EAChF,GAAIA,IAAoB,SACtBe,EAAa,QAAU,OAAO,SAAW,EACzCA,EAAa,QAAU,OAAO,SAAW,UAChCf,EAAiB,CAC1B,MAAME,EAAU,SAAS,cAAcF,CAAe,EAClDE,IACFa,EAAa,QAAUb,EAAQ,YAAc,EAC7Ca,EAAa,QAAUb,EAAQ,WAAa,EAEtD,CACM,OAAOrO,CACb,CAAK,CACF,EACG,OAAO,SAAa,KACtB,SAAS,iBAAiB,SAAUgN,GAAS6B,EAAU,GAAG,EAAG,EAAI,EAEnEH,EAAO,UAAU,aAAeI,GAAU,CACxC,MAAMK,EAAWP,EAAOE,EAAM,UAAU,EACxC,GAAI,CAACJ,EAAO,gBAAiB,CAC3BA,EAAO,gBAAkB,GACzB,MACN,CACIf,GAAc,CACZ,WAAAZ,GACA,IAAKoC,EACL,SAAUT,EAAO,QAAQ,0BACzB,wBAAyBA,EAAO,kBAChC,qBAAsBA,EAAO,QAAQ,qBACrC,SAAUA,EAAO,QAAQ,QAC/B,CAAK,EACGA,EAAO,mBACTpB,GAAuB,IAAKtN,IAC1BA,EAAMmP,CAAQ,EAAInP,EAAMmP,CAAQ,GAAK,CAAE,EAChCnP,EACR,CAEP,CAAG,CACH,CACA,SAASoP,GAAiBV,EAAQ,CAChC,GAAI,OAAO,SAAa,KAAe,SAAS,cAAe,CAC7D,MAAMH,EAA4BG,EAAO,MAAM,SAAS,MAAM,6BAA+B,GAC7F,GAAIH,GAA6BG,EAAO,MAAM,SAAS,OAAS,GAAI,CAClE,MAAMjB,EAAK,SAAS,eAAeiB,EAAO,MAAM,SAAS,IAAI,EACzDjB,GACFA,EAAG,eAAec,CAAyB,CAEnD,CACA,CACA,CC5MA,SAASc,GAAO9K,EAAK+K,EAAK,CACxB,MAAMC,EAAmB,OAAO,QAAQhL,CAAG,EAAE,QAAQ,CAAC,CAAChE,EAAK3F,CAAK,IAC3D,MAAM,QAAQA,CAAK,EACdA,EAAM,IAAK4U,GAAM,CAACjP,EAAK,OAAOiP,CAAC,CAAC,CAAC,EAEjC,CAAC,CAACjP,EAAK,OAAO3F,CAAK,CAAC,CAAC,CAE/B,EACK6U,EAAe,IAAI,gBAAgBF,CAAgB,EACzD,OAAQD,GAAO,IAAMG,EAAa,SAAU,CAC9C,CACA,SAASC,GAAQtP,EAAK,CACpB,OAAKA,EACDA,IAAQ,QAAgB,GACxBA,IAAQ,OAAe,GACpB,CAACA,EAAM,IAAM,GAAK,CAACA,EAAM,KAAOA,EAAM,CAACA,EAAMA,EAHnC,EAInB,CACA,SAASuP,GAAOvP,EAAKkP,EAAK,CACxB,MAAMM,EAAmBN,EAAMlP,EAAI,MAAMkP,EAAI,MAAM,EAAIlP,EAGvD,MADgB,CAAC,GADI,IAAI,gBAAgBwP,CAAgB,EACxB,QAAO,CAAE,EAC3B,OAAO,CAACC,EAAK,CAACtP,EAAK3F,CAAK,IAAM,CAC3C,MAAMkV,EAAgBD,EAAItP,CAAG,EAC7B,OAAIuP,GAAiB,KACnBD,EAAItP,CAAG,EAAImP,GAAQ9U,CAAK,EAExBiV,EAAItP,CAAG,EAAI,MAAM,QAAQuP,CAAa,EAAI,CAAC,GAAGA,EAAeJ,GAAQ9U,CAAK,CAAC,EAAI,CAACkV,EAAeJ,GAAQ9U,CAAK,CAAC,EAExGiV,CACR,EAAE,EAAE,CACP,CC7BK,MAACE,GAAqBC,GAAgB,KAAK,KAAK,EAC/CC,GAAyBC,GAC7B,KAAK,UACL,KAAK,KACP,EACA,SAASF,GAAgBG,EAAQ,CAC/B,OAAQC,GAAc,CAChBA,EAAU,UAAU,EAAG,CAAC,IAAM,MAChCA,EAAYA,EAAU,UAAU,CAAC,GAEnC,MAAMC,EAAQV,GAAOS,CAAS,EAC9B,UAAW7P,KAAO8P,EAAO,CACvB,MAAMzV,EAAQyV,EAAM9P,CAAG,EACvB,GAAI,OAAO3F,GAAU,SACnB,GAAI,CACFyV,EAAM9P,CAAG,EAAI4P,EAAOvV,CAAK,CAC1B,MAAa,CACtB,CAEA,CACI,OAAOyV,CACR,CACH,CACA,SAASH,GAAoBI,EAAWH,EAAQ,CAC9C,SAASI,EAAelJ,EAAK,CAC3B,GAAI,OAAOA,GAAQ,UAAYA,IAAQ,KACrC,GAAI,CACF,OAAOiJ,EAAUjJ,CAAG,CACrB,MAAa,CACpB,SACe,OAAOA,GAAQ,UAAY,OAAO8I,GAAW,WACtD,GAAI,CACF,OAAAA,EAAO9I,CAAG,EACHiJ,EAAUjJ,CAAG,CACrB,MAAa,CACpB,CAEI,OAAOA,CACX,CACE,OAAQmJ,GAAW,CACjBA,EAAS,CAAE,GAAGA,CAAQ,EACtB,OAAO,KAAKA,CAAM,EAAE,QAASjQ,GAAQ,CACnC,MAAM8G,EAAMmJ,EAAOjQ,CAAG,EAClB,OAAO8G,EAAQ,KAAeA,IAAQ,OACxC,OAAOmJ,EAAOjQ,CAAG,EAEjBiQ,EAAOjQ,CAAG,EAAIgQ,EAAelJ,CAAG,CAExC,CAAK,EACD,MAAM+I,EAAYf,GAAOmB,CAAM,EAAE,SAAU,EAC3C,OAAOJ,EAAY,IAAIA,CAAS,GAAK,EACtC,CACH,CCrDK,MAACK,GAAc,WCApB,SAASC,GAAS5R,EAAM,CAEtB,GADAA,EAAK,WAAaA,EAAK,YAAcA,EAAK,MAAQ,IAC9C,CAACA,EAAK,eACR,GAAI,CACF,IAAI,IAAI,GAAGA,EAAK,IAAI,EAAE,EACtBA,EAAK,eAAiB,EAC5B,MAAY,CACZ,CAEE,MAAM6R,EAAU,IAAI,QAAQ7R,EAAK,SAAW,CAAA,CAAE,EAC1CA,EAAK,MAAQ6R,EAAQ,IAAI,UAAU,IAAM,MAC3CA,EAAQ,IAAI,WAAY7R,EAAK,IAAI,EAEnC,MAAM8R,EAAW,IAAI,SAAS,KAAM,CAClC,OAAQ9R,EAAK,WACb,QAAA6R,CACJ,CAAG,EAED,GADAC,EAAS,QAAU9R,EACfA,EAAK,MACP,MAAM8R,EAER,OAAOA,CACT,CACA,SAASC,GAAWtM,EAAK,CACvB,OAAOA,aAAe,UAAY,CAAC,CAACA,EAAI,OAC1C,CCzBA,SAASuM,GAAeC,EAAK,CAC3B,MAAM9H,EAAwB,IAAI,IAClC,IAAI+H,EACAC,EACJ,MAAMC,EAAS9C,GAAU,CAClBA,EAAM,OACNA,EAAM,MASTA,EAAM,KAAK,KAAOA,EAAM,KACxBA,EAAM,KAAK,KAAOA,EAAM,KACxBA,EAAM,KAAO,OACT6C,IACFA,EAAO,KAAO7C,EACdA,EAAM,KAAO6C,KAbf7C,EAAM,KAAK,KAAO,OAClB4C,EAAS5C,EAAM,KACfA,EAAM,KAAO,OACT6C,IACF7C,EAAM,KAAO6C,EACbA,EAAO,KAAO7C,IAWlB6C,EAAS7C,EACV,EACD,MAAO,CACL,IAAI7N,EAAK,CACP,MAAM6N,EAAQnF,EAAM,IAAI1I,CAAG,EAC3B,GAAK6N,EACL,OAAA8C,EAAM9C,CAAK,EACJA,EAAM,KACd,EACD,IAAI7N,EAAK3F,EAAO,CACd,GAAIqO,EAAM,MAAQ8H,GAAOC,EAAQ,CAC/B,MAAMG,EAAWH,EACjB/H,EAAM,OAAOkI,EAAS,GAAG,EACrBA,EAAS,OACXH,EAASG,EAAS,KAClBA,EAAS,KAAK,KAAO,QAEnBA,IAAaF,IACfA,EAAS,OAEnB,CACM,MAAMG,EAAWnI,EAAM,IAAI1I,CAAG,EAC9B,GAAI6Q,EACFA,EAAS,MAAQxW,EACjBsW,EAAME,CAAQ,MACT,CACL,MAAMhD,EAAQ,CAAE,IAAA7N,EAAK,MAAA3F,EAAO,KAAMqW,CAAQ,EACtCA,IAAQA,EAAO,KAAO7C,GAC1B6C,EAAS7C,EACJ4C,IAAQA,EAAS5C,GACtBnF,EAAM,IAAI1I,EAAK6N,CAAK,CAC5B,CACA,CACG,CACH,CC9CA,SAASiD,GAAsBC,EAAK,CAClC,OAAIA,aAAe,MACL,CACV,KAAMA,EAAI,KACV,QAASA,EAAI,OACf,EAMK,CACL,KAAMA,CACR,CACF,CACA,SAASC,GAAsBC,EAAa,CAC1C,MAAMC,EAAeD,EAAY,iBAC3BE,EAAaF,EAAY,SACzBG,EAA+CF,GAAa,WAAcC,EAAW,SACrFE,EAA+CH,GAAa,OAAUC,EAAW,KACjFG,EAA+CJ,GAAa,OAAUC,EAAW,KACvF,MAAO,CAAE,aAAAD,EAAc,WAAAC,EAAY,YAAAC,EAAa,YAAAC,EAAa,YAAAC,CAAY,CAC3E,CACA,MAAMC,EAAW,CAIf,YAAYnU,EAAS,CACd,KAAA,gBAAkB,GAAG,KAAK,MAC7B,KAAK,SAAW,GAAA,CACjB,GACD,KAAK,gBAAkB,GACvB,KAAK,qBAAuB,OAC5B,KAAK,+BAAiC,OACjC,KAAA,gBAAkC,IACvC,KAAK,kBAAoB,GACzB,KAAK,yBAA2B,GAC3B,KAAA,gBAAmBN,GAAOA,EAAG,EAC7B,KAAA,OAAU0U,GAAe,CACxB,IAAAnU,EACAmU,EAAW,eACL,QAAA,KACN,+MACF,EAEF,MAAMC,EAAkB,KAAK,QAC7B,KAAK,QAAU,CACb,GAAG,KAAK,QACR,GAAGD,CACL,EACA,KAAK,SAAW,KAAK,QAAQ,UAAY,OAAO,SAAa,IAC7D,KAAK,wBAA0B,KAAK,QAAQ,4BAA8B,IAAI,IAC5E,KAAK,QAAQ,4BAA4B,IAAK7G,GAAS,CACrD,mBAAmBA,CAAI,EACvBA,CACD,CAAA,CAAA,EACC,QACA,CAAC,KAAK,UAAY6G,EAAW,UAAYA,EAAW,WAAaC,EAAgB,YAC/ED,EAAW,WAAa,QAAUA,EAAW,WAAa,IAAMA,EAAW,WAAa,IAC1F,KAAK,SAAW,IAEhB,KAAK,SAAW,IAAIvK,GAASuK,EAAW,QAAQ,CAAC,KAGjD,CAAC,KAAK,SAAW,KAAK,QAAQ,SAAW,KAAK,QAAQ,UAAY,KAAK,WACzE,KAAK,QAAU,KAAK,QAAQ,UAAY,KAAK,SAAWxO,GAAoB,CAC1E,eAAgB,CAAC,KAAK,UAAY,GAAG,CAAA,CACtC,EAAI9C,GAAqB,GACrB,KAAA,eAAiB,KAAK,cAAc,GAEvC,KAAK,QAAQ,YAAc,KAAK,YAC7B,KAAA,UAAY,KAAK,QAAQ,UAC9B,KAAK,eAAe,GAEjB,KAAK,UACR,KAAK,QAAU,IAAIhD,GAAMwU,GAAsB,KAAK,cAAc,EAAG,CACnE,SAAU,IAAM,CACd,KAAK,QAAQ,MAAQ,CACnB,GAAG,KAAK,MACR,cAAe,KAAK,MAAM,cAAc,OACrChO,GAAM,CAAC,CAAC,YAAY,EAAE,SAASA,EAAE,MAAM,CAAA,CAE5C,CAAA,CACF,CACD,EACDwK,GAAuB,IAAI,GAEzB,OAAO,OAAW,KAAe,QAAS,QAAU,QAAS7Q,EAAK,OAAO,MAAQ,KAAO,OAASA,EAAG,WAAc,aAC/G,KAAA,+BAAiC,OAAO,IAAI,SAC/C,0CACF,EAEJ,EACA,KAAK,eAAiB,IAAM,CAC1B,KAAM,CAAE,WAAAsU,EAAY,aAAAC,EAAc,WAAAC,CAAA,EAAeC,GAAiB,CAChE,UAAW,KAAK,UAChB,UAAW,CAACC,EAAOhU,IAAM,CACvBgU,EAAM,KAAK,CACT,cAAehU,CAAA,CAChB,CAAA,CACH,CACD,EACD,KAAK,WAAa4T,EAClB,KAAK,aAAeC,EACpB,KAAK,WAAaC,EACZ,MAAAG,EAAgB,KAAK,QAAQ,cAC/BA,IACFA,EAAc,KAAK,CACjB,cAAe,WAAA,CAChB,EACI,KAAA,WAAWA,EAAc,EAAE,EAAIA,EAExC,EACK,KAAA,UAAY,CAACC,EAAWnV,IAAO,CAClC,MAAMP,EAAW,CACf,UAAA0V,EACA,GAAAnV,CACF,EACK,YAAA,YAAY,IAAIP,CAAQ,EACtB,IAAM,CACN,KAAA,YAAY,OAAOA,CAAQ,CAClC,CACF,EACK,KAAA,KAAQ2V,GAAgB,CACtB,KAAA,YAAY,QAAS3V,GAAa,CACjCA,EAAS,YAAc2V,EAAY,MACrC3V,EAAS,GAAG2V,CAAW,CACzB,CACD,CACH,EACK,KAAA,cAAgB,CAACC,EAAkBC,IAAoB,CAC1D,MAAMC,EAAQ,CAAC,CACb,SAAA5J,EACA,OAAAwH,EACA,KAAAlC,EACA,MAAAtO,CAAA,IACI,CACJ,MAAM6S,EAAe,KAAK,QAAQ,YAAYrC,CAAM,EAC9CJ,EAAY,KAAK,QAAQ,gBAAgByC,CAAY,EACpD,MAAA,CACL,SAAA7J,EACA,UAAAoH,EACA,OAAQ5L,GAAqDkO,GAAiB,OAAQG,CAAY,EAClG,KAAMvE,EAAK,MAAM,GAAG,EAAE,QAAQ,EAAE,CAAC,GAAK,GACtC,KAAM,GAAGtF,CAAQ,GAAGoH,CAAS,GAAG9B,CAAI,GACpC,MAAO9J,GAAqDkO,GAAiB,MAAO1S,CAAK,CAC3F,CACF,EACMjB,EAAW6T,EAAMD,GAAmB,KAAK,QAAQ,QAAQ,EACzD,CAAE,eAAAG,EAAgB,UAAAC,CAAU,EAAIhU,EAAS,MAC/C,GAAI+T,IAAmB,CAACC,GAAaA,IAAc,KAAK,iBAAkB,CAClE,MAAAC,EAAqBJ,EAAME,CAAc,EAC5B,OAAAE,EAAA,MAAM,IAAMjU,EAAS,MAAM,IAC3BiU,EAAA,MAAM,UAAYjU,EAAS,MAAM,UACpD,OAAOiU,EAAmB,MAAM,eACzB,CACL,GAAGA,EACH,eAAgBjU,CAClB,CAAA,CAEK,OAAAA,CACT,EACK,KAAA,oBAAsB,CAAC2M,EAAM3L,IACXoI,GAAY,CAC/B,SAAU,KAAK,SACf,KAAMuD,EACN,GAAItE,GAAUrH,CAAI,EAClB,cAAe,KAAK,QAAQ,cAC5B,cAAe,KAAK,QAAQ,cAC5B,WAAY,KAAK,kBAAA,CAClB,EAGH,KAAK,YAAc,CAACkT,EAAgBC,EAAsBpU,IACpD,OAAOmU,GAAmB,SACrB,KAAK,oBACV,CACE,SAAUA,EACV,OAAQC,CACV,EACApU,CACF,EAEK,KAAK,oBAAoBmU,EAAgBC,CAAoB,EAEjE,KAAA,mBAAqBpC,GAAe,GAAG,EACvC,KAAA,iBAAmB,CAAC9H,EAAUmK,IAC1BC,GAAiB,CACtB,SAAApK,EACA,cAAAmK,EACA,SAAU,KAAK,SACf,cAAe,KAAK,QAAQ,cAC5B,aAAc,KAAK,aACnB,WAAY,KAAK,WACjB,WAAY,KAAK,WACjB,WAAY,KAAK,kBAAA,CAClB,EAEE,KAAA,YAAeE,GAAO,CACnB,MAAAC,EAAQ,KAAK,SAASD,CAAE,EACzBC,IACLA,EAAM,gBAAgB,MAAM,EACvB,KAAA,YAAYD,EAAK5O,IACpB,aAAaA,EAAK,cAAc,EACzB,CACL,GAAGA,EACH,eAAgB,MAClB,EACD,EACH,EACA,KAAK,cAAgB,IAAM,CACrB,IAAA7G,GACHA,EAAK,KAAK,MAAM,iBAAmB,MAAgBA,EAAG,QAAS0V,GAAU,CACnE,KAAA,YAAYA,EAAM,EAAE,CAAA,CAC1B,CACH,EACK,KAAA,cAAiBxU,GAAS,CAC7B,MAAMyU,EAAQ,CAACC,EAAO,KAAO,CACvB,IAAA5V,EACE,MAAAuD,EAAkBqS,EAAK,eAAiB,KAAK,eAC7CC,EAA4B,KAAK,YAAYtS,EAAiB,CAClE,eAAgB,EAAA,CACjB,EACKuS,EAAY5P,GAAK2P,CAAyB,EAChD,IAAIE,EAAWD,EAAU,SACzB,MAAME,EAASJ,EAAK,GAAK,KAAK,oBAAoBG,EAAU,GAAGH,EAAK,EAAE,EAAE,EAAI,KAAK,oBAAoBG,EAAU,GAAG,EAC5GE,EAAkB,CAAC,CAACL,EAAK,IAAM,CAACM,GAAaN,EAAK,GAAG,SAAA,EAAYG,CAAQ,GAAK,CAACG,GAAaF,EAAQD,CAAQ,EAC9GH,EAAK,iBAAmB,OAC1BG,EAAWxS,EAAgB,SAClB0S,GAAmBL,EAAK,OACjCG,EAAWH,EAAK,MAiBlB,MAAMO,EAAaL,EAAU,OACvBM,EAAa,CAAE,GAAGN,EAAU,MAAO,EACnCO,EAAST,EAAK,GAAK,KAAK,oBAAoBG,EAAU,GAAGH,EAAK,EAAE,EAAE,EAAI,KAAK,oBAAoBG,EAAU,GAAG,EAClH,IAAIO,EAAaV,EAAK,SAAW,IAASA,EAAK,SAAW,KAAO,CAAM,GAAAA,EAAK,QAAU,MAAU,GAAOQ,EAAa,CAClH,GAAGA,EACH,GAAG9P,GAAiBsP,EAAK,OAAQQ,CAAU,CAC7C,EACA,MAAMG,EAAqBjK,GAAgB,CACzC,KAAM+J,EACN,OAAQC,GAAc,CAAC,EACvB,WAAY,KAAK,kBAClB,CAAA,EAAE,iBACGE,EAAa,KAAK,YACtBD,EACA,CAAC,EACD,CACE,eAAgB,EAAA,CAClB,EACA,IAAKlQ,GAAM,KAAK,gBAAgBA,EAAE,OAAO,CAAC,EACxC,OAAO,KAAKiQ,CAAU,EAAE,OAAS,GACxBE,EAAA,IAAK9B,GAAU,CACpB,IAAAjS,EACK,QAAAA,EAAMiS,EAAM,QAAQ,SAAW,KAAO,OAASjS,EAAI,YAAciS,EAAM,QAAQ,eACzF,CAAA,EAAE,OAAO,OAAO,EAAE,QAASjV,GAAO,CACjC6W,EAAa,CAAE,GAAGA,EAAY,GAAG7W,EAAG6W,CAAU,CAAE,CAAA,CACjD,EAEH,MAAMG,EAAenK,GAAgB,CAGnC,KAAM+J,EACN,OAAQC,GAAc,CAAC,EACvB,eAAgB,GAChB,YAAapV,EAAK,YAClB,cAAe,KAAK,wBACpB,WAAY,KAAK,kBAClB,CAAA,EAAE,iBACH,IAAIwV,EAAaP,EACb,GAAAjV,EAAK,0BAA4BlB,EAAK,KAAK,QAAQ,SAAW,MAAgBA,EAAG,QAAS,CAC5F,IAAI2W,EAAkB,CAAC,EACZH,EAAA,QAAS9B,GAAU,CACxB,GAAA,CACEA,EAAM,QAAQ,iBACEiC,EAAA,CAChB,GAAGA,EACH,GAAGC,GAAelC,EAAM,QAAQ,eAAgB,CAC9C,GAAGiC,EACH,GAAGD,CAAA,CACJ,GAAK,CAAA,CACR,EACF,MACM,CAAA,CACR,CACD,EACYA,EAAAC,CAAA,CAEfD,EAAaG,GAAsB,CACjC,OAAQH,EACR,KAAAd,EACA,WAAAY,EACA,uBAAwBtV,EAAK,sBAAA,CAC9B,EACYwV,EAAA9P,GAAiBuP,EAAYO,CAAU,EACpD,MAAMlE,EAAY,KAAK,QAAQ,gBAAgBkE,CAAU,EACnDhG,EAAOkF,EAAK,OAAS,GAAOrS,EAAgB,KAAOqS,EAAK,KAAOtP,GAAiBsP,EAAK,KAAMrS,EAAgB,IAAI,EAAI,OACnHuT,EAAUpG,EAAO,IAAIA,CAAI,GAAK,GACpC,IAAIqG,EAAYnB,EAAK,QAAU,GAAOrS,EAAgB,MAAQqS,EAAK,MAAQtP,GAAiBsP,EAAK,MAAOrS,EAAgB,KAAK,EAAI,CAAC,EACtH,OAAAwT,EAAAnQ,GAAiBrD,EAAgB,MAAOwT,CAAS,EACtD,CACL,SAAUN,EACV,OAAQC,EACR,UAAAlE,EACA,MAAOuE,EACP,KAAMrG,GAAQ,GACd,KAAM,GAAG+F,CAAY,GAAGjE,CAAS,GAAGsE,CAAO,GAC3C,eAAgBlB,EAAK,cACvB,CACF,EACMoB,EAAmB,CAACpB,EAAO,CAAA,EAAIqB,IAAe,CAC9C,IAAAjX,EACE,MAAA8D,EAAO6R,EAAMC,CAAI,EACvB,IAAIsB,EAAaD,EAAatB,EAAMsB,CAAU,EAAI,OAClD,GAAI,CAACC,EAAY,CACf,IAAI3K,EAAS,CAAC,EACR,MAAA4K,GAAanX,EAAK,KAAK,QAAQ,aAAe,KAAO,OAASA,EAAG,KAAMqG,GAAM,CACjF,MAAMqP,EAAQnI,GACZ,KAAK,SACLzJ,EAAK,SACL,CACE,GAAIuC,EAAE,KACN,cAAe,GACf,MAAO,EACT,EACA,KAAK,kBACP,EACA,OAAIqP,GACOnJ,EAAAmJ,EACF,IAEF,EAAA,CACR,EACD,GAAIyB,EAAW,CACb,KAAM,CAAE,KAAMC,EAAO,GAAGC,CAAc,EAAAF,EACzBF,EAAA,CACX,GAAGzQ,GAAKtF,EAAM,CAAC,MAAM,CAAC,EACtB,GAAGmW,EACH,OAAA9K,CACF,EACA2K,EAAavB,EAAMsB,CAAU,CAAA,CAC/B,CAEF,GAAIC,EAAY,CACR,MAAAI,EAAc3B,EAAMsB,CAAU,EACpCnT,EAAK,eAAiBwT,CAAA,CAEjB,OAAAxT,CACT,EACA,OAAI5C,EAAK,KACA8V,EAAiB9V,EAAM,CAC5B,GAAGsF,GAAKtF,EAAM,CAAC,MAAM,CAAC,EACtB,GAAGA,EAAK,IAAA,CACT,EAEI8V,EAAiB9V,CAAI,CAC9B,EACA,KAAK,eAAiB,CAAC,CACrB,eAAAqW,EACA,cAAAvS,EACA,GAAGlB,CAAA,IACC,CACJ,MAAM0T,EAAc,IAAM,CACxB,MAAMC,EAAe,CACnB,MAEA,YACA,cACA,6BACF,EACaA,EAAA,QAASC,GAAS,CAC7B5T,EAAK,MAAM4T,CAAI,EAAI,KAAK,eAAe,MAAMA,CAAI,CAAA,CAClD,EACD,MAAMC,EAAU5P,GAAUjE,EAAK,MAAO,KAAK,eAAe,KAAK,EAClD,OAAA2T,EAAA,QAASC,GAAS,CACtB,OAAA5T,EAAK,MAAM4T,CAAI,CAAA,CACvB,EACMC,CACT,EACMC,EAAY,KAAK,eAAe,OAAS9T,EAAK,KAC9C+T,EAAwB,KAAK,sBAI/B,GAHC,KAAA,sBAAwB1P,GAAwB,IAAM,CAChB0P,GAAsB,QAAQ,CAAA,CACxE,EACGD,GAAaJ,IACf,KAAK,KAAK,MACL,CACL,GAAI,CAAE,eAAAM,EAAgB,mBAAAC,EAAoB,GAAGC,CAAgB,EAAAlU,EACzDgU,IACYE,EAAA,CACZ,GAAGF,EACH,MAAO,CACL,GAAGA,EAAe,MAClB,UAAW,OACX,eAAgB,CACd,GAAGE,EACH,OAAQA,EAAY,UACpB,MAAO,CACL,GAAGA,EAAY,MACf,UAAW,OACX,eAAgB,OAChB,UAAW,OACX,IAAK,MAAA,CAEP,CACF,CAEJ,GACIA,EAAY,gBAAkB,KAAK,QAAQ,gBAAkB,MACnDA,EAAA,MAAM,UAAY,KAAK,kBAGvCA,EAAY,MAAM,4BAA8BD,GAAsB,KAAK,QAAQ,2BAA6B,GAChH,KAAK,qBAAuBR,EAC5B,KAAK,QAAQzT,EAAK,QAAU,UAAY,MAAM,EAC5CkU,EAAY,KACZA,EAAY,MACZ,CAAE,cAAAhT,CAAc,CAClB,CAAA,CAEG,YAAA,gBAAkBlB,EAAK,aAAe,GACtC,KAAK,QAAQ,YAAY,MAC5B,KAAK,KAAK,EAEL,KAAK,qBACd,EACA,KAAK,uBAAyB,CAAC,CAC7B,QAAAmU,EACA,YAAAC,EACA,mBAAAH,EACA,eAAAR,EACA,cAAAvS,EACA,KAAAX,EACA,GAAG8T,CACL,EAAI,KAAO,CACT,GAAI9T,EAAM,CACR,MAAMhC,EAAe,KAAK,QAAQ,SAAS,MAAM,YAC3CkJ,EAAStJ,GAAUoC,EAAM,CAC7B,YAAa4T,EAAU5V,EAAeA,EAAe,CAAA,CACtD,EACD8V,EAAK,GAAK5M,EAAO,SACjB4M,EAAK,OAAS,KAAK,QAAQ,YAAY5M,EAAO,MAAM,EACpD4M,EAAK,KAAO5M,EAAO,KAAK,MAAM,CAAC,CAAA,CAE3B,MAAApK,EAAW,KAAK,cAAc,CAClC,GAAGgX,EACH,uBAAwB,EAAA,CACzB,EACD,OAAO,KAAK,eAAe,CACzB,GAAGhX,EACH,eAAAoW,EACA,QAAAU,EACA,YAAAC,EACA,mBAAAH,EACA,cAAA/S,CAAA,CACD,CACH,EACK,KAAA,SAAW,CAAC,CAAE,GAAAyF,EAAI,eAAA2N,EAAgB,KAAA/T,EAAM,GAAG8T,KAAW,CACrD,GAAA,CAACC,GAAkB/T,EACjB,GAAA,CACE,IAAA,IAAI,GAAGA,CAAI,EAAE,EACA+T,EAAA,EAAA,MACX,CAAA,CAGV,GAAIA,EAAgB,CAClB,GAAI,CAAC/T,EAAM,CACT,MAAMlD,EAAW,KAAK,cAAc,CAAE,GAAAsJ,EAAI,GAAG0N,EAAM,EACnD9T,EAAO,KAAK,QAAQ,WAAWlD,EAAS,IAAI,CAAA,CAE9C,OAAIgX,EAAK,QACA,OAAA,SAAS,QAAQ9T,CAAI,EAE5B,OAAO,SAAS,KAAOA,EAElB,QAAQ,QAAQ,CAAA,CAEzB,OAAO,KAAK,uBAAuB,CACjC,GAAG8T,EACH,KAAA9T,EACA,GAAAoG,EACA,YAAa,EAAA,CACd,CACH,EACA,KAAK,WAAa,IAAM,CAGtB,GAFA,KAAK,cAAc,EACnB,KAAK,eAAiB,KAAK,cAAc,KAAK,cAAc,EACxD,KAAK,SAAU,CACX,MAAAzI,EAAe,KAAK,cAAc,CACtC,GAAI,KAAK,eAAe,SACxB,OAAQ,GACR,OAAQ,GACR,KAAM,GACN,MAAO,GACP,uBAAwB,EAAA,CACzB,EACKqW,EAAgBC,GAAQ,CACxB,GAAA,CACK,OAAA,UAAU,UAAUA,CAAG,CAAC,CAAA,MACzB,CACC,OAAAA,CAAA,CAEX,EACA,GAAI1O,GAASyO,EAAa,KAAK,eAAe,IAAI,CAAC,IAAMzO,GAASyO,EAAarW,EAAa,IAAI,CAAC,EAC/F,MAAM8Q,GAAS,CAAE,KAAM9Q,EAAa,KAAM,CAC5C,CAEF,MAAMuW,EAAiB,KAAK,YAAY,KAAK,cAAc,EACtD,KAAA,QAAQ,SAAUC,IAAO,CAC5B,GAAGA,EACH,OAAQ,UACR,WAAY,IACZ,UAAW,GACX,SAAU,KAAK,eACf,eAAAD,EAEA,cAAeC,EAAE,cAAc,OAC5BnS,GAAM,CAACkS,EAAe,KAAM1T,GAAMA,EAAE,KAAOwB,EAAE,EAAE,CAAA,CAClD,EACA,CACJ,EACK,KAAA,KAAO,MAAOnF,GAAS,CACtB,IAAAuX,EACAzJ,EACA0J,EAuGJ,IAtGcA,EAAA,IAAI,QAASlQ,GAAY,CACrC,KAAK,gBAAgB,SAAY,CAC3B,IAAAxI,EACA,GAAA,CACF,KAAK,WAAW,EAChB,MAAM8D,EAAO,KAAK,eACZ6U,EAAe,KAAK,MAAM,iBAC3B,KAAK,MAAM,UACd,KAAK,KAAK,CACR,KAAM,mBACN,GAAGhF,GAAsB,CACvB,iBAAkBgF,EAClB,SAAU7U,CACX,CAAA,CAAA,CACF,EAEH,KAAK,KAAK,CACR,KAAM,eACN,GAAG6P,GAAsB,CACvB,iBAAkBgF,EAClB,SAAU7U,CACX,CAAA,CAAA,CACF,EACD,MAAM,KAAK,YAAY,CACrB,KAA8B5C,GAAK,KACnC,QAAS,KAAK,MAAM,eACpB,SAAU4C,EAEV,QAAS,SAAY,CACnB,KAAK,oBAAoB,SAAY,CAC/B,IAAA8U,EACAC,EACAC,EACJtZ,GAAM,IAAM,CACL,KAAA,QAAQ,SAAUgZ,GAAM,CAC3B,MAAMO,EAAkBP,EAAE,QACpBQ,EAAaR,EAAE,gBAAkBA,EAAE,QACzC,OAAAI,EAAiBG,EAAgB,OAC9BrD,GAAU,CAACsD,EAAW,KAAM3S,GAAMA,EAAE,KAAOqP,EAAM,EAAE,CACtD,EACAmD,EAAkBG,EAAW,OAC1BtD,GAAU,CAACqD,EAAgB,KAAM1S,GAAMA,EAAE,KAAOqP,EAAM,EAAE,CAC3D,EACAoD,EAAiBC,EAAgB,OAC9BrD,GAAUsD,EAAW,KAAM3S,GAAMA,EAAE,KAAOqP,EAAM,EAAE,CACrD,EACO,CACL,GAAG8C,EACH,UAAW,GACX,SAAU,KAAK,IAAI,EACnB,QAASQ,EACT,eAAgB,OAChB,cAAe,CACb,GAAGR,EAAE,cACL,GAAGI,EAAe,OAAQvS,GAAMA,EAAE,SAAW,OAAO,CAAA,CAExD,CAAA,CACD,EACD,KAAK,kBAAkB,CAAA,CACxB,EACD,CACE,CAACuS,EAAgB,SAAS,EAC1B,CAACC,EAAiB,SAAS,EAC3B,CAACC,EAAgB,QAAQ,GACzB,QAAQ,CAAC,CAACG,EAASC,CAAI,IAAM,CACrBD,EAAA,QAASvD,GAAU,CACzB,IAAIjT,EAAKxC,GACRA,GAAMwC,EAAM,KAAK,gBAAgBiT,EAAM,OAAO,EAAE,SAASwD,CAAI,IAAM,MAAgBjZ,EAAG,KAAKwC,EAAKiT,CAAK,CAAA,CACvG,CAAA,CACF,CAAA,CACF,CAAA,CACH,CACD,QACMhC,EAAK,CACRT,GAAWS,CAAG,GACJ+E,EAAA/E,EACP,KAAK,UACR,KAAK,SAAS,CACZ,GAAG+E,EAAU,QACb,QAAS,GACT,cAAe,EAAA,CAChB,GAEMxJ,GAAWyE,CAAG,IACZ1E,EAAA0E,GAER,KAAA,QAAQ,SAAU8E,IAAO,CAC5B,GAAGA,EACH,WAAYC,EAAYA,EAAU,OAASzJ,EAAW,IAAMwJ,EAAE,QAAQ,KAAMnS,GAAMA,EAAE,SAAW,OAAO,EAAI,IAAM,IAChH,SAAUoS,CAAA,EACV,CAAA,CAEA,KAAK,oBAAsBC,KAC5B1Y,EAAK,KAAK,wBAA0B,MAAgBA,EAAG,QAAQ,EAChE,KAAK,kBAAoB,OACzB,KAAK,sBAAwB,QAEvBwI,EAAA,CAAA,CACT,CAAA,CACF,EACD,KAAK,kBAAoBkQ,EACnB,MAAAA,EACC,KAAK,mBAAqBA,IAAgB,KAAK,mBACpD,MAAM,KAAK,kBAET,KAAK,oBACF,KAAA,QAAQ,SAAUF,IAAO,CAC5B,GAAGA,EACH,WAAY,GAAA,EACZ,CAEN,EACK,KAAA,oBAAuB/Y,GAAO,CACjC,MAAM0Z,EAAuB,KAAK,sBAAwB,KAAK,QAAQ,sBAEnE,GADJ,OAAO,KAAK,qBACRA,GAAwB,OAAO,SAAa,KAAe,wBAAyB,UAAY,OAAO,SAAS,qBAAwB,WAAY,CAClJ,IAAAC,EACJ,GAAI,OAAOD,GAAyB,UAAY,KAAK,+BAAgC,CACnF,MAAMrV,EAAO,KAAK,eACZ6U,EAAe,KAAK,MAAM,iBAC1BU,EAA8B,OAAOF,EAAqB,OAAU,WAAaA,EAAqB,MAC1GxF,GAAsB,CACpB,iBAAkBgF,EAClB,SAAU7U,CACX,CAAA,GACCqV,EAAqB,MACGC,EAAA,CAC1B,OAAQ3Z,EACR,MAAO4Z,CACT,CAAA,MAE4BD,EAAA3Z,EAE9B,SAAS,oBAAoB2Z,CAAyB,CAAA,MAEnD3Z,EAAA,CAEP,EACK,KAAA,YAAc,CAACgW,EAAI7V,IAAY,CAC9B,IAAAI,EACJ,MAAMsZ,GAAetZ,EAAK,KAAK,MAAM,iBAAmB,MAAgBA,EAAG,KAAMqG,GAAMA,EAAE,KAAOoP,CAAE,EAAK,iBAAmB,KAAK,MAAM,QAAQ,KAAMpP,GAAMA,EAAE,KAAOoP,CAAE,EAAI,UAAY,KAAK,MAAM,cAAc,KAAMpP,GAAMA,EAAE,KAAOoP,CAAE,EAAI,gBAAkB,GACtP6D,GACG,KAAA,QAAQ,SAAUd,GAAM,CACvB,IAAA/V,EACG,MAAA,CACL,GAAG+V,EACH,CAACc,CAAU,GAAI7W,EAAM+V,EAAEc,CAAU,IAAM,KAAO,OAAS7W,EAAI,IAAK4D,GAAMA,EAAE,KAAOoP,EAAK7V,EAAQyG,CAAC,EAAIA,CAAC,CACpG,CAAA,CACD,CAEL,EACK,KAAA,SAAYkT,GAAY,CACvB,IAAAvZ,EACJ,MAAMwZ,EAAUnT,GAAMA,EAAE,KAAOkT,EACxB,OAAA,KAAK,MAAM,cAAc,KAAKC,CAAM,KAAOxZ,EAAK,KAAK,MAAM,iBAAmB,KAAO,OAASA,EAAG,KAAKwZ,CAAM,IAAM,KAAK,MAAM,QAAQ,KAAKA,CAAM,CACzJ,EACA,KAAK,YAAc,MAAO,CACxB,SAAArY,EACA,QAAA8X,EACA,QAASQ,EACT,QAAAC,EACA,YAAAC,EAAc,KAAK,YACnB,KAAAC,CAAA,IACI,CACA,IAAAC,EACAC,EAAW,GACf,MAAMC,EAAiB,SAAY,CAC5BD,IACQA,EAAA,GACJ,MAA2BJ,IAAQ,EAE9C,EACMM,EAAkBT,GACf,CAAC,EAAEE,GAAc,CAAC,KAAK,MAAM,QAAQ,KAAMpT,GAAMA,EAAE,KAAOkT,CAAO,GAEtE,CAAC,KAAK,UAAY,KAAK,MAAM,QAAQ,KAAMlT,GAAMA,EAAE,aAAa,GACnD0T,EAAA,EAEX,MAAAE,EAA4B,CAACvE,EAAOhC,IAAQ,CAChD,IAAI1T,EAAIC,EAAIE,EACZ,GAAI8S,GAAWS,CAAG,GAAKzE,GAAWyE,CAAG,EAAG,CAClC,GAAAT,GAAWS,CAAG,GACZA,EAAI,iBACF,CAACA,EAAI,QAAQ,eACT,MAAAA,EAkBR,IAdH1T,EAAK0V,EAAM,oBAAsB,MAAgB1V,EAAG,QAAQ,GAC5DC,EAAKyV,EAAM,gBAAkB,MAAgBzV,EAAG,QAAQ,EAC7C0Z,EAAAjE,EAAM,GAAK7O,IAAU,CAC/B,GAAGA,EACH,OAAQoM,GAAWS,CAAG,EAAI,aAAezE,GAAWyE,CAAG,EAAI,WAAa,QACxE,WAAY,GACZ,MAAOA,EACP,kBAAmB,OACnB,cAAe,MAAA,EACf,EACGA,EAAI,UACPA,EAAI,QAAUgC,EAAM,UAErBvV,EAAKuV,EAAM,cAAgB,MAAgBvV,EAAG,QAAQ,EACnD8S,GAAWS,CAAG,EACL,MAAAoG,EAAA,GACXpG,EAAI,QAAQ,cAAgBvS,EAC5BuS,EAAI,gBAAkB,GAChBA,EAAA,KAAK,gBAAgBA,CAAG,EACxBA,EACR,GAAWzE,GAAWyE,CAAG,EAClB,WAAA,gBAAgBuF,EAASvF,EAAK,CACjC,YAAAiG,CAAA,CACD,EACKjG,CACR,CAEJ,EACMwG,EAAoBX,GAAY,CAC9B,MAAA7D,EAAQ,KAAK,SAAS6D,CAAO,EAInC,MAHI,IAAC,KAAK,UAAY7D,EAAM,aAGxB,KAAK,UACHA,EAAM,MAAQ,GAKtB,EACI,GAAA,CACF,MAAM,IAAI,QAAQ,CAACyE,EAAYC,IAAc,EAE1C,SAAY,CACP,IAAApa,EAAIC,EAAIE,EAAIka,EACZ,GAAA,CACF,MAAMC,EAAoB,CAAC/X,EAAOmR,EAAK6G,IAAe,CACpD,IAAI9X,EAAK+X,EACT,KAAM,CAAE,GAAIjB,EAAS,QAAAkB,CAAQ,EAAIxB,EAAQ1W,CAAK,EACxCmS,EAAQ,KAAK,gBAAgB+F,CAAO,EAC1C,GAAI/G,aAAe,QACX,MAAAA,EAERA,EAAI,WAAa6G,EACjBV,EAAqBA,GAAsBtX,EAC3C0X,EAA0B,KAAK,SAASV,CAAO,EAAG7F,CAAG,EACjD,GAAA,EACD8G,GAAO/X,EAAMiS,EAAM,SAAS,UAAY,MAAgB8F,EAAI,KAAK/X,EAAKiR,CAAG,QACnEgH,EAAiB,CAClBhH,EAAAgH,EACNT,EAA0B,KAAK,SAASV,CAAO,EAAG7F,CAAG,CAAA,CAE3CiG,EAAAJ,EAAU1S,GAAS,CAC7B,IAAI8T,EAAKC,EACT,OAACD,EAAM9T,EAAK,oBAAsB,MAAgB8T,EAAI,QAAQ,GAC7DC,EAAM/T,EAAK,cAAgB,MAAgB+T,EAAI,QAAQ,EACjD,CACL,GAAG/T,EACH,MAAO6M,EACP,OAAQ,QACR,WAAY,GACZ,UAAW,KAAK,IAAI,EACpB,gBAAiB,IAAI,gBACrB,kBAAmB,MACrB,CAAA,CACD,CACH,EACW,SAAA,CAACnR,EAAO,CAAE,GAAIgX,EAAS,QAAAkB,EAAS,IAAKxB,EAAQ,UAAW,CAC3D,MAAA4B,EAAgB,KAAK,SAAStB,CAAO,EACrCuB,GAAiB9a,EAAKiZ,EAAQ1W,EAAQ,CAAC,IAAM,KAAO,OAASvC,EAAG,GAChE+a,EAAcD,EAAgB,KAAK,SAASA,CAAa,EAAI,OAC7DpG,EAAQ,KAAK,gBAAgB+F,CAAO,EACpCO,EAAYtG,EAAM,QAAQ,WAAa,KAAK,QAAQ,iBAC1D,GAAI,KAAK,SAAU,CACb,IAAAuG,EACA,GAAA,KAAK,UACPA,EAAM1B,IAAY1G,OACb,CACC,MAAAqI,EAAa,KAAK,QAAQ,YAAc,GAC9C,GAAoCH,GAAY,MAAS,GACjDE,EAAA,OACD,CACD,IAAAE,EACA,GAAAzG,EAAM,QAAQ,MAAQ,OACdyG,EAAAD,UACD,OAAOxG,EAAM,QAAQ,KAAQ,WAAY,CAC9C,IAAA0G,EAAY,SAASpe,EAAOiM,EAAO,CACrC,OAAIA,EACK,CAAE,OAAQ,QAAS,MAAAA,CAAM,EAE3B,CAAE,OAAQ,UAAW,MAAAjM,CAAM,CACpC,EACA,KAAM,CAAE,OAAA4V,EAAQ,OAAArG,EAAA,EAAW,KAAK,SAASgN,CAAO,EAC1C8B,EAAe,CACnB,OAAQD,EAAUxI,EAAQiI,EAAc,WAAW,EACnD,OAAQO,EAAU7O,GAAQsO,EAAc,WAAW,EACnD,SAAA1Z,EACA,QAAS8X,EAAQ,IAAKvD,IAAW,CAC/B,MAAOA,EAAM,MACb,SAAUA,EAAM,SAChB,SAAUA,EAAM,SAChB,WAAYA,EAAM,WAClB,GAAIA,EAAM,GACV,QAASA,EAAM,QACf,OAAQ0F,EAAU1F,EAAM,OAAQA,EAAM,WAAW,EACjD,OAAQ0F,EAAU1F,EAAM,OAAQA,EAAM,WAAW,EACjD,IAAKA,EAAM,GAAA,EACX,CACJ,EACAyF,EAAU,MAAMzG,EAAM,QAAQ,IAAI2G,CAAY,GAAKH,CAAA,MAEnDC,EAAUzG,EAAM,QAAQ,IAEtByG,IAAY,IAAwCJ,GAAY,MAAS,YACrEE,EAAA,YAEAA,EAAAE,CACR,CACF,CAEUxB,EAAAJ,EAAU1S,IAAU,CAC9B,GAAGA,EACH,IAAAoU,CAAA,EACA,CAAA,CAEA,GAAAf,EAAiBX,CAAO,EAC1B,SAEF,MAAM+B,EAAgB,CAAC,EAAE5B,GAAW,CAAC,KAAK,UAAY,CAACM,EAAeT,CAAO,IAAM7E,EAAM,QAAQ,QAAUA,EAAM,QAAQ,YAAc6G,GAAkB7G,CAAK,IAAM,OAAOsG,GAAc,UAAYA,IAAc,MAAatG,EAAM,QAAQ,oBAAsBzU,EAAK,KAAK,UAAY,KAAO,OAASA,EAAG,2BAC7S,IAAIub,EAAoB,GACxB,MAAMC,EAAsB,IAAM,CAChC,GAAIH,GAAiB,KAAK,SAAS/B,CAAO,EAAE,iBAAmB,OAAQ,CAC/D,MAAAmC,EAAiB,WAAW,IAAM,CAClC,GAAA,CACa3B,EAAA,CAAA,MACT,CAAA,GAEPiB,CAAS,EACArB,EAAAJ,EAAU1S,IAAU,CAC9B,GAAGA,EACH,eAAA6U,CAAA,EACA,CAAA,CAEN,EACA,GAGEb,EAAc,mBAAqBA,EAAc,cACjD,CACoBY,EAAA,EACpB,MAAMZ,EAAc,kBACd,MAAAnF,EAAQ,KAAK,SAAS6D,CAAO,EAC/B7D,EAAM,SAAW,QACC8F,EAAA,GACX9F,EAAM,UAAYA,EAAM,SAAW,cAAgBA,EAAM,SAAW,aACnDuE,EAAAvE,EAAOA,EAAM,KAAK,CAC9C,CAEF,GAAI8F,EAAmB,CACjB,GAAA,CACU7B,EAAAJ,EAAU1S,GAAS,CAC7B,MAAM8U,EAAkB9U,EAAK,YACtB,MAAA,CACL,GAAGA,EACH,YAAasB,GAAwB,IAAM,CACNwT,GAAgB,QAAQ,CAAA,CAC5D,EACD,kBAAmBxT,GAAwB,CAC7C,CAAA,CACD,EACD,KAAM,CAAE,YAAAyT,EAAa,YAAAC,CAAA,EAAgB,KAAK,SAAStC,CAAO,EACtDqC,GACgBtB,EAAA/X,EAAOqZ,EAAa,cAAc,EAElDC,GACgBvB,EAAA/X,EAAOsZ,EAAa,iBAAiB,EAErCJ,EAAA,EACd,MAAAK,EAAkB,IAAI,gBACtBC,EAAqDhB,GAAY,SAAY,KAAK,QAAQ,SAAW,CAAC,EAChGpB,EAAAJ,EAAU1S,IAAU,CAC9B,GAAGA,EACH,WAAY,aACZ,WAAYA,EAAK,WAAa,EAC9B,gBAAAiV,EACA,QAAS,CACP,GAAGC,EACH,GAAGlV,EAAK,cAAA,CACV,EACA,EACI,KAAA,CAAE,OAAA+L,EAAQ,OAAArG,GAAQ,QAAAyP,EAAS,MAAAC,GAAU,KAAK,SAAS1C,CAAO,EAC1D2C,EAAUlC,EAAeT,CAAO,EAChC4C,EAAsB,CAC1B,OAAAvJ,EACA,gBAAAkJ,EACA,OAAAvP,GACA,QAAA2P,EACA,QAAAF,EACA,SAAA7a,EACA,SAAWD,GAAS,KAAK,SAAS,CAAE,GAAGA,EAAM,cAAeC,EAAU,EACtE,cAAe,KAAK,cACpB,MAAO+a,EAAU,UAAYD,EAC7B,QAAAhD,CACF,EACMmD,EAAoB,OAAQ/B,GAAMla,EAAKuU,EAAM,SAAS,aAAe,KAAO,OAAS2F,EAAG,KAAKla,EAAIgc,CAAmB,IACtHlJ,GAAWmJ,CAAiB,GAAKnN,GAAWmN,CAAiB,IAC7C9B,EAAA/X,EAAO6Z,EAAmB,aAAa,EAE/CzC,EAAAJ,EAAU1S,IACb,CACL,GAAGA,EACH,oBAAqBuV,EACrB,QAAS,CACP,GAAGL,EACH,GAAGlV,EAAK,eACR,GAAGuV,CACL,EACA,gBAAAN,CACF,EACD,QACMpI,EAAK,CACM4G,EAAA/X,EAAOmR,EAAK,aAAa,CAAA,CAEjCiG,EAAAJ,EAAU1S,GAAS,CACzB,IAAApE,EACJ,OAACA,EAAMoE,EAAK,oBAAsB,MAAgBpE,EAAI,QAAQ,EACvD,CACL,GAAGoE,EACH,kBAAmB,OACnB,WAAY,EACd,CAAA,CACD,CAAA,CACH,CAEF,MAAMwV,EAAuBpD,EAAQ,MAAM,EAAGY,CAAkB,EAC1DyC,EAAgB,CAAC,EACvBD,EAAqB,QAAQ,CAAC,CAAE,GAAI9C,EAAS,QAAAkB,GAAWlY,IAAU,CAClD+Z,EAAA,MACX,SAAY,CACX,IAAIC,EAAuB,GACvBC,EAAuB,GACrB,MAAA9H,EAAQ,KAAK,gBAAgB+F,CAAO,EACpCgC,EAAc,SAAY,CAC9B,IAAIha,EAAK+X,EAAKkC,EAAKC,EAAKC,EAAIC,EACtB,MAAAnH,EAAQ,KAAK,SAAS6D,CAAO,EACnC,GAAI,CAAC7D,EACH,OAEF,MAAMoH,GAAe,CACnB,QAAA7D,EACA,MAAAvD,EACA,OAAQA,EAAM,OACd,WAAYA,EAAM,UACpB,EACMqH,EAAgB,OAAQvC,GAAO/X,EAAMiS,EAAM,SAAS,OAAS,KAAO,OAAS8F,EAAI,KAAK/X,EAAKqa,EAAY,GACvGE,EAAwCD,GAAc,KACtDE,EAAyCF,GAAc,MACvDG,EAA+CH,GAAc,QAC7DI,EAA0CJ,GAAc,OACxDK,EAAU,OAAQT,GAAOD,EAAMhI,EAAM,SAAS,UAAY,KAAO,OAASiI,EAAI,KAAKD,EAAKI,EAAY,GACpG/J,EAAU,OAAQ8J,GAAMD,EAAKlI,EAAM,SAAS,UAAY,KAAO,OAASmI,EAAG,KAAKD,EAAIE,EAAY,GAC/F,MAAA,CACL,KAAAE,EACA,MAAAC,EACA,YAAAC,EACA,QAAAnK,EACA,QAAAqK,EACA,OAAAD,CACF,CACF,EACME,EAA6B,SAAY,CACvC,MAAAC,EAAc,KAAK,SAAS/D,CAAO,EACrC+D,EAAY,mBACd,MAAMA,EAAY,iBAEtB,EACMC,EAAY,KAAK,SAAShE,CAAO,EACnC,GAAAW,EAAiBX,CAAO,GAC1B,GAAI,KAAK,SAAU,CACX,MAAAiE,EAAO,MAAMf,EAAY,EACnB,OAAA9C,EAAAJ,EAAU1S,IAAU,CAC9B,GAAGA,EACH,GAAG2W,CAAA,EACH,EACK,KAAK,SAASjE,CAAO,CAAA,UAErBgE,EAAU,cAAe,CAClC,GAAIA,EAAU,SAAW,WAAa,CAAC3D,GAAQ,CAAC2D,EAAU,QACjD,OAAA,KAAK,SAAShE,CAAO,EAE9B,MAAMgE,EAAU,cACV,MAAA7H,EAAQ,KAAK,SAAS6D,CAAO,EAC/B7D,EAAM,OACkBuE,EAAAvE,EAAOA,EAAM,KAAK,CAC9C,KACK,CACC,MAAA+H,EAAqBnB,EAAc/Z,EAAQ,CAAC,EAC5Cmb,EAAmB,IAAM,CACvB,KAAA,CACJ,OAAAnR,EACA,WAAAoR,EACA,gBAAA7B,EACA,QAAAE,EACA,MAAAC,CAAA,EACE,KAAK,SAAS1C,CAAO,EACnBqE,EAAW5D,EAAeT,CAAO,EAChC,MAAA,CACL,OAAAhN,EACA,KAAMoR,EACN,QAAS,CAAC,CAACC,EACX,mBAAAH,EACA,gBAAA3B,EACA,QAAAE,EACA,SAAA7a,EACA,SAAWD,IAAS,KAAK,SAAS,CAAE,GAAGA,GAAM,cAAeC,EAAU,EACtE,MAAOyc,EAAW,UAAY3B,EAC9B,MAAAvH,CACF,CACF,EACMmJ,EAAM,KAAK,IAAA,EAAQ,KAAK,SAAStE,CAAO,EAAE,UAC1C2C,EAAUlC,EAAeT,CAAO,EAChCuE,EAAW5B,EAAUxH,EAAM,QAAQ,kBAAoB,KAAK,QAAQ,yBAA2B,IAAMA,EAAM,QAAQ,WAAa,KAAK,QAAQ,kBAAoB,EACjKqJ,EAAqBrJ,EAAM,QAAQ,aACnCsJ,EAAe,OAAOD,GAAuB,WAAaA,EAAmBL,EAAkB,CAAA,EAAIK,EAC7FpE,EAAAJ,EAAU1S,IAAU,CAC9B,GAAGA,EACH,cAAesB,GAAwB,EACvC,QAAS,CAAC,CAAC+T,GAAW,CAAC,KAAK,MAAM,QAAQ,KAAM7V,GAAMA,EAAE,KAAOkT,CAAO,CAAA,EACtE,EACF,MAAM0E,GAAY,SAAY,CACxB,IAAAxb,EAAK+X,EAAKkC,EAAKC,EACf,GAAA,CACE,GAAA,EACE,CAAC,KAAK,UAAY,KAAK,UAAY,KAAK,SAASpD,CAAO,EAAE,MAAQ,KACpE,KAAK,eAAe7E,CAAK,EAEfiF,EAAAJ,EAAU1S,KAAU,CAC9B,GAAGA,GACH,WAAY,QAAA,EACZ,EACF,MAAMqX,EAAa,OAAQ1D,GAAO/X,EAAMiS,EAAM,SAAS,SAAW,KAAO,OAAS8F,EAAI,KAAK/X,EAAKib,GAAkB,GAClHzD,EACE,KAAK,SAASV,CAAO,EACrB2E,CACF,EACYvE,EAAAJ,EAAU1S,KAAU,CAC9B,GAAGA,GACH,WAAAqX,CAAA,EACA,EACF,MAAMxJ,EAAM,aACN,MAAA8I,EAAO,MAAMf,EAAY,EAC/B,MAAMY,EAA2B,EACjC,MAAM3I,EAAM,mBACAiF,EAAAJ,EAAU1S,KAAU,CAC9B,GAAGA,GACH,MAAO,OACP,OAAQ,UACR,WAAY,GACZ,UAAW,KAAK,IAAI,EACpB,GAAG2W,CAAA,EACH,QACK3Y,EAAG,CACV,IAAIoE,EAAQpE,EACZ,MAAMwY,EAA2B,EACjCpD,EAA0B,KAAK,SAASV,CAAO,EAAG1U,CAAC,EAC/C,GAAA,EACD8X,GAAOD,EAAMhI,EAAM,SAAS,UAAY,MAAgBiI,EAAI,KAAKD,EAAK7X,CAAC,QACjEsZ,GAAc,CACblV,EAAAkV,GACRlE,EACE,KAAK,SAASV,CAAO,EACrB4E,EACF,CAAA,CAEI,MAAAX,GAAO,MAAMf,EAAY,EACnB9C,EAAAJ,EAAU1S,KAAU,CAC9B,GAAGA,GACH,MAAAoC,EACA,OAAQ,QACR,WAAY,GACZ,GAAGuU,EAAA,EACH,CAAA,QAEG9J,EAAK,CACN,MAAA8J,EAAO,MAAMf,EAAY,EACnB9C,EAAAJ,EAAU1S,KAAU,CAC9B,GAAGA,GACH,cAAe,OACf,GAAG2W,CAAA,EACH,EACFvD,EAA0B,KAAK,SAASV,CAAO,EAAG7F,CAAG,CAAA,CAEzD,EACM,CAAE,OAAA0K,EAAQ,QAAAC,CAAA,EAAY,KAAK,SAAS9E,CAAO,EAEjD,GADAgD,EAAuB6B,IAAW,YAAcC,IAAYL,GAAgBH,EAAMC,IAC9E,EAAA5B,GAAWxH,EAAM,QAAQ,UAAY,IACzC,GAAW6H,GAAwB,CAAC3C,EACX4C,EAAA,IACtB,SAAY,CACP,GAAA,CACF,MAAMyB,GAAU,EAChB,KAAM,CAAE,cAAAK,EAAe,YAAA5F,CAAA,EAAgB,KAAK,SAASa,CAAO,EAC3B+E,GAAc,QAAQ,EACxB5F,GAAY,QAAQ,EACvCiB,EAAAJ,EAAU1S,IAAU,CAC9B,GAAGA,EACH,cAAe,MAAA,EACf,QACK6M,EAAK,CACRT,GAAWS,CAAG,GACV,MAAA,KAAK,SAASA,EAAI,OAAO,CACjC,CACF,GACC,UACM0K,IAAW,WAAa7B,GAAwB3C,EACzD,MAAMqE,GAAU,MACX,CACC,MAAAT,EAAO,MAAMf,EAAY,EACnB9C,EAAAJ,EAAU1S,IAAU,CAC9B,GAAGA,EACH,GAAG2W,CAAA,EACH,CAAA,CACJ,CAEF,GAAI,CAAChB,EAAsB,CACzB,KAAM,CAAE,cAAA8B,EAAe,YAAA5F,CAAA,EAAgB,KAAK,SAASa,CAAO,EAC3B+E,GAAc,QAAQ,EACxB5F,GAAY,QAAQ,CAAA,CAEzC,OAAAiB,EAAAJ,EAAU1S,IACpB,aAAaA,EAAK,cAAc,EACzB,CACL,GAAGA,EACH,WAAY2V,EAAuB3V,EAAK,WAAa,GACrD,cAAe2V,EAAuB3V,EAAK,cAAgB,OAC3D,QAAS,GACT,eAAgB,OAChB,YAAa,MACf,EACD,EACM,KAAK,SAAS0S,CAAO,CAC3B,GAAA,CACL,CAAA,CACD,EACK,MAAA,QAAQ,IAAI+C,CAAa,EACpBnC,EAAA,QACJzG,EAAK,CACZ0G,EAAU1G,CAAG,CAAA,CACf,GACC,CAAA,CACJ,EACD,MAAMqG,EAAe,QACdrG,EAAK,CACZ,GAAIT,GAAWS,CAAG,GAAKzE,GAAWyE,CAAG,EACnC,MAAIzE,GAAWyE,CAAG,GAAK,CAAC+F,GACtB,MAAMM,EAAe,EAEjBrG,CACR,CAEK,OAAAuF,CACT,EACK,KAAA,WAAc/X,GAAS,CACpB,MAAAqd,EAAclY,GAAM,CACpB,IAAArG,EACJ,QAAMA,EAA6BkB,GAAK,SAAW,KAAO,OAASlB,EAAG,KAAKkB,EAAMmF,CAAC,IAAM,GAC/E,CACL,GAAGA,EACH,QAAS,GACT,GAA4BnF,GAAK,cAAiBmF,EAAE,SAAW,QAAU,CAAE,OAAQ,UAAW,MAAO,MAAA,EAAW,CAAA,CAClH,EAEKA,CACT,EACK,YAAA,QAAQ,SAAUmS,GAAM,CACvB,IAAAxY,EACG,MAAA,CACL,GAAGwY,EACH,QAASA,EAAE,QAAQ,IAAI+F,CAAU,EACjC,cAAe/F,EAAE,cAAc,IAAI+F,CAAU,EAC7C,gBAAiBve,EAAKwY,EAAE,iBAAmB,KAAO,OAASxY,EAAG,IAAIue,CAAU,CAC9E,CAAA,CACD,EACD,KAAK,qBAAuB,GACrB,KAAK,KAAK,CAAE,KAA8Brd,GAAK,KAAM,CAC9D,EACK,KAAA,gBAAmBuX,IACjBA,EAAU,QAAQ,OACrBA,EAAU,QAAQ,KAAO,KAAK,cAAcA,EAAU,OAAO,EAAE,KAC/DA,EAAU,QAAQ,IAAI,WAAYA,EAAU,QAAQ,IAAI,GAErDA,EAAU,QAAQ,IAAI,UAAU,GACnCA,EAAU,QAAQ,IAAI,WAAYA,EAAU,QAAQ,IAAI,EAEnDA,GAEJ,KAAA,WAAcvX,GAAS,CAC1B,MAAMsd,EAAiCtd,GAAK,OACxCsd,IAAW,OACR,KAAA,QAAQ,SAAUhG,IACd,CACL,GAAGA,EACH,cAAeA,EAAE,cAAc,OAC5BiG,GAAM,CAACD,EAAOC,CAAC,CAAA,CAEpB,EACD,EAEI,KAAA,QAAQ,SAAUjG,IACd,CACL,GAAGA,EACH,cAAe,CAAA,CACjB,EACD,CAEL,EACA,KAAK,kBAAoB,IAAM,CACvB,MAAAgG,EAAUnY,GAAM,CACpB,MAAMqO,EAAQ,KAAK,gBAAgBrO,EAAE,OAAO,EACxC,GAAA,CAACqO,EAAM,QAAQ,OACV,MAAA,GAET,MAAMgK,GAAUrY,EAAE,QAAUqO,EAAM,QAAQ,eAAiB,KAAK,QAAQ,qBAAuBA,EAAM,QAAQ,QAAU,KAAK,QAAQ,gBAAkB,IAAS,IAE/J,OADgBrO,EAAE,SAAW,QACT,GACD,KAAK,IAAI,EAAIA,EAAE,WAAaqY,CAEjD,EACK,KAAA,WAAW,CAAE,OAAAF,EAAQ,CAC5B,EACK,KAAA,eAAkB9J,IACjBA,EAAM,eAAiB,SACrBA,EAAM,OACRA,EAAM,aAAeA,EAAM,OAAA,EAAS,KAAMiK,GAAc,CACtD,KAAM,CAAE,GAAIC,EAAK,GAAGC,GAAaF,EAAU,QACpC,OAAA,OAAOjK,EAAM,QAASmK,CAAQ,CAAA,CACtC,EAEKnK,EAAA,aAAe,QAAQ,QAAQ,GAGrCA,EAAM,qBAAuB,SACzBA,EAAA,mBAAqBA,EAAM,aAAa,KAC5C,IAAM,QAAQ,IACZoK,GAAe,IAAI,MAAO3a,GAAS,CAC3B,MAAA4a,EAAYrK,EAAM,QAAQvQ,CAAI,EACH4a,GAAU,SACzC,MAAMA,EAAU,QAAQ,CAE3B,CAAA,CAAA,CAEL,GAEKrK,EAAM,oBAEV,KAAA,aAAe,MAAOxT,GAAS,CAC5B,MAAA4C,EAAO,KAAK,cAAc5C,CAAI,EAChC,IAAA+X,EAAU,KAAK,YAAYnV,EAAM,CACnC,aAAc,GACd,QAAS,GACT,KAAM5C,CAAA,CACP,EACD,MAAM8d,EAAiB,IAAI,IACzB,CAAC,GAAG,KAAK,MAAM,QAAS,GAAG,KAAK,MAAM,gBAAkB,CAAE,CAAA,EAAE,IACzD3Y,GAAMA,EAAE,EAAA,CAEb,EACM4Y,MAAqC,IAAI,CAC7C,GAAGD,EACH,GAAG,KAAK,MAAM,cAAc,IAAK3Y,GAAMA,EAAE,EAAE,CAAA,CAC5C,EACD7G,GAAM,IAAM,CACFyZ,EAAA,QAASvD,GAAU,CACpBuJ,EAAe,IAAIvJ,EAAM,EAAE,GACzB,KAAA,QAAQ,SAAU8C,IAAO,CAC5B,GAAGA,EACH,cAAe,CAAC,GAAGA,EAAE,cAAe9C,CAAK,CAAA,EACzC,CACJ,CACD,CAAA,CACF,EACG,GAAA,CACQ,OAAAuD,EAAA,MAAM,KAAK,YAAY,CAC/B,QAAAA,EACA,SAAUnV,EACV,QAAS,GACT,YAAa,CAAC2R,EAAI7V,IAAY,CACxBof,EAAe,IAAIvJ,CAAE,EACbwD,EAAAA,EAAQ,IAAK,GAAM,EAAE,KAAOxD,EAAK7V,EAAQ,CAAC,EAAI,CAAC,EAEpD,KAAA,YAAY6V,EAAI7V,CAAO,CAC9B,CACF,CACD,EACMqZ,QACAvF,EAAK,CACR,GAAAT,GAAWS,CAAG,EACZ,OAAAA,EAAI,QAAQ,eACP,OAEF,MAAM,KAAK,aAAa,CAC7B,GAAGA,EAAI,QACP,cAAe5P,CAAA,CAChB,EAEEmL,GAAWyE,CAAG,GACjB,QAAQ,MAAMA,CAAG,EAEZ,MAAA,CAEX,EACK,KAAA,WAAa,CAACvS,EAAUD,IAAS,CACpC,MAAMuM,EAAgB,CACpB,GAAGtM,EACH,GAAIA,EAAS,GAAK,KAAK,oBACrBA,EAAS,MAAQ,GACjBA,EAAS,EAAA,EACP,OACJ,OAAQA,EAAS,QAAU,CAAC,EAC5B,YAAa,EACf,EACM2C,EAAO,KAAK,cAAc2J,CAAa,EACxC,GAAwBvM,GAAK,SAAY,KAAK,MAAM,SAAW,UAC3D,MAAA,GAGH,MAAAge,GADmChe,GAAK,UAAa,OAAS,CAAC,KAAK,MAAM,UAAYA,EAAK,SAClE,KAAK,eAAiB,KAAK,MAAM,kBAAoB,KAAK,MAAM,SACzFwU,EAAQnI,GACZ,KAAK,SACL2R,EAAa,SACb,CACE,GAAGhe,EACH,GAAI4C,EAAK,QACX,EACA,KAAK,kBACP,EAIA,MAHI,CAAC4R,GAGDvU,EAAS,QACP,CAAC4G,GAAU2N,EAAOvU,EAAS,OAAQ,CAAE,QAAS,EAAK,CAAC,EAC/C,GAGPuU,IAAmCxU,GAAK,eAAkB,IACrD6G,GAAUmX,EAAa,OAAQpb,EAAK,OAAQ,CAAE,QAAS,EAAA,CAAM,EAAI4R,EAAQ,GAE3EA,CACT,EACK,KAAA,gBAAkB,CAACuD,EAASvF,EAAK,CACpC,YAAAiG,EAAc,KAAK,WACrB,EAAI,KAAO,CACL,IAAA3Z,EACJ,MAAMmf,EAAc,KAAK,WAAWzL,EAAI,SAAW,EAAE,GAAK,KAAK,UACzD0L,EAAmB,CAAC,EAC1B,UAAW1J,KAASuD,EACDmG,EAAA1J,EAAM,OAAO,EAAIA,EAEhC,CAACyJ,EAAY,QAAQ,qBAAuBnf,EAAK,KAAK,UAAY,MAAgBA,EAAG,4BAC3Emf,EAAA,QAAQ,kBAAoB,KAAK,QAAQ,0BAEvDvhB,GACEuhB,EAAY,QAAQ,iBAEtB,EACM,MAAAE,EAAgBD,EAAiBD,EAAY,EAAE,EACrDvhB,GACEyhB,EACA,mCAAqCF,EAAY,EACnD,EACYxF,EAAA0F,EAAc,GAAKxY,IAAU,CACvC,GAAGA,EACH,OAAQ,WACR,MAAO6M,EACP,WAAY,EAAA,EACZ,EACEA,EAAI,aAAe,eAAiByL,EAAY,cAC9CzL,EAAA,QAAUyL,EAAY,YAAY,GACjC,KAAA,gBAAgBlG,EAASvF,EAAK,CACjC,YAAAiG,CAAA,CACD,EAEL,EACA,KAAK,iBAAmB,IACf,KAAK,QAAQ,MAAM,QAAQ,KAC/BtT,GAAMA,EAAE,SAAW,YAAcA,EAAE,cACtC,EAEF,KAAK,OAAO,CACV,oBAAqB,GACrB,iBAAkB,IAClB,oBAAqB,IACrB,QAAS,OACT,GAAGtG,EACH,cAAeA,EAAQ,eAAiB,GACxC,aAAcA,EAAQ,cAAgB,QACtC,gBAAiBA,EAAQ,iBAAmBsS,GAC5C,YAAatS,EAAQ,aAAeoS,EAAA,CACrC,EACG,OAAO,SAAa,MACtB,KAAK,eAAiB,KACxB,CAEF,SAAU,CACD,MAAA,CAAC,CAAC,KAAK,QAAQ,OAAA,CAExB,gBAAiB,CACR,MAAA,CAAC,CAAC,KAAK,QAAQ,cAAA,CAExB,IAAI,OAAQ,CACV,OAAO,KAAK,QAAQ,KAAA,CAEtB,IAAI,iBAAkB,CACpB,OAAO,KAAK,UAAA,CAEd,oBAAoBrO,EAAM5C,EAAM,CAC1B,IAAAlB,EACJ,KAAM,CAAE,WAAAsf,EAAY,cAAAC,EAAe,YAAAC,GAAgB,KAAK,iBACtD1b,EAAK,UACJ9D,EAA6BkB,GAAK,OAAS,KAAO,OAASlB,EAAG,EACjE,EACA,IAAIyf,EAAmB,IAGrBH,EAAaA,EAAW,OAAS,KAAOE,EAAY,IAAI,EAEtD7V,GAAc7F,EAAK,QAAQ,KAGzB,KAAK,QAAQ,cACDyb,EAAA,KAAK,KAAK,QAAQ,aAAa,EAE1BE,EAAA,IAGvB,MAAMC,GAAyB,IAAM,CACnC,GAAKD,EAGD,IAAA,KAAK,QAAQ,eAAiB,OAChC,QAAS/e,EAAI6e,EAAc,OAAS,EAAG7e,GAAK,EAAGA,IAAK,CAC5C,MAAAgU,EAAQ6K,EAAc7e,CAAC,EAC7B,GAAIgU,EAAM,SACR,OAAOA,EAAM,EACf,CAGG,OAAA7B,GAAA,GACN,EACG8M,EAAcJ,EAAc,IAAK7K,GAAU,CAC3C,IAAAjS,EACA,IAAAmd,EACE,MAAAC,IAAgBpd,EAAMiS,EAAM,QAAQ,SAAW,KAAO,OAASjS,EAAI,QAAUiS,EAAM,QAAQ,YACjG,GAAImL,EACE,GAAA,CACI,MAAAC,EAAeD,EAAYL,CAAW,EACrC,OAAA,OAAOA,EAAaM,CAAY,QAChCpM,EAAK,CAIZ,GAHoBkM,EAAA,IAAIG,GAAerM,EAAI,QAAS,CAClD,MAAOA,CAAA,CACR,EAC2BxS,GAAK,aACzB,MAAA0e,EAED,OAAAA,CAAA,CAGX,CACD,EACK3G,EAAU,CAAC,EACX+G,EAAoBjF,GAC6BA,GAAY,GACGA,EAAY,SAAW,KAAK,QAAQ,SAAW,CAAC,EAA7E,KAAK,QAAQ,SAAW,GAGnD,OAAAwE,EAAA,QAAQ,CAAC7K,EAAOnS,IAAU,CACtC,IAAIE,EAAKxC,EACH,MAAA8a,EAAc9B,EAAQ1W,EAAQ,CAAC,EAC/B,CAAC0d,EAAgBC,EAAmBrE,CAAW,GAAK,IAAM,CAC9D,MAAMsE,EAA+CpF,GAAY,QAAWjX,EAAK,OAC3Esc,EAAqDrF,GAAY,eAAkB,CAAC,EACtF,GAAA,CACI,MAAAsF,EAAezJ,GAAelC,EAAM,QAAQ,eAAgB,CAAE,GAAGyL,CAAc,CAAA,GAAK,CAAC,EACpF,MAAA,CACL,CACE,GAAGA,EACH,GAAGE,CACL,EACA,CAAE,GAAGD,EAAoB,GAAGC,CAAa,EACzC,MACF,QACO3M,EAAK,CACZ,IAAI4M,EAAmB5M,EAMvB,GALMA,aAAe6M,KACAD,EAAA,IAAIC,GAAiB7M,EAAI,QAAS,CACnD,MAAOA,CAAA,CACR,GAEyBxS,GAAK,aACzB,MAAAof,EAER,MAAO,CAACH,EAAc,CAAC,EAAGG,CAAgB,CAAA,CAC5C,GACC,EACG3C,IAAe1d,GAAMwC,EAAMiS,EAAM,SAAS,aAAe,KAAO,OAASzU,EAAG,KAAKwC,EAAK,CAC1F,OAAQwd,CACT,CAAA,IAAM,GACDO,EAAiB7C,EAAa,KAAK,UAAUA,CAAU,EAAI,GAC3D,CAAE,WAAA3Q,EAAY,iBAAAC,CAAiB,EAAIX,GAAgB,CACvD,KAAMoI,EAAM,SACZ,OAAQ8K,EACR,cAAe,KAAK,uBAAA,CACrB,EACKjG,EAAUjN,GAAgB,CAC9B,KAAMoI,EAAM,GACZ,OAAQ8K,EACR,eAAgB,GAChB,cAAe,KAAK,wBACpB,WAAY,KAAK,kBAAA,CAClB,EAAE,iBAAmBgB,EAChB3F,EAAgB,KAAK,SAAStB,CAAO,EACrCkH,EAAgB,KAAK,MAAM,QAAQ,KACtCpa,GAAMA,EAAE,UAAYqO,EAAM,EAC7B,EACMuH,EAAQwE,EAAgB,OAAS,QACnC,IAAA/K,EACJ,GAAImF,EACMnF,EAAA,CACN,GAAGmF,EACH,MAAAoB,EACA,OAAQwE,EAAgB7Z,GAAiB6Z,EAAc,OAAQjB,CAAW,EAAIA,EAC9E,cAAexS,EACf,OAAwBpG,GAAhB6Z,EAAiCA,EAAc,OAA2C5F,EAAc,OAAjDoF,CAAc,EAC7E,cAAeC,CACjB,MACK,CACL,MAAM9B,EAAS1J,EAAM,QAAQ,QAAUA,EAAM,QAAQ,YAAcA,EAAM,QAAU6G,GAAkB7G,CAAK,EAAI,UAAY,UAClHgB,EAAA,CACN,GAAI6D,EACJ,MAAAhX,EACA,QAASmS,EAAM,GACf,OAAQ+L,EAAgB7Z,GAAiB6Z,EAAc,OAAQjB,CAAW,EAAIA,EAC9E,cAAexS,EACf,SAAU1D,GAAU,CAAC,KAAK,SAAU2D,CAAgB,CAAC,EACrD,UAAW,KAAK,IAAI,EACpB,OAAQwT,EAAgB7Z,GAAiB6Z,EAAc,OAAQR,CAAc,EAAIA,EACjF,cAAeC,EACf,YAAa,OACb,OAAA9B,EACA,WAAY,GACZ,MAAO,OACP,YAAauB,EAAYpd,CAAK,EAC9B,eAAgB,CAAC,EACjB,oBAAqB,OACrB,QAAS,CAAC,EACV,gBAAiB,IAAI,gBACrB,WAAY,EACZ,MAAA0Z,EACA,WAAYwE,EAAgB7Z,GAAiB6Z,EAAc,WAAY9C,CAAU,EAAIA,EACrF,QAAS,GACT,QAAS,GACT,MAAO,OACP,QAAS,OACT,YAAa,OACb,KAAM,OACN,WAAYjJ,EAAM,QAAQ,YAAc,CAAC,EACzC,YAAavM,GAAwB,EACrC,SAAUuM,EAAM,QAClB,CAAA,CAE4BxT,GAAK,UAC3BwU,EAAA,eAAiBgK,IAA0BhL,EAAM,IAEzDgB,EAAM,YAAcmG,EACd,MAAA6E,EAAgBV,EAAiBjF,CAAW,EAClDrF,EAAM,QAAU,CACd,GAAGgL,EACH,GAAGhL,EAAM,eACT,GAAGA,EAAM,mBACX,EACAuD,EAAQ,KAAKvD,CAAK,CAAA,CACnB,EACOuD,EAAA,QAAQ,CAACvD,EAAOnT,IAAU,CAChC,IAAIE,EAAKxC,EACT,MAAMyU,EAAQ,KAAK,gBAAgBgB,EAAM,OAAO,EAEhD,GAAI,CADkB,KAAK,SAASA,EAAM,EAAE,GACGxU,GAAK,iBAAoB,GAAM,CACtE,MAAA6Z,EAAc9B,EAAQ1W,EAAQ,CAAC,EAC/Bme,EAAgBV,EAAiBjF,CAAW,EAC5C4F,EAAmB,CACvB,KAAMjL,EAAM,WACZ,OAAQA,EAAM,OACd,QAASgL,EACT,SAAU5c,EACV,SAAW8c,GAAU,KAAK,SAAS,CAAE,GAAGA,EAAO,cAAe9c,EAAM,EACpE,cAAe,KAAK,cACpB,MAAO4R,EAAM,MACb,gBAAiBA,EAAM,gBACvB,QAAS,CAAC,CAACA,EAAM,QACjB,QAAAuD,CACF,EACAvD,EAAM,iBAAmBzV,GAAMwC,EAAMiS,EAAM,SAAS,UAAY,KAAO,OAASzU,EAAG,KAAKwC,EAAKke,CAAgB,IAAM,CAAC,EACpHjL,EAAM,QAAU,CACd,GAAGgL,EACH,GAAGhL,EAAM,eACT,GAAGA,EAAM,mBACX,CAAA,CACF,CACD,EACMuD,CAAA,CAEX,CACA,MAAMsH,WAAyB,KAAM,CACrC,CACA,MAAMR,WAAuB,KAAM,CACnC,CACA,MAAMc,GAAare,GAAQA,EAAI,SAAS,GAAG,GAAKA,EAAI,OAAS,EAAIA,EAAI,MAAM,EAAG,EAAE,EAAIA,EACpF,SAAS0T,GAAaxX,EAAGC,EAAG,CAC1B,OAAOkiB,GAAUniB,CAAC,IAAMmiB,GAAUliB,CAAC,CACrC,CACA,SAASmiB,GAAOrhB,EAAIkD,EAAK,CACvB,MAAO,UAAUuC,KACE,MAAMzF,EAAG,GACVkD,GAAO,SAAS,EAAE,GAAGuC,CAAI,CAE7C,CACA,SAASmP,GAAsBlT,EAAU,CAChC,MAAA,CACL,SAAU,EACV,UAAW,GACX,gBAAiB,GACjB,OAAQ,OACR,iBAAkB,OAClB,SAAAA,EACA,QAAS,CAAC,EACV,eAAgB,CAAC,EACjB,cAAe,CAAC,EAChB,WAAY,GACd,CACF,CACA,SAASyV,GAAemK,EAAiBC,EAAO,CAC1C,GAAAD,GAAmB,KAAM,MAAO,CAAC,EACrC,GAAI,cAAeA,EAAiB,CAClC,MAAME,EAASF,EAAgB,WAAW,EAAE,SAASC,CAAK,EAC1D,GAAIC,aAAkB,QACd,MAAA,IAAIV,GAAiB,gCAAgC,EAC7D,GAAIU,EAAO,OACH,MAAA,IAAIV,GAAiB,KAAK,UAAUU,EAAO,OAAQ,OAAQ,CAAC,EAAG,CACnE,MAAOA,CAAA,CACR,EACH,OAAOA,EAAO,KAAA,CAEhB,MAAI,UAAWF,EACNA,EAAgB,MAAMC,CAAK,EAEhC,OAAOD,GAAoB,WACtBA,EAAgBC,CAAK,EAEvB,CAAC,CACV,CACA,MAAMlC,GAAiB,CACrB,YACA,iBACA,mBACA,mBACF,EACA,SAASvD,GAAkB7G,EAAO,CAC5B,IAAA1U,EACJ,UAAWkhB,KAAiBpC,GACrB,IAAA9e,EAAK0U,EAAM,QAAQwM,CAAa,IAAM,MAAgBlhB,EAAG,QACrD,MAAA,GAGJ,MAAA,EACT,CACA,MAAMmhB,GAA4B,GAC5BC,GAA4B,GAC5BC,GAA4B,IAClC,SAASC,GAAYnX,EAASoX,EAAW,CACnC,OAAApX,EAAQ,eAAiBA,EAAQ,cAC5BoX,EAAY,IAEjBpX,EAAQ,cACHoX,EAAY,IAEjBpX,EAAQ,cACHoX,EAAY,IAEdA,CACT,CACA,SAAS9M,GAAiB,CACxB,UAAA+M,EACA,UAAAC,CACF,EAAG,CACD,MAAMnN,EAAa,CAAC,EACdC,EAAe,CAAC,EAChBmN,EAAiBC,GAAgB,CACzBA,EAAA,QAAQ,CAACC,EAAYlhB,IAAM,CACR+gB,IAAUG,EAAYlhB,CAAC,EAC9C,MAAAmhB,EAAgBvN,EAAWsN,EAAW,EAAE,EAM9C,GALAhkB,GACE,CAACikB,EACD,mCAAmC,OAAOD,EAAW,EAAE,CAAC,EAC1D,EACWtN,EAAAsN,EAAW,EAAE,EAAIA,EACxB,CAACA,EAAW,QAAUA,EAAW,KAAM,CACnC,MAAAE,EAAkBnY,GAAciY,EAAW,QAAQ,GACrD,CAACrN,EAAauN,CAAe,GAAKF,EAAW,SAAS,SAAS,GAAG,KACpErN,EAAauN,CAAe,EAAIF,EAClC,CAEF,MAAMG,EAAWH,EAAW,SACIG,GAAS,QACvCL,EAAcK,CAAQ,CACxB,CACD,CACH,EACcL,EAAA,CAACF,CAAS,CAAC,EACzB,MAAMQ,EAAe,CAAC,EACP,OAAO,OAAO1N,CAAU,EAChC,QAAQ,CAACjO,EAAG3F,IAAM,CACnB,IAAAV,EACJ,GAAIqG,EAAE,QAAU,CAACA,EAAE,KACjB,OAEI,MAAA4b,EAAUvY,GAAarD,EAAE,QAAQ,EACnC,IAAAkF,EAASR,GAAckX,CAAO,EAC9BC,EAAO,EACX,KAAO3W,EAAO,OAAS2W,EAAO,KAAOliB,EAAKuL,EAAO2W,CAAI,IAAM,KAAO,OAASliB,EAAG,SAAW,KACvFkiB,IAEEA,EAAO,IAAY3W,EAAAA,EAAO,MAAM2W,CAAI,GACxC,IAAIC,EAAqB,EACrBC,EAAiB,GACrB,MAAMC,EAAS9W,EAAO,IAAI,CAACpB,EAAS5H,IAAU,CACxC,GAAA4H,EAAQ,QAAU,IACb,MAAA,KAET,IAAIoX,EASJ,GARIpX,EAAQ,OAAShB,GACPoY,EAAAJ,GACHhX,EAAQ,OAASd,IACdkY,EAAAH,GACZe,KACShY,EAAQ,OAASf,KACdmY,EAAAF,IAEVE,EAAW,CACb,QAASe,EAAK/f,EAAQ,EAAG+f,EAAK/W,EAAO,OAAQ+W,IAAM,CAC3C,MAAAC,EAAchX,EAAO+W,CAAE,EAC7B,GAAIC,EAAY,OAASrZ,IAAyBqZ,EAAY,QAAU,IACrD,OAAAH,EAAA,GACVd,GAAYnX,EAASoX,EAAY,EAAG,CAC7C,CAEK,OAAAD,GAAYnX,EAASoX,CAAS,CAAA,CAEhC,MAAA,EAAA,CACR,EACDS,EAAa,KAAK,CAChB,MAAO3b,EACP,QAAA4b,EACA,OAAA1W,EACA,MAAO7K,EACP,OAAA2hB,EACA,mBAAAF,EACA,eAAAC,CAAA,CACD,CAAA,CACF,EACD,MAAM5N,EAAawN,EAAa,KAAK,CAAC,EAAGrjB,IAAM,CACvC,MAAA6jB,EAAY,KAAK,IAAI,EAAE,OAAO,OAAQ7jB,EAAE,OAAO,MAAM,EAC3D,QAAS+B,EAAI,EAAGA,EAAI8hB,EAAW9hB,IAC7B,GAAI,EAAE,OAAOA,CAAC,IAAM/B,EAAE,OAAO+B,CAAC,EAC5B,OAAO/B,EAAE,OAAO+B,CAAC,EAAI,EAAE,OAAOA,CAAC,EAGnC,GAAI,EAAE,OAAO,SAAW/B,EAAE,OAAO,OAAQ,CACnC,GAAA,EAAE,qBAAuBA,EAAE,mBAAoB,CAC7C,GAAA,EAAE,iBAAmBA,EAAE,eAClB,OAAA,EAAE,mBAAqBA,EAAE,mBACvB,GAAA,EAAE,gBAAkB,CAACA,EAAE,eACzB,MAAA,GACE,GAAA,CAAC,EAAE,gBAAkBA,EAAE,eACzB,MAAA,EACT,CAEF,OAAOA,EAAE,OAAO,OAAS,EAAE,OAAO,MAAA,CAEpC,QAAS+B,EAAI,EAAGA,EAAI8hB,EAAW9hB,IACzB,GAAA,EAAE,OAAOA,CAAC,EAAE,QAAU/B,EAAE,OAAO+B,CAAC,EAAE,MAC7B,OAAA,EAAE,OAAOA,CAAC,EAAE,MAAQ/B,EAAE,OAAO+B,CAAC,EAAE,MAAQ,EAAI,GAGhD,OAAA,EAAE,MAAQ/B,EAAE,KACpB,CAAA,EAAE,IAAI,CAAC0H,EAAG3F,KACT2F,EAAE,MAAM,KAAO3F,EACR2F,EAAE,MACV,EACM,MAAA,CAAE,WAAAiO,EAAY,aAAAC,EAAc,WAAAC,CAAW,CAChD,CACA,SAASgB,GAAiB,CACxB,SAAApK,EACA,cAAAmK,EACA,SAAAzL,EACA,cAAAa,EACA,aAAA4J,EACA,WAAAD,EACA,WAAAE,EACA,WAAA5J,CACF,EAAG,CACD,IAAI4U,EAAc,CAAC,EACb,MAAAiD,EAAc9Y,GAAcyB,CAAQ,EACpCsX,EAAoBhO,GAAU,CAC9B,IAAA1U,EAYG,OAXQuN,GACbzD,EACA2Y,EACA,CACE,GAAI/N,EAAM,SACV,gBAAiB1U,EAAK0U,EAAM,UAAY,KAAO,OAAS1U,EAAG,gBAAkB2K,EAE7E,MAAO,EACT,EACAC,CACF,CAEF,EACA,IAAI0U,EAAa/J,IAAkB,OAAShB,EAAagB,CAAa,EAAI,OAC1E,GAAI+J,EACFE,EAAckD,EAAiBpD,CAAU,MACpC,CACL,IAAIqD,EACJ,UAAWjO,KAASF,EAAY,CACxB,MAAAoO,EAAgBF,EAAiBhO,CAAK,EAC5C,GAAIkO,EACF,GAAIlO,EAAM,OAAS,KAAOkO,EAAc,IAAI,EACrCD,IACHA,EAAa,CAAE,WAAYjO,EAAO,YAAakO,CAAc,OAE1D,CACQtD,EAAA5K,EACC8K,EAAAoD,EACd,KAAA,CAEJ,CAEE,CAACtD,GAAcqD,IACjBrD,EAAaqD,EAAW,WACxBnD,EAAcmD,EAAW,YAC3B,CAEE,IAAAxD,EAAcG,GAAchL,EAAWzB,EAAW,EAChD,MAAA0M,EAAgB,CAACJ,CAAW,EAClC,KAAOA,EAAY,aACjBA,EAAcA,EAAY,YAC1BI,EAAc,KAAKJ,CAAW,EAEhC,OAAAI,EAAc,QAAQ,EACf,CAAE,cAAAA,EAAe,YAAAC,EAAa,WAAAF,CAAW,CAClD,CACA,SAASzI,GAAsB,CAC7B,OAAAjE,EACA,KAAAgD,EACA,WAAAY,EACA,uBAAAqM,CACF,EAAG,CACD,MAAMC,EAAiBtM,EAAW,OAChC,CAACvE,EAAKyC,IAAU,CACV,IAAA1U,EACJ,MAAM+iB,EAAc,CAAC,EACjB,GAAA,WAAYrO,EAAM,SACf1U,EAAK0U,EAAM,QAAQ,SAAW,MAAgB1U,EAAG,aACpD+iB,EAAY,KAAK,GAAGrO,EAAM,QAAQ,OAAO,WAAW,UAE7CA,EAAM,QAAQ,kBAAoBA,EAAM,QAAQ,kBAAmB,CAC5E,MAAMsO,EAAmB,CAAC,CACxB,OAAQC,EACR,KAAAnf,CAAA,IACI,CACJ,IAAI4S,EAAauM,EACb,qBAAsBvO,EAAM,SAAWA,EAAM,QAAQ,mBAC1CgC,EAAAhC,EAAM,QAAQ,iBAAiB,OAC1C,CAAC7N,EAAMqc,IAAUA,EAAMrc,CAAI,EAC3Boc,CACF,GAEI,MAAAhC,EAASnd,EAAK4S,CAAU,EAC9B,MAAI,sBAAuBhC,EAAM,SAAWA,EAAM,QAAQ,kBACjDA,EAAM,QAAQ,kBAAkB,OACrC,CAAC7N,EAAMqc,IAAUA,EAAMrc,CAAI,EAC3Boa,CACF,EAEKA,CACT,EACA8B,EAAY,KAAKC,CAAgB,CAAA,CAE/B,GAAAH,GAA0BnO,EAAM,QAAQ,eAAgB,CAC1D,MAAMyO,EAAW,CAAC,CAAE,OAAQF,EAAS,KAAAnf,KAAW,CACxC,MAAAmd,EAASnd,EAAKmf,CAAO,EACvB,GAAA,CAKK,MAJiB,CACtB,GAAGhC,EACH,GAAGrK,GAAelC,EAAM,QAAQ,eAAgBuM,CAAM,GAAK,CAAA,CAC7D,CACO,MACD,CACC,OAAAA,CAAA,CAEX,EACA8B,EAAY,KAAKI,CAAQ,CAAA,CAEpB,OAAAlR,EAAI,OAAO8Q,CAAW,CAC/B,EACA,CAAA,CAAC,GACE,CAAC,EACAK,EAAQ,CAAC,CAAE,OAAQH,KAClBrN,EAAK,OAGNA,EAAK,SAAW,GACXqN,EAEF3c,GAAiBsP,EAAK,OAAQqN,CAAO,EALnC,CAAC,EAOZH,EAAe,KAAKM,CAAK,EACnB,MAAAC,EAAY,CAAC9gB,EAAO+gB,IAAkB,CACtC,GAAA/gB,GAASugB,EAAe,OACnB,OAAAQ,EAEH,MAAAC,EAAaT,EAAevgB,CAAK,EAIvC,OAAOghB,EAAW,CAAE,OAAQD,EAAe,KAH7BE,GACLH,EAAU9gB,EAAQ,EAAGihB,CAAS,EAEU,CACnD,EACO,OAAAH,EAAU,EAAGzQ,CAAM,CAC5B,CCj8DK,MAAC6Q,GAAuB,OAAO,IAAI,sBAAsB,EAC9D,SAASC,GAAMC,EAAU5jB,EAAS,CAChC,MAAM6jB,EAAUD,EAChB,OAAIC,EAAQH,EAAoB,IAGhCG,EAAQH,EAAoB,EAAI,CAAE,OAAQ,SAAW,EACrDG,EAAQ,KAAMC,GAAS,CACrBD,EAAQH,EAAoB,EAAE,OAAS,UACvCG,EAAQH,EAAoB,EAAE,KAAOI,CACzC,CAAG,EAAE,MAAO5a,GAAU,CAClB2a,EAAQH,EAAoB,EAAE,OAAS,QACvCG,EAAQH,EAAoB,EAAE,MAAQ,CACpC,MAAmC1jB,GAAQ,gBAAmB0T,IAAuBxK,CAAK,EAC1F,gBAAiB,EAClB,CACL,CAAG,GACM2a,CACT,CCnBA,MAAME,GAAiB,6BCAjB7V,GAAU,CAACyH,EAAOvT,IAAS,CAC/B,MAAM4hB,EAAQ5hB,EAAK,MAAM,GAAG,EAC5B,IAAI6J,EACAhP,EAAQ0Y,EACZ,MAAQ1J,EAAO+X,EAAM,MAAO,IAAK,MAAQ/mB,GAAS,MAChDA,EAAQA,EAAMgP,CAAI,EAEpB,OAAOhP,GAAS,IAClB,ECJA,MAAMgnB,EAAU,CACd,YAAYjkB,EAAS,CAyEnB,GAxEA,KAAK,KAAQmB,GAAS,CACpB,IAAIlB,EAAIC,EACR,KAAK,cAAgBiB,EAAK,cAC1B,MAAM2d,EAAW,KAAK,QAChBoF,EAAS,CAA8BpF,GAAS,MAAS,CAA8BA,GAAS,GACtG,KAAK,aAAe5e,GAAMD,EAAK,KAAK,SAAS,iBAAmB,KAAO,OAASC,EAAG,KAAKD,CAAE,EACtFikB,EACF,KAAK,MAAQpR,GACH,KAAK,aACfjV,GACE,EAEF,EAEF,IAAIuE,EAAO8hB,EAASpR,GAA0CgM,GAAS,KACnE1c,GAAQA,IAAS,MACnBA,EAAOuH,GAAavH,CAAI,GAE1B,MAAM+hB,EAAwCrF,GAAS,IAAO1c,EAC9D,IAAIsT,EAAKwO,EAASpR,GAAcvJ,GAAU,CACxC,KAAK,YAAY,KAAOuJ,GAAc,GAAK,KAAK,YAAY,GAC5DqR,CACR,CAAO,EACG/hB,IAAS0Q,KACX1Q,EAAO,KAELsT,IAAO5C,KACT4C,EAAKnM,GAAU,CAAC,IAAKmM,CAAE,CAAC,GAE1B,MAAM0O,EAAW1O,IAAO5C,GAAc,IAAMvJ,GAAU,CAAC,KAAK,YAAY,SAAUnH,CAAI,CAAC,EACvF,KAAK,MAAQA,EACb,KAAK,IAAMsT,EACX,KAAK,UAAY0O,EACjB,KAAK,IAAMA,CACZ,EACD,KAAK,MAASC,GAAU,CACtB,KAAK,MAAQA,EAAM,MACnB,KAAK,IAAMA,EAAM,IACjB,KAAK,UAAYA,EAAM,UACvB,KAAK,IAAMA,EAAM,IACjB,KAAK,QAAQ,eAAiBA,EAAM,QAAQ,eAC5C,KAAK,SAAWA,EAAM,QACvB,EACD,KAAK,YAAerC,GACX,KAAK,iBAAiBA,CAAQ,EAEvC,KAAK,iBAAoBA,IACnB,MAAM,QAAQA,CAAQ,IACxB,KAAK,SAAWA,GAEd,OAAOA,GAAa,UAAYA,IAAa,OAC/C,KAAK,SAAW,OAAO,OAAOA,CAAQ,GAEjC,MAET,KAAK,cAAgB,IACZ,KAET,KAAK,aAAgBlD,IACnB,OAAO,OAAO,KAAK,QAASA,CAAQ,EAC7B,MAET,KAAK,OAAUA,IACb,OAAO,OAAO,KAAK,QAASA,CAAQ,EAC7B,MAET,KAAK,KAAQiC,IACX,KAAK,OAASA,EACP,MAET,KAAK,QAAU/gB,GAAW,CAAE,EAC5B,KAAK,OAAS,CAA6BA,GAAQ,eACnBA,GAAQ,IAAmCA,GAAQ,KACjF,MAAM,IAAI,MAAM,qDAAqD,CAE3E,CACE,IAAI,IAAK,CACP,OAAO,KAAK,GAChB,CACE,IAAI,IAAK,CACP,OAAO,KAAK,GAChB,CACE,IAAI,MAAO,CACT,OAAO,KAAK,KAChB,CACE,IAAI,UAAW,CACb,OAAO,KAAK,SAChB,CACA,CACA,MAAMskB,EAAa,CACjB,YAAY,CAAE,GAAA5O,GAAM,CAClB,KAAK,SAAYvU,GACR8N,GAAS,CAAE,QAAS,KAAK,GAAI,GAAG9N,EAAM,EAE/C,KAAK,GAAKuU,CACd,CACA,CACA,MAAM6O,WAAsBN,EAAU,CACpC,YAAYjkB,EAAS,CACnB,MAAMA,CAAO,CACjB,CACA,CC1GA,SAASwkB,GAAmB7d,EAAM,CAChC,MAAO,CAAC,CAAE,OAAAkM,EAAQ,KAAA9O,KAAW,CAC3B,MAAMmd,EAASnd,EAAK8O,CAAM,EAC1B,OAAIlM,IAAS,GACJ,CAAE,GAAGkM,EAAQ,GAAGqO,CAAQ,GAEjCva,EAAK,QAAS/D,GAAQ,CACdA,KAAOse,IACXA,EAAOte,CAAG,EAAIiQ,EAAOjQ,CAAG,EAEhC,CAAK,EACMse,EACR,CACH,CACA,SAASuD,GAAkBxD,EAAO,CAChC,MAAO,CAAC,CAAE,OAAApO,EAAQ,KAAA9O,KAAW,CAC3B,GAAIkd,IAAU,GACZ,MAAO,CAAE,EAEX,MAAMC,EAASnd,EAAK8O,CAAM,EAC1B,OAAI,MAAM,QAAQoO,CAAK,EACrBA,EAAM,QAASre,GAAQ,CACrB,OAAOse,EAAOte,CAAG,CACzB,CAAO,EAED,OAAO,QAAQqe,CAAK,EAAE,QACpB,CAAC,CAACre,EAAK3F,CAAK,IAAM,CACZ+K,GAAUkZ,EAAOte,CAAG,EAAG3F,CAAK,GAC9B,OAAOikB,EAAOte,CAAG,CAE7B,CACO,EAEIse,CACR,CACH,CCnCA,MAAA9kB,GAAA,MAAAsoB,EAAA,OAAA,EAEA,SAASC,GAAW,CAClB,QAASf,CACX,EAAG,CACD,MAAMC,EAAUF,GAAMC,CAAQ,EAC9B,GAAIC,EAAQH,EAAoB,EAAE,SAAW,UAC3C,MAAMG,EAER,GAAIA,EAAQH,EAAoB,EAAE,SAAW,QAC3C,MAAMG,EAAQH,EAAoB,EAAE,MAEtC,MAAO,CAACG,EAAQH,EAAoB,EAAE,KAAMG,CAAO,CACrD,CACA,SAASe,GAAMC,EAAO,CACpB,MAAMC,EAAwBC,EAAG,IAACC,GAAY,CAAE,GAAGH,CAAK,CAAE,EAC1D,OAAIA,EAAM,SACeE,EAAG,IAAC3oB,GAAM,SAAU,CAAE,SAAUyoB,EAAM,SAAU,SAAUC,EAAO,EAEnFA,CACT,CACA,SAASE,GAAWH,EAAO,CACzB,KAAM,CAACf,CAAI,EAAIa,GAAWE,CAAK,EAC/B,OAAOA,EAAM,SAASf,CAAI,CAC5B,CCxBA,MAAA1nB,GAAA,MAAAsoB,EAAA,OAAA,EACA,SAASO,GAAcJ,EAAO,CACtB,MAAAK,EAAiBL,EAAM,gBAAkBM,GACxB,OAAAJ,EAAA,IACrBK,GACA,CACE,YAAaP,EAAM,YACnB,QAASA,EAAM,QACf,SAAU,CAAC,CAAE,MAAA3b,EAAO,MAAAmc,KACdnc,EACK9M,GAAM,cAAc8oB,EAAgB,CACzC,MAAAhc,EACA,MAAAmc,CAAA,CACD,EAEIR,EAAM,QACf,CAEJ,CACF,CACA,MAAMO,WAA0BhpB,GAAM,SAAU,CAC9C,aAAc,CACZ,MAAM,GAAG,SAAS,EACb,KAAA,MAAQ,CAAE,MAAO,IAAK,CAAA,CAE7B,OAAO,yBAAyByoB,EAAO,CACrC,MAAO,CAAE,SAAUA,EAAM,aAAc,CAAA,CAEzC,OAAO,yBAAyB3b,EAAO,CACrC,MAAO,CAAE,MAAAA,CAAM,CAAA,CAEjB,OAAQ,CACN,KAAK,SAAS,CAAE,MAAO,IAAA,CAAM,CAAA,CAE/B,mBAAmBoc,EAAW/lB,EAAW,CACnCA,EAAU,OAASA,EAAU,WAAa,KAAK,MAAM,UACvD,KAAK,MAAM,CACb,CAEF,kBAAkB2J,EAAOqc,EAAW,CAC9B,KAAK,MAAM,SACR,KAAA,MAAM,QAAQrc,EAAOqc,CAAS,CACrC,CAEF,QAAS,CACA,OAAA,KAAK,MAAM,SAAS,CACzB,MAAO,KAAK,MAAM,WAAa,KAAK,MAAM,cAAgB,KAAO,KAAK,MAAM,MAC5E,MAAO,IAAM,CACX,KAAK,MAAM,CAAA,CACb,CACD,CAAA,CAEL,CACA,SAASJ,GAAe,CAAE,MAAAjc,GAAS,CACjC,KAAM,CAACsc,EAAMC,CAAO,EAAIrpB,GAAM,SAAS,EAAqC,EACrD,OAAAspB,EAAA,KAAK,MAAO,CAAE,MAAO,CAAE,QAAS,QAAS,SAAU,MAAO,EAAG,SAAU,CACvEA,EAAAA,KAAA,MAAO,CAAE,MAAO,CAAE,QAAS,OAAQ,WAAY,SAAU,IAAK,OAAQ,EAAG,SAAU,CACtFX,MAAI,SAAU,CAAE,MAAO,CAAE,SAAU,MAAO,EAAG,SAAU,wBAAyB,EAChFA,EAAA,IACd,SACA,CACE,MAAO,CACL,WAAY,OACZ,SAAU,OACV,OAAQ,yBACR,QAAS,cACT,WAAY,OACZ,aAAc,QAChB,EACA,QAAS,IAAMU,EAASnf,GAAM,CAACA,CAAC,EAChC,SAAUkf,EAAO,aAAe,YAAA,CAClC,CACF,EACC,EACaT,EAAA,IAAI,MAAO,CAAE,MAAO,CAAE,OAAQ,QAAA,EAAY,EAC1DS,EAAuBT,EAAA,IAAI,MAAO,CAAE,SAA0BA,EAAA,IAC5D,MACA,CACE,MAAO,CACL,SAAU,OACV,OAAQ,gBACR,aAAc,SACd,QAAS,QACT,MAAO,MACP,SAAU,MACZ,EACA,SAAU7b,EAAM,QAA8B6b,MAAA,OAAQ,CAAE,SAAU7b,EAAM,OAAQ,CAAC,EAAI,IAAA,CAEzF,CAAA,CAAG,EAAI,IAAA,EACN,CACL,CC1FA,MAAAyc,GAAA,MAAAjB,EAAA,OAAA,EACA,SAASkB,GAAW,CAAE,SAAA5D,EAAU,SAAA6D,EAAW,IAAI,EAAI,CACjD,OAAOC,GAAW,EAAqBf,EAAAA,IAAIY,GAAe,SAAU,CAAE,SAAA3D,CAAQ,CAAE,EAAoB+C,EAAAA,IAAIY,GAAe,SAAU,CAAE,SAAUE,CAAQ,CAAE,CACzJ,CACA,SAASC,IAAc,CACrB,OAAOH,GAAe,qBACpB5oB,GACA,IAAM,GACN,IAAM,EACP,CACH,CACA,SAASA,IAAY,CACnB,MAAO,IAAM,CACZ,CACH;;;;;;;;6CCJA,IAAIX,EAAQC,GAAgB,EAC1BoB,EAAOsoB,GAAuC,EAChD,SAASzpB,EAAGC,EAAGC,EAAG,CAChB,OAAQD,IAAMC,IAAYD,IAAN,GAAW,EAAIA,IAAM,EAAIC,IAAQD,IAAMA,GAAKC,IAAMA,CACxE,CACA,IAAIC,EAA0B,OAAO,OAAO,IAA7B,WAAkC,OAAO,GAAKH,EAC3D0pB,EAAuBvoB,EAAK,qBAC5BwoB,EAAS7pB,EAAM,OACfO,EAAYP,EAAM,UAClB8pB,EAAU9pB,EAAM,QAChBS,EAAgBT,EAAM,cACxB,OAAA+pB,GAAA,iCAA2C,SACzCppB,EACAC,EACAopB,EACAvV,EACA+G,EACA,CACA,IAAIyO,EAAUJ,EAAO,IAAI,EACzB,GAAaI,EAAQ,UAAjB,KAA0B,CAC5B,IAAIlpB,EAAO,CAAE,SAAU,GAAI,MAAO,IAAM,EACxCkpB,EAAQ,QAAUlpB,CACtB,MAASA,EAAOkpB,EAAQ,QACtBA,EAAUH,EACR,UAAY,CACV,SAASI,EAAiBC,EAAc,CACtC,GAAI,CAACC,EAAS,CAIZ,GAHAA,EAAU,GACVC,EAAmBF,EACnBA,EAAe1V,EAAS0V,CAAY,EACrB3O,IAAX,QAAsBza,EAAK,SAAU,CACvC,IAAIupB,EAAmBvpB,EAAK,MAC5B,GAAIya,EAAQ8O,EAAkBH,CAAY,EACxC,OAAQI,EAAoBD,CAC1C,CACU,OAAQC,EAAoBJ,CACtC,CAEQ,GADAG,EAAmBC,EACflqB,EAASgqB,EAAkBF,CAAY,EAAG,OAAOG,EACrD,IAAIE,EAAgB/V,EAAS0V,CAAY,EACzC,OAAe3O,IAAX,QAAsBA,EAAQ8O,EAAkBE,CAAa,GACvDH,EAAmBF,EAAeG,IAC5CD,EAAmBF,EACXI,EAAoBC,EACpC,CACM,IAAIJ,EAAU,GACZC,EACAE,EACAE,EACaT,IAAX,OAA+B,KAAOA,EAC1C,MAAO,CACL,UAAY,CACV,OAAOE,EAAiBtpB,GAAa,CACtC,EACQ6pB,IAAT,KACI,OACA,UAAY,CACV,OAAOP,EAAiBO,GAAwB,CAC9D,CACO,CACF,EACD,CAAC7pB,EAAaopB,EAAmBvV,EAAU+G,CAAO,CACnD,EACD,IAAI3a,EAAQ+oB,EAAqBjpB,EAAWspB,EAAQ,CAAC,EAAGA,EAAQ,CAAC,CAAC,EAClE,OAAA1pB,EACE,UAAY,CACVQ,EAAK,SAAW,GAChBA,EAAK,MAAQF,CACd,EACD,CAACA,CAAK,CACP,EACDJ,EAAcI,CAAK,EACZA,CACR,2CCjFQ6pB,GAAA,QAAUzqB,GAAyE,0BCD5F,SAAS0qB,GAAS/nB,EAAO6R,EAAYvK,GAAMA,EAAG,CAQ5C,OAPc0gB,GAAgC,iCAC5ChoB,EAAM,UACN,IAAMA,EAAM,MACZ,IAAMA,EAAM,MACZ6R,EACAhI,EACD,CAEH,CACA,SAASA,GAAQC,EAAMC,EAAM,CAC3B,GAAI,OAAO,GAAGD,EAAMC,CAAI,EACtB,MAAO,GAET,GAAI,OAAOD,GAAS,UAAYA,IAAS,MAAQ,OAAOC,GAAS,UAAYA,IAAS,KACpF,MAAO,GAET,GAAID,aAAgB,KAAOC,aAAgB,IAAK,CAC9C,GAAID,EAAK,OAASC,EAAK,KAAM,MAAO,GACpC,SAAW,CAACke,EAAGpV,CAAC,IAAK/I,EACnB,GAAI,CAACC,EAAK,IAAIke,CAAC,GAAK,CAAC,OAAO,GAAGpV,EAAG9I,EAAK,IAAIke,CAAC,CAAC,EAAG,MAAO,GAEzD,MAAO,EACX,CACE,GAAIne,aAAgB,KAAOC,aAAgB,IAAK,CAC9C,GAAID,EAAK,OAASC,EAAK,KAAM,MAAO,GACpC,UAAW8I,KAAK/I,EACd,GAAI,CAACC,EAAK,IAAI8I,CAAC,EAAG,MAAO,GAE3B,MAAO,EACX,CACE,GAAI/I,aAAgB,MAAQC,aAAgB,KAC1C,OAAID,EAAK,QAAS,IAAKC,EAAK,QAAO,EAGrC,MAAMC,EAAQ,OAAO,KAAKF,CAAI,EAC9B,GAAIE,EAAM,SAAW,OAAO,KAAKD,CAAI,EAAE,OACrC,MAAO,GAET,QAASpI,EAAI,EAAGA,EAAIqI,EAAM,OAAQrI,IAChC,GAAI,CAAC,OAAO,UAAU,eAAe,KAAKoI,EAAMC,EAAMrI,CAAC,CAAC,GAAK,CAAC,OAAO,GAAGmI,EAAKE,EAAMrI,CAAC,CAAC,EAAGoI,EAAKC,EAAMrI,CAAC,CAAC,CAAC,EACpG,MAAO,GAGX,MAAO,EACT,CC/CA,MAAAvE,GAAA,MAAAsoB,EAAA,OAAA,EACMwC,GAAgB9qB,GAAM,cAAc,IAAI,EAC9C,SAAS+qB,IAAmB,CAC1B,OAAI,OAAO,SAAa,IACfD,GAEL,OAAO,uBACF,OAAO,wBAEhB,OAAO,uBAAyBA,GACzBA,GACT,CCXA,MAAA9qB,GAAA,MAAAsoB,EAAA,OAAA,EAGA,SAAS0C,EAAUjmB,EAAM,CACvB,MAAMlE,EAAQb,GAAM,WAAW+qB,GAAgB,CAAE,EACjD,OAC8BhmB,GAAK,KAG5BlE,CACT,CCTA,KAAA,CAAA,OAAAgpB,EAAA,EAAA,MAAAvB,EAAA,OAAA,EAGA,SAAS2C,EAAelmB,EAAM,CAC5B,MAAMmmB,EAAgBF,EAAU,CAC9B,KAA+BjmB,GAAK,SAAY,MACpD,CAAG,EACK4P,EAAkC5P,GAAK,QAAWmmB,EAClDC,EAAiBtB,GAAO,MAAM,EACpC,OAAOc,GAAShW,EAAO,QAAU1O,GAAU,CACzC,GAA4BlB,GAAK,OAAQ,CACvC,GAAIA,EAAK,mBAAqB4P,EAAO,QAAQ,yBAA0B,CACrE,MAAMyW,EAAW3gB,GACf0gB,EAAe,QACfpmB,EAAK,OAAOkB,CAAK,CAClB,EACD,OAAAklB,EAAe,QAAUC,EAClBA,CACf,CACM,OAAOrmB,EAAK,OAAOkB,CAAK,CAC9B,CACI,OAAOA,CACX,CAAG,CACH,CCxBA,MAAAjG,GAAA,MAAAsoB,EAAA,OAAA,EACM+C,GAAerrB,GAAM,cAAc,MAAM,EACzCsrB,GAAoBtrB,GAAM,cAC9B,MACF,ECJAA,GAAA,MAAAsoB,EAAA,OAAA,EAIA,SAASiD,EAASxmB,EAAM,CACtB,MAAMymB,EAAiBxrB,GAAM,WAC3B+E,EAAK,KAAOumB,GAAoBD,EACjC,EAiBD,OAhBuBJ,EAAe,CACpC,OAAShlB,GAAU,CACjB,MAAMsT,EAAQtT,EAAM,QAAQ,KACzBiE,GAAMnF,EAAK,KAAOA,EAAK,OAASmF,EAAE,QAAUA,EAAE,KAAOshB,CACvD,EAKD,GAJA/pB,GACE,GAAGsD,EAAK,aAAe,KAAS,CAACwU,GACjC,kBAAkBxU,EAAK,KAAO,yBAAyBA,EAAK,IAAI,IAAM,kBAAkB,EACzF,EACGwU,IAAU,OAGd,OAAOxU,EAAK,OAASA,EAAK,OAAOwU,CAAK,EAAIA,CAC3C,EACD,kBAAmBxU,EAAK,iBAC5B,CAAG,CAEH,CCxBA,SAAS0mB,GAAc1mB,EAAM,CAC3B,OAAOwmB,EAAS,CACd,KAAMxmB,EAAK,KACX,OAAQA,EAAK,OACb,kBAAmBA,EAAK,kBACxB,OAASsX,GACAtX,EAAK,OAASA,EAAK,OAAOsX,EAAE,UAAU,EAAIA,EAAE,UAEzD,CAAG,CACH,CCTA,SAASqP,GAAc3mB,EAAM,CAC3B,KAAM,CAAE,OAAA4mB,EAAQ,GAAG3P,CAAI,EAAKjX,EAC5B,OAAOwmB,EAAS,CACd,GAAGvP,EACH,OAASK,GACAsP,EAASA,EAAOtP,EAAE,UAAU,EAAIA,EAAE,UAE/C,CAAG,CACH,CCRA,SAASuP,GAAU7mB,EAAM,CACvB,OAAOwmB,EAAS,CACd,KAAMxmB,EAAK,KACX,OAAQA,EAAK,OACb,YAAaA,EAAK,YAClB,kBAAmBA,EAAK,kBACxB,OAASwU,GACAxU,EAAK,OAASA,EAAK,OAAOwU,EAAM,MAAM,EAAIA,EAAM,MAE7D,CAAG,CACH,CCVA,SAASsS,GAAU9mB,EAAM,CACvB,OAAOwmB,EAAS,CACd,KAAMxmB,EAAK,KACX,OAAQA,EAAK,OACb,YAAaA,EAAK,YAClB,kBAAmBA,EAAK,kBACxB,OAASwU,GACAxU,EAAK,OAASA,EAAK,OAAOwU,EAAM,MAAM,EAAIA,EAAM,MAE7D,CAAG,CACH,CCXA,MAAAvZ,GAAA,MAAAsoB,EAAA,OAAA,EAGA,SAASwD,GAAYC,EAAc,CACjC,KAAM,CAAE,SAAAC,EAAU,MAAA/lB,CAAO,EAAG+kB,EAAW,EACjCiB,EAAaV,EAAS,CAC1B,OAAQ,GACR,OAAShS,GAAUA,EAAM,KAC7B,CAAG,EACD,OAAOvZ,GAAM,YACV4D,GAAY,CACX,MAAM+N,EAAO/N,EAAQ,MAAyCmoB,GAAa,MAAS9lB,EAAM,QAAQgmB,CAAU,EAAE,SAC9G,OAAOD,EAAS,CACd,GAAGpoB,EACH,KAAA+N,CACR,CAAO,CACF,EAED,CAAiCoa,GAAa,KAAMC,CAAQ,CAC7D,CACH,CACA,SAASE,GAASzD,EAAO,CACvB,MAAM9T,EAASqW,EAAW,EACpBgB,EAAWF,GAAa,EACxBK,EAAmBnsB,GAAM,OAAO,IAAI,EAC1CA,OAAAA,GAAM,UAAU,IAAM,CAChBmsB,EAAiB,UAAY1D,IAC/BuD,EAASvD,CAAK,EACd0D,EAAiB,QAAU1D,EAE9B,EAAE,CAAC9T,EAAQ8T,EAAOuD,CAAQ,CAAC,EACrB,IACT,CChCA,MAAAhsB,GAAA,MAAAsoB,EAAA,OAAA,EACA,SAAS8D,GAAkB9oB,EAAI,CAC7B,MAAM+oB,EAAQrsB,GAAM,OAAOsD,CAAE,EAC7B,OAAA+oB,EAAM,QAAU/oB,EACJtD,GAAM,OAAO,IAAI+I,IAASsjB,EAAM,QAAQ,GAAGtjB,CAAI,CAAC,EACjD,OACb,CACK,MAACvI,GAAkB,OAAO,OAAW,IAAcR,GAAM,gBAAkBA,GAAM,UACtF,SAASssB,GAAYzrB,EAAO,CAC1B,MAAM0rB,EAAMvsB,GAAM,OAAO,CACvB,MAAAa,EACA,KAAM,IACV,CAAG,EACK2rB,EAAUD,EAAI,QAAQ,MAC5B,OAAI1rB,IAAU2rB,IACZD,EAAI,QAAU,CACZ,MAAA1rB,EACA,KAAM2rB,CACP,GAEID,EAAI,QAAQ,IACrB,CACA,SAASE,GAAwBF,EAAKG,EAAUC,EAA8B,CAAE,EAAE/oB,EAAU,GAAI,CAC9F5D,GAAM,UAAU,IAAM,CACpB,GAAI,CAACusB,EAAI,SAAW3oB,EAAQ,UAAY,OAAO,sBAAyB,WACtE,OAEF,MAAMgpB,EAAW,IAAI,qBAAqB,CAAC,CAACvY,CAAK,IAAM,CACrDqY,EAASrY,CAAK,CACf,EAAEsY,CAA2B,EAC9B,OAAAC,EAAS,QAAQL,EAAI,OAAO,EACrB,IAAM,CACXK,EAAS,WAAY,CACtB,CACL,EAAK,CAACF,EAAUC,EAA6B/oB,EAAQ,SAAU2oB,CAAG,CAAC,CACnE,CACA,SAASM,GAAgBN,EAAK,CAC5B,MAAMO,EAAW9sB,GAAM,OAAO,IAAI,EAClCA,OAAAA,GAAM,oBAAoBusB,EAAK,IAAMO,EAAS,QAAS,CAAA,CAAE,EAClDA,CACT,CCvCA,MAAA9sB,GAAA,MAAAsoB,EAAA,OAAA,EACA,CAAA,UAAAyE,EAAA,EAAA,MAAAzE,EAAA,WAAA,EAMA,SAAS0E,GAAappB,EAASqpB,EAAc,CAC3C,MAAMtY,EAASqW,EAAW,EACpB,CAACkC,EAAiBC,CAAkB,EAAIntB,GAAM,SAAS,EAAK,EAC5DotB,EAAmBptB,GAAM,OAAO,EAAK,EACrC8sB,EAAWD,GAAgBI,CAAY,EACvC,CAEJ,YAAAI,EACA,cAAAC,EACA,cAAAC,EACA,GAAAjf,EACA,QAASkf,EACT,aAAcC,EACd,mBAAA7R,EACA,QAAAE,EACA,gBAAA4R,EACA,YAAA3R,EACA,eAAAX,EAEA,SAAAwK,EACA,OAAA+H,EACA,SAAAC,EACA,MAAAC,EACA,UAAAC,EACA,QAAAC,EACA,QAAAC,EACA,aAAAC,EACA,aAAAC,EACA,aAAAC,EACA,cAAAtlB,EAEA,OAAQulB,EACR,OAAQC,EACR,KAAMC,EACN,MAAOC,EACP,KAAMC,EACN,eAAgBC,EAChB,eAAgBC,EAChB,KAAMzT,EACN,cAAA0T,EACA,GAAGC,CACP,EAAMhrB,EACEoE,GAAOhI,GAAM,QAAQ,IAAM,CAC/B,GAAI,CACF,WAAI,IAAIsO,CAAE,EACH,UACb,MAAY,CACZ,CACI,MAAO,UACX,EAAK,CAACA,CAAE,CAAC,EACD6Y,EAAgB8D,EAAe,CACnC,OAAS5O,GAAMA,EAAE,SAAS,OAC1B,kBAAmB,EACvB,CAAG,EACK1K,EAAO4Z,EAAS,CACpB,OAAQ,GACR,OAAShS,GAAU3V,EAAQ,MAAQ2V,EAAM,QAC7C,CAAG,EACK5R,EAAO3H,GAAM,QACjB,IAAM2U,EAAO,cAAc,CAAE,GAAG/Q,EAAS,KAAA+N,CAAI,CAAE,EAE/C,CACEgD,EACAwS,EACAvjB,EAAQ,cACR+N,EACA/N,EAAQ,KACRA,EAAQ,GACRA,EAAQ,OACRA,EAAQ,OACRA,EAAQ,MACRA,EAAQ,KACRA,EAAQ,cACd,CACG,EACKirB,EAAa7mB,KAAS,WACtB+X,EAAUnc,EAAQ,gBAAkBirB,EAAa,GAAQrB,GAAe7Y,EAAO,QAAQ,eACvFma,EAAerB,GAAoB9Y,EAAO,QAAQ,qBAAuB,EACzEoa,EAAW9D,EAAe,CAC9B,OAAS5O,GAAM,CACb,GAAIwS,EAAY,MAAO,GACvB,GAAqCtB,GAAc,OAMjD,GAAI,CALc3f,GAChByO,EAAE,SAAS,SACX1U,EAAK,SACLgN,EAAO,QACR,EAEC,MAAO,OAEJ,CACL,MAAMqa,EAAmBthB,GACvB2O,EAAE,SAAS,SACX1H,EAAO,QACR,EACKsa,GAAgBvhB,GACpB/F,EAAK,SACLgN,EAAO,QACR,EAED,GAAI,EADqBqa,EAAiB,WAAWC,EAAa,IAAMD,EAAiB,SAAWC,GAAc,QAAUD,EAAiBC,GAAc,MAAM,IAAM,MAErK,MAAO,EAEjB,CACM,OAAsC1B,GAAc,eAAkB,KAKhE,CAJe3hB,GAAUyQ,EAAE,SAAS,OAAQ1U,EAAK,OAAQ,CAC3D,QAAS,CAAmC4lB,GAAc,MAC1D,gBAAiB,CAAmCA,GAAc,iBAC5E,CAAS,EAEQ,GAG0BA,GAAc,YAC1ClR,EAAE,SAAS,OAAS1U,EAAK,KAE3B,EACb,CACA,CAAG,EACKunB,EAAYlvB,GAAM,YACtB,IAAM,CACJ2U,EAAO,aAAa,CAAE,GAAG/Q,EAAS,KAAA+N,CAAI,CAAE,EAAE,MAAO4F,GAAQ,CACvD,QAAQ,KAAKA,CAAG,EAChB,QAAQ,KAAKoQ,EAAc,CACnC,CAAO,CACF,EAED,CACEhT,EACA/Q,EAAQ,GACRA,EAAQ,cACR+N,EACA/N,EAAQ,OACRA,EAAQ,KACRA,EAAQ,OACRA,EAAQ,MACRA,EAAQ,KACRA,EAAQ,eACRA,EAAQ,mBACRA,EAAQ,KACRA,EAAQ,cACRA,EAAQ,eACRA,EAAQ,QACRA,EAAQ,YACRA,EAAQ,cACd,CACG,EACKurB,GAA4BnvB,GAAM,YACrCqU,GAAU,CACoBA,GAAM,gBACjC6a,EAAW,CAEd,EACD,CAACA,CAAS,CACX,EAgBD,GAfAzC,GACEK,EACAqC,GACAxC,GACA,CAAE,SAAU,CAAC,CAACiB,GAAc7N,IAAY,UAAW,CACpD,EACD/f,GAAM,UAAU,IAAM,CAChBotB,EAAiB,SAGjB,CAACQ,GAAY7N,IAAY,WAC3BmP,EAAW,EACX9B,EAAiB,QAAU,GAE9B,EAAE,CAACQ,EAAUsB,EAAWnP,CAAO,CAAC,EAC7B8O,EACF,MAAO,CACL,GAAGD,EACH,IAAK9B,EACL,KAAA9kB,GACA,KAAMsG,EACN,GAAGsX,GAAY,CAAE,SAAAA,CAAU,EAC3B,GAAG+H,GAAU,CAAE,OAAAA,CAAQ,EACvB,GAAGC,GAAY,CAAE,SAAAA,CAAU,EAC3B,GAAGC,GAAS,CAAE,MAAAA,CAAO,EACrB,GAAGC,GAAa,CAAE,UAAAA,CAAW,EAC7B,GAAGC,GAAW,CAAE,QAAAA,CAAS,EACzB,GAAGC,GAAW,CAAE,QAAAA,CAAS,EACzB,GAAGC,GAAgB,CAAE,aAAAA,CAAc,EACnC,GAAGC,GAAgB,CAAE,aAAAA,CAAc,EACnC,GAAGC,GAAgB,CAAE,aAAAA,CAAY,CAClC,EAEH,MAAMiB,GAAe1mB,GAAM,CACzB,GAAI,CAACklB,GAAY,CAACyB,GAAY3mB,CAAC,GAAK,CAACA,EAAE,mBAAqB,CAACilB,GAAUA,IAAW,UAAYjlB,EAAE,SAAW,EAAG,CAC5GA,EAAE,eAAgB,EAClBqkB,GAAU,IAAM,CACdI,EAAmB,EAAI,CAC/B,CAAO,EACD,MAAMppB,EAAQ4Q,EAAO,UAAU,aAAc,IAAM,CACjD5Q,EAAO,EACPopB,EAAmB,EAAK,CAChC,CAAO,EACDxY,EAAO,SAAS,CACd,GAAG/Q,EACH,KAAA+N,EACA,QAAAmK,EACA,YAAAC,EACA,mBAAAH,EACA,gBAAA8R,EACA,eAAAtS,EACA,cAAAvS,CACR,CAAO,CACP,CACG,EACKymB,GAAeC,GAAM,CACrB3B,GACA7N,GACFmP,EAAW,CAEd,EACKM,GAAmBF,GACnBG,GAAe/mB,GAAM,CACzB,GAAI,EAAAklB,GAAY,CAAC7N,GACjB,GAAI,CAAC+O,EACHI,EAAW,MACN,CACL,MAAMQ,EAAchnB,EAAE,OACtB,GAAIinB,GAAW,IAAID,CAAW,EAC5B,OAEF,MAAMpW,GAAK,WAAW,IAAM,CAC1BqW,GAAW,OAAOD,CAAW,EAC7BR,EAAW,CACZ,EAAEJ,CAAY,EACfa,GAAW,IAAID,EAAapW,EAAE,CACpC,CACG,EACKsW,GAAelnB,GAAM,CACzB,GAAIklB,GAAY,CAAC7N,GAAW,CAAC+O,EAAc,OAC3C,MAAMY,EAAchnB,EAAE,OAChB4Q,GAAKqW,GAAW,IAAID,CAAW,EACjCpW,KACF,aAAaA,EAAE,EACfqW,GAAW,OAAOD,CAAW,EAEhC,EACKG,GAAsBd,EAAW5kB,GAAiBkjB,EAAa,CAAE,CAAA,GAAKyC,GAAuBC,GAC7FC,GAAwBjB,EAAWgB,GAAsB5lB,GAAiBmjB,EAAe,CAAE,CAAA,GAAKyC,GAChGE,GAAoB,CACxBnC,EACA+B,GAAoB,UACpBG,GAAsB,SACvB,EAAC,OAAO,OAAO,EAAE,KAAK,GAAG,EACpBE,IAAiBrC,GAASgC,GAAoB,OAASG,GAAsB,QAAU,CAC3F,GAAGnC,EACH,GAAGgC,GAAoB,MACvB,GAAGG,GAAsB,KAC1B,EACD,MAAO,CACL,GAAGpB,EACH,GAAGiB,GACH,GAAGG,GACH,KAAMpC,EAAW,OAASjmB,EAAK,eAAiBgN,EAAO,QAAQ,WAAWhN,EAAK,eAAe,IAAI,EAAIgN,EAAO,QAAQ,WAAWhN,EAAK,IAAI,EACzI,IAAKmlB,EACL,QAASqD,GAAgB,CAACpC,EAASqB,EAAW,CAAC,EAC/C,QAASe,GAAgB,CAACnC,EAASsB,EAAW,CAAC,EAC/C,aAAca,GAAgB,CAAClC,EAAcwB,EAAW,CAAC,EACzD,aAAcU,GAAgB,CAACjC,EAAc0B,EAAW,CAAC,EACzD,aAAcO,GAAgB,CAAChC,EAAcqB,EAAgB,CAAC,EAC9D,SAAU,CAAC,CAAC5B,EACZ,OAAAD,EACA,GAAGuC,IAAiB,CAAE,MAAOA,EAAe,EAC5C,GAAGD,IAAqB,CAAE,UAAWA,EAAmB,EACxD,GAAGrC,GAAYwC,GACf,GAAGrB,GAAYsB,GACf,GAAGnD,GAAmBoD,EACvB,CACH,CACA,MAAMP,GAAsB,CAAE,EACxBD,GAAuB,CAAE,UAAW,QAAU,EAC9CM,GAAwB,CAAE,KAAM,OAAQ,gBAAiB,EAAM,EAC/DC,GAAsB,CAAE,cAAe,SAAU,eAAgB,MAAQ,EACzEC,GAA6B,CAAE,qBAAsB,eAAiB,EACtEX,GAA6B,IAAI,QACjChD,GAA8B,CAClC,WAAY,OACd,EACMwD,GAAmBI,GAAc7nB,GAAM,CAC3C6nB,EAAS,OAAO,OAAO,EAAE,QAASC,GAAY,CACxC9nB,EAAE,kBACN8nB,EAAQ9nB,CAAC,CACb,CAAG,CACH,EACA,SAAS+nB,GAAWC,EAAM,CACxB,OAAO1wB,GAAM,WAAW,SAAqByoB,EAAO8D,EAAK,CACvD,OAAuB5D,EAAAA,IAAIgI,GAAM,CAAE,GAAGlI,EAAO,SAAUiI,EAAM,IAAAnE,EAAK,CACtE,CAAG,CACH,CACK,MAACoE,GAAO3wB,GAAM,WACjB,CAACyoB,EAAO8D,IAAQ,CACd,KAAM,CAAE,SAAAqE,EAAU,GAAG5U,CAAI,EAAKyM,EACxB,CACJ,KAAMoI,EACN,IAAK/D,EACL,GAAGgE,CACT,EAAQ9D,GAAahR,EAAMuQ,CAAG,EACpB3G,EAAW,OAAO5J,EAAK,UAAa,WAAaA,EAAK,SAAS,CACnE,SAAU8U,EAAU,aAAa,IAAM,QAC7C,CAAK,EAAI9U,EAAK,SACV,OAAI4U,IAAa,QACf,OAAOE,EAAU,SAEZ9wB,GAAM,cACX4wB,GAAsB,IACtB,CACE,GAAGE,EACH,IAAKhE,CACN,EACDlH,CACD,CACL,CACA,EACA,SAASyJ,GAAY3mB,EAAG,CACtB,MAAO,CAAC,EAAEA,EAAE,SAAWA,EAAE,QAAUA,EAAE,SAAWA,EAAE,SACpD,CACK,MAACqoB,GAAentB,GACZA,ECxUT2lB,GAAA,MAAAjB,EAAA,OAAA,EASA,SAAS0I,GAAY1X,EAAI,CACvB,OAAO,IAAI2X,GAAS,CAAE,GAAA3X,EAAI,CAC5B,CACA,MAAM2X,WAAiB/I,EAAa,CAIlC,YAAY,CAAE,GAAA5O,GAAM,CAClB,MAAM,CAAE,GAAAA,EAAI,EACZ,KAAK,SAAYvU,GACRwmB,EAAS,CACd,OAAgCxmB,GAAK,OACrC,KAAM,KAAK,GACX,kBAA2CA,GAAK,iBACxD,CAAO,EAEH,KAAK,gBAAmBA,GACfwmB,EAAS,CACd,KAAM,KAAK,GACX,OAASrhB,GAA+BnF,GAAK,OAAUA,EAAK,OAAOmF,EAAE,OAAO,EAAIA,EAAE,OAC1F,CAAO,EAEH,KAAK,UAAanF,GACT8mB,GAAU,CACf,OAAgC9mB,GAAK,OACrC,kBAA2CA,GAAK,kBAChD,KAAM,KAAK,EACnB,CAAO,EAEH,KAAK,UAAaA,GACT6mB,GAAU,CACf,OAAgC7mB,GAAK,OACrC,kBAA2CA,GAAK,kBAChD,KAAM,KAAK,EACnB,CAAO,EAEH,KAAK,cAAiBA,GACb2mB,GAAc,CAAE,GAAG3mB,EAAM,KAAM,KAAK,GAAI,OAAQ,GAAO,EAEhE,KAAK,cAAiBA,GACb0mB,GAAc,CAAE,GAAG1mB,EAAM,KAAM,KAAK,GAAI,OAAQ,GAAO,EAEhE,KAAK,YAAc,IAAM,CACvB,MAAM4P,EAASqW,EAAW,EAC1B,OAAOc,GAAY,CAAE,KAAMnX,EAAO,WAAW,KAAK,EAAE,EAAE,SAAU,CACjE,EACD,KAAK,SAAY5P,GACR8N,GAAS,CAAE,QAAS,KAAK,GAAI,GAAG9N,EAAM,EAE/C,KAAK,KAAOwkB,GAAe,WAAW,CAACd,EAAO8D,IAAQ,CAEpD,MAAMvE,EADSgD,EAAW,EACF,WAAW,KAAK,EAAE,EAAE,SAC5C,OAAuBrC,EAAAA,IAAIgI,GAAM,CAAE,IAAApE,EAAK,KAAMvE,EAAU,GAAGS,EAAO,CACxE,CAAK,CACL,CACA,CACA,MAAMyI,WAAcrJ,EAAU,CAI5B,YAAYjkB,EAAS,CACnB,MAAMA,CAAO,EACb,KAAK,SAAYmB,GACRwmB,EAAS,CACd,OAAgCxmB,GAAK,OACrC,KAAM,KAAK,GACX,kBAA2CA,GAAK,iBACxD,CAAO,EAEH,KAAK,gBAAmBA,GACfwmB,EAAS,CACd,GAAGxmB,EACH,KAAM,KAAK,GACX,OAASmF,GAA+BnF,GAAK,OAAUA,EAAK,OAAOmF,EAAE,OAAO,EAAIA,EAAE,OAC1F,CAAO,EAEH,KAAK,UAAanF,GACT8mB,GAAU,CACf,OAAgC9mB,GAAK,OACrC,kBAA2CA,GAAK,kBAChD,KAAM,KAAK,EACnB,CAAO,EAEH,KAAK,UAAaA,GACT6mB,GAAU,CACf,OAAgC7mB,GAAK,OACrC,kBAA2CA,GAAK,kBAChD,KAAM,KAAK,EACnB,CAAO,EAEH,KAAK,cAAiBA,GACb2mB,GAAc,CAAE,GAAG3mB,EAAM,KAAM,KAAK,GAAI,EAEjD,KAAK,cAAiBA,GACb0mB,GAAc,CAAE,GAAG1mB,EAAM,KAAM,KAAK,GAAI,EAEjD,KAAK,YAAc,IACV+mB,GAAY,CAAE,KAAM,KAAK,QAAQ,CAAE,EAE5C,KAAK,KAAOvC,GAAe,WACzB,CAACd,EAAO8D,IACiB5D,EAAG,IAACgI,GAAM,CAAE,IAAApE,EAAK,KAAM,KAAK,SAAU,GAAG9D,EAAO,CAE1E,EACD,KAAK,SAAW,OAAO,IAAI,YAAY,CAC3C,CACA,CACA,SAAS0I,GAAYvtB,EAAS,CAC5B,OAAO,IAAIstB,GAAMttB,CAAO,CAC1B,CACA,SAASwtB,IAA6B,CACpC,OAAQxtB,GACCytB,GAAgBztB,CAAO,CAElC,CACK,MAAC0tB,GAAuBF,GAC7B,MAAMG,WAAkBpJ,EAAc,CAIpC,YAAYvkB,EAAS,CACnB,MAAMA,CAAO,EACb,KAAK,SAAYmB,GACRwmB,EAAS,CACd,OAAgCxmB,GAAK,OACrC,KAAM,KAAK,GACX,kBAA2CA,GAAK,iBACxD,CAAO,EAEH,KAAK,gBAAmBA,GACfwmB,EAAS,CACd,GAAGxmB,EACH,KAAM,KAAK,GACX,OAASmF,GAA+BnF,GAAK,OAAUA,EAAK,OAAOmF,EAAE,OAAO,EAAIA,EAAE,OAC1F,CAAO,EAEH,KAAK,UAAanF,GACT8mB,GAAU,CACf,OAAgC9mB,GAAK,OACrC,kBAA2CA,GAAK,kBAChD,KAAM,KAAK,EACnB,CAAO,EAEH,KAAK,UAAaA,GACT6mB,GAAU,CACf,OAAgC7mB,GAAK,OACrC,kBAA2CA,GAAK,kBAChD,KAAM,KAAK,EACnB,CAAO,EAEH,KAAK,cAAiBA,GACb2mB,GAAc,CAAE,GAAG3mB,EAAM,KAAM,KAAK,GAAI,EAEjD,KAAK,cAAiBA,GACb0mB,GAAc,CAAE,GAAG1mB,EAAM,KAAM,KAAK,GAAI,EAEjD,KAAK,YAAc,IACV+mB,GAAY,CAAE,KAAM,KAAK,QAAQ,CAAE,EAE5C,KAAK,KAAOvC,GAAe,WACzB,CAACd,EAAO8D,IACiB5D,EAAG,IAACgI,GAAM,CAAE,IAAApE,EAAK,KAAM,KAAK,SAAU,GAAG9D,EAAO,CAE1E,EACD,KAAK,SAAW,OAAO,IAAI,YAAY,CAC3C,CACA,CACA,SAAS4I,GAAgBztB,EAAS,CAChC,OAAO,IAAI2tB,GAAU3tB,CAAO,CAC9B,CACA,SAAS4tB,GAAgBzsB,EAAM,CAC7B,OAAOA,CACT,CACA,MAAM0sB,WAAsBP,EAAM,CAChC,YAAYttB,EAAS,CACnB,MAAM,CACJ,GAAGA,EACH,GAAI,KACV,CAAK,CACL,CACA,CCtLA,SAAS8tB,GAAgB1rB,EAAM,CAC7B,OAAI,OAAOA,GAAS,SACX,IAAI2rB,GAAU3rB,EAAM,CACzB,OAAQ,EACd,CAAK,EAAE,YAAYA,CAAI,EAEd,IAAI2rB,GAAU3rB,EAAM,CACzB,OAAQ,EACT,CAAA,EAAE,WACL,CACA,MAAM2rB,EAAU,CACd,YAAY3rB,EAAM4rB,EAAO,CACvB,KAAK,KAAO5rB,EACZ,KAAK,YAAepC,GAAY,CAE5B,KAAK,OAGP,MAAM2U,EAAQ4Y,GAAYvtB,CAAO,EACjC,OAAA2U,EAAM,OAAS,GACRA,CACR,EACD,KAAK,OAAkCqZ,GAAM,MACjD,CACA,CACA,SAASC,GAAgBC,EAAO,CAK9B,OAAQC,GAAaA,CACvB,CACA,MAAMC,EAAU,CACd,YAAYjtB,EAAM,CAChB,KAAK,SAAY0f,GACR8G,EAAS,CACd,OAAiC9G,GAAM,OACvC,KAAM,KAAK,QAAQ,GACnB,kBAA4CA,GAAM,iBAC1D,CAAO,EAEH,KAAK,gBAAmBA,GACf8G,EAAS,CACd,KAAM,KAAK,QAAQ,GACnB,OAASrhB,GAAgCua,GAAM,OAAUA,EAAM,OAAOva,EAAE,OAAO,EAAIA,EAAE,OAC7F,CAAO,EAEH,KAAK,UAAaua,GACToH,GAAU,CACf,OAAiCpH,GAAM,OACvC,kBAA4CA,GAAM,kBAClD,KAAM,KAAK,QAAQ,EAC3B,CAAO,EAEH,KAAK,UAAaA,GACTmH,GAAU,CACf,OAAiCnH,GAAM,OACvC,kBAA4CA,GAAM,kBAClD,KAAM,KAAK,QAAQ,EAC3B,CAAO,EAEH,KAAK,cAAiBA,GACbiH,GAAc,CAAE,GAAGjH,EAAO,KAAM,KAAK,QAAQ,GAAI,EAE1D,KAAK,cAAiBA,GACbgH,GAAc,CAAE,GAAGhH,EAAO,KAAM,KAAK,QAAQ,GAAI,EAE1D,KAAK,YAAc,IAAM,CACvB,MAAM9P,EAASqW,EAAW,EAC1B,OAAOc,GAAY,CAAE,KAAMnX,EAAO,WAAW,KAAK,QAAQ,EAAE,EAAE,SAAU,CACzE,EACD,KAAK,QAAU5P,EACf,KAAK,SAAW,OAAO,IAAI,YAAY,CAC3C,CACA,CACA,SAASktB,GAAgB3Y,EAAI,CAC3B,OAAQvU,GACC,IAAIitB,GAAU,CACnB,GAAA1Y,EACA,GAAGvU,CACT,CAAK,CAEL,CACA,SAASmtB,GAAoB5Y,EAAI,CAC/B,OAAI,OAAOA,GAAO,SACT,IAAI0Y,GAAU1Y,CAAE,EAEjBvU,GAAS,IAAIitB,GAAU,CAAE,GAAA1Y,EAAI,GAAGvU,EAAM,CAChD,CCjGA,MAAA/E,GAAA,MAAAsoB,EAAA,OAAA,EAEA,SAAS6J,GAAmBC,EAAUC,EAAY,CAChD,IAAI9V,EACA+V,EACAxlB,EACAylB,EACJ,MAAMC,EAAO,KACNjW,IACHA,EAAc6V,EAAQ,EAAG,KAAMppB,GAAQ,CACrCuT,EAAc,OACd+V,EAAOtpB,EAAIqpB,GAAc,SAAS,CAC1C,CAAO,EAAE,MAAO9a,GAAQ,CAEhB,GADAzK,EAAQyK,EACJ1K,GAAsBC,CAAK,GACzBA,aAAiB,OAAS,OAAO,OAAW,KAAe,OAAO,eAAmB,IAAa,CACpG,MAAMkG,EAAa,0BAA0BlG,EAAM,OAAO,GACrD,eAAe,QAAQkG,CAAU,IACpC,eAAe,QAAQA,EAAY,GAAG,EACtCuf,EAAS,GAEvB,CAEA,CAAO,GAEIhW,GAEHkW,EAAW,SAAchK,EAAO,CACpC,GAAI8J,EACF,aAAO,SAAS,OAAQ,EAClB,IAAI,QAAQ,IAAM,CAC9B,CAAO,EAEH,GAAIzlB,EACF,MAAMA,EAER,GAAI,CAACwlB,EACH,MAAME,EAAM,EAEd,OAAOxyB,GAAM,cAAcsyB,EAAM7J,CAAK,CACvC,EACD,OAAAgK,EAAS,QAAUD,EACZC,CACT,CC3CA,MAAAzyB,GAAA,MAAAsoB,EAAA,OAAA,EAKA,SAASoK,IAAe,CACtB,MAAM/d,EAASqW,EAAW,EACpB2H,EAAqB3yB,GAAM,OAAO,CAAE,OAAA2U,EAAQ,QAAS,GAAO,EAC5D,CAACuY,EAAiBC,CAAkB,EAAIntB,GAAM,SAAS,EAAK,EAC5D,CAAE,kBAAA4yB,EAAmB,UAAAC,CAAW,EAAG5H,EAAe,CACtD,OAAS5O,IAAO,CACd,UAAWA,EAAE,UACb,kBAAmBA,EAAE,QAAQ,KAAMnS,GAAMA,EAAE,SAAW,SAAS,CACrE,GACI,kBAAmB,EACvB,CAAG,EACK4oB,EAAoBxG,GAAYuG,CAAS,EACzCE,EAAeF,GAAa3F,GAAmB0F,EAC/CI,EAAuB1G,GAAYyG,CAAY,EAC/CE,EAAgBJ,GAAaD,EAC7BM,EAAwB5G,GAAY2G,CAAa,EACvD,OAAAte,EAAO,gBAAmBrR,GAAO,CAC/B6pB,EAAmB,EAAI,EACvBntB,GAAM,gBAAgB,IAAM,CAC1BsD,EAAI,EACJ6pB,EAAmB,EAAK,CAC9B,CAAK,CACF,EACDntB,GAAM,UAAU,IAAM,CACpB,MAAM+D,EAAQ4Q,EAAO,QAAQ,UAAUA,EAAO,IAAI,EAC5C9O,EAAe8O,EAAO,cAAc,CACxC,GAAIA,EAAO,eAAe,SAC1B,OAAQ,GACR,OAAQ,GACR,KAAM,GACN,MAAO,GACP,uBAAwB,EAC9B,CAAK,EACD,OAAInH,GAAcmH,EAAO,eAAe,IAAI,IAAMnH,GAAc3H,EAAa,IAAI,GAC/E8O,EAAO,eAAe,CAAE,GAAG9O,EAAc,QAAS,EAAI,CAAE,EAEnD,IAAM,CACX9B,EAAO,CACR,CACF,EAAE,CAAC4Q,EAAQA,EAAO,OAAO,CAAC,EAC3BnU,GAAgB,IAAM,CACpB,GAEE,OAAO,OAAW,KAAemU,EAAO,KAAOge,EAAmB,QAAQ,SAAWhe,GAAUge,EAAmB,QAAQ,QAE1H,OAEFA,EAAmB,QAAU,CAAE,OAAAhe,EAAQ,QAAS,EAAM,GACtC,SAAY,CAC1B,GAAI,CACF,MAAMA,EAAO,KAAM,CACpB,OAAQ4C,EAAK,CACZ,QAAQ,MAAMA,CAAG,CACzB,CACK,GACQ,CACb,EAAK,CAAC5C,CAAM,CAAC,EACXnU,GAAgB,IAAM,CAChBsyB,GAAqB,CAACD,GACxBle,EAAO,KAAK,CACV,KAAM,SAEN,GAAG6C,GAAsB7C,EAAO,KAAK,CAC7C,CAAO,CAEJ,EAAE,CAACme,EAAmBne,EAAQke,CAAS,CAAC,EACzCryB,GAAgB,IAAM,CAChB0yB,GAAyB,CAACD,GAC5Bte,EAAO,KAAK,CACV,KAAM,qBACN,GAAG6C,GAAsB7C,EAAO,KAAK,CAC7C,CAAO,CAEJ,EAAE,CAACse,EAAeC,EAAuBve,CAAM,CAAC,EACjDnU,GAAgB,IAAM,CAChBwyB,GAAwB,CAACD,IAC3Bpe,EAAO,KAAK,CACV,KAAM,aACN,GAAG6C,GAAsB7C,EAAO,KAAK,CAC7C,CAAO,EACDA,EAAO,QAAQ,SAAU0H,IAAO,CAC9B,GAAGA,EACH,OAAQ,OACR,iBAAkBA,EAAE,QAC5B,EAAQ,EACFhH,GAAiBV,CAAM,EAE1B,EAAE,CAACoe,EAAcC,EAAsBre,CAAM,CAAC,EACxC,IACT,CC1FA,SAASwe,GAAc1K,EAAO,CAC5B,MAAM2K,EAAWnI,EAAe,CAC9B,OAAS5O,GAAM,aAAaA,EAAE,SAAS,QAAQ,IAAIA,EAAE,MAAM,EAC/D,CAAG,EACD,OAAuBsM,EAAG,IACxBE,GACA,CACE,YAAa,IAAMuK,EACnB,QAAS,CAACtmB,EAAOqc,IAAc,CAC7B,IAAItlB,EACJ,GAAIiP,GAAWhG,CAAK,GACjBjJ,EAAK4kB,EAAM,UAAY,MAAgB5kB,EAAG,KAAK4kB,EAAO3b,EAAOqc,CAAS,MAEvE,OAAMrc,CAET,EACD,eAAgB,CAAC,CAAE,MAAAA,KAAY,CAC7B,IAAIjJ,EACJ,GAAIiP,GAAWhG,CAAK,EAClB,OAAQjJ,EAAK4kB,EAAM,WAAa,KAAO,OAAS5kB,EAAG,KAAK4kB,EAAO3b,CAAK,EAEpE,MAAMA,CAET,EACD,SAAU2b,EAAM,QACtB,CACG,CACH,CACA,SAAS4K,IAAwB,CAC/B,OAAuB1K,EAAG,IAAC,IAAK,CAAE,SAAU,WAAW,CAAE,CAC3D,CCjCA,SAAS2K,GAAa7K,EAAO,CAC3B,OAAuBE,EAAAA,IAAI4K,EAAAA,SAAU,CAAE,SAAU9K,EAAM,QAAQ,CAAE,CACnE,CCAA,SAAS+K,GAAoB7e,EAAQ4D,EAAOmP,EAAM,CAC5C,OAACnP,EAAM,QAAQ,wBAYQA,EAAM,QAAQ,kBAAmB,CAAE,KAAAmP,EAAM,EAX9D/S,EAAO,QAAQ,+BACUA,EAAO,QAAQ,yBAA0B,CAAE,KAAA+S,EAAM,EAQvDiB,EAAA,IAAI0K,GAAuB,EAAE,CAGxD,CChBA,SAASI,GAAW,CAClB,SAAA7N,CACF,EAAG,CACD,OAAI,OAAO,SAAa,IACf,KAEc+C,EAAG,IACxB,SACA,CACE,UAAW,OACX,wBAAyB,CACvB,OAAQ,CAAC/C,CAAQ,EAAE,OAAO,OAAO,EAAE,KAAK;AAAA,CAAI,CACpD,CACA,CACG,CACH,CCZA,SAAS8N,IAAoB,CAC3B,MAAM/e,EAASqW,EAAW,EAEpB2I,GADShf,EAAO,QAAQ,yBAA2BnB,IAClCmB,EAAO,cAAc,EACtCT,EAAcyf,IAAYngB,GAA+BmB,EAAO,cAAc,EAAIgf,EAAU,OAClG,GAAI,CAAChf,EAAO,mBAAqB,CAACA,EAAO,SACvC,OAAO,KAET,MAAMif,EAAuB,CAC3B,WAAA5gB,GACA,wBAAyB,EAC1B,EACD,OAAIkB,IACF0f,EAAqB,IAAM1f,GAENyU,EAAG,IACxB8K,GACA,CACE,SAAU,IAAI7f,GAAc,SAAQ,CAAE,KAAK,KAAK,UAAUggB,CAAoB,CAAC,GACrF,CACG,CACH,CCxBA,MAAA5zB,GAAA,MAAAsoB,EAAA,OAAA,EAaMuL,GAAQ7zB,GAAM,KAAK,SAAmB,CAC1C,QAAAod,CACF,EAAG,CACD,IAAIvZ,EAAIC,EACR,MAAM6Q,EAASqW,EAAW,EACpB8I,EAAa7I,EAAe,CAChC,OAAS5O,GAAM,CACb,MAAM9C,EAAQ8C,EAAE,QAAQ,KAAMnS,GAAMA,EAAE,KAAOkT,CAAO,EACpD,OAAA3b,GACE8X,CAEF,EACOlP,GAAKkP,EAAO,CAAC,UAAW,MAAO,iBAAiB,CAAC,CACzD,EACD,kBAAmB,EACvB,CAAG,EACKhB,EAAQ5D,EAAO,WAAWmf,EAAW,OAAO,EAC5CC,EAAmBxb,EAAM,QAAQ,kBAAoB5D,EAAO,QAAQ,wBACpEqf,EAAiBD,EAAmCpL,EAAAA,IAAIoL,EAAkB,CAAA,CAAE,EAAI,KAChFE,EAAsB1b,EAAM,QAAQ,gBAAkB5D,EAAO,QAAQ,sBACrEuf,EAAe3b,EAAM,QAAQ,SAAW5D,EAAO,QAAQ,eACvDwf,EAAyB5b,EAAM,OAEnCA,EAAM,QAAQ,qBAAuB1U,EAAK8Q,EAAO,QAAQ,gBAAkB,KAAO,OAAS9Q,EAAG,QAAQ,WACpG0U,EAAM,QAAQ,kBACZ6b,EAAgBN,EAAW,MAAQ,IAASA,EAAW,MAAQ,YAC/DO,GAEH,CAAC9b,EAAM,QAAUA,EAAM,QAAQ,gBAAkB6b,KAAmB7b,EAAM,QAAQ,gBAAkBwb,MAAuBjwB,EAAKyU,EAAM,QAAQ,iBAAmB,KAAO,OAASzU,EAAG,UAAYswB,IAAkBp0B,GAAM,SAAWszB,GAEhOgB,EAAwBL,EAAsBpL,GAAgByK,GAC9DiB,EAA2BJ,EAAyBhB,GAAgBG,GACpEF,EAAWnI,EAAe,CAC9B,OAAS5O,GAAMA,EAAE,QACrB,CAAG,EACKmY,EAAgBvJ,EAAe,CACnC,OAAS5O,GAAM,CACb,IAAI/V,EACJ,MAAMF,EAAQiW,EAAE,QAAQ,UAAWnS,GAAMA,EAAE,KAAOkT,CAAO,EACzD,OAAQ9W,EAAM+V,EAAE,QAAQjW,EAAQ,CAAC,IAAM,KAAO,OAASE,EAAI,OACjE,CACA,CAAG,EACKmuB,EAAiBlc,EAAM,OAASA,EAAM,QAAQ,gBAAkB+a,GAAeA,GACrF,OAAuBhK,EAAI,KAACmL,EAAgB,CAAE,SAAU,CACtC9L,EAAAA,IAAI0C,GAAa,SAAU,CAAE,MAAOjO,EAAS,SAA0BuL,EAAG,IAAC0L,EAA0B,CAAE,SAAUL,EAAgB,SAA0BrL,EAAG,IAC5K2L,EACA,CACE,YAAa,IAAMlB,EACnB,eAAgBa,GAAuBlL,GACvC,QAAS,CAACjc,EAAOqc,IAAc,CAC7B,GAAIrW,GAAWhG,CAAK,EAAG,MAAMA,EAEGonB,IAAapnB,EAAOqc,CAAS,CAC9D,EACD,SAA0BR,EAAG,IAC3B4L,EACA,CACE,SAAWznB,GAAU,CACnB,GAAI,CAACqnB,GAA0BrnB,EAAM,SAAWA,EAAM,UAAYgnB,EAAW,SAAW,CAAChnB,EAAM,SAAW,CAACyL,EAAM,OAC/G,MAAMzL,EACR,OAAO9M,GAAM,cAAcm0B,EAAwBrnB,CAAK,CACzD,EACD,SAAUsnB,GAAiBN,EAAW,gBAAkCnL,EAAG,IAACa,GAAY,CAAE,SAAUwK,EAAgB,SAA0BrL,EAAAA,IAAI+L,GAAY,CAAE,QAAAtX,EAAS,CAAC,CAAE,EAAoBuL,MAAI+L,GAAY,CAAE,QAAAtX,CAAS,CAAA,CACvO,CACA,CACA,CACK,CAAA,CAAE,CAAC,CAAE,EACNoX,IAAkB9d,IAAe/B,EAAO,QAAQ,kBAAoC2U,OAAKiK,EAAAA,SAAU,CAAE,SAAU,CAC7F5K,EAAG,IAACgM,GAAY,EAAE,EAClBhM,EAAG,IAAC+K,GAAmB,CAAE,CAAA,CAC1C,CAAA,CAAE,EAAI,IACX,EAAK,CACL,CAAC,EACD,SAASiB,IAAa,CACpB,MAAMhgB,EAASqW,EAAW,EACpB4J,EAAkB50B,GAAM,OAC5B,MACD,EACD,OAAuB2oB,EAAG,IACxB,SACA,CACE,yBAA0B,GAC1B,IAAMjV,GAAO,CACPA,IAAOkhB,EAAgB,UAAY,QAAUA,EAAgB,QAAQ,OAASjgB,EAAO,eAAe,QACtGA,EAAO,KAAK,CACV,KAAM,aACN,GAAG6C,GAAsB7C,EAAO,KAAK,CACjD,CAAW,EACDigB,EAAgB,QAAUjgB,EAAO,eAE3C,CACK,EACDA,EAAO,eAAe,MAAM,SAC7B,CACH,CACA,MAAM+f,GAAa10B,GAAM,KAAK,SAAwB,CACpD,QAAAod,CACF,EAAG,CACD,IAAIvZ,EAAIC,EAAIE,EAAIka,EAAIuC,EACpB,MAAM9L,EAASqW,EAAW,EACpB,CAAE,MAAAzR,EAAO,IAAA/S,EAAK,QAAA8X,CAAO,EAAK2M,EAAe,CAC7C,OAAS5O,GAAM,CACb,MAAM4P,EAAa5P,EAAE,QAAQ,UAAWnS,GAAMA,EAAE,KAAOkT,CAAO,EACxDyX,EAASxY,EAAE,QAAQ4P,CAAU,EAC7B6I,EAAWD,EAAO,QAClBE,EAAYpgB,EAAO,WAAWmgB,CAAQ,EAAE,QAAQ,aAAengB,EAAO,QAAQ,mBAC9EqgB,EAA2CD,IAAU,CACzD,QAASD,EACT,WAAYD,EAAO,WACnB,OAAQA,EAAO,cACf,OAAQA,EAAO,aACvB,CAAO,EAED,MAAO,CACL,IAFWG,EAAc,KAAK,UAAUA,CAAW,EAAI,OAGvD,QAASF,EACT,MAAOzqB,GAAKwqB,EAAQ,CAClB,KACA,SACA,QACA,gBACA,iBACD,CAAA,CACF,CACF,EACD,kBAAmB,EACvB,CAAG,EACKtc,EAAQ5D,EAAO,WAAW2J,CAAO,EACjC2W,EAAMj1B,GAAM,QAAQ,IAAM,CAC9B,MAAM0wB,EAAOnY,EAAM,QAAQ,WAAa5D,EAAO,QAAQ,iBACvD,OAAI+b,EACqB/H,MAAI+H,EAAM,CAAE,EAAElqB,CAAG,EAEnBmiB,EAAG,IAACuM,GAAQ,EAAE,CACzC,EAAK,CAAC1uB,EAAK+R,EAAM,QAAQ,UAAW5D,EAAO,QAAQ,gBAAgB,CAAC,EAClE,GAAI4E,EAAM,gBACR,MAAO1V,EAAK8Q,EAAO,SAAS4E,EAAM,EAAE,IAAM,KAAO,OAAS1V,EAAG,sBAE/D,GAAI0V,EAAM,cACR,MAAOzV,EAAK6Q,EAAO,SAAS4E,EAAM,EAAE,IAAM,KAAO,OAASzV,EAAG,kBAE/D,GAAIyV,EAAM,SAAW,UAAW,CAC9B,MAAM4b,EAAe5c,EAAM,QAAQ,cAAgB5D,EAAO,QAAQ,oBAClE,GAAIwgB,GAAgB,GAAGnxB,EAAK2Q,EAAO,SAAS4E,EAAM,EAAE,IAAM,MAAgBvV,EAAG,oBACvE,CAAC2Q,EAAO,SAAU,CACpB,MAAMygB,EAAoBppB,GAAyB,EACnD,QAAQ,UAAU,KAAK,IAAM,CAC3B2I,EAAO,YAAY4E,EAAM,GAAK7O,IAAU,CACtC,GAAGA,EACH,kBAAA0qB,CACZ,EAAY,CACZ,CAAS,EACD,WAAW,IAAM,CACfA,EAAkB,QAAS,EAC3BzgB,EAAO,YAAY4E,EAAM,GAAK7O,IAAU,CACtC,GAAGA,EACH,kBAAmB,MAC/B,EAAY,CACH,EAAEyqB,CAAY,CACvB,CAEI,MAAOjX,EAAKvJ,EAAO,SAAS4E,EAAM,EAAE,IAAM,KAAO,OAAS2E,EAAG,WACjE,CACE,GAAI3E,EAAM,SAAW,WACnB,OAAA9X,GAAUqR,GAAWyG,EAAM,KAAK,CAA8B,EACvDia,GAAoB7e,EAAQ4D,EAAOgB,EAAM,KAAK,EAEvD,GAAIA,EAAM,SAAW,aACnB,MAAA9X,GAAUqV,GAAWyC,EAAM,KAAK,CAA8B,GACvDkH,EAAK9L,EAAO,SAAS4E,EAAM,EAAE,IAAM,KAAO,OAASkH,EAAG,YAE/D,GAAIlH,EAAM,SAAW,QAAS,CAC5B,GAAI5E,EAAO,SAAU,CACnB,MAAM0gB,GAAuB9c,EAAM,QAAQ,gBAAkB5D,EAAO,QAAQ,wBAA0BoU,GACtG,OAAuBJ,EAAG,IACxB0M,EACA,CACE,MAAO9b,EAAM,MACb,MAAO,OACP,KAAM,CACJ,eAAgB,EAC5B,CACA,CACO,CACP,CACI,MAAMA,EAAM,KAChB,CACE,OAAO0b,CACT,CAAC,EACKC,GAASl1B,GAAM,KAAK,UAAsB,CAC9C,MAAM2U,EAASqW,EAAW,EACpB5N,EAAUpd,GAAM,WAAWqrB,EAAY,EACvC/M,EAAU2M,EAAe,CAC7B,OAAS5O,GAAM,CACb,IAAIxY,EACJ,OAAQA,EAAKwY,EAAE,QAAQ,KAAMnS,GAAMA,EAAE,KAAOkT,CAAO,IAAM,KAAO,OAASvZ,EAAG,OAClF,CACA,CAAG,EACK0U,EAAQ5D,EAAO,WAAW2J,CAAO,EACjCgX,EAAuBrK,EAAe,CAC1C,OAAS5O,GAAM,CAEb,MAAMuC,EADUvC,EAAE,QACU,KAAMnS,GAAMA,EAAE,KAAOkT,CAAO,EACxD,OAAA3b,GACEmd,CAEF,EACOA,EAAY,cACzB,CACA,CAAG,EACK2W,EAAetK,EAAe,CAClC,OAAS5O,GAAM,CACb,IAAIxY,EACJ,MAAMiZ,EAAUT,EAAE,QACZjW,EAAQ0W,EAAQ,UAAW5S,GAAMA,EAAE,KAAOkT,CAAO,EACvD,OAAQvZ,EAAKiZ,EAAQ1W,EAAQ,CAAC,IAAM,KAAO,OAASvC,EAAG,EAC7D,CACA,CAAG,EACKmwB,EAAiBrf,EAAO,QAAQ,wBAA0CgU,EAAAA,IAAIhU,EAAO,QAAQ,wBAAyB,CAAE,CAAA,EAAI,KAClI,GAAI2gB,EACF,OAAO9B,GAAoB7e,EAAQ4D,EAAO,MAAM,EAElD,GAAI,CAACgd,EACH,OAAO,KAET,MAAMC,EAA4B7M,EAAAA,IAAIkL,GAAO,CAAE,QAAS0B,CAAY,CAAE,EACtE,OAAInY,IAAY1G,GACSiS,EAAG,IAAC3oB,GAAM,SAAU,CAAE,SAAUg0B,EAAgB,SAAUwB,EAAW,EAEvFA,CACT,CAAC,ECnPDx1B,GAAA,MAAAsoB,EAAA,OAAA,EASA,SAASmN,IAAU,CACjB,MAAM9gB,EAASqW,EAAW,EACpBgJ,EAAiBrf,EAAO,QAAQ,wBAA0CgU,EAAAA,IAAIhU,EAAO,QAAQ,wBAAyB,CAAE,CAAA,EAAI,KAC5H+gB,EAAmB/gB,EAAO,UAAY,OAAO,SAAa,KAAeA,EAAO,IAAM2e,GAAetzB,GAAM,SAC3G0oB,EAAwBY,EAAAA,KAAKoM,EAAkB,CAAE,SAAU1B,EAAgB,SAAU,CACzF,CAACrf,EAAO,UAA4BgU,MAAI+J,GAAc,CAAA,CAAE,EACxC/J,EAAG,IAACgN,GAAc,CAAE,CAAA,CACxC,EAAK,EACH,OAAOhhB,EAAO,QAAQ,UAA4BgU,EAAG,IAAChU,EAAO,QAAQ,UAAW,CAAE,SAAU+T,CAAK,CAAE,EAAIA,CACzG,CACA,SAASiN,IAAe,CACtB,MAAMhhB,EAASqW,EAAW,EACpB5N,EAAU6N,EAAe,CAC7B,OAAS5O,GAAM,CACb,IAAIxY,EACJ,OAAQA,EAAKwY,EAAE,QAAQ,CAAC,IAAM,KAAO,OAASxY,EAAG,EACvD,CACA,CAAG,EACKuvB,EAAWnI,EAAe,CAC9B,OAAS5O,GAAMA,EAAE,QACrB,CAAG,EACKuZ,EAAiBxY,EAA0BuL,EAAG,IAACkL,GAAO,CAAE,QAAAzW,CAAS,CAAA,EAAI,KAC3E,OAAuBuL,MAAI0C,GAAa,SAAU,CAAE,MAAOjO,EAAS,SAAUzI,EAAO,QAAQ,2BAA6BihB,EAAiCjN,EAAG,IAC5JE,GACA,CACE,YAAa,IAAMuK,EACnB,eAAgBrK,GAChB,QAAUjc,GAAU,CAKHA,EAAM,SAAWA,EAAM,SAAQ,CAC/C,EACD,SAAU8oB,CAChB,CACA,EAAK,CACL,CACA,SAASC,IAAgB,CACvB,MAAMlhB,EAASqW,EAAW,EAC1B,OAAAC,EAAe,CACb,OAAS5O,GAAM,CACb,IAAIxY,EACJ,MAAO,CAACwY,EAAE,SAAS,MAAOxY,EAAKwY,EAAE,mBAAqB,KAAO,OAASxY,EAAG,KAAMwY,EAAE,MAAM,CACxF,EACD,kBAAmB,EACvB,CAAG,EACMrc,GAAM,YACV+E,GAAS,CACR,KAAM,CAAE,QAAA+wB,EAAS,cAAAtnB,EAAe,MAAAoD,EAAO,cAAAmkB,EAAe,GAAG/Z,CAAI,EAAKjX,EAClE,OAAO4P,EAAO,WAAWqH,EAAM,CAC7B,QAAA8Z,EACA,cAAAtnB,EACA,MAAAoD,EACA,cAAAmkB,CACR,CAAO,CACF,EACD,CAACphB,CAAM,CACR,CACH,CACA,SAASqhB,GAAWvN,EAAO,CAEzB,MAAMrY,EADaylB,GAAe,EACRpN,CAAK,EAC/B,OAAI,OAAOA,EAAM,UAAa,WACrBA,EAAM,SAASrY,CAAM,EAEvBA,EAASqY,EAAM,SAAW,IACnC,CACA,SAASwN,GAAWlxB,EAAM,CACxB,OAAOkmB,EAAe,CACpB,OAAShlB,GAAU,CACjB,MAAM6W,EAAU7W,EAAM,QACtB,OAAgClB,GAAK,OAAUA,EAAK,OAAO+X,CAAO,EAAIA,CACvE,EACD,kBAA2C/X,GAAK,iBACpD,CAAG,CACH,CACA,SAASmxB,GAAiBnxB,EAAM,CAC9B,MAAMoxB,EAAiBn2B,GAAM,WAAWqrB,EAAY,EACpD,OAAO4K,GAAW,CAChB,OAASnZ,IACPA,EAAUA,EAAQ,MAChB,EACAA,EAAQ,UAAW5S,GAAMA,EAAE,KAAOisB,CAAc,CACjD,EAC+BpxB,GAAK,OAAUA,EAAK,OAAO+X,CAAO,EAAIA,GAExE,kBAA2C/X,GAAK,iBACpD,CAAG,CACH,CACA,SAASqxB,GAAgBrxB,EAAM,CAC7B,MAAMoxB,EAAiBn2B,GAAM,WAAWqrB,EAAY,EACpD,OAAO4K,GAAW,CAChB,OAASnZ,IACPA,EAAUA,EAAQ,MAChBA,EAAQ,UAAW5S,GAAMA,EAAE,KAAOisB,CAAc,EAAI,CACrD,EAC+BpxB,GAAK,OAAUA,EAAK,OAAO+X,CAAO,EAAIA,GAExE,kBAA2C/X,GAAK,iBACpD,CAAG,CACH,CC7GK,MAACsxB,GAAgBzyB,GACb,IAAI0yB,GAAO1yB,CAAO,EAE3B,MAAM0yB,WAAeve,EAAW,CAC9B,YAAYnU,EAAS,CACnB,MAAMA,CAAO,CACjB,CACA,CACI,OAAO,WAAe,KACxB,WAAW,gBAAkB8tB,GAC7B,WAAW,oBAAsBQ,IACxB,OAAO,OAAW,MAC3B,OAAO,gBAAkBR,GACzB,OAAO,gBAAkBQ,ICZ3B,SAASqE,GAAsB,CAC7B,OAAA5hB,EACA,SAAAiR,EACA,GAAG5J,CACL,EAAG,CACG,OAAO,KAAKA,CAAI,EAAE,OAAS,GAC7BrH,EAAO,OAAO,CACZ,GAAGA,EAAO,QACV,GAAGqH,EACH,QAAS,CACP,GAAGrH,EAAO,QAAQ,QAClB,GAAGqH,EAAK,OAChB,CACA,CAAK,EAEH,MAAM8O,EAAgBC,GAAkB,EAClCyL,EAA2B7N,EAAG,IAACmC,EAAc,SAAU,CAAE,MAAOnW,EAAQ,SAAAiR,EAAU,EACxF,OAAIjR,EAAO,QAAQ,KACMgU,EAAAA,IAAIhU,EAAO,QAAQ,KAAM,CAAE,SAAU6hB,EAAU,EAEjEA,CACT,CACA,SAASC,GAAe,CAAE,OAAA9hB,EAAQ,GAAGqH,GAAQ,CAC3C,OAAuB2M,MAAI4N,GAAuB,CAAE,OAAA5hB,EAAQ,GAAGqH,EAAM,SAA0B2M,MAAI8M,GAAS,CAAE,CAAA,EAAG,CACnH,CCzBA,SAASiB,IAAuB,CAC9B,MAAM/hB,EAASqW,EAAU,EACzBtW,GAAuBC,EAAQ,EAAI,CACrC,CACA,SAAS+e,GAAkBiD,EAAQ,CACZ,OAAAD,GAAA,EAMd,IACT,CACA,SAASE,GAA4BhzB,EAAS,CAC5C,IAAIC,EAAIC,EACa4yB,GAAA,EACrB,MAAM/hB,EAASqW,EAAU,EACnBnW,EAASjR,EAAQ,QAAU4P,GACjC,IAAIY,EAAkB,GACtB,GAAIxQ,EAAQ,GACQwQ,EAAA,gCAAgCxQ,EAAQ,EAAE,SACvD,CACC,MAAA0Q,GAAWzQ,EAAKD,EAAQ,aAAe,KAAO,OAASC,EAAG,KAAKD,CAAO,EAC5E,GAAI,CAAC0Q,EACH,OAEFF,EAAkBE,aAAmB,OAAS,SAAWb,GAAea,CAAO,CAAA,CAE3E,MAAAW,EAAaJ,EAAOF,EAAO,cAAc,EACzCV,GAASnQ,EAAKyP,KAA2B,KAAO,OAASzP,EAAG,MAAMmR,CAAU,EAClF,OAAgChB,IAAMG,CAAe,CACvD,CCjCA,MAAApU,GAAA,MAAAsoB,EAAA,OAAA,EAEA,SAASuO,GAAoB9xB,EAAMrD,EAAW,CAC5C,GAAIqD,IAAS,OACX,MAAO,CACL,cAAe,IAAM,GACrB,aAAc,EACf,EAEH,GAAI,kBAAmBA,EACrB,OAAOA,EAET,GAAI,OAAOA,GAAS,WAAY,CAC9B,MAAM+xB,EAAe,GAAQp1B,GAAa,IAK1C,MAAO,CACL,cALwB,SACpBo1B,EAAqB,MAAM/xB,EAAM,EAC9B,GAIP,mBAAoB+xB,EACpB,aAAc,EACf,CACL,CACE,MAAMnuB,EAAc,GAAQ5D,EAAK,WAAa,IACxCzB,EAAKyB,EAAK,UAOhB,MAAO,CACL,cAPuB,SACnB4D,GAAerF,IAAO,OACjB,MAAMA,EAAI,EAEZqF,EAIP,mBAAoBA,EACpB,aAAcrF,IAAO,MACtB,CACH,CACA,SAASyzB,GAAWhyB,EAAMrD,EAAW,CACnC,KAAM,CACJ,cAAAs1B,EACA,mBAAAC,EAAqB,GACrB,SAAArJ,EAAW,GACX,aAAAsJ,EAAe,EACnB,EAAML,GAAoB9xB,EAAMrD,CAAS,EACjCiT,EAASqW,EAAW,EACpB,CAAE,QAAAljB,CAAO,EAAK6M,EACd,CAACwiB,EAAUC,CAAW,EAAIp3B,GAAM,SAAS,CAC7C,OAAQ,OACR,QAAS,OACT,KAAM,OACN,OAAQ,OACR,QAAS,OACT,MAAO,MACX,CAAG,EACDA,OAAAA,GAAM,UAAU,IAAM,CACpB,MAAMq3B,EAAoB,MAAOC,GAAkB,CACjD,SAAS5vB,EAAY1C,EAAU,CAC7B,MAAMuyB,EAAiB5iB,EAAO,cAAc,OAAQ3P,CAAQ,EACtDoe,EAAgBzO,EAAO,iBAC3B4iB,EAAe,SACf,MACD,EACD,GAAInU,EAAc,aAAe,OAC/B,MAAM,IAAI,MAAM,+BAA+Bpe,EAAS,IAAI,EAAE,EAEhE,MAAO,CACL,QAASoe,EAAc,WAAW,GAClC,SAAUA,EAAc,WAAW,SACnC,SAAUmU,EAAe,SACzB,OAAQnU,EAAc,YACtB,OAAQmU,EAAe,MACxB,CACT,CACM,MAAM/K,EAAU9kB,EAAY4vB,EAAc,eAAe,EACnD3vB,EAAOD,EAAY4vB,EAAc,YAAY,EAC7C3uB,EAAc,MAAMquB,EAAc,CACtC,OAAQM,EAAc,OACtB,QAAA9K,EACA,KAAA7kB,CACR,CAAO,EACD,GAAI,CAACuvB,EACH,OAAOvuB,EAET,GAAI,CAACA,EACH,MAAO,GAYT,MAAM6uB,EAAmB,MAVT,IAAI,QAASnrB,GAAY,CACvC+qB,EAAY,CACV,OAAQ,UACR,QAAA5K,EACA,KAAA7kB,EACA,OAAQ2vB,EAAc,OACtB,QAAS,IAAMjrB,EAAQ,EAAK,EAC5B,MAAO,IAAMA,EAAQ,EAAI,CACnC,CAAS,CACT,CAAO,EAED,OAAA+qB,EAAY,CACV,OAAQ,OACR,QAAS,OACT,KAAM,OACN,OAAQ,OACR,QAAS,OACT,MAAO,MACf,CAAO,EACMI,CACR,EACD,OAAO5J,EAAW,OAAS9lB,EAAQ,MAAM,CAAE,UAAWuvB,EAAmB,mBAAAJ,EAAoB,CACjG,EAAK,CACDD,EACAC,EACArJ,EACAsJ,EACApvB,EACA6M,CACJ,CAAG,EACMwiB,CACT,CACA,MAAMM,GAA6BhP,GAAU,CAC3C,GAAI,kBAAmBA,EACrB,MAAO,CAAE,GAAGA,CAAO,EAErB,MAAM9f,EAAc,GAAQ8f,EAAM,WAAa,IACzCnlB,EAAKmlB,EAAM,UAOjB,MAAO,CACL,cAPuB,SACnB9f,GAAerF,IAAO,OACjB,MAAMA,EAAI,EAEZqF,EAIP,mBAAoBA,EACpB,aAAcrF,IAAO,MACtB,CACH,EACA,SAASo0B,GAAM3yB,EAAM,CACnB,KAAM,CAAE,SAAA6gB,EAAU,GAAG5J,CAAI,EAAKjX,EACxBgE,EAAO0uB,GAA0Bzb,CAAI,EACrCmb,EAAWJ,GAAWhuB,CAAI,EAChC,OAAO6c,EAAW,OAAOA,GAAa,WAAaA,EAASuR,CAAQ,EAAIvR,EAAW,IACrF,CC7IA,SAAS+R,GAAgB5yB,EAAM,CAC7B,OAAOwmB,EAAS,CACd,GAAGxmB,EACH,OAASwU,GAAUxU,EAAK,OAASA,EAAK,OAAOwU,EAAM,OAAO,EAAIA,EAAM,OACxE,CAAG,CACH,CCLA,SAASqe,GAAY7yB,EAAM,CACzB,OAAOkmB,EAAe,CACpB,OAAShlB,GAAmClB,GAAK,OAAUA,EAAK,OAAOkB,EAAM,QAAQ,EAAIA,EAAM,QACnG,CAAG,CACH,CCJA,SAAS4xB,IAAe,CACtB,OAAO5M,EAAe,CAAE,OAAS5O,GAAMA,EAAE,SAAS,MAAM,cAAgB,EAAG,CAC7E,CCFA,MAAArc,GAAA,MAAAsoB,EAAA,OAAA,EACA,SAASwP,GAAM,CACb,IAAAC,EACA,MAAAC,EACA,SAAApS,CACF,EAAG,CACD,OAAQmS,EAAG,CACT,IAAK,QACH,OAAuBpP,EAAAA,IAAI,QAAS,CAAE,GAAGqP,EAAO,yBAA0B,GAAM,SAAApS,EAAU,EAC5F,IAAK,OACH,OAAuB+C,EAAAA,IAAI,OAAQ,CAAE,GAAGqP,EAAO,yBAA0B,GAAM,EACjF,IAAK,OACH,OAAuBrP,EAAAA,IAAI,OAAQ,CAAE,GAAGqP,EAAO,yBAA0B,GAAM,EACjF,IAAK,QACH,OAAuBrP,EAAG,IACxB,QACA,CACE,GAAGqP,EACH,wBAAyB,CAAE,OAAQpS,CAAQ,CACrD,CACO,EACH,IAAK,SACH,OAAuB+C,EAAG,IAACsP,GAAQ,CAAE,MAAAD,EAAO,SAAApS,CAAQ,CAAE,EACxD,QACE,OAAO,IACb,CACA,CACA,SAASqS,GAAO,CACd,MAAAD,EACA,SAAApS,CACF,EAAG,CAyCD,OAxCA5lB,GAAM,UAAU,IAAM,CACpB,GAA6Bg4B,GAAM,IAAK,CACtC,MAAME,EAAS,SAAS,cAAc,QAAQ,EAC9C,SAAW,CAAC1xB,EAAK3F,CAAK,IAAK,OAAO,QAAQm3B,CAAK,EACzCxxB,IAAQ,4BAA8B3F,IAAU,QAAUA,IAAU,IACtEq3B,EAAO,aACL1xB,EACA,OAAO3F,GAAU,UAAY,GAAK,OAAOA,CAAK,CAC/C,EAGL,gBAAS,KAAK,YAAYq3B,CAAM,EACzB,IAAM,CACPA,EAAO,YACTA,EAAO,WAAW,YAAYA,CAAM,CAEvC,CACP,CACI,GAAI,OAAOtS,GAAa,SAAU,CAChC,MAAMsS,EAAS,SAAS,cAAc,QAAQ,EAE9C,GADAA,EAAO,YAActS,EACjBoS,EACF,SAAW,CAACxxB,EAAK3F,CAAK,IAAK,OAAO,QAAQm3B,CAAK,EACzCxxB,IAAQ,4BAA8B3F,IAAU,QAAUA,IAAU,IACtEq3B,EAAO,aACL1xB,EACA,OAAO3F,GAAU,UAAY,GAAK,OAAOA,CAAK,CAC/C,EAIP,gBAAS,KAAK,YAAYq3B,CAAM,EACzB,IAAM,CACPA,EAAO,YACTA,EAAO,WAAW,YAAYA,CAAM,CAEvC,CACP,CAEA,EAAK,CAACF,EAAOpS,CAAQ,CAAC,EACUoS,GAAM,KAAQ,OAAOA,EAAM,KAAQ,SACxCrP,EAAAA,IAAI,SAAU,CAAE,GAAGqP,EAAO,yBAA0B,GAAM,EAE/E,OAAOpS,GAAa,SACC+C,EAAG,IACxB,SACA,CACE,GAAGqP,EACH,wBAAyB,CAAE,OAAQpS,CAAU,EAC7C,yBAA0B,EAClC,CACK,EAEI,IACT,CCtFA,MAAA5lB,GAAA,MAAAsoB,EAAA,OAAA,EACA,CAAA,cAAA6P,EAAA,EAAA,MAAA7P,EAAA,OAAA,EAIM8P,GAAU,IAAM,CACpB,MAAMzjB,EAASqW,EAAW,EACpBqN,EAAYpN,EAAe,CAC/B,OAAShlB,GACAA,EAAM,QAAQ,IAAKsT,GAAUA,EAAM,IAAI,EAAE,OAAO,OAAO,CAEpE,CAAG,EACKsH,EAAO7gB,GAAM,QAAQ,IAAM,CAC/B,MAAMs4B,EAAa,CAAE,EACfC,EAAkB,CAAE,EAC1B,IAAIC,EACJ,OAAC,GAAGH,CAAS,EAAE,QAAS,EAAC,QAASI,GAAU,CAC1C,CAAC,GAAGA,CAAK,EAAE,QAAS,EAAC,QAASnW,GAAM,CAClC,GAAKA,EACL,GAAIA,EAAE,MACCkW,IACHA,EAAQ,CACN,IAAK,QACL,SAAUlW,EAAE,KACb,OAEE,CACL,MAAMoW,EAAYpW,EAAE,MAAQA,EAAE,SAC9B,GAAIoW,EAAW,CACb,GAAIH,EAAgBG,CAAS,EAC3B,OAEAH,EAAgBG,CAAS,EAAI,EAE3C,CACUJ,EAAW,KAAK,CACd,IAAK,OACL,MAAO,CACL,GAAGhW,CACjB,CACA,CAAW,CACX,CACA,CAAO,CACP,CAAK,EACGkW,GACFF,EAAW,KAAKE,CAAK,EAEvBF,EAAW,QAAS,EACbA,CACX,EAAK,CAACD,CAAS,CAAC,EACRvX,EAAQmK,EAAe,CAC3B,OAAShlB,GAAU,CACjB,IAAIpC,EACJ,MAAM80B,EAAc1yB,EAAM,QAAQ,IAAKsT,GAAUA,EAAM,KAAK,EAAE,OAAO,OAAO,EAAE,KAAK,CAAC,EAAE,IAAKqf,IAAU,CACnG,IAAK,OACL,MAAO,CACL,GAAGA,CACb,CACA,EAAQ,EACIC,GAAYh1B,EAAK8Q,EAAO,MAAQ,KAAO,OAAS9Q,EAAG,SACnDi1B,EAAS7yB,EAAM,QAAQ,IAAKsT,GAAU,CAC1C,IAAIjT,EACJ,QAASA,EAAkCuyB,GAAS,OAAOtf,EAAM,OAAO,IAAM,KAAO,OAASjT,EAAI,SAAW,CAAE,CAChH,CAAA,EAAE,OAAO,OAAO,EAAE,KAAK,CAAC,EAAE,OAAQyyB,GAAUA,EAAM,MAAQ,MAAM,EAAE,IAChEA,IAAW,CACV,IAAK,OACL,MAAO,CACL,GAAGA,EAAM,MACT,yBAA0B,EACtC,CACS,EACF,EACD,MAAO,CAAC,GAAGJ,EAAa,GAAGG,CAAM,CAClC,EACD,kBAAmB,EACvB,CAAG,EACKE,EAAc/N,EAAe,CACjC,OAAShlB,GAAU,CACjB,MAAMgzB,EAAe,CAAE,EACvB,OAAAhzB,EAAM,QAAQ,IAAKsT,GAAU5E,EAAO,gBAAgB4E,EAAM,OAAO,CAAC,EAAE,QACjEhB,GAAU,CACT,IAAI1U,EAAIC,EAAIE,EAAIka,EAChB,OAAQA,GAAMla,GAAMF,GAAMD,EAAK8Q,EAAO,MAAQ,KAAO,OAAS9Q,EAAG,WAAa,KAAO,OAASC,EAAG,OAAOyU,EAAM,EAAE,IAAM,KAAO,OAASvU,EAAG,WAAa,KAAO,OAASka,EAAG,OAAO,OAAO,EAAE,QAAS6B,GAAY,CAC5MkZ,EAAa,KAAK,CAChB,IAAK,OACL,MAAO,CACL,IAAK,gBACL,KAAMlZ,CACtB,CACA,CAAa,CACb,CAAW,CACX,CACO,EACMkZ,CACR,EACD,kBAAmB,EACvB,CAAG,EACKjY,EAASiK,EAAe,CAC5B,OAAShlB,GAAUA,EAAM,QAAQ,IAAKsT,GAAUA,EAAM,MAAM,EAAE,KAAK,CAAC,EAAE,OAAO,OAAO,EAAE,IAAI,CAAC,CAAE,SAAAqM,EAAU,GAAGoS,MAAa,CACrH,IAAK,QACL,MAAAA,EACA,SAAApS,CACN,EAAM,EACF,kBAAmB,EACvB,CAAG,EACK7E,EAAckK,EAAe,CACjC,OAAShlB,GAAUA,EAAM,QAAQ,IAAKsT,GAAUA,EAAM,WAAW,EAAE,KAAK,CAAC,EAAE,OAAO,OAAO,EAAE,IAAI,CAAC,CAAE,SAAAqM,EAAU,GAAGsS,MAAc,CAC3H,IAAK,SACL,MAAO,CACL,GAAGA,CACJ,EACD,SAAAtS,CACN,EAAM,EACF,kBAAmB,EACvB,CAAG,EACD,OAAOsT,GACL,CACE,GAAGrY,EACH,GAAGmY,EACH,GAAGlY,EACH,GAAGE,EACH,GAAGD,CACJ,EACA7W,GACQ,KAAK,UAAUA,CAAC,CAE1B,CACH,EACA,SAASivB,IAAc,CAErB,OADaf,GAAS,EACV,IAAKL,GAAwBI,GAAcL,GAAO,CAAE,GAAGC,EAAK,IAAK,YAAY,KAAK,UAAUA,CAAG,CAAC,EAAE,CAAE,CAAC,CACnH,CACA,SAASmB,GAAOlvB,EAAK1G,EAAI,CACvB,MAAM81B,EAAuB,IAAI,IACjC,OAAOpvB,EAAI,OAAQ+B,GAAS,CAC1B,MAAMvF,EAAMlD,EAAGyI,CAAI,EACnB,OAAIqtB,EAAK,IAAI5yB,CAAG,EACP,IAET4yB,EAAK,IAAI5yB,CAAG,EACL,GACX,CAAG,CACH,CC7IA,KAAA,CAAA,cAAA2xB,EAAA,EAAA,MAAA7P,EAAA,OAAA,EAIM+Q,GAAU,IAAM,CACpB,MAAM1kB,EAASqW,EAAW,EACpBsO,EAAerO,EAAe,CAClC,OAAShlB,GAAU,CACjB,IAAIpC,EACJ,MAAM01B,EAAgB,CAAE,EAClBV,GAAYh1B,EAAK8Q,EAAO,MAAQ,KAAO,OAAS9Q,EAAG,SACzD,OAAKg1B,GAGL5yB,EAAM,QAAQ,IAAKsT,GAAU5E,EAAO,gBAAgB4E,EAAM,OAAO,CAAC,EAAE,QACjEhB,GAAU,CACT,IAAIjS,EAAKxC,EACT,OAAQA,GAAMwC,EAAMuyB,EAAS,OAAOtgB,EAAM,EAAE,IAAM,KAAO,OAASjS,EAAI,SAAW,KAAO,OAASxC,EAAG,OAAQoG,GAAMA,EAAE,MAAQ,QAAQ,EAAE,QAAS6uB,GAAU,CACvJQ,EAAc,KAAK,CACjB,IAAK,SACL,MAAOR,EAAM,MACb,SAAUA,EAAM,QAC9B,CAAa,CACb,CAAW,CACX,CACO,EACMQ,GAdE,CAAE,CAeZ,EACD,kBAAmB,EACvB,CAAG,EACK,CAAE,QAAAtY,CAAS,EAAGgK,EAAe,CACjC,OAAShlB,IAAW,CAClB,QAASA,EAAM,QAAQ,IAAKsT,GAAUA,EAAM,OAAO,EAAE,KAAK,CAAC,EAAE,OAAO,OAAO,EAAE,IAAI,CAAC,CAAE,SAAAqM,EAAU,GAAGsS,MAAc,CAC7G,IAAK,SACL,MAAO,CACL,GAAGA,EACH,yBAA0B,EAC3B,EACD,SAAAtS,CACR,EAAQ,CACR,GACI,kBAAmB,EACvB,CAAG,EACK4T,EAAa,CAAC,GAAGvY,EAAS,GAAGqY,CAAY,EAC/C,OAAuB3Q,EAAG,IAAC4K,WAAU,CAAE,SAAUiG,EAAW,IAAI,CAACT,EAAOx0B,IAAsB4zB,GAAcL,GAAO,CAAE,GAAGiB,EAAO,IAAK,eAAeA,EAAM,GAAG,IAAIx0B,CAAC,GAAI,CAAC,EAAG,CAC3K","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62]}
1
+ {"version":3,"file":"react-router-JHHIpdEJ.js","sources":["../../../../../node_modules/.pnpm/use-sync-external-store@1.5.0_react@19.1.0/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.production.js","../../../../../node_modules/.pnpm/use-sync-external-store@1.5.0_react@19.1.0/node_modules/use-sync-external-store/shim/index.js","../../../../../node_modules/.pnpm/tiny-invariant@1.3.3/node_modules/tiny-invariant/dist/esm/tiny-invariant.js","../../../../../node_modules/.pnpm/tiny-warning@1.0.3/node_modules/tiny-warning/dist/tiny-warning.esm.js","../../../../../node_modules/.pnpm/@tanstack+store@0.7.2/node_modules/@tanstack/store/dist/esm/scheduler.js","../../../../../node_modules/.pnpm/@tanstack+store@0.7.2/node_modules/@tanstack/store/dist/esm/types.js","../../../../../node_modules/.pnpm/@tanstack+store@0.7.2/node_modules/@tanstack/store/dist/esm/store.js","../../../../../node_modules/.pnpm/@tanstack+store@0.7.2/node_modules/@tanstack/store/dist/esm/derived.js","../../../../../node_modules/.pnpm/@tanstack+history@1.129.7/node_modules/@tanstack/history/dist/esm/index.js","../../../../../node_modules/.pnpm/@tanstack+router-core@1.130.8/node_modules/@tanstack/router-core/dist/esm/utils.js","../../../../../node_modules/.pnpm/@tanstack+router-core@1.130.8/node_modules/@tanstack/router-core/dist/esm/path.js","../../../../../node_modules/.pnpm/@tanstack+router-core@1.130.8/node_modules/@tanstack/router-core/dist/esm/not-found.js","../../../../../node_modules/.pnpm/@tanstack+router-core@1.130.8/node_modules/@tanstack/router-core/dist/esm/scroll-restoration.js","../../../../../node_modules/.pnpm/@tanstack+router-core@1.130.8/node_modules/@tanstack/router-core/dist/esm/qss.js","../../../../../node_modules/.pnpm/@tanstack+router-core@1.130.8/node_modules/@tanstack/router-core/dist/esm/searchParams.js","../../../../../node_modules/.pnpm/@tanstack+router-core@1.130.8/node_modules/@tanstack/router-core/dist/esm/root.js","../../../../../node_modules/.pnpm/@tanstack+router-core@1.130.8/node_modules/@tanstack/router-core/dist/esm/redirect.js","../../../../../node_modules/.pnpm/@tanstack+router-core@1.130.8/node_modules/@tanstack/router-core/dist/esm/lru-cache.js","../../../../../node_modules/.pnpm/@tanstack+router-core@1.130.8/node_modules/@tanstack/router-core/dist/esm/router.js","../../../../../node_modules/.pnpm/@tanstack+router-core@1.130.8/node_modules/@tanstack/router-core/dist/esm/defer.js","../../../../../node_modules/.pnpm/@tanstack+router-core@1.130.8/node_modules/@tanstack/router-core/dist/esm/link.js","../../../../../node_modules/.pnpm/@tanstack+router-core@1.130.8/node_modules/@tanstack/router-core/dist/esm/Matches.js","../../../../../node_modules/.pnpm/@tanstack+router-core@1.130.8/node_modules/@tanstack/router-core/dist/esm/route.js","../../../../../node_modules/.pnpm/@tanstack+router-core@1.130.8/node_modules/@tanstack/router-core/dist/esm/searchMiddleware.js","../../../../../node_modules/.pnpm/@tanstack+react-router@1.130.8_react-dom@19.1.0_react@19.1.0__react@19.1.0/node_modules/@tanstack/react-router/dist/esm/awaited.js","../../../../../node_modules/.pnpm/@tanstack+react-router@1.130.8_react-dom@19.1.0_react@19.1.0__react@19.1.0/node_modules/@tanstack/react-router/dist/esm/CatchBoundary.js","../../../../../node_modules/.pnpm/@tanstack+react-router@1.130.8_react-dom@19.1.0_react@19.1.0__react@19.1.0/node_modules/@tanstack/react-router/dist/esm/ClientOnly.js","../../../../../node_modules/.pnpm/use-sync-external-store@1.5.0_react@19.1.0/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.production.js","../../../../../node_modules/.pnpm/use-sync-external-store@1.5.0_react@19.1.0/node_modules/use-sync-external-store/shim/with-selector.js","../../../../../node_modules/.pnpm/@tanstack+react-store@0.7.3_react-dom@19.1.0_react@19.1.0__react@19.1.0/node_modules/@tanstack/react-store/dist/esm/index.js","../../../../../node_modules/.pnpm/@tanstack+react-router@1.130.8_react-dom@19.1.0_react@19.1.0__react@19.1.0/node_modules/@tanstack/react-router/dist/esm/routerContext.js","../../../../../node_modules/.pnpm/@tanstack+react-router@1.130.8_react-dom@19.1.0_react@19.1.0__react@19.1.0/node_modules/@tanstack/react-router/dist/esm/useRouter.js","../../../../../node_modules/.pnpm/@tanstack+react-router@1.130.8_react-dom@19.1.0_react@19.1.0__react@19.1.0/node_modules/@tanstack/react-router/dist/esm/useRouterState.js","../../../../../node_modules/.pnpm/@tanstack+react-router@1.130.8_react-dom@19.1.0_react@19.1.0__react@19.1.0/node_modules/@tanstack/react-router/dist/esm/matchContext.js","../../../../../node_modules/.pnpm/@tanstack+react-router@1.130.8_react-dom@19.1.0_react@19.1.0__react@19.1.0/node_modules/@tanstack/react-router/dist/esm/useMatch.js","../../../../../node_modules/.pnpm/@tanstack+react-router@1.130.8_react-dom@19.1.0_react@19.1.0__react@19.1.0/node_modules/@tanstack/react-router/dist/esm/useLoaderData.js","../../../../../node_modules/.pnpm/@tanstack+react-router@1.130.8_react-dom@19.1.0_react@19.1.0__react@19.1.0/node_modules/@tanstack/react-router/dist/esm/useLoaderDeps.js","../../../../../node_modules/.pnpm/@tanstack+react-router@1.130.8_react-dom@19.1.0_react@19.1.0__react@19.1.0/node_modules/@tanstack/react-router/dist/esm/useParams.js","../../../../../node_modules/.pnpm/@tanstack+react-router@1.130.8_react-dom@19.1.0_react@19.1.0__react@19.1.0/node_modules/@tanstack/react-router/dist/esm/useSearch.js","../../../../../node_modules/.pnpm/@tanstack+react-router@1.130.8_react-dom@19.1.0_react@19.1.0__react@19.1.0/node_modules/@tanstack/react-router/dist/esm/useNavigate.js","../../../../../node_modules/.pnpm/@tanstack+react-router@1.130.8_react-dom@19.1.0_react@19.1.0__react@19.1.0/node_modules/@tanstack/react-router/dist/esm/utils.js","../../../../../node_modules/.pnpm/@tanstack+react-router@1.130.8_react-dom@19.1.0_react@19.1.0__react@19.1.0/node_modules/@tanstack/react-router/dist/esm/link.js","../../../../../node_modules/.pnpm/@tanstack+react-router@1.130.8_react-dom@19.1.0_react@19.1.0__react@19.1.0/node_modules/@tanstack/react-router/dist/esm/route.js","../../../../../node_modules/.pnpm/@tanstack+react-router@1.130.8_react-dom@19.1.0_react@19.1.0__react@19.1.0/node_modules/@tanstack/react-router/dist/esm/fileRoute.js","../../../../../node_modules/.pnpm/@tanstack+react-router@1.130.8_react-dom@19.1.0_react@19.1.0__react@19.1.0/node_modules/@tanstack/react-router/dist/esm/lazyRouteComponent.js","../../../../../node_modules/.pnpm/@tanstack+react-router@1.130.8_react-dom@19.1.0_react@19.1.0__react@19.1.0/node_modules/@tanstack/react-router/dist/esm/Transitioner.js","../../../../../node_modules/.pnpm/@tanstack+react-router@1.130.8_react-dom@19.1.0_react@19.1.0__react@19.1.0/node_modules/@tanstack/react-router/dist/esm/not-found.js","../../../../../node_modules/.pnpm/@tanstack+react-router@1.130.8_react-dom@19.1.0_react@19.1.0__react@19.1.0/node_modules/@tanstack/react-router/dist/esm/SafeFragment.js","../../../../../node_modules/.pnpm/@tanstack+react-router@1.130.8_react-dom@19.1.0_react@19.1.0__react@19.1.0/node_modules/@tanstack/react-router/dist/esm/renderRouteNotFound.js","../../../../../node_modules/.pnpm/@tanstack+react-router@1.130.8_react-dom@19.1.0_react@19.1.0__react@19.1.0/node_modules/@tanstack/react-router/dist/esm/ScriptOnce.js","../../../../../node_modules/.pnpm/@tanstack+react-router@1.130.8_react-dom@19.1.0_react@19.1.0__react@19.1.0/node_modules/@tanstack/react-router/dist/esm/scroll-restoration.js","../../../../../node_modules/.pnpm/@tanstack+react-router@1.130.8_react-dom@19.1.0_react@19.1.0__react@19.1.0/node_modules/@tanstack/react-router/dist/esm/Match.js","../../../../../node_modules/.pnpm/@tanstack+react-router@1.130.8_react-dom@19.1.0_react@19.1.0__react@19.1.0/node_modules/@tanstack/react-router/dist/esm/Matches.js","../../../../../node_modules/.pnpm/@tanstack+react-router@1.130.8_react-dom@19.1.0_react@19.1.0__react@19.1.0/node_modules/@tanstack/react-router/dist/esm/router.js","../../../../../node_modules/.pnpm/@tanstack+react-router@1.130.8_react-dom@19.1.0_react@19.1.0__react@19.1.0/node_modules/@tanstack/react-router/dist/esm/RouterProvider.js","../../../../../node_modules/.pnpm/@tanstack+react-router@1.130.8_react-dom@19.1.0_react@19.1.0__react@19.1.0/node_modules/@tanstack/react-router/dist/esm/ScrollRestoration.js","../../../../../node_modules/.pnpm/@tanstack+react-router@1.130.8_react-dom@19.1.0_react@19.1.0__react@19.1.0/node_modules/@tanstack/react-router/dist/esm/useBlocker.js","../../../../../node_modules/.pnpm/@tanstack+react-router@1.130.8_react-dom@19.1.0_react@19.1.0__react@19.1.0/node_modules/@tanstack/react-router/dist/esm/useRouteContext.js","../../../../../node_modules/.pnpm/@tanstack+react-router@1.130.8_react-dom@19.1.0_react@19.1.0__react@19.1.0/node_modules/@tanstack/react-router/dist/esm/useLocation.js","../../../../../node_modules/.pnpm/@tanstack+react-router@1.130.8_react-dom@19.1.0_react@19.1.0__react@19.1.0/node_modules/@tanstack/react-router/dist/esm/useCanGoBack.js","../../../../../node_modules/.pnpm/@tanstack+react-router@1.130.8_react-dom@19.1.0_react@19.1.0__react@19.1.0/node_modules/@tanstack/react-router/dist/esm/Asset.js","../../../../../node_modules/.pnpm/@tanstack+react-router@1.130.8_react-dom@19.1.0_react@19.1.0__react@19.1.0/node_modules/@tanstack/react-router/dist/esm/HeadContent.js","../../../../../node_modules/.pnpm/@tanstack+react-router@1.130.8_react-dom@19.1.0_react@19.1.0__react@19.1.0/node_modules/@tanstack/react-router/dist/esm/Scripts.js"],"sourcesContent":["/**\n * @license React\n * use-sync-external-store-shim.production.js\n *\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\"use strict\";\nvar React = require(\"react\");\nfunction is(x, y) {\n return (x === y && (0 !== x || 1 / x === 1 / y)) || (x !== x && y !== y);\n}\nvar objectIs = \"function\" === typeof Object.is ? Object.is : is,\n useState = React.useState,\n useEffect = React.useEffect,\n useLayoutEffect = React.useLayoutEffect,\n useDebugValue = React.useDebugValue;\nfunction useSyncExternalStore$2(subscribe, getSnapshot) {\n var value = getSnapshot(),\n _useState = useState({ inst: { value: value, getSnapshot: getSnapshot } }),\n inst = _useState[0].inst,\n forceUpdate = _useState[1];\n useLayoutEffect(\n function () {\n inst.value = value;\n inst.getSnapshot = getSnapshot;\n checkIfSnapshotChanged(inst) && forceUpdate({ inst: inst });\n },\n [subscribe, value, getSnapshot]\n );\n useEffect(\n function () {\n checkIfSnapshotChanged(inst) && forceUpdate({ inst: inst });\n return subscribe(function () {\n checkIfSnapshotChanged(inst) && forceUpdate({ inst: inst });\n });\n },\n [subscribe]\n );\n useDebugValue(value);\n return value;\n}\nfunction checkIfSnapshotChanged(inst) {\n var latestGetSnapshot = inst.getSnapshot;\n inst = inst.value;\n try {\n var nextValue = latestGetSnapshot();\n return !objectIs(inst, nextValue);\n } catch (error) {\n return !0;\n }\n}\nfunction useSyncExternalStore$1(subscribe, getSnapshot) {\n return getSnapshot();\n}\nvar shim =\n \"undefined\" === typeof window ||\n \"undefined\" === typeof window.document ||\n \"undefined\" === typeof window.document.createElement\n ? useSyncExternalStore$1\n : useSyncExternalStore$2;\nexports.useSyncExternalStore =\n void 0 !== React.useSyncExternalStore ? React.useSyncExternalStore : shim;\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('../cjs/use-sync-external-store-shim.production.js');\n} else {\n module.exports = require('../cjs/use-sync-external-store-shim.development.js');\n}\n","var isProduction = process.env.NODE_ENV === 'production';\nvar prefix = 'Invariant failed';\nfunction invariant(condition, message) {\n if (condition) {\n return;\n }\n if (isProduction) {\n throw new Error(prefix);\n }\n var provided = typeof message === 'function' ? message() : message;\n var value = provided ? \"\".concat(prefix, \": \").concat(provided) : prefix;\n throw new Error(value);\n}\n\nexport { invariant as default };\n","var isProduction = process.env.NODE_ENV === 'production';\nfunction warning(condition, message) {\n if (!isProduction) {\n if (condition) {\n return;\n }\n\n var text = \"Warning: \" + message;\n\n if (typeof console !== 'undefined') {\n console.warn(text);\n }\n\n try {\n throw Error(text);\n } catch (x) {}\n }\n}\n\nexport default warning;\n","import { Derived } from \"./derived.js\";\nconst __storeToDerived = /* @__PURE__ */ new WeakMap();\nconst __derivedToStore = /* @__PURE__ */ new WeakMap();\nconst __depsThatHaveWrittenThisTick = {\n current: []\n};\nlet __isFlushing = false;\nlet __batchDepth = 0;\nconst __pendingUpdates = /* @__PURE__ */ new Set();\nconst __initialBatchValues = /* @__PURE__ */ new Map();\nfunction __flush_internals(relatedVals) {\n const sorted = Array.from(relatedVals).sort((a, b) => {\n if (a instanceof Derived && a.options.deps.includes(b)) return 1;\n if (b instanceof Derived && b.options.deps.includes(a)) return -1;\n return 0;\n });\n for (const derived of sorted) {\n if (__depsThatHaveWrittenThisTick.current.includes(derived)) {\n continue;\n }\n __depsThatHaveWrittenThisTick.current.push(derived);\n derived.recompute();\n const stores = __derivedToStore.get(derived);\n if (stores) {\n for (const store of stores) {\n const relatedLinkedDerivedVals = __storeToDerived.get(store);\n if (!relatedLinkedDerivedVals) continue;\n __flush_internals(relatedLinkedDerivedVals);\n }\n }\n }\n}\nfunction __notifyListeners(store) {\n store.listeners.forEach(\n (listener) => listener({\n prevVal: store.prevState,\n currentVal: store.state\n })\n );\n}\nfunction __notifyDerivedListeners(derived) {\n derived.listeners.forEach(\n (listener) => listener({\n prevVal: derived.prevState,\n currentVal: derived.state\n })\n );\n}\nfunction __flush(store) {\n if (__batchDepth > 0 && !__initialBatchValues.has(store)) {\n __initialBatchValues.set(store, store.prevState);\n }\n __pendingUpdates.add(store);\n if (__batchDepth > 0) return;\n if (__isFlushing) return;\n try {\n __isFlushing = true;\n while (__pendingUpdates.size > 0) {\n const stores = Array.from(__pendingUpdates);\n __pendingUpdates.clear();\n for (const store2 of stores) {\n const prevState = __initialBatchValues.get(store2) ?? store2.prevState;\n store2.prevState = prevState;\n __notifyListeners(store2);\n }\n for (const store2 of stores) {\n const derivedVals = __storeToDerived.get(store2);\n if (!derivedVals) continue;\n __depsThatHaveWrittenThisTick.current.push(store2);\n __flush_internals(derivedVals);\n }\n for (const store2 of stores) {\n const derivedVals = __storeToDerived.get(store2);\n if (!derivedVals) continue;\n for (const derived of derivedVals) {\n __notifyDerivedListeners(derived);\n }\n }\n }\n } finally {\n __isFlushing = false;\n __depsThatHaveWrittenThisTick.current = [];\n __initialBatchValues.clear();\n }\n}\nfunction batch(fn) {\n __batchDepth++;\n try {\n fn();\n } finally {\n __batchDepth--;\n if (__batchDepth === 0) {\n const pendingUpdateToFlush = Array.from(__pendingUpdates)[0];\n if (pendingUpdateToFlush) {\n __flush(pendingUpdateToFlush);\n }\n }\n }\n}\nexport {\n __depsThatHaveWrittenThisTick,\n __derivedToStore,\n __flush,\n __storeToDerived,\n batch\n};\n//# sourceMappingURL=scheduler.js.map\n","function isUpdaterFunction(updater) {\n return typeof updater === \"function\";\n}\nexport {\n isUpdaterFunction\n};\n//# sourceMappingURL=types.js.map\n","import { __flush } from \"./scheduler.js\";\nimport { isUpdaterFunction } from \"./types.js\";\nclass Store {\n constructor(initialState, options) {\n this.listeners = /* @__PURE__ */ new Set();\n this.subscribe = (listener) => {\n var _a, _b;\n this.listeners.add(listener);\n const unsub = (_b = (_a = this.options) == null ? void 0 : _a.onSubscribe) == null ? void 0 : _b.call(_a, listener, this);\n return () => {\n this.listeners.delete(listener);\n unsub == null ? void 0 : unsub();\n };\n };\n this.prevState = initialState;\n this.state = initialState;\n this.options = options;\n }\n setState(updater) {\n var _a, _b, _c;\n this.prevState = this.state;\n if ((_a = this.options) == null ? void 0 : _a.updateFn) {\n this.state = this.options.updateFn(this.prevState)(updater);\n } else {\n if (isUpdaterFunction(updater)) {\n this.state = updater(this.prevState);\n } else {\n this.state = updater;\n }\n }\n (_c = (_b = this.options) == null ? void 0 : _b.onUpdate) == null ? void 0 : _c.call(_b);\n __flush(this);\n }\n}\nexport {\n Store\n};\n//# sourceMappingURL=store.js.map\n","import { Store } from \"./store.js\";\nimport { __storeToDerived, __derivedToStore } from \"./scheduler.js\";\nclass Derived {\n constructor(options) {\n this.listeners = /* @__PURE__ */ new Set();\n this._subscriptions = [];\n this.lastSeenDepValues = [];\n this.getDepVals = () => {\n const prevDepVals = [];\n const currDepVals = [];\n for (const dep of this.options.deps) {\n prevDepVals.push(dep.prevState);\n currDepVals.push(dep.state);\n }\n this.lastSeenDepValues = currDepVals;\n return {\n prevDepVals,\n currDepVals,\n prevVal: this.prevState ?? void 0\n };\n };\n this.recompute = () => {\n var _a, _b;\n this.prevState = this.state;\n const { prevDepVals, currDepVals, prevVal } = this.getDepVals();\n this.state = this.options.fn({\n prevDepVals,\n currDepVals,\n prevVal\n });\n (_b = (_a = this.options).onUpdate) == null ? void 0 : _b.call(_a);\n };\n this.checkIfRecalculationNeededDeeply = () => {\n for (const dep of this.options.deps) {\n if (dep instanceof Derived) {\n dep.checkIfRecalculationNeededDeeply();\n }\n }\n let shouldRecompute = false;\n const lastSeenDepValues = this.lastSeenDepValues;\n const { currDepVals } = this.getDepVals();\n for (let i = 0; i < currDepVals.length; i++) {\n if (currDepVals[i] !== lastSeenDepValues[i]) {\n shouldRecompute = true;\n break;\n }\n }\n if (shouldRecompute) {\n this.recompute();\n }\n };\n this.mount = () => {\n this.registerOnGraph();\n this.checkIfRecalculationNeededDeeply();\n return () => {\n this.unregisterFromGraph();\n for (const cleanup of this._subscriptions) {\n cleanup();\n }\n };\n };\n this.subscribe = (listener) => {\n var _a, _b;\n this.listeners.add(listener);\n const unsub = (_b = (_a = this.options).onSubscribe) == null ? void 0 : _b.call(_a, listener, this);\n return () => {\n this.listeners.delete(listener);\n unsub == null ? void 0 : unsub();\n };\n };\n this.options = options;\n this.state = options.fn({\n prevDepVals: void 0,\n prevVal: void 0,\n currDepVals: this.getDepVals().currDepVals\n });\n }\n registerOnGraph(deps = this.options.deps) {\n for (const dep of deps) {\n if (dep instanceof Derived) {\n dep.registerOnGraph();\n this.registerOnGraph(dep.options.deps);\n } else if (dep instanceof Store) {\n let relatedLinkedDerivedVals = __storeToDerived.get(dep);\n if (!relatedLinkedDerivedVals) {\n relatedLinkedDerivedVals = /* @__PURE__ */ new Set();\n __storeToDerived.set(dep, relatedLinkedDerivedVals);\n }\n relatedLinkedDerivedVals.add(this);\n let relatedStores = __derivedToStore.get(this);\n if (!relatedStores) {\n relatedStores = /* @__PURE__ */ new Set();\n __derivedToStore.set(this, relatedStores);\n }\n relatedStores.add(dep);\n }\n }\n }\n unregisterFromGraph(deps = this.options.deps) {\n for (const dep of deps) {\n if (dep instanceof Derived) {\n this.unregisterFromGraph(dep.options.deps);\n } else if (dep instanceof Store) {\n const relatedLinkedDerivedVals = __storeToDerived.get(dep);\n if (relatedLinkedDerivedVals) {\n relatedLinkedDerivedVals.delete(this);\n }\n const relatedStores = __derivedToStore.get(this);\n if (relatedStores) {\n relatedStores.delete(dep);\n }\n }\n }\n }\n}\nexport {\n Derived\n};\n//# sourceMappingURL=derived.js.map\n","const stateIndexKey = \"__TSR_index\";\nconst popStateEvent = \"popstate\";\nconst beforeUnloadEvent = \"beforeunload\";\nfunction createHistory(opts) {\n let location = opts.getLocation();\n const subscribers = /* @__PURE__ */ new Set();\n const notify = (action) => {\n location = opts.getLocation();\n subscribers.forEach((subscriber) => subscriber({ location, action }));\n };\n const handleIndexChange = (action) => {\n if (opts.notifyOnIndexChange ?? true) notify(action);\n else location = opts.getLocation();\n };\n const tryNavigation = async ({\n task,\n navigateOpts,\n ...actionInfo\n }) => {\n var _a, _b;\n const ignoreBlocker = (navigateOpts == null ? void 0 : navigateOpts.ignoreBlocker) ?? false;\n if (ignoreBlocker) {\n task();\n return;\n }\n const blockers = ((_a = opts.getBlockers) == null ? void 0 : _a.call(opts)) ?? [];\n const isPushOrReplace = actionInfo.type === \"PUSH\" || actionInfo.type === \"REPLACE\";\n if (typeof document !== \"undefined\" && blockers.length && isPushOrReplace) {\n for (const blocker of blockers) {\n const nextLocation = parseHref(actionInfo.path, actionInfo.state);\n const isBlocked = await blocker.blockerFn({\n currentLocation: location,\n nextLocation,\n action: actionInfo.type\n });\n if (isBlocked) {\n (_b = opts.onBlocked) == null ? void 0 : _b.call(opts);\n return;\n }\n }\n }\n task();\n };\n return {\n get location() {\n return location;\n },\n get length() {\n return opts.getLength();\n },\n subscribers,\n subscribe: (cb) => {\n subscribers.add(cb);\n return () => {\n subscribers.delete(cb);\n };\n },\n push: (path, state, navigateOpts) => {\n const currentIndex = location.state[stateIndexKey];\n state = assignKeyAndIndex(currentIndex + 1, state);\n tryNavigation({\n task: () => {\n opts.pushState(path, state);\n notify({ type: \"PUSH\" });\n },\n navigateOpts,\n type: \"PUSH\",\n path,\n state\n });\n },\n replace: (path, state, navigateOpts) => {\n const currentIndex = location.state[stateIndexKey];\n state = assignKeyAndIndex(currentIndex, state);\n tryNavigation({\n task: () => {\n opts.replaceState(path, state);\n notify({ type: \"REPLACE\" });\n },\n navigateOpts,\n type: \"REPLACE\",\n path,\n state\n });\n },\n go: (index, navigateOpts) => {\n tryNavigation({\n task: () => {\n opts.go(index);\n handleIndexChange({ type: \"GO\", index });\n },\n navigateOpts,\n type: \"GO\"\n });\n },\n back: (navigateOpts) => {\n tryNavigation({\n task: () => {\n opts.back((navigateOpts == null ? void 0 : navigateOpts.ignoreBlocker) ?? false);\n handleIndexChange({ type: \"BACK\" });\n },\n navigateOpts,\n type: \"BACK\"\n });\n },\n forward: (navigateOpts) => {\n tryNavigation({\n task: () => {\n opts.forward((navigateOpts == null ? void 0 : navigateOpts.ignoreBlocker) ?? false);\n handleIndexChange({ type: \"FORWARD\" });\n },\n navigateOpts,\n type: \"FORWARD\"\n });\n },\n canGoBack: () => location.state[stateIndexKey] !== 0,\n createHref: (str) => opts.createHref(str),\n block: (blocker) => {\n var _a;\n if (!opts.setBlockers) return () => {\n };\n const blockers = ((_a = opts.getBlockers) == null ? void 0 : _a.call(opts)) ?? [];\n opts.setBlockers([...blockers, blocker]);\n return () => {\n var _a2, _b;\n const blockers2 = ((_a2 = opts.getBlockers) == null ? void 0 : _a2.call(opts)) ?? [];\n (_b = opts.setBlockers) == null ? void 0 : _b.call(opts, blockers2.filter((b) => b !== blocker));\n };\n },\n flush: () => {\n var _a;\n return (_a = opts.flush) == null ? void 0 : _a.call(opts);\n },\n destroy: () => {\n var _a;\n return (_a = opts.destroy) == null ? void 0 : _a.call(opts);\n },\n notify\n };\n}\nfunction assignKeyAndIndex(index, state) {\n if (!state) {\n state = {};\n }\n const key = createRandomKey();\n return {\n ...state,\n key,\n // TODO: Remove in v2 - use __TSR_key instead\n __TSR_key: key,\n [stateIndexKey]: index\n };\n}\nfunction createBrowserHistory(opts) {\n var _a, _b;\n const win = (opts == null ? void 0 : opts.window) ?? (typeof document !== \"undefined\" ? window : void 0);\n const originalPushState = win.history.pushState;\n const originalReplaceState = win.history.replaceState;\n let blockers = [];\n const _getBlockers = () => blockers;\n const _setBlockers = (newBlockers) => blockers = newBlockers;\n const createHref = (opts == null ? void 0 : opts.createHref) ?? ((path) => path);\n const parseLocation = (opts == null ? void 0 : opts.parseLocation) ?? (() => parseHref(\n `${win.location.pathname}${win.location.search}${win.location.hash}`,\n win.history.state\n ));\n if (!((_a = win.history.state) == null ? void 0 : _a.__TSR_key) && !((_b = win.history.state) == null ? void 0 : _b.key)) {\n const addedKey = createRandomKey();\n win.history.replaceState(\n {\n [stateIndexKey]: 0,\n key: addedKey,\n // TODO: Remove in v2 - use __TSR_key instead\n __TSR_key: addedKey\n },\n \"\"\n );\n }\n let currentLocation = parseLocation();\n let rollbackLocation;\n let nextPopIsGo = false;\n let ignoreNextPop = false;\n let skipBlockerNextPop = false;\n let ignoreNextBeforeUnload = false;\n const getLocation = () => currentLocation;\n let next;\n let scheduled;\n const flush = () => {\n if (!next) {\n return;\n }\n history._ignoreSubscribers = true;\n (next.isPush ? win.history.pushState : win.history.replaceState)(\n next.state,\n \"\",\n next.href\n );\n history._ignoreSubscribers = false;\n next = void 0;\n scheduled = void 0;\n rollbackLocation = void 0;\n };\n const queueHistoryAction = (type, destHref, state) => {\n const href = createHref(destHref);\n if (!scheduled) {\n rollbackLocation = currentLocation;\n }\n currentLocation = parseHref(destHref, state);\n next = {\n href,\n state,\n isPush: (next == null ? void 0 : next.isPush) || type === \"push\"\n };\n if (!scheduled) {\n scheduled = Promise.resolve().then(() => flush());\n }\n };\n const onPushPop = (type) => {\n currentLocation = parseLocation();\n history.notify({ type });\n };\n const onPushPopEvent = async () => {\n if (ignoreNextPop) {\n ignoreNextPop = false;\n return;\n }\n const nextLocation = parseLocation();\n const delta = nextLocation.state[stateIndexKey] - currentLocation.state[stateIndexKey];\n const isForward = delta === 1;\n const isBack = delta === -1;\n const isGo = !isForward && !isBack || nextPopIsGo;\n nextPopIsGo = false;\n const action = isGo ? \"GO\" : isBack ? \"BACK\" : \"FORWARD\";\n const notify = isGo ? {\n type: \"GO\",\n index: delta\n } : {\n type: isBack ? \"BACK\" : \"FORWARD\"\n };\n if (skipBlockerNextPop) {\n skipBlockerNextPop = false;\n } else {\n const blockers2 = _getBlockers();\n if (typeof document !== \"undefined\" && blockers2.length) {\n for (const blocker of blockers2) {\n const isBlocked = await blocker.blockerFn({\n currentLocation,\n nextLocation,\n action\n });\n if (isBlocked) {\n ignoreNextPop = true;\n win.history.go(1);\n history.notify(notify);\n return;\n }\n }\n }\n }\n currentLocation = parseLocation();\n history.notify(notify);\n };\n const onBeforeUnload = (e) => {\n if (ignoreNextBeforeUnload) {\n ignoreNextBeforeUnload = false;\n return;\n }\n let shouldBlock = false;\n const blockers2 = _getBlockers();\n if (typeof document !== \"undefined\" && blockers2.length) {\n for (const blocker of blockers2) {\n const shouldHaveBeforeUnload = blocker.enableBeforeUnload ?? true;\n if (shouldHaveBeforeUnload === true) {\n shouldBlock = true;\n break;\n }\n if (typeof shouldHaveBeforeUnload === \"function\" && shouldHaveBeforeUnload() === true) {\n shouldBlock = true;\n break;\n }\n }\n }\n if (shouldBlock) {\n e.preventDefault();\n return e.returnValue = \"\";\n }\n return;\n };\n const history = createHistory({\n getLocation,\n getLength: () => win.history.length,\n pushState: (href, state) => queueHistoryAction(\"push\", href, state),\n replaceState: (href, state) => queueHistoryAction(\"replace\", href, state),\n back: (ignoreBlocker) => {\n if (ignoreBlocker) skipBlockerNextPop = true;\n ignoreNextBeforeUnload = true;\n return win.history.back();\n },\n forward: (ignoreBlocker) => {\n if (ignoreBlocker) skipBlockerNextPop = true;\n ignoreNextBeforeUnload = true;\n win.history.forward();\n },\n go: (n) => {\n nextPopIsGo = true;\n win.history.go(n);\n },\n createHref: (href) => createHref(href),\n flush,\n destroy: () => {\n win.history.pushState = originalPushState;\n win.history.replaceState = originalReplaceState;\n win.removeEventListener(beforeUnloadEvent, onBeforeUnload, {\n capture: true\n });\n win.removeEventListener(popStateEvent, onPushPopEvent);\n },\n onBlocked: () => {\n if (rollbackLocation && currentLocation !== rollbackLocation) {\n currentLocation = rollbackLocation;\n }\n },\n getBlockers: _getBlockers,\n setBlockers: _setBlockers,\n notifyOnIndexChange: false\n });\n win.addEventListener(beforeUnloadEvent, onBeforeUnload, { capture: true });\n win.addEventListener(popStateEvent, onPushPopEvent);\n win.history.pushState = function(...args) {\n const res = originalPushState.apply(win.history, args);\n if (!history._ignoreSubscribers) onPushPop(\"PUSH\");\n return res;\n };\n win.history.replaceState = function(...args) {\n const res = originalReplaceState.apply(win.history, args);\n if (!history._ignoreSubscribers) onPushPop(\"REPLACE\");\n return res;\n };\n return history;\n}\nfunction createHashHistory(opts) {\n const win = (opts == null ? void 0 : opts.window) ?? (typeof document !== \"undefined\" ? window : void 0);\n return createBrowserHistory({\n window: win,\n parseLocation: () => {\n const hashSplit = win.location.hash.split(\"#\").slice(1);\n const pathPart = hashSplit[0] ?? \"/\";\n const searchPart = win.location.search;\n const hashEntries = hashSplit.slice(1);\n const hashPart = hashEntries.length === 0 ? \"\" : `#${hashEntries.join(\"#\")}`;\n const hashHref = `${pathPart}${searchPart}${hashPart}`;\n return parseHref(hashHref, win.history.state);\n },\n createHref: (href) => `${win.location.pathname}${win.location.search}#${href}`\n });\n}\nfunction createMemoryHistory(opts = {\n initialEntries: [\"/\"]\n}) {\n const entries = opts.initialEntries;\n let index = opts.initialIndex ? Math.min(Math.max(opts.initialIndex, 0), entries.length - 1) : entries.length - 1;\n const states = entries.map(\n (_entry, index2) => assignKeyAndIndex(index2, void 0)\n );\n const getLocation = () => parseHref(entries[index], states[index]);\n return createHistory({\n getLocation,\n getLength: () => entries.length,\n pushState: (path, state) => {\n if (index < entries.length - 1) {\n entries.splice(index + 1);\n states.splice(index + 1);\n }\n states.push(state);\n entries.push(path);\n index = Math.max(entries.length - 1, 0);\n },\n replaceState: (path, state) => {\n states[index] = state;\n entries[index] = path;\n },\n back: () => {\n index = Math.max(index - 1, 0);\n },\n forward: () => {\n index = Math.min(index + 1, entries.length - 1);\n },\n go: (n) => {\n index = Math.min(Math.max(index + n, 0), entries.length - 1);\n },\n createHref: (path) => path\n });\n}\nfunction parseHref(href, state) {\n const hashIndex = href.indexOf(\"#\");\n const searchIndex = href.indexOf(\"?\");\n const addedKey = createRandomKey();\n return {\n href,\n pathname: href.substring(\n 0,\n hashIndex > 0 ? searchIndex > 0 ? Math.min(hashIndex, searchIndex) : hashIndex : searchIndex > 0 ? searchIndex : href.length\n ),\n hash: hashIndex > -1 ? href.substring(hashIndex) : \"\",\n search: searchIndex > -1 ? href.slice(searchIndex, hashIndex === -1 ? void 0 : hashIndex) : \"\",\n state: state || { [stateIndexKey]: 0, key: addedKey, __TSR_key: addedKey }\n };\n}\nfunction createRandomKey() {\n return (Math.random() + 1).toString(36).substring(7);\n}\nexport {\n createBrowserHistory,\n createHashHistory,\n createHistory,\n createMemoryHistory,\n parseHref\n};\n//# sourceMappingURL=index.js.map\n","function last(arr) {\n return arr[arr.length - 1];\n}\nfunction isFunction(d) {\n return typeof d === \"function\";\n}\nfunction functionalUpdate(updater, previous) {\n if (isFunction(updater)) {\n return updater(previous);\n }\n return updater;\n}\nfunction pick(parent, keys) {\n return keys.reduce((obj, key) => {\n obj[key] = parent[key];\n return obj;\n }, {});\n}\nfunction replaceEqualDeep(prev, _next) {\n if (prev === _next) {\n return prev;\n }\n const next = _next;\n const array = isPlainArray(prev) && isPlainArray(next);\n if (array || isSimplePlainObject(prev) && isSimplePlainObject(next)) {\n const prevItems = array ? prev : Object.keys(prev).concat(\n Object.getOwnPropertySymbols(prev)\n );\n const prevSize = prevItems.length;\n const nextItems = array ? next : Object.keys(next).concat(\n Object.getOwnPropertySymbols(next)\n );\n const nextSize = nextItems.length;\n const copy = array ? [] : {};\n let equalItems = 0;\n for (let i = 0; i < nextSize; i++) {\n const key = array ? i : nextItems[i];\n if ((!array && prevItems.includes(key) || array) && prev[key] === void 0 && next[key] === void 0) {\n copy[key] = void 0;\n equalItems++;\n } else {\n copy[key] = replaceEqualDeep(prev[key], next[key]);\n if (copy[key] === prev[key] && prev[key] !== void 0) {\n equalItems++;\n }\n }\n }\n return prevSize === nextSize && equalItems === prevSize ? prev : copy;\n }\n return next;\n}\nfunction isSimplePlainObject(o) {\n return (\n // all the checks from isPlainObject are more likely to hit so we perform them first\n isPlainObject(o) && Object.getOwnPropertyNames(o).length === Object.keys(o).length\n );\n}\nfunction isPlainObject(o) {\n if (!hasObjectPrototype(o)) {\n return false;\n }\n const ctor = o.constructor;\n if (typeof ctor === \"undefined\") {\n return true;\n }\n const prot = ctor.prototype;\n if (!hasObjectPrototype(prot)) {\n return false;\n }\n if (!prot.hasOwnProperty(\"isPrototypeOf\")) {\n return false;\n }\n return true;\n}\nfunction hasObjectPrototype(o) {\n return Object.prototype.toString.call(o) === \"[object Object]\";\n}\nfunction isPlainArray(value) {\n return Array.isArray(value) && value.length === Object.keys(value).length;\n}\nfunction getObjectKeys(obj, ignoreUndefined) {\n let keys = Object.keys(obj);\n if (ignoreUndefined) {\n keys = keys.filter((key) => obj[key] !== void 0);\n }\n return keys;\n}\nfunction deepEqual(a, b, opts) {\n if (a === b) {\n return true;\n }\n if (typeof a !== typeof b) {\n return false;\n }\n if (isPlainObject(a) && isPlainObject(b)) {\n const ignoreUndefined = (opts == null ? void 0 : opts.ignoreUndefined) ?? true;\n const aKeys = getObjectKeys(a, ignoreUndefined);\n const bKeys = getObjectKeys(b, ignoreUndefined);\n if (!(opts == null ? void 0 : opts.partial) && aKeys.length !== bKeys.length) {\n return false;\n }\n return bKeys.every((key) => deepEqual(a[key], b[key], opts));\n }\n if (Array.isArray(a) && Array.isArray(b)) {\n if (a.length !== b.length) {\n return false;\n }\n return !a.some((item, index) => !deepEqual(item, b[index], opts));\n }\n return false;\n}\nfunction createControlledPromise(onResolve) {\n let resolveLoadPromise;\n let rejectLoadPromise;\n const controlledPromise = new Promise((resolve, reject) => {\n resolveLoadPromise = resolve;\n rejectLoadPromise = reject;\n });\n controlledPromise.status = \"pending\";\n controlledPromise.resolve = (value) => {\n controlledPromise.status = \"resolved\";\n controlledPromise.value = value;\n resolveLoadPromise(value);\n onResolve == null ? void 0 : onResolve(value);\n };\n controlledPromise.reject = (e) => {\n controlledPromise.status = \"rejected\";\n rejectLoadPromise(e);\n };\n return controlledPromise;\n}\nfunction escapeJSON(jsonString) {\n return jsonString.replace(/\\\\/g, \"\\\\\\\\\").replace(/'/g, \"\\\\'\").replace(/\"/g, '\\\\\"');\n}\nfunction shallow(objA, objB) {\n if (Object.is(objA, objB)) {\n return true;\n }\n if (typeof objA !== \"object\" || objA === null || typeof objB !== \"object\" || objB === null) {\n return false;\n }\n const keysA = Object.keys(objA);\n if (keysA.length !== Object.keys(objB).length) {\n return false;\n }\n for (const item of keysA) {\n if (!Object.prototype.hasOwnProperty.call(objB, item) || !Object.is(objA[item], objB[item])) {\n return false;\n }\n }\n return true;\n}\nfunction isModuleNotFoundError(error) {\n if (typeof (error == null ? void 0 : error.message) !== \"string\") return false;\n return error.message.startsWith(\"Failed to fetch dynamically imported module\") || error.message.startsWith(\"error loading dynamically imported module\") || error.message.startsWith(\"Importing a module script failed\");\n}\nexport {\n createControlledPromise,\n deepEqual,\n escapeJSON,\n functionalUpdate,\n isModuleNotFoundError,\n isPlainArray,\n isPlainObject,\n last,\n pick,\n replaceEqualDeep,\n shallow\n};\n//# sourceMappingURL=utils.js.map\n","import { last } from \"./utils.js\";\nconst SEGMENT_TYPE_PATHNAME = 0;\nconst SEGMENT_TYPE_PARAM = 1;\nconst SEGMENT_TYPE_WILDCARD = 2;\nconst SEGMENT_TYPE_OPTIONAL_PARAM = 3;\nfunction joinPaths(paths) {\n return cleanPath(\n paths.filter((val) => {\n return val !== void 0;\n }).join(\"/\")\n );\n}\nfunction cleanPath(path) {\n return path.replace(/\\/{2,}/g, \"/\");\n}\nfunction trimPathLeft(path) {\n return path === \"/\" ? path : path.replace(/^\\/{1,}/, \"\");\n}\nfunction trimPathRight(path) {\n return path === \"/\" ? path : path.replace(/\\/{1,}$/, \"\");\n}\nfunction trimPath(path) {\n return trimPathRight(trimPathLeft(path));\n}\nfunction removeTrailingSlash(value, basepath) {\n if ((value == null ? void 0 : value.endsWith(\"/\")) && value !== \"/\" && value !== `${basepath}/`) {\n return value.slice(0, -1);\n }\n return value;\n}\nfunction exactPathTest(pathName1, pathName2, basepath) {\n return removeTrailingSlash(pathName1, basepath) === removeTrailingSlash(pathName2, basepath);\n}\nfunction segmentToString(segment) {\n const { type, value } = segment;\n if (type === SEGMENT_TYPE_PATHNAME) {\n return value;\n }\n const { prefixSegment, suffixSegment } = segment;\n if (type === SEGMENT_TYPE_PARAM) {\n const param = value.substring(1);\n if (prefixSegment && suffixSegment) {\n return `${prefixSegment}{$${param}}${suffixSegment}`;\n } else if (prefixSegment) {\n return `${prefixSegment}{$${param}}`;\n } else if (suffixSegment) {\n return `{$${param}}${suffixSegment}`;\n }\n }\n if (type === SEGMENT_TYPE_OPTIONAL_PARAM) {\n const param = value.substring(1);\n if (prefixSegment && suffixSegment) {\n return `${prefixSegment}{-$${param}}${suffixSegment}`;\n } else if (prefixSegment) {\n return `${prefixSegment}{-$${param}}`;\n } else if (suffixSegment) {\n return `{-$${param}}${suffixSegment}`;\n }\n return `{-$${param}}`;\n }\n if (type === SEGMENT_TYPE_WILDCARD) {\n if (prefixSegment && suffixSegment) {\n return `${prefixSegment}{$}${suffixSegment}`;\n } else if (prefixSegment) {\n return `${prefixSegment}{$}`;\n } else if (suffixSegment) {\n return `{$}${suffixSegment}`;\n }\n }\n return value;\n}\nfunction resolvePath({\n basepath,\n base,\n to,\n trailingSlash = \"never\",\n caseSensitive,\n parseCache\n}) {\n var _a;\n base = removeBasepath(basepath, base, caseSensitive);\n to = removeBasepath(basepath, to, caseSensitive);\n let baseSegments = parsePathname(base, parseCache).slice();\n const toSegments = parsePathname(to, parseCache);\n if (baseSegments.length > 1 && ((_a = last(baseSegments)) == null ? void 0 : _a.value) === \"/\") {\n baseSegments.pop();\n }\n for (let index = 0, length = toSegments.length; index < length; index++) {\n const toSegment = toSegments[index];\n const value = toSegment.value;\n if (value === \"/\") {\n if (!index) {\n baseSegments = [toSegment];\n } else if (index === length - 1) {\n baseSegments.push(toSegment);\n } else ;\n } else if (value === \"..\") {\n baseSegments.pop();\n } else if (value === \".\") ;\n else {\n baseSegments.push(toSegment);\n }\n }\n if (baseSegments.length > 1) {\n if (last(baseSegments).value === \"/\") {\n if (trailingSlash === \"never\") {\n baseSegments.pop();\n }\n } else if (trailingSlash === \"always\") {\n baseSegments.push({ type: SEGMENT_TYPE_PATHNAME, value: \"/\" });\n }\n }\n const segmentValues = baseSegments.map(segmentToString);\n const joined = joinPaths([basepath, ...segmentValues]);\n return joined;\n}\nconst parsePathname = (pathname, cache) => {\n if (!pathname) return [];\n const cached = cache == null ? void 0 : cache.get(pathname);\n if (cached) return cached;\n const parsed = baseParsePathname(pathname);\n cache == null ? void 0 : cache.set(pathname, parsed);\n return parsed;\n};\nconst PARAM_RE = /^\\$.{1,}$/;\nconst PARAM_W_CURLY_BRACES_RE = /^(.*?)\\{(\\$[a-zA-Z_$][a-zA-Z0-9_$]*)\\}(.*)$/;\nconst OPTIONAL_PARAM_W_CURLY_BRACES_RE = /^(.*?)\\{-(\\$[a-zA-Z_$][a-zA-Z0-9_$]*)\\}(.*)$/;\nconst WILDCARD_RE = /^\\$$/;\nconst WILDCARD_W_CURLY_BRACES_RE = /^(.*?)\\{\\$\\}(.*)$/;\nfunction baseParsePathname(pathname) {\n pathname = cleanPath(pathname);\n const segments = [];\n if (pathname.slice(0, 1) === \"/\") {\n pathname = pathname.substring(1);\n segments.push({\n type: SEGMENT_TYPE_PATHNAME,\n value: \"/\"\n });\n }\n if (!pathname) {\n return segments;\n }\n const split = pathname.split(\"/\").filter(Boolean);\n segments.push(\n ...split.map((part) => {\n const wildcardBracesMatch = part.match(WILDCARD_W_CURLY_BRACES_RE);\n if (wildcardBracesMatch) {\n const prefix = wildcardBracesMatch[1];\n const suffix = wildcardBracesMatch[2];\n return {\n type: SEGMENT_TYPE_WILDCARD,\n value: \"$\",\n prefixSegment: prefix || void 0,\n suffixSegment: suffix || void 0\n };\n }\n const optionalParamBracesMatch = part.match(\n OPTIONAL_PARAM_W_CURLY_BRACES_RE\n );\n if (optionalParamBracesMatch) {\n const prefix = optionalParamBracesMatch[1];\n const paramName = optionalParamBracesMatch[2];\n const suffix = optionalParamBracesMatch[3];\n return {\n type: SEGMENT_TYPE_OPTIONAL_PARAM,\n value: paramName,\n // Now just $paramName (no prefix)\n prefixSegment: prefix || void 0,\n suffixSegment: suffix || void 0\n };\n }\n const paramBracesMatch = part.match(PARAM_W_CURLY_BRACES_RE);\n if (paramBracesMatch) {\n const prefix = paramBracesMatch[1];\n const paramName = paramBracesMatch[2];\n const suffix = paramBracesMatch[3];\n return {\n type: SEGMENT_TYPE_PARAM,\n value: \"\" + paramName,\n prefixSegment: prefix || void 0,\n suffixSegment: suffix || void 0\n };\n }\n if (PARAM_RE.test(part)) {\n const paramName = part.substring(1);\n return {\n type: SEGMENT_TYPE_PARAM,\n value: \"$\" + paramName,\n prefixSegment: void 0,\n suffixSegment: void 0\n };\n }\n if (WILDCARD_RE.test(part)) {\n return {\n type: SEGMENT_TYPE_WILDCARD,\n value: \"$\",\n prefixSegment: void 0,\n suffixSegment: void 0\n };\n }\n return {\n type: SEGMENT_TYPE_PATHNAME,\n value: part.includes(\"%25\") ? part.split(\"%25\").map((segment) => decodeURI(segment)).join(\"%25\") : decodeURI(part)\n };\n })\n );\n if (pathname.slice(-1) === \"/\") {\n pathname = pathname.substring(1);\n segments.push({\n type: SEGMENT_TYPE_PATHNAME,\n value: \"/\"\n });\n }\n return segments;\n}\nfunction interpolatePath({\n path,\n params,\n leaveWildcards,\n leaveParams,\n decodeCharMap,\n parseCache\n}) {\n const interpolatedPathSegments = parsePathname(path, parseCache);\n function encodeParam(key) {\n const value = params[key];\n const isValueString = typeof value === \"string\";\n if (key === \"*\" || key === \"_splat\") {\n return isValueString ? encodeURI(value) : value;\n } else {\n return isValueString ? encodePathParam(value, decodeCharMap) : value;\n }\n }\n let isMissingParams = false;\n const usedParams = {};\n const interpolatedPath = joinPaths(\n interpolatedPathSegments.map((segment) => {\n if (segment.type === SEGMENT_TYPE_PATHNAME) {\n return segment.value;\n }\n if (segment.type === SEGMENT_TYPE_WILDCARD) {\n usedParams._splat = params._splat;\n const segmentPrefix = segment.prefixSegment || \"\";\n const segmentSuffix = segment.suffixSegment || \"\";\n if (!(\"_splat\" in params)) {\n isMissingParams = true;\n if (leaveWildcards) {\n return `${segmentPrefix}${segment.value}${segmentSuffix}`;\n }\n if (segmentPrefix || segmentSuffix) {\n return `${segmentPrefix}${segmentSuffix}`;\n }\n return void 0;\n }\n const value = encodeParam(\"_splat\");\n if (leaveWildcards) {\n return `${segmentPrefix}${segment.value}${value ?? \"\"}${segmentSuffix}`;\n }\n return `${segmentPrefix}${value}${segmentSuffix}`;\n }\n if (segment.type === SEGMENT_TYPE_PARAM) {\n const key = segment.value.substring(1);\n if (!isMissingParams && !(key in params)) {\n isMissingParams = true;\n }\n usedParams[key] = params[key];\n const segmentPrefix = segment.prefixSegment || \"\";\n const segmentSuffix = segment.suffixSegment || \"\";\n if (leaveParams) {\n const value = encodeParam(segment.value);\n return `${segmentPrefix}${segment.value}${value ?? \"\"}${segmentSuffix}`;\n }\n return `${segmentPrefix}${encodeParam(key) ?? \"undefined\"}${segmentSuffix}`;\n }\n if (segment.type === SEGMENT_TYPE_OPTIONAL_PARAM) {\n const key = segment.value.substring(1);\n const segmentPrefix = segment.prefixSegment || \"\";\n const segmentSuffix = segment.suffixSegment || \"\";\n if (!(key in params) || params[key] == null) {\n if (leaveWildcards) {\n return `${segmentPrefix}${key}${segmentSuffix}`;\n }\n if (segmentPrefix || segmentSuffix) {\n return `${segmentPrefix}${segmentSuffix}`;\n }\n return void 0;\n }\n usedParams[key] = params[key];\n if (leaveParams) {\n const value = encodeParam(segment.value);\n return `${segmentPrefix}${segment.value}${value ?? \"\"}${segmentSuffix}`;\n }\n if (leaveWildcards) {\n return `${segmentPrefix}${key}${encodeParam(key) ?? \"\"}${segmentSuffix}`;\n }\n return `${segmentPrefix}${encodeParam(key) ?? \"\"}${segmentSuffix}`;\n }\n return segment.value;\n })\n );\n return { usedParams, interpolatedPath, isMissingParams };\n}\nfunction encodePathParam(value, decodeCharMap) {\n let encoded = encodeURIComponent(value);\n if (decodeCharMap) {\n for (const [encodedChar, char] of decodeCharMap) {\n encoded = encoded.replaceAll(encodedChar, char);\n }\n }\n return encoded;\n}\nfunction matchPathname(basepath, currentPathname, matchLocation, parseCache) {\n const pathParams = matchByPath(\n basepath,\n currentPathname,\n matchLocation,\n parseCache\n );\n if (matchLocation.to && !pathParams) {\n return;\n }\n return pathParams ?? {};\n}\nfunction removeBasepath(basepath, pathname, caseSensitive = false) {\n const normalizedBasepath = caseSensitive ? basepath : basepath.toLowerCase();\n const normalizedPathname = caseSensitive ? pathname : pathname.toLowerCase();\n switch (true) {\n // default behaviour is to serve app from the root - pathname\n // left untouched\n case normalizedBasepath === \"/\":\n return pathname;\n // shortcut for removing the basepath if it matches the pathname\n case normalizedPathname === normalizedBasepath:\n return \"\";\n // in case pathname is shorter than basepath - there is\n // nothing to remove\n case pathname.length < basepath.length:\n return pathname;\n // avoid matching partial segments - strict equality handled\n // earlier, otherwise, basepath separated from pathname with\n // separator, therefore lack of separator means partial\n // segment match (`/app` should not match `/application`)\n case normalizedPathname[normalizedBasepath.length] !== \"/\":\n return pathname;\n // remove the basepath from the pathname if it starts with it\n case normalizedPathname.startsWith(normalizedBasepath):\n return pathname.slice(basepath.length);\n // otherwise, return the pathname as is\n default:\n return pathname;\n }\n}\nfunction matchByPath(basepath, from, {\n to,\n fuzzy,\n caseSensitive\n}, parseCache) {\n if (basepath !== \"/\" && !from.startsWith(basepath)) {\n return void 0;\n }\n from = removeBasepath(basepath, from, caseSensitive);\n to = removeBasepath(basepath, `${to ?? \"$\"}`, caseSensitive);\n const baseSegments = parsePathname(\n from.startsWith(\"/\") ? from : `/${from}`,\n parseCache\n );\n const routeSegments = parsePathname(\n to.startsWith(\"/\") ? to : `/${to}`,\n parseCache\n );\n const params = {};\n const result = isMatch(\n baseSegments,\n routeSegments,\n params,\n fuzzy,\n caseSensitive\n );\n return result ? params : void 0;\n}\nfunction isMatch(baseSegments, routeSegments, params, fuzzy, caseSensitive) {\n var _a, _b, _c;\n let baseIndex = 0;\n let routeIndex = 0;\n while (baseIndex < baseSegments.length || routeIndex < routeSegments.length) {\n const baseSegment = baseSegments[baseIndex];\n const routeSegment = routeSegments[routeIndex];\n if (routeSegment) {\n if (routeSegment.type === SEGMENT_TYPE_WILDCARD) {\n const remainingBaseSegments = baseSegments.slice(baseIndex);\n let _splat;\n if (routeSegment.prefixSegment || routeSegment.suffixSegment) {\n if (!baseSegment) return false;\n const prefix = routeSegment.prefixSegment || \"\";\n const suffix = routeSegment.suffixSegment || \"\";\n const baseValue = baseSegment.value;\n if (\"prefixSegment\" in routeSegment) {\n if (!baseValue.startsWith(prefix)) {\n return false;\n }\n }\n if (\"suffixSegment\" in routeSegment) {\n if (!((_a = baseSegments[baseSegments.length - 1]) == null ? void 0 : _a.value.endsWith(suffix))) {\n return false;\n }\n }\n let rejoinedSplat = decodeURI(\n joinPaths(remainingBaseSegments.map((d) => d.value))\n );\n if (prefix && rejoinedSplat.startsWith(prefix)) {\n rejoinedSplat = rejoinedSplat.slice(prefix.length);\n }\n if (suffix && rejoinedSplat.endsWith(suffix)) {\n rejoinedSplat = rejoinedSplat.slice(\n 0,\n rejoinedSplat.length - suffix.length\n );\n }\n _splat = rejoinedSplat;\n } else {\n _splat = decodeURI(\n joinPaths(remainingBaseSegments.map((d) => d.value))\n );\n }\n params[\"*\"] = _splat;\n params[\"_splat\"] = _splat;\n return true;\n }\n if (routeSegment.type === SEGMENT_TYPE_PATHNAME) {\n if (routeSegment.value === \"/\" && !(baseSegment == null ? void 0 : baseSegment.value)) {\n routeIndex++;\n continue;\n }\n if (baseSegment) {\n if (caseSensitive) {\n if (routeSegment.value !== baseSegment.value) {\n return false;\n }\n } else if (routeSegment.value.toLowerCase() !== baseSegment.value.toLowerCase()) {\n return false;\n }\n baseIndex++;\n routeIndex++;\n continue;\n } else {\n return false;\n }\n }\n if (routeSegment.type === SEGMENT_TYPE_PARAM) {\n if (!baseSegment) {\n return false;\n }\n if (baseSegment.value === \"/\") {\n return false;\n }\n let _paramValue = \"\";\n let matched = false;\n if (routeSegment.prefixSegment || routeSegment.suffixSegment) {\n const prefix = routeSegment.prefixSegment || \"\";\n const suffix = routeSegment.suffixSegment || \"\";\n const baseValue = baseSegment.value;\n if (prefix && !baseValue.startsWith(prefix)) {\n return false;\n }\n if (suffix && !baseValue.endsWith(suffix)) {\n return false;\n }\n let paramValue = baseValue;\n if (prefix && paramValue.startsWith(prefix)) {\n paramValue = paramValue.slice(prefix.length);\n }\n if (suffix && paramValue.endsWith(suffix)) {\n paramValue = paramValue.slice(0, paramValue.length - suffix.length);\n }\n _paramValue = decodeURIComponent(paramValue);\n matched = true;\n } else {\n _paramValue = decodeURIComponent(baseSegment.value);\n matched = true;\n }\n if (matched) {\n params[routeSegment.value.substring(1)] = _paramValue;\n baseIndex++;\n }\n routeIndex++;\n continue;\n }\n if (routeSegment.type === SEGMENT_TYPE_OPTIONAL_PARAM) {\n if (!baseSegment) {\n routeIndex++;\n continue;\n }\n if (baseSegment.value === \"/\") {\n routeIndex++;\n continue;\n }\n let _paramValue = \"\";\n let matched = false;\n if (routeSegment.prefixSegment || routeSegment.suffixSegment) {\n const prefix = routeSegment.prefixSegment || \"\";\n const suffix = routeSegment.suffixSegment || \"\";\n const baseValue = baseSegment.value;\n if ((!prefix || baseValue.startsWith(prefix)) && (!suffix || baseValue.endsWith(suffix))) {\n let paramValue = baseValue;\n if (prefix && paramValue.startsWith(prefix)) {\n paramValue = paramValue.slice(prefix.length);\n }\n if (suffix && paramValue.endsWith(suffix)) {\n paramValue = paramValue.slice(\n 0,\n paramValue.length - suffix.length\n );\n }\n _paramValue = decodeURIComponent(paramValue);\n matched = true;\n }\n } else {\n let shouldMatchOptional = true;\n for (let lookAhead = routeIndex + 1; lookAhead < routeSegments.length; lookAhead++) {\n const futureRouteSegment = routeSegments[lookAhead];\n if ((futureRouteSegment == null ? void 0 : futureRouteSegment.type) === SEGMENT_TYPE_PATHNAME && futureRouteSegment.value === baseSegment.value) {\n shouldMatchOptional = false;\n break;\n }\n if ((futureRouteSegment == null ? void 0 : futureRouteSegment.type) === SEGMENT_TYPE_PARAM || (futureRouteSegment == null ? void 0 : futureRouteSegment.type) === SEGMENT_TYPE_WILDCARD) {\n break;\n }\n }\n if (shouldMatchOptional) {\n _paramValue = decodeURIComponent(baseSegment.value);\n matched = true;\n }\n }\n if (matched) {\n params[routeSegment.value.substring(1)] = _paramValue;\n baseIndex++;\n }\n routeIndex++;\n continue;\n }\n }\n if (baseIndex < baseSegments.length && routeIndex >= routeSegments.length) {\n params[\"**\"] = joinPaths(\n baseSegments.slice(baseIndex).map((d) => d.value)\n );\n return !!fuzzy && ((_b = routeSegments[routeSegments.length - 1]) == null ? void 0 : _b.value) !== \"/\";\n }\n if (routeIndex < routeSegments.length && baseIndex >= baseSegments.length) {\n for (let i = routeIndex; i < routeSegments.length; i++) {\n if (((_c = routeSegments[i]) == null ? void 0 : _c.type) !== SEGMENT_TYPE_OPTIONAL_PARAM) {\n return false;\n }\n }\n break;\n }\n break;\n }\n return true;\n}\nexport {\n SEGMENT_TYPE_OPTIONAL_PARAM,\n SEGMENT_TYPE_PARAM,\n SEGMENT_TYPE_PATHNAME,\n SEGMENT_TYPE_WILDCARD,\n cleanPath,\n exactPathTest,\n interpolatePath,\n joinPaths,\n matchByPath,\n matchPathname,\n parsePathname,\n removeBasepath,\n removeTrailingSlash,\n resolvePath,\n trimPath,\n trimPathLeft,\n trimPathRight\n};\n//# sourceMappingURL=path.js.map\n","function notFound(options = {}) {\n options.isNotFound = true;\n if (options.throw) throw options;\n return options;\n}\nfunction isNotFound(obj) {\n return !!(obj == null ? void 0 : obj.isNotFound);\n}\nexport {\n isNotFound,\n notFound\n};\n//# sourceMappingURL=not-found.js.map\n","import { functionalUpdate } from \"./utils.js\";\nfunction getSafeSessionStorage() {\n try {\n if (typeof window !== \"undefined\" && typeof window.sessionStorage === \"object\") {\n return window.sessionStorage;\n }\n } catch {\n return void 0;\n }\n return void 0;\n}\nconst storageKey = \"tsr-scroll-restoration-v1_3\";\nconst throttle = (fn, wait) => {\n let timeout;\n return (...args) => {\n if (!timeout) {\n timeout = setTimeout(() => {\n fn(...args);\n timeout = null;\n }, wait);\n }\n };\n};\nfunction createScrollRestorationCache() {\n const safeSessionStorage = getSafeSessionStorage();\n if (!safeSessionStorage) {\n return void 0;\n }\n const persistedState = safeSessionStorage.getItem(storageKey);\n let state = persistedState ? JSON.parse(persistedState) : {};\n return {\n state,\n // This setter is simply to make sure that we set the sessionStorage right\n // after the state is updated. It doesn't necessarily need to be a functional\n // update.\n set: (updater) => (state = functionalUpdate(updater, state) || state, safeSessionStorage.setItem(storageKey, JSON.stringify(state)))\n };\n}\nconst scrollRestorationCache = createScrollRestorationCache();\nconst defaultGetScrollRestorationKey = (location) => {\n return location.state.__TSR_key || location.href;\n};\nfunction getCssSelector(el) {\n const path = [];\n let parent;\n while (parent = el.parentNode) {\n path.unshift(\n `${el.tagName}:nth-child(${[].indexOf.call(parent.children, el) + 1})`\n );\n el = parent;\n }\n return `${path.join(\" > \")}`.toLowerCase();\n}\nlet ignoreScroll = false;\nfunction restoreScroll({\n storageKey: storageKey2,\n key,\n behavior,\n shouldScrollRestoration,\n scrollToTopSelectors,\n location\n}) {\n var _a;\n let byKey;\n try {\n byKey = JSON.parse(sessionStorage.getItem(storageKey2) || \"{}\");\n } catch (error) {\n console.error(error);\n return;\n }\n const resolvedKey = key || ((_a = window.history.state) == null ? void 0 : _a.key);\n const elementEntries = byKey[resolvedKey];\n ignoreScroll = true;\n (() => {\n if (shouldScrollRestoration && elementEntries && Object.keys(elementEntries).length > 0) {\n for (const elementSelector in elementEntries) {\n const entry = elementEntries[elementSelector];\n if (elementSelector === \"window\") {\n window.scrollTo({\n top: entry.scrollY,\n left: entry.scrollX,\n behavior\n });\n } else if (elementSelector) {\n const element = document.querySelector(elementSelector);\n if (element) {\n element.scrollLeft = entry.scrollX;\n element.scrollTop = entry.scrollY;\n }\n }\n }\n return;\n }\n const hash = (location ?? window.location).hash.split(\"#\")[1];\n if (hash) {\n const hashScrollIntoViewOptions = (window.history.state || {}).__hashScrollIntoViewOptions ?? true;\n if (hashScrollIntoViewOptions) {\n const el = document.getElementById(hash);\n if (el) {\n el.scrollIntoView(hashScrollIntoViewOptions);\n }\n }\n return;\n }\n [\n \"window\",\n ...(scrollToTopSelectors == null ? void 0 : scrollToTopSelectors.filter((d) => d !== \"window\")) ?? []\n ].forEach((selector) => {\n const element = selector === \"window\" ? window : typeof selector === \"function\" ? selector() : document.querySelector(selector);\n if (element) {\n element.scrollTo({\n top: 0,\n left: 0,\n behavior\n });\n }\n });\n })();\n ignoreScroll = false;\n}\nfunction setupScrollRestoration(router, force) {\n if (scrollRestorationCache === void 0) {\n return;\n }\n const shouldScrollRestoration = force ?? router.options.scrollRestoration ?? false;\n if (shouldScrollRestoration) {\n router.isScrollRestoring = true;\n }\n if (typeof document === \"undefined\" || router.isScrollRestorationSetup) {\n return;\n }\n router.isScrollRestorationSetup = true;\n ignoreScroll = false;\n const getKey = router.options.getScrollRestorationKey || defaultGetScrollRestorationKey;\n window.history.scrollRestoration = \"manual\";\n const onScroll = (event) => {\n if (ignoreScroll || !router.isScrollRestoring) {\n return;\n }\n let elementSelector = \"\";\n if (event.target === document || event.target === window) {\n elementSelector = \"window\";\n } else {\n const attrId = event.target.getAttribute(\n \"data-scroll-restoration-id\"\n );\n if (attrId) {\n elementSelector = `[data-scroll-restoration-id=\"${attrId}\"]`;\n } else {\n elementSelector = getCssSelector(event.target);\n }\n }\n const restoreKey = getKey(router.state.location);\n scrollRestorationCache.set((state) => {\n const keyEntry = state[restoreKey] = state[restoreKey] || {};\n const elementEntry = keyEntry[elementSelector] = keyEntry[elementSelector] || {};\n if (elementSelector === \"window\") {\n elementEntry.scrollX = window.scrollX || 0;\n elementEntry.scrollY = window.scrollY || 0;\n } else if (elementSelector) {\n const element = document.querySelector(elementSelector);\n if (element) {\n elementEntry.scrollX = element.scrollLeft || 0;\n elementEntry.scrollY = element.scrollTop || 0;\n }\n }\n return state;\n });\n };\n if (typeof document !== \"undefined\") {\n document.addEventListener(\"scroll\", throttle(onScroll, 100), true);\n }\n router.subscribe(\"onRendered\", (event) => {\n const cacheKey = getKey(event.toLocation);\n if (!router.resetNextScroll) {\n router.resetNextScroll = true;\n return;\n }\n restoreScroll({\n storageKey,\n key: cacheKey,\n behavior: router.options.scrollRestorationBehavior,\n shouldScrollRestoration: router.isScrollRestoring,\n scrollToTopSelectors: router.options.scrollToTopSelectors,\n location: router.history.location\n });\n if (router.isScrollRestoring) {\n scrollRestorationCache.set((state) => {\n state[cacheKey] = state[cacheKey] || {};\n return state;\n });\n }\n });\n}\nfunction handleHashScroll(router) {\n if (typeof document !== \"undefined\" && document.querySelector) {\n const hashScrollIntoViewOptions = router.state.location.state.__hashScrollIntoViewOptions ?? true;\n if (hashScrollIntoViewOptions && router.state.location.hash !== \"\") {\n const el = document.getElementById(router.state.location.hash);\n if (el) {\n el.scrollIntoView(hashScrollIntoViewOptions);\n }\n }\n }\n}\nexport {\n defaultGetScrollRestorationKey,\n getCssSelector,\n handleHashScroll,\n restoreScroll,\n scrollRestorationCache,\n setupScrollRestoration,\n storageKey\n};\n//# sourceMappingURL=scroll-restoration.js.map\n","function encode(obj, pfx) {\n const normalizedObject = Object.entries(obj).flatMap(([key, value]) => {\n if (Array.isArray(value)) {\n return value.map((v) => [key, String(v)]);\n } else {\n return [[key, String(value)]];\n }\n });\n const searchParams = new URLSearchParams(normalizedObject);\n return (pfx || \"\") + searchParams.toString();\n}\nfunction toValue(str) {\n if (!str) return \"\";\n if (str === \"false\") return false;\n if (str === \"true\") return true;\n return +str * 0 === 0 && +str + \"\" === str ? +str : str;\n}\nfunction decode(str, pfx) {\n const searchParamsPart = pfx ? str.slice(pfx.length) : str;\n const searchParams = new URLSearchParams(searchParamsPart);\n const entries = [...searchParams.entries()];\n return entries.reduce((acc, [key, value]) => {\n const previousValue = acc[key];\n if (previousValue == null) {\n acc[key] = toValue(value);\n } else {\n acc[key] = Array.isArray(previousValue) ? [...previousValue, toValue(value)] : [previousValue, toValue(value)];\n }\n return acc;\n }, {});\n}\nexport {\n decode,\n encode\n};\n//# sourceMappingURL=qss.js.map\n","import { decode, encode } from \"./qss.js\";\nconst defaultParseSearch = parseSearchWith(JSON.parse);\nconst defaultStringifySearch = stringifySearchWith(\n JSON.stringify,\n JSON.parse\n);\nfunction parseSearchWith(parser) {\n return (searchStr) => {\n if (searchStr.substring(0, 1) === \"?\") {\n searchStr = searchStr.substring(1);\n }\n const query = decode(searchStr);\n for (const key in query) {\n const value = query[key];\n if (typeof value === \"string\") {\n try {\n query[key] = parser(value);\n } catch (err) {\n }\n }\n }\n return query;\n };\n}\nfunction stringifySearchWith(stringify, parser) {\n function stringifyValue(val) {\n if (typeof val === \"object\" && val !== null) {\n try {\n return stringify(val);\n } catch (err) {\n }\n } else if (typeof val === \"string\" && typeof parser === \"function\") {\n try {\n parser(val);\n return stringify(val);\n } catch (err) {\n }\n }\n return val;\n }\n return (search) => {\n search = { ...search };\n Object.keys(search).forEach((key) => {\n const val = search[key];\n if (typeof val === \"undefined\" || val === void 0) {\n delete search[key];\n } else {\n search[key] = stringifyValue(val);\n }\n });\n const searchStr = encode(search).toString();\n return searchStr ? `?${searchStr}` : \"\";\n };\n}\nexport {\n defaultParseSearch,\n defaultStringifySearch,\n parseSearchWith,\n stringifySearchWith\n};\n//# sourceMappingURL=searchParams.js.map\n","const rootRouteId = \"__root__\";\nexport {\n rootRouteId\n};\n//# sourceMappingURL=root.js.map\n","function redirect(opts) {\n opts.statusCode = opts.statusCode || opts.code || 307;\n if (!opts.reloadDocument) {\n try {\n new URL(`${opts.href}`);\n opts.reloadDocument = true;\n } catch {\n }\n }\n const headers = new Headers(opts.headers || {});\n if (opts.href && headers.get(\"Location\") === null) {\n headers.set(\"Location\", opts.href);\n }\n const response = new Response(null, {\n status: opts.statusCode,\n headers\n });\n response.options = opts;\n if (opts.throw) {\n throw response;\n }\n return response;\n}\nfunction isRedirect(obj) {\n return obj instanceof Response && !!obj.options;\n}\nfunction isResolvedRedirect(obj) {\n return isRedirect(obj) && !!obj.options.href;\n}\nfunction parseRedirect(obj) {\n if (typeof obj === \"object\" && obj.isSerializedRedirect) {\n return redirect(obj);\n }\n return void 0;\n}\nexport {\n isRedirect,\n isResolvedRedirect,\n parseRedirect,\n redirect\n};\n//# sourceMappingURL=redirect.js.map\n","function createLRUCache(max) {\n const cache = /* @__PURE__ */ new Map();\n let oldest;\n let newest;\n const touch = (entry) => {\n if (!entry.next) return;\n if (!entry.prev) {\n entry.next.prev = void 0;\n oldest = entry.next;\n entry.next = void 0;\n if (newest) {\n entry.prev = newest;\n newest.next = entry;\n }\n } else {\n entry.prev.next = entry.next;\n entry.next.prev = entry.prev;\n entry.next = void 0;\n if (newest) {\n newest.next = entry;\n entry.prev = newest;\n }\n }\n newest = entry;\n };\n return {\n get(key) {\n const entry = cache.get(key);\n if (!entry) return void 0;\n touch(entry);\n return entry.value;\n },\n set(key, value) {\n if (cache.size >= max && oldest) {\n const toDelete = oldest;\n cache.delete(toDelete.key);\n if (toDelete.next) {\n oldest = toDelete.next;\n toDelete.next.prev = void 0;\n }\n if (toDelete === newest) {\n newest = void 0;\n }\n }\n const existing = cache.get(key);\n if (existing) {\n existing.value = value;\n touch(existing);\n } else {\n const entry = { key, value, prev: newest };\n if (newest) newest.next = entry;\n newest = entry;\n if (!oldest) oldest = entry;\n cache.set(key, entry);\n }\n }\n };\n}\nexport {\n createLRUCache\n};\n//# sourceMappingURL=lru-cache.js.map\n","import { Store, batch } from \"@tanstack/store\";\nimport { createMemoryHistory, createBrowserHistory, parseHref } from \"@tanstack/history\";\nimport invariant from \"tiny-invariant\";\nimport { pick, createControlledPromise, deepEqual, replaceEqualDeep, last, functionalUpdate } from \"./utils.js\";\nimport { trimPath, resolvePath, cleanPath, matchPathname, trimPathRight, interpolatePath, joinPaths, trimPathLeft, parsePathname, SEGMENT_TYPE_PARAM, SEGMENT_TYPE_OPTIONAL_PARAM, SEGMENT_TYPE_WILDCARD, SEGMENT_TYPE_PATHNAME } from \"./path.js\";\nimport { isNotFound } from \"./not-found.js\";\nimport { setupScrollRestoration } from \"./scroll-restoration.js\";\nimport { defaultParseSearch, defaultStringifySearch } from \"./searchParams.js\";\nimport { rootRouteId } from \"./root.js\";\nimport { redirect, isRedirect } from \"./redirect.js\";\nimport { createLRUCache } from \"./lru-cache.js\";\nfunction defaultSerializeError(err) {\n if (err instanceof Error) {\n const obj = {\n name: err.name,\n message: err.message\n };\n if (process.env.NODE_ENV === \"development\") {\n obj.stack = err.stack;\n }\n return obj;\n }\n return {\n data: err\n };\n}\nfunction getLocationChangeInfo(routerState) {\n const fromLocation = routerState.resolvedLocation;\n const toLocation = routerState.location;\n const pathChanged = (fromLocation == null ? void 0 : fromLocation.pathname) !== toLocation.pathname;\n const hrefChanged = (fromLocation == null ? void 0 : fromLocation.href) !== toLocation.href;\n const hashChanged = (fromLocation == null ? void 0 : fromLocation.hash) !== toLocation.hash;\n return { fromLocation, toLocation, pathChanged, hrefChanged, hashChanged };\n}\nclass RouterCore {\n /**\n * @deprecated Use the `createRouter` function instead\n */\n constructor(options) {\n this.tempLocationKey = `${Math.round(\n Math.random() * 1e7\n )}`;\n this.resetNextScroll = true;\n this.shouldViewTransition = void 0;\n this.isViewTransitionTypesSupported = void 0;\n this.subscribers = /* @__PURE__ */ new Set();\n this.isScrollRestoring = false;\n this.isScrollRestorationSetup = false;\n this.startTransition = (fn) => fn();\n this.update = (newOptions) => {\n var _a;\n if (newOptions.notFoundRoute) {\n console.warn(\n \"The notFoundRoute API is deprecated and will be removed in the next major version. See https://tanstack.com/router/v1/docs/framework/react/guide/not-found-errors#migrating-from-notfoundroute for more info.\"\n );\n }\n const previousOptions = this.options;\n this.options = {\n ...this.options,\n ...newOptions\n };\n this.isServer = this.options.isServer ?? typeof document === \"undefined\";\n this.pathParamsDecodeCharMap = this.options.pathParamsAllowedCharacters ? new Map(\n this.options.pathParamsAllowedCharacters.map((char) => [\n encodeURIComponent(char),\n char\n ])\n ) : void 0;\n if (!this.basepath || newOptions.basepath && newOptions.basepath !== previousOptions.basepath) {\n if (newOptions.basepath === void 0 || newOptions.basepath === \"\" || newOptions.basepath === \"/\") {\n this.basepath = \"/\";\n } else {\n this.basepath = `/${trimPath(newOptions.basepath)}`;\n }\n }\n if (!this.history || this.options.history && this.options.history !== this.history) {\n this.history = this.options.history ?? (this.isServer ? createMemoryHistory({\n initialEntries: [this.basepath || \"/\"]\n }) : createBrowserHistory());\n this.latestLocation = this.parseLocation();\n }\n if (this.options.routeTree !== this.routeTree) {\n this.routeTree = this.options.routeTree;\n this.buildRouteTree();\n }\n if (!this.__store) {\n this.__store = new Store(getInitialRouterState(this.latestLocation), {\n onUpdate: () => {\n this.__store.state = {\n ...this.state,\n cachedMatches: this.state.cachedMatches.filter(\n (d) => ![\"redirected\"].includes(d.status)\n )\n };\n }\n });\n setupScrollRestoration(this);\n }\n if (typeof window !== \"undefined\" && \"CSS\" in window && typeof ((_a = window.CSS) == null ? void 0 : _a.supports) === \"function\") {\n this.isViewTransitionTypesSupported = window.CSS.supports(\n \"selector(:active-view-transition-type(a)\"\n );\n }\n };\n this.buildRouteTree = () => {\n const { routesById, routesByPath, flatRoutes } = processRouteTree({\n routeTree: this.routeTree,\n initRoute: (route, i) => {\n route.init({\n originalIndex: i\n });\n }\n });\n this.routesById = routesById;\n this.routesByPath = routesByPath;\n this.flatRoutes = flatRoutes;\n const notFoundRoute = this.options.notFoundRoute;\n if (notFoundRoute) {\n notFoundRoute.init({\n originalIndex: 99999999999\n });\n this.routesById[notFoundRoute.id] = notFoundRoute;\n }\n };\n this.subscribe = (eventType, fn) => {\n const listener = {\n eventType,\n fn\n };\n this.subscribers.add(listener);\n return () => {\n this.subscribers.delete(listener);\n };\n };\n this.emit = (routerEvent) => {\n this.subscribers.forEach((listener) => {\n if (listener.eventType === routerEvent.type) {\n listener.fn(routerEvent);\n }\n });\n };\n this.parseLocation = (previousLocation, locationToParse) => {\n const parse = ({\n pathname,\n search,\n hash,\n state\n }) => {\n const parsedSearch = this.options.parseSearch(search);\n const searchStr = this.options.stringifySearch(parsedSearch);\n return {\n pathname,\n searchStr,\n search: replaceEqualDeep(previousLocation == null ? void 0 : previousLocation.search, parsedSearch),\n hash: hash.split(\"#\").reverse()[0] ?? \"\",\n href: `${pathname}${searchStr}${hash}`,\n state: replaceEqualDeep(previousLocation == null ? void 0 : previousLocation.state, state)\n };\n };\n const location = parse(locationToParse ?? this.history.location);\n const { __tempLocation, __tempKey } = location.state;\n if (__tempLocation && (!__tempKey || __tempKey === this.tempLocationKey)) {\n const parsedTempLocation = parse(__tempLocation);\n parsedTempLocation.state.key = location.state.key;\n parsedTempLocation.state.__TSR_key = location.state.__TSR_key;\n delete parsedTempLocation.state.__tempLocation;\n return {\n ...parsedTempLocation,\n maskedLocation: location\n };\n }\n return location;\n };\n this.resolvePathWithBase = (from, path) => {\n const resolvedPath = resolvePath({\n basepath: this.basepath,\n base: from,\n to: cleanPath(path),\n trailingSlash: this.options.trailingSlash,\n caseSensitive: this.options.caseSensitive,\n parseCache: this.parsePathnameCache\n });\n return resolvedPath;\n };\n this.matchRoutes = (pathnameOrNext, locationSearchOrOpts, opts) => {\n if (typeof pathnameOrNext === \"string\") {\n return this.matchRoutesInternal(\n {\n pathname: pathnameOrNext,\n search: locationSearchOrOpts\n },\n opts\n );\n }\n return this.matchRoutesInternal(pathnameOrNext, locationSearchOrOpts);\n };\n this.parsePathnameCache = createLRUCache(1e3);\n this.getMatchedRoutes = (pathname, routePathname) => {\n return getMatchedRoutes({\n pathname,\n routePathname,\n basepath: this.basepath,\n caseSensitive: this.options.caseSensitive,\n routesByPath: this.routesByPath,\n routesById: this.routesById,\n flatRoutes: this.flatRoutes,\n parseCache: this.parsePathnameCache\n });\n };\n this.cancelMatch = (id) => {\n const match = this.getMatch(id);\n if (!match) return;\n match.abortController.abort();\n this.updateMatch(id, (prev) => {\n clearTimeout(prev.pendingTimeout);\n return {\n ...prev,\n pendingTimeout: void 0\n };\n });\n };\n this.cancelMatches = () => {\n var _a;\n (_a = this.state.pendingMatches) == null ? void 0 : _a.forEach((match) => {\n this.cancelMatch(match.id);\n });\n };\n this.buildLocation = (opts) => {\n const build = (dest = {}) => {\n var _a;\n const currentLocation = dest._fromLocation || this.latestLocation;\n const allCurrentLocationMatches = this.matchRoutes(currentLocation, {\n _buildLocation: true\n });\n const lastMatch = last(allCurrentLocationMatches);\n let fromPath = lastMatch.fullPath;\n const toPath = dest.to ? this.resolvePathWithBase(fromPath, `${dest.to}`) : this.resolvePathWithBase(fromPath, \".\");\n const routeIsChanging = !!dest.to && !comparePaths(dest.to.toString(), fromPath) && !comparePaths(toPath, fromPath);\n if (dest.unsafeRelative === \"path\") {\n fromPath = currentLocation.pathname;\n } else if (routeIsChanging && dest.from) {\n fromPath = dest.from;\n if (process.env.NODE_ENV !== \"production\" && dest._isNavigate) {\n const allFromMatches = this.getMatchedRoutes(\n dest.from,\n void 0\n ).matchedRoutes;\n const matchedFrom = [...allCurrentLocationMatches].reverse().find((d) => {\n return comparePaths(d.fullPath, fromPath);\n });\n const matchedCurrent = [...allFromMatches].reverse().find((d) => {\n return comparePaths(d.fullPath, currentLocation.pathname);\n });\n if (!matchedFrom && !matchedCurrent) {\n console.warn(`Could not find match for from: ${fromPath}`);\n }\n }\n }\n const fromSearch = lastMatch.search;\n const fromParams = { ...lastMatch.params };\n const nextTo = dest.to ? this.resolvePathWithBase(fromPath, `${dest.to}`) : this.resolvePathWithBase(fromPath, \".\");\n let nextParams = dest.params === false || dest.params === null ? {} : (dest.params ?? true) === true ? fromParams : {\n ...fromParams,\n ...functionalUpdate(dest.params, fromParams)\n };\n const interpolatedNextTo = interpolatePath({\n path: nextTo,\n params: nextParams ?? {},\n parseCache: this.parsePathnameCache\n }).interpolatedPath;\n const destRoutes = this.matchRoutes(\n interpolatedNextTo,\n {},\n {\n _buildLocation: true\n }\n ).map((d) => this.looseRoutesById[d.routeId]);\n if (Object.keys(nextParams).length > 0) {\n destRoutes.map((route) => {\n var _a2;\n return ((_a2 = route.options.params) == null ? void 0 : _a2.stringify) ?? route.options.stringifyParams;\n }).filter(Boolean).forEach((fn) => {\n nextParams = { ...nextParams, ...fn(nextParams) };\n });\n }\n const nextPathname = interpolatePath({\n // Use the original template path for interpolation\n // This preserves the original parameter syntax including optional parameters\n path: nextTo,\n params: nextParams ?? {},\n leaveWildcards: false,\n leaveParams: opts.leaveParams,\n decodeCharMap: this.pathParamsDecodeCharMap,\n parseCache: this.parsePathnameCache\n }).interpolatedPath;\n let nextSearch = fromSearch;\n if (opts._includeValidateSearch && ((_a = this.options.search) == null ? void 0 : _a.strict)) {\n let validatedSearch = {};\n destRoutes.forEach((route) => {\n try {\n if (route.options.validateSearch) {\n validatedSearch = {\n ...validatedSearch,\n ...validateSearch(route.options.validateSearch, {\n ...validatedSearch,\n ...nextSearch\n }) ?? {}\n };\n }\n } catch {\n }\n });\n nextSearch = validatedSearch;\n }\n nextSearch = applySearchMiddleware({\n search: nextSearch,\n dest,\n destRoutes,\n _includeValidateSearch: opts._includeValidateSearch\n });\n nextSearch = replaceEqualDeep(fromSearch, nextSearch);\n const searchStr = this.options.stringifySearch(nextSearch);\n const hash = dest.hash === true ? currentLocation.hash : dest.hash ? functionalUpdate(dest.hash, currentLocation.hash) : void 0;\n const hashStr = hash ? `#${hash}` : \"\";\n let nextState = dest.state === true ? currentLocation.state : dest.state ? functionalUpdate(dest.state, currentLocation.state) : {};\n nextState = replaceEqualDeep(currentLocation.state, nextState);\n return {\n pathname: nextPathname,\n search: nextSearch,\n searchStr,\n state: nextState,\n hash: hash ?? \"\",\n href: `${nextPathname}${searchStr}${hashStr}`,\n unmaskOnReload: dest.unmaskOnReload\n };\n };\n const buildWithMatches = (dest = {}, maskedDest) => {\n var _a;\n const next = build(dest);\n let maskedNext = maskedDest ? build(maskedDest) : void 0;\n if (!maskedNext) {\n let params = {};\n const foundMask = (_a = this.options.routeMasks) == null ? void 0 : _a.find((d) => {\n const match = matchPathname(\n this.basepath,\n next.pathname,\n {\n to: d.from,\n caseSensitive: false,\n fuzzy: false\n },\n this.parsePathnameCache\n );\n if (match) {\n params = match;\n return true;\n }\n return false;\n });\n if (foundMask) {\n const { from: _from, ...maskProps } = foundMask;\n maskedDest = {\n ...pick(opts, [\"from\"]),\n ...maskProps,\n params\n };\n maskedNext = build(maskedDest);\n }\n }\n if (maskedNext) {\n const maskedFinal = build(maskedDest);\n next.maskedLocation = maskedFinal;\n }\n return next;\n };\n if (opts.mask) {\n return buildWithMatches(opts, {\n ...pick(opts, [\"from\"]),\n ...opts.mask\n });\n }\n return buildWithMatches(opts);\n };\n this.commitLocation = ({\n viewTransition,\n ignoreBlocker,\n ...next\n }) => {\n const isSameState = () => {\n const ignoredProps = [\n \"key\",\n // TODO: Remove in v2 - use __TSR_key instead\n \"__TSR_key\",\n \"__TSR_index\",\n \"__hashScrollIntoViewOptions\"\n ];\n ignoredProps.forEach((prop) => {\n next.state[prop] = this.latestLocation.state[prop];\n });\n const isEqual = deepEqual(next.state, this.latestLocation.state);\n ignoredProps.forEach((prop) => {\n delete next.state[prop];\n });\n return isEqual;\n };\n const isSameUrl = this.latestLocation.href === next.href;\n const previousCommitPromise = this.commitLocationPromise;\n this.commitLocationPromise = createControlledPromise(() => {\n previousCommitPromise == null ? void 0 : previousCommitPromise.resolve();\n });\n if (isSameUrl && isSameState()) {\n this.load();\n } else {\n let { maskedLocation, hashScrollIntoView, ...nextHistory } = next;\n if (maskedLocation) {\n nextHistory = {\n ...maskedLocation,\n state: {\n ...maskedLocation.state,\n __tempKey: void 0,\n __tempLocation: {\n ...nextHistory,\n search: nextHistory.searchStr,\n state: {\n ...nextHistory.state,\n __tempKey: void 0,\n __tempLocation: void 0,\n __TSR_key: void 0,\n key: void 0\n // TODO: Remove in v2 - use __TSR_key instead\n }\n }\n }\n };\n if (nextHistory.unmaskOnReload ?? this.options.unmaskOnReload ?? false) {\n nextHistory.state.__tempKey = this.tempLocationKey;\n }\n }\n nextHistory.state.__hashScrollIntoViewOptions = hashScrollIntoView ?? this.options.defaultHashScrollIntoView ?? true;\n this.shouldViewTransition = viewTransition;\n this.history[next.replace ? \"replace\" : \"push\"](\n nextHistory.href,\n nextHistory.state,\n { ignoreBlocker }\n );\n }\n this.resetNextScroll = next.resetScroll ?? true;\n if (!this.history.subscribers.size) {\n this.load();\n }\n return this.commitLocationPromise;\n };\n this.buildAndCommitLocation = ({\n replace,\n resetScroll,\n hashScrollIntoView,\n viewTransition,\n ignoreBlocker,\n href,\n ...rest\n } = {}) => {\n if (href) {\n const currentIndex = this.history.location.state.__TSR_index;\n const parsed = parseHref(href, {\n __TSR_index: replace ? currentIndex : currentIndex + 1\n });\n rest.to = parsed.pathname;\n rest.search = this.options.parseSearch(parsed.search);\n rest.hash = parsed.hash.slice(1);\n }\n const location = this.buildLocation({\n ...rest,\n _includeValidateSearch: true\n });\n return this.commitLocation({\n ...location,\n viewTransition,\n replace,\n resetScroll,\n hashScrollIntoView,\n ignoreBlocker\n });\n };\n this.navigate = ({ to, reloadDocument, href, ...rest }) => {\n if (!reloadDocument && href) {\n try {\n new URL(`${href}`);\n reloadDocument = true;\n } catch {\n }\n }\n if (reloadDocument) {\n if (!href) {\n const location = this.buildLocation({ to, ...rest });\n href = this.history.createHref(location.href);\n }\n if (rest.replace) {\n window.location.replace(href);\n } else {\n window.location.href = href;\n }\n return Promise.resolve();\n }\n return this.buildAndCommitLocation({\n ...rest,\n href,\n to,\n _isNavigate: true\n });\n };\n this.beforeLoad = () => {\n this.cancelMatches();\n this.latestLocation = this.parseLocation(this.latestLocation);\n if (this.isServer) {\n const nextLocation = this.buildLocation({\n to: this.latestLocation.pathname,\n search: true,\n params: true,\n hash: true,\n state: true,\n _includeValidateSearch: true\n });\n const normalizeUrl = (url) => {\n try {\n return encodeURI(decodeURI(url));\n } catch {\n return url;\n }\n };\n if (trimPath(normalizeUrl(this.latestLocation.href)) !== trimPath(normalizeUrl(nextLocation.href))) {\n throw redirect({ href: nextLocation.href });\n }\n }\n const pendingMatches = this.matchRoutes(this.latestLocation);\n this.__store.setState((s) => ({\n ...s,\n status: \"pending\",\n statusCode: 200,\n isLoading: true,\n location: this.latestLocation,\n pendingMatches,\n // If a cached moved to pendingMatches, remove it from cachedMatches\n cachedMatches: s.cachedMatches.filter(\n (d) => !pendingMatches.some((e) => e.id === d.id)\n )\n }));\n };\n this.load = async (opts) => {\n let redirect2;\n let notFound;\n let loadPromise;\n loadPromise = new Promise((resolve) => {\n this.startTransition(async () => {\n var _a;\n try {\n this.beforeLoad();\n const next = this.latestLocation;\n const prevLocation = this.state.resolvedLocation;\n if (!this.state.redirect) {\n this.emit({\n type: \"onBeforeNavigate\",\n ...getLocationChangeInfo({\n resolvedLocation: prevLocation,\n location: next\n })\n });\n }\n this.emit({\n type: \"onBeforeLoad\",\n ...getLocationChangeInfo({\n resolvedLocation: prevLocation,\n location: next\n })\n });\n await this.loadMatches({\n sync: opts == null ? void 0 : opts.sync,\n matches: this.state.pendingMatches,\n location: next,\n // eslint-disable-next-line @typescript-eslint/require-await\n onReady: async () => {\n this.startViewTransition(async () => {\n let exitingMatches;\n let enteringMatches;\n let stayingMatches;\n batch(() => {\n this.__store.setState((s) => {\n const previousMatches = s.matches;\n const newMatches = s.pendingMatches || s.matches;\n exitingMatches = previousMatches.filter(\n (match) => !newMatches.some((d) => d.id === match.id)\n );\n enteringMatches = newMatches.filter(\n (match) => !previousMatches.some((d) => d.id === match.id)\n );\n stayingMatches = previousMatches.filter(\n (match) => newMatches.some((d) => d.id === match.id)\n );\n return {\n ...s,\n isLoading: false,\n loadedAt: Date.now(),\n matches: newMatches,\n pendingMatches: void 0,\n cachedMatches: [\n ...s.cachedMatches,\n ...exitingMatches.filter((d) => d.status !== \"error\")\n ]\n };\n });\n this.clearExpiredCache();\n });\n [\n [exitingMatches, \"onLeave\"],\n [enteringMatches, \"onEnter\"],\n [stayingMatches, \"onStay\"]\n ].forEach(([matches, hook]) => {\n matches.forEach((match) => {\n var _a2, _b;\n (_b = (_a2 = this.looseRoutesById[match.routeId].options)[hook]) == null ? void 0 : _b.call(_a2, match);\n });\n });\n });\n }\n });\n } catch (err) {\n if (isRedirect(err)) {\n redirect2 = err;\n if (!this.isServer) {\n this.navigate({\n ...redirect2.options,\n replace: true,\n ignoreBlocker: true\n });\n }\n } else if (isNotFound(err)) {\n notFound = err;\n }\n this.__store.setState((s) => ({\n ...s,\n statusCode: redirect2 ? redirect2.status : notFound ? 404 : s.matches.some((d) => d.status === \"error\") ? 500 : 200,\n redirect: redirect2\n }));\n }\n if (this.latestLoadPromise === loadPromise) {\n (_a = this.commitLocationPromise) == null ? void 0 : _a.resolve();\n this.latestLoadPromise = void 0;\n this.commitLocationPromise = void 0;\n }\n resolve();\n });\n });\n this.latestLoadPromise = loadPromise;\n await loadPromise;\n while (this.latestLoadPromise && loadPromise !== this.latestLoadPromise) {\n await this.latestLoadPromise;\n }\n if (this.hasNotFoundMatch()) {\n this.__store.setState((s) => ({\n ...s,\n statusCode: 404\n }));\n }\n };\n this.startViewTransition = (fn) => {\n const shouldViewTransition = this.shouldViewTransition ?? this.options.defaultViewTransition;\n delete this.shouldViewTransition;\n if (shouldViewTransition && typeof document !== \"undefined\" && \"startViewTransition\" in document && typeof document.startViewTransition === \"function\") {\n let startViewTransitionParams;\n if (typeof shouldViewTransition === \"object\" && this.isViewTransitionTypesSupported) {\n const next = this.latestLocation;\n const prevLocation = this.state.resolvedLocation;\n const resolvedViewTransitionTypes = typeof shouldViewTransition.types === \"function\" ? shouldViewTransition.types(\n getLocationChangeInfo({\n resolvedLocation: prevLocation,\n location: next\n })\n ) : shouldViewTransition.types;\n startViewTransitionParams = {\n update: fn,\n types: resolvedViewTransitionTypes\n };\n } else {\n startViewTransitionParams = fn;\n }\n document.startViewTransition(startViewTransitionParams);\n } else {\n fn();\n }\n };\n this.updateMatch = (id, updater) => {\n var _a;\n const matchesKey = ((_a = this.state.pendingMatches) == null ? void 0 : _a.some((d) => d.id === id)) ? \"pendingMatches\" : this.state.matches.some((d) => d.id === id) ? \"matches\" : this.state.cachedMatches.some((d) => d.id === id) ? \"cachedMatches\" : \"\";\n if (matchesKey) {\n this.__store.setState((s) => {\n var _a2;\n return {\n ...s,\n [matchesKey]: (_a2 = s[matchesKey]) == null ? void 0 : _a2.map((d) => d.id === id ? updater(d) : d)\n };\n });\n }\n };\n this.getMatch = (matchId) => {\n var _a;\n const findFn = (d) => d.id === matchId;\n return this.state.cachedMatches.find(findFn) ?? ((_a = this.state.pendingMatches) == null ? void 0 : _a.find(findFn)) ?? this.state.matches.find(findFn);\n };\n this.loadMatches = async ({\n location,\n matches,\n preload: allPreload,\n onReady,\n updateMatch = this.updateMatch,\n sync\n }) => {\n let firstBadMatchIndex;\n let rendered = false;\n const triggerOnReady = async () => {\n if (!rendered) {\n rendered = true;\n await (onReady == null ? void 0 : onReady());\n }\n };\n const resolvePreload = (matchId) => {\n return !!(allPreload && !this.state.matches.some((d) => d.id === matchId));\n };\n if (!this.isServer && this.state.matches.some((d) => d._forcePending)) {\n triggerOnReady();\n }\n const handleRedirectAndNotFound = (match, err) => {\n var _a, _b, _c;\n if (isRedirect(err) || isNotFound(err)) {\n if (isRedirect(err)) {\n if (err.redirectHandled) {\n if (!err.options.reloadDocument) {\n throw err;\n }\n }\n }\n (_a = match.beforeLoadPromise) == null ? void 0 : _a.resolve();\n (_b = match.loaderPromise) == null ? void 0 : _b.resolve();\n updateMatch(match.id, (prev) => ({\n ...prev,\n status: isRedirect(err) ? \"redirected\" : isNotFound(err) ? \"notFound\" : \"error\",\n isFetching: false,\n error: err,\n beforeLoadPromise: void 0,\n loaderPromise: void 0\n }));\n if (!err.routeId) {\n err.routeId = match.routeId;\n }\n (_c = match.loadPromise) == null ? void 0 : _c.resolve();\n if (isRedirect(err)) {\n rendered = true;\n err.options._fromLocation = location;\n err.redirectHandled = true;\n err = this.resolveRedirect(err);\n throw err;\n } else if (isNotFound(err)) {\n this._handleNotFound(matches, err, {\n updateMatch\n });\n throw err;\n }\n }\n };\n const shouldSkipLoader = (matchId) => {\n const match = this.getMatch(matchId);\n if (!this.isServer && match._dehydrated) {\n return true;\n }\n if (this.isServer) {\n if (match.ssr === false) {\n return true;\n }\n }\n return false;\n };\n try {\n await new Promise((resolveAll, rejectAll) => {\n ;\n (async () => {\n var _a, _b, _c, _d;\n try {\n const handleSerialError = (index, err, routerCode) => {\n var _a2, _b2;\n const { id: matchId, routeId } = matches[index];\n const route = this.looseRoutesById[routeId];\n if (err instanceof Promise) {\n throw err;\n }\n err.routerCode = routerCode;\n firstBadMatchIndex = firstBadMatchIndex ?? index;\n handleRedirectAndNotFound(this.getMatch(matchId), err);\n try {\n (_b2 = (_a2 = route.options).onError) == null ? void 0 : _b2.call(_a2, err);\n } catch (errorHandlerErr) {\n err = errorHandlerErr;\n handleRedirectAndNotFound(this.getMatch(matchId), err);\n }\n updateMatch(matchId, (prev) => {\n var _a3, _b3;\n (_a3 = prev.beforeLoadPromise) == null ? void 0 : _a3.resolve();\n (_b3 = prev.loadPromise) == null ? void 0 : _b3.resolve();\n return {\n ...prev,\n error: err,\n status: \"error\",\n isFetching: false,\n updatedAt: Date.now(),\n abortController: new AbortController(),\n beforeLoadPromise: void 0\n };\n });\n };\n for (const [index, { id: matchId, routeId }] of matches.entries()) {\n const existingMatch = this.getMatch(matchId);\n const parentMatchId = (_a = matches[index - 1]) == null ? void 0 : _a.id;\n const parentMatch = parentMatchId ? this.getMatch(parentMatchId) : void 0;\n const route = this.looseRoutesById[routeId];\n const pendingMs = route.options.pendingMs ?? this.options.defaultPendingMs;\n if (this.isServer) {\n let ssr;\n if (this.isShell()) {\n ssr = matchId === rootRouteId;\n } else {\n const defaultSsr = this.options.defaultSsr ?? true;\n if ((parentMatch == null ? void 0 : parentMatch.ssr) === false) {\n ssr = false;\n } else {\n let tempSsr;\n if (route.options.ssr === void 0) {\n tempSsr = defaultSsr;\n } else if (typeof route.options.ssr === \"function\") {\n let makeMaybe = function(value, error) {\n if (error) {\n return { status: \"error\", error };\n }\n return { status: \"success\", value };\n };\n const { search, params } = this.getMatch(matchId);\n const ssrFnContext = {\n search: makeMaybe(search, existingMatch.searchError),\n params: makeMaybe(params, existingMatch.paramsError),\n location,\n matches: matches.map((match) => ({\n index: match.index,\n pathname: match.pathname,\n fullPath: match.fullPath,\n staticData: match.staticData,\n id: match.id,\n routeId: match.routeId,\n search: makeMaybe(match.search, match.searchError),\n params: makeMaybe(match.params, match.paramsError),\n ssr: match.ssr\n }))\n };\n tempSsr = await route.options.ssr(ssrFnContext) ?? defaultSsr;\n } else {\n tempSsr = route.options.ssr;\n }\n if (tempSsr === true && (parentMatch == null ? void 0 : parentMatch.ssr) === \"data-only\") {\n ssr = \"data-only\";\n } else {\n ssr = tempSsr;\n }\n }\n }\n updateMatch(matchId, (prev) => ({\n ...prev,\n ssr\n }));\n }\n if (shouldSkipLoader(matchId)) {\n continue;\n }\n const shouldPending = !!(onReady && !this.isServer && !resolvePreload(matchId) && (route.options.loader || route.options.beforeLoad || routeNeedsPreload(route)) && typeof pendingMs === \"number\" && pendingMs !== Infinity && (route.options.pendingComponent ?? ((_b = this.options) == null ? void 0 : _b.defaultPendingComponent)));\n let executeBeforeLoad = true;\n const setupPendingTimeout = () => {\n if (shouldPending && this.getMatch(matchId).pendingTimeout === void 0) {\n const pendingTimeout = setTimeout(() => {\n try {\n triggerOnReady();\n } catch {\n }\n }, pendingMs);\n updateMatch(matchId, (prev) => ({\n ...prev,\n pendingTimeout\n }));\n }\n };\n if (\n // If we are in the middle of a load, either of these will be present\n // (not to be confused with `loadPromise`, which is always defined)\n existingMatch.beforeLoadPromise || existingMatch.loaderPromise\n ) {\n setupPendingTimeout();\n await existingMatch.beforeLoadPromise;\n const match = this.getMatch(matchId);\n if (match.status === \"error\") {\n executeBeforeLoad = true;\n } else if (match.preload && (match.status === \"redirected\" || match.status === \"notFound\")) {\n handleRedirectAndNotFound(match, match.error);\n }\n }\n if (executeBeforeLoad) {\n try {\n updateMatch(matchId, (prev) => {\n const prevLoadPromise = prev.loadPromise;\n return {\n ...prev,\n loadPromise: createControlledPromise(() => {\n prevLoadPromise == null ? void 0 : prevLoadPromise.resolve();\n }),\n beforeLoadPromise: createControlledPromise()\n };\n });\n const { paramsError, searchError } = this.getMatch(matchId);\n if (paramsError) {\n handleSerialError(index, paramsError, \"PARSE_PARAMS\");\n }\n if (searchError) {\n handleSerialError(index, searchError, \"VALIDATE_SEARCH\");\n }\n setupPendingTimeout();\n const abortController = new AbortController();\n const parentMatchContext = (parentMatch == null ? void 0 : parentMatch.context) ?? this.options.context ?? {};\n updateMatch(matchId, (prev) => ({\n ...prev,\n isFetching: \"beforeLoad\",\n fetchCount: prev.fetchCount + 1,\n abortController,\n context: {\n ...parentMatchContext,\n ...prev.__routeContext\n }\n }));\n const { search, params, context, cause } = this.getMatch(matchId);\n const preload = resolvePreload(matchId);\n const beforeLoadFnContext = {\n search,\n abortController,\n params,\n preload,\n context,\n location,\n navigate: (opts) => this.navigate({ ...opts, _fromLocation: location }),\n buildLocation: this.buildLocation,\n cause: preload ? \"preload\" : cause,\n matches\n };\n const beforeLoadContext = await ((_d = (_c = route.options).beforeLoad) == null ? void 0 : _d.call(_c, beforeLoadFnContext));\n if (isRedirect(beforeLoadContext) || isNotFound(beforeLoadContext)) {\n handleSerialError(index, beforeLoadContext, \"BEFORE_LOAD\");\n }\n updateMatch(matchId, (prev) => {\n return {\n ...prev,\n __beforeLoadContext: beforeLoadContext,\n context: {\n ...parentMatchContext,\n ...prev.__routeContext,\n ...beforeLoadContext\n },\n abortController\n };\n });\n } catch (err) {\n handleSerialError(index, err, \"BEFORE_LOAD\");\n }\n updateMatch(matchId, (prev) => {\n var _a2;\n (_a2 = prev.beforeLoadPromise) == null ? void 0 : _a2.resolve();\n return {\n ...prev,\n beforeLoadPromise: void 0,\n isFetching: false\n };\n });\n }\n }\n const validResolvedMatches = matches.slice(0, firstBadMatchIndex);\n const matchPromises = [];\n validResolvedMatches.forEach(({ id: matchId, routeId }, index) => {\n matchPromises.push(\n (async () => {\n let loaderShouldRunAsync = false;\n let loaderIsRunningAsync = false;\n const route = this.looseRoutesById[routeId];\n const executeHead = async () => {\n var _a2, _b2, _c2, _d2, _e, _f;\n const match = this.getMatch(matchId);\n if (!match) {\n return;\n }\n const assetContext = {\n matches,\n match,\n params: match.params,\n loaderData: match.loaderData\n };\n const headFnContent = await ((_b2 = (_a2 = route.options).head) == null ? void 0 : _b2.call(_a2, assetContext));\n const meta = headFnContent == null ? void 0 : headFnContent.meta;\n const links = headFnContent == null ? void 0 : headFnContent.links;\n const headScripts = headFnContent == null ? void 0 : headFnContent.scripts;\n const styles = headFnContent == null ? void 0 : headFnContent.styles;\n const scripts = await ((_d2 = (_c2 = route.options).scripts) == null ? void 0 : _d2.call(_c2, assetContext));\n const headers = await ((_f = (_e = route.options).headers) == null ? void 0 : _f.call(_e, assetContext));\n return {\n meta,\n links,\n headScripts,\n headers,\n scripts,\n styles\n };\n };\n const potentialPendingMinPromise = async () => {\n const latestMatch = this.getMatch(matchId);\n if (latestMatch.minPendingPromise) {\n await latestMatch.minPendingPromise;\n }\n };\n const prevMatch = this.getMatch(matchId);\n if (shouldSkipLoader(matchId)) {\n if (this.isServer) {\n const head = await executeHead();\n updateMatch(matchId, (prev) => ({\n ...prev,\n ...head\n }));\n return this.getMatch(matchId);\n }\n } else if (prevMatch.loaderPromise) {\n if (prevMatch.status === \"success\" && !sync && !prevMatch.preload) {\n return this.getMatch(matchId);\n }\n await prevMatch.loaderPromise;\n const match = this.getMatch(matchId);\n if (match.error) {\n handleRedirectAndNotFound(match, match.error);\n }\n } else {\n const parentMatchPromise = matchPromises[index - 1];\n const getLoaderContext = () => {\n const {\n params,\n loaderDeps,\n abortController,\n context,\n cause\n } = this.getMatch(matchId);\n const preload2 = resolvePreload(matchId);\n return {\n params,\n deps: loaderDeps,\n preload: !!preload2,\n parentMatchPromise,\n abortController,\n context,\n location,\n navigate: (opts) => this.navigate({ ...opts, _fromLocation: location }),\n cause: preload2 ? \"preload\" : cause,\n route\n };\n };\n const age = Date.now() - this.getMatch(matchId).updatedAt;\n const preload = resolvePreload(matchId);\n const staleAge = preload ? route.options.preloadStaleTime ?? this.options.defaultPreloadStaleTime ?? 3e4 : route.options.staleTime ?? this.options.defaultStaleTime ?? 0;\n const shouldReloadOption = route.options.shouldReload;\n const shouldReload = typeof shouldReloadOption === \"function\" ? shouldReloadOption(getLoaderContext()) : shouldReloadOption;\n updateMatch(matchId, (prev) => ({\n ...prev,\n loaderPromise: createControlledPromise(),\n preload: !!preload && !this.state.matches.some((d) => d.id === matchId)\n }));\n const runLoader = async () => {\n var _a2, _b2, _c2, _d2;\n try {\n try {\n if (!this.isServer || this.isServer && this.getMatch(matchId).ssr === true) {\n this.loadRouteChunk(route);\n }\n updateMatch(matchId, (prev) => ({\n ...prev,\n isFetching: \"loader\"\n }));\n const loaderData = await ((_b2 = (_a2 = route.options).loader) == null ? void 0 : _b2.call(_a2, getLoaderContext()));\n handleRedirectAndNotFound(\n this.getMatch(matchId),\n loaderData\n );\n updateMatch(matchId, (prev) => ({\n ...prev,\n loaderData\n }));\n await route._lazyPromise;\n const head = await executeHead();\n await potentialPendingMinPromise();\n await route._componentsPromise;\n updateMatch(matchId, (prev) => ({\n ...prev,\n error: void 0,\n status: \"success\",\n isFetching: false,\n updatedAt: Date.now(),\n ...head\n }));\n } catch (e) {\n let error = e;\n await potentialPendingMinPromise();\n handleRedirectAndNotFound(this.getMatch(matchId), e);\n try {\n (_d2 = (_c2 = route.options).onError) == null ? void 0 : _d2.call(_c2, e);\n } catch (onErrorError) {\n error = onErrorError;\n handleRedirectAndNotFound(\n this.getMatch(matchId),\n onErrorError\n );\n }\n const head = await executeHead();\n updateMatch(matchId, (prev) => ({\n ...prev,\n error,\n status: \"error\",\n isFetching: false,\n ...head\n }));\n }\n } catch (err) {\n const head = await executeHead();\n updateMatch(matchId, (prev) => ({\n ...prev,\n loaderPromise: void 0,\n ...head\n }));\n handleRedirectAndNotFound(this.getMatch(matchId), err);\n }\n };\n const { status, invalid } = this.getMatch(matchId);\n loaderShouldRunAsync = status === \"success\" && (invalid || (shouldReload ?? age > staleAge));\n if (preload && route.options.preload === false) {\n } else if (loaderShouldRunAsync && !sync) {\n loaderIsRunningAsync = true;\n (async () => {\n try {\n await runLoader();\n const { loaderPromise, loadPromise } = this.getMatch(matchId);\n loaderPromise == null ? void 0 : loaderPromise.resolve();\n loadPromise == null ? void 0 : loadPromise.resolve();\n updateMatch(matchId, (prev) => ({\n ...prev,\n loaderPromise: void 0\n }));\n } catch (err) {\n if (isRedirect(err)) {\n await this.navigate(err.options);\n }\n }\n })();\n } else if (status !== \"success\" || loaderShouldRunAsync && sync) {\n await runLoader();\n } else {\n const head = await executeHead();\n updateMatch(matchId, (prev) => ({\n ...prev,\n ...head\n }));\n }\n }\n if (!loaderIsRunningAsync) {\n const { loaderPromise, loadPromise } = this.getMatch(matchId);\n loaderPromise == null ? void 0 : loaderPromise.resolve();\n loadPromise == null ? void 0 : loadPromise.resolve();\n }\n updateMatch(matchId, (prev) => {\n clearTimeout(prev.pendingTimeout);\n return {\n ...prev,\n isFetching: loaderIsRunningAsync ? prev.isFetching : false,\n loaderPromise: loaderIsRunningAsync ? prev.loaderPromise : void 0,\n invalid: false,\n pendingTimeout: void 0,\n _dehydrated: void 0\n };\n });\n return this.getMatch(matchId);\n })()\n );\n });\n await Promise.all(matchPromises);\n resolveAll();\n } catch (err) {\n rejectAll(err);\n }\n })();\n });\n await triggerOnReady();\n } catch (err) {\n if (isRedirect(err) || isNotFound(err)) {\n if (isNotFound(err) && !allPreload) {\n await triggerOnReady();\n }\n throw err;\n }\n }\n return matches;\n };\n this.invalidate = (opts) => {\n const invalidate = (d) => {\n var _a;\n if (((_a = opts == null ? void 0 : opts.filter) == null ? void 0 : _a.call(opts, d)) ?? true) {\n return {\n ...d,\n invalid: true,\n ...(opts == null ? void 0 : opts.forcePending) || d.status === \"error\" ? { status: \"pending\", error: void 0 } : {}\n };\n }\n return d;\n };\n this.__store.setState((s) => {\n var _a;\n return {\n ...s,\n matches: s.matches.map(invalidate),\n cachedMatches: s.cachedMatches.map(invalidate),\n pendingMatches: (_a = s.pendingMatches) == null ? void 0 : _a.map(invalidate)\n };\n });\n this.shouldViewTransition = false;\n return this.load({ sync: opts == null ? void 0 : opts.sync });\n };\n this.resolveRedirect = (redirect2) => {\n if (!redirect2.options.href) {\n redirect2.options.href = this.buildLocation(redirect2.options).href;\n redirect2.headers.set(\"Location\", redirect2.options.href);\n }\n if (!redirect2.headers.get(\"Location\")) {\n redirect2.headers.set(\"Location\", redirect2.options.href);\n }\n return redirect2;\n };\n this.clearCache = (opts) => {\n const filter = opts == null ? void 0 : opts.filter;\n if (filter !== void 0) {\n this.__store.setState((s) => {\n return {\n ...s,\n cachedMatches: s.cachedMatches.filter(\n (m) => !filter(m)\n )\n };\n });\n } else {\n this.__store.setState((s) => {\n return {\n ...s,\n cachedMatches: []\n };\n });\n }\n };\n this.clearExpiredCache = () => {\n const filter = (d) => {\n const route = this.looseRoutesById[d.routeId];\n if (!route.options.loader) {\n return true;\n }\n const gcTime = (d.preload ? route.options.preloadGcTime ?? this.options.defaultPreloadGcTime : route.options.gcTime ?? this.options.defaultGcTime) ?? 5 * 60 * 1e3;\n const isError = d.status === \"error\";\n if (isError) return true;\n const gcEligible = Date.now() - d.updatedAt >= gcTime;\n return gcEligible;\n };\n this.clearCache({ filter });\n };\n this.loadRouteChunk = (route) => {\n if (route._lazyPromise === void 0) {\n if (route.lazyFn) {\n route._lazyPromise = route.lazyFn().then((lazyRoute) => {\n const { id: _id, ...options2 } = lazyRoute.options;\n Object.assign(route.options, options2);\n });\n } else {\n route._lazyPromise = Promise.resolve();\n }\n }\n if (route._componentsPromise === void 0) {\n route._componentsPromise = route._lazyPromise.then(\n () => Promise.all(\n componentTypes.map(async (type) => {\n const component = route.options[type];\n if (component == null ? void 0 : component.preload) {\n await component.preload();\n }\n })\n )\n );\n }\n return route._componentsPromise;\n };\n this.preloadRoute = async (opts) => {\n const next = this.buildLocation(opts);\n let matches = this.matchRoutes(next, {\n throwOnError: true,\n preload: true,\n dest: opts\n });\n const activeMatchIds = new Set(\n [...this.state.matches, ...this.state.pendingMatches ?? []].map(\n (d) => d.id\n )\n );\n const loadedMatchIds = /* @__PURE__ */ new Set([\n ...activeMatchIds,\n ...this.state.cachedMatches.map((d) => d.id)\n ]);\n batch(() => {\n matches.forEach((match) => {\n if (!loadedMatchIds.has(match.id)) {\n this.__store.setState((s) => ({\n ...s,\n cachedMatches: [...s.cachedMatches, match]\n }));\n }\n });\n });\n try {\n matches = await this.loadMatches({\n matches,\n location: next,\n preload: true,\n updateMatch: (id, updater) => {\n if (activeMatchIds.has(id)) {\n matches = matches.map((d) => d.id === id ? updater(d) : d);\n } else {\n this.updateMatch(id, updater);\n }\n }\n });\n return matches;\n } catch (err) {\n if (isRedirect(err)) {\n if (err.options.reloadDocument) {\n return void 0;\n }\n return await this.preloadRoute({\n ...err.options,\n _fromLocation: next\n });\n }\n if (!isNotFound(err)) {\n console.error(err);\n }\n return void 0;\n }\n };\n this.matchRoute = (location, opts) => {\n const matchLocation = {\n ...location,\n to: location.to ? this.resolvePathWithBase(\n location.from || \"\",\n location.to\n ) : void 0,\n params: location.params || {},\n leaveParams: true\n };\n const next = this.buildLocation(matchLocation);\n if ((opts == null ? void 0 : opts.pending) && this.state.status !== \"pending\") {\n return false;\n }\n const pending = (opts == null ? void 0 : opts.pending) === void 0 ? !this.state.isLoading : opts.pending;\n const baseLocation = pending ? this.latestLocation : this.state.resolvedLocation || this.state.location;\n const match = matchPathname(\n this.basepath,\n baseLocation.pathname,\n {\n ...opts,\n to: next.pathname\n },\n this.parsePathnameCache\n );\n if (!match) {\n return false;\n }\n if (location.params) {\n if (!deepEqual(match, location.params, { partial: true })) {\n return false;\n }\n }\n if (match && ((opts == null ? void 0 : opts.includeSearch) ?? true)) {\n return deepEqual(baseLocation.search, next.search, { partial: true }) ? match : false;\n }\n return match;\n };\n this._handleNotFound = (matches, err, {\n updateMatch = this.updateMatch\n } = {}) => {\n var _a;\n const routeCursor = this.routesById[err.routeId ?? \"\"] ?? this.routeTree;\n const matchesByRouteId = {};\n for (const match of matches) {\n matchesByRouteId[match.routeId] = match;\n }\n if (!routeCursor.options.notFoundComponent && ((_a = this.options) == null ? void 0 : _a.defaultNotFoundComponent)) {\n routeCursor.options.notFoundComponent = this.options.defaultNotFoundComponent;\n }\n invariant(\n routeCursor.options.notFoundComponent,\n \"No notFoundComponent found. Please set a notFoundComponent on your route or provide a defaultNotFoundComponent to the router.\"\n );\n const matchForRoute = matchesByRouteId[routeCursor.id];\n invariant(\n matchForRoute,\n \"Could not find match for route: \" + routeCursor.id\n );\n updateMatch(matchForRoute.id, (prev) => ({\n ...prev,\n status: \"notFound\",\n error: err,\n isFetching: false\n }));\n if (err.routerCode === \"BEFORE_LOAD\" && routeCursor.parentRoute) {\n err.routeId = routeCursor.parentRoute.id;\n this._handleNotFound(matches, err, {\n updateMatch\n });\n }\n };\n this.hasNotFoundMatch = () => {\n return this.__store.state.matches.some(\n (d) => d.status === \"notFound\" || d.globalNotFound\n );\n };\n this.update({\n defaultPreloadDelay: 50,\n defaultPendingMs: 1e3,\n defaultPendingMinMs: 500,\n context: void 0,\n ...options,\n caseSensitive: options.caseSensitive ?? false,\n notFoundMode: options.notFoundMode ?? \"fuzzy\",\n stringifySearch: options.stringifySearch ?? defaultStringifySearch,\n parseSearch: options.parseSearch ?? defaultParseSearch\n });\n if (typeof document !== \"undefined\") {\n self.__TSR_ROUTER__ = this;\n }\n }\n isShell() {\n return !!this.options.isShell;\n }\n isPrerendering() {\n return !!this.options.isPrerendering;\n }\n get state() {\n return this.__store.state;\n }\n get looseRoutesById() {\n return this.routesById;\n }\n matchRoutesInternal(next, opts) {\n var _a;\n const { foundRoute, matchedRoutes, routeParams } = this.getMatchedRoutes(\n next.pathname,\n (_a = opts == null ? void 0 : opts.dest) == null ? void 0 : _a.to\n );\n let isGlobalNotFound = false;\n if (\n // If we found a route, and it's not an index route and we have left over path\n foundRoute ? foundRoute.path !== \"/\" && routeParams[\"**\"] : (\n // Or if we didn't find a route and we have left over path\n trimPathRight(next.pathname)\n )\n ) {\n if (this.options.notFoundRoute) {\n matchedRoutes.push(this.options.notFoundRoute);\n } else {\n isGlobalNotFound = true;\n }\n }\n const globalNotFoundRouteId = (() => {\n if (!isGlobalNotFound) {\n return void 0;\n }\n if (this.options.notFoundMode !== \"root\") {\n for (let i = matchedRoutes.length - 1; i >= 0; i--) {\n const route = matchedRoutes[i];\n if (route.children) {\n return route.id;\n }\n }\n }\n return rootRouteId;\n })();\n const parseErrors = matchedRoutes.map((route) => {\n var _a2;\n let parsedParamsError;\n const parseParams = ((_a2 = route.options.params) == null ? void 0 : _a2.parse) ?? route.options.parseParams;\n if (parseParams) {\n try {\n const parsedParams = parseParams(routeParams);\n Object.assign(routeParams, parsedParams);\n } catch (err) {\n parsedParamsError = new PathParamError(err.message, {\n cause: err\n });\n if (opts == null ? void 0 : opts.throwOnError) {\n throw parsedParamsError;\n }\n return parsedParamsError;\n }\n }\n return;\n });\n const matches = [];\n const getParentContext = (parentMatch) => {\n const parentMatchId = parentMatch == null ? void 0 : parentMatch.id;\n const parentContext = !parentMatchId ? this.options.context ?? {} : parentMatch.context ?? this.options.context ?? {};\n return parentContext;\n };\n matchedRoutes.forEach((route, index) => {\n var _a2, _b;\n const parentMatch = matches[index - 1];\n const [preMatchSearch, strictMatchSearch, searchError] = (() => {\n const parentSearch = (parentMatch == null ? void 0 : parentMatch.search) ?? next.search;\n const parentStrictSearch = (parentMatch == null ? void 0 : parentMatch._strictSearch) ?? {};\n try {\n const strictSearch = validateSearch(route.options.validateSearch, { ...parentSearch }) ?? {};\n return [\n {\n ...parentSearch,\n ...strictSearch\n },\n { ...parentStrictSearch, ...strictSearch },\n void 0\n ];\n } catch (err) {\n let searchParamError = err;\n if (!(err instanceof SearchParamError)) {\n searchParamError = new SearchParamError(err.message, {\n cause: err\n });\n }\n if (opts == null ? void 0 : opts.throwOnError) {\n throw searchParamError;\n }\n return [parentSearch, {}, searchParamError];\n }\n })();\n const loaderDeps = ((_b = (_a2 = route.options).loaderDeps) == null ? void 0 : _b.call(_a2, {\n search: preMatchSearch\n })) ?? \"\";\n const loaderDepsHash = loaderDeps ? JSON.stringify(loaderDeps) : \"\";\n const { usedParams, interpolatedPath } = interpolatePath({\n path: route.fullPath,\n params: routeParams,\n decodeCharMap: this.pathParamsDecodeCharMap\n });\n const matchId = interpolatePath({\n path: route.id,\n params: routeParams,\n leaveWildcards: true,\n decodeCharMap: this.pathParamsDecodeCharMap,\n parseCache: this.parsePathnameCache\n }).interpolatedPath + loaderDepsHash;\n const existingMatch = this.getMatch(matchId);\n const previousMatch = this.state.matches.find(\n (d) => d.routeId === route.id\n );\n const cause = previousMatch ? \"stay\" : \"enter\";\n let match;\n if (existingMatch) {\n match = {\n ...existingMatch,\n cause,\n params: previousMatch ? replaceEqualDeep(previousMatch.params, routeParams) : routeParams,\n _strictParams: usedParams,\n search: previousMatch ? replaceEqualDeep(previousMatch.search, preMatchSearch) : replaceEqualDeep(existingMatch.search, preMatchSearch),\n _strictSearch: strictMatchSearch\n };\n } else {\n const status = route.options.loader || route.options.beforeLoad || route.lazyFn || routeNeedsPreload(route) ? \"pending\" : \"success\";\n match = {\n id: matchId,\n index,\n routeId: route.id,\n params: previousMatch ? replaceEqualDeep(previousMatch.params, routeParams) : routeParams,\n _strictParams: usedParams,\n pathname: joinPaths([this.basepath, interpolatedPath]),\n updatedAt: Date.now(),\n search: previousMatch ? replaceEqualDeep(previousMatch.search, preMatchSearch) : preMatchSearch,\n _strictSearch: strictMatchSearch,\n searchError: void 0,\n status,\n isFetching: false,\n error: void 0,\n paramsError: parseErrors[index],\n __routeContext: {},\n __beforeLoadContext: void 0,\n context: {},\n abortController: new AbortController(),\n fetchCount: 0,\n cause,\n loaderDeps: previousMatch ? replaceEqualDeep(previousMatch.loaderDeps, loaderDeps) : loaderDeps,\n invalid: false,\n preload: false,\n links: void 0,\n scripts: void 0,\n headScripts: void 0,\n meta: void 0,\n staticData: route.options.staticData || {},\n loadPromise: createControlledPromise(),\n fullPath: route.fullPath\n };\n }\n if (!(opts == null ? void 0 : opts.preload)) {\n match.globalNotFound = globalNotFoundRouteId === route.id;\n }\n match.searchError = searchError;\n const parentContext = getParentContext(parentMatch);\n match.context = {\n ...parentContext,\n ...match.__routeContext,\n ...match.__beforeLoadContext\n };\n matches.push(match);\n });\n matches.forEach((match, index) => {\n var _a2, _b;\n const route = this.looseRoutesById[match.routeId];\n const existingMatch = this.getMatch(match.id);\n if (!existingMatch && (opts == null ? void 0 : opts._buildLocation) !== true) {\n const parentMatch = matches[index - 1];\n const parentContext = getParentContext(parentMatch);\n const contextFnContext = {\n deps: match.loaderDeps,\n params: match.params,\n context: parentContext,\n location: next,\n navigate: (opts2) => this.navigate({ ...opts2, _fromLocation: next }),\n buildLocation: this.buildLocation,\n cause: match.cause,\n abortController: match.abortController,\n preload: !!match.preload,\n matches\n };\n match.__routeContext = ((_b = (_a2 = route.options).context) == null ? void 0 : _b.call(_a2, contextFnContext)) ?? {};\n match.context = {\n ...parentContext,\n ...match.__routeContext,\n ...match.__beforeLoadContext\n };\n }\n });\n return matches;\n }\n}\nclass SearchParamError extends Error {\n}\nclass PathParamError extends Error {\n}\nconst normalize = (str) => str.endsWith(\"/\") && str.length > 1 ? str.slice(0, -1) : str;\nfunction comparePaths(a, b) {\n return normalize(a) === normalize(b);\n}\nfunction lazyFn(fn, key) {\n return async (...args) => {\n const imported = await fn();\n return imported[key || \"default\"](...args);\n };\n}\nfunction getInitialRouterState(location) {\n return {\n loadedAt: 0,\n isLoading: false,\n isTransitioning: false,\n status: \"idle\",\n resolvedLocation: void 0,\n location,\n matches: [],\n pendingMatches: [],\n cachedMatches: [],\n statusCode: 200\n };\n}\nfunction validateSearch(validateSearch2, input) {\n if (validateSearch2 == null) return {};\n if (\"~standard\" in validateSearch2) {\n const result = validateSearch2[\"~standard\"].validate(input);\n if (result instanceof Promise)\n throw new SearchParamError(\"Async validation not supported\");\n if (result.issues)\n throw new SearchParamError(JSON.stringify(result.issues, void 0, 2), {\n cause: result\n });\n return result.value;\n }\n if (\"parse\" in validateSearch2) {\n return validateSearch2.parse(input);\n }\n if (typeof validateSearch2 === \"function\") {\n return validateSearch2(input);\n }\n return {};\n}\nconst componentTypes = [\n \"component\",\n \"errorComponent\",\n \"pendingComponent\",\n \"notFoundComponent\"\n];\nfunction routeNeedsPreload(route) {\n var _a;\n for (const componentType of componentTypes) {\n if ((_a = route.options[componentType]) == null ? void 0 : _a.preload) {\n return true;\n }\n }\n return false;\n}\nconst REQUIRED_PARAM_BASE_SCORE = 0.5;\nconst OPTIONAL_PARAM_BASE_SCORE = 0.4;\nconst WILDCARD_PARAM_BASE_SCORE = 0.25;\nfunction handleParam(segment, baseScore) {\n if (segment.prefixSegment && segment.suffixSegment) {\n return baseScore + 0.05;\n }\n if (segment.prefixSegment) {\n return baseScore + 0.02;\n }\n if (segment.suffixSegment) {\n return baseScore + 0.01;\n }\n return baseScore;\n}\nfunction processRouteTree({\n routeTree,\n initRoute\n}) {\n const routesById = {};\n const routesByPath = {};\n const recurseRoutes = (childRoutes) => {\n childRoutes.forEach((childRoute, i) => {\n initRoute == null ? void 0 : initRoute(childRoute, i);\n const existingRoute = routesById[childRoute.id];\n invariant(\n !existingRoute,\n `Duplicate routes found with id: ${String(childRoute.id)}`\n );\n routesById[childRoute.id] = childRoute;\n if (!childRoute.isRoot && childRoute.path) {\n const trimmedFullPath = trimPathRight(childRoute.fullPath);\n if (!routesByPath[trimmedFullPath] || childRoute.fullPath.endsWith(\"/\")) {\n routesByPath[trimmedFullPath] = childRoute;\n }\n }\n const children = childRoute.children;\n if (children == null ? void 0 : children.length) {\n recurseRoutes(children);\n }\n });\n };\n recurseRoutes([routeTree]);\n const scoredRoutes = [];\n const routes = Object.values(routesById);\n routes.forEach((d, i) => {\n var _a;\n if (d.isRoot || !d.path) {\n return;\n }\n const trimmed = trimPathLeft(d.fullPath);\n let parsed = parsePathname(trimmed);\n let skip = 0;\n while (parsed.length > skip + 1 && ((_a = parsed[skip]) == null ? void 0 : _a.value) === \"/\") {\n skip++;\n }\n if (skip > 0) parsed = parsed.slice(skip);\n let optionalParamCount = 0;\n let hasStaticAfter = false;\n const scores = parsed.map((segment, index) => {\n if (segment.value === \"/\") {\n return 0.75;\n }\n let baseScore = void 0;\n if (segment.type === SEGMENT_TYPE_PARAM) {\n baseScore = REQUIRED_PARAM_BASE_SCORE;\n } else if (segment.type === SEGMENT_TYPE_OPTIONAL_PARAM) {\n baseScore = OPTIONAL_PARAM_BASE_SCORE;\n optionalParamCount++;\n } else if (segment.type === SEGMENT_TYPE_WILDCARD) {\n baseScore = WILDCARD_PARAM_BASE_SCORE;\n }\n if (baseScore) {\n for (let i2 = index + 1; i2 < parsed.length; i2++) {\n const nextSegment = parsed[i2];\n if (nextSegment.type === SEGMENT_TYPE_PATHNAME && nextSegment.value !== \"/\") {\n hasStaticAfter = true;\n return handleParam(segment, baseScore + 0.2);\n }\n }\n return handleParam(segment, baseScore);\n }\n return 1;\n });\n scoredRoutes.push({\n child: d,\n trimmed,\n parsed,\n index: i,\n scores,\n optionalParamCount,\n hasStaticAfter\n });\n });\n const flatRoutes = scoredRoutes.sort((a, b) => {\n const minLength = Math.min(a.scores.length, b.scores.length);\n for (let i = 0; i < minLength; i++) {\n if (a.scores[i] !== b.scores[i]) {\n return b.scores[i] - a.scores[i];\n }\n }\n if (a.scores.length !== b.scores.length) {\n if (a.optionalParamCount !== b.optionalParamCount) {\n if (a.hasStaticAfter === b.hasStaticAfter) {\n return a.optionalParamCount - b.optionalParamCount;\n } else if (a.hasStaticAfter && !b.hasStaticAfter) {\n return -1;\n } else if (!a.hasStaticAfter && b.hasStaticAfter) {\n return 1;\n }\n }\n return b.scores.length - a.scores.length;\n }\n for (let i = 0; i < minLength; i++) {\n if (a.parsed[i].value !== b.parsed[i].value) {\n return a.parsed[i].value > b.parsed[i].value ? 1 : -1;\n }\n }\n return a.index - b.index;\n }).map((d, i) => {\n d.child.rank = i;\n return d.child;\n });\n return { routesById, routesByPath, flatRoutes };\n}\nfunction getMatchedRoutes({\n pathname,\n routePathname,\n basepath,\n caseSensitive,\n routesByPath,\n routesById,\n flatRoutes,\n parseCache\n}) {\n let routeParams = {};\n const trimmedPath = trimPathRight(pathname);\n const getMatchedParams = (route) => {\n var _a;\n const result = matchPathname(\n basepath,\n trimmedPath,\n {\n to: route.fullPath,\n caseSensitive: ((_a = route.options) == null ? void 0 : _a.caseSensitive) ?? caseSensitive,\n // we need fuzzy matching for `notFoundMode: 'fuzzy'`\n fuzzy: true\n },\n parseCache\n );\n return result;\n };\n let foundRoute = routePathname !== void 0 ? routesByPath[routePathname] : void 0;\n if (foundRoute) {\n routeParams = getMatchedParams(foundRoute);\n } else {\n let fuzzyMatch = void 0;\n for (const route of flatRoutes) {\n const matchedParams = getMatchedParams(route);\n if (matchedParams) {\n if (route.path !== \"/\" && matchedParams[\"**\"]) {\n if (!fuzzyMatch) {\n fuzzyMatch = { foundRoute: route, routeParams: matchedParams };\n }\n } else {\n foundRoute = route;\n routeParams = matchedParams;\n break;\n }\n }\n }\n if (!foundRoute && fuzzyMatch) {\n foundRoute = fuzzyMatch.foundRoute;\n routeParams = fuzzyMatch.routeParams;\n }\n }\n let routeCursor = foundRoute || routesById[rootRouteId];\n const matchedRoutes = [routeCursor];\n while (routeCursor.parentRoute) {\n routeCursor = routeCursor.parentRoute;\n matchedRoutes.push(routeCursor);\n }\n matchedRoutes.reverse();\n return { matchedRoutes, routeParams, foundRoute };\n}\nfunction applySearchMiddleware({\n search,\n dest,\n destRoutes,\n _includeValidateSearch\n}) {\n const allMiddlewares = destRoutes.reduce(\n (acc, route) => {\n var _a;\n const middlewares = [];\n if (\"search\" in route.options) {\n if ((_a = route.options.search) == null ? void 0 : _a.middlewares) {\n middlewares.push(...route.options.search.middlewares);\n }\n } else if (route.options.preSearchFilters || route.options.postSearchFilters) {\n const legacyMiddleware = ({\n search: search2,\n next\n }) => {\n let nextSearch = search2;\n if (\"preSearchFilters\" in route.options && route.options.preSearchFilters) {\n nextSearch = route.options.preSearchFilters.reduce(\n (prev, next2) => next2(prev),\n search2\n );\n }\n const result = next(nextSearch);\n if (\"postSearchFilters\" in route.options && route.options.postSearchFilters) {\n return route.options.postSearchFilters.reduce(\n (prev, next2) => next2(prev),\n result\n );\n }\n return result;\n };\n middlewares.push(legacyMiddleware);\n }\n if (_includeValidateSearch && route.options.validateSearch) {\n const validate = ({ search: search2, next }) => {\n const result = next(search2);\n try {\n const validatedSearch = {\n ...result,\n ...validateSearch(route.options.validateSearch, result) ?? {}\n };\n return validatedSearch;\n } catch {\n return result;\n }\n };\n middlewares.push(validate);\n }\n return acc.concat(middlewares);\n },\n []\n ) ?? [];\n const final = ({ search: search2 }) => {\n if (!dest.search) {\n return {};\n }\n if (dest.search === true) {\n return search2;\n }\n return functionalUpdate(dest.search, search2);\n };\n allMiddlewares.push(final);\n const applyNext = (index, currentSearch) => {\n if (index >= allMiddlewares.length) {\n return currentSearch;\n }\n const middleware = allMiddlewares[index];\n const next = (newSearch) => {\n return applyNext(index + 1, newSearch);\n };\n return middleware({ search: currentSearch, next });\n };\n return applyNext(0, search);\n}\nexport {\n PathParamError,\n RouterCore,\n SearchParamError,\n componentTypes,\n defaultSerializeError,\n getInitialRouterState,\n getLocationChangeInfo,\n getMatchedRoutes,\n lazyFn,\n processRouteTree\n};\n//# sourceMappingURL=router.js.map\n","import { defaultSerializeError } from \"./router.js\";\nconst TSR_DEFERRED_PROMISE = Symbol.for(\"TSR_DEFERRED_PROMISE\");\nfunction defer(_promise, options) {\n const promise = _promise;\n if (promise[TSR_DEFERRED_PROMISE]) {\n return promise;\n }\n promise[TSR_DEFERRED_PROMISE] = { status: \"pending\" };\n promise.then((data) => {\n promise[TSR_DEFERRED_PROMISE].status = \"success\";\n promise[TSR_DEFERRED_PROMISE].data = data;\n }).catch((error) => {\n promise[TSR_DEFERRED_PROMISE].status = \"error\";\n promise[TSR_DEFERRED_PROMISE].error = {\n data: ((options == null ? void 0 : options.serializeError) ?? defaultSerializeError)(error),\n __isServerError: true\n };\n });\n return promise;\n}\nexport {\n TSR_DEFERRED_PROMISE,\n defer\n};\n//# sourceMappingURL=defer.js.map\n","const preloadWarning = \"Error preloading route! ☝️\";\nexport {\n preloadWarning\n};\n//# sourceMappingURL=link.js.map\n","const isMatch = (match, path) => {\n const parts = path.split(\".\");\n let part;\n let value = match;\n while ((part = parts.shift()) != null && value != null) {\n value = value[part];\n }\n return value != null;\n};\nexport {\n isMatch\n};\n//# sourceMappingURL=Matches.js.map\n","import invariant from \"tiny-invariant\";\nimport { trimPathLeft, joinPaths } from \"./path.js\";\nimport { notFound } from \"./not-found.js\";\nimport { rootRouteId } from \"./root.js\";\nclass BaseRoute {\n constructor(options) {\n this.init = (opts) => {\n var _a, _b;\n this.originalIndex = opts.originalIndex;\n const options2 = this.options;\n const isRoot = !(options2 == null ? void 0 : options2.path) && !(options2 == null ? void 0 : options2.id);\n this.parentRoute = (_b = (_a = this.options).getParentRoute) == null ? void 0 : _b.call(_a);\n if (isRoot) {\n this._path = rootRouteId;\n } else if (!this.parentRoute) {\n invariant(\n false,\n `Child Route instances must pass a 'getParentRoute: () => ParentRoute' option that returns a Route instance.`\n );\n }\n let path = isRoot ? rootRouteId : options2 == null ? void 0 : options2.path;\n if (path && path !== \"/\") {\n path = trimPathLeft(path);\n }\n const customId = (options2 == null ? void 0 : options2.id) || path;\n let id = isRoot ? rootRouteId : joinPaths([\n this.parentRoute.id === rootRouteId ? \"\" : this.parentRoute.id,\n customId\n ]);\n if (path === rootRouteId) {\n path = \"/\";\n }\n if (id !== rootRouteId) {\n id = joinPaths([\"/\", id]);\n }\n const fullPath = id === rootRouteId ? \"/\" : joinPaths([this.parentRoute.fullPath, path]);\n this._path = path;\n this._id = id;\n this._fullPath = fullPath;\n this._to = fullPath;\n };\n this.clone = (other) => {\n this._path = other._path;\n this._id = other._id;\n this._fullPath = other._fullPath;\n this._to = other._to;\n this.options.getParentRoute = other.options.getParentRoute;\n this.children = other.children;\n };\n this.addChildren = (children) => {\n return this._addFileChildren(children);\n };\n this._addFileChildren = (children) => {\n if (Array.isArray(children)) {\n this.children = children;\n }\n if (typeof children === \"object\" && children !== null) {\n this.children = Object.values(children);\n }\n return this;\n };\n this._addFileTypes = () => {\n return this;\n };\n this.updateLoader = (options2) => {\n Object.assign(this.options, options2);\n return this;\n };\n this.update = (options2) => {\n Object.assign(this.options, options2);\n return this;\n };\n this.lazy = (lazyFn) => {\n this.lazyFn = lazyFn;\n return this;\n };\n this.options = options || {};\n this.isRoot = !(options == null ? void 0 : options.getParentRoute);\n if ((options == null ? void 0 : options.id) && (options == null ? void 0 : options.path)) {\n throw new Error(`Route cannot have both an 'id' and a 'path' option.`);\n }\n }\n get to() {\n return this._to;\n }\n get id() {\n return this._id;\n }\n get path() {\n return this._path;\n }\n get fullPath() {\n return this._fullPath;\n }\n}\nclass BaseRouteApi {\n constructor({ id }) {\n this.notFound = (opts) => {\n return notFound({ routeId: this.id, ...opts });\n };\n this.id = id;\n }\n}\nclass BaseRootRoute extends BaseRoute {\n constructor(options) {\n super(options);\n }\n}\nexport {\n BaseRootRoute,\n BaseRoute,\n BaseRouteApi\n};\n//# sourceMappingURL=route.js.map\n","import { deepEqual } from \"./utils.js\";\nfunction retainSearchParams(keys) {\n return ({ search, next }) => {\n const result = next(search);\n if (keys === true) {\n return { ...search, ...result };\n }\n keys.forEach((key) => {\n if (!(key in result)) {\n result[key] = search[key];\n }\n });\n return result;\n };\n}\nfunction stripSearchParams(input) {\n return ({ search, next }) => {\n if (input === true) {\n return {};\n }\n const result = next(search);\n if (Array.isArray(input)) {\n input.forEach((key) => {\n delete result[key];\n });\n } else {\n Object.entries(input).forEach(\n ([key, value]) => {\n if (deepEqual(result[key], value)) {\n delete result[key];\n }\n }\n );\n }\n return result;\n };\n}\nexport {\n retainSearchParams,\n stripSearchParams\n};\n//# sourceMappingURL=searchMiddleware.js.map\n","import { jsx } from \"react/jsx-runtime\";\nimport * as React from \"react\";\nimport { defer, TSR_DEFERRED_PROMISE } from \"@tanstack/router-core\";\nfunction useAwaited({\n promise: _promise\n}) {\n const promise = defer(_promise);\n if (promise[TSR_DEFERRED_PROMISE].status === \"pending\") {\n throw promise;\n }\n if (promise[TSR_DEFERRED_PROMISE].status === \"error\") {\n throw promise[TSR_DEFERRED_PROMISE].error;\n }\n return [promise[TSR_DEFERRED_PROMISE].data, promise];\n}\nfunction Await(props) {\n const inner = /* @__PURE__ */ jsx(AwaitInner, { ...props });\n if (props.fallback) {\n return /* @__PURE__ */ jsx(React.Suspense, { fallback: props.fallback, children: inner });\n }\n return inner;\n}\nfunction AwaitInner(props) {\n const [data] = useAwaited(props);\n return props.children(data);\n}\nexport {\n Await,\n useAwaited\n};\n//# sourceMappingURL=awaited.js.map\n","import { jsx, jsxs } from \"react/jsx-runtime\";\nimport * as React from \"react\";\nfunction CatchBoundary(props) {\n const errorComponent = props.errorComponent ?? ErrorComponent;\n return /* @__PURE__ */ jsx(\n CatchBoundaryImpl,\n {\n getResetKey: props.getResetKey,\n onCatch: props.onCatch,\n children: ({ error, reset }) => {\n if (error) {\n return React.createElement(errorComponent, {\n error,\n reset\n });\n }\n return props.children;\n }\n }\n );\n}\nclass CatchBoundaryImpl extends React.Component {\n constructor() {\n super(...arguments);\n this.state = { error: null };\n }\n static getDerivedStateFromProps(props) {\n return { resetKey: props.getResetKey() };\n }\n static getDerivedStateFromError(error) {\n return { error };\n }\n reset() {\n this.setState({ error: null });\n }\n componentDidUpdate(prevProps, prevState) {\n if (prevState.error && prevState.resetKey !== this.state.resetKey) {\n this.reset();\n }\n }\n componentDidCatch(error, errorInfo) {\n if (this.props.onCatch) {\n this.props.onCatch(error, errorInfo);\n }\n }\n render() {\n return this.props.children({\n error: this.state.resetKey !== this.props.getResetKey() ? null : this.state.error,\n reset: () => {\n this.reset();\n }\n });\n }\n}\nfunction ErrorComponent({ error }) {\n const [show, setShow] = React.useState(process.env.NODE_ENV !== \"production\");\n return /* @__PURE__ */ jsxs(\"div\", { style: { padding: \".5rem\", maxWidth: \"100%\" }, children: [\n /* @__PURE__ */ jsxs(\"div\", { style: { display: \"flex\", alignItems: \"center\", gap: \".5rem\" }, children: [\n /* @__PURE__ */ jsx(\"strong\", { style: { fontSize: \"1rem\" }, children: \"Something went wrong!\" }),\n /* @__PURE__ */ jsx(\n \"button\",\n {\n style: {\n appearance: \"none\",\n fontSize: \".6em\",\n border: \"1px solid currentColor\",\n padding: \".1rem .2rem\",\n fontWeight: \"bold\",\n borderRadius: \".25rem\"\n },\n onClick: () => setShow((d) => !d),\n children: show ? \"Hide Error\" : \"Show Error\"\n }\n )\n ] }),\n /* @__PURE__ */ jsx(\"div\", { style: { height: \".25rem\" } }),\n show ? /* @__PURE__ */ jsx(\"div\", { children: /* @__PURE__ */ jsx(\n \"pre\",\n {\n style: {\n fontSize: \".7em\",\n border: \"1px solid red\",\n borderRadius: \".25rem\",\n padding: \".3rem\",\n color: \"red\",\n overflow: \"auto\"\n },\n children: error.message ? /* @__PURE__ */ jsx(\"code\", { children: error.message }) : null\n }\n ) }) : null\n ] });\n}\nexport {\n CatchBoundary,\n ErrorComponent\n};\n//# sourceMappingURL=CatchBoundary.js.map\n","import { jsx } from \"react/jsx-runtime\";\nimport React__default from \"react\";\nfunction ClientOnly({ children, fallback = null }) {\n return useHydrated() ? /* @__PURE__ */ jsx(React__default.Fragment, { children }) : /* @__PURE__ */ jsx(React__default.Fragment, { children: fallback });\n}\nfunction useHydrated() {\n return React__default.useSyncExternalStore(\n subscribe,\n () => true,\n () => false\n );\n}\nfunction subscribe() {\n return () => {\n };\n}\nexport {\n ClientOnly\n};\n//# sourceMappingURL=ClientOnly.js.map\n","/**\n * @license React\n * use-sync-external-store-shim/with-selector.production.js\n *\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\"use strict\";\nvar React = require(\"react\"),\n shim = require(\"use-sync-external-store/shim\");\nfunction is(x, y) {\n return (x === y && (0 !== x || 1 / x === 1 / y)) || (x !== x && y !== y);\n}\nvar objectIs = \"function\" === typeof Object.is ? Object.is : is,\n useSyncExternalStore = shim.useSyncExternalStore,\n useRef = React.useRef,\n useEffect = React.useEffect,\n useMemo = React.useMemo,\n useDebugValue = React.useDebugValue;\nexports.useSyncExternalStoreWithSelector = function (\n subscribe,\n getSnapshot,\n getServerSnapshot,\n selector,\n isEqual\n) {\n var instRef = useRef(null);\n if (null === instRef.current) {\n var inst = { hasValue: !1, value: null };\n instRef.current = inst;\n } else inst = instRef.current;\n instRef = useMemo(\n function () {\n function memoizedSelector(nextSnapshot) {\n if (!hasMemo) {\n hasMemo = !0;\n memoizedSnapshot = nextSnapshot;\n nextSnapshot = selector(nextSnapshot);\n if (void 0 !== isEqual && inst.hasValue) {\n var currentSelection = inst.value;\n if (isEqual(currentSelection, nextSnapshot))\n return (memoizedSelection = currentSelection);\n }\n return (memoizedSelection = nextSnapshot);\n }\n currentSelection = memoizedSelection;\n if (objectIs(memoizedSnapshot, nextSnapshot)) return currentSelection;\n var nextSelection = selector(nextSnapshot);\n if (void 0 !== isEqual && isEqual(currentSelection, nextSelection))\n return (memoizedSnapshot = nextSnapshot), currentSelection;\n memoizedSnapshot = nextSnapshot;\n return (memoizedSelection = nextSelection);\n }\n var hasMemo = !1,\n memoizedSnapshot,\n memoizedSelection,\n maybeGetServerSnapshot =\n void 0 === getServerSnapshot ? null : getServerSnapshot;\n return [\n function () {\n return memoizedSelector(getSnapshot());\n },\n null === maybeGetServerSnapshot\n ? void 0\n : function () {\n return memoizedSelector(maybeGetServerSnapshot());\n }\n ];\n },\n [getSnapshot, getServerSnapshot, selector, isEqual]\n );\n var value = useSyncExternalStore(subscribe, instRef[0], instRef[1]);\n useEffect(\n function () {\n inst.hasValue = !0;\n inst.value = value;\n },\n [value]\n );\n useDebugValue(value);\n return value;\n};\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('../cjs/use-sync-external-store-shim/with-selector.production.js');\n} else {\n module.exports = require('../cjs/use-sync-external-store-shim/with-selector.development.js');\n}\n","import { useSyncExternalStoreWithSelector } from \"use-sync-external-store/shim/with-selector.js\";\nexport * from \"@tanstack/store\";\nfunction useStore(store, selector = (d) => d) {\n const slice = useSyncExternalStoreWithSelector(\n store.subscribe,\n () => store.state,\n () => store.state,\n selector,\n shallow\n );\n return slice;\n}\nfunction shallow(objA, objB) {\n if (Object.is(objA, objB)) {\n return true;\n }\n if (typeof objA !== \"object\" || objA === null || typeof objB !== \"object\" || objB === null) {\n return false;\n }\n if (objA instanceof Map && objB instanceof Map) {\n if (objA.size !== objB.size) return false;\n for (const [k, v] of objA) {\n if (!objB.has(k) || !Object.is(v, objB.get(k))) return false;\n }\n return true;\n }\n if (objA instanceof Set && objB instanceof Set) {\n if (objA.size !== objB.size) return false;\n for (const v of objA) {\n if (!objB.has(v)) return false;\n }\n return true;\n }\n if (objA instanceof Date && objB instanceof Date) {\n if (objA.getTime() !== objB.getTime()) return false;\n return true;\n }\n const keysA = Object.keys(objA);\n if (keysA.length !== Object.keys(objB).length) {\n return false;\n }\n for (let i = 0; i < keysA.length; i++) {\n if (!Object.prototype.hasOwnProperty.call(objB, keysA[i]) || !Object.is(objA[keysA[i]], objB[keysA[i]])) {\n return false;\n }\n }\n return true;\n}\nexport {\n shallow,\n useStore\n};\n//# sourceMappingURL=index.js.map\n","import * as React from \"react\";\nconst routerContext = React.createContext(null);\nfunction getRouterContext() {\n if (typeof document === \"undefined\") {\n return routerContext;\n }\n if (window.__TSR_ROUTER_CONTEXT__) {\n return window.__TSR_ROUTER_CONTEXT__;\n }\n window.__TSR_ROUTER_CONTEXT__ = routerContext;\n return routerContext;\n}\nexport {\n getRouterContext\n};\n//# sourceMappingURL=routerContext.js.map\n","import * as React from \"react\";\nimport warning from \"tiny-warning\";\nimport { getRouterContext } from \"./routerContext.js\";\nfunction useRouter(opts) {\n const value = React.useContext(getRouterContext());\n warning(\n !(((opts == null ? void 0 : opts.warn) ?? true) && !value),\n \"useRouter must be used inside a <RouterProvider> component!\"\n );\n return value;\n}\nexport {\n useRouter\n};\n//# sourceMappingURL=useRouter.js.map\n","import { useStore } from \"@tanstack/react-store\";\nimport { useRef } from \"react\";\nimport { replaceEqualDeep } from \"@tanstack/router-core\";\nimport { useRouter } from \"./useRouter.js\";\nfunction useRouterState(opts) {\n const contextRouter = useRouter({\n warn: (opts == null ? void 0 : opts.router) === void 0\n });\n const router = (opts == null ? void 0 : opts.router) || contextRouter;\n const previousResult = useRef(void 0);\n return useStore(router.__store, (state) => {\n if (opts == null ? void 0 : opts.select) {\n if (opts.structuralSharing ?? router.options.defaultStructuralSharing) {\n const newSlice = replaceEqualDeep(\n previousResult.current,\n opts.select(state)\n );\n previousResult.current = newSlice;\n return newSlice;\n }\n return opts.select(state);\n }\n return state;\n });\n}\nexport {\n useRouterState\n};\n//# sourceMappingURL=useRouterState.js.map\n","import * as React from \"react\";\nconst matchContext = React.createContext(void 0);\nconst dummyMatchContext = React.createContext(\n void 0\n);\nexport {\n dummyMatchContext,\n matchContext\n};\n//# sourceMappingURL=matchContext.js.map\n","import * as React from \"react\";\nimport invariant from \"tiny-invariant\";\nimport { useRouterState } from \"./useRouterState.js\";\nimport { dummyMatchContext, matchContext } from \"./matchContext.js\";\nfunction useMatch(opts) {\n const nearestMatchId = React.useContext(\n opts.from ? dummyMatchContext : matchContext\n );\n const matchSelection = useRouterState({\n select: (state) => {\n const match = state.matches.find(\n (d) => opts.from ? opts.from === d.routeId : d.id === nearestMatchId\n );\n invariant(\n !((opts.shouldThrow ?? true) && !match),\n `Could not find ${opts.from ? `an active match from \"${opts.from}\"` : \"a nearest match!\"}`\n );\n if (match === void 0) {\n return void 0;\n }\n return opts.select ? opts.select(match) : match;\n },\n structuralSharing: opts.structuralSharing\n });\n return matchSelection;\n}\nexport {\n useMatch\n};\n//# sourceMappingURL=useMatch.js.map\n","import { useMatch } from \"./useMatch.js\";\nfunction useLoaderData(opts) {\n return useMatch({\n from: opts.from,\n strict: opts.strict,\n structuralSharing: opts.structuralSharing,\n select: (s) => {\n return opts.select ? opts.select(s.loaderData) : s.loaderData;\n }\n });\n}\nexport {\n useLoaderData\n};\n//# sourceMappingURL=useLoaderData.js.map\n","import { useMatch } from \"./useMatch.js\";\nfunction useLoaderDeps(opts) {\n const { select, ...rest } = opts;\n return useMatch({\n ...rest,\n select: (s) => {\n return select ? select(s.loaderDeps) : s.loaderDeps;\n }\n });\n}\nexport {\n useLoaderDeps\n};\n//# sourceMappingURL=useLoaderDeps.js.map\n","import { useMatch } from \"./useMatch.js\";\nfunction useParams(opts) {\n return useMatch({\n from: opts.from,\n strict: opts.strict,\n shouldThrow: opts.shouldThrow,\n structuralSharing: opts.structuralSharing,\n select: (match) => {\n return opts.select ? opts.select(match.params) : match.params;\n }\n });\n}\nexport {\n useParams\n};\n//# sourceMappingURL=useParams.js.map\n","import { useMatch } from \"./useMatch.js\";\nfunction useSearch(opts) {\n return useMatch({\n from: opts.from,\n strict: opts.strict,\n shouldThrow: opts.shouldThrow,\n structuralSharing: opts.structuralSharing,\n select: (match) => {\n return opts.select ? opts.select(match.search) : match.search;\n }\n });\n}\nexport {\n useSearch\n};\n//# sourceMappingURL=useSearch.js.map\n","import * as React from \"react\";\nimport { useRouter } from \"./useRouter.js\";\nimport { useMatch } from \"./useMatch.js\";\nfunction useNavigate(_defaultOpts) {\n const { navigate, state } = useRouter();\n const matchIndex = useMatch({\n strict: false,\n select: (match) => match.index\n });\n return React.useCallback(\n (options) => {\n const from = options.from ?? (_defaultOpts == null ? void 0 : _defaultOpts.from) ?? state.matches[matchIndex].fullPath;\n return navigate({\n ...options,\n from\n });\n },\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [_defaultOpts == null ? void 0 : _defaultOpts.from, navigate]\n );\n}\nfunction Navigate(props) {\n const router = useRouter();\n const navigate = useNavigate();\n const previousPropsRef = React.useRef(null);\n React.useEffect(() => {\n if (previousPropsRef.current !== props) {\n navigate(props);\n previousPropsRef.current = props;\n }\n }, [router, props, navigate]);\n return null;\n}\nexport {\n Navigate,\n useNavigate\n};\n//# sourceMappingURL=useNavigate.js.map\n","import * as React from \"react\";\nfunction useStableCallback(fn) {\n const fnRef = React.useRef(fn);\n fnRef.current = fn;\n const ref = React.useRef((...args) => fnRef.current(...args));\n return ref.current;\n}\nconst useLayoutEffect = typeof window !== \"undefined\" ? React.useLayoutEffect : React.useEffect;\nfunction usePrevious(value) {\n const ref = React.useRef({\n value,\n prev: null\n });\n const current = ref.current.value;\n if (value !== current) {\n ref.current = {\n value,\n prev: current\n };\n }\n return ref.current.prev;\n}\nfunction useIntersectionObserver(ref, callback, intersectionObserverOptions = {}, options = {}) {\n React.useEffect(() => {\n if (!ref.current || options.disabled || typeof IntersectionObserver !== \"function\") {\n return;\n }\n const observer = new IntersectionObserver(([entry]) => {\n callback(entry);\n }, intersectionObserverOptions);\n observer.observe(ref.current);\n return () => {\n observer.disconnect();\n };\n }, [callback, intersectionObserverOptions, options.disabled, ref]);\n}\nfunction useForwardedRef(ref) {\n const innerRef = React.useRef(null);\n React.useImperativeHandle(ref, () => innerRef.current, []);\n return innerRef;\n}\nexport {\n useForwardedRef,\n useIntersectionObserver,\n useLayoutEffect,\n usePrevious,\n useStableCallback\n};\n//# sourceMappingURL=utils.js.map\n","import { jsx } from \"react/jsx-runtime\";\nimport * as React from \"react\";\nimport { flushSync } from \"react-dom\";\nimport { preloadWarning, functionalUpdate, exactPathTest, removeTrailingSlash, deepEqual } from \"@tanstack/router-core\";\nimport { useRouterState } from \"./useRouterState.js\";\nimport { useRouter } from \"./useRouter.js\";\nimport { useForwardedRef, useIntersectionObserver } from \"./utils.js\";\nimport { useMatch } from \"./useMatch.js\";\nfunction useLinkProps(options, forwardedRef) {\n const router = useRouter();\n const [isTransitioning, setIsTransitioning] = React.useState(false);\n const hasRenderFetched = React.useRef(false);\n const innerRef = useForwardedRef(forwardedRef);\n const {\n // custom props\n activeProps,\n inactiveProps,\n activeOptions,\n to,\n preload: userPreload,\n preloadDelay: userPreloadDelay,\n hashScrollIntoView,\n replace,\n startTransition,\n resetScroll,\n viewTransition,\n // element props\n children,\n target,\n disabled,\n style,\n className,\n onClick,\n onFocus,\n onMouseEnter,\n onMouseLeave,\n onTouchStart,\n ignoreBlocker,\n // prevent these from being returned\n params: _params,\n search: _search,\n hash: _hash,\n state: _state,\n mask: _mask,\n reloadDocument: _reloadDocument,\n unsafeRelative: _unsafeRelative,\n from: _from,\n _fromLocation,\n ...propsSafeToSpread\n } = options;\n const type = React.useMemo(() => {\n try {\n new URL(to);\n return \"external\";\n } catch {\n }\n return \"internal\";\n }, [to]);\n const currentSearch = useRouterState({\n select: (s) => s.location.search,\n structuralSharing: true\n });\n const from = useMatch({\n strict: false,\n select: (match) => options.from ?? match.fullPath\n });\n const next = React.useMemo(\n () => router.buildLocation({ ...options, from }),\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [\n router,\n currentSearch,\n options._fromLocation,\n from,\n options.hash,\n options.to,\n options.search,\n options.params,\n options.state,\n options.mask,\n options.unsafeRelative\n ]\n );\n const isExternal = type === \"external\";\n const preload = options.reloadDocument || isExternal ? false : userPreload ?? router.options.defaultPreload;\n const preloadDelay = userPreloadDelay ?? router.options.defaultPreloadDelay ?? 0;\n const isActive = useRouterState({\n select: (s) => {\n if (isExternal) return false;\n if (activeOptions == null ? void 0 : activeOptions.exact) {\n const testExact = exactPathTest(\n s.location.pathname,\n next.pathname,\n router.basepath\n );\n if (!testExact) {\n return false;\n }\n } else {\n const currentPathSplit = removeTrailingSlash(\n s.location.pathname,\n router.basepath\n );\n const nextPathSplit = removeTrailingSlash(\n next.pathname,\n router.basepath\n );\n const pathIsFuzzyEqual = currentPathSplit.startsWith(nextPathSplit) && (currentPathSplit.length === nextPathSplit.length || currentPathSplit[nextPathSplit.length] === \"/\");\n if (!pathIsFuzzyEqual) {\n return false;\n }\n }\n if ((activeOptions == null ? void 0 : activeOptions.includeSearch) ?? true) {\n const searchTest = deepEqual(s.location.search, next.search, {\n partial: !(activeOptions == null ? void 0 : activeOptions.exact),\n ignoreUndefined: !(activeOptions == null ? void 0 : activeOptions.explicitUndefined)\n });\n if (!searchTest) {\n return false;\n }\n }\n if (activeOptions == null ? void 0 : activeOptions.includeHash) {\n return s.location.hash === next.hash;\n }\n return true;\n }\n });\n const doPreload = React.useCallback(\n () => {\n router.preloadRoute({ ...options, from }).catch((err) => {\n console.warn(err);\n console.warn(preloadWarning);\n });\n },\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [\n router,\n options.to,\n options._fromLocation,\n from,\n options.search,\n options.hash,\n options.params,\n options.state,\n options.mask,\n options.unsafeRelative,\n options.hashScrollIntoView,\n options.href,\n options.ignoreBlocker,\n options.reloadDocument,\n options.replace,\n options.resetScroll,\n options.viewTransition\n ]\n );\n const preloadViewportIoCallback = React.useCallback(\n (entry) => {\n if (entry == null ? void 0 : entry.isIntersecting) {\n doPreload();\n }\n },\n [doPreload]\n );\n useIntersectionObserver(\n innerRef,\n preloadViewportIoCallback,\n intersectionObserverOptions,\n { disabled: !!disabled || !(preload === \"viewport\") }\n );\n React.useEffect(() => {\n if (hasRenderFetched.current) {\n return;\n }\n if (!disabled && preload === \"render\") {\n doPreload();\n hasRenderFetched.current = true;\n }\n }, [disabled, doPreload, preload]);\n if (isExternal) {\n return {\n ...propsSafeToSpread,\n ref: innerRef,\n type,\n href: to,\n ...children && { children },\n ...target && { target },\n ...disabled && { disabled },\n ...style && { style },\n ...className && { className },\n ...onClick && { onClick },\n ...onFocus && { onFocus },\n ...onMouseEnter && { onMouseEnter },\n ...onMouseLeave && { onMouseLeave },\n ...onTouchStart && { onTouchStart }\n };\n }\n const handleClick = (e) => {\n if (!disabled && !isCtrlEvent(e) && !e.defaultPrevented && (!target || target === \"_self\") && e.button === 0) {\n e.preventDefault();\n flushSync(() => {\n setIsTransitioning(true);\n });\n const unsub = router.subscribe(\"onResolved\", () => {\n unsub();\n setIsTransitioning(false);\n });\n router.navigate({\n ...options,\n from,\n replace,\n resetScroll,\n hashScrollIntoView,\n startTransition,\n viewTransition,\n ignoreBlocker\n });\n }\n };\n const handleFocus = (_) => {\n if (disabled) return;\n if (preload) {\n doPreload();\n }\n };\n const handleTouchStart = handleFocus;\n const handleEnter = (e) => {\n if (disabled || !preload) return;\n if (!preloadDelay) {\n doPreload();\n } else {\n const eventTarget = e.target;\n if (timeoutMap.has(eventTarget)) {\n return;\n }\n const id = setTimeout(() => {\n timeoutMap.delete(eventTarget);\n doPreload();\n }, preloadDelay);\n timeoutMap.set(eventTarget, id);\n }\n };\n const handleLeave = (e) => {\n if (disabled || !preload || !preloadDelay) return;\n const eventTarget = e.target;\n const id = timeoutMap.get(eventTarget);\n if (id) {\n clearTimeout(id);\n timeoutMap.delete(eventTarget);\n }\n };\n const resolvedActiveProps = isActive ? functionalUpdate(activeProps, {}) ?? STATIC_ACTIVE_OBJECT : STATIC_EMPTY_OBJECT;\n const resolvedInactiveProps = isActive ? STATIC_EMPTY_OBJECT : functionalUpdate(inactiveProps, {}) ?? STATIC_EMPTY_OBJECT;\n const resolvedClassName = [\n className,\n resolvedActiveProps.className,\n resolvedInactiveProps.className\n ].filter(Boolean).join(\" \");\n const resolvedStyle = (style || resolvedActiveProps.style || resolvedInactiveProps.style) && {\n ...style,\n ...resolvedActiveProps.style,\n ...resolvedInactiveProps.style\n };\n return {\n ...propsSafeToSpread,\n ...resolvedActiveProps,\n ...resolvedInactiveProps,\n href: disabled ? void 0 : next.maskedLocation ? router.history.createHref(next.maskedLocation.href) : router.history.createHref(next.href),\n ref: innerRef,\n onClick: composeHandlers([onClick, handleClick]),\n onFocus: composeHandlers([onFocus, handleFocus]),\n onMouseEnter: composeHandlers([onMouseEnter, handleEnter]),\n onMouseLeave: composeHandlers([onMouseLeave, handleLeave]),\n onTouchStart: composeHandlers([onTouchStart, handleTouchStart]),\n disabled: !!disabled,\n target,\n ...resolvedStyle && { style: resolvedStyle },\n ...resolvedClassName && { className: resolvedClassName },\n ...disabled && STATIC_DISABLED_PROPS,\n ...isActive && STATIC_ACTIVE_PROPS,\n ...isTransitioning && STATIC_TRANSITIONING_PROPS\n };\n}\nconst STATIC_EMPTY_OBJECT = {};\nconst STATIC_ACTIVE_OBJECT = { className: \"active\" };\nconst STATIC_DISABLED_PROPS = { role: \"link\", \"aria-disabled\": true };\nconst STATIC_ACTIVE_PROPS = { \"data-status\": \"active\", \"aria-current\": \"page\" };\nconst STATIC_TRANSITIONING_PROPS = { \"data-transitioning\": \"transitioning\" };\nconst timeoutMap = /* @__PURE__ */ new WeakMap();\nconst intersectionObserverOptions = {\n rootMargin: \"100px\"\n};\nconst composeHandlers = (handlers) => (e) => {\n handlers.filter(Boolean).forEach((handler) => {\n if (e.defaultPrevented) return;\n handler(e);\n });\n};\nfunction createLink(Comp) {\n return React.forwardRef(function CreatedLink(props, ref) {\n return /* @__PURE__ */ jsx(Link, { ...props, _asChild: Comp, ref });\n });\n}\nconst Link = React.forwardRef(\n (props, ref) => {\n const { _asChild, ...rest } = props;\n const {\n type: _type,\n ref: innerRef,\n ...linkProps\n } = useLinkProps(rest, ref);\n const children = typeof rest.children === \"function\" ? rest.children({\n isActive: linkProps[\"data-status\"] === \"active\"\n }) : rest.children;\n if (_asChild === void 0) {\n delete linkProps.disabled;\n }\n return React.createElement(\n _asChild ? _asChild : \"a\",\n {\n ...linkProps,\n ref: innerRef\n },\n children\n );\n }\n);\nfunction isCtrlEvent(e) {\n return !!(e.metaKey || e.altKey || e.ctrlKey || e.shiftKey);\n}\nconst linkOptions = (options) => {\n return options;\n};\nexport {\n Link,\n createLink,\n linkOptions,\n useLinkProps\n};\n//# sourceMappingURL=link.js.map\n","import { jsx } from \"react/jsx-runtime\";\nimport { BaseRouteApi, notFound, BaseRoute, BaseRootRoute } from \"@tanstack/router-core\";\nimport React__default from \"react\";\nimport { useLoaderData } from \"./useLoaderData.js\";\nimport { useLoaderDeps } from \"./useLoaderDeps.js\";\nimport { useParams } from \"./useParams.js\";\nimport { useSearch } from \"./useSearch.js\";\nimport { useNavigate } from \"./useNavigate.js\";\nimport { useMatch } from \"./useMatch.js\";\nimport { useRouter } from \"./useRouter.js\";\nimport { Link } from \"./link.js\";\nfunction getRouteApi(id) {\n return new RouteApi({ id });\n}\nclass RouteApi extends BaseRouteApi {\n /**\n * @deprecated Use the `getRouteApi` function instead.\n */\n constructor({ id }) {\n super({ id });\n this.useMatch = (opts) => {\n return useMatch({\n select: opts == null ? void 0 : opts.select,\n from: this.id,\n structuralSharing: opts == null ? void 0 : opts.structuralSharing\n });\n };\n this.useRouteContext = (opts) => {\n return useMatch({\n from: this.id,\n select: (d) => (opts == null ? void 0 : opts.select) ? opts.select(d.context) : d.context\n });\n };\n this.useSearch = (opts) => {\n return useSearch({\n select: opts == null ? void 0 : opts.select,\n structuralSharing: opts == null ? void 0 : opts.structuralSharing,\n from: this.id\n });\n };\n this.useParams = (opts) => {\n return useParams({\n select: opts == null ? void 0 : opts.select,\n structuralSharing: opts == null ? void 0 : opts.structuralSharing,\n from: this.id\n });\n };\n this.useLoaderDeps = (opts) => {\n return useLoaderDeps({ ...opts, from: this.id, strict: false });\n };\n this.useLoaderData = (opts) => {\n return useLoaderData({ ...opts, from: this.id, strict: false });\n };\n this.useNavigate = () => {\n const router = useRouter();\n return useNavigate({ from: router.routesById[this.id].fullPath });\n };\n this.notFound = (opts) => {\n return notFound({ routeId: this.id, ...opts });\n };\n this.Link = React__default.forwardRef((props, ref) => {\n const router = useRouter();\n const fullPath = router.routesById[this.id].fullPath;\n return /* @__PURE__ */ jsx(Link, { ref, from: fullPath, ...props });\n });\n }\n}\nclass Route extends BaseRoute {\n /**\n * @deprecated Use the `createRoute` function instead.\n */\n constructor(options) {\n super(options);\n this.useMatch = (opts) => {\n return useMatch({\n select: opts == null ? void 0 : opts.select,\n from: this.id,\n structuralSharing: opts == null ? void 0 : opts.structuralSharing\n });\n };\n this.useRouteContext = (opts) => {\n return useMatch({\n ...opts,\n from: this.id,\n select: (d) => (opts == null ? void 0 : opts.select) ? opts.select(d.context) : d.context\n });\n };\n this.useSearch = (opts) => {\n return useSearch({\n select: opts == null ? void 0 : opts.select,\n structuralSharing: opts == null ? void 0 : opts.structuralSharing,\n from: this.id\n });\n };\n this.useParams = (opts) => {\n return useParams({\n select: opts == null ? void 0 : opts.select,\n structuralSharing: opts == null ? void 0 : opts.structuralSharing,\n from: this.id\n });\n };\n this.useLoaderDeps = (opts) => {\n return useLoaderDeps({ ...opts, from: this.id });\n };\n this.useLoaderData = (opts) => {\n return useLoaderData({ ...opts, from: this.id });\n };\n this.useNavigate = () => {\n return useNavigate({ from: this.fullPath });\n };\n this.Link = React__default.forwardRef(\n (props, ref) => {\n return /* @__PURE__ */ jsx(Link, { ref, from: this.fullPath, ...props });\n }\n );\n this.$$typeof = Symbol.for(\"react.memo\");\n }\n}\nfunction createRoute(options) {\n return new Route(options);\n}\nfunction createRootRouteWithContext() {\n return (options) => {\n return createRootRoute(options);\n };\n}\nconst rootRouteWithContext = createRootRouteWithContext;\nclass RootRoute extends BaseRootRoute {\n /**\n * @deprecated `RootRoute` is now an internal implementation detail. Use `createRootRoute()` instead.\n */\n constructor(options) {\n super(options);\n this.useMatch = (opts) => {\n return useMatch({\n select: opts == null ? void 0 : opts.select,\n from: this.id,\n structuralSharing: opts == null ? void 0 : opts.structuralSharing\n });\n };\n this.useRouteContext = (opts) => {\n return useMatch({\n ...opts,\n from: this.id,\n select: (d) => (opts == null ? void 0 : opts.select) ? opts.select(d.context) : d.context\n });\n };\n this.useSearch = (opts) => {\n return useSearch({\n select: opts == null ? void 0 : opts.select,\n structuralSharing: opts == null ? void 0 : opts.structuralSharing,\n from: this.id\n });\n };\n this.useParams = (opts) => {\n return useParams({\n select: opts == null ? void 0 : opts.select,\n structuralSharing: opts == null ? void 0 : opts.structuralSharing,\n from: this.id\n });\n };\n this.useLoaderDeps = (opts) => {\n return useLoaderDeps({ ...opts, from: this.id });\n };\n this.useLoaderData = (opts) => {\n return useLoaderData({ ...opts, from: this.id });\n };\n this.useNavigate = () => {\n return useNavigate({ from: this.fullPath });\n };\n this.Link = React__default.forwardRef(\n (props, ref) => {\n return /* @__PURE__ */ jsx(Link, { ref, from: this.fullPath, ...props });\n }\n );\n this.$$typeof = Symbol.for(\"react.memo\");\n }\n}\nfunction createRootRoute(options) {\n return new RootRoute(options);\n}\nfunction createRouteMask(opts) {\n return opts;\n}\nclass NotFoundRoute extends Route {\n constructor(options) {\n super({\n ...options,\n id: \"404\"\n });\n }\n}\nexport {\n NotFoundRoute,\n RootRoute,\n Route,\n RouteApi,\n createRootRoute,\n createRootRouteWithContext,\n createRoute,\n createRouteMask,\n getRouteApi,\n rootRouteWithContext\n};\n//# sourceMappingURL=route.js.map\n","import warning from \"tiny-warning\";\nimport { createRoute } from \"./route.js\";\nimport { useMatch } from \"./useMatch.js\";\nimport { useLoaderDeps } from \"./useLoaderDeps.js\";\nimport { useLoaderData } from \"./useLoaderData.js\";\nimport { useSearch } from \"./useSearch.js\";\nimport { useParams } from \"./useParams.js\";\nimport { useNavigate } from \"./useNavigate.js\";\nimport { useRouter } from \"./useRouter.js\";\nfunction createFileRoute(path) {\n if (typeof path === \"object\") {\n return new FileRoute(path, {\n silent: true\n }).createRoute(path);\n }\n return new FileRoute(path, {\n silent: true\n }).createRoute;\n}\nclass FileRoute {\n constructor(path, _opts) {\n this.path = path;\n this.createRoute = (options) => {\n warning(\n this.silent,\n \"FileRoute is deprecated and will be removed in the next major version. Use the createFileRoute(path)(options) function instead.\"\n );\n const route = createRoute(options);\n route.isRoot = false;\n return route;\n };\n this.silent = _opts == null ? void 0 : _opts.silent;\n }\n}\nfunction FileRouteLoader(_path) {\n warning(\n false,\n `FileRouteLoader is deprecated and will be removed in the next major version. Please place the loader function in the the main route file, inside the \\`createFileRoute('/path/to/file')(options)\\` options`\n );\n return (loaderFn) => loaderFn;\n}\nclass LazyRoute {\n constructor(opts) {\n this.useMatch = (opts2) => {\n return useMatch({\n select: opts2 == null ? void 0 : opts2.select,\n from: this.options.id,\n structuralSharing: opts2 == null ? void 0 : opts2.structuralSharing\n });\n };\n this.useRouteContext = (opts2) => {\n return useMatch({\n from: this.options.id,\n select: (d) => (opts2 == null ? void 0 : opts2.select) ? opts2.select(d.context) : d.context\n });\n };\n this.useSearch = (opts2) => {\n return useSearch({\n select: opts2 == null ? void 0 : opts2.select,\n structuralSharing: opts2 == null ? void 0 : opts2.structuralSharing,\n from: this.options.id\n });\n };\n this.useParams = (opts2) => {\n return useParams({\n select: opts2 == null ? void 0 : opts2.select,\n structuralSharing: opts2 == null ? void 0 : opts2.structuralSharing,\n from: this.options.id\n });\n };\n this.useLoaderDeps = (opts2) => {\n return useLoaderDeps({ ...opts2, from: this.options.id });\n };\n this.useLoaderData = (opts2) => {\n return useLoaderData({ ...opts2, from: this.options.id });\n };\n this.useNavigate = () => {\n const router = useRouter();\n return useNavigate({ from: router.routesById[this.options.id].fullPath });\n };\n this.options = opts;\n this.$$typeof = Symbol.for(\"react.memo\");\n }\n}\nfunction createLazyRoute(id) {\n return (opts) => {\n return new LazyRoute({\n id,\n ...opts\n });\n };\n}\nfunction createLazyFileRoute(id) {\n if (typeof id === \"object\") {\n return new LazyRoute(id);\n }\n return (opts) => new LazyRoute({ id, ...opts });\n}\nexport {\n FileRoute,\n FileRouteLoader,\n LazyRoute,\n createFileRoute,\n createLazyFileRoute,\n createLazyRoute\n};\n//# sourceMappingURL=fileRoute.js.map\n","import * as React from \"react\";\nimport { isModuleNotFoundError } from \"@tanstack/router-core\";\nfunction lazyRouteComponent(importer, exportName) {\n let loadPromise;\n let comp;\n let error;\n let reload;\n const load = () => {\n if (!loadPromise) {\n loadPromise = importer().then((res) => {\n loadPromise = void 0;\n comp = res[exportName ?? \"default\"];\n }).catch((err) => {\n error = err;\n if (isModuleNotFoundError(error)) {\n if (error instanceof Error && typeof window !== \"undefined\" && typeof sessionStorage !== \"undefined\") {\n const storageKey = `tanstack_router_reload:${error.message}`;\n if (!sessionStorage.getItem(storageKey)) {\n sessionStorage.setItem(storageKey, \"1\");\n reload = true;\n }\n }\n }\n });\n }\n return loadPromise;\n };\n const lazyComp = function Lazy(props) {\n if (reload) {\n window.location.reload();\n throw new Promise(() => {\n });\n }\n if (error) {\n throw error;\n }\n if (!comp) {\n throw load();\n }\n return React.createElement(comp, props);\n };\n lazyComp.preload = load;\n return lazyComp;\n}\nexport {\n lazyRouteComponent\n};\n//# sourceMappingURL=lazyRouteComponent.js.map\n","import * as React from \"react\";\nimport { trimPathRight, getLocationChangeInfo, handleHashScroll } from \"@tanstack/router-core\";\nimport { usePrevious, useLayoutEffect } from \"./utils.js\";\nimport { useRouter } from \"./useRouter.js\";\nimport { useRouterState } from \"./useRouterState.js\";\nfunction Transitioner() {\n const router = useRouter();\n const mountLoadForRouter = React.useRef({ router, mounted: false });\n const [isTransitioning, setIsTransitioning] = React.useState(false);\n const { hasPendingMatches, isLoading } = useRouterState({\n select: (s) => ({\n isLoading: s.isLoading,\n hasPendingMatches: s.matches.some((d) => d.status === \"pending\")\n }),\n structuralSharing: true\n });\n const previousIsLoading = usePrevious(isLoading);\n const isAnyPending = isLoading || isTransitioning || hasPendingMatches;\n const previousIsAnyPending = usePrevious(isAnyPending);\n const isPagePending = isLoading || hasPendingMatches;\n const previousIsPagePending = usePrevious(isPagePending);\n router.startTransition = (fn) => {\n setIsTransitioning(true);\n React.startTransition(() => {\n fn();\n setIsTransitioning(false);\n });\n };\n React.useEffect(() => {\n const unsub = router.history.subscribe(router.load);\n const nextLocation = router.buildLocation({\n to: router.latestLocation.pathname,\n search: true,\n params: true,\n hash: true,\n state: true,\n _includeValidateSearch: true\n });\n if (trimPathRight(router.latestLocation.href) !== trimPathRight(nextLocation.href)) {\n router.commitLocation({ ...nextLocation, replace: true });\n }\n return () => {\n unsub();\n };\n }, [router, router.history]);\n useLayoutEffect(() => {\n if (\n // if we are hydrating from SSR, loading is triggered in ssr-client\n typeof window !== \"undefined\" && router.ssr || mountLoadForRouter.current.router === router && mountLoadForRouter.current.mounted\n ) {\n return;\n }\n mountLoadForRouter.current = { router, mounted: true };\n const tryLoad = async () => {\n try {\n await router.load();\n } catch (err) {\n console.error(err);\n }\n };\n tryLoad();\n }, [router]);\n useLayoutEffect(() => {\n if (previousIsLoading && !isLoading) {\n router.emit({\n type: \"onLoad\",\n // When the new URL has committed, when the new matches have been loaded into state.matches\n ...getLocationChangeInfo(router.state)\n });\n }\n }, [previousIsLoading, router, isLoading]);\n useLayoutEffect(() => {\n if (previousIsPagePending && !isPagePending) {\n router.emit({\n type: \"onBeforeRouteMount\",\n ...getLocationChangeInfo(router.state)\n });\n }\n }, [isPagePending, previousIsPagePending, router]);\n useLayoutEffect(() => {\n if (previousIsAnyPending && !isAnyPending) {\n router.emit({\n type: \"onResolved\",\n ...getLocationChangeInfo(router.state)\n });\n router.__store.setState((s) => ({\n ...s,\n status: \"idle\",\n resolvedLocation: s.location\n }));\n handleHashScroll(router);\n }\n }, [isAnyPending, previousIsAnyPending, router]);\n return null;\n}\nexport {\n Transitioner\n};\n//# sourceMappingURL=Transitioner.js.map\n","import { jsx } from \"react/jsx-runtime\";\nimport { isNotFound } from \"@tanstack/router-core\";\nimport { CatchBoundary } from \"./CatchBoundary.js\";\nimport { useRouterState } from \"./useRouterState.js\";\nfunction CatchNotFound(props) {\n const resetKey = useRouterState({\n select: (s) => `not-found-${s.location.pathname}-${s.status}`\n });\n return /* @__PURE__ */ jsx(\n CatchBoundary,\n {\n getResetKey: () => resetKey,\n onCatch: (error, errorInfo) => {\n var _a;\n if (isNotFound(error)) {\n (_a = props.onCatch) == null ? void 0 : _a.call(props, error, errorInfo);\n } else {\n throw error;\n }\n },\n errorComponent: ({ error }) => {\n var _a;\n if (isNotFound(error)) {\n return (_a = props.fallback) == null ? void 0 : _a.call(props, error);\n } else {\n throw error;\n }\n },\n children: props.children\n }\n );\n}\nfunction DefaultGlobalNotFound() {\n return /* @__PURE__ */ jsx(\"p\", { children: \"Not Found\" });\n}\nexport {\n CatchNotFound,\n DefaultGlobalNotFound\n};\n//# sourceMappingURL=not-found.js.map\n","import { jsx, Fragment } from \"react/jsx-runtime\";\nfunction SafeFragment(props) {\n return /* @__PURE__ */ jsx(Fragment, { children: props.children });\n}\nexport {\n SafeFragment\n};\n//# sourceMappingURL=SafeFragment.js.map\n","import { jsx } from \"react/jsx-runtime\";\nimport warning from \"tiny-warning\";\nimport { DefaultGlobalNotFound } from \"./not-found.js\";\nfunction renderRouteNotFound(router, route, data) {\n if (!route.options.notFoundComponent) {\n if (router.options.defaultNotFoundComponent) {\n return /* @__PURE__ */ jsx(router.options.defaultNotFoundComponent, { data });\n }\n if (process.env.NODE_ENV === \"development\") {\n warning(\n route.options.notFoundComponent,\n `A notFoundError was encountered on the route with ID \"${route.id}\", but a notFoundComponent option was not configured, nor was a router level defaultNotFoundComponent configured. Consider configuring at least one of these to avoid TanStack Router's overly generic defaultNotFoundComponent (<div>Not Found<div>)`\n );\n }\n return /* @__PURE__ */ jsx(DefaultGlobalNotFound, {});\n }\n return /* @__PURE__ */ jsx(route.options.notFoundComponent, { data });\n}\nexport {\n renderRouteNotFound\n};\n//# sourceMappingURL=renderRouteNotFound.js.map\n","import { jsx } from \"react/jsx-runtime\";\nfunction ScriptOnce({\n children\n}) {\n if (typeof document !== \"undefined\") {\n return null;\n }\n return /* @__PURE__ */ jsx(\n \"script\",\n {\n className: \"$tsr\",\n dangerouslySetInnerHTML: {\n __html: [children].filter(Boolean).join(\"\\n\")\n }\n }\n );\n}\nexport {\n ScriptOnce\n};\n//# sourceMappingURL=ScriptOnce.js.map\n","import { jsx } from \"react/jsx-runtime\";\nimport { defaultGetScrollRestorationKey, restoreScroll, storageKey } from \"@tanstack/router-core\";\nimport { useRouter } from \"./useRouter.js\";\nimport { ScriptOnce } from \"./ScriptOnce.js\";\nfunction ScrollRestoration() {\n const router = useRouter();\n const getKey = router.options.getScrollRestorationKey || defaultGetScrollRestorationKey;\n const userKey = getKey(router.latestLocation);\n const resolvedKey = userKey !== defaultGetScrollRestorationKey(router.latestLocation) ? userKey : void 0;\n if (!router.isScrollRestoring || !router.isServer) {\n return null;\n }\n const restoreScrollOptions = {\n storageKey,\n shouldScrollRestoration: true\n };\n if (resolvedKey) {\n restoreScrollOptions.key = resolvedKey;\n }\n return /* @__PURE__ */ jsx(\n ScriptOnce,\n {\n children: `(${restoreScroll.toString()})(${JSON.stringify(restoreScrollOptions)})`\n }\n );\n}\nexport {\n ScrollRestoration\n};\n//# sourceMappingURL=scroll-restoration.js.map\n","import { jsxs, jsx, Fragment } from \"react/jsx-runtime\";\nimport * as React from \"react\";\nimport invariant from \"tiny-invariant\";\nimport warning from \"tiny-warning\";\nimport { isNotFound, rootRouteId, pick, createControlledPromise, isRedirect, getLocationChangeInfo } from \"@tanstack/router-core\";\nimport { CatchBoundary, ErrorComponent } from \"./CatchBoundary.js\";\nimport { useRouterState } from \"./useRouterState.js\";\nimport { useRouter } from \"./useRouter.js\";\nimport { CatchNotFound } from \"./not-found.js\";\nimport { matchContext } from \"./matchContext.js\";\nimport { SafeFragment } from \"./SafeFragment.js\";\nimport { renderRouteNotFound } from \"./renderRouteNotFound.js\";\nimport { ScrollRestoration } from \"./scroll-restoration.js\";\nimport { ClientOnly } from \"./ClientOnly.js\";\nconst Match = React.memo(function MatchImpl({\n matchId\n}) {\n var _a, _b;\n const router = useRouter();\n const matchState = useRouterState({\n select: (s) => {\n const match = s.matches.find((d) => d.id === matchId);\n invariant(\n match,\n `Could not find match for matchId \"${matchId}\". Please file an issue!`\n );\n return pick(match, [\"routeId\", \"ssr\", \"_displayPending\"]);\n },\n structuralSharing: true\n });\n const route = router.routesById[matchState.routeId];\n const PendingComponent = route.options.pendingComponent ?? router.options.defaultPendingComponent;\n const pendingElement = PendingComponent ? /* @__PURE__ */ jsx(PendingComponent, {}) : null;\n const routeErrorComponent = route.options.errorComponent ?? router.options.defaultErrorComponent;\n const routeOnCatch = route.options.onCatch ?? router.options.defaultOnCatch;\n const routeNotFoundComponent = route.isRoot ? (\n // If it's the root route, use the globalNotFound option, with fallback to the notFoundRoute's component\n route.options.notFoundComponent ?? ((_a = router.options.notFoundRoute) == null ? void 0 : _a.options.component)\n ) : route.options.notFoundComponent;\n const resolvedNoSsr = matchState.ssr === false || matchState.ssr === \"data-only\";\n const ResolvedSuspenseBoundary = (\n // If we're on the root route, allow forcefully wrapping in suspense\n (!route.isRoot || route.options.wrapInSuspense || resolvedNoSsr) && (route.options.wrapInSuspense ?? PendingComponent ?? (((_b = route.options.errorComponent) == null ? void 0 : _b.preload) || resolvedNoSsr)) ? React.Suspense : SafeFragment\n );\n const ResolvedCatchBoundary = routeErrorComponent ? CatchBoundary : SafeFragment;\n const ResolvedNotFoundBoundary = routeNotFoundComponent ? CatchNotFound : SafeFragment;\n const resetKey = useRouterState({\n select: (s) => s.loadedAt\n });\n const parentRouteId = useRouterState({\n select: (s) => {\n var _a2;\n const index = s.matches.findIndex((d) => d.id === matchId);\n return (_a2 = s.matches[index - 1]) == null ? void 0 : _a2.routeId;\n }\n });\n const ShellComponent = route.isRoot ? route.options.shellComponent ?? SafeFragment : SafeFragment;\n return /* @__PURE__ */ jsxs(ShellComponent, { children: [\n /* @__PURE__ */ jsx(matchContext.Provider, { value: matchId, children: /* @__PURE__ */ jsx(ResolvedSuspenseBoundary, { fallback: pendingElement, children: /* @__PURE__ */ jsx(\n ResolvedCatchBoundary,\n {\n getResetKey: () => resetKey,\n errorComponent: routeErrorComponent || ErrorComponent,\n onCatch: (error, errorInfo) => {\n if (isNotFound(error)) throw error;\n warning(false, `Error in route match: ${matchId}`);\n routeOnCatch == null ? void 0 : routeOnCatch(error, errorInfo);\n },\n children: /* @__PURE__ */ jsx(\n ResolvedNotFoundBoundary,\n {\n fallback: (error) => {\n if (!routeNotFoundComponent || error.routeId && error.routeId !== matchState.routeId || !error.routeId && !route.isRoot)\n throw error;\n return React.createElement(routeNotFoundComponent, error);\n },\n children: resolvedNoSsr || matchState._displayPending ? /* @__PURE__ */ jsx(ClientOnly, { fallback: pendingElement, children: /* @__PURE__ */ jsx(MatchInner, { matchId }) }) : /* @__PURE__ */ jsx(MatchInner, { matchId })\n }\n )\n }\n ) }) }),\n parentRouteId === rootRouteId && router.options.scrollRestoration ? /* @__PURE__ */ jsxs(Fragment, { children: [\n /* @__PURE__ */ jsx(OnRendered, {}),\n /* @__PURE__ */ jsx(ScrollRestoration, {})\n ] }) : null\n ] });\n});\nfunction OnRendered() {\n const router = useRouter();\n const prevLocationRef = React.useRef(\n void 0\n );\n return /* @__PURE__ */ jsx(\n \"script\",\n {\n suppressHydrationWarning: true,\n ref: (el) => {\n if (el && (prevLocationRef.current === void 0 || prevLocationRef.current.href !== router.latestLocation.href)) {\n router.emit({\n type: \"onRendered\",\n ...getLocationChangeInfo(router.state)\n });\n prevLocationRef.current = router.latestLocation;\n }\n }\n },\n router.latestLocation.state.__TSR_key\n );\n}\nconst MatchInner = React.memo(function MatchInnerImpl({\n matchId\n}) {\n var _a, _b, _c, _d, _e;\n const router = useRouter();\n const { match, key, routeId } = useRouterState({\n select: (s) => {\n const matchIndex = s.matches.findIndex((d) => d.id === matchId);\n const match2 = s.matches[matchIndex];\n const routeId2 = match2.routeId;\n const remountFn = router.routesById[routeId2].options.remountDeps ?? router.options.defaultRemountDeps;\n const remountDeps = remountFn == null ? void 0 : remountFn({\n routeId: routeId2,\n loaderDeps: match2.loaderDeps,\n params: match2._strictParams,\n search: match2._strictSearch\n });\n const key2 = remountDeps ? JSON.stringify(remountDeps) : void 0;\n return {\n key: key2,\n routeId: routeId2,\n match: pick(match2, [\n \"id\",\n \"status\",\n \"error\",\n \"_forcePending\",\n \"_displayPending\"\n ])\n };\n },\n structuralSharing: true\n });\n const route = router.routesById[routeId];\n const out = React.useMemo(() => {\n const Comp = route.options.component ?? router.options.defaultComponent;\n if (Comp) {\n return /* @__PURE__ */ jsx(Comp, {}, key);\n }\n return /* @__PURE__ */ jsx(Outlet, {});\n }, [key, route.options.component, router.options.defaultComponent]);\n if (match._displayPending) {\n throw (_a = router.getMatch(match.id)) == null ? void 0 : _a.displayPendingPromise;\n }\n if (match._forcePending) {\n throw (_b = router.getMatch(match.id)) == null ? void 0 : _b.minPendingPromise;\n }\n if (match.status === \"pending\") {\n const pendingMinMs = route.options.pendingMinMs ?? router.options.defaultPendingMinMs;\n if (pendingMinMs && !((_c = router.getMatch(match.id)) == null ? void 0 : _c.minPendingPromise)) {\n if (!router.isServer) {\n const minPendingPromise = createControlledPromise();\n Promise.resolve().then(() => {\n router.updateMatch(match.id, (prev) => ({\n ...prev,\n minPendingPromise\n }));\n });\n setTimeout(() => {\n minPendingPromise.resolve();\n router.updateMatch(match.id, (prev) => ({\n ...prev,\n minPendingPromise: void 0\n }));\n }, pendingMinMs);\n }\n }\n throw (_d = router.getMatch(match.id)) == null ? void 0 : _d.loadPromise;\n }\n if (match.status === \"notFound\") {\n invariant(isNotFound(match.error), \"Expected a notFound error\");\n return renderRouteNotFound(router, route, match.error);\n }\n if (match.status === \"redirected\") {\n invariant(isRedirect(match.error), \"Expected a redirect error\");\n throw (_e = router.getMatch(match.id)) == null ? void 0 : _e.loadPromise;\n }\n if (match.status === \"error\") {\n if (router.isServer) {\n const RouteErrorComponent = (route.options.errorComponent ?? router.options.defaultErrorComponent) || ErrorComponent;\n return /* @__PURE__ */ jsx(\n RouteErrorComponent,\n {\n error: match.error,\n reset: void 0,\n info: {\n componentStack: \"\"\n }\n }\n );\n }\n throw match.error;\n }\n return out;\n});\nconst Outlet = React.memo(function OutletImpl() {\n const router = useRouter();\n const matchId = React.useContext(matchContext);\n const routeId = useRouterState({\n select: (s) => {\n var _a;\n return (_a = s.matches.find((d) => d.id === matchId)) == null ? void 0 : _a.routeId;\n }\n });\n const route = router.routesById[routeId];\n const parentGlobalNotFound = useRouterState({\n select: (s) => {\n const matches = s.matches;\n const parentMatch = matches.find((d) => d.id === matchId);\n invariant(\n parentMatch,\n `Could not find parent match for matchId \"${matchId}\"`\n );\n return parentMatch.globalNotFound;\n }\n });\n const childMatchId = useRouterState({\n select: (s) => {\n var _a;\n const matches = s.matches;\n const index = matches.findIndex((d) => d.id === matchId);\n return (_a = matches[index + 1]) == null ? void 0 : _a.id;\n }\n });\n const pendingElement = router.options.defaultPendingComponent ? /* @__PURE__ */ jsx(router.options.defaultPendingComponent, {}) : null;\n if (parentGlobalNotFound) {\n return renderRouteNotFound(router, route, void 0);\n }\n if (!childMatchId) {\n return null;\n }\n const nextMatch = /* @__PURE__ */ jsx(Match, { matchId: childMatchId });\n if (matchId === rootRouteId) {\n return /* @__PURE__ */ jsx(React.Suspense, { fallback: pendingElement, children: nextMatch });\n }\n return nextMatch;\n});\nexport {\n Match,\n MatchInner,\n Outlet\n};\n//# sourceMappingURL=Match.js.map\n","import { jsx, jsxs } from \"react/jsx-runtime\";\nimport * as React from \"react\";\nimport warning from \"tiny-warning\";\nimport { CatchBoundary, ErrorComponent } from \"./CatchBoundary.js\";\nimport { useRouterState } from \"./useRouterState.js\";\nimport { useRouter } from \"./useRouter.js\";\nimport { Transitioner } from \"./Transitioner.js\";\nimport { matchContext } from \"./matchContext.js\";\nimport { Match } from \"./Match.js\";\nimport { SafeFragment } from \"./SafeFragment.js\";\nfunction Matches() {\n const router = useRouter();\n const pendingElement = router.options.defaultPendingComponent ? /* @__PURE__ */ jsx(router.options.defaultPendingComponent, {}) : null;\n const ResolvedSuspense = router.isServer || typeof document !== \"undefined\" && router.ssr ? SafeFragment : React.Suspense;\n const inner = /* @__PURE__ */ jsxs(ResolvedSuspense, { fallback: pendingElement, children: [\n !router.isServer && /* @__PURE__ */ jsx(Transitioner, {}),\n /* @__PURE__ */ jsx(MatchesInner, {})\n ] });\n return router.options.InnerWrap ? /* @__PURE__ */ jsx(router.options.InnerWrap, { children: inner }) : inner;\n}\nfunction MatchesInner() {\n const router = useRouter();\n const matchId = useRouterState({\n select: (s) => {\n var _a;\n return (_a = s.matches[0]) == null ? void 0 : _a.id;\n }\n });\n const resetKey = useRouterState({\n select: (s) => s.loadedAt\n });\n const matchComponent = matchId ? /* @__PURE__ */ jsx(Match, { matchId }) : null;\n return /* @__PURE__ */ jsx(matchContext.Provider, { value: matchId, children: router.options.disableGlobalCatchBoundary ? matchComponent : /* @__PURE__ */ jsx(\n CatchBoundary,\n {\n getResetKey: () => resetKey,\n errorComponent: ErrorComponent,\n onCatch: (error) => {\n warning(\n false,\n `The following error wasn't caught by any route! At the very least, consider setting an 'errorComponent' in your RootRoute!`\n );\n warning(false, error.message || error.toString());\n },\n children: matchComponent\n }\n ) });\n}\nfunction useMatchRoute() {\n const router = useRouter();\n useRouterState({\n select: (s) => {\n var _a;\n return [s.location.href, (_a = s.resolvedLocation) == null ? void 0 : _a.href, s.status];\n },\n structuralSharing: true\n });\n return React.useCallback(\n (opts) => {\n const { pending, caseSensitive, fuzzy, includeSearch, ...rest } = opts;\n return router.matchRoute(rest, {\n pending,\n caseSensitive,\n fuzzy,\n includeSearch\n });\n },\n [router]\n );\n}\nfunction MatchRoute(props) {\n const matchRoute = useMatchRoute();\n const params = matchRoute(props);\n if (typeof props.children === \"function\") {\n return props.children(params);\n }\n return params ? props.children : null;\n}\nfunction useMatches(opts) {\n return useRouterState({\n select: (state) => {\n const matches = state.matches;\n return (opts == null ? void 0 : opts.select) ? opts.select(matches) : matches;\n },\n structuralSharing: opts == null ? void 0 : opts.structuralSharing\n });\n}\nfunction useParentMatches(opts) {\n const contextMatchId = React.useContext(matchContext);\n return useMatches({\n select: (matches) => {\n matches = matches.slice(\n 0,\n matches.findIndex((d) => d.id === contextMatchId)\n );\n return (opts == null ? void 0 : opts.select) ? opts.select(matches) : matches;\n },\n structuralSharing: opts == null ? void 0 : opts.structuralSharing\n });\n}\nfunction useChildMatches(opts) {\n const contextMatchId = React.useContext(matchContext);\n return useMatches({\n select: (matches) => {\n matches = matches.slice(\n matches.findIndex((d) => d.id === contextMatchId) + 1\n );\n return (opts == null ? void 0 : opts.select) ? opts.select(matches) : matches;\n },\n structuralSharing: opts == null ? void 0 : opts.structuralSharing\n });\n}\nexport {\n MatchRoute,\n Matches,\n useChildMatches,\n useMatchRoute,\n useMatches,\n useParentMatches\n};\n//# sourceMappingURL=Matches.js.map\n","import { RouterCore } from \"@tanstack/router-core\";\nimport { createFileRoute, createLazyFileRoute } from \"./fileRoute.js\";\nconst createRouter = (options) => {\n return new Router(options);\n};\nclass Router extends RouterCore {\n constructor(options) {\n super(options);\n }\n}\nif (typeof globalThis !== \"undefined\") {\n globalThis.createFileRoute = createFileRoute;\n globalThis.createLazyFileRoute = createLazyFileRoute;\n} else if (typeof window !== \"undefined\") {\n window.createFileRoute = createFileRoute;\n window.createFileRoute = createLazyFileRoute;\n}\nexport {\n Router,\n createRouter\n};\n//# sourceMappingURL=router.js.map\n","import { jsx } from \"react/jsx-runtime\";\nimport { Matches } from \"./Matches.js\";\nimport { getRouterContext } from \"./routerContext.js\";\nfunction RouterContextProvider({\n router,\n children,\n ...rest\n}) {\n if (Object.keys(rest).length > 0) {\n router.update({\n ...router.options,\n ...rest,\n context: {\n ...router.options.context,\n ...rest.context\n }\n });\n }\n const routerContext = getRouterContext();\n const provider = /* @__PURE__ */ jsx(routerContext.Provider, { value: router, children });\n if (router.options.Wrap) {\n return /* @__PURE__ */ jsx(router.options.Wrap, { children: provider });\n }\n return provider;\n}\nfunction RouterProvider({ router, ...rest }) {\n return /* @__PURE__ */ jsx(RouterContextProvider, { router, ...rest, children: /* @__PURE__ */ jsx(Matches, {}) });\n}\nexport {\n RouterContextProvider,\n RouterProvider\n};\n//# sourceMappingURL=RouterProvider.js.map\n","import { defaultGetScrollRestorationKey, getCssSelector, scrollRestorationCache, setupScrollRestoration } from \"@tanstack/router-core\";\nimport { useRouter } from \"./useRouter.js\";\nfunction useScrollRestoration() {\n const router = useRouter();\n setupScrollRestoration(router, true);\n}\nfunction ScrollRestoration(_props) {\n useScrollRestoration();\n if (process.env.NODE_ENV === \"development\") {\n console.warn(\n \"The ScrollRestoration component is deprecated. Use createRouter's `scrollRestoration` option instead.\"\n );\n }\n return null;\n}\nfunction useElementScrollRestoration(options) {\n var _a, _b;\n useScrollRestoration();\n const router = useRouter();\n const getKey = options.getKey || defaultGetScrollRestorationKey;\n let elementSelector = \"\";\n if (options.id) {\n elementSelector = `[data-scroll-restoration-id=\"${options.id}\"]`;\n } else {\n const element = (_a = options.getElement) == null ? void 0 : _a.call(options);\n if (!element) {\n return;\n }\n elementSelector = element instanceof Window ? \"window\" : getCssSelector(element);\n }\n const restoreKey = getKey(router.latestLocation);\n const byKey = (_b = scrollRestorationCache) == null ? void 0 : _b.state[restoreKey];\n return byKey == null ? void 0 : byKey[elementSelector];\n}\nexport {\n ScrollRestoration,\n useElementScrollRestoration\n};\n//# sourceMappingURL=ScrollRestoration.js.map\n","import * as React from \"react\";\nimport { useRouter } from \"./useRouter.js\";\nfunction _resolveBlockerOpts(opts, condition) {\n if (opts === void 0) {\n return {\n shouldBlockFn: () => true,\n withResolver: false\n };\n }\n if (\"shouldBlockFn\" in opts) {\n return opts;\n }\n if (typeof opts === \"function\") {\n const shouldBlock2 = Boolean(condition ?? true);\n const _customBlockerFn2 = async () => {\n if (shouldBlock2) return await opts();\n return false;\n };\n return {\n shouldBlockFn: _customBlockerFn2,\n enableBeforeUnload: shouldBlock2,\n withResolver: false\n };\n }\n const shouldBlock = Boolean(opts.condition ?? true);\n const fn = opts.blockerFn;\n const _customBlockerFn = async () => {\n if (shouldBlock && fn !== void 0) {\n return await fn();\n }\n return shouldBlock;\n };\n return {\n shouldBlockFn: _customBlockerFn,\n enableBeforeUnload: shouldBlock,\n withResolver: fn === void 0\n };\n}\nfunction useBlocker(opts, condition) {\n const {\n shouldBlockFn,\n enableBeforeUnload = true,\n disabled = false,\n withResolver = false\n } = _resolveBlockerOpts(opts, condition);\n const router = useRouter();\n const { history } = router;\n const [resolver, setResolver] = React.useState({\n status: \"idle\",\n current: void 0,\n next: void 0,\n action: void 0,\n proceed: void 0,\n reset: void 0\n });\n React.useEffect(() => {\n const blockerFnComposed = async (blockerFnArgs) => {\n function getLocation(location) {\n const parsedLocation = router.parseLocation(void 0, location);\n const matchedRoutes = router.getMatchedRoutes(\n parsedLocation.pathname,\n void 0\n );\n if (matchedRoutes.foundRoute === void 0) {\n throw new Error(`No route found for location ${location.href}`);\n }\n return {\n routeId: matchedRoutes.foundRoute.id,\n fullPath: matchedRoutes.foundRoute.fullPath,\n pathname: parsedLocation.pathname,\n params: matchedRoutes.routeParams,\n search: parsedLocation.search\n };\n }\n const current = getLocation(blockerFnArgs.currentLocation);\n const next = getLocation(blockerFnArgs.nextLocation);\n const shouldBlock = await shouldBlockFn({\n action: blockerFnArgs.action,\n current,\n next\n });\n if (!withResolver) {\n return shouldBlock;\n }\n if (!shouldBlock) {\n return false;\n }\n const promise = new Promise((resolve) => {\n setResolver({\n status: \"blocked\",\n current,\n next,\n action: blockerFnArgs.action,\n proceed: () => resolve(false),\n reset: () => resolve(true)\n });\n });\n const canNavigateAsync = await promise;\n setResolver({\n status: \"idle\",\n current: void 0,\n next: void 0,\n action: void 0,\n proceed: void 0,\n reset: void 0\n });\n return canNavigateAsync;\n };\n return disabled ? void 0 : history.block({ blockerFn: blockerFnComposed, enableBeforeUnload });\n }, [\n shouldBlockFn,\n enableBeforeUnload,\n disabled,\n withResolver,\n history,\n router\n ]);\n return resolver;\n}\nconst _resolvePromptBlockerArgs = (props) => {\n if (\"shouldBlockFn\" in props) {\n return { ...props };\n }\n const shouldBlock = Boolean(props.condition ?? true);\n const fn = props.blockerFn;\n const _customBlockerFn = async () => {\n if (shouldBlock && fn !== void 0) {\n return await fn();\n }\n return shouldBlock;\n };\n return {\n shouldBlockFn: _customBlockerFn,\n enableBeforeUnload: shouldBlock,\n withResolver: fn === void 0\n };\n};\nfunction Block(opts) {\n const { children, ...rest } = opts;\n const args = _resolvePromptBlockerArgs(rest);\n const resolver = useBlocker(args);\n return children ? typeof children === \"function\" ? children(resolver) : children : null;\n}\nexport {\n Block,\n useBlocker\n};\n//# sourceMappingURL=useBlocker.js.map\n","import { useMatch } from \"./useMatch.js\";\nfunction useRouteContext(opts) {\n return useMatch({\n ...opts,\n select: (match) => opts.select ? opts.select(match.context) : match.context\n });\n}\nexport {\n useRouteContext\n};\n//# sourceMappingURL=useRouteContext.js.map\n","import { useRouterState } from \"./useRouterState.js\";\nfunction useLocation(opts) {\n return useRouterState({\n select: (state) => (opts == null ? void 0 : opts.select) ? opts.select(state.location) : state.location\n });\n}\nexport {\n useLocation\n};\n//# sourceMappingURL=useLocation.js.map\n","import { useRouterState } from \"./useRouterState.js\";\nfunction useCanGoBack() {\n return useRouterState({ select: (s) => s.location.state.__TSR_index !== 0 });\n}\nexport {\n useCanGoBack\n};\n//# sourceMappingURL=useCanGoBack.js.map\n","import { jsx } from \"react/jsx-runtime\";\nimport * as React from \"react\";\nfunction Asset({\n tag,\n attrs,\n children\n}) {\n switch (tag) {\n case \"title\":\n return /* @__PURE__ */ jsx(\"title\", { ...attrs, suppressHydrationWarning: true, children });\n case \"meta\":\n return /* @__PURE__ */ jsx(\"meta\", { ...attrs, suppressHydrationWarning: true });\n case \"link\":\n return /* @__PURE__ */ jsx(\"link\", { ...attrs, suppressHydrationWarning: true });\n case \"style\":\n return /* @__PURE__ */ jsx(\n \"style\",\n {\n ...attrs,\n dangerouslySetInnerHTML: { __html: children }\n }\n );\n case \"script\":\n return /* @__PURE__ */ jsx(Script, { attrs, children });\n default:\n return null;\n }\n}\nfunction Script({\n attrs,\n children\n}) {\n React.useEffect(() => {\n if (attrs == null ? void 0 : attrs.src) {\n const script = document.createElement(\"script\");\n for (const [key, value] of Object.entries(attrs)) {\n if (key !== \"suppressHydrationWarning\" && value !== void 0 && value !== false) {\n script.setAttribute(\n key,\n typeof value === \"boolean\" ? \"\" : String(value)\n );\n }\n }\n document.head.appendChild(script);\n return () => {\n if (script.parentNode) {\n script.parentNode.removeChild(script);\n }\n };\n }\n if (typeof children === \"string\") {\n const script = document.createElement(\"script\");\n script.textContent = children;\n if (attrs) {\n for (const [key, value] of Object.entries(attrs)) {\n if (key !== \"suppressHydrationWarning\" && value !== void 0 && value !== false) {\n script.setAttribute(\n key,\n typeof value === \"boolean\" ? \"\" : String(value)\n );\n }\n }\n }\n document.head.appendChild(script);\n return () => {\n if (script.parentNode) {\n script.parentNode.removeChild(script);\n }\n };\n }\n return void 0;\n }, [attrs, children]);\n if ((attrs == null ? void 0 : attrs.src) && typeof attrs.src === \"string\") {\n return /* @__PURE__ */ jsx(\"script\", { ...attrs, suppressHydrationWarning: true });\n }\n if (typeof children === \"string\") {\n return /* @__PURE__ */ jsx(\n \"script\",\n {\n ...attrs,\n dangerouslySetInnerHTML: { __html: children },\n suppressHydrationWarning: true\n }\n );\n }\n return null;\n}\nexport {\n Asset\n};\n//# sourceMappingURL=Asset.js.map\n","import * as React from \"react\";\nimport { createElement } from \"react\";\nimport { Asset } from \"./Asset.js\";\nimport { useRouter } from \"./useRouter.js\";\nimport { useRouterState } from \"./useRouterState.js\";\nconst useTags = () => {\n const router = useRouter();\n const routeMeta = useRouterState({\n select: (state) => {\n return state.matches.map((match) => match.meta).filter(Boolean);\n }\n });\n const meta = React.useMemo(() => {\n const resultMeta = [];\n const metaByAttribute = {};\n let title;\n [...routeMeta].reverse().forEach((metas) => {\n [...metas].reverse().forEach((m) => {\n if (!m) return;\n if (m.title) {\n if (!title) {\n title = {\n tag: \"title\",\n children: m.title\n };\n }\n } else {\n const attribute = m.name ?? m.property;\n if (attribute) {\n if (metaByAttribute[attribute]) {\n return;\n } else {\n metaByAttribute[attribute] = true;\n }\n }\n resultMeta.push({\n tag: \"meta\",\n attrs: {\n ...m\n }\n });\n }\n });\n });\n if (title) {\n resultMeta.push(title);\n }\n resultMeta.reverse();\n return resultMeta;\n }, [routeMeta]);\n const links = useRouterState({\n select: (state) => {\n var _a;\n const constructed = state.matches.map((match) => match.links).filter(Boolean).flat(1).map((link) => ({\n tag: \"link\",\n attrs: {\n ...link\n }\n }));\n const manifest = (_a = router.ssr) == null ? void 0 : _a.manifest;\n const assets = state.matches.map((match) => {\n var _a2;\n return ((_a2 = manifest == null ? void 0 : manifest.routes[match.routeId]) == null ? void 0 : _a2.assets) ?? [];\n }).filter(Boolean).flat(1).filter((asset) => asset.tag === \"link\").map(\n (asset) => ({\n tag: \"link\",\n attrs: {\n ...asset.attrs,\n suppressHydrationWarning: true\n }\n })\n );\n return [...constructed, ...assets];\n },\n structuralSharing: true\n });\n const preloadMeta = useRouterState({\n select: (state) => {\n const preloadMeta2 = [];\n state.matches.map((match) => router.looseRoutesById[match.routeId]).forEach(\n (route) => {\n var _a, _b, _c, _d;\n return (_d = (_c = (_b = (_a = router.ssr) == null ? void 0 : _a.manifest) == null ? void 0 : _b.routes[route.id]) == null ? void 0 : _c.preloads) == null ? void 0 : _d.filter(Boolean).forEach((preload) => {\n preloadMeta2.push({\n tag: \"link\",\n attrs: {\n rel: \"modulepreload\",\n href: preload\n }\n });\n });\n }\n );\n return preloadMeta2;\n },\n structuralSharing: true\n });\n const styles = useRouterState({\n select: (state) => state.matches.map((match) => match.styles).flat(1).filter(Boolean).map(({ children, ...attrs }) => ({\n tag: \"style\",\n attrs,\n children\n })),\n structuralSharing: true\n });\n const headScripts = useRouterState({\n select: (state) => state.matches.map((match) => match.headScripts).flat(1).filter(Boolean).map(({ children, ...script }) => ({\n tag: \"script\",\n attrs: {\n ...script\n },\n children\n })),\n structuralSharing: true\n });\n return uniqBy(\n [\n ...meta,\n ...preloadMeta,\n ...links,\n ...styles,\n ...headScripts\n ],\n (d) => {\n return JSON.stringify(d);\n }\n );\n};\nfunction HeadContent() {\n const tags = useTags();\n return tags.map((tag) => /* @__PURE__ */ createElement(Asset, { ...tag, key: `tsr-meta-${JSON.stringify(tag)}` }));\n}\nfunction uniqBy(arr, fn) {\n const seen = /* @__PURE__ */ new Set();\n return arr.filter((item) => {\n const key = fn(item);\n if (seen.has(key)) {\n return false;\n }\n seen.add(key);\n return true;\n });\n}\nexport {\n HeadContent,\n useTags\n};\n//# sourceMappingURL=HeadContent.js.map\n","import { jsx, Fragment } from \"react/jsx-runtime\";\nimport { createElement } from \"react\";\nimport { Asset } from \"./Asset.js\";\nimport { useRouterState } from \"./useRouterState.js\";\nimport { useRouter } from \"./useRouter.js\";\nconst Scripts = () => {\n const router = useRouter();\n const assetScripts = useRouterState({\n select: (state) => {\n var _a;\n const assetScripts2 = [];\n const manifest = (_a = router.ssr) == null ? void 0 : _a.manifest;\n if (!manifest) {\n return [];\n }\n state.matches.map((match) => router.looseRoutesById[match.routeId]).forEach(\n (route) => {\n var _a2, _b;\n return (_b = (_a2 = manifest.routes[route.id]) == null ? void 0 : _a2.assets) == null ? void 0 : _b.filter((d) => d.tag === \"script\").forEach((asset) => {\n assetScripts2.push({\n tag: \"script\",\n attrs: asset.attrs,\n children: asset.children\n });\n });\n }\n );\n return assetScripts2;\n },\n structuralSharing: true\n });\n const { scripts } = useRouterState({\n select: (state) => ({\n scripts: state.matches.map((match) => match.scripts).flat(1).filter(Boolean).map(({ children, ...script }) => ({\n tag: \"script\",\n attrs: {\n ...script,\n suppressHydrationWarning: true\n },\n children\n }))\n }),\n structuralSharing: true\n });\n const allScripts = [...scripts, ...assetScripts];\n return /* @__PURE__ */ jsx(Fragment, { children: allScripts.map((asset, i) => /* @__PURE__ */ createElement(Asset, { ...asset, key: `tsr-scripts-${asset.tag}-${i}` })) });\n};\nexport {\n Scripts\n};\n//# sourceMappingURL=Scripts.js.map\n"],"names":["React","require$$0","is","x","y","objectIs","useState","useEffect","useLayoutEffect","useDebugValue","useSyncExternalStore$2","subscribe","getSnapshot","value","_useState","inst","forceUpdate","checkIfSnapshotChanged","latestGetSnapshot","nextValue","useSyncExternalStore$1","shim","useSyncExternalStoreShim_production","shimModule","prefix","invariant","condition","message","warning","__storeToDerived","__derivedToStore","__depsThatHaveWrittenThisTick","__isFlushing","__batchDepth","__pendingUpdates","__initialBatchValues","__flush_internals","relatedVals","sorted","a","b","Derived","derived","stores","store","relatedLinkedDerivedVals","__notifyListeners","listener","__notifyDerivedListeners","__flush","store2","prevState","derivedVals","batch","fn","pendingUpdateToFlush","isUpdaterFunction","updater","Store","initialState","options","_a","_b","unsub","_c","prevDepVals","currDepVals","dep","prevVal","shouldRecompute","lastSeenDepValues","i","cleanup","deps","relatedStores","stateIndexKey","popStateEvent","beforeUnloadEvent","createHistory","opts","location","subscribers","notify","action","subscriber","handleIndexChange","tryNavigation","task","navigateOpts","actionInfo","blockers","isPushOrReplace","blocker","nextLocation","parseHref","cb","path","state","currentIndex","assignKeyAndIndex","index","str","_a2","blockers2","key","createRandomKey","createBrowserHistory","win","originalPushState","originalReplaceState","_getBlockers","_setBlockers","newBlockers","createHref","parseLocation","addedKey","currentLocation","rollbackLocation","nextPopIsGo","ignoreNextPop","skipBlockerNextPop","ignoreNextBeforeUnload","getLocation","next","scheduled","flush","history","queueHistoryAction","type","destHref","href","onPushPop","onPushPopEvent","delta","isForward","isBack","isGo","onBeforeUnload","e","shouldBlock","shouldHaveBeforeUnload","ignoreBlocker","n","args","res","createHashHistory","hashSplit","pathPart","searchPart","hashEntries","hashPart","hashHref","createMemoryHistory","entries","states","_entry","index2","hashIndex","searchIndex","last","arr","isFunction","d","functionalUpdate","previous","pick","parent","keys","obj","replaceEqualDeep","prev","_next","array","isPlainArray","isSimplePlainObject","prevItems","prevSize","nextItems","nextSize","copy","equalItems","o","isPlainObject","hasObjectPrototype","ctor","prot","getObjectKeys","ignoreUndefined","deepEqual","aKeys","bKeys","item","createControlledPromise","onResolve","resolveLoadPromise","rejectLoadPromise","controlledPromise","resolve","reject","escapeJSON","jsonString","shallow","objA","objB","keysA","isModuleNotFoundError","error","SEGMENT_TYPE_PATHNAME","SEGMENT_TYPE_PARAM","SEGMENT_TYPE_WILDCARD","SEGMENT_TYPE_OPTIONAL_PARAM","joinPaths","paths","cleanPath","val","trimPathLeft","trimPathRight","trimPath","removeTrailingSlash","basepath","exactPathTest","pathName1","pathName2","segmentToString","segment","prefixSegment","suffixSegment","param","resolvePath","base","to","trailingSlash","caseSensitive","parseCache","removeBasepath","baseSegments","parsePathname","toSegments","length","toSegment","segmentValues","pathname","cache","cached","parsed","baseParsePathname","PARAM_RE","PARAM_W_CURLY_BRACES_RE","OPTIONAL_PARAM_W_CURLY_BRACES_RE","WILDCARD_RE","WILDCARD_W_CURLY_BRACES_RE","segments","split","part","wildcardBracesMatch","suffix","optionalParamBracesMatch","paramName","paramBracesMatch","interpolatePath","params","leaveWildcards","leaveParams","decodeCharMap","interpolatedPathSegments","encodeParam","isValueString","encodePathParam","isMissingParams","usedParams","interpolatedPath","segmentPrefix","segmentSuffix","encoded","encodedChar","char","matchPathname","currentPathname","matchLocation","pathParams","matchByPath","normalizedBasepath","normalizedPathname","from","fuzzy","routeSegments","isMatch","baseIndex","routeIndex","baseSegment","routeSegment","remainingBaseSegments","_splat","baseValue","rejoinedSplat","_paramValue","matched","paramValue","shouldMatchOptional","lookAhead","futureRouteSegment","notFound","isNotFound","getSafeSessionStorage","storageKey","throttle","wait","timeout","createScrollRestorationCache","safeSessionStorage","persistedState","scrollRestorationCache","defaultGetScrollRestorationKey","getCssSelector","el","ignoreScroll","restoreScroll","storageKey2","behavior","shouldScrollRestoration","scrollToTopSelectors","byKey","resolvedKey","elementEntries","elementSelector","entry","element","hash","hashScrollIntoViewOptions","selector","setupScrollRestoration","router","force","getKey","onScroll","event","attrId","restoreKey","keyEntry","elementEntry","cacheKey","handleHashScroll","encode","pfx","normalizedObject","v","searchParams","toValue","decode","searchParamsPart","acc","previousValue","defaultParseSearch","parseSearchWith","defaultStringifySearch","stringifySearchWith","parser","searchStr","query","stringify","stringifyValue","search","rootRouteId","redirect","headers","response","isRedirect","createLRUCache","max","oldest","newest","touch","toDelete","existing","defaultSerializeError","err","getLocationChangeInfo","routerState","fromLocation","toLocation","pathChanged","hrefChanged","hashChanged","RouterCore","newOptions","previousOptions","getInitialRouterState","routesById","routesByPath","flatRoutes","processRouteTree","route","notFoundRoute","eventType","routerEvent","previousLocation","locationToParse","parse","parsedSearch","__tempLocation","__tempKey","parsedTempLocation","pathnameOrNext","locationSearchOrOpts","routePathname","getMatchedRoutes","id","match","build","dest","allCurrentLocationMatches","lastMatch","fromPath","toPath","routeIsChanging","comparePaths","fromSearch","fromParams","nextTo","nextParams","interpolatedNextTo","destRoutes","nextPathname","nextSearch","validatedSearch","validateSearch","applySearchMiddleware","hashStr","nextState","buildWithMatches","maskedDest","maskedNext","foundMask","_from","maskProps","maskedFinal","viewTransition","isSameState","ignoredProps","prop","isEqual","isSameUrl","previousCommitPromise","maskedLocation","hashScrollIntoView","nextHistory","replace","resetScroll","rest","reloadDocument","normalizeUrl","url","pendingMatches","s","redirect2","loadPromise","prevLocation","exitingMatches","enteringMatches","stayingMatches","previousMatches","newMatches","matches","hook","shouldViewTransition","startViewTransitionParams","resolvedViewTransitionTypes","matchesKey","matchId","findFn","allPreload","onReady","updateMatch","sync","firstBadMatchIndex","rendered","triggerOnReady","resolvePreload","handleRedirectAndNotFound","shouldSkipLoader","resolveAll","rejectAll","_d","handleSerialError","routerCode","_b2","routeId","errorHandlerErr","_a3","_b3","existingMatch","parentMatchId","parentMatch","pendingMs","ssr","defaultSsr","tempSsr","makeMaybe","ssrFnContext","shouldPending","routeNeedsPreload","executeBeforeLoad","setupPendingTimeout","pendingTimeout","prevLoadPromise","paramsError","searchError","abortController","parentMatchContext","context","cause","preload","beforeLoadFnContext","beforeLoadContext","validResolvedMatches","matchPromises","loaderShouldRunAsync","loaderIsRunningAsync","executeHead","_c2","_d2","_e","_f","assetContext","headFnContent","meta","links","headScripts","styles","scripts","potentialPendingMinPromise","latestMatch","prevMatch","head","parentMatchPromise","getLoaderContext","loaderDeps","preload2","age","staleAge","shouldReloadOption","shouldReload","runLoader","loaderData","onErrorError","status","invalid","loaderPromise","invalidate","filter","m","gcTime","lazyRoute","_id","options2","componentTypes","component","activeMatchIds","loadedMatchIds","baseLocation","routeCursor","matchesByRouteId","matchForRoute","foundRoute","matchedRoutes","routeParams","isGlobalNotFound","globalNotFoundRouteId","parseErrors","parsedParamsError","parseParams","parsedParams","PathParamError","getParentContext","preMatchSearch","strictMatchSearch","parentSearch","parentStrictSearch","strictSearch","searchParamError","SearchParamError","loaderDepsHash","previousMatch","parentContext","contextFnContext","opts2","normalize","lazyFn","validateSearch2","input","result","componentType","REQUIRED_PARAM_BASE_SCORE","OPTIONAL_PARAM_BASE_SCORE","WILDCARD_PARAM_BASE_SCORE","handleParam","baseScore","routeTree","initRoute","recurseRoutes","childRoutes","childRoute","existingRoute","trimmedFullPath","children","scoredRoutes","trimmed","skip","optionalParamCount","hasStaticAfter","scores","i2","nextSegment","minLength","trimmedPath","getMatchedParams","fuzzyMatch","matchedParams","_includeValidateSearch","allMiddlewares","middlewares","legacyMiddleware","search2","next2","validate","final","applyNext","currentSearch","middleware","newSearch","TSR_DEFERRED_PROMISE","defer","_promise","promise","data","preloadWarning","parts","BaseRoute","isRoot","customId","fullPath","other","BaseRouteApi","BaseRootRoute","retainSearchParams","stripSearchParams","importShared","useAwaited","Await","props","inner","jsx","AwaitInner","CatchBoundary","errorComponent","ErrorComponent","CatchBoundaryImpl","reset","prevProps","errorInfo","show","setShow","jsxs","React__default","ClientOnly","fallback","useHydrated","require$$1","useSyncExternalStore","useRef","useMemo","withSelector_production","getServerSnapshot","instRef","memoizedSelector","nextSnapshot","hasMemo","memoizedSnapshot","currentSelection","memoizedSelection","nextSelection","maybeGetServerSnapshot","withSelectorModule","useStore","useSyncExternalStoreWithSelector","k","routerContext","getRouterContext","useRouter","useRouterState","contextRouter","previousResult","newSlice","matchContext","dummyMatchContext","useMatch","nearestMatchId","useLoaderData","useLoaderDeps","select","useParams","useSearch","useNavigate","_defaultOpts","navigate","matchIndex","Navigate","previousPropsRef","useStableCallback","fnRef","usePrevious","ref","current","useIntersectionObserver","callback","intersectionObserverOptions","observer","useForwardedRef","innerRef","flushSync","useLinkProps","forwardedRef","isTransitioning","setIsTransitioning","hasRenderFetched","activeProps","inactiveProps","activeOptions","userPreload","userPreloadDelay","startTransition","target","disabled","style","className","onClick","onFocus","onMouseEnter","onMouseLeave","onTouchStart","_params","_search","_hash","_state","_mask","_reloadDocument","_unsafeRelative","_fromLocation","propsSafeToSpread","isExternal","preloadDelay","isActive","currentPathSplit","nextPathSplit","doPreload","preloadViewportIoCallback","handleClick","isCtrlEvent","handleFocus","_","handleTouchStart","handleEnter","eventTarget","timeoutMap","handleLeave","resolvedActiveProps","STATIC_ACTIVE_OBJECT","STATIC_EMPTY_OBJECT","resolvedInactiveProps","resolvedClassName","resolvedStyle","composeHandlers","STATIC_DISABLED_PROPS","STATIC_ACTIVE_PROPS","STATIC_TRANSITIONING_PROPS","handlers","handler","createLink","Comp","Link","_asChild","_type","linkProps","linkOptions","getRouteApi","RouteApi","Route","createRoute","createRootRouteWithContext","createRootRoute","rootRouteWithContext","RootRoute","createRouteMask","NotFoundRoute","createFileRoute","FileRoute","_opts","FileRouteLoader","_path","loaderFn","LazyRoute","createLazyRoute","createLazyFileRoute","lazyRouteComponent","importer","exportName","comp","reload","load","lazyComp","Transitioner","mountLoadForRouter","hasPendingMatches","isLoading","previousIsLoading","isAnyPending","previousIsAnyPending","isPagePending","previousIsPagePending","CatchNotFound","resetKey","DefaultGlobalNotFound","SafeFragment","Fragment","renderRouteNotFound","ScriptOnce","ScrollRestoration","userKey","restoreScrollOptions","Match","matchState","PendingComponent","pendingElement","routeErrorComponent","routeOnCatch","routeNotFoundComponent","resolvedNoSsr","ResolvedSuspenseBoundary","ResolvedCatchBoundary","ResolvedNotFoundBoundary","parentRouteId","ShellComponent","MatchInner","OnRendered","prevLocationRef","match2","routeId2","remountFn","remountDeps","out","Outlet","pendingMinMs","minPendingPromise","RouteErrorComponent","parentGlobalNotFound","childMatchId","nextMatch","Matches","ResolvedSuspense","MatchesInner","matchComponent","useMatchRoute","pending","includeSearch","MatchRoute","useMatches","useParentMatches","contextMatchId","useChildMatches","createRouter","Router","RouterContextProvider","provider","RouterProvider","useScrollRestoration","_props","useElementScrollRestoration","_resolveBlockerOpts","shouldBlock2","useBlocker","shouldBlockFn","enableBeforeUnload","withResolver","resolver","setResolver","blockerFnComposed","blockerFnArgs","parsedLocation","canNavigateAsync","_resolvePromptBlockerArgs","Block","useRouteContext","useLocation","useCanGoBack","Asset","tag","attrs","Script","script","createElement","useTags","routeMeta","resultMeta","metaByAttribute","title","metas","attribute","constructed","link","manifest","assets","asset","preloadMeta","preloadMeta2","uniqBy","HeadContent","seen","Scripts","assetScripts","assetScripts2","allScripts"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62]}