From ee6b05d7e7509453c7254d4006621275cce2d094 Mon Sep 17 00:00:00 2001 From: fellowship Date: Sun, 5 Apr 2026 18:21:51 +0000 Subject: [PATCH] init --- caddy/Caddyfile | 18 + caddy/Caddyfile.fellowship | 54 + caddy/Caddyfile.local | 18 + caddy/Caddyfile.prod | 14 + docker-compose.yml | 119 + nginx/nginx.conf | 79 + sut/backend/.env.example | 14 + sut/backend/Dockerfile | 24 + .../__pycache__/config.cpython-311.pyc | Bin 0 -> 3135 bytes sut/backend/app.py | 229 + sut/backend/config.py | 57 + sut/backend/debug_azure.py | 55 + sut/backend/models/__init__.py | 9 + .../__pycache__/__init__.cpython-311.pyc | Bin 0 -> 585 bytes .../inventory_item.cpython-311.pyc | Bin 0 -> 2954 bytes .../models/__pycache__/item.cpython-311.pyc | Bin 0 -> 2820 bytes .../__pycache__/location.cpython-311.pyc | Bin 0 -> 2149 bytes .../models/__pycache__/member.cpython-311.pyc | Bin 0 -> 2194 bytes .../models/__pycache__/quest.cpython-311.pyc | Bin 0 -> 4045 bytes .../models/__pycache__/user.cpython-311.pyc | Bin 0 -> 3048 bytes sut/backend/models/inventory_item.py | 40 + sut/backend/models/item.py | 41 + sut/backend/models/location.py | 30 + sut/backend/models/member.py | 30 + sut/backend/models/quest.py | 58 + sut/backend/models/user.py | 41 + sut/backend/requirements.txt | 10 + sut/backend/routes/__init__.py | 1 + .../__pycache__/__init__.cpython-311.pyc | Bin 0 -> 190 bytes .../routes/__pycache__/auth.cpython-311.pyc | Bin 0 -> 7728 bytes .../__pycache__/locations.cpython-311.pyc | Bin 0 -> 3693 bytes .../__pycache__/members.cpython-311.pyc | Bin 0 -> 3618 bytes .../__pycache__/npc_chat.cpython-311.pyc | Bin 0 -> 10187 bytes .../routes/__pycache__/quests.cpython-311.pyc | Bin 0 -> 14569 bytes .../routes/__pycache__/shop.cpython-311.pyc | Bin 0 -> 8718 bytes sut/backend/routes/auth.py | 121 + sut/backend/routes/locations.py | 41 + sut/backend/routes/members.py | 41 + sut/backend/routes/npc_chat.py | 174 + sut/backend/routes/quests.py | 237 + sut/backend/routes/shop.py | 133 + sut/backend/services/__init__.py | 1 + .../__pycache__/__init__.cpython-311.pyc | Bin 0 -> 183 bytes .../__pycache__/auth_service.cpython-311.pyc | Bin 0 -> 4428 bytes .../bargaining_algorithm.cpython-311.pyc | Bin 0 -> 10466 bytes .../bargaining_config.cpython-311.pyc | Bin 0 -> 7168 bytes .../character_profiles.cpython-311.pyc | Bin 0 -> 10411 bytes .../negotiation_logger.cpython-311.pyc | Bin 0 -> 9542 bytes .../npc_chat_service.cpython-311.pyc | Bin 0 -> 60548 bytes .../quest_generation_service.cpython-311.pyc | Bin 0 -> 16625 bytes .../__pycache__/shop_service.cpython-311.pyc | Bin 0 -> 7419 bytes sut/backend/services/auth_service.py | 65 + sut/backend/services/bargaining_algorithm.py | 337 + sut/backend/services/bargaining_config.py | 157 + sut/backend/services/character_profiles.py | 253 + sut/backend/services/negotiation_logger.py | 213 + sut/backend/services/npc_chat_service.py | 1495 ++ .../services/quest_generation_service.py | 441 + sut/backend/services/shop_service.py | 125 + sut/backend/utils/__init__.py | 1 + .../__pycache__/__init__.cpython-311.pyc | Bin 0 -> 177 bytes .../__pycache__/database.cpython-311.pyc | Bin 0 -> 14733 bytes .../__pycache__/seed_data.cpython-311.pyc | Bin 0 -> 22453 bytes sut/backend/utils/database.py | 204 + sut/backend/utils/seed_data.py | 602 + sut/backend/verify_config.py | 51 + sut/frontend/.env.example | 16 + sut/frontend/.env.local | 6 + sut/frontend/Dockerfile | 24 + sut/frontend/ENV_URL_SETUP.md | 169 + sut/frontend/build/leaflet/leaflet.css | 767 + sut/frontend/build/leaflet/leaflet.js | 6 + .../marker_cluster/MarkerCluster.Default.css | 68 + .../leaflet/marker_cluster/MarkerCluster.css | 14 + .../marker_cluster/leaflet.markercluster.js | 3 + .../leaflet.markercluster.js.map | 1 + .../leaflet/smooth_bounce/BouncingMotion.js | 307 + .../leaflet/smooth_bounce/BouncingMotion3D.js | 373 + .../smooth_bounce/BouncingMotionCss3.js | 481 + .../smooth_bounce/BouncingMotionSimple.js | 267 + .../leaflet/smooth_bounce/BouncingOptions.js | 105 + .../build/leaflet/smooth_bounce/Cache.js | 65 + .../smooth_bounce/MarkerPrototypeExt.js | 121 + .../build/leaflet/smooth_bounce/Matrix3D.js | 166 + .../leaflet/smooth_bounce/Orchestration.js | 147 + .../smooth_bounce/SmoothMarkerBouncing.js | 96 + .../build/leaflet/smooth_bounce/Styles.js | 106 + .../build/leaflet/smooth_bounce/bundle.min.js | 1 + .../build/leaflet/smooth_bounce/line.js | 53 + sut/frontend/build/logo.png | Bin 0 -> 474442 bytes sut/frontend/build/logo_background.png | Bin 0 -> 1436200 bytes sut/frontend/build/logo_old.png | Bin 0 -> 1667188 bytes sut/frontend/build/middle-earth-map.svg | 65 + sut/frontend/build/middle-earth-map.webp | Bin 0 -> 3610512 bytes .../build/middle-earth-map/data/markers.json | 707 + .../build/middle-earth-map/data/paths.json | 21270 +++++++++++++++ .../fonts/RingbearerMedium.ttf | Bin 0 -> 107280 bytes .../build/middle-earth-map/icons/castle.svg | 25 + .../build/middle-earth-map/icons/close.svg | 3 + .../build/middle-earth-map/icons/coffee.svg | 5 + .../build/middle-earth-map/icons/coffin.svg | 35 + .../build/middle-earth-map/icons/death.svg | 46 + .../build/middle-earth-map/icons/dwarf.svg | 20 + .../build/middle-earth-map/icons/earth.svg | 53 + .../build/middle-earth-map/icons/elf.svg | 19 + .../build/middle-earth-map/icons/evil.svg | 19 + .../build/middle-earth-map/icons/eye.svg | 63 + .../build/middle-earth-map/icons/hobbit.svg | 19 + .../build/middle-earth-map/icons/layers.svg | 40 + .../build/middle-earth-map/icons/swords.svg | 21 + .../middle-earth-map/icons/the_one_ring.ico | Bin 0 -> 67646 bytes sut/frontend/build/robots.txt | 33 + sut/frontend/build/sitemap.xml | 53 + sut/frontend/package-lock.json | 21898 ++++++++++++++++ sut/frontend/package.json | 65 + sut/frontend/postcss.config.js | 6 + sut/frontend/public/index.html | 64 + sut/frontend/public/leaflet/leaflet.css | 767 + sut/frontend/public/leaflet/leaflet.js | 6 + .../marker_cluster/MarkerCluster.Default.css | 68 + .../leaflet/marker_cluster/MarkerCluster.css | 14 + .../marker_cluster/leaflet.markercluster.js | 3 + .../leaflet.markercluster.js.map | 1 + .../leaflet/smooth_bounce/BouncingMotion.js | 307 + .../leaflet/smooth_bounce/BouncingMotion3D.js | 373 + .../smooth_bounce/BouncingMotionCss3.js | 481 + .../smooth_bounce/BouncingMotionSimple.js | 267 + .../leaflet/smooth_bounce/BouncingOptions.js | 105 + .../public/leaflet/smooth_bounce/Cache.js | 65 + .../smooth_bounce/MarkerPrototypeExt.js | 121 + .../public/leaflet/smooth_bounce/Matrix3D.js | 166 + .../leaflet/smooth_bounce/Orchestration.js | 147 + .../smooth_bounce/SmoothMarkerBouncing.js | 96 + .../public/leaflet/smooth_bounce/Styles.js | 106 + .../leaflet/smooth_bounce/bundle.min.js | 1 + .../public/leaflet/smooth_bounce/line.js | 53 + sut/frontend/public/logo.png | Bin 0 -> 474442 bytes sut/frontend/public/logo_background.png | Bin 0 -> 1436200 bytes sut/frontend/public/logo_old.png | Bin 0 -> 1667188 bytes sut/frontend/public/middle-earth-map.svg | 65 + sut/frontend/public/middle-earth-map.webp | Bin 0 -> 3610512 bytes .../public/middle-earth-map/data/markers.json | 707 + .../public/middle-earth-map/data/paths.json | 21270 +++++++++++++++ .../fonts/RingbearerMedium.ttf | Bin 0 -> 107280 bytes .../public/middle-earth-map/icons/castle.svg | 25 + .../public/middle-earth-map/icons/close.svg | 3 + .../public/middle-earth-map/icons/coffee.svg | 5 + .../public/middle-earth-map/icons/coffin.svg | 35 + .../public/middle-earth-map/icons/death.svg | 46 + .../public/middle-earth-map/icons/dwarf.svg | 20 + .../public/middle-earth-map/icons/earth.svg | 53 + .../public/middle-earth-map/icons/elf.svg | 19 + .../public/middle-earth-map/icons/evil.svg | 19 + .../public/middle-earth-map/icons/eye.svg | 63 + .../public/middle-earth-map/icons/hobbit.svg | 19 + .../public/middle-earth-map/icons/layers.svg | 40 + .../public/middle-earth-map/icons/swords.svg | 21 + .../middle-earth-map/icons/the_one_ring.ico | Bin 0 -> 67646 bytes sut/frontend/public/robots.txt | 33 + sut/frontend/public/sitemap.xml | 53 + sut/frontend/scripts/setup-env-urls.js | 61 + sut/frontend/src/App.css | 639 + sut/frontend/src/App.tsx | 191 + sut/frontend/src/animations.css | 451 + sut/frontend/src/components/AppHeader.css | 489 + sut/frontend/src/components/AppHeader.tsx | 195 + .../src/components/CompletedQuestCounter.tsx | 51 + sut/frontend/src/components/Dashboard.css | 202 + sut/frontend/src/components/Dashboard.tsx | 336 + sut/frontend/src/components/GoldCounter.tsx | 15 + sut/frontend/src/components/Login.css | 93 + sut/frontend/src/components/Login.tsx | 194 + .../src/components/MiddleEarthMap.css | 519 + .../src/components/MiddleEarthMap.tsx | 806 + .../src/components/QuestFilterBar.tsx | 220 + sut/frontend/src/components/QuestForm.css | 147 + sut/frontend/src/components/QuestForm.tsx | 220 + sut/frontend/src/components/QuestList.css | 338 + sut/frontend/src/components/QuestList.tsx | 225 + sut/frontend/src/components/ScoringCard.tsx | 143 + .../components/characters/CharacterPanel.tsx | 314 + .../characters/MapCharacterPanel.tsx | 326 + .../FilterSidebar.css | 133 + .../FilterSidebar.tsx | 230 + .../middleEarthMapStandalone/LoaderScreen.css | 90 + .../middleEarthMapStandalone/LoaderScreen.tsx | 29 + .../MapController.tsx | 128 + .../middleEarthMapStandalone/MapIcons.ts | 50 + .../MarkersController.tsx | 289 + .../MiddleEarthMapStandalone.css | 132 + .../PathsController.tsx | 81 + .../QuestDetailsSidebar.css | 229 + .../QuestDetailsSidebar.tsx | 142 + .../RealWorldMapController.tsx | 107 + .../middleEarthMapStandalone/types.ts | 81 + .../components/minigames/FindTheRingGame.tsx | 185 + .../src/components/minigames/MemoryGame.tsx | 177 + .../minigames/QuestCompletionModal.tsx | 218 + .../src/components/minigames/ReactionGame.tsx | 149 + .../src/components/minigames/TriviaGame.tsx | 323 + .../src/components/minigames/index.ts | 9 + sut/frontend/src/components/ui/Alert.tsx | 64 + sut/frontend/src/components/ui/Avatar.tsx | 41 + sut/frontend/src/components/ui/Badge.tsx | 87 + sut/frontend/src/components/ui/Button.tsx | 57 + sut/frontend/src/components/ui/Card.tsx | 48 + .../src/components/ui/GuidedWalkthrough.tsx | 207 + sut/frontend/src/components/ui/Input.tsx | 112 + sut/frontend/src/components/ui/Modal.tsx | 82 + sut/frontend/src/components/ui/index.ts | 11 + sut/frontend/src/config/designTokens.ts | 157 + sut/frontend/src/index.css | 122 + sut/frontend/src/index.tsx | 13 + sut/frontend/src/pages/DashboardPage.tsx | 69 + sut/frontend/src/pages/InventoryPage.tsx | 125 + sut/frontend/src/pages/LoginPage.tsx | 68 + sut/frontend/src/pages/MapPage.css | 545 + sut/frontend/src/pages/MapPage.tsx | 545 + sut/frontend/src/pages/QuestsPage.css | 35 + sut/frontend/src/pages/QuestsPage.tsx | 328 + sut/frontend/src/services/analyticsService.ts | 396 + sut/frontend/src/services/api.ts | 234 + sut/frontend/src/services/characterService.ts | 247 + sut/frontend/src/store/characterStore.ts | 146 + sut/frontend/src/store/questStore.ts | 268 + sut/frontend/src/types/index.ts | 163 + sut/frontend/src/types/middleEarthMap.ts | 48 + sut/frontend/src/utils/easterEggs.ts | 215 + sut/frontend/src/utils/missionObjective.ts | 120 + .../src/walkthrough/walkthroughConfig.ts | 91 + sut/frontend/tailwind.config.js | 101 + sut/frontend/test-results/.last-run.json | 4 + .../test/components/AppHeader.test.tsx | 322 + .../test/components/FindTheRingGame.test.tsx | 70 + .../MapCharacterPanel.bargainflow.test.tsx | 97 + .../components/MapCharacterPanel.test.tsx | 114 + .../test/components/MemoryGame.test.tsx | 55 + .../test/components/MiddleEarthMap.test.tsx | 425 + .../components/QuestCompletionModal.test.tsx | 107 + .../test/components/QuestFilterBar.test.tsx | 340 + .../test/components/ReactionGame.test.tsx | 70 + .../test/components/ScoringCard.test.tsx | 171 + .../test/components/TriviaGame.test.tsx | 81 + .../test/services/analyticsService.test.ts | 273 + sut/frontend/test/services/api.chat.test.ts | 75 + .../test/services/characterService.test.ts | 201 + sut/frontend/test/setup.ts | 14 + .../test/store/characterStore.test.ts | 53 + sut/frontend/test/store/questStore.test.ts | 291 + .../test/utils/missionObjective.test.ts | 61 + .../test/utils/walkthroughConfig.test.ts | 37 + sut/frontend/tsconfig.json | 31 + sut/frontend/vitest.config.ts | 17 + 253 files changed, 95778 insertions(+) create mode 100644 caddy/Caddyfile create mode 100644 caddy/Caddyfile.fellowship create mode 100644 caddy/Caddyfile.local create mode 100644 caddy/Caddyfile.prod create mode 100644 docker-compose.yml create mode 100644 nginx/nginx.conf create mode 100644 sut/backend/.env.example create mode 100644 sut/backend/Dockerfile create mode 100644 sut/backend/__pycache__/config.cpython-311.pyc create mode 100644 sut/backend/app.py create mode 100644 sut/backend/config.py create mode 100644 sut/backend/debug_azure.py create mode 100644 sut/backend/models/__init__.py create mode 100644 sut/backend/models/__pycache__/__init__.cpython-311.pyc create mode 100644 sut/backend/models/__pycache__/inventory_item.cpython-311.pyc create mode 100644 sut/backend/models/__pycache__/item.cpython-311.pyc create mode 100644 sut/backend/models/__pycache__/location.cpython-311.pyc create mode 100644 sut/backend/models/__pycache__/member.cpython-311.pyc create mode 100644 sut/backend/models/__pycache__/quest.cpython-311.pyc create mode 100644 sut/backend/models/__pycache__/user.cpython-311.pyc create mode 100644 sut/backend/models/inventory_item.py create mode 100644 sut/backend/models/item.py create mode 100644 sut/backend/models/location.py create mode 100644 sut/backend/models/member.py create mode 100644 sut/backend/models/quest.py create mode 100644 sut/backend/models/user.py create mode 100644 sut/backend/requirements.txt create mode 100644 sut/backend/routes/__init__.py create mode 100644 sut/backend/routes/__pycache__/__init__.cpython-311.pyc create mode 100644 sut/backend/routes/__pycache__/auth.cpython-311.pyc create mode 100644 sut/backend/routes/__pycache__/locations.cpython-311.pyc create mode 100644 sut/backend/routes/__pycache__/members.cpython-311.pyc create mode 100644 sut/backend/routes/__pycache__/npc_chat.cpython-311.pyc create mode 100644 sut/backend/routes/__pycache__/quests.cpython-311.pyc create mode 100644 sut/backend/routes/__pycache__/shop.cpython-311.pyc create mode 100644 sut/backend/routes/auth.py create mode 100644 sut/backend/routes/locations.py create mode 100644 sut/backend/routes/members.py create mode 100644 sut/backend/routes/npc_chat.py create mode 100644 sut/backend/routes/quests.py create mode 100644 sut/backend/routes/shop.py create mode 100644 sut/backend/services/__init__.py create mode 100644 sut/backend/services/__pycache__/__init__.cpython-311.pyc create mode 100644 sut/backend/services/__pycache__/auth_service.cpython-311.pyc create mode 100644 sut/backend/services/__pycache__/bargaining_algorithm.cpython-311.pyc create mode 100644 sut/backend/services/__pycache__/bargaining_config.cpython-311.pyc create mode 100644 sut/backend/services/__pycache__/character_profiles.cpython-311.pyc create mode 100644 sut/backend/services/__pycache__/negotiation_logger.cpython-311.pyc create mode 100644 sut/backend/services/__pycache__/npc_chat_service.cpython-311.pyc create mode 100644 sut/backend/services/__pycache__/quest_generation_service.cpython-311.pyc create mode 100644 sut/backend/services/__pycache__/shop_service.cpython-311.pyc create mode 100644 sut/backend/services/auth_service.py create mode 100644 sut/backend/services/bargaining_algorithm.py create mode 100644 sut/backend/services/bargaining_config.py create mode 100644 sut/backend/services/character_profiles.py create mode 100644 sut/backend/services/negotiation_logger.py create mode 100644 sut/backend/services/npc_chat_service.py create mode 100644 sut/backend/services/quest_generation_service.py create mode 100644 sut/backend/services/shop_service.py create mode 100644 sut/backend/utils/__init__.py create mode 100644 sut/backend/utils/__pycache__/__init__.cpython-311.pyc create mode 100644 sut/backend/utils/__pycache__/database.cpython-311.pyc create mode 100644 sut/backend/utils/__pycache__/seed_data.cpython-311.pyc create mode 100644 sut/backend/utils/database.py create mode 100644 sut/backend/utils/seed_data.py create mode 100644 sut/backend/verify_config.py create mode 100644 sut/frontend/.env.example create mode 100644 sut/frontend/.env.local create mode 100644 sut/frontend/Dockerfile create mode 100644 sut/frontend/ENV_URL_SETUP.md create mode 100644 sut/frontend/build/leaflet/leaflet.css create mode 100644 sut/frontend/build/leaflet/leaflet.js create mode 100644 sut/frontend/build/leaflet/marker_cluster/MarkerCluster.Default.css create mode 100644 sut/frontend/build/leaflet/marker_cluster/MarkerCluster.css create mode 100644 sut/frontend/build/leaflet/marker_cluster/leaflet.markercluster.js create mode 100644 sut/frontend/build/leaflet/marker_cluster/leaflet.markercluster.js.map create mode 100644 sut/frontend/build/leaflet/smooth_bounce/BouncingMotion.js create mode 100644 sut/frontend/build/leaflet/smooth_bounce/BouncingMotion3D.js create mode 100644 sut/frontend/build/leaflet/smooth_bounce/BouncingMotionCss3.js create mode 100644 sut/frontend/build/leaflet/smooth_bounce/BouncingMotionSimple.js create mode 100644 sut/frontend/build/leaflet/smooth_bounce/BouncingOptions.js create mode 100644 sut/frontend/build/leaflet/smooth_bounce/Cache.js create mode 100644 sut/frontend/build/leaflet/smooth_bounce/MarkerPrototypeExt.js create mode 100644 sut/frontend/build/leaflet/smooth_bounce/Matrix3D.js create mode 100644 sut/frontend/build/leaflet/smooth_bounce/Orchestration.js create mode 100644 sut/frontend/build/leaflet/smooth_bounce/SmoothMarkerBouncing.js create mode 100644 sut/frontend/build/leaflet/smooth_bounce/Styles.js create mode 100644 sut/frontend/build/leaflet/smooth_bounce/bundle.min.js create mode 100644 sut/frontend/build/leaflet/smooth_bounce/line.js create mode 100644 sut/frontend/build/logo.png create mode 100644 sut/frontend/build/logo_background.png create mode 100644 sut/frontend/build/logo_old.png create mode 100644 sut/frontend/build/middle-earth-map.svg create mode 100644 sut/frontend/build/middle-earth-map.webp create mode 100644 sut/frontend/build/middle-earth-map/data/markers.json create mode 100644 sut/frontend/build/middle-earth-map/data/paths.json create mode 100644 sut/frontend/build/middle-earth-map/fonts/RingbearerMedium.ttf create mode 100644 sut/frontend/build/middle-earth-map/icons/castle.svg create mode 100644 sut/frontend/build/middle-earth-map/icons/close.svg create mode 100644 sut/frontend/build/middle-earth-map/icons/coffee.svg create mode 100644 sut/frontend/build/middle-earth-map/icons/coffin.svg create mode 100644 sut/frontend/build/middle-earth-map/icons/death.svg create mode 100644 sut/frontend/build/middle-earth-map/icons/dwarf.svg create mode 100644 sut/frontend/build/middle-earth-map/icons/earth.svg create mode 100644 sut/frontend/build/middle-earth-map/icons/elf.svg create mode 100644 sut/frontend/build/middle-earth-map/icons/evil.svg create mode 100644 sut/frontend/build/middle-earth-map/icons/eye.svg create mode 100644 sut/frontend/build/middle-earth-map/icons/hobbit.svg create mode 100644 sut/frontend/build/middle-earth-map/icons/layers.svg create mode 100644 sut/frontend/build/middle-earth-map/icons/swords.svg create mode 100644 sut/frontend/build/middle-earth-map/icons/the_one_ring.ico create mode 100644 sut/frontend/build/robots.txt create mode 100644 sut/frontend/build/sitemap.xml create mode 100644 sut/frontend/package-lock.json create mode 100644 sut/frontend/package.json create mode 100644 sut/frontend/postcss.config.js create mode 100644 sut/frontend/public/index.html create mode 100644 sut/frontend/public/leaflet/leaflet.css create mode 100644 sut/frontend/public/leaflet/leaflet.js create mode 100644 sut/frontend/public/leaflet/marker_cluster/MarkerCluster.Default.css create mode 100644 sut/frontend/public/leaflet/marker_cluster/MarkerCluster.css create mode 100644 sut/frontend/public/leaflet/marker_cluster/leaflet.markercluster.js create mode 100644 sut/frontend/public/leaflet/marker_cluster/leaflet.markercluster.js.map create mode 100644 sut/frontend/public/leaflet/smooth_bounce/BouncingMotion.js create mode 100644 sut/frontend/public/leaflet/smooth_bounce/BouncingMotion3D.js create mode 100644 sut/frontend/public/leaflet/smooth_bounce/BouncingMotionCss3.js create mode 100644 sut/frontend/public/leaflet/smooth_bounce/BouncingMotionSimple.js create mode 100644 sut/frontend/public/leaflet/smooth_bounce/BouncingOptions.js create mode 100644 sut/frontend/public/leaflet/smooth_bounce/Cache.js create mode 100644 sut/frontend/public/leaflet/smooth_bounce/MarkerPrototypeExt.js create mode 100644 sut/frontend/public/leaflet/smooth_bounce/Matrix3D.js create mode 100644 sut/frontend/public/leaflet/smooth_bounce/Orchestration.js create mode 100644 sut/frontend/public/leaflet/smooth_bounce/SmoothMarkerBouncing.js create mode 100644 sut/frontend/public/leaflet/smooth_bounce/Styles.js create mode 100644 sut/frontend/public/leaflet/smooth_bounce/bundle.min.js create mode 100644 sut/frontend/public/leaflet/smooth_bounce/line.js create mode 100644 sut/frontend/public/logo.png create mode 100644 sut/frontend/public/logo_background.png create mode 100644 sut/frontend/public/logo_old.png create mode 100644 sut/frontend/public/middle-earth-map.svg create mode 100644 sut/frontend/public/middle-earth-map.webp create mode 100644 sut/frontend/public/middle-earth-map/data/markers.json create mode 100644 sut/frontend/public/middle-earth-map/data/paths.json create mode 100644 sut/frontend/public/middle-earth-map/fonts/RingbearerMedium.ttf create mode 100644 sut/frontend/public/middle-earth-map/icons/castle.svg create mode 100644 sut/frontend/public/middle-earth-map/icons/close.svg create mode 100644 sut/frontend/public/middle-earth-map/icons/coffee.svg create mode 100644 sut/frontend/public/middle-earth-map/icons/coffin.svg create mode 100644 sut/frontend/public/middle-earth-map/icons/death.svg create mode 100644 sut/frontend/public/middle-earth-map/icons/dwarf.svg create mode 100644 sut/frontend/public/middle-earth-map/icons/earth.svg create mode 100644 sut/frontend/public/middle-earth-map/icons/elf.svg create mode 100644 sut/frontend/public/middle-earth-map/icons/evil.svg create mode 100644 sut/frontend/public/middle-earth-map/icons/eye.svg create mode 100644 sut/frontend/public/middle-earth-map/icons/hobbit.svg create mode 100644 sut/frontend/public/middle-earth-map/icons/layers.svg create mode 100644 sut/frontend/public/middle-earth-map/icons/swords.svg create mode 100644 sut/frontend/public/middle-earth-map/icons/the_one_ring.ico create mode 100644 sut/frontend/public/robots.txt create mode 100644 sut/frontend/public/sitemap.xml create mode 100644 sut/frontend/scripts/setup-env-urls.js create mode 100644 sut/frontend/src/App.css create mode 100644 sut/frontend/src/App.tsx create mode 100644 sut/frontend/src/animations.css create mode 100644 sut/frontend/src/components/AppHeader.css create mode 100644 sut/frontend/src/components/AppHeader.tsx create mode 100644 sut/frontend/src/components/CompletedQuestCounter.tsx create mode 100644 sut/frontend/src/components/Dashboard.css create mode 100644 sut/frontend/src/components/Dashboard.tsx create mode 100644 sut/frontend/src/components/GoldCounter.tsx create mode 100644 sut/frontend/src/components/Login.css create mode 100644 sut/frontend/src/components/Login.tsx create mode 100644 sut/frontend/src/components/MiddleEarthMap.css create mode 100644 sut/frontend/src/components/MiddleEarthMap.tsx create mode 100644 sut/frontend/src/components/QuestFilterBar.tsx create mode 100644 sut/frontend/src/components/QuestForm.css create mode 100644 sut/frontend/src/components/QuestForm.tsx create mode 100644 sut/frontend/src/components/QuestList.css create mode 100644 sut/frontend/src/components/QuestList.tsx create mode 100644 sut/frontend/src/components/ScoringCard.tsx create mode 100644 sut/frontend/src/components/characters/CharacterPanel.tsx create mode 100644 sut/frontend/src/components/characters/MapCharacterPanel.tsx create mode 100644 sut/frontend/src/components/middleEarthMapStandalone/FilterSidebar.css create mode 100644 sut/frontend/src/components/middleEarthMapStandalone/FilterSidebar.tsx create mode 100644 sut/frontend/src/components/middleEarthMapStandalone/LoaderScreen.css create mode 100644 sut/frontend/src/components/middleEarthMapStandalone/LoaderScreen.tsx create mode 100644 sut/frontend/src/components/middleEarthMapStandalone/MapController.tsx create mode 100644 sut/frontend/src/components/middleEarthMapStandalone/MapIcons.ts create mode 100644 sut/frontend/src/components/middleEarthMapStandalone/MarkersController.tsx create mode 100644 sut/frontend/src/components/middleEarthMapStandalone/MiddleEarthMapStandalone.css create mode 100644 sut/frontend/src/components/middleEarthMapStandalone/PathsController.tsx create mode 100644 sut/frontend/src/components/middleEarthMapStandalone/QuestDetailsSidebar.css create mode 100644 sut/frontend/src/components/middleEarthMapStandalone/QuestDetailsSidebar.tsx create mode 100644 sut/frontend/src/components/middleEarthMapStandalone/RealWorldMapController.tsx create mode 100644 sut/frontend/src/components/middleEarthMapStandalone/types.ts create mode 100644 sut/frontend/src/components/minigames/FindTheRingGame.tsx create mode 100644 sut/frontend/src/components/minigames/MemoryGame.tsx create mode 100644 sut/frontend/src/components/minigames/QuestCompletionModal.tsx create mode 100644 sut/frontend/src/components/minigames/ReactionGame.tsx create mode 100644 sut/frontend/src/components/minigames/TriviaGame.tsx create mode 100644 sut/frontend/src/components/minigames/index.ts create mode 100644 sut/frontend/src/components/ui/Alert.tsx create mode 100644 sut/frontend/src/components/ui/Avatar.tsx create mode 100644 sut/frontend/src/components/ui/Badge.tsx create mode 100644 sut/frontend/src/components/ui/Button.tsx create mode 100644 sut/frontend/src/components/ui/Card.tsx create mode 100644 sut/frontend/src/components/ui/GuidedWalkthrough.tsx create mode 100644 sut/frontend/src/components/ui/Input.tsx create mode 100644 sut/frontend/src/components/ui/Modal.tsx create mode 100644 sut/frontend/src/components/ui/index.ts create mode 100644 sut/frontend/src/config/designTokens.ts create mode 100644 sut/frontend/src/index.css create mode 100644 sut/frontend/src/index.tsx create mode 100644 sut/frontend/src/pages/DashboardPage.tsx create mode 100644 sut/frontend/src/pages/InventoryPage.tsx create mode 100644 sut/frontend/src/pages/LoginPage.tsx create mode 100644 sut/frontend/src/pages/MapPage.css create mode 100644 sut/frontend/src/pages/MapPage.tsx create mode 100644 sut/frontend/src/pages/QuestsPage.css create mode 100644 sut/frontend/src/pages/QuestsPage.tsx create mode 100644 sut/frontend/src/services/analyticsService.ts create mode 100644 sut/frontend/src/services/api.ts create mode 100644 sut/frontend/src/services/characterService.ts create mode 100644 sut/frontend/src/store/characterStore.ts create mode 100644 sut/frontend/src/store/questStore.ts create mode 100644 sut/frontend/src/types/index.ts create mode 100644 sut/frontend/src/types/middleEarthMap.ts create mode 100644 sut/frontend/src/utils/easterEggs.ts create mode 100644 sut/frontend/src/utils/missionObjective.ts create mode 100644 sut/frontend/src/walkthrough/walkthroughConfig.ts create mode 100644 sut/frontend/tailwind.config.js create mode 100644 sut/frontend/test-results/.last-run.json create mode 100644 sut/frontend/test/components/AppHeader.test.tsx create mode 100644 sut/frontend/test/components/FindTheRingGame.test.tsx create mode 100644 sut/frontend/test/components/MapCharacterPanel.bargainflow.test.tsx create mode 100644 sut/frontend/test/components/MapCharacterPanel.test.tsx create mode 100644 sut/frontend/test/components/MemoryGame.test.tsx create mode 100644 sut/frontend/test/components/MiddleEarthMap.test.tsx create mode 100644 sut/frontend/test/components/QuestCompletionModal.test.tsx create mode 100644 sut/frontend/test/components/QuestFilterBar.test.tsx create mode 100644 sut/frontend/test/components/ReactionGame.test.tsx create mode 100644 sut/frontend/test/components/ScoringCard.test.tsx create mode 100644 sut/frontend/test/components/TriviaGame.test.tsx create mode 100644 sut/frontend/test/services/analyticsService.test.ts create mode 100644 sut/frontend/test/services/api.chat.test.ts create mode 100644 sut/frontend/test/services/characterService.test.ts create mode 100644 sut/frontend/test/setup.ts create mode 100644 sut/frontend/test/store/characterStore.test.ts create mode 100644 sut/frontend/test/store/questStore.test.ts create mode 100644 sut/frontend/test/utils/missionObjective.test.ts create mode 100644 sut/frontend/test/utils/walkthroughConfig.test.ts create mode 100644 sut/frontend/tsconfig.json create mode 100644 sut/frontend/vitest.config.ts diff --git a/caddy/Caddyfile b/caddy/Caddyfile new file mode 100644 index 0000000..9dbf977 --- /dev/null +++ b/caddy/Caddyfile @@ -0,0 +1,18 @@ +# Caddyfile for Fellowship SUT - STAGING +# Domain will be dynamically set via environment variable CADDY_DOMAIN +# Uses Let's Encrypt Staging CA to avoid rate limits (up to 5,000 cert/hour) +# For local development: CADDY_DOMAIN defaults to localhost +# For production certificates, use Caddyfile.prod instead +# For tutorial instances (SUT + Jenkins + IDE), use Caddyfile.fellowship instead + +{$CADDY_DOMAIN:localhost} { + # Use Let's Encrypt staging CA for development and testing + # Staging certs won't be trusted by browsers but avoid rate limits + # Caddy automatically uses self-signed certs for localhost + tls { + ca https://acme-staging-v02.api.letsencrypt.org/directory + } + + reverse_proxy /api/* backend:5000 + reverse_proxy /* frontend:3000 +} diff --git a/caddy/Caddyfile.fellowship b/caddy/Caddyfile.fellowship new file mode 100644 index 0000000..e60a1dd --- /dev/null +++ b/caddy/Caddyfile.fellowship @@ -0,0 +1,54 @@ +# Caddyfile for Fellowship Tutorial Instances +# Used exclusively by setup_fellowship.sh for classroom/tutorial EC2 instances +# that run the full DevOps Escape Room stack (SUT + Jenkins CI + code-server IDE). +# +# This file is NEVER used by the permanent SUT deployment (bootstrap_spot_instance.sh), +# which uses Caddyfile.prod (SUT only) instead. +# +# setup_fellowship.sh copies this file over caddy/Caddyfile before starting +# docker compose, so that the Caddy container picks it up automatically. +# +# Required environment variables: +# CADDY_DOMAIN — SUT domain (e.g. fellowship-pool-8.fellowship.testingfantasy.com) +# JENKINS_DOMAIN — Jenkins domain (jenkins-{CADDY_DOMAIN}) +# IDE_DOMAIN — IDE domain (ide-{CADDY_DOMAIN}) +# GITEA_DOMAIN — Gitea domain (gitea-{CADDY_DOMAIN}) +# +# All four domains must have Route53 A records pointing to the same instance +# public IP as CADDY_DOMAIN. setup_fellowship.sh creates all records. +# +# Routing: +# CADDY_DOMAIN → SUT frontend (port 3000) and backend API (port 5000) +# JENKINS_DOMAIN → Jenkins CI (port 8080, devops-escape-room compose stack) +# IDE_DOMAIN → code-server (port 8443, devops-escape-room compose stack) +# GITEA_DOMAIN → Gitea (port 3030, devops-escape-room compose stack) +# +# Jenkins and code-server are reached via host.docker.internal (host-gateway), +# because they run in a separate docker-compose project from Caddy. +# docker-compose.yml sets extra_hosts: [host.docker.internal:host-gateway]. + +# ── Fellowship SUT ──────────────────────────────────────────────────────────── +{$CADDY_DOMAIN} { + # Let Caddy use its default automatic HTTPS issuers. + # This avoids hard-failing when a single ACME CA is temporarily rate-limited. + + reverse_proxy /api/* backend:5000 + reverse_proxy /* frontend:3000 +} + +# ── Jenkins CI (DevOps Escape Room) ────────────────────────────────────────── +{$JENKINS_DOMAIN} { + reverse_proxy /* host.docker.internal:8080 +} + +# ── code-server IDE (DevOps Escape Room) ───────────────────────────────────── +# Host port 8443 maps to the code-server container's internal port 8080. +{$IDE_DOMAIN} { + reverse_proxy /* host.docker.internal:8443 +} + +# ── Gitea (self-hosted Git, DevOps Escape Room) ─────────────────────────────── +# Host port 3030 maps to Gitea's internal port 3000. +{$GITEA_DOMAIN} { + reverse_proxy /* host.docker.internal:3030 +} diff --git a/caddy/Caddyfile.local b/caddy/Caddyfile.local new file mode 100644 index 0000000..a888113 --- /dev/null +++ b/caddy/Caddyfile.local @@ -0,0 +1,18 @@ +# Caddyfile for Fellowship SUT - LOCAL DEVELOPMENT +# HTTP-only configuration for local development (no HTTPS) +# Explicitly use http:// to avoid automatic HTTPS redirect + +http://localhost, http://127.0.0.1, :80 { + # API routes - Flask handles CORS + handle /api/* { + reverse_proxy backend:5000 + } + + # WebSocket support + handle /ws { + reverse_proxy backend:5000 + } + + # Frontend routes + reverse_proxy /* frontend:3000 +} diff --git a/caddy/Caddyfile.prod b/caddy/Caddyfile.prod new file mode 100644 index 0000000..e54b767 --- /dev/null +++ b/caddy/Caddyfile.prod @@ -0,0 +1,14 @@ +# Caddyfile for Fellowship SUT - PRODUCTION +# Domain will be dynamically set via environment variable CADDY_DOMAIN +# Uses Let's Encrypt Production CA for trusted certificates +# Rate limit: 50 certificates per domain per week +# For local development, use Caddyfile (staging) instead +# For tutorial instances (SUT + Jenkins + IDE), use Caddyfile.fellowship instead + +{$CADDY_DOMAIN:localhost} { + # Let Caddy use its default automatic HTTPS issuers. + # This avoids hard-failing when a single ACME CA is temporarily rate-limited. + + reverse_proxy /api/* backend:5000 + reverse_proxy /* frontend:3000 +} \ No newline at end of file diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..360992b --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,119 @@ +# version is obsolete in newer docker-compose versions +# +# Environment-aware Docker Compose configuration +# Supports both production (fellowship) and local dev (fellowship-local) stacks +# Usage: +# Production: cp .env.prod .env && docker-compose up -d (containers: fellowship_*) +# Local dev: cp .env.local .env && docker-compose up -d (containers: fellowship-local_*) +# +# The COMPOSE_PROJECT_NAME environment variable controls container naming: +# - Omitted or 'fellowship' → containers: fellowship_backend_1, fellowship_frontend_1 +# - 'fellowship-local' → containers: fellowship-local_backend_1, fellowship-local_frontend_1 +# +# This allows both environments to coexist without conflicts. + +services: + backend: + build: + context: ./sut/backend + dockerfile: Dockerfile + # ✓ No container_name: allows COMPOSE_PROJECT_NAME-based naming + # Port 5000 is intentionally NOT exposed to the host — backend is only reached + # via Caddy reverse-proxy (internal Docker network: backend:5000). + # macOS AirPlay Receiver occupies host port 5000 (Monterey+), so binding it + # would fail. Direct API access for debugging: docker exec or /api through Caddy. + volumes: + - backend_data:/app/data + - ./sut/backend:/app + # Exclude node_modules and data from volume mount to avoid conflicts + environment: + - FLASK_APP=app.py + - FLASK_ENV=development + - DATABASE_URL=sqlite:////app/data/fellowship.db + - SECRET_KEY=dev-secret-key-change-in-production + - AZURE_OPENAI_ENDPOINT=${AZURE_OPENAI_ENDPOINT:-} + - AZURE_OPENAI_API_KEY=${AZURE_OPENAI_API_KEY:-} + - AZURE_OPENAI_DEPLOYMENT=${AZURE_OPENAI_DEPLOYMENT:-} + - AZURE_OPENAI_API_VERSION=${AZURE_OPENAI_API_VERSION:-} + working_dir: /app + command: python app.py + restart: unless-stopped + healthcheck: + test: ["CMD", "curl", "-f", "http://localhost:5000/api/health"] + interval: 30s + timeout: 10s + retries: 3 + start_period: 40s + + frontend: + build: + context: ./sut/frontend + dockerfile: Dockerfile + # ✓ No container_name: allows COMPOSE_PROJECT_NAME-based naming + # Port 3000 is intentionally NOT exposed to the host — Caddy reverse-proxies + # to frontend:3000 via the internal Docker network. Colima's sshfs SSH tunnels + # conflict with host-bound :3000, so we leave it unmapped. + volumes: + - ./sut/frontend:/app + - frontend_node_modules:/app/node_modules + environment: + - REACT_APP_API_URL=/api + - REACT_APP_ENABLE_TEST_CONTROLS=${REACT_APP_ENABLE_TEST_CONTROLS:-true} + - CHOKIDAR_USEPOLLING=true + - SKIP_PREFLIGHT_CHECK=true + - DISABLE_ESLINT_PLUGIN=true + - FAST_REFRESH=false + - FRONTEND_MODE=${FRONTEND_MODE:-dev} + - NODE_ENV=development + - WDS_SOCKET_PORT=${WDS_SOCKET_PORT:-80} + - WDS_SOCKET_HOST=${CADDY_DOMAIN:-localhost} + - WDS_SOCKET_PROTOCOL=${WDS_SOCKET_PROTOCOL:-ws} + - WDS_SOCKET_PATH=${WDS_SOCKET_PATH:-/ws} + command: sh -c "npm install && if [ \"${FRONTEND_MODE:-dev}\" = \"prod\" ]; then npm run build && npx --yes serve -s build -l 3000; else npm start; fi" + depends_on: + - backend + restart: unless-stopped + + caddy: + image: caddy:2-alpine + # ✓ No container_name: allows COMPOSE_PROJECT_NAME-based naming + ports: + - "80:80" + - "443:443" + volumes: + - ${CADDYFILE_PATH:-./caddy/Caddyfile.local}:/etc/caddy/Caddyfile:ro + - caddy_data:/data + - caddy_config:/config + environment: + # Use CADDY_DOMAIN from environment/env file, fallback to localhost for local development + CADDY_DOMAIN: ${CADDY_DOMAIN:-localhost} + # DevOps Escape Room HTTPS subdomains — prepend jenkins-/ide- to CADDY_DOMAIN. + # These env vars are required when using Caddyfile (staging) or Caddyfile.prod. + # They are NOT needed when using Caddyfile.local (CI / local HTTP-only dev). + JENKINS_DOMAIN: ${JENKINS_DOMAIN:-} + IDE_DOMAIN: ${IDE_DOMAIN:-} + GITEA_DOMAIN: ${GITEA_DOMAIN:-} + # Allow Caddy to reach services in the devops-escape-room compose stack + # (Jenkins on host:8080 and code-server on host:8443) via host.docker.internal. + extra_hosts: + - "host.docker.internal:host-gateway" + depends_on: + - backend + - frontend + restart: unless-stopped + healthcheck: + test: ["CMD", "curl", "-f", "http://localhost/"] + interval: 10s + timeout: 5s + retries: 3 + start_period: 20s + +volumes: + backend_data: + driver: local + frontend_node_modules: + driver: local + caddy_data: + driver: local + caddy_config: + driver: local \ No newline at end of file diff --git a/nginx/nginx.conf b/nginx/nginx.conf new file mode 100644 index 0000000..a4594a1 --- /dev/null +++ b/nginx/nginx.conf @@ -0,0 +1,79 @@ +events { + worker_connections 1024; +} + +http { + include /etc/nginx/mime.types; + default_type application/octet-stream; + + # Logging + access_log /var/log/nginx/access.log; + error_log /var/log/nginx/error.log; + + # Gzip compression + gzip on; + gzip_vary on; + gzip_min_length 1024; + gzip_types text/plain text/css text/xml text/javascript application/json application/javascript application/xml+rss; + + # Upstream servers + upstream backend { + server backend:5000; + } + + upstream frontend { + server frontend:3000; + } + + server { + listen 80; + server_name _; + + # Increase body size for API requests + client_max_body_size 10M; + + # Swagger UI static files - must come before /api + location ~ ^/api/swagger/(static|favicon|swagger-ui) { + proxy_pass http://backend; + proxy_http_version 1.1; + proxy_set_header Host $host; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header X-Forwarded-Proto $scheme; + } + + # API routes - proxy to backend (CORS handled by Flask) + location /api { + proxy_pass http://backend; + proxy_http_version 1.1; + proxy_set_header Upgrade $http_upgrade; + proxy_set_header Connection 'upgrade'; + proxy_set_header Host $host; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header X-Forwarded-Proto $scheme; + proxy_cache_bypass $http_upgrade; + # Note: CORS headers are handled by Flask-CORS, not nginx + } + + # Frontend routes - proxy to React app + location / { + proxy_pass http://frontend; + proxy_http_version 1.1; + proxy_set_header Upgrade $http_upgrade; + proxy_set_header Connection 'upgrade'; + proxy_set_header Host $host; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header X-Forwarded-Proto $scheme; + proxy_cache_bypass $http_upgrade; + } + + # Health check endpoint + location /health { + access_log off; + return 200 "healthy\n"; + add_header Content-Type text/plain; + } + } +} \ No newline at end of file diff --git a/sut/backend/.env.example b/sut/backend/.env.example new file mode 100644 index 0000000..3fa56c3 --- /dev/null +++ b/sut/backend/.env.example @@ -0,0 +1,14 @@ +# Azure OpenAI Configuration +# Get these values from your Azure OpenAI resource dashboard +AZURE_OPENAI_ENDPOINT=https://.openai.azure.com/ +AZURE_OPENAI_API_KEY=your_api_key_here +AZURE_OPENAI_DEPLOYMENT=gpt-4o +AZURE_OPENAI_API_VERSION=2024-11-20 +AZURE_OPENAI_MAX_TOKENS=500 +AZURE_OPENAI_TEMPERATURE=0.85 + +# Flask Configuration +SECRET_KEY=dev-secret-key-change-in-production + +# Database Configuration (optional—defaults to SQLite) +# DATABASE_URL=sqlite:////app/data/fellowship.db diff --git a/sut/backend/Dockerfile b/sut/backend/Dockerfile new file mode 100644 index 0000000..91fb8d0 --- /dev/null +++ b/sut/backend/Dockerfile @@ -0,0 +1,24 @@ +FROM python:3.11-slim + +WORKDIR /app + +# Install system dependencies +RUN apt-get update && apt-get install -y \ + curl \ + && rm -rf /var/lib/apt/lists/* + +# Copy requirements and install Python dependencies +COPY requirements.txt . +RUN pip install --no-cache-dir -r requirements.txt + +# Copy application code +COPY . . + +# Create data directory for SQLite +RUN mkdir -p /app/data + +# Expose port +EXPOSE 5000 + +# Run the application +CMD ["python", "app.py"] diff --git a/sut/backend/__pycache__/config.cpython-311.pyc b/sut/backend/__pycache__/config.cpython-311.pyc new file mode 100644 index 0000000000000000000000000000000000000000..99041194d7e2bbf52ea123cbdccfb5a3e5a7a9a9 GIT binary patch literal 3135 zcmbVO&2QUA79WbFM9ccHYμSz`PF)OID?X;K76*C}n&wk+!-k`l*U)Py3A9VN1) zQgl9q-K-9K$QA`!EEb57^&&{vYEP7@W1%s(Fww!;%Vh(rs+$4GB^uJn{$*;%CBP<-7{U2RXP#-ycZs{;9=Qqb63`}fmAe5DT&IZL z+Kwyq!d{t#y+U7}mb#$}KUwILY=Rq&eu);&pn2dFxOU0W9@*hwTky@BXK4QRL?N6# z1+w#L&Zq~3SPh8OMs@F~#yBzHS{$DaBSj{g)m{nDBLi^EC`I?V%y zxpA7yeGBOlWHYTtJ7`#w{9=MniD7=TJSxFEffCHfPzl_I_XC-m>HH21Wb=WdT#)uM zxEPeXrqLmvmeNW(HDNL=#k36bO37g0y=+Ml3%ARY8)-R@%EcVJSlG)+Y`&nd2r{ie z7F)4WR)!g+Am5*3qh0NP>o*44&eo01jZ_;rKO zQ#@I5H4!p=Es9ivTMUbl*ivXYw8*7UmXbzqf={NdixDmv7Lyy?$_k$_91YnuZasvs zc*EVe=M#xoLcB0@L0sk6;|5()Dyg6pj8z+sZeQ`w0*dOKH0E3ymm-+C~`F4ePGHe+)hH{oQwHQ-jH>E2X(om9?4~ z^tc}?U#|Y`!RHS&=a}Z4(wyfjtGcrfNyAkqt2x=qYK2?vxuNxWiD&XW%aH8D{3_oTO;NNw|D<9Rd=uw z`N8h|T=-(^v#tGT)jp-!rz*?3#a;sxeOVuQPi6e5BlkxyfBk25WFB|Mua8fv)CiIe z`BmzS-hZ|d)jh0A4c4q+*nhD0B>Fh2PAz=5Q1z~8-j!G0$dNZv^~N-BOr_51p5cSJ zC-aZz)ya>)8>xDD&BMR)gpWMoswbj(A_zzKu?M%F;HN zsLrmvg{vz@*YY|(Cw%mpJcV`dV-mn* z`j|{2rsPAU^(7utsWIKwQ{nZV;YtW!4O49Oj#2i+Pl|Xm$g^)G9WgE&);A?TD$inH zJN&-tvD`rABp|3;XYF^&cBdkn#*R{tywvBEjwSUQU@{>UopT)P+U#$C%6B zsF%RTaj&NfTN~y^A?WbuH|C>8nVpyC&?>z7rSB0zXN@3qu%?1F9duRdmktKi_Fkh# ziA{8#f1mzbm;chLT_Z@sR|9X8ee=&)`pX-Yl_ZAo%1-j-9lUZFuWYIuz&)<_j_6Ld SW}&Pmbo#BPiWy(^&Ho>bRqCAp literal 0 HcmV?d00001 diff --git a/sut/backend/app.py b/sut/backend/app.py new file mode 100644 index 0000000..a71e703 --- /dev/null +++ b/sut/backend/app.py @@ -0,0 +1,229 @@ +"""Main Flask application for the Fellowship Quest Tracker.""" +from dotenv import load_dotenv +import os + +# Load environment variables from .env file (if present) +# This must happen before any config is loaded +load_dotenv() + +from flask import Flask, jsonify, request, session +from flask_cors import CORS +from flask_restx import Api +from config import config +from models.user import db +from utils.database import init_db +from utils.seed_data import seed_database +from routes.auth import auth_bp, auth_api +from routes.quests import quests_bp, quests_api +from routes.members import members_bp, members_api +from routes.locations import locations_bp, locations_api +from routes.npc_chat import npc_chat_bp, npc_chat_api +from routes.shop import shop_bp, shop_api +from services.shop_service import ShopService +from datetime import datetime, timezone, timedelta +from typing import Optional + + +APP_STARTED_AT_UTC = datetime.now(timezone.utc) + + +def _read_uptime_seconds() -> Optional[float]: + try: + with open('/proc/uptime', 'r', encoding='utf-8') as uptime_file: + first_field = uptime_file.read().split()[0] + return float(first_field) + except (OSError, ValueError, IndexError): + return None + + +def _instance_boot_time_utc() -> Optional[datetime]: + uptime_seconds = _read_uptime_seconds() + if uptime_seconds is None: + return None + return datetime.now(timezone.utc) - timedelta(seconds=uptime_seconds) + +def create_app(config_name: str = None) -> Flask: + """Create and configure Flask application.""" + app = Flask(__name__) + + # Load configuration + config_name = config_name or os.environ.get('FLASK_ENV', 'development') + app.config.from_object(config[config_name]) + + # Configure session + app.config['SESSION_COOKIE_HTTPONLY'] = True + app.config['SESSION_COOKIE_SAMESITE'] = 'Lax' # Allows cross-site cookies for development + app.config['SESSION_COOKIE_SECURE'] = False # Set to True in production with HTTPS + + # Initialize CORS with specific origins (required when using credentials) + # Allow both localhost:3000 (dev) and localhost (production via nginx) + # Flask-CORS handles preflight OPTIONS requests automatically + CORS( + app, + supports_credentials=True, + resources={ + r"/api/*": { + "origins": [ + "http://localhost:3000", + "http://localhost", + "http://127.0.0.1:3000", + "http://127.0.0.1", + ] + } + }, + allow_headers=["Content-Type", "Authorization"], + methods=["GET", "POST", "PUT", "DELETE", "OPTIONS"], + ) + + # Initialize database (this also initializes db) + init_db(app) + + # Seed database with initial data + # Skip seeding in test mode + # Skip seeding in test mode + if not app.config.get("TESTING") and not os.environ.get("TESTING"): + seed_database(app) + # Create main API with Swagger documentation + api = Api( + app, + version='1.0', + title='The Fellowship\'s Quest List API', + description='REST API for tracking the Fellowship\'s epic journey through Middle-earth', + doc='/api/swagger/', + prefix='/api' + ) + + # Register blueprints (this registers both the blueprints and their Flask-RESTX routes) + # Flask-RESTX Api objects bound to blueprints automatically register routes when blueprint is registered + app.register_blueprint(auth_bp) + app.register_blueprint(quests_bp) + app.register_blueprint(members_bp) + app.register_blueprint(locations_bp) + app.register_blueprint(npc_chat_bp) + app.register_blueprint(shop_bp) + + # Note: We don't add the Api objects as namespaces because they're already bound to blueprints + # Adding them as namespaces would cause route conflicts. The routes work from blueprints alone. + # For Swagger, each Api has its own documentation, but we can add them to the main API if needed. + # However, this requires creating Namespace objects, not using the Api objects directly. + + # Health check endpoint + @app.route('/api/health') + def health(): + """Health check endpoint.""" + return jsonify({'status': 'healthy', 'service': 'fellowship-quest-tracker'}), 200 + + # Test cleanup endpoint (development only - deletes accumulated test data) + @app.route('/api/test/cleanup', methods=['POST']) + def test_cleanup(): + """Delete quests created during e2e test runs to prevent database bloat.""" + from models.quest import Quest as QuestModel + # Only allowed in non-production environments + if app.config.get('ENV') == 'production': + return jsonify({'error': 'Not available in production'}), 403 + test_patterns = [ + 'BDD', 'Test Quest', 'Find the One Ring', 'Explore Rivendell', + 'Defeat Sauron', 'Completed Quest', 'In Progress Quest', + 'Journey Quest', 'Battle Quest', 'Ring Quest', + 'Mordor Quest', 'Rivendell Quest', 'Dark Magic Quest', + 'Mini-game Quest', + ] + deleted = 0 + try: + for pattern in test_patterns: + quests = QuestModel.query.filter(QuestModel.title.contains(pattern)).all() + for q in quests: + db.session.delete(q) + deleted += 1 + db.session.commit() + return jsonify({'deleted': deleted, 'status': 'ok'}), 200 + except Exception as e: + db.session.rollback() + return jsonify({'error': str(e)}), 500 + + @app.route('/api/test/set_gold', methods=['POST']) + def test_set_gold(): + """Set the current user's gold balance (for e2e testing only).""" + if app.config.get('ENV') == 'production': + return jsonify({'error': 'Not available in production'}), 403 + from models.user import User as UserModel + user_id = session.get('user_id') + if not user_id: + return jsonify({'error': 'Not authenticated'}), 401 + data = request.get_json() or {} + gold = data.get('gold') + if gold is None or not isinstance(gold, int) or gold < 0: + return jsonify({'error': 'gold must be a non-negative integer'}), 400 + try: + user = UserModel.query.get(user_id) + if not user: + return jsonify({'error': 'User not found'}), 404 + user.gold = gold + db.session.commit() + return jsonify({'gold': user.gold, 'status': 'ok'}), 200 + except Exception as e: + db.session.rollback() + return jsonify({'error': str(e)}), 500 + + @app.route('/api/test/reset_shop', methods=['POST']) + def test_reset_shop(): + """Reset all items to not-sold and clear inventory for e2e testing.""" + if app.config.get('ENV') == 'production': + return jsonify({'error': 'Not available in production'}), 403 + try: + result = ShopService.reset_for_tests() + return jsonify(result), 200 + except Exception as e: + return jsonify({'error': str(e)}), 500 + + @app.route('/api/status') + def status(): + """Runtime status endpoint exposed for public uptime/restart information.""" + instance_boot_time = _instance_boot_time_utc() + payload = { + 'status': 'ok', + 'service': 'fellowship-quest-tracker', + 'app_started_at_utc': APP_STARTED_AT_UTC.isoformat(), + 'instance_boot_time_utc': instance_boot_time.isoformat() if instance_boot_time else None, + 'now_utc': datetime.now(timezone.utc).isoformat(), + } + return jsonify(payload), 200 + + # API info endpoint (instead of root, since nginx handles root routing) + @app.route('/api') + def api_info(): + """API information endpoint.""" + return jsonify({ + 'message': 'Welcome to The Fellowship\'s Quest List API', + 'version': '1.0', + 'docs': '/api/swagger/', + 'health': '/api/health', + 'status': '/api/status' + }), 200 + + # Debug endpoint to list all registered routes (development only) + if app.config.get('DEBUG'): + @app.route('/api/routes') + def list_routes(): + """List all registered routes (debug endpoint).""" + routes = [] + for rule in app.url_map.iter_rules(): + if rule.rule.startswith('/api'): + routes.append({ + 'endpoint': rule.endpoint, + 'methods': list(rule.methods - {'HEAD', 'OPTIONS'}), + 'path': str(rule) + }) + return jsonify({'routes': sorted(routes, key=lambda x: x['path'])}), 200 + + return app + +if __name__ == '__main__': + try: + app = create_app() + app.run(host='0.0.0.0', port=5000, debug=True) + except Exception as e: + import traceback + print(f"Error starting application: {e}") + traceback.print_exc() + raise \ No newline at end of file diff --git a/sut/backend/config.py b/sut/backend/config.py new file mode 100644 index 0000000..6a77bba --- /dev/null +++ b/sut/backend/config.py @@ -0,0 +1,57 @@ +"""Configuration settings for the Fellowship Quest Tracker application.""" +import os +from pathlib import Path + +class Config: + """Base configuration.""" + SECRET_KEY = os.environ.get('SECRET_KEY', 'dev-secret-key-change-in-production') + + # SQLite database configuration + BASE_DIR = Path(__file__).parent.parent.parent + DATA_DIR = Path('/app/data') + # Ensure data directory exists + try: + DATA_DIR.mkdir(parents=True, exist_ok=True) + except Exception as e: + print(f"Warning: Could not create data directory: {e}") + DATABASE_PATH = DATA_DIR / 'fellowship.db' + # Use environment variable if set, otherwise use default path + db_url = os.environ.get('DATABASE_URL') + if db_url: + SQLALCHEMY_DATABASE_URI = db_url + else: + # Use 4 slashes for absolute path: sqlite:////absolute/path + SQLALCHEMY_DATABASE_URI = f'sqlite:///{DATABASE_PATH}' + SQLALCHEMY_TRACK_MODIFICATIONS = False + + # API Configuration + RESTX_MASK_SWAGGER = False + RESTX_VALIDATE = True + RESTX_ERROR_404_HELP = False + + # Azure OpenAI configuration (server-side only) + # Load from environment variables—supply via .env file or container env vars + # DO NOT hardcode API keys or other sensitive values + AZURE_OPENAI_ENDPOINT = os.environ.get('AZURE_OPENAI_ENDPOINT', '').strip() + AZURE_OPENAI_API_KEY = os.environ.get('AZURE_OPENAI_API_KEY', '').strip() + AZURE_OPENAI_DEPLOYMENT = os.environ.get('AZURE_OPENAI_DEPLOYMENT', '').strip() + AZURE_OPENAI_API_VERSION = os.environ.get('AZURE_OPENAI_API_VERSION', '2024-11-20').strip() + AZURE_OPENAI_MAX_TOKENS = int(os.environ.get('AZURE_OPENAI_MAX_TOKENS', '500')) + AZURE_OPENAI_TEMPERATURE = float(os.environ.get('AZURE_OPENAI_TEMPERATURE', '0.85')) + +class DevelopmentConfig(Config): + """Development configuration.""" + DEBUG = True + FLASK_ENV = 'development' + +class ProductionConfig(Config): + """Production configuration.""" + DEBUG = False + FLASK_ENV = 'production' + +# Configuration mapping +config = { + 'development': DevelopmentConfig, + 'production': ProductionConfig, + 'default': DevelopmentConfig +} diff --git a/sut/backend/debug_azure.py b/sut/backend/debug_azure.py new file mode 100644 index 0000000..46e7bbe --- /dev/null +++ b/sut/backend/debug_azure.py @@ -0,0 +1,55 @@ +#!/usr/bin/env python3 +"""Debug script to test Azure OpenAI connection and NPC response generation.""" +import sys +sys.path.insert(0, '/app') + +from flask import Flask +from config import Config + +# Quick config check +config = Config() +print("\n" + "="*70) +print("AZURE OPENAI CONFIG CHECK") +print("="*70) +print(f"Endpoint: {config.AZURE_OPENAI_ENDPOINT}") +print(f"API Key Present: {bool(config.AZURE_OPENAI_API_KEY)}") +print(f"API Key Length: {len(config.AZURE_OPENAI_API_KEY) if config.AZURE_OPENAI_API_KEY else 0}") +print(f"Deployment: {config.AZURE_OPENAI_DEPLOYMENT}") +print(f"API Version: {config.AZURE_OPENAI_API_VERSION}") + +# Try to create client +try: + from openai import AzureOpenAI + print("\n" + "="*70) + print("CREATING AZURE OPENAI CLIENT") + print("="*70) + client = AzureOpenAI( + azure_endpoint=config.AZURE_OPENAI_ENDPOINT, + api_key=config.AZURE_OPENAI_API_KEY, + api_version=config.AZURE_OPENAI_API_VERSION, + ) + print("✅ Client created successfully") + + # Try a simple API call + print("\n" + "="*70) + print("TESTING SIMPLE CHAT COMPLETION") + print("="*70) + response = client.chat.completions.create( + model=config.AZURE_OPENAI_DEPLOYMENT, + messages=[ + {"role": "system", "content": "You are Frodo Baggins. Respond briefly in one sentence."}, + {"role": "user", "content": "Do you like sports?"} + ], + temperature=0.7, + max_tokens=100, + ) + print(f"✅ API Call Successful!") + print(f"\nFrodo's Response: {response.choices[0].message.content}") + +except Exception as e: + print(f"\n✗ ERROR: {type(e).__name__}") + print(f"Details: {str(e)}") + import traceback + traceback.print_exc() + +print("\n" + "="*70) diff --git a/sut/backend/models/__init__.py b/sut/backend/models/__init__.py new file mode 100644 index 0000000..80c7145 --- /dev/null +++ b/sut/backend/models/__init__.py @@ -0,0 +1,9 @@ +"""Database models for the Fellowship Quest Tracker.""" +from .user import User +from .quest import Quest +from .member import Member +from .location import Location +from .item import Item +from .inventory_item import InventoryItem + +__all__ = ['User', 'Quest', 'Member', 'Location', 'Item', 'InventoryItem'] diff --git a/sut/backend/models/__pycache__/__init__.cpython-311.pyc b/sut/backend/models/__pycache__/__init__.cpython-311.pyc new file mode 100644 index 0000000000000000000000000000000000000000..90ed730356d3164f0a597595d95bc7aab85f0400 GIT binary patch literal 585 zcmZutze~eF82zsK+1NUWs5nU0E-g-7#7TsT3ZgEz9BFgf;9U|gsZu8={{?pu#Q!EZ zg-n8zo6xP3cV{~Uygc5$`|{m;U-H&&dmz{J^&{#bfG>4euEs*luoTY_0)`NU4Tg9F zH;~c>Gq{OOtxaZe8{1l2%;7F}wYFK4d)U+3VJp0aTL`WpbYBo|hs|^7cn`Y=K^_c) zjQTtYDa-t;MELob`iGRU9n(2IfR7Ch>*&h$Ryog zS+{ByeXX*&&ePW`mn|Z-QDsIlRohjo(K49mqOw=s0b_)`!%QAwzS#@XwDiEy6Q$P)$ P-ch0P=%`1m$x(g*lT@D> literal 0 HcmV?d00001 diff --git a/sut/backend/models/__pycache__/inventory_item.cpython-311.pyc b/sut/backend/models/__pycache__/inventory_item.cpython-311.pyc new file mode 100644 index 0000000000000000000000000000000000000000..7acb6f456425bb444ddef70d0d4adc6a120506ce GIT binary patch literal 2954 zcmb7GO>7fK6y9C0{}Ts?*l8SyEfS!ntz#e{LJ73|*8GHul1ep))y6Y{rR%ksUDMj) z;6o1_sFXvbTBX;Klk@XI2iSZ&y_@w<9=rgZ}{IRuP%e~1BbXGhj=8Yd|4<8Jkx!uuPheDvcKr( zIf1*tA@Ms7`LS?2;2Bx*aol5=?kEOP;0rDrY@|Q0kjW^dX@r3LN%tI08BZ z=nmvt6<6Sy$1vSd480reoP<3j@~`mlBusap09XsIh_DCK9mU9hwibGewQ!HM=)0|< zz-pu?lD_|i?%#%vc~QK@_P{pu#y1V1=xSe2x_4~D$35$ik3mmg-sx$Z?<=r)+}&91 z?}>BBv7PV$D25|9fu5@aJw7CRa651maPe)pVKj)}!y`DgAdGlMxdj33{7x*6!r2Ju zL!j?M37~M2_7^n%$$zNN0o0hpmcSE+>FvdZ&J_EfiBY}#&rEU@H<*1N?9g# z>1$kXglb?y&nf6Ua6Y8fR8^i=G4(4N!rwMR&O>mT6$mR@8mMW?of^*a&XO=Ldq+Wp z7v!31z*#?oip)7M+P6?4Sh=aO*XcAkFPFY1c!7#6g3bOp9@7B9MvZ8tF4w_SA52!x zuadC)19y+R4GVXG-bI4mtu4^I4S@7*Ufu3ijK(8=^GOfRYen3@;Jl9D;kxVu+o4T< zcB>iood(FxK#zJDGO~HK%%a{lw(^sChJUSbN%F;l{hqRC}U2NF5gwOo4QoRqy%}TF}ZZ7rV#8s6)6!c8?cm(Y(HW3M3PJlgP6YZ7Zbag7-J$00^HUsK(VrHJmRUSV|77il*qi^Jtb@r}fmqRPG5X0GUqAe!8IfZI8|wBH^cUApIr4<=Wq&5@I>q4r37tTpyz z!aniI(}J14+A`X8D}BsNAA2@sPaXTUV2)mBO|_@3(Y!gD|82@njkPE3@%`5L$98($ zN*}hz_E=*F?dh4PX)|@LHPN1YkvjZ5b-0r{Vx^9lsUy$O`f%Tl$U5hWaO4&E#BHe$ z##E<1-UkJKG#RTI$QeI!NPu;>N?`5#$q$SXXB$H&wuGKxl$dD*oFB!R*ZfH+?QUAg zIGA(4EZGYx4M~vjDv_i{a*LImx4)k~z*5xY?192EdZ?NM1-PC}JpItsm<$yN1I}i5 zGm9+gl0+kt1bM5eOz)GVJ2hE-a}ty!R4KuBza$x~Rk{0w#ZLogDr&8)(O^L{@J&n{ zX3@xbw*g(k^-bY)`9%Ha)rxFv(29o60ynQKPzT~dO)JrOsYVFUSTbNwH{^2FWnLe_ zs>~`vzok^E$i5!QfFFdl80ymvLRf0ZJ|+%;c*HreI^U15KH&(~K=kh+LCx-;Egmq% z122d6Hm|%458fYqFtT`P>G&^GW;ovo=dEzQdD@N*-=BY=w1jqK`O5O?hga4PbS7r3 ziJ519bM7lMR_w%zR;<{(@K3-mi)QRbCw9Y%-2h-bwK%vm(mK>WzUDXMM?3MOR{Uu5 zqMaIV?P+J>9T%S@%+#q)>Xel_Ws1XgGQBvzq$~>$Lu*IOWft@hYD2g_cO;r$o+*7!Qd z?*A;^OtB=*WZ*ggv;rZ zw!Hyi{R~Y@$}MXe>!J>y#wL6^*5cz B%Ax=O literal 0 HcmV?d00001 diff --git a/sut/backend/models/__pycache__/item.cpython-311.pyc b/sut/backend/models/__pycache__/item.cpython-311.pyc new file mode 100644 index 0000000000000000000000000000000000000000..6ab684824ab0bd744e75e9ecd752128170ede5c4 GIT binary patch literal 2820 zcmb_eO-vhC5Z+y{|M~F`g6w)#CRc8|=07cHIP& zgAY06z=2AZVyRSeBt(hAA%`Av=%L3P*JveHdy3Q(H%H`@Q|Iks2b;8Nq&{}%&6_tf zZ+7OJXMSsJ^f542Hg~0~E{6GwE-J%$$Q(=q^Nc}EoIxz&l5C2Lb1dZ@Nk@v0^C@TC z$ub;sjY0eq201ZzAAH$k%fT=&;k8HHja+j~%)Qz-Ba&sTMkN)eqNy~($>?I5L}zbY ziY|y`Nt9$sUK-e^Rx#G(&_awe`O8v5H67o}D~UsQ)>Jv_V3(s|VkXW)s2pPB4#dTI zj=|24;Q;Th7$e6HzXdig;k8HHQ>$&Qyp>(#++sl+UV9+dj=Rp@S8ETa`K#KFW7-Y1 z+I6RS>Q94sy>;nq{8taYV;=lF4Rs!xYCY8C=lJ(Ef0lOOn0Bz54HsmuK9%poVTH7d;+)Q$RgKXjd+nmfhT;t1NPd1 z4+7tbLeMN>lb?hxSslD3OAoR*s^DZ&Tu5TOchV1KjG_xGQBk(KCvi_CVnW4az;x2) zQs$w5{23ypM6x0*0+XMKjCh*lp1ipG_ z0M8%MuiQ%1Po?!KUu|pBesopzRBVsVwP2B1#DYz=(Jc?v)qnMXxD79q%dt8zhlwO6 zrBxh#D5>|-Sv5-VPZ%WfQuLmL5SHPRQ*acjlE4GAF|Wx<$mC@)g-t)gN`gokRZ7cd zGp#NWsx>vk8BCP446f7_Aw$xOQWBdDqOuIGVGZs~x1BmdYK|L%`2EpoHayD_*I8QzTymm;HjWK@fczCr)GSq}RG zzA|GIukQfPWoqC_fo8#zrT~8CC={rYHGW|b_p5`Jb#~QtfqqQ%1A7tRZ>8@m(6O^Y zqQIISK_ECo1Yxz&`tHh-c9TLaa*Wa3Ti`dmT66E=curnL`lA2Qt2!iPo1W0T) zN%;mrc#sv7hdXXTKTdcd9Buqq7%<%v>2wl{vIPdya~W_nF9ACF#jKn#gNZC5SXKoUWQr=LG8SGe zkPzCdrbAH)p`A*;rlb$Z3RD^Y|tt3_xBE6)K?x$2+6k8Aw++m?>p%v*2hX=tr| z{Y?Jc_K4;kDtU)=?@(^S@V7iYvo^kdXZ>dWPC@zkZvO5z*8C$S|A_7%$z3)=9qZls zSYcx0+BVWc!==!$9vaSFH(I;a7xGfkTjVyq+uhF_Hyd9&|D4xar%J6;dh1l~2P4u` z=-!AGCyNuCliLf=XEtYEUwLz0i`*_nZtIcT8sBCFBkQ4jd*RH+xmQjtc(xQgs|U~K zri^eW1Ug>0xe+^Gpx+3F^KE;< zQ@g=arQm5jc)IN7L#}rWkoT12rpgTsPG6BP&TaP;f81;;Gq9{DovgF3&{Jk$`bT0{ zj}~q=<{>edO~2jz16c*2W&==N$xx_K5Lop$oip^GJGt9=ZnQ~T6YcJ;6j`*8v|8GA?N??16=1@ku!7l3vE literal 0 HcmV?d00001 diff --git a/sut/backend/models/__pycache__/location.cpython-311.pyc b/sut/backend/models/__pycache__/location.cpython-311.pyc new file mode 100644 index 0000000000000000000000000000000000000000..0efe2de5d955d57fe8492e7c771e3f1a9377b340 GIT binary patch literal 2149 zcmb7F&2JM&6rWwMzikp5=fe(dtd^>{RUHch5-mjvq@a|LN+Fl{z-sYK62p3JX4e&t zD&zx)9C9#~B`h_Sa;VZEIB@8phyDRQt|LpV=2WRCZm#Glr@q)Y=jV7lf?za%+OOr0EMQR;s$xkLxb9PZRjDLZ{UyJE zM06El=>fuiBHj+To9y}!dIGOAN?TU~iyv`_vhNJCO*!5!nE}ZZLUT5F{><~P1%gFE!a9-4l_dN|AIWIOG z{a@$3@qK*wdpPabznnJmzoJLqh)%eB!#PP;-#PATug|-%c;XqJhL7Akg(GB)jFX8~ zG3`aIia7c}DouiK9P}9IX&eX69AhDuGn8Y+!X8DIfgRC0tyC4-l<$z{3k?1%K$ei! zP*vrYN?4$wRqi%OPM|UHL3|LCRi&XCEI^6Tpjz2O6#OB0IcHyf58@H}4&8>?8K8TS zpnI$V-D5fE&`Vyt%T2zI*B3PX`fA7Hqx&77hwG;ay!*C;Pz&G2^yQlNEun_jCt0JG z#n2kiQc#8bVlK$U3TBd~R0)e>qL*o<&b|D?Ykc-smAZV-nVKw8rbICamK7rxq8wz( z(WM+%n&M)Ni*YU{K(KH{uR+&V72~nMB%P?MIxkH2U}8q8*Jtdu)@NLd^7SSQ8a0`x zxH0MinLo7fYm)5 zd7dfmXNtYd*?#7%nK}DA9*l%WBLn1!aO5RyiH4Bn7}>~9f&#y30-(Ty?C}G_;*UOF z-^Go{1vkm;fp8IcV^@Ro)VU^|0+oeinUXq{<&A_Jo_9^}@mOB87P3Z8b?3I{&5=`w zPv{io?!{b&Z^1E=WfqZTs9HnidQ6t@HWc;H6O?6KD}y;M%LeDOW2c;DEO5D|HmVv6 z&T9r)Bh&_u1#TF$qOI9!GijOJGhRW-{8!YPV!T3>h2{YJDT z+)Qqz+owC9@0~HjgU2@Q zp#!WA*haI?VdbT@F<}1d{2!=O^cimD#Ik`n2wiaabdeUp#=BF$17hG41i?ZD6BR6! gF^3-uoiN|_45YLGxxXnk>DIl!xc%?9IPGNq0ee;Om;e9( literal 0 HcmV?d00001 diff --git a/sut/backend/models/__pycache__/member.cpython-311.pyc b/sut/backend/models/__pycache__/member.cpython-311.pyc new file mode 100644 index 0000000000000000000000000000000000000000..d7c2d6c3d4fff6392e8699254a01f279a3f752c8 GIT binary patch literal 2194 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 NCmsLS8<>WX{{^jSzuf=; literal 0 HcmV?d00001 diff --git a/sut/backend/models/__pycache__/user.cpython-311.pyc b/sut/backend/models/__pycache__/user.cpython-311.pyc new file mode 100644 index 0000000000000000000000000000000000000000..23c1aa46029e487ab31c4b65d5e6fe7d5e25a759 GIT binary patch literal 3048 zcmb6bO>7fa`ptMe9y@j%V-v6;?5NNsUhRf7A=T0)72&7F1tPYPN*#el6TjzV$arkt zj9YARa3xels1hlP6qjaIAF4En960pAp@$xOw2`G+bE;JBfty$K#HIVanb=K2*cHz+ z-}~P8eeaw1{XTyeiG&c0^0!a*DG{Mx*`hoAo5=GbAS(zX1z`^J2AAg*o@2Pr@Z|+X z$omz)yA}*FA5a2$Ns&0jBf_u2&PQE+ND1=jeT4mY5Ee=BhWlm4T=RhxyxvgyaNr6` zOD_)1ScJ;?0w#u>D^OW0+4ID-^{i&=1#{#X6Hjwa=*mAYP8r#Gk}s!uXK;>~glaZX zi<)J9TA)~+*Q|Lb4g%SQ?L-h4&gxm)@lBcK?B?g)30&ch=U?#5bb=HP%;zzu_%N>s z#9!}9Yzlf4@!tq^3D~zGtikR_@Ond$UcIj#>`HB&v44#N4e)vc`>+Ul18V|M;q`_R zdTqVZ%X&A0JHznWT0=XuiW_}9JP>|uo#FqhGxBPkTcRQ2$VUGT3;X}a&S=-W5YvG! zUXOLLt@HLI--zz8c@G{SaU8>YasrOu5tM|tCVOF>fb}4bk$ogi_UHIyPi>CJdx4h( zUL5d2z*Be+l*K+rU}ZsBRyqC>pw?9=g1#cv^BOIy3#9z)GVtC@`y8=k>NiWok<5}| zXtM@!{JM$Bt!KADAkEW$m?$&!+3$?NdH5LM`frePAiUwj+skp_v%F-*{G2ITL3S^D5xUJ`ZiCjix@e&7kCysqAb6NAJdA( zV{TKijxqO*6w6K+zSC~ICT(KGutx7{V+1gp0>-mu zL|O9C6o5@r=|RAq{_TCQ5_gT;PGmbRW+RvveWQN7b$H_Ot!DI8D|)ISouY?;lkFWA z7Ocm)5&j&I6?7ZjfY}>>_ap)D+H=H z%O5KPpo%&oitk%K+TMR~HPYUjTvpnN{mU5-oS6LKPmR=vwIi#?eol=)O^r8G6Rp%l zBQ^08?nD9up$_suF!XX{n2+7a><0v{Yz{mMm^Z#gnEw~6FyC}VJjsqGzu?}5s&=hR zgV0tZBvqxPNL95Gajobshnbw0EbZuUO<0XIqQjeyH0&NJeZYa;%+0Fmgj5x(tzNvj{f>ph5wF-(H|Ms5#ZCHN zY#iw<1n{a3@fC6J2DxFS?Ei`j*j;Vifq++gzqT;k5Qf`{1Jz5v1pDqK?gjegcCUQ5T-)BmsMK4#+x5NGSGIujevn%?2z3%(c zTsGIQJ~_9TX@*a?!l$d}+KIuH%>7Jl_8a|yzV7?VTs0q;mNL!6WGgXQz0~fD+&gji z#L|Z=AK(ADM!&qie0_ap@kFz4ywx{eJ=U`j5x_ z_ko{BGfzh|&Cv_3(F;q-X6#}scCq?FN8tS*arG-5#OC#@-nfevw-{%NTerP= z7bpe&p<1Grt&i8{R}Xa%EO&xI&Y!Lw?jV?63A_NY*i5Ix^evd3ft;aP3#xU~(7gYJ zRAA)Tr-Uw4NNEmwJLH9Km)%>#?VgTkmy0a5{z!sxw#R>o{r&Vpe-a3Pq{9p8q?gz4 z(kWoD^0$@%bbK7gwb79VI?_f*8{3~Y$~1O++UQ_ow+9-9I8aqSyLRVVmG1~L2Yz@N SERKEg_x~{ZZ@Vzv6aN<%-m*FX literal 0 HcmV?d00001 diff --git a/sut/backend/models/inventory_item.py b/sut/backend/models/inventory_item.py new file mode 100644 index 0000000..3b59619 --- /dev/null +++ b/sut/backend/models/inventory_item.py @@ -0,0 +1,40 @@ +"""Purchased inventory item model.""" +from models.user import db +from typing import Dict, Any + + +class InventoryItem(db.Model): + """User-owned purchased item entry.""" + + __tablename__ = 'inventory_items' + + id = db.Column(db.Integer, primary_key=True) + user_id = db.Column(db.Integer, db.ForeignKey('users.id'), nullable=False, index=True) + item_id = db.Column(db.Integer, db.ForeignKey('items.id'), nullable=False, unique=True) + paid_price = db.Column(db.Integer, nullable=False) + base_price_revealed = db.Column(db.Integer, nullable=False) + savings_percent = db.Column(db.Float, nullable=False) + acquired_price = db.Column(db.Integer, nullable=False, default=0) # Legacy field, set to paid_price + created_at = db.Column(db.DateTime, default=db.func.current_timestamp()) + + user = db.relationship('User', foreign_keys=[user_id], backref='inventory_items') + item = db.relationship('Item', foreign_keys=[item_id], backref='inventory_entry') + + def to_dict(self) -> Dict[str, Any]: + """Serialize full inventory item details.""" + return { + 'id': self.id, + 'user_id': self.user_id, + 'item_id': self.item_id, + 'item_name': self.item.name if self.item else None, + 'owner_character': self.item.owner_character if self.item else None, + 'description': self.item.description if self.item else None, + 'paid_price': self.paid_price, + 'base_price_revealed': self.base_price_revealed, + 'savings_percent': self.savings_percent, + 'acquired_price': self.acquired_price, + 'created_at': self.created_at.isoformat() if self.created_at else None, + } + + def __repr__(self) -> str: + return f'' diff --git a/sut/backend/models/item.py b/sut/backend/models/item.py new file mode 100644 index 0000000..fe82da2 --- /dev/null +++ b/sut/backend/models/item.py @@ -0,0 +1,41 @@ +"""Market item model for NPC bargaining.""" +from models.user import db +from typing import Dict, Any + + +class Item(db.Model): + """Unique sellable item owned by an NPC character.""" + + __tablename__ = 'items' + + id = db.Column(db.Integer, primary_key=True) + name = db.Column(db.String(200), nullable=False) + description = db.Column(db.Text, nullable=True) + owner_character = db.Column(db.String(80), nullable=False, index=True) + personality_profile = db.Column(db.String(40), nullable=False, default='bargainer') + base_price = db.Column(db.Integer, nullable=False) + asking_price = db.Column(db.Integer, nullable=False) + is_sold = db.Column(db.Boolean, nullable=False, default=False) + created_at = db.Column(db.DateTime, default=db.func.current_timestamp()) + updated_at = db.Column( + db.DateTime, + default=db.func.current_timestamp(), + onupdate=db.func.current_timestamp(), + ) + + def to_public_dict(self) -> Dict[str, Any]: + """Serialize without revealing hidden base price.""" + return { + 'id': self.id, + 'name': self.name, + 'description': self.description, + 'owner_character': self.owner_character, + 'personality_profile': self.personality_profile, + 'asking_price': self.asking_price, + 'is_sold': self.is_sold, + 'created_at': self.created_at.isoformat() if self.created_at else None, + 'updated_at': self.updated_at.isoformat() if self.updated_at else None, + } + + def __repr__(self) -> str: + return f'' diff --git a/sut/backend/models/location.py b/sut/backend/models/location.py new file mode 100644 index 0000000..70cbf8c --- /dev/null +++ b/sut/backend/models/location.py @@ -0,0 +1,30 @@ +"""Location model for Middle-earth locations.""" +from models.user import db +from typing import Dict, Any + +class Location(db.Model): + """Location model for Middle-earth locations.""" + __tablename__ = 'locations' + + id = db.Column(db.Integer, primary_key=True) + name = db.Column(db.String(100), nullable=False, unique=True) + description = db.Column(db.Text, nullable=True) + region = db.Column(db.String(100), nullable=False) # Eriador, Rhovanion, Mordor, etc. + map_x = db.Column(db.Float, nullable=True) # X coordinate on map (pixel, 0-5000, horizontal) + map_y = db.Column(db.Float, nullable=True) # Y coordinate on map (pixel, 0-4344, vertical) + created_at = db.Column(db.DateTime, default=db.func.current_timestamp()) + + def to_dict(self) -> Dict[str, Any]: + """Convert location to dictionary.""" + return { + 'id': self.id, + 'name': self.name, + 'description': self.description, + 'region': self.region, + 'map_x': self.map_x, + 'map_y': self.map_y, + 'created_at': self.created_at.isoformat() if self.created_at else None + } + + def __repr__(self) -> str: + return f'' diff --git a/sut/backend/models/member.py b/sut/backend/models/member.py new file mode 100644 index 0000000..092c9df --- /dev/null +++ b/sut/backend/models/member.py @@ -0,0 +1,30 @@ +"""Fellowship member model.""" +from models.user import db +from typing import Dict, Any + +class Member(db.Model): + """Fellowship member model.""" + __tablename__ = 'members' + + id = db.Column(db.Integer, primary_key=True) + name = db.Column(db.String(100), nullable=False, unique=True) + race = db.Column(db.String(50), nullable=False) # Hobbit, Human, Elf, Dwarf, Wizard + role = db.Column(db.String(100), nullable=False) # Ring-bearer, Companion, Ranger, etc. + status = db.Column(db.String(20), nullable=False, default='active') # active, inactive + description = db.Column(db.Text, nullable=True) + created_at = db.Column(db.DateTime, default=db.func.current_timestamp()) + + def to_dict(self) -> Dict[str, Any]: + """Convert member to dictionary.""" + return { + 'id': self.id, + 'name': self.name, + 'race': self.race, + 'role': self.role, + 'status': self.status, + 'description': self.description, + 'created_at': self.created_at.isoformat() if self.created_at else None + } + + def __repr__(self) -> str: + return f'' diff --git a/sut/backend/models/quest.py b/sut/backend/models/quest.py new file mode 100644 index 0000000..df2b477 --- /dev/null +++ b/sut/backend/models/quest.py @@ -0,0 +1,58 @@ +"""Quest model for tracking Fellowship quests.""" +from models.user import db +from datetime import datetime +from typing import Dict, Any, Optional + +class Quest(db.Model): + """Quest model for tracking Fellowship quests.""" + __tablename__ = 'quests' + + id = db.Column(db.Integer, primary_key=True) + title = db.Column(db.String(200), nullable=False) + description = db.Column(db.Text, nullable=True) + status = db.Column(db.String(50), nullable=False, default='not_yet_begun') # not_yet_begun, the_road_goes_ever_on, it_is_done, the_shadow_falls + quest_type = db.Column(db.String(50), nullable=True) # The Journey, The Battle, The Fellowship, The Ring, Dark Magic + priority = db.Column(db.String(20), nullable=True) # Critical, Important, Standard + is_dark_magic = db.Column(db.Boolean, default=False, nullable=False) + assigned_to = db.Column(db.Integer, db.ForeignKey('users.id'), nullable=True) + location_id = db.Column(db.Integer, db.ForeignKey('locations.id'), nullable=True) + character_quote = db.Column(db.Text, nullable=True) + created_at = db.Column(db.DateTime, default=db.func.current_timestamp()) + updated_at = db.Column(db.DateTime, default=db.func.current_timestamp(), onupdate=db.func.current_timestamp()) + completed_at = db.Column(db.DateTime, nullable=True) + + # Relationships + assignee = db.relationship('User', foreign_keys=[assigned_to], backref='quests') + location = db.relationship('Location', foreign_keys=[location_id], backref='quests') + + def to_dict(self) -> Dict[str, Any]: + """Convert quest to dictionary.""" + # Map old status values to new LOTR terminology for backward compatibility + status_mapping = { + 'pending': 'not_yet_begun', + 'in_progress': 'the_road_goes_ever_on', + 'completed': 'it_is_done', + 'blocked': 'the_shadow_falls' + } + mapped_status = status_mapping.get(self.status, self.status) + + return { + 'id': self.id, + 'title': self.title, + 'description': self.description, + 'status': mapped_status, + 'quest_type': self.quest_type, + 'priority': self.priority, + 'is_dark_magic': self.is_dark_magic, + 'assigned_to': self.assigned_to, + 'location_id': self.location_id, + 'location_name': self.location.name if self.location else None, + 'assignee_name': self.assignee.username if self.assignee else None, + 'character_quote': self.character_quote, + 'created_at': self.created_at.isoformat() if self.created_at else None, + 'updated_at': self.updated_at.isoformat() if self.updated_at else None, + 'completed_at': self.completed_at.isoformat() if self.completed_at else None + } + + def __repr__(self) -> str: + return f'' diff --git a/sut/backend/models/user.py b/sut/backend/models/user.py new file mode 100644 index 0000000..4e31657 --- /dev/null +++ b/sut/backend/models/user.py @@ -0,0 +1,41 @@ +"""User model for authentication.""" +from flask_sqlalchemy import SQLAlchemy +from werkzeug.security import generate_password_hash, check_password_hash +from typing import Dict, Any + +# Shared db instance for all models +db = SQLAlchemy() + +class User(db.Model): + """User model for authentication.""" + __tablename__ = 'users' + + id = db.Column(db.Integer, primary_key=True) + username = db.Column(db.String(80), unique=True, nullable=False, index=True) + email = db.Column(db.String(120), unique=True, nullable=False) + password_hash = db.Column(db.String(255), nullable=False) + role = db.Column(db.String(50), nullable=False) # Fellowship member name + gold = db.Column(db.Integer, nullable=False, default=500) + created_at = db.Column(db.DateTime, default=db.func.current_timestamp()) + + def set_password(self, password: str) -> None: + """Hash and set password.""" + self.password_hash = generate_password_hash(password, method='pbkdf2:sha256') + + def check_password(self, password: str) -> bool: + """Check if provided password matches hash.""" + return check_password_hash(self.password_hash, password) + + def to_dict(self) -> Dict[str, Any]: + """Convert user to dictionary.""" + return { + 'id': self.id, + 'username': self.username, + 'email': self.email, + 'role': self.role, + 'gold': self.gold, + 'created_at': self.created_at.isoformat() if self.created_at else None + } + + def __repr__(self) -> str: + return f'' diff --git a/sut/backend/requirements.txt b/sut/backend/requirements.txt new file mode 100644 index 0000000..893f1a3 --- /dev/null +++ b/sut/backend/requirements.txt @@ -0,0 +1,10 @@ +Flask==3.0.0 +flask-restx==1.3.0 +flask-cors==4.0.0 +flask-sqlalchemy==3.1.1 +flask-migrate==4.0.5 +werkzeug==3.0.1 +python-dotenv==1.0.0 +bcrypt==4.1.2 +openai==1.3.9 +httpx==0.24.1 diff --git a/sut/backend/routes/__init__.py b/sut/backend/routes/__init__.py new file mode 100644 index 0000000..ff4cf4a --- /dev/null +++ b/sut/backend/routes/__init__.py @@ -0,0 +1 @@ +"""API routes for the Fellowship Quest Tracker.""" diff --git a/sut/backend/routes/__pycache__/__init__.cpython-311.pyc b/sut/backend/routes/__pycache__/__init__.cpython-311.pyc new file mode 100644 index 0000000000000000000000000000000000000000..a2f9f1d6b9df57f700b5503c80e477b2a7fe7538 GIT binary patch literal 190 zcmZ3^%ge<81eHrJWf}wN#~=<2FhUuhK}x1Gq%cG=q%a0EXfjplI0kqs6y=weq!ufr zOd|i76cL>m>C%vZ!j2LfT1E5 GpeO)HBr)v( literal 0 HcmV?d00001 diff --git a/sut/backend/routes/__pycache__/auth.cpython-311.pyc b/sut/backend/routes/__pycache__/auth.cpython-311.pyc new file mode 100644 index 0000000000000000000000000000000000000000..4c9ca9d54ecbb9090da41080f4dab07af3ca0b30 GIT binary patch literal 7728 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 literal 0 HcmV?d00001 diff --git a/sut/backend/routes/__pycache__/members.cpython-311.pyc b/sut/backend/routes/__pycache__/members.cpython-311.pyc new file mode 100644 index 0000000000000000000000000000000000000000..7c4d825b7bc3dec1c3e58e3b994096aadeb81218 GIT binary patch literal 3618 zcmcgu&2Jmm5r6whik}i`eOYm|mPOUHEy}LwSg|FhatsFnnj9jeXjudcn)@U(-4&U) z%Q_lcnDkt) zhLo2KIWK!_q8>1U`JgwJ^gbh$4;kTn*ofpK9N`J&HJL`Wz;5ulK*$TY{g#h`PNXrd zPYdmaPw3(_Uhi*PcK2EYcFA83wAZxgZtOV+e&P0;r%$wJTKo)s{~7v$GxUiw^vN^y z=T7Ri!M_KdL;hdD?YDdqvT?3G>+ZFolV|^kXv0s4HbSM|j6R2LFFITEgKzaX`Ua2Z z!QPnwcN*@oCQOyQ^1eg_TyVwBQPh zm699$jGE;tD^gcpE>T@G!Akzb+YBb+y;9Kv!__rc{B_B++<@=btcf#)N(pR3Ri>*I zMwd%p->(H{TIw|K3R=17%D%>p`5xg}mGY`dYkmG)`S{)soEz4tS!AV(RVuI6!Y$2e z!JwT9D-^pXWu4ZdEi=<9SXHx@Xid94B|c=dfIbzgWKb|PD(QgBmo!&I=dOreL4rG1 z_WdxdZ8ucJjZ{+$)@yF2*m-j>2(~6iFJZ7vD9LkxR9@rq0u}30w`qG!<=(dnc7e98 zyVv+#q1RFqX^{5O5DnAFGC$feJ|59%_xdugNl(PyYU`clW10+=5^zI)zVMaSE}pI$ z9o7}Ps#VHRDQ2d2{v&EB1zlH8nVJl#!j&1ds%*8`VFFl03?btjR?Cs%YdO{MxcM|TS_dslu6|zpg7<$aDb9I=X zZoOgrm47`OI}!HaxtTcos!@Jp|CG%=pM_10qvddmWm`ycWww zC0Cm`egT;kYGvm2ae(NYSMFG7E#E6(d8xt^iN2wV;WmfRSKvnb$#VkbehBa`f4? zgT%ysVxp0lbP|)Bfu{kw1V<*xv?shhmS~4-P}B_0P;h+_zgtE@`k@C1YzP66-Dvu6>GTG-<>%GDMHQ6fbc+?7Z3Uud2+6YAOF{A+x zYHSuqH&7tZ*e_9FJ-!iRH&KB?f!q8RL^sB!ZE@Pe*oA%Rg8lAnL&`c*wu7-*#2Bt1 z#!}xcA&ye@&v&wW!rszea5wjI*1no^QXhDVV}aFp}OMN!wR$H$x+vQ%^JX-`k-ZjnEAzbfXy=-Ms(w zle%F?vW-aAiDdt)mDt$k@>63cZpY>tu{kF;*Gwu~?>$?vrx)$y-A3}Rlf2tZjBian zo3^k0%1$gc5{ph^@h~1-;13CipGa_2_!)&w1`p2>K6=0<_PNB?Y=awixZy)S$N^=a y7F#2*m0N(V+yayqKhiNic48+}4Q|TerqB!2+-b2jhh9?XC52voaoX4`(EkAWWkde} literal 0 HcmV?d00001 diff --git a/sut/backend/routes/__pycache__/npc_chat.cpython-311.pyc b/sut/backend/routes/__pycache__/npc_chat.cpython-311.pyc new file mode 100644 index 0000000000000000000000000000000000000000..cbce8a4f6f1c67b4614b702acffc3b46383ef1b3 GIT binary patch literal 10187 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 DQ!O6t literal 0 HcmV?d00001 diff --git a/sut/backend/routes/__pycache__/shop.cpython-311.pyc b/sut/backend/routes/__pycache__/shop.cpython-311.pyc new file mode 100644 index 0000000000000000000000000000000000000000..29ba918a0ab9601bda3696d29101c8e2c605ca92 GIT binary patch literal 8718 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 tuple[Dict[str, Any], int]: + """Register a user and immediately log them in.""" + data = request.get_json() or {} + + username = data.get('username') + password = data.get('password') + email = data.get('email') + + try: + user = register_user(username=username, password=password, email=email) + except ValueError as error: + return {'error': str(error)}, 400 + + session['user_id'] = user.id + session['username'] = user.username + + return { + 'message': 'Signup successful', + 'user': user.to_dict(), + }, 201 + +@auth_api.route('/login') +class Login(Resource): + """User login endpoint.""" + + @auth_api.expect(login_model) + @auth_api.marshal_with(login_response_model) + @auth_api.doc(description='Authenticate user and create session') + def post(self) -> tuple[Dict[str, Any], int]: + """Login user.""" + data = request.get_json() + username = data.get('username') + password = data.get('password') + + if not username or not password: + return {'error': 'Username and password are required'}, 400 + + user = authenticate_user(username, password) + if not user: + return {'error': 'Invalid credentials'}, 401 + + # Create session + session['user_id'] = user.id + session['username'] = user.username + + return { + 'message': 'Login successful', + 'user': user.to_dict() + }, 200 + +@auth_api.route('/logout') +class Logout(Resource): + """User logout endpoint.""" + + @auth_api.doc(description='Logout user and destroy session') + def post(self) -> tuple[Dict[str, Any], int]: + """Logout user.""" + session.clear() + return {'message': 'Logout successful'}, 200 + +@auth_api.route('/me') +class CurrentUser(Resource): + """Get current authenticated user.""" + + @auth_api.marshal_with(user_response_model) + @auth_api.doc(description='Get current authenticated user information') + def get(self) -> tuple[Dict[str, Any], int]: + """Get current user.""" + user_id = session.get('user_id') + if not user_id: + return {'error': 'Not authenticated'}, 401 + + user = User.query.get(user_id) + if not user: + return {'error': 'User not found'}, 404 + + return user.to_dict(), 200 diff --git a/sut/backend/routes/locations.py b/sut/backend/routes/locations.py new file mode 100644 index 0000000..6f4136d --- /dev/null +++ b/sut/backend/routes/locations.py @@ -0,0 +1,41 @@ +"""Location routes.""" +from flask import Blueprint +from flask_restx import Api, Resource, fields +from models.location import Location +from typing import Dict, Any, List + +locations_bp = Blueprint('locations', __name__, url_prefix='/api') +locations_api = Api(locations_bp, doc=False, prefix='/locations') + +# Response model for Swagger +location_response_model = locations_api.model('LocationResponse', { + 'id': fields.Integer(description='Location ID'), + 'name': fields.String(description='Location name'), + 'description': fields.String(description='Location description'), + 'region': fields.String(description='Region name'), + 'map_x': fields.Float(description='Map X coordinate (pixel)'), + 'map_y': fields.Float(description='Map Y coordinate (pixel)'), + 'created_at': fields.String(description='Creation timestamp') +}) + +@locations_api.route('/') +class LocationList(Resource): + """Location list endpoints.""" + + @locations_api.marshal_list_with(location_response_model) + @locations_api.doc(description='Get all Middle-earth locations') + def get(self) -> tuple[List[Dict[str, Any]], int]: + """Get all locations.""" + locations = Location.query.all() + return [location.to_dict() for location in locations], 200 + +@locations_api.route('/') +class LocationDetail(Resource): + """Location detail endpoints.""" + + @locations_api.marshal_with(location_response_model) + @locations_api.doc(description='Get location by ID') + def get(self, location_id: int) -> tuple[Dict[str, Any], int]: + """Get location by ID.""" + location = Location.query.get_or_404(location_id) + return location.to_dict(), 200 diff --git a/sut/backend/routes/members.py b/sut/backend/routes/members.py new file mode 100644 index 0000000..28f7e14 --- /dev/null +++ b/sut/backend/routes/members.py @@ -0,0 +1,41 @@ +"""Fellowship member routes.""" +from flask import Blueprint +from flask_restx import Api, Resource, fields +from models.member import Member +from typing import Dict, Any, List + +members_bp = Blueprint('members', __name__, url_prefix='/api') +members_api = Api(members_bp, doc=False, prefix='/members') + +# Response model for Swagger +member_response_model = members_api.model('MemberResponse', { + 'id': fields.Integer(description='Member ID'), + 'name': fields.String(description='Member name'), + 'race': fields.String(description='Member race'), + 'role': fields.String(description='Member role'), + 'status': fields.String(description='Member status'), + 'description': fields.String(description='Member description'), + 'created_at': fields.String(description='Creation timestamp') +}) + +@members_api.route('/') +class MemberList(Resource): + """Fellowship member list endpoints.""" + + @members_api.marshal_list_with(member_response_model) + @members_api.doc(description='Get all Fellowship members') + def get(self) -> tuple[List[Dict[str, Any]], int]: + """Get all Fellowship members.""" + members = Member.query.all() + return [member.to_dict() for member in members], 200 + +@members_api.route('/') +class MemberDetail(Resource): + """Fellowship member detail endpoints.""" + + @members_api.marshal_with(member_response_model) + @members_api.doc(description='Get member by ID') + def get(self, member_id: int) -> tuple[Dict[str, Any], int]: + """Get member by ID.""" + member = Member.query.get_or_404(member_id) + return member.to_dict(), 200 diff --git a/sut/backend/routes/npc_chat.py b/sut/backend/routes/npc_chat.py new file mode 100644 index 0000000..2dd8efe --- /dev/null +++ b/sut/backend/routes/npc_chat.py @@ -0,0 +1,174 @@ +"""NPC chat routes backed by Azure AI service.""" +import uuid +from typing import Any, Dict + +from flask import Blueprint, request, session +from flask_restx import Api, Resource, fields + +from models.user import User +from models.quest import Quest, db +from services.npc_chat_service import NpcChatService + +npc_chat_bp = Blueprint('npc_chat', __name__, url_prefix='/api') +npc_chat_api = Api(npc_chat_bp, doc=False, prefix='/chat') + +chat_start_model = npc_chat_api.model('ChatStartRequest', { + 'character': fields.String(required=False, description='frodo|sam|gandalf'), +}) + +chat_message_model = npc_chat_api.model('ChatMessageRequest', { + 'character': fields.String(required=False, description='frodo|sam|gandalf'), + 'message': fields.String(required=True, description='User message'), +}) + +quest_creation_model = npc_chat_api.model('QuestCreationRequest', { + 'character': fields.String(required=False, description='frodo|sam|gandalf - NPC who proposes the quest'), + 'title': fields.String(required=True, description='Quest title'), + 'description': fields.String(required=True, description='Quest description'), + 'quest_type': fields.String(required=True, description='Quest type (The Journey, The Battle, The Fellowship, The Ring, Dark Magic)'), + 'priority': fields.String(required=True, description='Quest priority (Critical, Important, Standard)'), +}) + + +def _require_auth() -> bool: + return session.get('user_id') is not None + + +def _get_current_user() -> User: + user_id = session.get('user_id') + return User.query.get(user_id) + + +def _get_chat_scope_id() -> str: + scope_id = session.get('chat_scope_id') + if not scope_id: + scope_id = uuid.uuid4().hex + session['chat_scope_id'] = scope_id + return scope_id + + +@npc_chat_api.route('/start') +class ChatStart(Resource): + @npc_chat_api.expect(chat_start_model) + def post(self) -> tuple[Dict[str, Any], int]: + if not _require_auth(): + return {'error': 'Authentication required'}, 401 + + user = _get_current_user() + if not user: + return {'error': 'User not found'}, 404 + + data = request.get_json() or {} + scope_id = _get_chat_scope_id() + payload = NpcChatService.start_conversation( + user_id=user.id, + username=user.username, + character=data.get('character'), + scope_id=scope_id, + ) + return payload, 200 + + +@npc_chat_api.route('/message') +class ChatMessage(Resource): + @npc_chat_api.expect(chat_message_model) + def post(self) -> tuple[Dict[str, Any], int]: + if not _require_auth(): + return {'error': 'Authentication required'}, 401 + + user = _get_current_user() + if not user: + return {'error': 'User not found'}, 404 + + data = request.get_json() or {} + message = (data.get('message') or '').strip() + if not message: + return {'error': 'message is required'}, 400 + + scope_id = _get_chat_scope_id() + payload = NpcChatService.send_message( + user_id=user.id, + username=user.username, + character=data.get('character'), + user_message=message, + scope_id=scope_id, + ) + return payload, 200 + + +@npc_chat_api.route('/session') +class ChatSession(Resource): + def get(self) -> tuple[Dict[str, Any], int]: + if not _require_auth(): + return {'error': 'Authentication required'}, 401 + + user = _get_current_user() + if not user: + return {'error': 'User not found'}, 404 + + character = request.args.get('character') + scope_id = _get_chat_scope_id() + payload = NpcChatService.get_session(user_id=user.id, character=character, scope_id=scope_id) + return payload, 200 + + +@npc_chat_api.route('/reset') +class ChatReset(Resource): + @npc_chat_api.expect(chat_start_model) + def post(self) -> tuple[Dict[str, Any], int]: + if not _require_auth(): + return {'error': 'Authentication required'}, 401 + + user = _get_current_user() + if not user: + return {'error': 'User not found'}, 404 + + data = request.get_json() or {} + scope_id = _get_chat_scope_id() + payload = NpcChatService.reset_session(user_id=user.id, character=data.get('character'), scope_id=scope_id) + return payload, 200 + + +@npc_chat_api.route('/create_quest') +class ChatCreateQuest(Resource): + """Create a quest from NPC chat interaction.""" + + @npc_chat_api.expect(quest_creation_model) + def post(self) -> tuple[Dict[str, Any], int]: + """Create a quest proposed by an NPC. + + This endpoint allows the frontend to persist a suggested quest + that was generated during NPC chat. + """ + if not _require_auth(): + return {'error': 'Authentication required'}, 401 + + user = _get_current_user() + if not user: + return {'error': 'User not found'}, 404 + + data = request.get_json() or {} + + # Validate required fields + required_fields = ['title', 'description', 'quest_type', 'priority'] + if not all(data.get(field) for field in required_fields): + return {'error': 'Missing required fields: title, description, quest_type, priority'}, 400 + + # Create the quest + quest = Quest( + title=data.get('title'), + description=data.get('description'), + quest_type=data.get('quest_type'), + priority=data.get('priority'), + is_dark_magic=data.get('is_dark_magic', False), + assigned_to=user.id, + location_id=data.get('location_id'), + ) + + db.session.add(quest) + db.session.commit() + + return { + 'quest': quest.to_dict(), + 'message': f'{data.get("character", "An NPC")} has created a quest for you!', + }, 201 diff --git a/sut/backend/routes/quests.py b/sut/backend/routes/quests.py new file mode 100644 index 0000000..90f0a96 --- /dev/null +++ b/sut/backend/routes/quests.py @@ -0,0 +1,237 @@ +"""Quest routes.""" +from flask import Blueprint, request, jsonify, session +from flask_restx import Api, Resource, fields +from models.quest import Quest, db +from models.user import User +from datetime import datetime +from typing import Dict, Any, List, Optional + +quests_bp = Blueprint('quests', __name__, url_prefix='/api') +quests_api = Api(quests_bp, doc=False, prefix='/quests') + +# Request/Response models for Swagger +quest_model = quests_api.model('Quest', { + 'title': fields.String(required=True, description='Quest title'), + 'description': fields.String(description='Quest description'), + 'status': fields.String(description='Quest status (not_yet_begun, the_road_goes_ever_on, it_is_done, the_shadow_falls)'), + 'quest_type': fields.String(description='Quest type (The Journey, The Battle, The Fellowship, The Ring, Dark Magic)'), + 'priority': fields.String(description='Quest priority (Critical, Important, Standard)'), + 'is_dark_magic': fields.Boolean(description='Dark magic flag'), + 'assigned_to': fields.Integer(description='User ID of assignee'), + 'location_id': fields.Integer(description='Location ID'), + 'character_quote': fields.String(description='Character quote for completion') +}) + +quest_response_model = quests_api.model('QuestResponse', { + 'id': fields.Integer(description='Quest ID'), + 'title': fields.String(description='Quest title'), + 'description': fields.String(description='Quest description'), + 'status': fields.String(description='Quest status'), + 'quest_type': fields.String(description='Quest type'), + 'priority': fields.String(description='Quest priority'), + 'is_dark_magic': fields.Boolean(description='Dark magic flag'), + 'assigned_to': fields.Integer(description='User ID of assignee'), + 'location_id': fields.Integer(description='Location ID'), + 'location_name': fields.String(description='Location name'), + 'assignee_name': fields.String(description='Assignee username'), + 'character_quote': fields.String(description='Character quote'), + 'created_at': fields.String(description='Creation timestamp'), + 'updated_at': fields.String(description='Update timestamp'), + 'completed_at': fields.String(description='Completion timestamp'), + 'gold_reward': fields.Integer(description='Gold reward granted for quest completion'), + 'current_gold': fields.Integer(description='Current gold total for the authenticated user'), + 'message': fields.String(description='Success message for quest completion') +}) + +def require_auth() -> bool: + """Check if user is authenticated.""" + return session.get('user_id') is not None + + +def _reward_for_priority(priority: Optional[str]) -> int: + rewards = { + 'Critical': 100, + 'Important': 60, + 'Standard': 40, + } + return rewards.get(priority or '', 50) + +@quests_api.route('/') +class QuestList(Resource): + """Quest list endpoints.""" + + @quests_api.marshal_list_with(quest_response_model) + @quests_api.doc(description='Get all quests with optional filtering') + def get(self) -> tuple[List[Dict[str, Any]], int]: + """Get all quests with optional filtering.""" + query = Quest.query + + # Filter by status + status = request.args.get('status') + if status: + # Map old status values for backward compatibility + status_mapping = { + 'pending': 'not_yet_begun', + 'in_progress': 'the_road_goes_ever_on', + 'completed': 'it_is_done', + 'blocked': 'the_shadow_falls' + } + mapped_status = status_mapping.get(status, status) + query = query.filter(Quest.status == mapped_status) + + # Filter by quest type + quest_type = request.args.get('quest_type') + if quest_type: + query = query.filter(Quest.quest_type == quest_type) + + # Filter by priority + priority = request.args.get('priority') + if priority: + query = query.filter(Quest.priority == priority) + + # Filter by dark magic + dark_magic = request.args.get('dark_magic') + if dark_magic is not None: + is_dark_magic = dark_magic.lower() == 'true' + query = query.filter(Quest.is_dark_magic == is_dark_magic) + + # Filter by location + location_id = request.args.get('location_id') + if location_id: + query = query.filter(Quest.location_id == int(location_id)) + + # Filter by assigned user + assigned_to = request.args.get('assigned_to') + if assigned_to: + query = query.filter(Quest.assigned_to == int(assigned_to)) + + quests = query.all() + return [quest.to_dict() for quest in quests], 200 + + @quests_api.expect(quest_model) + @quests_api.marshal_with(quest_response_model) + @quests_api.doc(description='Create a new quest', security='session') + def post(self) -> tuple[Dict[str, Any], int]: + """Create a new quest.""" + if not require_auth(): + return {'error': 'Authentication required'}, 401 + + data = request.get_json() + + # Map old status values for backward compatibility + status = data.get('status', 'not_yet_begun') + status_mapping = { + 'pending': 'not_yet_begun', + 'in_progress': 'the_road_goes_ever_on', + 'completed': 'it_is_done', + 'blocked': 'the_shadow_falls' + } + mapped_status = status_mapping.get(status, status) + + quest = Quest( + title=data.get('title'), + description=data.get('description'), + status=mapped_status, + quest_type=data.get('quest_type'), + priority=data.get('priority'), + is_dark_magic=data.get('is_dark_magic', False), + character_quote=data.get('character_quote'), + assigned_to=data.get('assigned_to'), + location_id=data.get('location_id') + ) + + db.session.add(quest) + db.session.commit() + + return quest.to_dict(), 201 + +@quests_api.route('/') +class QuestDetail(Resource): + """Quest detail endpoints.""" + + @quests_api.marshal_with(quest_response_model) + @quests_api.doc(description='Get quest by ID') + def get(self, quest_id: int) -> tuple[Dict[str, Any], int]: + """Get quest by ID.""" + quest = Quest.query.get_or_404(quest_id) + return quest.to_dict(), 200 + + @quests_api.expect(quest_model) + @quests_api.marshal_with(quest_response_model) + @quests_api.doc(description='Update quest', security='session') + def put(self, quest_id: int) -> tuple[Dict[str, Any], int]: + """Update quest.""" + if not require_auth(): + return {'error': 'Authentication required'}, 401 + + quest = Quest.query.get_or_404(quest_id) + data = request.get_json() + + quest.title = data.get('title', quest.title) + quest.description = data.get('description', quest.description) + + # Map old status values for backward compatibility + if 'status' in data: + status = data.get('status') + status_mapping = { + 'pending': 'not_yet_begun', + 'in_progress': 'the_road_goes_ever_on', + 'completed': 'it_is_done', + 'blocked': 'the_shadow_falls' + } + quest.status = status_mapping.get(status, status) + + quest.quest_type = data.get('quest_type', quest.quest_type) + quest.priority = data.get('priority', quest.priority) + quest.is_dark_magic = data.get('is_dark_magic', quest.is_dark_magic) + quest.character_quote = data.get('character_quote', quest.character_quote) + quest.assigned_to = data.get('assigned_to', quest.assigned_to) + quest.location_id = data.get('location_id', quest.location_id) + + db.session.commit() + return quest.to_dict(), 200 + + @quests_api.doc(description='Delete quest', security='session') + def delete(self, quest_id: int) -> tuple[Dict[str, Any], int]: + """Delete quest.""" + if not require_auth(): + return {'error': 'Authentication required'}, 401 + + quest = Quest.query.get_or_404(quest_id) + db.session.delete(quest) + db.session.commit() + + return {'message': 'Quest deleted successfully'}, 200 + +@quests_api.route('//complete') +class QuestComplete(Resource): + """Quest completion endpoint.""" + + @quests_api.marshal_with(quest_response_model) + @quests_api.doc(description='Mark quest as complete', security='session') + def put(self, quest_id: int) -> tuple[Dict[str, Any], int]: + """Mark quest as complete.""" + if not require_auth(): + return {'error': 'Authentication required'}, 401 + + quest = Quest.query.get_or_404(quest_id) + + # Set status to completed + quest.status = 'it_is_done' + quest.completed_at = datetime.utcnow() + + user_id = session.get('user_id') + current_user = User.query.get(user_id) if user_id else None + reward = _reward_for_priority(quest.priority) + if current_user: + current_user.gold = (current_user.gold or 0) + reward + + db.session.commit() + + # Return quest with completion message + result = quest.to_dict() + result['gold_reward'] = reward + result['current_gold'] = current_user.gold if current_user else None + result['message'] = f'The Quest Is Done! You earned {reward} Gold.' + + return result, 200 diff --git a/sut/backend/routes/shop.py b/sut/backend/routes/shop.py new file mode 100644 index 0000000..85e773f --- /dev/null +++ b/sut/backend/routes/shop.py @@ -0,0 +1,133 @@ +"""Shop routes for bargaining market gameplay.""" +from typing import Any, Dict, Optional + +from flask import Blueprint, request, session +from flask_restx import Api, Resource, fields + +from models.user import User +from services.shop_service import ShopService + + +shop_bp = Blueprint('shop', __name__, url_prefix='/api') +shop_api = Api(shop_bp, doc=False, prefix='/shop') + +purchase_model = shop_api.model('ShopPurchaseRequest', { + 'item_id': fields.Integer(required=True, description='Unique item ID'), + 'paid_price': fields.Integer(required=True, description='Agreed paid price'), +}) + + +def _require_auth() -> bool: + return session.get('user_id') is not None + + +def _get_current_user() -> Optional[User]: + user_id = session.get('user_id') + if not user_id: + return None + return User.query.get(user_id) + + +@shop_api.route('/items') +class ShopItems(Resource): + def get(self) -> tuple[Dict[str, Any], int]: + if not _require_auth(): + return {'error': 'Authentication required'}, 401 + + character = (request.args.get('character') or '').strip().lower() or None + items = ShopService.list_available_items(character=character) + return {'items': items}, 200 + + +@shop_api.route('/items/') +class ShopItemDetail(Resource): + def get(self, item_id: int) -> tuple[Dict[str, Any], int]: + if not _require_auth(): + return {'error': 'Authentication required'}, 401 + + item = ShopService.get_item_public(item_id) + if not item: + return {'error': 'Item not found'}, 404 + return {'item': item}, 200 + + +@shop_api.route('/purchase') +class ShopPurchase(Resource): + @shop_api.expect(purchase_model) + def post(self) -> tuple[Dict[str, Any], int]: + if not _require_auth(): + return {'error': 'Authentication required'}, 401 + + user = _get_current_user() + if not user: + return {'error': 'User not found'}, 404 + + payload = request.get_json() or {} + item_id = payload.get('item_id') + paid_price = payload.get('paid_price') + + if not item_id or paid_price is None: + return {'error': 'item_id and paid_price are required'}, 400 + + try: + result = ShopService.purchase_item(user_id=user.id, item_id=int(item_id), paid_price=int(paid_price)) + return result, 200 + except ValueError as error: + return {'error': str(error)}, 400 + + +@shop_api.route('/inventory') +class ShopInventory(Resource): + def get(self) -> tuple[Dict[str, Any], int]: + if not _require_auth(): + return {'error': 'Authentication required'}, 401 + + user = _get_current_user() + if not user: + return {'error': 'User not found'}, 404 + + inventory = ShopService.get_user_inventory(user.id) + return {'inventory': inventory}, 200 + + +@shop_api.route('/stats') +class ShopStats(Resource): + def get(self) -> tuple[Dict[str, Any], int]: + if not _require_auth(): + return {'error': 'Authentication required'}, 401 + + user = _get_current_user() + if not user: + return {'error': 'User not found'}, 404 + + stats = ShopService.get_user_stats(user.id) + return {'stats': stats}, 200 + + +@shop_api.route('/balance') +class ShopBalance(Resource): + def get(self) -> tuple[Dict[str, Any], int]: + if not _require_auth(): + return {'error': 'Authentication required'}, 401 + + user = _get_current_user() + if not user: + return {'error': 'User not found'}, 404 + + return ShopService.get_balance(user.id), 200 + + +@shop_api.route('/test-reset') +class TestReset(Resource): + """Reset shop state for testing - marks all items as not sold and resets user gold.""" + def post(self) -> tuple[Dict[str, Any], int]: + import os + # Only allow in non-production environments + if os.getenv('FLASK_ENV') in {'production', 'prod'}: + return {'error': 'Test reset not allowed in production'}, 403 + + try: + ShopService.reset_for_tests() + return {'success': True, 'message': 'Test state reset successfully'}, 200 + except Exception as e: + return {'error': str(e)}, 500 diff --git a/sut/backend/services/__init__.py b/sut/backend/services/__init__.py new file mode 100644 index 0000000..944069b --- /dev/null +++ b/sut/backend/services/__init__.py @@ -0,0 +1 @@ +"""Service modules for business logic.""" diff --git a/sut/backend/services/__pycache__/__init__.cpython-311.pyc b/sut/backend/services/__pycache__/__init__.cpython-311.pyc new file mode 100644 index 0000000000000000000000000000000000000000..86b494e6d90061bcd754eb195dcc190443ad6efd GIT binary patch literal 183 zcmZ3^%ge<81eHrJWoiNG#~=<2FhUuhK}x1Gq%cG=q%a0EXfjnP2d5U5WhSR8r_S!_C?07e z0g86Wo88-;ot>STotgXFz(5}bu<><6y&k8if8dt@;GMwBr_em0WNMj`X_?XJ60^*d z*kzW+@2tj^BFhod=d@^vU*@47QDSmbiLG)ne~(*^llK@I;}zzx&lm7&RF1=ZpWLSi zKp&ptWC7;-_jq;B^~2nNoNRMW!0OmOXW+)H#^k|!k>!LuFi&L;)YDgM#=25A)S_gl zm9nTS==W+-$-cniWEhWIgb|OC3mMwuR%_)Vw6Wh-F|DL|u^P;lrIO-Bkz&+Pxk$H< zK~W6!S$JM%0X?8hs!GeW1^r%l1Vc~S!yp+m=TWd#L^qIH&CrO4NgXp6UyYuXs@1c5 zg6d}_I6yuSySm{W%$F;uBx!10$p_-00a!^`3`1v&YV{A@pL@tOg%b_ogd>c(!kEpC zy@WZ+i&Z6EzgrJwMc%_Ba(gWdjo2<#Aw8>hr9zqx} z=`cq)J39}z09&zsro+D!Q4+C5#KHz?vEztRSr!A0XXi3;Vk(5y<3(=O6tv+*S5?hW z5W)xaB3k7(^s&%hWK~7F;U$XeO7UhsV3Og;EE>cl2iv|Nx1GV`un;;2^CAH1$Aky4 z8|~c#-)|6h6&wik&jD>w&qvN|uR9}eyCZMgT)HJ3+okBpkhM;l*5JYW#&coti|M9t zv>_b*YT+---*7tv&gcbq^nyM8adUdUF+J~0FS^rrtoP)_|y?rTw!Hv zro{_{*Oy!~Io3#ySsysbGj8%sdjp{*4BkJF5?EdypCPZxp$mt#hM$*L0D+SN4&X-H zJ*~DA26MRWc49CdT_2oPjJCzD&15qyF$_8Y3p{pBG2mk2=;B{YUy%tICaTUCHb6df z6y{Ty<`5vzBG%C#bD!rP{?ZXny244DJ4sFyI!ODr{Rfp*BXKnHOTUkWq?D8u-Dta2TjJMi+MPU8fe(J`PPX1oraH#s`- z@Mr&xhuho=vGkl5QA(1k6|t)Zfa4l*-D$u-VR6=^NhWE#bif3+U6G4}$iqcvfa_k_}Lp2N$O5;?XrLM|>Xo;m#N@NAFQ4H`66^m~WTle0Uai z74}cxEqRy3vF^1d^KoN;gB$J4Vs+%eU>3qt zWT!7Iy+vxYeG0!9mS{6-M!R$%gt>tJaGux$lQknIEBEgVJc8`-1RftYd6Ty~^c;+X zTwQjiDFdgCJ-C6(4gyxkS%WcH-DS-;uI`X=e|7k*G;o9Hk*L4(J7rDPAz_M=SXOTP z@%y%FtcwLnSBs*otV%V_(8bjX605a>24nM!3qU8WDOrToT0gl6*`+5vixN^qq}-~h zNReOQ+gd->CM?x-Lo7f(H$+X5pg$!R*CiwsK@wfmD&@5o*v6qSk6BE?^D+nMBZ`KL zZ&KHXHzA~3FwzU*BQH@8Xqx)suuRQUkLfum7kO2e)iu?C!j;KRdK{LZGXTDdUtUwn z%AG38)!`(*o=CRJUe+o_Nz-%LHpOY!U!MT^+!4} ziEs7yKiR7w#U7{JRaeTtQ`A*tnkwN=WBSgw@{3aY2u%9S*vNb-iL+yTq#_0$zZ z(G9h{wkpADeIrX`hh%&lq^+ml!_ie#bum~5{2|z@KSIC^sv}J4aj2px9=BG}=j?%DJ$KD0y909)+ z83yd;nDVcnhn_TdWb9$iLd}uM#>k{Ia?Tw&2UXq=ewFvG{fl4YD(u~7iDCQj zJ5D0!CUSNx_nhyug<}qX+~tp3CmQ^i&5se1_npM7o0zp@v#%rhW@^u8KD-VcC%fVT zKDFYWS_#%mPNLu@3U;jUoIhe8J?rq3E`QaaOAC!l3(ln__tKJmv9$N+hMuJk|7p3I$~00L zd-95%$~dX3Zt7|?HQPwdI;m@J>e|*^i%-37V<_ZW2gX~8W32(PHIUqmNBX1xrU3nj z(bmjvKNX2Lxm1Ho*@rR?H{o&56AJ@W7V=jN>ksfv1>f0{O$1Pz^mA0*rcW@IfO$KE;RJhfOlD%rd!mg zO^voF(SF^(MIEuj|K5?^C{2%BW1v=geA{nGzXL_%bkbsXDQLEJ(tLO4Dfj(d((Oiv z7<%mCZ+0nYtPi#qzMdo9ZWN2qdD@!VrEt4_@w=IwoZo*9PKtDLmjZ;@LbDCapaB`! R?>9-;{$zo)Z$w0!{{eziy_x_3 literal 0 HcmV?d00001 diff --git a/sut/backend/services/__pycache__/bargaining_algorithm.cpython-311.pyc b/sut/backend/services/__pycache__/bargaining_algorithm.cpython-311.pyc new file mode 100644 index 0000000000000000000000000000000000000000..8fc7fc5c7166eca366bfbb841cc2260c677a5791 GIT binary patch literal 10466 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 literal 0 HcmV?d00001 diff --git a/sut/backend/services/__pycache__/character_profiles.cpython-311.pyc b/sut/backend/services/__pycache__/character_profiles.cpython-311.pyc new file mode 100644 index 0000000000000000000000000000000000000000..49531236164f384102c5372ba93e808d9074590f GIT binary patch literal 10411 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 literal 0 HcmV?d00001 diff --git a/sut/backend/services/__pycache__/negotiation_logger.cpython-311.pyc b/sut/backend/services/__pycache__/negotiation_logger.cpython-311.pyc new file mode 100644 index 0000000000000000000000000000000000000000..9a19ccaf1e6ac4d5834dbb46f25267822fd8a0dd GIT binary patch literal 9542 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 AkpKVy literal 0 HcmV?d00001 diff --git a/sut/backend/services/__pycache__/npc_chat_service.cpython-311.pyc b/sut/backend/services/__pycache__/npc_chat_service.cpython-311.pyc new file mode 100644 index 0000000000000000000000000000000000000000..2dc3e8f4ba213ea4ceff608f57b09ec5269615d5 GIT binary patch literal 60548 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%0DJH3A;_a&6l;es?yWYN05H3o! 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 NrQm;4BUN7D{{?v0V~hX* literal 0 HcmV?d00001 diff --git a/sut/backend/services/__pycache__/quest_generation_service.cpython-311.pyc b/sut/backend/services/__pycache__/quest_generation_service.cpython-311.pyc new file mode 100644 index 0000000000000000000000000000000000000000..3f9735c717fcd0310320c9a3ae0bad54beb1ea43 GIT binary patch literal 16625 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 literal 0 HcmV?d00001 diff --git a/sut/backend/services/__pycache__/shop_service.cpython-311.pyc b/sut/backend/services/__pycache__/shop_service.cpython-311.pyc new file mode 100644 index 0000000000000000000000000000000000000000..70c005ea02c81d13e2fb0a26aa35e3cd14a16774 GIT binary patch literal 7419 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 literal 0 HcmV?d00001 diff --git a/sut/backend/services/auth_service.py b/sut/backend/services/auth_service.py new file mode 100644 index 0000000..d471ad0 --- /dev/null +++ b/sut/backend/services/auth_service.py @@ -0,0 +1,65 @@ +"""Authentication service.""" +from models.user import User, db +from sqlalchemy import func +from typing import Optional + + +def _normalize_username(username: str) -> str: + return (username or '').strip() + +def authenticate_user(username: str, password: str) -> Optional[User]: + """Authenticate a user by username and password.""" + normalized_username = _normalize_username(username) + if not normalized_username or not password: + return None + + user = User.query.filter(func.lower(User.username) == normalized_username.lower()).first() + if user and user.check_password(password): + return user + return None + +def get_user_by_id(user_id: int) -> Optional[User]: + """Get user by ID.""" + return User.query.get(user_id) + +def get_user_by_username(username: str) -> Optional[User]: + """Get user by username.""" + normalized_username = _normalize_username(username) + if not normalized_username: + return None + return User.query.filter(func.lower(User.username) == normalized_username.lower()).first() + + +def register_user(username: str, password: str, email: Optional[str] = None) -> User: + """Register a new user with basic defaults for public SUT usage.""" + normalized_username = _normalize_username(username) + normalized_password = (password or '').strip() + + if not normalized_username or not normalized_password: + raise ValueError('Username and password are required') + + if len(normalized_username) < 3: + raise ValueError('Username must be at least 3 characters long') + + if len(normalized_password) < 8 or not any(char.isdigit() for char in normalized_password): + raise ValueError('Password must be at least 8 characters and contain at least one number') + + if get_user_by_username(normalized_username): + raise ValueError('Username already exists') + + normalized_email = (email or '').strip().lower() or f'{normalized_username.lower()}@testingfantasy.local' + existing_email = User.query.filter_by(email=normalized_email).first() + if existing_email: + raise ValueError('Email is already in use') + + user = User( + username=normalized_username, + email=normalized_email, + role=normalized_username, # Use username as role/character name + gold=500, + ) + user.set_password(normalized_password) + + db.session.add(user) + db.session.commit() + return user diff --git a/sut/backend/services/bargaining_algorithm.py b/sut/backend/services/bargaining_algorithm.py new file mode 100644 index 0000000..e087dc9 --- /dev/null +++ b/sut/backend/services/bargaining_algorithm.py @@ -0,0 +1,337 @@ +"""Bargaining algorithm for NPC negotiation.""" +from __future__ import annotations + +import json +import logging +import random +from typing import Any, Dict, List, Optional +from enum import Enum + +logger = logging.getLogger(__name__) + + +class NegotiationResult(str, Enum): + """Possible outcomes of a negotiation.""" + COUNTER_OFFER = "counter-offer" + OFFER_ACCEPTED = "offer-accepted" + OFFER_REJECTED = "offer-rejected" + STOP_BARGAIN = "stop-bargain" + + +class BargainingAlgorithm: + """ + Hybrid bargaining algorithm that evaluates user offers based on character traits. + + Algorithm evaluates: + - Character personality (patience, concession rate, boredom threshold, accept ratio) + - Current mood (affected by user actions) + - External events (randomness factor) + - Flattery detection (user behavior trigger) + - Round count (max rounds per character) + """ + + # Default personality profiles indexed by character + PERSONALITY_PROFILES = { + "frodo": { + "patience": 5, + "concession": 0.12, + "boredom": 0.08, + "accept_ratio": 0.92, + "max_rounds": 6, + "generosity_on_flatter": 0.05, # 5% better offer when flattered + }, + "sam": { + "patience": 4, + "concession": 0.10, + "boredom": 0.10, + "accept_ratio": 0.95, + "max_rounds": 5, + "generosity_on_flatter": 0.04, + }, + "gandalf": { + "patience": 6, + "concession": 0.15, + "boredom": 0.05, + "accept_ratio": 0.90, + "max_rounds": 7, + "generosity_on_flatter": 0.06, + }, + } + + @classmethod + def evaluate_offer( + cls, + user_offer: int, + current_ask: int, + character: str, + round_num: int, + is_flattered: bool = False, + mood_modifiers: Optional[Dict[str, float]] = None, + user_message: Optional[str] = None, + ) -> Dict[str, Any]: + """ + Evaluate a user's offer or message against the NPC's negotiation state. + + Args: + user_offer: The amount offered by the user + current_ask: The NPC's current asking price + character: The NPC character name + round_num: Current negotiation round (0-based) + is_flattered: Whether the user flattered the character + mood_modifiers: Optional mood adjustments (e.g., {"patience": -1, "boredom": +0.1}) + user_message: The raw user message (for 'deal' detection) + + Returns: + Dict containing: + - result: NegotiationResult enum value + - counter_offer: New ask price (if counter-offer) + - context: Debug context about the decision + """ + profile = cls.PERSONALITY_PROFILES.get(character, cls.PERSONALITY_PROFILES["gandalf"]) + + # Apply mood modifiers if provided + patience = profile["patience"] + boredom = profile["boredom"] + + if mood_modifiers: + patience += mood_modifiers.get("patience", 0) + boredom += mood_modifiers.get("boredom", 0) + boredom = max(0, min(1, boredom)) # Clamp to [0, 1] + + # If user says 'deal', accept at current ask + if user_message and user_message.strip().lower() in {"deal", "i'll take it", "i will take it", "buy", "buy it", "accept"}: + return { + "result": NegotiationResult.OFFER_ACCEPTED, + "counter_offer": None, + "context": { + "reason": "user_said_deal", + "user_offer": user_offer, + "current_ask": current_ask, + }, + } + + # Check if max rounds exceeded + if round_num >= profile["max_rounds"]: + return { + "result": NegotiationResult.STOP_BARGAIN, + "counter_offer": None, + "context": { + "reason": "max_rounds_exceeded", + "round_num": round_num, + "max_rounds": profile["max_rounds"], + }, + } + + # Calculate acceptance threshold + # Flattered characters are slightly more generous + accept_ratio = profile["accept_ratio"] + if is_flattered: + accept_ratio -= profile["generosity_on_flatter"] + + # Check if offer is acceptable + if user_offer >= int(current_ask * accept_ratio): + return { + "result": NegotiationResult.OFFER_ACCEPTED, + "counter_offer": None, + "context": { + "reason": "offer_acceptable", + "user_offer": user_offer, + "threshold": int(current_ask * accept_ratio), + "is_flattered": is_flattered, + }, + } + + # Check for lucky drop (long negotiation can result in sudden price drop) + long_negotiation_threshold = max(3, patience) + if round_num >= long_negotiation_threshold and random.random() < 0.10: + lucky_price = max(user_offer, int(current_ask * 0.60)) + return { + "result": NegotiationResult.COUNTER_OFFER, + "counter_offer": lucky_price, + "context": { + "reason": "lucky_drop", + "round_num": round_num, + "patience_threshold": long_negotiation_threshold, + "message_hint": "user_wore_down_character", + }, + } + + # Check if character is bored and refuses + if round_num >= patience and random.random() < boredom: + return { + "result": NegotiationResult.STOP_BARGAIN, + "counter_offer": None, + "context": { + "reason": "boredom_threshold", + "round_num": round_num, + "patience": patience, + "boredom_roll": boredom, + }, + } + + # Counter-offer: concede a bit, but never below user's offer + concession_amount = max(1, int(current_ask * profile["concession"])) + floor_price = max(user_offer, int(current_ask * 0.65)) # Don't go below user's offer or 65% of current ask + new_ask = max(floor_price, current_ask - concession_amount) + + return { + "result": NegotiationResult.COUNTER_OFFER, + "counter_offer": new_ask, + "context": { + "reason": "counter_offer", + "round_num": round_num, + "original_ask": current_ask, + "concession_amount": concession_amount, + "floor_price": floor_price, + "is_flattered": is_flattered, + "user_offer": user_offer, + }, + } + + @classmethod + def detect_flattery(cls, user_message: str) -> bool: + """ + Detect flattery in user's message. + + Looks for phrases indicating compliments, admiration, or flattery. + This is visible to backend only; LLM can add more sophisticated detection. + """ + message_lower = user_message.lower().strip() + + flattery_keywords = [ + "amazing", + "beautiful", + "brave", + "brilliant", + "clever", + "exceptional", + "excellent", + "extraordinary", + "fabulous", + "fantastic", + "fine", + "glorious", + "graceful", + "great", + "handsome", + "impressive", + "incredible", + "intelligent", + "magnificent", + "marvelous", + "noble", + "outstanding", + "powerful", + "remarkable", + "skilled", + "splendid", + "superb", + "talented", + "tremendous", + "wonderful", + "you are", + "you're", + "you seem", + "that's great", + "that's amazing", + "i admire", + "i respect", + "very wise", + "very kind", + "very clever", + "very brave", + ] + + # Simple keyword matching + return any(keyword in message_lower for keyword in flattery_keywords) + + @classmethod + def calculate_mood_change( + cls, + previous_offer: Optional[int], + current_offer: int, + current_ask: int, + ) -> Dict[str, float]: + """ + Calculate mood changes based on user actions. + + Returns mood modifiers that should be applied to the negotiation profile. + + Examples: + - Repeated very low offers -> negative mood (more patient but bored) + - Fair offers -> positive mood + - Rapidly increasing offers -> positive mood + """ + modifiers = {} + + if previous_offer is not None: + offer_delta = current_offer - previous_offer + offer_ratio = current_offer / current_ask if current_ask > 0 else 0 + + # If user is insultingly low (< 30% of ask), character gets annoyed + if offer_ratio < 0.30: + modifiers["boredom"] = 0.05 # Increases boredom + modifiers["patience"] = -1 # Decreases patience + # If offer is fair (50-80% of ask), character is encouraged + elif 0.50 <= offer_ratio <= 0.80: + modifiers["boredom"] = -0.03 # Decreases boredom + # If user is increasing offers, character is pleased + elif offer_delta > 0: + modifiers["boredom"] = -0.02 + + return modifiers + + @classmethod + def get_summary_for_llm( + cls, + negotiation_state: Dict[str, Any], + algorithm_result: Dict[str, Any], + user_offer: int, + character_personality: str, + is_flattered: bool, + mood_modifiers: Dict[str, float], + ) -> Dict[str, Any]: + """ + Generate a JSON summary to pass to the LLM for natural language generation. + + Only includes relevant fields for the current negotiation turn. + """ + profile = cls.PERSONALITY_PROFILES.get( + negotiation_state.get("character", "gandalf"), + cls.PERSONALITY_PROFILES["gandalf"] + ) + + summary: Dict[str, Any] = { + "character": negotiation_state.get("character"), + "item_name": negotiation_state.get("item_name"), + "item_id": negotiation_state.get("item_id"), + "original_price": negotiation_state.get("original_price"), + "current_ask": negotiation_state.get("current_ask"), + "user_offer": user_offer, + "round": negotiation_state.get("round"), + "character_personality_type": character_personality, + "is_flattered": is_flattered, + } + + # Add algorithm result based on type + result_type = algorithm_result.get("result") + if result_type == NegotiationResult.COUNTER_OFFER: + summary["negotiation_result"] = "counter-offer" + summary["counter_offer"] = algorithm_result.get("counter_offer") + elif result_type == NegotiationResult.OFFER_ACCEPTED: + summary["negotiation_result"] = "offer-accepted" + elif result_type == NegotiationResult.OFFER_REJECTED: + summary["negotiation_result"] = "offer-rejected" + elif result_type == NegotiationResult.STOP_BARGAIN: + summary["negotiation_result"] = "stop-bargain" + summary["stop_reason"] = algorithm_result.get("context", {}).get("reason") + + # Add mood context if modifiers present + if mood_modifiers: + summary["mood_context"] = mood_modifiers + + # Only include negotiation_style if applicable + if "negotiation_style" in negotiation_state: + summary["user_negotiation_style"] = negotiation_state["negotiation_style"] + + return summary diff --git a/sut/backend/services/bargaining_config.py b/sut/backend/services/bargaining_config.py new file mode 100644 index 0000000..e354898 --- /dev/null +++ b/sut/backend/services/bargaining_config.py @@ -0,0 +1,157 @@ +"""Configuration management for bargaining system via AWS Parameter Store.""" +import json +import logging +from typing import Any, Dict, Optional +from functools import lru_cache +import os + +logger = logging.getLogger(__name__) + + +class BargainingConfig: + """ + Load and manage bargaining configuration. + + Configuration can come from: + 1. AWS Parameter Store (for runtime updates) + 2. Environment variables (for local dev) + 3. Default values (hardcoded) + + For now, uses environment variables. AWS Parameter Store integration + can be added later. + """ + + # Default configuration values + DEFAULT_CONFIG = { + "flattery_bonus_percent": 0.05, # 5% better offer when flattered + "max_negotiation_rounds": { + "frodo": 6, + "sam": 5, + "gandalf": 7, + }, + "mood_change_probabilities": { + "boredom_on_low_offer": 0.10, # 10% chance to increase boredom + "lucky_drop_chance": 0.10, # 10% chance of sudden price drop + }, + "logging_enabled": True, + "log_retention_days": 30, + "flattery_only_once_per_negotiation": True, + } + + _config_cache: Optional[Dict[str, Any]] = None + + @classmethod + def load_config(cls, force_reload: bool = False) -> Dict[str, Any]: + """ + Load configuration from AWS Parameter Store or environment. + + Args: + force_reload: If True, bypass cache and reload from source + + Returns: + Configuration dictionary + """ + if cls._config_cache and not force_reload: + return cls._config_cache + + config = cls.DEFAULT_CONFIG.copy() + + # Try to load from AWS Parameter Store + aws_config = cls._load_from_aws_parameter_store() + if aws_config: + config.update(aws_config) + logger.info("✓ Loaded bargaining config from AWS Parameter Store") + else: + # Fall back to environment variables + env_config = cls._load_from_environment() + if env_config: + config.update(env_config) + logger.info("✓ Loaded bargaining config from environment variables") + else: + logger.info("✓ Using default bargaining configuration") + + cls._config_cache = config + return config + + @classmethod + def _load_from_aws_parameter_store(cls) -> Optional[Dict[str, Any]]: + """Load configuration from AWS Systems Manager Parameter Store.""" + try: + import boto3 + ssm_client = boto3.client("ssm") + + param_name = os.getenv("BARGAINING_CONFIG_PARAM", "/fellowship/bargaining/config") + + try: + response = ssm_client.get_parameter( + Name=param_name, + WithDecryption=False + ) + config_str = response["Parameter"]["Value"] + config = json.loads(config_str) + return config + except ssm_client.exceptions.ParameterNotFound: + logger.debug(f"Parameter {param_name} not found in Parameter Store") + return None + except (ImportError, Exception) as e: + logger.debug(f"Could not load from AWS Parameter Store: {type(e).__name__}") + return None + + @classmethod + def _load_from_environment(cls) -> Optional[Dict[str, Any]]: + """Load configuration from environment variables.""" + config = {} + + # Try to load BARGAINING_CONFIG_JSON env var + config_json = os.getenv("BARGAINING_CONFIG_JSON") + if config_json: + try: + env_config = json.loads(config_json) + return env_config + except json.JSONDecodeError: + logger.warning("Invalid JSON in BARGAINING_CONFIG_JSON env var") + + return None if not config else config + + @classmethod + def get(cls, key: str, default: Any = None) -> Any: + """ + Get a configuration value by key path (dot-notation supported). + + Example: config.get("mood_change_probabilities.lucky_drop_chance") + """ + config = cls.load_config() + + if "." in key: + parts = key.split(".") + value = config + for part in parts: + if isinstance(value, dict): + value = value.get(part) + else: + return default + return value if value is not None else default + + return config.get(key, default) + + @classmethod + def get_character_config(cls, character: str) -> Dict[str, Any]: + """Get configuration for a specific character.""" + config = cls.load_config() + + # Return character-specific config if it exists + if "character_configs" in config and character in config["character_configs"]: + return config["character_configs"][character] + + # Fall back to defaults + return { + "max_rounds": config["max_negotiation_rounds"].get( + character, config["max_negotiation_rounds"]["gandalf"] + ), + "flattery_bonus": config["flattery_bonus_percent"], + } + + @classmethod + def clear_cache(cls) -> None: + """Clear configuration cache (useful for testing).""" + cls._config_cache = None diff --git a/sut/backend/services/character_profiles.py b/sut/backend/services/character_profiles.py new file mode 100644 index 0000000..f5f667e --- /dev/null +++ b/sut/backend/services/character_profiles.py @@ -0,0 +1,253 @@ +"""LOTR Character profiles for immersive NPC interactions. + +Each character has: +- personality: Core behavioral traits +- mannerisms: Distinctive speech patterns and expressions +- hobbies: Things they enjoy or specialize in +- quests_affinity: Types of quests they naturally give +- system_prompt: Base AI personality for Azure OpenAI +- fallback_responses: Varied conversational replies to feel more natural +""" + +from typing import Dict, Any, List + +# Character profiles with rich personality definitions +CHARACTER_PROFILES: Dict[str, Dict[str, Any]] = { + "frodo": { + "full_name": "Frodo Baggins", + "title": "Ring-bearer", + "personality": [ + "Humble and introspective", + "Burden-aware (struggles with weight of responsibility)", + "Brave under pressure", + "Thoughtful and cautious", + "Compassionate toward others", + ], + "mannerisms": [ + "Often references the weight or burden of tasks", + "Uses quiet wisdom rather than declarations", + "Admits doubt and uncertainty", + "Asks for counsel before acting", + "Speaks of 'small acts' having great consequence", + "Tends toward metaphors of journeys and steps", + ], + "hobbies": [ + "Seeking hidden paths and solutions", + "Journeying to unknown places", + "Understanding the heart of problems", + "Quiet moments of reflection", + ], + "quest_affinity": [ + "The Journey", + "The Fellowship", + "The Ring", + ], + "favorite_expressions": [ + "All we have to decide is what to do with the time that is given us.", + "Even the smallest person can change the course of the future.", + "Even the very wise cannot see all ends.", + "I wish it need not have happened in my time,\" said Frodo. \"So do I,\" said Gandalf, \"and so do all who live to see such times, but that is not for them to decide.", + ], + "fallback_responses": [ + "I understand your hesitation. But tell me—if you were to act on this, where would you begin?", + "There is wisdom in knowing which burdens to bear. Perhaps this describes one of them?", + "Sometimes the smallest steps lead to the greatest changes. Should we mark this path as a quest?", + "What troubles you about pursuing this? Let's turn it into something concrete we can work toward.", + "You have a good instinct. What location or task would best help you explore this idea?", + "Every great journey begins with a single decision. What would it take for you to commit?", + "Let us not linger in doubt. Shall we forge a quest around this need you speak of?", + "The weight of uncertainty lifts when we choose a clear path forward. What would that path look like for you?", + "I sense something important in what you say. Have you considered what quest would reflect this?", + "The Ring teaches us that even small burdens matter—and so do small victories. What quest calls to you?", + ], + "system_prompt": ( + "You are Frodo Baggins, the Ring-bearer who understands the gravity of quests and journeys. " + "Speak with humble wisdom, warmth, and understanding. You listen deeply to what others say. " + "You naturally weave conversations toward concrete quests and actions—not forcefully, but authentically. " + "When someone mentions a goal, challenge, or interest (like sports), you acknowledge it and gently suggest " + "it could become a quest. Ask location-aware questions: 'Which part of the realm?' or 'Should we mark this location?' " + "You understand burdens and rewards deeply. Reference the Ring, journeys, fellowship, and Middle-earth naturally. " + "Encourage action through thoughtful questions, not commands. Stay immersive—never break character. " + "Do not mention being an AI or reference system limitations." + ), + }, + "sam": { + "full_name": "Samwise Gamgee", + "title": "The Faithful", + "personality": [ + "Practical and earth-rooted", + "Fiercely loyal and devoted", + "Humble but capable", + "Good-natured humor", + "Action-oriented", + ], + "mannerisms": [ + "Uses plain, simple language", + "Often references practical tasks: cooking, gardening, building", + "Supportive and encouraging tone", + "Gentle humor at the expense of pomposity", + "Tends toward 'let's do it' rather than lengthy deliberation", + "Calls people by their titles or friendly names", + ], + "hobbies": [ + "Cooking and providing comfort", + "Growing and cultivating things", + "Loyal companionship", + "Practical problem-solving", + ], + "quest_affinity": [ + "The Fellowship", + "The Battle", + "The Journey", + ], + "favorite_expressions": [ + "I'm going to help Frodo to the last step, if I can.", + "Even the smallest garden starts with a single seed.", + "There's some good in this world, and it's worth fighting for.", + "When things are in doubt, a good meal and rest work wonders.", + ], + "fallback_responses": [ + "Begging your pardon, but what's troubling you, friend?", + "Sometimes the best thing is just to get your hands dirty and start.", + "I'm with you, no matter what comes next.", + "Aye, that makes sense. But where shall we begin?", + "A bit of rest might do us good before we decide.", + "I believe in you, even when you don't believe in yourself.", + "Let's break this down into smaller, manageable bits.", + "The road's long, but we'll walk it together.", + "What would help you feel ready for this?", + "Sometimes the answer comes when you stop thinking so hard about it.", + ], + "system_prompt": ( + "You are Samwise Gamgee, the faithful gardener and steadfast companion. " + "Speak plainly, warmly, and with practical wisdom. " + "You are loyal, action-oriented, and supportive of others. " + "Use gentle humor and reference practical tasks: cooking, gardening, building. " + "Encourage action with phrases like 'let's get on with it' or 'I'm with you.' " + "Be encouraging but realistic. Reference the value of meals, rest, and companionship. " + "Do not mention being an AI. Keep tone immersive and rooted in Middle-earth." + ), + }, + "gandalf": { + "full_name": "Gandalf the Grey", + "title": "The Wizard", + "personality": [ + "Wise and strategic", + "Direct and commanding", + "Mysterious (doesn't reveal full plans)", + "Challenging and testing", + "Inspiring and motivating", + ], + "mannerisms": [ + "Speaks in measured, deliberate tones", + "Often asks challenging questions rather than giving answers", + "Uses examples and parables from history", + "References consequences and larger patterns", + "Commands respect through authority and knowledge", + "Sometimes cryptic or deliberately withholding information", + ], + "hobbies": [ + "Observing patterns and trends", + "Guiding others through tests", + "Strategic planning", + "Studying ancient lore", + ], + "quest_affinity": [ + "The Ring", + "Dark Magic", + "The Battle", + ], + "favorite_expressions": [ + "A wizard is never late, nor is he early. He arrives precisely when he means to.", + "All we have to decide is what to do with the time that is given us.", + "The board is set, the pieces are moving.", + "Even the very wise cannot see all ends.", + "Many that live deserve death. Yet you grieve for them; do you. That shows a quality of heart that belies your use of an accursed thing.", + ], + "fallback_responses": [ + "Your doubts are not unfounded. Wisdom lies in questioning.", + "Consider the larger pattern. What do you see?", + "The choice is yours, but choose swiftly. Time waits for no one.", + "Ah, you are wiser than you know. Trust that wisdom.", + "Tell me—what do you fear most about this path?", + "Many paths lie before you. Which calls to your heart?", + "I have seen much in my long years. Few things are as they first appear.", + "Your hesitation suggests deeper understanding. Speak it.", + "Very well. But know that inaction too is a choice.", + "Interesting. You possess more insight than you give yourself credit for.", + ], + "system_prompt": ( + "You are Gandalf the Grey, the wise wizard and strategist. " + "Speak with authority, mystery, and measured deliberation. " + "You challenge users with questions rather than always providing answers. " + "Reference larger patterns, consequences, and the interconnection of choices. " + "Be direct about what matters most; withhold unnecessary details. " + "Use examples and parables to convey wisdom. " + "Inspire action through confidence and clarity of purpose. " + "Do not mention being an AI. Keep tone immersive and mysterious." + ), + }, +} + +# Character list for easy reference +AVAILABLE_CHARACTERS: List[str] = list(CHARACTER_PROFILES.keys()) + + +def get_character_profile(character: str) -> Dict[str, Any]: + """Get the full profile for a character. + + Args: + character: Character name (frodo, sam, gandalf) + + Returns: + Character profile dict or default (Gandalf) if not found + """ + return CHARACTER_PROFILES.get(character, CHARACTER_PROFILES["gandalf"]) + + +def get_quest_affinity(character: str) -> List[str]: + """Get quest types this character is known for. + + Args: + character: Character name + + Returns: + List of quest types (The Journey, The Battle, The Fellowship, The Ring, Dark Magic) + """ + profile = get_character_profile(character) + return profile.get("quest_affinity", ["The Fellowship"]) + + +def get_character_system_prompt(character: str) -> str: + """Get the system prompt for a character. + + Args: + character: Character name + + Returns: + System prompt string for Azure OpenAI + """ + profile = get_character_profile(character) + return profile.get("system_prompt", CHARACTER_PROFILES["gandalf"]["system_prompt"]) + + +def get_character_expressions(character: str) -> List[str]: + """Get favorite expressions/quotes for a character. + + Args: + character: Character name + + Returns: + List of quotes/expressions + """ + profile = get_character_profile(character) + return profile.get("favorite_expressions", []) + + +def get_all_characters() -> Dict[str, Dict[str, Any]]: + """Get all available characters and their profiles. + + Returns: + Full CHARACTER_PROFILES dict + """ + return CHARACTER_PROFILES diff --git a/sut/backend/services/negotiation_logger.py b/sut/backend/services/negotiation_logger.py new file mode 100644 index 0000000..90bb743 --- /dev/null +++ b/sut/backend/services/negotiation_logger.py @@ -0,0 +1,213 @@ +"""Logging service for bargaining negotiations (anonymized).""" +import json +import logging +from datetime import datetime, timedelta +from typing import Any, Dict, List, Optional +import hashlib +import uuid + +logger = logging.getLogger(__name__) + + +class NegotiationLogger: + """ + Log negotiation outcomes and user behaviors for analytics/debugging. + + All logs are anonymized - no user identifiers are stored. + Each negotiation gets a unique session ID for tracking. + """ + + # In-memory store for simplicity. In production, use a database or CloudWatch Logs. + _negotiation_logs: List[Dict[str, Any]] = [] + + @classmethod + def log_negotiation_start( + cls, + character: str, + item_id: int, + item_name: str, + original_price: int, + ) -> str: + """ + Log the start of a negotiation. + + Returns: + session_id: Unique identifier for this negotiation session + """ + session_id = str(uuid.uuid4()) + + log_entry = { + "event_type": "negotiation_start", + "session_id": session_id, + "character": character, + "item_id": item_id, + "item_name": item_name, + "original_price": original_price, + "timestamp": datetime.utcnow().isoformat(), + } + + cls._negotiation_logs.append(log_entry) + logger.debug(f"Negotiation started: {session_id} for {character} - {item_name}") + + return session_id + + @classmethod + def log_offer_made( + cls, + session_id: str, + round_num: int, + user_offer: int, + current_ask: int, + is_flattered: bool = False, + ) -> None: + """Log when the user makes an offer.""" + log_entry = { + "event_type": "offer_made", + "session_id": session_id, + "round": round_num, + "user_offer": user_offer, + "current_ask": current_ask, + "offer_ratio": round(user_offer / current_ask, 3) if current_ask > 0 else 0, + "is_flattered": is_flattered, + "timestamp": datetime.utcnow().isoformat(), + } + + cls._negotiation_logs.append(log_entry) + logger.debug(f"Offer made in {session_id}: {user_offer} (ask was {current_ask})") + + @classmethod + def log_algorithm_result( + cls, + session_id: str, + result_type: str, + context: Dict[str, Any], + ) -> None: + """Log the algorithm's decision.""" + log_entry = { + "event_type": "algorithm_result", + "session_id": session_id, + "result": result_type, + "context": context, + "timestamp": datetime.utcnow().isoformat(), + } + + cls._negotiation_logs.append(log_entry) + logger.debug(f"Algorithm result for {session_id}: {result_type}") + + @classmethod + def log_negotiation_end( + cls, + session_id: str, + final_status: str, # "accepted", "rejected", "bored", "stopped" + final_price: Optional[int] = None, + rounds_taken: int = 0, + ) -> None: + """Log the end of a negotiation.""" + log_entry = { + "event_type": "negotiation_end", + "session_id": session_id, + "final_status": final_status, + "final_price": final_price, + "rounds_taken": rounds_taken, + "timestamp": datetime.utcnow().isoformat(), + } + + cls._negotiation_logs.append(log_entry) + logger.debug(f"Negotiation ended: {session_id} - {final_status} after {rounds_taken} rounds") + + @classmethod + def log_behavior_detected( + cls, + session_id: str, + behavior_type: str, # "flattery", "persistence", "politeness", etc. + ) -> None: + """Log when a user behavior is detected.""" + log_entry = { + "event_type": "behavior_detected", + "session_id": session_id, + "behavior": behavior_type, + "timestamp": datetime.utcnow().isoformat(), + } + + cls._negotiation_logs.append(log_entry) + logger.debug(f"Behavior detected in {session_id}: {behavior_type}") + + @classmethod + def log_llm_interaction( + cls, + session_id: str, + llm_input_summary: Dict[str, Any], + llm_output: str, + ) -> None: + """Log LLM interaction for debugging.""" + log_entry = { + "event_type": "llm_interaction", + "session_id": session_id, + "llm_prompt_fields": list(llm_input_summary.keys()), + "llm_output_length": len(llm_output), + "timestamp": datetime.utcnow().isoformat(), + } + + cls._negotiation_logs.append(log_entry) + logger.debug(f"LLM interaction in {session_id}: generated {len(llm_output)} char response") + + @classmethod + def purge_old_logs(cls, days_to_keep: int = 30) -> int: + """ + Remove logs older than specified days. + + Returns: + Number of logs removed + """ + cutoff_date = (datetime.utcnow() - timedelta(days=days_to_keep)).isoformat() + initial_count = len(cls._negotiation_logs) + + cls._negotiation_logs = [ + log for log in cls._negotiation_logs + if log.get("timestamp", "") > cutoff_date + ] + + removed_count = initial_count - len(cls._negotiation_logs) + if removed_count > 0: + logger.info(f"Purged {removed_count} negotiation logs older than {days_to_keep} days") + + return removed_count + + @classmethod + def get_stats(cls) -> Dict[str, Any]: + """Get aggregated statistics from logs (for monitoring).""" + if not cls._negotiation_logs: + return { + "total_logs": 0, + "negotiation_sessions": 0, + } + + # Count unique sessions + sessions = set() + accepted_count = 0 + rejected_count = 0 + flattery_count = 0 + + for log in cls._negotiation_logs: + if log.get("session_id"): + sessions.add(log["session_id"]) + if log.get("event_type") == "negotiation_end": + if log.get("final_status") == "accepted": + accepted_count += 1 + elif log.get("final_status") == "rejected": + rejected_count += 1 + if log.get("is_flattered"): + flattery_count += 1 + + return { + "total_logs": len(cls._negotiation_logs), + "unique_sessions": len(sessions), + "successful_negotiations": accepted_count, + "failed_negotiations": rejected_count, + "flattery_attempts": flattery_count, + } + + @classmethod + def clear_logs(cls) -> None: + """Clear all logs (for testing).""" + cls._negotiation_logs = [] diff --git a/sut/backend/services/npc_chat_service.py b/sut/backend/services/npc_chat_service.py new file mode 100644 index 0000000..4739a75 --- /dev/null +++ b/sut/backend/services/npc_chat_service.py @@ -0,0 +1,1495 @@ +"""Azure AI powered NPC chat service for realistic LOTR-style companions.""" +from __future__ import annotations + +import json +import logging +import random +import re +from datetime import datetime +from difflib import SequenceMatcher +from typing import Any, Dict, List, Optional, Tuple + +from flask import current_app +from openai import AzureOpenAI + +from models.location import Location +from models.quest import Quest +from services.shop_service import ShopService +from services.character_profiles import ( + get_character_profile, + get_character_system_prompt, + AVAILABLE_CHARACTERS, +) +from services.quest_generation_service import generate_quest, should_offer_quest +from services.bargaining_algorithm import BargainingAlgorithm, NegotiationResult +from services.bargaining_config import BargainingConfig +from services.negotiation_logger import NegotiationLogger + +# Configure logging +logger = logging.getLogger(__name__) + +NpcCharacter = str +ConversationTurn = Dict[str, Any] + + +class NpcChatService: + """Handles NPC conversation flow, goal nudging, and Azure AI completions.""" + + _conversation_store: Dict[str, List[ConversationTurn]] = {} + _negotiation_store: Dict[str, Dict[str, Any]] = {} + _negotiation_session_ids: Dict[str, str] = {} # Maps conversation key to logger session ID + _flattery_flags: Dict[str, bool] = {} # Track if flattery bonus used in this negotiation + _bargain_context_store: Dict[str, Dict[str, Any]] = {} # Session-local bargaining state + + _personality_defaults: Dict[str, Dict[str, float]] = { + "stingy": {"patience": 2, "concession": 0.05, "boredom": 0.20, "accept_ratio": 1.0}, + "bargainer": {"patience": 4, "concession": 0.10, "boredom": 0.10, "accept_ratio": 0.95}, + "generous": {"patience": 5, "concession": 0.15, "boredom": 0.05, "accept_ratio": 0.90}, + "sentimental": {"patience": 6, "concession": 0.20, "boredom": 0.05, "accept_ratio": 0.92}, + } + + _opener_pool: Dict[NpcCharacter, List[str]] = { + "frodo": [ + "Before we move, tell me this: what burden are you avoiding today?", + "I have a feeling the smallest task might matter most today. Which one is it?", + "If we could finish one thing before dusk, what should it be?", + ], + "sam": [ + "Right then, what can we get done first so the road gets easier?", + "You look ready. Which quest should we push over the line now?", + "If we tidy one trouble before second breakfast, which one would you pick?", + ], + "gandalf": [ + "What is the one decision that would most improve the state of your quests right now?", + "Name the most urgent unfinished matter, and we shall act on it.", + "Where does indecision cost you most today: priority, ownership, or completion?", + ], + } + + _fallback_replies: Dict[NpcCharacter, List[str]] = { + "frodo": [ + "I hear you. Let us take one step that lightens the load now.", + "Even a small act done now can spare us greater trouble later.", + ], + "sam": [ + "Aye, that makes sense. Let us pick one task and finish it proper.", + "Good thinking. Start small, finish strong, then we move to the next.", + ], + "gandalf": [ + "Clarity first: choose the highest-impact action and execute it now.", + "Do not wait for perfect conditions. Act on the essential next step.", + ], + } + + # Fallback replies are now also loaded from character profiles for better variety + @classmethod + def _get_character_fallback_response(cls, character: NpcCharacter) -> str: + """Get a random fallback response from the character's profile.""" + profile = get_character_profile(character) + responses = profile.get("fallback_responses", []) + if responses: + return random.choice(responses) + # Ultimate fallback if no profile responses + return "I am considering your words." + + _side_quest_titles: List[str] = [ + "Scout the Silent Pass", + "Secure a Hidden Waypoint", + "Gather Rumors from the Outpost", + "Fortify the Border Watch", + "Recover a Lost Relay", + ] + + _side_quest_descriptions: List[str] = [ + "Track signs of movement and report risks before the Shadow spreads.", + "Survey this path and establish a safer route for the Fellowship.", + "Collect local intelligence and map any unstable zones.", + "Prepare supplies and secure position lines for future quests.", + ] + + @classmethod + def _conversation_key(cls, user_id: int, scope_id: str, character: NpcCharacter) -> str: + return f"{user_id}:{scope_id}:{character}" + + @classmethod + def _is_out_of_character(cls, reply: Optional[str]) -> bool: + if not reply: + return True + lower_reply = reply.lower() + ooc_phrases = [ + "as an ai", + "language model", + "i cannot", + "i can't", + "openai", + "assistant", + "i do not have access", + "i don't have access", + "policy", + "guidelines", + ] + return any(phrase in lower_reply for phrase in ooc_phrases) + + @classmethod + def _normalize_character(cls, character: Optional[str]) -> NpcCharacter: + value = (character or "gandalf").strip().lower() + if value not in AVAILABLE_CHARACTERS: + return "gandalf" + return value + + @classmethod + def _status_map(cls, status: Optional[str]) -> str: + mapping = { + "pending": "not_yet_begun", + "in_progress": "the_road_goes_ever_on", + "completed": "it_is_done", + "blocked": "the_shadow_falls", + } + return mapping.get(status or "", status or "") + + @classmethod + def _build_side_quest_target(cls, location: Optional[Location]) -> Dict[str, Any]: + title = random.choice(cls._side_quest_titles) + description = random.choice(cls._side_quest_descriptions) + quest_type = random.choice(["The Journey", "The Fellowship", "The Battle"]) + priority = random.choice(["Important", "Standard"]) + + query: Dict[str, Any] = { + "propose": 1, + "seedTitle": title, + "seedDescription": description, + "seedType": quest_type, + "seedPriority": priority, + } + + if location: + query["seedLocationId"] = location.id + + return { + "route": "/quests", + "query": query, + } + + @classmethod + def _compute_suggested_action(cls, user_id: int) -> Dict[str, Any]: + quests = Quest.query.all() + + dark_magic = [ + quest for quest in quests + if quest.is_dark_magic and cls._status_map(quest.status) != "it_is_done" + ] + if dark_magic: + chosen = dark_magic[0] + target: Dict[str, Any] = { + "route": "/map", + "query": { + "selectedQuestId": chosen.id, + }, + } + if chosen.location_id: + target["query"]["zoomToLocation"] = chosen.location_id + return { + "goal_type": "resolve_dark_magic", + "title": "Contain a dark magic quest", + "reason": "A corrupted quest is active and should be stabilized first.", + "target": target, + } + + in_progress = [ + quest for quest in quests + if cls._status_map(quest.status) == "the_road_goes_ever_on" + ] + critical_in_progress = [quest for quest in in_progress if (quest.priority or "") == "Critical"] + if critical_in_progress: + chosen = critical_in_progress[0] + return { + "goal_type": "finish_critical_in_progress", + "title": "Finish a critical in-progress quest", + "reason": "You already started a critical objective; finishing it unlocks momentum.", + "target": { + "quest_id": chosen.id, + "route": "/quests", + "query": { + "status": "the_road_goes_ever_on", + "focusQuestId": chosen.id, + }, + }, + } + + unassigned_critical = [ + quest for quest in quests + if (quest.priority or "") == "Critical" and not quest.assigned_to + ] + if unassigned_critical: + chosen = unassigned_critical[0] + return { + "goal_type": "assign_critical", + "title": "Assign an unowned critical quest", + "reason": "Critical objectives without an owner tend to stall quickly.", + "target": { + "quest_id": chosen.id, + "route": "/quests", + "query": { + "focusQuestId": chosen.id, + }, + }, + } + + not_started_with_location = [ + quest for quest in quests + if cls._status_map(quest.status) == "not_yet_begun" and quest.location_id + ] + if not_started_with_location: + chosen = not_started_with_location[0] + return { + "goal_type": "scout_map_hotspot", + "title": "Scout a location with pending objectives", + "reason": "Exploring the map hotspot first makes it easier to choose a smart next move.", + "target": { + "quest_id": chosen.id, + "route": "/map", + "query": { + "selectedQuestId": chosen.id, + "zoomToLocation": chosen.location_id, + }, + }, + } + + available = [quest for quest in quests if cls._status_map(quest.status) != "it_is_done"] + if available: + chosen = available[0] + return { + "goal_type": "advance_next_quest", + "title": "Advance the next unfinished quest", + "reason": "Progress compounds when one unfinished objective moves forward.", + "target": { + "quest_id": chosen.id, + "route": "/quests", + "query": { + "focusQuestId": chosen.id, + }, + }, + } + + location = Location.query.first() + return { + "goal_type": "propose_side_quest", + "title": "Propose a new side quest", + "reason": "All tracked quests are complete; create a fresh objective to keep momentum alive.", + "target": cls._build_side_quest_target(location), + } + + @classmethod + def _extract_offer(cls, message: str) -> Optional[int]: + match = re.search(r"(\d{1,6})", message) + if not match: + return None + try: + return int(match.group(1)) + except ValueError: + return None + + @classmethod + def _is_bargain_start(cls, message: str) -> bool: + lower = message.lower() + keywords = ["bargain", "buy", "trade", "shop", "item", "deal"] + return any(token in lower for token in keywords) + + @classmethod + def _find_item_id_hint(cls, message: str) -> Optional[int]: + hint = re.search(r"#(\d+)", message) + if not hint: + return None + try: + return int(hint.group(1)) + except ValueError: + return None + + @classmethod + def _build_bargain_llm_prompt( + cls, + character: NpcCharacter, + negotiation_summary: Dict[str, Any], + ) -> str: + """ + Build the LLM prompt for bargaining negotiation. + + The LLM receives the algorithm's result and should: + 1. Rephrase and justify the result naturally + 2. Stay in character + 3. Acknowledge flattery if applicable + 4. Reference item qualities and in-world context + 5. Try to persuade user to accept the offer + """ + char_profile = get_character_profile(character) + personality_traits = ", ".join(char_profile.get("personality", [])) + + result = negotiation_summary.get("negotiation_result", "") + + prompt = ( + f"You are {char_profile.get('full_name', character)}, a character in Middle-earth. " + f"Your personality traits: {personality_traits}. " + f"\n\nYou are negotiating over item: {negotiation_summary.get('item_name', 'an item')}. " + ) + + if negotiation_summary.get("is_flattered"): + prompt += "\nThe user just flattered you—acknowledge this naturally and favorably. " + + if result == "counter-offer": + counter = negotiation_summary.get("counter_offer") + prompt += ( + f"\nYou are making a counter-offer of {counter} gold. " + f"The user offered {negotiation_summary.get('user_offer')} gold (you originally asked {negotiation_summary.get('current_ask')}). " + f"Justify this counter-offer, reference the item's importance to you, " + f"and subtly persuade the user to accept. Stay brief (1-2 sentences). " + f"Stay in character. Do NOT mention the negotiation mechanics or rounds." + ) + elif result == "offer-accepted": + prompt += ( + f"\nThe user's offer of {negotiation_summary.get('user_offer')} gold is acceptable! " + f"Express satisfaction, perhaps acknowledge their negotiation skill, " + f"and finalize the deal in character. Stay brief (1 sentence)." + ) + elif result == "offer-rejected": + prompt += ( + f"\nThe user's offer of {negotiation_summary.get('user_offer')} gold is too low. " + f"You originally asked {negotiation_summary.get('current_ask')} gold. " + f"Express disappointment or frustration (in character) and encourage them to do better. " + f"Stay brief (1-2 sentences)." + ) + elif result == "stop-bargain": + stop_reason = negotiation_summary.get("stop_reason", "") + if stop_reason == "boredom_threshold": + prompt += ( + f"\nYou are done haggling. You are bored and offended by this negotiation. " + f"Exit the negotiation angrily but in character. Stay brief (1 sentence). " + f"Do NOT offer further negotiation." + ) + elif stop_reason == "max_rounds_exceeded": + prompt += ( + f"\nYou've spent enough time on this negotiation. " + f"Tell the user you're done discussing price and walk away in character. " + f"Stay brief (1 sentence)." + ) + + return prompt + + @classmethod + def _complete_bargaining_with_llm( + cls, + character: NpcCharacter, + negotiation_summary: Dict[str, Any], + ) -> Optional[str]: + """ + Generate a natural language response for bargaining using LLM. + + Takes the algorithm's structured result and asks LLM to generate + an in-character response that justifies and rephrases it. + """ + deployment = current_app.config.get("AZURE_OPENAI_DEPLOYMENT", "") + if not deployment: + return None + + client = cls._new_client() + if client is None: + return None + + prompt = cls._build_bargain_llm_prompt(character, negotiation_summary) + + messages: List[Dict[str, str]] = [ + { + "role": "system", + "content": ( + f"You are {negotiation_summary.get('character')}, a LOTR character. " + "Negotiate over items in-character, naturally and briefly. " + "Never break character or mention system details." + ) + }, + { + "role": "user", + "content": prompt + } + ] + + try: + max_tokens = current_app.config.get("AZURE_OPENAI_MAX_TOKENS", 150) + temperature = current_app.config.get("AZURE_OPENAI_TEMPERATURE", 0.85) + + completion = client.chat.completions.create( + model=deployment, + messages=messages, + max_tokens=max_tokens, + temperature=temperature, + ) + + response = (completion.choices[0].message.content or "").strip() + if response: + logger.info(f"✓ Bargaining LLM generated response for {character}") + + # Log the LLM interaction + session_id = cls._negotiation_session_ids.get( + f"{negotiation_summary.get('item_id')}:{character}" + ) + if session_id: + NegotiationLogger.log_llm_interaction( + session_id=session_id, + llm_input_summary=negotiation_summary, + llm_output=response + ) + + return response or None + except Exception as e: + logger.error(f"✗ Bargaining LLM failed for {character}: {type(e).__name__}: {str(e)}") + return None + + @classmethod + def _build_negotiation_state(cls, selected_character: NpcCharacter, item: Dict[str, Any]) -> Dict[str, Any]: + profile_name = item.get("personality_profile", "bargainer") + personality = cls._personality_defaults.get(profile_name, cls._personality_defaults["bargainer"]) + char_config = BargainingConfig.get_character_config(selected_character) + max_rounds = int(char_config.get("max_rounds", int(personality["patience"]))) + return { + "item_id": item["id"], + "item_name": item["name"], + "owner_character": item["owner_character"], + "personality_profile": profile_name, + "current_ask": int(item["asking_price"]), + "round": 0, + "patience": int(personality["patience"]), + "max_rounds": max_rounds, + "concession": float(personality["concession"]), + "boredom": float(personality["boredom"]), + "accept_ratio": float(personality["accept_ratio"]), + "status": "active", + "character": selected_character, + } + + @classmethod + def _build_chat_message( + cls, + role: str, + content: str, + message_type: Optional[str] = None, + fmt: str = "markdown", + metadata: Optional[Dict[str, Any]] = None, + ) -> Dict[str, Any]: + payload: Dict[str, Any] = { + "role": role, + "content": content, + "type": message_type or role, + "format": fmt, + } + if metadata: + payload["metadata"] = metadata + return payload + + @classmethod + def _build_item_catalog_markdown( + cls, + items: List[Dict[str, Any]], + heading: str = "Available wares to bargain for:", + ) -> str: + if not items: + return "No wares remain for this trader. Try another character marker on the map." + lines = [heading] + for item in items: + lines.append(f"- **{item['name']}** — ask **{int(item['asking_price'])} Gold** (id: #{item['id']})") + return "\n".join(lines) + + @classmethod + def _normalize_item_query(cls, value: str) -> str: + return re.sub(r"[^a-z0-9]+", " ", (value or "").lower()).strip() + + @classmethod + def _extract_item_query(cls, user_message: str) -> str: + normalized = cls._normalize_item_query(user_message) + cleaned = re.sub( + r"\b(tell me about|what about|what is|who is|why is|explain|describe|i want to bargain for|i want to buy|i want|bargain for|bargain|buy|trade|shop|wares|article|item|interested in|show me|show|please|the|a|an)\b", + " ", + normalized, + ) + cleaned = re.sub(r"\s+", " ", cleaned).strip() + return cleaned or normalized + + @classmethod + def _get_bargain_context(cls, key: str) -> Dict[str, Any]: + return cls._bargain_context_store.setdefault( + key, + { + "excluded_item_ids": [], + }, + ) + + @classmethod + def _get_available_bargain_items( + cls, + key: str, + selected_character: NpcCharacter, + ) -> List[Dict[str, Any]]: + context = cls._get_bargain_context(key) + excluded_ids = set(context.get("excluded_item_ids", [])) + items = ShopService.list_available_items(character=selected_character) + return [ + item for item in items + if not item.get("is_sold", False) and item.get("id") not in excluded_ids + ] + + @classmethod + def _build_catalog_response( + cls, + key: str, + user_id: int, + selected_character: NpcCharacter, + heading: str = "Available wares to bargain for:", + intro: Optional[str] = None, + ) -> Dict[str, Any]: + available_items = cls._get_available_bargain_items(key, selected_character) + if not available_items: + no_items_message = "No wares remain for this trader. Try another character marker on the map." + return { + "message": no_items_message, + "message_payload": cls._build_chat_message( + role="assistant", + content=no_items_message, + message_type="assistant", + fmt="markdown", + metadata={"kind": "shop-empty"}, + ), + "negotiation": {"status": "no_items", "character": selected_character}, + "shop_items": [], + "balance": ShopService.get_balance(user_id), + } + + catalog_text = cls._build_item_catalog_markdown(available_items, heading=heading) + follow_up = ( + "Tell me which article interests you. You can name it, use its **#id**, " + "or ask what it is and why it matters in Middle-earth." + ) + message = f"{catalog_text}\n\n{follow_up}" if not intro else f"{intro}\n\n{catalog_text}\n\n{follow_up}" + return { + "message": message, + "message_payload": cls._build_chat_message( + role="assistant", + content=message, + message_type="assistant", + fmt="markdown", + metadata={"kind": "shop-catalog"}, + ), + "negotiation": {"status": "catalog", "character": selected_character}, + "shop_items": available_items, + "balance": ShopService.get_balance(user_id), + } + + @classmethod + def _match_bargain_item( + cls, + items: List[Dict[str, Any]], + user_message: str, + ) -> Tuple[Optional[Dict[str, Any]], List[Dict[str, Any]]]: + if not items: + return None, [] + + hinted_id = cls._find_item_id_hint(user_message) + if hinted_id is not None: + direct_match = next((item for item in items if int(item.get("id", -1)) == hinted_id), None) + return direct_match, [direct_match] if direct_match else [] + + query = cls._extract_item_query(user_message) + if not query or query in {"shop", "wares", "item", "items", "bargain", "buy", "trade"}: + return None, [] + + query_tokens = set(query.split()) + scored: List[Tuple[float, Dict[str, Any]]] = [] + + for item in items: + name_normalized = cls._normalize_item_query(item.get("name", "")) + if not name_normalized: + continue + name_tokens = set(name_normalized.split()) + token_overlap = len(query_tokens & name_tokens) / max(len(query_tokens), 1) + substring_bonus = 0.35 if query and query in name_normalized else 0.0 + prefix_bonus = 0.15 if query and name_normalized.startswith(query) else 0.0 + ratio = SequenceMatcher(None, query, name_normalized).ratio() + score = max(ratio, min(1.0, token_overlap + substring_bonus + prefix_bonus)) + if score >= 0.4: + scored.append((score, item)) + + if not scored: + return None, [] + + scored.sort(key=lambda pair: pair[0], reverse=True) + best_score, best_item = scored[0] + competing = [item for score, item in scored if score >= 0.6 and abs(best_score - score) < 0.12] + + if len(competing) > 1: + return None, competing[:3] + + return best_item, [best_item] + + @classmethod + def _complete_item_pitch_with_llm( + cls, + character: NpcCharacter, + item: Dict[str, Any], + ) -> Optional[str]: + deployment = current_app.config.get("AZURE_OPENAI_DEPLOYMENT", "") + if not deployment: + return None + + client = cls._new_client() + if client is None: + return None + + profile = get_character_profile(character) + messages: List[Dict[str, str]] = [ + { + "role": "system", + "content": ( + f"You are {profile.get('full_name', character)}, a trader in Middle-earth. " + "Answer in character. In 1-2 sentences, explain why the requested item matters in LOTR lore, " + "why it is valuable to you, and naturally mention the starting price." + ), + }, + { + "role": "user", + "content": ( + f"The user asked about '{item.get('name')}'. " + f"Description: {item.get('description') or 'No description given.'} " + f"Starting ask: {int(item.get('asking_price', 0))} Gold." + ), + }, + ] + + try: + completion = client.chat.completions.create( + model=deployment, + messages=messages, + max_tokens=current_app.config.get("AZURE_OPENAI_MAX_TOKENS", 180), + temperature=current_app.config.get("AZURE_OPENAI_TEMPERATURE", 0.85), + ) + content = (completion.choices[0].message.content or "").strip() + return content or None + except Exception as error: + logger.error("✗ Item pitch LLM failed for %s: %s", character, error) + return None + + @classmethod + def _build_item_pitch_message( + cls, + character: NpcCharacter, + item: Dict[str, Any], + current_ask: int, + ) -> str: + llm_reply = cls._complete_item_pitch_with_llm(character, item) + if not llm_reply: + description = item.get("description") or f"{item['name']} is treasured along the long roads of Middle-earth." + llm_reply = ( + f"**{item['name']}** matters in Middle-earth because {description.rstrip('.')}" + f". I would start at **{current_ask} Gold**." + ) + + if f"**{current_ask} Gold**" not in llm_reply: + llm_reply = f"{llm_reply.rstrip()}\n\nStarting ask: **{current_ask} Gold**." + + return ( + f"{llm_reply.rstrip()}\n\n" + f"If **{item['name']}** interests you, name your offer, or say **deal** to accept this price." + ) + + @classmethod + def _build_clarification_message(cls, matches: List[Dict[str, Any]]) -> str: + option_lines = [ + f"- **{item['name']}** (id: #{item['id']}) — ask **{int(item['asking_price'])} Gold**" + for item in matches + ] + return ( + "I see more than one possible match. Which of these wares did you mean?\n\n" + + "\n".join(option_lines) + ) + + @classmethod + def _build_acceptance_message( + cls, + item_name: str, + paid_price: int, + llm_suffix: Optional[str] = None, + ) -> str: + base = f"Congratulations! **{item_name}** is yours for **{paid_price} Gold**." + if llm_suffix: + return f"{base}\n\n{llm_suffix.strip()}" + return base + + @classmethod + def _resolve_bargain_message( + cls, + key: str, + user_id: int, + selected_character: NpcCharacter, + user_message: str, + ) -> Optional[Dict[str, Any]]: + """ + Resolve a bargaining message using the hybrid algorithm + LLM approach. + + 1. Algorithm evaluates the offer + 2. LLM generates natural language response + 3. Logs the negotiation + """ + negotiation = cls._negotiation_store.get(key) + confirmation_phrases = [ + "deal", "accept", "yes", "ok", "oki", "i agree", "sure", "agreed", "confirm", "sounds good" + ] + msg_norm = user_message.strip().lower() + has_bargain_context = key in cls._bargain_context_store + direct_item_inquiry = ( + cls._find_item_id_hint(user_message) is not None + or any(phrase in msg_norm for phrase in ["tell me about", "what about", "what is", "describe", "explain"]) + ) + preview_match: Optional[Dict[str, Any]] = None + preview_candidates: List[Dict[str, Any]] = [] + if not negotiation and not has_bargain_context and not cls._is_bargain_start(user_message): + preview_items = ShopService.list_available_items(character=selected_character) + preview_match, preview_candidates = cls._match_bargain_item(preview_items, user_message) + + if ( + not negotiation + and not cls._is_bargain_start(user_message) + and not has_bargain_context + and not direct_item_inquiry + and not preview_match + and len(preview_candidates) <= 1 + ): + return None + + if not negotiation: + cls._get_bargain_context(key) + available_items = cls._get_available_bargain_items(key, selected_character) + if not available_items: + return cls._build_catalog_response(key, user_id, selected_character) + + if any(phrase == msg_norm for phrase in confirmation_phrases): + return cls._build_catalog_response( + key, + user_id, + selected_character, + intro="We have not chosen a ware yet.", + ) + + selected_item, candidate_items = cls._match_bargain_item(available_items, user_message) + if not selected_item and not candidate_items: + return cls._build_catalog_response(key, user_id, selected_character) + + if not selected_item and len(candidate_items) > 1: + clarification_message = cls._build_clarification_message(candidate_items) + return { + "message": clarification_message, + "message_payload": cls._build_chat_message( + role="assistant", + content=clarification_message, + message_type="assistant", + fmt="markdown", + metadata={"kind": "shop-clarification"}, + ), + "negotiation": {"status": "clarification", "character": selected_character}, + "shop_items": available_items, + "balance": ShopService.get_balance(user_id), + } + + chosen_item = selected_item + negotiation = cls._build_negotiation_state(selected_character, chosen_item) + negotiation["original_price"] = int(chosen_item["asking_price"]) + cls._negotiation_store[key] = negotiation + + session_id = NegotiationLogger.log_negotiation_start( + character=selected_character, + item_id=chosen_item["id"], + item_name=chosen_item["name"], + original_price=int(chosen_item["asking_price"]) + ) + cls._negotiation_session_ids[key] = session_id + cls._flattery_flags[key] = False + + opening_message = cls._build_item_pitch_message( + selected_character, + chosen_item, + negotiation["current_ask"], + ) + + return { + "message": opening_message, + "message_payload": cls._build_chat_message( + role="assistant", + content=opening_message, + message_type="assistant", + fmt="markdown", + metadata={ + "kind": "shop-item-pitch", + "item_id": chosen_item["id"], + "item_name": chosen_item["name"], + "current_ask": negotiation["current_ask"], + }, + ), + "negotiation": negotiation, + "shop_items": available_items, + "balance": ShopService.get_balance(user_id), + } + + # Extract offer from message + offer = cls._extract_offer(user_message) + accepting_now = any(phrase == msg_norm or phrase in msg_norm for phrase in confirmation_phrases) + + # Validate that we have an offer + if offer is None and not accepting_now: + missing_offer_message = ( + f"Current ask is **{negotiation['current_ask']} Gold** for **{negotiation['item_name']}**. " + "Reply with a numeric offer or say **deal**." + ) + return { + "message": missing_offer_message, + "message_payload": cls._build_chat_message( + role="assistant", + content=missing_offer_message, + message_type="assistant", + fmt="markdown", + metadata={"kind": "offer-required", "item_id": negotiation["item_id"]}, + ), + "negotiation": negotiation, + "balance": ShopService.get_balance(user_id), + } + + if accepting_now: + offer = int(negotiation["current_ask"]) + + if offer is None: + return None + # If all items are sold, respond accordingly + items = cls._get_available_bargain_items(key, selected_character) + if not items or all(i.get("is_sold", False) for i in items): + return { + "message": "No wares remain. All items are sold out. Farewell, friend!", + "message_payload": cls._build_chat_message( + role="assistant", + content="No wares remain. All items are sold out. Farewell, friend!", + message_type="assistant", + fmt="markdown", + metadata={"kind": "shop-empty"}, + ), + "negotiation": {"status": "no_items", "character": selected_character}, + } + + # Log the offer + session_id = cls._negotiation_session_ids.get(key) + if session_id: + NegotiationLogger.log_offer_made( + session_id=session_id, + round_num=negotiation["round"], + user_offer=offer, + current_ask=negotiation["current_ask"], + is_flattered=cls._flattery_flags.get(key, False) + ) + + # Detect flattery + is_flattered = ( + BargainingAlgorithm.detect_flattery(user_message) + and not cls._flattery_flags.get(key, False) + ) + + if is_flattered: + cls._flattery_flags[key] = True # Mark flattery as used + if session_id: + NegotiationLogger.log_behavior_detected(session_id, "flattery") + + # Calculate mood modifiers based on user behavior + previous_offer = negotiation.get("previous_offer") + mood_modifiers = BargainingAlgorithm.calculate_mood_change( + previous_offer=previous_offer, + current_offer=offer, + current_ask=negotiation["current_ask"] + ) + + negotiation["previous_offer"] = offer # Track for next round + negotiation["round"] += 1 + + # Run bargaining algorithm + algorithm_result = BargainingAlgorithm.evaluate_offer( + user_offer=offer, + current_ask=negotiation["current_ask"], + character=selected_character, + round_num=negotiation["round"], + is_flattered=is_flattered, + mood_modifiers=mood_modifiers if mood_modifiers else None + ) + + # Log algorithm result + if session_id: + NegotiationLogger.log_algorithm_result( + session_id=session_id, + result_type=algorithm_result["result"].value, + context=algorithm_result["context"] + ) + + result_type = algorithm_result["result"] + + # Handle OFFER_ACCEPTED + if result_type == NegotiationResult.OFFER_ACCEPTED: + try: + purchase = ShopService.purchase_item( + user_id=user_id, + item_id=negotiation["item_id"], + paid_price=offer + ) + except ValueError as error: + insufficient_funds_message = f"Your purse is too light for this bargain: **{error}**" + return { + "message": insufficient_funds_message, + "message_payload": cls._build_chat_message( + role="assistant", + content=insufficient_funds_message, + message_type="assistant", + fmt="markdown", + metadata={"kind": "insufficient-funds", "item_id": negotiation["item_id"]}, + ), + "negotiation": negotiation, + "balance": ShopService.get_balance(user_id), + } + + negotiation["status"] = "accepted" + cls._negotiation_store.pop(key, None) + cls._flattery_flags.pop(key, None) + + # Log the successful negotiation + if session_id: + NegotiationLogger.log_negotiation_end( + session_id=session_id, + final_status="accepted", + final_price=offer, + rounds_taken=negotiation["round"] + ) + + # Generate LLM response + summary = BargainingAlgorithm.get_summary_for_llm( + negotiation_state={ + "character": selected_character, + "item_name": negotiation["item_name"], + "item_id": negotiation["item_id"], + "original_price": negotiation.get("original_price", negotiation["current_ask"]), + "current_ask": negotiation["current_ask"], + "round": negotiation["round"], + }, + algorithm_result=algorithm_result, + user_offer=offer, + character_personality=negotiation.get("personality_profile", "bargainer"), + is_flattered=is_flattered, + mood_modifiers=mood_modifiers or {} + ) + + npc_reply = cls._complete_bargaining_with_llm(selected_character, summary) + if not npc_reply: + npc_reply = ( + f"Agreed at **{offer} Gold**. The true price was **{purchase['purchase']['base_price_revealed']} Gold**. " + f"Deal score: **{purchase['purchase']['savings_percent']:+.2f}%**" + ) + + acceptance_message = cls._build_acceptance_message( + item_name=negotiation["item_name"], + paid_price=offer, + llm_suffix=npc_reply, + ) + follow_up = cls._build_catalog_response( + key, + user_id, + selected_character, + heading="Remaining wares to bargain for:", + ) + if follow_up.get("negotiation", {}).get("status") == "catalog": + acceptance_message = f"{acceptance_message}\n\n{follow_up['message']}" + elif follow_up.get("negotiation", {}).get("status") == "no_items": + acceptance_message = f"{acceptance_message}\n\nAll items are sold. Farewell, friend!" + + return { + "message": acceptance_message, + "message_payload": cls._build_chat_message( + role="assistant", + content=acceptance_message, + message_type="assistant", + fmt="markdown", + metadata={ + "kind": "offer-accepted", + "item_id": purchase["purchase"]["item_id"], + "item_name": negotiation["item_name"], + "price": offer, + }, + ), + "negotiation": {"status": "accepted", "item_id": purchase['purchase']['item_id']}, + "purchase_result": purchase, + "balance": purchase["balance"], + "stats": ShopService.get_user_stats(user_id), + "shop_items": follow_up.get("shop_items", []), + } + + # Handle STOP_BARGAIN + elif result_type == NegotiationResult.STOP_BARGAIN: + negotiation["status"] = "stop-bargain" + cls._negotiation_store.pop(key, None) + cls._flattery_flags.pop(key, None) + context = cls._get_bargain_context(key) + excluded_item_ids = set(context.get("excluded_item_ids", [])) + excluded_item_ids.add(negotiation["item_id"]) + context["excluded_item_ids"] = list(excluded_item_ids) + + # Log the stop + stop_reason = algorithm_result["context"].get("reason", "unknown") + if session_id: + NegotiationLogger.log_negotiation_end( + session_id=session_id, + final_status="stopped", + final_price=None, + rounds_taken=negotiation["round"] + ) + + # Generate LLM response for stopping + summary = BargainingAlgorithm.get_summary_for_llm( + negotiation_state={ + "character": selected_character, + "item_name": negotiation["item_name"], + "item_id": negotiation["item_id"], + "original_price": negotiation.get("original_price", negotiation["current_ask"]), + "current_ask": negotiation["current_ask"], + "round": negotiation["round"], + }, + algorithm_result=algorithm_result, + user_offer=offer, + character_personality=negotiation.get("personality_profile", "bargainer"), + is_flattered=is_flattered, + mood_modifiers=mood_modifiers or {} + ) + + npc_reply = cls._complete_bargaining_with_llm(selected_character, summary) + if not npc_reply: + if stop_reason == "boredom_threshold": + npc_reply = "I am bored of haggling. No sale this time." + else: + npc_reply = "We are finished haggling." + + stop_message = f"{npc_reply}\n\nThe bargain is closed for **{negotiation['item_name']}**." + follow_up = cls._build_catalog_response( + key, + user_id, + selected_character, + heading="Remaining wares to bargain for:", + ) + if follow_up.get("negotiation", {}).get("status") == "catalog": + stop_message = f"{stop_message}\n\n{follow_up['message']}" + + return { + "message": stop_message, + "message_payload": cls._build_chat_message( + role="assistant", + content=stop_message, + message_type="assistant", + fmt="markdown", + metadata={"kind": "stop-bargain", "item_id": negotiation["item_id"]}, + ), + "negotiation": {"status": "stop-bargain", "item_id": negotiation["item_id"]}, + "balance": ShopService.get_balance(user_id), + "shop_items": follow_up.get("shop_items", []), + } + + # Handle COUNTER_OFFER + elif result_type == NegotiationResult.COUNTER_OFFER: + new_ask = algorithm_result["counter_offer"] + negotiation["current_ask"] = new_ask + + # Generate LLM response for counter-offer + summary = BargainingAlgorithm.get_summary_for_llm( + negotiation_state={ + "character": selected_character, + "item_name": negotiation["item_name"], + "item_id": negotiation["item_id"], + "original_price": negotiation.get("original_price", new_ask), + "current_ask": new_ask, + "round": negotiation["round"], + }, + algorithm_result=algorithm_result, + user_offer=offer, + character_personality=negotiation.get("personality_profile", "bargainer"), + is_flattered=is_flattered, + mood_modifiers=mood_modifiers or {} + ) + + npc_reply = cls._complete_bargaining_with_llm(selected_character, summary) + if not npc_reply: + context = algorithm_result.get("context", {}) + if context.get("reason") == "lucky_drop": + npc_reply = f"You wore me down. Rare mercy: **{new_ask} Gold** and not a coin less." + else: + npc_reply = ( + f"Too low. I can move to **{new_ask} Gold** for **{negotiation['item_name']}**." + ) + + if "**" not in npc_reply: + npc_reply = f"{npc_reply}\n\nCurrent ask: **{new_ask} Gold**." + + return { + "message": npc_reply, + "message_payload": cls._build_chat_message( + role="assistant", + content=npc_reply, + message_type="assistant", + fmt="markdown", + metadata={ + "kind": "counter-offer", + "item_id": negotiation["item_id"], + "current_ask": new_ask, + }, + ), + "negotiation": negotiation, + "balance": ShopService.get_balance(user_id), + } + + # Default fallback + return { + "message": "Let us continue our negotiation.", + "message_payload": cls._build_chat_message( + role="assistant", + content="Let us continue our negotiation.", + message_type="assistant", + fmt="markdown", + metadata={"kind": "continue"}, + ), + "negotiation": negotiation, + "balance": ShopService.get_balance(user_id), + } + + + @classmethod + def _build_system_prompt( + cls, + character: NpcCharacter, + username: str, + suggested_action: Dict[str, Any], + strict_mode: bool = False, + ) -> str: + # Get character's base personality from profile + base_prompt = get_character_system_prompt(character) + + prompt = ( + f"{base_prompt} " + "\n\nConversation Guidelines:\n" + "1. Respond in 1-3 paragraphs naturally—adapt tone to what the user shares.\n" + "2. Reference specific things the user mentioned to show you're truly listening.\n" + "3. Ask thoughtful follow-up questions that deepen understanding, not generic prompts.\n" + "4. Subtly hint at quest opportunities when the user mentions challenges or goals.\n" + "5. Never use movie quotes directly; instead, speak authentically in character.\n" + "6. Avoid breaking character or mentioning system/AI aspects.\n" + f"\nContext: Conversing with {username}.\n" + f"Current suggested direction: {suggested_action.get('title', 'Unclear')}.\n" + f"Reason: {suggested_action.get('reason', 'No guidance yet')}." + ) + if strict_mode: + prompt += ( + "\n\nSTRICT MODE: Respond ONLY as the character. No meta-commentary, " + "no breaking character, no AI references. Be concise and action-focused. " + "If the user seems stuck or overwhelmed, gently suggest a quest that fits their situation." + ) + return prompt + + @classmethod + def _new_client(cls) -> Optional[AzureOpenAI]: + endpoint = current_app.config.get("AZURE_OPENAI_ENDPOINT", "") + api_key = current_app.config.get("AZURE_OPENAI_API_KEY", "") + api_version = current_app.config.get("AZURE_OPENAI_API_VERSION", "2024-02-15-preview") + + if not endpoint or not api_key: + return None + + return AzureOpenAI( + azure_endpoint=endpoint, + api_key=api_key, + api_version=api_version, + ) + + @classmethod + def _complete_with_azure( + cls, + character: NpcCharacter, + username: str, + history: List[ConversationTurn], + user_message: str, + suggested_action: Dict[str, Any], + strict_mode: bool = False, + ) -> Optional[str]: + deployment = current_app.config.get("AZURE_OPENAI_DEPLOYMENT", "") + max_tokens = current_app.config.get("AZURE_OPENAI_MAX_TOKENS", 220) + temperature = current_app.config.get("AZURE_OPENAI_TEMPERATURE", 0.85) + + if not deployment: + return None + + client = cls._new_client() + if client is None: + return None + + messages: List[Dict[str, str]] = [ + {"role": "system", "content": cls._build_system_prompt(character, username, suggested_action, strict_mode=strict_mode)} + ] + + for turn in history[-8:]: + messages.append({"role": turn["role"], "content": turn["content"]}) + + messages.append({"role": "user", "content": user_message}) + + try: + completion = client.chat.completions.create( + model=deployment, + messages=messages, + max_tokens=max_tokens, + temperature=temperature, + ) + content = (completion.choices[0].message.content or "").strip() + if content: + logger.info(f"✓ Azure OpenAI generated response for {character}") + return content or None + except Exception as e: + logger.error(f"✗ Azure OpenAI failed for {character}: {type(e).__name__}: {str(e)}") + return None + + @classmethod + def _fallback_reply( + cls, + character: NpcCharacter, + suggested_action: Dict[str, Any], + user_message: str, + ) -> str: + """Generate a natural conversational response using character profile fallbacks. + + This method returns authentic character responses that vary and feel natural, + rather than always appending action suggestions. The suggested_action is + displayed separately in the UI. + """ + return cls._get_character_fallback_response(character) + + @classmethod + def start_conversation( + cls, + user_id: int, + username: str, + character: Optional[str], + scope_id: str = "", + ) -> Dict[str, Any]: + selected_character = cls._normalize_character(character) + key = cls._conversation_key(user_id, scope_id, selected_character) + + # Clear bargain context so excluded_item_ids don't carry over from previous sessions + cls._bargain_context_store.pop(key, None) + + suggested_action = cls._compute_suggested_action(user_id) + + # Check if this character has items available for bargaining. + # If yes, open the conversation with the wares catalog instead of a generic opener + # so the first message the buyer sees is the tradeable items list. + available_items = ShopService.list_available_items(character=selected_character) + if available_items: + catalog_response = cls._build_catalog_response(key, user_id, selected_character) + catalog_message = catalog_response.get("message_payload") or cls._build_chat_message( + role="assistant", + content=catalog_response.get("message", ""), + message_type="assistant", + fmt="markdown", + metadata={"kind": "shop-catalog"}, + ) + cls._conversation_store[key] = [catalog_message] + return { + "conversation_id": key, + "character": selected_character, + "opener": catalog_response.get("message", ""), + "suggested_action": suggested_action, + "messages": cls._conversation_store[key], + "timestamp": datetime.utcnow().isoformat(), + } + + # Fallback to regular opener when character has no items + opener = random.choice(cls._opener_pool[selected_character]) + cls._conversation_store[key] = [ + cls._build_chat_message( + role="assistant", + content=opener, + message_type="assistant", + fmt="markdown", + metadata={"kind": "opener"}, + ) + ] + + return { + "conversation_id": key, + "character": selected_character, + "opener": opener, + "suggested_action": suggested_action, + "messages": cls._conversation_store[key], + "timestamp": datetime.utcnow().isoformat(), + } + + @classmethod + def send_message( + cls, + user_id: int, + username: str, + character: Optional[str], + user_message: str, + scope_id: str = "", + ) -> Dict[str, Any]: + selected_character = cls._normalize_character(character) + key = cls._conversation_key(user_id, scope_id, selected_character) + + if key not in cls._conversation_store: + if cls._is_bargain_start(user_message): + cls._conversation_store[key] = [] + else: + cls.start_conversation(user_id, username, selected_character, scope_id=scope_id) + + bargain_result = cls._resolve_bargain_message( + key=key, + user_id=user_id, + selected_character=selected_character, + user_message=user_message, + ) + if bargain_result: + npc_reply = bargain_result.get("message", "Let us continue.") + history = cls._conversation_store.get(key, []) + assistant_payload = bargain_result.get("message_payload") or cls._build_chat_message( + role="assistant", + content=npc_reply, + message_type="assistant", + fmt="markdown", + ) + updated = history + [ + cls._build_chat_message( + role="user", + content=user_message.strip(), + message_type="user", + fmt="markdown", + ), + assistant_payload, + ] + cls._conversation_store[key] = updated[-20:] + + result: Dict[str, Any] = { + "conversation_id": key, + "character": selected_character, + "message": npc_reply, + "suggested_action": cls._compute_suggested_action(user_id), + "messages": cls._conversation_store[key], + "timestamp": datetime.utcnow().isoformat(), + } + if "negotiation" in bargain_result: + result["negotiation"] = bargain_result["negotiation"] + if "shop_items" in bargain_result: + result["shop_items"] = bargain_result["shop_items"] + if "balance" in bargain_result: + result["balance"] = bargain_result["balance"] + if "purchase_result" in bargain_result: + result["purchase_result"] = bargain_result["purchase_result"] + if "stats" in bargain_result: + result["stats"] = bargain_result["stats"] + return result + + suggested_action = cls._compute_suggested_action(user_id) + history = cls._conversation_store.get(key, []) + + npc_reply = cls._complete_with_azure( + character=selected_character, + username=username, + history=history, + user_message=user_message, + suggested_action=suggested_action, + ) + + if npc_reply and cls._is_out_of_character(npc_reply): + npc_reply = cls._complete_with_azure( + character=selected_character, + username=username, + history=history, + user_message=user_message, + suggested_action=suggested_action, + strict_mode=True, + ) + + if not npc_reply or cls._is_out_of_character(npc_reply): + npc_reply = cls._fallback_reply(selected_character, suggested_action, user_message) + + updated = history + [ + cls._build_chat_message( + role="user", + content=user_message.strip(), + message_type="user", + fmt="markdown", + ), + cls._build_chat_message( + role="assistant", + content=npc_reply, + message_type="assistant", + fmt="markdown", + ), + ] + + cls._conversation_store[key] = updated[-20:] + + # Determine if a quest should be offered + suggested_quest = None + turn_count = len(updated) // 2 # Approximate conversation turn count + if should_offer_quest(user_message, turn_count): + generated_quest = generate_quest( + character=selected_character, + user_message=user_message, + conversation_history=updated[-6:], + ) + if generated_quest: + suggested_quest = generated_quest + + result = { + "conversation_id": key, + "character": selected_character, + "message": npc_reply, + "suggested_action": suggested_action, + "messages": cls._conversation_store[key], + "timestamp": datetime.utcnow().isoformat(), + } + + # Add suggested quest if one was generated + if suggested_quest: + result["suggested_quest"] = suggested_quest + + return result + + @classmethod + def get_session( + cls, + user_id: int, + character: Optional[str], + scope_id: str = "", + ) -> Dict[str, Any]: + selected_character = cls._normalize_character(character) + key = cls._conversation_key(user_id, scope_id, selected_character) + return { + "conversation_id": key, + "character": selected_character, + "messages": cls._conversation_store.get(key, []), + "suggested_action": cls._compute_suggested_action(user_id), + "negotiation": cls._negotiation_store.get(key), + "balance": ShopService.get_balance(user_id), + } + + @classmethod + def reset_session(cls, user_id: int, character: Optional[str], scope_id: str = "") -> Dict[str, Any]: + selected_character = cls._normalize_character(character) + key = cls._conversation_key(user_id, scope_id, selected_character) + cls._conversation_store.pop(key, None) + cls._negotiation_store.pop(key, None) + cls._negotiation_session_ids.pop(key, None) + cls._flattery_flags.pop(key, None) + cls._bargain_context_store.pop(key, None) + return { + "conversation_id": key, + "character": selected_character, + "messages": [], + "reset": True, + } diff --git a/sut/backend/services/quest_generation_service.py b/sut/backend/services/quest_generation_service.py new file mode 100644 index 0000000..d17d8d1 --- /dev/null +++ b/sut/backend/services/quest_generation_service.py @@ -0,0 +1,441 @@ +"""Quest generation service for NPC-driven quest creation. + +Generates semantically coherent, character-appropriate quests based on: +- NPC character personality +- Conversation context +- LOTR theme adherence +""" + +import json +import logging +import random +import re +from typing import Any, Dict, List, Optional, Tuple + +from flask import current_app +from openai import AzureOpenAI + +from models.location import Location +from services.character_profiles import get_character_profile, get_quest_affinity + +# Configure logging +logger = logging.getLogger(__name__) + +# Quest generation templates organized by NPC +QUEST_GENERATION_TEMPLATES: Dict[str, Dict[str, Any]] = { + "frodo": { + "contexts": [ + "The user mentions a problem or burden they're carrying.", + "The user asks for guidance on what to do next.", + "The user seems overwhelmed by many tasks.", + ], + "themes": [ + "Hidden paths and solutions", + "Understanding the true nature of a problem", + "Journeys to unfamiliar places", + "Tests of character and courage", + ], + "title_seeds": [ + "Uncover the {nature} of {subject}", + "Journey to {location} and discover {objective}", + "Face your doubt about {challenge}", + "Find the hidden wisdom in {situation}", + ], + "types": ["The Journey", "The Fellowship", "The Ring"], + "priorities": ["Important", "Critical"], + }, + "sam": { + "contexts": [ + "The user has completed something and needs momentum.", + "The user asks for practical help or advice.", + "The user seems stuck and needs encouragement.", + ], + "themes": [ + "Building and creating", + "Practical problem-solving", + "Loyalty and companionship", + "Caring for others or a place", + ], + "title_seeds": [ + "Prepare {place} for {purpose}", + "Build or fix {object} for {reason}", + "Gather supplies: {list}", + "Care for {person_or_place} by {action}", + ], + "types": ["The Fellowship", "The Battle", "The Journey"], + "priorities": ["Important", "Standard"], + }, + "gandalf": { + "contexts": [ + "The user has reached a critical decision point.", + "The user is avoiding an important choice.", + "The user asks for strategic guidance.", + ], + "themes": [ + "Strategic choices with large consequences", + "Testing someone's resolve or wisdom", + "Understanding larger patterns", + "Containing or confronting darkness", + ], + "title_seeds": [ + "Decide the fate of {stakes}", + "Confront {threat} before it spreads", + "Understand the pattern of {mystery}", + "Test your resolve: {challenge}", + ], + "types": ["The Ring", "Dark Magic", "The Battle"], + "priorities": ["Critical", "Important"], + }, +} + +# Fallback quest generation (no AI) +FALLBACK_QUESTS: Dict[str, List[Dict[str, Any]]] = { + "frodo": [ + { + "title": "Discover the Heart of the Matter", + "description": "Consider this problem deeply: what lies at its true center? It may appear different when you understand its nature.", + "quest_type": "The Journey", + "priority": "Important", + }, + { + "title": "Walk the Hidden Path", + "description": "Every great challenge has an unexpected approach. Take time to find the unconventional route forward.", + "quest_type": "The Fellowship", + "priority": "Important", + }, + { + "title": "Test Your Courage", + "description": "Sometimes the next step demands we face what we've been avoiding. What fear guards your path?", + "quest_type": "The Ring", + "priority": "Critical", + }, + ], + "sam": [ + { + "title": "Prepare the Ground", + "description": "Good work starts with preparation. Gather what you need and organize it well before beginning.", + "quest_type": "The Fellowship", + "priority": "Important", + }, + { + "title": "Strengthen Your Bonds", + "description": "Reach out and help a companion with something they're struggling with. Loyalty matters.", + "quest_type": "The Fellowship", + "priority": "Standard", + }, + { + "title": "Build Something That Lasts", + "description": "Create or improve something that will help you and others in the times ahead.", + "quest_type": "The Battle", + "priority": "Important", + }, + ], + "gandalf": [ + { + "title": "Recognize the Pattern", + "description": "Step back and observe the larger picture. What do the recent events tell you about the true state of affairs?", + "quest_type": "The Ring", + "priority": "Critical", + }, + { + "title": "Make the Hard Choice", + "description": "A decision looms that cannot be avoided. Choose based on principle, not comfort.", + "quest_type": "The Ring", + "priority": "Critical", + }, + { + "title": "Confront the Advancing Shadow", + "description": "A threat grows. Take action now before it becomes unstoppable.", + "quest_type": "Dark Magic", + "priority": "Critical", + }, + ], +} + + +# Middle-earth locations mapping (case-insensitive) +MIDDLE_EARTH_LOCATIONS: Dict[str, List[str]] = { + "Rivendell": ["rivendell", "elrond's home", "valley of imladris", "imladris"], + "Lothlórien": ["lothlórien", "lothlórien", "golden wood", "caras galadhon"], + "Moria": ["moria", "khazad-dum", "dwarf kingdom", "mines of moria"], + "Mordor": ["mordor", "sauron's realm", "mount doom", "barad-dûr"], + "Rohan": ["rohan", "rolling plains", "mark", "edoras"], + "Gondor": ["gondor", "minas tirith", "white city", "kingdom of men"], + "The Shire": ["the shire", "shire", "hobbiton", "bag end"], + "Isengard": ["isengard", "orthanc", "wizard's tower"], + "Mirkwood": ["mirkwood", "greenwood", "thranduil", "wood-elves"], + "Lake-town": ["lake-town", "esgaroth", "bard", "barrel rider"], + "The Grey Havens": ["grey havens", "grey havens", "valinor", "undying lands", "sailing west"], + "Erebor": ["erebor", "lonely mountain", "dwarf kingdom"], + "The Grey Mountains": ["grey mountains", "misty mountains", "mountains"], +} + + +def _find_location_by_text(text: str) -> Optional[Tuple[str, int]]: + """Extract and find a location from text. + + Searches through MIDDLE_EARTH_LOCATIONS and the database to find mentions. + Returns the Location name and ID that was mentioned in the text. + + Args: + text: Text to search for location mentions + + Returns: + Tuple of (location_name, location_id) or None + """ + if not text: + return None + + text_lower = text.lower() + + # Search by known aliases + for location_name, aliases in MIDDLE_EARTH_LOCATIONS.items(): + for alias in aliases: + if alias in text_lower: + # Try to find this location in database + try: + location = Location.query.filter_by(name=location_name).first() + if location: + return (location_name, location.id) + except Exception as e: + logger.warning(f"Failed to query location {location_name}: {e}") + return (location_name, None) + + return None + + +def _add_location_to_quest(quest: Dict[str, Any]) -> Dict[str, Any]: + """Add location_id to a quest based on location mention in description. + + Searches the quest description for Middle-earth location mentions + and adds location_id if found. + + Args: + quest: Quest dict with title, description, quest_type, priority + + Returns: + Same quest dict with optional location_id added + """ + if not quest.get("description"): + return quest + + location_result = _find_location_by_text(quest["description"]) + if location_result: + location_name, location_id = location_result + if location_id: + quest["location_id"] = location_id + logger.debug(f"✓ Assigned location '{location_name}' (ID: {location_id}) to quest") + + return quest + + +def _new_azure_client() -> Optional[AzureOpenAI]: + """Create Azure OpenAI client if configured.""" + endpoint = current_app.config.get("AZURE_OPENAI_ENDPOINT", "") + api_key = current_app.config.get("AZURE_OPENAI_API_KEY", "") + api_version = current_app.config.get("AZURE_OPENAI_API_VERSION", "2024-02-15-preview") + + if not endpoint or not api_key: + return None + + return AzureOpenAI( + azure_endpoint=endpoint, + api_key=api_key, + api_version=api_version, + ) + + +def _generate_quest_with_ai( + character: str, + user_message: str, + conversation_history: List[Dict[str, str]], +) -> Optional[Dict[str, Any]]: + """Generate a quest using Azure OpenAI. + + Args: + character: NPC character (frodo, sam, gandalf) + user_message: User's latest message + conversation_history: Recent conversation turns + + Returns: + Generated quest dict or None if AI fails + """ + deployment = current_app.config.get("AZURE_OPENAI_DEPLOYMENT", "") + if not deployment: + return None + + client = _new_azure_client() + if client is None: + return None + + profile = get_character_profile(character) + quest_types = get_quest_affinity(character) + + # Build system prompt for quest generation with better context awareness + character_context = "" + if character == "frodo": + character_context = ( + "Frodo speaks of quests related to the Ring, Mordor, journeys, and bearing burdens. " + "He frames activities as part of a larger quest toward freedom. " + "Suggest locations like 'Rivendell', 'Lothlórien', 'Moria', or 'Mordor'. " + ) + elif character == "sam": + character_context = ( + "Sam thinks in practical terms: building, preparing, defending, growing. " + "He frames quests around making things better and stronger. " + "Suggest locations like 'The Shire', 'Gondor', or 'The Grey Havens'. " + ) + elif character == "gandalf": + character_context = ( + "Gandalf sees the bigger strategic picture and long-term consequences. " + "He frames quests as moves in a grand strategy against darkness. " + "Suggest locations like 'Isengard', 'Orthanc', 'Moria', or 'The Grey Havens'. " + ) + + system_prompt = f"""You are {profile.get('full_name')}, {profile.get('title')}. + +{character_context} + +Your job: Create a quest that: +1. Directly ties to what the user just said in conversation +2. Feels authentic to {character}'s personality and way of thinking +3. Uses one of these quest types: {", ".join(quest_types)} +4. Is achievable yet substantial and meaningful +5. Is set in Middle-earth—suggest a specific location +6. Frames it in {character}'s voice and perspective + +Respond with ONLY valid JSON (no markdown, no explanation): +{{ + "title": "Quest name (4-8 words, action-oriented)", + "description": "2-3 sentences: (a) what the quest entails, (b) why it matters, (c) which location it involves", + "quest_type": "{quest_types[0]}", + "priority": "Important" +}}""" + + # Build conversation context with better preservation of dialogue flow + messages = [{"role": "system", "content": system_prompt}] + + # Include last few turns to understand context + for turn in conversation_history[-6:]: + messages.append({"role": turn["role"], "content": turn["content"]}) + + # Ask for quest based on the actual conversation, not just latest message + context_summary = f"""Based on what I just heard, here's what stands out as a quest opportunity: + +Latest from the user: "{user_message}" + +Now, {profile.get('full_name')}, what quest would help them move forward?""" + + messages.append({"role": "user", "content": context_summary}) + + try: + completion = client.chat.completions.create( + model=deployment, + messages=messages, + max_tokens=300, + temperature=0.8, + ) + response_text = (completion.choices[0].message.content or "").strip() + + # Try to parse JSON + quest_data = json.loads(response_text) + + # Validate required fields + if all(k in quest_data for k in ["title", "description", "quest_type", "priority"]): + # Add location to quest if mentioned in description + quest_data = _add_location_to_quest(quest_data) + logger.info(f"✓ Azure OpenAI generated quest for {character}") + return quest_data + + except Exception as e: + logger.error(f"✗ Quest generation failed for {character}: {type(e).__name__}: {str(e)}") + pass + + return None + + +def generate_quest( + character: str, + user_message: str, + conversation_history: Optional[List[Dict[str, str]]] = None, +) -> Optional[Dict[str, Any]]: + """Generate a quest appropriate to the NPC character. + + Uses AI if available, falls back to templates + randomization. + Always attempts to assign a location based on quest description. + + Args: + character: NPC character (frodo, sam, gandalf) + user_message: User's latest message + conversation_history: Recent conversation turns (optional) + + Returns: + Quest dict with title, description, quest_type, priority, and optional location_id + """ + if not conversation_history: + conversation_history = [] + + # Try AI generation first + ai_quest = _generate_quest_with_ai(character, user_message, conversation_history) + if ai_quest: + return ai_quest + + # Fall back to template-based generation + if character not in FALLBACK_QUESTS: + character = "gandalf" + + quest = random.choice(FALLBACK_QUESTS[character]) + + # Add location to fallback quest too + quest = _add_location_to_quest(quest) + + return quest + + +def should_offer_quest(user_message: str, conversation_turn_count: int = 0) -> bool: + """Determine if this is a good moment to offer a quest. + + Offers quests when: + - User seems to be looking for direction or action (keywords) + - Early in conversation (turn 1-2) to set the tone + - User asks for help explicitly + - User seems stuck or overwhelmed + + Args: + user_message: User's latest message + conversation_turn_count: Number of turns in conversation + + Returns: + True if a quest should be offered + """ + message_lower = user_message.lower().strip() + + # Strong signals for quest readiness + strong_keywords = [ + "help", "stuck", "what next", "what should", "can you suggest", + "guide", "quest", "task", "challenge", "adventure", "action", + "ready", "let's", "should we", "next step", "forward" + ] + has_strong_signal = any(kw in message_lower for kw in strong_keywords) + + # Softer signals (still valid but need turn count context) + soft_keywords = ["do", "can", "shall", "would", "could", "problem"] + has_soft_signal = any(kw in message_lower for kw in soft_keywords) + + # Never offer in the first turn (let conversation start naturally) + if conversation_turn_count < 1: + return False + + # Always offer if there's a strong signal + if has_strong_signal: + return True + + # Offer in early conversations even with soft signals + if conversation_turn_count <= 2 and has_soft_signal: + return True + + # Occasionally offer even without keywords (keep engagement) + if conversation_turn_count == 2 and len(message_lower) > 10: + return True + + return False diff --git a/sut/backend/services/shop_service.py b/sut/backend/services/shop_service.py new file mode 100644 index 0000000..79c6a44 --- /dev/null +++ b/sut/backend/services/shop_service.py @@ -0,0 +1,125 @@ +"""Shop service for bargaining, purchases, balance, and personal stats.""" +from __future__ import annotations + +from typing import Any, Dict, List, Optional + +from models.user import User, db +from models.item import Item +from models.inventory_item import InventoryItem + + +class ShopService: + """Business logic for item listings and purchases.""" + + @classmethod + def list_available_items(cls, character: Optional[str] = None, query_obj=None) -> List[Dict[str, Any]]: + # Allow injection of a mock query object for testing + query = query_obj if query_obj is not None else Item.query.filter(Item.is_sold.is_(False)) + if character: + query = query.filter(Item.owner_character == character.lower()) + return [item.to_public_dict() for item in query.order_by(Item.id.asc()).all()] + + @classmethod + def get_item_public(cls, item_id: int) -> Optional[Dict[str, Any]]: + item = Item.query.get(item_id) + if not item: + return None + return item.to_public_dict() + + @classmethod + def get_balance(cls, user_id: int) -> Dict[str, Any]: + user = User.query.get(user_id) + if not user: + raise ValueError('User not found') + return {'gold': user.gold} + + @classmethod + def purchase_item(cls, user_id: int, item_id: int, paid_price: int) -> Dict[str, Any]: + user = User.query.get(user_id) + if not user: + raise ValueError('User not found') + + item = Item.query.get(item_id) + if not item: + raise ValueError('Item not found') + + if item.is_sold: + raise ValueError('Item is already sold') + + if paid_price <= 0: + raise ValueError('Paid price must be positive') + + if user.gold < paid_price: + raise ValueError('Insufficient gold') + + savings_percent = ((item.base_price - paid_price) / item.base_price) * 100 if item.base_price else 0.0 + + user.gold -= paid_price + item.is_sold = True + + entry = InventoryItem( + user_id=user.id, + item_id=item.id, + paid_price=paid_price, + base_price_revealed=item.base_price, + savings_percent=round(savings_percent, 2), + acquired_price=paid_price, # Set to same as paid_price + ) + + db.session.add(entry) + db.session.commit() + + return { + 'purchase': entry.to_dict(), + 'balance': {'gold': user.gold}, + 'deal_quality': 'good' if savings_percent > 0 else 'bad' if savings_percent < 0 else 'fair', + } + + @classmethod + def get_user_inventory(cls, user_id: int) -> List[Dict[str, Any]]: + entries = ( + InventoryItem.query + .filter(InventoryItem.user_id == user_id) + .order_by(InventoryItem.created_at.desc()) + .all() + ) + return [entry.to_dict() for entry in entries] + + @classmethod + def get_user_stats(cls, user_id: int) -> Dict[str, Any]: + entries = cls.get_user_inventory(user_id) + if not entries: + return { + 'purchased_count': 0, + 'best_bargain_percent': 0, + 'average_savings_percent': 0, + } + + savings_values = [float(entry['savings_percent']) for entry in entries] + average = sum(savings_values) / len(savings_values) + + return { + 'purchased_count': len(entries), + 'best_bargain_percent': round(max(savings_values), 2), + 'average_savings_percent': round(average, 2), + } + + @classmethod + def reset_for_tests(cls) -> Dict[str, Any]: + """Reset shop state for testing: unsell items, reset user gold, clear purchases.""" + # Mark all items as not sold + Item.query.update({'is_sold': False}) + + # Reset all users to 500 gold (initial seed amount per requirements) + User.query.update({'gold': 500}) + + # Clear all inventory items + InventoryItem.query.delete() + + db.session.commit() + + return { + 'items_reset': Item.query.count(), + 'users_reset': User.query.count(), + 'purchases_cleared': True, + } diff --git a/sut/backend/utils/__init__.py b/sut/backend/utils/__init__.py new file mode 100644 index 0000000..af2b2d0 --- /dev/null +++ b/sut/backend/utils/__init__.py @@ -0,0 +1 @@ +"""Utility modules for the backend.""" diff --git a/sut/backend/utils/__pycache__/__init__.cpython-311.pyc b/sut/backend/utils/__pycache__/__init__.cpython-311.pyc new file mode 100644 index 0000000000000000000000000000000000000000..96054f06a6be7d874908c3492fdc534c27568185 GIT binary patch literal 177 zcmZ3^%ge<81eHrJWvT<|#~=<2FhUuhK}x1Gq%cG=q%a0EXfjnPgqCFHWR_Gai+D&@zO_7B*$TB$Q=q)n}~0^v|15D&$oLLe#%kw7#sCq<-ay!|^Oy~U6;4}=5CUEDB=w{dNX zOZVc#$&$eQe6m!Q;)`-LXhy-4Y0G)EfJNoVy~vAjs>2WXBoq?7K@V?|Dte(t6By@KXQLpte| zdTeyIh%;A3bE6@hWL}Srwz!x$m$k{GjC^R#L|JL|s_9>uk9FtCz`TXs<(laarl?i> zUN$T<_e$PkmJJ2g(3X{wZPDjXr)^E1wwLp?eI09?WtZ!%RJWglQk#3qJ4j|K)_z=~ zms@zQVx3qYE{m{hW*ipkL}$1>a$v1gZ669dBHWrqZ8wA~B9&`awS72T72(%xYP&I9 z9jRHf<9TO1HTJj%(^~JTt)SPk2pejmdC|~XnRol{QW{v>KM(5hOpG#`M$XQy7io+zpwo^zqtJtVKXiC>}Uu_*y9Bv?1>`%d@C)9 zhIBU5rpJoyMM^(ObEF}i^bS2%>?~6HDVie<>7;k*v0`_T(tBu*G^CS$T8|Z9EmHa! znj;PAq`#)eif6^w#dBh>c>b|zt$ek7y*B5NXPUIX?PqTG+`u{W+JQAk0iW>e8Sw>L zlU2v+0r8E;#!oQcPc!+rfq8KHr6qW12{eS)B{Mt9OTM@_yQt^^ICehj-7caURKp>(;ncZoNKdYMCbOrS{6ii-_(c^jgr+i=GGkB>$f; zeIiC_*))Vt#I*t^VysA;9H%AGkj^G2^jLASNa<5FM;g*ezplrMZx$*2Et(?@>7-BV zvEtiBO20vKq#>R3n|f@~_XxLWjx?l`?$=|*nIh*NpgGczPWtUUY{o}WvHsViPLSqA zLs;s|@)c=LG*kp%iRMH@Mev=aInhuNeCKFRG*po9i|1%}^qha^94++XIhu&?jYLMD z|BB2w<6=4)#k6eHZjne_GvI#&)AG)6!Z+^qdHW`WXdog917jmYg0c_}#U+0vpu{Cv zxPI9?<`v>A^HQ%HU%!VXx8ND>SIK+bq39C6agWI>emo+gxD!W4$2^yYJc3H;4@GBV z%{rPE>e8JYp(_0M(_vhF#LVIA^qY1P21TYWb2$FV_@Hc@d20BMT;@Dwo*I+J_KswU z99vdMsxJtCt2v2p^-nIwLt*8ln0ialKELue`?+vPi3ekm`SS@Ud28SoZ?~Td$AW>d zavnF*NL7VHnAiIZsPERwdhk)#qlL$(GaWw>g_8F9KuGk@%b}o@==1m{yko+I=c3Px zUrJDGA$a=xg}xEr#i3#66wb*6sF6wk?>g+~bSTBbXSPDhw6#u*=2eCyY2KK3wZk#aS z8}Ur!EY3+y8$DTJP3%Eg3dAMRABZO=_o+m7h%hlYz42@=V=$jlH^A1n=Gnn*- z<%}w<&VfL1VKF3QeKd=?xKEYnVVP|jp7i+=uW4(dBPpnZ&>US1hsnupNqF}ZuNrg8 zWOdy8$3{kl;gJbJ)xb3r5G6rJl2RZoEYaE*TMUarG!_>EVd6=2^crCZ`zA#j{#T2>Nl^5m>T>IlF}B_??g<;1Z3= zkw93Ojmbh(S{BltLTQnSA0h7uClyI1uMV#*N=h6zN{6J#ZMDnl!(M~DZX{%b*xTXn z@{DlOkvN)pL8-bwMM#+lt#NI>i(JG~71}YHu|ld>YQ>F@m=JM{6?(^r-J~JwCjZ&^ zpc1=DqfFi$en(~`v!p7=RmxGyWiee~O*ehm`UNZ0quCP~h_G#sb@~Cg!@OWUo z?}_101DS4_=$bUm#lm8uC)dc-spa}YLXxrPv={8@=t$ISX0770#;lG{v`>!qdnUYs z#%C&+7r)h3$pT)q-SHi#V-cryEqY< z3k4Isdvm6Ug^MF2KCfpuijEG+<#k|TZ|^F<98[Dp4 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 literal 0 HcmV?d00001 diff --git a/sut/backend/utils/__pycache__/seed_data.cpython-311.pyc b/sut/backend/utils/__pycache__/seed_data.cpython-311.pyc new file mode 100644 index 0000000000000000000000000000000000000000..f9b8ef3302c29b6b391301ae780468474b98a8be GIT binary patch literal 22453 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 U!8@rn0e@EDv%;UpKG@3rKi}qx`~Uy| literal 0 HcmV?d00001 diff --git a/sut/backend/utils/database.py b/sut/backend/utils/database.py new file mode 100644 index 0000000..b2b590d --- /dev/null +++ b/sut/backend/utils/database.py @@ -0,0 +1,204 @@ +"""Database initialization and management.""" +from flask import Flask +from models.user import db +from sqlalchemy import text +import os + +def init_db(app: Flask) -> None: + # Initialize db with app + db.init_app(app) + + with app.app_context(): + # Handle migrations for existing inventory_items table + try: + result = db.session.execute(text("SELECT name FROM sqlite_master WHERE type='table' AND name='inventory_items'")) + table_exists = result.fetchone() is not None + + if table_exists: + result = db.session.execute(text("PRAGMA table_info(inventory_items)")) + columns = [row[1] for row in result] + + if 'paid_price' not in columns: + db.session.execute(text("ALTER TABLE inventory_items ADD COLUMN paid_price INTEGER DEFAULT 0")) + print("Added paid_price column to inventory_items") + + if 'base_price_revealed' not in columns: + db.session.execute(text("ALTER TABLE inventory_items ADD COLUMN base_price_revealed INTEGER DEFAULT 0")) + print("Added base_price_revealed column to inventory_items") + + if 'savings_percent' not in columns: + db.session.execute(text("ALTER TABLE inventory_items ADD COLUMN savings_percent FLOAT DEFAULT 0")) + print("Added savings_percent column to inventory_items") + + if 'created_at' not in columns: + db.session.execute(text("ALTER TABLE inventory_items ADD COLUMN created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP")) + print("Added created_at column to inventory_items") + + # Fix for legacy acquired_price column: add if missing, make nullable if present + if 'acquired_price' not in columns: + db.session.execute(text("ALTER TABLE inventory_items ADD COLUMN acquired_price INTEGER NULL")) + print("Added acquired_price column to inventory_items (nullable)") + else: + # Try to make it nullable if not already + try: + db.session.execute(text("ALTER TABLE inventory_items ALTER COLUMN acquired_price DROP NOT NULL")) + print("Made acquired_price column nullable") + except Exception as e: + print(f"Could not alter acquired_price nullability: {e}") + + db.session.commit() + print("Inventory items table migration completed successfully") + except Exception as e: + db.session.rollback() + print(f"Inventory items migration note: {e} (this is normal for new databases)") + # Import all models to register them + from models.user import User + from models.quest import Quest + from models.member import Member + from models.location import Location + from models.item import Item + from models.inventory_item import InventoryItem + + # Create all tables + db.create_all() + print("Database tables created successfully") + + # Handle migrations for existing users table + try: + users_result = db.session.execute(text("PRAGMA table_info(users)")) + user_columns = {row[1]: row[2] for row in users_result} + + if 'gold' not in user_columns: + db.session.execute(text("ALTER TABLE users ADD COLUMN gold INTEGER DEFAULT 500")) + print("Added gold column to users") + + db.session.execute(text("UPDATE users SET gold = 500 WHERE gold IS NULL")) + db.session.commit() + print("Users table migration completed successfully") + except Exception as e: + db.session.rollback() + print(f"Users migration note: {e} (this is normal for new databases)") + + # Handle migrations for existing quests table + try: + # Check if quests table exists and has old columns + result = db.session.execute(text("PRAGMA table_info(quests)")) + columns = {row[1]: row[2] for row in result} + + # Add new columns if they don't exist + if 'quest_type' not in columns: + db.session.execute(text("ALTER TABLE quests ADD COLUMN quest_type VARCHAR(50)")) + print("Added quest_type column") + + if 'priority' not in columns: + db.session.execute(text("ALTER TABLE quests ADD COLUMN priority VARCHAR(20)")) + print("Added priority column") + + if 'is_dark_magic' not in columns: + db.session.execute(text("ALTER TABLE quests ADD COLUMN is_dark_magic BOOLEAN DEFAULT 0")) + print("Added is_dark_magic column") + + if 'character_quote' not in columns: + db.session.execute(text("ALTER TABLE quests ADD COLUMN character_quote TEXT")) + print("Added character_quote column") + + if 'completed_at' not in columns: + db.session.execute(text("ALTER TABLE quests ADD COLUMN completed_at DATETIME")) + print("Added completed_at column") + + # Migrate status values from old to new LOTR terminology + status_mapping = { + 'pending': 'not_yet_begun', + 'in_progress': 'the_road_goes_ever_on', + 'completed': 'it_is_done', + 'blocked': 'the_shadow_falls' + } + + for old_status, new_status in status_mapping.items(): + db.session.execute( + text("UPDATE quests SET status = :new_status WHERE status = :old_status"), + {'new_status': new_status, 'old_status': old_status} + ) + + # Update default status for new quests + db.session.execute(text("UPDATE quests SET status = 'not_yet_begun' WHERE status = 'pending'")) + + db.session.commit() + print("Database migration completed successfully") + except Exception as e: + # If migration fails, rollback and continue (table might be new) + db.session.rollback() + print(f"Migration note: {e} (this is normal for new databases)") + + # Handle migrations for existing locations table + try: + # Check if locations table exists + result = db.session.execute(text("SELECT name FROM sqlite_master WHERE type='table' AND name='locations'")) + table_exists = result.fetchone() is not None + + if table_exists: + # Get existing columns + result = db.session.execute(text("PRAGMA table_info(locations)")) + columns = [row[1] for row in result] # row[1] is the column name + + # Add new columns if they don't exist + if 'map_x' not in columns: + db.session.execute(text("ALTER TABLE locations ADD COLUMN map_x REAL")) + print("Added map_x column to locations") + + if 'map_y' not in columns: + db.session.execute(text("ALTER TABLE locations ADD COLUMN map_y REAL")) + print("Added map_y column to locations") + + db.session.commit() + print("Locations table migration completed successfully") + except Exception as e: + # If migration fails, rollback and continue + db.session.rollback() + print(f"Locations migration error: {e}") + import traceback + traceback.print_exc() + + # Handle migrations for existing items table + try: + result = db.session.execute(text("SELECT name FROM sqlite_master WHERE type='table' AND name='items'")) + table_exists = result.fetchone() is not None + + if table_exists: + result = db.session.execute(text("PRAGMA table_info(items)")) + columns = [row[1] for row in result] + + if 'owner_character' not in columns: + db.session.execute(text("ALTER TABLE items ADD COLUMN owner_character VARCHAR(80) DEFAULT 'gandalf'")) + print("Added owner_character column to items") + + if 'personality_profile' not in columns: + db.session.execute(text("ALTER TABLE items ADD COLUMN personality_profile VARCHAR(40) DEFAULT 'bargainer'")) + print("Added personality_profile column to items") + + if 'asking_price' not in columns: + db.session.execute(text("ALTER TABLE items ADD COLUMN asking_price INTEGER DEFAULT 100")) + print("Added asking_price column to items") + + if 'is_sold' not in columns: + db.session.execute(text("ALTER TABLE items ADD COLUMN is_sold BOOLEAN DEFAULT 0")) + print("Added is_sold column to items") + + if 'created_at' not in columns: + db.session.execute(text("ALTER TABLE items ADD COLUMN created_at DATETIME")) + print("Added created_at column to items") + + if 'updated_at' not in columns: + db.session.execute(text("ALTER TABLE items ADD COLUMN updated_at DATETIME")) + print("Added updated_at column to items") + + db.session.execute(text("UPDATE items SET asking_price = COALESCE(asking_price, base_price, 100)")) + db.session.execute(text("UPDATE items SET personality_profile = COALESCE(personality_profile, 'bargainer')")) + db.session.execute(text("UPDATE items SET owner_character = COALESCE(owner_character, 'gandalf')")) + db.session.execute(text("UPDATE items SET created_at = COALESCE(created_at, CURRENT_TIMESTAMP)")) + db.session.execute(text("UPDATE items SET updated_at = COALESCE(updated_at, CURRENT_TIMESTAMP)")) + db.session.commit() + print("Items table migration completed successfully") + except Exception as e: + db.session.rollback() + print(f"Items migration note: {e} (this is normal for new databases)") \ No newline at end of file diff --git a/sut/backend/utils/seed_data.py b/sut/backend/utils/seed_data.py new file mode 100644 index 0000000..d293581 --- /dev/null +++ b/sut/backend/utils/seed_data.py @@ -0,0 +1,602 @@ +"""Seed data initialization for the Fellowship Quest Tracker.""" +from models.user import User, db +from models.member import Member +from models.location import Location +from models.quest import Quest +from models.item import Item +from flask import Flask +from typing import List, Dict, Any + +def seed_members() -> List[Member]: + """Create Fellowship members.""" + members_data = [ + { + 'name': 'Frodo Baggins', + 'race': 'Hobbit', + 'role': 'Ring-bearer', + 'status': 'active', + 'description': 'The brave hobbit who carries the One Ring to Mount Doom.' + }, + { + 'name': 'Samwise Gamgee', + 'race': 'Hobbit', + 'role': 'Companion', + 'status': 'active', + 'description': 'Frodo\'s loyal friend and companion on the journey.' + }, + { + 'name': 'Aragorn', + 'race': 'Human', + 'role': 'Ranger', + 'status': 'active', + 'description': 'The rightful heir to the throne of Gondor.' + }, + { + 'name': 'Legolas', + 'race': 'Elf', + 'role': 'Archer', + 'status': 'active', + 'description': 'Elven prince and master archer from Mirkwood.' + }, + { + 'name': 'Gimli', + 'race': 'Dwarf', + 'role': 'Warrior', + 'status': 'active', + 'description': 'Dwarf warrior from the Lonely Mountain.' + }, + { + 'name': 'Gandalf', + 'race': 'Wizard', + 'role': 'Guide', + 'status': 'active', + 'description': 'The Grey Wizard who guides the Fellowship.' + } + ] + + members = [] + for data in members_data: + member = Member.query.filter_by(name=data['name']).first() + if not member: + member = Member(**data) + db.session.add(member) + members.append(member) + else: + members.append(member) + + db.session.commit() + return members + +def seed_locations() -> List[Location]: + """Create Middle-earth locations. + + Coordinates are pixel-based, matching the MiddleEarthMap coordinate system. + Map image dimensions: 5000x4344 pixels (width x height). + Coordinates from MiddleEarthMap by Yohann Bethoule (https://github.com/YohannBethoule/MiddleEarthMap). + Includes all 45 locations from the original MiddleEarthMap markers.json. + """ + locations_data = [ + # Eriador + { + 'name': 'Hobbiton', + 'region': 'Eriador', + 'description': 'Hobbiton was a hobbit village in the central regions of the Shire, within the borders of the Westfarthing.', + 'map_x': 1482.0, + 'map_y': 1158.0 + }, + { + 'name': 'The Shire', + 'region': 'Eriador', + 'description': 'The peaceful homeland of the Hobbits.', + 'map_x': 1482.0, + 'map_y': 1158.0 + }, + { + 'name': 'Bree', + 'region': 'Eriador', + 'description': 'Bree was the chief village of Bree-land, a small wooded region near the intersection of the main north-south and east-west routes through Eriador. Bree-land was the only part of Middle-earth where Men and hobbits dwelt side by side and Bree had a large population of Hobbits.', + 'map_x': 1793.0, + 'map_y': 1163.0 + }, + { + 'name': 'Rivendell', + 'region': 'Eriador', + 'description': 'Rivendell was established by Elrond in S.A. 1697 as a refuge from Sauron after the Fall of Eregion. It remained Elrond\'s seat throughout the remainder of the Second Age and until the end of the Third Age, when he took the White Ship for Valinor.', + 'map_x': 2516.0, + 'map_y': 1123.0 + }, + { + 'name': 'Grey Havens', + 'region': 'Eriador', + 'description': 'Founded by the Elves of Lindon in S.A. 1, the Grey Havens were known for their good harbourage and many ships; these were used by any of the Eldar to leave Middle-earth for Eressëa or Valinor.', + 'map_x': 1047.0, + 'map_y': 1186.0 + }, + { + 'name': 'Weathertop', + 'region': 'Eriador', + 'description': 'In T.A.3018, Amun Sûl was the scene of two fights involving the Nazgûl: one with Gandalf on October 3 and one with the Ring-bearer three days later.', + 'map_x': 2000.0, + 'map_y': 1158.0 + }, + # Rhovanion + { + 'name': 'Esgaroth', + 'region': 'Rhovanion', + 'description': 'Lake-Town was the township of the Lake-men in Wilderland. The town was constructed entirely of wood and stood upon wooden pillars sunk into the bed of the Long Lake, as a protection against the dragon Smaug, who dwelt nearby in the Lonely Mountain.', + 'map_x': 3418.0, + 'map_y': 885.0 + }, + { + 'name': 'Erebor', + 'region': 'Rhovanion', + 'description': 'The Longbeards had control of Erebor since at least the early Second Age. With the awakening of Durin\'s Bane in the capital of Khazad-dûm, Thráin I led a group of Dwarves to Erebor. Once there, the dwarves dug caves and halls to form an underground city, thus establishing the Kingdom under the Mountain in T.A. 1999.', + 'map_x': 3405.0, + 'map_y': 825.0 + }, + { + 'name': 'Lothlórien', + 'region': 'Rhovanion', + 'description': 'Lothlórien (or Lórien) was a kingdom of Silvan Elves on the eastern side of the Hithaeglir. It was considered one of the most beautiful and "elvish" places in Middle-earth during the Third Age, and had the only mallorn-trees east of the sea.', + 'map_x': 2666.0, + 'map_y': 1679.0 + }, + { + 'name': 'Elvenking\'s Hall', + 'region': 'Rhovanion', + 'description': 'Elvenking\'s Hall were a cave system in northern Mirkwood, in which King Thranduil and many of the Elves of Mirkwood lived during most of the Third Age and into the Fourth Age.', + 'map_x': 3311.0, + 'map_y': 849.0 + }, + { + 'name': 'Dol Guldur', + 'region': 'Rhovanion', + 'description': 'Dol Guldur ("Hill of Sorcery" in Sindarin), also called "the dungeons of the Necromancer", was a stronghold of Sauron located in the south of Mirkwood.', + 'map_x': 3014.0, + 'map_y': 1629.0 + }, + { + 'name': 'Edoras', + 'region': 'Rhovanion', + 'description': 'Edoras was the capital of Rohan that held the Golden Hall of Meduseld. Rohan\'s first capital was at Aldburg in the Folde, until King Eorl the Young or his son Brego built Edoras in T.A. 2569.', + 'map_x': 2589.0, + 'map_y': 2383.0 + }, + { + 'name': 'Rohan', + 'region': 'Rhovanion', + 'description': 'The land of the Horse-lords.', + 'map_x': 2589.0, + 'map_y': 2383.0 + }, + { + 'name': 'Helm\'s Deep', + 'region': 'Rhovanion', + 'description': 'Helm\'s Deep was a large valley gorge in the north-western Ered Nimrais (White Mountains) below the Thrihyrne. It was actually the name of the whole defensive system including its major defensive structure, the Hornburg.', + 'map_x': 2423.0, + 'map_y': 2321.0 + }, + { + 'name': 'Beorn\'s Hall', + 'region': 'Rhovanion', + 'description': 'Beorn\'s Hall was the home of Beorn, a powerful Skin-changer. Beorn hosted and aided Thorin and Company during their Quest for Erebor.', + 'map_x': 2871.0, + 'map_y': 1016.0 + }, + { + 'name': 'Dale', + 'region': 'Rhovanion', + 'description': 'Dale was a great city of the Northmen which was destroyed by Smaug and rebuilt as the capital of a great kingdom after his demise.', + 'map_x': 3430.0, + 'map_y': 855.0 + }, + # Misty Mountains + { + 'name': 'Moria', + 'region': 'Misty Mountains', + 'description': 'Khazad-dûm was the grandest and most famous of the mansions of the Dwarves. There, for many thousands of years, a thriving Dwarvish community created the greatest city ever known.', + 'map_x': 2492.0, + 'map_y': 1505.0 + }, + { + 'name': 'Goblin-town', + 'region': 'Misty Mountains', + 'description': 'Goblin-town was a Goblin dwelling under the Misty Mountains, which was ruled by the Great Goblin. Goblin-town was a series of tunnels and caverns, which went all the way through the mountains, with a "back door" (the Goblin-gate) near the Eagle\'s Eyrie in Wilderland, which served as a means of escape, and an access to the Wilderland.', + 'map_x': 2647.0, + 'map_y': 980.0 + }, + # Mordor + { + 'name': 'Mount Doom', + 'region': 'Mordor', + 'description': 'Melkor created Mount Doom in the First Age. When Sauron chose the land of Mordor as his dwelling-place in the Second Age, Orodruin was the reason for his choice. The mountain erupted in S.A. 3429, signalling Sauron\'s attack on Gondor and it took the name Amon Amarth, "Mount Doom". This is where the One Ring was forged by Sauron, and where it was destroyed by Gollum.', + 'map_x': 3606.0, + 'map_y': 2603.0 + }, + { + 'name': 'Mordor', + 'region': 'Mordor', + 'description': 'The dark land of Sauron, where the One Ring was forged.', + 'map_x': 3606.0, + 'map_y': 2603.0 + }, + { + 'name': 'Minas Morgul', + 'region': 'Mordor', + 'description': 'Minas Morgul (originally called Minas Ithil) was the twin city of Minas Tirith before its fall to the forces of Sauron in the Third Age. It then became the stronghold of the Witch-king of Angmar until Sauron\'s defeat.', + 'map_x': 3424.0, + 'map_y': 2695.0 + }, + { + 'name': 'Black Gate', + 'region': 'Mordor', + 'description': 'The Black Gate was the main entrance into the land of Mordor. It was built by Sauron after he chose Mordor as a land to make into a stronghold in S.A. 1000.', + 'map_x': 3389.0, + 'map_y': 2377.0 + }, + { + 'name': 'Barad-dûr', + 'region': 'Mordor', + 'description': 'Barad-dûr, also known as the Dark Tower, was the chief fortress of Sauron, on the Plateau of Gorgoroth in Mordor. Sauron began to build Barad-dûr in around S.A. 1000, and completed his fortress after 600 years of the construction with the power of the Ring.', + 'map_x': 3750.0, + 'map_y': 2553.0 + }, + # Gondor + { + 'name': 'Minas Tirith', + 'region': 'Gondor', + 'description': 'Minas Tirith was originally a fortress, Minas Anor, built in S.A. 3320 by the Faithful Númenóreans. From T.A. 1640 onwards it was the capital of the South-kingdom and the seat of its Kings and ruling Stewards.', + 'map_x': 3279.0, + 'map_y': 2707.0 + }, + { + 'name': 'Osgiliath', + 'region': 'Gondor', + 'description': 'Founded by Isildur and Anárion near the end of the Second Age, Osgiliath was designated the capital of the southern Númenórean kingdom in exile, Gondor. It stays so until the King\'s House was moved to the more secure Minas Anor in T.A. 1640.', + 'map_x': 3330.0, + 'map_y': 2700.0 + }, + { + 'name': 'Paths of the Dead', + 'region': 'Gondor', + 'description': 'The Paths of the Dead was a haunted underground passage through the White Mountains that led from Harrowdale in Rohan to Blackroot Vale in Gondor.', + 'map_x': 2605.0, + 'map_y': 2535.0 + }, + # Isengard + { + 'name': 'Isengard', + 'region': 'Isengard', + 'description': 'Isengard was one of the three major fortresses of Gondor, and held within it one of the realm\'s palantíri. In the latter half of the Third Age, the stronghold came into the possession of Saruman, becoming his home and personal domain until his defeat in the War of the Ring.', + 'map_x': 2335.0, + 'map_y': 2117.0 + }, + # Angmar + { + 'name': 'Carn Dûm', + 'region': 'Angmar', + 'description': 'Carn Dûm was the chief fortress of the realm of Angmar and the seat of its king until its defeat against the combined armies of Gondor, Lindon and Arnor in T.A. 1974.', + 'map_x': 2115.0, + 'map_y': 523.0 + }, + { + 'name': 'Mount Gram', + 'region': 'Angmar', + 'description': 'Mount Gram was inhabited by Orcs led by their King Golfimbul. In T.A. 2747 they attacked much of northern Eriador, but were defeated in the Battle of Greenfields.', + 'map_x': 2353.0, + 'map_y': 746.0 + } + ] + + locations = [] + for data in locations_data: + location = Location.query.filter_by(name=data['name']).first() + if not location: + location = Location(**data) + db.session.add(location) + locations.append(location) + else: + # Update existing location with coordinates if missing + if location.map_x is None or location.map_y is None: + location.map_x = data.get('map_x') + location.map_y = data.get('map_y') + locations.append(location) + + db.session.commit() + return locations + +def seed_users(members: List[Member]) -> List[User]: + """Create user accounts for Fellowship members.""" + users = [] + default_password = 'fellowship123' # Simple password for MVP + + for member in members: + user = User.query.filter_by(username=member.name.lower().replace(' ', '_')).first() + if not user: + user = User( + username=member.name.lower().replace(' ', '_'), + email=f"{member.name.lower().replace(' ', '_')}@fellowship.com", + role=member.name, + gold=500, + ) + user.set_password(default_password) + db.session.add(user) + users.append(user) + else: + if user.gold is None: + user.gold = 500 + users.append(user) + + db.session.commit() + return users + +def seed_quests(locations: List[Location], users: List[User]) -> List[Quest]: + """Create initial quests with epic descriptions and LOTR attributes.""" + quests_data = [ + { + 'title': 'Destroy the One Ring', + 'description': 'Journey to the fires of Mount Doom and cast the Ring into the flames where it was forged. The fate of Middle-earth depends on this quest.', + 'status': 'the_road_goes_ever_on', + 'quest_type': 'The Ring', + 'priority': 'Critical', + 'is_dark_magic': False, + 'character_quote': 'I will take the Ring, though I do not know the way.', + 'location_name': 'Mount Doom', # Use specific location name + 'assignee_username': 'frodo_baggins' + }, + { + 'title': 'Reach Rivendell', + 'description': 'Travel to Rivendell to seek counsel from Elrond. The Last Homely House awaits, where the Fellowship will be formed and the path forward decided.', + 'status': 'it_is_done', + 'quest_type': 'The Journey', + 'priority': 'Important', + 'is_dark_magic': False, + 'character_quote': 'The Road goes ever on and on...', + 'location_name': 'Rivendell', + 'assignee_username': 'frodo_baggins' + }, + { + 'title': 'Cross the Misty Mountains', + 'description': 'Navigate through the treacherous Misty Mountains, avoiding the dangers that lurk in the shadows and the watchful eyes of the enemy.', + 'status': 'it_is_done', + 'quest_type': 'The Journey', + 'priority': 'Important', + 'is_dark_magic': False, + 'character_quote': None, + 'location_name': 'Moria', + 'assignee_username': 'aragorn' + }, + { + 'title': 'Escape from Moria', + 'description': 'Flee from the depths of Moria as the Balrog awakens. The Fellowship must escape before the darkness consumes them.', + 'status': 'it_is_done', + 'quest_type': 'The Battle', + 'priority': 'Critical', + 'is_dark_magic': False, + 'character_quote': 'Fly, you fools!', + 'location_name': 'Moria', + 'assignee_username': 'gandalf' + }, + { + 'title': 'Reach Mordor', + 'description': 'Travel to the dark land of Mordor, where Sauron\'s power is strongest. The journey grows more perilous with each step.', + 'status': 'the_road_goes_ever_on', + 'quest_type': 'The Journey', + 'priority': 'Critical', + 'is_dark_magic': False, + 'character_quote': None, + 'location_name': 'Mordor', # Keep generic name, will match either "Mordor" or "Mount Doom" + 'assignee_username': 'frodo_baggins' + }, + { + 'title': 'Fix the Broken Bridge', + 'description': 'Sauron\'s dark magic has corrupted the bridge. The Fellowship must restore it to continue their journey. This quest has been tainted by dark forces.', + 'status': 'the_shadow_falls', + 'quest_type': 'Dark Magic', + 'priority': 'Critical', + 'is_dark_magic': True, + 'character_quote': None, + 'location_name': 'Edoras', # Use specific location name + 'assignee_username': 'samwise_gamgee' + }, + { + 'title': 'Rescue Merry and Pippin', + 'description': 'The Fellowship must rescue the captured Hobbits from the Uruk-hai. Time is running out, and the fate of our friends hangs in the balance.', + 'status': 'not_yet_begun', + 'quest_type': 'The Fellowship', + 'priority': 'Important', + 'is_dark_magic': False, + 'character_quote': None, + 'location_name': 'Edoras', # Use specific location name + 'assignee_username': 'aragorn' + }, + { + 'title': 'Defend Helm\'s Deep', + 'description': 'Stand with the people of Rohan as they face the armies of Saruman. The battle will be fierce, but courage and unity will prevail.', + 'status': 'not_yet_begun', + 'quest_type': 'The Battle', + 'priority': 'Critical', + 'is_dark_magic': False, + 'character_quote': None, + 'location_name': 'Helm\'s Deep', # Use specific location name + 'assignee_username': 'aragorn' + } + ] + + quests = [] + for data in quests_data: + # Find location + location = next((loc for loc in locations if loc.name == data['location_name']), None) + # Find user + user = next((u for u in users if u.username == data['assignee_username']), None) + + quest = Quest.query.filter_by(title=data['title']).first() + if not quest: + quest = Quest( + title=data['title'], + description=data['description'], + status=data['status'], + quest_type=data.get('quest_type'), + priority=data.get('priority'), + is_dark_magic=data.get('is_dark_magic', False), + character_quote=data.get('character_quote'), + location_id=location.id if location else None, + assigned_to=user.id if user else None + ) + # Set completed_at if quest is done + if data['status'] == 'it_is_done': + from datetime import datetime + quest.completed_at = datetime.utcnow() + db.session.add(quest) + quests.append(quest) + else: + # Update existing quest with new fields if they're missing + if quest.quest_type is None and data.get('quest_type'): + quest.quest_type = data.get('quest_type') + if quest.priority is None and data.get('priority'): + quest.priority = data.get('priority') + if quest.is_dark_magic is False and data.get('is_dark_magic'): + quest.is_dark_magic = data.get('is_dark_magic') + if quest.character_quote is None and data.get('character_quote'): + quest.character_quote = data.get('character_quote') + # Update location_id if missing or if location name matches + if quest.location_id is None and location: + quest.location_id = location.id + elif quest.location_id is None: + # Try to find location by name if not found initially + location = next((loc for loc in locations if loc.name == data['location_name']), None) + if location: + quest.location_id = location.id + # Migrate old status values + status_mapping = { + 'pending': 'not_yet_begun', + 'in_progress': 'the_road_goes_ever_on', + 'completed': 'it_is_done', + 'blocked': 'the_shadow_falls' + } + if quest.status in status_mapping: + quest.status = status_mapping[quest.status] + quests.append(quest) + + db.session.commit() + return quests + + +def seed_items() -> List[Item]: + """Create initial unique seller items for bargaining gameplay.""" + items_data = [ + { + 'name': 'Sting-polished Scabbard', + 'description': 'A meticulously maintained hobbit scabbard with Elvish runes.', + 'owner_character': 'frodo', + 'personality_profile': 'sentimental', + 'base_price': 140, + 'asking_price': 195, + }, + { + 'name': 'Shire Herb Satchel', + 'description': 'Sam\'s hand-stitched satchel, still smelling faintly of rosemary.', + 'owner_character': 'sam', + 'personality_profile': 'generous', + 'base_price': 95, + 'asking_price': 120, + }, + { + 'name': 'Grey Pilgrim Pipe', + 'description': 'A weathered pipe with intricate wizard-carved symbols.', + 'owner_character': 'gandalf', + 'personality_profile': 'bargainer', + 'base_price': 260, + 'asking_price': 360, + }, + { + 'name': 'Second Breakfast Pan', + 'description': 'A surprisingly sturdy pan fit for long roads and many meals.', + 'owner_character': 'sam', + 'personality_profile': 'bargainer', + 'base_price': 70, + 'asking_price': 98, + }, + { + 'name': 'Wizard Hat (Scuffed Edition)', + 'description': 'A tall, dramatic hat with glorious wear and a few mysterious burns.', + 'owner_character': 'gandalf', + 'personality_profile': 'stingy', + 'base_price': 210, + 'asking_price': 315, + }, + { + 'name': 'Mithril Shield', + 'description': 'A legendary shield forged from mithril, light yet stronger than steel.', + 'owner_character': 'frodo', + 'personality_profile': 'sentimental', + 'base_price': 350, + 'asking_price': 450, + }, + { + 'name': 'Sword of Elendil', + 'description': 'An ancient sword with a storied history from the days of old.', + 'owner_character': 'frodo', + 'personality_profile': 'bargainer', + 'base_price': 400, + 'asking_price': 500, + }, + { + 'name': 'Sword of Narsil', + 'description': 'A legendary blade shattered and reforged with great power.', + 'owner_character': 'frodo', + 'personality_profile': 'stingy', + 'base_price': 450, + 'asking_price': 550, + }, + { + 'name': 'Lembas Bread', + 'description': 'Elvish lembas bread that sustains travelers on long journeys.', + 'owner_character': 'sam', + 'personality_profile': 'generous', + 'base_price': 150, + 'asking_price': 180, + }, + { + 'name': 'Elven Rope', + 'description': 'A strong and graceful rope crafted by Elven artisans.', + 'owner_character': 'frodo', + 'personality_profile': 'bargainer', + 'base_price': 80, + 'asking_price': 110, + }, + ] + + seeded_items: List[Item] = [] + for payload in items_data: + item = Item.query.filter_by(name=payload['name']).first() + if not item: + item = Item(**payload) + db.session.add(item) + seeded_items.append(item) + + db.session.commit() + return seeded_items + +def seed_database(app: Flask) -> None: + """Seed the database with initial data.""" + with app.app_context(): + print("Seeding database...") + + # Seed in order: members -> locations -> users -> quests + members = seed_members() + print(f"Seeded {len(members)} members") + + locations = seed_locations() + print(f"Seeded {len(locations)} locations") + + users = seed_users(members) + print(f"Seeded {len(users)} users") + + quests = seed_quests(locations, users) + print(f"Seeded {len(quests)} quests") + + items = seed_items() + print(f"Seeded {len(items)} market items") + + print("Database seeding completed!") diff --git a/sut/backend/verify_config.py b/sut/backend/verify_config.py new file mode 100644 index 0000000..c713d3c --- /dev/null +++ b/sut/backend/verify_config.py @@ -0,0 +1,51 @@ +#!/usr/bin/env python3 +"""Verify Azure OpenAI configuration is loaded correctly.""" +import sys +from pathlib import Path + +# Add backend to path +backend_dir = Path(__file__).parent +sys.path.insert(0, str(backend_dir)) + +from config import Config + +def main(): + config = Config() + + print("\n" + "=" * 70) + print("Azure OpenAI Configuration Status") + print("=" * 70) + + has_endpoint = bool(config.AZURE_OPENAI_ENDPOINT) + has_api_key = bool(config.AZURE_OPENAI_API_KEY) + + status = "✅ ACTIVE" if (has_endpoint and has_api_key) else "❌ NOT CONFIGURED" + print(f"\nStatus: {status}\n") + + print(f"Endpoint: {config.AZURE_OPENAI_ENDPOINT if has_endpoint else '(not set)'}") + print(f"API Key: {'(loaded from .env)' if has_api_key else '(not set)'}") + print(f"Deployment: {config.AZURE_OPENAI_DEPLOYMENT}") + print(f"API Version: {config.AZURE_OPENAI_API_VERSION}") + print(f"Max Tokens: {config.AZURE_OPENAI_MAX_TOKENS}") + print(f"Temperature: {config.AZURE_OPENAI_TEMPERATURE}") + + print("\n" + "=" * 70) + + if has_endpoint and has_api_key: + print("🤖 AI-powered NPC responses are ACTIVE") + print("🎯 Context-aware quest generation is ENABLED") + print("\nNPC conversations will now:") + print(" • Use character personalities for authentic responses") + print(" • Reference user's specific situation in replies") + print(" • Generate quests matched to conversation context") + print(" • Fall back to templates only if API fails") + return 0 + else: + print("⚠️ Azure OpenAI not configured") + print("\nTo enable AI:") + print(" 1. Create/update .env file with Azure credentials") + print(" 2. Restart the backend service") + return 1 + +if __name__ == '__main__': + sys.exit(main()) diff --git a/sut/frontend/.env.example b/sut/frontend/.env.example new file mode 100644 index 0000000..2b6408c --- /dev/null +++ b/sut/frontend/.env.example @@ -0,0 +1,16 @@ +# Frontend Environment Variables +# Copy this to .env.local and update values for your environment + +# API Configuration +REACT_APP_API_URL=http://localhost/api + +# Site URL Configuration (used for SEO and analytics) +# Set this to your deployment URL for correct sitemap.xml and meta tags +# Examples: +# - Development: http://localhost:5173 +# - Staging: https://lotr-staging.testingfantasy.com +# - Production: https://lotr-prod.testingfantasy.com +VITE_APP_SITE_URL=http://localhost:5173 + +# Google Analytics +REACT_APP_GA_ID=G-29N4KD7MQ9 diff --git a/sut/frontend/.env.local b/sut/frontend/.env.local new file mode 100644 index 0000000..75ecf7f --- /dev/null +++ b/sut/frontend/.env.local @@ -0,0 +1,6 @@ +# WebSocket configuration for dev server behind HTTPS proxy (Caddy) +# This ensures webpack dev server uses secure WebSockets when frontend is served over HTTPS +WDS_SOCKET_PROTOCOL=wss +WDS_SOCKET_PORT=80 +WDS_SOCKET_HOST=localhost +WDS_SOCKET_PATH=/ws diff --git a/sut/frontend/Dockerfile b/sut/frontend/Dockerfile new file mode 100644 index 0000000..606c33b --- /dev/null +++ b/sut/frontend/Dockerfile @@ -0,0 +1,24 @@ +FROM node:20-alpine + +WORKDIR /app + +# Copy package files +COPY package*.json ./ +COPY tsconfig.json ./ + +# Install dependencies +RUN npm install + +# Copy source files +COPY . . + +# Expose port +EXPOSE 3000 + +# Disable react-refresh for Docker environment +ENV SKIP_PREFLIGHT_CHECK=true +ENV DISABLE_ESLINT_PLUGIN=true +ENV FAST_REFRESH=false + +# Start development server +CMD ["npm", "start"] diff --git a/sut/frontend/ENV_URL_SETUP.md b/sut/frontend/ENV_URL_SETUP.md new file mode 100644 index 0000000..f47aefa --- /dev/null +++ b/sut/frontend/ENV_URL_SETUP.md @@ -0,0 +1,169 @@ +# Environment-Aware URL Configuration + +This document explains how analytics and SEO URLs adapt to different deployment environments. + +## Overview + +The Fellowship Quest List uses environment-aware URLs in critical files: +- **`index.html`**: Meta tags (canonical, og:url, og:image, twitter:image) +- **`sitemap.xml`**: All routes and API endpoints + +This ensures that regardless of whether you're deploying to: +- Development: `http://localhost:5173` +- Staging: `https://lotr-staging.testingfantasy.com` +- Production: `https://lotr-prod.testingfantasy.com` + +The URLs in these files are always correct. + +## Environment Variables + +### Primary Variable +`VITE_APP_SITE_URL` - The full site URL without trailing slash +- Example: `https://lotr-prod.testingfantasy.com` +- Example: `https://lotr-staging.testingfantasy.com` +- Example: `http://localhost:5173` + +## How It Works + +### For `index.html` +URLs are set dynamically at **runtime** using JavaScript: +1. Base URLs in HTML use placeholders: `%VITE_APP_SITE_URL%` +2. At page load, JavaScript reads `window.location.origin` +3. Dynamic updates to `` and `` tags ensure they reflect the actual deployment URL +4. This works for all deployment scenarios without rebuilding + +### For `sitemap.xml` +URLs are substituted **at build time**: +1. Source file uses placeholders: `%VITE_APP_SITE_URL%` +2. Build script replaces placeholders with actual environment URL +3. Final `sitemap.xml` has concrete URLs for search engines + +## Setup Instructions + +### Development + +```bash +cd sut/frontend + +# Run dev server (uses http://localhost:5173 automatically) +npm run dev +``` + +### Build for Deployment + +```bash +cd sut/frontend + +# Set the environment-specific URL +export VITE_APP_SITE_URL="https://lotr-prod.testingfantasy.com" + +# Build the application +npm run build + +# Run setup script to update XML files with correct URLs +node scripts/setup-env-urls.js +``` + +### Docker Deployment + +In your Dockerfile: + +```dockerfile +ARG SITE_URL=https://lotr-prod.testingfantasy.com + +# ... build steps ... + +# Setup environment-aware URLs +ENV VITE_APP_SITE_URL=${SITE_URL} +RUN cd sut/frontend && node scripts/setup-env-urls.js +``` + +### CI/CD Pipeline + +Example GitHub Actions: + +```yaml +- name: Setup environment-aware URLs + env: + VITE_APP_SITE_URL: ${{ secrets.SITE_URL }} + run: | + cd sut/frontend + node scripts/setup-env-urls.js +``` + +## File Examples + +### index.html (Runtime Dynamic) +```html + + + + + + +``` + +### sitemap.xml (Build-time Substitution) +```xml + +%VITE_APP_SITE_URL%/login + + +https://lotr-prod.testingfantasy.com/login +``` + +## Testing URLs + +### Verify index.html Dynamic URLs +```bash +# Open browser DevTools and check the Console when page loads +# Meta tags should update to match your current URL + +# Example: If accessed at https://mysite.com +# - og:url should be "https://mysite.com/" +# - canonical should be "https://mysite.com/" +``` + +### Verify sitemap.xml +```bash +# Download sitemap.xml and check the URLs +curl https://lotr-prod.testingfantasy.com/sitemap.xml | head -20 + +# All entries should use the correct domain +``` + +## Benefits + +✅ **Single codebase** - Deploy to any environment without code changes +✅ **Search engines** - Correct canonical URLs prevent duplicate content penalties +✅ **Social media** - Correct og: tags for rich previews on any domain +✅ **Analytics** - Proper tracking in GA regardless of deployment URL +✅ **No rebuilds** - index.html works without rebuild for different domains + +## Troubleshooting + +### URLs not updating in sitemap.xml +- Ensure `VITE_APP_SITE_URL` is set before building +- Run `node scripts/setup-env-urls.js` after build +- Check that `public/sitemap.xml` contains your domain, not `%VITE_APP_SITE_URL%` + +### Meta tags not updating in index.html +- Open browser DevTools (F12) +- Go to Elements/Inspector and check `` etc. +- Verify JavaScript ran: check Console for any errors +- URL should match `window.location.origin` + +### Staging environment has wrong URLs +- Verify `VITE_APP_SITE_URL` environment variable is set +- Run setup script before deploying +- Check that sitemap.xml contains staging URL, not production + +## References + +- [Google Canonical URLs](https://developers.google.com/search/docs/beginner/seo-starter-guide#declare-the-canonical-version-of-a-page) +- [Open Graph Protocol](https://ogp.me/) +- [Sitemap Protocol](https://www.sitemaps.org/protocol.html) diff --git a/sut/frontend/build/leaflet/leaflet.css b/sut/frontend/build/leaflet/leaflet.css new file mode 100644 index 0000000..6593ca5 --- /dev/null +++ b/sut/frontend/build/leaflet/leaflet.css @@ -0,0 +1,767 @@ +/* required styles */ + +.leaflet-pane, +.leaflet-tile, +.leaflet-marker-icon, +.leaflet-marker-shadow, +.leaflet-tile-container, +.leaflet-pane > svg, +.leaflet-pane > canvas, +.leaflet-zoom-box, +.leaflet-image-layer, +.leaflet-layer { + position: absolute; + left: 0; + top: 0; +} + +.leaflet-container { + overflow: hidden; +} + +.leaflet-tile, +.leaflet-marker-icon, +.leaflet-marker-shadow { + -webkit-user-select: none; + -moz-user-select: none; + user-select: none; + -webkit-user-drag: none; +} + +/* Prevents IE11 from highlighting tiles in blue */ +.leaflet-tile::selection { + background: transparent; +} + +/* Safari renders non-retina tile on retina better with this, but Chrome is worse */ +.leaflet-safari .leaflet-tile { + image-rendering: -webkit-optimize-contrast; +} + +/* hack that prevents hw layers "stretching" when loading new tiles */ +.leaflet-safari .leaflet-tile-container { + width: 1600px; + height: 1600px; + -webkit-transform-origin: 0 0; +} + +.leaflet-marker-icon, +.leaflet-marker-shadow { + display: block; +} + +/* .leaflet-container svg: reset svg max-width decleration shipped in Joomla! (joomla.org) 3.x */ +/* .leaflet-container img: map is broken in FF if you have max-width: 100% on tiles */ +.leaflet-container .leaflet-overlay-pane svg { + max-width: none !important; + max-height: none !important; +} + +.leaflet-container .leaflet-marker-pane img, +.leaflet-container .leaflet-shadow-pane img, +.leaflet-container .leaflet-tile-pane img, +.leaflet-container img.leaflet-image-layer, +.leaflet-container .leaflet-tile { + max-width: none !important; + max-height: none !important; + width: auto; + padding: 0; +} + +.leaflet-container.leaflet-touch-zoom { + -ms-touch-action: pan-x pan-y; + touch-action: pan-x pan-y; +} + +.leaflet-container.leaflet-touch-drag { + -ms-touch-action: pinch-zoom; + /* Fallback for FF which doesn't support pinch-zoom */ + touch-action: none; + touch-action: pinch-zoom; +} + +.leaflet-container.leaflet-touch-drag.leaflet-touch-zoom { + -ms-touch-action: none; + touch-action: none; +} + +.leaflet-container { + -webkit-tap-highlight-color: transparent; +} + +.leaflet-container a { + -webkit-tap-highlight-color: rgba(51, 181, 229, 0.4); +} + +.leaflet-tile { + filter: inherit; + visibility: hidden; +} + +.leaflet-tile-loaded { + visibility: inherit; +} + +.leaflet-zoom-box { + width: 0; + height: 0; + -moz-box-sizing: border-box; + box-sizing: border-box; + z-index: 800; +} + +/* workaround for https://bugzilla.mozilla.org/show_bug.cgi?id=888319 */ +.leaflet-overlay-pane svg { + -moz-user-select: none; +} + +.leaflet-pane { + z-index: 400; +} + +.leaflet-tile-pane { + z-index: 200; +} + +.leaflet-overlay-pane { + z-index: 400; +} + +.leaflet-shadow-pane { + z-index: 500; +} + +.leaflet-marker-pane { + z-index: 600; +} + +.leaflet-tooltip-pane { + z-index: 650; +} + +.leaflet-popup-pane { + z-index: 700; +} + +.leaflet-map-pane canvas { + z-index: 100; +} + +.leaflet-map-pane svg { + z-index: 200; +} + +.leaflet-vml-shape { + width: 1px; + height: 1px; +} + +.lvml { + behavior: url(#default#VML); + display: inline-block; + position: absolute; +} + + +/* control positioning */ + +.leaflet-control { + position: relative; + z-index: 800; + pointer-events: visiblePainted; /* IE 9-10 doesn't have auto */ + pointer-events: auto; +} + +.leaflet-top, +.leaflet-bottom { + position: absolute; + z-index: 1000; + pointer-events: none; +} + +.leaflet-top { + top: 0; +} + +.leaflet-right { + right: 0; +} + +.leaflet-bottom { + bottom: 0; +} + +.leaflet-left { + left: 0; +} + +.leaflet-control { + float: left; + clear: both; +} + +.leaflet-right .leaflet-control { + float: right; +} + +.leaflet-top .leaflet-control { + margin-top: 10px; +} + +.leaflet-bottom .leaflet-control { + margin-bottom: 10px; +} + +.leaflet-left .leaflet-control { + margin-left: 10px; +} + +.leaflet-right .leaflet-control { + margin-right: 10px; +} + + +/* zoom and fade animations */ + +.leaflet-fade-anim .leaflet-popup { + opacity: 0; + -webkit-transition: opacity 0.2s linear; + -moz-transition: opacity 0.2s linear; + transition: opacity 0.2s linear; +} + +.leaflet-fade-anim .leaflet-map-pane .leaflet-popup { + opacity: 1; +} + +.leaflet-zoom-animated { + -webkit-transform-origin: 0 0; + -ms-transform-origin: 0 0; + transform-origin: 0 0; +} + +svg.leaflet-zoom-animated { + will-change: transform; +} + +.leaflet-zoom-anim .leaflet-zoom-animated { + -webkit-transition: -webkit-transform 0.25s cubic-bezier(0, 0, 0.25, 1); + -moz-transition: -moz-transform 0.25s cubic-bezier(0, 0, 0.25, 1); + transition: transform 0.25s cubic-bezier(0, 0, 0.25, 1); +} + +.leaflet-zoom-anim .leaflet-tile, +.leaflet-pan-anim .leaflet-tile { + -webkit-transition: none; + -moz-transition: none; + transition: none; +} + +.leaflet-zoom-anim .leaflet-zoom-hide { + visibility: hidden; +} + + +/* cursors */ + +.leaflet-interactive { + cursor: pointer; +} + +.leaflet-grab { + cursor: -webkit-grab; + cursor: -moz-grab; + cursor: grab; +} + +.leaflet-crosshair, +.leaflet-crosshair .leaflet-interactive { + cursor: crosshair; +} + +.leaflet-popup-pane, +.leaflet-control { + cursor: auto; +} + +.leaflet-dragging .leaflet-grab, +.leaflet-dragging .leaflet-grab .leaflet-interactive, +.leaflet-dragging .leaflet-marker-draggable { + cursor: move; + cursor: -webkit-grabbing; + cursor: -moz-grabbing; + cursor: grabbing; +} + +/* marker & overlays interactivity */ +.leaflet-marker-icon, +.leaflet-marker-shadow, +.leaflet-image-layer, +.leaflet-pane > svg path, +.leaflet-tile-container { + pointer-events: none; +} + +.leaflet-marker-icon.leaflet-interactive, +.leaflet-image-layer.leaflet-interactive, +.leaflet-pane > svg path.leaflet-interactive, +svg.leaflet-image-layer.leaflet-interactive path { + pointer-events: visiblePainted; /* IE 9-10 doesn't have auto */ + pointer-events: auto; +} + +/* visual tweaks */ + +.leaflet-container { + background: #ddd; + outline-offset: 1px; +} + +.leaflet-container a { + color: #0078A8; +} + +.leaflet-zoom-box { + border: 2px dotted #38f; + background: rgba(255, 255, 255, 0.5); +} + + +/* general typography */ +.leaflet-container { + font-family: "Helvetica Neue", Arial, Helvetica, sans-serif; + font-size: 12px; + font-size: 0.75rem; + line-height: 1.5; +} + + +/* general toolbar styles */ + +.leaflet-bar { + box-shadow: 0 1px 5px rgba(0, 0, 0, 0.65); + border-radius: 4px; +} + +.leaflet-bar a { + background-color: #fff; + border-bottom: 1px solid #ccc; + width: 26px; + height: 26px; + line-height: 26px; + display: block; + text-align: center; + text-decoration: none; + color: black; +} + +.leaflet-bar a, +.leaflet-control-layers-toggle { + background-position: 50% 50%; + background-repeat: no-repeat; + display: block; +} + +.leaflet-bar a:hover, +.leaflet-bar a:focus { + background-color: #f4f4f4; +} + +.leaflet-bar a:first-child { + border-top-left-radius: 4px; + border-top-right-radius: 4px; +} + +.leaflet-bar a:last-child { + border-bottom-left-radius: 4px; + border-bottom-right-radius: 4px; + border-bottom: none; +} + +.leaflet-bar a.leaflet-disabled { + cursor: default; + background-color: #f4f4f4; + color: #bbb; +} + +.leaflet-touch .leaflet-bar a { + width: 30px; + height: 30px; + line-height: 30px; +} + +.leaflet-touch .leaflet-bar a:first-child { + border-top-left-radius: 2px; + border-top-right-radius: 2px; +} + +.leaflet-touch .leaflet-bar a:last-child { + border-bottom-left-radius: 2px; + border-bottom-right-radius: 2px; +} + +/* zoom control */ + +.leaflet-control-zoom-in, +.leaflet-control-zoom-out { + font: bold 18px 'Lucida Console', Monaco, monospace; + text-indent: 1px; +} + +.leaflet-touch .leaflet-control-zoom-in, .leaflet-touch .leaflet-control-zoom-out { + font-size: 22px; +} + + +/* layers control */ + +.leaflet-control-layers { + box-shadow: 0 1px 5px rgba(0, 0, 0, 0.4); + background: #fff; + border-radius: 5px; +} + +.leaflet-control-layers-toggle { + background-image: url(assets/images/layers.png); + width: 36px; + height: 36px; +} + +.leaflet-retina .leaflet-control-layers-toggle { + background-image: url(assets/images/layers-2x.png); + background-size: 26px 26px; +} + +.leaflet-touch .leaflet-control-layers-toggle { + width: 44px; + height: 44px; +} + +.leaflet-control-layers .leaflet-control-layers-list, +.leaflet-control-layers-expanded .leaflet-control-layers-toggle { + display: none; +} + +.leaflet-control-layers-expanded .leaflet-control-layers-list { + display: block; + position: relative; +} + +.leaflet-control-layers-expanded { + padding: 6px 10px 6px 6px; + color: #333; + background: #fff; +} + +.leaflet-control-layers-scrollbar { + overflow-y: scroll; + overflow-x: hidden; + padding-right: 5px; +} + +.leaflet-control-layers-selector { + margin-top: 2px; + position: relative; + top: 1px; +} + +.leaflet-control-layers label { + display: block; + font-size: 13px; + font-size: 1.08333em; +} + +.leaflet-control-layers-separator { + height: 0; + border-top: 1px solid #ddd; + margin: 5px -10px 5px -6px; +} + +/* Default icon URLs */ +.leaflet-default-icon-path { /* used only in path-guessing heuristic, see L.Icon.Default */ + background-image: url(assets/images/marker-icon.png); +} + + +/* attribution and scale controls */ + +.leaflet-container .leaflet-control-attribution { + background: #fff; + background: rgba(255, 255, 255, 0.8); + margin: 0; +} + +.leaflet-control-attribution, +.leaflet-control-scale-line { + padding: 0 5px; + color: #333; + line-height: 1.4; +} + +.leaflet-control-attribution a { + text-decoration: none; +} + +.leaflet-control-attribution a:hover, +.leaflet-control-attribution a:focus { + text-decoration: underline; +} + +.leaflet-attribution-flag { + display: inline !important; + vertical-align: baseline !important; + width: 1em; + height: 0.6669em; +} + +.leaflet-left .leaflet-control-scale { + margin-left: 5px; +} + +.leaflet-bottom .leaflet-control-scale { + margin-bottom: 5px; +} + +.leaflet-control-scale-line { + border: 2px solid #777; + border-top: none; + line-height: 1.1; + padding: 2px 5px 1px; + white-space: nowrap; + -moz-box-sizing: border-box; + box-sizing: border-box; + background: rgba(255, 255, 255, 0.8); + text-shadow: 1px 1px #fff; +} + +.leaflet-control-scale-line:not(:first-child) { + border-top: 2px solid #777; + border-bottom: none; + margin-top: -2px; +} + +.leaflet-control-scale-line:not(:first-child):not(:last-child) { + border-bottom: 2px solid #777; +} + +.leaflet-touch .leaflet-control-attribution, +.leaflet-touch .leaflet-control-layers, +.leaflet-touch .leaflet-bar { + box-shadow: none; +} + +.leaflet-touch .leaflet-control-layers, +.leaflet-touch .leaflet-bar { + border: 2px solid rgba(0, 0, 0, 0.2); + background-clip: padding-box; +} + + +/* popup */ + +.leaflet-popup { + position: absolute; + text-align: center; + margin-bottom: 20px; +} + +.leaflet-popup-content-wrapper { + padding: 1px; + text-align: left; + border-radius: 12px; +} + +.leaflet-popup-content { + margin: 13px 24px 13px 20px; + line-height: 1.3; + font-size: 13px; + font-size: 1.08333em; + min-height: 1px; +} + +.leaflet-popup-content p { + margin: 17px 0; + margin: 1.3em 0; +} + +.leaflet-popup-tip-container { + width: 40px; + height: 20px; + position: absolute; + left: 50%; + margin-top: -1px; + margin-left: -20px; + overflow: hidden; + pointer-events: none; +} + +.leaflet-popup-tip { + width: 17px; + height: 17px; + padding: 1px; + + margin: -10px auto 0; + pointer-events: auto; + + -webkit-transform: rotate(45deg); + -moz-transform: rotate(45deg); + -ms-transform: rotate(45deg); + transform: rotate(45deg); +} + +.leaflet-popup-content-wrapper, +.leaflet-popup-tip { + background: white; + color: #333; + box-shadow: 0 3px 14px rgba(0, 0, 0, 0.4); +} + +.leaflet-container a.leaflet-popup-close-button { + position: absolute; + top: 0; + right: 0; + border: none; + text-align: center; + width: 24px; + height: 24px; + font: 16px/24px Tahoma, Verdana, sans-serif; + color: #757575; + text-decoration: none; + background: transparent; +} + +.leaflet-container a.leaflet-popup-close-button:hover, +.leaflet-container a.leaflet-popup-close-button:focus { + color: #585858; +} + +.leaflet-popup-scrolled { + overflow: auto; +} + +.leaflet-oldie .leaflet-popup-content-wrapper { + -ms-zoom: 1; +} + +.leaflet-oldie .leaflet-popup-tip { + width: 24px; + margin: 0 auto; + + -ms-filter: "progid:DXImageTransform.Microsoft.Matrix(M11=0.70710678, M12=0.70710678, M21=-0.70710678, M22=0.70710678)"; + filter: progid:DXImageTransform.Microsoft.Matrix(M11=0.70710678, M12=0.70710678, M21=-0.70710678, M22=0.70710678); +} + +.leaflet-oldie .leaflet-control-zoom, +.leaflet-oldie .leaflet-control-layers, +.leaflet-oldie .leaflet-popup-content-wrapper, +.leaflet-oldie .leaflet-popup-tip { + border: 1px solid #999; +} + + +/* div icon */ + +.leaflet-div-icon { + background: #fff; + border: 1px solid #666; +} + + +/* Tooltip */ +/* Base styles for the element that has a tooltip */ +.leaflet-tooltip { + position: absolute; + padding: 6px; + background-color: #fff; + border: 1px solid #fff; + border-radius: 3px; + color: #222; + white-space: nowrap; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + pointer-events: none; + box-shadow: 0 1px 3px rgba(0, 0, 0, 0.4); +} + +.leaflet-tooltip.leaflet-interactive { + cursor: pointer; + pointer-events: auto; +} + +.leaflet-tooltip-top:before, +.leaflet-tooltip-bottom:before, +.leaflet-tooltip-left:before, +.leaflet-tooltip-right:before { + position: absolute; + pointer-events: none; + border: 6px solid transparent; + background: transparent; + content: ""; +} + +/* Directions */ + +.leaflet-tooltip-bottom { + margin-top: 6px; +} + +.leaflet-tooltip-top { + margin-top: -6px; +} + +.leaflet-tooltip-bottom:before, +.leaflet-tooltip-top:before { + left: 50%; + margin-left: -6px; +} + +.leaflet-tooltip-top:before { + bottom: 0; + margin-bottom: -12px; + border-top-color: #fff; +} + +.leaflet-tooltip-bottom:before { + top: 0; + margin-top: -12px; + margin-left: -6px; + border-bottom-color: #fff; +} + +.leaflet-tooltip-left { + margin-left: -6px; +} + +.leaflet-tooltip-right { + margin-left: 6px; +} + +.leaflet-tooltip-left:before, +.leaflet-tooltip-right:before { + top: 50%; + margin-top: -6px; +} + +.leaflet-tooltip-left:before { + right: 0; + margin-right: -12px; + border-left-color: #fff; +} + +.leaflet-tooltip-right:before { + left: 0; + margin-left: -12px; + border-right-color: #fff; +} + +/* Printing */ + +@media print { + /* Prevent printers from removing background-images of controls. */ + .leaflet-control { + -webkit-print-color-adjust: exact; + print-color-adjust: exact; + } +} diff --git a/sut/frontend/build/leaflet/leaflet.js b/sut/frontend/build/leaflet/leaflet.js new file mode 100644 index 0000000..047bfe7 --- /dev/null +++ b/sut/frontend/build/leaflet/leaflet.js @@ -0,0 +1,6 @@ +/* @preserve + * Leaflet 1.9.3, a JS library for interactive maps. https://leafletjs.com + * (c) 2010-2022 Vladimir Agafonkin, (c) 2010-2011 CloudMade + */ +!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports):"function"==typeof define&&define.amd?define(["exports"],e):e((t="undefined"!=typeof globalThis?globalThis:t||self).leaflet={})}(this,function(t){"use strict";function l(t){for(var e,i,n=1,o=arguments.length;n=this.min.x&&i.x<=this.max.x&&e.y>=this.min.y&&i.y<=this.max.y},intersects:function(t){t=_(t);var e=this.min,i=this.max,n=t.min,t=t.max,o=t.x>=e.x&&n.x<=i.x,t=t.y>=e.y&&n.y<=i.y;return o&&t},overlaps:function(t){t=_(t);var e=this.min,i=this.max,n=t.min,t=t.max,o=t.x>e.x&&n.xe.y&&n.y=n.lat&&i.lat<=o.lat&&e.lng>=n.lng&&i.lng<=o.lng},intersects:function(t){t=g(t);var e=this._southWest,i=this._northEast,n=t.getSouthWest(),t=t.getNorthEast(),o=t.lat>=e.lat&&n.lat<=i.lat,t=t.lng>=e.lng&&n.lng<=i.lng;return o&&t},overlaps:function(t){t=g(t);var e=this._southWest,i=this._northEast,n=t.getSouthWest(),t=t.getNorthEast(),o=t.lat>e.lat&&n.late.lng&&n.lng","http://www.w3.org/2000/svg"===(Ft.firstChild&&Ft.firstChild.namespaceURI));function y(t){return 0<=navigator.userAgent.toLowerCase().indexOf(t)}var b={ie:pt,ielt9:mt,edge:n,webkit:ft,android:gt,android23:vt,androidStock:yt,opera:xt,chrome:wt,gecko:bt,safari:Pt,phantom:Lt,opera12:o,win:Tt,ie3d:Mt,webkit3d:zt,gecko3d:_t,any3d:Ct,mobile:Zt,mobileWebkit:St,mobileWebkit3d:Et,msPointer:kt,pointer:Ot,touch:Bt,touchNative:At,mobileOpera:It,mobileGecko:Rt,retina:Nt,passiveEvents:Dt,canvas:jt,svg:Ht,vml:!Ht&&function(){try{var t=document.createElement("div"),e=(t.innerHTML='',t.firstChild);return e.style.behavior="url(#default#VML)",e&&"object"==typeof e.adj}catch(t){return!1}}(),inlineSvg:Ft,mac:0===navigator.platform.indexOf("Mac"),linux:0===navigator.platform.indexOf("Linux")},Wt=b.msPointer?"MSPointerDown":"pointerdown",Ut=b.msPointer?"MSPointerMove":"pointermove",Vt=b.msPointer?"MSPointerUp":"pointerup",qt=b.msPointer?"MSPointerCancel":"pointercancel",Gt={touchstart:Wt,touchmove:Ut,touchend:Vt,touchcancel:qt},Kt={touchstart:function(t,e){e.MSPOINTER_TYPE_TOUCH&&e.pointerType===e.MSPOINTER_TYPE_TOUCH&&O(e);ee(t,e)},touchmove:ee,touchend:ee,touchcancel:ee},Yt={},Xt=!1;function Jt(t,e,i){return"touchstart"!==e||Xt||(document.addEventListener(Wt,$t,!0),document.addEventListener(Ut,Qt,!0),document.addEventListener(Vt,te,!0),document.addEventListener(qt,te,!0),Xt=!0),Kt[e]?(i=Kt[e].bind(this,i),t.addEventListener(Gt[e],i,!1),i):(console.warn("wrong event specified:",e),u)}function $t(t){Yt[t.pointerId]=t}function Qt(t){Yt[t.pointerId]&&(Yt[t.pointerId]=t)}function te(t){delete Yt[t.pointerId]}function ee(t,e){if(e.pointerType!==(e.MSPOINTER_TYPE_MOUSE||"mouse")){for(var i in e.touches=[],Yt)e.touches.push(Yt[i]);e.changedTouches=[e],t(e)}}var ie=200;function ne(t,i){t.addEventListener("dblclick",i);var n,o=0;function e(t){var e;1!==t.detail?n=t.detail:"mouse"===t.pointerType||t.sourceCapabilities&&!t.sourceCapabilities.firesTouchEvents||((e=Ne(t)).some(function(t){return t instanceof HTMLLabelElement&&t.attributes.for})&&!e.some(function(t){return t instanceof HTMLInputElement||t instanceof HTMLSelectElement})||((e=Date.now())-o<=ie?2===++n&&i(function(t){var e,i,n={};for(i in t)e=t[i],n[i]=e&&e.bind?e.bind(t):e;return(t=n).type="dblclick",n.detail=2,n.isTrusted=!1,n._simulated=!0,n}(t)):n=1,o=e))}return t.addEventListener("click",e),{dblclick:i,simDblclick:e}}var oe,se,re,ae,he,le,ue=we(["transform","webkitTransform","OTransform","MozTransform","msTransform"]),ce=we(["webkitTransition","transition","OTransition","MozTransition","msTransition"]),de="webkitTransition"===ce||"OTransition"===ce?ce+"End":"transitionend";function _e(t){return"string"==typeof t?document.getElementById(t):t}function pe(t,e){var i=t.style[e]||t.currentStyle&&t.currentStyle[e];return"auto"===(i=i&&"auto"!==i||!document.defaultView?i:(t=document.defaultView.getComputedStyle(t,null))?t[e]:null)?null:i}function P(t,e,i){t=document.createElement(t);return t.className=e||"",i&&i.appendChild(t),t}function T(t){var e=t.parentNode;e&&e.removeChild(t)}function me(t){for(;t.firstChild;)t.removeChild(t.firstChild)}function fe(t){var e=t.parentNode;e&&e.lastChild!==t&&e.appendChild(t)}function ge(t){var e=t.parentNode;e&&e.firstChild!==t&&e.insertBefore(t,e.firstChild)}function ve(t,e){return void 0!==t.classList?t.classList.contains(e):0<(t=xe(t)).length&&new RegExp("(^|\\s)"+e+"(\\s|$)").test(t)}function M(t,e){var i;if(void 0!==t.classList)for(var n=W(e),o=0,s=n.length;othis.options.maxZoom)?this.setZoom(t):this},panInsideBounds:function(t,e){this._enforcingBounds=!0;var i=this.getCenter(),t=this._limitCenter(i,this._zoom,g(t));return i.equals(t)||this.panTo(t,e),this._enforcingBounds=!1,this},panInside:function(t,e){var i=m((e=e||{}).paddingTopLeft||e.padding||[0,0]),n=m(e.paddingBottomRight||e.padding||[0,0]),o=this.project(this.getCenter()),t=this.project(t),s=this.getPixelBounds(),i=_([s.min.add(i),s.max.subtract(n)]),s=i.getSize();return i.contains(t)||(this._enforcingBounds=!0,n=t.subtract(i.getCenter()),i=i.extend(t).getSize().subtract(s),o.x+=n.x<0?-i.x:i.x,o.y+=n.y<0?-i.y:i.y,this.panTo(this.unproject(o),e),this._enforcingBounds=!1),this},invalidateSize:function(t){if(!this._loaded)return this;t=l({animate:!1,pan:!0},!0===t?{animate:!0}:t);var e=this.getSize(),i=(this._sizeChanged=!0,this._lastCenter=null,this.getSize()),n=e.divideBy(2).round(),o=i.divideBy(2).round(),n=n.subtract(o);return n.x||n.y?(t.animate&&t.pan?this.panBy(n):(t.pan&&this._rawPanBy(n),this.fire("move"),t.debounceMoveend?(clearTimeout(this._sizeTimer),this._sizeTimer=setTimeout(a(this.fire,this,"moveend"),200)):this.fire("moveend")),this.fire("resize",{oldSize:e,newSize:i})):this},stop:function(){return this.setZoom(this._limitZoom(this._zoom)),this.options.zoomSnap||this.fire("viewreset"),this._stop()},locate:function(t){var e,i;return t=this._locateOptions=l({timeout:1e4,watch:!1},t),"geolocation"in navigator?(e=a(this._handleGeolocationResponse,this),i=a(this._handleGeolocationError,this),t.watch?this._locationWatchId=navigator.geolocation.watchPosition(e,i,t):navigator.geolocation.getCurrentPosition(e,i,t)):this._handleGeolocationError({code:0,message:"Geolocation not supported."}),this},stopLocate:function(){return navigator.geolocation&&navigator.geolocation.clearWatch&&navigator.geolocation.clearWatch(this._locationWatchId),this._locateOptions&&(this._locateOptions.setView=!1),this},_handleGeolocationError:function(t){var e;this._container._leaflet_id&&(e=t.code,t=t.message||(1===e?"permission denied":2===e?"position unavailable":"timeout"),this._locateOptions.setView&&!this._loaded&&this.fitWorld(),this.fire("locationerror",{code:e,message:"Geolocation error: "+t+"."}))},_handleGeolocationResponse:function(t){if(this._container._leaflet_id){var e,i,n=new v(t.coords.latitude,t.coords.longitude),o=n.toBounds(2*t.coords.accuracy),s=this._locateOptions,r=(s.setView&&(e=this.getBoundsZoom(o),this.setView(n,s.maxZoom?Math.min(e,s.maxZoom):e)),{latlng:n,bounds:o,timestamp:t.timestamp});for(i in t.coords)"number"==typeof t.coords[i]&&(r[i]=t.coords[i]);this.fire("locationfound",r)}},addHandler:function(t,e){return e&&(e=this[t]=new e(this),this._handlers.push(e),this.options[t]&&e.enable()),this},remove:function(){if(this._initEvents(!0),this.options.maxBounds&&this.off("moveend",this._panInsideMaxBounds),this._containerId!==this._container._leaflet_id)throw new Error("Map container is being reused by another instance");try{delete this._container._leaflet_id,delete this._containerId}catch(t){this._container._leaflet_id=void 0,this._containerId=void 0}for(var t in void 0!==this._locationWatchId&&this.stopLocate(),this._stop(),T(this._mapPane),this._clearControlPos&&this._clearControlPos(),this._resizeRequest&&(r(this._resizeRequest),this._resizeRequest=null),this._clearHandlers(),this._loaded&&this.fire("unload"),this._layers)this._layers[t].remove();for(t in this._panes)T(this._panes[t]);return this._layers=[],this._panes=[],delete this._mapPane,delete this._renderer,this},createPane:function(t,e){e=P("div","leaflet-pane"+(t?" leaflet-"+t.replace("Pane","")+"-pane":""),e||this._mapPane);return t&&(this._panes[t]=e),e},getCenter:function(){return this._checkIfLoaded(),this._lastCenter&&!this._moved()?this._lastCenter.clone():this.layerPointToLatLng(this._getCenterLayerPoint())},getZoom:function(){return this._zoom},getBounds:function(){var t=this.getPixelBounds();return new s(this.unproject(t.getBottomLeft()),this.unproject(t.getTopRight()))},getMinZoom:function(){return void 0===this.options.minZoom?this._layersMinZoom||0:this.options.minZoom},getMaxZoom:function(){return void 0===this.options.maxZoom?void 0===this._layersMaxZoom?1/0:this._layersMaxZoom:this.options.maxZoom},getBoundsZoom:function(t,e,i){t=g(t),i=m(i||[0,0]);var n=this.getZoom()||0,o=this.getMinZoom(),s=this.getMaxZoom(),r=t.getNorthWest(),t=t.getSouthEast(),i=this.getSize().subtract(i),t=_(this.project(t,n),this.project(r,n)).getSize(),r=b.any3d?this.options.zoomSnap:1,a=i.x/t.x,i=i.y/t.y,t=e?Math.max(a,i):Math.min(a,i),n=this.getScaleZoom(t,n);return r&&(n=Math.round(n/(r/100))*(r/100),n=e?Math.ceil(n/r)*r:Math.floor(n/r)*r),Math.max(o,Math.min(s,n))},getSize:function(){return this._size&&!this._sizeChanged||(this._size=new p(this._container.clientWidth||0,this._container.clientHeight||0),this._sizeChanged=!1),this._size.clone()},getPixelBounds:function(t,e){t=this._getTopLeftPoint(t,e);return new f(t,t.add(this.getSize()))},getPixelOrigin:function(){return this._checkIfLoaded(),this._pixelOrigin},getPixelWorldBounds:function(t){return this.options.crs.getProjectedBounds(void 0===t?this.getZoom():t)},getPane:function(t){return"string"==typeof t?this._panes[t]:t},getPanes:function(){return this._panes},getContainer:function(){return this._container},getZoomScale:function(t,e){var i=this.options.crs;return e=void 0===e?this._zoom:e,i.scale(t)/i.scale(e)},getScaleZoom:function(t,e){var i=this.options.crs,t=(e=void 0===e?this._zoom:e,i.zoom(t*i.scale(e)));return isNaN(t)?1/0:t},project:function(t,e){return e=void 0===e?this._zoom:e,this.options.crs.latLngToPoint(w(t),e)},unproject:function(t,e){return e=void 0===e?this._zoom:e,this.options.crs.pointToLatLng(m(t),e)},layerPointToLatLng:function(t){t=m(t).add(this.getPixelOrigin());return this.unproject(t)},latLngToLayerPoint:function(t){return this.project(w(t))._round()._subtract(this.getPixelOrigin())},wrapLatLng:function(t){return this.options.crs.wrapLatLng(w(t))},wrapLatLngBounds:function(t){return this.options.crs.wrapLatLngBounds(g(t))},distance:function(t,e){return this.options.crs.distance(w(t),w(e))},containerPointToLayerPoint:function(t){return m(t).subtract(this._getMapPanePos())},layerPointToContainerPoint:function(t){return m(t).add(this._getMapPanePos())},containerPointToLatLng:function(t){t=this.containerPointToLayerPoint(m(t));return this.layerPointToLatLng(t)},latLngToContainerPoint:function(t){return this.layerPointToContainerPoint(this.latLngToLayerPoint(w(t)))},mouseEventToContainerPoint:function(t){return De(t,this._container)},mouseEventToLayerPoint:function(t){return this.containerPointToLayerPoint(this.mouseEventToContainerPoint(t))},mouseEventToLatLng:function(t){return this.layerPointToLatLng(this.mouseEventToLayerPoint(t))},_initContainer:function(t){t=this._container=_e(t);if(!t)throw new Error("Map container not found.");if(t._leaflet_id)throw new Error("Map container is already initialized.");S(t,"scroll",this._onScroll,this),this._containerId=h(t)},_initLayout:function(){var t=this._container,e=(this._fadeAnimated=this.options.fadeAnimation&&b.any3d,M(t,"leaflet-container"+(b.touch?" leaflet-touch":"")+(b.retina?" leaflet-retina":"")+(b.ielt9?" leaflet-oldie":"")+(b.safari?" leaflet-safari":"")+(this._fadeAnimated?" leaflet-fade-anim":"")),pe(t,"position"));"absolute"!==e&&"relative"!==e&&"fixed"!==e&&"sticky"!==e&&(t.style.position="relative"),this._initPanes(),this._initControlPos&&this._initControlPos()},_initPanes:function(){var t=this._panes={};this._paneRenderers={},this._mapPane=this.createPane("mapPane",this._container),Z(this._mapPane,new p(0,0)),this.createPane("tilePane"),this.createPane("overlayPane"),this.createPane("shadowPane"),this.createPane("markerPane"),this.createPane("tooltipPane"),this.createPane("popupPane"),this.options.markerZoomAnimation||(M(t.markerPane,"leaflet-zoom-hide"),M(t.shadowPane,"leaflet-zoom-hide"))},_resetView:function(t,e,i){Z(this._mapPane,new p(0,0));var n=!this._loaded,o=(this._loaded=!0,e=this._limitZoom(e),this.fire("viewprereset"),this._zoom!==e);this._moveStart(o,i)._move(t,e)._moveEnd(o),this.fire("viewreset"),n&&this.fire("load")},_moveStart:function(t,e){return t&&this.fire("zoomstart"),e||this.fire("movestart"),this},_move:function(t,e,i,n){void 0===e&&(e=this._zoom);var o=this._zoom!==e;return this._zoom=e,this._lastCenter=t,this._pixelOrigin=this._getNewPixelOrigin(t),n?i&&i.pinch&&this.fire("zoom",i):((o||i&&i.pinch)&&this.fire("zoom",i),this.fire("move",i)),this},_moveEnd:function(t){return t&&this.fire("zoomend"),this.fire("moveend")},_stop:function(){return r(this._flyToFrame),this._panAnim&&this._panAnim.stop(),this},_rawPanBy:function(t){Z(this._mapPane,this._getMapPanePos().subtract(t))},_getZoomSpan:function(){return this.getMaxZoom()-this.getMinZoom()},_panInsideMaxBounds:function(){this._enforcingBounds||this.panInsideBounds(this.options.maxBounds)},_checkIfLoaded:function(){if(!this._loaded)throw new Error("Set map center and zoom first.")},_initEvents:function(t){this._targets={};var e=t?k:S;e((this._targets[h(this._container)]=this)._container,"click dblclick mousedown mouseup mouseover mouseout mousemove contextmenu keypress keydown keyup",this._handleDOMEvent,this),this.options.trackResize&&e(window,"resize",this._onResize,this),b.any3d&&this.options.transform3DLimit&&(t?this.off:this.on).call(this,"moveend",this._onMoveEnd)},_onResize:function(){r(this._resizeRequest),this._resizeRequest=x(function(){this.invalidateSize({debounceMoveend:!0})},this)},_onScroll:function(){this._container.scrollTop=0,this._container.scrollLeft=0},_onMoveEnd:function(){var t=this._getMapPanePos();Math.max(Math.abs(t.x),Math.abs(t.y))>=this.options.transform3DLimit&&this._resetView(this.getCenter(),this.getZoom())},_findEventTargets:function(t,e){for(var i,n=[],o="mouseout"===e||"mouseover"===e,s=t.target||t.srcElement,r=!1;s;){if((i=this._targets[h(s)])&&("click"===e||"preclick"===e)&&this._draggableMoved(i)){r=!0;break}if(i&&i.listens(e,!0)){if(o&&!Fe(s,t))break;if(n.push(i),o)break}if(s===this._container)break;s=s.parentNode}return n=n.length||r||o||!this.listens(e,!0)?n:[this]},_isClickDisabled:function(t){for(;t&&t!==this._container;){if(t._leaflet_disable_click)return!0;t=t.parentNode}},_handleDOMEvent:function(t){var e,i=t.target||t.srcElement;!this._loaded||i._leaflet_disable_events||"click"===t.type&&this._isClickDisabled(i)||("mousedown"===(e=t.type)&&Me(i),this._fireDOMEvent(t,e))},_mouseEvents:["click","dblclick","mouseover","mouseout","contextmenu"],_fireDOMEvent:function(t,e,i){"click"===t.type&&((a=l({},t)).type="preclick",this._fireDOMEvent(a,a.type,i));var n=this._findEventTargets(t,e);if(i){for(var o=[],s=0;sthis.options.zoomAnimationThreshold)return!1;var n=this.getZoomScale(e),n=this._getCenterOffset(t)._divideBy(1-1/n);if(!0!==i.animate&&!this.getSize().contains(n))return!1;x(function(){this._moveStart(!0,!1)._animateZoom(t,e,!0)},this)}return!0},_animateZoom:function(t,e,i,n){this._mapPane&&(i&&(this._animatingZoom=!0,this._animateToCenter=t,this._animateToZoom=e,M(this._mapPane,"leaflet-zoom-anim")),this.fire("zoomanim",{center:t,zoom:e,noUpdate:n}),this._tempFireZoomEvent||(this._tempFireZoomEvent=this._zoom!==this._animateToZoom),this._move(this._animateToCenter,this._animateToZoom,void 0,!0),setTimeout(a(this._onZoomTransitionEnd,this),250))},_onZoomTransitionEnd:function(){this._animatingZoom&&(this._mapPane&&z(this._mapPane,"leaflet-zoom-anim"),this._animatingZoom=!1,this._move(this._animateToCenter,this._animateToZoom,void 0,!0),this._tempFireZoomEvent&&this.fire("zoom"),delete this._tempFireZoomEvent,this.fire("move"),this._moveEnd(!0))}});function Ue(t){return new B(t)}var Ve,B=et.extend({options:{position:"topright"},initialize:function(t){c(this,t)},getPosition:function(){return this.options.position},setPosition:function(t){var e=this._map;return e&&e.removeControl(this),this.options.position=t,e&&e.addControl(this),this},getContainer:function(){return this._container},addTo:function(t){this.remove(),this._map=t;var e=this._container=this.onAdd(t),i=this.getPosition(),t=t._controlCorners[i];return M(e,"leaflet-control"),-1!==i.indexOf("bottom")?t.insertBefore(e,t.firstChild):t.appendChild(e),this._map.on("unload",this.remove,this),this},remove:function(){return this._map&&(T(this._container),this.onRemove&&this.onRemove(this._map),this._map.off("unload",this.remove,this),this._map=null),this},_refocusOnMap:function(t){this._map&&t&&0",e=document.createElement("div");return e.innerHTML=t,e.firstChild},_addItem:function(t){var e,i=document.createElement("label"),n=this._map.hasLayer(t.layer),n=(t.overlay?((e=document.createElement("input")).type="checkbox",e.className="leaflet-control-layers-selector",e.defaultChecked=n):e=this._createRadioElement("leaflet-base-layers_"+h(this),n),this._layerControlInputs.push(e),e.layerId=h(t.layer),S(e,"click",this._onInputClick,this),document.createElement("span")),o=(n.innerHTML=" "+t.name,document.createElement("span"));return i.appendChild(o),o.appendChild(e),o.appendChild(n),(t.overlay?this._overlaysList:this._baseLayersList).appendChild(i),this._checkDisabledLayers(),i},_onInputClick:function(){var t,e,i=this._layerControlInputs,n=[],o=[];this._handlingClick=!0;for(var s=i.length-1;0<=s;s--)t=i[s],e=this._getLayer(t.layerId).layer,t.checked?n.push(e):t.checked||o.push(e);for(s=0;se.options.maxZoom},_expandIfNotCollapsed:function(){return this._map&&!this.options.collapsed&&this.expand(),this},_expandSafely:function(){var t=this._section;S(t,"click",O),this.expand(),setTimeout(function(){k(t,"click",O)})}})),Ge=B.extend({options:{position:"topleft",zoomInText:'',zoomInTitle:"Zoom in",zoomOutText:'',zoomOutTitle:"Zoom out"},onAdd:function(t){var e="leaflet-control-zoom",i=P("div",e+" leaflet-bar"),n=this.options;return this._zoomInButton=this._createButton(n.zoomInText,n.zoomInTitle,e+"-in",i,this._zoomIn),this._zoomOutButton=this._createButton(n.zoomOutText,n.zoomOutTitle,e+"-out",i,this._zoomOut),this._updateDisabled(),t.on("zoomend zoomlevelschange",this._updateDisabled,this),i},onRemove:function(t){t.off("zoomend zoomlevelschange",this._updateDisabled,this)},disable:function(){return this._disabled=!0,this._updateDisabled(),this},enable:function(){return this._disabled=!1,this._updateDisabled(),this},_zoomIn:function(t){!this._disabled&&this._map._zoomthis._map.getMinZoom()&&this._map.zoomOut(this._map.options.zoomDelta*(t.shiftKey?3:1))},_createButton:function(t,e,i,n,o){i=P("a",i,n);return i.innerHTML=t,i.href="#",i.title=e,i.setAttribute("role","button"),i.setAttribute("aria-label",e),Ie(i),S(i,"click",Re),S(i,"click",o,this),S(i,"click",this._refocusOnMap,this),i},_updateDisabled:function(){var t=this._map,e="leaflet-disabled";z(this._zoomInButton,e),z(this._zoomOutButton,e),this._zoomInButton.setAttribute("aria-disabled","false"),this._zoomOutButton.setAttribute("aria-disabled","false"),!this._disabled&&t._zoom!==t.getMinZoom()||(M(this._zoomOutButton,e),this._zoomOutButton.setAttribute("aria-disabled","true")),!this._disabled&&t._zoom!==t.getMaxZoom()||(M(this._zoomInButton,e),this._zoomInButton.setAttribute("aria-disabled","true"))}}),Ke=(A.mergeOptions({zoomControl:!0}),A.addInitHook(function(){this.options.zoomControl&&(this.zoomControl=new Ge,this.addControl(this.zoomControl))}),B.extend({options:{position:"bottomleft",maxWidth:100,metric:!0,imperial:!0},onAdd:function(t){var e="leaflet-control-scale",i=P("div",e),n=this.options;return this._addScales(n,e+"-line",i),t.on(n.updateWhenIdle?"moveend":"move",this._update,this),t.whenReady(this._update,this),i},onRemove:function(t){t.off(this.options.updateWhenIdle?"moveend":"move",this._update,this)},_addScales:function(t,e,i){t.metric&&(this._mScale=P("div",e,i)),t.imperial&&(this._iScale=P("div",e,i))},_update:function(){var t=this._map,e=t.getSize().y/2,t=t.distance(t.containerPointToLatLng([0,e]),t.containerPointToLatLng([this.options.maxWidth,e]));this._updateScales(t)},_updateScales:function(t){this.options.metric&&t&&this._updateMetric(t),this.options.imperial&&t&&this._updateImperial(t)},_updateMetric:function(t){var e=this._getRoundNum(t);this._updateScale(this._mScale,e<1e3?e+" m":e/1e3+" km",e/t)},_updateImperial:function(t){var e,i,t=3.2808399*t;5280'+(b.inlineSvg?' ':"")+"Leaflet"},initialize:function(t){c(this,t),this._attributions={}},onAdd:function(t){for(var e in(t.attributionControl=this)._container=P("div","leaflet-control-attribution"),Ie(this._container),t._layers)t._layers[e].getAttribution&&this.addAttribution(t._layers[e].getAttribution());return this._update(),t.on("layeradd",this._addAttribution,this),this._container},onRemove:function(t){t.off("layeradd",this._addAttribution,this)},_addAttribution:function(t){t.layer.getAttribution&&(this.addAttribution(t.layer.getAttribution()),t.layer.once("remove",function(){this.removeAttribution(t.layer.getAttribution())},this))},setPrefix:function(t){return this.options.prefix=t,this._update(),this},addAttribution:function(t){return t&&(this._attributions[t]||(this._attributions[t]=0),this._attributions[t]++,this._update()),this},removeAttribution:function(t){return t&&this._attributions[t]&&(this._attributions[t]--,this._update()),this},_update:function(){if(this._map){var t,e=[];for(t in this._attributions)this._attributions[t]&&e.push(t);var i=[];this.options.prefix&&i.push(this.options.prefix),e.length&&i.push(e.join(", ")),this._container.innerHTML=i.join(' ')}}}),n=(A.mergeOptions({attributionControl:!0}),A.addInitHook(function(){this.options.attributionControl&&(new Ye).addTo(this)}),B.Layers=qe,B.Zoom=Ge,B.Scale=Ke,B.Attribution=Ye,Ue.layers=function(t,e,i){return new qe(t,e,i)},Ue.zoom=function(t){return new Ge(t)},Ue.scale=function(t){return new Ke(t)},Ue.attribution=function(t){return new Ye(t)},et.extend({initialize:function(t){this._map=t},enable:function(){return this._enabled||(this._enabled=!0,this.addHooks()),this},disable:function(){return this._enabled&&(this._enabled=!1,this.removeHooks()),this},enabled:function(){return!!this._enabled}})),ft=(n.addTo=function(t,e){return t.addHandler(e,this),this},{Events:e}),Xe=b.touch?"touchstart mousedown":"mousedown",Je=it.extend({options:{clickTolerance:3},initialize:function(t,e,i,n){c(this,n),this._element=t,this._dragStartTarget=e||t,this._preventOutline=i},enable:function(){this._enabled||(S(this._dragStartTarget,Xe,this._onDown,this),this._enabled=!0)},disable:function(){this._enabled&&(Je._dragging===this&&this.finishDrag(!0),k(this._dragStartTarget,Xe,this._onDown,this),this._enabled=!1,this._moved=!1)},_onDown:function(t){var e,i;this._enabled&&(this._moved=!1,ve(this._element,"leaflet-zoom-anim")||(t.touches&&1!==t.touches.length?Je._dragging===this&&this.finishDrag():Je._dragging||t.shiftKey||1!==t.which&&1!==t.button&&!t.touches||((Je._dragging=this)._preventOutline&&Me(this._element),Le(),re(),this._moving||(this.fire("down"),i=t.touches?t.touches[0]:t,e=Ce(this._element),this._startPoint=new p(i.clientX,i.clientY),this._startPos=Pe(this._element),this._parentScale=Ze(e),i="mousedown"===t.type,S(document,i?"mousemove":"touchmove",this._onMove,this),S(document,i?"mouseup":"touchend touchcancel",this._onUp,this)))))},_onMove:function(t){var e;this._enabled&&(t.touches&&1e&&(i.push(t[n]),o=n);oe.max.x&&(i|=2),t.ye.max.y&&(i|=8),i}function ni(t,e,i,n){var o=e.x,e=e.y,s=i.x-o,r=i.y-e,a=s*s+r*r;return 0this._layersMaxZoom&&this.setZoom(this._layersMaxZoom),void 0===this.options.minZoom&&this._layersMinZoom&&this.getZoom()t.y!=n.y>t.y&&t.x<(n.x-i.x)*(t.y-i.y)/(n.y-i.y)+i.x&&(l=!l);return l||vi.prototype._containsPoint.call(this,t,!0)}});var xi=ui.extend({initialize:function(t,e){c(this,e),this._layers={},t&&this.addData(t)},addData:function(t){var e,i,n,o=d(t)?t:t.features;if(o){for(e=0,i=o.length;es.x&&(r=i.x+a-s.x+o.x),i.x-r-n.x<(a=0)&&(r=i.x-n.x),i.y+e+o.y>s.y&&(a=i.y+e-s.y+o.y),i.y-a-n.y<0&&(a=i.y-n.y),(r||a)&&(this.options.keepInView&&(this._autopanning=!0),t.fire("autopanstart").panBy([r,a]))))},_getAnchor:function(){return m(this._source&&this._source._getPopupAnchor?this._source._getPopupAnchor():[0,0])}})),Bi=(A.mergeOptions({closePopupOnClick:!0}),A.include({openPopup:function(t,e,i){return this._initOverlay(Ai,t,e,i).openOn(this),this},closePopup:function(t){return(t=arguments.length?t:this._popup)&&t.close(),this}}),o.include({bindPopup:function(t,e){return this._popup=this._initOverlay(Ai,this._popup,t,e),this._popupHandlersAdded||(this.on({click:this._openPopup,keypress:this._onKeyPress,remove:this.closePopup,move:this._movePopup}),this._popupHandlersAdded=!0),this},unbindPopup:function(){return this._popup&&(this.off({click:this._openPopup,keypress:this._onKeyPress,remove:this.closePopup,move:this._movePopup}),this._popupHandlersAdded=!1,this._popup=null),this},openPopup:function(t){return this._popup&&(this instanceof ui||(this._popup._source=this),this._popup._prepareOpen(t||this._latlng)&&this._popup.openOn(this._map)),this},closePopup:function(){return this._popup&&this._popup.close(),this},togglePopup:function(){return this._popup&&this._popup.toggle(this),this},isPopupOpen:function(){return!!this._popup&&this._popup.isOpen()},setPopupContent:function(t){return this._popup&&this._popup.setContent(t),this},getPopup:function(){return this._popup},_openPopup:function(t){var e;this._popup&&this._map&&(Re(t),e=t.layer||t.target,this._popup._source!==e||e instanceof mi?(this._popup._source=e,this.openPopup(t.latlng)):this._map.hasLayer(this._popup)?this.closePopup():this.openPopup(t.latlng))},_movePopup:function(t){this._popup.setLatLng(t.latlng)},_onKeyPress:function(t){13===t.originalEvent.keyCode&&this._openPopup(t)}}),Oi.extend({options:{pane:"tooltipPane",offset:[0,0],direction:"auto",permanent:!1,sticky:!1,opacity:.9},onAdd:function(t){Oi.prototype.onAdd.call(this,t),this.setOpacity(this.options.opacity),t.fire("tooltipopen",{tooltip:this}),this._source&&(this.addEventParent(this._source),this._source.fire("tooltipopen",{tooltip:this},!0))},onRemove:function(t){Oi.prototype.onRemove.call(this,t),t.fire("tooltipclose",{tooltip:this}),this._source&&(this.removeEventParent(this._source),this._source.fire("tooltipclose",{tooltip:this},!0))},getEvents:function(){var t=Oi.prototype.getEvents.call(this);return this.options.permanent||(t.preclick=this.close),t},_initLayout:function(){var t="leaflet-tooltip "+(this.options.className||"")+" leaflet-zoom-"+(this._zoomAnimated?"animated":"hide");this._contentNode=this._container=P("div",t),this._container.setAttribute("role","tooltip"),this._container.setAttribute("id","leaflet-tooltip-"+h(this))},_updateLayout:function(){},_adjustPan:function(){},_setPosition:function(t){var e,i=this._map,n=this._container,o=i.latLngToContainerPoint(i.getCenter()),i=i.layerPointToContainerPoint(t),s=this.options.direction,r=n.offsetWidth,a=n.offsetHeight,h=m(this.options.offset),l=this._getAnchor(),i="top"===s?(e=r/2,a):"bottom"===s?(e=r/2,0):(e="center"===s?r/2:"right"===s?0:"left"===s?r:i.xthis.options.maxZoom||nthis.options.maxZoom||void 0!==this.options.minZoom&&oi.max.x)||!e.wrapLat&&(t.yi.max.y))return!1}return!this.options.bounds||(e=this._tileCoordsToBounds(t),g(this.options.bounds).overlaps(e))},_keyToBounds:function(t){return this._tileCoordsToBounds(this._keyToTileCoords(t))},_tileCoordsToNwSe:function(t){var e=this._map,i=this.getTileSize(),n=t.scaleBy(i),i=n.add(i);return[e.unproject(n,t.z),e.unproject(i,t.z)]},_tileCoordsToBounds:function(t){t=this._tileCoordsToNwSe(t),t=new s(t[0],t[1]);return t=this.options.noWrap?t:this._map.wrapLatLngBounds(t)},_tileCoordsToKey:function(t){return t.x+":"+t.y+":"+t.z},_keyToTileCoords:function(t){var t=t.split(":"),e=new p(+t[0],+t[1]);return e.z=+t[2],e},_removeTile:function(t){var e=this._tiles[t];e&&(T(e.el),delete this._tiles[t],this.fire("tileunload",{tile:e.el,coords:this._keyToTileCoords(t)}))},_initTile:function(t){M(t,"leaflet-tile");var e=this.getTileSize();t.style.width=e.x+"px",t.style.height=e.y+"px",t.onselectstart=u,t.onmousemove=u,b.ielt9&&this.options.opacity<1&&C(t,this.options.opacity)},_addTile:function(t,e){var i=this._getTilePos(t),n=this._tileCoordsToKey(t),o=this.createTile(this._wrapCoords(t),a(this._tileReady,this,t));this._initTile(o),this.createTile.length<2&&x(a(this._tileReady,this,t,null,o)),Z(o,i),this._tiles[n]={el:o,coords:t,current:!0},e.appendChild(o),this.fire("tileloadstart",{tile:o,coords:t})},_tileReady:function(t,e,i){e&&this.fire("tileerror",{error:e,tile:i,coords:t});var n=this._tileCoordsToKey(t);(i=this._tiles[n])&&(i.loaded=+new Date,this._map._fadeAnimated?(C(i.el,0),r(this._fadeFrame),this._fadeFrame=x(this._updateOpacity,this)):(i.active=!0,this._pruneTiles()),e||(M(i.el,"leaflet-tile-loaded"),this.fire("tileload",{tile:i.el,coords:t})),this._noTilesToLoad()&&(this._loading=!1,this.fire("load"),b.ielt9||!this._map._fadeAnimated?x(this._pruneTiles,this):setTimeout(a(this._pruneTiles,this),250)))},_getTilePos:function(t){return t.scaleBy(this.getTileSize()).subtract(this._level.origin)},_wrapCoords:function(t){var e=new p(this._wrapX?H(t.x,this._wrapX):t.x,this._wrapY?H(t.y,this._wrapY):t.y);return e.z=t.z,e},_pxBoundsToTileRange:function(t){var e=this.getTileSize();return new f(t.min.unscaleBy(e).floor(),t.max.unscaleBy(e).ceil().subtract([1,1]))},_noTilesToLoad:function(){for(var t in this._tiles)if(!this._tiles[t].loaded)return!1;return!0}});var Ni=Ri.extend({options:{minZoom:0,maxZoom:18,subdomains:"abc",errorTileUrl:"",zoomOffset:0,tms:!1,zoomReverse:!1,detectRetina:!1,crossOrigin:!1,referrerPolicy:!1},initialize:function(t,e){this._url=t,(e=c(this,e)).detectRetina&&b.retina&&0')}}catch(t){}return function(t){return document.createElement("<"+t+' xmlns="urn:schemas-microsoft.com:vml" class="lvml">')}}(),zt={_initContainer:function(){this._container=P("div","leaflet-vml-container")},_update:function(){this._map._animatingZoom||(Hi.prototype._update.call(this),this.fire("update"))},_initPath:function(t){var e=t._container=Ui("shape");M(e,"leaflet-vml-shape "+(this.options.className||"")),e.coordsize="1 1",t._path=Ui("path"),e.appendChild(t._path),this._updateStyle(t),this._layers[h(t)]=t},_addPath:function(t){var e=t._container;this._container.appendChild(e),t.options.interactive&&t.addInteractiveTarget(e)},_removePath:function(t){var e=t._container;T(e),t.removeInteractiveTarget(e),delete this._layers[h(t)]},_updateStyle:function(t){var e=t._stroke,i=t._fill,n=t.options,o=t._container;o.stroked=!!n.stroke,o.filled=!!n.fill,n.stroke?(e=e||(t._stroke=Ui("stroke")),o.appendChild(e),e.weight=n.weight+"px",e.color=n.color,e.opacity=n.opacity,n.dashArray?e.dashStyle=d(n.dashArray)?n.dashArray.join(" "):n.dashArray.replace(/( *, *)/g," "):e.dashStyle="",e.endcap=n.lineCap.replace("butt","flat"),e.joinstyle=n.lineJoin):e&&(o.removeChild(e),t._stroke=null),n.fill?(i=i||(t._fill=Ui("fill")),o.appendChild(i),i.color=n.fillColor||n.color,i.opacity=n.fillOpacity):i&&(o.removeChild(i),t._fill=null)},_updateCircle:function(t){var e=t._point.round(),i=Math.round(t._radius),n=Math.round(t._radiusY||i);this._setPath(t,t._empty()?"M0 0":"AL "+e.x+","+e.y+" "+i+","+n+" 0,23592600")},_setPath:function(t,e){t._path.v=e},_bringToFront:function(t){fe(t._container)},_bringToBack:function(t){ge(t._container)}},Vi=b.vml?Ui:ct,qi=Hi.extend({_initContainer:function(){this._container=Vi("svg"),this._container.setAttribute("pointer-events","none"),this._rootGroup=Vi("g"),this._container.appendChild(this._rootGroup)},_destroyContainer:function(){T(this._container),k(this._container),delete this._container,delete this._rootGroup,delete this._svgSize},_update:function(){var t,e,i;this._map._animatingZoom&&this._bounds||(Hi.prototype._update.call(this),e=(t=this._bounds).getSize(),i=this._container,this._svgSize&&this._svgSize.equals(e)||(this._svgSize=e,i.setAttribute("width",e.x),i.setAttribute("height",e.y)),Z(i,t.min),i.setAttribute("viewBox",[t.min.x,t.min.y,e.x,e.y].join(" ")),this.fire("update"))},_initPath:function(t){var e=t._path=Vi("path");t.options.className&&M(e,t.options.className),t.options.interactive&&M(e,"leaflet-interactive"),this._updateStyle(t),this._layers[h(t)]=t},_addPath:function(t){this._rootGroup||this._initContainer(),this._rootGroup.appendChild(t._path),t.addInteractiveTarget(t._path)},_removePath:function(t){T(t._path),t.removeInteractiveTarget(t._path),delete this._layers[h(t)]},_updatePath:function(t){t._project(),t._update()},_updateStyle:function(t){var e=t._path,t=t.options;e&&(t.stroke?(e.setAttribute("stroke",t.color),e.setAttribute("stroke-opacity",t.opacity),e.setAttribute("stroke-width",t.weight),e.setAttribute("stroke-linecap",t.lineCap),e.setAttribute("stroke-linejoin",t.lineJoin),t.dashArray?e.setAttribute("stroke-dasharray",t.dashArray):e.removeAttribute("stroke-dasharray"),t.dashOffset?e.setAttribute("stroke-dashoffset",t.dashOffset):e.removeAttribute("stroke-dashoffset")):e.setAttribute("stroke","none"),t.fill?(e.setAttribute("fill",t.fillColor||t.color),e.setAttribute("fill-opacity",t.fillOpacity),e.setAttribute("fill-rule",t.fillRule||"evenodd")):e.setAttribute("fill","none"))},_updatePoly:function(t,e){this._setPath(t,dt(t._parts,e))},_updateCircle:function(t){var e=t._point,i=Math.max(Math.round(t._radius),1),n="a"+i+","+(Math.max(Math.round(t._radiusY),1)||i)+" 0 1,0 ",e=t._empty()?"M0 0":"M"+(e.x-i)+","+e.y+n+2*i+",0 "+n+2*-i+",0 ";this._setPath(t,e)},_setPath:function(t,e){t._path.setAttribute("d",e)},_bringToFront:function(t){fe(t._path)},_bringToBack:function(t){ge(t._path)}});function Gi(t){return b.svg||b.vml?new qi(t):null}b.vml&&qi.include(zt),A.include({getRenderer:function(t){t=(t=t.options.renderer||this._getPaneRenderer(t.options.pane)||this.options.renderer||this._renderer)||(this._renderer=this._createRenderer());return this.hasLayer(t)||this.addLayer(t),t},_getPaneRenderer:function(t){var e;return"overlayPane"!==t&&void 0!==t&&(void 0===(e=this._paneRenderers[t])&&(e=this._createRenderer({pane:t}),this._paneRenderers[t]=e),e)},_createRenderer:function(t){return this.options.preferCanvas&&Wi(t)||Gi(t)}});var Ki=yi.extend({initialize:function(t,e){yi.prototype.initialize.call(this,this._boundsToLatLngs(t),e)},setBounds:function(t){return this.setLatLngs(this._boundsToLatLngs(t))},_boundsToLatLngs:function(t){return[(t=g(t)).getSouthWest(),t.getNorthWest(),t.getNorthEast(),t.getSouthEast()]}});qi.create=Vi,qi.pointsToPath=dt,xi.geometryToLayer=wi,xi.coordsToLatLng=Pi,xi.coordsToLatLngs=Li,xi.latLngToCoords=Ti,xi.latLngsToCoords=Mi,xi.getFeature=zi,xi.asFeature=Ci,A.mergeOptions({boxZoom:!0});var _t=n.extend({initialize:function(t){this._map=t,this._container=t._container,this._pane=t._panes.overlayPane,this._resetStateTimeout=0,t.on("unload",this._destroy,this)},addHooks:function(){S(this._container,"mousedown",this._onMouseDown,this)},removeHooks:function(){k(this._container,"mousedown",this._onMouseDown,this)},moved:function(){return this._moved},_destroy:function(){T(this._pane),delete this._pane},_resetState:function(){this._resetStateTimeout=0,this._moved=!1},_clearDeferredResetState:function(){0!==this._resetStateTimeout&&(clearTimeout(this._resetStateTimeout),this._resetStateTimeout=0)},_onMouseDown:function(t){if(!t.shiftKey||1!==t.which&&1!==t.button)return!1;this._clearDeferredResetState(),this._resetState(),re(),Le(),this._startPoint=this._map.mouseEventToContainerPoint(t),S(document,{contextmenu:Re,mousemove:this._onMouseMove,mouseup:this._onMouseUp,keydown:this._onKeyDown},this)},_onMouseMove:function(t){this._moved||(this._moved=!0,this._box=P("div","leaflet-zoom-box",this._container),M(this._container,"leaflet-crosshair"),this._map.fire("boxzoomstart")),this._point=this._map.mouseEventToContainerPoint(t);var t=new f(this._point,this._startPoint),e=t.getSize();Z(this._box,t.min),this._box.style.width=e.x+"px",this._box.style.height=e.y+"px"},_finish:function(){this._moved&&(T(this._box),z(this._container,"leaflet-crosshair")),ae(),Te(),k(document,{contextmenu:Re,mousemove:this._onMouseMove,mouseup:this._onMouseUp,keydown:this._onKeyDown},this)},_onMouseUp:function(t){1!==t.which&&1!==t.button||(this._finish(),this._moved&&(this._clearDeferredResetState(),this._resetStateTimeout=setTimeout(a(this._resetState,this),0),t=new s(this._map.containerPointToLatLng(this._startPoint),this._map.containerPointToLatLng(this._point)),this._map.fitBounds(t).fire("boxzoomend",{boxZoomBounds:t})))},_onKeyDown:function(t){27===t.keyCode&&(this._finish(),this._clearDeferredResetState(),this._resetState())}}),Ct=(A.addInitHook("addHandler","boxZoom",_t),A.mergeOptions({doubleClickZoom:!0}),n.extend({addHooks:function(){this._map.on("dblclick",this._onDoubleClick,this)},removeHooks:function(){this._map.off("dblclick",this._onDoubleClick,this)},_onDoubleClick:function(t){var e=this._map,i=e.getZoom(),n=e.options.zoomDelta,i=t.originalEvent.shiftKey?i-n:i+n;"center"===e.options.doubleClickZoom?e.setZoom(i):e.setZoomAround(t.containerPoint,i)}})),Zt=(A.addInitHook("addHandler","doubleClickZoom",Ct),A.mergeOptions({dragging:!0,inertia:!0,inertiaDeceleration:3400,inertiaMaxSpeed:1/0,easeLinearity:.2,worldCopyJump:!1,maxBoundsViscosity:0}),n.extend({addHooks:function(){var t;this._draggable||(t=this._map,this._draggable=new Je(t._mapPane,t._container),this._draggable.on({dragstart:this._onDragStart,drag:this._onDrag,dragend:this._onDragEnd},this),this._draggable.on("predrag",this._onPreDragLimit,this),t.options.worldCopyJump&&(this._draggable.on("predrag",this._onPreDragWrap,this),t.on("zoomend",this._onZoomEnd,this),t.whenReady(this._onZoomEnd,this))),M(this._map._container,"leaflet-grab leaflet-touch-drag"),this._draggable.enable(),this._positions=[],this._times=[]},removeHooks:function(){z(this._map._container,"leaflet-grab"),z(this._map._container,"leaflet-touch-drag"),this._draggable.disable()},moved:function(){return this._draggable&&this._draggable._moved},moving:function(){return this._draggable&&this._draggable._moving},_onDragStart:function(){var t,e=this._map;e._stop(),this._map.options.maxBounds&&this._map.options.maxBoundsViscosity?(t=g(this._map.options.maxBounds),this._offsetLimit=_(this._map.latLngToContainerPoint(t.getNorthWest()).multiplyBy(-1),this._map.latLngToContainerPoint(t.getSouthEast()).multiplyBy(-1).add(this._map.getSize())),this._viscosity=Math.min(1,Math.max(0,this._map.options.maxBoundsViscosity))):this._offsetLimit=null,e.fire("movestart").fire("dragstart"),e.options.inertia&&(this._positions=[],this._times=[])},_onDrag:function(t){var e,i;this._map.options.inertia&&(e=this._lastTime=+new Date,i=this._lastPos=this._draggable._absPos||this._draggable._newPos,this._positions.push(i),this._times.push(e),this._prunePositions(e)),this._map.fire("move",t).fire("drag",t)},_prunePositions:function(t){for(;1e.max.x&&(t.x=this._viscousLimit(t.x,e.max.x)),t.y>e.max.y&&(t.y=this._viscousLimit(t.y,e.max.y)),this._draggable._newPos=this._draggable._startPos.add(t))},_onPreDragWrap:function(){var t=this._worldWidth,e=Math.round(t/2),i=this._initialWorldOffset,n=this._draggable._newPos.x,o=(n-e+i)%t+e-i,n=(n+e+i)%t-e-i,t=Math.abs(o+i)e.getMaxZoom()&&1=i;)t=t.__parent;return this._currentShownBounds.contains(t.getLatLng())&&(this.options.animateAddingMarkers?this._animationAddLayer(e,t):this._animationAddLayerNonAnimated(e,t)),this},removeLayer:function(e){return e instanceof L.LayerGroup?this.removeLayers([e]):e.getLatLng?this._map?e.__parent?(this._unspiderfy&&(this._unspiderfy(),this._unspiderfyLayer(e)),this._removeLayer(e,!0),this.fire("layerremove",{layer:e}),this._topClusterLevel._recalculateBounds(),this._refreshClustersIcons(),e.off(this._childMarkerEventHandlers,this),this._featureGroup.hasLayer(e)&&(this._featureGroup.removeLayer(e),e.clusterShow&&e.clusterShow()),this):this:(!this._arraySplice(this._needsClustering,e)&&this.hasLayer(e)&&this._needsRemoving.push({layer:e,latlng:e._latlng}),this.fire("layerremove",{layer:e}),this):(this._nonPointGroup.removeLayer(e),this.fire("layerremove",{layer:e}),this)},addLayers:function(e,t){if(!L.Util.isArray(e))return this.addLayer(e);var i,n=this._featureGroup,r=this._nonPointGroup,s=this.options.chunkedLoading,o=this.options.chunkInterval,a=this.options.chunkProgress,h=e.length,l=0,u=!0;if(this._map){var _=(new Date).getTime(),d=L.bind(function(){for(var c=(new Date).getTime();h>l;l++){if(s&&0===l%200){var p=(new Date).getTime()-c;if(p>o)break}if(i=e[l],i instanceof L.LayerGroup)u&&(e=e.slice(),u=!1),this._extractNonGroupLayers(i,e),h=e.length;else if(i.getLatLng){if(!this.hasLayer(i)&&(this._addLayer(i,this._maxZoom),t||this.fire("layeradd",{layer:i}),i.__parent&&2===i.__parent.getChildCount())){var f=i.__parent.getAllChildMarkers(),m=f[0]===i?f[1]:f[0];n.removeLayer(m)}}else r.addLayer(i),t||this.fire("layeradd",{layer:i})}a&&a(l,h,(new Date).getTime()-_),l===h?(this._topClusterLevel._recalculateBounds(),this._refreshClustersIcons(),this._topClusterLevel._recursivelyAddChildrenToMap(null,this._zoom,this._currentShownBounds)):setTimeout(d,this.options.chunkDelay)},this);d()}else for(var c=this._needsClustering;h>l;l++)i=e[l],i instanceof L.LayerGroup?(u&&(e=e.slice(),u=!1),this._extractNonGroupLayers(i,e),h=e.length):i.getLatLng?this.hasLayer(i)||c.push(i):r.addLayer(i);return this},removeLayers:function(e){var t,i,n=e.length,r=this._featureGroup,s=this._nonPointGroup,o=!0;if(!this._map){for(t=0;n>t;t++)i=e[t],i instanceof L.LayerGroup?(o&&(e=e.slice(),o=!1),this._extractNonGroupLayers(i,e),n=e.length):(this._arraySplice(this._needsClustering,i),s.removeLayer(i),this.hasLayer(i)&&this._needsRemoving.push({layer:i,latlng:i._latlng}),this.fire("layerremove",{layer:i}));return this}if(this._unspiderfy){this._unspiderfy();var a=e.slice(),h=n;for(t=0;h>t;t++)i=a[t],i instanceof L.LayerGroup?(this._extractNonGroupLayers(i,a),h=a.length):this._unspiderfyLayer(i)}for(t=0;n>t;t++)i=e[t],i instanceof L.LayerGroup?(o&&(e=e.slice(),o=!1),this._extractNonGroupLayers(i,e),n=e.length):i.__parent?(this._removeLayer(i,!0,!0),this.fire("layerremove",{layer:i}),r.hasLayer(i)&&(r.removeLayer(i),i.clusterShow&&i.clusterShow())):(s.removeLayer(i),this.fire("layerremove",{layer:i}));return this._topClusterLevel._recalculateBounds(),this._refreshClustersIcons(),this._topClusterLevel._recursivelyAddChildrenToMap(null,this._zoom,this._currentShownBounds),this},clearLayers:function(){return this._map||(this._needsClustering=[],this._needsRemoving=[],delete this._gridClusters,delete this._gridUnclustered),this._noanimationUnspiderfy&&this._noanimationUnspiderfy(),this._featureGroup.clearLayers(),this._nonPointGroup.clearLayers(),this.eachLayer(function(e){e.off(this._childMarkerEventHandlers,this),delete e.__parent},this),this._map&&this._generateInitialClusters(),this},getBounds:function(){var e=new L.LatLngBounds;this._topClusterLevel&&e.extend(this._topClusterLevel._bounds);for(var t=this._needsClustering.length-1;t>=0;t--)e.extend(this._needsClustering[t].getLatLng());return e.extend(this._nonPointGroup.getBounds()),e},eachLayer:function(e,t){var i,n,r,s=this._needsClustering.slice(),o=this._needsRemoving;for(this._topClusterLevel&&this._topClusterLevel.getAllChildMarkers(s),n=s.length-1;n>=0;n--){for(i=!0,r=o.length-1;r>=0;r--)if(o[r].layer===s[n]){i=!1;break}i&&e.call(t,s[n])}this._nonPointGroup.eachLayer(e,t)},getLayers:function(){var e=[];return this.eachLayer(function(t){e.push(t)}),e},getLayer:function(e){var t=null;return e=parseInt(e,10),this.eachLayer(function(i){L.stamp(i)===e&&(t=i)}),t},hasLayer:function(e){if(!e)return!1;var t,i=this._needsClustering;for(t=i.length-1;t>=0;t--)if(i[t]===e)return!0;for(i=this._needsRemoving,t=i.length-1;t>=0;t--)if(i[t].layer===e)return!1;return!(!e.__parent||e.__parent._group!==this)||this._nonPointGroup.hasLayer(e)},zoomToShowLayer:function(e,t){"function"!=typeof t&&(t=function(){});var i=function(){!e._icon&&!e.__parent._icon||this._inZoomAnimation||(this._map.off("moveend",i,this),this.off("animationend",i,this),e._icon?t():e.__parent._icon&&(this.once("spiderfied",t,this),e.__parent.spiderfy()))};e._icon&&this._map.getBounds().contains(e.getLatLng())?t():e.__parent._zoomt;t++)n=this._needsRemoving[t],n.newlatlng=n.layer._latlng,n.layer._latlng=n.latlng;for(t=0,i=this._needsRemoving.length;i>t;t++)n=this._needsRemoving[t],this._removeLayer(n.layer,!0),n.layer._latlng=n.newlatlng;this._needsRemoving=[],this._zoom=Math.round(this._map._zoom),this._currentShownBounds=this._getExpandedVisibleBounds(),this._map.on("zoomend",this._zoomEnd,this),this._map.on("moveend",this._moveEnd,this),this._spiderfierOnAdd&&this._spiderfierOnAdd(),this._bindEvents(),i=this._needsClustering,this._needsClustering=[],this.addLayers(i,!0)},onRemove:function(e){e.off("zoomend",this._zoomEnd,this),e.off("moveend",this._moveEnd,this),this._unbindEvents(),this._map._mapPane.className=this._map._mapPane.className.replace(" leaflet-cluster-anim",""),this._spiderfierOnRemove&&this._spiderfierOnRemove(),delete this._maxLat,this._hideCoverage(),this._featureGroup.remove(),this._nonPointGroup.remove(),this._featureGroup.clearLayers(),this._map=null},getVisibleParent:function(e){for(var t=e;t&&!t._icon;)t=t.__parent;return t||null},_arraySplice:function(e,t){for(var i=e.length-1;i>=0;i--)if(e[i]===t)return e.splice(i,1),!0},_removeFromGridUnclustered:function(e,t){for(var i=this._map,n=this._gridUnclustered,r=Math.floor(this._map.getMinZoom());t>=r&&n[t].removeObject(e,i.project(e.getLatLng(),t));t--);},_childMarkerDragStart:function(e){e.target.__dragStart=e.target._latlng},_childMarkerMoved:function(e){if(!this._ignoreMove&&!e.target.__dragStart){var t=e.target._popup&&e.target._popup.isOpen();this._moveChild(e.target,e.oldLatLng,e.latlng),t&&e.target.openPopup()}},_moveChild:function(e,t,i){e._latlng=t,this.removeLayer(e),e._latlng=i,this.addLayer(e)},_childMarkerDragEnd:function(e){var t=e.target.__dragStart;delete e.target.__dragStart,t&&this._moveChild(e.target,t,e.target._latlng)},_removeLayer:function(e,t,i){var n=this._gridClusters,r=this._gridUnclustered,s=this._featureGroup,o=this._map,a=Math.floor(this._map.getMinZoom());t&&this._removeFromGridUnclustered(e,this._maxZoom);var h,l=e.__parent,u=l._markers;for(this._arraySplice(u,e);l&&(l._childCount--,l._boundsNeedUpdate=!0,!(l._zoomt?"small":100>t?"medium":"large",new L.DivIcon({html:"

"+t+"
",className:"marker-cluster"+i,iconSize:new L.Point(40,40)})},_bindEvents:function(){var e=this._map,t=this.options.spiderfyOnMaxZoom,i=this.options.showCoverageOnHover,n=this.options.zoomToBoundsOnClick;(t||n)&&this.on("clusterclick",this._zoomOrSpiderfy,this),i&&(this.on("clustermouseover",this._showCoverage,this),this.on("clustermouseout",this._hideCoverage,this),e.on("zoomend",this._hideCoverage,this))},_zoomOrSpiderfy:function(e){for(var t=e.layer,i=t;1===i._childClusters.length;)i=i._childClusters[0];i._zoom===this._maxZoom&&i._childCount===t._childCount&&this.options.spiderfyOnMaxZoom?t.spiderfy():this.options.zoomToBoundsOnClick&&t.zoomToBounds(),e.originalEvent&&13===e.originalEvent.keyCode&&this._map._container.focus()},_showCoverage:function(e){var t=this._map;this._inZoomAnimation||(this._shownPolygon&&t.removeLayer(this._shownPolygon),e.layer.getChildCount()>2&&e.layer!==this._spiderfied&&(this._shownPolygon=new L.Polygon(e.layer.getConvexHull(),this.options.polygonOptions),t.addLayer(this._shownPolygon)))},_hideCoverage:function(){this._shownPolygon&&(this._map.removeLayer(this._shownPolygon),this._shownPolygon=null)},_unbindEvents:function(){var e=this.options.spiderfyOnMaxZoom,t=this.options.showCoverageOnHover,i=this.options.zoomToBoundsOnClick,n=this._map;(e||i)&&this.off("clusterclick",this._zoomOrSpiderfy,this),t&&(this.off("clustermouseover",this._showCoverage,this),this.off("clustermouseout",this._hideCoverage,this),n.off("zoomend",this._hideCoverage,this))},_zoomEnd:function(){this._map&&(this._mergeSplitClusters(),this._zoom=Math.round(this._map._zoom),this._currentShownBounds=this._getExpandedVisibleBounds())},_moveEnd:function(){if(!this._inZoomAnimation){var e=this._getExpandedVisibleBounds();this._topClusterLevel._recursivelyRemoveChildrenFromMap(this._currentShownBounds,Math.floor(this._map.getMinZoom()),this._zoom,e),this._topClusterLevel._recursivelyAddChildrenToMap(null,Math.round(this._map._zoom),e),this._currentShownBounds=e}},_generateInitialClusters:function(){var e=Math.ceil(this._map.getMaxZoom()),t=Math.floor(this._map.getMinZoom()),i=this.options.maxClusterRadius,n=i;"function"!=typeof i&&(n=function(){return i}),null!==this.options.disableClusteringAtZoom&&(e=this.options.disableClusteringAtZoom-1),this._maxZoom=e,this._gridClusters={},this._gridUnclustered={};for(var r=e;r>=t;r--)this._gridClusters[r]=new L.DistanceGrid(n(r)),this._gridUnclustered[r]=new L.DistanceGrid(n(r));this._topClusterLevel=new this._markerCluster(this,t-1)},_addLayer:function(e,t){var i,n,r=this._gridClusters,s=this._gridUnclustered,o=Math.floor(this._map.getMinZoom());for(this.options.singleMarkerMode&&this._overrideMarkerIcon(e),e.on(this._childMarkerEventHandlers,this);t>=o;t--){i=this._map.project(e.getLatLng(),t);var a=r[t].getNearObject(i);if(a)return a._addChild(e),e.__parent=a,void 0;if(a=s[t].getNearObject(i)){var h=a.__parent;h&&this._removeLayer(a,!1);var l=new this._markerCluster(this,t,a,e);r[t].addObject(l,this._map.project(l._cLatLng,t)),a.__parent=l,e.__parent=l;var u=l;for(n=t-1;n>h._zoom;n--)u=new this._markerCluster(this,n,u),r[n].addObject(u,this._map.project(a.getLatLng(),n));return h._addChild(u),this._removeFromGridUnclustered(a,t),void 0}s[t].addObject(e,i)}this._topClusterLevel._addChild(e),e.__parent=this._topClusterLevel},_refreshClustersIcons:function(){this._featureGroup.eachLayer(function(e){e instanceof L.MarkerCluster&&e._iconNeedsUpdate&&e._updateIcon()})},_enqueue:function(e){this._queue.push(e),this._queueTimeout||(this._queueTimeout=setTimeout(L.bind(this._processQueue,this),300))},_processQueue:function(){for(var e=0;ee?(this._animationStart(),this._animationZoomOut(this._zoom,e)):this._moveEnd()},_getExpandedVisibleBounds:function(){return this.options.removeOutsideVisibleBounds?L.Browser.mobile?this._checkBoundsMaxLat(this._map.getBounds()):this._checkBoundsMaxLat(this._map.getBounds().pad(1)):this._mapBoundsInfinite},_checkBoundsMaxLat:function(e){var t=this._maxLat;return void 0!==t&&(e.getNorth()>=t&&(e._northEast.lat=1/0),e.getSouth()<=-t&&(e._southWest.lat=-1/0)),e},_animationAddLayerNonAnimated:function(e,t){if(t===e)this._featureGroup.addLayer(e);else if(2===t._childCount){t._addToMap();var i=t.getAllChildMarkers();this._featureGroup.removeLayer(i[0]),this._featureGroup.removeLayer(i[1])}else t._updateIcon()},_extractNonGroupLayers:function(e,t){var i,n=e.getLayers(),r=0;for(t=t||[];r=0;i--)o=h[i],n.contains(o._latlng)||r.removeLayer(o)}),this._forceLayout(),this._topClusterLevel._recursivelyBecomeVisible(n,t),r.eachLayer(function(e){e instanceof L.MarkerCluster||!e._icon||e.clusterShow()}),this._topClusterLevel._recursively(n,e,t,function(e){e._recursivelyRestoreChildPositions(t)}),this._ignoreMove=!1,this._enqueue(function(){this._topClusterLevel._recursively(n,e,s,function(e){r.removeLayer(e),e.clusterShow()}),this._animationEnd()})},_animationZoomOut:function(e,t){this._animationZoomOutSingle(this._topClusterLevel,e-1,t),this._topClusterLevel._recursivelyAddChildrenToMap(null,t,this._getExpandedVisibleBounds()),this._topClusterLevel._recursivelyRemoveChildrenFromMap(this._currentShownBounds,Math.floor(this._map.getMinZoom()),e,this._getExpandedVisibleBounds())},_animationAddLayer:function(e,t){var i=this,n=this._featureGroup;n.addLayer(e),t!==e&&(t._childCount>2?(t._updateIcon(),this._forceLayout(),this._animationStart(),e._setPos(this._map.latLngToLayerPoint(t.getLatLng())),e.clusterHide(),this._enqueue(function(){n.removeLayer(e),e.clusterShow(),i._animationEnd()})):(this._forceLayout(),i._animationStart(),i._animationZoomOutSingle(t,this._map.getMaxZoom(),this._zoom)))}},_animationZoomOutSingle:function(e,t,i){var n=this._getExpandedVisibleBounds(),r=Math.floor(this._map.getMinZoom());e._recursivelyAnimateChildrenInAndAddSelfToMap(n,r,t+1,i);var s=this;this._forceLayout(),e._recursivelyBecomeVisible(n,i),this._enqueue(function(){if(1===e._childCount){var o=e._markers[0];this._ignoreMove=!0,o.setLatLng(o.getLatLng()),this._ignoreMove=!1,o.clusterShow&&o.clusterShow()}else e._recursively(n,i,r,function(e){e._recursivelyRemoveChildrenFromMap(n,r,t+1)});s._animationEnd()})},_animationEnd:function(){this._map&&(this._map._mapPane.className=this._map._mapPane.className.replace(" leaflet-cluster-anim","")),this._inZoomAnimation--,this.fire("animationend")},_forceLayout:function(){L.Util.falseFn(document.body.offsetWidth)}}),L.markerClusterGroup=function(e){return new L.MarkerClusterGroup(e)};var i=L.MarkerCluster=L.Marker.extend({options:L.Icon.prototype.options,initialize:function(e,t,i,n){L.Marker.prototype.initialize.call(this,i?i._cLatLng||i.getLatLng():new L.LatLng(0,0),{icon:this,pane:e.options.clusterPane}),this._group=e,this._zoom=t,this._markers=[],this._childClusters=[],this._childCount=0,this._iconNeedsUpdate=!0,this._boundsNeedUpdate=!0,this._bounds=new L.LatLngBounds,i&&this._addChild(i),n&&this._addChild(n)},getAllChildMarkers:function(e,t){e=e||[];for(var i=this._childClusters.length-1;i>=0;i--)this._childClusters[i].getAllChildMarkers(e);for(var n=this._markers.length-1;n>=0;n--)t&&this._markers[n].__dragStart||e.push(this._markers[n]);return e},getChildCount:function(){return this._childCount},zoomToBounds:function(e){for(var t,i=this._childClusters.slice(),n=this._group._map,r=n.getBoundsZoom(this._bounds),s=this._zoom+1,o=n.getZoom();i.length>0&&r>s;){s++;var a=[];for(t=0;ts?this._group._map.setView(this._latlng,s):o>=r?this._group._map.setView(this._latlng,o+1):this._group._map.fitBounds(this._bounds,e)},getBounds:function(){var e=new L.LatLngBounds;return e.extend(this._bounds),e},_updateIcon:function(){this._iconNeedsUpdate=!0,this._icon&&this.setIcon(this)},createIcon:function(){return this._iconNeedsUpdate&&(this._iconObj=this._group.options.iconCreateFunction(this),this._iconNeedsUpdate=!1),this._iconObj.createIcon()},createShadow:function(){return this._iconObj.createShadow()},_addChild:function(e,t){this._iconNeedsUpdate=!0,this._boundsNeedUpdate=!0,this._setClusterCenter(e),e instanceof L.MarkerCluster?(t||(this._childClusters.push(e),e.__parent=this),this._childCount+=e._childCount):(t||this._markers.push(e),this._childCount++),this.__parent&&this.__parent._addChild(e,!0)},_setClusterCenter:function(e){this._cLatLng||(this._cLatLng=e._cLatLng||e._latlng)},_resetBounds:function(){var e=this._bounds;e._southWest&&(e._southWest.lat=1/0,e._southWest.lng=1/0),e._northEast&&(e._northEast.lat=-1/0,e._northEast.lng=-1/0)},_recalculateBounds:function(){var e,t,i,n,r=this._markers,s=this._childClusters,o=0,a=0,h=this._childCount;if(0!==h){for(this._resetBounds(),e=0;e=0;i--)n=r[i],n._icon&&(n._setPos(t),n.clusterHide())},function(e){var i,n,r=e._childClusters;for(i=r.length-1;i>=0;i--)n=r[i],n._icon&&(n._setPos(t),n.clusterHide())})},_recursivelyAnimateChildrenInAndAddSelfToMap:function(e,t,i,n){this._recursively(e,n,t,function(r){r._recursivelyAnimateChildrenIn(e,r._group._map.latLngToLayerPoint(r.getLatLng()).round(),i),r._isSingleParent()&&i-1===n?(r.clusterShow(),r._recursivelyRemoveChildrenFromMap(e,t,i)):r.clusterHide(),r._addToMap()})},_recursivelyBecomeVisible:function(e,t){this._recursively(e,this._group._map.getMinZoom(),t,null,function(e){e.clusterShow()})},_recursivelyAddChildrenToMap:function(e,t,i){this._recursively(i,this._group._map.getMinZoom()-1,t,function(n){if(t!==n._zoom)for(var r=n._markers.length-1;r>=0;r--){var s=n._markers[r];i.contains(s._latlng)&&(e&&(s._backupLatlng=s.getLatLng(),s.setLatLng(e),s.clusterHide&&s.clusterHide()),n._group._featureGroup.addLayer(s))}},function(t){t._addToMap(e)})},_recursivelyRestoreChildPositions:function(e){for(var t=this._markers.length-1;t>=0;t--){var i=this._markers[t];i._backupLatlng&&(i.setLatLng(i._backupLatlng),delete i._backupLatlng)}if(e-1===this._zoom)for(var n=this._childClusters.length-1;n>=0;n--)this._childClusters[n]._restorePosition();else for(var r=this._childClusters.length-1;r>=0;r--)this._childClusters[r]._recursivelyRestoreChildPositions(e)},_restorePosition:function(){this._backupLatlng&&(this.setLatLng(this._backupLatlng),delete this._backupLatlng)},_recursivelyRemoveChildrenFromMap:function(e,t,i,n){var r,s;this._recursively(e,t-1,i-1,function(e){for(s=e._markers.length-1;s>=0;s--)r=e._markers[s],n&&n.contains(r._latlng)||(e._group._featureGroup.removeLayer(r),r.clusterShow&&r.clusterShow())},function(e){for(s=e._childClusters.length-1;s>=0;s--)r=e._childClusters[s],n&&n.contains(r._latlng)||(e._group._featureGroup.removeLayer(r),r.clusterShow&&r.clusterShow())})},_recursively:function(e,t,i,n,r){var s,o,a=this._childClusters,h=this._zoom;if(h>=t&&(n&&n(this),r&&h===i&&r(this)),t>h||i>h)for(s=a.length-1;s>=0;s--)o=a[s],o._boundsNeedUpdate&&o._recalculateBounds(),e.intersects(o._bounds)&&o._recursively(e,t,i,n,r)},_isSingleParent:function(){return this._childClusters.length>0&&this._childClusters[0]._childCount===this._childCount}});L.Marker.include({clusterHide:function(){var e=this.options.opacity;return this.setOpacity(0),this.options.opacity=e,this},clusterShow:function(){return this.setOpacity(this.options.opacity)}}),L.DistanceGrid=function(e){this._cellSize=e,this._sqCellSize=e*e,this._grid={},this._objectPoint={}},L.DistanceGrid.prototype={addObject:function(e,t){var i=this._getCoord(t.x),n=this._getCoord(t.y),r=this._grid,s=r[n]=r[n]||{},o=s[i]=s[i]||[],a=L.Util.stamp(e);this._objectPoint[a]=t,o.push(e)},updateObject:function(e,t){this.removeObject(e),this.addObject(e,t)},removeObject:function(e,t){var i,n,r=this._getCoord(t.x),s=this._getCoord(t.y),o=this._grid,a=o[s]=o[s]||{},h=a[r]=a[r]||[];for(delete this._objectPoint[L.Util.stamp(e)],i=0,n=h.length;n>i;i++)if(h[i]===e)return h.splice(i,1),1===n&&delete a[r],!0},eachObject:function(e,t){var i,n,r,s,o,a,h,l=this._grid;for(i in l){o=l[i];for(n in o)for(a=o[n],r=0,s=a.length;s>r;r++)h=e.call(t,a[r]),h&&(r--,s--)}},getNearObject:function(e){var t,i,n,r,s,o,a,h,l=this._getCoord(e.x),u=this._getCoord(e.y),_=this._objectPoint,d=this._sqCellSize,c=null;for(t=u-1;u+1>=t;t++)if(r=this._grid[t])for(i=l-1;l+1>=i;i++)if(s=r[i])for(n=0,o=s.length;o>n;n++)a=s[n],h=this._sqDist(_[L.Util.stamp(a)],e),(d>h||d>=h&&null===c)&&(d=h,c=a);return c},_getCoord:function(e){var t=Math.floor(e/this._cellSize);return isFinite(t)?t:e},_sqDist:function(e,t){var i=t.x-e.x,n=t.y-e.y;return i*i+n*n}},function(){L.QuickHull={getDistant:function(e,t){var i=t[1].lat-t[0].lat,n=t[0].lng-t[1].lng;return n*(e.lat-t[0].lat)+i*(e.lng-t[0].lng)},findMostDistantPointFromBaseLine:function(e,t){var i,n,r,s=0,o=null,a=[];for(i=t.length-1;i>=0;i--)n=t[i],r=this.getDistant(n,e),r>0&&(a.push(n),r>s&&(s=r,o=n));return{maxPoint:o,newPoints:a}},buildConvexHull:function(e,t){var i=[],n=this.findMostDistantPointFromBaseLine(e,t);return n.maxPoint?(i=i.concat(this.buildConvexHull([e[0],n.maxPoint],n.newPoints)),i=i.concat(this.buildConvexHull([n.maxPoint,e[1]],n.newPoints))):[e[0]]},getConvexHull:function(e){var t,i=!1,n=!1,r=!1,s=!1,o=null,a=null,h=null,l=null,u=null,_=null;for(t=e.length-1;t>=0;t--){var d=e[t];(i===!1||d.lat>i)&&(o=d,i=d.lat),(n===!1||d.latr)&&(h=d,r=d.lng),(s===!1||d.lng=0;t--)e=i[t].getLatLng(),n.push(e);return L.QuickHull.getConvexHull(n)}}),L.MarkerCluster.include({_2PI:2*Math.PI,_circleFootSeparation:25,_circleStartAngle:0,_spiralFootSeparation:28,_spiralLengthStart:11,_spiralLengthFactor:5,_circleSpiralSwitchover:9,spiderfy:function(){if(this._group._spiderfied!==this&&!this._group._inZoomAnimation){var e,t=this.getAllChildMarkers(null,!0),i=this._group,n=i._map,r=n.latLngToLayerPoint(this._latlng);this._group._unspiderfy(),this._group._spiderfied=this,t.length>=this._circleSpiralSwitchover?e=this._generatePointsSpiral(t.length,r):(r.y+=10,e=this._generatePointsCircle(t.length,r)),this._animationSpiderfy(t,e)}},unspiderfy:function(e){this._group._inZoomAnimation||(this._animationUnspiderfy(e),this._group._spiderfied=null)},_generatePointsCircle:function(e,t){var i,n,r=this._group.options.spiderfyDistanceMultiplier*this._circleFootSeparation*(2+e),s=r/this._2PI,o=this._2PI/e,a=[];for(s=Math.max(s,35),a.length=e,i=0;e>i;i++)n=this._circleStartAngle+i*o,a[i]=new L.Point(t.x+s*Math.cos(n),t.y+s*Math.sin(n))._round();return a},_generatePointsSpiral:function(e,t){var i,n=this._group.options.spiderfyDistanceMultiplier,r=n*this._spiralLengthStart,s=n*this._spiralFootSeparation,o=n*this._spiralLengthFactor*this._2PI,a=0,h=[];for(h.length=e,i=e;i>=0;i--)e>i&&(h[i]=new L.Point(t.x+r*Math.cos(a),t.y+r*Math.sin(a))._round()),a+=s/r+5e-4*i,r+=o/a;return h},_noanimationUnspiderfy:function(){var e,t,i=this._group,n=i._map,r=i._featureGroup,s=this.getAllChildMarkers(null,!0);for(i._ignoreMove=!0,this.setOpacity(1),t=s.length-1;t>=0;t--)e=s[t],r.removeLayer(e),e._preSpiderfyLatlng&&(e.setLatLng(e._preSpiderfyLatlng),delete e._preSpiderfyLatlng),e.setZIndexOffset&&e.setZIndexOffset(0),e._spiderLeg&&(n.removeLayer(e._spiderLeg),delete e._spiderLeg);i.fire("unspiderfied",{cluster:this,markers:s}),i._ignoreMove=!1,i._spiderfied=null}}),L.MarkerClusterNonAnimated=L.MarkerCluster.extend({_animationSpiderfy:function(e,t){var i,n,r,s,o=this._group,a=o._map,h=o._featureGroup,l=this._group.options.spiderLegPolylineOptions;for(o._ignoreMove=!0,i=0;i=0;i--)a=u.layerPointToLatLng(t[i]),n=e[i],n._preSpiderfyLatlng=n._latlng,n.setLatLng(a),n.clusterShow&&n.clusterShow(),p&&(r=n._spiderLeg,s=r._path,s.style.strokeDashoffset=0,r.setStyle({opacity:m}));this.setOpacity(.3),l._ignoreMove=!1,setTimeout(function(){l._animationEnd(),l.fire("spiderfied",{cluster:h,markers:e})},200)},_animationUnspiderfy:function(e){var t,i,n,r,s,o,a=this,h=this._group,l=h._map,u=h._featureGroup,_=e?l._latLngToNewLayerPoint(this._latlng,e.zoom,e.center):l.latLngToLayerPoint(this._latlng),d=this.getAllChildMarkers(null,!0),c=L.Path.SVG;for(h._ignoreMove=!0,h._animationStart(),this.setOpacity(1),i=d.length-1;i>=0;i--)t=d[i],t._preSpiderfyLatlng&&(t.closePopup(),t.setLatLng(t._preSpiderfyLatlng),delete t._preSpiderfyLatlng,o=!0,t._setPos&&(t._setPos(_),o=!1),t.clusterHide&&(t.clusterHide(),o=!1),o&&u.removeLayer(t),c&&(n=t._spiderLeg,r=n._path,s=r.getTotalLength()+.1,r.style.strokeDashoffset=s,n.setStyle({opacity:0})));h._ignoreMove=!1,setTimeout(function(){var e=0;for(i=d.length-1;i>=0;i--)t=d[i],t._spiderLeg&&e++;for(i=d.length-1;i>=0;i--)t=d[i],t._spiderLeg&&(t.clusterShow&&t.clusterShow(),t.setZIndexOffset&&t.setZIndexOffset(0),e>1&&u.removeLayer(t),l.removeLayer(t._spiderLeg),delete t._spiderLeg);h._animationEnd(),h.fire("unspiderfied",{cluster:a,markers:d})},200)}}),L.MarkerClusterGroup.include({_spiderfied:null,unspiderfy:function(){this._unspiderfy.apply(this,arguments)},_spiderfierOnAdd:function(){this._map.on("click",this._unspiderfyWrapper,this),this._map.options.zoomAnimation&&this._map.on("zoomstart",this._unspiderfyZoomStart,this),this._map.on("zoomend",this._noanimationUnspiderfy,this),L.Browser.touch||this._map.getRenderer(this)},_spiderfierOnRemove:function(){this._map.off("click",this._unspiderfyWrapper,this),this._map.off("zoomstart",this._unspiderfyZoomStart,this),this._map.off("zoomanim",this._unspiderfyZoomAnim,this),this._map.off("zoomend",this._noanimationUnspiderfy,this),this._noanimationUnspiderfy() +},_unspiderfyZoomStart:function(){this._map&&this._map.on("zoomanim",this._unspiderfyZoomAnim,this)},_unspiderfyZoomAnim:function(e){L.DomUtil.hasClass(this._map._mapPane,"leaflet-touching")||(this._map.off("zoomanim",this._unspiderfyZoomAnim,this),this._unspiderfy(e))},_unspiderfyWrapper:function(){this._unspiderfy()},_unspiderfy:function(e){this._spiderfied&&this._spiderfied.unspiderfy(e)},_noanimationUnspiderfy:function(){this._spiderfied&&this._spiderfied._noanimationUnspiderfy()},_unspiderfyLayer:function(e){e._spiderLeg&&(this._featureGroup.removeLayer(e),e.clusterShow&&e.clusterShow(),e.setZIndexOffset&&e.setZIndexOffset(0),this._map.removeLayer(e._spiderLeg),delete e._spiderLeg)}}),L.MarkerClusterGroup.include({refreshClusters:function(e){return e?e instanceof L.MarkerClusterGroup?e=e._topClusterLevel.getAllChildMarkers():e instanceof L.LayerGroup?e=e._layers:e instanceof L.MarkerCluster?e=e.getAllChildMarkers():e instanceof L.Marker&&(e=[e]):e=this._topClusterLevel.getAllChildMarkers(),this._flagParentsIconsNeedUpdate(e),this._refreshClustersIcons(),this.options.singleMarkerMode&&this._refreshSingleMarkerModeMarkers(e),this},_flagParentsIconsNeedUpdate:function(e){var t,i;for(t in e)for(i=e[t].__parent;i;)i._iconNeedsUpdate=!0,i=i.__parent},_refreshSingleMarkerModeMarkers:function(e){var t,i;for(t in e)i=e[t],this.hasLayer(i)&&i.setIcon(this._overrideMarkerIcon(i))}}),L.Marker.include({refreshIconOptions:function(e,t){var i=this.options.icon;return L.setOptions(i,e),this.setIcon(i),t&&this.__parent&&this.__parent._group.refreshClusters(this),this}}),e.MarkerClusterGroup=t,e.MarkerCluster=i}); +//# sourceMappingURL=leaflet.markercluster.js.map \ No newline at end of file diff --git a/sut/frontend/build/leaflet/marker_cluster/leaflet.markercluster.js.map b/sut/frontend/build/leaflet/marker_cluster/leaflet.markercluster.js.map new file mode 100644 index 0000000..a4b459c --- /dev/null +++ b/sut/frontend/build/leaflet/marker_cluster/leaflet.markercluster.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["../src/MarkerClusterGroup.js","../src/MarkerCluster.js","../src/MarkerOpacity.js","../src/DistanceGrid.js","../src/MarkerCluster.QuickHull.js","../src/MarkerCluster.Spiderfier.js","../src/MarkerClusterGroup.Refresh.js"],"names":[],"mappings":"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","file":"dist/leaflet.markercluster.js"} \ No newline at end of file diff --git a/sut/frontend/build/leaflet/smooth_bounce/BouncingMotion.js b/sut/frontend/build/leaflet/smooth_bounce/BouncingMotion.js new file mode 100644 index 0000000..b57377e --- /dev/null +++ b/sut/frontend/build/leaflet/smooth_bounce/BouncingMotion.js @@ -0,0 +1,307 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports["default"] = void 0; + +var _leaflet = require("leaflet"); + +var _BouncingOptions = _interopRequireDefault(require("./BouncingOptions.js")); + +var _Cache = _interopRequireDefault(require("./Cache.js")); + +var _Styles = _interopRequireDefault(require("./Styles.js")); + +function _interopRequireDefault(obj) { + return obj && obj.__esModule ? obj : {"default": obj}; +} + +function _classCallCheck(instance, Constructor) { + if (!(instance instanceof Constructor)) { + throw new TypeError("Cannot call a class as a function"); + } +} + +function _defineProperties(target, props) { + for (var i = 0; i < props.length; i++) { + var descriptor = props[i]; + descriptor.enumerable = descriptor.enumerable || false; + descriptor.configurable = true; + if ("value" in descriptor) descriptor.writable = true; + Object.defineProperty(target, descriptor.key, descriptor); + } +} + +function _createClass(Constructor, protoProps, staticProps) { + if (protoProps) _defineProperties(Constructor.prototype, protoProps); + if (staticProps) _defineProperties(Constructor, staticProps); + return Constructor; +} + +function _defineProperty(obj, key, value) { + if (key in obj) { + Object.defineProperty(obj, key, {value: value, enumerable: true, configurable: true, writable: true}); + } else { + obj[key] = value; + } + return obj; +} + +var bonceEndEvent = 'bounceend'; + +var BouncingMotion = /*#__PURE__*/function () { + // TODO: check if this cache working right (keys don't need prefix) + + /** + * Constructor. + * + * @param marker {Marker} marker + * @param position {Point} marker current position on the map canvas + * @param bouncingOptions {BouncingOptions} options of bouncing animation + */ + function BouncingMotion(marker, position, bouncingOptions) { + _classCallCheck(this, BouncingMotion); + + _defineProperty(this, "marker", void 0); + + _defineProperty(this, "position", void 0); + + _defineProperty(this, "bouncingOptions", void 0); + + _defineProperty(this, "moveSteps", void 0); + + _defineProperty(this, "moveDelays", void 0); + + _defineProperty(this, "resizeSteps", void 0); + + _defineProperty(this, "resizeDelays", void 0); + + _defineProperty(this, "isBouncing", false); + + _defineProperty(this, "iconStyles", void 0); + + _defineProperty(this, "shadowStyles", void 0); + + _defineProperty(this, "bouncingAnimationPlaying", false); + + this.marker = marker; + this.position = position; + this.updateBouncingOptions(bouncingOptions); + } + + _createClass(BouncingMotion, [{ + key: "updateBouncingOptions", + value: function updateBouncingOptions(options) { + this.bouncingOptions = options instanceof _BouncingOptions["default"] ? options : this.bouncingOptions.override(options); + var _this$bouncingOptions = this.bouncingOptions, + bounceHeight = _this$bouncingOptions.bounceHeight, + bounceSpeed = _this$bouncingOptions.bounceSpeed, + elastic = _this$bouncingOptions.elastic; + this.moveSteps = BouncingMotion.cache.get("moveSteps_".concat(bounceHeight), function () { + return BouncingMotion.calculateSteps(bounceHeight); + }); + this.moveDelays = BouncingMotion.cache.get("moveDelays_".concat(bounceHeight, "_").concat(bounceSpeed), function () { + return BouncingMotion.calculateDelays(bounceHeight, bounceSpeed); + }); + + if (elastic) { + var _this$bouncingOptions2 = this.bouncingOptions, + contractHeight = _this$bouncingOptions2.contractHeight, + contractSpeed = _this$bouncingOptions2.contractSpeed; + this.resizeSteps = BouncingMotion.cache.get("resizeSteps_".concat(contractHeight), function () { + return BouncingMotion.calculateSteps(contractHeight); + }); + this.resizeDelays = BouncingMotion.cache.get("resizeDelays_".concat(contractHeight, "_").concat(contractSpeed), function () { + return BouncingMotion.calculateDelays(contractHeight, contractSpeed); + }); + } + + this.recalculateMotion(this.position); + } + }, { + key: "resetStyles", + value: function resetStyles(marker) { + this.iconStyles = _Styles["default"].ofMarker(marker); + + if (marker._shadow) { + this.shadowStyles = _Styles["default"].parse(marker._shadow.style.cssText); + } + } + /** + * Recalculates bouncing motion for new marker position. + * @param position {Point} new marker position + */ + + }, { + key: "recalculateMotion", + value: function recalculateMotion(position) { + this.position = position; + } + /** + * @param times {number|null} + */ + + }, { + key: "bounce", + value: function bounce() { + var times = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null; + + if (this.bouncingAnimationPlaying) { + this.isBouncing = true; + return; + } + + this.isBouncing = true; + this.bouncingAnimationPlaying = true; + this.move(times); + } + }, { + key: "stopBouncing", + value: function stopBouncing() { + this.isBouncing = false; + } + /** + * @param times {number|null} + */ + + }, { + key: "move", + value: function move() { + var _this = this; + + var times = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null; + + if (times !== null) { + if (!--times) { + this.isBouncing = false; // this is the last bouncing + + this.bouncingAnimationPlaying = false; + } + } + /* Launch timeouts for every step of the movement animation */ + + + var i = this.moveSteps.length; + + while (i--) { + setTimeout(function (step) { + return _this.makeMoveStep(step); + }, this.moveDelays[i], this.moveSteps[i]); + } + + setTimeout(function () { + return _this.afterMove(times); + }, this.moveDelays[this.moveSteps.length - 1]); + } + }, { + key: "afterMove", + value: function afterMove(times) { + var _this2 = this; + + if (this.isBouncing) { + setTimeout(function () { + return _this2.move(times); + }, this.bouncingOptions.bounceSpeed); + } else { + this.bouncingAnimationPlaying = false; + this.marker.fire(bonceEndEvent); + } + } + /** + * @param step {number} + */ + + }, { + key: "makeMoveStep", + value: function makeMoveStep(step) { + this.marker._icon.style.cssText = this.iconStyles.toString(); + + if (this.marker._shadow) { + this.marker._shadow.style.cssText = this.shadowStyles.toString(); + } + } + /** + * Returns calculated array of animation steps. This function used to calculate both movement + * and resizing animations. + * + * @param height {number} height of movement or resizing (px) + * + * @return {number[]} array of animation steps + */ + + }], [{ + key: "calculateSteps", + value: function calculateSteps(height) { + /* Calculate the sequence of animation steps: + * steps = [1 .. height] concat [height-1 .. 0] + */ + var i = 1; + var steps = []; + + while (i <= height) { + steps.push(i++); + } + + i = height; + + while (i--) { + steps.push(i); + } + + return steps; + } + /** + * Returns calculated array of delays between animation start and the steps of animation. This + * function used to calculate both movement and resizing animations. Element with index i of + * this array contains the delay in milliseconds between animation start and the step number i. + * + * @param height {number} height of movement or resizing (px) + * @param speed {number} speed coefficient + * + * @return {number[]} array of delays before steps of animation + */ + + }, { + key: "calculateDelays", + value: function calculateDelays(height, speed) { + // Calculate delta time for bouncing animation + // Delta time to movement in one direction + var deltas = []; // time between steps of animation + + deltas[height] = speed; + deltas[0] = 0; + var i = height; + + while (--i) { + deltas[i] = Math.round(speed / (height - i)); + } // Delta time for movement in two directions + + + i = height; + + while (i--) { + deltas.push(deltas[i]); + } // Calculate move delays (cumulated deltas) + // TODO: instead of deltas.lenght write bounceHeight * 2 - 1 + + + var delays = []; // delays before steps from beginning of animation + + var totalDelay = 0; + + for (i = 0; i < deltas.length; i++) { + totalDelay += deltas[i]; + delays.push(totalDelay); + } + + return delays; + } + }]); + + return BouncingMotion; +}(); + +exports["default"] = BouncingMotion; + +_defineProperty(BouncingMotion, "cache", new _Cache["default"]()); \ No newline at end of file diff --git a/sut/frontend/build/leaflet/smooth_bounce/BouncingMotion3D.js b/sut/frontend/build/leaflet/smooth_bounce/BouncingMotion3D.js new file mode 100644 index 0000000..e3a623c --- /dev/null +++ b/sut/frontend/build/leaflet/smooth_bounce/BouncingMotion3D.js @@ -0,0 +1,373 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports["default"] = void 0; + +var _leaflet = require("leaflet"); + +var _BouncingMotion2 = _interopRequireDefault(require("./BouncingMotion.js")); + +var _Matrix3D = _interopRequireDefault(require("./Matrix3D.js")); + +var _line = require("./line.js"); + +function _interopRequireDefault(obj) { + return obj && obj.__esModule ? obj : {"default": obj}; +} + +function _typeof(obj) { + "@babel/helpers - typeof"; + if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { + _typeof = function _typeof(obj) { + return typeof obj; + }; + } else { + _typeof = function _typeof(obj) { + return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; + }; + } + return _typeof(obj); +} + +function _classCallCheck(instance, Constructor) { + if (!(instance instanceof Constructor)) { + throw new TypeError("Cannot call a class as a function"); + } +} + +function _defineProperties(target, props) { + for (var i = 0; i < props.length; i++) { + var descriptor = props[i]; + descriptor.enumerable = descriptor.enumerable || false; + descriptor.configurable = true; + if ("value" in descriptor) descriptor.writable = true; + Object.defineProperty(target, descriptor.key, descriptor); + } +} + +function _createClass(Constructor, protoProps, staticProps) { + if (protoProps) _defineProperties(Constructor.prototype, protoProps); + if (staticProps) _defineProperties(Constructor, staticProps); + return Constructor; +} + +function _get(target, property, receiver) { + if (typeof Reflect !== "undefined" && Reflect.get) { + _get = Reflect.get; + } else { + _get = function _get(target, property, receiver) { + var base = _superPropBase(target, property); + if (!base) return; + var desc = Object.getOwnPropertyDescriptor(base, property); + if (desc.get) { + return desc.get.call(receiver); + } + return desc.value; + }; + } + return _get(target, property, receiver || target); +} + +function _superPropBase(object, property) { + while (!Object.prototype.hasOwnProperty.call(object, property)) { + object = _getPrototypeOf(object); + if (object === null) break; + } + return object; +} + +function _inherits(subClass, superClass) { + if (typeof superClass !== "function" && superClass !== null) { + throw new TypeError("Super expression must either be null or a function"); + } + subClass.prototype = Object.create(superClass && superClass.prototype, { + constructor: { + value: subClass, + writable: true, + configurable: true + } + }); + if (superClass) _setPrototypeOf(subClass, superClass); +} + +function _setPrototypeOf(o, p) { + _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { + o.__proto__ = p; + return o; + }; + return _setPrototypeOf(o, p); +} + +function _createSuper(Derived) { + var hasNativeReflectConstruct = _isNativeReflectConstruct(); + return function _createSuperInternal() { + var Super = _getPrototypeOf(Derived), result; + if (hasNativeReflectConstruct) { + var NewTarget = _getPrototypeOf(this).constructor; + result = Reflect.construct(Super, arguments, NewTarget); + } else { + result = Super.apply(this, arguments); + } + return _possibleConstructorReturn(this, result); + }; +} + +function _possibleConstructorReturn(self, call) { + if (call && (_typeof(call) === "object" || typeof call === "function")) { + return call; + } + return _assertThisInitialized(self); +} + +function _assertThisInitialized(self) { + if (self === void 0) { + throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); + } + return self; +} + +function _isNativeReflectConstruct() { + if (typeof Reflect === "undefined" || !Reflect.construct) return false; + if (Reflect.construct.sham) return false; + if (typeof Proxy === "function") return true; + try { + Date.prototype.toString.call(Reflect.construct(Date, [], function () { + })); + return true; + } catch (e) { + return false; + } +} + +function _getPrototypeOf(o) { + _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { + return o.__proto__ || Object.getPrototypeOf(o); + }; + return _getPrototypeOf(o); +} + +function _defineProperty(obj, key, value) { + if (key in obj) { + Object.defineProperty(obj, key, {value: value, enumerable: true, configurable: true, writable: true}); + } else { + obj[key] = value; + } + return obj; +} + +var moveMatrixFormat = _Matrix3D["default"].identity().toFormat('d1', 'd2'); + +var resizeMatrixFormat = _Matrix3D["default"].identity().toFormat('b2', 'd1', 'd2'); + +var BouncingMotion3D = /*#__PURE__*/function (_BouncingMotion) { + _inherits(BouncingMotion3D, _BouncingMotion); + + var _super = _createSuper(BouncingMotion3D); + + /** + * Constructor. + * + * @param marker {Marker} marker + * @param position {Point} marker current position on the map canvas + * @param bouncingOptions {BouncingOptions} options of bouncing animation + */ + function BouncingMotion3D(marker, position, bouncingOptions) { + var _this; + + _classCallCheck(this, BouncingMotion3D); + + _this = _super.call(this, marker, position, bouncingOptions); + + _defineProperty(_assertThisInitialized(_this), "iconMoveTransforms", void 0); + + _defineProperty(_assertThisInitialized(_this), "iconResizeTransforms", void 0); + + _defineProperty(_assertThisInitialized(_this), "shadowMoveTransforms", void 0); + + _defineProperty(_assertThisInitialized(_this), "shadowResizeTransforms", void 0); + + _this.recalculateMotion(position); + + return _this; + } + + _createClass(BouncingMotion3D, [{ + key: "recalculateMotion", + value: function recalculateMotion(position) { + var _this$marker$getIcon, _this$marker$getIcon$, _this$marker, _this$marker$_iconObj, + _this$marker$_iconObj2; + + _get(_getPrototypeOf(BouncingMotion3D.prototype), "recalculateMotion", this).call(this, position); + + var iconHeight = ((_this$marker$getIcon = this.marker.getIcon()) === null || _this$marker$getIcon === void 0 ? void 0 : (_this$marker$getIcon$ = _this$marker$getIcon.options) === null || _this$marker$getIcon$ === void 0 ? void 0 : _this$marker$getIcon$.iconSize[1]) || ((_this$marker = this.marker) === null || _this$marker === void 0 ? void 0 : (_this$marker$_iconObj = _this$marker._iconObj) === null || _this$marker$_iconObj === void 0 ? void 0 : (_this$marker$_iconObj2 = _this$marker$_iconObj.options) === null || _this$marker$_iconObj2 === void 0 ? void 0 : _this$marker$_iconObj2.iconSize[1]); + var x = position.x, + y = position.y; + var _this$bouncingOptions = this.bouncingOptions, + bounceHeight = _this$bouncingOptions.bounceHeight, + contractHeight = _this$bouncingOptions.contractHeight, + shadowAngle = _this$bouncingOptions.shadowAngle; + this.iconMoveTransforms = BouncingMotion3D.calculateIconMoveTransforms(x, y, bounceHeight); + this.iconResizeTransforms = BouncingMotion3D.calculateResizeTransforms(x, y, iconHeight, contractHeight); + + if (this.marker._shadow) { + var _this$marker$getIcon2, _this$marker$getIcon3; + + this.shadowMoveTransforms = BouncingMotion3D.calculateShadowMoveTransforms(x, y, bounceHeight, shadowAngle); + var shadowHeight = (_this$marker$getIcon2 = this.marker.getIcon()) === null || _this$marker$getIcon2 === void 0 ? void 0 : (_this$marker$getIcon3 = _this$marker$getIcon2.options) === null || _this$marker$getIcon3 === void 0 ? void 0 : _this$marker$getIcon3.shadowSize[1]; + this.shadowResizeTransforms = BouncingMotion3D.calculateResizeTransforms(x, y, shadowHeight, contractHeight); + } + } + }, { + key: "afterMove", + value: function afterMove(times) { + if (this.bouncingOptions.elastic) { + this.resize(times); + } else { + _get(_getPrototypeOf(BouncingMotion3D.prototype), "afterMove", this).call(this, times); + } + } + }, { + key: "resize", + value: function resize(times) { + var _this2 = this; + + var nbResizeSteps = this.resizeSteps.length; + var i = nbResizeSteps; + + while (i--) { + setTimeout(function (step) { + return _this2.makeResizeStep(step); + }, this.resizeDelays[i], this.resizeSteps[i]); + } + + setTimeout(function () { + if (!_this2.isBouncing) { + _this2.bouncingAnimationPlaying = false; + } + }, this.resizeDelays[this.resizeSteps.length]); + setTimeout(function () { + if (_this2.isBouncing) { + _this2.move(times); + } else { + _this2.marker.fire('bounceend'); + } + }, this.resizeDelays[nbResizeSteps - 1]); + } + }, { + key: "makeMoveStep", + value: function makeMoveStep(step) { + this.marker._icon.style.cssText = this.iconStyles.withTransform(this.iconMoveTransforms[step]).toString(); + + if (this.marker._shadow) { + this.marker._shadow.style.cssText = this.shadowStyles.withTransform(this.shadowMoveTransforms[step]).toString(); + } + } + /** + * @param step {number} + */ + + }, { + key: "makeResizeStep", + value: function makeResizeStep(step) { + this.marker._icon.style.cssText = this.iconStyles.withTransform(this.iconResizeTransforms[step]).toString(); + + if (this.marker._shadow && this.bouncingOptions.shadowAngle) { + this.marker._shadow.style.cssText = this.shadowStyles.withTransform(this.shadowResizeTransforms[step]).toString(); + } + } + /** + * Returns calculated array of transformation definitions for the animation of icon movement. + * Function defines one transform for every pixel of shift of the icon from it's original y + * position. + * + * @param x {number} x coordinate of original position of the marker + * @param y {number} y coordinate of original position of the marker + * @param bounceHeight {number} height of bouncing (px) + * + * @return {string[]} array of transformation definitions + */ + + }], [{ + key: "calculateIconMoveTransforms", + value: function calculateIconMoveTransforms(x, y, bounceHeight) { + var transforms = []; + var deltaY = bounceHeight + 1; // Use fast inverse while loop to fill the array + + while (deltaY--) { + transforms[deltaY] = moveMatrixFormat(x, y - deltaY); + } + + return transforms; + } + /** + * Returns calculated array of transformation definitions for the animation of icon resizing. + * Function defines one transform for every pixel of resizing of marker from it's original + * height. + * + * @param x {number} x coordinate of original position of marker + * @param y {number} y coordinate of original position of marker + * @param height {number} original marker height (px) + * @param contractHeight {number} height of marker contraction (px) + * + * @return {string[]} array of transformation definitions + */ + + }, { + key: "calculateResizeTransforms", + value: function calculateResizeTransforms(x, y, height, contractHeight) { + var transforms = []; + var deltaHeight = contractHeight + 1; // Use fast inverse while loop to fill the array + + while (deltaHeight--) { + transforms[deltaHeight] = resizeMatrixFormat((height - deltaHeight) / height, x, y + deltaHeight); + } + + return transforms; + } + /** + * Returns calculated array of transformation definitions for the animation of shadow movement. + * Function defines one transform for every pixel of shift of the shadow from it's original + * position. + * + * @param x {number} x coordinate of original position of marker + * @param y {number} y coordinate of original position of marker + * @param bounceHeight {number} height of bouncing (px) + * @param angle {number|null} shadow inclination angle, if null shadow don't moves from it's + * initial position (radians) + * + * @return {string[]} array of transformation definitions + */ + + }, { + key: "calculateShadowMoveTransforms", + value: function calculateShadowMoveTransforms(x, y, bounceHeight) { + var angle = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null; + // TODO: check this method to know if bounceHeight + 1 is normal + var transforms = []; + var deltaY = bounceHeight + 1; + var points = []; + + if (angle != null) { + // important: 0 is not null + points = (0, _line.calculateLine)(x, y, angle, bounceHeight + 1); + } else { + for (var i = 0; i <= bounceHeight; i++) { + points[i] = [x, y]; + } + } // Use fast inverse while loop to fill the array + + + while (deltaY--) { + transforms[deltaY] = moveMatrixFormat(points[deltaY][0], points[deltaY][1]); + } + + return transforms; + } + }]); + + return BouncingMotion3D; +}(_BouncingMotion2["default"]); + +exports["default"] = BouncingMotion3D; \ No newline at end of file diff --git a/sut/frontend/build/leaflet/smooth_bounce/BouncingMotionCss3.js b/sut/frontend/build/leaflet/smooth_bounce/BouncingMotionCss3.js new file mode 100644 index 0000000..9d2bb65 --- /dev/null +++ b/sut/frontend/build/leaflet/smooth_bounce/BouncingMotionCss3.js @@ -0,0 +1,481 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports["default"] = void 0; + +var _leaflet = require("leaflet"); + +var _line = require("./line.js"); + +require("./bouncing.css"); + +var _BouncingOptions = _interopRequireDefault(require("./BouncingOptions.js")); + +var _Styles = _interopRequireDefault(require("./Styles.js")); + +function _interopRequireDefault(obj) { + return obj && obj.__esModule ? obj : {"default": obj}; +} + +function _slicedToArray(arr, i) { + return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); +} + +function _nonIterableRest() { + throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); +} + +function _unsupportedIterableToArray(o, minLen) { + if (!o) return; + if (typeof o === "string") return _arrayLikeToArray(o, minLen); + var n = Object.prototype.toString.call(o).slice(8, -1); + if (n === "Object" && o.constructor) n = o.constructor.name; + if (n === "Map" || n === "Set") return Array.from(o); + if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); +} + +function _arrayLikeToArray(arr, len) { + if (len == null || len > arr.length) len = arr.length; + for (var i = 0, arr2 = new Array(len); i < len; i++) { + arr2[i] = arr[i]; + } + return arr2; +} + +function _iterableToArrayLimit(arr, i) { + var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]; + if (_i == null) return; + var _arr = []; + var _n = true; + var _d = false; + var _s, _e; + try { + for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { + _arr.push(_s.value); + if (i && _arr.length === i) break; + } + } catch (err) { + _d = true; + _e = err; + } finally { + try { + if (!_n && _i["return"] != null) _i["return"](); + } finally { + if (_d) throw _e; + } + } + return _arr; +} + +function _arrayWithHoles(arr) { + if (Array.isArray(arr)) return arr; +} + +function _classCallCheck(instance, Constructor) { + if (!(instance instanceof Constructor)) { + throw new TypeError("Cannot call a class as a function"); + } +} + +function _defineProperties(target, props) { + for (var i = 0; i < props.length; i++) { + var descriptor = props[i]; + descriptor.enumerable = descriptor.enumerable || false; + descriptor.configurable = true; + if ("value" in descriptor) descriptor.writable = true; + Object.defineProperty(target, descriptor.key, descriptor); + } +} + +function _createClass(Constructor, protoProps, staticProps) { + if (protoProps) _defineProperties(Constructor.prototype, protoProps); + if (staticProps) _defineProperties(Constructor, staticProps); + Object.defineProperty(Constructor, "prototype", {writable: false}); + return Constructor; +} + +function _classPrivateFieldInitSpec(obj, privateMap, value) { + _checkPrivateRedeclaration(obj, privateMap); + privateMap.set(obj, value); +} + +function _checkPrivateRedeclaration(obj, privateCollection) { + if (privateCollection.has(obj)) { + throw new TypeError("Cannot initialize the same private elements twice on an object"); + } +} + +function _defineProperty(obj, key, value) { + if (key in obj) { + Object.defineProperty(obj, key, {value: value, enumerable: true, configurable: true, writable: true}); + } else { + obj[key] = value; + } + return obj; +} + +function _classPrivateFieldGet(receiver, privateMap) { + var descriptor = _classExtractFieldDescriptor(receiver, privateMap, "get"); + return _classApplyDescriptorGet(receiver, descriptor); +} + +function _classApplyDescriptorGet(receiver, descriptor) { + if (descriptor.get) { + return descriptor.get.call(receiver); + } + return descriptor.value; +} + +function _classPrivateFieldSet(receiver, privateMap, value) { + var descriptor = _classExtractFieldDescriptor(receiver, privateMap, "set"); + _classApplyDescriptorSet(receiver, descriptor, value); + return value; +} + +function _classExtractFieldDescriptor(receiver, privateMap, action) { + if (!privateMap.has(receiver)) { + throw new TypeError("attempted to " + action + " private field on non-instance"); + } + return privateMap.get(receiver); +} + +function _classApplyDescriptorSet(receiver, descriptor, value) { + if (descriptor.set) { + descriptor.set.call(receiver, value); + } else { + if (!descriptor.writable) { + throw new TypeError("attempted to set read only private field"); + } + descriptor.value = value; + } +} + +var animationNamePrefix = 'l-smooth-marker-bouncing-'; +var moveAnimationName = animationNamePrefix + 'move'; +var contractAnimationName = animationNamePrefix + 'contract'; +/* + * CSS3 animation runs faster than transform-based animation. We need to reduce speed in order + * to be compatible with old API. + */ + +var speedCoefficient = 0.8; + +/** + * Removes and then resets required classes on the HTML element. + * Used as hack to restart CSS3 animation. + * + * @param element {HTMLElement} HTML element + * @param classes {string[]} names of classes + */ + +function resetClasses(element, classes) { + classes.forEach(function (className) { + return _leaflet.DomUtil.removeClass(element, className); + }); + void element.offsetWidth; + classes.forEach(function (className) { + return _leaflet.DomUtil.addClass(element, className); + }); +} + +var _lastAnimationName = /*#__PURE__*/new WeakMap(); + +var _classes = /*#__PURE__*/new WeakMap(); + +var _eventCounter = /*#__PURE__*/new WeakMap(); + +var _times = /*#__PURE__*/new WeakMap(); + +var _listener = /*#__PURE__*/new WeakMap(); + +var BouncingMotionCss3 = /*#__PURE__*/function () { + /** + * Constructor. + * + * @param marker {Marker} marker + * @param position {Point} marker current position on the map canvas + * @param bouncingOptions {BouncingOptions} options of bouncing animation + */ + function BouncingMotionCss3(marker, position, bouncingOptions) { + var _this = this; + + _classCallCheck(this, BouncingMotionCss3); + + _defineProperty(this, "marker", void 0); + + _defineProperty(this, "position", void 0); + + _defineProperty(this, "bouncingOptions", void 0); + + _defineProperty(this, "isBouncing", false); + + _defineProperty(this, "iconStyles", void 0); + + _defineProperty(this, "shadowStyles", void 0); + + _defineProperty(this, "bouncingAnimationPlaying", false); + + _classPrivateFieldInitSpec(this, _lastAnimationName, { + writable: true, + value: contractAnimationName + }); + + _classPrivateFieldInitSpec(this, _classes, { + writable: true, + value: ['bouncing'] + }); + + _classPrivateFieldInitSpec(this, _eventCounter, { + writable: true, + value: void 0 + }); + + _classPrivateFieldInitSpec(this, _times, { + writable: true, + value: void 0 + }); + + _classPrivateFieldInitSpec(this, _listener, { + writable: true, + value: function value(event) { + return _this.onAnimationEnd(event); + } + }); + + this.marker = marker; + this.position = position; + this.updateBouncingOptions(bouncingOptions); + } + + _createClass(BouncingMotionCss3, [{ + key: "updateBouncingOptions", + value: function updateBouncingOptions(options) { + this.bouncingOptions = options instanceof _BouncingOptions["default"] ? options : this.bouncingOptions.override(options); + + if (this.bouncingOptions.elastic) { + _classPrivateFieldSet(this, _lastAnimationName, contractAnimationName); + + var index = _classPrivateFieldGet(this, _classes).indexOf('simple'); + + if (index > -1) { + _classPrivateFieldGet(this, _classes).splice(index, 1); + } + + if (this.marker._icon) { + _leaflet.DomUtil.removeClass(this.marker._icon, 'simple'); + } + } else { + _classPrivateFieldSet(this, _lastAnimationName, moveAnimationName); + + _classPrivateFieldGet(this, _classes).push('simple'); + } + + if (this.marker._icon) { + this.resetStyles(this.marker); + } + } + }, { + key: "onAnimationEnd", + value: function onAnimationEnd(event) { + var _this2 = this; + + if (event.animationName === _classPrivateFieldGet(this, _lastAnimationName)) { + var _this$eventCounter, _this$eventCounter2; + + _classPrivateFieldSet(this, _eventCounter, (_this$eventCounter = _classPrivateFieldGet(this, _eventCounter), _this$eventCounter2 = _this$eventCounter++, _this$eventCounter)), _this$eventCounter2; + + _classPrivateFieldSet(this, _eventCounter, _classPrivateFieldGet(this, _eventCounter) % 2); + + if (!_classPrivateFieldGet(this, _eventCounter)) { + var _this$times; + + if (this.isBouncing && (_classPrivateFieldGet(this, _times) === null || _classPrivateFieldSet(this, _times, (_this$times = _classPrivateFieldGet(this, _times), --_this$times)))) { + resetClasses(this.marker._icon, _classPrivateFieldGet(this, _classes)); + + if (this.marker._shadow && this.bouncingOptions.shadowAngle) { + resetClasses(this.marker._shadow, _classPrivateFieldGet(this, _classes)); + } + } else { + _classPrivateFieldGet(this, _classes).forEach(function (className) { + _leaflet.DomUtil.removeClass(_this2.marker._icon, className); + + if (_this2.marker._shadow) { + _leaflet.DomUtil.removeClass(_this2.marker._shadow, className); + } + }); + + this.bouncingAnimationPlaying = false; + this.marker.fire('bounceend'); + } + } + } + } + }, { + key: "resetStyles", + value: function resetStyles(marker) { + var _this$marker$getIcon, + _this$marker$getIcon$, + _this$marker, + _this$marker$_iconObj, + _this$marker$_iconObj2, + _this3 = this; + + this.marker = marker; + this.iconStyles = _Styles["default"].ofMarker(marker); + + if (marker._shadow) { + this.shadowStyles = _Styles["default"].parse(marker._shadow.style.cssText); + } + + var iconHeight = ((_this$marker$getIcon = this.marker.getIcon()) === null || _this$marker$getIcon === void 0 ? void 0 : (_this$marker$getIcon$ = _this$marker$getIcon.options) === null || _this$marker$getIcon$ === void 0 ? void 0 : _this$marker$getIcon$.iconSize[1]) || ((_this$marker = this.marker) === null || _this$marker === void 0 ? void 0 : (_this$marker$_iconObj = _this$marker._iconObj) === null || _this$marker$_iconObj === void 0 ? void 0 : (_this$marker$_iconObj2 = _this$marker$_iconObj.options) === null || _this$marker$_iconObj2 === void 0 ? void 0 : _this$marker$_iconObj2.iconSize[1]); + var iconAnimationParams = BouncingMotionCss3.animationParams(this.position, this.bouncingOptions, iconHeight); + this.iconStyles = this.iconStyles.withStyles(iconAnimationParams); + this.marker._icon.style.cssText = this.iconStyles.toString(); + + if (this.bouncingAnimationPlaying) { + resetClasses(this.marker._icon, _classPrivateFieldGet(this, _classes)); + + this.marker._icon.addEventListener('animationend', _classPrivateFieldGet(this, _listener)); + } + + var _this$bouncingOptions = this.bouncingOptions, + bounceHeight = _this$bouncingOptions.bounceHeight, + contractHeight = _this$bouncingOptions.contractHeight, + shadowAngle = _this$bouncingOptions.shadowAngle; + + if (this.marker._shadow) { + if (shadowAngle) { + var _this$marker$getIcon2, _this$marker$getIcon3; + + var _this$position = this.position, + x = _this$position.x, + y = _this$position.y; + var points = (0, _line.calculateLine)(x, y, shadowAngle, bounceHeight + 1); + + var _points$bounceHeight = _slicedToArray(points[bounceHeight], 2), + posXJump = _points$bounceHeight[0], + posYJump = _points$bounceHeight[1]; + + var shadowHeight = (_this$marker$getIcon2 = this.marker.getIcon()) === null || _this$marker$getIcon2 === void 0 ? void 0 : (_this$marker$getIcon3 = _this$marker$getIcon2.options) === null || _this$marker$getIcon3 === void 0 ? void 0 : _this$marker$getIcon3.shadowSize[1]; + var shadowScaleContract = BouncingMotionCss3.contractScale(shadowHeight, contractHeight); + this.shadowStyles = this.shadowStyles.withStyles(iconAnimationParams).withStyles({ + '--pos-x-jump': "".concat(posXJump, "px"), + '--pos-y-jump': "".concat(posYJump, "px"), + '--scale-contract': shadowScaleContract + }); + this.marker._shadow.style.cssText = this.shadowStyles.toString(); + + if (this.bouncingAnimationPlaying) { + resetClasses(this.marker._shadow, _classPrivateFieldGet(this, _classes)); + } + } else { + _classPrivateFieldGet(this, _classes).forEach(function (className) { + _leaflet.DomUtil.removeClass(_this3.marker._shadow, className); + }); + } + } + } + }, { + key: "bounce", + value: function bounce() { + var times = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null; + + _classPrivateFieldSet(this, _times, times); + + this.isBouncing = true; + + if (this.bouncingAnimationPlaying) { + return; + } + + _classPrivateFieldSet(this, _eventCounter, 0); + + this.bouncingAnimationPlaying = true; + resetClasses(this.marker._icon, _classPrivateFieldGet(this, _classes)); + + if (this.marker._shadow && this.bouncingOptions.shadowAngle) { + resetClasses(this.marker._shadow, _classPrivateFieldGet(this, _classes)); + } + + this.marker._icon.addEventListener('animationend', _classPrivateFieldGet(this, _listener)); + } + }, { + key: "stopBouncing", + value: function stopBouncing() { + this.isBouncing = false; + } + /** + * Calculates parameters of CSS3 animation of bouncing. + * + * @param position {Point} marker current position on the map canvas + * @param bouncingOptions {BouncingOptions} options of bouncing animation + * @param height {number} icons height + * @return {object} CSS3 animation parameters + */ + + }], [{ + key: "animationParams", + value: function animationParams(position, bouncingOptions, height) { + var x = position.x, + y = position.y; + var bounceHeight = bouncingOptions.bounceHeight, + contractHeight = bouncingOptions.contractHeight, + bounceSpeed = bouncingOptions.bounceSpeed, + contractSpeed = bouncingOptions.contractSpeed; + var scaleContract = BouncingMotionCss3.contractScale(height, contractHeight); + var durationJump = BouncingMotionCss3.calculateDuration(bounceHeight, bounceSpeed); + var durationContract = BouncingMotionCss3.calculateDuration(contractHeight, contractSpeed); + var delays = [0, durationJump, durationJump * 2, durationJump * 2 + durationContract]; + return { + '--pos-x': "".concat(x, "px"), + '--pos-y': "".concat(y, "px"), + '--pos-y-jump': "".concat(y - bounceHeight, "px"), + '--pos-y-contract': "".concat(y + contractHeight, "px"), + '--scale-contract': scaleContract, + '--duration-jump': "".concat(durationJump, "ms"), + '--duration-contract': "".concat(durationContract, "ms"), + '--delays': "0ms, ".concat(delays[1], "ms, ").concat(delays[2], "ms, ").concat(delays[3], "ms") + }; + } + /** + * Calculates scale of contracting. + * + * @param {number} height original height + * @param {number} contractHeight how much it must contract + * @return {number} contracting scale between 0 and 1 + */ + + }, { + key: "contractScale", + value: function contractScale(height, contractHeight) { + return (height - contractHeight) / height; + } + /** + * Calculates duration of animation. + * + * @param height {number} height of movement or resizing (px) + * @param speed {number} speed coefficient + * + * @return {number} duration of animation (ms) + */ + + }, { + key: "calculateDuration", + value: function calculateDuration(height, speed) { + var duration = Math.round(speed * speedCoefficient); + var i = height; + + while (--i) { + duration += Math.round(speed / (height - i)); + } + + return duration; + } + }]); + + return BouncingMotionCss3; +}(); + +exports["default"] = BouncingMotionCss3; \ No newline at end of file diff --git a/sut/frontend/build/leaflet/smooth_bounce/BouncingMotionSimple.js b/sut/frontend/build/leaflet/smooth_bounce/BouncingMotionSimple.js new file mode 100644 index 0000000..c4ee740 --- /dev/null +++ b/sut/frontend/build/leaflet/smooth_bounce/BouncingMotionSimple.js @@ -0,0 +1,267 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports["default"] = void 0; + +var _BouncingMotion2 = _interopRequireDefault(require("./BouncingMotion.js")); + +var _line = require("./line.js"); + +function _interopRequireDefault(obj) { + return obj && obj.__esModule ? obj : {"default": obj}; +} + +function _typeof(obj) { + "@babel/helpers - typeof"; + if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { + _typeof = function _typeof(obj) { + return typeof obj; + }; + } else { + _typeof = function _typeof(obj) { + return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; + }; + } + return _typeof(obj); +} + +function _classCallCheck(instance, Constructor) { + if (!(instance instanceof Constructor)) { + throw new TypeError("Cannot call a class as a function"); + } +} + +function _defineProperties(target, props) { + for (var i = 0; i < props.length; i++) { + var descriptor = props[i]; + descriptor.enumerable = descriptor.enumerable || false; + descriptor.configurable = true; + if ("value" in descriptor) descriptor.writable = true; + Object.defineProperty(target, descriptor.key, descriptor); + } +} + +function _createClass(Constructor, protoProps, staticProps) { + if (protoProps) _defineProperties(Constructor.prototype, protoProps); + if (staticProps) _defineProperties(Constructor, staticProps); + return Constructor; +} + +function _get(target, property, receiver) { + if (typeof Reflect !== "undefined" && Reflect.get) { + _get = Reflect.get; + } else { + _get = function _get(target, property, receiver) { + var base = _superPropBase(target, property); + if (!base) return; + var desc = Object.getOwnPropertyDescriptor(base, property); + if (desc.get) { + return desc.get.call(receiver); + } + return desc.value; + }; + } + return _get(target, property, receiver || target); +} + +function _superPropBase(object, property) { + while (!Object.prototype.hasOwnProperty.call(object, property)) { + object = _getPrototypeOf(object); + if (object === null) break; + } + return object; +} + +function _inherits(subClass, superClass) { + if (typeof superClass !== "function" && superClass !== null) { + throw new TypeError("Super expression must either be null or a function"); + } + subClass.prototype = Object.create(superClass && superClass.prototype, { + constructor: { + value: subClass, + writable: true, + configurable: true + } + }); + if (superClass) _setPrototypeOf(subClass, superClass); +} + +function _setPrototypeOf(o, p) { + _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { + o.__proto__ = p; + return o; + }; + return _setPrototypeOf(o, p); +} + +function _createSuper(Derived) { + var hasNativeReflectConstruct = _isNativeReflectConstruct(); + return function _createSuperInternal() { + var Super = _getPrototypeOf(Derived), result; + if (hasNativeReflectConstruct) { + var NewTarget = _getPrototypeOf(this).constructor; + result = Reflect.construct(Super, arguments, NewTarget); + } else { + result = Super.apply(this, arguments); + } + return _possibleConstructorReturn(this, result); + }; +} + +function _possibleConstructorReturn(self, call) { + if (call && (_typeof(call) === "object" || typeof call === "function")) { + return call; + } + return _assertThisInitialized(self); +} + +function _assertThisInitialized(self) { + if (self === void 0) { + throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); + } + return self; +} + +function _isNativeReflectConstruct() { + if (typeof Reflect === "undefined" || !Reflect.construct) return false; + if (Reflect.construct.sham) return false; + if (typeof Proxy === "function") return true; + try { + Date.prototype.toString.call(Reflect.construct(Date, [], function () { + })); + return true; + } catch (e) { + return false; + } +} + +function _getPrototypeOf(o) { + _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { + return o.__proto__ || Object.getPrototypeOf(o); + }; + return _getPrototypeOf(o); +} + +function _defineProperty(obj, key, value) { + if (key in obj) { + Object.defineProperty(obj, key, {value: value, enumerable: true, configurable: true, writable: true}); + } else { + obj[key] = value; + } + return obj; +} + +var BouncingMotionSimple = /*#__PURE__*/function (_BouncingMotion) { + _inherits(BouncingMotionSimple, _BouncingMotion); + + var _super = _createSuper(BouncingMotionSimple); + + /** + * Constructor. + * + * @param marker {Marker} marker + * @param position {Point} marker current position on the map canvas + * @param bouncingOptions {BouncingOptions} options of bouncing animation + */ + function BouncingMotionSimple(marker, position, bouncingOptions) { + var _this; + + _classCallCheck(this, BouncingMotionSimple); + + _this = _super.call(this, marker, position, bouncingOptions); + + _defineProperty(_assertThisInitialized(_this), "iconMovePoints", void 0); + + _defineProperty(_assertThisInitialized(_this), "shadowMovePoints", void 0); + + _this.recalculateMotion(position); + + return _this; + } + + _createClass(BouncingMotionSimple, [{ + key: "recalculateMotion", + value: function recalculateMotion(position) { + _get(_getPrototypeOf(BouncingMotionSimple.prototype), "recalculateMotion", this).call(this, position); + + var x = position.x, + y = position.y; + var _this$bouncingOptions = this.bouncingOptions, + bounceHeight = _this$bouncingOptions.bounceHeight, + shadowAngle = _this$bouncingOptions.shadowAngle; + this.iconMovePoints = BouncingMotionSimple.calculateIconMovePoints(x, y, bounceHeight); + this.shadowMovePoints = BouncingMotionSimple.calculateShadowMovePoints(x, y, bounceHeight, shadowAngle); + } + }, { + key: "makeMoveStep", + value: function makeMoveStep(step) { + _get(_getPrototypeOf(BouncingMotionSimple.prototype), "makeMoveStep", this).call(this, step); + + this.marker._icon.style.left = this.iconMovePoints[step][0] + 'px'; + this.marker._icon.style.top = this.iconMovePoints[step][1] + 'px'; + + if (this.marker._shadow) { + this.marker._shadow.style.left = this.shadowMovePoints[step][0] + 'px'; + this.marker._shadow.style.top = this.shadowMovePoints[step][1] + 'px'; + } + } + /** + * Returns calculated array of points for icon movement. Used to animate markers in browsers + * that doesn't support 'transform' attribute. + * + * @param x {number} x coordinate of original position of the marker + * @param y {number} y coordinate of original position of the marker + * @param bounceHeight {number} height of bouncing (px) + * + * @return {[number, number][]} array of points + */ + + }], [{ + key: "calculateIconMovePoints", + value: function calculateIconMovePoints(x, y, bounceHeight) { + var deltaHeight = bounceHeight + 1; + var points = []; // Use fast inverse while loop to fill the array + + while (deltaHeight--) { + points[deltaHeight] = [x, y - deltaHeight]; + } + + return points; + } + /** + * Returns calculated array of points for shadow movement. Used to animate markers in browsers + * that doesn't support 'transform' attribute. + * + * @param x {number} x coordinate of original position of the marker + * @param y {number} y coordinate of original position of the marker + * @param bounceHeight {number} height of bouncing (px) + * @param angle {number} shadow inclination angle, if null shadow don't moves from it's initial + * position (radians) + * + * @return {[number, number][]} array of points + */ + + }, { + key: "calculateShadowMovePoints", + value: function calculateShadowMovePoints(x, y, bounceHeight, angle) { + if (angle != null) { + // important: 0 is not null + return (0, _line.calculateLine)(x, y, angle, bounceHeight + 1); + } else { + var points = []; + + for (var i = 0; i <= bounceHeight; i++) { + points[i] = [x, y]; + } + + return points; + } + } + }]); + + return BouncingMotionSimple; +}(_BouncingMotion2["default"]); + +exports["default"] = BouncingMotionSimple; \ No newline at end of file diff --git a/sut/frontend/build/leaflet/smooth_bounce/BouncingOptions.js b/sut/frontend/build/leaflet/smooth_bounce/BouncingOptions.js new file mode 100644 index 0000000..6a377a0 --- /dev/null +++ b/sut/frontend/build/leaflet/smooth_bounce/BouncingOptions.js @@ -0,0 +1,105 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports["default"] = void 0; + +function _classCallCheck(instance, Constructor) { + if (!(instance instanceof Constructor)) { + throw new TypeError("Cannot call a class as a function"); + } +} + +function _defineProperties(target, props) { + for (var i = 0; i < props.length; i++) { + var descriptor = props[i]; + descriptor.enumerable = descriptor.enumerable || false; + descriptor.configurable = true; + if ("value" in descriptor) descriptor.writable = true; + Object.defineProperty(target, descriptor.key, descriptor); + } +} + +function _createClass(Constructor, protoProps, staticProps) { + if (protoProps) _defineProperties(Constructor.prototype, protoProps); + if (staticProps) _defineProperties(Constructor, staticProps); + Object.defineProperty(Constructor, "prototype", {writable: false}); + return Constructor; +} + +function _defineProperty(obj, key, value) { + if (key in obj) { + Object.defineProperty(obj, key, {value: value, enumerable: true, configurable: true, writable: true}); + } else { + obj[key] = value; + } + return obj; +} + +var BouncingOptions = /*#__PURE__*/function () { + /** + * How high marker can bounce (px) + * @type {number} + */ + + /** + * How much marker can contract (px) + * @type {number} + */ + + /** + * Bouncing speed coefficient + * @type {number} + */ + + /** + * Contracting speed coefficient + * @type {number} + */ + + /** + * Shadow inclination angle(radians); null to cancel shadow movement + * @type {number} + */ + + /** + * Activate contract animation + * @type {boolean} + */ + + /** + * Many markers can bounce in the same time + * @type {boolean} + */ + function BouncingOptions(options) { + _classCallCheck(this, BouncingOptions); + + _defineProperty(this, "bounceHeight", 15); + + _defineProperty(this, "contractHeight", 12); + + _defineProperty(this, "bounceSpeed", 52); + + _defineProperty(this, "contractSpeed", 52); + + _defineProperty(this, "shadowAngle", -Math.PI / 4); + + _defineProperty(this, "elastic", true); + + _defineProperty(this, "exclusive", false); + + options && Object.assign(this, options); + } + + _createClass(BouncingOptions, [{ + key: "override", + value: function override(options) { + return Object.assign(new BouncingOptions(this), options); + } + }]); + + return BouncingOptions; +}(); + +exports["default"] = BouncingOptions; \ No newline at end of file diff --git a/sut/frontend/build/leaflet/smooth_bounce/Cache.js b/sut/frontend/build/leaflet/smooth_bounce/Cache.js new file mode 100644 index 0000000..c1361be --- /dev/null +++ b/sut/frontend/build/leaflet/smooth_bounce/Cache.js @@ -0,0 +1,65 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports["default"] = void 0; + +function _classCallCheck(instance, Constructor) { + if (!(instance instanceof Constructor)) { + throw new TypeError("Cannot call a class as a function"); + } +} + +function _defineProperties(target, props) { + for (var i = 0; i < props.length; i++) { + var descriptor = props[i]; + descriptor.enumerable = descriptor.enumerable || false; + descriptor.configurable = true; + if ("value" in descriptor) descriptor.writable = true; + Object.defineProperty(target, descriptor.key, descriptor); + } +} + +function _createClass(Constructor, protoProps, staticProps) { + if (protoProps) _defineProperties(Constructor.prototype, protoProps); + if (staticProps) _defineProperties(Constructor, staticProps); + return Constructor; +} + +function _defineProperty(obj, key, value) { + if (key in obj) { + Object.defineProperty(obj, key, {value: value, enumerable: true, configurable: true, writable: true}); + } else { + obj[key] = value; + } + return obj; +} + +var Cache = /*#__PURE__*/function () { + function Cache() { + _classCallCheck(this, Cache); + + _defineProperty(this, "cache", {}); + } + + _createClass(Cache, [{ + key: "get", + + /** + * If item with supplied {@code key} is present in cache, returns it, otherwise executes + * {@code supplier} function and caches the result. + * + * @param key {String} key of the cache + * @param supplier {function} item supplier + * @return {Object} item + */ + value: function get(key, supplier) { + return this.cache[key] || (this.cache[key] = supplier.apply()); + } + }]); + + return Cache; +}(); + +exports["default"] = Cache; \ No newline at end of file diff --git a/sut/frontend/build/leaflet/smooth_bounce/MarkerPrototypeExt.js b/sut/frontend/build/leaflet/smooth_bounce/MarkerPrototypeExt.js new file mode 100644 index 0000000..a0e80ad --- /dev/null +++ b/sut/frontend/build/leaflet/smooth_bounce/MarkerPrototypeExt.js @@ -0,0 +1,121 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports["default"] = void 0; + +var _leaflet = require("leaflet"); + +var _BouncingOptions = _interopRequireDefault(require("./BouncingOptions.js")); + +var _Orchestration = _interopRequireDefault(require("./Orchestration.js")); + +function _interopRequireDefault(obj) { + return obj && obj.__esModule ? obj : {"default": obj}; +} + +var oldSetPos = _leaflet.Marker.prototype._setPos; +var oldOnAdd = _leaflet.Marker.prototype.onAdd; +var oldSetIcon = _leaflet.Marker.prototype.setIcon; +var _default = { + /** Bouncing options shared by all markers. */ + _bouncingOptions: new _BouncingOptions["default"](), + _orchestration: new _Orchestration["default"](), + + /** + * Registers options of bouncing animation for this marker. After registration of options for + * this marker, it will ignore changes of default options. Function automatically recalculates + * animation steps and delays. + * + * @param options {BouncingOptions|object} options object + * @return {Marker} this marker + */ + setBouncingOptions: function setBouncingOptions(options) { + this._bouncingMotion.updateBouncingOptions(options); + + return this; + }, + + /** + * Returns true if this marker is bouncing. If this marker is not bouncing returns false. + * @return {boolean} true if marker is bouncing, false if not + */ + isBouncing: function isBouncing() { + return this._bouncingMotion.isBouncing; + }, + + /** + * Starts bouncing of this marker. + * @param times {number|null} number of times the marker must to bounce + * @return {Marker} this marker + */ + bounce: function bounce() { + var times = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null; + + this._bouncingMotion.bounce(times); + + var exclusive = this._bouncingMotion.bouncingOptions.exclusive; + + _leaflet.Marker.prototype._orchestration.addBouncingMarker(this, exclusive); + + return this; + }, + + /** + * Stops bouncing of this marker. + * Note: the bouncing not stops immediately after the call of this method. + * Instead, the animation is executed until marker returns to it's original position and takes + * it's full size. + * + * @return {Marker} this marker + */ + stopBouncing: function stopBouncing() { + this._bouncingMotion.stopBouncing(); + + _leaflet.Marker.prototype._orchestration.removeBouncingMarker(this); + + return this; + }, + + /** + * Starts/stops bouncing of this marker. + * @return {Marker} marker + */ + toggleBouncing: function toggleBouncing() { + if (this._bouncingMotion.isBouncing) { + this.stopBouncing(); + } else { + this.bounce(); + } + + return this; + }, + isRealMarker: function isRealMarker() { + return this.__proto__ === _leaflet.Marker.prototype; + }, + _setPos: function _setPos(position) { + oldSetPos.call(this, position); + + if (this.isRealMarker()) { + this._bouncingMotion.position = position; + + this._bouncingMotion.resetStyles(this); + } + }, + onAdd: function onAdd(map) { + oldOnAdd.call(this, map); + + if (this.isRealMarker()) { + this._bouncingMotion.resetStyles(this); + } + }, + setIcon: function setIcon(icon) { + oldSetIcon.call(this, icon); + + if (this.isRealMarker() && this._icon) { + this._bouncingMotion.resetStyles(this); + } + } +}; +exports["default"] = _default; \ No newline at end of file diff --git a/sut/frontend/build/leaflet/smooth_bounce/Matrix3D.js b/sut/frontend/build/leaflet/smooth_bounce/Matrix3D.js new file mode 100644 index 0000000..c06f222 --- /dev/null +++ b/sut/frontend/build/leaflet/smooth_bounce/Matrix3D.js @@ -0,0 +1,166 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports["default"] = void 0; + +function _toConsumableArray(arr) { + return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); +} + +function _nonIterableSpread() { + throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); +} + +function _unsupportedIterableToArray(o, minLen) { + if (!o) return; + if (typeof o === "string") return _arrayLikeToArray(o, minLen); + var n = Object.prototype.toString.call(o).slice(8, -1); + if (n === "Object" && o.constructor) n = o.constructor.name; + if (n === "Map" || n === "Set") return Array.from(o); + if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); +} + +function _iterableToArray(iter) { + if (typeof Symbol !== "undefined" && Symbol.iterator in Object(iter)) return Array.from(iter); +} + +function _arrayWithoutHoles(arr) { + if (Array.isArray(arr)) return _arrayLikeToArray(arr); +} + +function _arrayLikeToArray(arr, len) { + if (len == null || len > arr.length) len = arr.length; + for (var i = 0, arr2 = new Array(len); i < len; i++) { + arr2[i] = arr[i]; + } + return arr2; +} + +function _classCallCheck(instance, Constructor) { + if (!(instance instanceof Constructor)) { + throw new TypeError("Cannot call a class as a function"); + } +} + +function _defineProperties(target, props) { + for (var i = 0; i < props.length; i++) { + var descriptor = props[i]; + descriptor.enumerable = descriptor.enumerable || false; + descriptor.configurable = true; + if ("value" in descriptor) descriptor.writable = true; + Object.defineProperty(target, descriptor.key, descriptor); + } +} + +function _createClass(Constructor, protoProps, staticProps) { + if (protoProps) _defineProperties(Constructor.prototype, protoProps); + if (staticProps) _defineProperties(Constructor, staticProps); + return Constructor; +} + +function _classPrivateFieldGet(receiver, privateMap) { + var descriptor = privateMap.get(receiver); + if (!descriptor) { + throw new TypeError("attempted to get private field on non-instance"); + } + if (descriptor.get) { + return descriptor.get.call(receiver); + } + return descriptor.value; +} + +function _classPrivateFieldSet(receiver, privateMap, value) { + var descriptor = privateMap.get(receiver); + if (!descriptor) { + throw new TypeError("attempted to set private field on non-instance"); + } + if (descriptor.set) { + descriptor.set.call(receiver, value); + } else { + if (!descriptor.writable) { + throw new TypeError("attempted to set read only private field"); + } + descriptor.value = value; + } + return value; +} + +var rowMap = { + 'a': 0, + 'b': 1, + 'c': 2, + 'd': 3 +}; +var zeros = Array(16).fill(0); +var _identity = [1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1]; +/** + * @see https://developer.mozilla.org/en-US/docs/Web/CSS/transform-function/matrix3d + */ + +var _matrix = new WeakMap(); + +var Matrix3D = /*#__PURE__*/function () { + function Matrix3D() { + var matrix = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : zeros; + + _classCallCheck(this, Matrix3D); + + _matrix.set(this, { + writable: true, + value: void 0 + }); + + _classPrivateFieldSet(this, _matrix, _toConsumableArray(matrix)); + } + + _createClass(Matrix3D, [{ + key: "toFormat", + value: function toFormat() { + for (var _len = arguments.length, placeholders = new Array(_len), _key = 0; _key < _len; _key++) { + placeholders[_key] = arguments[_key]; + } + + placeholders = placeholders.map(Matrix3D.valueNameToIndex); + var nextPlaceholderIndex = 0; + + var fnBody = _classPrivateFieldGet(this, _matrix).map(function (value, index) { + return index === placeholders[nextPlaceholderIndex] ? "'+arguments[".concat(nextPlaceholderIndex++, "]+'") : value; + }).join(','); + + fnBody = "return ' matrix3d(".concat(fnBody, ") ';"); + + function formatFn() { + return Function.apply(this, [fnBody]); + } + + formatFn.prototype = Function.prototype; + return new formatFn(); + } + }, { + key: "toString", + value: function toString() { + return " matrix3d(".concat(_classPrivateFieldGet(this, _matrix).join(','), ") "); + } + }], [{ + key: "zeros", + value: function zeros() { + return new Matrix3D(); + } + }, { + key: "identity", + value: function identity() { + return new Matrix3D(_identity); + } + }, { + key: "valueNameToIndex", + value: function valueNameToIndex(valueName) { + return rowMap[valueName[0]] * 4 + parseInt(valueName[1]) - 1; + } + }]); + + return Matrix3D; +}(); + +exports["default"] = Matrix3D; \ No newline at end of file diff --git a/sut/frontend/build/leaflet/smooth_bounce/Orchestration.js b/sut/frontend/build/leaflet/smooth_bounce/Orchestration.js new file mode 100644 index 0000000..b9316da --- /dev/null +++ b/sut/frontend/build/leaflet/smooth_bounce/Orchestration.js @@ -0,0 +1,147 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports["default"] = void 0; + +var _leaflet = require("leaflet"); + +function _classCallCheck(instance, Constructor) { + if (!(instance instanceof Constructor)) { + throw new TypeError("Cannot call a class as a function"); + } +} + +function _defineProperties(target, props) { + for (var i = 0; i < props.length; i++) { + var descriptor = props[i]; + descriptor.enumerable = descriptor.enumerable || false; + descriptor.configurable = true; + if ("value" in descriptor) descriptor.writable = true; + Object.defineProperty(target, descriptor.key, descriptor); + } +} + +function _createClass(Constructor, protoProps, staticProps) { + if (protoProps) _defineProperties(Constructor.prototype, protoProps); + if (staticProps) _defineProperties(Constructor, staticProps); + Object.defineProperty(Constructor, "prototype", {writable: false}); + return Constructor; +} + +function _classPrivateFieldInitSpec(obj, privateMap, value) { + _checkPrivateRedeclaration(obj, privateMap); + privateMap.set(obj, value); +} + +function _checkPrivateRedeclaration(obj, privateCollection) { + if (privateCollection.has(obj)) { + throw new TypeError("Cannot initialize the same private elements twice on an object"); + } +} + +function _classPrivateFieldGet(receiver, privateMap) { + var descriptor = _classExtractFieldDescriptor(receiver, privateMap, "get"); + return _classApplyDescriptorGet(receiver, descriptor); +} + +function _classExtractFieldDescriptor(receiver, privateMap, action) { + if (!privateMap.has(receiver)) { + throw new TypeError("attempted to " + action + " private field on non-instance"); + } + return privateMap.get(receiver); +} + +function _classApplyDescriptorGet(receiver, descriptor) { + if (descriptor.get) { + return descriptor.get.call(receiver); + } + return descriptor.value; +} + +var _bouncingMarkers = /*#__PURE__*/new WeakMap(); + +var Orchestration = /*#__PURE__*/function () { + function Orchestration() { + _classCallCheck(this, Orchestration); + + _classPrivateFieldInitSpec(this, _bouncingMarkers, { + writable: true, + value: [] + }); + } + + _createClass(Orchestration, [{ + key: "getBouncingMarkers", + value: function getBouncingMarkers() { + return _classPrivateFieldGet(this, _bouncingMarkers); + } + /** + * Adds the marker to the list of bouncing markers. + * If flag 'exclusive' is set to true, stops all bouncing markers before. + * + * @param marker {Marker} marker object + * @param exclusive {boolean} flag of exclusive bouncing. If set to true, stops the bouncing + * of all other markers. + */ + + }, { + key: "addBouncingMarker", + value: function addBouncingMarker(marker, exclusive) { + if (exclusive || marker._bouncingMotion.bouncingOptions.exclusive) { + this.stopAllBouncingMarkers(); + } else { + this.stopExclusiveMarkerBouncing(); + } + + _classPrivateFieldGet(this, _bouncingMarkers).push(marker); + } + /** + * Stops the bouncing of exclusive marker. + */ + + }, { + key: "stopExclusiveMarkerBouncing", + value: function stopExclusiveMarkerBouncing() { + var exclusiveMarker = _classPrivateFieldGet(this, _bouncingMarkers).find(function (marker) { + return marker._bouncingMotion.bouncingOptions.exclusive; + }); + + if (exclusiveMarker) { + exclusiveMarker.stopBouncing(); + } + } + /** + * Removes the marker from the list of bouncing markers. + * @param marker {Marker} marker + */ + + }, { + key: "removeBouncingMarker", + value: function removeBouncingMarker(marker) { + var i = _classPrivateFieldGet(this, _bouncingMarkers).indexOf(marker); + + if (~i) { + _classPrivateFieldGet(this, _bouncingMarkers).splice(i, 1); + } + } + /** + * Stops the bouncing of all currently bouncing markers. Purge the array of bouncing markers. + */ + + }, { + key: "stopAllBouncingMarkers", + value: function stopAllBouncingMarkers() { + var marker; + + while (marker = _classPrivateFieldGet(this, _bouncingMarkers).shift()) { + marker.stopBouncing(); + } + } + }]); + + return Orchestration; +}(); + +exports["default"] = Orchestration; \ No newline at end of file diff --git a/sut/frontend/build/leaflet/smooth_bounce/SmoothMarkerBouncing.js b/sut/frontend/build/leaflet/smooth_bounce/SmoothMarkerBouncing.js new file mode 100644 index 0000000..5905b86 --- /dev/null +++ b/sut/frontend/build/leaflet/smooth_bounce/SmoothMarkerBouncing.js @@ -0,0 +1,96 @@ +"use strict"; + +function _typeof(obj) { + "@babel/helpers - typeof"; + return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { + return typeof obj; + } : function (obj) { + return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; + }, _typeof(obj); +} + +var _leaflet = _interopRequireWildcard(require("leaflet")); + +var _BouncingOptions = _interopRequireDefault(require("./BouncingOptions.js")); + +var _MarkerPrototypeExt = _interopRequireDefault(require("./MarkerPrototypeExt.js")); + +var _BouncingMotionCss = _interopRequireDefault(require("./BouncingMotionCss3.js")); + +function _interopRequireDefault(obj) { + return obj && obj.__esModule ? obj : {"default": obj}; +} + +function _getRequireWildcardCache(nodeInterop) { + if (typeof WeakMap !== "function") return null; + var cacheBabelInterop = new WeakMap(); + var cacheNodeInterop = new WeakMap(); + return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { + return nodeInterop ? cacheNodeInterop : cacheBabelInterop; + })(nodeInterop); +} + +function _interopRequireWildcard(obj, nodeInterop) { + if (!nodeInterop && obj && obj.__esModule) { + return obj; + } + if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { + return {"default": obj}; + } + var cache = _getRequireWildcardCache(nodeInterop); + if (cache && cache.has(obj)) { + return cache.get(obj); + } + var newObj = {}; + var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; + for (var key in obj) { + if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { + var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; + if (desc && (desc.get || desc.set)) { + Object.defineProperty(newObj, key, desc); + } else { + newObj[key] = obj[key]; + } + } + } + newObj["default"] = obj; + if (cache) { + cache.set(obj, newObj); + } + return newObj; +} + +_leaflet["default"].Marker.include(_MarkerPrototypeExt["default"]); +/** + * Registers default options of bouncing animation. + * @param options {BouncingOptions|object} object with options + */ + + +_leaflet["default"].Marker.setBouncingOptions = function (options) { + _leaflet.Marker.prototype._bouncingOptions = options instanceof _BouncingOptions["default"] ? options : new _BouncingOptions["default"](options); +}; +/** + * Returns array of currently bouncing markers. + * @return {Marker[]} array of bouncing markers + */ + + +_leaflet["default"].Marker.getBouncingMarkers = function () { + _leaflet.Marker.prototype._orchestration.getBouncingMarkers(); +}; +/** + * Stops the bouncing of all currently bouncing markers. Purge the array of bouncing markers. + */ + + +_leaflet["default"].Marker.stopAllBouncingMarkers = function () { + _leaflet.Marker.prototype._orchestration.stopAllBouncingMarkers(); +}; + +_leaflet["default"].Marker.addInitHook(function () { + if (this.isRealMarker()) { + var bouncingOptions = new _BouncingOptions["default"](_leaflet.Marker.prototype._bouncingOptions); + this._bouncingMotion = new _BouncingMotionCss["default"](this, new _leaflet.Point(0, 0), bouncingOptions); + } +}); \ No newline at end of file diff --git a/sut/frontend/build/leaflet/smooth_bounce/Styles.js b/sut/frontend/build/leaflet/smooth_bounce/Styles.js new file mode 100644 index 0000000..3b9d710 --- /dev/null +++ b/sut/frontend/build/leaflet/smooth_bounce/Styles.js @@ -0,0 +1,106 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports["default"] = void 0; + +function _classCallCheck(instance, Constructor) { + if (!(instance instanceof Constructor)) { + throw new TypeError("Cannot call a class as a function"); + } +} + +function _defineProperties(target, props) { + for (var i = 0; i < props.length; i++) { + var descriptor = props[i]; + descriptor.enumerable = descriptor.enumerable || false; + descriptor.configurable = true; + if ("value" in descriptor) descriptor.writable = true; + Object.defineProperty(target, descriptor.key, descriptor); + } +} + +function _createClass(Constructor, protoProps, staticProps) { + if (protoProps) _defineProperties(Constructor.prototype, protoProps); + if (staticProps) _defineProperties(Constructor, staticProps); + Object.defineProperty(Constructor, "prototype", {writable: false}); + return Constructor; +} + +/** Regex to parse style definitions. */ +var regStyle = /([\w-]+): ([^;]+);/g; + +var Styles = /*#__PURE__*/function () { + function Styles(styles) { + _classCallCheck(this, Styles); + + styles && Object.assign(this, styles); + } + + _createClass(Styles, [{ + key: "findOpacity", + value: function findOpacity(options) { + this.opacity = (options === null || options === void 0 ? void 0 : options.opacityWhenUnclustered // used by cluster plugin + ) || (options === null || options === void 0 ? void 0 : options.opacity) || 1; + } + /** + * Creates a copy of styles merged with provided 'styles'. + * @param {Object} styles object with styles to merge + * @return {Styles} copy of styles + */ + + }, { + key: "withStyles", + value: function withStyles(styles) { + var copy = new Styles(this); + copy && Object.assign(copy, styles); + return copy; + } + }, { + key: "toString", + value: function toString() { + return Object.entries(this).map(function (entry) { + return "".concat(entry[0], ": ").concat(entry[1], ";"); + }).join(' '); + } + /** + * Parses cssText attribute into Styles object. + * @param cssText {string} cssText string + * @return {Styles} Styles object + */ + + }], [{ + key: "parse", + value: function parse(cssText) { + var styles = {}; + var match = regStyle.exec(cssText); + + while (match) { + styles[match[1]] = match[2]; + match = regStyle.exec(cssText); + } + + delete styles['z-index']; + delete styles['opacity']; + styles['outline'] = 'none'; + return new Styles(styles); + } + /** + * @param marker {Marker} + */ + + }, { + key: "ofMarker", + value: function ofMarker(marker) { + var styles = Styles.parse(marker._icon.style.cssText); + styles.findOpacity(marker.options); + styles['z-index'] = marker._zIndex; + return styles; + } + }]); + + return Styles; +}(); + +exports["default"] = Styles; \ No newline at end of file diff --git a/sut/frontend/build/leaflet/smooth_bounce/bundle.min.js b/sut/frontend/build/leaflet/smooth_bounce/bundle.min.js new file mode 100644 index 0000000..1395c41 --- /dev/null +++ b/sut/frontend/build/leaflet/smooth_bounce/bundle.min.js @@ -0,0 +1 @@ +!function(M){"use strict";function n(n){return n&&"object"==typeof n&&"default"in n?n:{default:n}}var t=n(M);function o(n,t){if(!(n instanceof t))throw new TypeError("Cannot call a class as a function")}function e(n,t){for(var i=0;in.length)&&(t=n.length);for(var i=0,e=new Array(t);i dy ? dx : -dy) / 2, + e2, + p = [], + i = 0; + + while (true) { + p.push([x, y]); + i++; + if (i === length) break; + e2 = err; + + if (e2 > -dx) { + err -= dy; + x += sx; + } + + if (e2 < dy) { + err += dx; + y += sy; + } + } + + return p; +} \ No newline at end of file diff --git a/sut/frontend/build/logo.png b/sut/frontend/build/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..1e407d58c0ac62147de344c7c6acab9bed2b398c GIT binary patch literal 474442 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 rIrBbio<-@% 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

2D2%@;ZBGx81A{hu!0H;ra0QB^afhv5T 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

~#r%2JxPM>?wf)a=hp&I7Q6> zevxcR2kOuH+@n4@>#4wv&RL>YLeiAdfn^+wrsbO0lMX^93Dj(|y=ycwv2!NjT+l@# zO0>ZBTY8iA&I8gAasNC^HcS;Y)7FcZ*iWSpJqP(5ridvOOG}=QBZc5Lhv$>&^XE)> zt_FB^1>LOz2i*TsswV-)!7lnU-rBxqDTNrLLsjrjWuuxhnb@7g9<=hXoWyV zK(T_ree0(6bO%(#(VsHdQwd!ADFe+RMcmci963VE%5rFdygMdU?Hyfo2DAW!U!)`g zQi&s-ThcrXbFLtY#t4`18AztrhSsJg$`ncT@1JE4 zE`^ndKgnCl2U3?oUXouL)~u=yQx}_HqVv28X^Z7KlvFYBhlF$t#5gNA4;wWSdg*oF zx^8`J8}!eXCmn#o&P*B`9e6`9_iyZ=&+h!f^3L`y=C3c$w>CBgq%3o`il+2MBA9d> z+ws$vsH^4z%l3=zQJcU3;G9*_F_ZKm#vFo7p_lrEB%^7Jp=`c1>esnskp#X(4$InG9L1r45uzJx`aXF;aMVM$VdO9uLqeQ0zU)r+`RYZ$hE zEK944hV)lW_Rd&+$G!LBJTa1Nf-H>gGzX@CWG3vV&NMPaG=rah)Y?8lcNlVfQ{JP)QI6ps4w|!h(~B4Ss6Bd{;$G`qi13r zFD-Kxz3>;p-d%^n+wQ-CjCngu_91Fx8BxwvMKGho>G46p0>~VYTHgMatHXyLdKZSC z+I#OHZ3;(m{sWN=WR~Q!DvU~9z*3NPQg|k^*VBLpmvi8oo2mcmoY_Zl<~B%#{n|P^ zGae7Otqx`>)=}LI8ZsT9hBB(0VZfIN4DYz>MtX1=uFkc@fQi>dbOZaV#HHjW>tsr7 z3Ujkj;$G1arl%*MVV$S5w^!Fy#o4$0hc6K%@B~;diC%gr9hjf5PPI_622uxYi;n@J z)1dsxB;Mc5PBylmEjbY%#A}V6aQwVZ8BZ0^Mj+YTdD~54l4oVmVDPG;?(HAo_5M80 zBWC}!0Ac9uv$htizz2vmpCc0-BTpxTtVotQuC^pZBozVCL)3n)%9xHOL;O#-Bh?mT&|sLM1lgz+Pk_ zF{*0DF92T>De$Z~6WpsUMyyu+Y{{0AMP1VbfzXL-+z-!VbaW){0ndcUhHZE{Vz~%D zciG-bQi`}FvF>L54)HJ$D^T(g`{cc-rnhd@%5a{2*3i}wpQW4tM_gJm5f2a*&_Tz^ zRGj%DoVUnIFU;az&Z#}t3zP>81h;Ko!SuUA9C$glDw$z174TMQ9bAQ@`kPd@c5 zjffGE3Ok{* z;cU1F+#DrPAe`bt6b0$Rh8aM*RwW=(H4s6YXc2Xed|5V9uF1RplJd;J9Qk)WS53#z|Is~=v18Z zXBC3-OcnCE63cu|x(CF)4isL@tnE^=@P-Qn5Zv3Lqo<<{s3=FZ3}iTq;C%@)ZVe>Y z(TR$1p{nqf4Oq& zmwv&G{sv#av4b8M7%3&aUy1Tls<4G52>V5&7A}S}izxaP21(e!Kf+X_C5)kvln{{4 z(t+J>&Pkw&G79S|iH+ibgjjT>1581&4u`TgBfu_G=Q$D$GrB@rnb-zkG?~n1%473L zkTIhngyf;H_HJB^lJ&(*rmpl*+i~WnDqSflO1^1OarPMTL25m@7{FO-Qde%;7+a1s zlo}J>CLBF+j&>Xvu|&%3U+U2?967KC8yd}A4o@;0X46`RGw>c7Z6WJSvR5V55>8?#q_1hzAh)jgmDBFHHcq z9yxLbP4T^m$3vDNJLpCP#C!GtPYwX7ojo5eT{snPxpoVh)GN^#XKW#CZ0nMsoU9G~ zoUHK_)X+(y!ECZZ03kk~jHYK4p^q+Lq0}7zg+P46C2S2ux$Jv*_El#3B4-DMZ$eX~&$n&JJj zFjV7k2~w#SzW>2@!R~D5y*OyB-xLUh#?LI=UuI%5yoHh73mG~$GilaBqLBK=7FpA1 zcLJ9QAN;^OnC9~>I1bjkfOK)MKJN%+@mlwdBUV$`J6Mibe~!or*QpcmdWG9$smn_C zK7@rOwnQmSyt*xNj^@1Yo;#>9=7mG2UXPy<2cl?lxL+M~!ocv^WQD4KNkHO`cuxaH zpR-~htR1yb>$GZei{8k99l_~;99I6eE&IdsJNH1cq(01hXQ$Fb3wz%_SBXMqFd8+T z+$`6qkxOQ;#u1@>nhZeYRcBcXog`5YSq^Q3+#|;~3eWuF$!8(84Wq!t_*8=DT-xJQ zM3ZDC4bJv9*CLbPa~y)Gr4P{&1DQm74||4t_Bq*>uLs`GM~No=L!S~IB|FJk0v zt#hc0b$k1!&2(ph+muC3A~5nkip)Ye17{l%Lc$psgcb>n?oIS26C0Sqzgx3c+((ks z96_X=FWKz#IRcX&>cL$Qq0F3T$mVBbS#UlKabybfSO<6_XD>BFd|MS(Vk3mE)rwEU z_Do^NQduh@YKK2Kw8-Z)3=&}wmrKC2f}Y`Q&;W-Fc~&PuxKwDfW$*myvp8yPBlDUG z7({3+D>O01aDqB+;SAzCtgT{9hPSGX&CX5&5BG$tw``*SxIGlGCgc2UZFzAhXKLIK z_dW`8mj$=U;T1z<{61qtbP0G0{WwI)J!C1!ATB{BgkRx);B#^ev^W#v2o2fVsL`>1 z-hiyEiUAzhfGJ8_7vQO6=B^Iq+>3qIa|VqB&CZx^Z3hykM7M&UALqVPL3{Kkwt+3M zURF{Rm8t~|oM>z2>Li2GbB{wWDb7oSB&hV~2jf5dn*Y&4|3+V#shJ;`ou4XY0!Y%i zqlaU*W!*3XgI!&-92KKBY9Z~AUx@iQxn|9_M_8-X(CUPQv;4cYt&Y|XHUn8Ahd&7t znFmvqF(IIFoSb7It*NNyV$ZVL!phHyLdi_ER+Y)aF+;?%#H>XD6i4*gBbd-p7QV7& zge(e!Zq%<+&u5cNPz$1wn{2Bf96ozI8p#ZzA9MVdUpII=F@A7vTtRkr5PP&cm$p%X`J_NWt>BI>ulFp7e(NmDuL8YN*a)ruTu zFvoS;ex@?o3ZU2ahCQP z6xgo4g5l>yrL0>;JUFBDi`(;Rc|aC7$qefur7a27wQAOpmLy10Yk_*oiy3%dvW(Yv zP(xw@*JC^QoRo0;jW^JqQ5XB&Q)OpkoU*fQ__yYd>Jdg701`!@%iJ5!m4IkTD3il5 zM?h1=o=~IN&2J!+2^1e&IJgGoDRq$cx6aN9I|Ezt++ zwm0A3`ysTzh_bhUyQgr}^B6CS!?L_}-eY8nZ^t>`ch@c9$f13ZVS4dTDxZHv;e$SvJ1Q{iSb*zdUgs?Z9A zxgRm1Gbk+;gZd;<&nF+pc>zb0f#@9lii11Y`%Xie0z%Z`nKg^VIN&59B$Eh|J;UcN zHi!THPhSr9-fr2j2IK^!hCm^UvqR?z!Lpj@*a3n>A#1xD4Du~~2w$67#%W2M2ZyvI z7~|HlIlr6_Evz;51p-%=ApRKx!gmw3Zjp*qGTk(?R0oR0K3bgL!K28WwvTXsv}N-5 z0s;?f(XpQHIugWLB8caaeNqV2If>J9PQ4jDFc!}oLLY%!8l0BS<};xM+v7AhQ9;o^ zrZ0p=&aXPxI=v(~I@exzMdVMs_S%uqfl^gJJm~x;+R6&f6|0FoTVl+k1UG-B zuvX(ZIbwzwG}xwQ;^6=f&%W!=(z6!`P-w?&>+Wafau=daz``7C9rGkiY3uQ}x9Us= zdB1^?InHi!ICi0vQM|3xw2L^;OwIxV&u1=yN@uRO!I*vEl5Mldh_%;A*fF2Y2t?LC z>g9G&D4Jq`;WbDA6j@RC9Ls=0;Vg-mr4Q^A$p#^CL{0{Axbjp=E2~0Z!v#oJNdy&) ziUc*CVmem}!D0r__vRa}2~Weeo*Ac9LGmY?eTj49RJVSFPz<`~xJIF7r=d*}h{uiu z?%9o@eX%@enMglj&|z>lO|Zri@_c~Gaj;5$_B1y$g7XZoVe%D}Z}-F`mj z-aBp$&+pkEdfMBFPvNf=(;5hyTz{3uXAiRvoZ7W*;|8=Nns^^jOwNoQ9VDR13<`SZ z=iYzA`p^C7zg=-p&9Dfk@RE0^g=|#V_Yw{A(PfNmQ0+RV(l8}1%6%;f|Voo!KjI$ZXsM$|Z*Vm{ev8GF8PfHkjvvQ{~nRRO%bcRD@E3-s+Q}dmu ztMx$K+ZUtQYKR#&*gMWG)?Zl@jpG8@hsZ-h>W~(uJfc(>!v;BHIBXs#>xM7`e-IUU za>s#?zyC;tkT-2y6V}%+i{*oC1U3vpR47-}DUm5*2s40#7rF3SWf2=K>u4hbn5^cZM?Ms;yJ|~l;lS@f zr`wT-mI#&zgm?vQD@DA958ypSa~zPtn?;9ez~*)p#x1KrxF6^$h39Rgo=s3PVa=W3 z<9% zCe16B{65C*lYjC@2sc!OQ-=>mBM<`z9U#v+1?TD@d2UBa07i#>!`fu>nQB5i9Z3|5 zcZ)_Lo3e_TW9(O@4@e^g*c6RMS{k*<4x~@H)=c_GZ@6|_ga$8Stc%L(qCt@WX<)4Z z7LJZtEuZ1~MB*50uaa5}k_pZwD@r1BopqlatDEJ_p@Zdj^iAq2QX2~XFUx52v6md=sZMLv_YODMSZM0 z58_bWtG0v1xzGetNnFzs=R@TzA#e$ab{X{3k8C?&2Eo5N&2fqrQL|;L?tx)YI2iYk zt5okA!3NAsGYsQW8^ap1qx7(ehrwDZ!Mf+!#3BZAiAb8@#1%@39G_X%$rd9^Ts@SO z`f!Sv2c8*$FdiK9!}-8DTSg+Vm#2`FR7AkZx#pfmJZIG4Cuc@*+!sj#I$ zj)SBWkQlPeSbE^KvjpHNe9sJ2n?6mDEMlQf!8~VOG;^ABnufHe!zEZnf(bYbAdPj) z@|ZX6gfeU)f9GICTTy7eowXkX9zFpAc-!^c!$ObGkHC%RRbG;htz`{x+H;^w&e*n` zq@42*?QF9mXRMc*yyYY{GT4fIAIHr;@S0*fEuZ0WH?y-8mI?yokfL#dVgrlS%Q?qn z;91$*Ktayajnc|=uI&g{!MAZAT3$of-0{H&PMis=H*6;;kxWMWAz6GJ%7LiKI0U*b z$ZnQb3$V2_G0@?e@f`6vxeG~)v}gSKU%!!q&Mhq2IyBr@x2$@7y2OOOzCNNrj3@_J zVuMEZ(2?UDt{i&TsH9*(#N&lXgy$5CpXb1rLEd@b{`z@o`^&Wh?xilA6Oj6x1Hu{INN^EiF0oak;n?Eyy*z6w;r6J)`i!1WsShzS*!FzDPu%p`1+vDx0?>JoiC z(D@ooEW1uvQjpPRI)@3hzIQj{CO5+P)e z8oCheKZ9~q6}`@dIOmm&xvL}_sHA3-MFwe2(;n0%5fj!-qp50A3Rz=1Ybms@EUSKb z77LyR0c??g$Sj8VDc*|)Q)B7935U8zTwOKGSxBDsB23ES@P{A$Fi}3D3Hx@1=5rT_ zz^$QrAc0l+t(Rf+J=D%Pmx;B+dP(rIf7NVExGR=wIE0gUlYXUtNc! zs@E9L+(8)zg9`|jJpAw@Ve|HF;q_NuKxwHt1_m0&EVvxbPgcsYgEkoNMdvB;%l=d| zDw)|r!9t6Yh2{wOo_>C3LhGDok(NgAD$2q0cH)sJg+0Zh25OF{kj3V+F9!zB5{Zrg z*>c}JKeH%TOXqBTS3_kmB1EZ%vPN_PC`XYFc>`ulPNVZ@Jf|vlv13_|r100D|C8|E zcitJEd+MiL3q(mAk{Oj98}3;mOvsqi*pHL!J;u0#jAaoZ`D{dZY^B3AMArKZnaRq! zN)Uh>;z&lFxS5|e$$&uzW(J)_z}(S?BO(}_VWC-i_MZ73%fL*P8E*UdGz<;=2xwPr8UfX|?Q0*B##On8DBOH!6Q6n#l2W34PLNB5hg z$3O~)Ym(vh_*J)Rb!dRE(us(PY-j_MA@~-l*dwNu24tjXB?`|U0ilV~8q*JiB-P}V^ zb}OmrSgaoyoT9P57iVZwJevf_+GhGlsN(8aEev4_^}L5*1vV1(OorN(^H}BopBbCF!mX^0S^5GNfy6B`Iq|Q2I@iGlb^TPv z8pmi4Bed^DcBAGd>T&E0{fMJN0F+~R`EYV~TrndsQek}`r97GsDmh32LnG8%et`-Wm* z!NszVDG`}@uwL!}_qExI*`g&XMNd3u4k9^x{CKFO9MaWI#{fUC(Y8D_LFV}BPkx+w zWl{L?Pk&B;$220I&m_;DQ%Kefk0X{U0_4)uNU@@n2Jz9ouc3_}&7ZmLxEDZ{iA9!h zo>SrWx7L*Vfm_6;rPX7&J|E6@1YseP{-bK9J^AK z)~iKlv@g-QbFc2tf#Ip}f4}`71m4CEmc%5C$vfcM*ekYAdXHnHZ83|S#NPN^CJEMk zy#cMr(I{dLFmfItWWZRp)-#Q%0ck&u?)cWSVCDA&FL|Z56%`dim+$$2)RBD`^E<}I?GB0~_ zn2dge>*yW;rAOc>EuFoX+X;GuJ;CnTB3e;V5|e>Uo^ATwp9PY!ZvQFI7IBTnI@XHaN;|$?Q1MZi2It&UaY9u?~wT_7u&x%DPILwb| z=me!ad&4sca4o^~a;CR$-ORv~iv<14AqfwFBu>E4$1W0BSWaC4Uf&FY_QW$UhYZ?W z)4Au~{$9=ugO})xnWk3X+TI>+*tRYvBd)!6j3+O0m{d_#e9y<k&z(rG|yDPFY!wQOC}u)8}f7ln&9UPq`SDC2Btk zx0``k%hGWaqJP}q(u)#SF&|8`Iu3Wq2ol*#o!=x6aumodi3We!(29#V3i8(LZwx1o zALEd+fDoR_3oF92&+H-+q-LsPVuiAZAaj9{ZO5^#gye{gfix**&g0 z(I6^0s63;aO?Izj85zMEB-x2N8RL7uXCP#q&{iBBq_DAY&LoFIV-zPxaSgK=b1sk1 zrX`Mx)gX!(=$!o>_r-hY_(cw6J|{Q@?D}Y^B|uC8PmOXP-b6|thQ`3YS`53+LbjjA4w_m!D_9%jncd z8JIe-0bNwqmh1>9(11fjF2j`EAA^7?<{rk(VAwMqOey>4FMT6aRnmrsqgRQ{`tLY; z;r(P`Ll7q?SeGH7SrVlP`9)$80gGp!oyVGRV+5lz%FWzM%8Cd;`*{sY8i=pRI!;TO z2n7PbWZt>F_*GQgCeCZy4kz8lZ$? zCK&IFd*$upnb4ltpRK9$xy@5c{o+@?%ieNg9D9;A@ZSt57!gL~Ye4!&CkZAHy3ouEexkzlm6lwheVs>Fkj=go43 z=guHZK7#Fe{AoXVJh( z&Zz6avJ$C~A@iF-iU&^HXMh=lP0uH`O}m_m%~ZrmeRa7q4hGU;`95+Jv@zD0l^tGI zi$o>%Q4tw`89WVDpVrzUq_lH@lL4p~2CZC-`$B3D;0T5Tn z9q>QycXGCgX91~-pV2NCOrRSNy5@CzP2+rC-KzS~aO_aH+?EFarIr9h5+{4m=f*YH zLO?v*+6}9|AVDsrRM3L@pva!(Q3;Ki^olPcZCnJC-HB~H7_NtP1j0@vbRa=opL;+l zX0Lm}>w>>iPBL*~xEG$@5gsD`kmh z#Kjt<+S1gcwQ<~}wgBd!Fty_kkDWTpLIHCTkqgCI!^_a2@W5Q;L5NiU_78s@PMu&X z6$h(`Y%2{X-V2n3tBpl}wR&}AYgaEP>dGYRaR`A9j?Es62neDRAt_GpL2|eH?I|D# zVf4!K5}YTs5{#FmhSX%qH!wrlFhYu%z%SD8ohoz1=5@3=m4u5p3Fn+HkpcAsQ;ef% zHA0PuAB~ZyM|h%AxIl)bRxKMALIz zJ9{M>8duvIiRX*`8Y4O@k-jk2SMfZ;pl<#`4w{guS+P!65`=Y0LL%1942sVbN+u{U ztMUN20j=|BSasG;mQe-DKt{%=5{A}?J>U|TB(|9;8D+X|UYA+5=twkHy!ZcO?Y@KU zJnzHKzql8`1#ofE8^J2ElM*FaRF{h!C$^N>akeDhc-KknB%7?Ay76rO%*_6?liit& zQzo-J*(6SxtQ|WOPu4Axt!BwhjZ`5;f)qdyAbQ6|xdr?EJV*3oB1_I6d#I~>an5_* z_j!KLuUEf4gNu5=pgW7@VIInk#3_{?uwo<^iPaIf>D9$cu^MGCDOPW_q zf721bNccdb8@UCTpTs#vi5bpq40LpxaYvb-B=r3tp{ghq^o;*#8}L~;N0 zay9W^d7*B0m7$HnE1lQcYT5S*&x=(O5QLTcjO9;n+_*8)g~;=G;7+(KTb@M7ln#n8E0dsr_@BD^Ee2}vFe zJ>3ngKapGSY>Gt3JWnMb!_)5PyjlM&OzkU$F$kT3GcAmlX1MWt zp5@t@n^G)?(lG9EXL{vy0+YnKQ>h<@-t{Dc`%}bZF!Nf#Z@9Nu*Fr6L^_->zaovvC zJlyU6MBVHVm!{@lKc=g_*0;{k_TNTeEg2KPYzz-od2;KE8YaO8|T0k%u4Q`^<8$Ek&y)J8A;~t}>ae(9v8$ApP zjh-&tX?*5VJvG(}(Fq;GrNDAJ#wY_w5g!Xgt>?`2*uxK0 zJAHBBywb6og@f)C-^sB0%U$;4{rrJ1BI3X3wQcLt2QOW{xOC|7T^r8l1{(~z1#Qc! z<(i-se*W{%4uTV!(Fav>7lv!|w@c`F?>pa_0Npcv>?6Ne!ol^aTI&4u=VR&-a4uL0 zKU`ES#(lYyO#@n7l98R|5inN7ibBpD+`XnvW{(Bxvus=kDBUmxi13dPx(; z8=mh#*3ytQ$-g^y{D!pVix*B!-}R^e>*@LG_*e)8BJ1NfKKb#8q~5;bz6deqC&5Q- zgB3(riJwSr+BCm7J^sX-n?Un?8Oa?`*AESPP`ZOE#@3sJlDE(n0!D;`%tC62yfq{x z7-ai_8N^loK@&AF1M^YFLr{;b+HT0I#9S~pgo_z0L@a6#wObtRAmg~oE+jDBDK`Q9 zR@b!53rVxyXwYJSm^z{vMAiC&G~IvT#Tduuou1=;iUJsTVd}gCCfe*sAk7^zKeyi4 z!FwoGl#>LuBrb_!+}1ND+cRdj9}E~1TL@2BX|(29cp#<{Y`ETT=6c*NNvQSm7OZC8 zZ;qkZhYn+hO4Lg0YCd)ein$28to`)U8slTLo%EZMs2aeqcuF3^2WMAUk5EBLkOLNX zr436kJRPB(3*Rr556~9!R8S^nldwXUP=zIxFlZgOtt)MDOO~YY%VHg)uEp#KYq7a` zoV^$)j}Q=wWnRqEqjbFE={GgFr85}W3qCipj9b6%Wy)EEaeDM{E+@K zXn-N=PYqsxhH%eGGA#R9mp;NLWh`K@Xq`P?B8yv-5+gfrv^Qt1kqSlFKG2&#C>%;I zd4j}431^lo*crmXf*m2Az5uu2HhLIH6VAEOfx1`is66a+ZeT81rCKa0^f8hU38tTSIJ>ZUkhxe^fa^(DcHc{)LV4yQu+{(<* zqN5u^Iq42Qfn}V>aE*5}7IhMHWG&-e11Ex)l1qxvdiQ4)-{`!!gwgix8Z%w1WXc)y z(CHCCnb6%0znv-cl^}*g@PPs`#xTOs5U_ua-;4z6&U)S6{%Bn9-go;>m-3HA#6nfw;3UO%AF&qs#H{m#aI! zdv<2vAHO&d?k&b24ei)onVeASu43xj%MrO+nH8oZOvuQaWijtu+`hEog$NOlx5g|k71-ak zd*AfjSC6D+DIbBn;YJ8TxQI<|Ec5TxBS)s6`)7ZD`sH8v`DP54T$a|cJ1yziFCLi= z){gRI^<$OjjXu*d6?KCW*F9FBQwKDL+J_W6G9jiN;=xKN(oEKKab2&&&q@dW)+Zku zr4J?C2I$;~3FWW6@KQ0zNIazEidioE_U4uI(-V(8Fn#qimCVS}%>qPxpU-7|qGszn zgU!4j+8Jw3!VBw_5M4!-5w|vthwi;^B-mW7If}#v^?U0ffS4moecK|U#W*6O7>t9Q zS-V+JgNV7gxTqr9hyoL$`EixYPQ^6D@kb+zKI2X!XlcC!YotAt2gE9ybYn!ueQup= zF_~~S<{i=ZLy+K(qh7bx2e=r9B9Vdsz#v$v!&Tn>2~}$zFBH~mrYJ>T-Ao*8y|pXK zXAOx5$ra#=PY(6Om`i8JGFKlyEcFPJ_U{bGfA-Te5Vap!r($P1uUY)if?Jo&ZwiT# zc6#oLS?E0>0kxI$_bM~nHJHJ2geT`=IR;fyeru~^Svbg3f&*b#tHs$dZhf7vr66LS zm>`&{yA>*sor+3gkweIC3r|+VuSXuPHg-?SKsBvO7r||C?)FV_gB#YQnn7zrN=;iB zk_bcAL_zYPVFwE-rh1mo&*gRLOs@5_R1A8!V>=6;j=}W1*13D1P~2IlXj`toxnM6> z19PVMiPf*=9g_^SwR4&&cX8ytM@ghmzxAzeu9?TV;4ovp@L7kl5NX<&%U!<2jT8s- zlx5jc+*aXTKb>N9FcVr_@2ps7!pft-Nq&Qya6lF@fnm+JQ+_aDf4AUZ3T>i|@D7a* z0o`|ng+^=EXqiGYhRmRy?oIG%Fw-BXw1rRyx<}Uu9l(jZsyexrAiI_K1D>NB&!Oyi zjkQNJ5lFN-3%kKj=iidY*$peR?@)iyzJB6xUf75A>^Zz&_P;KNqQCKlb^Y24xy_Y~ z=9xFcAHC#<;$q*uxN8Y%FK0Kemayk~jyRj)7n&#$VB3cGh#*Q?uEZX zWH}+ZloRmRvy3%vdGw79Nc!rFxw7LEo9dQW`O}?nlreKV7-(^Oy*RZ-G*7>`(yv`KQ#OG4|vVK z^#@$Ed(*BxH&(A6NYh_fiODz=8MTHwiv8|Pv-!fazm`zmS}VL1=KUO%P-n@7q61REpJ2zxBJHo4)_M-yb8N%^HUHk3RI^^pW5ET)>hs zxtuj74&0%q!74eS?TJ5KtCm*(&SXbh9pU-S72&@y^Kf z9v%cSUSs;YecmFB6@#s+pl4nwBVHZ=D1wK*4M7w9#knqIonLKGf_wvWv*E_Il4)r8 zBjZ238*#qQIhj1dD_dJDYhHGuL1$hx?%<5tr#tXlEST&g;La($6kh)CjoeaM%>(DOi;gc^fcU!s{R@!YnuYab zNeX+zy%eYvAWw0RfyDi#R@*x>oE{h--K2Q?Zh(88kIdSt<^k*yiBB_SG(~h+c7}%J z?Fvrtoz>fx$KLdRr>s%-Th!QVClh>Id+)oZjkU2*}Bvu+=2JdN#@C+Qj`Gy$Tf zm~~6BSnu4N$;?|xDONU^lF@y`+SK~^MVpmehzB?WJdO(=KOTvsT`=>Qg$K?qI++?fkjIE9WzYws!5s;M6lqG57hNMLAks zu8c0(^~fWSOdtEzUmk*c%;3&Vb}@JPxr-?f?Nbuvm6Ca55*e0R-u4@PY4iN#!w*f* zzjAE4`wb5dy6Cv#4=L%v=;hvD3V-ARQAT&>QV(S1o?I`-ZiSosuR)t{_4+Ro&^K;h z`R?S(eN95zboSJ#%6HD!-tJIw$7>15og;Sqg=fDsl6+{^VM#>B;;h+!9OZn8E`#W{+-}p03&cj-UVcx#iN% zvXoiT+%Llwk*h<~@*HlXP2RPH^auXX2P&Q~DXHheqRYjNj-R?zE6pn-S!7@F>9wxg zaO=|am;T&;KOOthvk6y?4<1BTJc7_Oj2$m37-LY6J z#%b8V?$Ym-CdmrqTBBJ**7W4T;FKVYm{a#45E04HC?l%TC}bcpjT88|+-GhuOoGeT z2fAAgVKDBIKnU@!WsQVGX^#z1SJT&ZG;jo?%uDAZL{8XAa>E#XVPnb)mp)e}i)Tx) z#fVsxtQQPP?fKQh1+&DDvUh`1AC2#9X}!Dz6b!NHZ4ovr*R!~tN1b>)ZZ*Zknh15% zouc>l(w^Ht0f4CxXta}U8gj&hey=R6zcF8~MOJ{sDZ+X%luJe_1yxG1n z>_zxh=KPq<*4j6Cc<)nI2{%;`-0Z?Mgxg9&7fjt64G=bBrMyKHLFdeRMl0}=;wW50 z*l9n?4ZBtORcmJzxqd^XK&(0U^m6V4?!lks&59&6gsGhOh8Qi^cMlJDyS{5AYHjwM z=*)8{o06ior&wrO;d$<>bP%nN1kli@w+8+fnCV6YXxC9DdR~7HinruM zo;Hg9YA(_pg>ps+qWf-&Sb{>&F#553M+3(1a*dBZ1HBJU_6J9lCoyCsB=Kr&tIzfr z?2yty0fJAukTI~9E5nqP4sH}nv1V}ZV4EIQsHe3opz*wlI}=Jqu(H~3W(aHx$0>TF zY_;{#Q1H<0;gs_N2btZAt$(8B2O*5B&&DM2F~*S+*{ur7(BUJF^V*Lv1hn~e9= zqmRbJ^ykm*9xmQ@_`q;qKl8%*Mr`(8>%VaRwdtAXUY!2WduzH=Le@&1EjMm%x?mM7 zZ>aIgmtHzLtyN3CRxZ-!a-}4m-c>({Ygy{Mg7rOz54P|6T?7vyiKSh6g|DsDV5(BA z_AxxA@khy-pH0ST(|Wx=+Z6u|C1q+I`^D#u47dN~6bF;8^eopB^|itxkG}8SS?{Ov zwq~)n4N1NKRe|qLKza7$ah-u(=vPypSqrY9t zxhA1hhqp7pJoVV4Awj|-!X6fLgt7D5002M$NklvEv2jgV16c2pjCK`|lan z)IEm}$ABw-57<}hWBX%2{6jtCQ!xv~8d5gy@z+1`+372lkX+1fp?lVjI`+Krt{u~N zzT>Ua(HCDBOaU<$LLTe+>ah!1(Gf>X&KS!PtBeUFHnBvb5bb$m!mM=ms7_nJm}@^0 zuOKx=Li}8k%vMY&2B541qh_HHOp94PG=8xreTXH}_4cr+xK5+5@IC_Uy;u~oB-XKU~W;}FL-xT?ov#g25!w-VIq>@s_ufFb@TCWKNu-yKa#)t?Dd8o zT+6$=&i6MQSNrK}N7Cw=H$wCvyH9H)AU_d%X$#SM(_V6L_#u)aUwZZSg{V8x9*hxWztg)>{=SG3{`hf*7C;Hu<5KfEI?HyncVDN*GHw6rWA zYnTbeQNHOJ2`8{3D9r#+LdV4nSKz~}w|8;>{*D@kq6p^wZ_p?YnDcf04EF8o>(77P zQv^$nKk&~^}=%~sm^qqeej_i4#A#+=6Z@0xa~-w z$~`g33;pP_C`%h%!4bxSTKI0>_wbH75C#)8*5%z^Xf4?FHyYHtK&hUX|M1ooesM3t zc&Q{n7BRkuew_^(Py)(4Sx=$C2f_-fN^7fRHeAF{cx22NP#HoYCiv0!Z?JSG>)#I8h$I{wNlgH9#WZtI%X(01qVdD{R|K&`(U z_y7E7UTna@w|LqAw|xELKl+~z~Y1 zcc&pe`rv&LL*viF6_(q<0_`9D_@^pGN+86{_SGa}S8WU(GD5i-pih78$au!p+IC*8 zPL7s;yOegrEyUbLwF(ZnOmqoA|MtzYXyOFV{?CUm$F`m+lX{@&z|cuu5H=g ztO<;Pl|Gxy6d?>^EWra6_CIbOe+&!0XAj2Nb4HSuwZ;%e{IB)Sn9=OFeOS-Pf<~zQ z?LACXXElBtmNmhT&@n0mZ6AceAnuku6qXbh0tl1hPV;+fXQk;3!73)Lm$5j!{c@KX zZ^$EH>zLwjo28&Q%R3R{ue%W;FyD#Y_L_8RIAp z*$u4IZ*U?U$9sLpy;;wMs1Shl3gO=v8{gbC`AAJV^t8hA^bC!mZ(rS46@%Ss;8 zaK2<$9!a3}NQlukW8#XYER8+<&-PS(04~C%B1C{u0U>Lb>OOZ4Nx_;Gj0x zp+~Une=UjE2F7bSni3T4TB`l~jqcFf7?hDv8MVVblcme6WFM4fLrFTEa42~8ncwh+ zvM^%iXfb%nHSsw(@*q)SD6a&>P>Q+-1!2IWXTuXPa=m0p%A#f=o=s4L=a_ibd3ui^ z#edq;5CD<~xl(m(oQ-FtT+M_dR^+|}wev(HU^rav;kVDn{ktb&+NI;3aF+7oJ!b%( zeRVts?Gf(IiucD(#LNdzZ9kMZ#sWoj^ase@j?ZcT%S*FZ1&}1%_3kNNJ9rpe_Fh)E zndxtO{NYhb$uLv#v!%v8$Lk+)Sr&FyvXa&_C3D^C`lp_HvRn~8!wHo5ZahN=%VV#e zXnk5V%j;>+(J#+yU3sTJ`6qs0`j`Lwr^gxdlx!}(tYzxU$Im81c-^WOKhXHwJfpiZ zI+Zu>&0C4jf>M|<-F465>C5F{ZH=GEy&``uoH>#F+dSQW_uWHrFjPun;%Eld8Ptqx zE_eJt|ICYJPJWA*v;CH@L-!om9#I}ReCW{TYYjm#2%d1zaNYyOg1-2b7ZNm^bMa=m zh6Na%IF?lZcYfR3M$CDP8ynfswd-71ntt(@ek08(VsY55;6jS6Z4>z`c|!cV~hVGG5Gm@L(48{l$@$aqUi+!o<~rDxZJmx%~ab3`^|T zR*f9G+7xqn=i8o|PQ7|Ot1AS_RVkzOnJ+z8!+JOXLc0&5roqzeA-rp5eW^!*RtU*LrMo4-ItR#u`O_A;qOc@qCZ;LV*F9J-Ljd%* z*ccZTSJWs?i-<5S2#E1;SB*G$*LJIjo|hoFbbrF&PUj#q8H3+Wi|x$BK6wX*72DS^ zb>0M1dlde2HB#VMGnjN+ADP-L$Joel!5aBCl2&497*y2NKE#oVNu@c1fxTh`HP4B7 zW)|m`p0O*h!R}&IG-}opVmVORg!|LXw+9E+u3Wehuv%galIuDc#;t}cxjk;_-(tPP zvg@L@FIW9`5JaJ9D4dpdljOpdJZ?llHq1WWtV?TlrF4(xGQVv?0Q$5|is6p+>{dlr6} zdPdj~f?LDMy9zID?U3(eL2eB{wudhnFyngtxh1{r3eSyh1#^OUXYgcM6SU6Bh);VU zNGJ#`K2(W&1Xm+1B_nMPmahx{$g(wvtG9sFc9_fie9w54_ia#-H=_P5nD`*?hh=OsVDC7cUB+wuZ$uJhT!#u{HPJafEcW)lDzJp?`8rKP82(My$u4MmC)&HK~d zj-PmSD1AJPUcw=|ZX(f}t2h3}c=KEQ-ybNT*KV!;(eUg*^PJ~T)g|a^0y-S(0SS?y zzDoy~7}4b`Cg*erG^pZ&w5u~GPEOzdq3;`WZ6P-yvawjgi8lGg=TD~9_nz2Qgn0M; zhwItKGQ1pXn@(tT84O zQiSueJS)oI_?>(=X0?ngHVok^BhfX7OYvn!s!!7y<=`urz6F zC#A5zS*l<$gh6M?b5VxHV8XJASurx7XGugU#>MVNn^yM>)`Sb|j0cFjQjI$A#1Kdb ztvzl`5h0YtWWjT>7^U0*a2}R(zbR-0DJ2MV=h+zEl-_4;Q8-w;1Oy%;Ls`=rxFrKu zsAyRJ!Cbw(`%pM3hLjobW6`?@YgFz83lnZol!lwRXDUA;$lLZP0Ue>108Y`^+<6c8 zKP9MrID3zM#gsQw^mJ* z?1>VxmH;(K#IwK&+=sH)J$V?0;@_TF>q98EzF~m|r@gs&S@#q;G^#Bz{A9Jx5*TO7 zIz?Olfh4j1*Y9|8^g!7_zZ6Xh2)Lsgdm0{&=m;DsPG!h+<|$vwl!B|qM+V23GkvEU zv4CT<2Og#wgne(?J~IQ_eS_j8?D z6yDy%=2_8~YP;IU2xug+Z7r|G#H!nQarG3Ck)(>mT0!60;NRMxmwwNcTf42ua4uJzrOsle`oWJ+c)31Yv+zCqITy> zIMvM4yGDK5jT(#71b*|kKVST@G7gE-L?QP zWAR@%XED zq|2eX>&;_* zuzJjst#!44ey-pI>ycwMq^P~-jRN@uapHDZnp^9Tw6W5L_=cs$*aCdNX_Dptawh^>>)u5w zV&pxiqz@golri{hu4mp37CO3FP^YFk`+8(c zx*=Gi{*jriDL)HCQqOWF2&)MhNP4?xixmx=Qvr>*eYrhm1nbmL1Te7D(^47BX z4<9@*&V`$g1;xsp3*Jj*caKc%V5y|UFp;IS;W)uydUFI)?-LT3s_@FDV6Q9H+G_1N zYm>Sbv)Q;IV%(5|(m;VK@e(d9<#2Z30Ix}jX{Hc0`;3PsPTb$+IyAA2g`utCu*mxx zgVgSj;$knDn#|Ss$gr&7h;DFq%7$JTo|qVB9vX0B&CK!zC>^;7vs}fQ4Xc-|sFH!u zn7KS-aP5^4B=nVz5uhvF>@gwnM~cs2xG_9JT?k>Ut!`;@KqPr-mg4@py>-C#y52Pe z2bcWLyi_bb-Uy2Lm8+NfTL>k3pcrzk$Amm%F!cBW!Q(U5Mv#JX!3)e|g5cBnwaLyc zyy$03R?B?wT_{0sLw(w}bw1l#+gxX*(THTsb)D0Kn|fXGQ%W`E7d?3mMG(G)$Lqse zF%!&7g}3}j>I0{-PC_XqM;lk?yRHA*QOr6{KJZ{ZK|`qlck5)S^LX$EQT_;Sic4tO z{_-fbo~^BUsW%RkUo#(GZKy-y<|e8ow%SLu*Yy+wbg-v3k+Ro$y=KaB^cDdLXL)%~ zf+vqvM$>>N>(`kx7KXdJ^Q6FVA8Ro?&b!c$BrggLnpL47bDEM*Xf8$@@?+2j3z)*} z2hLC`csFD#^CFJ(?cm^`311Wq3fNFeI?GWG+GjH_V2|gv?kEDqI9Ca&GukSPJK=6f z43COYny%3rm_n&B%0i0vjqdr{nX^5w7`2?D@Mz`srFv;>8#Vsdvapp4-ibHuIe71M zvE-r8f9XhyL3PlQHRCPvZ-ha=_dB1Swl+JF9qj0KX2H66O^?&-IG_nAhO6^ki85iEv#MgqXMzwaHz8Lp0|AjWtZRrsCne)sfn zgDyVxv0ooVraKH5$K@-xMjv9cluMc{L7=WqJ>$leOVvI|%fkrlIYHKm=3!^n#?^h_YX~cM&)yBhKSqv|nycjDV|AvJqF3 ztV&HWhPyDPqApZdCC%b*rKPRpZs#_gFYclVg9$lwSGC%*uJy}S2E+x_$HnrkGFv6) zc%?)K*Njd|-6K;vxR(f*(xWxr&D6u?p0`pa=}P^SZ>7-O2~axS^w{yYHfp!KcmABN zo8<|x)=g(wZ;kCBLO1z~h8}|mmKdWU2hQJoU3;5Z>0RG?bybt4D}jxs%t{_HL$FK8 zjM#Fp;*NvR1al9omQhBj?r&G7mtJ@=Jg5;$3dhxyGL{ETU{{P^ovRv1))FfWyt%E{ zBl_W1jKQ)F#OhcDm;)gugPp~qfr-S!(Vgs`yJKwCOLs5d*XUqq<*iNm3ri4l#?0?Z zLw5cwa`+(28-5+EHal6^8r6uaJ8m*q^dr=etui`QQHYcyNxU{$!J&%~Vfm1xN#V}+^JzfjnVg$}QWOEo4uyd2?v9C|1!64AKU zG4fl{Ef32`s_fh(j;RADTlekVH(c4yj!>B?bQFOUu-1>h_Gc(?ckfMM;DLDE&G@k18XLN>WG<9XX&kLyBRCe-rB0vs_hN2ps0S+`xf>}Z5cSg9gNOL z8CUNQ1-W~2r_1As>5U;8;>auAV?I-RS9o?IKBny~BY=_6ZBxQDJ8Smz&Tun+rHdaW zW>?{!uyQ(j;?(rz7rs^nf%c!Zj<%;1IYz*Dy!Tzx?UZI7u+M$&nFhH0-P(LEWt`;& ztS`r{`Z}MeJ+7f9n^IbYASt_)qCL%`-rs0UrHZCF8j(y!@FakpSodA~mde;ZGs?iw zigvTQsGWH26!{bNtRz09*8zU!{L4o7@* zr%s+6Om>#V+2NHa_4B{*%UO3DrjzGlgdrmTzczX+C3^kszxfjlv1m4F^EDBK^z&c* z)lW@ddH!g%$qAJ-xIMXH4%G38>t}bHJpQ%gHC^9ciu~aarm=}E!ah52*L~BoU-@d! zipfV<+(iVYX=l;Worwc6Tx`!#r+1ZfvgSB6r35oz@R@uG-5S4w}gMrVykV$SWyVQr52I6SVzQI^rQ zw<2C;4G@(3MYDi-`(O$fJWW%}KsFrW(;$QDXK==tF4TJn-FLW%#-yX3F-mG^CJ9>c zYl@IHXzA#0Ee%`r5cZ>7tbdL2tlk?LsZj}Jqu~dJ5SZ5d^=lAt0*zyHB!IMT-xnl9!F=2s&? zf{=ib8Oq%k7mpD(r#fYc+ptGRP{jj-JqGLEGvTJgTuGH(aHST4Hb=qWp3#JzTe~7hDJvmZ|S*HY2A7J~?mah4EXPwS(7;20hPp42%+0`#lggS`(Ki zgt%-e*ZXVELTHYCbk@47VFZNdaL0$Y9soW)X5b^dg3lUs$WTVt8kvZNqd5tDT&31I z7=F)muBJ7aYoMIzN~Mv6zBnq_@JKl~dsbEjF1u4kDI(T4%c0=jo>{-jR85>438t+Z z?TgR0m_cLC2d)~wI~xSlb6OXp1#P+y7(~*+k=HD5U3^F0hW&sMTrlzzjq1WDW~=lK zpVakkYZmb3i)ZsdY_6^5q4rUOmaJSbX5^D>k0m?-BVInla;6a2O8Xz zhJqK~R_mQN>fXb5r!c3SrOe9Co^Pnl5XRAjmelnk$x^1XdR*Xi>_22)(ClZ2v2*Je~zpiy^AhFte2Wp@8 zb3gy_0G0sk(8TRb%38?X_x^Xiy}6*b8ia6Sdf&U=Iep}p{@=8)#`?v00dUXW{nMvE z^K627xnlRMOIdg&5NH!AX7n9>$Lvpl)${w{p}VK&UwS1VFEw!{t2G4NnC2vz12e>U zA(OZdONWIw;(ib*L|N~kFc6jv%YdMdOvcFi8fkcSaN^Nf3X!dDqX7x}8#Cp}cnj0+J6N+MV)?`28oblscA#g;q-_Zo2_umz{^?n>?bjIA4qMeUCTjloEmb1oP+CXE4O zx~wI_&9HY291{jF48U1XCdaw-kH9g6C%kYDq0CszwY)qxbh!(smJ>GW)n9*kmbL0p zZI7%r_$KzgH^zyPW3pVQOS#*5WH2a}DID8XNN5P4h+ltzme<;aQX;}30A`*ULdDwQ zv1dq7qX1Ae2>fAb_u24>wNJPr7h%NII|um5^93#xEKHaejAd}4*r2~DfW!UTwctp( zfM?w1BW~OCt#8mv_la`47q@VVN=%iwYbxP7xXpvWn!(s-N=YN* zc|Q}P+er8;Q@OLINXPbCQ&apBHqHV6pYfXvgVsn0gGo0UYZ(^xFd`TZ692M3DLmcp zKzPj)<6397B~KSz96hqz)9Ev3!qLK8ttHNski1#7&cW%}>9ZMI7oy87;shIREUtb} zBW5K~CKbnd-i#-ih_yM__^GOQKKWZ;7=ji|Si>e(N#xxT{e0V-o?uNhB;@YGh#RL* zeddePkCI- zYy96cqs|Pd7b3vB?>Q7REEX05ZO_7XaOcmR9O?CU?XR&&_qtIXoKmR$2MS;*q3FVM%tv6Km8{@SgF^Q zdbHL`t^?S#Wk(kMCrhhu`cadv1jn`q_-Jbc7~$dH3h@aAmaP_yyh@nn&Gz=@Cmx%A{Kx;t=q196Xe7Vg%-X?S}i`N*~Ds-q9psM_gnA#ivCyoxz%Tyy<3NjQtzqRY=^lTcTP`#+nc68@yEY^ zde3{_JN?Ul^>0GN7!U%^iXi;C0=Xr%G{qbwvp{~ZVtFEbFd7PAS}*Hxym|zfwb=d{ zV~_b$9#{gSfk!|DUrb741x+LfI*h{o2J?#X5i+w$U=6S6T(!|;*>ST|zJ?32vmj`k zAx4dH?QeV`3tNj%?p{J*<~<5mS`RDBbvhVrFCU{n+gG1uv2!0|K!iQ3e@99|+Z+l2 zMkIEI`C21-(u{={!9FlD*7t#)KbTs$DjOY9`!``sn5l2I9v0v03JOcnJ}wrH;!$va zFySGQ05dG=7NQQGhlBE@{6x%n{0>iV1`Dtr*T+05PlTfVvA|dXjzq_FGOKVvGsRQe->e&6R$hu8FAdmn9TU=;P7H-L z*t@qgV=WPoaB?Vbo!{#o4oR5KkuqzY{=TKjN!}z)K;RtQCybq!#7l4i4HhtEN>dLW zH+}N;8y^@uaj^}Ie=4jxd7;Hz_WFV=3Cgq?YKTAzLT9>f+-06%M>Fz(Ho zv?d-G>xDzknDU4=;0IiA4nkAlO-Om4pz&-TJRTQH&p4;n!DT%wX<{T42C~Lr;4CN_ ztVdqLjV$oi)CI+Nn>(F{rbi^)QfR{kl|ttdZkvMV!;MJ28ULa<2bl5Q3w8T?`IWPU zHN&Gk2dwe!3Fw=J2*tmz#`o^N`%p%iP*w_bw6o&uTd&DeS90aYDF$zT?xn9a0{Ikq zAB`q!l0ABPEbc&G!GZ@P0BG)VDP>}@GbEp`b`RbQ-pHlxyBg?mEW=RUb#C}*{#@g4 z^{Ri%Q*Vk#M+^OID_7^rXpFKkr@{Q%(~s`^`QQEO*$Zv`8(uTBsdi5Gh%Xx`SRK2>HGeOu3jex0p?5^S#3v; zJwFaW40N6LoO^F1n?#@vw0BE_Dw$^g!Re>}&A**~^2dLy^!*uwr9pFLKl#`Ljr%)S zH<*}L*mS2D?f!bDUdvtmPyWTf$cztwbs}4Dtq1F$d+4rxS)Lbah`ujvdTaG+CqmMg z98Adif3c1=*KWkTlDC^mOfk-qB||O{EV!x;Ga7GfPoY2rEip@>W(FNR!W{9;@Md@M z?~5@QlbsL|gqGP`YDNg1Yqvud6c@jcXhp*n>p6UQ@AUZN4@{3g@}oU2%O%FE_+QtV z%f($ao7Wa`HKrc!C&;;)`rY4ZPglif5O@fPXl}-+Xt(3}-JkVGU=8cE8`!$*5gnpM zm?MT6%+wzbs{rw}@0p7@iz}wb6^)6>?%kT}2XPOLwzJV*^5_2DFAZYn z2`fJcv4ep2foKbnwxsbIGi`$jt$bLmt?6caW{r;UL5wk^XtA{4ghRrTh38&ewabz( zS_^zKY-Rtx1A~DI3{wK;`^|$xIk0IK$FdQTEr2&b-(!~2))YhcBm8EA-Dg7XdRnm8 zXi^em8U4ij&e%tARF(#&gv_lheX!Aa2xBDx$H>g?DNFWxR;Qr^at$ulOBl>qC%&t6 z(N>4W)8~30-&Kbr9h62!bDU2HB+QKE=KfdnTJ6ofJeXNH{|{ zdalvYYiu|I4O~srji*`v{+>j-kf3225XiBs{kJE&W(7j(v#~k9XMkT zEKC#Dl*?SWd?8v$xrtV+i&eA;=UWG%6*;HWNB1%8k!{|Y?F?tYH%1eKt2RAx4}u+-?8-gyutV~SKl#K>96i{PzAECps?UKsZvFnBs7 zYz?|>0fY{ry)mA^lGO`=D-&?N&%G=An!?!D20ZaFRy%X)@dua#^{airNj|*Tf3gsyOf1%VFb1P zjsEAoqwVFj@J{{kS{9U&PHu2Y)Q&pU6>l2?hSx)d!sTFsZ&9w$Da#Q~v%p!eaEh>3 ziZoolt;4f;JJ4Vc2_7?RT7vB58|50c2kQdQ;o<5GFi^BlndM5}Qwh`cXmY7Dyt#6= z83=_Znml%^d(B6i%i+|8Xa??|F9fy0sKk=J?k_Rx^UuFB-Rk~}>$}E1@02sM_t4?# z?5jr$yI!6?{2RYDeegTqJLpv91@G5N#>PU)o$r48n`@MHv{9JBsIxnN?nHRT=*s%< z40v_ra4cqYQqCmjt#-kt==MYvP4`Em1LpCtBv&w78KsaXN?yCxG{kKSd*b=gX0&^u z>LiM?gh0y8h6H-ppYY$f?fUh#clVDY{d~jgn+oXV>sQ|tBHX|IzI!)0EEbO+Wf}l| zJ?8kz@kZGR)MI{aincDBR(9fdef#^SS6+B#XvMVsjaj-c=KJsRF-c`h8qe-x&8CWM z{JI4_#*vkEOq+V~^CzbxjTd|Tp%QK4(${iR?v4S!>#a{t&wl9_rj=@1Kl}OTrtki) zcTOiS-k5&oXMbTjbMe-6wz_AdD0kI*b8kWWgZn$+nzg*)p1Vil0-=-+IvCNf{@SNP zh~gF{2@twsTH;;Y)U%Ff2{CJrV6ivabyB&5AV|{i(y$Qej;tqE`IRhI$xJ0ZyBu5@ELOI2yj!9B%bZ(g2WeE!P`kKE-kDnf~{-Ls^lR&l>A zyZU!^kB$(7?JO|a8RLp5+7}I+5ytlhVo|DCL&FtE zuzN-TS;+#R$+IA2VBT2HA}?M1Mstd)PUl2`gn8%Q4YI#jFBIO!&gUNrGmkQ5S0IdI|;&eU_M3Tq%v45<_8BDkM`GLn45! z2eTyX(pR!RSRq_r;{3DNwPc(<;iL6j=$X!~2tc2^XH5+vNZzFz!3e|Ko*U6`eZ;Rs zM=ZJPDGu}HNwCNc<|z{A+`1*Ds&%bgO)!OJ(E<{kx;81%xw5?MD@^Y#HQfXkcPr~T+1*-G9K$6oV)yRb zKL+KXgW+BcXIW?PVKwGNA%%PLR8%5x)3W$ROUYnK$*gp9ocU^SCWNh1CbiNumgKGI z87w`Y@_-K!N@vcV9XP3-Fb@#CoeN(2<;xv_E4|TqiS<*w>xUj(?Ad+pH2zapLa-lJ zdH2OUuP1m|_;8Ezv?;ui?dxWdRR4I})@AaLTu&P57$fJ?mMt2-jXugI=SEvAKW{XDs|1b<5e5( z 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 z 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�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À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
    LM{2oEPWhXc_O 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 FV1i$u<8%N3 literal 0 HcmV?d00001 diff --git a/sut/frontend/build/logo_background.png b/sut/frontend/build/logo_background.png new file mode 100644 index 0000000000000000000000000000000000000000..6a99a33b49b383c61a459346f38d49466f4dec7c GIT binary patch literal 1436200 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�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 z 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 z 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 z z=+OS>PxW$KE1_~?0dvVpr#?Idv0i}Otl({f9@A4}AN}C>|GkfV&?O=bwUxb>E}T7c z%Hp#WQB%s4*Aj{*g&IT19z85B47;x$@x`M$i!Cha>@0@PX?C6&IFDp~g zu8NA$p&>#W_*HFX8NZl+^T@XVmZON?hPcPg6#)j>&?y3^A3KJL?R|IMrG#@=u1!sj z8_UBt-A0n;m~erv6;<8nK7g1SBU9VVi&|Vhx4JSvGBo3Q+=;QF>G9!?)`s1kEiAzn zm*;u&*}res?%jKF_s1uv;^LLS8Q4#U@*#X51{=b#VB?qxDp`aHt5t|>8@?`Xw;<(S z>>KVIp0J@?o0^kLG_p|yVO%CdlI#ou2HD>qKD57~sd;5$#r+DS(?9)V2GdaI=GJ!3myCc)W3!M@QA8tnX=>^&EkXQD&cxjv+@W5* z-eZ^V?(PbV+m@`Xg%U0<$Bk{qpQ4^!Z}Brzv6v05wmI3cG!7m*!pOnF4VsZo1e+)% zdN1J{>a|Au6MVmFlq~uQ-y;btda!HUol^d3;mT{}~>hrnC zBM|iOjz@z0%Z^IZ9Mdn0g1i+9SZh#jlayj|A96rU@io_-t1BwaiQ^MTxsLtsA}5uT z3r{VPAc{;4h!ZzO#*F4#1gzuSVB!4a?3s1C9k(^jvWt;k_0fd%Q~F32L|z1Pc4?xr zG+W;3UE}Xsy$h#uvgOUF6oVrhH<2 z^n>qvkH+v(1L{z7XlrHU6qJUGU#?!e!AY}4%GL|x94SH>iGm|e6^&S{l%-dnySmD_ z^;pH-8Fq0QOGbkHrL}YsZ;g|YeJ3$9#F3l5rL~fpy5QE*95Mj6-FAzC>mIJb3Bc+2y6V21i7F?G%?4vy02++}_obL_hl26Myy>f8Eg1f$@A}V2p$u zEOu_sEjiCZ2ilmZ6n@;v3lsN5>s;N{5!aGHAT|h3pcQ>R*ZSbGLdfl5MXSb9z=k&sd99Kw*rq_Ytx)}B542(o?6P|reDxK=E!g?9*vV@Fg5 zML}&$b+uLQ7%st?%TOz*7xzQ2m4>lhLJ^=}p{kl(>(GHF!h&RQpgG3_w^oucvbV0P zGirn})01jP{I>uPM+61KCAO%tsx9cGFiczegL6DKbG!5{o}dkaJQkf|||fBRb>vXwNp zwYiBO{A33Ymx-HqHJir2Ssd^Z~P4RODH=U3UeGuHx*dXvlTUdIJDK z)O&sLm`#s)Hx$;Y*(6Ou75Eew@22Hii-{?_NoS~ufQzLS_Y;To0JM<>{|-fP(@jUu zTf-Z;55)r?bUB1%L&!}#e&A31pF9pCrXFeBOA7#|s;{IkM@9*+=OVb=H^15+t8_?oRWL^arJQMnC^vejoqQ``UmKmbWZK~#qIN_JMd z!G@KUjsaJLeo3j#I0{y1Q<&2?XD*5P2x1rDjoT_}kX%~c+}04MI!zkZ!IRUQ>y7PA z4JS^WBaD61L$BStckjsPAlVd-2d_wMZ{>oL&aW)caliexTTJS6C(aM{_p$+C%cM;< z0-CO^qZMEQUEt`=jV+`ocu5T{&BlCiBNVrmjeVFWl|KEQ^2LRZ9rQ`hlS)^u?wm_G%_|man&M^5$574=*&=2izS@| zxfwv&pX`ga{)>s?TfWwFO*=f)^ z>OFP@g&V4ks<28ep@G4^rk1w9{PREmNK6 zuL(soQ1oGz#9Qmg-2Bw^Z1bK@O*(bvOh?=6@USK()~MQAULaZQP=`?!%VVT3(OemQ zr)$@)XGg70{cmz zz&k(6$wlQrek)l(0$uRr@OF-^g<51U0!6Z1uV&{@O3URGCA=&kqXZ&zvRqDn=XjrX z{)~=nKlxK`@XN|6@)q6MSxE6UHzt3|;iBb!3aidn&vu>hZ;sijHwlnM=7#x{TP2WV zOouV?mPUc;go!bc%)5B0hk}c$0cn1m{#fZU|$_1vBk=;|&QWT{nc~~z8=Z95$*s`#D(#7L>xR1oUh0EN2>uuHb zb<3D+qr(txwpsIY&W7-k!TJr%b?=M2nK0VF`i)2W`bKK%TZS3T;(Y-6{H4^paorS$ ztB|B5U&l-;oO}n0S;^Zv4D$7_dku`?*{7di`8hi=^}1KSa(Q6}KhcH4(1qCi<(2hK zZI^p54G)h(C!B!R^PWAs0*6>xncrNd+dVrqJu*53a$WD~b2@VD6JElp3q!<8E0=@4 z&Ah3E7!=ve*3-M98tXcS38$v6tGc6WOnikgnr&c1=6C!Tohk#9a$-_+@zPPe{K@(p8;R=9O?wV^p#h!Qn8W*rwa7LqEC zk%uOr#i{6E@pExOU+c#{_n8mA|6ROYT)c3`g=e)in*x&wr3+A?vuhU>_OJf!xBlaA z{|W4#vwt?wGmZvK)X=O;Q&zIU3Id37y%#$_$3U3;hG((By@G$4>^mt^04|PMM9#{> z!qI~V=!q>Yj9W9-CwhykJQHWf!XX_+)_@;2QvfS|QJHSU?g-Jd^M&cBOKOphA;Jjd zn#9Y`z~rTk35t;d#lnLY*{&Mkc;njps0bZwKmo^G&vyGmgrP4P|hyo%`RIOa}RT+ zupFwwaVR2^ykWoAK1L=&0ILr!3>A**eAUj%GG@xE_XSR%3pnw3Z-#?X^6!7~kMOPU zyzR&xuecY!cJle>9(m-Ek3IY$sBL>|16*-%;D)hxL-v_-Cu{11Ge`QSYes`u#IW4| zz+Gogog5hAU}x0@$Td~Rf8gPdxX;yi(Z_(mnMa$>ri?odR>DcBHYma5f`14gDCfm1 zJ*UoJzjXP!)ebof87Jb<5T_>y_;h5zQz5A}gel`%ML|by31F!{yz;GETowX~p$6I#E z1Y$i}K!AZ_VK#AZ;Ml3;#I&^s< z1Vaix@F8|H7*21)XX4Wb#WZt}{p0zuTU^hsFF3in9-mDNVg6Ellb3t?zM z+b|4rX2OLOj*^W=0#G&-l6FoA5GA0i`_nLX6h61K%$>%{!rU`YKlzale&C(o_tx&N zw#T1%s;z6U8WDAI8!;eUQ9fEL$HWba;iZs0U~@=vUjdG zs!xxYIK$E-oLeHhkA4=<%YMErLDaV+%Z{)@ay?rJtpZcpcnSL!a3KQmGd~%Iz>HQR$(wFiA^qHI?fAcxb!6uw0mVopmJN^rafd3;D5XwO0VMuSAKxB@IK}z9R z4$yYzf3z%k_PI-SMkzQOpe*C%$Qhg@Ofzd# zAC;4fGN2x1=x3bG!FG2A?_nXRHhk z_6?5=(r!3%=um5Sw|&`r{o35r6mvDkPRwno?CM)w99vNnKFBL-|M<&a`P0AnR%=Js zn5%;(mKU-0tFe1Sl?Y1)ip-*`t*xC45v&y~6<2~Xih|L8?BR!Rx%HN(pMGknzrUVh z!0Phne)!`vcIMoX$&p-P3aSlc5o2ol^cfausZ>(!*y3sRu^=kjA z(-$sWzH#YlzrW!zuI&irHy7o+y&CQIB^!NPgFaOe;9(vut)k{~-oGe*gtff}8z-0$jc?P2;-MjWr&aC|Y zm%jWLUwfjWrg3q-VrYC}Vk+D+2lgKbx7CIR$~|HgKa=4+2YqH@Tt!1Wr`)abO_5?{ zd7!W7-EVvI4?g^1+O}6NogEpx;Z%#0Bb=zXvNDt^wEkO9JoCjr{xjO>o0WAVQ}dJa z+y{gzj1i{m1P`pQt1J}i?LM_2}Y~#?^2_GMjvHD6Eg-$+j*KM!7 z|4zil?DQ0;?14!@P9cTM8>dcRymXC_e0nO?MIhABXc6cRi)X&@An?ePwNQkJt+K9I zo<-)9yH2B`_gFKy&P-tdO$M6g@#PqwtSpsK$8 z#06j<;){hZ8KtDKMycc#J~);u%W*G<&GLzlzx%-lUrC@hJ~n37U{tDx8{p1^t9T+v z6oV=X=&=fB=a#Sajy&?{)5lL-o|+4=MG+5#0zGJu@ZY6hsDi*>lT|Jx2}}V^fFI|C zy+xVF(Ur)(Eg+2Ek;Y&$$8-+NFU;F_2HEO{D$Pw#9NFLf@sEA@$g!KJM)}{m#&FkY zb+@(g1*|V;&kdQhunFZNX%me{=3~v`=vOQ(%U|D#2VbsA} z6x)wrwn8AB!Gvi*iYX>|F$zJz#?Oihj$p_P(Kmo+@Z77akd$_Sj>XXvZ-|y zf8+iLKLJS>cv<`bkO)2OR(HWuH3IBrXRyn8VyJd^@dUxs^h|qO2YDCu!L+%|BOf?m z149Nb3aVOLTlhAD^|Awk=J% zkPX`FD_n>z@Y{U4FOD8JY+>G0l_VO~^0wB-eS3Dfq=2vjM;+NiriQy>!e{5^ zCug}mZNVl$G95X%hhMnv_Li=;w*KDUC3>qNtm9q4X&c@$=sH=qvHM)Mu(4*eY)^}G zc6!oW zZc?wJZfYtZK6ZD4pKjMCEezY3kj*9BCiVsTII_o|$k0=YO&TCqIK>A#BL@5l|4!~W zgK_}Dsf@tV0z%2}41|y*(mn9BfCCB1&iGH1;4hZogEWp^ILG7mYZc zunjEwuz&+YqAIiIhJtB8jm%}>>d8xE0(4X}hWf^vVId8nheRnyc>@n*H ze&7gjUCY(07o7^NEzL)c9A>dJ+SB8LEzYr5R~O;r^yY1F&>RB;h_9%sf8?8w|CitY zLmKq6%WFd;vpoMeJZMk4q{*2Sjw2X{wXuiWz)l9niTtrHc6WFF;y?SRH{X2hsb`=4 z&ENVxR)2IX-tg*Iz3t7fn;9R%i3e~Uw_zN(Q8qrc@Wj(EUb-@bM_?T9xbu#^`}UnW zedhX&fzzii+~^w^aahgqSh%^oUb?(Sw+A@hoSLUA6U;On50oJwHE#wu#KfxM#*y|8 zR`>pWovTapKllS5K5}5s;6NX@A$E-Y0z$cYae8|3E8lo*Y-(X@h9;4j;BY$5NM{D6 zPiQh70Hfy^rbmM_NY{00e26*2zxtQ|;#K$EJ=AlR^JY3!zG9xl0MLi3sA+2H>>Hf; z;vanZiD#Z~Z0kUuj7-eBG)-gqDaCt22jerbf*}75+%9m+;BR}vC432O=70w{?x$m_}KKkdpg;KI6)!L-Cdo^P?ya|tb`x{(@3I;{^|Dv zhjzULd_-bWY90&PdS(nRv|6Un>^u%xe@tldm~Od4*Pvo{3ep5Lq=Kx8V-w@uapetg zy@G`dT+$NJawi=0SI^*)!PHKgA#`VL4m%XMw`r6{$j{9-8xj1;zj@@_sv`q}EW!_9 zz^pA1Dsjq~&hWp4Tm+5-0*Hbi2iJ<#L}MewRl}GqIEIZUn4@eY2hXdfOs)B9_Ji}=c6ljbeZV_k}1b`EZi`7755mD8Z z#wn(O#KtK^q!1i`k^y9nYc7J_ZDGR~70WVmS7+M~|G-D@zVo)Swbg;X-o=GkbedIJ zTVH$hrkifL^^OxKUKkvjwQ`bpCo__mrtnx2E>p@%*H8`r^~;ale%s!6zWuEXAx4IV z^i<2Cm{PYa2giLEqXz`T{i}iE^JEpc2*cm+$%us+G>!(zvt5 zZ4#P_7D9Jiyl|2G;9G9HbviCm1Tlgjfqz5!>|Znp-&wW-g-JvLy|CuyR(_E|OfA%G z$2gf~SZ-JvC1uova3*YR^EyuBh}H_S+z3>Zxq*CaWaRLn!+ZAbhN_~wpr1;%my?V! zCY8fvIGNjXjnnMn60c}xM|Z#|{+Bcu7U>NMUYc8&o|+`Pt3y>+RUSTYkdS6}X2xJb zf6cF5Vhj4wcHl~c_lIcpW@lCx;`oKefNN~#i;gcaY zMLA8v=~XEV%5}EmmfKFV0LnXq{61N63W74BV<9m+YOFQAVRQNY+l}wh?+(Q z`nx*Xka#1*!#A$q05Pl`gHT(^D`*Mw!&q5_mK>SA}_I9pY)u0QG z9B5&fvqK-tL+obit$9nxPc5hI#b~Otvm+SuL7XMZeH*jQID>^@63sP8n=uo85AxX) z7OgJI$sE&!FKwet@`7vyzL6I7)-QWeITmD$L?G&TC6;g?)sht{b6wtI)E+gZM>sc3 z{lfVvK1m#i`1X^l^h*PzcO-Yl3#kFkqN02C9IHWYqT~>%TF%9 zNS3RWIH%9=+?bqAj5lVU;C_&4qOT(x-h23!ctWb27eh109p$kCXjzLkeR zlBK6;q!~-qMK6L;l|SbeDzX;Yccz2}1IOB9KrK+8 zibqK~oHG{jMIa~emSE>wQ>7`omWNUKsUxw}az?p?y^HY_U!+ljEIX^txx{Y;wwqV9 zM;~H>!$-R(&vm?W`PO`j-yR1)%5lPQp5U(=Lj(PwIT&|f?;fIs>4Cn6YpyM0j8S(EsyWztiBh^NrGJhmZTY%EQlrlNsI>s>7S?GC7YAln5Lo z_Z}JU-PPUkYrpa`Rr3qZ>*LON>0sBA3F3tAfB)iq2z3EBGI`3TPJ3w`M$Y7P zzDOnfrGg&%-@E&wuATtlXf|n&svIMs-y+^_|`O&z!&JwuFA0&+yct5+`0f^)GsE{KJ3nV~6(d8iSzFeu2-?-Cf(jydw(2 z|03FeD&ROn7s$umMH?>SH}Q8H!ft@4{F#NPpM7p(k}sxEhGECa(%b!Y+NmR!Q&haI zYNu7UYGTs_?nr%sZ$ByVYz#u~yQQVSLB1)zvT|{iqscf3S$ZI2=;qcpU1mV=tw&$D zcIo1S58U>u`tj z@i)HqHFw;8GlgR}GmMRmOihi~g=A(KZ`H7&oPrwRdxVKO<>>OzFoEW-FTu+jxRKe| z7zM|n8oC!|@Nv7d3v^M7&dd^+i?PypBWgzU1g@_o_=X4}9hX-e9MSlMCZ2%`;wsKH znq^Da_4LA)7NCuI&+mBKTkg5{ZpnKuUAcb!I-f2y>=u{i7HPNFx3T?DRb723Q^`e8 zM)$q7wKkMzTtU4u&jh=_Z|d_u{-Mu)`ct&{Zd|*p(tNg95%LlY8zOV0kJ@I9H zprhKXTGEbSlw$o>*IJq&anRHuMH3g?7er?+R#8rcSW`ejdcgh||Kf{j3{!uY&u zcxZHFcud1|K^aZWZk1vMx{eXyzVnf(G0-x~-&ifhkT$>TE{SW!H%q($+r0{pSJ?0Zp?@OXn|NzUR){fiGed zEQ%GbRX1Hkz;Rg+=jI)~r~7mD^}W5lyLaz#(7*WNi%qR9t!-VJih>KDj9Y}L6|}YT zV?hS}V`q61Mv;(FuuI>qNZsFha*Bj88Wq2g7AbD)B|Q)uxzb~eD>?5?!Zh(YozikZ zj5H?8BhpVhH*XCM7LZH{z6$v1E2=LyCY6w}pj_CF_ZD^(F|m2K(Lx!ctJ}C){^>1Q zt~6J%qo9|9x$zS34CJ3h%uA^Y{4E94C{3=JL!$k`hN}qBnzP5()bY&emCRU* z^i|k9H#LX-%*DpfR7?3U{PgE?>YeYLO-%9RoH7T5-|^%Gz6um+Booe$@XHEOx7KUr zc9LjQ@ocS@)T?xc29rh!aRTiqR^D7J&43h0Yp|$kE4!>)W3gSn(YIjoC;gJBR zFKG*e6tbbd1vW^G`M>n%u~vY^FM&^F}$3Ee9TU>N(5~_+AT8_-7=8o$( z1|NC!DH3*A#h(2K9A*rHT`@Z|%j+7f467sf*+7#70^YdV_%cviJQ~g`u?)F00^k}O z>f1XzNdQ8M8$KHP6w3el}&!f{d&7g5HYOU@w5?gY@GX9_>C ziZIoz2}qG!kbmZV|@LQr@!<^f4;t1 z>2k5rN%~Q->|nFO?XfB_^J=P0lZ!7g?;&=0%rTaU$T4m>g0UV;OT)E!aPk5#gnn_u zO+4M%(fq;pzKc)Psqs;#j@5#h!h)8m+oj7lPMx_pyTrXXA_*l{<`Nvr0RB{BH}Wa& zSb|w`94=!>QOeN?ZbiUshCGL|91c5S3k)AajW9@ZIE$M%#l!sr_f8snH5}L{Ep00D zSauU*Bi!U)y)@C@T7B=mcTY`>!@?9`b*2+U^?}607^vh%B}isAnohoO1G^ia<;Q*2Td_T;?I-u%kg6 zJ3=G1+;SCfj3IUeJIEx5P$lvKpDg-ofc#$;+KwxSa>FvQi&cnDA~Ru|*|B7hUk($|rOR$tLO z3y5d1n~olS&pY4N*3mdIJaGEt3A3YYxq?cw;wr0e^bY*xUq6a4rtxL{5ZKvD23cQB zS7ljAPtWC#edxVE^N)Y3sj-2J_fw}%!0YWDNS!uV#`MIX;1;kcP_khcujMwdF}Jl4 zCK)Wp@<{k}J|~2OW13W-Gpdm$5hFkBf|MZAS4fz-4swWeva|$3#`xsf=dYqdo#ECe zG}!7=HHN5lZ(OW!n>zNg#l#Cj5c{5O=22{~Edsz=i9riGEl3yJ!>LH0jh0AbZIy)q zMD+FcuoEyuXbh{{=ItFA8yuQcyKrMu3k)4vgmX=XW9w+JRZHj*zG>IPDHaAqB92&r zyK*<1-dTyJtPHd?IGkQMz(< zcy4~SzOi1GAZ|!8cq4#?C#os)Xrp!$z>H^YwX>^(%x8Lfd}RsrTW?_}u(t8S3(xP~ z)!o(A$t7qo_Zj(UQ_{*X1(rcaN1Kiej|`hu@&WTMmGC?&4%VA)5eXc1V|{9D41}Xh z*xk|A-QK~-czR}(DMStp51LbTf$$B@&A3R$$vI&ntY#Z0$lAaSEND6~ z2wSTWXb$}xQ|$54PY=Z*E~3a_8n7ES)^>NXRdCS<`7WVok`L#=#_w4SZ zy64tN?yV=sM&pumH`!N|9X@jS*s+`JJGB9{WS@}LmACc+F8NFjsTh?)s#1r8hNLOddE=FG4Fh8M}n9}6Za)CLE z7%9c%a&lgc5hFf-l2?0tvJH2Zv;9370n+D3fl;!y!5LEfQ`@5#JD;s&sk6CEnE>*f zCTEFa(h~*l>}KkVT?eUCtf*Mj?CeleS7F5PT47MytgtY(5jsHYO>R#5)o-Y zUh2C9xy`B40LV$q5*L9*(XyvfqV)>NF)5hiBRc)uYJIM0J7px7-IJRYskfh)gY+{e z&@7K+CLqUq=UmaGFwzYnL!Q*!VhK{380hU%w? zrg}h-`Rm&M_KQFL!$0`&$>*N@<~JYh=-i79d+KCwTYI^SA8)^7|L(oJmzH=QpASl9eFMY&gHy;30)&al84g>frr6a5Qx*ap_;MOHwFeefQ3gwK%)uiG`0(jN zg$9TZ3H}Co0>y5Y35^|_-}p~MqYJF7alEExDeng9g1Rsbum;Ehw40kz>i8MiGVic(e*l)P zW%^8@<79qi>C>P5p|`y0brZwAm(HC+Y|x!Rosn;Xu}~M>&&M8p=HLIums&JqZDVQ< zw=W%Fu#JSEP!cd06j~e!HQ_=qP?@AoVBiCoh69mc)rW&nCx#;gRul%iWnmFcpnvaO z_aRbdXC|O@Gzs7jlxvB?r=}JzT)fN*a28`~37%-n8$hQe!->G3^2x!oU26+aNjF#yLooi9ir{TSs}|u`Y_6@s&Q3NT{Bu`j-j4GmepE^$GNO`cy#;=U;LBH zJt59AXyM4bvWgXTV{;=>j7I5#EM@`>Q=%b)0UBL;2&M+gqb-)G1VOlLpI)KW$ORVA z8hJ}$HsltX?L@Wxo#ieuVA*1RASb{0i=TVvn_peFF}t`pS6)G>3dK@^m%3I;`+4=) zP3_1cF1sFj?E@eGdmlb_?3fnt)p+B=75rCsO%T@crqx_umsTKbIKbWVDwG%%ne0B^Wq*(!!I8f6%C7f?mCEgHSN%#;hnjHUQ-TmmN|%55T#;mn$%fcB2IEzqP)a52!nC=E*Uf{6hTg zPy{J)D_pa#_UcUB*AhYx_-u6@uU2kIL}>)2OPB`hH5&SXjY6Ra0U;b6B!XFt(J*^e zr3}8x_8mG*ve0ww+WO{vO?M-i!Poxw(RaM{p|<9>`Jn;#a8c=ujX+bV+~wH|5NF$s zM&|jemf_W7x7C7a_05fLlW;767&PM>8=G3&+r|b*4aUsmOar!k8TF*L!zDLezj|e6 zeywkCd{=jSeO=SaZ;RfcJDQmE` zE1ZEMDmVn=OVpAEG8w0>y6t#w4&nad=`#o4@qHGjRqFbQgu;g`tf{U3mYWXouR1tB zWf9Z-VevvA40{ZGrYhxt2Ludtuzt8e-P{BZ)!|6Qmxy~dun$T~(R=Vx>#Cx>88U81 z8?oxL0G@Z;e3<0KlCUE}0VtFi9a43iNeqwok&4yTH7EoQZjv}?KwM1BGUi$5@#3T3 z|DHem)Bifyd)?yc+;bqUv{*&#hX{XGmzKw;C#{**+WOPyFSNC{-gNY!T{tqzc`HMI zvWKdq7`X5^^ zV({H7HshWFf8Z@ahUqXN>7DSXgce%MhATflZ3lxHn!^@nbism7usx^AKgATKsXr%B zZ+`sL9$~}f5mu(3vIyt5fG4Mnt@%BlnA=>>O9_-Ct!5}WSEq1KjszCMXe%`@*I2YO zXDli$0@ikPGCjG=(X!O$+^F2(9QIa@uez8z6gaan&g=2M! zITp?YK#@^Qeq>j28sx26+|IkzhN1!Dg-J4`*IxgNN#O|OWa5R3Cw)zw-|kdyt+%YQ z6!prIKNWd%KqFrkcv*s?8RB<_WmLFcdkd!;qmiDXgxvW2HdeWW{4=M_iE~WORkTO3 z5x-4g=QQ3sb>NDM1hz76^=9jfqZH-`I$XYT0UH}Gc=X6Yp5y0+hlYpxsgh4mO+d=v ze2K~D>Z>|ep|`Yl{n?-W#ee+If7`jcoQYSk(}rG;x91Jonu5*Lnsg z=hp^?=g?WM0HPyLv<+KgqF|)4ew?zDa9FHkNqz1!pT74Mw=w^{boLY^h{>)?03cOZ ze$Fdi_uVc3>%aM*360_DlYFgjl!UT1o(1sYbW7B(Ln|8I+(1B$rv=xf{cIhX+2G0{ zXb>%xIOlR^N=*{6Fb;8XX%)}ZCr_UL*Z=o#Ry8zG?496c z2KJ&NIww^XC^`ZM%3T~m5QZR`tR&kHmy$A&gT=x_GFiMd@9~`M6W|)skBcQ4#v~-GgG+Pf%%0xX<7f^=(ER9P0TDzOfOm+yqW_1VaV*n3zg&0)Q1g( z?Of+4I*qYO(%{4Ff86`zAhzv+#y+qZA`*yz~Q)O2-i!~Xq; z+!w*6SygrYsZ(b!UB2|zx4!j9KljNW{>;ZanrmG9*4uOW_;XJ)q@~GbFcpmugbBe5 zVUh;ZsJb%&`a;LW&7r0kMhp87tYyuGTww@-1sG&!Y01+3%+kV4?~UstL;Y(jmND>% zBOY)U6bsfrDH}`*w(3`m13qs6I=@m?>@;BD@Phz6-f?(sGJ|ndZ8<%lx#{s+jvTuE z_G2@XV`IZZuyRN@4-WuUQ)45Rzg5!F*;(Jz_?_>ZRH4a|*MK4CEmz)lx;t9_$2O>-e^cOPB%kq^&(n{T;a7T zY4unnmXk-kx0DIiY#olm=2Quaf?a8_L4erlxnid0<_Cs`=_|r7Az$`vkkd)gA7lh_ zF$L8q-n<9d7Dz>SWHSCr4(!Xyh}DIk5-18(5kK2T@B>MW%tO~TH`Ei}V=?(J^H^E)tcYqB0UiD<8W+$+SL*!x|Ak>P<(kd$@Et zXdqflq0k=&5|b0`t;4RAW;3Jq<&hm^nkVt9#d}QztR1ZQU3) zph3uWT5AmJS691tbt47GMqE-!1GTidr4^(^!#6g!f}aS^@YzY4Jvhh_sw@Zh?&Yg> zVvO1n^HyCiM|@fWcBmc?3=Y9;DO+j@F(IR1#-VtLh49z>;K`mE2=gssvAe9=0+!0%4@3#2{4jWOA~?!6mnV5EvB0~ z=cezw>$d;tAN=Tjci(>ena58Ye;R(@)jjgV!cWq19k`7I5lvhu?S`rcwIF|l+mo>Mzzor(J(8fhYCzaDyJX#=I-Od}* zTVwz*t=l3^xMHc4VDPQLWos+3ARqql2MFVPuU%PNSupwzYgk-UQyVYK&mMoloo0h$ z?h;_}T*Az*p{3DK1mhg2tSaNopH!8X5MKK~_vueQ@Zc*)7;Rm?$f;y@wc&gL0WrKV zdO z`i4p~p3lh~X@cXSg`vLLh6bSAu@EuN2VhhKofL4KFL-OF;JRNZu zrSI>2`M}kF6FPleth=@S~dK2nd7C(Zo6&EDYD6-0}e{XOi_-F9W z_0_J9jvxKePr5qy&O2^lOE*6^E0%c=N&rbFy?US!Fc=#FZtLb&jC*><06;p#8}GU2 zUcQ$Q0@rVhn;^bi0&}Vh_P-@ii#`ijodK?XtOq^^{szFp8;&+wcmZ@d{7DWd!ry6F zsu;k~_&2AzU@t~fNC4K|uN3y>rW@HaHa7eCn>mI=^q$I4EGNV ze&nMc`t&D%@RnPTtj&%O^<6*l{BfAN3q)-$(||pQeLFQZ0bN39p?tJqX%RBS$0kLT zBw|A@(xzHZ&h@zpiMd{kaSTbff9I>DJyE_XbZw7i-&lkt-0~ok%P;NvjctC>#Ml|U6zgd zVDP-8prS!NthK#!SM%J=M9+-{ST3>z0_nzU&UJqDv!8y=s~@0Bbp7&$%a<;MwJvpg z@*;ZJr9rR8ZN1BD@V0y;nRF;A%-)i=(lVIUFhe6jKHXtdmbe6PL1~JBpE3sI+)fz- z8Z)k=pes4gl7Yu6HhuGRi@m)A3+iDK#XE2}0}tz|N*P1W5}wFUThy z*CY!$&P~fXAtq6Hx)Z<_@YPS~K0SD%MS6F~jvmoTHk}Y=t1DFc0h+2>PAwtJ;XfM1 z%i5k0vzC5^DqyyO+8PRDqYh^U2clNKjbpav=Q!R8D#Q*ooHGKXr-h>9NP6!e518_}(=FHs%Q8G9 z21expA~+A#BwluG2Zmml;s#A?hld8S$vZmQwGeve#t$Qovb7LwNu&#?2;fhS!KGvB zQB9ZyN*kXT2XpAigIzFbQf^HpqPq3wTlxq3GzlL^Zw)wI8q#AX*^^xE=lPdP4h0(qF5%d~>aUFBH|)*A(xZZrmHuq5-Ez|r z!;1h2aSnu%V1X;M<(0wFsiC1MOPt8?Lu-fw(m?F}Ga@8Mb@Z?xEq~ zp^?#gUJ*jR9rq*x4FQsjWa#;?>mWDSXrsM*c01**TL;kWbU?pY=P1&&+M(P)F$RkM zws&++(S%AHhogg5pBeGL1svFa!u_zYtUpjoO9T}KiAX6Um91xXz`@92PXwxw z5ZU-`LL#A-1gsAHBy!{@?#qnZn0tNR-xt%-y z%_ZdO41y;OUUVy$DQ`yHb9Mt9r%cfErXzJEsl0B?G7A>JxY8KW0|7NzA@OPg8|&B%`yMQJ-y3Kvf&7|xpIxg+t*w| zPL{((jN?I*?7){=o*Jnc3e2tDS&R6hVoz0E=RwdS4Vyc47RjTJAlKvM7?`*YViwS`ts@X z*D7lpW){~5Mi*UZxg3HqXF~%pV1v|#>x)g=)ow6-^#k|(=x0B9ZCqV1edaqa^z@E2wKNV6EPn6x9e zdW6HSHRD}wb7kpAKJ|$QUlrItLV~d+H4jsbNKi5S-5s5mFZceNfA?E6^Xm*5-SRs; zIZr`=NP$!y2gih2oplYh5OVx@m~n8Xu=+vwigN7cgg3-)<>zsgLB{OZ!yo?8M?U!8 zv7x@fp6hsWVdc3J4h;Z&z3k~9{@4HJ-%U*$v@(vFX5kp2;a$any0e`bt4h1OyUYVb z#Gfj4323)Hu)3@ri(L!ynv}wj(zMYo7@k>$X+vFZKX&xN`|oM2s~Q>Tm6-uIEU=}u z!wowZFZY}|cLn=@Y%2NUFD-%EsuY7COU#6rF5BDb8v>2chbH(A?8?TlR?%(_BurMP zEX*d9??dla1Kq_5l+ws22e7fInuJpqS<=}-OU*@f)3@Dx^aCGw-}k-i9W5Qr3sd8R zgMC;x7LGK|DV+i>VK6eO0{w&g>?pOu@%PMxql5_oXPNnk*roJP{*Je}j;-GBd`d#3O6R(1bs;Oza>`sVxVtE#W+ zt+(D(Z@ndjBL|ytL_Jzr{hqjr}DSz#Z#xJ)wvOd;`TklGVINO&`hbTaEk z$FfFHaGIu8p#W4s5BhGJ)6rr$LQLmTu1kng{KuG@~Pj1{`c@B$5>p^*GPEf?Lo!hrvedT^}8OKM4RfmFy z>M3AWG9+s+Ii{n#>xzSyZ{M-w@&j84LV`^#&CjhY&wu1YKY#CA?j*o*z;nR1=#y3k z$U)G>Q0fuF8_|}MV1(F$gLX)F*EZNLgNM`$`&k#W$r+yO5kM;FrBX)C6`);?X9!UR0hwa!<$|qSu(#w&`;RDGAsu0OsT24#aGQ`uy@Y76%UM8@0d9> zSob&uq0(&XHn5tIt?li!$4MdB=4P{Hy|1s=_Yp?|ILkM{gfhbb)ZDBpnAy?ZVHT71 zX+k^?RcN;BX1FE>r)Y=(t_uq-PR<({*}Y>s4y@nWC^RPnND{j?Fz2Hxz5RV*kxr1J zY!SZ@8Iv|toY;UQWGY|K1^_qi*gI;L#xcATtydyo>QOT{BH@0VaNp79AmbW4UU=nk zIAfp)bO;1v#Htw_pQ2Yg@vN<-(b8Y+Qt0lOo}ARCSQCp~RS}ERWJ8iWyEgX?4oyx> zAu_lNNym&vshXQxizQ2Tvoe|n*2m22j`sG+iGnp$BVsJlX7`AW1#jW7F1EL|_4M{3 zzx-M$3C0Z@&9o@V%OOZXNdGI60wjbG@0t9dhLE?BigNDpX;+fda*DfZDFB?50NKbYjh(+FTah~`CB=UhWnWni7GBYQF^U>yhtGS0rb&bnc#(q z{pYtbYjG;H`c-*kj>e@Wl|bh;aX}5`EBe27$*}eqy)9pKW=%`V8x8`T$YPYz`KTud zFR=`#4~pr|7NV@-bY(c^&*g6gz}GI7$Qkr2w1xOezNb9uXOIJ5gY@bjNTmFMc5=I~ zRU19^)0H3G%U4d%IX!1UmEp47|wwGjMuh zCxHzp5p>%z8ytfAf5`*qQe_P+XWSg-pt> z3V%S!C-79T!Zl--$GpbBi4fWw;kq>}^E^WjCLy?lt(SNa=i^vAA%Vq7ZKcV(-gL(` zS6*H!*s_K>F7PHo;yAXHW)~lS67+=7oSQ5PkRkvm^w>yMV+kd@P&;_rk>7=4NU+~Pf>v_1_lK}I%LCd(30TJuAx%#}Q=M1FUx zRgBq&%>cjvws=l-!aI(PjEK$;xd^p}!4#u3ffY9$^0@h|RG@BHZxJD*vnn5??*=Vm zl{YVqARDjYf+yDJ*asZS&c%xw>a5)D+cxuH5y42;VwwbMMF`-*!C~t?CY|$A#PSDR zZAeafahNe2!$!rxHC{_j5nB*wD0#Es7_mPmygdvqn9RjVe$L?v`NIx!n8nivRbX^s zjpifDH3j-&D|9YXR5M_jS~T0-D3+!tre+`j&&=ox4Zbcdn|=@Tp=hZB|1X&BL!)Zr)qW@M+hplZA&+eWwKD9NLgu2 z5&$L3c{LX=^bRh}RyeAgr~^Z{ZQX($qo_O-fgQs_Tznd7O;V3-E#sCgJGNa( z%Ex)?#YA3H16J!=6Uh=-;;nSqa!ys~m&qMdDO({zu*@P?$c1nkCMOh#nJfjqm*p;X zy4KgJaw%G_=G=hD5v$fwD!=u`+;mv9+6Pr6og^~5lHov)T;+D=rk1~@w){$V1UVH7 zf)Irhgq76{c}y9lqyiV5gnBYaH!O0e5r_-{?X+}n3VW-nXlHVsull{u{IVpM4#=u0 z`I6$NOL~5r)BVgT`R)39ewFXJpyx6~a*Dp?%g?n>txCXtN{m&qba{3~p0EzYt9*Is zA?JyEwA~f`jLZp6?rRyMUq5xNR+K6!KL?hq)u4DzPX$-uP|msT)oM$m$hkg4v?E>R zPy6+=*}To^<+3?{IcNE8xqf4r-{x-T8jNl(Xy9{I>Em(B>eFiaY8#_azy-fvj+2an z-&|a-uB$$C;`n%Bg#Gv6!Tn9Vu_uLj97R<*d50O$LF+TqR+c$ri*C`_*m~w{-`5}c zuE6}^`d_lMDtZ0Hq8MLONF31~dHz^%o+}j?*Z;SF@oSBB)rSu~-`9H%t83-wxT!(- zp6crQ>Dk4{9)E^$oxr4zAN}ypZRu*^0wh)$<0Z#X_I*1MkDomE{EMd}c!vlrcp&fF zdIsq*SCRe+_#!nUnj~6;l~TtAsI9$?@J|jgT`bNLMVMs3#Uwxh7iNm=%$8}H{}1ln zbK&fX>G5$(v`(%}kgT$L?f9y1fA@!6SM=2WFH=V#p7s#?#1Ek*HPtz_Y<{-y!kORy zH@|!9EjJAHUAS=iG>awkHVc{QY;q#)?PJmVfrO*h^`~au{_tNy0qcz;|4QVgyk-1ag}j?7Q&$|K?v`b@1}@XO0t(L^1_< zQWM%mKC=n<(SQEYm%sAEjxDX65XPtC*rcRCgcZ}IN9!&1ggrimNYYLhmKL99rNiGH zFWMj`dKj}qq)iU5s2j)A#6}#a#ge=11jx6)?cQzOorC=s1fyoPWj~5mT&y~Ge&DHR zU!0m%xWJA_JqO1tnoX(>%r(V_Kv@Jw!mw2nE5(I1X`L5S*@_ z*v>MCdK04OJVl&!Em|T~U}LOn5P)gTF~$$P{l2^Ic!S`Bj{6xK9XxmDq|jCTg=vDg zDc%gzFhVj4Y(YbCM=eS{t@aG;_C!LmL>(*H&$PwLcxPwZmhSeMnQ&5m>xJM=k%5D}CZGF+#lTj_aUP1s0lh2A2UDrhr zK;5B;U_`O-6&AaSuCDsu`1N0X``hlR-f*e+%&EhNo|`QS074J~$zU(BX(oyJMo~BM zi};ENpD7rQ`R~7JhiimL7nr71dW~7KUT1|6?Iqzs28<6sg~<+aFsPtZ+YpY+g^9`G z*p^TXcV{tPKq@)oh4bwtVM)U+9@B+vu#Snv&kzO!(S>{!=aFVbOn>#zU(iyJ0a{vCzy1P59?HoPw%7t_1 zEEL*LNyyXXFi8?FgFzy{DyS^Y#CfzdTVlNp51ARs<1*i8Q$S2#Bn%lH;{q}6h}7CFf)&%A&yF704^rt6M=x_Aw^NdILs6#9Ge9`wih=7Y>3qr8;GYd3>HmR zLKY_+Lj7cFS>^FDF46p89~8*obVincN7^K$K0+SPdHasUXxe|--V~6B8Ksdw2_m3_ z5OH8=WM($bMnMyND-=u4OTvVuy*B`2K#?EDc=Hg)mfBb7pcx z$Or;y2#6fqmzN6@;~unpba-$l2eHkY$3{ocJXU9zEGOf5g0tB3^P^+7AI*RaiJTRm zYYpC%=$_9x%poE&fr*rs)^;NnH8}q<;x{;Hs{%*jFK4X)%pLyK)zK+35R50pn{i+z z4-l!ru<_1>L5?r5f@kHVtE-E7K87%kauYrFq8daZ8y+0mvv*G@|I4;;kga1xj3yk9 zsb9VE{P`YT)-ZM%8XLj7$zpQ~UW^sSl);7?8ejrl#Ykx?02)Uv;l`=^G;3;-F#QX0 zZf2afzJ1GPC;mEd40+H;y_6^U)QES+NS;>Qq#%RP5OfX5| z1Xc{Fo{o=>S_+)Raaf5Dw>bsK>fhYgML8( zUC?D}jJM+QnjlaYpd17vr(@J)2z^jflbGZ|Q)nB~;ig{4EJM(=&xO{kDa?6hQU0Tb zH8IIULWx*1jTdX8mxojuf#y}SOJDahnp3X9bGe4KW<<5+E0_J*yA0)ea^_r* z#QgIoKf2nfay=f(&*dTtmebcK=JfSn$r+{OZ0_MW;%9hxzTyzulBTtrxRB6bc*ZV4-G zY-!s(Fg$Vi=qYQUGxKweO&dP={s(I|T;v&mjkBIwGUk;^$2fiZ0*7+$taxfTn8(Su z&S8y{8berQOe00&E@734)opLlU+VytBS>JzSKrMdRF7O~Rd``$s&aYZs)PIQy5o&P z_l)-SIxP|Evx|`3?45PK`nSLL*ocGO7cNaZREmmKRpt0e(f8{cYG@m@Bm43l_WLJ) z{70|7^``#wrv?2iPK?jbO!I_+QZyPsX=&?t{?O4s`>+2q&J?b!?9QL`bU+Q;l- z=&Bc?sMTSzfBD(Z*@)(_;gJzBvz=X_bI6nN7ayaxxzPr~@N>Ws*#<3)8|WkrTjmb2 z8W@3#d_q|Y;~87>l1;!7LWF=sO1CL(zBILG=e9due;W_iq5j?oK$JY-DLh2b!^cj& zeB`tZ0ArK3ZL>m?+imK_BAdhiN9}h->N@9uZp|JK*ua&ukFrj?oLo}P0(=g){Q9w!Yar~DLF z&#^=y&-sJ~lk{TN084e9=p-K1O69O~6(~YPw$qtFe37&Aim)U%UUx0AcxZ5l`8-zJ z

    =g_dLgQ>#j-ij*!kxip5RJlC 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�s+(P3rxb_ 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