From 64f8b2fd2c42cc5f0c305ff14a57f3f211af5984 Mon Sep 17 00:00:00 2001 From: Bas van Rossem Date: Wed, 17 Jun 2026 14:38:46 +0200 Subject: [PATCH] chore: remove legacy apps/mobile, apps/web, publisher and dead root config --- .easignore | 41 - .eslintignore | 1 - .yarn/patches/@expo+cli+54.0.1.patch | 15 - .yarn/patches/@expo+metro-runtime+6.1.2.patch | 24 - ...eact-native-community+netinfo+11.4.1.patch | 42 - .yarn/patches/expo-router+6.0.11.patch | 506 - .yarn/patches/expo-store-review+9.0.8.patch | 375 - .yarn/patches/react-native+0.81.4.patch | 30 - .../react-native-purchases+9.6.1.patch | 17 - .../react-native-purchases-ui+9.6.1.patch | 59 - ...act-native-web-refresh-control+1.1.2.patch | 24 - .yarn/patches/sonner-native+0.21.0.patch | 43 - apps/mobile/.easignore | 38 - apps/mobile/.gitignore | 44 - apps/mobile/App.tsx | 16 - apps/mobile/App.web.tsx | 175 - .../__create/handle-resolve-request-error.js | 79 - .../mobile/__create/report-error-to-remote.js | 53 - .../__create/report-error-to-remote.test.js | 115 - apps/mobile/__create/sentry.ts | 78 - .../mobile/__create/testflight-logger.test.ts | 428 - apps/mobile/__create/testflight-logger.ts | 292 - apps/mobile/app.json | 82 - apps/mobile/assets/images/adaptive-icon.png | Bin 20881 -> 0 bytes apps/mobile/assets/images/favicon.png | Bin 1142 -> 0 bytes apps/mobile/assets/images/icon.png | Bin 448141 -> 0 bytes apps/mobile/assets/images/splash-icon.png | Bin 20881 -> 0 bytes apps/mobile/babel.config.js | 6 - apps/mobile/eas.json | 40 - apps/mobile/entrypoint.ts | 3 - apps/mobile/fontawesome.css | 8320 ------- apps/mobile/global.css | 5 - apps/mobile/global.d.ts | 33 - apps/mobile/index.tsx | 30 - apps/mobile/index.web.tsx | 127 - apps/mobile/metro.config.js | 233 - apps/mobile/package.json | 132 - apps/mobile/patches/react-native+0.81.4.patch | 22 - .../native/google-mobile-ads.native.tsx | 424 - .../native/react-native-purchases.native.tsx | 179 - .../polyfills/native/textinput.native.tsx | 16 - .../polyfills/shared/empty-component.tsx | 1 - apps/mobile/polyfills/shared/expo-image.tsx | 99 - .../mobile/polyfills/web/SafeAreaView.web.tsx | 38 - apps/mobile/polyfills/web/alerts.web.tsx | 521 - apps/mobile/polyfills/web/camera.web.tsx | 241 - apps/mobile/polyfills/web/clipboard.web.ts | 49 - apps/mobile/polyfills/web/contacts.web.ts | 299 - .../polyfills/web/documentPicker.web.ts | 94 - apps/mobile/polyfills/web/expo-font.web.ts | 10 - .../polyfills/web/google-mobile-ads.web.tsx | 424 - apps/mobile/polyfills/web/haptics.web.ts | 61 - apps/mobile/polyfills/web/imagePicker.web.ts | 203 - apps/mobile/polyfills/web/linking.web.ts | 53 - apps/mobile/polyfills/web/location.web.ts | 205 - apps/mobile/polyfills/web/maps.web.tsx | 51 - .../polyfills/web/notifications.web.tsx | 80 - .../polyfills/web/refreshControl.web.tsx | 3 - .../polyfills/web/safeAreaContext.web.tsx | 25 - apps/mobile/polyfills/web/scrollview.web.tsx | 23 - apps/mobile/polyfills/web/secureStore.web.ts | 111 - apps/mobile/polyfills/web/statusBar.web.tsx | 72 - apps/mobile/polyfills/web/tabbar.web.tsx | 24 - apps/mobile/polyfills/web/webBrowser.web.ts | 56 - apps/mobile/polyfills/web/webview.web.tsx | 109 - apps/mobile/postcss.config.js | 6 - apps/mobile/public/canvaskit.wasm | Bin 9325139 -> 0 bytes apps/mobile/src/__create/ErrorBoundary.tsx | 105 - apps/mobile/src/__create/analytics.ts | 84 - .../mobile/src/__create/anything-menu.ios.tsx | 19 - apps/mobile/src/__create/anything-menu.tsx | 586 - apps/mobile/src/__create/fetch.ts | 106 - apps/mobile/src/__create/placeholder.svg | 20 - apps/mobile/src/__create/polyfills.ts | 3 - apps/mobile/src/app/(tabs)/_layout.tsx | 46 - apps/mobile/src/app/(tabs)/history.tsx | 233 - apps/mobile/src/app/(tabs)/index.tsx | 658 - apps/mobile/src/app/(tabs)/tasks.tsx | 574 - apps/mobile/src/app/+not-found.tsx | 436 - apps/mobile/src/app/_layout.tsx | 71 - apps/mobile/src/app/index.tsx | 3 - .../KeyboardAvoidingAnimatedView.tsx | 147 - apps/mobile/src/utils/auth/AuthWebView.tsx | 163 - apps/mobile/src/utils/auth/getSession.ts | 40 - apps/mobile/src/utils/auth/index.ts | 14 - apps/mobile/src/utils/auth/store.ts | 95 - apps/mobile/src/utils/auth/useAuth.ts | 101 - apps/mobile/src/utils/auth/useAuthModal.tsx | 104 - apps/mobile/src/utils/auth/useUser.ts | 24 - .../__mocks__/react-native-purchases.ts | 17 - .../iap/__tests__/__mocks__/react-native.ts | 4 - .../iap/__tests__/useInAppPurchase.test.ts | 382 - apps/mobile/src/utils/iap/index.ts | 2 - apps/mobile/src/utils/iap/store.ts | 19 - apps/mobile/src/utils/iap/useInAppPurchase.ts | 211 - .../src/utils/useHandleStreamResponse.ts | 34 - apps/mobile/src/utils/usePreventBack.ts | 35 - apps/mobile/src/utils/useUpload.ts | 149 - apps/mobile/tailwind.config.js | 7 - apps/mobile/tsconfig.json | 17 - apps/web/.gitignore | 16 - apps/web/components.json | 19 - apps/web/db/schema.sql | 35 - apps/web/global.d.ts | 5 - apps/web/next.config.js | 28 - apps/web/package.json | 48 - apps/web/postcss.config.mjs | 7 - apps/web/public/favicon.png | Bin 3477 -> 0 bytes apps/web/src/app/account/logout/page.tsx | 59 - apps/web/src/app/account/signin/page.tsx | 118 - apps/web/src/app/account/signup/page.tsx | 124 - .../src/app/account/social-dev-shim/page.tsx | 168 - .../__create/check-social-secrets/route.ts | 29 - apps/web/src/app/api/auth/[...all]/route.ts | 12 - .../app/api/auth/expo-web-success/route.ts | 53 - apps/web/src/app/api/auth/token/route.ts | 28 - apps/web/src/app/api/export/route.ts | 87 - apps/web/src/app/api/logs/route.ts | 47 - apps/web/src/app/api/session/route.ts | 17 - apps/web/src/app/api/tasks/[id]/route.ts | 38 - apps/web/src/app/api/tasks/route.ts | 33 - apps/web/src/app/api/utils/sql.ts | 25 - apps/web/src/app/api/vitest.config.ts | 8 - apps/web/src/app/global.css | 122 - apps/web/src/app/layout.tsx | 30 - apps/web/src/app/not-found.tsx | 174 - apps/web/src/app/page.tsx | 3 - apps/web/src/app/providers.tsx | 44 - .../src/components/SocialSignInButtons.tsx | 107 - apps/web/src/components/ui/accordion.tsx | 66 - apps/web/src/components/ui/alert-dialog.tsx | 196 - apps/web/src/components/ui/alert.tsx | 66 - apps/web/src/components/ui/avatar.tsx | 109 - apps/web/src/components/ui/badge.tsx | 48 - apps/web/src/components/ui/breadcrumb.tsx | 109 - apps/web/src/components/ui/button-group.tsx | 83 - apps/web/src/components/ui/button.tsx | 64 - apps/web/src/components/ui/calendar.tsx | 220 - apps/web/src/components/ui/card.tsx | 92 - apps/web/src/components/ui/chart.tsx | 374 - apps/web/src/components/ui/checkbox.tsx | 32 - apps/web/src/components/ui/combobox.tsx | 310 - apps/web/src/components/ui/dialog.tsx | 158 - apps/web/src/components/ui/drawer.tsx | 135 - apps/web/src/components/ui/dropdown-menu.tsx | 257 - apps/web/src/components/ui/empty.tsx | 104 - apps/web/src/components/ui/field.tsx | 248 - apps/web/src/components/ui/form.tsx | 167 - apps/web/src/components/ui/input-group.tsx | 170 - apps/web/src/components/ui/input.tsx | 21 - apps/web/src/components/ui/item.tsx | 193 - apps/web/src/components/ui/label.tsx | 24 - apps/web/src/components/ui/pagination.tsx | 127 - apps/web/src/components/ui/popover.tsx | 89 - apps/web/src/components/ui/progress.tsx | 31 - apps/web/src/components/ui/radio-group.tsx | 45 - apps/web/src/components/ui/scroll-area.tsx | 58 - apps/web/src/components/ui/select.tsx | 190 - apps/web/src/components/ui/separator.tsx | 28 - apps/web/src/components/ui/sheet.tsx | 143 - apps/web/src/components/ui/sidebar.tsx | 726 - apps/web/src/components/ui/skeleton.tsx | 13 - apps/web/src/components/ui/slider.tsx | 63 - apps/web/src/components/ui/sonner.tsx | 40 - apps/web/src/components/ui/spinner.tsx | 16 - apps/web/src/components/ui/switch.tsx | 35 - apps/web/src/components/ui/table.tsx | 116 - apps/web/src/components/ui/tabs.tsx | 91 - apps/web/src/components/ui/textarea.tsx | 18 - apps/web/src/components/ui/toggle-group.tsx | 83 - apps/web/src/components/ui/toggle.tsx | 47 - apps/web/src/components/ui/tooltip.tsx | 57 - apps/web/src/hooks/use-mobile.ts | 19 - apps/web/src/lib/auth-client.ts | 13 - apps/web/src/lib/auth.ts | 156 - apps/web/src/lib/utils.ts | 6 - apps/web/src/utils/useHandleStreamResponse.ts | 41 - apps/web/src/utils/useUpload.ts | 119 - apps/web/test/setupTests.ts | 1 - apps/web/tsconfig.json | 33 - apps/web/vitest.config.ts | 22 - package.json | 10 +- previous work.md | 279 - publisher/.yarnrc.yml | 1 - publisher/assert-package-requirements.mjs | 40 - publisher/package.json | 11 - publisher/run-next-build.mjs | 35 - publisher/yarn.lock | 2929 --- yarn.lock | 18345 +--------------- 189 files changed, 28 insertions(+), 48292 deletions(-) delete mode 100644 .easignore delete mode 100644 .eslintignore delete mode 100644 .yarn/patches/@expo+cli+54.0.1.patch delete mode 100644 .yarn/patches/@expo+metro-runtime+6.1.2.patch delete mode 100644 .yarn/patches/@react-native-community+netinfo+11.4.1.patch delete mode 100644 .yarn/patches/expo-router+6.0.11.patch delete mode 100644 .yarn/patches/expo-store-review+9.0.8.patch delete mode 100644 .yarn/patches/react-native+0.81.4.patch delete mode 100644 .yarn/patches/react-native-purchases+9.6.1.patch delete mode 100644 .yarn/patches/react-native-purchases-ui+9.6.1.patch delete mode 100644 .yarn/patches/react-native-web-refresh-control+1.1.2.patch delete mode 100644 .yarn/patches/sonner-native+0.21.0.patch delete mode 100644 apps/mobile/.easignore delete mode 100644 apps/mobile/.gitignore delete mode 100644 apps/mobile/App.tsx delete mode 100644 apps/mobile/App.web.tsx delete mode 100644 apps/mobile/__create/handle-resolve-request-error.js delete mode 100644 apps/mobile/__create/report-error-to-remote.js delete mode 100644 apps/mobile/__create/report-error-to-remote.test.js delete mode 100644 apps/mobile/__create/sentry.ts delete mode 100644 apps/mobile/__create/testflight-logger.test.ts delete mode 100644 apps/mobile/__create/testflight-logger.ts delete mode 100644 apps/mobile/app.json delete mode 100644 apps/mobile/assets/images/adaptive-icon.png delete mode 100644 apps/mobile/assets/images/favicon.png delete mode 100644 apps/mobile/assets/images/icon.png delete mode 100644 apps/mobile/assets/images/splash-icon.png delete mode 100644 apps/mobile/babel.config.js delete mode 100644 apps/mobile/eas.json delete mode 100644 apps/mobile/entrypoint.ts delete mode 100644 apps/mobile/fontawesome.css delete mode 100644 apps/mobile/global.css delete mode 100644 apps/mobile/global.d.ts delete mode 100644 apps/mobile/index.tsx delete mode 100644 apps/mobile/index.web.tsx delete mode 100644 apps/mobile/metro.config.js delete mode 100644 apps/mobile/package.json delete mode 100644 apps/mobile/patches/react-native+0.81.4.patch delete mode 100644 apps/mobile/polyfills/native/google-mobile-ads.native.tsx delete mode 100644 apps/mobile/polyfills/native/react-native-purchases.native.tsx delete mode 100644 apps/mobile/polyfills/native/textinput.native.tsx delete mode 100644 apps/mobile/polyfills/shared/empty-component.tsx delete mode 100644 apps/mobile/polyfills/shared/expo-image.tsx delete mode 100644 apps/mobile/polyfills/web/SafeAreaView.web.tsx delete mode 100644 apps/mobile/polyfills/web/alerts.web.tsx delete mode 100644 apps/mobile/polyfills/web/camera.web.tsx delete mode 100644 apps/mobile/polyfills/web/clipboard.web.ts delete mode 100644 apps/mobile/polyfills/web/contacts.web.ts delete mode 100644 apps/mobile/polyfills/web/documentPicker.web.ts delete mode 100644 apps/mobile/polyfills/web/expo-font.web.ts delete mode 100644 apps/mobile/polyfills/web/google-mobile-ads.web.tsx delete mode 100644 apps/mobile/polyfills/web/haptics.web.ts delete mode 100644 apps/mobile/polyfills/web/imagePicker.web.ts delete mode 100644 apps/mobile/polyfills/web/linking.web.ts delete mode 100644 apps/mobile/polyfills/web/location.web.ts delete mode 100644 apps/mobile/polyfills/web/maps.web.tsx delete mode 100644 apps/mobile/polyfills/web/notifications.web.tsx delete mode 100644 apps/mobile/polyfills/web/refreshControl.web.tsx delete mode 100644 apps/mobile/polyfills/web/safeAreaContext.web.tsx delete mode 100644 apps/mobile/polyfills/web/scrollview.web.tsx delete mode 100644 apps/mobile/polyfills/web/secureStore.web.ts delete mode 100644 apps/mobile/polyfills/web/statusBar.web.tsx delete mode 100644 apps/mobile/polyfills/web/tabbar.web.tsx delete mode 100644 apps/mobile/polyfills/web/webBrowser.web.ts delete mode 100644 apps/mobile/polyfills/web/webview.web.tsx delete mode 100644 apps/mobile/postcss.config.js delete mode 100644 apps/mobile/public/canvaskit.wasm delete mode 100644 apps/mobile/src/__create/ErrorBoundary.tsx delete mode 100644 apps/mobile/src/__create/analytics.ts delete mode 100644 apps/mobile/src/__create/anything-menu.ios.tsx delete mode 100644 apps/mobile/src/__create/anything-menu.tsx delete mode 100644 apps/mobile/src/__create/fetch.ts delete mode 100644 apps/mobile/src/__create/placeholder.svg delete mode 100644 apps/mobile/src/__create/polyfills.ts delete mode 100644 apps/mobile/src/app/(tabs)/_layout.tsx delete mode 100644 apps/mobile/src/app/(tabs)/history.tsx delete mode 100644 apps/mobile/src/app/(tabs)/index.tsx delete mode 100644 apps/mobile/src/app/(tabs)/tasks.tsx delete mode 100644 apps/mobile/src/app/+not-found.tsx delete mode 100644 apps/mobile/src/app/_layout.tsx delete mode 100644 apps/mobile/src/app/index.tsx delete mode 100644 apps/mobile/src/components/KeyboardAvoidingAnimatedView.tsx delete mode 100644 apps/mobile/src/utils/auth/AuthWebView.tsx delete mode 100644 apps/mobile/src/utils/auth/getSession.ts delete mode 100644 apps/mobile/src/utils/auth/index.ts delete mode 100644 apps/mobile/src/utils/auth/store.ts delete mode 100644 apps/mobile/src/utils/auth/useAuth.ts delete mode 100644 apps/mobile/src/utils/auth/useAuthModal.tsx delete mode 100644 apps/mobile/src/utils/auth/useUser.ts delete mode 100644 apps/mobile/src/utils/iap/__tests__/__mocks__/react-native-purchases.ts delete mode 100644 apps/mobile/src/utils/iap/__tests__/__mocks__/react-native.ts delete mode 100644 apps/mobile/src/utils/iap/__tests__/useInAppPurchase.test.ts delete mode 100644 apps/mobile/src/utils/iap/index.ts delete mode 100644 apps/mobile/src/utils/iap/store.ts delete mode 100644 apps/mobile/src/utils/iap/useInAppPurchase.ts delete mode 100644 apps/mobile/src/utils/useHandleStreamResponse.ts delete mode 100644 apps/mobile/src/utils/usePreventBack.ts delete mode 100644 apps/mobile/src/utils/useUpload.ts delete mode 100644 apps/mobile/tailwind.config.js delete mode 100644 apps/mobile/tsconfig.json delete mode 100644 apps/web/.gitignore delete mode 100644 apps/web/components.json delete mode 100644 apps/web/db/schema.sql delete mode 100644 apps/web/global.d.ts delete mode 100644 apps/web/next.config.js delete mode 100644 apps/web/package.json delete mode 100644 apps/web/postcss.config.mjs delete mode 100644 apps/web/public/favicon.png delete mode 100644 apps/web/src/app/account/logout/page.tsx delete mode 100644 apps/web/src/app/account/signin/page.tsx delete mode 100644 apps/web/src/app/account/signup/page.tsx delete mode 100644 apps/web/src/app/account/social-dev-shim/page.tsx delete mode 100644 apps/web/src/app/api/__create/check-social-secrets/route.ts delete mode 100644 apps/web/src/app/api/auth/[...all]/route.ts delete mode 100644 apps/web/src/app/api/auth/expo-web-success/route.ts delete mode 100644 apps/web/src/app/api/auth/token/route.ts delete mode 100644 apps/web/src/app/api/export/route.ts delete mode 100644 apps/web/src/app/api/logs/route.ts delete mode 100644 apps/web/src/app/api/session/route.ts delete mode 100644 apps/web/src/app/api/tasks/[id]/route.ts delete mode 100644 apps/web/src/app/api/tasks/route.ts delete mode 100644 apps/web/src/app/api/utils/sql.ts delete mode 100644 apps/web/src/app/api/vitest.config.ts delete mode 100644 apps/web/src/app/global.css delete mode 100644 apps/web/src/app/layout.tsx delete mode 100644 apps/web/src/app/not-found.tsx delete mode 100644 apps/web/src/app/page.tsx delete mode 100644 apps/web/src/app/providers.tsx delete mode 100644 apps/web/src/components/SocialSignInButtons.tsx delete mode 100644 apps/web/src/components/ui/accordion.tsx delete mode 100644 apps/web/src/components/ui/alert-dialog.tsx delete mode 100644 apps/web/src/components/ui/alert.tsx delete mode 100644 apps/web/src/components/ui/avatar.tsx delete mode 100644 apps/web/src/components/ui/badge.tsx delete mode 100644 apps/web/src/components/ui/breadcrumb.tsx delete mode 100644 apps/web/src/components/ui/button-group.tsx delete mode 100644 apps/web/src/components/ui/button.tsx delete mode 100644 apps/web/src/components/ui/calendar.tsx delete mode 100644 apps/web/src/components/ui/card.tsx delete mode 100644 apps/web/src/components/ui/chart.tsx delete mode 100644 apps/web/src/components/ui/checkbox.tsx delete mode 100644 apps/web/src/components/ui/combobox.tsx delete mode 100644 apps/web/src/components/ui/dialog.tsx delete mode 100644 apps/web/src/components/ui/drawer.tsx delete mode 100644 apps/web/src/components/ui/dropdown-menu.tsx delete mode 100644 apps/web/src/components/ui/empty.tsx delete mode 100644 apps/web/src/components/ui/field.tsx delete mode 100644 apps/web/src/components/ui/form.tsx delete mode 100644 apps/web/src/components/ui/input-group.tsx delete mode 100644 apps/web/src/components/ui/input.tsx delete mode 100644 apps/web/src/components/ui/item.tsx delete mode 100644 apps/web/src/components/ui/label.tsx delete mode 100644 apps/web/src/components/ui/pagination.tsx delete mode 100644 apps/web/src/components/ui/popover.tsx delete mode 100644 apps/web/src/components/ui/progress.tsx delete mode 100644 apps/web/src/components/ui/radio-group.tsx delete mode 100644 apps/web/src/components/ui/scroll-area.tsx delete mode 100644 apps/web/src/components/ui/select.tsx delete mode 100644 apps/web/src/components/ui/separator.tsx delete mode 100644 apps/web/src/components/ui/sheet.tsx delete mode 100644 apps/web/src/components/ui/sidebar.tsx delete mode 100644 apps/web/src/components/ui/skeleton.tsx delete mode 100644 apps/web/src/components/ui/slider.tsx delete mode 100644 apps/web/src/components/ui/sonner.tsx delete mode 100644 apps/web/src/components/ui/spinner.tsx delete mode 100644 apps/web/src/components/ui/switch.tsx delete mode 100644 apps/web/src/components/ui/table.tsx delete mode 100644 apps/web/src/components/ui/tabs.tsx delete mode 100644 apps/web/src/components/ui/textarea.tsx delete mode 100644 apps/web/src/components/ui/toggle-group.tsx delete mode 100644 apps/web/src/components/ui/toggle.tsx delete mode 100644 apps/web/src/components/ui/tooltip.tsx delete mode 100644 apps/web/src/hooks/use-mobile.ts delete mode 100644 apps/web/src/lib/auth-client.ts delete mode 100644 apps/web/src/lib/auth.ts delete mode 100644 apps/web/src/lib/utils.ts delete mode 100644 apps/web/src/utils/useHandleStreamResponse.ts delete mode 100644 apps/web/src/utils/useUpload.ts delete mode 100644 apps/web/test/setupTests.ts delete mode 100644 apps/web/tsconfig.json delete mode 100644 apps/web/vitest.config.ts delete mode 100644 previous work.md delete mode 100644 publisher/.yarnrc.yml delete mode 100644 publisher/assert-package-requirements.mjs delete mode 100644 publisher/package.json delete mode 100644 publisher/run-next-build.mjs delete mode 100644 publisher/yarn.lock diff --git a/.easignore b/.easignore deleted file mode 100644 index 4709527..0000000 --- a/.easignore +++ /dev/null @@ -1,41 +0,0 @@ -# Applied when EAS bundles the workspace root for an iOS build of apps/mobile -# (see apps/flux/core/src/services/interactive-terminal/create-shell.ts). -# Keep yarn-workspace context (root package.json, yarn.lock, .yarnrc.yml, -# .yarn/patches/) and apps/mobile/ — exclude everything else so EAS uploads -# stay small. - -node_modules/ -**/node_modules/ -.yarn/cache/ -.yarn/install-state.gz -.yarn/unplugged/ - -apps/web/ - -config/ -shared/ -# Re-include the metro polyfills directory: `shared/` above is unanchored and -# would otherwise match `apps/mobile/polyfills/shared/`, which holds the -# expo-image and empty-component shims that metro.config.js redirects to via -# SHARED_ALIASES. Without these files in the EAS upload, EAGER_BUNDLE fails -# with `Unable to resolve module expo-image` on every file that imports it. -!apps/mobile/polyfills/shared/ -examples/ -playwright-report/ -test-results/ -caches/ - -Dockerfile -docker-compose.test.yml -README.md -.dockerignore -.eslintignore -.gitignore -.oxfmtrc.json -.oxlintrc.json - -*.log -*.tgz -.env -.env.* -.DS_Store diff --git a/.eslintignore b/.eslintignore deleted file mode 100644 index 72e8ffc..0000000 --- a/.eslintignore +++ /dev/null @@ -1 +0,0 @@ -* diff --git a/.yarn/patches/@expo+cli+54.0.1.patch b/.yarn/patches/@expo+cli+54.0.1.patch deleted file mode 100644 index debae97..0000000 --- a/.yarn/patches/@expo+cli+54.0.1.patch +++ /dev/null @@ -1,15 +0,0 @@ -diff --git a/build/src/start/server/middleware/ExpoGoManifestHandlerMiddleware.js b/build/src/start/server/middleware/ExpoGoManifestHandlerMiddleware.js -index b5cba1b..2cbb2a5 100644 ---- a/build/src/start/server/middleware/ExpoGoManifestHandlerMiddleware.js -+++ b/build/src/start/server/middleware/ExpoGoManifestHandlerMiddleware.js -@@ -143,7 +143,9 @@ class ExpoGoManifestHandlerMiddleware extends _ManifestMiddleware.ManifestMiddle - codeSigningInfo - }); - const expoUpdatesManifest = { -- id: _crypto().default.randomUUID(), -+ id: _crypto().default.randomUUID({ -+ disableEntropyCache: true -+ }), - createdAt: new Date().toISOString(), - runtimeVersion, - launchAsset: { diff --git a/.yarn/patches/@expo+metro-runtime+6.1.2.patch b/.yarn/patches/@expo+metro-runtime+6.1.2.patch deleted file mode 100644 index 4ac6b52..0000000 --- a/.yarn/patches/@expo+metro-runtime+6.1.2.patch +++ /dev/null @@ -1,24 +0,0 @@ -diff --git a/src/error-overlay/ErrorOverlay.tsx b/src/error-overlay/ErrorOverlay.tsx -index 983dc52..bbe737c 100644 ---- a/src/error-overlay/ErrorOverlay.tsx -+++ b/src/error-overlay/ErrorOverlay.tsx -@@ -30,6 +30,7 @@ const HEADER_TITLE_MAP = { - export function LogBoxInspectorContainer() { - const { selectedLogIndex, logs } = useLogs(); - const log = logs[selectedLogIndex]; -+ return null; - if (log == null) { - return null; - } -diff --git a/src/error-overlay/toast/ErrorToast.tsx b/src/error-overlay/toast/ErrorToast.tsx -index 87a0c8b..c044c8f 100644 ---- a/src/error-overlay/toast/ErrorToast.tsx -+++ b/src/error-overlay/toast/ErrorToast.tsx -@@ -34,6 +34,7 @@ export function ErrorToast(props: Props) { - - useSymbolicatedLog(log); - -+ return null; - return ( - - diff --git a/.yarn/patches/@react-native-community+netinfo+11.4.1.patch b/.yarn/patches/@react-native-community+netinfo+11.4.1.patch deleted file mode 100644 index adc2d8a..0000000 --- a/.yarn/patches/@react-native-community+netinfo+11.4.1.patch +++ /dev/null @@ -1,42 +0,0 @@ -diff --git a/src/internal/nativeInterface.ts b/src/internal/nativeInterface.ts -index 8b514f4..9135364 100644 ---- a/src/internal/nativeInterface.ts -+++ b/src/internal/nativeInterface.ts -@@ -7,28 +7,15 @@ - * @format - */ - --import {NativeEventEmitter} from 'react-native'; -+import { NativeEventEmitter } from 'react-native'; - import RNCNetInfo from './nativeModule'; - --// Produce an error if we don't have the native module --if (!RNCNetInfo) { -- throw new Error(`@react-native-community/netinfo: NativeModule.RNCNetInfo is null. To fix this issue try these steps: -- --• Run \`react-native link @react-native-community/netinfo\` in the project root. --• Rebuild and re-run the app. --• If you are using CocoaPods on iOS, run \`pod install\` in the \`ios\` directory and then rebuild and re-run the app. You may also need to re-open Xcode to get the new pods. --• Check that the library was linked correctly when you used the link command by running through the manual installation instructions in the README. --* If you are getting this error while unit testing you need to mock the native module. Follow the guide in the README. -- --If none of these fix the issue, please open an issue on the Github repository: https://github.com/react-native-community/react-native-netinfo`); --} -- - /** - * We export the native interface in this way to give easy shared access to it between the - * JavaScript code and the tests - */ - let nativeEventEmitter: NativeEventEmitter | null = null; --const nativeInterface = Object.assign(RNCNetInfo, { -+const nativeInterface = RNCNetInfo ? Object.assign(RNCNetInfo, { - get eventEmitter(): NativeEventEmitter { - if (!nativeEventEmitter) { - // eslint-disable-next-line @typescript-eslint/ban-ts-comment -@@ -39,5 +26,5 @@ const nativeInterface = Object.assign(RNCNetInfo, { - /// @ts-ignore - return nativeEventEmitter; - }, --}); -+}) : {}; - export default nativeInterface; diff --git a/.yarn/patches/expo-router+6.0.11.patch b/.yarn/patches/expo-router+6.0.11.patch deleted file mode 100644 index 1da7e25..0000000 --- a/.yarn/patches/expo-router+6.0.11.patch +++ /dev/null @@ -1,506 +0,0 @@ -diff --git a/assets/native-tabs.module.css b/assets/native-tabs.module.css -index f29cec5..0d71dad 100644 ---- a/assets/native-tabs.module.css -+++ b/assets/native-tabs.module.css -@@ -22,22 +22,27 @@ - } - - .navigationMenuRoot { -- top: 24px; -+ bottom: 24px; - left: 50%; - transform: translateX(-50%); - position: fixed; - z-index: 10; - display: flex; -- background-color: var(--expo-router-tabs-background-color, #272727); -- height: 40px; -- border-radius: 25px; -+ background-color: var(--expo-router-tabs-background-color, rgba(30, 30, 30, 0.88)); -+ backdrop-filter: blur(20px); -+ -webkit-backdrop-filter: blur(20px); -+ height: 56px; -+ border-radius: 28px; - align-items: center; -- justify-content: flex-start; -- padding: 5px; -+ justify-content: center; -+ padding: 4px; - box-sizing: border-box; - margin: 0; -- max-width: 90vw; -- overflow-x: auto; -+ max-width: 95vw; -+ overflow: hidden; -+ border: 1px solid rgba(255, 255, 255, 0.12); -+ box-shadow: 0 8px 32px rgba(0, 0, 0, 0.3), inset 0 1px 0 rgba(255, 255, 255, 0.08); -+ gap: 2px; - } - - .navigationMenuTrigger { -@@ -48,36 +53,64 @@ - height: 100%; - background-color: transparent; - border: none; -- margin: 0; -- height: 100%; -- border-radius: 20px; -- padding: 0 20px; -+ border-radius: 24px; -+ padding: 6px 16px; -+ transition: background-color 0.2s ease, backdrop-filter 0.2s ease; - cursor: pointer; -- outline-color: var(--expo-router-tabs-tab-outline-color, #444444); -+ outline-color: var(--expo-router-tabs-tab-outline-color, rgba(255, 255, 255, 0.2)); - position: relative; -+ display: flex; -+ flex-direction: column; -+ align-items: center; -+ justify-content: center; -+ gap: 2px; -+} -+ -+.tabIcon { -+ display: flex; -+ align-items: center; -+ justify-content: center; -+ color: var(--expo-router-tabs-icon-color, rgba(255, 255, 255, 0.6)); -+ font-size: 18px; -+ width: 20px; -+ height: 20px; -+} -+ -+.tabIcon > * { -+ color: inherit; -+} -+ -+.navigationMenuTrigger[data-state="active"] .tabIcon { -+ color: var(--expo-router-tabs-active-icon-color, #ffffff); - } - - .navigationMenuTrigger[data-state="active"] { -- background-color: var(--expo-router-tabs-active-background-color, #444444); -+ background-color: var(--expo-router-tabs-active-background-color, rgba(255, 255, 255, 0.15)); -+ backdrop-filter: blur(10px); -+ -webkit-backdrop-filter: blur(10px); -+ box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1); - } - - .tabText { - font-weight: var(--expo-router-tabs-font-weight, 500); -- font-size: var(--expo-router-tabs-font-size, 15px); -+ font-size: var(--expo-router-tabs-font-size, 11px); - font-family: var(--expo-router-tabs-font-family); - font-style: var(--expo-router-tabs-font-style, normal); - opacity: var(--expo-router-tabs-text-opacity, 1); -- color: var(--expo-router-tabs-text-color, #8b8b8b); -+ color: var(--expo-router-tabs-text-color, rgba(255, 255, 255, 0.6)); - white-space: nowrap; - } - - .navigationMenuTrigger[data-state="active"] .tabText { - color: var(--expo-router-tabs-active-text-color, #ffffff); -- font-size: var(--expo-router-tabs-active-font-size, var(--expo-router-tabs-font-size, 15px)); -+} -+ -+.navigationMenuTrigger:not([data-state="active"]):hover { -+ background-color: rgba(255, 255, 255, 0.08); - } - - .navigationMenuTrigger:not([data-state="active"]) .tabText:hover { -- opacity: var(--expo-router-tabs-text-hover-opacity, 0.6); -+ opacity: var(--expo-router-tabs-text-hover-opacity, 0.9); - } - - .tabBadge { -@@ -107,3 +140,101 @@ - min-height: var(--expo-router-tabs-local-badge-size); - border-radius: calc(var(--expo-router-tabs-local-badge-size) / 2); - } -+ -+/* More screen styles - Apple Settings inspired */ -+.moreScreen { -+ flex: 1; -+ display: flex; -+ flex-direction: column; -+ background-color: #000000; -+ max-height: 100%; -+ max-width: 100%; -+ overflow-y: auto; -+ padding-bottom: 120px; -+} -+ -+.moreScreenHeader { -+ padding: 60px 20px 8px; -+} -+ -+.moreScreenTitle { -+ font-family: var(--expo-router-tabs-font-family); -+ font-size: 34px; -+ font-weight: 700; -+ color: #ffffff; -+ margin: 0; -+ letter-spacing: 0.37px; -+} -+ -+.moreScreenContent { -+ display: flex; -+ flex-direction: column; -+ padding: 20px 20px 0; -+} -+ -+.moreScreenGroup { -+ background-color: #1c1c1e; -+ border-radius: 10px; -+ overflow: hidden; -+} -+ -+.moreScreenItem { -+ display: flex; -+ align-items: center; -+ gap: 12px; -+ padding: 8px 16px 8px 12px; -+ min-height: 44px; -+ border: none; -+ background-color: transparent; -+ cursor: pointer; -+ font-family: var(--expo-router-tabs-font-family); -+ text-align: left; -+ transition: background-color 0.1s ease; -+ position: relative; -+ width: 100%; -+ box-sizing: border-box; -+} -+ -+.moreScreenItem:hover { -+ background-color: rgba(255, 255, 255, 0.08); -+} -+ -+.moreScreenItem:active { -+ background-color: rgba(255, 255, 255, 0.12); -+} -+ -+/* Separator line between items */ -+.moreScreenItem:not(:last-child)::after { -+ content: ''; -+ position: absolute; -+ bottom: 0; -+ left: 54px; -+ right: 0; -+ height: 0.5px; -+ background-color: rgba(84, 84, 88, 0.65); -+} -+ -+.moreScreenItemIcon { -+ display: flex; -+ align-items: center; -+ justify-content: center; -+ width: 30px; -+ height: 30px; -+ border-radius: 6px; -+ background: linear-gradient(180deg, rgba(255, 255, 255, 0.17) 0%, rgba(255, 255, 255, 0) 100%), #636366; -+ color: #ffffff; -+ flex-shrink: 0; -+} -+ -+.moreScreenItemLabel { -+ flex: 1; -+ font-size: 17px; -+ font-weight: 400; -+ color: #ffffff; -+ letter-spacing: -0.41px; -+} -+ -+.moreScreenItemChevron { -+ color: rgba(235, 235, 245, 0.3); -+ flex-shrink: 0; -+} -diff --git a/build/getLinkingConfig.js b/build/getLinkingConfig.js -index 2a0ee73..302afc0 100644 ---- a/build/getLinkingConfig.js -+++ b/build/getLinkingConfig.js -@@ -8,6 +8,7 @@ const constants_1 = require("./constants"); - const getReactNavigationConfig_1 = require("./getReactNavigationConfig"); - const getRoutesRedirects_1 = require("./getRoutesRedirects"); - const linking_1 = require("./link/linking"); -+const isAnythingApp = expo_modules_core_1.Platform.OS === 'ios' && !globalThis.expo?.modules?.ExpoGo; - function getNavigationConfig(routes, metaOnly, { sitemap, notFound }) { - const config = (0, getReactNavigationConfig_1.getReactNavigationConfig)(routes, metaOnly); - const sitemapRoute = (() => { -@@ -61,7 +62,10 @@ function getLinkingConfig(routes, context, getRouteInfo, { metaOnly = true, serv - // Expo Router calls `getInitialURL` twice, which may confuse the user if they provide a custom `getInitialURL`. - // Therefor we memoize the result. - if (!hasCachedInitialUrl) { -- if (expo_modules_core_1.Platform.OS === 'web') { -+ if (isAnythingApp) { -+ initialUrl = '/'; -+ } -+ else if (expo_modules_core_1.Platform.OS === 'web') { - initialUrl = serverUrl ?? (0, linking_1.getInitialURL)(); - } - else { -diff --git a/build/link/linking.js b/build/link/linking.js -index b9535b5..ec99c96 100644 ---- a/build/link/linking.js -+++ b/build/link/linking.js -@@ -47,6 +47,7 @@ Object.defineProperty(exports, "getStateFromPath", { enumerable: true, get: func - const useLinking_1 = require("../fork/useLinking"); - const getRoutesRedirects_1 = require("../getRoutesRedirects"); - const isExpoGo = typeof expo !== 'undefined' && globalThis.expo?.modules?.ExpoGo; -+const isAnythingApp = react_native_1.Platform.OS === 'ios' && !globalThis.expo?.modules?.ExpoGo; - // A custom getInitialURL is used on native to ensure the app always starts at - // the root path if it's launched from something other than a deep link. - // This helps keep the native functionality working like the web functionality. -@@ -124,7 +125,12 @@ function subscribe(nativeLinking, redirects) { - } - }; - } -- const subscription = Linking.addEventListener('url', callback); -+ let subscription; -+ -+ if (!isAnythingApp) { -+ subscription = Linking.addEventListener('url', callback); -+ } -+ - return () => { - // https://github.com/facebook/react-native/commit/6d1aca806cee86ad76de771ed3a1cc62982ebcd7 - subscription?.remove?.(); -diff --git a/build/native-tabs/NativeBottomTabs/NativeTabTrigger.js b/build/native-tabs/NativeBottomTabs/NativeTabTrigger.js -index cd3d597..8bc0b00 100644 ---- a/build/native-tabs/NativeBottomTabs/NativeTabTrigger.js -+++ b/build/native-tabs/NativeBottomTabs/NativeTabTrigger.js -@@ -129,6 +129,16 @@ function appendLabelOptions(options, props) { - else { - options.title = props.children; - options.selectedLabelStyle = props.selectedStyle; -+ // Extract label color for web -+ if (props.style?.color) { -+ options.webLabelColor = props.style.color; -+ } -+ if (props.color) { -+ options.webLabelColor = props.color; -+ } -+ if (props.selectedStyle?.color) { -+ options.webLabelSelectedColor = props.selectedStyle.color; -+ } - } - } - function appendIconOptions(options, props) { -@@ -136,6 +146,21 @@ function appendIconOptions(options, props) { - const icon = convertIconSrcToIconOption(props); - options.icon = icon?.icon; - options.selectedIcon = icon?.selectedIcon; -+ // Preserve icon info for web rendering -+ const srcValue = typeof props.src === 'object' && 'selected' in props.src ? props.src.default : props.src; -+ if ((0, react_1.isValidElement)(srcValue) && srcValue.type === elements_1.VectorIcon) { -+ options.webIconFamily = srcValue.props.family; -+ options.webIconName = srcValue.props.name; -+ // Extract colors from VectorIcon props for web -+ if (srcValue.props.color) { -+ options.webIconColor = srcValue.props.color; -+ } -+ if (srcValue.props.selectedColor) { -+ options.webIconSelectedColor = srcValue.props.selectedColor; -+ } -+ } else { -+ options.webIcon = srcValue; -+ } - } - else if ('sf' in props && process.env.EXPO_OS === 'ios') { - if (typeof props.sf === 'string') { -@@ -169,6 +194,13 @@ function appendIconOptions(options, props) { - options.selectedIcon = undefined; - } - options.selectedIconColor = props.selectedColor; -+ // Extract icon color for web -+ if (props.color) { -+ options.webIconColor = props.color; -+ } -+ if (props.selectedColor) { -+ options.webIconSelectedColor = props.selectedColor; -+ } - } - function convertIconSrcToIconOption(icon) { - if (icon && icon.src) { -diff --git a/build/native-tabs/NativeBottomTabs/NativeTabsView.web.js b/build/native-tabs/NativeBottomTabs/NativeTabsView.web.js -index d3d738b..a27f83d 100644 ---- a/build/native-tabs/NativeBottomTabs/NativeTabsView.web.js -+++ b/build/native-tabs/NativeBottomTabs/NativeTabsView.web.js -@@ -41,16 +41,45 @@ const react_tabs_1 = require("@radix-ui/react-tabs"); - const react_1 = __importStar(require("react")); - const utils_1 = require("./utils"); - const native_tabs_module_css_1 = __importDefault(require("../../../assets/native-tabs.module.css")); -+ -+const MAX_VISIBLE_TABS = 5; -+ - function NativeTabsView(props) { - const { builder, focusedIndex } = props; - const { state, descriptors, navigation } = builder; - const { routes } = state; -+ const [showMoreScreen, setShowMoreScreen] = (0, react_1.useState)(false); - const defaultTabName = (0, react_1.useMemo)(() => state.routes[focusedIndex]?.name ?? state.routes[0].name, []); - const value = state.routes[focusedIndex]?.name ?? state.routes[0].name; - const currentTabKey = state.routes[focusedIndex]?.key ?? state.routes[0].key; -- const items = routes -- .filter(({ key }) => (0, utils_1.shouldTabBeVisible)(descriptors[key].options)) -- .map((route) => ()); -+ -+ const visibleRoutes = routes.filter(({ key }) => (0, utils_1.shouldTabBeVisible)(descriptors[key].options)); -+ const hasOverflow = visibleRoutes.length > MAX_VISIBLE_TABS; -+ const primaryRoutes = hasOverflow ? visibleRoutes.slice(0, MAX_VISIBLE_TABS - 1) : visibleRoutes; -+ const overflowRoutes = hasOverflow ? visibleRoutes.slice(MAX_VISIBLE_TABS - 1) : []; -+ -+ // Check if an overflow tab is currently active -+ const isOverflowTabActive = overflowRoutes.some(route => route.name === value); -+ -+ const items = primaryRoutes.map((route) => ( -+ setShowMoreScreen(false)} -+ forceInactive={showMoreScreen} -+ isActive={route.name === value && !showMoreScreen} -+ /> -+ )); -+ - const children = routes - .filter(({ key }) => (0, utils_1.shouldTabBeVisible)(descriptors[key].options)) - .map((route) => { -@@ -58,26 +87,116 @@ function NativeTabsView(props) { - {descriptors[route.key].render()} - ); - }); -- return ( { -- navigation.dispatch({ -- type: 'JUMP_TO', -- target: state.key, -- payload: { -- name: value, -- }, -- }); -+ -+ const handleNavigate = (routeName) => { -+ navigation.dispatch({ -+ type: 'JUMP_TO', -+ target: state.key, -+ payload: { -+ name: routeName, -+ }, -+ }); -+ setShowMoreScreen(false); -+ }; -+ -+ return ( { -+ handleNavigate(newValue); - }} style={convertNativeTabsPropsToStyleVars(props, descriptors[currentTabKey]?.options)}> -+ -+ {/* More Screen - shown when More tab is active */} -+ {showMoreScreen && ( -+
-+
-+

More

-+
-+
-+
-+ {overflowRoutes.map((route) => ( -+ -+ ))} -+
-+
-+
-+ )} -+ -+ {/* Tab Content - hidden when More screen is shown */} -+ {!showMoreScreen && children} -+ - - {items} -+ {hasOverflow && ( -+ -+ )} - -- {children} -
); - } -+ -+function OverflowTabIcon(props) { -+ const { webIcon, webIconFamily, webIconName } = props; -+ if (webIconFamily && webIconName) { -+ const IconComponent = webIconFamily; -+ return ; -+ } else if (webIcon) { -+ return webIcon; -+ } -+ return null; -+} -+ - function TabItem(props) { -- const { title, badgeValue, route } = props; -+ const { title, badgeValue, route, webIcon, webIconFamily, webIconName, webIconColor, webIconSelectedColor, webLabelColor, webLabelSelectedColor, onClick, forceInactive, isActive } = props; - const isBadgeEmpty = badgeValue === ' '; -- return ( -- {title} -+ const dataState = forceInactive ? "inactive" : (isActive ? "active" : "inactive"); -+ -+ // Resolve colors based on active state -+ const resolvedIconColor = isActive && webIconSelectedColor ? webIconSelectedColor : webIconColor; -+ const resolvedLabelColor = isActive && webLabelSelectedColor ? webLabelSelectedColor : webLabelColor; -+ -+ const iconStyle = resolvedIconColor ? { color: resolvedIconColor } : {}; -+ const labelStyle = resolvedLabelColor ? { color: resolvedLabelColor } : {}; -+ -+ let iconElement = null; -+ if (webIconFamily && webIconName) { -+ const IconComponent = webIconFamily; -+ iconElement = (); -+ } else if (webIcon) { -+ iconElement = ({webIcon}); -+ } -+ return ( -+ {iconElement} -+ {title} - {badgeValue && (
- {badgeValue} -
)} diff --git a/.yarn/patches/expo-store-review+9.0.8.patch b/.yarn/patches/expo-store-review+9.0.8.patch deleted file mode 100644 index c7fa56e..0000000 --- a/.yarn/patches/expo-store-review+9.0.8.patch +++ /dev/null @@ -1,375 +0,0 @@ -diff --git a/build/ExpoStoreReview.d.ts b/build/ExpoStoreReview.d.ts -index 00e8119..ed3992e 100644 ---- a/build/ExpoStoreReview.d.ts -+++ b/build/ExpoStoreReview.d.ts -@@ -1,6 +1,9 @@ - declare const _default: Partial<{ - isAvailableAsync: () => Promise; - requestReview: () => Promise; -+ prePromptReview: () => Promise; -+ resetReviewState: () => Promise; -+ hasUserRated: () => Promise; - }>; - export default _default; - //# sourceMappingURL=ExpoStoreReview.d.ts.map -\ No newline at end of file -diff --git a/build/ExpoStoreReview.d.ts.map b/build/ExpoStoreReview.d.ts.map -index aec682b..0a49993 100644 ---- a/build/ExpoStoreReview.d.ts.map -+++ b/build/ExpoStoreReview.d.ts.map -@@ -1 +1 @@ --{"version":3,"file":"ExpoStoreReview.d.ts","sourceRoot":"","sources":["../src/ExpoStoreReview.ts"],"names":[],"mappings":"wBACqB,OAAO,CAAC;IAC3B,gBAAgB,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC;IACzC,aAAa,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CACpC,CAAC;AAHF,wBAGG"} -\ No newline at end of file -+{"version":3,"file":"ExpoStoreReview.d.ts","sourceRoot":"","sources":["../src/ExpoStoreReview.ts"],"names":[],"mappings":"wBACqB,OAAO,CAAC;IAC3B,gBAAgB,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC;IACzC,aAAa,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IACnC,eAAe,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IACrC,gBAAgB,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IACtC,YAAY,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC;CACtC,CAAC;AANF,wBAMG"} -\ No newline at end of file -diff --git a/build/ExpoStoreReview.d.ts.map.orig b/build/ExpoStoreReview.d.ts.map.orig -new file mode 100644 -index 0000000..4e06d74 ---- /dev/null -+++ b/build/ExpoStoreReview.d.ts.map.orig -@@ -0,0 +1 @@ -+{"version":3,"file":"ExpoStoreReview.d.ts","sourceRoot":"","sources":["../src/ExpoStoreReview.ts"],"names":[],"mappings":"wBACqB,OAAO,CAAC;IAC3B,gBAAgB,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC;IACzC,aAAa,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IACnC,eAAe,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IACrC,gBAAgB,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CACvC,CAAC;AALF,wBAKG"} -\ No newline at end of file -diff --git a/build/ExpoStoreReview.d.ts.map.rej b/build/ExpoStoreReview.d.ts.map.rej -new file mode 100644 -index 0000000..93ac91c ---- /dev/null -+++ b/build/ExpoStoreReview.d.ts.map.rej -@@ -0,0 +1,5 @@ -+@@ -1,1 +1,1 @@ -+-{"version":3,"file":"ExpoStoreReview.d.ts","sourceRoot":"","sources":["../src/ExpoStoreReview.ts"],"names":[],"mappings":"wBACqB,OAAO,CAAC;IAC3B,gBAAgB,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC;IACzC,aAAa,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CACpC,CAAC;AAHF,wBAGG"} -+\ No newline at end of line -++{"version":3,"file":"ExpoStoreReview.d.ts","sourceRoot":"","sources":["../src/ExpoStoreReview.ts"],"names":[],"mappings":"wBACqB,OAAO,CAAC;IAC3B,gBAAgB,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC;IACzC,aAAa,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IACnC,eAAe,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IACrC,gBAAgB,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IACtC,YAAY,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC;CACtC,CAAC;AANF,wBAMG"} -+\ No newline at end of line -diff --git a/build/ExpoStoreReview.js.map b/build/ExpoStoreReview.js.map -index 80fdadb..7fdbdfa 100644 ---- a/build/ExpoStoreReview.js.map -+++ b/build/ExpoStoreReview.js.map -@@ -1 +1 @@ --{"version":3,"file":"ExpoStoreReview.js","sourceRoot":"","sources":["../src/ExpoStoreReview.ts"],"names":[],"mappings":"AAAA,uBAAuB;AACvB,eAAe,EAGb,CAAC","sourcesContent":["// Unimplemented on web\nexport default {} as Partial<{\n isAvailableAsync: () => Promise;\n requestReview: () => Promise;\n}>;\n"]} -\ No newline at end of file -+{"version":3,"file":"ExpoStoreReview.js","sourceRoot":"","sources":["../src/ExpoStoreReview.ts"],"names":[],"mappings":"AAAA,uBAAuB;AACvB,eAAe,EAMb,CAAC","sourcesContent":["// Unimplemented on web\nexport default {} as Partial<{\n isAvailableAsync: () => Promise;\n requestReview: () => Promise;\n prePromptReview: () => Promise;\n resetReviewState: () => Promise;\n hasUserRated: () => Promise;\n}>;\n"]} -\ No newline at end of file -diff --git a/build/ExpoStoreReview.js.map.orig b/build/ExpoStoreReview.js.map.orig -new file mode 100644 -index 0000000..867130c ---- /dev/null -+++ b/build/ExpoStoreReview.js.map.orig -@@ -0,0 +1 @@ -+{"version":3,"file":"ExpoStoreReview.js","sourceRoot":"","sources":["../src/ExpoStoreReview.ts"],"names":[],"mappings":"AAAA,uBAAuB;AACvB,eAAe,EAKb,CAAC","sourcesContent":["// Unimplemented on web\nexport default {} as Partial<{\n isAvailableAsync: () => Promise;\n requestReview: () => Promise;\n prePromptReview: () => Promise;\n resetReviewState: () => Promise;\n}>;\n"]} -\ No newline at end of file -diff --git a/build/ExpoStoreReview.js.map.rej b/build/ExpoStoreReview.js.map.rej -new file mode 100644 -index 0000000..8a0b07d ---- /dev/null -+++ b/build/ExpoStoreReview.js.map.rej -@@ -0,0 +1,5 @@ -+@@ -1,1 +1,1 @@ -+-{"version":3,"file":"ExpoStoreReview.js","sourceRoot":"","sources":["../src/ExpoStoreReview.ts"],"names":[],"mappings":"AAAA,uBAAuB;AACvB,eAAe,EAGb,CAAC","sourcesContent":["// Unimplemented on web\nexport default {} as Partial<{\n isAvailableAsync: () => Promise;\n requestReview: () => Promise;\n}>;\n"]} -+\ No newline at end of line -++{"version":3,"file":"ExpoStoreReview.js","sourceRoot":"","sources":["../src/ExpoStoreReview.ts"],"names":[],"mappings":"AAAA,uBAAuB;AACvB,eAAe,EAMb,CAAC","sourcesContent":["// Unimplemented on web\nexport default {} as Partial<{\n isAvailableAsync: () => Promise;\n requestReview: () => Promise;\n prePromptReview: () => Promise;\n resetReviewState: () => Promise;\n hasUserRated: () => Promise;\n}>;\n"]} -+\ No newline at end of line -diff --git a/build/ExpoStoreReview.native.js b/build/ExpoStoreReview.native.js -index 39755d3..a110bfe 100644 ---- a/build/ExpoStoreReview.native.js -+++ b/build/ExpoStoreReview.native.js -@@ -1,3 +1,4 @@ - import { requireNativeModule } from 'expo-modules-core'; --export default requireNativeModule('ExpoStoreReview'); -+ -+export default globalThis && globalThis.expo && globalThis.expo.modules && globalThis.expo.modules.ExpoStoreReview ? requireNativeModule('ExpoStoreReview') : {}; - //# sourceMappingURL=ExpoStoreReview.native.js.map -diff --git a/build/StoreReview.d.ts b/build/StoreReview.d.ts -index 00cf30a..0f91d73 100644 ---- a/build/StoreReview.d.ts -+++ b/build/StoreReview.d.ts -@@ -7,6 +7,25 @@ - * - On Web, it will resolve to `false`. - */ - export declare function isAvailableAsync(): Promise; -+/** -+ * Shows a pre-prompt alert asking the user if they'd like to rate the app. If they select "Yes", -+ * it will then show the native store review prompt. This is useful for improving review conversion rates. -+ * Currently only available on iOS. -+ */ -+export declare function prePromptReview(): Promise; -+/** -+ * Resets the review state stored in UserDefaults. This allows you to clear the -+ * tracking of whether the user has already been prompted for a review. -+ * Currently only available on iOS. -+ */ -+export declare function resetReviewState(): Promise; -+/** -+ * Checks whether the user has already rated the app (i.e., they selected "Rate Now" -+ * in the pre-prompt dialog). This can be used to conditionally show or hide rating prompts. -+ * Currently only available on iOS. -+ * @return A promise that resolves to true if the user has rated, false otherwise. -+ */ -+export declare function hasUserRated(): Promise; - /** - * In ideal circumstances this will open a native modal and allow the user to select a star rating - * that will then be applied to the App Store, without leaving the app. If the device is running -diff --git a/build/StoreReview.d.ts.map b/build/StoreReview.d.ts.map -index 4ce88d2..6f7f508 100644 ---- a/build/StoreReview.d.ts.map -+++ b/build/StoreReview.d.ts.map -@@ -1 +1 @@ --{"version":3,"file":"StoreReview.d.ts","sourceRoot":"","sources":["../src/StoreReview.ts"],"names":[],"mappings":"AAOA;;;;;;;GAOG;AACH,wBAAsB,gBAAgB,IAAI,OAAO,CAAC,OAAO,CAAC,CAEzD;AAGD;;;;GAIG;AACH,wBAAsB,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC,CAmBnD;AAGD;;;;;GAKG;AACH,wBAAgB,QAAQ,IAAI,MAAM,GAAG,IAAI,CAQxC;AAGD;;;;;;;;;;;;GAYG;AACH,wBAAsB,SAAS,IAAI,OAAO,CAAC,OAAO,CAAC,CAElD"} -\ No newline at end of file -+{"version":3,"file":"StoreReview.d.ts","sourceRoot":"","sources":["../src/StoreReview.ts"],"names":[],"mappings":"AAOA;;;;;;;GAOG;AACH,wBAAsB,gBAAgB,IAAI,OAAO,CAAC,OAAO,CAAC,CAEzD;AAGD;;;;GAIG;AACH,wBAAsB,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC,CAMrD;AAGD;;;;GAIG;AACH,wBAAsB,gBAAgB,IAAI,OAAO,CAAC,IAAI,CAAC,CAMtD;AAGD;;;;;GAKG;AACH,wBAAsB,YAAY,IAAI,OAAO,CAAC,OAAO,CAAC,CAOrD;AAGD;;;;GAIG;AACH,wBAAsB,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC,CAmBnD;AAGD;;;;;GAKG;AACH,wBAAgB,QAAQ,IAAI,MAAM,GAAG,IAAI,CAQxC;AAGD;;;;;;;;;;;;GAYG;AACH,wBAAsB,SAAS,IAAI,OAAO,CAAC,OAAO,CAAC,CAElD"} -\ No newline at end of file -diff --git a/build/StoreReview.js b/build/StoreReview.js -index 5ddf98b..232423f 100644 ---- a/build/StoreReview.js -+++ b/build/StoreReview.js -@@ -15,6 +15,47 @@ export async function isAvailableAsync() { - return StoreReview.isAvailableAsync?.() ?? false; - } - // @needsAudit -+/** -+ * Shows a pre-prompt alert asking the user if they'd like to rate the app. If they select "Yes", -+ * it will then show the native store review prompt. This is useful for improving review conversion rates. -+ * Currently only available on iOS. -+ */ -+export async function prePromptReview() { -+ if (StoreReview?.prePromptReview) { -+ return StoreReview.prePromptReview(); -+ } -+ // Fallback: if prePromptReview is not available, just do nothing -+ // (This will be the case on web and Android) -+} -+// @needsAudit -+/** -+ * Resets the review state by clearing the last review request timestamp and rating status. -+ * This is useful for testing or if you want to allow the review prompt to be shown again -+ * regardless of the normal rate limiting. Currently only available on iOS. -+ */ -+export async function resetReviewState() { -+ if (StoreReview?.resetReviewState) { -+ return StoreReview.resetReviewState(); -+ } -+ // Fallback: if resetReviewState is not available, just do nothing -+ // (This will be the case on web and Android) -+} -+// @needsAudit -+/** -+ * Checks whether the user has already rated the app (i.e., they selected "Rate Now" -+ * in the pre-prompt dialog). This can be used to conditionally show or hide rating prompts. -+ * Currently only available on iOS. -+ * @return A promise that resolves to true if the user has rated, false otherwise. -+ */ -+export async function hasUserRated() { -+ if (StoreReview?.hasUserRated) { -+ return StoreReview.hasUserRated(); -+ } -+ // Fallback: if hasUserRated is not available, return false -+ // (This will be the case on web and Android) -+ return false; -+} -+// @needsAudit - /** - * In ideal circumstances this will open a native modal and allow the user to select a star rating - * that will then be applied to the App Store, without leaving the app. If the device is running -diff --git a/build/StoreReview.js.map b/build/StoreReview.js.map -index cd16b26..56882e2 100644 ---- a/build/StoreReview.js.map -+++ b/build/StoreReview.js.map -@@ -1 +1 @@ --{"version":3,"file":"StoreReview.js","sourceRoot":"","sources":["../src/StoreReview.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,gBAAgB,CAAC;AACvC,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC7C,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAEvC,OAAO,WAAW,MAAM,mBAAmB,CAAC;AAE5C,cAAc;AACd;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB;IACpC,OAAO,WAAW,CAAC,gBAAgB,EAAE,EAAE,IAAI,KAAK,CAAC;AACnD,CAAC;AAED,cAAc;AACd;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa;IACjC,IAAI,WAAW,EAAE,aAAa,EAAE,CAAC;QAC/B,OAAO,WAAW,CAAC,aAAa,EAAE,CAAC;IACrC,CAAC;IACD,6GAA6G;IAC7G,MAAM,GAAG,GAAG,QAAQ,EAAE,CAAC;IACvB,IAAI,GAAG,EAAE,CAAC;QACR,MAAM,SAAS,GAAG,MAAM,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;QAChD,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,OAAO,CAAC,IAAI,CAAC,qDAAqD,EAAE,GAAG,CAAC,CAAC;QAC3E,CAAC;aAAM,CAAC;YACN,MAAM,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAC7B,CAAC;IACH,CAAC;SAAM,CAAC;QACN,iDAAiD;QACjD,OAAO,CAAC,IAAI,CACV,+JAA+J,CAChK,CAAC;IACJ,CAAC;AACH,CAAC;AAED,cAAc;AACd;;;;;GAKG;AACH,MAAM,UAAU,QAAQ;IACtB,MAAM,UAAU,GAAG,SAAS,CAAC,UAAU,CAAC;IACxC,IAAI,QAAQ,CAAC,EAAE,KAAK,KAAK,IAAI,UAAU,EAAE,GAAG,EAAE,CAAC;QAC7C,OAAO,UAAU,CAAC,GAAG,CAAC,WAAW,IAAI,IAAI,CAAC;IAC5C,CAAC;SAAM,IAAI,QAAQ,CAAC,EAAE,KAAK,SAAS,IAAI,UAAU,EAAE,OAAO,EAAE,CAAC;QAC5D,OAAO,UAAU,CAAC,OAAO,CAAC,YAAY,IAAI,IAAI,CAAC;IACjD,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,cAAc;AACd;;;;;;;;;;;;GAYG;AACH,MAAM,CAAC,KAAK,UAAU,SAAS;IAC7B,OAAO,CAAC,CAAC,QAAQ,EAAE,IAAI,CAAC,MAAM,gBAAgB,EAAE,CAAC,CAAC;AACpD,CAAC","sourcesContent":["import Constants from 'expo-constants';\nimport { Platform } from 'expo-modules-core';\nimport { Linking } from 'react-native';\n\nimport StoreReview from './ExpoStoreReview';\n\n// @needsAudit\n/**\n * Determines if the platform has the capabilities to use `StoreReview.requestReview()`.\n * @return\n * This returns a promise fulfills with `boolean`, depending on the platform:\n * - On iOS, it will resolve to `true` unless the app is distributed through TestFlight.\n * - On Android, it will resolve to `true` if the device is running Android 5.0+.\n * - On Web, it will resolve to `false`.\n */\nexport async function isAvailableAsync(): Promise {\n return StoreReview.isAvailableAsync?.() ?? false;\n}\n\n// @needsAudit\n/**\n * In ideal circumstances this will open a native modal and allow the user to select a star rating\n * that will then be applied to the App Store, without leaving the app. If the device is running\n * a version of Android lower than 5.0, this will attempt to get the store URL and link the user to it.\n */\nexport async function requestReview(): Promise {\n if (StoreReview?.requestReview) {\n return StoreReview.requestReview();\n }\n // If StoreReview is unavailable then get the store URL from `app.config.js` or `app.json` and open the store\n const url = storeUrl();\n if (url) {\n const supported = await Linking.canOpenURL(url);\n if (!supported) {\n console.warn(\"StoreReview.requestReview(): Can't open store url: \", url);\n } else {\n await Linking.openURL(url);\n }\n } else {\n // If the store URL is missing, let the dev know.\n console.warn(\n \"StoreReview.requestReview(): Couldn't link to store, please make sure the `android.playStoreUrl` & `ios.appStoreUrl` fields are filled out in your `app.json`\"\n );\n }\n}\n\n// @needsAudit\n/**\n * This uses the `Constants` API to get the `Constants.expoConfig.ios.appStoreUrl` on iOS, or the\n * `Constants.expoConfig.android.playStoreUrl` on Android.\n *\n * On Web this will return `null`.\n */\nexport function storeUrl(): string | null {\n const expoConfig = Constants.expoConfig;\n if (Platform.OS === 'ios' && expoConfig?.ios) {\n return expoConfig.ios.appStoreUrl ?? null;\n } else if (Platform.OS === 'android' && expoConfig?.android) {\n return expoConfig.android.playStoreUrl ?? null;\n }\n return null;\n}\n\n// @needsAudit\n/**\n * @return This returns a promise that fulfills to `true` if `StoreReview.requestReview()` is capable\n * directing the user to some kind of store review flow. If the app config (`app.json`) does not\n * contain store URLs and native store review capabilities are not available then the promise\n * will fulfill to `false`.\n *\n * @example\n * ```ts\n * if (await StoreReview.hasAction()) {\n * // you can call StoreReview.requestReview()\n * }\n * ```\n */\nexport async function hasAction(): Promise {\n return !!storeUrl() || (await isAvailableAsync());\n}\n"]} -\ No newline at end of file -+{"version":3,"file":"StoreReview.js","sourceRoot":"","sources":["../src/StoreReview.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,gBAAgB,CAAC;AACvC,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC7C,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAEvC,OAAO,WAAW,MAAM,mBAAmB,CAAC;AAE5C,cAAc;AACd;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB;IACpC,OAAO,WAAW,CAAC,gBAAgB,EAAE,EAAE,IAAI,KAAK,CAAC;AACnD,CAAC;AAED,cAAc;AACd;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe;IACnC,IAAI,WAAW,EAAE,eAAe,EAAE,CAAC;QACjC,OAAO,WAAW,CAAC,eAAe,EAAE,CAAC;IACvC,CAAC;IACD,iEAAiE;IACjE,6CAA6C;AAC/C,CAAC;AAED,cAAc;AACd;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB;IACpC,IAAI,WAAW,EAAE,gBAAgB,EAAE,CAAC;QAClC,OAAO,WAAW,CAAC,gBAAgB,EAAE,CAAC;IACxC,CAAC;IACD,iEAAiE;IACjE,6CAA6C;AAC/C,CAAC;AAED,cAAc;AACd;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY;IAChC,IAAI,WAAW,EAAE,YAAY,EAAE,CAAC;QAC9B,OAAO,WAAW,CAAC,YAAY,EAAE,CAAC;IACpC,CAAC;IACD,yEAAyE;IACzE,6CAA6C;IAC7C,OAAO,KAAK,CAAC;AACf,CAAC;AAED,cAAc;AACd;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa;IACjC,IAAI,WAAW,EAAE,aAAa,EAAE,CAAC;QAC/B,OAAO,WAAW,CAAC,aAAa,EAAE,CAAC;IACrC,CAAC;IACD,6GAA6G;IAC7G,MAAM,GAAG,GAAG,QAAQ,EAAE,CAAC;IACvB,IAAI,GAAG,EAAE,CAAC;QACR,MAAM,SAAS,GAAG,MAAM,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;QAChD,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,OAAO,CAAC,IAAI,CAAC,qDAAqD,EAAE,GAAG,CAAC,CAAC;QAC3E,CAAC;aAAM,CAAC;YACN,MAAM,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAC7B,CAAC;IACH,CAAC;SAAM,CAAC;QACN,iDAAiD;QACjD,OAAO,CAAC,IAAI,CACV,+JAA+J,CAChK,CAAC;IACJ,CAAC;AACH,CAAC;AAED,cAAc;AACd;;;;;GAKG;AACH,MAAM,UAAU,QAAQ;IACtB,MAAM,UAAU,GAAG,SAAS,CAAC,UAAU,CAAC;IACxC,IAAI,QAAQ,CAAC,EAAE,KAAK,KAAK,IAAI,UAAU,EAAE,GAAG,EAAE,CAAC;QAC7C,OAAO,UAAU,CAAC,GAAG,CAAC,WAAW,IAAI,IAAI,CAAC;IAC5C,CAAC;SAAM,IAAI,QAAQ,CAAC,EAAE,KAAK,SAAS,IAAI,UAAU,EAAE,OAAO,EAAE,CAAC;QAC5D,OAAO,UAAU,CAAC,OAAO,CAAC,YAAY,IAAI,IAAI,CAAC;IACjD,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,cAAc;AACd;;;;;;;;;;;;GAYG;AACH,MAAM,CAAC,KAAK,UAAU,SAAS;IAC7B,OAAO,CAAC,CAAC,QAAQ,EAAE,IAAI,CAAC,MAAM,gBAAgB,EAAE,CAAC,CAAC;AACpD,CAAC","sourcesContent":["import Constants from 'expo-constants';\nimport { Platform } from 'expo-modules-core';\nimport { Linking } from 'react-native';\n\nimport StoreReview from './ExpoStoreReview';\n\n// @needsAudit\n/**\n * Determines if the platform has the capabilities to use `StoreReview.requestReview()`.\n * @return\n * This returns a promise fulfills with `boolean`, depending on the platform:\n * - On iOS, it will resolve to `true` unless the app is distributed through TestFlight.\n * - On Android, it will resolve to `true` if the device is running Android 5.0+.\n * - On Web, it will resolve to `false`.\n */\nexport async function isAvailableAsync(): Promise {\n return StoreReview.isAvailableAsync?.() ?? false;\n}\n\n// @needsAudit\n/**\n * Shows a pre-prompt alert asking the user if they'd like to rate the app. If they select \"Yes\",\n * it will then show the native store review prompt. This is useful for improving review conversion rates.\n * Currently only available on iOS.\n */\nexport async function prePromptReview(): Promise {\n if (StoreReview?.prePromptReview) {\n return StoreReview.prePromptReview();\n }\n // Fallback: if prePromptReview is not available, just do nothing\n // (This will be the case on web and Android)\n}\n\n// @needsAudit\n/**\n * Resets the review state stored in UserDefaults. This allows you to clear the\n * tracking of whether the user has already been prompted for a review.\n * Currently only available on iOS.\n */\nexport async function resetReviewState(): Promise {\n if (StoreReview?.resetReviewState) {\n return StoreReview.resetReviewState();\n }\n // Fallback: if resetReviewState is not available, just do nothing\n // (This will be the case on web and Android)\n}\n\n// @needsAudit\n/**\n * Checks whether the user has already rated the app (i.e., they selected \"Rate Now\"\n * in the pre-prompt dialog). This can be used to conditionally show or hide rating prompts.\n * Currently only available on iOS.\n * @return A promise that resolves to true if the user has rated, false otherwise.\n */\nexport async function hasUserRated(): Promise {\n if (StoreReview?.hasUserRated) {\n return StoreReview.hasUserRated();\n }\n // Fallback: if hasUserRated is not available, return false\n // (This will be the case on web and Android)\n return false;\n}\n\n// @needsAudit\n/**\n * In ideal circumstances this will open a native modal and allow the user to select a star rating\n * that will then be applied to the App Store, without leaving the app. If the device is running\n * a version of Android lower than 5.0, this will attempt to get the store URL and link the user to it.\n */\nexport async function requestReview(): Promise {\n if (StoreReview?.requestReview) {\n return StoreReview.requestReview();\n }\n // If StoreReview is unavailable then get the store URL from `app.config.js` or `app.json` and open the store\n const url = storeUrl();\n if (url) {\n const supported = await Linking.canOpenURL(url);\n if (!supported) {\n console.warn(\"StoreReview.requestReview(): Can't open store url: \", url);\n } else {\n await Linking.openURL(url);\n }\n } else {\n // If the store URL is missing, let the dev know.\n console.warn(\n \"StoreReview.requestReview(): Couldn't link to store, please make sure the `android.playStoreUrl` & `ios.appStoreUrl` fields are filled out in your `app.json`\"\n );\n }\n}\n\n// @needsAudit\n/**\n * This uses the `Constants` API to get the `Constants.expoConfig.ios.appStoreUrl` on iOS, or the\n * `Constants.expoConfig.android.playStoreUrl` on Android.\n *\n * On Web this will return `null`.\n */\nexport function storeUrl(): string | null {\n const expoConfig = Constants.expoConfig;\n if (Platform.OS === 'ios' && expoConfig?.ios) {\n return expoConfig.ios.appStoreUrl ?? null;\n } else if (Platform.OS === 'android' && expoConfig?.android) {\n return expoConfig.android.playStoreUrl ?? null;\n }\n return null;\n}\n\n// @needsAudit\n/**\n * @return This returns a promise that fulfills to `true` if `StoreReview.requestReview()` is capable\n * directing the user to some kind of store review flow. If the app config (`app.json`) does not\n * contain store URLs and native store review capabilities are not available then the promise\n * will fulfill to `false`.\n *\n * @example\n * ```ts\n * if (await StoreReview.hasAction()) {\n * // you can call StoreReview.requestReview()\n * }\n * ```\n */\nexport async function hasAction(): Promise {\n return !!storeUrl() || (await isAvailableAsync());\n}\n"]} -\ No newline at end of file -diff --git a/ios/StoreReviewModule.swift b/ios/StoreReviewModule.swift -index c44c468..4eb6ea0 100644 ---- a/ios/StoreReviewModule.swift -+++ b/ios/StoreReviewModule.swift -@@ -1,5 +1,8 @@ - import ExpoModulesCore - import StoreKit -+import UIKit -+ -+private let HAS_RATED_KEY = "anything_has_rated" - - public class StoreReviewModule: Module { - public func definition() -> ModuleDefinition { -@@ -9,11 +12,55 @@ public class StoreReviewModule: Module { - return !isRunningFromTestFlight() - } - -+ AsyncFunction("prePromptReview") { -+ if isRunningFromTestFlight() { -+ return -+ } -+ -+ try await MainActor.run { -+ let defaults = UserDefaults.standard -+ -+ if defaults.bool(forKey: HAS_RATED_KEY) { -+ return -+ } -+ -+ guard let currentScene = getForegroundActiveScene() else { -+ throw MissingCurrentWindowSceneException() -+ } -+ -+ let keyWindow = currentScene.windows.first(where: { $0.isKeyWindow }) -+ guard let rootVC = keyWindow?.rootViewController else { -+ throw MissingCurrentWindowSceneException() -+ } -+ -+ let alert = UIAlertController( -+ title: "Thanks for using Anything!", -+ message: "Share what you love about Anything in the App Store. Your review will help us reach more people.", -+ preferredStyle: .alert -+ ) -+ -+ let noAction = UIAlertAction(title: "No Thanks", style: .cancel, handler: nil) -+ -+ let yesAction = UIAlertAction(title: "Rate Now", style: .default) { _ in -+ defaults.set(true, forKey: HAS_RATED_KEY) -+ -+ if #available(iOS 16.0, *) { -+ AppStore.requestReview(in: currentScene) -+ } else { -+ SKStoreReviewController.requestReview(in: currentScene) -+ } -+ } -+ -+ alert.addAction(noAction) -+ alert.addAction(yesAction) -+ -+ rootVC.present(alert, animated: true, completion: nil) -+ } -+ } -+ - AsyncFunction("requestReview") { - try await MainActor.run { - guard let currentScene = getForegroundActiveScene() else { -- // If no valid foreground scene is found, throw an exception -- // as the review prompt won't be visible in background - throw MissingCurrentWindowSceneException() - } - if #available(iOS 16.0, *) { -@@ -23,23 +70,30 @@ public class StoreReviewModule: Module { - } - } - } -+ -+ AsyncFunction("resetReviewState") { -+ let defaults = UserDefaults.standard -+ defaults.removeObject(forKey: HAS_RATED_KEY) -+ } -+ -+ AsyncFunction("hasUserRated") { () -> Bool in -+ let defaults = UserDefaults.standard -+ return defaults.bool(forKey: HAS_RATED_KEY) -+ } -+ - } - - private func getForegroundActiveScene() -> UIWindowScene? { -- // First try to find a foreground active scene -- if let activeScene = UIApplication.shared.connectedScenes.first(where: { $0.activationState == .foregroundActive }) as? UIWindowScene { -+ if let activeScene = UIApplication.shared.connectedScenes -+ .first(where: { $0.activationState == .foregroundActive }) as? UIWindowScene { - return activeScene - } - -- // If no foreground active scene is found (e.g., app is in App Switcher), -- // try to find any foreground inactive scene -- if let foregroundScene = UIApplication.shared.connectedScenes.first(where: { -- $0.activationState == .foregroundInactive -- }) as? UIWindowScene { -+ if let foregroundScene = UIApplication.shared.connectedScenes -+ .first(where: { $0.activationState == .foregroundInactive }) as? UIWindowScene { - return foregroundScene - } - -- // If no valid foreground scene is found, return nil - return nil - } - -@@ -48,12 +102,7 @@ public class StoreReviewModule: Module { - return false - #endif - -- // For apps distributed through TestFlight or intalled from Xcode the receipt file is named "StoreKit/sandboxReceipt" -- // instead of "StoreKit/receipt" - let isSandboxEnv = Bundle.main.appStoreReceiptURL?.lastPathComponent == "sandboxReceipt" -- -- // Apps distributed through TestFlight or the App Store will not have an embedded provisioning profile -- // Source: https://developer.apple.com/documentation/technotes/tn3125-inside-code-signing-provisioning-profiles#Profile-location - return isSandboxEnv && !hasEmbeddedMobileProvision() - } - -diff --git a/src/ExpoStoreReview.ts b/src/ExpoStoreReview.ts -index cb9ee95..94b9581 100644 ---- a/src/ExpoStoreReview.ts -+++ b/src/ExpoStoreReview.ts -@@ -2,4 +2,7 @@ - export default {} as Partial<{ - isAvailableAsync: () => Promise; - requestReview: () => Promise; -+ prePromptReview: () => Promise; -+ resetReviewState: () => Promise; -+ hasUserRated: () => Promise; - }>; -diff --git a/src/StoreReview.ts b/src/StoreReview.ts -index a9b9094..570caa6 100644 ---- a/src/StoreReview.ts -+++ b/src/StoreReview.ts -@@ -17,6 +17,20 @@ export async function isAvailableAsync(): Promise { - return StoreReview.isAvailableAsync?.() ?? false; - } - -+// @needsAudit -+/** -+ * Shows a pre-prompt alert asking the user if they'd like to rate the app. If they select "Yes", -+ * it will then show the native store review prompt. This is useful for improving review conversion rates. -+ * Currently only available on iOS. -+ */ -+export async function prePromptReview(): Promise { -+ if (StoreReview?.prePromptReview) { -+ return StoreReview.prePromptReview(); -+ } -+ // Fallback: if prePromptReview is not available, just do nothing -+ // (This will be the case on web and Android) -+} -+ - // @needsAudit - /** - * In ideal circumstances this will open a native modal and allow the user to select a star rating -@@ -78,3 +92,33 @@ export function storeUrl(): string | null { - export async function hasAction(): Promise { - return !!storeUrl() || (await isAvailableAsync()); - } -+ -+// @needsAudit -+/** -+ * Resets the review state stored in UserDefaults. This allows you to clear the -+ * tracking of whether the user has already been prompted for a review. -+ * Currently only available on iOS. -+ */ -+export async function resetReviewState(): Promise { -+ if (StoreReview?.resetReviewState) { -+ return StoreReview.resetReviewState(); -+ } -+ // Fallback: if resetReviewState is not available, just do nothing -+ // (This will be the case on web and Android) -+} -+ -+// @needsAudit -+/** -+ * Checks whether the user has already rated the app (i.e., they selected "Rate Now" -+ * in the pre-prompt dialog). This can be used to conditionally show or hide rating prompts. -+ * Currently only available on iOS. -+ * @return A promise that resolves to true if the user has rated, false otherwise. -+ */ -+export async function hasUserRated(): Promise { -+ if (StoreReview?.hasUserRated) { -+ return StoreReview.hasUserRated(); -+ } -+ // Fallback: if hasUserRated is not available, return false -+ // (This will be the case on web and Android) -+ return false; -+} diff --git a/.yarn/patches/react-native+0.81.4.patch b/.yarn/patches/react-native+0.81.4.patch deleted file mode 100644 index 1e023b2..0000000 --- a/.yarn/patches/react-native+0.81.4.patch +++ /dev/null @@ -1,30 +0,0 @@ -diff --git a/index.js b/index.js -index c737c93..f3edd25 100644 ---- a/index.js -+++ b/index.js -@@ -336,6 +336,9 @@ module.exports = { - return require('./src/private/components/virtualview/VirtualView') - .VirtualViewMode; - }, -+ get Slider() { -+ return require('@react-native-community/slider').default; -+ }, - // #endregion - } as ReactNativePublicAPI; - -@@ -405,15 +408,4 @@ if (__DEV__) { - * attempting to access Slider. */ - /* $FlowFixMe[invalid-export] This is intentional: Flow will error when - * attempting to access Slider. */ -- Object.defineProperty(module.exports, 'Slider', { -- configurable: true, -- get() { -- invariant( -- false, -- 'Slider has been removed from react-native core. ' + -- "It can now be installed and imported from '@react-native-community/slider' instead of 'react-native'. " + -- 'See https://github.com/callstack/react-native-slider', -- ); -- }, -- }); - } diff --git a/.yarn/patches/react-native-purchases+9.6.1.patch b/.yarn/patches/react-native-purchases+9.6.1.patch deleted file mode 100644 index 837fced..0000000 --- a/.yarn/patches/react-native-purchases+9.6.1.patch +++ /dev/null @@ -1,17 +0,0 @@ -diff --git a/dist/utils/environment.js b/dist/utils/environment.js -index 7c5d453..8457e4b 100644 ---- a/dist/utils/environment.js -+++ b/dist/utils/environment.js -@@ -31,6 +31,12 @@ exports.shouldUseBrowserMode = shouldUseBrowserMode; - * Detects if the app is running in Expo Go - */ - function isExpoGo() { -+ if (!__DEV__) { -+ return false; -+ } -+ if (globalThis.expo && globalThis.expo.modules && globalThis.expo.modules.AnythingLauncherModule) { -+ return true; -+ } - var _a, _b; - if (!!react_native_1.NativeModules.RNPurchases) { - return false; diff --git a/.yarn/patches/react-native-purchases-ui+9.6.1.patch b/.yarn/patches/react-native-purchases-ui+9.6.1.patch deleted file mode 100644 index f0df96f..0000000 --- a/.yarn/patches/react-native-purchases-ui+9.6.1.patch +++ /dev/null @@ -1,59 +0,0 @@ -diff --git a/lib/commonjs/utils/environment.js b/lib/commonjs/utils/environment.js -index 43e5e6a..b67d36a 100644 ---- a/lib/commonjs/utils/environment.js -+++ b/lib/commonjs/utils/environment.js -@@ -31,6 +31,12 @@ function shouldUsePreviewAPIMode() { - */ - function isExpoGo() { - var _globalThis$expo; -+ if (!__DEV__) { -+ return false; -+ } -+ if (globalThis.expo && globalThis.expo.modules && globalThis.expo.modules.AnythingLauncherModule) { -+ return true; -+ } - if (!!_reactNative.NativeModules.RNPaywalls && !!_reactNative.NativeModules.RNCustomerCenter) { - return false; - } -diff --git a/lib/module/utils/environment.js b/lib/module/utils/environment.js -index 435d456..4002fe2 100644 ---- a/lib/module/utils/environment.js -+++ b/lib/module/utils/environment.js -@@ -26,6 +26,12 @@ export function shouldUsePreviewAPIMode() { - */ - function isExpoGo() { - var _globalThis$expo; -+ if (!__DEV__) { -+ return false; -+ } -+ if (globalThis.expo && globalThis.expo.modules && globalThis.expo.modules.AnythingLauncherModule) { -+ return true; -+ } - if (!!NativeModules.RNPaywalls && !!NativeModules.RNCustomerCenter) { - return false; - } -diff --git a/src/utils/environment.ts b/src/utils/environment.ts -index 5605bf2..ed86595 100644 ---- a/src/utils/environment.ts -+++ b/src/utils/environment.ts -@@ -26,6 +26,7 @@ declare global { - var expo: { - modules?: { - ExpoGo?: boolean; -+ AnythingLauncherModule?: boolean; - }; - }; - } -@@ -34,6 +35,12 @@ declare global { - * Detects if the app is running in Expo Go - */ - function isExpoGo(): boolean { -+ if (!__DEV__) { -+ return false; -+ } -+ if (globalThis.expo && globalThis.expo.modules && globalThis.expo.modules.AnythingLauncherModule) { -+ return true; -+ } - if (!!NativeModules.RNPaywalls && !!NativeModules.RNCustomerCenter) { - return false; - } diff --git a/.yarn/patches/react-native-web-refresh-control+1.1.2.patch b/.yarn/patches/react-native-web-refresh-control+1.1.2.patch deleted file mode 100644 index 81fb30b..0000000 --- a/.yarn/patches/react-native-web-refresh-control+1.1.2.patch +++ /dev/null @@ -1,24 +0,0 @@ -diff --git a/src/RefreshControl.web.js b/src/RefreshControl.web.js -index b2351e6..c638d23 100644 ---- a/src/RefreshControl.web.js -+++ b/src/RefreshControl.web.js -@@ -1,5 +1,5 @@ - import React, { useRef, useEffect, useCallback, useMemo } from 'react' --import { View, Text, PanResponder, Animated, ActivityIndicator, findNodeHandle } from 'react-native' -+import { View, Text, PanResponder, Animated, ActivityIndicator } from 'react-native' - import PropTypes from 'prop-types' - - const arrowIcon = -@@ -77,9 +77,9 @@ export default function RefreshControl({ - onStartShouldSetPanResponderCapture: () => false, - onMoveShouldSetPanResponder: (_,gestureState) => { - if (!containerRef.current) return false -- const containerDOM = findNodeHandle(containerRef.current) -- if (!containerDOM) return false -- return containerDOM.children[0].scrollTop === 0 -+ const scrollContainer = containerRef.current?.firstChild -+ if (!scrollContainer) return false -+ return scrollContainer.scrollTop === 0 - && (Math.abs(gestureState.dy) > Math.abs(gestureState.dx) * 2 && Math.abs(gestureState.vy) > Math.abs(gestureState.vx) * 2.5) - }, - onMoveShouldSetPanResponderCapture: () => false, diff --git a/.yarn/patches/sonner-native+0.21.0.patch b/.yarn/patches/sonner-native+0.21.0.patch deleted file mode 100644 index f088284..0000000 --- a/.yarn/patches/sonner-native+0.21.0.patch +++ /dev/null @@ -1,43 +0,0 @@ -diff --git a/lib/commonjs/positioner.js b/lib/commonjs/positioner.js -index cac0f68..ec816b7 100644 ---- a/lib/commonjs/positioner.js -+++ b/lib/commonjs/positioner.js -@@ -55,8 +55,12 @@ const Positioner = ({ - return {}; - }, [position, bottom, top, offset]); - return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, { -+ ...(_reactNative.Platform.OS === 'web' ? { -+ style: [{ pointerEvents: 'box-none' }, containerStyle, insetValues, style], -+ } :{ - style: [containerStyle, insetValues, style], - pointerEvents: "box-none", -+ }), - ...props, - children: children - }); -diff --git a/lib/module/positioner.js b/lib/module/positioner.js -index 476f6bb..40f1968 100644 ---- a/lib/module/positioner.js -+++ b/lib/module/positioner.js -@@ -1,7 +1,7 @@ - "use strict"; - - import React from 'react'; --import { View } from 'react-native'; -+import { View, Platform } from 'react-native'; - import { useSafeAreaInsets } from 'react-native-safe-area-context'; - import { useToastContext } from "./context.js"; - import { jsx as _jsx } from "react/jsx-runtime"; -@@ -50,8 +50,12 @@ export const Positioner = ({ - return {}; - }, [position, bottom, top, offset]); - return /*#__PURE__*/_jsx(View, { -+...(Platform.OS === 'web' ? { -+ style: [{ pointerEvents: 'box-none' }, containerStyle, insetValues, style], -+ } :{ - style: [containerStyle, insetValues, style], - pointerEvents: "box-none", -+ }), - ...props, - children: children - }); diff --git a/apps/mobile/.easignore b/apps/mobile/.easignore deleted file mode 100644 index ab35621..0000000 --- a/apps/mobile/.easignore +++ /dev/null @@ -1,38 +0,0 @@ -# Learn more https://docs.github.com/en/get-started/getting-started-with-git/ignoring-files - -# dependencies -node_modules/ - -# Expo -.expo/ -dist/ -web-build/ -expo-env.d.ts - -# Native -*.orig.* -*.jks -*.p8 -*.p12 -*.key -*.mobileprovision - -# Metro -.metro-health-check* - -# debug -npm-debug.* -yarn-debug.* -yarn-error.* - -# macOS -.DS_Store -*.pem - -# typescript -*.tsbuildinfo - -app-example - -caches/ -public/ \ No newline at end of file diff --git a/apps/mobile/.gitignore b/apps/mobile/.gitignore deleted file mode 100644 index 316a8c5..0000000 --- a/apps/mobile/.gitignore +++ /dev/null @@ -1,44 +0,0 @@ -# Learn more https://docs.github.com/en/get-started/getting-started-with-git/ignoring-files - -# dependencies -node_modules/ - -# Expo -.expo/ -dist/ -web-build/ -expo-env.d.ts - -# Native -*.orig.* -*.jks -*.p8 -*.p12 -*.key -*.mobileprovision - -# Metro -.metro-health-check* - -# debug -npm-debug.* -yarn-debug.* -yarn-error.* - -# macOS -.DS_Store -*.pem - -# local env files -.env*.local - -# typescript -*.tsbuildinfo - -app-example - -.env - -.metro-virtual/* - -caches/* \ No newline at end of file diff --git a/apps/mobile/App.tsx b/apps/mobile/App.tsx deleted file mode 100644 index a6fda90..0000000 --- a/apps/mobile/App.tsx +++ /dev/null @@ -1,16 +0,0 @@ -import { App } from 'expo-router/build/qualified-entry'; -import { ScreenViewTracker } from './src/__create/analytics'; - -// Screen-view analytics is mounted here, in the entry, rather than in -// app/_layout. The entry is platform scaffold that ships with the template, so -// the tracker reaches every app on its next rebuild WITHOUT editing each -// project's own _layout (mirrors how App.web.tsx tracks navigation at the -// root). usePathname reads expo-router's global store. -export default function MobileRoot() { - return ( - <> - - - - ); -} diff --git a/apps/mobile/App.web.tsx b/apps/mobile/App.web.tsx deleted file mode 100644 index 8281330..0000000 --- a/apps/mobile/App.web.tsx +++ /dev/null @@ -1,175 +0,0 @@ -import { usePathname, useRouter } from 'expo-router'; -import { App } from 'expo-router/build/qualified-entry'; -import React, { memo, useEffect } from 'react'; -import './src/__create/polyfills'; - -import { ErrorBoundary } from './src/__create/ErrorBoundary'; -import { SafeAreaProvider } from 'react-native-safe-area-context'; -import { Toaster } from 'sonner-native'; -import { AlertModal } from './polyfills/web/alerts.web'; -import './global.css'; - -const RUNTIME_ERROR_PATTERNS = [ - /fetch failed/i, - /networks*(error|request)/i, - /failed to fetch/i, - /load failed/i, - /ECONNREFUSED/i, - /ECONNRESET/i, - /ETIMEDOUT/i, - /ENOTFOUND/i, - /ERR_CONNECTION/i, - /aborted/i, - /timeout/i, - /socket hang up/i, - /503\b/, - /502\b/, - /504\b/, - /getaddrinfo/i, -]; - -function isRuntimeError(msg: string) { - return RUNTIME_ERROR_PATTERNS.some((p) => p.test(msg)); -} - -function postErrorToParent(message: string, name: string, stack: string) { - try { - if (window.parent !== window) { - window.parent.postMessage( - { - type: 'sandbox:error:detected', - error: { message, name, stack }, - }, - '*' - ); - } - } catch {} -} - -const GlobalErrorReporter = () => { - useEffect(() => { - if (typeof window === 'undefined') { - return; - } - const errorHandler = (event: ErrorEvent) => { - if (typeof event.preventDefault === 'function') event.preventDefault(); - console.error(event.error); - - const error = event.error; - const message = error?.message || event.message || 'Unknown error'; - if (!isRuntimeError(message)) { - postErrorToParent(message, error?.name || 'Error', error?.stack || ''); - } - }; - const unhandledRejectionHandler = (event: PromiseRejectionEvent) => { - if (typeof event.preventDefault === 'function') event.preventDefault(); - const reason = event.reason; - console.error('Unhandled promise rejection:', reason); - - const message = reason?.message || String(reason || ''); - if (isRuntimeError(message)) return; - const isCodeError = - reason instanceof TypeError || - reason instanceof ReferenceError || - reason instanceof SyntaxError || - reason?.code === 'MODULE_RESOLVE_FAILED'; - if (!isCodeError) return; - postErrorToParent(message, reason?.name || 'Error', reason?.stack || ''); - }; - window.addEventListener('error', errorHandler); - window.addEventListener('unhandledrejection', unhandledRejectionHandler); - return () => { - window.removeEventListener('error', errorHandler); - window.removeEventListener( - 'unhandledrejection', - unhandledRejectionHandler - ); - }; - }, []); - return null; -}; - -const Wrapper = memo(() => { - return ( - - - - - - - - ); -}); -const healthyResponse = { - type: 'sandbox:mobile:healthcheck:response', - healthy: true, -}; - -const useHandshakeParent = () => { - useEffect(() => { - const handleMessage = (event: MessageEvent) => { - if (event.data.type === 'sandbox:mobile:healthcheck') { - window.parent.postMessage(healthyResponse, '*'); - } - }; - window.addEventListener('message', handleMessage); - // Immediately respond to the parent window with a healthy response in - // case we missed the healthcheck message - window.parent.postMessage(healthyResponse, '*'); - return () => { - window.removeEventListener('message', handleMessage); - }; - }, []); -}; - -const CreateApp = () => { - const router = useRouter(); - const pathname = usePathname(); - useHandshakeParent(); - - useEffect(() => { - const handleMessage = (event: MessageEvent) => { - if ( - event.data.type === 'sandbox:navigation' && - event.data.pathname !== pathname - ) { - router.push(event.data.pathname); - } - }; - - window.addEventListener('message', handleMessage); - window.parent.postMessage({ type: 'sandbox:mobile:ready' }, '*'); - return () => { - window.removeEventListener('message', handleMessage); - }; - }, [router, pathname]); - - useEffect(() => { - window.parent.postMessage( - { - type: 'sandbox:mobile:navigation', - pathname, - }, - '*' - ); - }, [pathname]); - - return ( - <> - - - - ); -}; - -export default CreateApp; diff --git a/apps/mobile/__create/handle-resolve-request-error.js b/apps/mobile/__create/handle-resolve-request-error.js deleted file mode 100644 index c54c200..0000000 --- a/apps/mobile/__create/handle-resolve-request-error.js +++ /dev/null @@ -1,79 +0,0 @@ -const crypto = require('node:crypto'); -const fs = require('node:fs'); -const path = require('node:path'); -const { reportErrorToRemote } = require('./report-error-to-remote'); - -const VIRTUAL_ROOT = path.join(__dirname, '../.metro-virtual'); -const VIRTUAL_ROOT_UNRESOLVED = path.join(VIRTUAL_ROOT, 'unresolved'); - -const handleResolveRequestError = ({ - error, - context, - moduleName, - platform, -}) => { - const errorMessage = `Unable to resolve module '${moduleName}' from '${context.originModulePath}'`; - const syntheticError = new Error(errorMessage); - syntheticError.stack = error.stack; - reportErrorToRemote({ error: syntheticError }).catch((_reportError) => { - // no-op - }); - if (process.env.NODE_ENV === 'production') throw error; - if (platform === 'android') throw error; - if (!__DEV__ && process.env.EXPO_PUBLIC_CREATE_ENV !== 'DEVELOPMENT') - throw error; - - // Build a deterministic virtual file path for this failed request - const key = `${moduleName}|${context.originModulePath}|${platform}`; - const hash = crypto - .createHash('sha256') - .update(key) - .digest('hex') - .slice(0, 16); - - fs.mkdirSync(VIRTUAL_ROOT_UNRESOLVED, { recursive: true }); - const vfile = path.join(VIRTUAL_ROOT_UNRESOLVED, `throw-${hash}.js`); - - // Serialize a safe payload for the client - const payload = { - moduleName, - from: context.originModulePath, - platform, - originalMessage: String( - error?.message ? error.message : 'Unknown resolve error' - ), - }; - - const code = [ - '// Auto generated by custom Metro resolver', - '(function(){', - ` var info = ${JSON.stringify(payload)};`, - " var msg = 'Unable to resolve \"' + info.moduleName + '\" from \"' + info.from + '\"';", - " msg += '\\n\\n' + info.originalMessage;", - ' var e = new Error(msg);', - " e.name = 'ModuleResolveError';", - " e.code = 'MODULE_RESOLVE_FAILED';", - ' throw e;', - '})();', - 'export {};', // keep ESM shape harmlessly - '', - ].join('\n'); - - // Only write if content changed — avoids bumping mtime and triggering Metro rebuild loop - const existingContent = fs.existsSync(vfile) ? fs.readFileSync(vfile, 'utf8') : null; - if (existingContent !== code) { - fs.writeFileSync(vfile, code, 'utf8'); - } - - // Tell Metro to load our thrower as a real source file - return { - filePath: vfile, - type: 'sourceFile', - }; -}; - -module.exports = { - handleResolveRequestError, - VIRTUAL_ROOT, - VIRTUAL_ROOT_UNRESOLVED, -}; diff --git a/apps/mobile/__create/report-error-to-remote.js b/apps/mobile/__create/report-error-to-remote.js deleted file mode 100644 index 76f444f..0000000 --- a/apps/mobile/__create/report-error-to-remote.js +++ /dev/null @@ -1,53 +0,0 @@ -import { serializeError } from "serialize-error"; - -export const sendLogsToRemote = async (logs) => { - if ( - !process.env.EXPO_PUBLIC_LOGS_ENDPOINT || - !process.env.EXPO_PUBLIC_PROJECT_GROUP_ID || - !process.env.EXPO_PUBLIC_CREATE_TEMP_API_KEY - ) { - return { success: false }; - } - try { - const response = await fetch(process.env.EXPO_PUBLIC_LOGS_ENDPOINT, { - method: "POST", - headers: { - "Content-Type": "application/json", - Authorization: `Bearer ${process.env.EXPO_PUBLIC_CREATE_TEMP_API_KEY}`, - }, - body: JSON.stringify({ - projectGroupId: process.env.EXPO_PUBLIC_PROJECT_GROUP_ID, - logs, - }), - }); - if (!response.ok) { - return { success: false }; - } - } catch (fetchError) { - return { success: false, error: fetchError }; - } - return { success: true }; -}; - -export const reportErrorToRemote = async ({ error }) => { - if ( - !process.env.EXPO_PUBLIC_LOGS_ENDPOINT || - !process.env.EXPO_PUBLIC_PROJECT_GROUP_ID || - !process.env.EXPO_PUBLIC_CREATE_TEMP_API_KEY - ) { - console.debug( - "reportErrorToRemote: Missing environment variables for logging endpoint, project group ID, or API key.", - error, - ); - return { success: false }; - } - return sendLogsToRemote([ - { - message: JSON.stringify(serializeError(error)), - timestamp: new Date().toISOString(), - level: "error", - source: "BUILDER", - devServerId: process.env.EXPO_PUBLIC_DEV_SERVER_ID, - }, - ]); -}; diff --git a/apps/mobile/__create/report-error-to-remote.test.js b/apps/mobile/__create/report-error-to-remote.test.js deleted file mode 100644 index 82f18b0..0000000 --- a/apps/mobile/__create/report-error-to-remote.test.js +++ /dev/null @@ -1,115 +0,0 @@ -jest.mock("serialize-error", () => ({ - serializeError: jest.fn((err) => ({ - message: err instanceof Error ? err.message : String(err), - name: err instanceof Error ? err.name : "Error", - })), -})); - -let sendLogsToRemote; -let reportErrorToRemote; - -beforeEach(() => { - jest.resetAllMocks(); - jest.resetModules(); - delete process.env.EXPO_PUBLIC_LOGS_ENDPOINT; - delete process.env.EXPO_PUBLIC_PROJECT_GROUP_ID; - delete process.env.EXPO_PUBLIC_CREATE_TEMP_API_KEY; - delete process.env.EXPO_PUBLIC_DEV_SERVER_ID; - global.fetch = jest.fn(); - - // Re-require after mocks are set up - jest.doMock("serialize-error", () => ({ - serializeError: jest.fn((err) => ({ - message: err instanceof Error ? err.message : String(err), - name: err instanceof Error ? err.name : "Error", - })), - })); - const mod = require("./report-error-to-remote"); - sendLogsToRemote = mod.sendLogsToRemote; - reportErrorToRemote = mod.reportErrorToRemote; -}); - -describe("sendLogsToRemote", () => { - it("returns success: false when env vars are missing", async () => { - const result = await sendLogsToRemote([{ message: "test" }]); - expect(result).toEqual({ success: false }); - expect(global.fetch).not.toHaveBeenCalled(); - }); - - it("sends logs to the endpoint with correct auth header", async () => { - process.env.EXPO_PUBLIC_LOGS_ENDPOINT = "https://logs.test/ingest"; - process.env.EXPO_PUBLIC_PROJECT_GROUP_ID = "pg-123"; - process.env.EXPO_PUBLIC_CREATE_TEMP_API_KEY = "key-abc"; - - global.fetch = jest.fn().mockResolvedValue({ ok: true }); - - const logs = [ - { message: "hello", level: "info", timestamp: "2026-01-01T00:00:00Z" }, - ]; - const result = await sendLogsToRemote(logs); - - expect(result).toEqual({ success: true }); - expect(global.fetch).toHaveBeenCalledWith("https://logs.test/ingest", { - method: "POST", - headers: { - "Content-Type": "application/json", - Authorization: "Bearer key-abc", - }, - body: JSON.stringify({ projectGroupId: "pg-123", logs }), - }); - }); - - it("returns success: false on non-ok response", async () => { - process.env.EXPO_PUBLIC_LOGS_ENDPOINT = "https://logs.test/ingest"; - process.env.EXPO_PUBLIC_PROJECT_GROUP_ID = "pg-123"; - process.env.EXPO_PUBLIC_CREATE_TEMP_API_KEY = "key-abc"; - - global.fetch = jest.fn().mockResolvedValue({ ok: false, status: 500 }); - - const result = await sendLogsToRemote([{ message: "fail" }]); - expect(result).toEqual({ success: false }); - }); - - it("returns success: false with error on network failure", async () => { - process.env.EXPO_PUBLIC_LOGS_ENDPOINT = "https://logs.test/ingest"; - process.env.EXPO_PUBLIC_PROJECT_GROUP_ID = "pg-123"; - process.env.EXPO_PUBLIC_CREATE_TEMP_API_KEY = "key-abc"; - - const networkError = new Error("Network request failed"); - global.fetch = jest.fn().mockRejectedValue(networkError); - - const result = await sendLogsToRemote([{ message: "fail" }]); - expect(result).toEqual({ success: false, error: networkError }); - }); -}); - -describe("reportErrorToRemote", () => { - it("returns success: false when env vars are missing", async () => { - const result = await reportErrorToRemote({ - error: new Error("test error"), - }); - expect(result).toEqual({ success: false }); - expect(global.fetch).not.toHaveBeenCalled(); - }); - - it("serializes error and sends as a single log entry with source BUILDER", async () => { - process.env.EXPO_PUBLIC_LOGS_ENDPOINT = "https://logs.test/ingest"; - process.env.EXPO_PUBLIC_PROJECT_GROUP_ID = "pg-123"; - process.env.EXPO_PUBLIC_CREATE_TEMP_API_KEY = "key-abc"; - process.env.EXPO_PUBLIC_DEV_SERVER_ID = "ds-456"; - - global.fetch = jest.fn().mockResolvedValue({ ok: true }); - - const error = new Error("something broke"); - await reportErrorToRemote({ error }); - - expect(global.fetch).toHaveBeenCalledTimes(1); - const body = JSON.parse(global.fetch.mock.calls[0][1].body); - expect(body.projectGroupId).toBe("pg-123"); - expect(body.logs).toHaveLength(1); - expect(body.logs[0].level).toBe("error"); - expect(body.logs[0].source).toBe("BUILDER"); - expect(body.logs[0].devServerId).toBe("ds-456"); - expect(body.logs[0].message).toContain("something broke"); - }); -}); diff --git a/apps/mobile/__create/sentry.ts b/apps/mobile/__create/sentry.ts deleted file mode 100644 index ee6a948..0000000 --- a/apps/mobile/__create/sentry.ts +++ /dev/null @@ -1,78 +0,0 @@ -import * as Sentry from "@sentry/react-native"; -import { sendLogsToRemote } from "./report-error-to-remote"; - -function isActive(): boolean { - return ( - !__DEV__ && - process.env.EXPO_PUBLIC_CREATE_ENV !== "DEVELOPMENT" && - !!process.env.EXPO_PUBLIC_SENTRY_DSN - ); -} - -let initialized = false; - -// Mirror a Sentry event into the Anything logs pipeline so native and JS -// crashes — including startup crashes that Sentry caches natively and reports -// on the next launch — surface in the Flux builder, not only the Sentry -// dashboard. -function forwardEventToRemote(event: Sentry.Event): void { - try { - const exception = event.exception?.values?.[0]; - const lines: string[] = []; - if (exception && (exception.type || exception.value)) { - lines.push(`${exception.type ?? "Error"}: ${exception.value ?? ""}`); - } else if (typeof event.message === "string") { - lines.push(event.message); - } - const frames = exception?.stacktrace?.frames; - if (frames && frames.length > 0) { - lines.push( - frames - .slice(-20) - .reverse() - .map( - (frame) => - ` at ${frame.function ?? "?"} (${frame.filename ?? "?"}:${frame.lineno ?? 0})`, - ) - .join("\n"), - ); - } - const message = lines.join("\n").trim(); - if (!message) return; - const timestamp = - typeof event.timestamp === "number" - ? new Date(event.timestamp * 1000).toISOString() - : new Date().toISOString(); - sendLogsToRemote([ - { - message: `[SENTRY] ${message}`, - timestamp, - level: "error", - source: "TEST_FLIGHT", - }, - ]); - } catch (_err) { - // Silent - } -} - -export function initSentry(): void { - try { - if (!isActive() || initialized) return; - initialized = true; - Sentry.init({ - dsn: process.env.EXPO_PUBLIC_SENTRY_DSN, - enableNativeCrashHandling: true, - beforeSend: (event) => { - forwardEventToRemote(event); - return event; - }, - }); - const projectGroupId = process.env.EXPO_PUBLIC_PROJECT_GROUP_ID; - if (projectGroupId) { - Sentry.setTag("projectGroupId", projectGroupId); - } - } catch (_err) { - // Silent — Sentry must never crash the host app - } -} diff --git a/apps/mobile/__create/testflight-logger.test.ts b/apps/mobile/__create/testflight-logger.test.ts deleted file mode 100644 index 079b4bb..0000000 --- a/apps/mobile/__create/testflight-logger.test.ts +++ /dev/null @@ -1,428 +0,0 @@ -let mockSendLogsToRemote: jest.Mock; -let mockGetItem: jest.Mock; -let mockSetItem: jest.Mock; -let mockRemoveItem: jest.Mock; -let mockFileStore: Record; -let capturedErrorHandler: ((error: Error, isFatal?: boolean) => void) | null; -let originalErrorUtils: unknown; - -const CRASH_FILE = "/doc/testflight_crash_logs.json"; - -const STORAGE_KEY = "testflight_logger_pending_logs"; -let originalDev: boolean; - -function setDevMode(value: boolean) { - (globalThis as Record).__DEV__ = value; -} - -beforeEach(() => { - originalDev = (globalThis as Record).__DEV__ as boolean; - jest.resetModules(); - jest.useFakeTimers(); - process.env.EXPO_PUBLIC_CREATE_ENV = "PRODUCTION"; - - mockSendLogsToRemote = jest.fn().mockResolvedValue({ success: true }); - mockGetItem = jest.fn().mockResolvedValue(null); - mockSetItem = jest.fn().mockResolvedValue(undefined); - mockRemoveItem = jest.fn().mockResolvedValue(undefined); - mockFileStore = {}; - - capturedErrorHandler = null; - originalErrorUtils = (globalThis as Record).ErrorUtils; - (globalThis as Record).ErrorUtils = { - getGlobalHandler: () => () => {}, - setGlobalHandler: (handler: (error: Error, isFatal?: boolean) => void) => { - capturedErrorHandler = handler; - }, - }; - - jest.doMock("./report-error-to-remote", () => ({ - sendLogsToRemote: mockSendLogsToRemote, - })); - - jest.doMock("@react-native-async-storage/async-storage", () => ({ - getItem: mockGetItem, - setItem: mockSetItem, - removeItem: mockRemoveItem, - })); - - jest.doMock("expo-file-system", () => { - class MockFile { - uri: string; - constructor(directory: string, name: string) { - this.uri = `${directory}/${name}`; - } - get exists() { - return Object.prototype.hasOwnProperty.call(mockFileStore, this.uri); - } - create() { - if (!(this.uri in mockFileStore)) mockFileStore[this.uri] = ""; - } - delete() { - delete mockFileStore[this.uri]; - } - write(content: string) { - mockFileStore[this.uri] = content; - } - textSync() { - return mockFileStore[this.uri] ?? ""; - } - } - return { File: MockFile, Paths: { document: "/doc" } }; - }); -}); - -afterEach(() => { - jest.useRealTimers(); - setDevMode(originalDev); - delete process.env.EXPO_PUBLIC_CREATE_ENV; - (globalThis as Record).ErrorUtils = originalErrorUtils; -}); - -function loadModule() { - return require("./testflight-logger") as typeof import("./testflight-logger"); -} - -describe("initTestFlightLogger", () => { - it("is a no-op when __DEV__ is true", async () => { - setDevMode(true); - const { initTestFlightLogger, getTestFlightLogger } = loadModule(); - - initTestFlightLogger(); - - expect(getTestFlightLogger()).toBeNull(); - expect(mockSendLogsToRemote).not.toHaveBeenCalled(); - }); - - it("is a no-op when EXPO_PUBLIC_CREATE_ENV is DEVELOPMENT", async () => { - setDevMode(false); - process.env.EXPO_PUBLIC_CREATE_ENV = "DEVELOPMENT"; - const { initTestFlightLogger, getTestFlightLogger } = loadModule(); - - initTestFlightLogger(); - - expect(getTestFlightLogger()).toBeNull(); - }); - - it("activates when not in dev mode", async () => { - setDevMode(false); - const { initTestFlightLogger, getTestFlightLogger } = loadModule(); - - initTestFlightLogger(); - await jest.advanceTimersByTimeAsync(0); - - const logger = getTestFlightLogger(); - expect(logger).not.toBeNull(); - expect(logger).toHaveProperty("logError"); - }); - - it("only creates one instance on multiple calls", async () => { - setDevMode(false); - const { initTestFlightLogger, getTestFlightLogger } = loadModule(); - - initTestFlightLogger(); - await jest.advanceTimersByTimeAsync(0); - const first = getTestFlightLogger(); - - initTestFlightLogger(); - await jest.advanceTimersByTimeAsync(0); - const second = getTestFlightLogger(); - - expect(first).toBe(second); - }); -}); - -describe("console patching", () => { - it("intercepts console.log and buffers the message", async () => { - setDevMode(false); - const { initTestFlightLogger } = loadModule(); - - initTestFlightLogger(); - await jest.advanceTimersByTimeAsync(0); - - console.log("test message"); - - await jest.advanceTimersByTimeAsync(5_000); - - expect(mockSendLogsToRemote).toHaveBeenCalled(); - const logs = mockSendLogsToRemote.mock.calls[0][0]; - const logMessage = logs.find( - (l: Record) => l.message === "test message", - ); - expect(logMessage).toBeDefined(); - expect(logMessage.level).toBe("log"); - expect(logMessage.source).toBe("TEST_FLIGHT"); - }); - - it("intercepts console.error", async () => { - setDevMode(false); - const { initTestFlightLogger } = loadModule(); - - initTestFlightLogger(); - await jest.advanceTimersByTimeAsync(0); - - console.error("bad thing"); - - await jest.advanceTimersByTimeAsync(5_000); - - expect(mockSendLogsToRemote).toHaveBeenCalled(); - const logs = mockSendLogsToRemote.mock.calls[0][0]; - const errorLog = logs.find( - (l: Record) => l.message === "bad thing", - ); - expect(errorLog).toBeDefined(); - expect(errorLog.level).toBe("error"); - }); - - it("serializes non-string arguments as JSON", async () => { - setDevMode(false); - const { initTestFlightLogger } = loadModule(); - - initTestFlightLogger(); - await jest.advanceTimersByTimeAsync(0); - - console.log("count:", { x: 1 }); - - await jest.advanceTimersByTimeAsync(5_000); - - const logs = mockSendLogsToRemote.mock.calls[0][0]; - const entry = logs.find((l: Record) => - l.message.includes("count:"), - ); - expect(entry.message).toBe('count: {"x":1}'); - }); -}); - -describe("logError", () => { - it("immediately flushes error entries", async () => { - setDevMode(false); - const { initTestFlightLogger, getTestFlightLogger } = loadModule(); - - initTestFlightLogger(); - await jest.advanceTimersByTimeAsync(0); - - const logger = getTestFlightLogger()!; - logger.logError("critical failure"); - - // Should flush without waiting for the 5s interval - await jest.advanceTimersByTimeAsync(0); - - expect(mockSendLogsToRemote).toHaveBeenCalled(); - const logs = mockSendLogsToRemote.mock.calls[0][0]; - expect(logs[0].message).toBe("critical failure"); - expect(logs[0].level).toBe("error"); - }); -}); - -describe("buffering and flushing", () => { - it("flushes buffer every 5 seconds", async () => { - setDevMode(false); - const { initTestFlightLogger } = loadModule(); - - initTestFlightLogger(); - await jest.advanceTimersByTimeAsync(0); - - console.log("entry 1"); - - // Not flushed yet at 3 seconds - await jest.advanceTimersByTimeAsync(3_000); - expect(mockSendLogsToRemote).not.toHaveBeenCalled(); - - // Flushed at 5 seconds - await jest.advanceTimersByTimeAsync(2_000); - expect(mockSendLogsToRemote).toHaveBeenCalledTimes(1); - }); - - it("auto-flushes when buffer reaches 50 entries", async () => { - setDevMode(false); - const { initTestFlightLogger } = loadModule(); - - initTestFlightLogger(); - await jest.advanceTimersByTimeAsync(0); - - for (let i = 0; i < 50; i++) { - console.log(`entry ${i}`); - } - - await jest.advanceTimersByTimeAsync(0); - expect(mockSendLogsToRemote).toHaveBeenCalled(); - }); -}); - -describe("persistence and retry", () => { - it("persists logs to AsyncStorage when flush fails", async () => { - mockSendLogsToRemote.mockResolvedValue({ success: false }); - setDevMode(false); - const { initTestFlightLogger } = loadModule(); - - initTestFlightLogger(); - await jest.advanceTimersByTimeAsync(0); - - console.log("will fail"); - - await jest.advanceTimersByTimeAsync(5_000); - - expect(mockSetItem).toHaveBeenCalledWith( - STORAGE_KEY, - expect.stringContaining("will fail"), - ); - }); - - it("restores persisted logs on startup and re-sends them", async () => { - const persistedLogs = [ - { - message: "old log", - timestamp: "2026-01-01T00:00:00Z", - level: "error", - source: "TEST_FLIGHT", - sessionId: "old-session", - }, - ]; - mockGetItem.mockResolvedValueOnce(JSON.stringify(persistedLogs)); - - setDevMode(false); - const { initTestFlightLogger } = loadModule(); - - initTestFlightLogger(); - await jest.advanceTimersByTimeAsync(0); - - expect(mockRemoveItem).toHaveBeenCalledWith(STORAGE_KEY); - expect(mockSendLogsToRemote).toHaveBeenCalledWith(persistedLogs); - }); - - it("re-persists restored logs if resend also fails", async () => { - const persistedLogs = [ - { - message: "stubborn log", - timestamp: "2026-01-01T00:00:00Z", - level: "error", - source: "TEST_FLIGHT", - sessionId: "old-session", - }, - ]; - mockGetItem - .mockResolvedValueOnce(JSON.stringify(persistedLogs)) - .mockResolvedValueOnce(null); - - mockSendLogsToRemote.mockResolvedValueOnce({ success: false }); - - setDevMode(false); - const { initTestFlightLogger } = loadModule(); - - initTestFlightLogger(); - await jest.advanceTimersByTimeAsync(0); - - expect(mockSetItem).toHaveBeenCalledWith( - STORAGE_KEY, - expect.stringContaining("stubborn log"), - ); - }); - - it("caps persisted entries at 200", async () => { - const existingLogs = Array.from({ length: 195 }, (_, i) => ({ - message: `existing ${i}`, - timestamp: "2026-01-01T00:00:00Z", - level: "log", - source: "TEST_FLIGHT", - sessionId: "s", - })); - - mockSendLogsToRemote.mockResolvedValue({ success: false }); - mockGetItem - .mockResolvedValueOnce(null) - .mockResolvedValueOnce(JSON.stringify(existingLogs)); - - setDevMode(false); - const { initTestFlightLogger } = loadModule(); - - initTestFlightLogger(); - await jest.advanceTimersByTimeAsync(0); - - for (let i = 0; i < 10; i++) { - console.log(`new ${i}`); - } - - await jest.advanceTimersByTimeAsync(5_000); - - const setItemCalls = mockSetItem.mock.calls; - const lastCall = setItemCalls[setItemCalls.length - 1]; - const saved = JSON.parse(lastCall[1]); - expect(saved.length).toBeLessThanOrEqual(200); - }); -}); - -describe("crash persistence", () => { - it("synchronously snapshots the buffer to the crash file on a fatal error", async () => { - setDevMode(false); - const { initTestFlightLogger } = loadModule(); - - initTestFlightLogger(); - await jest.advanceTimersByTimeAsync(0); - - console.log("breadcrumb before crash"); - capturedErrorHandler!(new Error("startup boom"), true); - - const crashFile = mockFileStore[CRASH_FILE]; - expect(crashFile).toContain("startup boom"); - expect(crashFile).toContain("breadcrumb before crash"); - }); - - it("does not snapshot the crash file for a non-fatal error", async () => { - setDevMode(false); - const { initTestFlightLogger } = loadModule(); - - initTestFlightLogger(); - await jest.advanceTimersByTimeAsync(0); - - capturedErrorHandler!(new Error("recoverable"), false); - - expect(mockFileStore[CRASH_FILE]).toBeUndefined(); - }); - - it("captures the in-flight batch when a fatal error triggers auto-flush", async () => { - setDevMode(false); - const { initTestFlightLogger } = loadModule(); - - initTestFlightLogger(); - await jest.advanceTimersByTimeAsync(0); - - // One short of the auto-flush threshold; the fatal error is the 50th - // entry, so addEntry's auto-flush empties `buffer` before - // persistBufferSync runs. - for (let i = 0; i < 49; i++) { - console.log(`entry ${i}`); - } - capturedErrorHandler!(new Error("boundary crash"), true); - - const crashFile = mockFileStore[CRASH_FILE]; - expect(crashFile).toContain("boundary crash"); - expect(crashFile).toContain("entry 0"); - }); - - it("ships crash-file logs on the next startup and clears the file", async () => { - mockFileStore[CRASH_FILE] = JSON.stringify([ - { - message: "[FATAL] crashed last run", - timestamp: "2026-01-01T00:00:00Z", - level: "error", - source: "TEST_FLIGHT", - sessionId: "prev", - }, - ]); - setDevMode(false); - const { initTestFlightLogger } = loadModule(); - - initTestFlightLogger(); - await jest.advanceTimersByTimeAsync(0); - - expect(mockSendLogsToRemote).toHaveBeenCalled(); - const sent = mockSendLogsToRemote.mock.calls[0][0]; - expect( - sent.some( - (entry: Record) => - entry.message === "[FATAL] crashed last run", - ), - ).toBe(true); - expect(mockFileStore[CRASH_FILE]).toBeUndefined(); - }); -}); diff --git a/apps/mobile/__create/testflight-logger.ts b/apps/mobile/__create/testflight-logger.ts deleted file mode 100644 index 6ec8285..0000000 --- a/apps/mobile/__create/testflight-logger.ts +++ /dev/null @@ -1,292 +0,0 @@ -import AsyncStorage from "@react-native-async-storage/async-storage"; -import { File, Paths } from "expo-file-system"; -import { AppState, type AppStateStatus } from "react-native"; -import { sendLogsToRemote } from "./report-error-to-remote"; - -const STORAGE_KEY = "testflight_logger_pending_logs"; -// Written synchronously from the crash handlers so logs survive a startup -// crash that tears down the JS runtime before the async network / AsyncStorage -// paths can finish. Shipped and cleared on the next launch. -const CRASH_FILE_NAME = "testflight_crash_logs.json"; -const MAX_STORED_ENTRIES = 200; -const MAX_BUFFER_SIZE = 50; -const FLUSH_INTERVAL_MS = 5_000; - -interface LogEntry { - message: string; - timestamp: string; - level: "log" | "info" | "warn" | "error" | "debug"; - source: "TEST_FLIGHT"; - sessionId: string; -} - -function isActive(): boolean { - return !__DEV__ && process.env.EXPO_PUBLIC_CREATE_ENV !== "DEVELOPMENT"; -} - -function generateSessionId(): string { - return `${Date.now()}-${Math.random().toString(36).slice(2, 10)}`; -} - -let instance: TestFlightLogger | null = null; - -class TestFlightLogger { - private buffer: LogEntry[] = []; - // Entries spliced out of `buffer` by an in-flight `flush()` that hasn't - // confirmed delivery yet. Tracked so a crash mid-flush can still snapshot - // them — `buffer` alone would miss them. - private inFlightBatch: LogEntry[] = []; - private sessionId: string; - private flushTimer: ReturnType | null = null; - private originalConsole: Record void> = {}; - private isFlushing = false; - - constructor() { - this.sessionId = generateSessionId(); - } - - async start(): Promise { - try { - await this.restorePersistedLogs(); - this.patchConsole(); - this.hookUncaughtExceptions(); - this.hookUnhandledRejections(); - this.hookAppState(); - this.flushTimer = setInterval(() => { - this.flush(); - }, FLUSH_INTERVAL_MS); - } catch (_err) { - // Silent — the logger must never crash the host app - } - } - - logError(message: string): void { - try { - this.addEntry("error", message); - this.flush(); - } catch (_err) { - // Silent - } - } - - private addEntry(level: LogEntry["level"], message: string): void { - this.buffer.push({ - message, - timestamp: new Date().toISOString(), - level, - source: "TEST_FLIGHT", - sessionId: this.sessionId, - }); - if (this.buffer.length >= MAX_BUFFER_SIZE) { - this.flush(); - } - } - - private patchConsole(): void { - const levels = ["log", "info", "warn", "error", "debug"] as const; - for (const level of levels) { - this.originalConsole[level] = console[level].bind(console); - console[level] = (...args: unknown[]) => { - try { - const message = args - .map((arg) => { - if (typeof arg === "string") return arg; - try { - return JSON.stringify(arg); - } catch { - return String(arg); - } - }) - .join(" "); - this.addEntry(level, message); - } catch (_err) { - // Silent - } - this.originalConsole[level]?.(...args); - }; - } - } - - private hookUncaughtExceptions(): void { - const ErrorUtils = (globalThis as Record).ErrorUtils as - | { - getGlobalHandler: () => (error: Error, isFatal?: boolean) => void; - setGlobalHandler: ( - handler: (error: Error, isFatal?: boolean) => void, - ) => void; - } - | undefined; - - if (!ErrorUtils) return; - - const previousHandler = ErrorUtils.getGlobalHandler(); - ErrorUtils.setGlobalHandler((error: Error, isFatal?: boolean) => { - try { - const tag = isFatal ? "[FATAL]" : "[UNCAUGHT]"; - this.addEntry("error", `${tag} ${error.message}\n${error.stack ?? ""}`); - // Only a fatal error tears down the runtime before the async - // flush can finish, so only then is the synchronous crash-file - // snapshot needed. Non-fatal errors are delivered by flush / - // AsyncStorage retry; snapshotting them would just duplicate - // entries on the next launch. - if (isFatal) { - this.persistBufferSync(); - } - this.flush(); - } catch (_err) { - // Silent - } - previousHandler(error, isFatal); - }); - } - - private hookUnhandledRejections(): void { - const previous: ((event: PromiseRejectionEvent) => void) | null = - globalThis.onunhandledrejection; - globalThis.onunhandledrejection = (event: PromiseRejectionEvent) => { - try { - const reason = - event.reason instanceof Error - ? `${event.reason.message}\n${event.reason.stack ?? ""}` - : String(event.reason); - this.addEntry("error", `[UNHANDLED_REJECTION] ${reason}`); - this.flush(); - } catch (_err) { - // Silent - } - if (previous) { - previous(event); - } - }; - } - - private hookAppState(): void { - AppState.addEventListener("change", (state: AppStateStatus) => { - try { - this.addEntry("info", `[APP_STATE] ${state}`); - if (state === "background" || state === "inactive") { - this.flush(); - } - } catch (_err) { - // Silent - } - }); - } - - private async flush(): Promise { - if (this.isFlushing || this.buffer.length === 0) return; - this.isFlushing = true; - const batch = this.buffer.splice(0); - this.inFlightBatch = batch; - try { - const result = await sendLogsToRemote(batch); - if (!result.success) { - await this.persistLogs(batch); - } - } catch (_err) { - await this.persistLogs(batch); - } finally { - this.inFlightBatch = []; - this.isFlushing = false; - } - } - - private async persistLogs(logs: LogEntry[]): Promise { - try { - const raw = await AsyncStorage.getItem(STORAGE_KEY); - const existing: LogEntry[] = raw ? JSON.parse(raw) : []; - const merged = [...existing, ...logs].slice(-MAX_STORED_ENTRIES); - await AsyncStorage.setItem(STORAGE_KEY, JSON.stringify(merged)); - } catch (_err) { - // Silent - } - } - - // Synchronously snapshot pending logs to disk. Called from the crash - // handlers before the runtime is torn down, so a startup crash is still - // recoverable on the next launch. Includes any in-flight flush batch, - // since `addEntry`'s auto-flush may have already emptied `buffer`. - private persistBufferSync(): void { - try { - const pending = [...this.inFlightBatch, ...this.buffer]; - if (pending.length === 0) return; - const merged = [...this.readCrashLogsSync(), ...pending].slice( - -MAX_STORED_ENTRIES, - ); - const file = new File(Paths.document, CRASH_FILE_NAME); - if (file.exists) { - file.delete(); - } - file.create(); - file.write(JSON.stringify(merged)); - } catch (_err) { - // Silent — the logger must never crash the host app - } - } - - private readCrashLogsSync(): LogEntry[] { - try { - const file = new File(Paths.document, CRASH_FILE_NAME); - if (!file.exists) return []; - const parsed: unknown = JSON.parse(file.textSync()); - return Array.isArray(parsed) ? (parsed as LogEntry[]) : []; - } catch (_err) { - return []; - } - } - - private clearCrashFileSync(): void { - try { - const file = new File(Paths.document, CRASH_FILE_NAME); - if (file.exists) { - file.delete(); - } - } catch (_err) { - // Silent - } - } - - private async restorePersistedLogs(): Promise { - try { - const crashLogs = this.readCrashLogsSync(); - if (crashLogs.length > 0) { - this.clearCrashFileSync(); - } - const raw = await AsyncStorage.getItem(STORAGE_KEY); - if (raw) { - await AsyncStorage.removeItem(STORAGE_KEY); - } - const storedLogs: LogEntry[] = raw ? JSON.parse(raw) : []; - const logs = [...crashLogs, ...storedLogs]; - if (logs.length === 0) return; - const result = await sendLogsToRemote(logs); - if (!result.success) { - await this.persistLogs(logs); - } - } catch (_err) { - // Silent - } - } -} - -export function initTestFlightLogger(): void { - try { - if (!isActive()) return; - if (instance) return; - instance = new TestFlightLogger(); - instance.start(); - } catch (_err) { - // Silent - } -} - -export function getTestFlightLogger(): { - logError: (message: string) => void; -} | null { - try { - if (!isActive()) return null; - return instance; - } catch (_err) { - return null; - } -} diff --git a/apps/mobile/app.json b/apps/mobile/app.json deleted file mode 100644 index eb70818..0000000 --- a/apps/mobile/app.json +++ /dev/null @@ -1,82 +0,0 @@ -{ - "expo": { - "name": "Anything mobile app", - "version": "1.0.0", - "orientation": "portrait", - "icon": "./assets/images/icon.png", - "userInterfaceStyle": "automatic", - "newArchEnabled": true, - "ios": { - "supportsTablet": true, - "infoPlist": { - "ITSAppUsesNonExemptEncryption": false - } - }, - "android": { - "adaptiveIcon": { - "foregroundImage": "./assets/images/adaptive-icon.png", - "backgroundColor": "#ffffff" - }, - "permissions": [ - "android.permission.RECORD_AUDIO", - "android.permission.MODIFY_AUDIO_SETTINGS" - ], - "package": "xyz.create.CreateExpoEnvironment" - }, - "plugins": [ - [ - "expo-router", - { - "sitemap": false - } - ], - [ - "expo-splash-screen", - { - "image": "./assets/images/splash-icon.png", - "imageWidth": 200, - "resizeMode": "contain" - } - ], - "expo-audio", - [ - "expo-build-properties", - { - "ios": { - "useFrameworks": "static" - } - } - ], - [ - "expo-video", - { - "supportsBackgroundPlayback": true, - "supportsPictureInPicture": true - } - ], - "expo-font", - "expo-secure-store", - "expo-web-browser", - "@sentry/react-native/expo", - [ - "react-native-google-mobile-ads", - { - "androidAppId": "ca-app-pub-3940256099942544~3347511713", - "iosAppId": "ca-app-pub-3940256099942544~1458002511" - } - ] - ], - "web": { - "bundler": "metro", - "favicon": "./assets/images/favicon.png" - }, - "experiments": { - "typedRoutes": true - }, - "extra": { - "router": { - "origin": false - } - } - } -} \ No newline at end of file diff --git a/apps/mobile/assets/images/adaptive-icon.png b/apps/mobile/assets/images/adaptive-icon.png deleted file mode 100644 index eba6b3419ddc7d23980f101286da23f7d56ff9b0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 20881 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 diff --git a/apps/mobile/assets/images/icon.png b/apps/mobile/assets/images/icon.png deleted file mode 100644 index 917bc117718a4ec0ffdd56c80e49f8b81dd074a2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 448141 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≦=F>C^${GT%obJ6l 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

X zGU7{}|EcJjqz`|2Em?%2N908(5B)}g9DZQ4q?MwKU0xtg<+{drcezVkrUrQ7!~ zvB+|-0s%!TyPf%f47Y>V&S23B0w2wr0V6VQPtTEIqpnC53d5q4mW`(OZX zVaI|}K{7!N1&wxGKbK?9pMP9at%dXP1L4q|;O2I%wLacY%C5Z$^UqfDMrLRnzuR8WP0_uKmt!RN`nyN?TNZcS}+$LksZugS2G3 zE`|k&9yCP%<#!L8W}qjj5>tm(N5~-u)`Xvig$d18^~JBj=txExIH^`-vxNbjYwf*q zz){Ye0lW`HGKf0XY!>NnV;LJ!!JmG7AJ?XX;RPrd(xb3#8+TcTL6x{`zk|$jKXs#` zS0sm6E7_?wi!EZ8Wg=k8n;Qob_$(NW6`Q|^sBVTQhUJpL?a^5=paD>my&rfd2%u*V zzlakmedTKa6GYKX+E*ad%+d>fy{`Hkl$4#zkJf&53#;U_-rqyKYD> zDfh)7o0t6bM`EV;0p{H*Xj_J-T2i5SYX2MNQrMsEVjsFIGp?N-xpcQWZYB1fl$AAP{zW!5$pEU)z~`) ztSCNO!_^a$_ff^NWg~~|e(^&n*`QP0KBKkYx!{l!&rBVxD`T+(%!Ys^(b-Z$c*S9m zp+St@5cE*YD6O_2`wr$&b*lEV2u-yN?e{V>IvV7m^^-2`Y~tXF40&T#dCfL3~hNjS{DnFzA4iVQbXMza{3 zL7%_M1!pu2e)3N$;!GPRM*>qC7_I>0K7gd!WpKLJChwx?n$25`$VdrCsTmdIjdJ#P}b0$%QM?u*BuW$WE6)r}NuIpJNnCrlO$+ ziiL?%4AMRilfj)A`#!{x{mo!VZ~HJ7MJf)eXBW`*Sw>$T4%9F?xu1c+9NV5EDC&U% zZ3V=;0m^ZOP$LR>L`lz|e)dyHmUmMlubn*C3w{()$tHT5i|7Jng19q=!~)`Gtl`1n z>!>Q@Nk^fob_+K7e<~kS!r%#NvzZRK$a0NY_6P?Lp+1a>rAVE3HBaUYZ7J6HTC0iWaojc&ICr6?G{CJ!`|^4xV~F>s=LTb8HrCFl zv(KNyaH70yjcEcT*1KuHpx4yZ>)^^`^5)q5_sbl?XA{7rhXgE|!sajnDnN1GU~Fcc zpy*NNRUatPI1c`G(B1T&QKlRqZoCf0OX;W@)>SA*^O9<680>?*e7uW!pLWp2`@xQZ z83a^=xD?w+cAh#WvoFYI84QRFh&}u=wez=p_{fS%cA4~uaz4dSJAv3%=-}0WN#`)g z7Ep2WTR)~v`%AfC8-1KtJ@PDOlp6D>28;Pe({k^ zKStpw_Q&bd!~cj?`NwQy;{vKgMVq~pKOz4!tK zIXhxGErP8^kRhT}H}q4LES8hI+}$sWXou+FVT59G7Fv-sjJLiz_i6R*%?yw z2`ItL6rjzXI|7)M0MkE-PN@K?m~HTqBX2+T_M^p6c6emEu|H`6QcwrMQUK_<2~bv~ zzn@qb16NQ?P?;EtvguZp9VKj+Yz<~blkHjI4V}~PJ%F*boRUhsF$UtaKf{AkW?$r^ z<~Qe;S7CYo_iF2^v4p!%lroojH^$T-bm`lM=rb{c+*~>zNWcI{}AA23#+wO~JSGmo0n!W~Z7~sPoP}DVuaP2#zU99O* zbB3`sc!4z~buhE?K)~ha%ig;Saw=|S8KN;h-7z)7Gkgzv11~C=jJ9KRh8clO(ADpN zMO}LlJjXUf1w9UC1uQShG<9!3{%X8t0mYq>j#g<=;l=*A3V-U6P{|NPUt-Bos$z|g_k()v|S)i`U7 z(GlzqikxIn`#=m{3lkqu)lRcOMLxUDHl1~9m;qBkee+rUsDWVS%sMEG-GeDx3ZjdF zv{aF;0g#nGjG>N8FSLgRwB0Qgd)T3` zYFX`)(VssNxv71Og`@TZZ&RXmx0tP9wF69+!h(KvdzC@&-g>jG6hs7HGRx6}Om#^Nb!|GV#D6P@g#9@y)92p`NLYcdcftQQ4ZhXTl(F zj|{{xe)M=ARRL2h5yYc__$c2`&xsnWO0zdSZ}VU7c?`yqp4kI7=9mMp2suhPWAG8r zFDmC!w#C{O!++b4*jlT%rc$}R1`~{I#tAS6fY19l(1dDT1<-+V5yI7$WT1Vosi^xR z7z#mYsIFS$dDCNAUAGCxb<45#A_mJ+xq_Cw%$RjEl(S;ydbOW%40$(0)qbS%`OkSe zz{&r4=TE^m#Gv!0kzCOkec+5QbC}5ws4WiUlt=R4yE^Fi1<-b8R#CYJ6m=V}@XS7# zfR`+^w^+B@pmw4k(F;wvQ^j(}08?Tin2#G+UeEWZj%Aq3z_|Hwj8xjXoB)7K2`xfA=KahF_pL|!Kc4EtvUt9>R{eO zy*6x>FS3^cybZ&nL&cd}^A50a61$`JI}IU0E-4sq#-_2v*a86-!pRBI!L?7Q?HYzw zQY^+v->DX8@q^4^plUf9JWmEX?@!H+*9Yuw0Zfm)QnA&xvl4+h<+x#b-M8qCe{l5J zml@%s?QwDH5Ha*=KW`BIWTZR$)|QN@e)YKM!iOL(KCG6>8k+Ge3!*<5A_24D>g_5C zps&TJ_dz6s+~=7{iQ7fsj%3HMa^;7*h3T-SkD#z3jY~@ox=s55D`S5YJW2)YAn)P> z*Ka#IsRE~)crcJ?QfEMSv&m-}jLA$o#N;ZAfiE%sb8o%^F%AMQ+%6KFO-)B#aY<2D z_Q*iY@E-~F*Fx&M0fXU>&w zT%;X~H4wDG%dopKU?v(sd}q3HN5A%GiH1~mbSIkJLBM$9$#n?r6UP{u7SJS9cciN3 z(%q1>%`Hqa5&w8+h}vPxvdn;2*2G$4j`4n3SI;|i56}?61+gS4t$}WJVN2I>)A_pf znBrXi|1}h;-h1y|vaDkDa!6<)5K6+(5&|K>gaiU4kWe!4 zJjON#1EynR1CwE9?#$e|nIGmKxbM5arG1V~GWR~u`<3;rUDo>AKDMNNEDdY>s!eD= z?HN1!JblYWIgfzRTW{Y12E;E`fzy{p?oFV=s*k(4Jxl!WpWp6Nz^AY^bDaIbX?dKX z+udNeG6ui~RiRz~TM~|u2fV$G&S+h=RMZMmU`sW(gtClX9&R1lz{>Pc&%4EC3>X|i zVV|z@fYwtHbd6WHllHwV+w5-ba>VF`+nHbuGNLFlZ?wCVf!_yJGa5`6K@fxu$ZNtO zxLQnOrK6eoP?NS+z^4Z!>ekTExE2~$5tR$}3;#zjpI@+;=ZP0`$TMPfo6=Z56Fvcw-VK zR&}k@7WlL$lVF6&FBpPI>t2hdUj&g5z9V2=B^_enYJmmrX;yXJQL#0N2ou330|bi@ zJ|lt-0GKX{{bTk!%gU6_S?lF8`dG&Sd$PKt7}?NF<$c<}VJ{v(jTc~?YTR1e zo66kQUe9xayQCFhUfO`hb6w9o0$K1Od7T^B)w?>m?{|I9!hgwz>DfL8#zTUe)m~>~h3_6G5@&pNvzgS+aP5!fApXIs*VG-)1jczGsp=^RoSKk0S{ zDH}HmgibMmfLzd2O8PrLfJ_#XT@$1&Z_T`~{pLC4Zw%NE*&_?izUC5U-Alh`#^r4u z^6n$qU?m_H&JF0pcu#w+5Q{GiG|)f>`lsh!o@9k9H|#W|;%|G|ZW>wCz?$<%FNsDk z`hqe*y!8Z#HwB_7twaYO@DY{PY26CtA|rAG>eQ_xnz?#_Zq#AYwO(C=qQ7U#(#Y7T z?v~%f!VfDFw_euj)yfN-zWOcAexV44UK_=xX&}TP~*>yuQ?{+TS1-`_f@e0~IS{s?}0(H+U zj94mw%6u7|`yQnB85vT=`nm)@{$V{+-xA9*FsFxB@%>yZz)S#kLF20GGZ!#mDWwM) zS|Dseg?#J)6>LkTd33&y_THhALV9+*H2@r__tt*Dy2{tpzJ(ht2pHiGKX}p_+}Wi# zD}HF0m7K`EHRrXQIvvk!E$=Sdfd~a%w)S0c9{XSbSyCT z&ducwyf9Okt%LuxvH}Shm8K5!r8}}%=q$QQIiP-iFm1^-a2z9^xyA@^V=Ld>!Lp<` zbnK)t;Tw{BJIf*6(h8ZPH-O$Yg2p!V3FE(i?-hLjW%LB+#llV6fi7vUT@jn`RtQ!V zFGd3LMeydT27TJOXdO(v{_wt;4AoKGFjhB$wr=Fz7|$;4Pp7QI*rEg(YfOKj?7;o} zBMdyS)o$K|^OD$j$!Pl73S_={0Y(f_nA<^wI}=a)@d4chIEers05Lm&Z*TgU(YeE2 z2E5>;sKOV&epr2O8R@2C9RbGB&4RcEI$^X9Ob4^uB{I+3h2!;D`%6864_k7`Xgf|sDP+^?@!>d z+jHGDOegwFU1;n4^I>X{^eRA?hk36*&tKUBTN>akf%@Pua>F>dYYEuo zoc4X2&_+OoAQfHjF?I`}#7`uHM*8s9IWd3-xacYrW;nwupvNqs{mqGT=deD(b55C~ zh0(tIDe#@np+4=csZ4{v3f5kYK66?$ujX;ufs}@M?eB)a{t1KT*m1Zp0?Dv(%}fK@ zv)QqMRFL*60mzeL()oDC*=OD290D&qwa^7)Y)T`z_U#+&656k!mu_{+;mh@-?>#K4 z@YB(DET^-70Mot_AeC`%1^KOm0eqq|oGi?#u5bwqhzg_9 z#$>*fIc5aWOKD;Qj{?oB&U^Lg_wU4zOBU?wnkeeR>FSa&=7Gi*KfI@p;nIG|NRAZF zMcd8CmCC4+$LQD@)xLXVbAy)vcJ!G8u1=+HUgiV_LHb++v=vn?Q2pASMj#5E?K?jF z0hA69Q0bPnsQu)&LA4|?^G02pV! z@6M&{J3#V2{dBiSMU?L(yIC#>NXe>DHGsjz`xC$o+86fZ=_+IvtE0v9oe<~=^SiEdp34TA*gAIP)1;V7c7 zdgID%7>6Z`u@_>op96Mz2T&p zWV!^{ZD?_YhzO-S26|b+_sBP-Z~d>(k9A`oqM<+4f|OcdCffEfoh~Ox;g!XQpzCRxu|M za;>45*W`zh*J?tBHv?;loW$-ZegvABS1pj9W0_xL@V|ZZg_%G#!SrDNY%*-wKpgSr z$G_^&@e&xIZeZK!#`DTq-#U&KE_Qp!lE)(;Jc(_R3< zPPWNCc%Qi`0D>Q`=nw|w^B2K3&7oO;=N=e5&1vXgfpMH6NO`yiBOrYH4A%mvKEr2A z5~vPT04f1Rfap;j%oxT`aHwm#vZZT$Qo4+TomxNAjbFV0mC@3^(kKfGBW%9n?iz+b zg-?r}y3{H+Z{Kd!t{ojC^WZ$P3FL3x1zt}TVA$tH6+X=#k_TFlanJCqb>u8`KIH|5 z54ftR(~O5NsFs&5ryp|DW;%Roe4qh)HeThT_0jKVehOx@RePYlI^9-gbbcsWhHiku zNCRt|VCrEsCZ>pN$dOMUs`VX$^4a4&+on_IqD7=au=N1UG)BL!vyC6DlR-eG2;pp0 zKz(Hjm+I&W)>y*GH*lr{1USUFnbSs0;BFuWMaS1KLscOhJ>=rkuReET83}x>MkF{Eu@PIzp%r^k|j##7j1dbuf0<1aQA8au|3Hw-^@Xl(Luz zCHU0k`zC{nq0uwICcV<0(%^fdws+f)wHv{Fv@z%F4u*oMvSv{dnHt4pxnfY>mH~J_ ztH%;5#Povp1;^ob>ayl2{>y8Bq}u>c^tAPkt?vbs7DA%NyEKoGW}-&hd?gB%4p}%Kn_W_sz4bZ{Ncd26&BT1DGnN;}3%| z6SVoP4X6@TsRg6<%bYe)fQ=e84ZZRxW8lKwTsELSs1?+@XrK7v4WZVsGJL5MJ#vU) z!Kl5qGxx+!Yni$pX7D>c;M4J$;BG2LrO>(Fe}DB(@EZ`zYycRj6CnGp!YZ+V)A=eg z>{$R4-n3;K0deggk|Pcvn?ROW#(*b=m+qNU1LN*ubt&llR0gPzBr>Qx8fH^eA?1}L zuD$BRa?`$b2C{Fx7CgfyDt#W3q`g#+j|V~Qr;kEu0hONyqbmT{?1Pqo6c3&&aMLv? zC0;&kLd~FFwp$(63@*TejX$aOzo>lr(UYtKAiF_i!5|AVyHWd6QD}?)JP!yJA-r~u zmc`CS2!^!GoWL{OPw+=7MF05m-(d*U*!Rc8TwTgR+TxzoXz7g zzR>0lUzHnf5LTQSJbG%avPQRQDTXKV8zjs z48C6?(zeB2rWsS>tC0wLIIEdEUBZPPf&la7 zWek403@opXS#a$SR#UoteuLS@9J4!^sSxwl@oz|D$cVDH-+&Fvag6c^Z2$7>KY(+2 z+$Jl^5?tQbFE4`IGRFXhe?e3=Qq{7DA&X!2Z)nU5AZ8#p@%RF}L}pd#7T2kj!P?Jb2Dw$XIj-oi6)ZNL*~U}@ zct1gBT#;>A6iYhPRxG=2)pRtMvv}oRaQ{Bl^u4ct3Dt-kzcdNySE}-Wr%rbq&79y) zfV!czY3(~4_UYac?RCCTc0g)_8AH=7R71iDpQDzjmX z^91Q&%z;cI-LFXG zGu^wH3n+~XRnO0JPcU-4w2nMFhD)#H0=?F>7uT3R|6#QY4;uyn9U>UH9qQ^aCDvpS zhAV#@h}iD-&TJTE>H%xaR+VTx)d`g1%8oYWqP=Vy8eQlHD*Wb8vk+mR?9p^^_A+j$ zxyOmCb6&0sWY-Dj!8d>v#1l=bvSr$&z31HA(_vi#UHp+u3*UxV1|4;&5_HGli-%>> z9A4uHED>To{@z+9xwl{bXttQaU0mFFJ6-}{|1AJ5kH@w~Hs{h816yE#{U(_9JyVd{ z`_@%5mSfBqvnm7;^zI@kR3}%EhELu9Rbz3ot$A0e=3GSo>*LD5^qbuFl0{ky{vbEd;L{6)Ure-NyMOSh=kj zSHf%@p;<9(A@+gx+HYz>Ke5ON1HB@4AXFwZsM)-{CFqkeF=U(T0tN=nljQ*L#`fc) zgO7mL^bwRRfBNbTRW%rS?(Z)%CJS*@xUC4|ps$_`!X( z;OVpiolNiC!?Ljm8FS+|;3S<2gs4O41a&W73HZxHPp3e5#mP{3{pr+0p6N>;12#_U zsf;w2-|1D(6TCs%Yjz=lk01H$Cu&(=-rEYpT;vuw69GsC(OCeqi6r1!R<*DDZ5|DT z9=XP5(IJzI72e*~P^WklyO?Vk7_YMJnp*S_sRi!yJ6n^_!b`s=AnSz{NynwW;C$PB{R&&-+J}I zLl`g?-$j$=a`p-!VVT9Mo}SRA)pqHLH5REW7eC2M>-b+UJ*K@Z2ZnwS4`4|Pw7=41 z)&SnE$)%#P75KF#l!ewop`(1>`BRllz5CPtuKCiAmI(~&Rh7t$aP4jA>;U1eQQ+Ed zbV1tM(Ltl2_DY7%5)3Y&R-u-lg35q}fmAZF4QN+_WMIt>KK>We7_8sLrJF2me4=ZA zbeRKX9W>Q2nMj}5CK`ALw`jL2p9Vf(0E6~-y4^Amo)paD0{jA03v9w5Ml~EdiYix< z?Y24E1KAP*1~3tQL0X?p;e%m`c>-|v%Pa>0FLLVr*VQGRv>x5SvjGPY>KTeb^x8Z3 z&ARbEiJ*hUUFyr-Dg?DfQ<;}(G5}RgKE;f8Ut9}Om~L) z>)(9)`VVCGU%&TTQPdq`>AfMAnSf6jBZ%8&37KNRC`I%^Wc~N=fB$qI-!8kqxS@p z2EY2zz&IJO_<&^w%#J(C2c3J0@efpUh7?0(05iTCL>B|?QzCiVMA;g68*9&|!`IE3 zT`kd-A9sLg5h|9x7^$>_mIE5%(nqL8)78L$2=D{Y5$^!-2!U&++98I#R!pmEIvH#d z09PXzf$&Z4EPyy-=IC%rQ48V)fQ+;=kDYxKiuUs){V+>qOa@ERi^!MAu19$^VyLHnnXyKX(nZKtaZLuH<`hR zMs!WE>Slh1-iWyMhzM9Gxr1`^!u+%N$OKwJ?%R746*2@r0IB#XqlXJKR}h~trTP`u zpjO7>=Eed4A(3A_yHoD$LZ4WI?WP5!@`c$Lvjeu9K3m3}ur{u_L}&jG$i!!>&hp+!(pE=Av3effD8;VUuTL#QB;H!H?f{%f`K~pMI zp|Y3(2E&-*#X8in?&xX91v4X^dsDXc38q=5S0DS7rnT=f9=rrlket7pz>opHAayI3 z6T{38V4iKKBSjr9w)U&{LDBwe+SkRaYQTVzEsy8fyzzhDuRS^n2b=efxP!b|e{diy zP5YC28G!TRDk;=ImefOLk=GF2q8h}jI<(abcJM4n>4OD9gvcS7)xU7`_WN zo1@Pdbq&gO_rkc#nMvIXI`fOv0f_4GA*X3bV0I>76mQij7~HaPE4Dx0+e>Dd)@AA8 z;9M-j3q;O*} z!2y2eoCKw*^^UMkbH~6`yJ#taJ{YJ*(2u_}%@#TzJw@88+1m;XV0{^2L38HroDp2w zF;MRI?KAhRGQn)3!MJ<1b7(-h2yd2FU#~AaMqf|NwL2j%-^$5E`qdKLy6R54nak$- zIcEt~P-5b}zYC+7K7L^!Q?#QSj%m}!qtHC*+dvQL#;RFp84UIWSPc{w+ngecp-@-l>bU_)1|Pio4}0u!smf6cJSZ11Fh z9ivN1=pIXO+?JWW4nZ}Wi!$=k{cpYA1+fGwaB_BmutfW3ugH*LOlhrL>z5&2_|79> z$+JRLw*g7J04N6S-7>#ZM8eG5KO6> zPoM!RV2r0Fc<)Ppu(aHuFI>IZN=z5;fmAWm-Zsb1!Se;wj00Q|HDzbHE0uj$M;f%# zpo~M?m@6-NM2~;{CzIOPxcaDL_1=@VtNICSZ476aSgcrJ0R0ojg1h!}dNvEh)DcV< zvJ2X0R`xT5lR50Bdn1L;Or_Hs6)qjkYq9=m=1ku3&C%Ytvg9&ula6EZYuJF+=fTQB zI(!+T&%Q6?Y293}YfzZDg-UWoU4|aN*aqtcsQq4Cj*jJasH_lX7qHmj&EyiO2f_|R zU<2CZ+69GlhYnK__YnbNPWfG)Av~_1dQS@*KY&eu7s&ulA!|$Cyw-8*uys zbmlye9NO&*!PaD`5|al%8MKdrF@Pt;2yU)U3`&E&`K-`E*SN%HOfsx)bc&x3AAwf3 zY;ryz+lihoLp1mC@y&C=`3I^%8p6o71wSOLoNftD+)#+7>WWJ`UGlUV5$bLX)FX_v~@@n zu2(IBcOIbb#ax=?MOdKy+~dypF1UdA<>DhiYEe7{FdxHt9V@zKYSC3bK!B6mVCFgy zBO}NZ3s4e*hee#SHYcw4Mg~)cr*8Dv4KvxaSCl&07Bc&CL8m}&ee8SQYMr#s7O3zJ zU|@;!H*wZw(m{*`)#o12e#vVL;|q`Fm@JPqwavWuDh%W7mPw$0f9_^*l}NrjF&GH^ z8lvZ8ng2|eaj`{iwkKsn4QZTmQGGF?AyVeRtyiOYNx(5yZJ33}b*RS^_p}M>0U28T zR^}iDDyb_ls#@Ufs@dKFZkp+z$)2@iV+!Tv9MmLKfIBpTB0$PvEJJ05-~qt82%Yna zg2|z>wEe1oz4N65^)P|C2*j%b>U>kI3@1MNwb#sMmmyV#I?t-;49#NjfLaz)FPCZW zxdG1W&ZMrTyFxOBnlgN*AppOag*xB<$h=hg-iL(~*|?f+&*zGL@JLG*q=3F`3_6O2 zU?HgofmHdW(Ptw2E91}hq1+n9`M zQ-xrM5%25_`tVP=r>AG3Fm<>o9sOS2Z5Y(B5P*5^$Xq^07|{~e0ruGgl?$xBbdWDU zVDNrde_grE3Q>`ScAcM9ESN9{}{DxpuC)03;RgjUon)oDws=;mX2zbbpM zNl?ckSY*J3Cm{?xZ4D$~ym&D|GXzUOIU)JX6CuTog&grx6MkGX(*U4HfkKnFulD}s zkkG_{MOGK{p;sosL%w_j{PaW#eFId6f(1E(aZN0rWsnzp$VBu2@9jmmGUmWEmj}d8 z#Dg;}x%#Qp^FQfLQMJTi7J(KG?bQ%~st*bVaE3S70UfGc%fP2Vtgr}>Iof8|(+-S)daUNa***Z~c>1X5eb!9Q(gPW( zUCO|_3zB!c0lpZYPR~BU>jEBz9eNN@+lIym7hPz(o;Z~R8E2(@;p=k}!*P|7EJYs0 zuGPm)JF9hwUHB|r21I%!ixSt_&1(Y89<602n>WoIGJx_x0MmurX0kMaR3r6hgw7_n z=y-eS>{>~-uht$>r}vHU3st&oIwF9K@}AfMOrrr!r;1wit#k)gU8h( zLNVCp#(4!G!9nB^go?U4-?or}bf!ZDg zIGCV**2Tls)0NI=Q4N8%%Ip5?mp3~y{|;8bfFe^=8W&qrn*o0AH(-$tIK^%OoCcM z3rE9>L!f!gq-C~rL)jc)Ac0XXEgjVG?e89%OoLK)_LUf}helxV5R5zT07WyO>XO!$ z=W^VcDvYoWUWsb~3U+yhNe04a_`yZ{zu7+B%*qG$bc407soovU!WC?kMW26=rS7Q` zmkUsN;sdqZz>LTT0dLd$tZp6ts!#{GvKlM8lV{NlxpQEytQSkfY+=;?->*J*A0%^& zPT5I0&|X~vHTFow>JS3~pF|9|jxp~l-p>1@Tg23~1X*w#7w9L%o}#@-FJuj)a+@V) zh8IYClebEIBgTWEevn{!g6>-i2ir~(6Vt7S%Ps}6(0ReOD4Mf*0YPVEEVCk5H?-SB zwTlKT02T5?K|N2>-mhz_)s3~+bynScN;K|GWzIJbLZ7$z^CI&RD)3?uuKm@Rs78+w zMnqtd0WhrVc2Tb0t&Ze`N`?`KLq;~)iC&2@+gI2$fusp;U)yT0SmIUZl96x~nM#b9 z<<9Y7jHQ6ias;g;w}sgJ^P_h`9otfQ3H{$*dTh>lw9vD`ZrqtYraFA(;wxMVFw4yk zGBWfPz$?$%iY{FBRt%!A-pfk(?8UaL&rHiC7th^tSeg~Xz-*t;-rArd>c=$$=bz{h zWfo$GPk`lbpLveUDFLwnDl3^iBOn^~y{{`+v6@ZBRDa&UT=IwNh?8TYfNvBYzc?@q zBkfmaP2A}hZ^|K_EbtXy?(g)~$63HPz<9&BioH6N&tG7G7v*N`0vuAZAX`DaykI?p zc`O)$;Oy?@?^m;Im=Ja#z}afU{7ho`yYX?xhgOz(v;GWlXEPWJ&gr_M?mzzu6M;u) zuT&0aQ3H|gTXp7kH4KYtZ0YKBbz84B2FSe#YzHJ5sq$t2w?wS=c^Q^0=RZID{SF@6 z+!@FVq?!O%@6 zEjfL`XqbJ1!I&H|Y(LK3n^d!fYA$I0d+vV#m#>4j<@HsMQw8D#i{mFZfv@%sAjo&3Jj7dcaL#0z2Df+UlMvA0!MX24 zcqvDeE;V9w={2xurdIi!@~!DVfATuUI&x|kppP?W+zZ)Rxqz>K0(SXHFu;G{zy?D5 zFP<UYa3|nv*)?F4G_QpjxCEWT=iHC7+4i; zE3bSn&vJ~57zSY4hh43NsVAUcx_Q$OV?3{a_7$)SL!;kvHm_I!%5+f$oIBBFc=zUL z#!JV!d!Rai7+yhSn#fIibsmOBD=@2;Ntpp>WdPyqFm@MGhfqnwm)wl&9n_&QQnMsyV_S3p;Otfn}ig~pQ;x1M| zG3H7i{YXoIRaG9C)c!UUQl&UFfC1%Il4R%%G23qAWw(=Ub@|aUpTKv1ry@0Z6rC=| zfLk+31P3DM!(K+fg>3<#Pii~CKKN+>_%!<*bDLXFSpzFQ?Zq-V0cmQzeS> z%8*q+5RAUuVlgvcFl9*mCfy;KkSV5fo9@_WHgUx@zfz2P2m<{hM%MP;2tH$>H)~mSrw)bK55jA)QLm&2i{yPFRA@Dk54@7ml4R)zJ6Qn+TJ-OCJaU^ z)+s~DVp#zJCJ^IIc>{(q?qghSGQe1p5u;$*?`f?7xS){~##(gbZM8_WU39LS7!<$ZHH zw@TTy0k;sw58!&a5Wg{{%yK`1Ztd0H&_^o4!kdEi87TSO0ZR*|^S8S9PaVwB)ow8*oMav9unptH02uQUpq~>*RQT7#W+MXJ1ymW7 z?lr=rc?V`!r}j=FF4A117k<~ezCvva+)Y~ux+tgpPShJ7FUr>GM}j*X{BqrazfXjbaH)}^b)|7@nm-P z%2;^09i&^5^U4GR{iT5swkMoS=|Efb8lVNioz!RR00@bV8u(RrrIBkhmS#aad7SU%$m(aU`a zEWw+FLsar_sh@U3H_7Xz?eXs_^U8}aTn~z-wAd69e*&f{(-B16e*n90F;_XTcUoK ztF*<0DG|&#|Cb*;Opka?CpNUll{*ea(buY}KntVS1mi;u3EW(*A9J1oQ)1iMFEG%d z)p6~E=fAo=vQzuo><-Lbdah74zQhs?4WPPVKFzJ$!2p&i(}7}@&!$FOmLISIsuopg zRY5YeW42uWvFbjQ_Nw;g6O4}!9+SB? zWr8qrL;j$gEjPb3NK16l|AM#f?}HL*qrEg&x9ZB4O6qw&HUX8j+D|q;`^8pNs8YHj zczk*-Cy|X+;G7(ps!p7wvkKA}5CM}NV6%2Jw#tBk6r>fms>03bNYefpY3@!gc~^d- z@)rj;>gTYK0VaUE_OYqH`P81+d>{t9nLRp~F#f|kp%4jfCmjc6Li=APsMSMl>_CFm zj-5bg@7~dsI1foLk2$&L$mC%@8+D-!RK1T4p1_z5K)^Hp7Sb`H{>{p?0d_Av558gb z@dGlp#jb`Hq=gU0i~l>DOVm~QHF)b zP4TSO3lD;;X=r^lD#f(FU6p90g(y|#sq zy$O9@6n1{#;xk~Ez6W;1TLbNfV3+Tb0plUC_(Mqd1u-pf-F8`Vmv5Pir53k*;Z>R8 z$DYizlf`N3u6~@KsRLvB_JKHN>jJpCwH0;Eq-Bi0dVEqPwH-eUcuz4ewU_uoZfO5& zp`4?-Da@8gmBH2~q;=?8W%GDG8_!e^(LBZYpuTb$ z@xx#;djK%iqP?S<&5BWLPCEYx1e>L|H$%t5u4$ffZ0DnexBK&(Kjo7=p2cYiM)QbA z>lj-R_2TcBwIAOw3s>j^K{kD5QVmD9j*4dF@>JT2#pK1|dOk}RaG=xJx@NMXdztpL zpz&*5ykPJ0_db2aQ+tPt7`Op`OaK^CXMUamJO{zlldA-3%gHcRCA}E&QB>j_0UjBa zuo(pjbc2pY`@mDZs=_I)`{+}k|MRCr0nZ0@fV#+lQ9i44=~}@4urGN;RB&@@o_UmE z0E(0^8D>DOwg{>!>LpfXTk(VeqLv#70}1G(Ef9 zNie3(WFXk-n%zl;U100cfB7N1vrh%aR+PfRJ(MiJ{RbvdwrhAX&m4;cd;8UKa6xkT zdRXb9=snw9{EOEu&uuuN-QJDa@jn&m?wMj09AyTbq1FG7t3OEej z*ZEod!2+z7Sd4PRaJvIctqWQ~AQ+$R4eO)Y8y}&TdUArxP|cF9elHsga6SYpny_eM zLEM7hVpWDZ;NlCSSn~0sFbsL!8C8AEm$4KUkk)!naeNA7b?MjOd*-&CdVsMYO*ud} zKr!cCo2%H3yp0a_b$@*Xg^uKgbTIJ+pWg%-2J$!^&tl{SXV+x?#hZkwux;-pH^aGDSs&A*+#0hKORno2Ba+a zE;4zQkL>4LMlcEnWrFhgz)^vQ_E#~&+w5q6hTa6t!_a=_`7#v+7Q9NyRrB6W1@w0W zh<8<=1EBp?sFWMs<0jfH4=I&Fn#zYmdyIKQ9cmFqF%*i33=eBu-J7k)sOZ9jL*s?9 zLr`NbzPznGYG)@0?m-0ksVXYRpu;D!NIh!gh|+3arIQIUA7jc2V7CWOlw@$P%!rSk z24l7rfPe;2?kTWSHXgmqC?Hh?t0h;|MiFP9G5SGkqX(E7yxHG^b@6p>+)?Z7l;bNQ z40{7{`ER`ftz%ff%DWFnocl$odbWr)(choRt+lJ@MP7jS77Sz*Y(eup^DON=3}EF8 z5*Z05Xk?&cECidM4iyD`{68p{etzZmRxA1e>{86u^nKgo7Z&St46*j@yeihbt>DV@ zx>{aZ0^RBS@ABdU3PXe5er(gNDx<|2HZM?Y@qD}-+UjpRZ~h=O9m~YF@s&B@?hv)J z_U+8y-UX{HR-f8GKPi0jeK4M7Yp7(8b{_|0dSr!b|BVB!0tB$f#I>>|u>EF%K6?~Q zV0!-!!@Q_n?>>_Ujg9B6dmY49ZZp-x`gW~qtP)E*#3v7k9(&z`%Pk}k=4*F=z4HoG zwyZPlv>e9uuJ8hxJc^w%@t%{LXDChm)&cK- z4~o;I$`qL!6LDJm%EoR+DAQR?T$3AP3DnW=%*M%3EA0!ppmy5%lq45K?heLcpqgDJ z-D;q(CQFAyAl!<<)>?D4x4%HO^QIBx%?~+(`rJ&l3f*K4trC>d4%WU<*$?r~t6%_^ z5i08bq)45|rm3`~;~77LcO!VD_R~UD&lua&m_2#?6T`C)vn+uqRk-Z=KwhHArVi%+ zT+AB1k@)RhzY_EQZ!h$*x>_c@X(dhvJ z4Lns%=yoXXS#eAHm}T8<$LwV$r`gEFt_?S0zS`)x*n=6UgbUB@`#>Ig`niS#DjzjQ zMI7)M$#%#3&9#kRgJ`ocCb~lE*n?(g#q3M?`UOTb9>f!)Q^44kBbWfE(;|YRt%H{A zpcfP|mm(R(0ua!6Iv@OG3{#^T6zJ1O2QrZ}c+DgbF9&?|RCcmxf&InoF}ym@1L(P6 zo790E8490_aW92do(X0Pia-BC1cbWCKGcMOPH@0U#0`8ZXqAt_^aZhB7XURl)Lvt0 z+T&B_yD)9S)~CG-9SU!5&JGN;H-2(;mSAS^hKvvO9Z-EhJmcz^%xwS-331vV)L1V! zq)qHc!!m2#&AF!3w%gE4+Zpzj0)HbDDQNl~xMsTHOTqpE{TWDy9)!pjbL0xv6Q7NHu2 zTHXMRDivC|Pi}s5zgcxsXVywcJ6Pfg#?6ielaZ~xrK3LzI!_l|xP|xb86?jW(|C3; zlq}F&Pl}~egeAA;C241%RY%oM`Fp=GIgS%uwP2ogO?JFIRjZ0}-sOXzGYbTJ^ae9b zumq9Q>G07LnY_S)xBWs=P{GpBP#-%o6ZuqG12HG-W5Bqh zDl#UVfC-Q=)$Ht?Hdf>a-R%GYerH9G+L%5OrPd$@qdC%a4iKcm zDWgk2g5=EwlNDBL(cE?s6I&g*FMs>@{ zQZL^P>uFeY*q-@ePn?X{1a&w=OFkt*YAH476@f(=M1m0h-tGd$A z6~$ut;uSa57QIc(dhWAZ4l2@K{MkrvGlcmpyv6-Z?T;d$avK$$d*^-($+H}3074kE zc(yA`uo{5|P}w%`c=ea#;P$RyvyET^y7c&uCd9%L_8bx&oI{OxB`U`Mdh`wL%dqP( z05&|0qJT3LdFsye7{F6*08LdOf3ZjIt!E|ZhcK+HA{Aa+kIwPvl2w`JW01)Ucvp0S zvj7gQ9IX8y&%6d^Dh1P#4vozoC=Ud)K3N@_k`Tde5ghN#BxN@^NTwsX+`Vzf>cq-s zHqJV37brUk)(<-KL+ulC@4vqALoTCXnpvR3X9FtxOnV}jbtU7sz*B)q&{R#E3{=8p z^LRm|<9bWSdP>|U_kHrCr9s`?GJfLRO&Fi3JxW7eKbsjhD9 zb+dsA6gr2noGOc1h$+rsobZcu*`;JjY?Xr*fIhwb3wD&m&I4mF>$_rkFo(;mPh`IK zXQZ)F(!e2*24Y<>WdPL@n1iDrW-V_AcB{eVrMPB`}p ztHyP}?9-z~?GH6zt?!I$Qr)<=Cy|9jCkUdJqo71`MT6(>6dO=0D>-A)n1Go zyB66yTN2dNKiMAwFD;st$lF^^Uibe;KpLM2Y}~r3aHv)(HKEi+IOe_uSf2HJ`O4i15-E4AO?mB!ngy><{nXXJ||ig zgfA#JlE+rC2LTSCAT~eX+|SshBk9?4nzlgHL9vyM<*_mZS9t=hZoae@!YgrnYceVJ z{hJaCKe~&jb%F%L*X@*Xyl#EkD<0*@)@ewl&zf2>^M$eNbelhf02o}}&#)uo5s31X z!Da3(k@xM0-JhgUz)ESUQMu3CmKVuHo`?`;vyR+Btq?0$VPTVDYRoL0e+;4k1gKuI z(FmO-1}u~`aLJ1x`p2(|{Vw_Xt_+KS5gp^^yI}1!e zlVj?++Z!O4=p&Y4Yh#Nw1V6!g%~aSYs;0*-Q$9b>Vg?qqAH9mMo?Wg3?vW1V-EMY)Yagw z{ogqk51jNgMv1l=VM~8;(?H#|JL^OPr%M^J2;IW;6PPuOnP6jLS3+&P6h=IA4VPY* z*&F!Sb%9o%kz+o%Z2^i^^T)U7=P;ZuZdqSHGvo=a-n1X-4yk>|f*~8)63D#N$V!GM z2qa(;>!3%1wic{b0~}`77^_I;FH2r|vXZ$Hz$?&5$)+H19A|mbX##`x(uHL%p}2{T z@6@MMM&)uDX}T548mL!QPKXU{0;7%(|+*52ImV3<2(qkv{+pg4}}C zryb~y_Kv-?tsmb56=0qKX#wiYR2d65K^Q^2+!)j06v$?$NQDdoOIYax9#6*$#^`$; zyrwgoLWAQBm)HW@1qu396bu;hp$GUh(4S#4aP+Qs77bhlK*lHI1_ugLln{2-BJUk&c1y}1Yq3jkQ2Wwmc6gRzDM&8fb;0`T!~Mb1KKuSRUx zQP20UUc2@%jEq4fsk!8|-4rXO3Is%4{;?rHX}!*PhymB+6s&!5bu(*={u+$n(VPti z3A`AMFiY}DNpqcLp!7WDEa*DML^DU8x6#qM|L;#dsE(V$P0QbE!Zucfchd$r#*AG*+8!2$=cqeMKH; zwAYPW&z*Sh*C+ikx$?;!;B(7)Olg1#vfJ!wf0V=LQWLKnJq@NVQc%9eYNRWzhZn$s zK+dboP@RicdHY2$?W?FDd(sjMAgV!tHMh{fOV%^Y4A4#m*!Z^ZWC@>j2kuJdcp zTNSKeWKIe?18~s~5k>opYN#=mcIR9fX+H{`YX6s89>-YyzsvCt+|-5I=u&`N60D!O z3CdsYyoc_|Hn%sQsPNtm{U|7b`oLQ>RVWx}e>7VPr6C(^RqfnkO^&0J=EvXGUH~8# z?PWEKOf>tbnU*UL&}jppz`h1>rXnL}-vpL%3Jj>M0m~8H%_r>C1}j<+>fy-DRO|B_ zh^d^-nh8`bnK5N!7zQodfqnbntMl5+T%iYTm>+c}jEx|RAhM=t0;WJbLIPtij?wdV}?y4pJQ&nxh@#D&U6MLjUWrm%-9VKUC$Kxlhnl0)G)a;?&v~&**ktiO@ADV<0+AWr3sR9CS}RUWZA}m20mFf;<5N zRH7e3HHc-Ht`6k~7nYcP`2HE*pGB-=JA(`C0`>KQeR==o2Y7#$bTP=hqdJTPDsVwe zwYkq;2lwsCtXJvjz&iQpF)*`JTfcf9<181aFYY#b7Z!nAfXLOIsT638P>EQW^@4x> z(f1~J*i;@X9$?!67TwO@$|a67$AK7bcoI~kmNN}K3j}Zj?aZNTPcVraK|uQZZ!XlR z6_{82!Lyh;{w@f*TtID1RF&mwq=bpN3vdPTAfpVKLBQUjNEO?3jF@2Rpb@B?(SB*K zh)Mwi(y-47fwPDm=CT&Hcb;Np(BnGnxs;wzuyel#t6Q6Hu7Zq-n-76tSTjHjgA3>| zKsm>bU8t^&j^|yLr-}?J`vU9i-+p@c ziG0Ylb#_5uqLS-O8wTSOMn~5cKP3!Yyf>7q4r4_F$=O~Pe#4Sd#Wc%pS0|akxd`qE zXcu7~G%+h|Q$mi!mj~MY&%t?UZQJ)p+#@OeEONOi5Ay1|5*h2ty+OL;v zM7egRvZ|6n+BXf#EO-F@xS9(_g(WyT8p*{lf^Ft~VPpd7P=S`QIR|(QW5A1j@u19p zmyeu#5k}@qJZJ<|2Qu;QmY8r~E??whc~iG8bvkFKnY8aHI{ON6i{_aiO~%qpZy5>7e5fgK}ax5R^ZOs+6k9Iz@lysQnzW=EjK7u z7}uxS@2h&R$uwtNb#tqJFz>Vr8adQWObnU;_sj+GuOCxG?QcSupa4C^9enusUvBv+ zBt4-cXC#Q7W#hWmk`?SF2dI!1ozRcJF37MZ=rd3lNWm#xv*YE}kg1}syu?egdVo;g z{G{mMW3!@~`XCEGSBYW7K)Emv>JrF`nOI+bBDB@XwHImtlj+(EQ_&C}4Jq%vR!axD zHMoLX^D$To(!NGvm(HvNUA_klc>f+p@Q+??Eh-elkO=i0!GLS$!ZuE}a|>TS3#P+Q z*HrxJ^D{5&R_&b}4j4{OF8dlQ}D{%^RbTs>rBAp1B2TT^m$s zw~|uFjQ^6`|1Q`-7(Z2wwSf$1r1yjz840n**s-?&Ss*9g3)sK>6!?EW^mFDM5WCnd z%3mJ-{oeUkS1@44vG2TlFW5If1iShiSRUxh*T7U#K~w2p+_B$^kq!^hSSy012*}og zK*x{%PPaw*@?HX!Cyg@NV5!X4PJ;)ju*(Gd_zhsHy!Ciiy8q|e-v^naEXQrf4TTlNoN78XKty2;C2jR>1P~c=+hoCY$P^A znUX=HJEZnUEy{r5_<{C!y}O@39U=!QCn+DPc=53`|H-p*L@9(?A2e0QOmaYbi)g?M zv{vn(FJg6F7dhX)+sYgTcsD*bfQb^Y3J`nMr6)gp7(!jH9V$?M;qLt7uj~_xB{%03 zqh^kwCq}dglxC&!PPhM6#aFEMB0QCMv&-2g>EfiT&ze2Jd;|(UdAde4;S9DVoNZN1 z=-P6b;eEnD1E2^{Q1SaOG@pHHlyzroD7?rTTv)E(%xN24V;-n#Fr+{S>`&Si4`?r$ zl<|m&%&}}y)Oxx?oQv0;S~Bdo(y`Mj7|>bqd!X|#fHfU*XM*X|;REdUogkOi-TIAQ zC^cU{EwhU}4=BuDSzQc^gT^FS`dH-$BfukgvL)hkWu*Phwki-6J7$2u95CIaCVVUn zfAg?0?N=pmD07_&<;H-Ifnq@;ARXpwRB<(Ri92Bs%Eh*qzK?-&p!*ur)e^%P9KXeP z1G?G{v;;ZKb5^AAG#AKX(OCejr^Rx+WC)cBGAFzRf*G;k%krK`nc)D?Uhm4(SeCJR zo~rC*Qz(vBH<1Ih|2T)L{oGMZCr2O;d523sSX^Fb@aU<5^cZknNkwG66*@4nB~sq6 zbLnmwsq&P;4V+Qt{#HQ~)+@YUD2wI8Uok0GKEJDqwN5upfZqPuaCcSZ3FWPHSOjKG zH|YukR|rxY*X^RHu=Y_#fQIz>F=({%z5rJSsJzP8ekmGb21SPrG*xW6Ef5+bQl0_U zTasGq8ot4(1cR<~%s33Ja3FNm7QE?*NvOgGEi=m>9M~DJZJ1O=>$o!N!cRLqfnM^- zbe(1Sv8*iNC4+Sc?MJe#-tx3au?{DzxH({a2wJiUc2Fkm%iD+O2nIy(-d$W7pq|Ij zj+i9C#is^~)wY_=9xs(iaP6lQjNc6C{YSt&_*63=I=G{v3o9^YqtaQ1;A-Rg7|Icd zfpGlt0WMUBx2{29>jJJlD00-qHl*$~#MJ;MrXC|EC|h@AZm#plRu8L6u`X4v#X(~L z0bBDU;xvZsAV!kW27Kzy{bVu%%04KeImxhd3QCuU6*x<~3)B)`3J$cXC5A#j%^RDO zv7~)J_x<0&)Z1m}6U+bu9rhx%?-CcaTSO1USaFjbgnxFpJJTw!!+w&9!UYy=bb>E( zn$G9uy}j1Qnq0D=*;TE9Pbs&@uJMvp4#y$eGydh5e}F}Y`aGhKp-lK$jz?hl>Ci^sKibeMEo11+28VCRP{FnOqJ&MDGLIcS10^7~8Y7Scm0LY_VN21C}aO z)zqwEbXW}rIEAtZ*->>|eU6uB23evPgV-Ih^h1351amhxzTBLTOt`c|`lPTGjQ?h| z-2-ENxv%BVk`b^#Uomp=9j7x?b#wm$Mx03i zG<^EYt`DDEV8^LRnX28gPgPGd7}RP9RQ*RXPCm9NSz%&5Q_p{8Gc z6Wp#Dj6tC3yGRuiPh-CSRnS*}4T#l1&+M0eejfx-J3$+r&cN(WbImoGj9CI#b@~v@ zVS;@*u?&n2Py2Jjot`oWwJTPe4+v11#?wFl2gk|@&w^QAI(|x~!Gl0t>6lnjZTkb6 zL@cKUqxPA>$OVn_W^ex#?A<38&;EJ=N^k*K4?nE1SEq-7xu5K*uYerO4gk*v=}?=V zX9+Xi_|as&->SNvck`w9H&|2bIz5bAKpt3?;~cmf2;iE>MZNNd$ZW29GAK?)&8kA_ ze1MzQ(Wh%r%nMUx44Z@H0Y-+=Jh!Jx*%sDPIga;u`(C9p9n?+50?wka;vRH((~pdc zvL-?u&}ZYaRdx=vv&#Yu)P+j##M--dg~<++4G;C_(K+yqI@tNywTMsn9;jStl$t&rjpSBM(_H91Yf+S ztBiMTyK$I#oHWJ8G4025nFBz{{){N#g_+x;`;5)I>sDTQOdshA%>t$M^=(<7uR@HWeyoAGyAJolVW%> zxAyJ*_k$Cs_ofXG+!Hv`yjUy22eqh_?M8=4f5mpK&SXGXUJ}qOGO#6)i zV3fWK7GaQ>O)HRvmWLc!4s=~z=#&^P{hdgL0;mfpV2nQa6If-%ARSRT=Mx{Gy+<|{ zqo{l^*S!oD5rf1Qw8Cq76$O9;lL>1VUxnmnmccK6CPv}hx1i%t3fc3#lsr=t}zri32ydbgzlT{b472_ z5Pua6Mug>zs!1`m=`%cT$=o`lvL`uUBLTQ9z+c3M2y<(Yv2b6ydPKJ@(GALPTU8w$ z2kNM-eo@BN9P2Zg?SV0H=wi(Lm%soM7tzbD1C@*uuoTSY@gqwdD2YLgoI3sfV~{{` z&Z7JJNhk%p{A$S@IFJAIsYq}JANY(PF_eeJk{R%S8G8@*x~_6vRNbP{C3;MAy%%8}dX@@bYwu3uG=RI~%MG1ZY3wB`Wxd!fZZHSG~1QGDEWz z9z!LtXbeW{(h?tmX`m&U-|Z5)ulB(d{YsR=s(mc7HcEK!(J%ht*BZ1PS<{0l36dbN~GP`((&fTcc9#&a%SWiWGkUW~8p1z3@9ZOZi}g z9?)S>eS-1*O6-;#^ZUvP6RhhXN*%^FHqFF@6$jn)&ObqAS;TU0T!`YC-R|5oz&UfMa+SIjO){(VoA;{F z8e#GURdRiYkFrEYKT%gaEytUvCV_c!^Ktf>EXT=mur?P~XJ)%|iSdhj!@1M;q7i@I z3UJ7!&zeulsDzPn2C<2Hjcr&`9OD8Iu)7DA?|Nj7J*yYw3i|MAF!rvmgwLXw*))L~ z)pjEKllsPkB9jA@_pQ&3c4U7B7+gVi1iG{}it{fUbIgE+mZ}u(It|C>f`QHzL&bHu|+6VqovHON;`i_d)`|fN&Ake9-Eb&pvt1dPbE8bAcXV zFPaIip?h0uOBOrh=hePAX^lYMkvR+e=krg2M}xAP#R9JVT`0)wSS0iAjsAen60D zMio$AUQnv)n;FU70G8^eMq<90Go4x>?5jPaE7a*+AYIZP4t5ArS!@b}wdE`*i-+n| zg)%pII`f@pSLWqMUS$ESPLY9tge-27(}kd+)xeIjI(jS@WDN%J)~gX>TD$y`C^0;l zfuO$x-Vg_$0W+)J!sMt@PY#-a@S0}8n5Ung5vy=Eq8(9}GB-pCH))^wkU@|9a__|RDxYc+67F)0__W&lGE3gF(_hks3(v^K}|+iTRaSH zaZE2@I^AZEj~E`sDrf~UGrB?7o~vZu>!4HGnMdgiQWO^goO>PYuXq0b=sQ%p-N3HA zUN^c1X_)c>2Rv0Dl2H;wwWtYf`5XhQV}qjTT-Cf$H5|5lfJ^;~_^5o7V;ImS5S_W61`?3;>co}vAK74_3?GH2b z22jWV^>hq@r#b{JlyViPK@p|AzV^~X74=7V#j8riL~QBJhm)0?GZ_`8N_36(t3@2v z^dHc%DG1iSXFwl9srcY-eaJ-yF#^r(BfyA=Y|55lv(M!pib3r{ zdn~9sF;0;wp42Oj}syc&F``>Ix zU^_g(`>m&-jIcZAv=oBV7Z>i{i(oq_1s&@K14=+K&DYMz$jv8=kBH?D9tYptQ_m~t zj5KSm2L#lC*j$d%R#OW$Jl_I-@YO%8L)DX@agnTDFB4cFNT58n!;o`^Cz)KpT$@-{ zs|^3e*TF^x)8?3944C#Ey8#tzUI#xT&YQ=trh^MIAhh=YSo+((KKT{FY-11OQrM7y zAS2kP_sc*nk*hOqf*I(_`P1r2!f2{SzwXu9m5L!SRszPPQ_bMbhcjh@7b^xGeV5+V zQ4|lAm*GNq^HC^y~E0A*Wmm?62D6j=u5tZxa^I}XnoV8G+{i5*X9#p$cM{r&e zNcr=RpBHVX5i&TH<)x$BHVb+@A0o>KHM;APUpjBY-d5+^9wUdAF)y~#xo#g2Q=WbS zRyypP7)D@eoQv`YmCDg{h&0lmUa1Lp8$QG~PQ)1M51 zIzlE?V_Q|h5F_~2vmZYo10#fr$XL7f+O{APCLgb8@RM>3cxsiXE_O=t{xys%;0bc) zeOE(<;>4tLr&F5^tr#(V1ryB9i+8KCW$1Jix-7S@y2Upe=}e%CU7CF`@%)S6bYTDp zpqF)I>lz)wE3(N5Y;;W&;~pdz-&WhCPpuVtuoD3NwqR*0R~Ics18a&LVGyD7L5Bb4 zBVgJ~Ye+ghfO~eBP_c#%m_U_lHOx?JTz|1x-8=(kHaH#c+;3K?WVVC?vt~JhF1H3# zr4OX;%GDcX{_;PGTs|gJIUfUOkjn`!d4$<3C}CiaH7|R#pMOX!pS+~~4`#oN>{S#P z)a*B3=nc&Yh34CJ;V!k4jcHcqjvQUsz|%VTY7Ssg0jFJ0+XPPa_A$Bw)B3;v@LT$b z4Y|p?hIdd^samug@yW8 z0c|1@V=~|RMzdQ9UC*xKG9Y%3A`>51>t8+v?!ia0>U#9(7iU~LlGJrDj8Hkv?EtE) z<^{)KP<4C?oQ?w8xDq~IfqkwRpi4`4*-HS%LIErmbgSyNt)_AniX^9l54vdTq8d2fQ9_F+fuGfyQE2mkjLJr1MSQ81fKmK<;@1gxNy0RdR!wR!J7AR~uxwJ!_<#RMLu z*2(w*tdRodMY;A{C%)lg22bi_=(YCt(F@Sx)||nsRRuu(KTq^DJyKn3W~uJAY`gojv!k9UitgVK4Bw;vcU4diocyd$r< zse%oa&Qbm8!mHY+#X6&4Vpg=%RsC*W7hkD_qDmB+AY@ioMPb--4}xwzr{XE5B`)mm z{|&2pxb6x}}tS(>=KKI;F0aue+7Oj6^tQfBRmZfFhN<7!@5OR z>@Gc&fI(@VYp`-*vCJiM2Ob%9Lpz33YWpgj?5e!}3Kt#F<=c_GQmHyE4BRr1r`&q+ z85vviy#e+~?osgB4!j0Bc7WM~+(2^y$~7$iJy7ndbNzA1 zD$pwE%6(u0!=?}W2xkP$@&jjo_yCUaEt1=q22D7CRZ|m$L2NJ$J8j#+*%{fw+IhY+mk(TgysPUdoyIEsQib=Z`W327h+Bl_1t`IA}(DuNg~MZHRfXURml=0@YYe()5&0MQWwnGr0&8oY z%(?fU@R~SxMohL46(E(o&=NrQpjyy2NKiapvaZ5(TICQQ4M6 zQ@JD49^3#>FM`hUVdnajgV7yH^K8U7pPW}tI!Pm!%9>Y=JCmgX7(r>GYQJ1&iJ;}F z#AAR~8!!WCP{ulElIdW4*~OGQAx1B2a+Zm$d) zed($N5c6-%;p*LD@15I(!rl9_Y0UQ6bsvG$en}pZCozP>nP9$L09QD1<$D2hx9uLr zQI~z~ZP`K4ft5+Hw^b3nHlq- z%z3-Y@DXMPdmF$?sU+j+I-;PNSOYC%>^|C0Fb2ph%Mcj`zGu5|PHXnY?l8D6^_Xp21rI~vXeRa9Z7rq4zuzl;f8LegV z(OK34*27gF*$8mD@oE(}1u%R=qUxL}Nk# zVY{RRwXcCqfR2G&K|tE(o+w_Qep3|t_wP^%#2bVeinb<)y;_?;{{}|;jbOYKa0J9a z26`E}>{3t}2(Y*=8KZ{Xkc?@_T9EcVV30rohznMU2~BOB$yNeV?u2&!!By`LNWde* z^5|yXdvK3}u0_ZoZr5_iZLv7`GFN3h_?O}_8{W|x3>sGpFo{P*)p->C0!%H<>o(>n zb4{Qc8wN?mqb0SSP@;L0I<7V$arV=v=ony>xA6t#$k=Cw-A3@i8S0i>`1-KKszI5N zv*09P7*yj>v{S}D!QDHpUbqWlO)ZC4wq;?(Z-FskZ!(jTK+&MOAnjXWSqMz*zekwg zI*jlBPM?W?{|V@sGFD;1U}z7lhQ|V4g(A~jShU&BAN*3rg?amVtoY${SMV4*Ixd(S zG3LduzGt}ytK=VnCjneM(0I&76rCIPnSU%-YpA4k6q{#`Z{Pfp`o$9%9&w;A0QbuC z&xr=k^+h|5dvEsWCRR@w8)G7cN-X&B$%(}Gf+nelS2EABG#iyEoj=^A=xAWE=hYb z?hjguZgJQ~HRXBchDs_qp@t`^_1Ld9ic#kYqA|@_|E!b-F@ZA=ZoSMM%+YNFM?SqH zXoZExbk)I7vbroT)Tf{rtq0bhm9SKGksKob@8%Qav!7Jq5}2x<5PnV!>})-qBJf>r z7sVNZ+qLCAQpT=43Q>`(9sk+m(2s&vLCjS@Zh%3fCs_KWsbH=R#mcSp10#M41n|-T zYjyVGx0P?T+Jl8oItfba%zghJc8N|9&~oz9w;+-?!1m_E1|Id7dw{0Nt=G5*wK(l>uiY5;&46t%O?C8E zo>DG@$>MjJpNAM>*I*nEft^S|-vA%~ijm%wfp7x^)92mC^O@g;^iGVQL-4g9Ly2x; z+*GUOx|xmIOK8a6vH$Px-`+6}tscZC#Hz}-PW zTb@Wq?S~7XGs*%LNEx_5@E*VfD8-5HNU2G^^;?f+Xz~4EdmvZazPwqc3^(zgcQBej zVynmtPm2^jPUii&y51Lt7$-0tIl3lFO4eLV>?g13)?R3Ff%I0d_Jaf2elrf)81bH# zRnM6)1eiL`Q>r$!-vp@TYW6R^mcGD3!9Dt z2e&W=S@71QYhg@>F!9MVq6k-=9)mQHY9i3Wc(@9X7O+W- zGeCe*gf%x<56l>-Q?1RqKCHd&#Bd`1vmZjVF=YaL`7~s5kJW-Pbb=O!gV!(50xJNu zgX%!)rW$Q*A@&p!UzA37Z?z;J~yncLMx~@{dhW4zJ)GK=QRd`+_W#WSF41D>&!Eb zRsZpk*P#J(+ugi-1ux(m7zwULbbgoq3JNziGP2CGi+6$nJP?=#(f`_eS*ed(;)>xR zY`5C(iisHjn7?>K6xALFxRo(6>3qSihGDShQur*6zxX5YA(k-hd+D9vRV!e}K!RJjrzx~z{1lWRkDsbz!F4|8SLgkAI!DtR-3W%49XW7}9z*Mo+K>g$$7&(W>Ncaju_^SL5?uZfWaQHc~DKO z7{J+Z0PP>6z3<+~c<|;GT{D&!PYK=~uIgnari^^<365p6R~5hc#?D%4F|??K_nvPz z%A88p8{fyU5!4arMGxy(`TR^eqZ$_gmd(cyJqrvvGhdrntOl;Wjj5(XJ;6$y-K%!g zLQZ4yl(QVs9{b_r&?|2e@{xNa3Tw38&KP{No%kJf2FU&NV>?VnD0h z2*84h7qzgofzc3D?ra@_W&?6!VI=JHgeLZ8KrIj&&*wo*HE)n03&MSd``@8o1QV7A zlx52^G8Y>H*?pu}do|8$vP}bXpetvuewV3hae~%)<$!<04gc$bKOCAf=wqJ$m5A*w z``1@qm8t!R&I0BVcLsd+q8Io`g^a+%MayOgU0Q6xKfC)Jn+MPba%M^B$ghB^edyqC@^z+OLrooJE6paHj10UKYYXwob{SLlGExvzXuIqKk8jAjE|_5 z@gctK0Rv;;nFqFTf%{qk@me&z|7#Z2Ot1{g#*d2v?z+aiws3X8u4FXMPK0UWRg)q|RMRVHSOUCY5XI#xBeBB%k{>&dVr zbto*{VIB%(X-pVhXzQ5R`Bb7pOwO zbeb_8gK{VSVUl*u>&6q%rE1_h`ayzm%%$6%hP7}`z; z*@?#6_JRsQ4lW-(WC-Mer`hi9@^jNu_Mr$^=zS&J@Hho8is{vPIL_fc?QZ*rdr@a6ZwCQgBocDRRN zke59eFD@ubv#sLA_YGHG5R1QY^YZrt*L-;^K-D}0!7X|3f#pVlUA?!Y*f2H@Eg2+; zgqRr+-GP^7^nuc~@-@+V2K|FXGp4-#?cE5r`48_n_Z`1Zu@(ods~pYaih(Q;`~M+G zfcBPQW?^Z+A|i)y2#koBPSnE4#IweV3@*R!Ri=HZc;RUnENSdFZf|2^asn)mhCe>~ zv@aw#$h=Pjm4Mvo$x{vM90Ojwf)h9BB?jRe5Fgy9JWvvSlpz3`7!PZ3GYz2Cj0P1U z8xDaIP#MT}`Lj0+Vge6#oC$~60)>_2CP1j?({v$p)p&;Ip$} z;B%rvABj@Jif1aldl%S{7=_z0FS|r9QX;fO6#8HL;d65%tZ8m;>=OkxSL_-s|n6 ztHUjih-7!Z>;V$$-7h_=pTN2r(MM2d5U`{KOfI?@P}44a4aD;fw;efZ#cp}};1|ur zVhh1u*3}7C#tj@oiftk+E3}Se*Bifrkj!UC2K_|J};qO)-G`OgU!Q-+EMa znYZqSsVaPz1*^)0eTkdstBmM}*arzz;29tWMh6Ync>h=Wh<;^?s^iTQ>K?34fM;$V zuV}00Jpt`=5R*O7ip2oV?e4dNg>8Xp@4JBP%?1O4wBNF*gT{!2iLtP@c$!WVm^%tY zF+eo&BFr{NRRT?Bi^q9mAgGUZ5r2WM0j5}**|Ry|KEt=}sE#YMRJ&=ScpUbf$!+FB zP$8c`vD$mVxRkI+FhS~m7%P-MI#0)y%6)GEtI4q5{L`8<=ZAAc%Q!gvkoH zTMAALfvzVVSu4C;(ty~8LoJs6<*fTox% z>w8>iBb}kVO;?O}mvPs?R%5JPk-3=r_2u!-Vg`>Etqa1`#5_=$4lQ@4=P1M$V;K$t zI5~Ct(({GEG8Vp|?xNe2A3S}t#1z(M52b>gtje+-j8s0#QS({c4{+kP>#-RFZ+(+x z?F(9Dwe(ei0j&JDpB5dQsR*2I1UvU58R(qt#GREM?a%A@n)R8Qrpph>Uy$~R z7BF=4xe}hiLyK9%qv`$ejBEBbn85ZJWTnk&-ZmW!WGD2l?uQ4gFdp7aPoS8`-@J$0 zy733Fph4~n2uKCfKK&wNo&>~;@Q0uqXRkke;V~vAPz^GQn!T=;D?@N@6KJ#pD`(CC z^IRa)i#5xu>EMn4&nss+B~UxZV0RCU%Vb>vJk{cFPmIhm5hsEcK<&V5l6lFhu;qL& z2&mKkV<7~Zjq;Wg^uPuNHbgBR>RXS3ef}g%#U}USQ(OqZf-Pl2GhwSePJqW2HuF_3 zZHXemH$gt5TSM9xOG2Mj{Wc7`Gl-V}($#b3qaVHb+YXEqCVEvd%DnIh2nLZ3)V{&n zj|s(l10Jy_@*|6&So|jw;IWQjbUf49qs1l{Vj0Ax1AgZp6eR_MNmx|^HkCJg^JOZ0 z6&1=ml7Mp1=l6?lSm*JAuz6h_IR#Z^8#IQ7w?71MqNZ(0vp3#0VZFS~{;^2;z&AR>p$P;<>dcYB|ss*K(N^2X8dvrjtNJ7XPU| zo`h8e^V*%CFbzFhr@+ID0)rudP|#6PGnsp;dF-m5Hrm2teC8$~?AlYoTfqsgN{;NgVLk6!>tOs7epq;w`FyA zM*7J}m5fTRAm0v~9QG%H7dN0|(#NLQ0i#@ld$|Gf=(Ij%f_5aN2b|06uLJW20R>eN z;3_~hOd}n9%>XdQ6Mb9`Ll?K=&!8QGA-CM5o61B>N~glm0h95*ToUgE@OJITninFq z);cCe@c9I=7JDX~4xc%9=sbq?2lS}Lc9&ql00`CEhM+Sjr4xR$oC798 zz)pbJWLE6Js!nmeE3AP|5bd?z@4NtEjhW2EfBohiJE>kUdX{%D3^~5@E0*`Ar?lS? zfR?}n3}R%5+?jy%oFH1nW?Ne~9R;u!fmLQDO>HG_p3UV6*8_QOOXp5otMa7V=a+<5X2b57z zWj|QCSi#eI33Yoh7BK^X>U@#HGpq-P^!$T&cUtQ5&=D98gBW(-_VICuO4n$HBz{;e zMO9V=>!%R}eNB6>f>1$x?pmTS!nH^QD%UQx;Z7&@I|>4LaRJZyzeJ$*aa_LkU#J^U7(u|;24)}cA|vo%kTd3hn=<>5*tOS7TW_4@d)WZ@N^wB3O7ssGFfp{C0FxpS6rUfh{GCDvZsL`_9 z0kML!u>kW8$E&V=L-a)-dQ(6@#ergU3zP;KFlYc%m!Z3KCs<@F)$z>q%v`QW-LV_0 zV34I*s}C>T!)t9cflYyq=o4xioLJ8XW{GY8hf; zkVZtc7_7(84Tr|Y33bLkCYUPe)(3=QV3=V`-oN@Yr=%z-&8!uHvXH*(29f>Q^0qe({G=fyK6 zG7uiYJvmgc3-Df1+@@~;7*NNiw9j*oi(!eO(%x|adF1lL;9XghqcXW|@%+S`!89Y* zAc!J*1CWA?;JtKw`3F`UaPZsAbW6#VvwR3$IeY2X5c4M0e!2T;5MXbsvSjyLku!IvqcR{&bXD7f~nJG!X9EtRPc<0PjVVFcs}o7mPw-slZar5#yvJo zgBZXqo9%V9+%;Yuzyt*rPO_r_e>(HK>kmM(Gt8(gI3-iF%+sqcW_|dA2P3x2TB6Un zOy%jc67Qi-47m=^gvGorNI@{~SHX~(m}HFDmX;(?bf`?mczNc8SPg6XEG_i64tiL? zuGlW>X2WX3YEt9PmuCybp#4a3p6K9vpcH+SWY$%7(w;tjm=Fk+8Ji1QWVa~dhFQG1 zUp@;Ca2G(D2yhi#XqMRNljhs9y4OaPgFY_`(;@H6Z&_OnjDtDSwt2v^4dp8JpyQ_4 zU8_tZ6v}td0Q$TNG~Xa&)e$(ez&RcMnf2wt|NGHz!Y~f%1_f-o_sBf=vpcf^J|zb5 zD!zmThWc40f~3mG5C&KWGvt$}z;?Oca8NdA5hQr?C%Vczt~j>4Gh z2B^z6o|d7`_o3xlR<+)8oA3L1X6dXKL=4?$R&EbV>2AeP5DRhJt2>OBj&rvQpb;yX z1-%wz$k+vE_Hb5Uf?$rQ22d$hTL^RHXgoxzSmu2oPw#-W7uD~kGV$`S{+x>|Om~m^ z@{x6D^`L{V5FFt`tg*kM{YNuQS@e~f{`fUHCjaJR2ZhIbm{?{8kWa>fD(LzXdl++) zn^@f*p-UOVkA9>|gD$+yA^jZ1fPiE>wZi~L>?^@K+HpG`=(&0_oq2bxj)o}ZtCJWM z8a$I%nSXpl>&So>*$XxVVxj;Q6E3NX@?8X6u7C|)Me@QM(CK&j?JHqm6m_UAV$2)K zyESfq7l$wG^cdi0Ft-+OSo$WH&VT`Kd@=$yBEVJ0foAIo7JTZUEy@wqs$c9xU|gT) zX{Q<(_o`!cY5k-+Zo&=L)3vR|`XrQoW*{#x<`1Us9af@!P?Jes>UdnW^7B6$W}LRN zr%GD7OiYs00A`^e&*OA6G;bNP%Vzb6KHep=i3xoDtP41cNO1iz$VD5*iH`^%EiW-E zj4^f{%hmp>29=JOnMqeo3WL7~m&SAm=8{tNdGq0OoG`^>1?&krMpkbd!rr733~G=Z z*8DzukAR+=p*^=x3``<{_N5#%&|?O2#bWsI{@J*AXXT3)c0?vlCR?fCh{~$1sJB#y zVuL^U5lT6R7t7=FRnpCgnbqwqswI1548GnAW*Z=5hI&g>@W}jjMz>~CEM2A%o0juG z#y}a^S#*5zJE(tr`cB3f*#6+|0r#MFKBJU#Sn}>NslD!u9xb~3Eg8GlUrD)Wci4$;~F@8Nk^Oht568I^-TK z9b@K$XXxqoUoeJ1)Lc3P&RPH%S`%+Sw#@}xc$wwI<`2Y_fE}L>2d}eN&PrIr$Y!O% z#e-&>65e;eiWeKoX%Awq3henr2NKI`L@5(Nvt2^oNr)S-EP^l87`X#2ZW}q!tf6k| zQyZe1j!ZT(JUT3ngNa+w@h@jzfzEgf(sb=B6%}yIwI`rE$T6c3v8tyZI*UhyaEYn~ zam>Wz1E&oHIOnO#bChxM;?k{G4!$r=`??@*#k(fZV1#s90J9{ooTAD|`EMS^j0u?m zZxM|TMV_Y?vY0!J0j~(mdz6BQ1mc$}fAIC}4Ka2z|E%%J5BjW!&~t*t5DmfGsHA|# zY|lT%oq96Iwo4gQHxNBNtC|H=ff<6HwLE4fhGgcpHGFmAXfdsn zvKs-RHehT%Kn|C@Vp2&KDn=C;8BCnIa*x%2ibvSxi@l{B^4xRui1uOaN##bFb)fr! zN)aqW;Dp*~BDW2$pRSTfMs_c`@?&=Z9a1NGhuZUp)pk4N^V)oikY*d6qtg2|th#6b=H? zn|MaS#iwOx%}s9gbEjAm*2rzAXIZz_n2>>4#Gv)m^eR0M9Q@S?D(^oa)*KPwOfZkN z7A^;1BBz2FU=|{~k>j5pc{vjjSO#ftZIoew2=KB!QEz+BdF?N=afOzY$mCqQohZ9B z*!zRAaRFQzFm{rmD)8(9XM}q}KuF63W9eBJ#3cci7a}s=bcX!$Oq(j98K&?q`-56w z-z3+cvIzzZ*r@PBFJetPwW)Tay)W_Vixt{ep<|+}H5{C)0k~X&3bF@A>nnlahQcD2 zi$L8)ZON8vVMhkOykDeQ#DBpp1@ZZ-au|~fIL~Jh>z#qAU1eLl)iI@YW48 zbeyj~gpvdrKlgj^Q}NZ{LE}R)5UrrBtrJ}kT`K>()lOgn{`9@q5+LGaG}%zzS}7{C zZ??x%2H?56mJF@lH|TV+3bu04ZK={LM>EV^2GC*xn*t@)vTX@w7}Q|UYJFMmEM(mn z7#9r~7!ZLmVu&sKPe1>ip;;_y!5FM+e;KaX>y8i_jFel#Ss~G zY9Fm;JV(SJ{PI7JthpG680-$-a3#kN2fX)cW>Vw?i`p0f_NQNbt(HMQ@y;XMR?}#9 z#~+`0I#1=Vs=kA-MaBU@W3Dd~F<(a7A4Y4K*lk^rVgg^OJbmpkNR~TYmsR< zDgrc?p*=xPuR%8%O^!F7f#TQ+25`^36rk3k1PrWZOR0q1=5RShxH{k31bx_gtS+OD zq}K(EtVvYu@69vZEf7Cz<5JYb))>qNAu!g*gh8u3r=CH|`qmxu+^X$j7@rR(P5WFo z%QYh^YcUTJsJ;3u4KffO4#C8|{!1`Jo~mz|<2rkI^xS*jpNB|r5c_E+o_ef!iODZS zBr6tZ1~F6sEvnIFzxlk_q9AHdCNgJIRNS=plVZF#nsIa)G86=Gr#enR>(@smr&5@* zc1AGuq6nI$NHNfU4juBnUxNWEfn|^;!W=pw3OM6qiLa-!FqvrG9xf}@{wE+7108l* z+V9X{%;hoZw4aROMeRVdC8wJPAla96SaziXgPC9u{q+7_V2ntQ&y5Emq7Hs-TBDj2Fdj%d_nHR4CAX{tAk~(xeV5*MJEX)V0LO z4|(rvuZQmXOk_BhLf@GRkDwH=BkH*E4N*_O`y{IiNQoB7e|$f^&orY1 zj5Um9-+U1LPmdk10UJ?$87jbbxSWLlAu4o-<}wp|vNtH&393Ix(CN&L0ft)L1|^NX zNCzFHgFX&ZX<5|0gb^PL0eOtAjtXeE9{k`8#MQ^aS`U6M!KIhUuVXAi)VF?7YBn*c zd38Poc+H#^X7E?SvVm&M^VxL>Md$8-C5o*BU_44kdQ^cfvWydC#(zx3Vmv;qCZ_{N zj_FgiMfTv{)eEoDR0sl242_5)Tm=LJqZkec4^}O3e3}EyeFHD$%t{u-75I5ovxy~w zf*Z>jjG#v9N5KHg(_-fHH!vO@s@u$M7%uS0Nx>*=(bl7LT07)v)D*rb!8@9G#o?&?b z;{`s3$kWUiE`}?$2YH?UHY-H?hfZNya20e`zYoZjsoVa+V|?7)y6Y4RGFSUeNGL$| zrt_eC+h1OIOoju2%SU7SHZkDB*(0|m!Te5j^C?hv;?Mu%o?$4hbi06YKRspw=PrTh!Dg3Cz8C~1 z{i@v{vS#TG!9E1D%@5R8RjCRIgX|E-(;6zOmj14rqWVwpmg0Pzh%Tu`swdAj_zGzDuowLh@EU<{xCgX-PdyVOA z*X7&AM<8^Zgmzmi)$|HTCON=ZoM7SC zgKjtW{Q}BhyZO&4opE5F`_)dYrH=? z`ND&CP=Rq!>%oUaGF2ME)?)G13C0N6KFW}UgLrR%3(3d@<4WW0CdZu8NC+JoRDhDAXM?9<}Aeia*Nzs5nCV?4eF@fM>=rlLiOFu77_IN_yW;zESO! zAz>owFyE%#7BMx&+Zy$wVuq&tO#W`ZFvM4N9DG41MkVk5R1T`HqjMIA7&Zf_E?ew9 z<1P-j-he&~^0WQ7dmn&IV`Z{~Tz`1RdynPerXHcI^p(wax_X*aVRYm5ntiUOmUq`) zm_afvfFu^YKOIvih8~Dk76GtnI}4u88~bQ~OAzxH_xrG4#h?3w?Ln_&vCvh0>v9M< z%W649AF@^~v7)0{3%pJ=9sAyMVDg2$t2+mO5P=C8bE$U{P55aD=CTeZ;-#0szUnz6 zfA3SykyE%IfeKZLjBFwkZET@N(uG`adQe%COdY&?2BQQOR1aP=y_D(HTcDaQbBQji zXaVb3V^f+K(!S8lu9kbS>|@&vL%@#>320-07TH)BF&%qeqGmBS3Pt}vKf3R6UO$fo z_y0U`H;-nOZGsqKAXfVZvCkfo5jYEqH)l`;yu!G80pJ{S;EsZlz zn2wvAW*Y&N+o0KvhGblOKD0BU5rfQj%bC2q3OAi1U~+WnBPcWRU{j#xH3pG85U71% zu%z3dSORR(YV`x`r|E`hdoaH^wHq4@*g;}rj)I4SR9jS|oSy9p4_>0&XMe@t!vt-d zJ%(Xr_}ZeF0YM#L(;$~fKAjp=D`-FEff2x+PKpYC9F&^Y#_pd&2DFPf#Q%8LBVx(i zRxX`VK3fk=<2qA!nC!s$pRAWVLzc-21(h z0`xmzj?i9_?l?tWKJ)MQ{aTFR^nkm&1Gs@30#3Wr>nA}>C%(j51<^}@N={2$#Qfil zX0owI6)J1nkqQZ7qjvVFVQX?N^Vb&lwj_p#$@oB10ht zK<+z*$sILND$<;pB|4f|yn^Z+UEPggo>?O)e17Nu{liN?^63s^t^xaz5#RnLJ!7R1=55Hpvqly_bn;~U8y{%&AOQ)N9xrCAN=u(@tJZQiIt0BB0 zHH_&OQZ&I-R#V;o_QF4<_hSr9)K-ep&D}BrfZ0}IL zxq%bj&}O4Ad>4YHrG0%g7sLo?Z?%IIG#V~H!~U=C6A$&$)B0@cDX1}^#hyAbhPgpr zeoY2W5ZR1QTHcDY8`CH(9Lz^O4Q@P#K^;#>u}Nbhb~3L7yCny2Hlb^niH!7ANMKHV zPF~4W{y+bZR}A6I$QpkzfPOkADgz5JuD~8h`_>p4M)Kxqwle5&)qbcN1NOELejwH@ z@6HTfHD_{O4D)Jp2O(K9iJhTX0&(qt`NCOnbr3WL9ay0oLb+B!8PBc}y+MSx_S1n) z~BB%Dfl30GM+2k1_8J3OJ>FFs&EIW zV7Ghj^3?%fc5E_hBGL*dWp_b4ZKFD zR5oiL{%0cscr6{nYIVMopWQ*%2QciV=g)w*F=hgPb~OfgNXB%Y_M-=WOfqMB!ZDMJ z0pe17=O9#b;Wp-B2_6vi?kh(E?cRDxEWxMs87O9u+A>w`1Lrbt)c@*g zbqL)L#DP4M8eDxC7~p6ZQz#kaCkF5=U4v3rA){!!Mkq(w$qu2vo|^#F6=uCsWz1Rv zYD5g|cKAZ`Qdi*p3s?4xGeOMHQBYkFUoxHq{rS~jgR_D3X}^-mE6lrrF-3~}Dlh*S zQhVz~JrqFux*gM7--oK6HP9Bu!>0CRUi$)>Bk9a5uUs(g2U?iA5r+4ll|w2fCdS@A zyD|`hp?y=C7;`IQW@{Kswdju?4BtAz6gFRcRgSRcOcfPYXex1(X3!6uVVMiq_X|LL z83!-{oIqZn;~R_n4ZKU;`VzoA(B()>L+MtDy2$sW-*?a%$pQJ?yVsmfQ> zC&bj#GCT>5I~r6=8jEmz}C!+IK_ik%ps#F+Sl{;I|Y2&Yc2#AYR9^5;hBf zM*}J`p$*Y_z>?EyA_T7i@bbkjysTiD2>?V^G-*GZ)0~6B4&&MlY7Bet-t6XyYcH|> z@>6T}AOIy~0M1SK$Fgu%&B@@}t4c`La}h`|E~4~U8CfeQ{VpbC`_WAb8bb^?KvOhnF_CuRbZ0;CcQ-5q>31 z%;YMj#g&(XErFQjQ&wFFnrB%Zqb4wZ{wS0_r+0oOV_pI%6#>2}8b!3Idm^}VI(rJV zG|RTa`PvyUt`z7O0Z!Kl)b&}|K=F#miB8BN6a5YBsPx)e_CAW?=dW&V%Y-HDGFGXB zLE@>EB#2qDgL7mJX2i`qO}Fl`Hj2)?54)uOeQr;mWreDef@aB93=FloBYfJZ_?e;V z;9z!`E{PweOMuW=Fy4M5zZ{%p2v};jVmUf~?aGt8V%PrA|L)i6+^IlYrweyN*`Sx$ zMg;4O#g{)l2_7HagBL#S z^gvHz`^j{lFP@(K@YznYHw+G-U`{Y;-hGVz1WtjL z8)KNB_AOuqyp$yj7|_AWK$V`p{eJ2g2pyIZE@mC2*Rx#%-JnoWbDb=&JH;Y=fu(uv zX+FsKh|E!G^~J+s7!4$?fpaGUcXtm)w}|b;F3F=EqC{rE2U@)U_|WsyX{xfORl{t; z)H-{g&oQ$jg!VtWkOBrTfBP0oR1kCHJEAN>#ED8j=xEEgXH}F$EUBGgz+9s@xtJ3A z7TED*a`29TdS&X8wWhqVkgolwM<3>#wfA{JdH)x!aCFvL4}9f~q1^EDkO?~oTNmD{uZkfCDqO&f+8vXTjKW!P?Wprz1MKhHC)o>GYvtFy1%6{WvQL$fH-8?eLS!bT)aHSp~cbO2r($Xpl*P??yojCZeF}0YB-(+B7y6CV*GC|$juRvj2Fb)-{ zOP6vF@BDzqeNb;WnBdCGkjCi|-2jE)ua|nZu#N*k13L^cFizK$GgLGK@oV1fk+UFs(9Pe2 z^;8?cT|&SZHr2zR3H--(l~p+V?+-syKf53{o0Bv8oMYj+&xGx8pzKYpjQFyTjnPMn59R>0=@#OXN&f1V(GfD zW_lAC8DO(=CbqoT8=6TBst3LG>jsQ{K6;tg%GZ9dv6tavbMw7)KX}1MzaM7nP6q)j zS96Y~XuHH5b>ZvR9)TKKc;sC^b6BF;GF88-;>qavvYVEHSaGL6d+?91{uGM#2j}BZ z1d}4P_t(=EJ0M?16W9Xn9lh{O$`TZHVQ9M`zBT}2REc?576~i;kR}J{+%je)=r1Na zz&Mbs(If*Nc}lnQw&ozZM-a|btmznwu7I3kqP03P4T4>Q{fEMMhj z;Flf)15VB!^kpFagt~b?Fu(Zp)~u-K_urv{MC}xti@2QeQ z*q+O~7;d%txVojJ5v9u^TtoOo$%GfAa&QsUN?&Fs;4+}fN&5sTD=P0x`ef8{?|>@$ z&l=3+Trm{t_P4*wrx3>m5bL_D# zeW^~yAHTM|!b_`tH8U$ed7u}ZH=zW$sRZ7*WX%)29Tb?6&rJ@@hfK3vxfdR9t;Pc26opcp)f$oT^U&%-1;YdnmGwHi(t9{?dzF-$Ji#4L4Gwp+Tvs?c0S2# z;RN*F2&S>k$1m1bxNslApcVG7Oi+FrU+-8$El9O8H1m~39& zjPVzbfOXK{?onU>19aiLCPt8teg{w$m!gB~2&hU4nONj8E1(HA?+-ndnUFfC{n-~< z-z?bp6c}(^1b2|i#r1%uY2-QGRh{R5>6mI{H0MjTAIRjRfqkJWcBt2$0|vS5Wcrj3 zB*5DEZ=r6gj%~&9%45*fYn$>&l|A!GZF~(YXdkW5jW1?-00!nuBIx2-uo=)OXcq*u zq?In5~EysKi&12T-uC{)dP zI)@un9%1sistrS(`ShpkB!DrG4oY5C4@l@`GV#IBAiwzGk)0$+x(CQrIn0B(dF|t& zkVZCDfQJfHOpF*Qw|{j+&24=Pa)vvL+waCx{oEAL$;4oB=7% zptWg&dj{M@fX{Ogvmjpb6nFKN(U?ph#1vq*mPS<>GUdRg(O{ARAB=XO%TLJI1%fuF zER)bBc+lJqsme%&hItHVc?~%;?ECK1kfw+QzXt806T@qCm3e^!T&_(PlN1=g`1;AI z>)(>W!He}`8BTO0tV1gWF-HJa3*csQi7h-Lx?vh}AHbewX7H0=ntNRI7;=C z*LekYf@A;d(MKTq_f6nCARx$>{b5-K;LI_gLRB49RS?`U+sAOm!C(GI-54-{2|2`Vx0%(++XCsP^FQr?v}DA>j5o$+=h;Z+W;x>t zC@**OT1*%ZZiY)44pNtgo^ky_@Z}q4{_?1_`Fs(`2$;H}&UzaaY`D-^RGT zZ;@W-$}HtDd{jSD`#qt9zc%Pr&Zkx|zmM@O=AZUUHCvxO!k(AFhjv&ax5{Fi7;oWj z{LkG9&P_0Yzy)@d+#nf%H_aVkcy+L+a4S3|#5q~F&p{i|M^Na*+YDx9)DJo^tiYnu z5t_}|a*}?CFSJj-S6%_JODC)1;qn3_!=fNoo1(AKXQx5H=2T{jXfdmi7hbDmv&if^ zxiMl7MP&y)1B8GKmGp%`Wh4fSb^m6$n2SY#XQ}XoOboN0tikS}$}*vxOUW5M#<3sM ze}E;yW-3U@6j^9&ZtFVuE69pU$hkO7+JVMEJ)neM*7e$-fAf_2I3sxOVX#q9FeuQM zd@f=SToBF8v6P2F`7FBrG_b#ir6tOo^36d^U}Sj)`ETW!KMQBp7s`DcbXa9=Ep7we18nv6FwmD=~pM;B@^gSWwFZJC>#F zOFzCBW1!YUbqM9j+xi7l(o+>G)Jt!GsWm&eTJklK_s`RU#FCgVu>s#)DEQ>-ki0L~ z(hFiOg_axxXB7#&AWA?gl|ECjvPq}iiE+kiBBIoR>$6={Y~a16gnw72TZ^k^5i17c~qzv!PU}aoX*USV$>|V zD|eGQ#)}IDqCuenjo=IvQ$Rr1sep)qLD~2!BadQ|P-n(aS#JFy*3>vF0W}WD;^gJ5|fGgk9Cuh5L_4uuqpl5=b#Fmp$Q=rnKN|_9s zGBpoDkLxg73|4dI>rcrMoHnzLc#_@d!Mi_XlI?&A&E2N40W3v>EtHh0+*0?14G0U5 zxca=P;7rYlPXzqGC@LLY1m6_cu~&?=fXyGg+Q@Uf z@VFyq$|vb10gqS?2m9yWFiC)6P$$T)*j)@9e8!ofQ0;>eCNYl=#zNsPPkGpar-R;l z6>QE_0nVxf`v3jW*Xl0+aJxo^JeM^Q6aluhT%i3!0xDyfR>5%d_JAK31}wIVJjAuH z)({)F4n*{V1&3|R$f*6!c!>;zGiHocJXd!Jix@Mz1u?AjY_(zobS4A9s2G?${|G$b z*x;erN_|W(F(W*glGpD6a|Qw4%n-k@vdA}IYpgiY&S{4(u)n?dHSIsJpaPe_55`Q* zOdeSf6F4IZB=MmG6i$G#)CH`Ut!B3*Ki$&L+yo~7f4<(rJMD z55}XFb1H{Ai?)(52KLH%zK$@D80ZHVUfN`+fs)Uj6(zZt)%49<%+N&8r%$+i&7u+n zhjs<5@)lJ~7k(us3&b)=MOutHXG!c|9e^3H1T?rSnz1hE7P@{jLMZz;#%D2U7a&+q-ve(HaI|4DtAwh1+{7i`Xly>YC1 zTc2Yl-*lJ5IKXbTIUb`S{TwK~jP`!mkppL_9aVA6+frkoXJol*N*Dt{+V48J%D@pK zV3Xcs`T*4;*d7F@e3>TopnWl1emae9pGTNi#l*lzTD!K7K=PSpwwAS8nC1zK+$dW# z(AF(7UBt}hLM*fx(ApSRxX#lNHArW@*5Ca!KqULT2km_d6 z*_d4Y=#O%U_MrzSuKyNvj>2$eIZxG_xBYZkHcP*edGXm36Us9fa63Rgcb_6U_-S1e zWfx+Do7gvj{rSyDM{Sk)x0jzS?>n_nu+$+-AoIBPXE8&U~qbd)JY5pW0nUJOl$8q zPFqe4hC%F1Gs`_gG3|75 zQ}N)*b@ou>|M%OwzMIZUvIkS-w5_YzPwD!Su6U6C`eVy z!DxW@o-;Oa#}{7i1}_7#B|3lrSBt+%H1H|VK8UrUqZeB57FTJ|ZT1SQK!A$4K$TGz zG!7<@h&BwtBYAlpeBjtlw{;(rT7bKs9NMf>kBdlY*kk&2fwDjr&jfPm3y=1-Q_*y$U8R3*5>W<^rBGBiLBq2cTseynzq6DYSe z1Dv;K4EQvB_f3XK5TZmlWXXXH3R#i7oDQ`^R@s;sxAZx>o^D~fPzuU*O%z7cD5`sf zKF5`{dVn=EkuE-A0JqD+VhjaY+TSg~0jwZX4_K9|phW1O|B&S_2u!x!*=T{yv12`s zw;5YG4&KJ73r@Gq&xELhrx|8I1qm8&1a$O$b|>pc$8aX^-VAD2`I6-_ijnr-yC(fG zQMj{RM%@iOoA*Rr(_nt+66RV5wukdw$DVj@csZxhRZKlUIK3e0lW&JeKDh`;HomA zaXTIKIH3JN);^RPP!(tV!@v@GiBgdER}mza2v|WQqJGPuy`~P-CnXSEtDjq?SXsjW zQ*PCBfy<`GozOS2${Sp0g-YMku3@3P1lQEo(arQZ@CaeWhMYF3%dPWzeIN&rpg)?y zunvK7A|U=$4D(T7f;jhBJ~;10mude1*xVTh)m)yhy`6+>DFacq*Is|LWnf;_x&am- zdRwIMU8l9#zx?!v7>xM1By`zNLAM>M{c3n$7q>nQ8r;i2*i{)F$SyYo;zJ->`!Std zXhu*~%;=SeAQ^pty%{hsF%ktbunWx1f7@_Ehq?a0z43C9lM07t2qPR0;?B=K&l>}d zTnMc?KK>3=o|K}Spk!vH+7F8hWz==b0OcfTOa(|kiYa_bMs;7`<|o=r>*4#nF;-z$ zc?`p+cY}?pL)E#kTp3Rhtc!?( zU_uE_r0fovX4f0muKzBOGeDMODcx0cOorVez_qXCf@JTw1xqsifA4?k5z*|zWi#9q zDlv1t%v6ATyj7F&kcdeA08tjz17cp)B*R;n8w^f&2Dy8KHyCD@a*Lu8SP3)7_+o+E zYUe9h9g}MHIfGQ{lfXJvdVKn*9F<2S*D9z~({%yEJ+NrMc0T(bcii7F7K35go*cz{ z+Po*W6A&RgBQiL{=kP61PbyevWQLvN*vUNbEiqI>Fwq1ml+p8itN=AJtqBlW(@Ab( z0PmPRrOu_t@;yfN8BxCdNyIq=W*9D>r&h}$YsB0OcH+Zdfpd4KYq++mQa`44vi80{ zDDfo?%USFKvmht#8t4QC*W{FHe?~yRX&sE&_W66kTZ7pLwn2R1KnJ^i^KpQZ|0v|pH=0;}- z`XM?%U1?ygypdqcXK?u#!(UVr&k0NY`Jc9?y;psEls`UCI>HGm?yI$+c# z_R=emDgm;^3U1THG@)XC*bp^&__`&d(9cCx^fksRhE7tYo5udZs%ZnIgS;8MZ|*NT z{C?815VoRJyN`y|VqDH5|@+&S1DB)7`Pvjkk*rn@%e(h)5pbUXRzk2f|gnAsfK;`|W zEnonbEHFFY)QMRlDxqYa1|4RX*{)?r3@`pTR5wD2mq9EV6GcY+(QRSZF6=$Wc4rJE{knWIh>WT<(QA-uCXX0|23a`9Q3|NQVXK9K+R z`WtbRu`3r?OD8~pbtIyxED}l|-3?4u9%FfCgKB9Plr%Gjrv~hP6pl?uurGqA*n?wf zY|Ju&BZPGtjF;xan-tK_JFZyjS{rL3plz}EZJS~ac!iu(nP=*9nY?-@ZH+N}CIGxY z3y~}Gk8EQu1FfL32{8J+oUttjeS9xi83^!SVLzLa!LnmsIFmCU6z2Q(9S}1kbf!J> zzIiitFlUGx0Cu@pAhM+jywu|23}Fx((_+H$KOcA$GPt;2jQw$t@!TDc1lXvGMLl`x z*HD;oKo=tp7=ysnT~y8)VObecF6WLISb_5_JEGt;#7%`@hJpEID_c46TR#PO0J~M@ zc0|y3#UY;HIUq-)Z!YCg#~trRNScbd5kW5m%acnx|2?o75WoNd#>B7alC-mQFtC5= zb#R_Q$G4pUW4yNF!FElmYIse7I|L8jW?y0sWrFO%6;0NC_`KK>)ebOn8|(M4O&FcX zg&w@sS0e|2uM96|sBXX#V2ures1L?~RdW%YWs_XmSFeHrrFGMc1CIj|H;Y8stgGo< z78Sf1^!8n93-yC5TxvhpEMR%qmiLc}M?du2%An(whheQ${eMs0g^N=8pz6ECy~Qgd z!d0#i+A&LWycgI+@d9o$+pb6uE)YKy-3-uP>j+EDeCAHN;-SH3H+) ztz4UL3L3pD76mxU~#6$yz*;)WzfC~ZE8(Nnan3)Zr9`;QxMDBRG% zpjy`aY^~B@&DOr^4oW~ytA*a)Hl`;r7JzRfy~S)~_T|lXUitj2cpa5B*Yfp>bDZ-wcWl)`IZycuk zSeT1U&rKHJEuaJIowMT3gw$xifWnOh)psw%CW^n^i#Q zm?6-DK4Ei}Zn9U@vKcxZwo?X{bH%!_`?v4@9;zx92PggD3^rXB8o(IQw*uqw?RS3% zbwyo|j|jASjCW;x8#5`DipR--nU>To`vQohp@K+>ajKg_3fX7v3hU* z@zBi-b*OD+I0guE7nviXMT8f3Jgppi>yqV=XeKrf>tHkN79;DMR~iH*h{;!kaI*;I zPYi~{aN{kJ;6~5_h@08tV@n6!q;lLU#taChLgN~IWI{O8j)sEnS@5_Ru*C8C@j~`U z?RVrLRYB0@M+U(7$QfqOKgr#H^iqoU4J)iD!3R%yF~EHwb{)Zqxz6kNKwWFoO)CXZ zyJJEbEGCBz<&O{l1WQ6Y*sOY;1$B;>1=M8*7!BTM7fQvY(kD$=ws-ugUh7nPP+r9HC zqo5x)2Gpw38Y*{O#B1hE1%NX(kCdCiJIBC|g4R?@L*=dq%_o9K*-Acr+IsGFGdmD- zD1GJ9_fsI}-N2SWK(Q9_fWsdHYxr+3|3D@_{{sUDgpG@gju&aqD|{lpt2sYB)W8R6^x4pINKgdgP@2t^X`ja^Rp`YyiO>$#vS8Vx_|tGeJE~Cd`%$m z(zP9EkuqW+wU25;GCvpC4Xa1Nk{GLWZ|z$PpfLy}9eF(b7ToydO}UtP%QS|zz%n@i z?bjE+`TdpOYkii9smBP=OSbqWL?2}pm4H}pwICfIJOFhsd3$9O zvY)9cpck|^+CZNBC$Vt}^B{Jh?eZ`0GeWL}TvAo^xLm6={7-)XSH+SakM;_MP-uC~OtLz*>&dFsR!;qWyp`Ut|LgeAEEUu1#K0rH=Llm#M|5t?=o!^AC+4 z!*~U>pw0;$TWWPk;F)ZHbKzh)hd-e=d6W^U4C=J|cEToDR%4^fdLaWA7)M~3r`dyX zHtB}QX6jtnjfX#e6yj?#XS;74+uAt%ekqrz3qQf+;Kam910=Agii=)p7L)b`!8q z%FxqmM?rjD;1*MI%QjgA5K|4e$_PkLjtyoDcOIb|`>P|LB&CXiC7}H-MfUp1JZPF%)wF zIkvQ2Zu;amjZryQUy*5W-h=K2LiW~JAV586Lsa1zL0RA2|0Q1+OoGN6JivW-WG<$L zz1xRntAgxVKi7lNMur>^o$WenhT3RR5A2yJzMe_Sn$1@$TN%MP05mzMJf@zdv9Jkt zmPR>Hj|uIclCLp~PmSe)7qJC1jrYpIfD6yCF|&$+jZeN0zJ6Lp;9M*4>2tb8xteEl zsYCh%<9+T;88Y<*hY`{ZqU6lx9AmFI%G%I=uju>_xV2gkWgSSzSk2xv27TJUIS(7|i(P_ie8eV{(k%fm}P#FJe^$cyP{U%uaCa8Xu041I(X%Em5KPoEWA{8bDdq zJ6uugXZQB9o_T9t-#3l9OiwVV0Nn_v?K>J}C|t!N2qQPOxM1l2VgGs0Nvj;I?Qt}oo zVF51}eJt~|>HslKDq&ddeBjwb`|t-0Og9Fv)B?tMjkSa2x?XxTurIYj?N0mE0zOoM zE)mL=7`*pOW!+$07kNq~i0Rp)Jn_{V80aX2rmC7%7@|*b_ue1;-ql&PxMHh!s|upq z&c!#GD62(abBEtn!qW$uRry2D4r>F~(aADY)dG#H63{_xHzWaX{n1PM&|Jej6)10F zprU4ORf^2_IHZZfKrl+HYS(ma!8jP>qJu}(4$F|)XBO2Xhrv=;5>qpT6DUW9;7ccY zIpF%eVCpu|PVM;g@+Ou*Fu`)*%5|;wR9bITF$+qZSUR3Qa*S$eOmm=|Y2fPF!&b%T zH?y0h1JJtX5M`p>s#eJ9{jTdjhdiU^p#tSu!5_Z4TvNas@wy{Mu>bt$C&B5R zzE*}BU~5cl*8Zi4w-fNDJgLPIEPobk97NAk2ev?~pr$!a0Okhv&6PnKxoKOTpTNi- z3mEh?>XwAzZ(d+$^S<~!@Y8+;ahG3*qJ6x&KjrM5a$qY9z~&wYvFcpgAV$2lfbr_= z?AOOoXcE{o-6YB~gwN^udNX%5qfdH5>jANt0OnD^M6%1-$7IaxW^3b4CyRW+qw0C+ z7^oZs&S%;q=RfO2xuAK z*50ftlV=}<9bU(1zQCje*Fphcc3{9Tz`uObl|3*WviG5_6>mwO^S?|W`OhM z*NaA(S!%Ch1vh}WjRiInNA`2i(`+$-xbmeH7=&Sf&w>|SHbiTOT2U#M)TtMY! zKL*Ko6s*9=0}HWT`qXGpdffp-ah`-3cJ!IXqKhKvjw%<3p?n; z1x)*|ZUgI(sj1Yo4lm2P3{HuNzWP{@Xw0dIMsAS#0&r`wZtR1OVsMyaV6=D5F&_eZ z#mqhAm5RRc#qXdnI|OxHx+=CSKVQQj*s#Xpb#hK%Koa;siJ%?eZIr4+srD-z)??hV zfHmw7n)c&b=*f%FC1*-V;@i-GQp+GGc zdWqLf>t*VywBf$r|4kV%heNCM!%yI$!3~+Zt%!(qA+IyVs>O-*31*yIRJ=o^^ zx1Yf{C3P7*>A&A|FLQGYlmP0f0%KT#HW8lFA|2>_f$|HJ6kvUvy9bQXOQ{CSbV-?a$7A}Q4Sbad*z`sIrJKD4E)<$zYzsIQ`ex_yl2zY!Y~`EAIf3^ ztPETXJINF`$`u$v#XVr*`##zazN=f(OTLHiVsV6-usGGX_#ynJZOBUzY*m97}2yc!UGxal51uhUD|C9Em5zzP~$?DHb zOHubp#dyMxHy{7(t#pV)o;h>*8MbVIH9P_GACR$dme7z=wXZX@jiK41XVc_hl_h`s z)$3`UnKPliT$`7Nzf9^}mCjKZ$`4#lZa@argZW3OXK!l*o95{TmR}4=z~cqX{?I6} z0TY;NK+$2#G7EmHyAb@ijF|{)Q7iFGQ6MVE_Sh4P@ZRz9Mt!^kjV+?qdyTj7O#sW^ zZvp4ZrXo_9oAtpp3-L?>Iz5d$Xzw?vtl74&sa&);V5! zO03_!3K`s+#}HilZqY2nG0=xUi3hj200SMi8q!Tr*6atonhwTWaOTt7M)d)d7#5O_ zMeUc2x3qU3AO6-<-?aAAogQ&%ILuWJ-C@zhnDz5)GYlYCx51hP*z=f?K*CWb&!zj< zRXy3<3*QdYK>Xr+r zSIdO@qjQN2m>6!WrcZvU&!w`L3=M(#t9$EHys8!+v6S>fp8am;h|Qr9 zuuK^Gn+w9B)PVwfjNtaTDRgv*!1Xwrzddd`P@mXH;{&Ew#*Z?hwPdcXEpoR?$H2%}RA5}dH;Y5_DBKu1%fiFGN+8)lMo zW9wp=6Cr$K43bf4$fs7?JlEO1GHdv+`ya)q?33F!rv`Hi)B^+--k09fzBmt(sgnr; zSUvQbJs1$}%PF`U9;<_wj0SBp{#-cF(*~x!dk&J#<=xla!3At7?3_sxU_09H3^A)4 zyVhDAA?Z`LfpC={U;nl{j@Q?ry#N`Kp`m0GO6IN!oQ;uw*S=z_dSCvz=-QpI0JE!L z$siT*$QUMzDmQ3AUpUiLg>N$`*{dKrc7jxMEih4T4zHKIkW7^N&O%`kus$ME4u9qTfJ5N&{a|a# ziTw;3U@AZ0L!l-oAAHdz>Ej=CH2OwsAN0&+#DPyAsPki#-5B`|%~nGvi6%Jb-xzWVNQ*8f5|}S^wN@l=iLk5zN7~o@1=| zy(sNJpP9KGJe?&ha0`Si{ok}Eo0HYP84rMBFZ?JU#<9o!Js{lw{Ma23KrdI3%$p>D zw7;7!y{tk2L;BojPpLTwAGH_l=kJ($yfSyaJp=~OzW`qyIDr;GTOdJ7IepDIas5?; z7I5YqD=eGQnHU8*d89On)vebuB3eQhFD2N9V5I=s z|4_t3p;xr82CMknBX^9;zLPmTBTh3-X$1wm|VaZNG%*1eQ4UItGJGMdV^^I9K_O>to~|H?E;v`K^=8~ zeOv9B5y%$n8Kr7JZovnhjy!1As-Q^qm|`gvZ!wd47<9q3GrNMIdCObZMX8TS8sF!0 zwGdQr`PB&Dj@~(*Kp&ro0~3szb#=1+`a`~^M2xks3RSLR;r#iwAAqYGWx)k$U;GWl zt$oKYDvy2^&|3nd2onS!5jr-suh7Hr?c3Sxfz}o4F^D`B)nkb3g7HCPxY-HzQ6R14`rp6G5zyEah*H`bD_Lr#*2tG@IToLU|);uOk z`t*R9=88ogq>AL;ETD853TOT@;h7>j>T?(@lZ-!oWW&5R9lk|&0 zg(#8*$BkNO{r7)*_3%xD=D+^w1z4=XV1O-H7^oQ91xM}DRV_Sh+e1!cG?mjcp_0zb zWr43bPO{8+b!Jc0Q7}Qupsps`T8__5(IV`=?89-x+!D9quL_V+E6xD}(igZLx{Tow zI6#!Yd!Igr5<1K1Z-UfeboL}Dp$d%GI?>^K=`Kh$%p1(lnppheUp8t(%b9+FC#yn7 z7V|=2aA&;NK_5TAB_`hG1VhfX(gXHjM+3h25m8q&ge)WKb(psBI67VN*2%tsKPoF?cPY&H0dV2(|%0 zg*d*Qz5~=X-MQfHv8+ajv3a)~hv_nC@rvkRUz^ygHGqP`Pz!Oow)3N3qTG6q6>_bTLR6PSt1u*VFoe6&V6g0Y`y z|4RPp|f<3{2 z-EAiBV8g0y#qZsCMePb!LDBp7L5bm#la~JSlYcQ3siwgk zz4jOw?*<(9ET~^TEhgSqD-Xs6V2A=hW*LUF5`a<`_H@u>2L$g!2k5x?Q-_;^g$eFt zjMuR+?Y&v>zyxSO)KoKziR-%di;6w%1HQp2K8fy4U;Y8MHV|{9e~TIIxzSpy3=nf5 z9aA&G(6yaIMizO-bnA0%vFs{7YVT0BzePGuK(m07K?0VBfbp#836(*)sY;)K(hBOO z>vL-vkR8xX^BB*J(F$71a2?kkeZ@;+;d2Mb z5h0weOk4(2B?B!JG@0Dp!~dIxM;-O5u(JO$zk*(;5bIdCqr`KFYCfldar_v&ko z#-K_2%2+6>5GZ(D_^l^1#3P_@!|Dv1%K;cy1AP4g-KIl@(hG(Y?2%s|{(s7O?N>4A z8=km01jY;k8nmxyUE4L;cBF#jhuM#w0V@t@8dXQjIgIjNjF-z_-?-BRHFqmzueg*w zwkB~8ysc}h(r6vges=*wf!Z`zn9O4~6TlhjKfn4GcozszjguZRIedMW80~ox_qMUr z13p()E;HIU?-WDl3&XG8%p4nPg2D`#1l{CGUSCgqMqL{eLCFRIOvw>j26|}!dITHm zmRD5|PZKLRmL7_09q5GsjNWuPV7B|%3wIK|$0`MwZIeAYo<0n_^_`!nrHz`FyFv~k zok}VT*T47$rVJqMQ;X^Q(17J>u){YAa}0_NWuC-=0M)w>zYCl0X)4sd=r}jNnMbSR zpcQyzIdAj2$_7#m zkI#}TcQRv`c2SHiP%7e!=W74+uAf8q04=}!m{?CiXuo8@fUn1hF#>{D0S>=(j;+rg zZ$JI^Pw3~6fWWi#}7SP8(0!vATEV0F3eAfJH*jVIe9UbaT=3z~n2`*rrN*Ed*aqY1 zf4C^RTuqp@&obMWNk1k9Hy+njhr=IDYo!AcLG%rs3?w*%(RFMt)gU0N9W2a0DJEu8 zwNhrXV7A_c?JD>Pm@3<}Nw%Z_&=knc5e#UH7CG*%eT7!cda-gb7tdbMcHxath!J%h zR9;W}K;2}zS+&r5m;gEp=n+xb_|YqFP+2$8OHsUvfb*@X|MA4nm_3bUGukg<$$8+7NL?B13rV}i_82QAiJIX3LuDy2hiiZsam7W^D+%?&I%R18iF?;k)h6yu+WbkL~Zb) z091mQsevKk_Ot zf7tK_f*}a*6IgPNSbOh{8X17ARIOo24RP;4w4b+nO(0|Nxo%%Ku8M&W^mhc5&xjfb z!ET*DAY2!gqM(jAQT zcK$bDgU&^om(=QPTgRLk#FPI)m&=72=pGjt?ov1(!j;u?G1lJE5wZ6KGEBV2BB(=* z%$hQlaLT{`@#@c1e$S=JLGuuO^dK<7Y^OJ}K&Q@t89l)O=eX;C5UoT6_z@P^44*nW za)TLgb>*Jf00)^-$*?}lF1xUP(7TZOb*C^un zvi1f4T%;<5;HDuubC8akm4k%uIm;cFr{^0s^j4d-ty45gdf^Ab6usj&YVxFLq{S5tGS<)E9MD{I60SDA-oYx~}C*m+B9qAr6u>@99 zveKOore}RmEE`=;IBmhS3v%Ywoj?FXUe3J_Yp+KvVm-EgtYIhG~c zLi+YGaK8*N!L=VljybACg-*w%u>HM%I~XvzEmC-mA(su38PcSB%;&Gs5)X=OJbM=% zng7)j;Or3@t6+e09sR`q;;Jsk;4?jdWIk&0LB-`N456c`h4WEdFrdASM%0_-r+Fjn@#E&v9N;`@j1QCU9{I`F760_XB2iIi0`X}%qkf0Qzo{a=><6XHnz@d?@K54tSY9f(N zU)`yn{NYj*kkHHC(IHgB^1shI5|BLLda+yvgdI@9Z9jOedgUgzy{) zmKP(!Xz2ktqn^))6Fi375?D`ZALhe=b)1m4w-3R9HG|lV7M6H$={qm5(W?g=G?$Ql zdUzroOvkYkP#b!gb!(uwkDt@0#^(k^KLRl)>V)>435@+0_k$g43**MN5C6y?lA~Bj zKzkk7xauyGbah;hIYvRGB`&&-@-Xt+8acF?8$NIbML(DVrR z#Z?M;6cAtpGl)J>WXsbts&!Oiifd%y2znYI*|7kXqROKzEMT>aia}ueN}(EP-wi zbFPceoGK?U9ce6Q9Xm6kt~Eg}a{X+Po~>dH76BewkWd5>dE-^x1Vy!NHc>&B_Dev^ z0g)K;cwpIimUpb8r&hMl|F|eRCL@QLP~e`B`rdD%d8=5^jyv0V?FYYf>@YD99&~-K zDi1~n(B5(K zxSbLSe*ITqW1%#PZR)QteqZ~^DV77E+K3Do?J+W-BsN0DHo-Tyt^$@?P;73M@+AhP zq<4P`E{I)a`OifJ&AKdfG8(K6RkRoX;CJ}eq61hLC$;~BsPivnrE%RB9;n*jg&);0 z+`v>B*rKoY%9N%C8 z0sbKRvmbQ8=CeYJj=%=(1KAi4f%ZW?BlNC4v~LyH4eVpyqgNjhgX$)QGWzUKU;ZAN zdoFJjHZ4Xjv&_YR$0|c`=FkbXd8kIZ3y5R410rJBu|j0vW=o*6_e9UZ7{_7)&cyl! zW`sd8%wPCkkQoZ&2iP(^S`6UHy`u84h)WN$3jqwT69Y@y0Yz+q0fC)NFZ);0Vi(SW z0=OYA-M&^ZR1FlGo1-c_kGT^u7&F(ST~@$>98d@6ZB2z`%ngl#m?zw*_CxC*{Tdn& zHm3bIunDTc=*G+SG=r&q?@$M#c@2R5k#_+i8fN3ZdAfp+E-nP{Tms|%0j?-X`-zOS z-EH331H`Nr>_Q}sHiA2zE-u>4nh^6qWfm0WY}!hb%jef1i&bfwC?`QcWO2k=@z*bp z?8#919|K#m1qEyGPht;^@sY!X)6a|>4=v+EC>sRu);C@O>pj*`Z1Xw{10cZab4nC7 zgcxE~0!vdO4}Wd@m<+2_B0IZ#yNIPhm7|QjE9Q@?wH;5qa9@H4W59~s_X6|Tb^P@3 z>#+QJqnLnba9@=#P_?&ZGrT-!ObbUEcLcaBSwwM%@CDU_3}OOr7-6c>4Jt6TK?NAJ zjg`bF+?I{LMzO?-_}g<&((ByL zBCj+g=6MlK5DN_Eu|cNwwHL%JocC8P*y5~DSfH61;O*UVwYS3`ihYNf{Mln*ycob^ zf%=O-5rv7EB&yEMwl2yW9#WMYz~PcgFV50wjK-#FODbbv31POTtN5~~S4@EkdXF>y z@7)Eq73ju?RSkVP2?E$;l0hj4Y#PAHsY{QuirjX!Ycy9paW6!_Quq{xwmaG z3h!Ynv1I`UH6V2eGi%leMg=IJ7RfvC@~l;NPy(o*OqGJQ)c*M~f(d~AQK`^)Rl#J9 z!FK~{qHbYB0qS`RmZ*C10!<~s#E?>WO_Rzss7{t{a8*Un00wP>7qBQ_1Tk++!wde= zK|EMJg1Dnizn0~E?W-E%8Zb1z`x?`{kYQ$yY@{tS4}so&FuUJa=d6QFfk%N7Icx?k zF66gE=-`%?cr!uji0Zx=UcMKM=jaGG7@%jG=qr_T&`MSB@Kr%#i7LNCbGL$#n3+0k zzJ*D3C1`3t<6M=%+E)ODS^p1_8w9h;_L9*3@(-R_n{v8#k9L7VdZk7M#tr)TdYRGB zSNq1kJPf%5S9M3Ig4(}4|7-Vh)(Z=Fvp6ZJ3eKSU#w zrNx#YqZqQL1=`zVW_mHORn?5oTmUURTfi;_#BA>5wCYCQL%_}j#24$9YF&fkP~yH` z<8#a#>H;Wv5ll54XaaiP%FwrXRp`bkXuB%)_vran-l+#P)_d-$hGDK{k3|jyiU8-* z1-ak+P!u+G`#fhw9mE z9SE&5OXyw2aoaKD>2{7#|5>2+mfC=C=-Bjl8 zLcj1@1y?fR3&w{W8%bLc*n3Zb86Cj@TR+EOn9mJh$->k&GL`85iApeF&`M93FTBVe zWp+sst39U^vKyDhlmX#bP{F((WA#;KmElq3aB2t0IVa5aY>wZp>?E&u6fJ zC}!3vm&FMPbCF>w!cqH4(ohV!inW89;S+y<<2k7GTGuDcUmgo=oc$N3pc5#v4(yZL zd5d|_3JAysMQ&R*=)y3vf}BQhAP(dys?E^A`n8S}(WBHr+~bH0gCWcy<{DLlNM^7- z740+|Q^sC?D!u*`UqAotqROA|%*E;_G&-Xw#s}1O8Q9`HIMe%_c02%fhsso|(G&Qb~BN#0e3$uku%M216zHYRrLt#w>c};_nc-s57^OdQN_GAhQO6Z;wNguu-Lta`y#{f~R*qyl3y$~}&VsoKM)cDqN zD|10Tc06i6d|W2D;TX_Ve@!4O9AL|#+dlu-80X|IRzOVs(bL_|XFT(uAAok9ebrhq z@EiwIQH7?XaEJGP?`g1(5r!wv53C7v@zI8ILxf+)K|cm6sM@y(88D`={XzCGdFh?6 z9|nsDX-}3LzlA0U7okcgpX=4J+XmGsUB=ocdl#WkfO6gD!LvrQW7u4QKG1fiasji2 zD-|R_EU4?#i2}yPztaFtXX!XDn)cOm#Ti^pfb%N&f%d~xP*Odd=6J3tW^*^Cc{?AK76AspmP-*$y!+fccQH%%%6O&m z!kG4g{5+;7^T)XrEbbVca|=|*`ycl_tGxhXw^Ice&&R#HemIkY4`f4kJ-7)JQM}Zw z+^X6(jDo5HZn$i)99-Rji6>w)5lonp)1c9rOegLt0pv}CMq3{|xs+{v=ZEZi+;0v2 z$HRc~c9Gx_tTUB6O3?2~Agya9cR}Nddd9)5Aih@MUI89y78P9k019N$CI=v9hk#`> zp(Q2b0_-q@LI>QmUrUYnue%YfUaAd-ywtC)9JtH*PeAU6q?;_gM@$1MbJ(r0Pgzsj8WZ zUCanPRd}KYF)p8DSXE35M-MO=ONvjqKUZ86nymz|{>pL2_E^^&A z=x|X1I|&f9n?oP5yIIuQQia8+{qBDW7Kej+x)3Dv&wSoR~1jRC?7C=>lea1`A zp8F%zp)Y<1&TIfazDwl(+I$bFq;U`DKfac{Rih&HcP-4RK;!RIL@m8 z+@mTEX6RxLQ>Mbqr~>&3BEh*AKs{FJ9==|P;yA84auou2@6pwxqJjH}7Rd)EL(47q z4#aR8W5K z^r*;$&Uv6!EsuNn@&sljlewY%N?80>lc&Sa62*A4vTv8z;K6qMn-EoG<>(nZ9 z5#Wmq9kxrsM7J@h%cIQ7^86@p4?mwE2ErNSq&CAqMuH+#_kgDF0MHM=Cv`*%A-~6(Z|RcDuO2&beC<&h-1@PO&zK z_{XIxa~4LV@7-s>{mo!5^g2Md1AZa`q9>f`R6#8SeQMM#<+IkXrNZm4!NA>Y41yg4 zY4JJ&g;lJUF$5LhI@JYA#gYLLu=wRqGZ{LTN;TQix?ydZQ8E^?g92fGMGX1%ml*Rr zka|>@pw@%fs(65ES=mTcHCkvdLtGn>#QmdNA5a?E3kP#2w;5}W# zmalOdFcqsq_!8yd^7G&fQF}31HmC&zFi;%oRc2LP!T@9anSB$47l`>Lm=qC9E8u1G zzK_=|3c87HPtu$XW1 zGsC>lm<6u3mfkrM(WovJ3-g3>&Ia^xGngQvl>1Q*gQm{rQlsSvRXrH!fshGs>m=i= z+pWynY<4_A`9=oc=Ib7?G3C2KTcA~@y4!dtGaATg7Rd;NF<}9>F!$*27<1TeRR>1X z{^XiN)cSAgMVJd4)!usI0~H9VIVH+!bOBGeavvC7%smKfy@ahY2eiS^a!FwzKy|J4 z0%j%<$tvT@2bf^}7arE`2(_AfTW6@Yc%4qr&>90_00H~evo0G>9=T8p7!%e4uLBhB z__~Rva|<-zn9g;z!!PdGRtwp~#1crw%?h;$M5)&fbTf!%?VFTDXQDTnN0(19X}H~( zIDcjl9m+V`eGNZNvCN+xkic+YIXcw_eU>W#RMfdcz?BYOWfrk2w9jMEKPmn!HAY)- z5H~eD57qU`FLWE@zRI%(bdxB&o3m~+LaX)S^C1zmy9~DK4F+`C^5Czp-v+}wPk~){ zO=iKBH=yy1*gAcpT-C7S0ZiP2p|?z*gc4G!4k+;%p?lf4fr3aDnnea&<|a4Q1d0n6 z_emKpYQK~U-C9MqI&}3VnczywLR5bg zlg?QaW9~-Y)mb?V>P2fwpVQ?vPUq%ihguio`5p=YFK`J<_ zXWp4U)6RqBTyQB^sS6m;UBMNYK#ZrlU^MHCS*^9MA}EZe-p8P;#nSoyhrg^0UB`OY z+$j}X*#7N~?|{>}PQ$FLu8?Bhz9z}&Sdu?^<*A8CUksUSiP|UGpa?SQRYOYic8QET z#vwa<_ZX~7kXr@V45$$VbaKKTEg@zMSyjLSB^yas3a?kfKmv>dka{vmlx`7=B6d%B zvV_^^RCSq{8g8FI2hK<`?^tKHN(jVA5a}b5n;!0Z`vHBT9U6|?Ta%PnYz$3z$JHR3+8^ji|xUgOC zYl5PKAqTi9pdu#S@A_NkUX;;Lt(E~Y0Ozf^^)t(TUp`(W=8pCjD8qDsul6}4DADiT z2EIEA_W5fmNe}`?Uog!@0Zd?K4?xGV?0Win!M0>B*TS?A@Pv0?XO^)ZCl|S+f@Ls( zg~_Vq{sFZmE7T>s;Q>$4n-s%gkCb8i5%jp=A|6xgrD6y@LJn!0flOjq`FgXSsf9!hMJr!W9_L9^;is#^<|K!D3l9}Uum)ns z-hFc?;{X2ni)ZNCTz4=x&;qFQZ%;D_I`VugpeuhWp&TX0u)r4mMOS~3tYdTl(%w}8 znQa+XF5tuvm|)nCi)jW~xxh1Ol?(tkahaEQX=Ecl0|L}OWpMf4 zYd_-AfJsRifwPARK7MW}qDs_vUe*38(0-FUr&_*`;eWmQ{PURYcR0hOD5-UKshC(A zfO=4qPJ6@u_&100o(hg5o_=jzdI%rZ!^1 z1*|22DLz`wumeNec`OFE`7d8GO!+p(L}9=tGe!@5{?^F;$Wk*j;PRhDg4g6NgsAG6 zP~Ao5KK&i!m~oL=2ZS;(vFiMN=*42Ms1pgkRcjqekC^3c0p(PyJ`E)abpEXsAFmOml{SiwS13u)JD9K+!l8x7Vo){L_cQc=_&?eem-?pYMUN z`wiQDivec$_Q^z?&YfN5z6@yP?pcsO>=YV1WYB! z34ed$hfqwQ>&!BMvE|wT4>g3ic=zG|&vTBcJp>XI>nW~PTsW-EDkc*b0a!uG?^D5I zvgdPZ&H`hpZy8rVUIzBneR7nO2;n7+1Hg_77(m*4DlLT>E8OfbPiN-^l6NCZRb?OX zsnk9L2fB%&6ht)37(77NYEBPs$-w2j^3~RR&%mO6A9TUH zbYzLoe10gqk+X4(k2pa4`If^UQO_!z^Lq&;vTSi%?ZMtX=VW z5j5qyewzx-9$It`BcL9~m{)s&=F63`Pk5z)sWxd_5^Sp=Ajg5vCf*cKB@WGfyxY1i zM(}Nr|AavwU%q>JiUsKPx4WN(*uC(4Qzes6g-DKL)i7TGrQhk5L8$=|oU(_igpMzsf_3lfdt}bG z0gSb;Fwt7RS!N3t)7I#y%8b1^vFQBLkD(^ZkX}FC!({_(6*}^jf2~=phXfw40tt<= z{5I%^ZAQXxH+n^-b2z@^mjFA}Q z$~|_#zIaAup(=yUh1GqSCm78|<{(fTISif)iWb8^6g}4qovZHy zE!YYeqYMzhxG<3f7G<#>6b4@CXqpIb!%ACEqJ2ZTGwi*D7SmWXlU zs2FPp+OPb;G=V`ED20m@L>VA2{Io8_+pk(T`l}*{f`v;pN;!Xc!5TR@lGb}tE+SehkMKdeB zL0>;8GfXzWMX({3U0SHJ4l^Ef2*4z(5p|SDc7w7(nv=y2&ebM>jNJ1Qh=&0T6ORUX z2SJwGa0)d4X5F&TcIgQj)P;*=H82ZpIfOwQNUa5$z>6uwwwg8x=HB4V<{>BxZyLyf z%6e5}?{_ys+=4QUvp~(^2Jrl{y7iNgAt3sN7t`JpRszKyOidtw zS?jk3#>IK;f~lm27X7yuf5z@PqeV2jl0iypSMviZu^g5vly3rK*~H%d5g2f+FoG{j z+9JTJn3Zg^F(4hr1Fa^qxhZBUL(#@{na@1}uD`^BehYS;S0Y{Vr$-oxQQn|O4q$@r zSzFmM&0=Aua8rE&>0;=*p#8DpcS?ro)wZSt%h}t(=y<@u)ENr~YY~Ia%Su>30tXdA z-fww~aVrFQMIHJ7`}z*|D9ZsRI0ZAZKKmrL=Mna%oQ7@x$ z*|?WYyqm;v;*#cMH?f^!$9BBtdB6t84Qyk}Hpbk|-rc*q*?afd``ka^{(j#%^Nk?6 zm*;oNd)}|S?`hv?BxcIbx|mV|-mNG9;|FBaBBEc!j=^_cVD$iXeC9Ax+}LU*-RU<2 zCNTb+1JrZ2)4DqhM(4W0JqPW;h_hA@5Z>%%Gaj}389YJPWepLNgR2GT9rmMlp5uOc zK_9oI;BW0y_5SJHH3_4K$5D zAyuXhWsozxn+B7&I^GLL8EAZH(Eh{Fk9_%t7)@@!O)F+^H^Fuo3ZjQr_mvj1HE6%t zVA`@T1DTZTq6?oB5e%^p)CAIsl8Nzln<)CQ8J##?#ye{up;?)0th_wX0 z8~rJ0i@Wv=3(!Qn1L~1-&$x-X%lZ#tr2V*dK9LvbD%P_T_AbXIrB6WT z8EqiIKgxJ3Z|*eoo39Ok$AXL$nA;bS0=+4Emsb*`316NrU?!)6j86j+Qy0rrw+$_B zz7c!{R0!e=i|fAzOK|WufJVr>l&2*7@J5?IWw`=1AWZ~liB_?0OJ}lhr9d3Zg;xgH zuy@~<05H(Gx*Fy>A9rh)o@UB9!x(&l@rQg+gBV4CJ?SLq>T_WBFkd>Y4rU5iZ1deOX5*I`qJmF{e)NPnFn&WzZ-iv_ zigBTz3tHp70S&o#Po3xS>j_FFjz|V=`ANx88LU5Ecvx?b0l=g%VK+6ld?wLiFIWj{ zxxTA75yFIP!&E1ks#!7J#>eV0B0#x_)6F9dHy(kW;IXkGYzMu2Us&8pMj;cF%#Z+m zngdKGFBWFTmEZDOZG&Ul@Q$7dpQvR<0#(60zdNJSn?(!E>V3PRmk(Wf?(JXoL-XD6 z0%v{9SVFm(j6rfB@w2;~GwdTKDp_X6Yd7PkS>xM@vWuCJ@u20NfEnxf47A37eBoyh zjKm~pRu|xc&R7FfSr_K3JsP+$fn5ZRCb-16{t9dj#3#!Vh{h8j0e61P$~FrGwH9%y zk)g)dIB^|-19UcPUIyTqK8z&ES;ve#a`7%!jKF^{(|QPGe4y(blm(eN-fw)1D_3EB zx3gHmz5evZ{nJ6}z*!j9yh@o`*B*{!u?kMsL4I~G_pz_jv*`oe^>BV?N1E~fv@qxm zDDgSr%K{t*4Ym!fw_SQn%S&?sc0gMj>wYUjM(m}rPO&t;_v)wxs_~;~c{sEz^HA+n zGS&e-1>6<_j_FgnM8FtyidtYAjUUG_3Ir{%mltTKhROs7#tT0EEd*N;aO6Z8xbdbz zJCnv=%*HpV_8ic7!p0(-Grq5wL1Nj^p!=xcqhcqhBrt}V&%y)R_GlZ(8*5;Tbb==R z_&{t}ES}Z8zL%?up@H= z!CIabEUng6_Aa`r8U(C};P%p&MPG$T0~KoJXd8uvEnylY=rOf5o5m~%I<0*|5^ag@i@2}vV{RF5VC6yS0niIq%W-={-fFq6TEHHsK z0Z;N2nNxqRaBCYZmqd`ZYG~Zj2@qgrI&_x(7Sk7RV!%$QHqkh!jO`8!kYVq3$Xw8{ zoh}A!*Y6TV`2K^bqUi1ID<3{8h8nNgFCG##xTj&w3e~2^LS_aIXOC9yli=ed^+cX>Kq@#=1)0Cwu{H7BmqHmIk8r6bR@Q;m zvoT!8lsh=A*jw}(qjBpSRp0=x1^BTeFi{2G+(=E0@4k~`1tC!V*+eY5t|b;nSP~d; zTJsVr*T|dgO|>lYB;$=_NFcSpO_Xrs_jjV7hgkjByY9`OjPZxc9`nz?d;y#bECm5p z5qy0o=w4ySR=6IZ-T0=X^dYEv1KoWL_jT)nW)pNSj&TO~u$|^90xtOu#4$+2APYzx zwe^sVnI#N!8?)=rMTq^ji|86?vzw>&a7E_pT)^ z7>&80RPfFF&)in3wcb`(O(aH|>KWtzczyg^)3B=T?ISi>zzJf1NR(l?2;pe+0%RG1s9pP^due}~KC>AmO6hfISg zjCy&PZN?}q;~PuwIN*+<9pjpTJB%`H4()jVCs6l-Voo(w`tR|{O=FH#26H_{p5@Wo z+DCb*rC5hpQx@PR@YW=XUq%p^(}+!YL!F0y`n_{*LXpzHEl;2xDqBa zgT&Yfa#(XFaz#td)kT;SqO6ugu@w5)DGImFF?9qCGaInrNHXLcov?B?L2tUhdqXC7 zG$gD*{0Ms$jtb3!DiVU&U;U?gH}x&0P5#@ZKwT@x@uar4n4wRs7jg4*yYe z+zpLAZi*4)ayXz51k+p`z%cVRhI8$c&|DzEe62)pfATvpu7j}vIzbblO4dSK#V#a=&iNC!f4KBf&o#xg6S22r4Iy% z5PtKqa40Mof!)XN22)YXS2w|Qi4mhnyO7<=gwxj#UoA6Uo@4jP|q>xnf?y2w^JTKFjuuI1>h zR?%%DO3fLUXuh^jzXz>hMuu%7nyd%nkNvN|{ZTpH9H;AHY4la~?()-B)A?&aHbp4j!#>mti{6t*R;p@-AX#B~;*2!rMYz}Uy z-@j-cVmiCfqFsXtJ5ll3^E}2;*uS`5>Um)bQ#FW>M!^*Zyx{;TewOqTj(8pHT0d^TxNiZZsv1dBmmvQ!UUL*CT!56%#kj{ zpGz&v6|!;W+tv7@tT+t&sLoC7fmygOh^8C??1e%&wMNQlEDsGiX0l8;IU*jsOD+;*Na&3}iQ`A4Jbu zj877TB1ja`Z9SgPoratS9IFR6jr_>GC?jN8(O>~Opf?zB(soXz(&wU;n*vG zqZchIwac})hCT8&=x)R_e z-H3hV-71?_KkEf z?{2&dcKJcDE58F1R2hE?0KMhBX@jydxjwnKxy;L*9U43i=|Vw6;aD5Akt9!Ole%r@ zv=^i3876XJyK`>c7yap*OcS8dctO7#+P{DMP4Eqn=L8G{wlNJhhX4B?9(!?mmg(cQ z4~)(^$_$~B1S({?0F_MWUe?FC>#y+e1W-hFICwILtQER=^Cw_iagGsA2AS_VV6cPL1Wc5k{opZCc~3rsOPR+9xdCS{n1zoBpu=nZ@?FKr(@+m{OM5`WdDY-k zpz_57%p()klcHuoumn>;3?G+k2Qkh7FX9jtTqB_d7c9(xKL;-);AI8TdPR)1%Rws# zC5EuulV_G9#SpG^)omG8}@zq(46M z0#sV)N%N(YUFO|i^`TL>ONKR30OP#n2Fj&i$W-p>iS2 zbD){)r%U@m3|dlg3d_a#RB^~#zsa3G11ZQ1Vl6k;6?U+RnK-FwwgVP!LiZh#$!yM> zF5mn%dss+F+>8ph)(X5oA6=}`RMmx zzL%dU*|QF%lnXLm`fyvppq+d4w6?06MvS@hkoG$8-JogSNLO((ghk(Ym}XEZD`Wx$ ztS|+Dv%aYsuW^jp#mGlbt%@V>UT@LqOi(=Lnly;CV z6YyN75|<3HO?K?EfU_f*NQG8Y7J3e1Y4gY6^n=H-7$kuNjN|Nl9v52+(rT7DdIE5P z=rK(vwaVNQ9jNmV{kK<`%n4uf5_v)dca~h8Ti62W&yK*xBG76wel&Gv9T4M5KX2n> zQO%=v6_f^^#)zu}b`MN}&pDet*U_YG4(u(9VT{`3NRw+ZJX`% zZy6gZD@nZ%?H~wXR?)u=Ih+pFCP<&CtJV>s5gKM2f{^|ocl;&v+km^TYbPvLzn<2@}TVm z#T{ioV)8TPwe3R#V$K%R*5u@|Rz|_bLU-Ep2x8^E!gOrKgS`i&nu3bbTT4b1Hg;;#q48qi2&t; z=#1&PJoWf;VB7wdN|-J^#LZQD^EyCG@i7*Rpe13Zu8PS6>>Vi@5^eW>$gbi%#PxNB~_4EVr;H^Yj>SW1Uremw?FH&k<6Wv9t71FPw9&4(@7AjrY}@>vI@rGX zAjStW3ff#&Au5APYbw(aXxLhn30|T^o{S<_YUOthhh}d1SZI1jR7?v3m?dy zsmb1Ry~o>S`k07rqmo3gphx|d62O@xTT#zN?*MT_W&?s=@)tUh4fbglvx!FvN{nA+ zHZvnmkInNcCqaA|FeWP?_ItJxM~|JQ4;X*a0?Ao`UKLbAFzcDANx7wBWMR*PatFx7 z27VyZ(?FW^O4;z*vx36>Iz`}of`HdjD#?eAkH@uigs z4cVb_SeTT7p1k7a)XC78V`;``h(O_ybh3cO3NVEL*MD93!9%*D+oB@VJOVTYvY8fB zu|qpZSJ3g^iHkegka|HeS6>H@V6y`l(ZYBz-!pX0Fo@~s{-}r<=-WYq@4rN6MuLD| z-ftx_k+VQ(=Q!^M42odTf#LIDnzk%7panF(WAnu`Iuz~MPQSl)XSY@I;@%DT6Cr;7?c?g`DcpLEu(%^j90CJXQhnSg1u`CLsN zeK6qybAal&Gb$#mqVZ`=moepI~!eMrpU%x4qaseixv%(T{O{%-yT zrorWNzP{TNmP3udJbM2T<1bhphvqMTS8p5HrM1R_r&9zO6}~eOP0;Q1STu8(B`P=r z@zHBwj7@iI71OP#ip~dmMKD|RjJ;nxc=H}60T5IH_NNyg>UDo(B8J7|*I$-d^++>s zykz_*X()8CC)z9p<26lN5VYtXFxHd%*XU3gqMaa~XFf2@0gQzp-MtGcZ%VlcIt41G zLl4dwA8%O#RnX4Ecv%xm&^~_->>LACmC$F-K;fDMUw_Y3MX9$!w)0Z{b=zaBxr0Cb z&Al>b@{2F^LuVxc$$tCNuD>KYSL6g0aehc_;C<}kqh-U4q8+ph`toH9vzCduGj+^} zW&=;nOJMIYu`2*7H`CjYCdQUorl%ko!uQOT=Vio5vtQJJCV3B_D;wrdNsE-Tsy278r01-MRt`4{eWWM&6sv`uW_qafpV)3Z*0G16t-q6(kQ+I^-r4mvNG z?0&yv{qhqsJ-UxcC>R;d62vI!?fOYfj)B@iz<| zkiTZ3+hS#O2VXS24x_H1J=6@t=+5J}JtBFLm^)5)n&S*Fs5MC;2~5t>-nx%ofb^PT zgy_=FnB_HyKmPu^b4&zaScJ(-mj3D4AAWR!?f_~N_?p^c&O#|G*$;j^+)_)=&w1$u zl31HnypOCth)oeAx!0PG+@dCQ#K_A}S0RmjQ1>-~N z!(lKV3()Oy%vRpKap)2sZ-C1Oj8$B4=|!zj2A`?N`4SyqQy27`T7oB(UoeqFnLC279~nJv4tA-Z z_biTZEpwVMYhPU?MO0#>>I1aVMyy z!BfZ>W|qlep2Whq2GkQT69bh@Pfv=@MT*^<4mns47Gl@h@{<`BZGO)ZxRu3p2ZCfA z4xzXH^2OwW4}W5Vp;+epnKZkrX~@!K+I8hs47o0#9W)PeY5`5sN#$W+&a9OQXdgDTmHzBfnoO9 zoW18O<*;?SNlQ&E;N{F2fXA$WKEKOB|Ii!jabPBx{|o)QnVL*Bpg4&e--=@xTz|Bg zhcXw!DrA!904wc$Fp&UVI`4rf*pBx~oLd%?~{CoHq< z0UHy1nr!LwpX&oUTc*HS7pKh;S5$fP4e*l0fGP;RCyVRaPr(G{vy%>N7TdBpn`vr; zqS1q%R|;BM=0S&faUhVl2{mj=5b`bC9 z&S)ESV4TG(XcZAq`o+^%@9F>eABKBiNNY#|k17k>qiHJ#S(tuWa?n!aR>9wXm>GR% zU|~{gb=F zH_-LEJFb(_q4anjgI*Be@Se%-pP7m}r-|grj)~LyIy0>;cx0Co$NI`C!ucf96^dbH zJ(Mvy%$=_718W2wV}ObdPUYuB@v#@*ylrj0Dxe?g437i4c7%D#L(McJPO8C z^9|^!gaGI!ZvPG(kTG8bc^oOWUFM-a9fdsg<9o)w{%ao9)clW+KM{4!`0s(G81qhS zIR%VOO)!|?qt`_mTW8JydR2#vcsAfILb&ml+NQw{jhodIj0ddow@un3dFl+vH{?9{ z+?H4713V1~8v%frvXaZMGB{9PH->BL4zeMCV+Qi@pQ@X((9pq ziK05zvqfnWv6XYN5uk3<*kF8M`iUM|hu*y>`NLObsv4ps+4u&Uo#w%!^z4RYS_|07 zxWOFIjbDh3fmF9cd+&l+!HwSlx5}_i*NzcAdi70)R69Df4bU*CO+(DHm@XEOYanL| zA|%yje1bUCKSwh!z=MH-H89Qj5-)lI;J#RKbCbqjF0w@YwCdPZrWcG!Yj!0D6`)W4 zid!t>BPrMiEX@iA#2eo%2PK0?B{{`v^3h(XTrI#o=}Uk0w2!|(PGT!HdxvW;^7<5g9Af}%$q$j&`=iAnF5}}N6GYOzvrSB zu0IW)Oy3*^0SRHw6QT`4RQ}ha&)hX2W8q)?1~Lv5#I{p8MJMWQN}vh~=2y|_!not< z$v&}deRXY1H5xVB$)wDJ=dx@Cxu)iD`KmcLV+PjHx>@jX248UX?_z1`>WUny;Lf=g z&*>P9=FA_35QJEEuGd4Q+m-{>ksP$>9^|kT0ET?(dG83ip{5Frpo{FchW@#r@!6bb|^;UEo4!9H;g|B#z0Gl&5aAm z0@Z>5-A*@uGFnUsa!om**xQ3EWg2`nuvv6FL=MOd19VOG-8u!qtOpuIfb-=9TU%6` zg((1J?6HEEvwJj#@91J>p4$PI$#xy^hra^nzA}!1+2+82ruj z8X}`0CLw)kPk)zw1vXyJV?s`LMlSH$bWcegSj8gu zc?Y^MZUNB^iIp<>`ES^4j87aA12|WB@m^jRXbKy)e*OGN>sfUa-P|53bKneQ8OYVc zw14l%V9al)dK{|2c#+6ed)76_wJ@$8leVF^?%7{?fcH4drTB2ieT;TZG1#?7x@bM! z3bw?9f&v+!08NKhx^Ek(4U|~T^=0ncyvLq;G#4rm)R`p;_y@0pG1qM%hN1=pBr*8A zxnpMj;%TmcYpcj!ZG>Rl0ZoRiwsskVTR`4@8GpR%CDSB|`(s5mw0OjtA%dmYdieox zp5JgP0DKx0metA)e)TAriSW@9==Cz@I=RGb<6}(d$iI-=x4T_V1kbR7<=bKxAb3Z? z2*hlpS9R42lmV8wSMEvXv7mcVWDyr;B7wdG5=F!?Hi9(c4Ghs!I!rT^b6hvDw_=1z z(3%X!+l>Z-(MvpZGL4KewpXWUQrjnjF!~I4LYAwt3#lP<@iJyhO#ld!eK7@wDLsqbs z6P}X7Q0vX&ehmr}x48;Z$3UYm8HjigAAR9BUUEN!G0FjbLC0~&9JqL_mj89To*LA?g9;*+Y{ZM_G%k+XEE8h48BnEU!)#Yz- zU0Y!}8nm64H^Ic;%b=eJ%~aDLF1nf5&2WNkMc+Jc#agT88g_toc3giFVm*>+%IvKg zTLKS@bTROgpm(0^W3vzpxDx!=|K+8JOam_#G#}6BhY7C95=;l}b$^cLvCtD3?glM< z`Y<@at7b5ITy9?R5Y-vDf&J(EYX zCY(?hcHo_F(h4kqm_Y$UeJr-tayFy&0kC~~b*S4xbPHhoy%VHo^0tBbTR)dRxvH7Q zOb{TQnWrI)4a{=nFOM`vm-9ht;Sx{WtK=|=Y#utDA12<8jo;>}Mif?m%12>8IP0d+XRc+bXbzbiT) z_)mZRP%jT+FDUNfb<_O7fIXjmiy=5iZ&!mhAKZwqg#7q1kBe5@ndd-?i1E;TQB0m( zE9$5SW^Jsf3_B2(B@&z!SxkR18(AB5prasw0n(1K((EyD*#eu0jL=G}Xa^yZL>0cm z+yM$igc;wV$1-#t$T`jII|MotK0D`sPhR@_wG-?cHwL-JkyK$4%7#hoQ3cy?9*Ptn8uF`f^%am%44)JV35`nZ^h=5<|ww5&Rur@uiFTjpr_Rn z(Bx&N@gZwG7~uRgNQZ1{4(9V9n}LZGy2khmAb%)9k?g=tS#`%Em~2S_0Ze9=V13rw zUI-ITXfxw>I#RQb%hCWbfNSF{WoEaDbZGRT<`~5SD3=$|qK38uR7zI@iS!RpE&_aG zmC?~Kvfvw%*o-njfFHYjwM_=?%(Rs%`W(3Q z92mVF-@nG>0;)mDp#70-ICDWmfpxpt>2w+zkQCzwe*NY6JQ-`itTF;;@2Lb;farAk z1W@P6!1$oi`gb1mRxiTJu)f-lMC#K>&l?_t{UJ z^lVNXSb>Ip7xZAz2J?w~)(Jl0jl2z#ttpuO8xk-^mtPyg04Iv3U~pCH=Oro-U!w-f{c!~1=fU#^ug52FL8GZ zalK-!=dK3(Wl-hRhQ{=!uZzqamji^KGY3pL<6~v%!;}E9zmVdvw)Rbdzw_hc;4KcY zWt+os+vbvBWP=~h0|Ph)Mn;%MyiH^Y*wwou!GXo@!l_D8O+K=p=?*l4GTwh`p3Nev zB@BEf5e!&->sP!xV1MU6))>IhuUNLppnG}GYGNZd=uiKf7|1aH|VBWEDnOf!@f z-e!eu4M=Ep_7_xePk`=qQFrJ5rN7OWeWKW_*1woRWZ`Y~cq_&LBf+c}glL}73efYa z`iezsD0IqezZk%efG)k6t8vCa_mFJKWXoOYU<(kGtUwy?aGX4|0hNtm2k4L&*gN-w znK&<68bkBet6=kDSQPf3s&u>Y7J-;d-f^N!J$An5 z5Iw{=bF=>3!#ap*2c$b(m5j0Av(;RG=i=;}WQXU0I>P1B73A@hifuZmj1eON;L zFFh+`O^a3;vA0@4t>?~g8QknJhz}FKD%8+&35OaP!6J5cAjAEMGSK@5#m1)G9e(q! zP9E3?s%2nJtdv3BU;`)})J5cCkPYhKE&y*(fT+S5-pas9a5_p0wpg2*9FoT(-Jc1@ zMGNe`rpooQf&gw1po4i`zzSj%-oD_}_GRaC1YCRp$X)~%CN^*$5A=wz=_{?7X^a`6 z>PWqt%!7wJ+ebD%&!Mg@w~X!Ar*%N^BOl^1Z%5WY3H$NmwpDW*$xe`@ad5X z(oXMy%4c&Ds2c>hU(IofLl92@>>|AAHKT*uil&UOco=3faup6M7*iM6EdqRwaR>w* ztH>AQM1k=Y)!y{mR&2Ml(E)#Wth%K;kOdwwY4xgMbUpFexi5DQ3^Nv{dQ|iK&ksNX zJPJ4;S1!sqCf`x|fi(|Qi(qa!7!S>f2r+NviQJFi^auAcaha|HrnSFk7!lj1Zh^fP z<~IeJGue=DbW+lh z5qi0#$Hu-GpgEK#$4#F)1LX*J)&>e{WiNYyO09mN=^+I*n~VnaquTLBMWH(xymT@hRg(%h|~&T$FQ~Xg$36O#4yu&hWls2D^Frz1vP;H z<`j^gmbMRK8N`Qi{9A8=0|Axm@euF-9xP>sg#!GK`=0~PW2kbz@P;rxuzF_Q$N0ZLv7VPBnDR3I z_~MhtR^@0GKng3P@cc#`??pqbt_G@R1CvHTmjKKMAQ{wTueU)Q7Rz`IkLZ*Ec)|*p zW(SWR*z(G>klqJw^NHu)To!l3{H&t)s%GZaYMoF{f&?14U0FC<9EMqFv9sNP(ozsv1zqG*}3zN8QrqX+p5F z`qn^wAYO;Hy8z<;fG|+G|M{=(mLcy4FwwayBZb|AQYzd6X8`)jL^)T>*J1*{Ln1S) zf|Y@L8kO#yzyl^k3vW7|3V= zt6vXyng{*!h5JmMN$LekP5>Kk1seg4GCs_k?I3~i;?f))gEnD~pzvU>YetNm7hHSL z=!KIu4DFy!eXyDbBt=1G-!$BOdv3c*GTam9@$`Sm_CPNB03WT9OcucBP(8TucC#43 zc~DKLH7ay(Se0qyGP~*HV?B)focd6khI!azOp&t;Blibk$^QT0K7bYE7~3$- zP{#Fgr}D+>*6TEPTm~+k9WnJ%-Y0*Pu+{w^H(Mc>Rz?(~%6Fr%|g3j3A<79GO{ZGdMcl;nJ#z;Zq+^QbgvDJxN#+n0iGT-Z@wi{VsPA@6u&>TQWu|v7zHK=* za&Va|WOQmky~n{qL02F3nyBFqK!85uWU!Spq3H3`gGEe0zF=S`>q0A`0;Md691R5{ zQxu>FY;75^8$Y!`9^3j8=Wwra6wD^3z0ke4AFEFm3opr{T|NuO0ha+R^@`jx+X>}3 zH_;JI4*^votgZB7t1lPF8TBTo``B&9Yj6VhugSMx0b*WCe zRIt2XFCfFTHIb(v5{>^ATQ7z$e>sGK8KGL;~p7oSzIjq48E8xJ!@X@{v zE)Q4&1%T>3IT!1Vv8EdXWhOZXOkf8{u;nuvVBqt`wS!Ap$(i@fqsO~I@gUw`u)R^; ziJ|d%2zhOM>;d~hadacF%zG8n!&7hRi3}JJpbH&<{-=L z-~6^ZbRP!B|A<&L=Xl94pPtC2^Wxb8mc83XAe+Rp7_ zY;-%N+xV0T2hqdhAYd0L6(ph935~gE0|5*Tz%(+ULC9f9)yur(q0WlL2|4KK#9Mb= z{B>fWH--sZD9}CID++kUZT@1!>2ni|B-3VSsA0JvgriW0OvXUy%EZ8Q8?=ILpY#V0 z1`SnLF<*7d&_WLxZ+_-N1=Oj7P}6y-77+bPhxPOPbrA0Zblmv6Pk#wnFT+~;cr1pE ztp-#GqVxGvn851((e&dtVQ_)yXTX^ZW;mGM2GmhJbCqj!Fwf#me8<25-nez~gP+QXH`>F?aIr&TyMqUW zalb$kh_%@WDj{=%;&fH+XJG_vfa~&IqBuk_hco~@f{R#hktuNF>(x572kRBM72~s) zA@@yasx0ioXu|jkbPe^uMADUS!N{ntX9aVUGaz6h{0b9>mx~AOjw-nL6y&vM^ghr5 zFVL0ez>HsM*EK`q{2A*qSMJZdyl1>*&_>X2orOcZZpz&c+7-WF{`vVVxv*~~F zqb4ha6U01bdM1T&l)!pm>u2I?Ixw6r5Pf7OXDSB3oaPF*`1S?&XHo{pn_g}UXQKtwUorrnGBphV@aU$K{ zNq|u&s4FuZ{F67A!P`OUHox-t*)?c?cr@|tzh@%=vP77CA+S{Rq}WT3i^eTvF=RVr z9N#nN!*$ZHz^&hg@)1~4lv~)wOg28Qjki{RPF-a8V_pF4q#+=>2VgS?w0@zv|1)lP z4zHP}DYKYTAJ1(7P7%WC4E2lV3GaF9VX&S(V1|EPP)NJo1}@SOG+PS+^!I}mfEIW) z0XNDkB{PC)^wj37U;6me=Xhl)X==4G`<40C113G7Pbc~svd$|$7_@YHo!TX27 z>NcOA(jb}>^wcp>v}xI@>`laoLE&M5`E9?@_1@4NGU@TBjKN*3<7rJju9#5*Vg|F@ zcBeoIm2q4oSDj*f#3_^#v1+I>$SGhD#~Ne0S;JL2ksbQBhUw-7IfIqK>H}DIz)oi7 zl0F@CSPg8i(^b5AG3X93Zh38^UMCnyU`jW>?8i$Kly7jaI@if)^_~W^mT!QY$bn|j z;(>a?(Z>6_>~g>yTQM&~n-Wccd=Han+c4RCWJ)-DyrabL@;4we=(|*|0bs!c-ffG_ z)K03*E2ges^QBYteSGYDkMX8}6EySjcdZaCjU3Ny=joWST3XZ2F}Zs|T>S_4rUtJ2 zyZ^^GUqJ{?iWoNyP6~-%uJKi5!<{>;zuoq(WJtI-Wp(cThcWpTU-u@j} z%L0oPU_a{>6`bBqZeuKYO+cR@One|B7mQ~JkO$Aa2sKBBj2n<2R>dU7$3kp$i^cee z*<{gIw;%E}@WW9~SdH(EgghB0hX}8mqI=KG>Bx72ju#Bl|GWoax%|6Ih?w~k%+TRo z_K{29lo{bIBDi-~rTgU;2GL>{Zupb08_f1=&N9_1rjE#1-LO61pG!SJ&mNqTDJ~XB z>If)dx{QF_y)D6h`PVZ0w$Uvn`1+wwETs@tpj}s<4%p~T8-yBHUNL%;2?%f!MHN<>|2gJes04W@~uy2%(~VEiB;MkXL1R|QPekDdU_X36nL!Ql+HB&~LO z0jSfWy{&fHD1ae8djLAz_z4-3`_%|T16);xv!}T-Px>;?nJtE&Aq7lWAk>S!YxQgd zFD&3CW6uTehG6O$e-2n}e2*MPkstwcnQ`a^t%HU@RBI-|nJ5~aG}~Z2Mm&*OTn+;A zS8hBdS`$Q#sB8${n$e?T`o~}Y)ctpmo)pGZ0h0kp2PJ>~z*KA4EVO1&u|F6PDnj@n z<|1%_Sl4jW_d zW7?s_1v8J=Kl$G0_d@!|WYD!hMP_woOK7IOs9?JFP$r$@x4kK>Bu{43&Z#%(%bg&r z*at)iZ(t~!7U*1oPcI}>i;>9kwp_d)vgtpcehfnW0L}PP6eBA!;EiWMJOh|x&H&lY zg7XmSE2dy}fXtXYIkI1L#*u}~gX_d3oEy&pv5Elg*-T!5UR*roak}v}S~4Y^mptU^ z0%wx28ul>rhK_*^g3f{fO$R>dfL+mGGpk_wVBmgu8i$&fw|)t|WH#b}R#uGrKc2uG z&J;<`^9BF>8L(v#x8SFHfI4SI%CH70tnt`85m#6?2gE0hizS30|EO3VTa0lp3fIf4pmMHTW&805$=Lx3o9T?*B zfQ}xG6Le=uPdo&hmlsIDZC`uE9Nwb&-yVBv*~XyUmYy+0i(<0qKQ*hYz(db!)l({|mis1{(kX diff --git a/apps/mobile/assets/images/splash-icon.png b/apps/mobile/assets/images/splash-icon.png deleted file mode 100644 index eba6b3419ddc7d23980f101286da23f7d56ff9b0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 20881 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 { - api.cache(true); - return { - presets: [['babel-preset-expo', { unstable_transformImportMeta: true }]], - }; -}; diff --git a/apps/mobile/eas.json b/apps/mobile/eas.json deleted file mode 100644 index f959b91..0000000 --- a/apps/mobile/eas.json +++ /dev/null @@ -1,40 +0,0 @@ -{ - "cli": { - "version": ">= 15.0.15", - "appVersionSource": "remote" - }, - "build": { - "development": { - "developmentClient": true, - "distribution": "internal", - "env": { - "SENTRY_DISABLE_AUTO_UPLOAD": "true" - } - }, - "preview": { - "distribution": "internal", - "env": { - "SENTRY_DISABLE_AUTO_UPLOAD": "true" - } - }, - "production": { - "autoIncrement": true, - "android": { - "buildType": "app-bundle" - }, - "env": { - "SENTRY_DISABLE_AUTO_UPLOAD": "true" - } - } - }, - "submit": { - "production": { - "android": { - "serviceAccountKeyPath": "./google-service-account.json", - "track": "internal", - "releaseStatus": "draft", - "changesNotSentForReview": false - } - } - } -} diff --git a/apps/mobile/entrypoint.ts b/apps/mobile/entrypoint.ts deleted file mode 100644 index f1f2a24..0000000 --- a/apps/mobile/entrypoint.ts +++ /dev/null @@ -1,3 +0,0 @@ -import App from './App'; - -export default App; diff --git a/apps/mobile/fontawesome.css b/apps/mobile/fontawesome.css deleted file mode 100644 index 251d40a..0000000 --- a/apps/mobile/fontawesome.css +++ /dev/null @@ -1,8320 +0,0 @@ -/*! - * Font Awesome Free 6.7.2 by @fontawesome - https://fontawesome.com - * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) - * Copyright 2024 Fonticons, Inc. - */ -.fa { - font-family: var(--fa-style-family, "FontAwesome"); - font-weight: var(--fa-style, 900); -} - -.fas, -.far, -.fab, -.fa-solid, -.fa-regular, -.fa-brands, -.fa { - -moz-osx-font-smoothing: grayscale; - -webkit-font-smoothing: antialiased; - display: var(--fa-display, inline-block); - font-style: normal; - font-variant: normal; - line-height: 1; - text-rendering: auto; -} - -.fas::before, -.far::before, -.fab::before, -.fa-solid::before, -.fa-regular::before, -.fa-brands::before, -.fa::before { - content: var(--fa); -} - -.fa-classic, -.fas, -.fa-solid, -.far, -.fa-regular { - font-family: "FontAwesome"; -} - -.fa-brands, -.fab { - font-family: "FontAwesome"; -} - -.fa-1x { - font-size: 1em; -} - -.fa-2x { - font-size: 2em; -} - -.fa-3x { - font-size: 3em; -} - -.fa-4x { - font-size: 4em; -} - -.fa-5x { - font-size: 5em; -} - -.fa-6x { - font-size: 6em; -} - -.fa-7x { - font-size: 7em; -} - -.fa-8x { - font-size: 8em; -} - -.fa-9x { - font-size: 9em; -} - -.fa-10x { - font-size: 10em; -} - -.fa-2xs { - font-size: 0.625em; - line-height: 0.1em; - vertical-align: 0.225em; -} - -.fa-xs { - font-size: 0.75em; - line-height: 0.08333em; - vertical-align: 0.125em; -} - -.fa-sm { - font-size: 0.875em; - line-height: 0.07143em; - vertical-align: 0.05357em; -} - -.fa-lg { - font-size: 1.25em; - line-height: 0.05em; - vertical-align: -0.075em; -} - -.fa-xl { - font-size: 1.5em; - line-height: 0.04167em; - vertical-align: -0.125em; -} - -.fa-2xl { - font-size: 2em; - line-height: 0.03125em; - vertical-align: -0.1875em; -} - -.fa-fw { - text-align: center; - width: 1.25em; -} - -.fa-ul { - list-style-type: none; - margin-left: var(--fa-li-margin, 2.5em); - padding-left: 0; -} -.fa-ul > li { - position: relative; -} - -.fa-li { - left: calc(-1 * var(--fa-li-width, 2em)); - position: absolute; - text-align: center; - width: var(--fa-li-width, 2em); - line-height: inherit; -} - -.fa-border { - border-color: var(--fa-border-color, #eee); - border-radius: var(--fa-border-radius, 0.1em); - border-style: var(--fa-border-style, solid); - border-width: var(--fa-border-width, 0.08em); - padding: var(--fa-border-padding, 0.2em 0.25em 0.15em); -} - -.fa-pull-left { - float: left; - margin-right: var(--fa-pull-margin, 0.3em); -} - -.fa-pull-right { - float: right; - margin-left: var(--fa-pull-margin, 0.3em); -} - -.fa-beat { - animation-name: fa-beat; - animation-delay: var(--fa-animation-delay, 0s); - animation-direction: var(--fa-animation-direction, normal); - animation-duration: var(--fa-animation-duration, 1s); - animation-iteration-count: var(--fa-animation-iteration-count, infinite); - animation-timing-function: var(--fa-animation-timing, ease-in-out); -} - -.fa-bounce { - animation-name: fa-bounce; - animation-delay: var(--fa-animation-delay, 0s); - animation-direction: var(--fa-animation-direction, normal); - animation-duration: var(--fa-animation-duration, 1s); - animation-iteration-count: var(--fa-animation-iteration-count, infinite); - animation-timing-function: var( - --fa-animation-timing, - cubic-bezier(0.28, 0.84, 0.42, 1) - ); -} - -.fa-fade { - animation-name: fa-fade; - animation-delay: var(--fa-animation-delay, 0s); - animation-direction: var(--fa-animation-direction, normal); - animation-duration: var(--fa-animation-duration, 1s); - animation-iteration-count: var(--fa-animation-iteration-count, infinite); - animation-timing-function: var( - --fa-animation-timing, - cubic-bezier(0.4, 0, 0.6, 1) - ); -} - -.fa-beat-fade { - animation-name: fa-beat-fade; - animation-delay: var(--fa-animation-delay, 0s); - animation-direction: var(--fa-animation-direction, normal); - animation-duration: var(--fa-animation-duration, 1s); - animation-iteration-count: var(--fa-animation-iteration-count, infinite); - animation-timing-function: var( - --fa-animation-timing, - cubic-bezier(0.4, 0, 0.6, 1) - ); -} - -.fa-flip { - animation-name: fa-flip; - animation-delay: var(--fa-animation-delay, 0s); - animation-direction: var(--fa-animation-direction, normal); - animation-duration: var(--fa-animation-duration, 1s); - animation-iteration-count: var(--fa-animation-iteration-count, infinite); - animation-timing-function: var(--fa-animation-timing, ease-in-out); -} - -.fa-shake { - animation-name: fa-shake; - animation-delay: var(--fa-animation-delay, 0s); - animation-direction: var(--fa-animation-direction, normal); - animation-duration: var(--fa-animation-duration, 1s); - animation-iteration-count: var(--fa-animation-iteration-count, infinite); - animation-timing-function: var(--fa-animation-timing, linear); -} - -.fa-spin { - animation-name: fa-spin; - animation-delay: var(--fa-animation-delay, 0s); - animation-direction: var(--fa-animation-direction, normal); - animation-duration: var(--fa-animation-duration, 2s); - animation-iteration-count: var(--fa-animation-iteration-count, infinite); - animation-timing-function: var(--fa-animation-timing, linear); -} - -.fa-spin-reverse { - --fa-animation-direction: reverse; -} - -.fa-pulse, -.fa-spin-pulse { - animation-name: fa-spin; - animation-direction: var(--fa-animation-direction, normal); - animation-duration: var(--fa-animation-duration, 1s); - animation-iteration-count: var(--fa-animation-iteration-count, infinite); - animation-timing-function: var(--fa-animation-timing, steps(8)); -} - -@media (prefers-reduced-motion: reduce) { - .fa-beat, - .fa-bounce, - .fa-fade, - .fa-beat-fade, - .fa-flip, - .fa-pulse, - .fa-shake, - .fa-spin, - .fa-spin-pulse { - animation-delay: -1ms; - animation-duration: 1ms; - animation-iteration-count: 1; - transition-delay: 0s; - transition-duration: 0s; - } -} - -@keyframes fa-beat { - 0%, - 90% { - transform: scale(1); - } - 45% { - transform: scale(var(--fa-beat-scale, 1.25)); - } -} - -@keyframes fa-bounce { - 0% { - transform: scale(1, 1) translateY(0); - } - 10% { - transform: scale( - var(--fa-bounce-start-scale-x, 1.1), - var(--fa-bounce-start-scale-y, 0.9) - ) - translateY(0); - } - 30% { - transform: scale( - var(--fa-bounce-jump-scale-x, 0.9), - var(--fa-bounce-jump-scale-y, 1.1) - ) - translateY(var(--fa-bounce-height, -0.5em)); - } - 50% { - transform: scale( - var(--fa-bounce-land-scale-x, 1.05), - var(--fa-bounce-land-scale-y, 0.95) - ) - translateY(0); - } - 57% { - transform: scale(1, 1) translateY(var(--fa-bounce-rebound, -0.125em)); - } - 64% { - transform: scale(1, 1) translateY(0); - } - 100% { - transform: scale(1, 1) translateY(0); - } -} - -@keyframes fa-fade { - 50% { - opacity: var(--fa-fade-opacity, 0.4); - } -} - -@keyframes fa-beat-fade { - 0%, - 100% { - opacity: var(--fa-beat-fade-opacity, 0.4); - transform: scale(1); - } - 50% { - opacity: 1; - transform: scale(var(--fa-beat-fade-scale, 1.125)); - } -} - -@keyframes fa-flip { - 50% { - transform: rotate3d( - var(--fa-flip-x, 0), - var(--fa-flip-y, 1), - var(--fa-flip-z, 0), - var(--fa-flip-angle, -180deg) - ); - } -} - -@keyframes fa-shake { - 0% { - transform: rotate(-15deg); - } - 4% { - transform: rotate(15deg); - } - 8%, - 24% { - transform: rotate(-18deg); - } - 12%, - 28% { - transform: rotate(18deg); - } - 16% { - transform: rotate(-22deg); - } - 20% { - transform: rotate(22deg); - } - 32% { - transform: rotate(-12deg); - } - 36% { - transform: rotate(12deg); - } - 40%, - 100% { - transform: rotate(0deg); - } -} - -@keyframes fa-spin { - 0% { - transform: rotate(0deg); - } - 100% { - transform: rotate(360deg); - } -} - -.fa-rotate-90 { - transform: rotate(90deg); -} - -.fa-rotate-180 { - transform: rotate(180deg); -} - -.fa-rotate-270 { - transform: rotate(270deg); -} - -.fa-flip-horizontal { - transform: scale(-1, 1); -} - -.fa-flip-vertical { - transform: scale(1, -1); -} - -.fa-flip-both, -.fa-flip-horizontal.fa-flip-vertical { - transform: scale(-1, -1); -} - -.fa-rotate-by { - transform: rotate(var(--fa-rotate-angle, 0)); -} - -.fa-stack { - display: inline-block; - height: 2em; - line-height: 2em; - position: relative; - vertical-align: middle; - width: 2.5em; -} - -.fa-stack-1x, -.fa-stack-2x { - left: 0; - position: absolute; - text-align: center; - width: 100%; - z-index: var(--fa-stack-z-index, auto); -} - -.fa-stack-1x { - line-height: inherit; -} - -.fa-stack-2x { - font-size: 2em; -} - -.fa-inverse { - color: var(--fa-inverse, #fff); -} - -/* Font Awesome uses the Unicode Private Use Area (PUA) to ensure screen - readers do not read off random characters that represent icons */ - -.fa-0 { - --fa: "\30"; -} - -.fa-1 { - --fa: "\31"; -} - -.fa-2 { - --fa: "\32"; -} - -.fa-3 { - --fa: "\33"; -} - -.fa-4 { - --fa: "\34"; -} - -.fa-5 { - --fa: "\35"; -} - -.fa-6 { - --fa: "\36"; -} - -.fa-7 { - --fa: "\37"; -} - -.fa-8 { - --fa: "\38"; -} - -.fa-9 { - --fa: "\39"; -} - -.fa-fill-drip { - --fa: "\f576"; -} - -.fa-arrows-to-circle { - --fa: "\e4bd"; -} - -.fa-circle-chevron-right { - --fa: "\f138"; -} - -.fa-chevron-circle-right { - --fa: "\f138"; -} - -.fa-at { - --fa: "\40"; -} - -.fa-trash-can { - --fa: "\f2ed"; -} - -.fa-trash-alt { - --fa: "\f2ed"; -} - -.fa-text-height { - --fa: "\f034"; -} - -.fa-user-xmark { - --fa: "\f235"; -} - -.fa-user-times { - --fa: "\f235"; -} - -.fa-stethoscope { - --fa: "\f0f1"; -} - -.fa-message { - --fa: "\f27a"; -} - -.fa-comment-alt { - --fa: "\f27a"; -} - -.fa-info { - --fa: "\f129"; -} - -.fa-down-left-and-up-right-to-center { - --fa: "\f422"; -} - -.fa-compress-alt { - --fa: "\f422"; -} - -.fa-explosion { - --fa: "\e4e9"; -} - -.fa-file-lines { - --fa: "\f15c"; -} - -.fa-file-alt { - --fa: "\f15c"; -} - -.fa-file-text { - --fa: "\f15c"; -} - -.fa-wave-square { - --fa: "\f83e"; -} - -.fa-ring { - --fa: "\f70b"; -} - -.fa-building-un { - --fa: "\e4d9"; -} - -.fa-dice-three { - --fa: "\f527"; -} - -.fa-calendar-days { - --fa: "\f073"; -} - -.fa-calendar-alt { - --fa: "\f073"; -} - -.fa-anchor-circle-check { - --fa: "\e4aa"; -} - -.fa-building-circle-arrow-right { - --fa: "\e4d1"; -} - -.fa-volleyball { - --fa: "\f45f"; -} - -.fa-volleyball-ball { - --fa: "\f45f"; -} - -.fa-arrows-up-to-line { - --fa: "\e4c2"; -} - -.fa-sort-down { - --fa: "\f0dd"; -} - -.fa-sort-desc { - --fa: "\f0dd"; -} - -.fa-circle-minus { - --fa: "\f056"; -} - -.fa-minus-circle { - --fa: "\f056"; -} - -.fa-door-open { - --fa: "\f52b"; -} - -.fa-right-from-bracket { - --fa: "\f2f5"; -} - -.fa-sign-out-alt { - --fa: "\f2f5"; -} - -.fa-atom { - --fa: "\f5d2"; -} - -.fa-soap { - --fa: "\e06e"; -} - -.fa-icons { - --fa: "\f86d"; -} - -.fa-heart-music-camera-bolt { - --fa: "\f86d"; -} - -.fa-microphone-lines-slash { - --fa: "\f539"; -} - -.fa-microphone-alt-slash { - --fa: "\f539"; -} - -.fa-bridge-circle-check { - --fa: "\e4c9"; -} - -.fa-pump-medical { - --fa: "\e06a"; -} - -.fa-fingerprint { - --fa: "\f577"; -} - -.fa-hand-point-right { - --fa: "\f0a4"; -} - -.fa-magnifying-glass-location { - --fa: "\f689"; -} - -.fa-search-location { - --fa: "\f689"; -} - -.fa-forward-step { - --fa: "\f051"; -} - -.fa-step-forward { - --fa: "\f051"; -} - -.fa-face-smile-beam { - --fa: "\f5b8"; -} - -.fa-smile-beam { - --fa: "\f5b8"; -} - -.fa-flag-checkered { - --fa: "\f11e"; -} - -.fa-football { - --fa: "\f44e"; -} - -.fa-football-ball { - --fa: "\f44e"; -} - -.fa-school-circle-exclamation { - --fa: "\e56c"; -} - -.fa-crop { - --fa: "\f125"; -} - -.fa-angles-down { - --fa: "\f103"; -} - -.fa-angle-double-down { - --fa: "\f103"; -} - -.fa-users-rectangle { - --fa: "\e594"; -} - -.fa-people-roof { - --fa: "\e537"; -} - -.fa-people-line { - --fa: "\e534"; -} - -.fa-beer-mug-empty { - --fa: "\f0fc"; -} - -.fa-beer { - --fa: "\f0fc"; -} - -.fa-diagram-predecessor { - --fa: "\e477"; -} - -.fa-arrow-up-long { - --fa: "\f176"; -} - -.fa-long-arrow-up { - --fa: "\f176"; -} - -.fa-fire-flame-simple { - --fa: "\f46a"; -} - -.fa-burn { - --fa: "\f46a"; -} - -.fa-person { - --fa: "\f183"; -} - -.fa-male { - --fa: "\f183"; -} - -.fa-laptop { - --fa: "\f109"; -} - -.fa-file-csv { - --fa: "\f6dd"; -} - -.fa-menorah { - --fa: "\f676"; -} - -.fa-truck-plane { - --fa: "\e58f"; -} - -.fa-record-vinyl { - --fa: "\f8d9"; -} - -.fa-face-grin-stars { - --fa: "\f587"; -} - -.fa-grin-stars { - --fa: "\f587"; -} - -.fa-bong { - --fa: "\f55c"; -} - -.fa-spaghetti-monster-flying { - --fa: "\f67b"; -} - -.fa-pastafarianism { - --fa: "\f67b"; -} - -.fa-arrow-down-up-across-line { - --fa: "\e4af"; -} - -.fa-spoon { - --fa: "\f2e5"; -} - -.fa-utensil-spoon { - --fa: "\f2e5"; -} - -.fa-jar-wheat { - --fa: "\e517"; -} - -.fa-envelopes-bulk { - --fa: "\f674"; -} - -.fa-mail-bulk { - --fa: "\f674"; -} - -.fa-file-circle-exclamation { - --fa: "\e4eb"; -} - -.fa-circle-h { - --fa: "\f47e"; -} - -.fa-hospital-symbol { - --fa: "\f47e"; -} - -.fa-pager { - --fa: "\f815"; -} - -.fa-address-book { - --fa: "\f2b9"; -} - -.fa-contact-book { - --fa: "\f2b9"; -} - -.fa-strikethrough { - --fa: "\f0cc"; -} - -.fa-k { - --fa: "\4b"; -} - -.fa-landmark-flag { - --fa: "\e51c"; -} - -.fa-pencil { - --fa: "\f303"; -} - -.fa-pencil-alt { - --fa: "\f303"; -} - -.fa-backward { - --fa: "\f04a"; -} - -.fa-caret-right { - --fa: "\f0da"; -} - -.fa-comments { - --fa: "\f086"; -} - -.fa-paste { - --fa: "\f0ea"; -} - -.fa-file-clipboard { - --fa: "\f0ea"; -} - -.fa-code-pull-request { - --fa: "\e13c"; -} - -.fa-clipboard-list { - --fa: "\f46d"; -} - -.fa-truck-ramp-box { - --fa: "\f4de"; -} - -.fa-truck-loading { - --fa: "\f4de"; -} - -.fa-user-check { - --fa: "\f4fc"; -} - -.fa-vial-virus { - --fa: "\e597"; -} - -.fa-sheet-plastic { - --fa: "\e571"; -} - -.fa-blog { - --fa: "\f781"; -} - -.fa-user-ninja { - --fa: "\f504"; -} - -.fa-person-arrow-up-from-line { - --fa: "\e539"; -} - -.fa-scroll-torah { - --fa: "\f6a0"; -} - -.fa-torah { - --fa: "\f6a0"; -} - -.fa-broom-ball { - --fa: "\f458"; -} - -.fa-quidditch { - --fa: "\f458"; -} - -.fa-quidditch-broom-ball { - --fa: "\f458"; -} - -.fa-toggle-off { - --fa: "\f204"; -} - -.fa-box-archive { - --fa: "\f187"; -} - -.fa-archive { - --fa: "\f187"; -} - -.fa-person-drowning { - --fa: "\e545"; -} - -.fa-arrow-down-9-1 { - --fa: "\f886"; -} - -.fa-sort-numeric-desc { - --fa: "\f886"; -} - -.fa-sort-numeric-down-alt { - --fa: "\f886"; -} - -.fa-face-grin-tongue-squint { - --fa: "\f58a"; -} - -.fa-grin-tongue-squint { - --fa: "\f58a"; -} - -.fa-spray-can { - --fa: "\f5bd"; -} - -.fa-truck-monster { - --fa: "\f63b"; -} - -.fa-w { - --fa: "\57"; -} - -.fa-earth-africa { - --fa: "\f57c"; -} - -.fa-globe-africa { - --fa: "\f57c"; -} - -.fa-rainbow { - --fa: "\f75b"; -} - -.fa-circle-notch { - --fa: "\f1ce"; -} - -.fa-tablet-screen-button { - --fa: "\f3fa"; -} - -.fa-tablet-alt { - --fa: "\f3fa"; -} - -.fa-paw { - --fa: "\f1b0"; -} - -.fa-cloud { - --fa: "\f0c2"; -} - -.fa-trowel-bricks { - --fa: "\e58a"; -} - -.fa-face-flushed { - --fa: "\f579"; -} - -.fa-flushed { - --fa: "\f579"; -} - -.fa-hospital-user { - --fa: "\f80d"; -} - -.fa-tent-arrow-left-right { - --fa: "\e57f"; -} - -.fa-gavel { - --fa: "\f0e3"; -} - -.fa-legal { - --fa: "\f0e3"; -} - -.fa-binoculars { - --fa: "\f1e5"; -} - -.fa-microphone-slash { - --fa: "\f131"; -} - -.fa-box-tissue { - --fa: "\e05b"; -} - -.fa-motorcycle { - --fa: "\f21c"; -} - -.fa-bell-concierge { - --fa: "\f562"; -} - -.fa-concierge-bell { - --fa: "\f562"; -} - -.fa-pen-ruler { - --fa: "\f5ae"; -} - -.fa-pencil-ruler { - --fa: "\f5ae"; -} - -.fa-people-arrows { - --fa: "\e068"; -} - -.fa-people-arrows-left-right { - --fa: "\e068"; -} - -.fa-mars-and-venus-burst { - --fa: "\e523"; -} - -.fa-square-caret-right { - --fa: "\f152"; -} - -.fa-caret-square-right { - --fa: "\f152"; -} - -.fa-scissors { - --fa: "\f0c4"; -} - -.fa-cut { - --fa: "\f0c4"; -} - -.fa-sun-plant-wilt { - --fa: "\e57a"; -} - -.fa-toilets-portable { - --fa: "\e584"; -} - -.fa-hockey-puck { - --fa: "\f453"; -} - -.fa-table { - --fa: "\f0ce"; -} - -.fa-magnifying-glass-arrow-right { - --fa: "\e521"; -} - -.fa-tachograph-digital { - --fa: "\f566"; -} - -.fa-digital-tachograph { - --fa: "\f566"; -} - -.fa-users-slash { - --fa: "\e073"; -} - -.fa-clover { - --fa: "\e139"; -} - -.fa-reply { - --fa: "\f3e5"; -} - -.fa-mail-reply { - --fa: "\f3e5"; -} - -.fa-star-and-crescent { - --fa: "\f699"; -} - -.fa-house-fire { - --fa: "\e50c"; -} - -.fa-square-minus { - --fa: "\f146"; -} - -.fa-minus-square { - --fa: "\f146"; -} - -.fa-helicopter { - --fa: "\f533"; -} - -.fa-compass { - --fa: "\f14e"; -} - -.fa-square-caret-down { - --fa: "\f150"; -} - -.fa-caret-square-down { - --fa: "\f150"; -} - -.fa-file-circle-question { - --fa: "\e4ef"; -} - -.fa-laptop-code { - --fa: "\f5fc"; -} - -.fa-swatchbook { - --fa: "\f5c3"; -} - -.fa-prescription-bottle { - --fa: "\f485"; -} - -.fa-bars { - --fa: "\f0c9"; -} - -.fa-navicon { - --fa: "\f0c9"; -} - -.fa-people-group { - --fa: "\e533"; -} - -.fa-hourglass-end { - --fa: "\f253"; -} - -.fa-hourglass-3 { - --fa: "\f253"; -} - -.fa-heart-crack { - --fa: "\f7a9"; -} - -.fa-heart-broken { - --fa: "\f7a9"; -} - -.fa-square-up-right { - --fa: "\f360"; -} - -.fa-external-link-square-alt { - --fa: "\f360"; -} - -.fa-face-kiss-beam { - --fa: "\f597"; -} - -.fa-kiss-beam { - --fa: "\f597"; -} - -.fa-film { - --fa: "\f008"; -} - -.fa-ruler-horizontal { - --fa: "\f547"; -} - -.fa-people-robbery { - --fa: "\e536"; -} - -.fa-lightbulb { - --fa: "\f0eb"; -} - -.fa-caret-left { - --fa: "\f0d9"; -} - -.fa-circle-exclamation { - --fa: "\f06a"; -} - -.fa-exclamation-circle { - --fa: "\f06a"; -} - -.fa-school-circle-xmark { - --fa: "\e56d"; -} - -.fa-arrow-right-from-bracket { - --fa: "\f08b"; -} - -.fa-sign-out { - --fa: "\f08b"; -} - -.fa-circle-chevron-down { - --fa: "\f13a"; -} - -.fa-chevron-circle-down { - --fa: "\f13a"; -} - -.fa-unlock-keyhole { - --fa: "\f13e"; -} - -.fa-unlock-alt { - --fa: "\f13e"; -} - -.fa-cloud-showers-heavy { - --fa: "\f740"; -} - -.fa-headphones-simple { - --fa: "\f58f"; -} - -.fa-headphones-alt { - --fa: "\f58f"; -} - -.fa-sitemap { - --fa: "\f0e8"; -} - -.fa-circle-dollar-to-slot { - --fa: "\f4b9"; -} - -.fa-donate { - --fa: "\f4b9"; -} - -.fa-memory { - --fa: "\f538"; -} - -.fa-road-spikes { - --fa: "\e568"; -} - -.fa-fire-burner { - --fa: "\e4f1"; -} - -.fa-flag { - --fa: "\f024"; -} - -.fa-hanukiah { - --fa: "\f6e6"; -} - -.fa-feather { - --fa: "\f52d"; -} - -.fa-volume-low { - --fa: "\f027"; -} - -.fa-volume-down { - --fa: "\f027"; -} - -.fa-comment-slash { - --fa: "\f4b3"; -} - -.fa-cloud-sun-rain { - --fa: "\f743"; -} - -.fa-compress { - --fa: "\f066"; -} - -.fa-wheat-awn { - --fa: "\e2cd"; -} - -.fa-wheat-alt { - --fa: "\e2cd"; -} - -.fa-ankh { - --fa: "\f644"; -} - -.fa-hands-holding-child { - --fa: "\e4fa"; -} - -.fa-asterisk { - --fa: "\2a"; -} - -.fa-square-check { - --fa: "\f14a"; -} - -.fa-check-square { - --fa: "\f14a"; -} - -.fa-peseta-sign { - --fa: "\e221"; -} - -.fa-heading { - --fa: "\f1dc"; -} - -.fa-header { - --fa: "\f1dc"; -} - -.fa-ghost { - --fa: "\f6e2"; -} - -.fa-list { - --fa: "\f03a"; -} - -.fa-list-squares { - --fa: "\f03a"; -} - -.fa-square-phone-flip { - --fa: "\f87b"; -} - -.fa-phone-square-alt { - --fa: "\f87b"; -} - -.fa-cart-plus { - --fa: "\f217"; -} - -.fa-gamepad { - --fa: "\f11b"; -} - -.fa-circle-dot { - --fa: "\f192"; -} - -.fa-dot-circle { - --fa: "\f192"; -} - -.fa-face-dizzy { - --fa: "\f567"; -} - -.fa-dizzy { - --fa: "\f567"; -} - -.fa-egg { - --fa: "\f7fb"; -} - -.fa-house-medical-circle-xmark { - --fa: "\e513"; -} - -.fa-campground { - --fa: "\f6bb"; -} - -.fa-folder-plus { - --fa: "\f65e"; -} - -.fa-futbol { - --fa: "\f1e3"; -} - -.fa-futbol-ball { - --fa: "\f1e3"; -} - -.fa-soccer-ball { - --fa: "\f1e3"; -} - -.fa-paintbrush { - --fa: "\f1fc"; -} - -.fa-paint-brush { - --fa: "\f1fc"; -} - -.fa-lock { - --fa: "\f023"; -} - -.fa-gas-pump { - --fa: "\f52f"; -} - -.fa-hot-tub-person { - --fa: "\f593"; -} - -.fa-hot-tub { - --fa: "\f593"; -} - -.fa-map-location { - --fa: "\f59f"; -} - -.fa-map-marked { - --fa: "\f59f"; -} - -.fa-house-flood-water { - --fa: "\e50e"; -} - -.fa-tree { - --fa: "\f1bb"; -} - -.fa-bridge-lock { - --fa: "\e4cc"; -} - -.fa-sack-dollar { - --fa: "\f81d"; -} - -.fa-pen-to-square { - --fa: "\f044"; -} - -.fa-edit { - --fa: "\f044"; -} - -.fa-car-side { - --fa: "\f5e4"; -} - -.fa-share-nodes { - --fa: "\f1e0"; -} - -.fa-share-alt { - --fa: "\f1e0"; -} - -.fa-heart-circle-minus { - --fa: "\e4ff"; -} - -.fa-hourglass-half { - --fa: "\f252"; -} - -.fa-hourglass-2 { - --fa: "\f252"; -} - -.fa-microscope { - --fa: "\f610"; -} - -.fa-sink { - --fa: "\e06d"; -} - -.fa-bag-shopping { - --fa: "\f290"; -} - -.fa-shopping-bag { - --fa: "\f290"; -} - -.fa-arrow-down-z-a { - --fa: "\f881"; -} - -.fa-sort-alpha-desc { - --fa: "\f881"; -} - -.fa-sort-alpha-down-alt { - --fa: "\f881"; -} - -.fa-mitten { - --fa: "\f7b5"; -} - -.fa-person-rays { - --fa: "\e54d"; -} - -.fa-users { - --fa: "\f0c0"; -} - -.fa-eye-slash { - --fa: "\f070"; -} - -.fa-flask-vial { - --fa: "\e4f3"; -} - -.fa-hand { - --fa: "\f256"; -} - -.fa-hand-paper { - --fa: "\f256"; -} - -.fa-om { - --fa: "\f679"; -} - -.fa-worm { - --fa: "\e599"; -} - -.fa-house-circle-xmark { - --fa: "\e50b"; -} - -.fa-plug { - --fa: "\f1e6"; -} - -.fa-chevron-up { - --fa: "\f077"; -} - -.fa-hand-spock { - --fa: "\f259"; -} - -.fa-stopwatch { - --fa: "\f2f2"; -} - -.fa-face-kiss { - --fa: "\f596"; -} - -.fa-kiss { - --fa: "\f596"; -} - -.fa-bridge-circle-xmark { - --fa: "\e4cb"; -} - -.fa-face-grin-tongue { - --fa: "\f589"; -} - -.fa-grin-tongue { - --fa: "\f589"; -} - -.fa-chess-bishop { - --fa: "\f43a"; -} - -.fa-face-grin-wink { - --fa: "\f58c"; -} - -.fa-grin-wink { - --fa: "\f58c"; -} - -.fa-ear-deaf { - --fa: "\f2a4"; -} - -.fa-deaf { - --fa: "\f2a4"; -} - -.fa-deafness { - --fa: "\f2a4"; -} - -.fa-hard-of-hearing { - --fa: "\f2a4"; -} - -.fa-road-circle-check { - --fa: "\e564"; -} - -.fa-dice-five { - --fa: "\f523"; -} - -.fa-square-rss { - --fa: "\f143"; -} - -.fa-rss-square { - --fa: "\f143"; -} - -.fa-land-mine-on { - --fa: "\e51b"; -} - -.fa-i-cursor { - --fa: "\f246"; -} - -.fa-stamp { - --fa: "\f5bf"; -} - -.fa-stairs { - --fa: "\e289"; -} - -.fa-i { - --fa: "\49"; -} - -.fa-hryvnia-sign { - --fa: "\f6f2"; -} - -.fa-hryvnia { - --fa: "\f6f2"; -} - -.fa-pills { - --fa: "\f484"; -} - -.fa-face-grin-wide { - --fa: "\f581"; -} - -.fa-grin-alt { - --fa: "\f581"; -} - -.fa-tooth { - --fa: "\f5c9"; -} - -.fa-v { - --fa: "\56"; -} - -.fa-bangladeshi-taka-sign { - --fa: "\e2e6"; -} - -.fa-bicycle { - --fa: "\f206"; -} - -.fa-staff-snake { - --fa: "\e579"; -} - -.fa-rod-asclepius { - --fa: "\e579"; -} - -.fa-rod-snake { - --fa: "\e579"; -} - -.fa-staff-aesculapius { - --fa: "\e579"; -} - -.fa-head-side-cough-slash { - --fa: "\e062"; -} - -.fa-truck-medical { - --fa: "\f0f9"; -} - -.fa-ambulance { - --fa: "\f0f9"; -} - -.fa-wheat-awn-circle-exclamation { - --fa: "\e598"; -} - -.fa-snowman { - --fa: "\f7d0"; -} - -.fa-mortar-pestle { - --fa: "\f5a7"; -} - -.fa-road-barrier { - --fa: "\e562"; -} - -.fa-school { - --fa: "\f549"; -} - -.fa-igloo { - --fa: "\f7ae"; -} - -.fa-joint { - --fa: "\f595"; -} - -.fa-angle-right { - --fa: "\f105"; -} - -.fa-horse { - --fa: "\f6f0"; -} - -.fa-q { - --fa: "\51"; -} - -.fa-g { - --fa: "\47"; -} - -.fa-notes-medical { - --fa: "\f481"; -} - -.fa-temperature-half { - --fa: "\f2c9"; -} - -.fa-temperature-2 { - --fa: "\f2c9"; -} - -.fa-thermometer-2 { - --fa: "\f2c9"; -} - -.fa-thermometer-half { - --fa: "\f2c9"; -} - -.fa-dong-sign { - --fa: "\e169"; -} - -.fa-capsules { - --fa: "\f46b"; -} - -.fa-poo-storm { - --fa: "\f75a"; -} - -.fa-poo-bolt { - --fa: "\f75a"; -} - -.fa-face-frown-open { - --fa: "\f57a"; -} - -.fa-frown-open { - --fa: "\f57a"; -} - -.fa-hand-point-up { - --fa: "\f0a6"; -} - -.fa-money-bill { - --fa: "\f0d6"; -} - -.fa-bookmark { - --fa: "\f02e"; -} - -.fa-align-justify { - --fa: "\f039"; -} - -.fa-umbrella-beach { - --fa: "\f5ca"; -} - -.fa-helmet-un { - --fa: "\e503"; -} - -.fa-bullseye { - --fa: "\f140"; -} - -.fa-bacon { - --fa: "\f7e5"; -} - -.fa-hand-point-down { - --fa: "\f0a7"; -} - -.fa-arrow-up-from-bracket { - --fa: "\e09a"; -} - -.fa-folder { - --fa: "\f07b"; -} - -.fa-folder-blank { - --fa: "\f07b"; -} - -.fa-file-waveform { - --fa: "\f478"; -} - -.fa-file-medical-alt { - --fa: "\f478"; -} - -.fa-radiation { - --fa: "\f7b9"; -} - -.fa-chart-simple { - --fa: "\e473"; -} - -.fa-mars-stroke { - --fa: "\f229"; -} - -.fa-vial { - --fa: "\f492"; -} - -.fa-gauge { - --fa: "\f624"; -} - -.fa-dashboard { - --fa: "\f624"; -} - -.fa-gauge-med { - --fa: "\f624"; -} - -.fa-tachometer-alt-average { - --fa: "\f624"; -} - -.fa-wand-magic-sparkles { - --fa: "\e2ca"; -} - -.fa-magic-wand-sparkles { - --fa: "\e2ca"; -} - -.fa-e { - --fa: "\45"; -} - -.fa-pen-clip { - --fa: "\f305"; -} - -.fa-pen-alt { - --fa: "\f305"; -} - -.fa-bridge-circle-exclamation { - --fa: "\e4ca"; -} - -.fa-user { - --fa: "\f007"; -} - -.fa-school-circle-check { - --fa: "\e56b"; -} - -.fa-dumpster { - --fa: "\f793"; -} - -.fa-van-shuttle { - --fa: "\f5b6"; -} - -.fa-shuttle-van { - --fa: "\f5b6"; -} - -.fa-building-user { - --fa: "\e4da"; -} - -.fa-square-caret-left { - --fa: "\f191"; -} - -.fa-caret-square-left { - --fa: "\f191"; -} - -.fa-highlighter { - --fa: "\f591"; -} - -.fa-key { - --fa: "\f084"; -} - -.fa-bullhorn { - --fa: "\f0a1"; -} - -.fa-globe { - --fa: "\f0ac"; -} - -.fa-synagogue { - --fa: "\f69b"; -} - -.fa-person-half-dress { - --fa: "\e548"; -} - -.fa-road-bridge { - --fa: "\e563"; -} - -.fa-location-arrow { - --fa: "\f124"; -} - -.fa-c { - --fa: "\43"; -} - -.fa-tablet-button { - --fa: "\f10a"; -} - -.fa-building-lock { - --fa: "\e4d6"; -} - -.fa-pizza-slice { - --fa: "\f818"; -} - -.fa-money-bill-wave { - --fa: "\f53a"; -} - -.fa-chart-area { - --fa: "\f1fe"; -} - -.fa-area-chart { - --fa: "\f1fe"; -} - -.fa-house-flag { - --fa: "\e50d"; -} - -.fa-person-circle-minus { - --fa: "\e540"; -} - -.fa-ban { - --fa: "\f05e"; -} - -.fa-cancel { - --fa: "\f05e"; -} - -.fa-camera-rotate { - --fa: "\e0d8"; -} - -.fa-spray-can-sparkles { - --fa: "\f5d0"; -} - -.fa-air-freshener { - --fa: "\f5d0"; -} - -.fa-star { - --fa: "\f005"; -} - -.fa-repeat { - --fa: "\f363"; -} - -.fa-cross { - --fa: "\f654"; -} - -.fa-box { - --fa: "\f466"; -} - -.fa-venus-mars { - --fa: "\f228"; -} - -.fa-arrow-pointer { - --fa: "\f245"; -} - -.fa-mouse-pointer { - --fa: "\f245"; -} - -.fa-maximize { - --fa: "\f31e"; -} - -.fa-expand-arrows-alt { - --fa: "\f31e"; -} - -.fa-charging-station { - --fa: "\f5e7"; -} - -.fa-shapes { - --fa: "\f61f"; -} - -.fa-triangle-circle-square { - --fa: "\f61f"; -} - -.fa-shuffle { - --fa: "\f074"; -} - -.fa-random { - --fa: "\f074"; -} - -.fa-person-running { - --fa: "\f70c"; -} - -.fa-running { - --fa: "\f70c"; -} - -.fa-mobile-retro { - --fa: "\e527"; -} - -.fa-grip-lines-vertical { - --fa: "\f7a5"; -} - -.fa-spider { - --fa: "\f717"; -} - -.fa-hands-bound { - --fa: "\e4f9"; -} - -.fa-file-invoice-dollar { - --fa: "\f571"; -} - -.fa-plane-circle-exclamation { - --fa: "\e556"; -} - -.fa-x-ray { - --fa: "\f497"; -} - -.fa-spell-check { - --fa: "\f891"; -} - -.fa-slash { - --fa: "\f715"; -} - -.fa-computer-mouse { - --fa: "\f8cc"; -} - -.fa-mouse { - --fa: "\f8cc"; -} - -.fa-arrow-right-to-bracket { - --fa: "\f090"; -} - -.fa-sign-in { - --fa: "\f090"; -} - -.fa-shop-slash { - --fa: "\e070"; -} - -.fa-store-alt-slash { - --fa: "\e070"; -} - -.fa-server { - --fa: "\f233"; -} - -.fa-virus-covid-slash { - --fa: "\e4a9"; -} - -.fa-shop-lock { - --fa: "\e4a5"; -} - -.fa-hourglass-start { - --fa: "\f251"; -} - -.fa-hourglass-1 { - --fa: "\f251"; -} - -.fa-blender-phone { - --fa: "\f6b6"; -} - -.fa-building-wheat { - --fa: "\e4db"; -} - -.fa-person-breastfeeding { - --fa: "\e53a"; -} - -.fa-right-to-bracket { - --fa: "\f2f6"; -} - -.fa-sign-in-alt { - --fa: "\f2f6"; -} - -.fa-venus { - --fa: "\f221"; -} - -.fa-passport { - --fa: "\f5ab"; -} - -.fa-thumbtack-slash { - --fa: "\e68f"; -} - -.fa-thumb-tack-slash { - --fa: "\e68f"; -} - -.fa-heart-pulse { - --fa: "\f21e"; -} - -.fa-heartbeat { - --fa: "\f21e"; -} - -.fa-people-carry-box { - --fa: "\f4ce"; -} - -.fa-people-carry { - --fa: "\f4ce"; -} - -.fa-temperature-high { - --fa: "\f769"; -} - -.fa-microchip { - --fa: "\f2db"; -} - -.fa-crown { - --fa: "\f521"; -} - -.fa-weight-hanging { - --fa: "\f5cd"; -} - -.fa-xmarks-lines { - --fa: "\e59a"; -} - -.fa-file-prescription { - --fa: "\f572"; -} - -.fa-weight-scale { - --fa: "\f496"; -} - -.fa-weight { - --fa: "\f496"; -} - -.fa-user-group { - --fa: "\f500"; -} - -.fa-user-friends { - --fa: "\f500"; -} - -.fa-arrow-up-a-z { - --fa: "\f15e"; -} - -.fa-sort-alpha-up { - --fa: "\f15e"; -} - -.fa-chess-knight { - --fa: "\f441"; -} - -.fa-face-laugh-squint { - --fa: "\f59b"; -} - -.fa-laugh-squint { - --fa: "\f59b"; -} - -.fa-wheelchair { - --fa: "\f193"; -} - -.fa-circle-arrow-up { - --fa: "\f0aa"; -} - -.fa-arrow-circle-up { - --fa: "\f0aa"; -} - -.fa-toggle-on { - --fa: "\f205"; -} - -.fa-person-walking { - --fa: "\f554"; -} - -.fa-walking { - --fa: "\f554"; -} - -.fa-l { - --fa: "\4c"; -} - -.fa-fire { - --fa: "\f06d"; -} - -.fa-bed-pulse { - --fa: "\f487"; -} - -.fa-procedures { - --fa: "\f487"; -} - -.fa-shuttle-space { - --fa: "\f197"; -} - -.fa-space-shuttle { - --fa: "\f197"; -} - -.fa-face-laugh { - --fa: "\f599"; -} - -.fa-laugh { - --fa: "\f599"; -} - -.fa-folder-open { - --fa: "\f07c"; -} - -.fa-heart-circle-plus { - --fa: "\e500"; -} - -.fa-code-fork { - --fa: "\e13b"; -} - -.fa-city { - --fa: "\f64f"; -} - -.fa-microphone-lines { - --fa: "\f3c9"; -} - -.fa-microphone-alt { - --fa: "\f3c9"; -} - -.fa-pepper-hot { - --fa: "\f816"; -} - -.fa-unlock { - --fa: "\f09c"; -} - -.fa-colon-sign { - --fa: "\e140"; -} - -.fa-headset { - --fa: "\f590"; -} - -.fa-store-slash { - --fa: "\e071"; -} - -.fa-road-circle-xmark { - --fa: "\e566"; -} - -.fa-user-minus { - --fa: "\f503"; -} - -.fa-mars-stroke-up { - --fa: "\f22a"; -} - -.fa-mars-stroke-v { - --fa: "\f22a"; -} - -.fa-champagne-glasses { - --fa: "\f79f"; -} - -.fa-glass-cheers { - --fa: "\f79f"; -} - -.fa-clipboard { - --fa: "\f328"; -} - -.fa-house-circle-exclamation { - --fa: "\e50a"; -} - -.fa-file-arrow-up { - --fa: "\f574"; -} - -.fa-file-upload { - --fa: "\f574"; -} - -.fa-wifi { - --fa: "\f1eb"; -} - -.fa-wifi-3 { - --fa: "\f1eb"; -} - -.fa-wifi-strong { - --fa: "\f1eb"; -} - -.fa-bath { - --fa: "\f2cd"; -} - -.fa-bathtub { - --fa: "\f2cd"; -} - -.fa-underline { - --fa: "\f0cd"; -} - -.fa-user-pen { - --fa: "\f4ff"; -} - -.fa-user-edit { - --fa: "\f4ff"; -} - -.fa-signature { - --fa: "\f5b7"; -} - -.fa-stroopwafel { - --fa: "\f551"; -} - -.fa-bold { - --fa: "\f032"; -} - -.fa-anchor-lock { - --fa: "\e4ad"; -} - -.fa-building-ngo { - --fa: "\e4d7"; -} - -.fa-manat-sign { - --fa: "\e1d5"; -} - -.fa-not-equal { - --fa: "\f53e"; -} - -.fa-border-top-left { - --fa: "\f853"; -} - -.fa-border-style { - --fa: "\f853"; -} - -.fa-map-location-dot { - --fa: "\f5a0"; -} - -.fa-map-marked-alt { - --fa: "\f5a0"; -} - -.fa-jedi { - --fa: "\f669"; -} - -.fa-square-poll-vertical { - --fa: "\f681"; -} - -.fa-poll { - --fa: "\f681"; -} - -.fa-mug-hot { - --fa: "\f7b6"; -} - -.fa-car-battery { - --fa: "\f5df"; -} - -.fa-battery-car { - --fa: "\f5df"; -} - -.fa-gift { - --fa: "\f06b"; -} - -.fa-dice-two { - --fa: "\f528"; -} - -.fa-chess-queen { - --fa: "\f445"; -} - -.fa-glasses { - --fa: "\f530"; -} - -.fa-chess-board { - --fa: "\f43c"; -} - -.fa-building-circle-check { - --fa: "\e4d2"; -} - -.fa-person-chalkboard { - --fa: "\e53d"; -} - -.fa-mars-stroke-right { - --fa: "\f22b"; -} - -.fa-mars-stroke-h { - --fa: "\f22b"; -} - -.fa-hand-back-fist { - --fa: "\f255"; -} - -.fa-hand-rock { - --fa: "\f255"; -} - -.fa-square-caret-up { - --fa: "\f151"; -} - -.fa-caret-square-up { - --fa: "\f151"; -} - -.fa-cloud-showers-water { - --fa: "\e4e4"; -} - -.fa-chart-bar { - --fa: "\f080"; -} - -.fa-bar-chart { - --fa: "\f080"; -} - -.fa-hands-bubbles { - --fa: "\e05e"; -} - -.fa-hands-wash { - --fa: "\e05e"; -} - -.fa-less-than-equal { - --fa: "\f537"; -} - -.fa-train { - --fa: "\f238"; -} - -.fa-eye-low-vision { - --fa: "\f2a8"; -} - -.fa-low-vision { - --fa: "\f2a8"; -} - -.fa-crow { - --fa: "\f520"; -} - -.fa-sailboat { - --fa: "\e445"; -} - -.fa-window-restore { - --fa: "\f2d2"; -} - -.fa-square-plus { - --fa: "\f0fe"; -} - -.fa-plus-square { - --fa: "\f0fe"; -} - -.fa-torii-gate { - --fa: "\f6a1"; -} - -.fa-frog { - --fa: "\f52e"; -} - -.fa-bucket { - --fa: "\e4cf"; -} - -.fa-image { - --fa: "\f03e"; -} - -.fa-microphone { - --fa: "\f130"; -} - -.fa-cow { - --fa: "\f6c8"; -} - -.fa-caret-up { - --fa: "\f0d8"; -} - -.fa-screwdriver { - --fa: "\f54a"; -} - -.fa-folder-closed { - --fa: "\e185"; -} - -.fa-house-tsunami { - --fa: "\e515"; -} - -.fa-square-nfi { - --fa: "\e576"; -} - -.fa-arrow-up-from-ground-water { - --fa: "\e4b5"; -} - -.fa-martini-glass { - --fa: "\f57b"; -} - -.fa-glass-martini-alt { - --fa: "\f57b"; -} - -.fa-square-binary { - --fa: "\e69b"; -} - -.fa-rotate-left { - --fa: "\f2ea"; -} - -.fa-rotate-back { - --fa: "\f2ea"; -} - -.fa-rotate-backward { - --fa: "\f2ea"; -} - -.fa-undo-alt { - --fa: "\f2ea"; -} - -.fa-table-columns { - --fa: "\f0db"; -} - -.fa-columns { - --fa: "\f0db"; -} - -.fa-lemon { - --fa: "\f094"; -} - -.fa-head-side-mask { - --fa: "\e063"; -} - -.fa-handshake { - --fa: "\f2b5"; -} - -.fa-gem { - --fa: "\f3a5"; -} - -.fa-dolly { - --fa: "\f472"; -} - -.fa-dolly-box { - --fa: "\f472"; -} - -.fa-smoking { - --fa: "\f48d"; -} - -.fa-minimize { - --fa: "\f78c"; -} - -.fa-compress-arrows-alt { - --fa: "\f78c"; -} - -.fa-monument { - --fa: "\f5a6"; -} - -.fa-snowplow { - --fa: "\f7d2"; -} - -.fa-angles-right { - --fa: "\f101"; -} - -.fa-angle-double-right { - --fa: "\f101"; -} - -.fa-cannabis { - --fa: "\f55f"; -} - -.fa-circle-play { - --fa: "\f144"; -} - -.fa-play-circle { - --fa: "\f144"; -} - -.fa-tablets { - --fa: "\f490"; -} - -.fa-ethernet { - --fa: "\f796"; -} - -.fa-euro-sign { - --fa: "\f153"; -} - -.fa-eur { - --fa: "\f153"; -} - -.fa-euro { - --fa: "\f153"; -} - -.fa-chair { - --fa: "\f6c0"; -} - -.fa-circle-check { - --fa: "\f058"; -} - -.fa-check-circle { - --fa: "\f058"; -} - -.fa-circle-stop { - --fa: "\f28d"; -} - -.fa-stop-circle { - --fa: "\f28d"; -} - -.fa-compass-drafting { - --fa: "\f568"; -} - -.fa-drafting-compass { - --fa: "\f568"; -} - -.fa-plate-wheat { - --fa: "\e55a"; -} - -.fa-icicles { - --fa: "\f7ad"; -} - -.fa-person-shelter { - --fa: "\e54f"; -} - -.fa-neuter { - --fa: "\f22c"; -} - -.fa-id-badge { - --fa: "\f2c1"; -} - -.fa-marker { - --fa: "\f5a1"; -} - -.fa-face-laugh-beam { - --fa: "\f59a"; -} - -.fa-laugh-beam { - --fa: "\f59a"; -} - -.fa-helicopter-symbol { - --fa: "\e502"; -} - -.fa-universal-access { - --fa: "\f29a"; -} - -.fa-circle-chevron-up { - --fa: "\f139"; -} - -.fa-chevron-circle-up { - --fa: "\f139"; -} - -.fa-lari-sign { - --fa: "\e1c8"; -} - -.fa-volcano { - --fa: "\f770"; -} - -.fa-person-walking-dashed-line-arrow-right { - --fa: "\e553"; -} - -.fa-sterling-sign { - --fa: "\f154"; -} - -.fa-gbp { - --fa: "\f154"; -} - -.fa-pound-sign { - --fa: "\f154"; -} - -.fa-viruses { - --fa: "\e076"; -} - -.fa-square-person-confined { - --fa: "\e577"; -} - -.fa-user-tie { - --fa: "\f508"; -} - -.fa-arrow-down-long { - --fa: "\f175"; -} - -.fa-long-arrow-down { - --fa: "\f175"; -} - -.fa-tent-arrow-down-to-line { - --fa: "\e57e"; -} - -.fa-certificate { - --fa: "\f0a3"; -} - -.fa-reply-all { - --fa: "\f122"; -} - -.fa-mail-reply-all { - --fa: "\f122"; -} - -.fa-suitcase { - --fa: "\f0f2"; -} - -.fa-person-skating { - --fa: "\f7c5"; -} - -.fa-skating { - --fa: "\f7c5"; -} - -.fa-filter-circle-dollar { - --fa: "\f662"; -} - -.fa-funnel-dollar { - --fa: "\f662"; -} - -.fa-camera-retro { - --fa: "\f083"; -} - -.fa-circle-arrow-down { - --fa: "\f0ab"; -} - -.fa-arrow-circle-down { - --fa: "\f0ab"; -} - -.fa-file-import { - --fa: "\f56f"; -} - -.fa-arrow-right-to-file { - --fa: "\f56f"; -} - -.fa-square-arrow-up-right { - --fa: "\f14c"; -} - -.fa-external-link-square { - --fa: "\f14c"; -} - -.fa-box-open { - --fa: "\f49e"; -} - -.fa-scroll { - --fa: "\f70e"; -} - -.fa-spa { - --fa: "\f5bb"; -} - -.fa-location-pin-lock { - --fa: "\e51f"; -} - -.fa-pause { - --fa: "\f04c"; -} - -.fa-hill-avalanche { - --fa: "\e507"; -} - -.fa-temperature-empty { - --fa: "\f2cb"; -} - -.fa-temperature-0 { - --fa: "\f2cb"; -} - -.fa-thermometer-0 { - --fa: "\f2cb"; -} - -.fa-thermometer-empty { - --fa: "\f2cb"; -} - -.fa-bomb { - --fa: "\f1e2"; -} - -.fa-registered { - --fa: "\f25d"; -} - -.fa-address-card { - --fa: "\f2bb"; -} - -.fa-contact-card { - --fa: "\f2bb"; -} - -.fa-vcard { - --fa: "\f2bb"; -} - -.fa-scale-unbalanced-flip { - --fa: "\f516"; -} - -.fa-balance-scale-right { - --fa: "\f516"; -} - -.fa-subscript { - --fa: "\f12c"; -} - -.fa-diamond-turn-right { - --fa: "\f5eb"; -} - -.fa-directions { - --fa: "\f5eb"; -} - -.fa-burst { - --fa: "\e4dc"; -} - -.fa-house-laptop { - --fa: "\e066"; -} - -.fa-laptop-house { - --fa: "\e066"; -} - -.fa-face-tired { - --fa: "\f5c8"; -} - -.fa-tired { - --fa: "\f5c8"; -} - -.fa-money-bills { - --fa: "\e1f3"; -} - -.fa-smog { - --fa: "\f75f"; -} - -.fa-crutch { - --fa: "\f7f7"; -} - -.fa-cloud-arrow-up { - --fa: "\f0ee"; -} - -.fa-cloud-upload { - --fa: "\f0ee"; -} - -.fa-cloud-upload-alt { - --fa: "\f0ee"; -} - -.fa-palette { - --fa: "\f53f"; -} - -.fa-arrows-turn-right { - --fa: "\e4c0"; -} - -.fa-vest { - --fa: "\e085"; -} - -.fa-ferry { - --fa: "\e4ea"; -} - -.fa-arrows-down-to-people { - --fa: "\e4b9"; -} - -.fa-seedling { - --fa: "\f4d8"; -} - -.fa-sprout { - --fa: "\f4d8"; -} - -.fa-left-right { - --fa: "\f337"; -} - -.fa-arrows-alt-h { - --fa: "\f337"; -} - -.fa-boxes-packing { - --fa: "\e4c7"; -} - -.fa-circle-arrow-left { - --fa: "\f0a8"; -} - -.fa-arrow-circle-left { - --fa: "\f0a8"; -} - -.fa-group-arrows-rotate { - --fa: "\e4f6"; -} - -.fa-bowl-food { - --fa: "\e4c6"; -} - -.fa-candy-cane { - --fa: "\f786"; -} - -.fa-arrow-down-wide-short { - --fa: "\f160"; -} - -.fa-sort-amount-asc { - --fa: "\f160"; -} - -.fa-sort-amount-down { - --fa: "\f160"; -} - -.fa-cloud-bolt { - --fa: "\f76c"; -} - -.fa-thunderstorm { - --fa: "\f76c"; -} - -.fa-text-slash { - --fa: "\f87d"; -} - -.fa-remove-format { - --fa: "\f87d"; -} - -.fa-face-smile-wink { - --fa: "\f4da"; -} - -.fa-smile-wink { - --fa: "\f4da"; -} - -.fa-file-word { - --fa: "\f1c2"; -} - -.fa-file-powerpoint { - --fa: "\f1c4"; -} - -.fa-arrows-left-right { - --fa: "\f07e"; -} - -.fa-arrows-h { - --fa: "\f07e"; -} - -.fa-house-lock { - --fa: "\e510"; -} - -.fa-cloud-arrow-down { - --fa: "\f0ed"; -} - -.fa-cloud-download { - --fa: "\f0ed"; -} - -.fa-cloud-download-alt { - --fa: "\f0ed"; -} - -.fa-children { - --fa: "\e4e1"; -} - -.fa-chalkboard { - --fa: "\f51b"; -} - -.fa-blackboard { - --fa: "\f51b"; -} - -.fa-user-large-slash { - --fa: "\f4fa"; -} - -.fa-user-alt-slash { - --fa: "\f4fa"; -} - -.fa-envelope-open { - --fa: "\f2b6"; -} - -.fa-handshake-simple-slash { - --fa: "\e05f"; -} - -.fa-handshake-alt-slash { - --fa: "\e05f"; -} - -.fa-mattress-pillow { - --fa: "\e525"; -} - -.fa-guarani-sign { - --fa: "\e19a"; -} - -.fa-arrows-rotate { - --fa: "\f021"; -} - -.fa-refresh { - --fa: "\f021"; -} - -.fa-sync { - --fa: "\f021"; -} - -.fa-fire-extinguisher { - --fa: "\f134"; -} - -.fa-cruzeiro-sign { - --fa: "\e152"; -} - -.fa-greater-than-equal { - --fa: "\f532"; -} - -.fa-shield-halved { - --fa: "\f3ed"; -} - -.fa-shield-alt { - --fa: "\f3ed"; -} - -.fa-book-atlas { - --fa: "\f558"; -} - -.fa-atlas { - --fa: "\f558"; -} - -.fa-virus { - --fa: "\e074"; -} - -.fa-envelope-circle-check { - --fa: "\e4e8"; -} - -.fa-layer-group { - --fa: "\f5fd"; -} - -.fa-arrows-to-dot { - --fa: "\e4be"; -} - -.fa-archway { - --fa: "\f557"; -} - -.fa-heart-circle-check { - --fa: "\e4fd"; -} - -.fa-house-chimney-crack { - --fa: "\f6f1"; -} - -.fa-house-damage { - --fa: "\f6f1"; -} - -.fa-file-zipper { - --fa: "\f1c6"; -} - -.fa-file-archive { - --fa: "\f1c6"; -} - -.fa-square { - --fa: "\f0c8"; -} - -.fa-martini-glass-empty { - --fa: "\f000"; -} - -.fa-glass-martini { - --fa: "\f000"; -} - -.fa-couch { - --fa: "\f4b8"; -} - -.fa-cedi-sign { - --fa: "\e0df"; -} - -.fa-italic { - --fa: "\f033"; -} - -.fa-table-cells-column-lock { - --fa: "\e678"; -} - -.fa-church { - --fa: "\f51d"; -} - -.fa-comments-dollar { - --fa: "\f653"; -} - -.fa-democrat { - --fa: "\f747"; -} - -.fa-z { - --fa: "\5a"; -} - -.fa-person-skiing { - --fa: "\f7c9"; -} - -.fa-skiing { - --fa: "\f7c9"; -} - -.fa-road-lock { - --fa: "\e567"; -} - -.fa-a { - --fa: "\41"; -} - -.fa-temperature-arrow-down { - --fa: "\e03f"; -} - -.fa-temperature-down { - --fa: "\e03f"; -} - -.fa-feather-pointed { - --fa: "\f56b"; -} - -.fa-feather-alt { - --fa: "\f56b"; -} - -.fa-p { - --fa: "\50"; -} - -.fa-snowflake { - --fa: "\f2dc"; -} - -.fa-newspaper { - --fa: "\f1ea"; -} - -.fa-rectangle-ad { - --fa: "\f641"; -} - -.fa-ad { - --fa: "\f641"; -} - -.fa-circle-arrow-right { - --fa: "\f0a9"; -} - -.fa-arrow-circle-right { - --fa: "\f0a9"; -} - -.fa-filter-circle-xmark { - --fa: "\e17b"; -} - -.fa-locust { - --fa: "\e520"; -} - -.fa-sort { - --fa: "\f0dc"; -} - -.fa-unsorted { - --fa: "\f0dc"; -} - -.fa-list-ol { - --fa: "\f0cb"; -} - -.fa-list-1-2 { - --fa: "\f0cb"; -} - -.fa-list-numeric { - --fa: "\f0cb"; -} - -.fa-person-dress-burst { - --fa: "\e544"; -} - -.fa-money-check-dollar { - --fa: "\f53d"; -} - -.fa-money-check-alt { - --fa: "\f53d"; -} - -.fa-vector-square { - --fa: "\f5cb"; -} - -.fa-bread-slice { - --fa: "\f7ec"; -} - -.fa-language { - --fa: "\f1ab"; -} - -.fa-face-kiss-wink-heart { - --fa: "\f598"; -} - -.fa-kiss-wink-heart { - --fa: "\f598"; -} - -.fa-filter { - --fa: "\f0b0"; -} - -.fa-question { - --fa: "\3f"; -} - -.fa-file-signature { - --fa: "\f573"; -} - -.fa-up-down-left-right { - --fa: "\f0b2"; -} - -.fa-arrows-alt { - --fa: "\f0b2"; -} - -.fa-house-chimney-user { - --fa: "\e065"; -} - -.fa-hand-holding-heart { - --fa: "\f4be"; -} - -.fa-puzzle-piece { - --fa: "\f12e"; -} - -.fa-money-check { - --fa: "\f53c"; -} - -.fa-star-half-stroke { - --fa: "\f5c0"; -} - -.fa-star-half-alt { - --fa: "\f5c0"; -} - -.fa-code { - --fa: "\f121"; -} - -.fa-whiskey-glass { - --fa: "\f7a0"; -} - -.fa-glass-whiskey { - --fa: "\f7a0"; -} - -.fa-building-circle-exclamation { - --fa: "\e4d3"; -} - -.fa-magnifying-glass-chart { - --fa: "\e522"; -} - -.fa-arrow-up-right-from-square { - --fa: "\f08e"; -} - -.fa-external-link { - --fa: "\f08e"; -} - -.fa-cubes-stacked { - --fa: "\e4e6"; -} - -.fa-won-sign { - --fa: "\f159"; -} - -.fa-krw { - --fa: "\f159"; -} - -.fa-won { - --fa: "\f159"; -} - -.fa-virus-covid { - --fa: "\e4a8"; -} - -.fa-austral-sign { - --fa: "\e0a9"; -} - -.fa-f { - --fa: "\46"; -} - -.fa-leaf { - --fa: "\f06c"; -} - -.fa-road { - --fa: "\f018"; -} - -.fa-taxi { - --fa: "\f1ba"; -} - -.fa-cab { - --fa: "\f1ba"; -} - -.fa-person-circle-plus { - --fa: "\e541"; -} - -.fa-chart-pie { - --fa: "\f200"; -} - -.fa-pie-chart { - --fa: "\f200"; -} - -.fa-bolt-lightning { - --fa: "\e0b7"; -} - -.fa-sack-xmark { - --fa: "\e56a"; -} - -.fa-file-excel { - --fa: "\f1c3"; -} - -.fa-file-contract { - --fa: "\f56c"; -} - -.fa-fish-fins { - --fa: "\e4f2"; -} - -.fa-building-flag { - --fa: "\e4d5"; -} - -.fa-face-grin-beam { - --fa: "\f582"; -} - -.fa-grin-beam { - --fa: "\f582"; -} - -.fa-object-ungroup { - --fa: "\f248"; -} - -.fa-poop { - --fa: "\f619"; -} - -.fa-location-pin { - --fa: "\f041"; -} - -.fa-map-marker { - --fa: "\f041"; -} - -.fa-kaaba { - --fa: "\f66b"; -} - -.fa-toilet-paper { - --fa: "\f71e"; -} - -.fa-helmet-safety { - --fa: "\f807"; -} - -.fa-hard-hat { - --fa: "\f807"; -} - -.fa-hat-hard { - --fa: "\f807"; -} - -.fa-eject { - --fa: "\f052"; -} - -.fa-circle-right { - --fa: "\f35a"; -} - -.fa-arrow-alt-circle-right { - --fa: "\f35a"; -} - -.fa-plane-circle-check { - --fa: "\e555"; -} - -.fa-face-rolling-eyes { - --fa: "\f5a5"; -} - -.fa-meh-rolling-eyes { - --fa: "\f5a5"; -} - -.fa-object-group { - --fa: "\f247"; -} - -.fa-chart-line { - --fa: "\f201"; -} - -.fa-line-chart { - --fa: "\f201"; -} - -.fa-mask-ventilator { - --fa: "\e524"; -} - -.fa-arrow-right { - --fa: "\f061"; -} - -.fa-signs-post { - --fa: "\f277"; -} - -.fa-map-signs { - --fa: "\f277"; -} - -.fa-cash-register { - --fa: "\f788"; -} - -.fa-person-circle-question { - --fa: "\e542"; -} - -.fa-h { - --fa: "\48"; -} - -.fa-tarp { - --fa: "\e57b"; -} - -.fa-screwdriver-wrench { - --fa: "\f7d9"; -} - -.fa-tools { - --fa: "\f7d9"; -} - -.fa-arrows-to-eye { - --fa: "\e4bf"; -} - -.fa-plug-circle-bolt { - --fa: "\e55b"; -} - -.fa-heart { - --fa: "\f004"; -} - -.fa-mars-and-venus { - --fa: "\f224"; -} - -.fa-house-user { - --fa: "\e1b0"; -} - -.fa-home-user { - --fa: "\e1b0"; -} - -.fa-dumpster-fire { - --fa: "\f794"; -} - -.fa-house-crack { - --fa: "\e3b1"; -} - -.fa-martini-glass-citrus { - --fa: "\f561"; -} - -.fa-cocktail { - --fa: "\f561"; -} - -.fa-face-surprise { - --fa: "\f5c2"; -} - -.fa-surprise { - --fa: "\f5c2"; -} - -.fa-bottle-water { - --fa: "\e4c5"; -} - -.fa-circle-pause { - --fa: "\f28b"; -} - -.fa-pause-circle { - --fa: "\f28b"; -} - -.fa-toilet-paper-slash { - --fa: "\e072"; -} - -.fa-apple-whole { - --fa: "\f5d1"; -} - -.fa-apple-alt { - --fa: "\f5d1"; -} - -.fa-kitchen-set { - --fa: "\e51a"; -} - -.fa-r { - --fa: "\52"; -} - -.fa-temperature-quarter { - --fa: "\f2ca"; -} - -.fa-temperature-1 { - --fa: "\f2ca"; -} - -.fa-thermometer-1 { - --fa: "\f2ca"; -} - -.fa-thermometer-quarter { - --fa: "\f2ca"; -} - -.fa-cube { - --fa: "\f1b2"; -} - -.fa-bitcoin-sign { - --fa: "\e0b4"; -} - -.fa-shield-dog { - --fa: "\e573"; -} - -.fa-solar-panel { - --fa: "\f5ba"; -} - -.fa-lock-open { - --fa: "\f3c1"; -} - -.fa-elevator { - --fa: "\e16d"; -} - -.fa-money-bill-transfer { - --fa: "\e528"; -} - -.fa-money-bill-trend-up { - --fa: "\e529"; -} - -.fa-house-flood-water-circle-arrow-right { - --fa: "\e50f"; -} - -.fa-square-poll-horizontal { - --fa: "\f682"; -} - -.fa-poll-h { - --fa: "\f682"; -} - -.fa-circle { - --fa: "\f111"; -} - -.fa-backward-fast { - --fa: "\f049"; -} - -.fa-fast-backward { - --fa: "\f049"; -} - -.fa-recycle { - --fa: "\f1b8"; -} - -.fa-user-astronaut { - --fa: "\f4fb"; -} - -.fa-plane-slash { - --fa: "\e069"; -} - -.fa-trademark { - --fa: "\f25c"; -} - -.fa-basketball { - --fa: "\f434"; -} - -.fa-basketball-ball { - --fa: "\f434"; -} - -.fa-satellite-dish { - --fa: "\f7c0"; -} - -.fa-circle-up { - --fa: "\f35b"; -} - -.fa-arrow-alt-circle-up { - --fa: "\f35b"; -} - -.fa-mobile-screen-button { - --fa: "\f3cd"; -} - -.fa-mobile-alt { - --fa: "\f3cd"; -} - -.fa-volume-high { - --fa: "\f028"; -} - -.fa-volume-up { - --fa: "\f028"; -} - -.fa-users-rays { - --fa: "\e593"; -} - -.fa-wallet { - --fa: "\f555"; -} - -.fa-clipboard-check { - --fa: "\f46c"; -} - -.fa-file-audio { - --fa: "\f1c7"; -} - -.fa-burger { - --fa: "\f805"; -} - -.fa-hamburger { - --fa: "\f805"; -} - -.fa-wrench { - --fa: "\f0ad"; -} - -.fa-bugs { - --fa: "\e4d0"; -} - -.fa-rupee-sign { - --fa: "\f156"; -} - -.fa-rupee { - --fa: "\f156"; -} - -.fa-file-image { - --fa: "\f1c5"; -} - -.fa-circle-question { - --fa: "\f059"; -} - -.fa-question-circle { - --fa: "\f059"; -} - -.fa-plane-departure { - --fa: "\f5b0"; -} - -.fa-handshake-slash { - --fa: "\e060"; -} - -.fa-book-bookmark { - --fa: "\e0bb"; -} - -.fa-code-branch { - --fa: "\f126"; -} - -.fa-hat-cowboy { - --fa: "\f8c0"; -} - -.fa-bridge { - --fa: "\e4c8"; -} - -.fa-phone-flip { - --fa: "\f879"; -} - -.fa-phone-alt { - --fa: "\f879"; -} - -.fa-truck-front { - --fa: "\e2b7"; -} - -.fa-cat { - --fa: "\f6be"; -} - -.fa-anchor-circle-exclamation { - --fa: "\e4ab"; -} - -.fa-truck-field { - --fa: "\e58d"; -} - -.fa-route { - --fa: "\f4d7"; -} - -.fa-clipboard-question { - --fa: "\e4e3"; -} - -.fa-panorama { - --fa: "\e209"; -} - -.fa-comment-medical { - --fa: "\f7f5"; -} - -.fa-teeth-open { - --fa: "\f62f"; -} - -.fa-file-circle-minus { - --fa: "\e4ed"; -} - -.fa-tags { - --fa: "\f02c"; -} - -.fa-wine-glass { - --fa: "\f4e3"; -} - -.fa-forward-fast { - --fa: "\f050"; -} - -.fa-fast-forward { - --fa: "\f050"; -} - -.fa-face-meh-blank { - --fa: "\f5a4"; -} - -.fa-meh-blank { - --fa: "\f5a4"; -} - -.fa-square-parking { - --fa: "\f540"; -} - -.fa-parking { - --fa: "\f540"; -} - -.fa-house-signal { - --fa: "\e012"; -} - -.fa-bars-progress { - --fa: "\f828"; -} - -.fa-tasks-alt { - --fa: "\f828"; -} - -.fa-faucet-drip { - --fa: "\e006"; -} - -.fa-cart-flatbed { - --fa: "\f474"; -} - -.fa-dolly-flatbed { - --fa: "\f474"; -} - -.fa-ban-smoking { - --fa: "\f54d"; -} - -.fa-smoking-ban { - --fa: "\f54d"; -} - -.fa-terminal { - --fa: "\f120"; -} - -.fa-mobile-button { - --fa: "\f10b"; -} - -.fa-house-medical-flag { - --fa: "\e514"; -} - -.fa-basket-shopping { - --fa: "\f291"; -} - -.fa-shopping-basket { - --fa: "\f291"; -} - -.fa-tape { - --fa: "\f4db"; -} - -.fa-bus-simple { - --fa: "\f55e"; -} - -.fa-bus-alt { - --fa: "\f55e"; -} - -.fa-eye { - --fa: "\f06e"; -} - -.fa-face-sad-cry { - --fa: "\f5b3"; -} - -.fa-sad-cry { - --fa: "\f5b3"; -} - -.fa-audio-description { - --fa: "\f29e"; -} - -.fa-person-military-to-person { - --fa: "\e54c"; -} - -.fa-file-shield { - --fa: "\e4f0"; -} - -.fa-user-slash { - --fa: "\f506"; -} - -.fa-pen { - --fa: "\f304"; -} - -.fa-tower-observation { - --fa: "\e586"; -} - -.fa-file-code { - --fa: "\f1c9"; -} - -.fa-signal { - --fa: "\f012"; -} - -.fa-signal-5 { - --fa: "\f012"; -} - -.fa-signal-perfect { - --fa: "\f012"; -} - -.fa-bus { - --fa: "\f207"; -} - -.fa-heart-circle-xmark { - --fa: "\e501"; -} - -.fa-house-chimney { - --fa: "\e3af"; -} - -.fa-home-lg { - --fa: "\e3af"; -} - -.fa-window-maximize { - --fa: "\f2d0"; -} - -.fa-face-frown { - --fa: "\f119"; -} - -.fa-frown { - --fa: "\f119"; -} - -.fa-prescription { - --fa: "\f5b1"; -} - -.fa-shop { - --fa: "\f54f"; -} - -.fa-store-alt { - --fa: "\f54f"; -} - -.fa-floppy-disk { - --fa: "\f0c7"; -} - -.fa-save { - --fa: "\f0c7"; -} - -.fa-vihara { - --fa: "\f6a7"; -} - -.fa-scale-unbalanced { - --fa: "\f515"; -} - -.fa-balance-scale-left { - --fa: "\f515"; -} - -.fa-sort-up { - --fa: "\f0de"; -} - -.fa-sort-asc { - --fa: "\f0de"; -} - -.fa-comment-dots { - --fa: "\f4ad"; -} - -.fa-commenting { - --fa: "\f4ad"; -} - -.fa-plant-wilt { - --fa: "\e5aa"; -} - -.fa-diamond { - --fa: "\f219"; -} - -.fa-face-grin-squint { - --fa: "\f585"; -} - -.fa-grin-squint { - --fa: "\f585"; -} - -.fa-hand-holding-dollar { - --fa: "\f4c0"; -} - -.fa-hand-holding-usd { - --fa: "\f4c0"; -} - -.fa-chart-diagram { - --fa: "\e695"; -} - -.fa-bacterium { - --fa: "\e05a"; -} - -.fa-hand-pointer { - --fa: "\f25a"; -} - -.fa-drum-steelpan { - --fa: "\f56a"; -} - -.fa-hand-scissors { - --fa: "\f257"; -} - -.fa-hands-praying { - --fa: "\f684"; -} - -.fa-praying-hands { - --fa: "\f684"; -} - -.fa-arrow-rotate-right { - --fa: "\f01e"; -} - -.fa-arrow-right-rotate { - --fa: "\f01e"; -} - -.fa-arrow-rotate-forward { - --fa: "\f01e"; -} - -.fa-redo { - --fa: "\f01e"; -} - -.fa-biohazard { - --fa: "\f780"; -} - -.fa-location-crosshairs { - --fa: "\f601"; -} - -.fa-location { - --fa: "\f601"; -} - -.fa-mars-double { - --fa: "\f227"; -} - -.fa-child-dress { - --fa: "\e59c"; -} - -.fa-users-between-lines { - --fa: "\e591"; -} - -.fa-lungs-virus { - --fa: "\e067"; -} - -.fa-face-grin-tears { - --fa: "\f588"; -} - -.fa-grin-tears { - --fa: "\f588"; -} - -.fa-phone { - --fa: "\f095"; -} - -.fa-calendar-xmark { - --fa: "\f273"; -} - -.fa-calendar-times { - --fa: "\f273"; -} - -.fa-child-reaching { - --fa: "\e59d"; -} - -.fa-head-side-virus { - --fa: "\e064"; -} - -.fa-user-gear { - --fa: "\f4fe"; -} - -.fa-user-cog { - --fa: "\f4fe"; -} - -.fa-arrow-up-1-9 { - --fa: "\f163"; -} - -.fa-sort-numeric-up { - --fa: "\f163"; -} - -.fa-door-closed { - --fa: "\f52a"; -} - -.fa-shield-virus { - --fa: "\e06c"; -} - -.fa-dice-six { - --fa: "\f526"; -} - -.fa-mosquito-net { - --fa: "\e52c"; -} - -.fa-file-fragment { - --fa: "\e697"; -} - -.fa-bridge-water { - --fa: "\e4ce"; -} - -.fa-person-booth { - --fa: "\f756"; -} - -.fa-text-width { - --fa: "\f035"; -} - -.fa-hat-wizard { - --fa: "\f6e8"; -} - -.fa-pen-fancy { - --fa: "\f5ac"; -} - -.fa-person-digging { - --fa: "\f85e"; -} - -.fa-digging { - --fa: "\f85e"; -} - -.fa-trash { - --fa: "\f1f8"; -} - -.fa-gauge-simple { - --fa: "\f629"; -} - -.fa-gauge-simple-med { - --fa: "\f629"; -} - -.fa-tachometer-average { - --fa: "\f629"; -} - -.fa-book-medical { - --fa: "\f7e6"; -} - -.fa-poo { - --fa: "\f2fe"; -} - -.fa-quote-right { - --fa: "\f10e"; -} - -.fa-quote-right-alt { - --fa: "\f10e"; -} - -.fa-shirt { - --fa: "\f553"; -} - -.fa-t-shirt { - --fa: "\f553"; -} - -.fa-tshirt { - --fa: "\f553"; -} - -.fa-cubes { - --fa: "\f1b3"; -} - -.fa-divide { - --fa: "\f529"; -} - -.fa-tenge-sign { - --fa: "\f7d7"; -} - -.fa-tenge { - --fa: "\f7d7"; -} - -.fa-headphones { - --fa: "\f025"; -} - -.fa-hands-holding { - --fa: "\f4c2"; -} - -.fa-hands-clapping { - --fa: "\e1a8"; -} - -.fa-republican { - --fa: "\f75e"; -} - -.fa-arrow-left { - --fa: "\f060"; -} - -.fa-person-circle-xmark { - --fa: "\e543"; -} - -.fa-ruler { - --fa: "\f545"; -} - -.fa-align-left { - --fa: "\f036"; -} - -.fa-dice-d6 { - --fa: "\f6d1"; -} - -.fa-restroom { - --fa: "\f7bd"; -} - -.fa-j { - --fa: "\4a"; -} - -.fa-users-viewfinder { - --fa: "\e595"; -} - -.fa-file-video { - --fa: "\f1c8"; -} - -.fa-up-right-from-square { - --fa: "\f35d"; -} - -.fa-external-link-alt { - --fa: "\f35d"; -} - -.fa-table-cells { - --fa: "\f00a"; -} - -.fa-th { - --fa: "\f00a"; -} - -.fa-file-pdf { - --fa: "\f1c1"; -} - -.fa-book-bible { - --fa: "\f647"; -} - -.fa-bible { - --fa: "\f647"; -} - -.fa-o { - --fa: "\4f"; -} - -.fa-suitcase-medical { - --fa: "\f0fa"; -} - -.fa-medkit { - --fa: "\f0fa"; -} - -.fa-user-secret { - --fa: "\f21b"; -} - -.fa-otter { - --fa: "\f700"; -} - -.fa-person-dress { - --fa: "\f182"; -} - -.fa-female { - --fa: "\f182"; -} - -.fa-comment-dollar { - --fa: "\f651"; -} - -.fa-business-time { - --fa: "\f64a"; -} - -.fa-briefcase-clock { - --fa: "\f64a"; -} - -.fa-table-cells-large { - --fa: "\f009"; -} - -.fa-th-large { - --fa: "\f009"; -} - -.fa-book-tanakh { - --fa: "\f827"; -} - -.fa-tanakh { - --fa: "\f827"; -} - -.fa-phone-volume { - --fa: "\f2a0"; -} - -.fa-volume-control-phone { - --fa: "\f2a0"; -} - -.fa-hat-cowboy-side { - --fa: "\f8c1"; -} - -.fa-clipboard-user { - --fa: "\f7f3"; -} - -.fa-child { - --fa: "\f1ae"; -} - -.fa-lira-sign { - --fa: "\f195"; -} - -.fa-satellite { - --fa: "\f7bf"; -} - -.fa-plane-lock { - --fa: "\e558"; -} - -.fa-tag { - --fa: "\f02b"; -} - -.fa-comment { - --fa: "\f075"; -} - -.fa-cake-candles { - --fa: "\f1fd"; -} - -.fa-birthday-cake { - --fa: "\f1fd"; -} - -.fa-cake { - --fa: "\f1fd"; -} - -.fa-envelope { - --fa: "\f0e0"; -} - -.fa-angles-up { - --fa: "\f102"; -} - -.fa-angle-double-up { - --fa: "\f102"; -} - -.fa-paperclip { - --fa: "\f0c6"; -} - -.fa-arrow-right-to-city { - --fa: "\e4b3"; -} - -.fa-ribbon { - --fa: "\f4d6"; -} - -.fa-lungs { - --fa: "\f604"; -} - -.fa-arrow-up-9-1 { - --fa: "\f887"; -} - -.fa-sort-numeric-up-alt { - --fa: "\f887"; -} - -.fa-litecoin-sign { - --fa: "\e1d3"; -} - -.fa-border-none { - --fa: "\f850"; -} - -.fa-circle-nodes { - --fa: "\e4e2"; -} - -.fa-parachute-box { - --fa: "\f4cd"; -} - -.fa-indent { - --fa: "\f03c"; -} - -.fa-truck-field-un { - --fa: "\e58e"; -} - -.fa-hourglass { - --fa: "\f254"; -} - -.fa-hourglass-empty { - --fa: "\f254"; -} - -.fa-mountain { - --fa: "\f6fc"; -} - -.fa-user-doctor { - --fa: "\f0f0"; -} - -.fa-user-md { - --fa: "\f0f0"; -} - -.fa-circle-info { - --fa: "\f05a"; -} - -.fa-info-circle { - --fa: "\f05a"; -} - -.fa-cloud-meatball { - --fa: "\f73b"; -} - -.fa-camera { - --fa: "\f030"; -} - -.fa-camera-alt { - --fa: "\f030"; -} - -.fa-square-virus { - --fa: "\e578"; -} - -.fa-meteor { - --fa: "\f753"; -} - -.fa-car-on { - --fa: "\e4dd"; -} - -.fa-sleigh { - --fa: "\f7cc"; -} - -.fa-arrow-down-1-9 { - --fa: "\f162"; -} - -.fa-sort-numeric-asc { - --fa: "\f162"; -} - -.fa-sort-numeric-down { - --fa: "\f162"; -} - -.fa-hand-holding-droplet { - --fa: "\f4c1"; -} - -.fa-hand-holding-water { - --fa: "\f4c1"; -} - -.fa-water { - --fa: "\f773"; -} - -.fa-calendar-check { - --fa: "\f274"; -} - -.fa-braille { - --fa: "\f2a1"; -} - -.fa-prescription-bottle-medical { - --fa: "\f486"; -} - -.fa-prescription-bottle-alt { - --fa: "\f486"; -} - -.fa-landmark { - --fa: "\f66f"; -} - -.fa-truck { - --fa: "\f0d1"; -} - -.fa-crosshairs { - --fa: "\f05b"; -} - -.fa-person-cane { - --fa: "\e53c"; -} - -.fa-tent { - --fa: "\e57d"; -} - -.fa-vest-patches { - --fa: "\e086"; -} - -.fa-check-double { - --fa: "\f560"; -} - -.fa-arrow-down-a-z { - --fa: "\f15d"; -} - -.fa-sort-alpha-asc { - --fa: "\f15d"; -} - -.fa-sort-alpha-down { - --fa: "\f15d"; -} - -.fa-money-bill-wheat { - --fa: "\e52a"; -} - -.fa-cookie { - --fa: "\f563"; -} - -.fa-arrow-rotate-left { - --fa: "\f0e2"; -} - -.fa-arrow-left-rotate { - --fa: "\f0e2"; -} - -.fa-arrow-rotate-back { - --fa: "\f0e2"; -} - -.fa-arrow-rotate-backward { - --fa: "\f0e2"; -} - -.fa-undo { - --fa: "\f0e2"; -} - -.fa-hard-drive { - --fa: "\f0a0"; -} - -.fa-hdd { - --fa: "\f0a0"; -} - -.fa-face-grin-squint-tears { - --fa: "\f586"; -} - -.fa-grin-squint-tears { - --fa: "\f586"; -} - -.fa-dumbbell { - --fa: "\f44b"; -} - -.fa-rectangle-list { - --fa: "\f022"; -} - -.fa-list-alt { - --fa: "\f022"; -} - -.fa-tarp-droplet { - --fa: "\e57c"; -} - -.fa-house-medical-circle-check { - --fa: "\e511"; -} - -.fa-person-skiing-nordic { - --fa: "\f7ca"; -} - -.fa-skiing-nordic { - --fa: "\f7ca"; -} - -.fa-calendar-plus { - --fa: "\f271"; -} - -.fa-plane-arrival { - --fa: "\f5af"; -} - -.fa-circle-left { - --fa: "\f359"; -} - -.fa-arrow-alt-circle-left { - --fa: "\f359"; -} - -.fa-train-subway { - --fa: "\f239"; -} - -.fa-subway { - --fa: "\f239"; -} - -.fa-chart-gantt { - --fa: "\e0e4"; -} - -.fa-indian-rupee-sign { - --fa: "\e1bc"; -} - -.fa-indian-rupee { - --fa: "\e1bc"; -} - -.fa-inr { - --fa: "\e1bc"; -} - -.fa-crop-simple { - --fa: "\f565"; -} - -.fa-crop-alt { - --fa: "\f565"; -} - -.fa-money-bill-1 { - --fa: "\f3d1"; -} - -.fa-money-bill-alt { - --fa: "\f3d1"; -} - -.fa-left-long { - --fa: "\f30a"; -} - -.fa-long-arrow-alt-left { - --fa: "\f30a"; -} - -.fa-dna { - --fa: "\f471"; -} - -.fa-virus-slash { - --fa: "\e075"; -} - -.fa-minus { - --fa: "\f068"; -} - -.fa-subtract { - --fa: "\f068"; -} - -.fa-chess { - --fa: "\f439"; -} - -.fa-arrow-left-long { - --fa: "\f177"; -} - -.fa-long-arrow-left { - --fa: "\f177"; -} - -.fa-plug-circle-check { - --fa: "\e55c"; -} - -.fa-street-view { - --fa: "\f21d"; -} - -.fa-franc-sign { - --fa: "\e18f"; -} - -.fa-volume-off { - --fa: "\f026"; -} - -.fa-hands-asl-interpreting { - --fa: "\f2a3"; -} - -.fa-american-sign-language-interpreting { - --fa: "\f2a3"; -} - -.fa-asl-interpreting { - --fa: "\f2a3"; -} - -.fa-hands-american-sign-language-interpreting { - --fa: "\f2a3"; -} - -.fa-gear { - --fa: "\f013"; -} - -.fa-cog { - --fa: "\f013"; -} - -.fa-droplet-slash { - --fa: "\f5c7"; -} - -.fa-tint-slash { - --fa: "\f5c7"; -} - -.fa-mosque { - --fa: "\f678"; -} - -.fa-mosquito { - --fa: "\e52b"; -} - -.fa-star-of-david { - --fa: "\f69a"; -} - -.fa-person-military-rifle { - --fa: "\e54b"; -} - -.fa-cart-shopping { - --fa: "\f07a"; -} - -.fa-shopping-cart { - --fa: "\f07a"; -} - -.fa-vials { - --fa: "\f493"; -} - -.fa-plug-circle-plus { - --fa: "\e55f"; -} - -.fa-place-of-worship { - --fa: "\f67f"; -} - -.fa-grip-vertical { - --fa: "\f58e"; -} - -.fa-hexagon-nodes { - --fa: "\e699"; -} - -.fa-arrow-turn-up { - --fa: "\f148"; -} - -.fa-level-up { - --fa: "\f148"; -} - -.fa-u { - --fa: "\55"; -} - -.fa-square-root-variable { - --fa: "\f698"; -} - -.fa-square-root-alt { - --fa: "\f698"; -} - -.fa-clock { - --fa: "\f017"; -} - -.fa-clock-four { - --fa: "\f017"; -} - -.fa-backward-step { - --fa: "\f048"; -} - -.fa-step-backward { - --fa: "\f048"; -} - -.fa-pallet { - --fa: "\f482"; -} - -.fa-faucet { - --fa: "\e005"; -} - -.fa-baseball-bat-ball { - --fa: "\f432"; -} - -.fa-s { - --fa: "\53"; -} - -.fa-timeline { - --fa: "\e29c"; -} - -.fa-keyboard { - --fa: "\f11c"; -} - -.fa-caret-down { - --fa: "\f0d7"; -} - -.fa-house-chimney-medical { - --fa: "\f7f2"; -} - -.fa-clinic-medical { - --fa: "\f7f2"; -} - -.fa-temperature-three-quarters { - --fa: "\f2c8"; -} - -.fa-temperature-3 { - --fa: "\f2c8"; -} - -.fa-thermometer-3 { - --fa: "\f2c8"; -} - -.fa-thermometer-three-quarters { - --fa: "\f2c8"; -} - -.fa-mobile-screen { - --fa: "\f3cf"; -} - -.fa-mobile-android-alt { - --fa: "\f3cf"; -} - -.fa-plane-up { - --fa: "\e22d"; -} - -.fa-piggy-bank { - --fa: "\f4d3"; -} - -.fa-battery-half { - --fa: "\f242"; -} - -.fa-battery-3 { - --fa: "\f242"; -} - -.fa-mountain-city { - --fa: "\e52e"; -} - -.fa-coins { - --fa: "\f51e"; -} - -.fa-khanda { - --fa: "\f66d"; -} - -.fa-sliders { - --fa: "\f1de"; -} - -.fa-sliders-h { - --fa: "\f1de"; -} - -.fa-folder-tree { - --fa: "\f802"; -} - -.fa-network-wired { - --fa: "\f6ff"; -} - -.fa-map-pin { - --fa: "\f276"; -} - -.fa-hamsa { - --fa: "\f665"; -} - -.fa-cent-sign { - --fa: "\e3f5"; -} - -.fa-flask { - --fa: "\f0c3"; -} - -.fa-person-pregnant { - --fa: "\e31e"; -} - -.fa-wand-sparkles { - --fa: "\f72b"; -} - -.fa-ellipsis-vertical { - --fa: "\f142"; -} - -.fa-ellipsis-v { - --fa: "\f142"; -} - -.fa-ticket { - --fa: "\f145"; -} - -.fa-power-off { - --fa: "\f011"; -} - -.fa-right-long { - --fa: "\f30b"; -} - -.fa-long-arrow-alt-right { - --fa: "\f30b"; -} - -.fa-flag-usa { - --fa: "\f74d"; -} - -.fa-laptop-file { - --fa: "\e51d"; -} - -.fa-tty { - --fa: "\f1e4"; -} - -.fa-teletype { - --fa: "\f1e4"; -} - -.fa-diagram-next { - --fa: "\e476"; -} - -.fa-person-rifle { - --fa: "\e54e"; -} - -.fa-house-medical-circle-exclamation { - --fa: "\e512"; -} - -.fa-closed-captioning { - --fa: "\f20a"; -} - -.fa-person-hiking { - --fa: "\f6ec"; -} - -.fa-hiking { - --fa: "\f6ec"; -} - -.fa-venus-double { - --fa: "\f226"; -} - -.fa-images { - --fa: "\f302"; -} - -.fa-calculator { - --fa: "\f1ec"; -} - -.fa-people-pulling { - --fa: "\e535"; -} - -.fa-n { - --fa: "\4e"; -} - -.fa-cable-car { - --fa: "\f7da"; -} - -.fa-tram { - --fa: "\f7da"; -} - -.fa-cloud-rain { - --fa: "\f73d"; -} - -.fa-building-circle-xmark { - --fa: "\e4d4"; -} - -.fa-ship { - --fa: "\f21a"; -} - -.fa-arrows-down-to-line { - --fa: "\e4b8"; -} - -.fa-download { - --fa: "\f019"; -} - -.fa-face-grin { - --fa: "\f580"; -} - -.fa-grin { - --fa: "\f580"; -} - -.fa-delete-left { - --fa: "\f55a"; -} - -.fa-backspace { - --fa: "\f55a"; -} - -.fa-eye-dropper { - --fa: "\f1fb"; -} - -.fa-eye-dropper-empty { - --fa: "\f1fb"; -} - -.fa-eyedropper { - --fa: "\f1fb"; -} - -.fa-file-circle-check { - --fa: "\e5a0"; -} - -.fa-forward { - --fa: "\f04e"; -} - -.fa-mobile { - --fa: "\f3ce"; -} - -.fa-mobile-android { - --fa: "\f3ce"; -} - -.fa-mobile-phone { - --fa: "\f3ce"; -} - -.fa-face-meh { - --fa: "\f11a"; -} - -.fa-meh { - --fa: "\f11a"; -} - -.fa-align-center { - --fa: "\f037"; -} - -.fa-book-skull { - --fa: "\f6b7"; -} - -.fa-book-dead { - --fa: "\f6b7"; -} - -.fa-id-card { - --fa: "\f2c2"; -} - -.fa-drivers-license { - --fa: "\f2c2"; -} - -.fa-outdent { - --fa: "\f03b"; -} - -.fa-dedent { - --fa: "\f03b"; -} - -.fa-heart-circle-exclamation { - --fa: "\e4fe"; -} - -.fa-house { - --fa: "\f015"; -} - -.fa-home { - --fa: "\f015"; -} - -.fa-home-alt { - --fa: "\f015"; -} - -.fa-home-lg-alt { - --fa: "\f015"; -} - -.fa-calendar-week { - --fa: "\f784"; -} - -.fa-laptop-medical { - --fa: "\f812"; -} - -.fa-b { - --fa: "\42"; -} - -.fa-file-medical { - --fa: "\f477"; -} - -.fa-dice-one { - --fa: "\f525"; -} - -.fa-kiwi-bird { - --fa: "\f535"; -} - -.fa-arrow-right-arrow-left { - --fa: "\f0ec"; -} - -.fa-exchange { - --fa: "\f0ec"; -} - -.fa-rotate-right { - --fa: "\f2f9"; -} - -.fa-redo-alt { - --fa: "\f2f9"; -} - -.fa-rotate-forward { - --fa: "\f2f9"; -} - -.fa-utensils { - --fa: "\f2e7"; -} - -.fa-cutlery { - --fa: "\f2e7"; -} - -.fa-arrow-up-wide-short { - --fa: "\f161"; -} - -.fa-sort-amount-up { - --fa: "\f161"; -} - -.fa-mill-sign { - --fa: "\e1ed"; -} - -.fa-bowl-rice { - --fa: "\e2eb"; -} - -.fa-skull { - --fa: "\f54c"; -} - -.fa-tower-broadcast { - --fa: "\f519"; -} - -.fa-broadcast-tower { - --fa: "\f519"; -} - -.fa-truck-pickup { - --fa: "\f63c"; -} - -.fa-up-long { - --fa: "\f30c"; -} - -.fa-long-arrow-alt-up { - --fa: "\f30c"; -} - -.fa-stop { - --fa: "\f04d"; -} - -.fa-code-merge { - --fa: "\f387"; -} - -.fa-upload { - --fa: "\f093"; -} - -.fa-hurricane { - --fa: "\f751"; -} - -.fa-mound { - --fa: "\e52d"; -} - -.fa-toilet-portable { - --fa: "\e583"; -} - -.fa-compact-disc { - --fa: "\f51f"; -} - -.fa-file-arrow-down { - --fa: "\f56d"; -} - -.fa-file-download { - --fa: "\f56d"; -} - -.fa-caravan { - --fa: "\f8ff"; -} - -.fa-shield-cat { - --fa: "\e572"; -} - -.fa-bolt { - --fa: "\f0e7"; -} - -.fa-zap { - --fa: "\f0e7"; -} - -.fa-glass-water { - --fa: "\e4f4"; -} - -.fa-oil-well { - --fa: "\e532"; -} - -.fa-vault { - --fa: "\e2c5"; -} - -.fa-mars { - --fa: "\f222"; -} - -.fa-toilet { - --fa: "\f7d8"; -} - -.fa-plane-circle-xmark { - --fa: "\e557"; -} - -.fa-yen-sign { - --fa: "\f157"; -} - -.fa-cny { - --fa: "\f157"; -} - -.fa-jpy { - --fa: "\f157"; -} - -.fa-rmb { - --fa: "\f157"; -} - -.fa-yen { - --fa: "\f157"; -} - -.fa-ruble-sign { - --fa: "\f158"; -} - -.fa-rouble { - --fa: "\f158"; -} - -.fa-rub { - --fa: "\f158"; -} - -.fa-ruble { - --fa: "\f158"; -} - -.fa-sun { - --fa: "\f185"; -} - -.fa-guitar { - --fa: "\f7a6"; -} - -.fa-face-laugh-wink { - --fa: "\f59c"; -} - -.fa-laugh-wink { - --fa: "\f59c"; -} - -.fa-horse-head { - --fa: "\f7ab"; -} - -.fa-bore-hole { - --fa: "\e4c3"; -} - -.fa-industry { - --fa: "\f275"; -} - -.fa-circle-down { - --fa: "\f358"; -} - -.fa-arrow-alt-circle-down { - --fa: "\f358"; -} - -.fa-arrows-turn-to-dots { - --fa: "\e4c1"; -} - -.fa-florin-sign { - --fa: "\e184"; -} - -.fa-arrow-down-short-wide { - --fa: "\f884"; -} - -.fa-sort-amount-desc { - --fa: "\f884"; -} - -.fa-sort-amount-down-alt { - --fa: "\f884"; -} - -.fa-less-than { - --fa: "\3c"; -} - -.fa-angle-down { - --fa: "\f107"; -} - -.fa-car-tunnel { - --fa: "\e4de"; -} - -.fa-head-side-cough { - --fa: "\e061"; -} - -.fa-grip-lines { - --fa: "\f7a4"; -} - -.fa-thumbs-down { - --fa: "\f165"; -} - -.fa-user-lock { - --fa: "\f502"; -} - -.fa-arrow-right-long { - --fa: "\f178"; -} - -.fa-long-arrow-right { - --fa: "\f178"; -} - -.fa-anchor-circle-xmark { - --fa: "\e4ac"; -} - -.fa-ellipsis { - --fa: "\f141"; -} - -.fa-ellipsis-h { - --fa: "\f141"; -} - -.fa-chess-pawn { - --fa: "\f443"; -} - -.fa-kit-medical { - --fa: "\f479"; -} - -.fa-first-aid { - --fa: "\f479"; -} - -.fa-person-through-window { - --fa: "\e5a9"; -} - -.fa-toolbox { - --fa: "\f552"; -} - -.fa-hands-holding-circle { - --fa: "\e4fb"; -} - -.fa-bug { - --fa: "\f188"; -} - -.fa-credit-card { - --fa: "\f09d"; -} - -.fa-credit-card-alt { - --fa: "\f09d"; -} - -.fa-car { - --fa: "\f1b9"; -} - -.fa-automobile { - --fa: "\f1b9"; -} - -.fa-hand-holding-hand { - --fa: "\e4f7"; -} - -.fa-book-open-reader { - --fa: "\f5da"; -} - -.fa-book-reader { - --fa: "\f5da"; -} - -.fa-mountain-sun { - --fa: "\e52f"; -} - -.fa-arrows-left-right-to-line { - --fa: "\e4ba"; -} - -.fa-dice-d20 { - --fa: "\f6cf"; -} - -.fa-truck-droplet { - --fa: "\e58c"; -} - -.fa-file-circle-xmark { - --fa: "\e5a1"; -} - -.fa-temperature-arrow-up { - --fa: "\e040"; -} - -.fa-temperature-up { - --fa: "\e040"; -} - -.fa-medal { - --fa: "\f5a2"; -} - -.fa-bed { - --fa: "\f236"; -} - -.fa-square-h { - --fa: "\f0fd"; -} - -.fa-h-square { - --fa: "\f0fd"; -} - -.fa-podcast { - --fa: "\f2ce"; -} - -.fa-temperature-full { - --fa: "\f2c7"; -} - -.fa-temperature-4 { - --fa: "\f2c7"; -} - -.fa-thermometer-4 { - --fa: "\f2c7"; -} - -.fa-thermometer-full { - --fa: "\f2c7"; -} - -.fa-bell { - --fa: "\f0f3"; -} - -.fa-superscript { - --fa: "\f12b"; -} - -.fa-plug-circle-xmark { - --fa: "\e560"; -} - -.fa-star-of-life { - --fa: "\f621"; -} - -.fa-phone-slash { - --fa: "\f3dd"; -} - -.fa-paint-roller { - --fa: "\f5aa"; -} - -.fa-handshake-angle { - --fa: "\f4c4"; -} - -.fa-hands-helping { - --fa: "\f4c4"; -} - -.fa-location-dot { - --fa: "\f3c5"; -} - -.fa-map-marker-alt { - --fa: "\f3c5"; -} - -.fa-file { - --fa: "\f15b"; -} - -.fa-greater-than { - --fa: "\3e"; -} - -.fa-person-swimming { - --fa: "\f5c4"; -} - -.fa-swimmer { - --fa: "\f5c4"; -} - -.fa-arrow-down { - --fa: "\f063"; -} - -.fa-droplet { - --fa: "\f043"; -} - -.fa-tint { - --fa: "\f043"; -} - -.fa-eraser { - --fa: "\f12d"; -} - -.fa-earth-americas { - --fa: "\f57d"; -} - -.fa-earth { - --fa: "\f57d"; -} - -.fa-earth-america { - --fa: "\f57d"; -} - -.fa-globe-americas { - --fa: "\f57d"; -} - -.fa-person-burst { - --fa: "\e53b"; -} - -.fa-dove { - --fa: "\f4ba"; -} - -.fa-battery-empty { - --fa: "\f244"; -} - -.fa-battery-0 { - --fa: "\f244"; -} - -.fa-socks { - --fa: "\f696"; -} - -.fa-inbox { - --fa: "\f01c"; -} - -.fa-section { - --fa: "\e447"; -} - -.fa-gauge-high { - --fa: "\f625"; -} - -.fa-tachometer-alt { - --fa: "\f625"; -} - -.fa-tachometer-alt-fast { - --fa: "\f625"; -} - -.fa-envelope-open-text { - --fa: "\f658"; -} - -.fa-hospital { - --fa: "\f0f8"; -} - -.fa-hospital-alt { - --fa: "\f0f8"; -} - -.fa-hospital-wide { - --fa: "\f0f8"; -} - -.fa-wine-bottle { - --fa: "\f72f"; -} - -.fa-chess-rook { - --fa: "\f447"; -} - -.fa-bars-staggered { - --fa: "\f550"; -} - -.fa-reorder { - --fa: "\f550"; -} - -.fa-stream { - --fa: "\f550"; -} - -.fa-dharmachakra { - --fa: "\f655"; -} - -.fa-hotdog { - --fa: "\f80f"; -} - -.fa-person-walking-with-cane { - --fa: "\f29d"; -} - -.fa-blind { - --fa: "\f29d"; -} - -.fa-drum { - --fa: "\f569"; -} - -.fa-ice-cream { - --fa: "\f810"; -} - -.fa-heart-circle-bolt { - --fa: "\e4fc"; -} - -.fa-fax { - --fa: "\f1ac"; -} - -.fa-paragraph { - --fa: "\f1dd"; -} - -.fa-check-to-slot { - --fa: "\f772"; -} - -.fa-vote-yea { - --fa: "\f772"; -} - -.fa-star-half { - --fa: "\f089"; -} - -.fa-boxes-stacked { - --fa: "\f468"; -} - -.fa-boxes { - --fa: "\f468"; -} - -.fa-boxes-alt { - --fa: "\f468"; -} - -.fa-link { - --fa: "\f0c1"; -} - -.fa-chain { - --fa: "\f0c1"; -} - -.fa-ear-listen { - --fa: "\f2a2"; -} - -.fa-assistive-listening-systems { - --fa: "\f2a2"; -} - -.fa-tree-city { - --fa: "\e587"; -} - -.fa-play { - --fa: "\f04b"; -} - -.fa-font { - --fa: "\f031"; -} - -.fa-table-cells-row-lock { - --fa: "\e67a"; -} - -.fa-rupiah-sign { - --fa: "\e23d"; -} - -.fa-magnifying-glass { - --fa: "\f002"; -} - -.fa-search { - --fa: "\f002"; -} - -.fa-table-tennis-paddle-ball { - --fa: "\f45d"; -} - -.fa-ping-pong-paddle-ball { - --fa: "\f45d"; -} - -.fa-table-tennis { - --fa: "\f45d"; -} - -.fa-person-dots-from-line { - --fa: "\f470"; -} - -.fa-diagnoses { - --fa: "\f470"; -} - -.fa-trash-can-arrow-up { - --fa: "\f82a"; -} - -.fa-trash-restore-alt { - --fa: "\f82a"; -} - -.fa-naira-sign { - --fa: "\e1f6"; -} - -.fa-cart-arrow-down { - --fa: "\f218"; -} - -.fa-walkie-talkie { - --fa: "\f8ef"; -} - -.fa-file-pen { - --fa: "\f31c"; -} - -.fa-file-edit { - --fa: "\f31c"; -} - -.fa-receipt { - --fa: "\f543"; -} - -.fa-square-pen { - --fa: "\f14b"; -} - -.fa-pen-square { - --fa: "\f14b"; -} - -.fa-pencil-square { - --fa: "\f14b"; -} - -.fa-suitcase-rolling { - --fa: "\f5c1"; -} - -.fa-person-circle-exclamation { - --fa: "\e53f"; -} - -.fa-chevron-down { - --fa: "\f078"; -} - -.fa-battery-full { - --fa: "\f240"; -} - -.fa-battery { - --fa: "\f240"; -} - -.fa-battery-5 { - --fa: "\f240"; -} - -.fa-skull-crossbones { - --fa: "\f714"; -} - -.fa-code-compare { - --fa: "\e13a"; -} - -.fa-list-ul { - --fa: "\f0ca"; -} - -.fa-list-dots { - --fa: "\f0ca"; -} - -.fa-school-lock { - --fa: "\e56f"; -} - -.fa-tower-cell { - --fa: "\e585"; -} - -.fa-down-long { - --fa: "\f309"; -} - -.fa-long-arrow-alt-down { - --fa: "\f309"; -} - -.fa-ranking-star { - --fa: "\e561"; -} - -.fa-chess-king { - --fa: "\f43f"; -} - -.fa-person-harassing { - --fa: "\e549"; -} - -.fa-brazilian-real-sign { - --fa: "\e46c"; -} - -.fa-landmark-dome { - --fa: "\f752"; -} - -.fa-landmark-alt { - --fa: "\f752"; -} - -.fa-arrow-up { - --fa: "\f062"; -} - -.fa-tv { - --fa: "\f26c"; -} - -.fa-television { - --fa: "\f26c"; -} - -.fa-tv-alt { - --fa: "\f26c"; -} - -.fa-shrimp { - --fa: "\e448"; -} - -.fa-list-check { - --fa: "\f0ae"; -} - -.fa-tasks { - --fa: "\f0ae"; -} - -.fa-jug-detergent { - --fa: "\e519"; -} - -.fa-circle-user { - --fa: "\f2bd"; -} - -.fa-user-circle { - --fa: "\f2bd"; -} - -.fa-user-shield { - --fa: "\f505"; -} - -.fa-wind { - --fa: "\f72e"; -} - -.fa-car-burst { - --fa: "\f5e1"; -} - -.fa-car-crash { - --fa: "\f5e1"; -} - -.fa-y { - --fa: "\59"; -} - -.fa-person-snowboarding { - --fa: "\f7ce"; -} - -.fa-snowboarding { - --fa: "\f7ce"; -} - -.fa-truck-fast { - --fa: "\f48b"; -} - -.fa-shipping-fast { - --fa: "\f48b"; -} - -.fa-fish { - --fa: "\f578"; -} - -.fa-user-graduate { - --fa: "\f501"; -} - -.fa-circle-half-stroke { - --fa: "\f042"; -} - -.fa-adjust { - --fa: "\f042"; -} - -.fa-clapperboard { - --fa: "\e131"; -} - -.fa-circle-radiation { - --fa: "\f7ba"; -} - -.fa-radiation-alt { - --fa: "\f7ba"; -} - -.fa-baseball { - --fa: "\f433"; -} - -.fa-baseball-ball { - --fa: "\f433"; -} - -.fa-jet-fighter-up { - --fa: "\e518"; -} - -.fa-diagram-project { - --fa: "\f542"; -} - -.fa-project-diagram { - --fa: "\f542"; -} - -.fa-copy { - --fa: "\f0c5"; -} - -.fa-volume-xmark { - --fa: "\f6a9"; -} - -.fa-volume-mute { - --fa: "\f6a9"; -} - -.fa-volume-times { - --fa: "\f6a9"; -} - -.fa-hand-sparkles { - --fa: "\e05d"; -} - -.fa-grip { - --fa: "\f58d"; -} - -.fa-grip-horizontal { - --fa: "\f58d"; -} - -.fa-share-from-square { - --fa: "\f14d"; -} - -.fa-share-square { - --fa: "\f14d"; -} - -.fa-child-combatant { - --fa: "\e4e0"; -} - -.fa-child-rifle { - --fa: "\e4e0"; -} - -.fa-gun { - --fa: "\e19b"; -} - -.fa-square-phone { - --fa: "\f098"; -} - -.fa-phone-square { - --fa: "\f098"; -} - -.fa-plus { - --fa: "\2b"; -} - -.fa-add { - --fa: "\2b"; -} - -.fa-expand { - --fa: "\f065"; -} - -.fa-computer { - --fa: "\e4e5"; -} - -.fa-xmark { - --fa: "\f00d"; -} - -.fa-close { - --fa: "\f00d"; -} - -.fa-multiply { - --fa: "\f00d"; -} - -.fa-remove { - --fa: "\f00d"; -} - -.fa-times { - --fa: "\f00d"; -} - -.fa-arrows-up-down-left-right { - --fa: "\f047"; -} - -.fa-arrows { - --fa: "\f047"; -} - -.fa-chalkboard-user { - --fa: "\f51c"; -} - -.fa-chalkboard-teacher { - --fa: "\f51c"; -} - -.fa-peso-sign { - --fa: "\e222"; -} - -.fa-building-shield { - --fa: "\e4d8"; -} - -.fa-baby { - --fa: "\f77c"; -} - -.fa-users-line { - --fa: "\e592"; -} - -.fa-quote-left { - --fa: "\f10d"; -} - -.fa-quote-left-alt { - --fa: "\f10d"; -} - -.fa-tractor { - --fa: "\f722"; -} - -.fa-trash-arrow-up { - --fa: "\f829"; -} - -.fa-trash-restore { - --fa: "\f829"; -} - -.fa-arrow-down-up-lock { - --fa: "\e4b0"; -} - -.fa-lines-leaning { - --fa: "\e51e"; -} - -.fa-ruler-combined { - --fa: "\f546"; -} - -.fa-copyright { - --fa: "\f1f9"; -} - -.fa-equals { - --fa: "\3d"; -} - -.fa-blender { - --fa: "\f517"; -} - -.fa-teeth { - --fa: "\f62e"; -} - -.fa-shekel-sign { - --fa: "\f20b"; -} - -.fa-ils { - --fa: "\f20b"; -} - -.fa-shekel { - --fa: "\f20b"; -} - -.fa-sheqel { - --fa: "\f20b"; -} - -.fa-sheqel-sign { - --fa: "\f20b"; -} - -.fa-map { - --fa: "\f279"; -} - -.fa-rocket { - --fa: "\f135"; -} - -.fa-photo-film { - --fa: "\f87c"; -} - -.fa-photo-video { - --fa: "\f87c"; -} - -.fa-folder-minus { - --fa: "\f65d"; -} - -.fa-hexagon-nodes-bolt { - --fa: "\e69a"; -} - -.fa-store { - --fa: "\f54e"; -} - -.fa-arrow-trend-up { - --fa: "\e098"; -} - -.fa-plug-circle-minus { - --fa: "\e55e"; -} - -.fa-sign-hanging { - --fa: "\f4d9"; -} - -.fa-sign { - --fa: "\f4d9"; -} - -.fa-bezier-curve { - --fa: "\f55b"; -} - -.fa-bell-slash { - --fa: "\f1f6"; -} - -.fa-tablet { - --fa: "\f3fb"; -} - -.fa-tablet-android { - --fa: "\f3fb"; -} - -.fa-school-flag { - --fa: "\e56e"; -} - -.fa-fill { - --fa: "\f575"; -} - -.fa-angle-up { - --fa: "\f106"; -} - -.fa-drumstick-bite { - --fa: "\f6d7"; -} - -.fa-holly-berry { - --fa: "\f7aa"; -} - -.fa-chevron-left { - --fa: "\f053"; -} - -.fa-bacteria { - --fa: "\e059"; -} - -.fa-hand-lizard { - --fa: "\f258"; -} - -.fa-notdef { - --fa: "\e1fe"; -} - -.fa-disease { - --fa: "\f7fa"; -} - -.fa-briefcase-medical { - --fa: "\f469"; -} - -.fa-genderless { - --fa: "\f22d"; -} - -.fa-chevron-right { - --fa: "\f054"; -} - -.fa-retweet { - --fa: "\f079"; -} - -.fa-car-rear { - --fa: "\f5de"; -} - -.fa-car-alt { - --fa: "\f5de"; -} - -.fa-pump-soap { - --fa: "\e06b"; -} - -.fa-video-slash { - --fa: "\f4e2"; -} - -.fa-battery-quarter { - --fa: "\f243"; -} - -.fa-battery-2 { - --fa: "\f243"; -} - -.fa-radio { - --fa: "\f8d7"; -} - -.fa-baby-carriage { - --fa: "\f77d"; -} - -.fa-carriage-baby { - --fa: "\f77d"; -} - -.fa-traffic-light { - --fa: "\f637"; -} - -.fa-thermometer { - --fa: "\f491"; -} - -.fa-vr-cardboard { - --fa: "\f729"; -} - -.fa-hand-middle-finger { - --fa: "\f806"; -} - -.fa-percent { - --fa: "\25"; -} - -.fa-percentage { - --fa: "\25"; -} - -.fa-truck-moving { - --fa: "\f4df"; -} - -.fa-glass-water-droplet { - --fa: "\e4f5"; -} - -.fa-display { - --fa: "\e163"; -} - -.fa-face-smile { - --fa: "\f118"; -} - -.fa-smile { - --fa: "\f118"; -} - -.fa-thumbtack { - --fa: "\f08d"; -} - -.fa-thumb-tack { - --fa: "\f08d"; -} - -.fa-trophy { - --fa: "\f091"; -} - -.fa-person-praying { - --fa: "\f683"; -} - -.fa-pray { - --fa: "\f683"; -} - -.fa-hammer { - --fa: "\f6e3"; -} - -.fa-hand-peace { - --fa: "\f25b"; -} - -.fa-rotate { - --fa: "\f2f1"; -} - -.fa-sync-alt { - --fa: "\f2f1"; -} - -.fa-spinner { - --fa: "\f110"; -} - -.fa-robot { - --fa: "\f544"; -} - -.fa-peace { - --fa: "\f67c"; -} - -.fa-gears { - --fa: "\f085"; -} - -.fa-cogs { - --fa: "\f085"; -} - -.fa-warehouse { - --fa: "\f494"; -} - -.fa-arrow-up-right-dots { - --fa: "\e4b7"; -} - -.fa-splotch { - --fa: "\f5bc"; -} - -.fa-face-grin-hearts { - --fa: "\f584"; -} - -.fa-grin-hearts { - --fa: "\f584"; -} - -.fa-dice-four { - --fa: "\f524"; -} - -.fa-sim-card { - --fa: "\f7c4"; -} - -.fa-transgender { - --fa: "\f225"; -} - -.fa-transgender-alt { - --fa: "\f225"; -} - -.fa-mercury { - --fa: "\f223"; -} - -.fa-arrow-turn-down { - --fa: "\f149"; -} - -.fa-level-down { - --fa: "\f149"; -} - -.fa-person-falling-burst { - --fa: "\e547"; -} - -.fa-award { - --fa: "\f559"; -} - -.fa-ticket-simple { - --fa: "\f3ff"; -} - -.fa-ticket-alt { - --fa: "\f3ff"; -} - -.fa-building { - --fa: "\f1ad"; -} - -.fa-angles-left { - --fa: "\f100"; -} - -.fa-angle-double-left { - --fa: "\f100"; -} - -.fa-qrcode { - --fa: "\f029"; -} - -.fa-clock-rotate-left { - --fa: "\f1da"; -} - -.fa-history { - --fa: "\f1da"; -} - -.fa-face-grin-beam-sweat { - --fa: "\f583"; -} - -.fa-grin-beam-sweat { - --fa: "\f583"; -} - -.fa-file-export { - --fa: "\f56e"; -} - -.fa-arrow-right-from-file { - --fa: "\f56e"; -} - -.fa-shield { - --fa: "\f132"; -} - -.fa-shield-blank { - --fa: "\f132"; -} - -.fa-arrow-up-short-wide { - --fa: "\f885"; -} - -.fa-sort-amount-up-alt { - --fa: "\f885"; -} - -.fa-comment-nodes { - --fa: "\e696"; -} - -.fa-house-medical { - --fa: "\e3b2"; -} - -.fa-golf-ball-tee { - --fa: "\f450"; -} - -.fa-golf-ball { - --fa: "\f450"; -} - -.fa-circle-chevron-left { - --fa: "\f137"; -} - -.fa-chevron-circle-left { - --fa: "\f137"; -} - -.fa-house-chimney-window { - --fa: "\e00d"; -} - -.fa-pen-nib { - --fa: "\f5ad"; -} - -.fa-tent-arrow-turn-left { - --fa: "\e580"; -} - -.fa-tents { - --fa: "\e582"; -} - -.fa-wand-magic { - --fa: "\f0d0"; -} - -.fa-magic { - --fa: "\f0d0"; -} - -.fa-dog { - --fa: "\f6d3"; -} - -.fa-carrot { - --fa: "\f787"; -} - -.fa-moon { - --fa: "\f186"; -} - -.fa-wine-glass-empty { - --fa: "\f5ce"; -} - -.fa-wine-glass-alt { - --fa: "\f5ce"; -} - -.fa-cheese { - --fa: "\f7ef"; -} - -.fa-yin-yang { - --fa: "\f6ad"; -} - -.fa-music { - --fa: "\f001"; -} - -.fa-code-commit { - --fa: "\f386"; -} - -.fa-temperature-low { - --fa: "\f76b"; -} - -.fa-person-biking { - --fa: "\f84a"; -} - -.fa-biking { - --fa: "\f84a"; -} - -.fa-broom { - --fa: "\f51a"; -} - -.fa-shield-heart { - --fa: "\e574"; -} - -.fa-gopuram { - --fa: "\f664"; -} - -.fa-earth-oceania { - --fa: "\e47b"; -} - -.fa-globe-oceania { - --fa: "\e47b"; -} - -.fa-square-xmark { - --fa: "\f2d3"; -} - -.fa-times-square { - --fa: "\f2d3"; -} - -.fa-xmark-square { - --fa: "\f2d3"; -} - -.fa-hashtag { - --fa: "\23"; -} - -.fa-up-right-and-down-left-from-center { - --fa: "\f424"; -} - -.fa-expand-alt { - --fa: "\f424"; -} - -.fa-oil-can { - --fa: "\f613"; -} - -.fa-t { - --fa: "\54"; -} - -.fa-hippo { - --fa: "\f6ed"; -} - -.fa-chart-column { - --fa: "\e0e3"; -} - -.fa-infinity { - --fa: "\f534"; -} - -.fa-vial-circle-check { - --fa: "\e596"; -} - -.fa-person-arrow-down-to-line { - --fa: "\e538"; -} - -.fa-voicemail { - --fa: "\f897"; -} - -.fa-fan { - --fa: "\f863"; -} - -.fa-person-walking-luggage { - --fa: "\e554"; -} - -.fa-up-down { - --fa: "\f338"; -} - -.fa-arrows-alt-v { - --fa: "\f338"; -} - -.fa-cloud-moon-rain { - --fa: "\f73c"; -} - -.fa-calendar { - --fa: "\f133"; -} - -.fa-trailer { - --fa: "\e041"; -} - -.fa-bahai { - --fa: "\f666"; -} - -.fa-haykal { - --fa: "\f666"; -} - -.fa-sd-card { - --fa: "\f7c2"; -} - -.fa-dragon { - --fa: "\f6d5"; -} - -.fa-shoe-prints { - --fa: "\f54b"; -} - -.fa-circle-plus { - --fa: "\f055"; -} - -.fa-plus-circle { - --fa: "\f055"; -} - -.fa-face-grin-tongue-wink { - --fa: "\f58b"; -} - -.fa-grin-tongue-wink { - --fa: "\f58b"; -} - -.fa-hand-holding { - --fa: "\f4bd"; -} - -.fa-plug-circle-exclamation { - --fa: "\e55d"; -} - -.fa-link-slash { - --fa: "\f127"; -} - -.fa-chain-broken { - --fa: "\f127"; -} - -.fa-chain-slash { - --fa: "\f127"; -} - -.fa-unlink { - --fa: "\f127"; -} - -.fa-clone { - --fa: "\f24d"; -} - -.fa-person-walking-arrow-loop-left { - --fa: "\e551"; -} - -.fa-arrow-up-z-a { - --fa: "\f882"; -} - -.fa-sort-alpha-up-alt { - --fa: "\f882"; -} - -.fa-fire-flame-curved { - --fa: "\f7e4"; -} - -.fa-fire-alt { - --fa: "\f7e4"; -} - -.fa-tornado { - --fa: "\f76f"; -} - -.fa-file-circle-plus { - --fa: "\e494"; -} - -.fa-book-quran { - --fa: "\f687"; -} - -.fa-quran { - --fa: "\f687"; -} - -.fa-anchor { - --fa: "\f13d"; -} - -.fa-border-all { - --fa: "\f84c"; -} - -.fa-face-angry { - --fa: "\f556"; -} - -.fa-angry { - --fa: "\f556"; -} - -.fa-cookie-bite { - --fa: "\f564"; -} - -.fa-arrow-trend-down { - --fa: "\e097"; -} - -.fa-rss { - --fa: "\f09e"; -} - -.fa-feed { - --fa: "\f09e"; -} - -.fa-draw-polygon { - --fa: "\f5ee"; -} - -.fa-scale-balanced { - --fa: "\f24e"; -} - -.fa-balance-scale { - --fa: "\f24e"; -} - -.fa-gauge-simple-high { - --fa: "\f62a"; -} - -.fa-tachometer { - --fa: "\f62a"; -} - -.fa-tachometer-fast { - --fa: "\f62a"; -} - -.fa-shower { - --fa: "\f2cc"; -} - -.fa-desktop { - --fa: "\f390"; -} - -.fa-desktop-alt { - --fa: "\f390"; -} - -.fa-m { - --fa: "\4d"; -} - -.fa-table-list { - --fa: "\f00b"; -} - -.fa-th-list { - --fa: "\f00b"; -} - -.fa-comment-sms { - --fa: "\f7cd"; -} - -.fa-sms { - --fa: "\f7cd"; -} - -.fa-book { - --fa: "\f02d"; -} - -.fa-user-plus { - --fa: "\f234"; -} - -.fa-check { - --fa: "\f00c"; -} - -.fa-battery-three-quarters { - --fa: "\f241"; -} - -.fa-battery-4 { - --fa: "\f241"; -} - -.fa-house-circle-check { - --fa: "\e509"; -} - -.fa-angle-left { - --fa: "\f104"; -} - -.fa-diagram-successor { - --fa: "\e47a"; -} - -.fa-truck-arrow-right { - --fa: "\e58b"; -} - -.fa-arrows-split-up-and-left { - --fa: "\e4bc"; -} - -.fa-hand-fist { - --fa: "\f6de"; -} - -.fa-fist-raised { - --fa: "\f6de"; -} - -.fa-cloud-moon { - --fa: "\f6c3"; -} - -.fa-briefcase { - --fa: "\f0b1"; -} - -.fa-person-falling { - --fa: "\e546"; -} - -.fa-image-portrait { - --fa: "\f3e0"; -} - -.fa-portrait { - --fa: "\f3e0"; -} - -.fa-user-tag { - --fa: "\f507"; -} - -.fa-rug { - --fa: "\e569"; -} - -.fa-earth-europe { - --fa: "\f7a2"; -} - -.fa-globe-europe { - --fa: "\f7a2"; -} - -.fa-cart-flatbed-suitcase { - --fa: "\f59d"; -} - -.fa-luggage-cart { - --fa: "\f59d"; -} - -.fa-rectangle-xmark { - --fa: "\f410"; -} - -.fa-rectangle-times { - --fa: "\f410"; -} - -.fa-times-rectangle { - --fa: "\f410"; -} - -.fa-window-close { - --fa: "\f410"; -} - -.fa-baht-sign { - --fa: "\e0ac"; -} - -.fa-book-open { - --fa: "\f518"; -} - -.fa-book-journal-whills { - --fa: "\f66a"; -} - -.fa-journal-whills { - --fa: "\f66a"; -} - -.fa-handcuffs { - --fa: "\e4f8"; -} - -.fa-triangle-exclamation { - --fa: "\f071"; -} - -.fa-exclamation-triangle { - --fa: "\f071"; -} - -.fa-warning { - --fa: "\f071"; -} - -.fa-database { - --fa: "\f1c0"; -} - -.fa-share { - --fa: "\f064"; -} - -.fa-mail-forward { - --fa: "\f064"; -} - -.fa-bottle-droplet { - --fa: "\e4c4"; -} - -.fa-mask-face { - --fa: "\e1d7"; -} - -.fa-hill-rockslide { - --fa: "\e508"; -} - -.fa-right-left { - --fa: "\f362"; -} - -.fa-exchange-alt { - --fa: "\f362"; -} - -.fa-paper-plane { - --fa: "\f1d8"; -} - -.fa-road-circle-exclamation { - --fa: "\e565"; -} - -.fa-dungeon { - --fa: "\f6d9"; -} - -.fa-align-right { - --fa: "\f038"; -} - -.fa-money-bill-1-wave { - --fa: "\f53b"; -} - -.fa-money-bill-wave-alt { - --fa: "\f53b"; -} - -.fa-life-ring { - --fa: "\f1cd"; -} - -.fa-hands { - --fa: "\f2a7"; -} - -.fa-sign-language { - --fa: "\f2a7"; -} - -.fa-signing { - --fa: "\f2a7"; -} - -.fa-calendar-day { - --fa: "\f783"; -} - -.fa-water-ladder { - --fa: "\f5c5"; -} - -.fa-ladder-water { - --fa: "\f5c5"; -} - -.fa-swimming-pool { - --fa: "\f5c5"; -} - -.fa-arrows-up-down { - --fa: "\f07d"; -} - -.fa-arrows-v { - --fa: "\f07d"; -} - -.fa-face-grimace { - --fa: "\f57f"; -} - -.fa-grimace { - --fa: "\f57f"; -} - -.fa-wheelchair-move { - --fa: "\e2ce"; -} - -.fa-wheelchair-alt { - --fa: "\e2ce"; -} - -.fa-turn-down { - --fa: "\f3be"; -} - -.fa-level-down-alt { - --fa: "\f3be"; -} - -.fa-person-walking-arrow-right { - --fa: "\e552"; -} - -.fa-square-envelope { - --fa: "\f199"; -} - -.fa-envelope-square { - --fa: "\f199"; -} - -.fa-dice { - --fa: "\f522"; -} - -.fa-bowling-ball { - --fa: "\f436"; -} - -.fa-brain { - --fa: "\f5dc"; -} - -.fa-bandage { - --fa: "\f462"; -} - -.fa-band-aid { - --fa: "\f462"; -} - -.fa-calendar-minus { - --fa: "\f272"; -} - -.fa-circle-xmark { - --fa: "\f057"; -} - -.fa-times-circle { - --fa: "\f057"; -} - -.fa-xmark-circle { - --fa: "\f057"; -} - -.fa-gifts { - --fa: "\f79c"; -} - -.fa-hotel { - --fa: "\f594"; -} - -.fa-earth-asia { - --fa: "\f57e"; -} - -.fa-globe-asia { - --fa: "\f57e"; -} - -.fa-id-card-clip { - --fa: "\f47f"; -} - -.fa-id-card-alt { - --fa: "\f47f"; -} - -.fa-magnifying-glass-plus { - --fa: "\f00e"; -} - -.fa-search-plus { - --fa: "\f00e"; -} - -.fa-thumbs-up { - --fa: "\f164"; -} - -.fa-user-clock { - --fa: "\f4fd"; -} - -.fa-hand-dots { - --fa: "\f461"; -} - -.fa-allergies { - --fa: "\f461"; -} - -.fa-file-invoice { - --fa: "\f570"; -} - -.fa-window-minimize { - --fa: "\f2d1"; -} - -.fa-mug-saucer { - --fa: "\f0f4"; -} - -.fa-coffee { - --fa: "\f0f4"; -} - -.fa-brush { - --fa: "\f55d"; -} - -.fa-file-half-dashed { - --fa: "\e698"; -} - -.fa-mask { - --fa: "\f6fa"; -} - -.fa-magnifying-glass-minus { - --fa: "\f010"; -} - -.fa-search-minus { - --fa: "\f010"; -} - -.fa-ruler-vertical { - --fa: "\f548"; -} - -.fa-user-large { - --fa: "\f406"; -} - -.fa-user-alt { - --fa: "\f406"; -} - -.fa-train-tram { - --fa: "\e5b4"; -} - -.fa-user-nurse { - --fa: "\f82f"; -} - -.fa-syringe { - --fa: "\f48e"; -} - -.fa-cloud-sun { - --fa: "\f6c4"; -} - -.fa-stopwatch-20 { - --fa: "\e06f"; -} - -.fa-square-full { - --fa: "\f45c"; -} - -.fa-magnet { - --fa: "\f076"; -} - -.fa-jar { - --fa: "\e516"; -} - -.fa-note-sticky { - --fa: "\f249"; -} - -.fa-sticky-note { - --fa: "\f249"; -} - -.fa-bug-slash { - --fa: "\e490"; -} - -.fa-arrow-up-from-water-pump { - --fa: "\e4b6"; -} - -.fa-bone { - --fa: "\f5d7"; -} - -.fa-table-cells-row-unlock { - --fa: "\e691"; -} - -.fa-user-injured { - --fa: "\f728"; -} - -.fa-face-sad-tear { - --fa: "\f5b4"; -} - -.fa-sad-tear { - --fa: "\f5b4"; -} - -.fa-plane { - --fa: "\f072"; -} - -.fa-tent-arrows-down { - --fa: "\e581"; -} - -.fa-exclamation { - --fa: "\21"; -} - -.fa-arrows-spin { - --fa: "\e4bb"; -} - -.fa-print { - --fa: "\f02f"; -} - -.fa-turkish-lira-sign { - --fa: "\e2bb"; -} - -.fa-try { - --fa: "\e2bb"; -} - -.fa-turkish-lira { - --fa: "\e2bb"; -} - -.fa-dollar-sign { - --fa: "\24"; -} - -.fa-dollar { - --fa: "\24"; -} - -.fa-usd { - --fa: "\24"; -} - -.fa-x { - --fa: "\58"; -} - -.fa-magnifying-glass-dollar { - --fa: "\f688"; -} - -.fa-search-dollar { - --fa: "\f688"; -} - -.fa-users-gear { - --fa: "\f509"; -} - -.fa-users-cog { - --fa: "\f509"; -} - -.fa-person-military-pointing { - --fa: "\e54a"; -} - -.fa-building-columns { - --fa: "\f19c"; -} - -.fa-bank { - --fa: "\f19c"; -} - -.fa-institution { - --fa: "\f19c"; -} - -.fa-museum { - --fa: "\f19c"; -} - -.fa-university { - --fa: "\f19c"; -} - -.fa-umbrella { - --fa: "\f0e9"; -} - -.fa-trowel { - --fa: "\e589"; -} - -.fa-d { - --fa: "\44"; -} - -.fa-stapler { - --fa: "\e5af"; -} - -.fa-masks-theater { - --fa: "\f630"; -} - -.fa-theater-masks { - --fa: "\f630"; -} - -.fa-kip-sign { - --fa: "\e1c4"; -} - -.fa-hand-point-left { - --fa: "\f0a5"; -} - -.fa-handshake-simple { - --fa: "\f4c6"; -} - -.fa-handshake-alt { - --fa: "\f4c6"; -} - -.fa-jet-fighter { - --fa: "\f0fb"; -} - -.fa-fighter-jet { - --fa: "\f0fb"; -} - -.fa-square-share-nodes { - --fa: "\f1e1"; -} - -.fa-share-alt-square { - --fa: "\f1e1"; -} - -.fa-barcode { - --fa: "\f02a"; -} - -.fa-plus-minus { - --fa: "\e43c"; -} - -.fa-video { - --fa: "\f03d"; -} - -.fa-video-camera { - --fa: "\f03d"; -} - -.fa-graduation-cap { - --fa: "\f19d"; -} - -.fa-mortar-board { - --fa: "\f19d"; -} - -.fa-hand-holding-medical { - --fa: "\e05c"; -} - -.fa-person-circle-check { - --fa: "\e53e"; -} - -.fa-turn-up { - --fa: "\f3bf"; -} - -.fa-level-up-alt { - --fa: "\f3bf"; -} - -.sr-only, -.fa-sr-only { - position: absolute; - width: 1px; - height: 1px; - padding: 0; - margin: -1px; - overflow: hidden; - clip: rect(0, 0, 0, 0); - white-space: nowrap; - border-width: 0; -} - -.sr-only-focusable:not(:focus), -.fa-sr-only-focusable:not(:focus) { - position: absolute; - width: 1px; - height: 1px; - padding: 0; - margin: -1px; - overflow: hidden; - clip: rect(0, 0, 0, 0); - white-space: nowrap; - border-width: 0; -} diff --git a/apps/mobile/global.css b/apps/mobile/global.css deleted file mode 100644 index 83666a3..0000000 --- a/apps/mobile/global.css +++ /dev/null @@ -1,5 +0,0 @@ -@import url("https://fonts.googleapis.com/css2?family=Inter:ital,opsz,wght@0,14..32,100..900;1,14..32,100..900&display=swap"); - -body { - font-family: "Inter", sans-serif !important; -} diff --git a/apps/mobile/global.d.ts b/apps/mobile/global.d.ts deleted file mode 100644 index 53c72cf..0000000 --- a/apps/mobile/global.d.ts +++ /dev/null @@ -1,33 +0,0 @@ -declare module 'react-native/Libraries/Core/ExceptionsManager' { - export function handleException(err: Error, isFatal: boolean): void; -} - -declare module 'react-native-safe-area-context/lib/commonjs' { - export const SafeAreaView: React.ComponentType; - export const SafeAreaProvider: React.ComponentType; - export const SafeAreaInsetsContext: React.Context; - export const SafeAreaFrameContext: React.Context; - export function useSafeAreaInsets(): { top: number; right: number; bottom: number; left: number }; - export function useSafeAreaFrame(): { x: number; y: number; width: number; height: number }; - export const initialWindowMetrics: any; -} - -declare module 'react-native-web-refresh-control' { - export const RefreshControl: React.ComponentType; -} - -declare module 'react-native-web/dist/exports/ScrollView' { - const ScrollView: React.ComponentType; - export default ScrollView; -} - -declare module '@anythingai/app/screens/launcher-menu' { - const LauncherMenuContainer: React.ComponentType; - export default LauncherMenuContainer; -} - -declare module 'lodash' { - export function merge(...args: T[]): T; -} - -declare module '*.css' {} diff --git a/apps/mobile/index.tsx b/apps/mobile/index.tsx deleted file mode 100644 index db6b7ae..0000000 --- a/apps/mobile/index.tsx +++ /dev/null @@ -1,30 +0,0 @@ -import ExceptionsManager from "react-native/Libraries/Core/ExceptionsManager"; - -if (__DEV__) { - ExceptionsManager.handleException = (_error, _isFatal) => { - // no-op - }; -} - -import "react-native-url-polyfill/auto"; -import "./src/__create/polyfills"; -global.Buffer = require("buffer").Buffer; - -import "@expo/metro-runtime"; -import { AppRegistry, LogBox } from "react-native"; -import { initSentry } from "./__create/sentry"; -import { initTestFlightLogger } from "./__create/testflight-logger"; -import { renderRootComponent } from "expo-router/build/renderRootComponent"; -import App from "./entrypoint"; - -initSentry(); -initTestFlightLogger(); - -if (__DEV__ || process.env.EXPO_PUBLIC_CREATE_ENV === "DEVELOPMENT") { - LogBox.ignoreAllLogs(); - LogBox.uninstall(); - AppRegistry.setWrapperComponentProvider(() => ({ children }) => { - return <>{children}; - }); -} -renderRootComponent(App); diff --git a/apps/mobile/index.web.tsx b/apps/mobile/index.web.tsx deleted file mode 100644 index 671bfd9..0000000 --- a/apps/mobile/index.web.tsx +++ /dev/null @@ -1,127 +0,0 @@ -import '@expo/metro-runtime'; -import { toPng } from 'html-to-image'; -import React, { useEffect } from 'react'; -import { renderRootComponent } from 'expo-router/build/renderRootComponent'; - -import { LoadSkiaWeb } from '@shopify/react-native-skia/lib/module/web'; -import CreateApp from './App'; -async function inlineGoogleFonts(): Promise { - // Find all elements that load Google Fonts CSS - const links = Array.from(document.querySelectorAll( - 'link[rel="stylesheet"][href*="fonts.googleapis.com"]' - )); - - for (const link of links) { - try { - const href = link.href; - const res = await fetch(href); - let cssText = await res.text(); - - // Ensure font URLs are absolute - cssText = cssText.replace(/url\(([^)]+)\)/g, (match, url) => { - const clean = url.replace(/["']/g, ""); - if (clean.startsWith("http")) { - return `url(${clean})`; - } - return `url(${new URL(clean, href).toString()})`; - }); - - // Inject