diff --git a/CLAUDE.md b/CLAUDE.md index b29f6e82..8ed080a2 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -1,427 +1,156 @@ -# Claude Code Configuration - SPARC Development Environment +# CLAUDE.md -## 🚨 CRITICAL: CONCURRENT EXECUTION & FILE MANAGEMENT - -**ABSOLUTE RULES**: -1. ALL operations MUST be concurrent/parallel in a single message -2. **NEVER save working files, text/mds and tests to the root folder** -3. ALWAYS organize files in appropriate subdirectories -4. **USE CLAUDE CODE'S TASK TOOL** for spawning agents concurrently, not just MCP - -### ⚑ GOLDEN RULE: "1 MESSAGE = ALL RELATED OPERATIONS" - -**MANDATORY PATTERNS:** -- **TodoWrite**: ALWAYS batch ALL todos in ONE call (5-10+ todos minimum) -- **Task tool (Claude Code)**: ALWAYS spawn ALL agents in ONE message with full instructions -- **File operations**: ALWAYS batch ALL reads/writes/edits in ONE message -- **Bash commands**: ALWAYS batch ALL terminal operations in ONE message -- **Memory operations**: ALWAYS batch ALL memory store/retrieve in ONE message - -### 🎯 CRITICAL: Claude Code Task Tool for Agent Execution - -**Claude Code's Task tool is the PRIMARY way to spawn agents:** -```javascript -// βœ… CORRECT: Use Claude Code's Task tool for parallel agent execution -[Single Message]: - Task("Research agent", "Analyze requirements and patterns...", "researcher") - Task("Coder agent", "Implement core features...", "coder") - Task("Tester agent", "Create comprehensive tests...", "tester") - Task("Reviewer agent", "Review code quality...", "reviewer") - Task("Architect agent", "Design system architecture...", "system-architect") -``` - -**MCP tools are ONLY for coordination setup:** -- `mcp__claude-flow__swarm_init` - Initialize coordination topology -- `mcp__claude-flow__agent_spawn` - Define agent types for coordination -- `mcp__claude-flow__task_orchestrate` - Orchestrate high-level workflows - -### πŸ“ File Organization Rules - -**NEVER save to root folder. Use these directories:** -- `/src` - Source code files -- `/tests` - Test files -- `/docs` - Documentation and markdown files -- `/config` - Configuration files -- `/scripts` - Utility scripts -- `/examples` - Example code +This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository. ## Project Overview -This project uses SPARC (Specification, Pseudocode, Architecture, Refinement, Completion) methodology with Claude-Flow orchestration for systematic Test-Driven Development. - -## SPARC Commands - -### Core Commands -- `npx claude-flow sparc modes` - List available modes -- `npx claude-flow sparc run ""` - Execute specific mode -- `npx claude-flow sparc tdd ""` - Run complete TDD workflow -- `npx claude-flow sparc info ` - Get mode details - -### Batchtools Commands -- `npx claude-flow sparc batch ""` - Parallel execution -- `npx claude-flow sparc pipeline ""` - Full pipeline processing -- `npx claude-flow sparc concurrent ""` - Multi-task processing - -### Build Commands -- `npm run build` - Build project -- `npm run test` - Run tests -- `npm run lint` - Linting -- `npm run typecheck` - Type checking - -## SPARC Workflow Phases - -1. **Specification** - Requirements analysis (`sparc run spec-pseudocode`) -2. **Pseudocode** - Algorithm design (`sparc run spec-pseudocode`) -3. **Architecture** - System design (`sparc run architect`) -4. **Refinement** - TDD implementation (`sparc tdd`) -5. **Completion** - Integration (`sparc run integration`) - -## Code Style & Best Practices - -- **Modular Design**: Files under 500 lines -- **Environment Safety**: Never hardcode secrets -- **Test-First**: Write tests before implementation -- **Clean Architecture**: Separate concerns -- **Documentation**: Keep updated - -## πŸš€ Available Agents (54 Total) - -### Core Development -`coder`, `reviewer`, `tester`, `planner`, `researcher` - -### Swarm Coordination -`hierarchical-coordinator`, `mesh-coordinator`, `adaptive-coordinator`, `collective-intelligence-coordinator`, `swarm-memory-manager` - -### Consensus & Distributed -`byzantine-coordinator`, `raft-manager`, `gossip-coordinator`, `consensus-builder`, `crdt-synchronizer`, `quorum-manager`, `security-manager` - -### Performance & Optimization -`perf-analyzer`, `performance-benchmarker`, `task-orchestrator`, `memory-coordinator`, `smart-agent` +The **Agentics Foundation TV5 Hackathon** repository provides: +- CLI tools and MCP server for hackathon participants +- Reference implementations of the Agent-Ready Web (ARW) specification +- Demo applications showcasing agentic AI solutions -### GitHub & Repository -`github-modes`, `pr-manager`, `code-review-swarm`, `issue-tracker`, `release-manager`, `workflow-automation`, `project-board-sync`, `repo-architect`, `multi-repo-swarm` +## Repository Structure -### SPARC Methodology -`sparc-coord`, `sparc-coder`, `specification`, `pseudocode`, `architecture`, `refinement` - -### Specialized Development -`backend-dev`, `mobile-dev`, `ml-developer`, `cicd-engineer`, `api-docs`, `system-architect`, `code-analyzer`, `base-template-generator` - -### Testing & Validation -`tdd-london-swarm`, `production-validator` - -### Migration & Planning -`migration-planner`, `swarm-init` - -## 🎯 Claude Code vs MCP Tools - -### Claude Code Handles ALL EXECUTION: -- **Task tool**: Spawn and run agents concurrently for actual work -- File operations (Read, Write, Edit, MultiEdit, Glob, Grep) -- Code generation and programming -- Bash commands and system operations -- Implementation work -- Project navigation and analysis -- TodoWrite and task management -- Git operations -- Package management -- Testing and debugging - -### MCP Tools ONLY COORDINATE: -- Swarm initialization (topology setup) -- Agent type definitions (coordination patterns) -- Task orchestration (high-level planning) -- Memory management -- Neural features -- Performance tracking -- GitHub integration - -**KEY**: MCP coordinates the strategy, Claude Code's Task tool executes with real agents. - -## πŸš€ Quick Setup - -```bash -# Add MCP servers (Claude Flow required, others optional) -claude mcp add claude-flow npx claude-flow@alpha mcp start -claude mcp add ruv-swarm npx ruv-swarm mcp start # Optional: Enhanced coordination -claude mcp add flow-nexus npx flow-nexus@latest mcp start # Optional: Cloud features ``` - -## MCP Tool Categories - -### Coordination -`swarm_init`, `agent_spawn`, `task_orchestrate` - -### Monitoring -`swarm_status`, `agent_list`, `agent_metrics`, `task_status`, `task_results` - -### Memory & Neural -`memory_usage`, `neural_status`, `neural_train`, `neural_patterns` - -### GitHub Integration -`github_swarm`, `repo_analyze`, `pr_enhance`, `issue_triage`, `code_review` - -### System -`benchmark_run`, `features_detect`, `swarm_monitor` - -### Flow-Nexus MCP Tools (Optional Advanced Features) -Flow-Nexus extends MCP capabilities with 70+ cloud-based orchestration tools: - -**Key MCP Tool Categories:** -- **Swarm & Agents**: `swarm_init`, `swarm_scale`, `agent_spawn`, `task_orchestrate` -- **Sandboxes**: `sandbox_create`, `sandbox_execute`, `sandbox_upload` (cloud execution) -- **Templates**: `template_list`, `template_deploy` (pre-built project templates) -- **Neural AI**: `neural_train`, `neural_patterns`, `seraphina_chat` (AI assistant) -- **GitHub**: `github_repo_analyze`, `github_pr_manage` (repository management) -- **Real-time**: `execution_stream_subscribe`, `realtime_subscribe` (live monitoring) -- **Storage**: `storage_upload`, `storage_list` (cloud file management) - -**Authentication Required:** -- Register: `mcp__flow-nexus__user_register` or `npx flow-nexus@latest register` -- Login: `mcp__flow-nexus__user_login` or `npx flow-nexus@latest login` -- Access 70+ specialized MCP tools for advanced orchestration - -## πŸš€ Agent Execution Flow with Claude Code - -### The Correct Pattern: - -1. **Optional**: Use MCP tools to set up coordination topology -2. **REQUIRED**: Use Claude Code's Task tool to spawn agents that do actual work -3. **REQUIRED**: Each agent runs hooks for coordination -4. **REQUIRED**: Batch all operations in single messages - -### Example Full-Stack Development: - -```javascript -// Single message with all agent spawning via Claude Code's Task tool -[Parallel Agent Execution]: - Task("Backend Developer", "Build REST API with Express. Use hooks for coordination.", "backend-dev") - Task("Frontend Developer", "Create React UI. Coordinate with backend via memory.", "coder") - Task("Database Architect", "Design PostgreSQL schema. Store schema in memory.", "code-analyzer") - Task("Test Engineer", "Write Jest tests. Check memory for API contracts.", "tester") - Task("DevOps Engineer", "Setup Docker and CI/CD. Document in memory.", "cicd-engineer") - Task("Security Auditor", "Review authentication. Report findings via hooks.", "reviewer") - - // All todos batched together - TodoWrite { todos: [...8-10 todos...] } - - // All file operations together - Write "backend/server.js" - Write "frontend/App.jsx" - Write "database/schema.sql" +hackathon-tv5/ +β”œβ”€β”€ apps/ +β”‚ β”œβ”€β”€ cli/ # Main hackathon CLI (published as agentics-hackathon) +β”‚ β”œβ”€β”€ media-discovery/ # Next.js app demonstrating ARW implementation +β”‚ β”œβ”€β”€ agentdb/ # Vector database for AI agents (RuVector-powered) +β”‚ β”œβ”€β”€ agentic-flow/ # AI agent orchestration platform +β”‚ β”œβ”€β”€ agentic-synth/ # Synthetic data generator for AI/ML +β”‚ └── arw-chrome-extension/ # Browser extension for ARW compliance inspection +└── .claude/ # Claude Code agents and commands ``` -## πŸ“‹ Agent Coordination Protocol +## Build & Development Commands -### Every Agent Spawned via Task Tool MUST: - -**1️⃣ BEFORE Work:** +### CLI (apps/cli) ```bash -npx claude-flow@alpha hooks pre-task --description "[task]" -npx claude-flow@alpha hooks session-restore --session-id "swarm-[id]" +cd apps/cli +npm install +npm run build # Compile TypeScript +npm run dev # Watch mode +npm start # Run CLI +npm run lint # ESLint +npm run mcp:stdio # Start MCP server (STDIO transport) +npm run mcp:sse # Start MCP server (SSE transport) ``` -**2️⃣ DURING Work:** +### Media Discovery App (apps/media-discovery) ```bash -npx claude-flow@alpha hooks post-edit --file "[file]" --memory-key "swarm/[agent]/[step]" -npx claude-flow@alpha hooks notify --message "[what was done]" +cd apps/media-discovery +npm install +npm run dev # Next.js dev server +npm run build # Production build +npm run lint # ESLint +npm run typecheck # TypeScript check +npm run test # Vitest +npm run test:coverage # Coverage report +npm run deploy # Deploy to Cloud Run ``` -**3️⃣ AFTER Work:** +### AgentDB (apps/agentdb) ```bash -npx claude-flow@alpha hooks post-task --task-id "[task]" -npx claude-flow@alpha hooks session-end --export-metrics true +cd apps/agentdb +npm install +npm run build # Build (TS + schemas + browser bundle) +npm run test # Vitest +npm run test:unit # Unit tests only +npm run dev # Run CLI in dev mode +npm run benchmark # Run benchmarks ``` -## 🎯 Concurrent Execution Examples - -### βœ… CORRECT WORKFLOW: MCP Coordinates, Claude Code Executes - -```javascript -// Step 1: MCP tools set up coordination (optional, for complex tasks) -[Single Message - Coordination Setup]: - mcp__claude-flow__swarm_init { topology: "mesh", maxAgents: 6 } - mcp__claude-flow__agent_spawn { type: "researcher" } - mcp__claude-flow__agent_spawn { type: "coder" } - mcp__claude-flow__agent_spawn { type: "tester" } - -// Step 2: Claude Code Task tool spawns ACTUAL agents that do the work -[Single Message - Parallel Agent Execution]: - // Claude Code's Task tool spawns real agents concurrently - Task("Research agent", "Analyze API requirements and best practices. Check memory for prior decisions.", "researcher") - Task("Coder agent", "Implement REST endpoints with authentication. Coordinate via hooks.", "coder") - Task("Database agent", "Design and implement database schema. Store decisions in memory.", "code-analyzer") - Task("Tester agent", "Create comprehensive test suite with 90% coverage.", "tester") - Task("Reviewer agent", "Review code quality and security. Document findings.", "reviewer") - - // Batch ALL todos in ONE call - TodoWrite { todos: [ - {id: "1", content: "Research API patterns", status: "in_progress", priority: "high"}, - {id: "2", content: "Design database schema", status: "in_progress", priority: "high"}, - {id: "3", content: "Implement authentication", status: "pending", priority: "high"}, - {id: "4", content: "Build REST endpoints", status: "pending", priority: "high"}, - {id: "5", content: "Write unit tests", status: "pending", priority: "medium"}, - {id: "6", content: "Integration tests", status: "pending", priority: "medium"}, - {id: "7", content: "API documentation", status: "pending", priority: "low"}, - {id: "8", content: "Performance optimization", status: "pending", priority: "low"} - ]} - - // Parallel file operations - Bash "mkdir -p app/{src,tests,docs,config}" - Write "app/package.json" - Write "app/src/server.js" - Write "app/tests/server.test.js" - Write "app/docs/API.md" +### Agentic Flow (apps/agentic-flow) +```bash +cd apps/agentic-flow +npm install +npm run build # Build (includes WASM) +npm run dev # Run in dev mode +npm run test # Run tests +npm run validate # Run validation suite +npm run mcp:stdio # Start MCP server ``` -### ❌ WRONG (Multiple Messages): -```javascript -Message 1: mcp__claude-flow__swarm_init -Message 2: Task("agent 1") -Message 3: TodoWrite { todos: [single todo] } -Message 4: Write "file.js" -// This breaks parallel coordination! +### Agentic Synth (apps/agentic-synth) +```bash +cd apps/agentic-synth +npm install +npm run build:all # Build all modules +npm run test # Vitest +npm run typecheck # TypeScript check +npm run lint # ESLint ``` -## Performance Benefits - -- **84.8% SWE-Bench solve rate** -- **32.3% token reduction** -- **2.8-4.4x speed improvement** -- **27+ neural models** - -## Hooks Integration - -### Pre-Operation -- Auto-assign agents by file type -- Validate commands for safety -- Prepare resources automatically -- Optimize topology by complexity -- Cache searches - -### Post-Operation -- Auto-format code -- Train neural patterns -- Update memory -- Analyze performance -- Track token usage - -### Session Management -- Generate summaries -- Persist state -- Track metrics -- Restore context -- Export workflows - -## Advanced Features (v2.0.0) - -- πŸš€ Automatic Topology Selection -- ⚑ Parallel Execution (2.8-4.4x speed) -- 🧠 Neural Training -- πŸ“Š Bottleneck Analysis -- πŸ€– Smart Auto-Spawning -- πŸ›‘οΈ Self-Healing Workflows -- πŸ’Ύ Cross-Session Memory -- πŸ”— GitHub Integration - -## Integration Tips - -1. Start with basic swarm init -2. Scale agents gradually -3. Use memory for context -4. Monitor progress regularly -5. Train patterns from success -6. Enable hooks automation -7. Use GitHub tools first - -## Support - -- Documentation: https://github.com/ruvnet/claude-flow -- Issues: https://github.com/ruvnet/claude-flow/issues -- Flow-Nexus Platform: https://flow-nexus.ruv.io (registration required for cloud features) - ---- - -Remember: **Claude Flow coordinates, Claude Code creates!** +## Architecture + +### CLI (agentics-hackathon) +- Entry: `apps/cli/src/cli.ts` +- Commands in `apps/cli/src/commands/` (init, tools, status, info, discord, help) +- MCP server in `apps/cli/src/mcp/` with STDIO and SSE transports +- Constants/config in `apps/cli/src/constants.ts` + +### Media Discovery (ARW Reference Implementation) +- Next.js 15 App Router in `apps/media-discovery/src/app/` +- Components in `apps/media-discovery/src/components/` +- ARW manifest at `apps/media-discovery/public/.well-known/arw-manifest.json` +- Uses Vercel AI SDK with Google/OpenAI providers +- RuVector for vector search +- TMDB API for movie data + +### AgentDB +- Core database in `apps/agentdb/src/core/AgentDB.ts` +- Controllers for various memory patterns: CausalMemoryGraph, ReflexionMemory, SkillLibrary +- Multiple backends: HNSWLib, RuVector, Graph +- MCP server integration in `apps/agentdb/src/mcp/` +- CLI in `apps/agentdb/src/cli/` + +### Agentic Flow +- ReasoningBank learning memory system with WASM support +- 66 specialized agents, 213 MCP tools +- Consensus protocols: Byzantine, Raft, Gossip +- Transport: QUIC, WebSocket + +## Key Technologies + +- **TypeScript** with ES modules across all apps +- **Node.js 18+** (20+ for media-discovery) +- **Next.js 15** for media-discovery app +- **Vitest** for testing +- **MCP (Model Context Protocol)** for AI assistant integration +- **RuVector** for vector embeddings +- **sql.js/SQLite** for AgentDB persistence + +## File Organization Rules + +- Never save files to the root folder +- Source code in `/src` +- Tests in `/tests` or alongside source files +- Configuration in `/config` +- Documentation in `/docs` + +## Running the Project Locally -# important-instruction-reminders -Do what has been asked; nothing more, nothing less. -NEVER create files unless they're absolutely necessary for achieving your goal. -ALWAYS prefer editing an existing file to creating a new one. -NEVER proactively create documentation files (*.md) or README files. Only create documentation files if explicitly requested by the User. -Never save working files, text/mds and tests to the root folder. - - ---- - -# Agentic QE Fleet Configuration - -## ⚠️ INTEGRITY RULE (ABSOLUTE) - -**We value the quality we deliver to our users.** - -- ❌ NO shortcuts - do the work properly or don't do it -- ❌ NO fake data - use real data, real tests, real results -- ❌ NO false claims - only report what actually works and is verified -- βœ… ALWAYS implement all code/tests with proper implementation -- βœ… ALWAYS verify before claiming success -- βœ… ALWAYS use real database queries, not mocks, for integration tests -- βœ… ALWAYS run actual tests, not assume they pass - ---- - -## πŸ€– Agentic QE Fleet Quick Reference - -**31 QE Agents:** Test generation, coverage analysis, performance, security, flaky detection -**77 QE Skills:** agentic-quality-engineering, tdd-london-chicago, api-testing-patterns, six-thinking-hats, brutal-honesty-review, cicd-pipeline-qe-orchestrator -**8 Slash Commands:** `/aqe-execute`, `/aqe-generate`, `/aqe-coverage`, `/aqe-quality` - -### πŸ“š Complete Documentation - -- **[Agent Reference](https://github.com/proffesor-for-testing/agentic-qe/blob/main/docs/reference/agents.md)** - All 31 QE agents with capabilities and usage -- **[Skills Reference](https://github.com/proffesor-for-testing/agentic-qe/blob/main/docs/reference/skills.md)** - All 77 QE skills organized by category -- **[Usage Guide](https://github.com/proffesor-for-testing/agentic-qe/blob/main/docs/reference/usage.md)** - Complete usage examples and workflows - -### 🎯 Quick Start +```bash +# Quick start with CLI +npx agentics-hackathon init +npx agentics-hackathon tools +npx agentics-hackathon status -**Spawn agents:** -```javascript -Task("Generate tests", "Create test suite for UserService", "qe-test-generator") -Task("Analyze coverage", "Find gaps using O(log n)", "qe-coverage-analyzer") +# Or for development +cd apps/cli && npm install && npm run build && npm start ``` -**Check learning status:** -```bash -aqe learn status --agent test-gen -aqe patterns list --framework jest +## MCP Integration + +Add to Claude Desktop config: +```json +{ + "mcpServers": { + "agentics-hackathon": { + "command": "npx", + "args": ["agentics-hackathon", "mcp"] + } + } +} ``` - -### 🎯 Fleet Configuration - -**Topology**: hierarchical -**Max Agents**: 10 -**Testing Focus**: unit, integration -**Environments**: development -**Frameworks**: jest - -### πŸ“‹ Memory Namespace - -Agents share state through the **`aqe/*` memory namespace**: -- `aqe/test-plan/*` - Test planning and requirements -- `aqe/coverage/*` - Coverage analysis and gaps -- `aqe/quality/*` - Quality metrics and gates -- `aqe/performance/*` - Performance test results -- `aqe/security/*` - Security scan findings -- `aqe/swarm/coordination` - Cross-agent coordination - -### πŸ’‘ Key Principles -- Use Task tool for agent execution (not just MCP) -- Batch all operations in single messages (TodoWrite, file ops, etc.) -- Test with actual databases, not mocks -- Document only what actually works - ---- - -**Generated by**: Agentic QE Fleet v2.1.0 -**Initialization Date**: 2025-12-04T09:43:18.382Z -**Fleet Topology**: hierarchical \ No newline at end of file diff --git a/apps/media-discovery/LINKEDIN_POST.md b/apps/media-discovery/LINKEDIN_POST.md new file mode 100644 index 00000000..200f5ccc --- /dev/null +++ b/apps/media-discovery/LINKEDIN_POST.md @@ -0,0 +1,218 @@ +# LinkedIn Post: Media Discovery Platform + +--- + +## POST 1: Marketing-Focused (Hook + Story) + +--- + +**45 seconds.** + +That's how long it takes to understand your movie taste. + +Not 45 minutes of questionnaires. +Not weeks of watch history. +Not scrolling paralysis wondering what to watch. + +--- + +We just built something for the TV5MONDE Global Hackathon that challenges how streaming platforms think about the cold-start problem. + +**The insight:** Traditional platforms ASK you what you like. We OBSERVE. + +When you land on a new streaming service, you're typically faced with: +- "Rate these 20 movies" (homework) +- "Select your favorite genres" (guessing) +- Generic recommendations until you've watched enough + +Our approach: Show you 8 visual thumbnails. No labels. No text. Just images. + +Then we watch what YOU watch: +- Where does your cursor slow down? +- Which image do you hover on longest? +- What do you click first, second, third? +- What do you scroll past quickly? + +In under 60 seconds, we've built a behavioral profile that feels like magic. + +The timer runs live on screen. Users see exactly how fast it happens. + +"12 seconds to profile you. Not 45 minutes." + +--- + +**Why this matters for TV5MONDE:** + +Streaming is a brutal market. Netflix has 200M+ subscribers worth of data. How does a niche francophone platform compete? + +Not on content volume. Not on recommendation algorithm sophistication. + +On SPEED and RESPECT. + +"We respect your time" is a brand identity, not a feature. Features get copied. Positioning persists. + +--- + +**Technical highlights for the builders:** + +- Real-time behavioral signal capture at 60fps +- Zustand state management for millisecond-precision tracking +- Weighted scoring: return visits (3x), clicks (2.5x), micro-hesitations (2x) +- Next.js 15 with App Router +- Portrait thumbnails (9:16) for visual impact +- TMDB API for content data + +The prototype is live. The thesis is proven. + +--- + +Huge thanks to the Agentics Foundation London team for the sprint. + +What's next? AgentDB integration for persistent profiles. Visual similarity search with CLIP embeddings. Emotional arc matching. + +The cold-start problem is solved. Now we make it continuous. + +--- + +#AI #Hackathon #Streaming #ProductDesign #UX #TV5MONDE #AgenticsFoundation + +--- + +## POST 2: Technical Deep-Dive + +--- + +**We solved the streaming cold-start problem in 45 seconds. Here's the technical breakdown.** + +The TV5MONDE Global Hackathon challenge: How do you personalize content for a brand new user with zero watch history? + +Traditional approaches: +- Questionnaires (high friction, low completion) +- Collaborative filtering (needs existing data) +- Content-based filtering (generic until trained) + +Our approach: **Behavioral micro-signal capture.** + +--- + +**The Architecture:** + +``` +Browser Events (60fps) + β”‚ + β–Ό + Event Debounce (16ms) + β”‚ + β–Ό + Signal Processor (weighted) + β”‚ + β–Ό + Profile Builder (genre ranking) + β”‚ + β–Ό + Personalized Feed +``` + +**Signals we capture:** + +| Signal | Weight | Why | +|--------|--------|-----| +| Return visit | 3.0x | User came BACK to this thumbnail | +| Explicit click | 2.5x | Conscious selection | +| Micro-hesitation | 2.0x | Cursor slowed >500ms | +| Hover duration | 1.5x | >1000ms sustained attention | +| Skip velocity | -1.5x | Rapid scroll = rejection | + +--- + +**The Key Insight:** + +No genre labels during profiling. Pure visual reaction. + +System 1 thinking (fast, intuitive) is 100x faster than System 2 (reading, analyzing). + +When you see a dark, moody thumbnail vs. a bright, colorful oneβ€”your cursor tells us everything before you consciously decide. + +Labels are revealed AFTER profiling. Creates an "aha moment": "The system understood me without asking." + +--- + +**Stack:** + +- Next.js 15 (App Router) +- Zustand (state with immer) +- Tailwind CSS +- TMDB API +- Framer Motion +- Canvas-confetti (because celebrating profile completion matters) + +**Key React patterns:** + +- `performance.now()` for millisecond-precision timestamps +- `requestAnimationFrame` for smooth timer updates +- `mousemove` velocity tracking via position deltas +- Debounced hover events to prevent signal noise + +--- + +**What surprised us:** + +The TIMER is the product. + +Showing users exactly how fast profiling happensβ€”"0.000s" counting up in real-timeβ€”proves the value proposition live. No marketing claim needed. They experience it. + +--- + +**Phase 2 roadmap:** + +1. **AgentDB** β€” Vector persistence for behavioral embeddings +2. **CLIP embeddings** β€” "More like this" via visual similarity +3. **Emotional arc matching** β€” Narrative trajectory recommendations +4. **Multi-device signals** β€” TV (dwell time), Mobile (swipe velocity) + +--- + +The cold-start problem is a data problem. We solved it by creating data faster. + +Not asking. Observing. + +Code: github.com/agenticsorg/hackathon-tv5 + +--- + +#Engineering #AI #MachineLearning #Streaming #NextJS #React #Hackathon + +--- + +## POST 3: Short Version (Quick Hook) + +--- + +Traditional streaming platforms: "Rate these 20 movies to get started" + +Us: *watches where your cursor hovers for 45 seconds* + +"Here's your personalized feed." + +--- + +Just shipped a behavioral profiling system for the TV5MONDE hackathon. + +No questionnaires. No watch history needed. Pure micro-signal capture. + +- Hover duration +- Click sequence +- Cursor velocity +- Return visits + +The timer runs live. Users watch their profile being built in real-time. + +12 seconds average. Not 12 minutes. + +Cold-start problem β†’ solved. + +--- + +#Hackathon #AI #UX #Streaming + +--- diff --git a/apps/media-discovery/README.md b/apps/media-discovery/README.md new file mode 100644 index 00000000..0cc02841 --- /dev/null +++ b/apps/media-discovery/README.md @@ -0,0 +1,169 @@ +# Media Discovery Platform + +**TV5MONDE Global Hackathon Entry** | Agentics Foundation London Team + +> 45 seconds to profile you. Not 45 minutes. + +## The Problem + +Every streaming platform faces the **cold-start problem**: new users land on a sea of content with no personalization. Traditional solutions ask users to fill out questionnaires (5-10 minutes) or wait for weeks of watch history to accumulate. + +**The result?** 40% trial abandonment. 20+ minutes of frustrated browsing. Users default to rewatching safe favorites instead of discovering new content. + +## Our Solution + +**Behavioral observation instead of questionnaires.** + +We profile users in under 60 seconds by observing micro-behaviors as they browse a visual gridβ€”no questions asked. The system captures: + +- Hover duration on thumbnails +- Click sequence and timing +- Mouse velocity (skip patterns) +- Return visits to the same item +- Micro-hesitations (cursor slowdowns) + +Traditional platforms ask. We observe. + +## User Flow + +``` +STEP 1: ENTRY STEP 2: DISCOVERY STEP 3: RESULTS +───────────── ───────────────── ─────────────── + +"Discover Your 8 visual thumbnails "Curated for You" + Next Watch" NO LABELS - pure visuals + Personalized feed +[Start Exploring] ────────► User browses naturally ──────► with genre labels + Timer: 0.000s visible NOW revealed + + System captures: Top 2 genres + β€’ Hover patterns highlighted + β€’ Click order (1, 2, 3) + β€’ Attention signals "12s to profile you, + not 45 minutes" +``` + +### Key Design Decisions + +1. **No labels during profiling** β€” Users react to visuals (System 1 thinking), not text +2. **Labels revealed in results** β€” Creates an "aha" moment: "The system understood me" +3. **Live timer** β€” Proves the speed claim in real-time +4. **Large centered numbers** β€” Clear visual feedback when thumbnails are selected + +## Technical Architecture + +### Signal Capture + +``` +Browser Events (60fps) + β”‚ + β–Ό +β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” +β”‚ Event Debounce β”‚ (16ms batching) +β””β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ + β”‚ + β–Ό +β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” +β”‚ Signal Processor β”‚ (weighted scoring) +β””β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ + β”‚ + β–Ό +β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” +β”‚ Profile Builder β”‚ (genre ranking) +β””β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ + β”‚ + β–Ό +β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” +β”‚ Personalized β”‚ +β”‚ Recommendations β”‚ +β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ +``` + +### Signal Weights + +| Signal | Weight | Rationale | +|--------|--------|-----------| +| Return visit to same item | 3.0x | Strongest intentβ€”user came back | +| Click (explicit selection) | 2.5x | Conscious commitment | +| Micro-hesitation (>500ms) | 2.0x | Subconscious interest | +| Hover duration (>1000ms) | 1.5x | Sustained attention | +| High scroll velocity past | -1.5x | Active rejection | + +### Tech Stack + +- **Framework:** Next.js 15 (App Router) +- **State:** Zustand +- **Styling:** Tailwind CSS +- **Content API:** TMDB +- **Animations:** CSS keyframes + Framer Motion +- **Deployment:** Netlify / Vercel + +## Features Built + +| Feature | Purpose | +|---------|---------| +| 3-screen flow (Entry β†’ Discovery β†’ Results) | Core user journey | +| 8-genre visual grid with portrait thumbnails | Profiling surface | +| Real-time hover/click tracking | Behavioral signals | +| Mouse velocity detection | Skip pattern analysis | +| Live millisecond timer | Value prop demonstration | +| Large centered number badges (1, 2, 3) | Clear selection feedback | +| Personalized recommendations | Proof that profiling works | +| Admin widget with leaderboard | Demo tool for judges | +| Skip/Continue flow handling | Graceful degradation | +| Disclosure banner for skipped users | Transparency | + +## Recent Development (Last 8 Hours) + +- Netflix-style premium animations with card hover effects +- Portrait thumbnails (9:16 aspect ratio) for visual impact +- Skip/Recommendations button with animated gradient border +- Genre labels removed from discovery grid (pure visual profiling) +- Disclosure banner when user skips or doesn't select genres +- Large centered number badges on thumbnail selection +- Confetti celebration when profile is ready +- Conditional hero messaging based on profiling completion + +## Running Locally + +```bash +cd apps/media-discovery +npm install +npm run dev +``` + +Open [http://localhost:3000](http://localhost:3000) + +## Environment Variables + +```env +TMDB_API_KEY=your_tmdb_api_key +``` + +## Success Metrics + +| Metric | Target | +|--------|--------| +| Time-to-profile | < 60 seconds | +| Speed vs. questionnaires | 95% faster | +| Profile resonance | 80%+ "this feels right" | +| Feed engagement | First click within 10 seconds | + +## Phase 2 Roadmap + +1. **AgentDB Integration** β€” Persistent behavioral profiles across sessions +2. **Visual Similarity Search** β€” CLIP embeddings for thumbnail matching +3. **Emotional Arc Matching** β€” Story trajectory recommendations +4. **Multi-device Support** β€” Smart TV (dwell time), Mobile (swipe velocity) + +## Team + +**Agentics Foundation London** β€” [london.agentics.org](https://london.agentics.org) + +## License + +MIT + +--- + +*Powered by [TMDB](https://www.themoviedb.org/) | Built with [ARW](https://arw.dev)* diff --git a/apps/media-discovery/netlify.toml b/apps/media-discovery/netlify.toml new file mode 100644 index 00000000..c2d8205a --- /dev/null +++ b/apps/media-discovery/netlify.toml @@ -0,0 +1,11 @@ +[build] + command = "npm run build" + publish = ".next" + +[build.environment] + NODE_VERSION = "20" + +# Netlify Next.js plugin will be auto-detected + +[[plugins]] + package = "@netlify/plugin-nextjs" diff --git a/apps/media-discovery/next.config.ts b/apps/media-discovery/next.config.ts index 15c38a54..55022e9d 100644 --- a/apps/media-discovery/next.config.ts +++ b/apps/media-discovery/next.config.ts @@ -1,9 +1,6 @@ import type { NextConfig } from 'next'; const nextConfig: NextConfig = { - // Enable standalone output for Docker/Cloud Run deployment - output: 'standalone', - // Image optimization for TMDB images images: { remotePatterns: [ diff --git a/apps/media-discovery/package-lock.json b/apps/media-discovery/package-lock.json index e476adba..5838c26b 100644 --- a/apps/media-discovery/package-lock.json +++ b/apps/media-discovery/package-lock.json @@ -12,6 +12,7 @@ "@ai-sdk/openai": "^1.0.0", "@tanstack/react-query": "^5.60.0", "ai": "^4.0.0", + "canvas-confetti": "^1.9.4", "clsx": "^2.1.0", "next": "^15.0.3", "react": "^19.0.0", @@ -19,9 +20,12 @@ "ruvector": "^0.1.31", "tailwind-merge": "^2.5.0", "tmdb-ts": "^2.0.3", - "zod": "^3.23.0" + "zod": "^3.23.0", + "zustand": "^5.0.9" }, "devDependencies": { + "@netlify/plugin-nextjs": "^5.15.1", + "@types/canvas-confetti": "^1.9.0", "@types/node": "^22.0.0", "@types/react": "^19.0.0", "@types/react-dom": "^19.0.0", @@ -1638,6 +1642,16 @@ "@tybys/wasm-util": "^0.10.0" } }, + "node_modules/@netlify/plugin-nextjs": { + "version": "5.15.1", + "resolved": "https://registry.npmjs.org/@netlify/plugin-nextjs/-/plugin-nextjs-5.15.1.tgz", + "integrity": "sha512-HXm94tteOuA0FYwhkxjYIPe0zta+Dsu0wz7LnhfqVlaYcRaOLjHtd2vgfmpz3np/fx9TQg3gCfqGkXt2a9i7Aw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18.0.0" + } + }, "node_modules/@next/env": { "version": "15.5.7", "resolved": "https://registry.npmjs.org/@next/env/-/env-15.5.7.tgz", @@ -2455,6 +2469,13 @@ "@babel/types": "^7.28.2" } }, + "node_modules/@types/canvas-confetti": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@types/canvas-confetti/-/canvas-confetti-1.9.0.tgz", + "integrity": "sha512-aBGj/dULrimR1XDZLtG9JwxX1b4HPRF6CX9Yfwh3NvstZEm1ZL7RBnel4keCPSqs1ANRu1u2Aoz9R+VmtjYuTg==", + "dev": true, + "license": "MIT" + }, "node_modules/@types/diff-match-patch": { "version": "1.0.36", "resolved": "https://registry.npmjs.org/@types/diff-match-patch/-/diff-match-patch-1.0.36.tgz", @@ -2497,7 +2518,7 @@ "version": "19.2.7", "resolved": "https://registry.npmjs.org/@types/react/-/react-19.2.7.tgz", "integrity": "sha512-MWtvHrGZLFttgeEj28VXHxpmwYbor/ATPYbBfSFZEIRK0ecCFLl2Qo55z52Hss+UV9CRN7trSeq1zbgx7YDWWg==", - "dev": true, + "devOptional": true, "license": "MIT", "peer": true, "dependencies": { @@ -3829,6 +3850,16 @@ ], "license": "CC-BY-4.0" }, + "node_modules/canvas-confetti": { + "version": "1.9.4", + "resolved": "https://registry.npmjs.org/canvas-confetti/-/canvas-confetti-1.9.4.tgz", + "integrity": "sha512-yxQbJkAVrFXWNbTUjPqjF7G+g6pDotOUHGbkZq2NELZUMDpiJ85rIEazVb8GTaAptNW2miJAXbs1BtioA251Pw==", + "license": "ISC", + "funding": { + "type": "donate", + "url": "https://www.paypal.me/kirilvatev" + } + }, "node_modules/chai": { "version": "5.3.3", "resolved": "https://registry.npmjs.org/chai/-/chai-5.3.3.tgz", @@ -4040,7 +4071,7 @@ "version": "3.2.3", "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.2.3.tgz", "integrity": "sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ==", - "dev": true, + "devOptional": true, "license": "MIT" }, "node_modules/damerau-levenshtein": { @@ -9249,6 +9280,35 @@ "peerDependencies": { "zod": "^3.25 || ^4" } + }, + "node_modules/zustand": { + "version": "5.0.9", + "resolved": "https://registry.npmjs.org/zustand/-/zustand-5.0.9.tgz", + "integrity": "sha512-ALBtUj0AfjJt3uNRQoL1tL2tMvj6Gp/6e39dnfT6uzpelGru8v1tPOGBzayOWbPJvujM8JojDk3E1LxeFisBNg==", + "license": "MIT", + "engines": { + "node": ">=12.20.0" + }, + "peerDependencies": { + "@types/react": ">=18.0.0", + "immer": ">=9.0.6", + "react": ">=18.0.0", + "use-sync-external-store": ">=1.2.0" + }, + "peerDependenciesMeta": { + "@types/react": { + "optional": true + }, + "immer": { + "optional": true + }, + "react": { + "optional": true + }, + "use-sync-external-store": { + "optional": true + } + } } } } diff --git a/apps/media-discovery/package.json b/apps/media-discovery/package.json index 2a52729e..09de84ae 100644 --- a/apps/media-discovery/package.json +++ b/apps/media-discovery/package.json @@ -19,6 +19,7 @@ "@ai-sdk/openai": "^1.0.0", "@tanstack/react-query": "^5.60.0", "ai": "^4.0.0", + "canvas-confetti": "^1.9.4", "clsx": "^2.1.0", "next": "^15.0.3", "react": "^19.0.0", @@ -26,9 +27,12 @@ "ruvector": "^0.1.31", "tailwind-merge": "^2.5.0", "tmdb-ts": "^2.0.3", - "zod": "^3.23.0" + "zod": "^3.23.0", + "zustand": "^5.0.9" }, "devDependencies": { + "@netlify/plugin-nextjs": "^5.15.1", + "@types/canvas-confetti": "^1.9.0", "@types/node": "^22.0.0", "@types/react": "^19.0.0", "@types/react-dom": "^19.0.0", diff --git a/apps/media-discovery/src/app/globals.css b/apps/media-discovery/src/app/globals.css index ea309e2b..805131a7 100644 --- a/apps/media-discovery/src/app/globals.css +++ b/apps/media-discovery/src/app/globals.css @@ -2,32 +2,91 @@ @tailwind components; @tailwind utilities; +/* ======================================== + DESIGN SYSTEM - Cool Midnight + Genre Colors + ======================================== */ :root { - --foreground-rgb: 0, 0, 0; - --background-start-rgb: 250, 250, 250; - --background-end-rgb: 255, 255, 255; -} + /* Core Colors */ + --bg-deep: #0D1117; + --bg-primary: #1A2332; + --bg-elevated: #242D3D; + --text-primary: #F0F6FC; + --text-secondary: #8B949E; + --accent-cyan: #4ECDC4; + --accent-cyan-dim: #2A9D8F; + --border-subtle: #30363D; -@media (prefers-color-scheme: dark) { - :root { - --foreground-rgb: 255, 255, 255; - --background-start-rgb: 10, 10, 15; - --background-end-rgb: 20, 20, 30; - } + /* Genre Colors */ + --genre-romance: #FF6B6B; + --genre-thriller: #4ECDC4; + --genre-comedy: #FFE66D; + --genre-scifi: #A855F7; + --genre-drama: #F97316; + --genre-action: #EF4444; + --genre-horror: #6B7280; + --genre-documentary: #10B981; + + /* Legacy */ + --foreground: var(--text-primary); + --background: var(--bg-deep); } body { - color: rgb(var(--foreground-rgb)); - background: linear-gradient( - to bottom, - transparent, - rgb(var(--background-end-rgb)) - ) - rgb(var(--background-start-rgb)); + font-family: "Funnel Display", -apple-system, BlinkMacSystemFont, sans-serif; + font-optical-sizing: auto; + font-weight: 400; + background: var(--bg-deep); + color: var(--text-primary); min-height: 100vh; + overflow-x: hidden; +} + +h1, h2, h3, h4, h5, h6, .headline-hero, .headline-h1, .headline-h2 { + font-family: "Funnel Display", -apple-system, BlinkMacSystemFont, sans-serif; + font-weight: 700; +} + +/* ======================================== + TYPOGRAPHY + ======================================== */ +.headline-hero { + font-size: 3rem; + font-weight: 700; + letter-spacing: -0.04em; + line-height: 1.1; +} + +.headline-h1 { + font-size: 2.25rem; + font-weight: 700; + letter-spacing: -0.04em; +} + +.headline-h2 { + font-size: 1.5rem; + font-weight: 700; + letter-spacing: -0.02em; +} + +.text-body { + font-size: 1rem; + color: var(--text-secondary); + line-height: 1.6; +} + +.text-caption { + font-size: 0.875rem; + color: var(--text-secondary); +} + +.mono { + font-family: 'Funnel Display', ui-monospace, monospace; + font-variant-numeric: tabular-nums; } -/* Custom scrollbar */ +/* ======================================== + CUSTOM SCROLLBAR + ======================================== */ ::-webkit-scrollbar { width: 8px; height: 8px; @@ -38,35 +97,136 @@ body { } ::-webkit-scrollbar-thumb { - background: rgba(128, 128, 128, 0.4); + background: rgba(139, 148, 158, 0.4); border-radius: 4px; } ::-webkit-scrollbar-thumb:hover { - background: rgba(128, 128, 128, 0.6); + background: rgba(139, 148, 158, 0.6); +} + +.scrollbar-hide { + -ms-overflow-style: none; + scrollbar-width: none; +} + +.scrollbar-hide::-webkit-scrollbar { + display: none; +} + +/* ======================================== + SCREEN TRANSITION ANIMATIONS + ======================================== */ +.screen { + display: none; + min-height: 100vh; + padding: 2rem; + opacity: 0; +} + +.screen.active { + display: flex; + flex-direction: column; + align-items: center; + justify-content: center; + opacity: 1; } -/* Animations */ +/* Discovery screen needs full height for flex layout */ +.screen.discovery-screen.active { + justify-content: flex-start; + height: 100vh; + height: 100dvh; /* Dynamic viewport height for mobile */ + overflow: hidden; + padding: 0; +} + +/* Safe area padding for mobile devices */ +.pb-safe { + padding-bottom: max(1rem, env(safe-area-inset-bottom)); +} + +.screen.entering { + animation: screenEnter 500ms cubic-bezier(0.16, 1, 0.3, 1) forwards; +} + +.screen.exiting { + animation: screenExit 400ms ease-in forwards; +} + +@keyframes screenEnter { + 0% { opacity: 0; transform: translateY(40px) scale(0.98); } + 100% { opacity: 1; transform: translateY(0) scale(1); } +} + +@keyframes screenExit { + 0% { opacity: 1; transform: translateY(0) scale(1); } + 100% { opacity: 0; transform: translateY(-30px) scale(0.97); } +} + +/* ======================================== + CARD ANIMATIONS + ======================================== */ +@keyframes cardFadeIn { + 0% { opacity: 0; transform: translateY(20px); } + 100% { opacity: 1; transform: translateY(0); } +} + +@keyframes cardReveal { + 0% { opacity: 0; transform: translateY(40px) scale(0.92); } + 60% { transform: translateY(-8px) scale(1.02); } + 100% { opacity: 1; transform: translateY(0) scale(1); } +} + +@keyframes sectionFadeUp { + 0% { opacity: 0; transform: translateY(30px); } + 100% { opacity: 1; transform: translateY(0); } +} + +@keyframes headerSlide { + 0% { opacity: 0; transform: translateX(-15px); } + 100% { opacity: 1; transform: translateX(0); } +} + +@keyframes badgePop { + 0% { transform: scale(0); } + 50% { transform: scale(1.2); } + 100% { transform: scale(1); } +} + +@keyframes scaleUp { + 0% { opacity: 0; transform: scale(0.8); } + 100% { opacity: 1; transform: scale(1); } +} + +@keyframes gradientShift { + 0%, 100% { background-position: 0% 50%; } + 50% { background-position: 100% 50%; } +} + +.animate-gradient-shift { + animation: gradientShift 2s ease infinite; +} + +@keyframes buttonReveal { + 0% { opacity: 0; transform: translateY(10px); } + 100% { opacity: 1; transform: translateY(0); } +} + +/* Legacy animations */ @keyframes fadeIn { - from { - opacity: 0; - } - to { - opacity: 1; - } + from { opacity: 0; } + to { opacity: 1; } } @keyframes slideUp { - from { - opacity: 0; - transform: translateY(10px); - } - to { - opacity: 1; - transform: translateY(0); - } + from { opacity: 0; transform: translateY(10px); } + to { opacity: 1; transform: translateY(0); } } +/* ======================================== + ANIMATION UTILITY CLASSES + ======================================== */ .animate-fade-in { animation: fadeIn 0.3s ease-out; } @@ -75,12 +235,178 @@ body { animation: slideUp 0.4s ease-out; } -/* Hide scrollbar but keep functionality */ -.scrollbar-hide { - -ms-overflow-style: none; - scrollbar-width: none; +.animate-card-fade-in { + animation: cardFadeIn 600ms cubic-bezier(0.16, 1, 0.3, 1) forwards; } -.scrollbar-hide::-webkit-scrollbar { - display: none; +.animate-card-reveal { + animation: cardReveal 650ms cubic-bezier(0.16, 1, 0.3, 1) forwards; +} + +.animate-section-fade-up { + animation: sectionFadeUp 500ms cubic-bezier(0.16, 1, 0.3, 1) forwards; +} + +.animate-header-slide { + animation: headerSlide 400ms cubic-bezier(0.16, 1, 0.3, 1) forwards; +} + +.animate-badge-pop { + animation: badgePop 300ms cubic-bezier(0.34, 1.56, 0.64, 1); +} + +.animate-scale-up { + animation: scaleUp 500ms cubic-bezier(0.16, 1, 0.3, 1) forwards; +} + +.animate-button-reveal { + animation: buttonReveal 400ms cubic-bezier(0.16, 1, 0.3, 1) forwards; +} + +/* ======================================== + NETFLIX-STYLE CARD HOVER EFFECTS + ======================================== */ +.card-hover { + transition: transform 280ms cubic-bezier(0.34, 1.56, 0.64, 1), + box-shadow 280ms ease-out, + border-color 150ms ease-out; + transform-origin: center center; +} + +.card-hover:hover { + transform: scale(1.08); + box-shadow: 0 20px 50px rgba(0, 0, 0, 0.5), + 0 0 0 1px rgba(78, 205, 196, 0.3); + z-index: 10; +} + +.card-hover img { + transition: transform 400ms ease-out; +} + +.card-hover:hover img { + transform: scale(1.05); +} + +/* ======================================== + BUTTON STYLES + ======================================== */ +.btn-primary { + padding: 1rem 2rem; + background: var(--accent-cyan); + color: var(--bg-deep); + border: none; + font-family: inherit; + font-size: 1rem; + font-weight: 700; + cursor: pointer; + transition: background 0.15s ease-out, transform 0.15s ease-out; +} + +.btn-primary:hover { + background: var(--accent-cyan-dim); + transform: translateY(-2px); +} + +.btn-primary:active { + transform: translateY(0); } + +.btn-secondary { + padding: 0.75rem 1.5rem; + background: transparent; + border: 1px solid var(--accent-cyan); + color: var(--accent-cyan); + font-family: inherit; + font-size: 0.875rem; + cursor: pointer; + transition: background 0.15s ease-out, transform 0.15s ease-out; +} + +.btn-secondary:hover { + background: var(--accent-cyan); + color: var(--bg-deep); + transform: translateY(-2px); +} + +/* ======================================== + INPUT STYLES + ======================================== */ +.input-field { + width: 100%; + padding: 1rem; + background: var(--bg-deep); + border: 1px solid var(--border-subtle); + color: var(--text-primary); + font-family: inherit; + font-size: 1rem; + transition: border-color 0.15s ease-out; +} + +.input-field:focus { + outline: none; + border-color: var(--accent-cyan); +} + +.input-field::placeholder { + color: var(--text-secondary); +} + +/* ======================================== + FEED GRID STYLES + ======================================== */ +.feed-grid { + display: grid; + gap: 1rem; +} + +.feed-grid.primary { + grid-template-columns: repeat(2, 1fr); +} + +.feed-grid.secondary { + grid-template-columns: repeat(2, 1fr); +} + +.feed-grid.explore { + grid-template-columns: repeat(4, 1fr); +} + +@media (max-width: 768px) { + .feed-grid.primary, + .feed-grid.secondary { + grid-template-columns: 1fr; + } + .feed-grid.explore { + grid-template-columns: repeat(2, 1fr); + } +} + +/* Feed card opacity levels */ +.feed-card-primary { + box-shadow: 0 0 30px rgba(78, 205, 196, 0.15); +} + +.feed-card-secondary { + opacity: 0.9; +} + +.feed-card-explore { + opacity: 0.7; +} + +.feed-card-explore:hover { + opacity: 1; +} + +/* ======================================== + STAGGER ANIMATION DELAYS + ======================================== */ +.stagger-1 { animation-delay: 50ms; } +.stagger-2 { animation-delay: 100ms; } +.stagger-3 { animation-delay: 150ms; } +.stagger-4 { animation-delay: 200ms; } +.stagger-5 { animation-delay: 250ms; } +.stagger-6 { animation-delay: 300ms; } +.stagger-7 { animation-delay: 350ms; } +.stagger-8 { animation-delay: 400ms; } diff --git a/apps/media-discovery/src/app/layout.tsx b/apps/media-discovery/src/app/layout.tsx index 0cedce5d..da6027d9 100644 --- a/apps/media-discovery/src/app/layout.tsx +++ b/apps/media-discovery/src/app/layout.tsx @@ -1,10 +1,7 @@ import type { Metadata } from 'next'; -import { Inter } from 'next/font/google'; import './globals.css'; import { Providers } from './providers'; -const inter = Inter({ subsets: ['latin'] }); - export const metadata: Metadata = { title: 'AI Media Discovery', description: 'Discover movies and TV shows through natural language prompts and personalized recommendations', @@ -23,6 +20,13 @@ export default function RootLayout({ return ( + {/* Fonts */} + + + {/* ARW Discovery */} - + {children} diff --git a/apps/media-discovery/src/app/page.tsx b/apps/media-discovery/src/app/page.tsx index f978c883..45b90aac 100644 --- a/apps/media-discovery/src/app/page.tsx +++ b/apps/media-discovery/src/app/page.tsx @@ -1,85 +1,384 @@ -import { Suspense } from 'react'; +'use client'; + +import { Suspense, useEffect, useRef, useCallback, useState } from 'react'; +import confetti from 'canvas-confetti'; import { SearchBar } from '@/components/SearchBar'; import { TrendingSection } from '@/components/TrendingSection'; import { RecommendationsSection } from '@/components/RecommendationsSection'; +import { AdminWidget } from '@/components/AdminWidget'; +import { useDiscoveryStore, GENRES } from '@/lib/discovery-store'; export default function HomePage() { + const { + currentScreen, + setScreen, + isTransitioning, + setTransitioning, + profileComplete, + startDiscovery, + genres, + clickSequence, + totalTime, + updateTotalTime, + onHoverEnter, + onHoverLeave, + onThumbnailClick, + trackVelocity, + startTime, + completeProfile, + getGenreScores, + resetMetrics, + initializeGenres, + } = useDiscoveryStore(); + + const timerRef = useRef(null); + const lastMousePos = useRef({ x: 0, y: 0, time: 0 }); + const confettiFiredRef = useRef(false); + const [shuffledGenres, setShuffledGenres] = useState([]); + + const showContinueButton = totalTime > 8 || clickSequence.length >= 3; + + // Fire confetti when profile is ready + useEffect(() => { + if (showContinueButton && currentScreen === 'discovery' && !confettiFiredRef.current) { + confettiFiredRef.current = true; + confetti({ + particleCount: 100, + spread: 70, + origin: { y: 0.9 }, + colors: ['#4ECDC4', '#FF6B6B', '#FFE66D', '#A855F7'], + }); + } + }, [showContinueButton, currentScreen]); + + // Reset confetti flag when discovery restarts + useEffect(() => { + if (currentScreen === 'signin') { + confettiFiredRef.current = false; + } + }, [currentScreen]); + + // Initialize genres on mount + useEffect(() => { + initializeGenres(); + }, [initializeGenres]); + + // Shuffle genres when entering discovery screen + useEffect(() => { + if (currentScreen === 'discovery') { + setShuffledGenres([...GENRES].sort(() => Math.random() - 0.5)); + } + }, [currentScreen]); + + // Timer logic + useEffect(() => { + if (currentScreen === 'discovery' && startTime) { + const animate = () => { + const elapsed = (performance.now() - startTime) / 1000; + updateTotalTime(elapsed); + timerRef.current = requestAnimationFrame(animate); + }; + timerRef.current = requestAnimationFrame(animate); + + return () => { + if (timerRef.current) cancelAnimationFrame(timerRef.current); + }; + } + }, [currentScreen, startTime, updateTotalTime]); + + // Mouse velocity tracking + const handleMouseMove = useCallback((e: MouseEvent) => { + const now = performance.now(); + const dx = e.clientX - lastMousePos.current.x; + const dy = e.clientY - lastMousePos.current.y; + const dt = now - lastMousePos.current.time; + + if (dt > 0) { + const speed = Math.sqrt(dx * dx + dy * dy) / dt * 1000; + trackVelocity(speed); + } + + lastMousePos.current = { x: e.clientX, y: e.clientY, time: now }; + }, [trackVelocity]); + + useEffect(() => { + if (currentScreen === 'discovery') { + document.addEventListener('mousemove', handleMouseMove); + return () => document.removeEventListener('mousemove', handleMouseMove); + } + }, [currentScreen, handleMouseMove]); + + // Screen transition + const goToScreen = (screen: typeof currentScreen) => { + if (isTransitioning) return; + setTransitioning(true); + + setTimeout(() => { + setScreen(screen); + if (screen === 'discovery') startDiscovery(); + setTimeout(() => setTransitioning(false), 500); + }, 400); + }; + + const handleRestart = () => { + resetMetrics(); + goToScreen('signin'); + }; + + // Get top genres for personalized sections + const topGenres = getGenreScores(); + const primaryGenres = topGenres.slice(0, 2); + + // Extract TMDB IDs for API filtering + const primaryGenreIds = primaryGenres.map(g => g.tmdbId).filter(Boolean); + + // Determine if user completed profiling properly (8+ sec OR 3+ clicks) + const hasProfile = !(clickSequence.length === 0 || (totalTime <= 8 && clickSequence.length < 3)); + + // If profile is complete, show the main app + if (profileComplete) { + return ( +
+ + + {/* Hero Section */} +
+ {hasProfile && ( + <> +

+ Curated for You +

+

+ Based on your unique viewing style. +

+ + )} + {/* Time saved badge - only show if user completed profiling */} + {hasProfile && ( +
+ {totalTime.toFixed(0)}s + to profile you, not 45 minutes +
+ )} + + {/* Disclosure if user skipped or didn't select */} + {!hasProfile && ( +
+ + {clickSequence.length === 0 + ? "You didn't select any genres β€” showing general recommendations" + : "You skipped profiling β€” recommendations may be less personalized" + } + +
+ )} + + {/* Search Bar */} +
+ }> + + +
+ + {/* Example Prompts */} +
+ {[ + 'exciting sci-fi adventure', + 'cozy romantic comedy', + 'dark psychological thriller', + 'inspiring true story', + ].map((prompt) => ( + + ))} +
+
+ + {hasProfile ? ( +
+

+ Perfect for {primaryGenres.map(g => g.name).join(' & ')} Fans +

+

Curated based on your taste profile

+ }> + + +
+ ) : ( + <> +
+

Trending Now

+

Popular picks across all genres

+ }> + + +
+ +
+

Popular This Week

+

What everyone is watching

+ }> + + +
+ +
+

Discover More

+

Explore the full library

+ }> + + +
+ + )} + + {/* Footer */} + +
+ ); + } + + // Cold-start discovery flow return (
- {/* Hero Section */} -
-

- AI Media Discovery -

-

- Describe what you want to watch in plain English. Our AI understands - your mood and finds the perfect match. -

- - {/* Search Bar */} -
- }> - - -
+ - {/* Example Prompts */} -
- {[ - 'exciting sci-fi adventure', - 'cozy romantic comedy', - 'dark psychological thriller', - 'inspiring true story', - ].map((prompt) => ( - - ))} + {/* SCREEN 1: SIGN-IN */} +
+
+

+ Discover Your
Next Watch +

+

+ No questionnaires. No endless scrolling.
+ Just a few moments of your attention. +

+ +
- {/* Trending Section */} -
-

Trending This Week

- }> - - -
+ {/* SCREEN 2: DISCOVERY GRID */} +
+
+ {/* Header - fixed at top */} +
+

What catches your eye?

+

Select images that interest you

+
+ {totalTime.toFixed(3)}s +
+
+ + {/* Thumbnail Grid - scrollable */} +
+
+ {shuffledGenres.map((genre, index) => { + const genreData = genres[genre.id]; + const isClicked = genreData?.clickOrder !== null; - {/* Recommendations Section */} -
-

Recommended For You

- }> - - + return ( +
onHoverEnter(genre.id)} + onMouseLeave={() => onHoverLeave(genre.id)} + onClick={() => onThumbnailClick(genre.id)} + > + {genre.name} + {isClicked && ( +
+
+ {genreData?.clickOrder} +
+
+ )} +
+ ); + })} +
+
+ + {/* CTA - fixed at bottom */} +
+
+ {/* Animated border - only visible when profile ready */} + {showContinueButton && ( +
+ )} + +
+
+
- {/* Footer */} -
); } @@ -87,7 +386,7 @@ export default function HomePage() { // Skeleton components function SearchBarSkeleton() { return ( -
+
); } @@ -97,7 +396,7 @@ function ContentSkeleton() { {Array.from({ length: 6 }).map((_, i) => (
))}
diff --git a/apps/media-discovery/src/components/AdminWidget.tsx b/apps/media-discovery/src/components/AdminWidget.tsx new file mode 100644 index 00000000..7a5b39ab --- /dev/null +++ b/apps/media-discovery/src/components/AdminWidget.tsx @@ -0,0 +1,120 @@ +'use client'; + +import { useState, useMemo } from 'react'; +import { useDiscoveryStore } from '@/lib/discovery-store'; + +export function AdminWidget() { + const [isCollapsed, setIsCollapsed] = useState(false); + + const { + genres, + clickSequence, + mouseVelocity, + skipEvents, + totalHovers, + totalTime, + } = useDiscoveryStore(); + + const sortedGenres = useMemo(() => { + return Object.values(genres) + .map(g => ({ + ...g, + score: g.hoverTime + (g.clickOrder ? (9 - g.clickOrder) * 800 : 0), + })) + .sort((a, b) => b.score - a.score); + }, [genres]); + + const avgVelocity = useMemo(() => { + if (mouseVelocity.length === 0) return 0; + return mouseVelocity.reduce((a, b) => a + b, 0) / mouseVelocity.length; + }, [mouseVelocity]); + + const clickSequenceNames = useMemo(() => { + return clickSequence.map(id => genres[id]?.name || id).join(' β†’ '); + }, [clickSequence, genres]); + + return ( +
+ {/* Header */} +
setIsCollapsed(!isCollapsed)} + > + + Genre Leaderboard + + +
+ + {/* Body */} + {!isCollapsed && ( +
+ {/* Total Time */} +
+ {totalTime.toFixed(3)}s +
+ + {/* Genre Leaderboard */} +
+
+ Live Genre Rankings +
+
+ {sortedGenres.map((genre, index) => ( +
+ + {index + 1} + + + {genre.name} + + {genre.hoverTime.toFixed(0)}ms + +
+ ))} +
+
+ + {/* Click Sequence */} +
+
+ Click Sequence +
+
+ {clickSequenceNames || 'No clicks yet'} +
+
+ + {/* Behavior Signals */} +
+
+ Behavior Signals +
+
+
+ Avg Velocity + {avgVelocity.toFixed(0)} px/s +
+
+ Skip Events + {skipEvents} +
+
+ Hover Events + {totalHovers} +
+
+
+
+ )} +
+ ); +} diff --git a/apps/media-discovery/src/components/MediaCard.tsx b/apps/media-discovery/src/components/MediaCard.tsx index 720f74cd..e0d1ab0f 100644 --- a/apps/media-discovery/src/components/MediaCard.tsx +++ b/apps/media-discovery/src/components/MediaCard.tsx @@ -8,28 +8,49 @@ import { getPosterUrl } from '@/lib/tmdb'; interface MediaCardProps { content: MediaContent; reason?: string; + index?: number; } -export function MediaCard({ content, reason }: MediaCardProps) { +// Map genre IDs to colors +const genreColorMap: Record = { + 10749: '#FF6B6B', // Romance + 53: '#4ECDC4', // Thriller + 35: '#FFE66D', // Comedy + 878: '#A855F7', // Sci-Fi + 18: '#F97316', // Drama + 28: '#EF4444', // Action + 27: '#6B7280', // Horror + 99: '#10B981', // Documentary +}; + +export function MediaCard({ content, reason, index = 0 }: MediaCardProps) { const posterUrl = getPosterUrl(content.posterPath); const href = content.mediaType === 'movie' ? `/movie/${content.id}` : `/tv/${content.id}`; + // Get genre color from first genre + const primaryGenreId = content.genreIds?.[0]; + const genreColor = primaryGenreId ? genreColorMap[primaryGenreId] : '#4ECDC4'; + return ( - -
+ +
{posterUrl ? ( {content.title} ) : ( -
+
0 && ( -
+
+ + + {content.voteAverage.toFixed(1)}
)} {/* Media type badge */} -
+
{content.mediaType}
- {/* Hover overlay */} -
-
-

+ {/* Hover overlay with genre label */} +
+
+

{content.title}

{content.releaseDate && ( -

+

{new Date(content.releaseDate).getFullYear()}

)}
+ + {/* Genre color accent bar */} +
{/* Title and reason below card */} -
-

{content.title}

+
+

+ {content.title} +

{reason && ( -

+

{reason}

)} diff --git a/apps/media-discovery/src/components/RecommendationsSection.tsx b/apps/media-discovery/src/components/RecommendationsSection.tsx index 14827965..07b6606e 100644 --- a/apps/media-discovery/src/components/RecommendationsSection.tsx +++ b/apps/media-discovery/src/components/RecommendationsSection.tsx @@ -2,19 +2,26 @@ import { useQuery } from '@tanstack/react-query'; import { MediaCard } from './MediaCard'; -import type { Recommendation } from '@/types/media'; +import type { MediaContent } from '@/types/media'; -async function fetchRecommendations(): Promise { - const response = await fetch('/api/recommendations'); +interface RecommendationsSectionProps { + genreIds?: number[]; +} + +async function fetchContent(genreIds?: number[]): Promise { + const url = genreIds?.length + ? `/api/discover?category=discover&type=all&genres=${genreIds.join(',')}` + : '/api/discover?category=popular&type=all'; + const response = await fetch(url); if (!response.ok) throw new Error('Failed to fetch recommendations'); const data = await response.json(); - return data.recommendations; + return data.results; } -export function RecommendationsSection() { - const { data: recommendations, isLoading, error } = useQuery({ - queryKey: ['recommendations'], - queryFn: fetchRecommendations, +export function RecommendationsSection({ genreIds }: RecommendationsSectionProps) { + const { data: content, isLoading, error } = useQuery({ + queryKey: ['recommendations', genreIds], + queryFn: () => fetchContent(genreIds), }); if (isLoading) { @@ -23,32 +30,30 @@ export function RecommendationsSection() { {Array.from({ length: 6 }).map((_, i) => (
))}
); } - if (error || !recommendations) { + if (error || !content) { return ( -
+
Failed to load recommendations
); } return ( -
-
- {recommendations.slice(0, 12).map((rec) => ( - - ))} -
+
+ {content.slice(0, 12).map((item, index) => ( + + ))}
); } diff --git a/apps/media-discovery/src/components/SearchBar.tsx b/apps/media-discovery/src/components/SearchBar.tsx index 44690d2a..3c0203e9 100644 --- a/apps/media-discovery/src/components/SearchBar.tsx +++ b/apps/media-discovery/src/components/SearchBar.tsx @@ -8,6 +8,7 @@ export function SearchBar() { const searchParams = useSearchParams(); const [query, setQuery] = useState(searchParams.get('q') || ''); const [isLoading, setIsLoading] = useState(false); + const [isFocused, setIsFocused] = useState(false); const handleSubmit = useCallback( async (e: React.FormEvent) => { @@ -21,56 +22,78 @@ export function SearchBar() { ); return ( -
- setQuery(e.target.value)} - placeholder="Describe what you want to watch..." - className="w-full h-14 px-6 pr-14 text-lg bg-white dark:bg-gray-800 border border-gray-200 dark:border-gray-700 rounded-xl shadow-sm focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-transparent transition-all" - disabled={isLoading} + + {/* Animated border wrapper - always animating, more intense on focus */} +
- + viewBox="0 0 24 24" + > + + + )} + +
+ +
); } diff --git a/apps/media-discovery/src/components/TrendingSection.tsx b/apps/media-discovery/src/components/TrendingSection.tsx index 13c8c660..e9250b27 100644 --- a/apps/media-discovery/src/components/TrendingSection.tsx +++ b/apps/media-discovery/src/components/TrendingSection.tsx @@ -4,17 +4,24 @@ import { useQuery } from '@tanstack/react-query'; import { MediaCard } from './MediaCard'; import type { MediaContent } from '@/types/media'; -async function fetchTrending(): Promise { - const response = await fetch('/api/discover?category=trending&type=all'); - if (!response.ok) throw new Error('Failed to fetch trending'); +interface TrendingSectionProps { + genreIds?: number[]; +} + +async function fetchContent(genreIds?: number[]): Promise { + const url = genreIds?.length + ? `/api/discover?category=discover&type=all&genres=${genreIds.join(',')}` + : '/api/discover?category=trending&type=all'; + const response = await fetch(url); + if (!response.ok) throw new Error('Failed to fetch content'); const data = await response.json(); return data.results; } -export function TrendingSection() { +export function TrendingSection({ genreIds }: TrendingSectionProps) { const { data: content, isLoading, error } = useQuery({ - queryKey: ['trending'], - queryFn: fetchTrending, + queryKey: ['trending', genreIds], + queryFn: () => fetchContent(genreIds), }); if (isLoading) { @@ -23,7 +30,7 @@ export function TrendingSection() { {Array.from({ length: 12 }).map((_, i) => (
))}
@@ -32,7 +39,7 @@ export function TrendingSection() { if (error || !content) { return ( -
+
Failed to load trending content
); @@ -40,8 +47,12 @@ export function TrendingSection() { return (
- {content.slice(0, 12).map((item) => ( - + {content.slice(0, 12).map((item, index) => ( + ))}
); diff --git a/apps/media-discovery/src/lib/discovery-store.ts b/apps/media-discovery/src/lib/discovery-store.ts new file mode 100644 index 00000000..776d04c3 --- /dev/null +++ b/apps/media-discovery/src/lib/discovery-store.ts @@ -0,0 +1,233 @@ +import { create } from 'zustand'; + +export interface Genre { + id: string; + name: string; + color: string; + src: string; + tmdbId: number; + hoverTime: number; + hoverCount: number; + clickOrder: number | null; +} + +export interface DiscoveryMetrics { + genres: Record; + clickSequence: string[]; + mouseVelocity: number[]; + skipEvents: number; + totalHovers: number; + startTime: number | null; + totalTime: number; + currentScreen: 'signin' | 'discovery' | 'results' | 'app'; + isTransitioning: boolean; + currentHover: string | null; + hoverStartTime: number | null; + profileComplete: boolean; +} + +// 8 genre configuration with Unsplash images and TMDB genre IDs +export const GENRES: Omit[] = [ + { + id: 'romance', + name: 'Romance', + color: '#FF6B6B', + tmdbId: 10749, + src: 'https://images.unsplash.com/photo-1516589178581-6cd7833ae3b2?w=300&h=533&fit=crop' + }, + { + id: 'thriller', + name: 'Thriller', + color: '#4ECDC4', + tmdbId: 53, + src: 'https://images.unsplash.com/photo-1478720568477-152d9b164e26?w=300&h=533&fit=crop' + }, + { + id: 'comedy', + name: 'Comedy', + color: '#FFE66D', + tmdbId: 35, + src: 'https://images.unsplash.com/photo-1517604931442-7e0c8ed2963c?w=300&h=533&fit=crop' + }, + { + id: 'scifi', + name: 'Sci-Fi', + color: '#A855F7', + tmdbId: 878, + src: 'https://images.unsplash.com/photo-1446776811953-b23d57bd21aa?w=300&h=533&fit=crop' + }, + { + id: 'drama', + name: 'Drama', + color: '#F97316', + tmdbId: 18, + src: 'https://images.unsplash.com/photo-1440404653325-ab127d49abc1?w=300&h=533&fit=crop' + }, + { + id: 'action', + name: 'Action', + color: '#EF4444', + tmdbId: 28, + src: 'https://images.unsplash.com/photo-1536440136628-849c177e76a1?w=300&h=533&fit=crop' + }, + { + id: 'horror', + name: 'Horror', + color: '#6B7280', + tmdbId: 27, + src: 'https://images.unsplash.com/photo-1626544827763-d516dce335e2?w=300&h=533&fit=crop' + }, + { + id: 'documentary', + name: 'Documentary', + color: '#10B981', + tmdbId: 99, + src: 'https://images.unsplash.com/photo-1492724441997-5dc865305da7?w=300&h=533&fit=crop' + }, +]; + +interface DiscoveryStore extends DiscoveryMetrics { + // Actions + initializeGenres: () => void; + setScreen: (screen: DiscoveryMetrics['currentScreen']) => void; + setTransitioning: (value: boolean) => void; + startDiscovery: () => void; + onHoverEnter: (id: string) => void; + onHoverLeave: (id: string) => void; + onThumbnailClick: (id: string) => void; + trackVelocity: (speed: number) => void; + incrementSkipEvents: () => void; + updateTotalTime: (time: number) => void; + getGenreScores: () => Genre[]; + resetMetrics: () => void; + completeProfile: () => void; +} + +const initialState: DiscoveryMetrics = { + genres: {}, + clickSequence: [], + mouseVelocity: [], + skipEvents: 0, + totalHovers: 0, + startTime: null, + totalTime: 0, + currentScreen: 'signin', + isTransitioning: false, + currentHover: null, + hoverStartTime: null, + profileComplete: false, +}; + +export const useDiscoveryStore = create((set, get) => ({ + ...initialState, + + initializeGenres: () => { + const genresMap: Record = {}; + GENRES.forEach(g => { + genresMap[g.id] = { + ...g, + tmdbId: g.tmdbId, + hoverTime: 0, + hoverCount: 0, + clickOrder: null, + }; + }); + set({ genres: genresMap }); + }, + + setScreen: (screen) => set({ currentScreen: screen }), + + setTransitioning: (value) => set({ isTransitioning: value }), + + startDiscovery: () => { + get().initializeGenres(); + set({ + startTime: performance.now(), + clickSequence: [], + mouseVelocity: [], + skipEvents: 0, + totalHovers: 0, + totalTime: 0, + }); + }, + + onHoverEnter: (id) => { + set((state) => ({ + currentHover: id, + hoverStartTime: performance.now(), + totalHovers: state.totalHovers + 1, + genres: { + ...state.genres, + [id]: { + ...state.genres[id], + hoverCount: state.genres[id].hoverCount + 1, + }, + }, + })); + }, + + onHoverLeave: (id) => { + const state = get(); + if (state.currentHover === id && state.hoverStartTime) { + const hoverDuration = performance.now() - state.hoverStartTime; + set((s) => ({ + currentHover: null, + hoverStartTime: null, + genres: { + ...s.genres, + [id]: { + ...s.genres[id], + hoverTime: s.genres[id].hoverTime + hoverDuration, + }, + }, + })); + } + }, + + onThumbnailClick: (id) => { + const state = get(); + if (state.genres[id]?.clickOrder !== null) return; + + const clickNum = state.clickSequence.length + 1; + set((s) => ({ + clickSequence: [...s.clickSequence, id], + genres: { + ...s.genres, + [id]: { + ...s.genres[id], + clickOrder: clickNum, + }, + }, + })); + }, + + trackVelocity: (speed) => { + set((state) => ({ + mouseVelocity: [...state.mouseVelocity, speed], + })); + if (speed > 2000) { + set((state) => ({ skipEvents: state.skipEvents + 1 })); + } + }, + + incrementSkipEvents: () => set((state) => ({ skipEvents: state.skipEvents + 1 })), + + updateTotalTime: (time) => set({ totalTime: time }), + + getGenreScores: () => { + const state = get(); + return Object.values(state.genres) + .map(g => ({ + ...g, + score: g.hoverTime + (g.clickOrder ? (9 - g.clickOrder) * 800 : 0), + })) + .sort((a, b) => (b as Genre & { score: number }).score - (a as Genre & { score: number }).score); + }, + + resetMetrics: () => { + set(initialState); + get().initializeGenres(); + }, + + completeProfile: () => set({ profileComplete: true, currentScreen: 'app' }), +})); diff --git a/apps/media-discovery/tailwind.config.ts b/apps/media-discovery/tailwind.config.ts index 73c9638d..4d272f52 100644 --- a/apps/media-discovery/tailwind.config.ts +++ b/apps/media-discovery/tailwind.config.ts @@ -6,13 +6,93 @@ export default { './src/components/**/*.{js,ts,jsx,tsx,mdx}', './src/app/**/*.{js,ts,jsx,tsx,mdx}', ], - darkMode: 'media', + darkMode: 'class', theme: { extend: { colors: { + // Core Colors - Cool Midnight + 'bg-deep': '#0D1117', + 'bg-primary': '#1A2332', + 'bg-elevated': '#242D3D', + 'text-primary': '#F0F6FC', + 'text-secondary': '#8B949E', + 'accent-cyan': '#4ECDC4', + 'accent-cyan-dim': '#2A9D8F', + 'border-subtle': '#30363D', + + // Genre Colors + 'genre-romance': '#FF6B6B', + 'genre-thriller': '#4ECDC4', + 'genre-comedy': '#FFE66D', + 'genre-scifi': '#A855F7', + 'genre-drama': '#F97316', + 'genre-action': '#EF4444', + 'genre-horror': '#6B7280', + 'genre-documentary': '#10B981', + + // Legacy support background: 'var(--background)', foreground: 'var(--foreground)', }, + fontFamily: { + sans: ['var(--font-dm-sans)', '-apple-system', 'BlinkMacSystemFont', 'sans-serif'], + mono: ['var(--font-jetbrains)', 'monospace'], + }, + fontSize: { + 'hero': ['3rem', { lineHeight: '1.1', letterSpacing: '-0.04em', fontWeight: '700' }], + 'h1': ['2.25rem', { lineHeight: '1.2', letterSpacing: '-0.04em', fontWeight: '700' }], + 'h2': ['1.5rem', { lineHeight: '1.3', letterSpacing: '-0.02em', fontWeight: '700' }], + }, + animation: { + 'screen-enter': 'screenEnter 500ms cubic-bezier(0.16, 1, 0.3, 1) forwards', + 'screen-exit': 'screenExit 400ms ease-in forwards', + 'card-fade-in': 'cardFadeIn 600ms cubic-bezier(0.16, 1, 0.3, 1) forwards', + 'card-reveal': 'cardReveal 650ms cubic-bezier(0.16, 1, 0.3, 1) forwards', + 'section-fade-up': 'sectionFadeUp 500ms cubic-bezier(0.16, 1, 0.3, 1) forwards', + 'header-slide': 'headerSlide 400ms cubic-bezier(0.16, 1, 0.3, 1) forwards', + 'badge-pop': 'badgePop 300ms cubic-bezier(0.34, 1.56, 0.64, 1)', + 'button-reveal': 'buttonReveal 400ms cubic-bezier(0.16, 1, 0.3, 1) forwards', + }, + keyframes: { + screenEnter: { + '0%': { opacity: '0', transform: 'translateY(40px) scale(0.98)' }, + '100%': { opacity: '1', transform: 'translateY(0) scale(1)' }, + }, + screenExit: { + '0%': { opacity: '1', transform: 'translateY(0) scale(1)' }, + '100%': { opacity: '0', transform: 'translateY(-30px) scale(0.97)' }, + }, + cardFadeIn: { + '0%': { opacity: '0', transform: 'translateY(20px)' }, + '100%': { opacity: '1', transform: 'translateY(0)' }, + }, + cardReveal: { + '0%': { opacity: '0', transform: 'translateY(40px) scale(0.92)' }, + '60%': { transform: 'translateY(-8px) scale(1.02)' }, + '100%': { opacity: '1', transform: 'translateY(0) scale(1)' }, + }, + sectionFadeUp: { + '0%': { opacity: '0', transform: 'translateY(30px)' }, + '100%': { opacity: '1', transform: 'translateY(0)' }, + }, + headerSlide: { + '0%': { opacity: '0', transform: 'translateX(-15px)' }, + '100%': { opacity: '1', transform: 'translateX(0)' }, + }, + badgePop: { + '0%': { transform: 'scale(0)' }, + '50%': { transform: 'scale(1.2)' }, + '100%': { transform: 'scale(1)' }, + }, + buttonReveal: { + '0%': { opacity: '0', transform: 'translateY(10px)' }, + '100%': { opacity: '1', transform: 'translateY(0)' }, + }, + }, + transitionTimingFunction: { + 'bounce-out': 'cubic-bezier(0.34, 1.56, 0.64, 1)', + 'smooth-out': 'cubic-bezier(0.16, 1, 0.3, 1)', + }, }, }, plugins: [], diff --git a/apps/media-discovery/tsconfig.tsbuildinfo b/apps/media-discovery/tsconfig.tsbuildinfo index 3f00e572..0f4bc5bc 100644 --- a/apps/media-discovery/tsconfig.tsbuildinfo +++ b/apps/media-discovery/tsconfig.tsbuildinfo @@ -1 +1 @@ -{"fileNames":["./node_modules/typescript/lib/lib.es5.d.ts","./node_modules/typescript/lib/lib.es2015.d.ts","./node_modules/typescript/lib/lib.es2016.d.ts","./node_modules/typescript/lib/lib.es2017.d.ts","./node_modules/typescript/lib/lib.es2018.d.ts","./node_modules/typescript/lib/lib.es2019.d.ts","./node_modules/typescript/lib/lib.es2020.d.ts","./node_modules/typescript/lib/lib.es2021.d.ts","./node_modules/typescript/lib/lib.es2022.d.ts","./node_modules/typescript/lib/lib.es2023.d.ts","./node_modules/typescript/lib/lib.es2024.d.ts","./node_modules/typescript/lib/lib.esnext.d.ts","./node_modules/typescript/lib/lib.dom.d.ts","./node_modules/typescript/lib/lib.dom.iterable.d.ts","./node_modules/typescript/lib/lib.es2015.core.d.ts","./node_modules/typescript/lib/lib.es2015.collection.d.ts","./node_modules/typescript/lib/lib.es2015.generator.d.ts","./node_modules/typescript/lib/lib.es2015.iterable.d.ts","./node_modules/typescript/lib/lib.es2015.promise.d.ts","./node_modules/typescript/lib/lib.es2015.proxy.d.ts","./node_modules/typescript/lib/lib.es2015.reflect.d.ts","./node_modules/typescript/lib/lib.es2015.symbol.d.ts","./node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","./node_modules/typescript/lib/lib.es2016.array.include.d.ts","./node_modules/typescript/lib/lib.es2016.intl.d.ts","./node_modules/typescript/lib/lib.es2017.arraybuffer.d.ts","./node_modules/typescript/lib/lib.es2017.date.d.ts","./node_modules/typescript/lib/lib.es2017.object.d.ts","./node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","./node_modules/typescript/lib/lib.es2017.string.d.ts","./node_modules/typescript/lib/lib.es2017.intl.d.ts","./node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","./node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","./node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","./node_modules/typescript/lib/lib.es2018.intl.d.ts","./node_modules/typescript/lib/lib.es2018.promise.d.ts","./node_modules/typescript/lib/lib.es2018.regexp.d.ts","./node_modules/typescript/lib/lib.es2019.array.d.ts","./node_modules/typescript/lib/lib.es2019.object.d.ts","./node_modules/typescript/lib/lib.es2019.string.d.ts","./node_modules/typescript/lib/lib.es2019.symbol.d.ts","./node_modules/typescript/lib/lib.es2019.intl.d.ts","./node_modules/typescript/lib/lib.es2020.bigint.d.ts","./node_modules/typescript/lib/lib.es2020.date.d.ts","./node_modules/typescript/lib/lib.es2020.promise.d.ts","./node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","./node_modules/typescript/lib/lib.es2020.string.d.ts","./node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","./node_modules/typescript/lib/lib.es2020.intl.d.ts","./node_modules/typescript/lib/lib.es2020.number.d.ts","./node_modules/typescript/lib/lib.es2021.promise.d.ts","./node_modules/typescript/lib/lib.es2021.string.d.ts","./node_modules/typescript/lib/lib.es2021.weakref.d.ts","./node_modules/typescript/lib/lib.es2021.intl.d.ts","./node_modules/typescript/lib/lib.es2022.array.d.ts","./node_modules/typescript/lib/lib.es2022.error.d.ts","./node_modules/typescript/lib/lib.es2022.intl.d.ts","./node_modules/typescript/lib/lib.es2022.object.d.ts","./node_modules/typescript/lib/lib.es2022.string.d.ts","./node_modules/typescript/lib/lib.es2022.regexp.d.ts","./node_modules/typescript/lib/lib.es2023.array.d.ts","./node_modules/typescript/lib/lib.es2023.collection.d.ts","./node_modules/typescript/lib/lib.es2023.intl.d.ts","./node_modules/typescript/lib/lib.es2024.arraybuffer.d.ts","./node_modules/typescript/lib/lib.es2024.collection.d.ts","./node_modules/typescript/lib/lib.es2024.object.d.ts","./node_modules/typescript/lib/lib.es2024.promise.d.ts","./node_modules/typescript/lib/lib.es2024.regexp.d.ts","./node_modules/typescript/lib/lib.es2024.sharedmemory.d.ts","./node_modules/typescript/lib/lib.es2024.string.d.ts","./node_modules/typescript/lib/lib.esnext.array.d.ts","./node_modules/typescript/lib/lib.esnext.collection.d.ts","./node_modules/typescript/lib/lib.esnext.intl.d.ts","./node_modules/typescript/lib/lib.esnext.disposable.d.ts","./node_modules/typescript/lib/lib.esnext.promise.d.ts","./node_modules/typescript/lib/lib.esnext.decorators.d.ts","./node_modules/typescript/lib/lib.esnext.iterator.d.ts","./node_modules/typescript/lib/lib.esnext.float16.d.ts","./node_modules/typescript/lib/lib.esnext.error.d.ts","./node_modules/typescript/lib/lib.esnext.sharedmemory.d.ts","./node_modules/typescript/lib/lib.decorators.d.ts","./node_modules/typescript/lib/lib.decorators.legacy.d.ts","./.next/types/routes.d.ts","./node_modules/@types/react/global.d.ts","./node_modules/csstype/index.d.ts","./node_modules/@types/react/index.d.ts","./node_modules/next/dist/styled-jsx/types/css.d.ts","./node_modules/next/dist/styled-jsx/types/macro.d.ts","./node_modules/next/dist/styled-jsx/types/style.d.ts","./node_modules/next/dist/styled-jsx/types/global.d.ts","./node_modules/next/dist/styled-jsx/types/index.d.ts","./node_modules/next/dist/shared/lib/amp.d.ts","./node_modules/next/amp.d.ts","./node_modules/next/dist/server/get-page-files.d.ts","./node_modules/@types/node/compatibility/disposable.d.ts","./node_modules/@types/node/compatibility/indexable.d.ts","./node_modules/@types/node/compatibility/iterators.d.ts","./node_modules/@types/node/compatibility/index.d.ts","./node_modules/@types/node/globals.typedarray.d.ts","./node_modules/@types/node/buffer.buffer.d.ts","./node_modules/@types/node/globals.d.ts","./node_modules/@types/node/web-globals/abortcontroller.d.ts","./node_modules/@types/node/web-globals/domexception.d.ts","./node_modules/@types/node/web-globals/events.d.ts","./node_modules/buffer/index.d.ts","./node_modules/undici-types/header.d.ts","./node_modules/undici-types/readable.d.ts","./node_modules/undici-types/file.d.ts","./node_modules/undici-types/fetch.d.ts","./node_modules/undici-types/formdata.d.ts","./node_modules/undici-types/connector.d.ts","./node_modules/undici-types/client.d.ts","./node_modules/undici-types/errors.d.ts","./node_modules/undici-types/dispatcher.d.ts","./node_modules/undici-types/global-dispatcher.d.ts","./node_modules/undici-types/global-origin.d.ts","./node_modules/undici-types/pool-stats.d.ts","./node_modules/undici-types/pool.d.ts","./node_modules/undici-types/handlers.d.ts","./node_modules/undici-types/balanced-pool.d.ts","./node_modules/undici-types/agent.d.ts","./node_modules/undici-types/mock-interceptor.d.ts","./node_modules/undici-types/mock-agent.d.ts","./node_modules/undici-types/mock-client.d.ts","./node_modules/undici-types/mock-pool.d.ts","./node_modules/undici-types/mock-errors.d.ts","./node_modules/undici-types/proxy-agent.d.ts","./node_modules/undici-types/env-http-proxy-agent.d.ts","./node_modules/undici-types/retry-handler.d.ts","./node_modules/undici-types/retry-agent.d.ts","./node_modules/undici-types/api.d.ts","./node_modules/undici-types/interceptors.d.ts","./node_modules/undici-types/util.d.ts","./node_modules/undici-types/cookies.d.ts","./node_modules/undici-types/patch.d.ts","./node_modules/undici-types/websocket.d.ts","./node_modules/undici-types/eventsource.d.ts","./node_modules/undici-types/filereader.d.ts","./node_modules/undici-types/diagnostics-channel.d.ts","./node_modules/undici-types/content-type.d.ts","./node_modules/undici-types/cache.d.ts","./node_modules/undici-types/index.d.ts","./node_modules/@types/node/web-globals/fetch.d.ts","./node_modules/@types/node/web-globals/navigator.d.ts","./node_modules/@types/node/web-globals/storage.d.ts","./node_modules/@types/node/assert.d.ts","./node_modules/@types/node/assert/strict.d.ts","./node_modules/@types/node/async_hooks.d.ts","./node_modules/@types/node/buffer.d.ts","./node_modules/@types/node/child_process.d.ts","./node_modules/@types/node/cluster.d.ts","./node_modules/@types/node/console.d.ts","./node_modules/@types/node/constants.d.ts","./node_modules/@types/node/crypto.d.ts","./node_modules/@types/node/dgram.d.ts","./node_modules/@types/node/diagnostics_channel.d.ts","./node_modules/@types/node/dns.d.ts","./node_modules/@types/node/dns/promises.d.ts","./node_modules/@types/node/domain.d.ts","./node_modules/@types/node/events.d.ts","./node_modules/@types/node/fs.d.ts","./node_modules/@types/node/fs/promises.d.ts","./node_modules/@types/node/http.d.ts","./node_modules/@types/node/http2.d.ts","./node_modules/@types/node/https.d.ts","./node_modules/@types/node/inspector.d.ts","./node_modules/@types/node/inspector.generated.d.ts","./node_modules/@types/node/module.d.ts","./node_modules/@types/node/net.d.ts","./node_modules/@types/node/os.d.ts","./node_modules/@types/node/path.d.ts","./node_modules/@types/node/perf_hooks.d.ts","./node_modules/@types/node/process.d.ts","./node_modules/@types/node/punycode.d.ts","./node_modules/@types/node/querystring.d.ts","./node_modules/@types/node/readline.d.ts","./node_modules/@types/node/readline/promises.d.ts","./node_modules/@types/node/repl.d.ts","./node_modules/@types/node/sea.d.ts","./node_modules/@types/node/sqlite.d.ts","./node_modules/@types/node/stream.d.ts","./node_modules/@types/node/stream/promises.d.ts","./node_modules/@types/node/stream/consumers.d.ts","./node_modules/@types/node/stream/web.d.ts","./node_modules/@types/node/string_decoder.d.ts","./node_modules/@types/node/test.d.ts","./node_modules/@types/node/timers.d.ts","./node_modules/@types/node/timers/promises.d.ts","./node_modules/@types/node/tls.d.ts","./node_modules/@types/node/trace_events.d.ts","./node_modules/@types/node/tty.d.ts","./node_modules/@types/node/url.d.ts","./node_modules/@types/node/util.d.ts","./node_modules/@types/node/v8.d.ts","./node_modules/@types/node/vm.d.ts","./node_modules/@types/node/wasi.d.ts","./node_modules/@types/node/worker_threads.d.ts","./node_modules/@types/node/zlib.d.ts","./node_modules/@types/node/index.d.ts","./node_modules/@types/react/canary.d.ts","./node_modules/@types/react/experimental.d.ts","./node_modules/@types/react-dom/index.d.ts","./node_modules/@types/react-dom/canary.d.ts","./node_modules/@types/react-dom/experimental.d.ts","./node_modules/next/dist/lib/fallback.d.ts","./node_modules/next/dist/compiled/webpack/webpack.d.ts","./node_modules/next/dist/server/config.d.ts","./node_modules/next/dist/lib/load-custom-routes.d.ts","./node_modules/next/dist/shared/lib/image-config.d.ts","./node_modules/next/dist/build/webpack/plugins/subresource-integrity-plugin.d.ts","./node_modules/next/dist/server/body-streams.d.ts","./node_modules/next/dist/server/lib/cache-control.d.ts","./node_modules/next/dist/lib/setup-exception-listeners.d.ts","./node_modules/next/dist/lib/worker.d.ts","./node_modules/next/dist/lib/constants.d.ts","./node_modules/next/dist/client/components/app-router-headers.d.ts","./node_modules/next/dist/build/rendering-mode.d.ts","./node_modules/next/dist/server/lib/router-utils/build-prefetch-segment-data-route.d.ts","./node_modules/next/dist/server/require-hook.d.ts","./node_modules/next/dist/server/lib/experimental/ppr.d.ts","./node_modules/next/dist/build/webpack/plugins/app-build-manifest-plugin.d.ts","./node_modules/next/dist/lib/page-types.d.ts","./node_modules/next/dist/build/segment-config/app/app-segment-config.d.ts","./node_modules/next/dist/build/segment-config/pages/pages-segment-config.d.ts","./node_modules/next/dist/build/analysis/get-page-static-info.d.ts","./node_modules/next/dist/build/webpack/loaders/get-module-build-info.d.ts","./node_modules/next/dist/build/webpack/plugins/middleware-plugin.d.ts","./node_modules/next/dist/server/node-polyfill-crypto.d.ts","./node_modules/next/dist/server/node-environment-baseline.d.ts","./node_modules/next/dist/server/node-environment-extensions/error-inspect.d.ts","./node_modules/next/dist/server/node-environment-extensions/random.d.ts","./node_modules/next/dist/server/node-environment-extensions/date.d.ts","./node_modules/next/dist/server/node-environment-extensions/web-crypto.d.ts","./node_modules/next/dist/server/node-environment-extensions/node-crypto.d.ts","./node_modules/next/dist/server/node-environment.d.ts","./node_modules/next/dist/build/page-extensions-type.d.ts","./node_modules/next/dist/build/webpack/plugins/flight-manifest-plugin.d.ts","./node_modules/next/dist/server/instrumentation/types.d.ts","./node_modules/next/dist/lib/coalesced-function.d.ts","./node_modules/next/dist/shared/lib/router/utils/middleware-route-matcher.d.ts","./node_modules/next/dist/server/lib/router-utils/types.d.ts","./node_modules/next/dist/shared/lib/modern-browserslist-target.d.ts","./node_modules/next/dist/shared/lib/constants.d.ts","./node_modules/next/dist/trace/types.d.ts","./node_modules/next/dist/trace/trace.d.ts","./node_modules/next/dist/trace/shared.d.ts","./node_modules/next/dist/trace/index.d.ts","./node_modules/next/dist/build/load-jsconfig.d.ts","./node_modules/@next/env/dist/index.d.ts","./node_modules/next/dist/build/webpack/plugins/telemetry-plugin/use-cache-tracker-utils.d.ts","./node_modules/next/dist/build/webpack/plugins/telemetry-plugin/telemetry-plugin.d.ts","./node_modules/next/dist/telemetry/storage.d.ts","./node_modules/next/dist/build/build-context.d.ts","./node_modules/next/dist/shared/lib/bloom-filter.d.ts","./node_modules/next/dist/build/webpack-config.d.ts","./node_modules/next/dist/server/route-kind.d.ts","./node_modules/next/dist/server/route-definitions/route-definition.d.ts","./node_modules/next/dist/build/swc/generated-native.d.ts","./node_modules/next/dist/build/swc/types.d.ts","./node_modules/next/dist/server/dev/parse-version-info.d.ts","./node_modules/next/dist/next-devtools/shared/types.d.ts","./node_modules/next/dist/server/dev/dev-indicator-server-state.d.ts","./node_modules/next/dist/server/lib/parse-stack.d.ts","./node_modules/next/dist/next-devtools/server/shared.d.ts","./node_modules/next/dist/next-devtools/shared/stack-frame.d.ts","./node_modules/next/dist/next-devtools/dev-overlay/utils/get-error-by-type.d.ts","./node_modules/@types/react/jsx-runtime.d.ts","./node_modules/next/dist/next-devtools/dev-overlay/container/runtime-error/render-error.d.ts","./node_modules/next/dist/next-devtools/dev-overlay/shared.d.ts","./node_modules/next/dist/server/dev/hot-reloader-types.d.ts","./node_modules/next/dist/server/lib/cache-handlers/types.d.ts","./node_modules/next/dist/server/response-cache/types.d.ts","./node_modules/next/dist/server/resume-data-cache/cache-store.d.ts","./node_modules/next/dist/server/resume-data-cache/resume-data-cache.d.ts","./node_modules/next/dist/server/render-result.d.ts","./node_modules/next/dist/server/lib/i18n-provider.d.ts","./node_modules/next/dist/server/web/next-url.d.ts","./node_modules/next/dist/compiled/@edge-runtime/cookies/index.d.ts","./node_modules/next/dist/server/web/spec-extension/cookies.d.ts","./node_modules/next/dist/server/web/spec-extension/request.d.ts","./node_modules/next/dist/server/after/builtin-request-context.d.ts","./node_modules/next/dist/server/web/spec-extension/fetch-event.d.ts","./node_modules/next/dist/server/web/spec-extension/response.d.ts","./node_modules/next/dist/build/segment-config/middleware/middleware-config.d.ts","./node_modules/next/dist/server/web/types.d.ts","./node_modules/next/dist/build/webpack/plugins/pages-manifest-plugin.d.ts","./node_modules/next/dist/shared/lib/router/utils/parse-url.d.ts","./node_modules/next/dist/server/base-http/node.d.ts","./node_modules/next/dist/build/webpack/plugins/next-font-manifest-plugin.d.ts","./node_modules/next/dist/server/route-definitions/locale-route-definition.d.ts","./node_modules/next/dist/server/route-definitions/pages-route-definition.d.ts","./node_modules/next/dist/shared/lib/mitt.d.ts","./node_modules/next/dist/client/with-router.d.ts","./node_modules/next/dist/client/router.d.ts","./node_modules/next/dist/client/route-loader.d.ts","./node_modules/next/dist/client/page-loader.d.ts","./node_modules/next/dist/shared/lib/router/router.d.ts","./node_modules/next/dist/shared/lib/router-context.shared-runtime.d.ts","./node_modules/next/dist/shared/lib/loadable-context.shared-runtime.d.ts","./node_modules/next/dist/shared/lib/loadable.shared-runtime.d.ts","./node_modules/next/dist/shared/lib/image-config-context.shared-runtime.d.ts","./node_modules/next/dist/shared/lib/hooks-client-context.shared-runtime.d.ts","./node_modules/next/dist/shared/lib/head-manager-context.shared-runtime.d.ts","./node_modules/next/dist/server/route-definitions/app-page-route-definition.d.ts","./node_modules/next/dist/build/webpack/loaders/metadata/types.d.ts","./node_modules/next/dist/build/webpack/loaders/next-app-loader/index.d.ts","./node_modules/next/dist/server/lib/app-dir-module.d.ts","./node_modules/next/dist/server/web/spec-extension/adapters/request-cookies.d.ts","./node_modules/next/dist/server/async-storage/draft-mode-provider.d.ts","./node_modules/next/dist/server/web/spec-extension/adapters/headers.d.ts","./node_modules/next/dist/server/app-render/cache-signal.d.ts","./node_modules/next/dist/server/app-render/dynamic-rendering.d.ts","./node_modules/next/dist/server/request/fallback-params.d.ts","./node_modules/next/dist/server/app-render/work-unit-async-storage-instance.d.ts","./node_modules/next/dist/server/response-cache/index.d.ts","./node_modules/next/dist/server/lib/lazy-result.d.ts","./node_modules/next/dist/server/lib/implicit-tags.d.ts","./node_modules/next/dist/server/app-render/work-unit-async-storage.external.d.ts","./node_modules/next/dist/shared/lib/deep-readonly.d.ts","./node_modules/next/dist/shared/lib/router/utils/parse-relative-url.d.ts","./node_modules/next/dist/server/app-render/app-render.d.ts","./node_modules/next/dist/shared/lib/server-inserted-html.shared-runtime.d.ts","./node_modules/next/dist/shared/lib/amp-context.shared-runtime.d.ts","./node_modules/next/dist/server/route-modules/app-page/vendored/contexts/entrypoints.d.ts","./node_modules/next/dist/server/route-modules/app-page/module.compiled.d.ts","./node_modules/next/dist/client/components/error-boundary.d.ts","./node_modules/next/dist/client/components/layout-router.d.ts","./node_modules/next/dist/client/components/render-from-template-context.d.ts","./node_modules/next/dist/server/app-render/action-async-storage-instance.d.ts","./node_modules/next/dist/server/app-render/action-async-storage.external.d.ts","./node_modules/next/dist/client/components/client-page.d.ts","./node_modules/next/dist/client/components/client-segment.d.ts","./node_modules/next/dist/server/request/search-params.d.ts","./node_modules/next/dist/client/components/hooks-server-context.d.ts","./node_modules/next/dist/client/components/http-access-fallback/error-boundary.d.ts","./node_modules/next/dist/lib/metadata/types/alternative-urls-types.d.ts","./node_modules/next/dist/lib/metadata/types/extra-types.d.ts","./node_modules/next/dist/lib/metadata/types/metadata-types.d.ts","./node_modules/next/dist/lib/metadata/types/manifest-types.d.ts","./node_modules/next/dist/lib/metadata/types/opengraph-types.d.ts","./node_modules/next/dist/lib/metadata/types/twitter-types.d.ts","./node_modules/next/dist/lib/metadata/types/metadata-interface.d.ts","./node_modules/next/dist/lib/metadata/types/resolvers.d.ts","./node_modules/next/dist/lib/metadata/types/icons.d.ts","./node_modules/next/dist/lib/metadata/resolve-metadata.d.ts","./node_modules/next/dist/lib/metadata/metadata.d.ts","./node_modules/next/dist/lib/framework/boundary-components.d.ts","./node_modules/next/dist/server/app-render/rsc/preloads.d.ts","./node_modules/next/dist/server/app-render/rsc/postpone.d.ts","./node_modules/next/dist/server/app-render/rsc/taint.d.ts","./node_modules/next/dist/shared/lib/segment-cache/segment-value-encoding.d.ts","./node_modules/next/dist/server/app-render/collect-segment-data.d.ts","./node_modules/next/dist/next-devtools/userspace/app/segment-explorer-node.d.ts","./node_modules/next/dist/server/app-render/entry-base.d.ts","./node_modules/next/dist/build/templates/app-page.d.ts","./node_modules/@types/react/jsx-dev-runtime.d.ts","./node_modules/@types/react/compiler-runtime.d.ts","./node_modules/next/dist/server/route-modules/app-page/vendored/rsc/entrypoints.d.ts","./node_modules/@types/react-dom/client.d.ts","./node_modules/@types/react-dom/static.d.ts","./node_modules/@types/react-dom/server.d.ts","./node_modules/next/dist/server/route-modules/app-page/vendored/ssr/entrypoints.d.ts","./node_modules/next/dist/server/route-modules/app-page/module.d.ts","./node_modules/next/dist/server/web/adapter.d.ts","./node_modules/next/dist/server/use-cache/cache-life.d.ts","./node_modules/next/dist/server/app-render/types.d.ts","./node_modules/next/dist/client/components/router-reducer/router-reducer-types.d.ts","./node_modules/next/dist/client/flight-data-helpers.d.ts","./node_modules/next/dist/client/components/router-reducer/fetch-server-response.d.ts","./node_modules/next/dist/shared/lib/app-router-context.shared-runtime.d.ts","./node_modules/next/dist/server/route-modules/pages/vendored/contexts/entrypoints.d.ts","./node_modules/next/dist/server/route-modules/pages/module.compiled.d.ts","./node_modules/next/dist/build/templates/pages.d.ts","./node_modules/next/dist/server/route-modules/pages/module.d.ts","./node_modules/next/dist/next-devtools/userspace/pages/pages-dev-overlay-setup.d.ts","./node_modules/next/dist/server/render.d.ts","./node_modules/next/dist/server/route-definitions/pages-api-route-definition.d.ts","./node_modules/next/dist/server/route-matches/pages-api-route-match.d.ts","./node_modules/next/dist/server/route-matchers/route-matcher.d.ts","./node_modules/next/dist/server/route-matcher-providers/route-matcher-provider.d.ts","./node_modules/next/dist/server/route-matcher-managers/route-matcher-manager.d.ts","./node_modules/next/dist/server/normalizers/normalizer.d.ts","./node_modules/next/dist/server/normalizers/locale-route-normalizer.d.ts","./node_modules/next/dist/server/normalizers/request/pathname-normalizer.d.ts","./node_modules/next/dist/server/normalizers/request/suffix.d.ts","./node_modules/next/dist/server/normalizers/request/rsc.d.ts","./node_modules/next/dist/server/normalizers/request/prefetch-rsc.d.ts","./node_modules/next/dist/server/normalizers/request/next-data.d.ts","./node_modules/next/dist/server/normalizers/request/segment-prefix-rsc.d.ts","./node_modules/next/dist/build/static-paths/types.d.ts","./node_modules/next/dist/server/base-server.d.ts","./node_modules/next/dist/server/lib/async-callback-set.d.ts","./node_modules/next/dist/shared/lib/router/utils/route-regex.d.ts","./node_modules/next/dist/shared/lib/router/utils/route-matcher.d.ts","./node_modules/sharp/lib/index.d.ts","./node_modules/next/dist/server/image-optimizer.d.ts","./node_modules/next/dist/server/next-server.d.ts","./node_modules/next/dist/server/lib/types.d.ts","./node_modules/next/dist/server/lib/lru-cache.d.ts","./node_modules/next/dist/server/lib/dev-bundler-service.d.ts","./node_modules/next/dist/server/dev/static-paths-worker.d.ts","./node_modules/next/dist/server/dev/next-dev-server.d.ts","./node_modules/next/dist/server/next.d.ts","./node_modules/next/dist/server/lib/render-server.d.ts","./node_modules/next/dist/server/lib/router-server.d.ts","./node_modules/next/dist/shared/lib/router/utils/path-match.d.ts","./node_modules/next/dist/server/lib/router-utils/filesystem.d.ts","./node_modules/next/dist/server/lib/router-utils/setup-dev-bundler.d.ts","./node_modules/next/dist/server/lib/router-utils/router-server-context.d.ts","./node_modules/next/dist/server/route-modules/route-module.d.ts","./node_modules/next/dist/server/load-components.d.ts","./node_modules/next/dist/server/route-definitions/app-route-route-definition.d.ts","./node_modules/next/dist/server/async-storage/work-store.d.ts","./node_modules/next/dist/server/web/http.d.ts","./node_modules/next/dist/server/route-modules/app-route/shared-modules.d.ts","./node_modules/next/dist/client/components/redirect-status-code.d.ts","./node_modules/next/dist/client/components/redirect-error.d.ts","./node_modules/next/dist/build/templates/app-route.d.ts","./node_modules/next/dist/server/route-modules/app-route/module.d.ts","./node_modules/next/dist/server/route-modules/app-route/module.compiled.d.ts","./node_modules/next/dist/build/segment-config/app/app-segments.d.ts","./node_modules/next/dist/build/utils.d.ts","./node_modules/next/dist/build/turborepo-access-trace/types.d.ts","./node_modules/next/dist/build/turborepo-access-trace/result.d.ts","./node_modules/next/dist/build/turborepo-access-trace/helpers.d.ts","./node_modules/next/dist/build/turborepo-access-trace/index.d.ts","./node_modules/next/dist/export/routes/types.d.ts","./node_modules/next/dist/export/types.d.ts","./node_modules/next/dist/export/worker.d.ts","./node_modules/next/dist/build/worker.d.ts","./node_modules/next/dist/build/index.d.ts","./node_modules/next/dist/server/lib/incremental-cache/index.d.ts","./node_modules/next/dist/server/after/after.d.ts","./node_modules/next/dist/server/after/after-context.d.ts","./node_modules/next/dist/server/app-render/work-async-storage-instance.d.ts","./node_modules/next/dist/server/app-render/work-async-storage.external.d.ts","./node_modules/next/dist/server/request/params.d.ts","./node_modules/next/dist/server/route-matches/route-match.d.ts","./node_modules/next/dist/server/request-meta.d.ts","./node_modules/next/dist/cli/next-test.d.ts","./node_modules/next/dist/server/config-shared.d.ts","./node_modules/next/dist/server/base-http/index.d.ts","./node_modules/next/dist/server/api-utils/index.d.ts","./node_modules/next/dist/types.d.ts","./node_modules/next/dist/shared/lib/html-context.shared-runtime.d.ts","./node_modules/next/dist/shared/lib/utils.d.ts","./node_modules/next/dist/pages/_app.d.ts","./node_modules/next/app.d.ts","./node_modules/next/dist/server/web/spec-extension/unstable-cache.d.ts","./node_modules/next/dist/server/web/spec-extension/revalidate.d.ts","./node_modules/next/dist/server/web/spec-extension/unstable-no-store.d.ts","./node_modules/next/dist/server/use-cache/cache-tag.d.ts","./node_modules/next/cache.d.ts","./node_modules/next/dist/shared/lib/runtime-config.external.d.ts","./node_modules/next/config.d.ts","./node_modules/next/dist/pages/_document.d.ts","./node_modules/next/document.d.ts","./node_modules/next/dist/shared/lib/dynamic.d.ts","./node_modules/next/dynamic.d.ts","./node_modules/next/dist/pages/_error.d.ts","./node_modules/next/error.d.ts","./node_modules/next/dist/shared/lib/head.d.ts","./node_modules/next/head.d.ts","./node_modules/next/dist/server/request/cookies.d.ts","./node_modules/next/dist/server/request/headers.d.ts","./node_modules/next/dist/server/request/draft-mode.d.ts","./node_modules/next/headers.d.ts","./node_modules/next/dist/shared/lib/get-img-props.d.ts","./node_modules/next/dist/client/image-component.d.ts","./node_modules/next/dist/shared/lib/image-external.d.ts","./node_modules/next/image.d.ts","./node_modules/next/dist/client/link.d.ts","./node_modules/next/link.d.ts","./node_modules/next/dist/client/components/redirect.d.ts","./node_modules/next/dist/client/components/not-found.d.ts","./node_modules/next/dist/client/components/forbidden.d.ts","./node_modules/next/dist/client/components/unauthorized.d.ts","./node_modules/next/dist/client/components/unstable-rethrow.server.d.ts","./node_modules/next/dist/client/components/unstable-rethrow.d.ts","./node_modules/next/dist/client/components/navigation.react-server.d.ts","./node_modules/next/dist/client/components/unrecognized-action-error.d.ts","./node_modules/next/dist/client/components/navigation.d.ts","./node_modules/next/navigation.d.ts","./node_modules/next/router.d.ts","./node_modules/next/dist/client/script.d.ts","./node_modules/next/script.d.ts","./node_modules/next/dist/server/web/spec-extension/user-agent.d.ts","./node_modules/next/dist/compiled/@edge-runtime/primitives/url.d.ts","./node_modules/next/dist/server/web/spec-extension/image-response.d.ts","./node_modules/next/dist/compiled/@vercel/og/satori/index.d.ts","./node_modules/next/dist/compiled/@vercel/og/emoji/index.d.ts","./node_modules/next/dist/compiled/@vercel/og/types.d.ts","./node_modules/next/dist/server/after/index.d.ts","./node_modules/next/dist/server/request/root-params.d.ts","./node_modules/next/dist/server/request/connection.d.ts","./node_modules/next/server.d.ts","./node_modules/next/types/global.d.ts","./node_modules/next/types/compiled.d.ts","./node_modules/next/types.d.ts","./node_modules/next/index.d.ts","./node_modules/next/image-types/global.d.ts","./next-env.d.ts","./next.config.ts","./node_modules/source-map-js/source-map.d.ts","./node_modules/postcss/lib/previous-map.d.ts","./node_modules/postcss/lib/input.d.ts","./node_modules/postcss/lib/css-syntax-error.d.ts","./node_modules/postcss/lib/declaration.d.ts","./node_modules/postcss/lib/root.d.ts","./node_modules/postcss/lib/warning.d.ts","./node_modules/postcss/lib/lazy-result.d.ts","./node_modules/postcss/lib/no-work-result.d.ts","./node_modules/postcss/lib/processor.d.ts","./node_modules/postcss/lib/result.d.ts","./node_modules/postcss/lib/document.d.ts","./node_modules/postcss/lib/rule.d.ts","./node_modules/postcss/lib/node.d.ts","./node_modules/postcss/lib/comment.d.ts","./node_modules/postcss/lib/container.d.ts","./node_modules/postcss/lib/at-rule.d.ts","./node_modules/postcss/lib/list.d.ts","./node_modules/postcss/lib/postcss.d.ts","./node_modules/postcss/lib/postcss.d.mts","./node_modules/tailwindcss/types/generated/corepluginlist.d.ts","./node_modules/tailwindcss/types/generated/colors.d.ts","./node_modules/tailwindcss/types/config.d.ts","./node_modules/tailwindcss/types/index.d.ts","./tailwind.config.ts","./node_modules/dotenv/lib/main.d.ts","./node_modules/tmdb-ts/dist/api.d.ts","./node_modules/tmdb-ts/dist/endpoints/base.d.ts","./node_modules/tmdb-ts/dist/types/options.d.ts","./node_modules/tmdb-ts/dist/types/certification.d.ts","./node_modules/tmdb-ts/dist/types/credits.d.ts","./node_modules/tmdb-ts/dist/types/companies.d.ts","./node_modules/tmdb-ts/dist/types/networks.d.ts","./node_modules/tmdb-ts/dist/types/configuration.d.ts","./node_modules/tmdb-ts/dist/types/changes.d.ts","./node_modules/tmdb-ts/dist/types/movies.d.ts","./node_modules/tmdb-ts/dist/types/search.d.ts","./node_modules/tmdb-ts/dist/types/tv-shows.d.ts","./node_modules/tmdb-ts/dist/types/regions.d.ts","./node_modules/tmdb-ts/dist/types/watch-providers.d.ts","./node_modules/tmdb-ts/dist/types/people.d.ts","./node_modules/tmdb-ts/dist/types/discover.d.ts","./node_modules/tmdb-ts/dist/types/review.d.ts","./node_modules/tmdb-ts/dist/types/trending.d.ts","./node_modules/tmdb-ts/dist/types/find.d.ts","./node_modules/tmdb-ts/dist/types/keywords.d.ts","./node_modules/tmdb-ts/dist/types/collections.d.ts","./node_modules/tmdb-ts/dist/types/tv-episode.d.ts","./node_modules/tmdb-ts/dist/types/tv-seasons.d.ts","./node_modules/tmdb-ts/dist/types/index.d.ts","./node_modules/tmdb-ts/dist/types/account.d.ts","./node_modules/tmdb-ts/dist/endpoints/account.d.ts","./node_modules/tmdb-ts/dist/endpoints/certification.d.ts","./node_modules/tmdb-ts/dist/endpoints/changes.d.ts","./node_modules/tmdb-ts/dist/endpoints/credits.d.ts","./node_modules/tmdb-ts/dist/endpoints/search.d.ts","./node_modules/tmdb-ts/dist/endpoints/genre.d.ts","./node_modules/tmdb-ts/dist/endpoints/movies.d.ts","./node_modules/tmdb-ts/dist/endpoints/configuration.d.ts","./node_modules/tmdb-ts/dist/endpoints/tv-shows.d.ts","./node_modules/tmdb-ts/dist/endpoints/discover.d.ts","./node_modules/tmdb-ts/dist/endpoints/people.d.ts","./node_modules/tmdb-ts/dist/endpoints/review.d.ts","./node_modules/tmdb-ts/dist/endpoints/trending.d.ts","./node_modules/tmdb-ts/dist/endpoints/find.d.ts","./node_modules/tmdb-ts/dist/endpoints/keywords.d.ts","./node_modules/tmdb-ts/dist/endpoints/collections.d.ts","./node_modules/tmdb-ts/dist/endpoints/tv-seasons.d.ts","./node_modules/tmdb-ts/dist/endpoints/tv-episode.d.ts","./node_modules/tmdb-ts/dist/endpoints/watch-providers.d.ts","./node_modules/tmdb-ts/dist/endpoints/index.d.ts","./node_modules/tmdb-ts/dist/endpoints/companies.d.ts","./node_modules/tmdb-ts/dist/endpoints/networks.d.ts","./node_modules/tmdb-ts/dist/tmdb.d.ts","./node_modules/tmdb-ts/dist/utils/getimagepath.d.ts","./node_modules/tmdb-ts/dist/utils/parseoptions.d.ts","./node_modules/tmdb-ts/dist/utils/index.d.ts","./node_modules/tmdb-ts/dist/index.d.ts","./node_modules/ruvector/dist/types.d.ts","./node_modules/ruvector/dist/core/gnn-wrapper.d.ts","./node_modules/ruvector/dist/core/attention-fallbacks.d.ts","./node_modules/ruvector/dist/core/agentdb-fast.d.ts","./node_modules/ruvector/dist/core/sona-wrapper.d.ts","./node_modules/ruvector/dist/core/index.d.ts","./node_modules/ruvector/dist/services/embedding-service.d.ts","./node_modules/ruvector/dist/services/index.d.ts","./node_modules/ruvector/dist/index.d.ts","./scripts/sync-embeddings.ts","./src/types/media.ts","./src/lib/tmdb.ts","./src/app/api/discover/route.ts","./src/lib/vector-search.ts","./src/app/api/health/route.ts","./src/app/api/movies/[id]/route.ts","./node_modules/zod/v3/helpers/typealiases.d.cts","./node_modules/zod/v3/helpers/util.d.cts","./node_modules/zod/v3/index.d.cts","./node_modules/zod/v3/zoderror.d.cts","./node_modules/zod/v3/locales/en.d.cts","./node_modules/zod/v3/errors.d.cts","./node_modules/zod/v3/helpers/parseutil.d.cts","./node_modules/zod/v3/helpers/enumutil.d.cts","./node_modules/zod/v3/helpers/errorutil.d.cts","./node_modules/zod/v3/helpers/partialutil.d.cts","./node_modules/zod/v3/standard-schema.d.cts","./node_modules/zod/v3/types.d.cts","./node_modules/zod/v3/external.d.cts","./node_modules/zod/index.d.cts","./src/lib/preferences.ts","./src/app/api/preferences/route.ts","./src/app/api/recommendations/route.ts","./node_modules/@types/json-schema/index.d.ts","./node_modules/@ai-sdk/provider/dist/index.d.ts","./node_modules/@ai-sdk/provider-utils/dist/index.d.ts","./node_modules/@ai-sdk/ui-utils/dist/index.d.ts","./node_modules/@opentelemetry/api/build/src/baggage/internal/symbol.d.ts","./node_modules/@opentelemetry/api/build/src/baggage/types.d.ts","./node_modules/@opentelemetry/api/build/src/baggage/utils.d.ts","./node_modules/@opentelemetry/api/build/src/common/exception.d.ts","./node_modules/@opentelemetry/api/build/src/common/time.d.ts","./node_modules/@opentelemetry/api/build/src/common/attributes.d.ts","./node_modules/@opentelemetry/api/build/src/context/types.d.ts","./node_modules/@opentelemetry/api/build/src/context/context.d.ts","./node_modules/@opentelemetry/api/build/src/api/context.d.ts","./node_modules/@opentelemetry/api/build/src/diag/types.d.ts","./node_modules/@opentelemetry/api/build/src/diag/consolelogger.d.ts","./node_modules/@opentelemetry/api/build/src/api/diag.d.ts","./node_modules/@opentelemetry/api/build/src/metrics/observableresult.d.ts","./node_modules/@opentelemetry/api/build/src/metrics/metric.d.ts","./node_modules/@opentelemetry/api/build/src/metrics/meter.d.ts","./node_modules/@opentelemetry/api/build/src/metrics/noopmeter.d.ts","./node_modules/@opentelemetry/api/build/src/metrics/meterprovider.d.ts","./node_modules/@opentelemetry/api/build/src/api/metrics.d.ts","./node_modules/@opentelemetry/api/build/src/propagation/textmappropagator.d.ts","./node_modules/@opentelemetry/api/build/src/baggage/context-helpers.d.ts","./node_modules/@opentelemetry/api/build/src/api/propagation.d.ts","./node_modules/@opentelemetry/api/build/src/trace/attributes.d.ts","./node_modules/@opentelemetry/api/build/src/trace/trace_state.d.ts","./node_modules/@opentelemetry/api/build/src/trace/span_context.d.ts","./node_modules/@opentelemetry/api/build/src/trace/link.d.ts","./node_modules/@opentelemetry/api/build/src/trace/status.d.ts","./node_modules/@opentelemetry/api/build/src/trace/span.d.ts","./node_modules/@opentelemetry/api/build/src/trace/span_kind.d.ts","./node_modules/@opentelemetry/api/build/src/trace/spanoptions.d.ts","./node_modules/@opentelemetry/api/build/src/trace/tracer.d.ts","./node_modules/@opentelemetry/api/build/src/trace/tracer_options.d.ts","./node_modules/@opentelemetry/api/build/src/trace/proxytracer.d.ts","./node_modules/@opentelemetry/api/build/src/trace/tracer_provider.d.ts","./node_modules/@opentelemetry/api/build/src/trace/proxytracerprovider.d.ts","./node_modules/@opentelemetry/api/build/src/trace/samplingresult.d.ts","./node_modules/@opentelemetry/api/build/src/trace/sampler.d.ts","./node_modules/@opentelemetry/api/build/src/trace/trace_flags.d.ts","./node_modules/@opentelemetry/api/build/src/trace/internal/utils.d.ts","./node_modules/@opentelemetry/api/build/src/trace/spancontext-utils.d.ts","./node_modules/@opentelemetry/api/build/src/trace/invalid-span-constants.d.ts","./node_modules/@opentelemetry/api/build/src/trace/context-utils.d.ts","./node_modules/@opentelemetry/api/build/src/api/trace.d.ts","./node_modules/@opentelemetry/api/build/src/context-api.d.ts","./node_modules/@opentelemetry/api/build/src/diag-api.d.ts","./node_modules/@opentelemetry/api/build/src/metrics-api.d.ts","./node_modules/@opentelemetry/api/build/src/propagation-api.d.ts","./node_modules/@opentelemetry/api/build/src/trace-api.d.ts","./node_modules/@opentelemetry/api/build/src/index.d.ts","./node_modules/ai/dist/index.d.ts","./node_modules/@ai-sdk/openai/dist/index.d.ts","./node_modules/@ai-sdk/google/dist/index.d.ts","./src/lib/natural-language-search.ts","./src/app/api/search/route.ts","./src/app/api/tv/[id]/route.ts","./src/components/detail/backdrop.tsx","./src/components/detail/detailhero.tsx","./src/components/detail/castsection.tsx","./src/components/detail/videosection.tsx","./src/components/mediacard.tsx","./src/components/detail/relatedsection.tsx","./src/components/detail/index.ts","./node_modules/next/dist/compiled/@next/font/dist/types.d.ts","./node_modules/next/dist/compiled/@next/font/dist/google/index.d.ts","./node_modules/next/font/google/index.d.ts","./node_modules/@tanstack/query-core/build/modern/subscribable.d.ts","./node_modules/@tanstack/query-core/build/modern/focusmanager.d.ts","./node_modules/@tanstack/query-core/build/modern/removable.d.ts","./node_modules/@tanstack/query-core/build/modern/hydration-dkskbgqq.d.ts","./node_modules/@tanstack/query-core/build/modern/infinitequeryobserver.d.ts","./node_modules/@tanstack/query-core/build/modern/notifymanager.d.ts","./node_modules/@tanstack/query-core/build/modern/onlinemanager.d.ts","./node_modules/@tanstack/query-core/build/modern/queriesobserver.d.ts","./node_modules/@tanstack/query-core/build/modern/timeoutmanager.d.ts","./node_modules/@tanstack/query-core/build/modern/streamedquery.d.ts","./node_modules/@tanstack/query-core/build/modern/index.d.ts","./node_modules/@tanstack/react-query/build/modern/types.d.ts","./node_modules/@tanstack/react-query/build/modern/usequeries.d.ts","./node_modules/@tanstack/react-query/build/modern/queryoptions.d.ts","./node_modules/@tanstack/react-query/build/modern/usequery.d.ts","./node_modules/@tanstack/react-query/build/modern/usesuspensequery.d.ts","./node_modules/@tanstack/react-query/build/modern/usesuspenseinfinitequery.d.ts","./node_modules/@tanstack/react-query/build/modern/usesuspensequeries.d.ts","./node_modules/@tanstack/react-query/build/modern/useprefetchquery.d.ts","./node_modules/@tanstack/react-query/build/modern/useprefetchinfinitequery.d.ts","./node_modules/@tanstack/react-query/build/modern/infinitequeryoptions.d.ts","./node_modules/@tanstack/react-query/build/modern/queryclientprovider.d.ts","./node_modules/@tanstack/react-query/build/modern/queryerrorresetboundary.d.ts","./node_modules/@tanstack/react-query/build/modern/hydrationboundary.d.ts","./node_modules/@tanstack/react-query/build/modern/useisfetching.d.ts","./node_modules/@tanstack/react-query/build/modern/usemutationstate.d.ts","./node_modules/@tanstack/react-query/build/modern/usemutation.d.ts","./node_modules/@tanstack/react-query/build/modern/mutationoptions.d.ts","./node_modules/@tanstack/react-query/build/modern/useinfinitequery.d.ts","./node_modules/@tanstack/react-query/build/modern/isrestoringprovider.d.ts","./node_modules/@tanstack/react-query/build/modern/index.d.ts","./src/app/providers.tsx","./src/app/layout.tsx","./src/components/searchbar.tsx","./src/components/trendingsection.tsx","./src/components/recommendationssection.tsx","./src/app/page.tsx","./src/app/movie/[id]/page.tsx","./src/app/search/page.tsx","./src/app/tv/[id]/page.tsx","./.next/types/cache-life.d.ts","./.next/types/validator.ts","./.next/types/app/layout.ts","./.next/types/app/page.ts","./.next/types/app/api/discover/route.ts","./.next/types/app/api/recommendations/route.ts","./.next/types/app/api/search/route.ts","./.next/types/app/search/page.ts","./node_modules/@babel/types/lib/index.d.ts","./node_modules/@types/babel__generator/index.d.ts","./node_modules/@babel/parser/typings/babel-parser.d.ts","./node_modules/@types/babel__template/index.d.ts","./node_modules/@types/babel__traverse/index.d.ts","./node_modules/@types/babel__core/index.d.ts","./node_modules/@types/diff-match-patch/index.d.ts","./node_modules/@types/estree/index.d.ts","./node_modules/@types/json5/index.d.ts"],"fileIdsList":[[100,149,166,167,496,594],[100,149,166,167,496,614],[100,149,166,167,496,671],[100,149,166,167,342,715],[100,149,166,167,342,719],[100,149,166,167,342,721],[100,149,166,167,449,450,451,452],[100,149,166,167],[83,100,149,166,167,496,499,594,596,597,613,614,671,672,715,719,720,721,722],[83,100,149,166,167,500,501],[100,149,166,167,500],[100,149,166,167,611,616,617],[100,149,166,167,611,616],[100,149,166,167,615],[100,149,166,167,611,615,616,617],[100,149,166,167,731],[100,149,166,167,625],[100,149,166,167,628],[100,149,166,167,633,635],[100,149,166,167,621,625,637,638],[100,149,166,167,648,651,657,659],[100,149,166,167,620,625],[100,149,166,167,619],[100,149,166,167,620],[100,149,166,167,627],[100,149,166,167,630],[100,149,166,167,620,621,622,623,624,625,626,627,628,629,630,631,632,633,634,635,636,637,639,640,641,642,643,644,645,646,647,648,649,650,651,652,653,654,655,656,657,658,660,661,662,663,664,665],[100,149,166,167,636],[100,149,166,167,632],[100,149,166,167,633],[100,149,166,167,624,625,631],[100,149,166,167,632,633],[100,149,166,167,639],[100,149,166,167,660],[100,149,166,167,624],[100,149,166,167,625,642,645],[100,149,166,167,641],[100,149,166,167,642],[100,149,166,167,640,642],[100,149,166,167,625,645,647,648,649],[100,149,166,167,648,649,651],[100,149,166,167,625,640,643,646,653],[100,149,166,167,640,641],[100,149,166,167,622,623,640,642,643,644],[100,149,166,167,642,645],[100,149,166,167,623,640,643,646],[100,149,166,167,625,645,647],[100,149,166,167,648,649],[100,149,166,167,683],[100,149,166,167,683,685],[100,149,166,167,683,684,685,686,687,688,689,690,691,692],[100,149,166,167,683,685,686],[86,100,149,166,167,693],[86,100,149,166,167,267,693,694,695,696,697,698,699,700,701,702,703,704,705,706,707,708,709,710,711,712],[100,149,166,167,693,694],[86,100,149,166,167],[86,100,149,166,167,267],[100,149,166,167,693],[100,149,166,167,693,694,703],[100,149,166,167,693,694,696],[100,149,166,167,731,732,733,734,735],[100,149,166,167,731,733],[100,146,147,149,166,167],[100,148,149,166,167],[149,166,167],[100,149,154,166,167,184],[100,149,150,155,160,166,167,169,181,192],[100,149,150,151,160,166,167,169],[95,96,97,100,149,166,167],[100,149,152,166,167,193],[100,149,153,154,161,166,167,170],[100,149,154,166,167,181,189],[100,149,155,157,160,166,167,169],[100,148,149,156,166,167],[100,149,157,158,166,167],[100,149,159,160,166,167],[100,148,149,160,166,167],[100,149,160,161,162,166,167,181,192],[100,149,160,161,162,166,167,176,181,184],[100,142,149,157,160,163,166,167,169,181,192],[100,149,160,161,163,164,166,167,169,181,189,192],[100,149,163,165,166,167,181,189,192],[98,99,100,101,102,103,104,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198],[100,149,160,166,167],[100,149,166,167,168,192],[100,149,157,160,166,167,169,181],[100,149,166,167,170],[100,149,166,167,171],[100,148,149,166,167,172],[100,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198],[100,149,166,167,174],[100,149,166,167,175],[100,149,160,166,167,176,177],[100,149,166,167,176,178,193,195],[100,149,161,166,167],[100,149,160,166,167,181,182,184],[100,149,166,167,183,184],[100,149,166,167,181,182],[100,149,166,167,184],[100,149,166,167,185],[100,146,149,166,167,181,186],[100,149,160,166,167,187,188],[100,149,166,167,187,188],[100,149,154,166,167,169,181,189],[100,149,166,167,190],[100,149,166,167,169,191],[100,149,163,166,167,175,192],[100,149,154,166,167,193],[100,149,166,167,181,194],[100,149,166,167,168,195],[100,149,166,167,196],[100,142,149,166,167],[100,142,149,160,162,166,167,172,181,184,192,194,195,197],[100,149,166,167,181,198],[86,90,100,149,166,167,200,201,202,204,444,492],[86,90,100,149,166,167,200,201,202,203,359,444,492],[86,90,100,149,166,167,200,201,203,204,444,492],[86,100,149,166,167,204,359,360],[86,100,149,166,167,204,359],[86,90,100,149,166,167,201,202,203,204,444,492],[86,90,100,149,166,167,200,202,203,204,444,492],[84,85,100,149,166,167],[100,149,163,166,167,611,616,617,618,666],[100,149,166,167,192,199],[92,100,149,166,167],[100,149,166,167,447],[100,149,166,167,454],[100,149,166,167,208,222,223,224,226,441],[100,149,166,167,208,247,249,251,252,255,441,443],[100,149,166,167,208,212,214,215,216,217,218,430,441,443],[100,149,166,167,441],[100,149,166,167,223,325,411,420,437],[100,149,166,167,208],[100,149,166,167,205,437],[100,149,166,167,259],[100,149,166,167,258,441,443],[100,149,163,166,167,307,325,354,498],[100,149,163,166,167,318,334,420,436],[100,149,163,166,167,372],[100,149,166,167,424],[100,149,166,167,423,424,425],[100,149,166,167,423],[94,100,149,163,166,167,205,208,212,215,219,220,221,223,227,235,236,365,390,421,441,444],[100,149,166,167,208,225,243,247,248,253,254,441,498],[100,149,166,167,225,498],[100,149,166,167,236,243,305,441,498],[100,149,166,167,498],[100,149,166,167,208,225,226,498],[100,149,166,167,250,498],[100,149,166,167,219,422,429],[100,149,166,167,175,267,437],[100,149,166,167,267,437],[86,100,149,166,167,326],[100,149,166,167,322,370,437,480,481],[100,149,166,167,417,474,475,476,477,479],[100,149,166,167,416],[100,149,166,167,416,417],[100,149,166,167,216,366,367,368],[100,149,166,167,366,369,370],[100,149,166,167,478],[100,149,166,167,366,370],[86,100,149,166,167,209,468],[86,100,149,166,167,192],[86,100,149,166,167,225,295],[86,100,149,166,167,225],[100,149,166,167,293,297],[86,100,149,166,167,294,446],[100,149,166,167,680],[86,90,100,149,163,166,167,199,200,201,202,203,204,444,490,491],[100,149,163,166,167],[100,149,163,166,167,212,274,366,376,391,411,426,427,441,442,498],[100,149,166,167,235,428],[100,149,166,167,444],[100,149,166,167,207],[86,100,149,166,167,307,321,333,343,345,436],[100,149,166,167,175,307,321,342,343,344,436,497],[100,149,166,167,336,337,338,339,340,341],[100,149,166,167,338],[100,149,166,167,342],[100,149,166,167,265,266,267,269],[86,100,149,166,167,260,261,262,268],[100,149,166,167,265,268],[100,149,166,167,263],[100,149,166,167,264],[86,100,149,166,167,267,294,446],[86,100,149,166,167,267,445,446],[86,100,149,166,167,267,446],[100,149,166,167,391,433],[100,149,166,167,433],[100,149,163,166,167,442,446],[100,149,166,167,330],[100,148,149,166,167,329],[100,149,166,167,237,275,313,315,317,318,319,320,363,366,436,439,442],[100,149,166,167,237,351,366,370],[100,149,166,167,318,436],[86,100,149,166,167,318,327,328,330,331,332,333,334,335,346,347,348,349,350,352,353,436,437,498],[100,149,166,167,312],[100,149,163,166,167,175,237,238,274,289,319,363,364,365,370,391,411,432,441,442,443,444,498],[100,149,166,167,436],[100,148,149,166,167,223,316,319,365,432,434,435,442],[100,149,166,167,318],[100,148,149,166,167,274,279,308,309,310,311,312,313,314,315,317,436,437],[100,149,163,166,167,279,280,308,442,443],[100,149,166,167,223,365,366,391,432,436,442],[100,149,163,166,167,441,443],[100,149,163,166,167,181,439,442,443],[100,149,163,166,167,175,192,205,212,225,237,238,240,275,276,281,286,289,315,319,366,376,378,381,383,386,387,388,389,390,411,431,432,437,439,441,442,443],[100,149,163,166,167,181],[100,149,166,167,208,209,210,212,217,220,225,243,431,439,440,444,446,498],[100,149,163,166,167,181,192,255,257,259,260,261,262,269,498],[100,149,166,167,175,192,205,247,257,285,286,287,288,315,366,381,390,391,397,400,401,411,432,437,439],[100,149,166,167,219,220,235,365,390,432,441],[100,149,163,166,167,192,209,212,315,395,439,441],[100,149,166,167,306],[100,149,163,166,167,398,399,408],[100,149,166,167,439,441],[100,149,166,167,313,316],[100,149,166,167,315,319,431,446],[100,149,163,166,167,175,241,247,288,381,391,397,400,403,439],[100,149,163,166,167,219,235,247,404],[100,149,166,167,208,240,406,431,441],[100,149,163,166,167,192,441],[100,149,163,166,167,225,239,240,241,252,270,405,407,431,441],[94,100,149,166,167,237,319,410,444,446],[100,149,163,166,167,175,192,212,219,227,235,238,275,281,285,286,287,288,289,315,366,378,391,392,394,396,411,431,432,437,438,439,446],[100,149,163,166,167,181,219,397,402,408,439],[100,149,166,167,230,231,232,233,234],[100,149,166,167,276,382],[100,149,166,167,384],[100,149,166,167,382],[100,149,166,167,384,385],[100,149,163,166,167,212,215,216,274,442],[100,149,163,166,167,175,207,209,237,275,289,319,374,375,411,439,443,444,446],[100,149,163,166,167,175,192,211,216,315,375,438,442],[100,149,166,167,308],[100,149,166,167,309],[100,149,166,167,310],[100,149,166,167,437],[100,149,166,167,256,272],[100,149,163,166,167,212,256,275],[100,149,166,167,271,272],[100,149,166,167,273],[100,149,166,167,256,257],[100,149,166,167,256,290],[100,149,166,167,256],[100,149,166,167,276,380,438],[100,149,166,167,379],[100,149,166,167,257,437,438],[100,149,166,167,377,438],[100,149,166,167,257,437],[100,149,166,167,363],[100,149,166,167,212,217,275,304,307,313,315,319,321,324,355,358,362,366,410,431,439,442],[100,149,166,167,298,301,302,303,322,323,370],[86,100,149,166,167,202,204,267,356,357],[86,100,149,166,167,202,204,267,356,357,361],[100,149,166,167,419],[100,149,166,167,223,280,318,319,330,334,366,410,412,413,414,415,417,418,421,431,436,441],[100,149,166,167,370],[100,149,166,167,374],[100,149,163,166,167,275,291,371,373,376,410,439,444,446],[100,149,166,167,298,299,300,301,302,303,322,323,370,445],[94,100,149,163,166,167,175,192,238,256,257,289,315,319,408,409,411,431,432,441,442,444],[100,149,166,167,280,282,285,432],[100,149,163,166,167,276,441],[100,149,166,167,279,318],[100,149,166,167,278],[100,149,166,167,280,281],[100,149,166,167,277,279,441],[100,149,163,166,167,211,280,282,283,284,441,442],[86,100,149,166,167,366,367,369],[100,149,166,167,242],[86,100,149,166,167,209],[86,100,149,166,167,437],[86,94,100,149,166,167,289,319,444,446],[100,149,166,167,209,468,469],[86,100,149,166,167,297],[86,100,149,166,167,175,192,207,254,292,294,296,446],[100,149,166,167,225,437,442],[100,149,166,167,393,437],[100,149,166,167,366],[86,100,149,161,163,166,167,175,207,243,249,297,444,445],[86,100,149,166,167,200,201,202,203,204,444,492],[86,87,88,89,90,100,149,166,167],[100,149,154,166,167],[100,149,166,167,244,245,246],[100,149,166,167,244],[86,90,100,149,163,165,166,167,175,199,200,201,202,203,204,205,207,238,342,403,441,443,446,492],[100,149,166,167,456],[100,149,166,167,458],[100,149,166,167,460],[100,149,166,167,681],[100,149,166,167,462],[100,149,166,167,464,465,466],[100,149,166,167,470],[91,93,100,149,166,167,448,453,455,457,459,461,463,467,471,473,483,484,486,496,497,498,499],[100,149,166,167,472],[100,149,166,167,482],[100,149,166,167,294],[100,149,166,167,485],[100,148,149,166,167,280,282,283,285,333,437,487,488,489,492,493,494,495],[100,149,166,167,199],[100,149,166,167,519],[100,149,166,167,517,519],[100,149,166,167,508,516,517,518,520,522],[100,149,166,167,506],[100,149,166,167,509,514,519,522],[100,149,166,167,505,522],[100,149,166,167,509,510,513,514,515,522],[100,149,166,167,509,510,511,513,514,522],[100,149,166,167,506,507,508,509,510,514,515,516,518,519,520,522],[100,149,166,167,522],[100,149,166,167,504,506,507,508,509,510,511,513,514,515,516,517,518,519,520,521],[100,149,166,167,504,522],[100,149,166,167,509,511,512,514,515,522],[100,149,166,167,513,522],[100,149,166,167,514,515,519,522],[100,149,166,167,507,517],[100,149,166,167,583,584,585,586],[100,149,166,167,582,587,589],[100,149,166,167,588],[100,149,166,167,181,199],[100,149,166,167,524,525],[100,149,166,167,523,526],[100,149,166,167,531,554],[100,149,166,167,530],[100,149,166,167,531,533],[100,149,166,167,531,553],[100,149,166,167,531,535],[100,149,166,167,531,537],[100,149,166,167,531,534],[100,149,166,167,555,556,557,558,559,560,561,562,563,564,565,566,567,568,569,570,571,572,573],[100,149,166,167,531,535,581],[100,149,166,167,531,540,553],[100,149,166,167,531,581],[100,149,166,167,553,577,580],[100,149,166,167,574,575,576],[100,149,166,167,553],[100,149,166,167,532,533,534,535,536,537,538,539,540,541,543,544,545,546,547,548,549,550,551,552],[100,149,166,167,532,553],[100,149,166,167,542,553],[100,149,166,167,578,579],[100,114,118,149,166,167,192],[100,114,149,166,167,181,192],[100,109,149,166,167],[100,111,114,149,166,167,189,192],[100,149,166,167,169,189],[100,109,149,166,167,199],[100,111,114,149,166,167,169,192],[100,106,107,110,113,149,160,166,167,181,192],[100,114,121,149,166,167],[100,106,112,149,166,167],[100,114,135,136,149,166,167],[100,110,114,149,166,167,184,192,199],[100,135,149,166,167,199],[100,108,109,149,166,167,199],[100,114,149,166,167],[100,108,109,110,111,112,113,114,115,116,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,136,137,138,139,140,141,149,166,167],[100,114,129,149,166,167],[100,114,121,122,149,166,167],[100,112,114,122,123,149,166,167],[100,113,149,166,167],[100,106,109,114,149,166,167],[100,114,118,122,123,149,166,167],[100,118,149,166,167],[100,112,114,117,149,166,167,192],[100,106,111,114,121,149,166,167],[100,149,166,167,181],[100,109,114,135,149,166,167,197,199],[100,149,166,167,610],[100,149,166,167,601,602],[100,149,166,167,598,599,601,603,604,609],[100,149,166,167,599,601],[100,149,166,167,609],[100,149,166,167,601],[100,149,166,167,598,599,601,604,605,606,607,608],[100,149,166,167,598,599,600],[100,149,166,167,529,581,590],[100,149,166,167,496,593],[100,149,166,167,496,593,595],[100,149,166,167,496,611,612],[100,149,166,167,496,592,593,595,611],[100,149,166,167,496,611,670],[100,149,166,167,500,682,714],[86,100,149,166,167,473,592,593,673,674,675,676,678,713],[86,100,149,166,167,716,717,718],[86,100,149,166,167,713],[86,100,149,166,167,473,483,592,677,713,716],[100,149,166,167,471,593],[100,149,166,167,471,473,592,593],[100,149,166,167,673,674,675,676,678],[86,100,149,166,167,592,677],[100,149,166,167,593],[100,149,166,167,592,677,713],[86,100,149,166,167,483],[100,149,166,167,592,593,595,611,667,668,669],[100,149,166,167,592],[100,149,166,167,581,592],[100,149,166,167,590,592],[100,149,166,167,527]],"fileInfos":[{"version":"c430d44666289dae81f30fa7b2edebf186ecc91a2d4c71266ea6ae76388792e1","affectsGlobalScope":true,"impliedFormat":1},{"version":"45b7ab580deca34ae9729e97c13cfd999df04416a79116c3bfb483804f85ded4","impliedFormat":1},{"version":"3facaf05f0c5fc569c5649dd359892c98a85557e3e0c847964caeb67076f4d75","impliedFormat":1},{"version":"e44bb8bbac7f10ecc786703fe0a6a4b952189f908707980ba8f3c8975a760962","impliedFormat":1},{"version":"5e1c4c362065a6b95ff952c0eab010f04dcd2c3494e813b493ecfd4fcb9fc0d8","impliedFormat":1},{"version":"68d73b4a11549f9c0b7d352d10e91e5dca8faa3322bfb77b661839c42b1ddec7","impliedFormat":1},{"version":"5efce4fc3c29ea84e8928f97adec086e3dc876365e0982cc8479a07954a3efd4","impliedFormat":1},{"version":"feecb1be483ed332fad555aff858affd90a48ab19ba7272ee084704eb7167569","impliedFormat":1},{"version":"ee7bad0c15b58988daa84371e0b89d313b762ab83cb5b31b8a2d1162e8eb41c2","impliedFormat":1},{"version":"27bdc30a0e32783366a5abeda841bc22757c1797de8681bbe81fbc735eeb1c10","impliedFormat":1},{"version":"8fd575e12870e9944c7e1d62e1f5a73fcf23dd8d3a321f2a2c74c20d022283fe","impliedFormat":1},{"version":"2ab096661c711e4a81cc464fa1e6feb929a54f5340b46b0a07ac6bbf857471f0","impliedFormat":1},{"version":"080941d9f9ff9307f7e27a83bcd888b7c8270716c39af943532438932ec1d0b9","affectsGlobalScope":true,"impliedFormat":1},{"version":"2e80ee7a49e8ac312cc11b77f1475804bee36b3b2bc896bead8b6e1266befb43","affectsGlobalScope":true,"impliedFormat":1},{"version":"c57796738e7f83dbc4b8e65132f11a377649c00dd3eee333f672b8f0a6bea671","affectsGlobalScope":true,"impliedFormat":1},{"version":"dc2df20b1bcdc8c2d34af4926e2c3ab15ffe1160a63e58b7e09833f616efff44","affectsGlobalScope":true,"impliedFormat":1},{"version":"515d0b7b9bea2e31ea4ec968e9edd2c39d3eebf4a2d5cbd04e88639819ae3b71","affectsGlobalScope":true,"impliedFormat":1},{"version":"0559b1f683ac7505ae451f9a96ce4c3c92bdc71411651ca6ddb0e88baaaad6a3","affectsGlobalScope":true,"impliedFormat":1},{"version":"0dc1e7ceda9b8b9b455c3a2d67b0412feab00bd2f66656cd8850e8831b08b537","affectsGlobalScope":true,"impliedFormat":1},{"version":"ce691fb9e5c64efb9547083e4a34091bcbe5bdb41027e310ebba8f7d96a98671","affectsGlobalScope":true,"impliedFormat":1},{"version":"8d697a2a929a5fcb38b7a65594020fcef05ec1630804a33748829c5ff53640d0","affectsGlobalScope":true,"impliedFormat":1},{"version":"4ff2a353abf8a80ee399af572debb8faab2d33ad38c4b4474cff7f26e7653b8d","affectsGlobalScope":true,"impliedFormat":1},{"version":"fb0f136d372979348d59b3f5020b4cdb81b5504192b1cacff5d1fbba29378aa1","affectsGlobalScope":true,"impliedFormat":1},{"version":"d15bea3d62cbbdb9797079416b8ac375ae99162a7fba5de2c6c505446486ac0a","affectsGlobalScope":true,"impliedFormat":1},{"version":"68d18b664c9d32a7336a70235958b8997ebc1c3b8505f4f1ae2b7e7753b87618","affectsGlobalScope":true,"impliedFormat":1},{"version":"eb3d66c8327153d8fa7dd03f9c58d351107fe824c79e9b56b462935176cdf12a","affectsGlobalScope":true,"impliedFormat":1},{"version":"38f0219c9e23c915ef9790ab1d680440d95419ad264816fa15009a8851e79119","affectsGlobalScope":true,"impliedFormat":1},{"version":"69ab18c3b76cd9b1be3d188eaf8bba06112ebbe2f47f6c322b5105a6fbc45a2e","affectsGlobalScope":true,"impliedFormat":1},{"version":"a680117f487a4d2f30ea46f1b4b7f58bef1480456e18ba53ee85c2746eeca012","affectsGlobalScope":true,"impliedFormat":1},{"version":"2f11ff796926e0832f9ae148008138ad583bd181899ab7dd768a2666700b1893","affectsGlobalScope":true,"impliedFormat":1},{"version":"4de680d5bb41c17f7f68e0419412ca23c98d5749dcaaea1896172f06435891fc","affectsGlobalScope":true,"impliedFormat":1},{"version":"954296b30da6d508a104a3a0b5d96b76495c709785c1d11610908e63481ee667","affectsGlobalScope":true,"impliedFormat":1},{"version":"ac9538681b19688c8eae65811b329d3744af679e0bdfa5d842d0e32524c73e1c","affectsGlobalScope":true,"impliedFormat":1},{"version":"0a969edff4bd52585473d24995c5ef223f6652d6ef46193309b3921d65dd4376","affectsGlobalScope":true,"impliedFormat":1},{"version":"9e9fbd7030c440b33d021da145d3232984c8bb7916f277e8ffd3dc2e3eae2bdb","affectsGlobalScope":true,"impliedFormat":1},{"version":"811ec78f7fefcabbda4bfa93b3eb67d9ae166ef95f9bff989d964061cbf81a0c","affectsGlobalScope":true,"impliedFormat":1},{"version":"717937616a17072082152a2ef351cb51f98802fb4b2fdabd32399843875974ca","affectsGlobalScope":true,"impliedFormat":1},{"version":"d7e7d9b7b50e5f22c915b525acc5a49a7a6584cf8f62d0569e557c5cfc4b2ac2","affectsGlobalScope":true,"impliedFormat":1},{"version":"71c37f4c9543f31dfced6c7840e068c5a5aacb7b89111a4364b1d5276b852557","affectsGlobalScope":true,"impliedFormat":1},{"version":"576711e016cf4f1804676043e6a0a5414252560eb57de9faceee34d79798c850","affectsGlobalScope":true,"impliedFormat":1},{"version":"89c1b1281ba7b8a96efc676b11b264de7a8374c5ea1e6617f11880a13fc56dc6","affectsGlobalScope":true,"impliedFormat":1},{"version":"74f7fa2d027d5b33eb0471c8e82a6c87216223181ec31247c357a3e8e2fddc5b","affectsGlobalScope":true,"impliedFormat":1},{"version":"d6d7ae4d1f1f3772e2a3cde568ed08991a8ae34a080ff1151af28b7f798e22ca","affectsGlobalScope":true,"impliedFormat":1},{"version":"063600664504610fe3e99b717a1223f8b1900087fab0b4cad1496a114744f8df","affectsGlobalScope":true,"impliedFormat":1},{"version":"934019d7e3c81950f9a8426d093458b65d5aff2c7c1511233c0fd5b941e608ab","affectsGlobalScope":true,"impliedFormat":1},{"version":"52ada8e0b6e0482b728070b7639ee42e83a9b1c22d205992756fe020fd9f4a47","affectsGlobalScope":true,"impliedFormat":1},{"version":"3bdefe1bfd4d6dee0e26f928f93ccc128f1b64d5d501ff4a8cf3c6371200e5e6","affectsGlobalScope":true,"impliedFormat":1},{"version":"59fb2c069260b4ba00b5643b907ef5d5341b167e7d1dbf58dfd895658bda2867","affectsGlobalScope":true,"impliedFormat":1},{"version":"639e512c0dfc3fad96a84caad71b8834d66329a1f28dc95e3946c9b58176c73a","affectsGlobalScope":true,"impliedFormat":1},{"version":"368af93f74c9c932edd84c58883e736c9e3d53cec1fe24c0b0ff451f529ceab1","affectsGlobalScope":true,"impliedFormat":1},{"version":"af3dd424cf267428f30ccfc376f47a2c0114546b55c44d8c0f1d57d841e28d74","affectsGlobalScope":true,"impliedFormat":1},{"version":"995c005ab91a498455ea8dfb63aa9f83fa2ea793c3d8aa344be4a1678d06d399","affectsGlobalScope":true,"impliedFormat":1},{"version":"959d36cddf5e7d572a65045b876f2956c973a586da58e5d26cde519184fd9b8a","affectsGlobalScope":true,"impliedFormat":1},{"version":"965f36eae237dd74e6cca203a43e9ca801ce38824ead814728a2807b1910117d","affectsGlobalScope":true,"impliedFormat":1},{"version":"3925a6c820dcb1a06506c90b1577db1fdbf7705d65b62b99dce4be75c637e26b","affectsGlobalScope":true,"impliedFormat":1},{"version":"0a3d63ef2b853447ec4f749d3f368ce642264246e02911fcb1590d8c161b8005","affectsGlobalScope":true,"impliedFormat":1},{"version":"8cdf8847677ac7d20486e54dd3fcf09eda95812ac8ace44b4418da1bbbab6eb8","affectsGlobalScope":true,"impliedFormat":1},{"version":"8444af78980e3b20b49324f4a16ba35024fef3ee069a0eb67616ea6ca821c47a","affectsGlobalScope":true,"impliedFormat":1},{"version":"3287d9d085fbd618c3971944b65b4be57859f5415f495b33a6adc994edd2f004","affectsGlobalScope":true,"impliedFormat":1},{"version":"b4b67b1a91182421f5df999988c690f14d813b9850b40acd06ed44691f6727ad","affectsGlobalScope":true,"impliedFormat":1},{"version":"df83c2a6c73228b625b0beb6669c7ee2a09c914637e2d35170723ad49c0f5cd4","affectsGlobalScope":true,"impliedFormat":1},{"version":"436aaf437562f276ec2ddbee2f2cdedac7664c1e4c1d2c36839ddd582eeb3d0a","affectsGlobalScope":true,"impliedFormat":1},{"version":"8e3c06ea092138bf9fa5e874a1fdbc9d54805d074bee1de31b99a11e2fec239d","affectsGlobalScope":true,"impliedFormat":1},{"version":"87dc0f382502f5bbce5129bdc0aea21e19a3abbc19259e0b43ae038a9fc4e326","affectsGlobalScope":true,"impliedFormat":1},{"version":"b1cb28af0c891c8c96b2d6b7be76bd394fddcfdb4709a20ba05a7c1605eea0f9","affectsGlobalScope":true,"impliedFormat":1},{"version":"2fef54945a13095fdb9b84f705f2b5994597640c46afeb2ce78352fab4cb3279","affectsGlobalScope":true,"impliedFormat":1},{"version":"ac77cb3e8c6d3565793eb90a8373ee8033146315a3dbead3bde8db5eaf5e5ec6","affectsGlobalScope":true,"impliedFormat":1},{"version":"56e4ed5aab5f5920980066a9409bfaf53e6d21d3f8d020c17e4de584d29600ad","affectsGlobalScope":true,"impliedFormat":1},{"version":"4ece9f17b3866cc077099c73f4983bddbcb1dc7ddb943227f1ec070f529dedd1","affectsGlobalScope":true,"impliedFormat":1},{"version":"0a6282c8827e4b9a95f4bf4f5c205673ada31b982f50572d27103df8ceb8013c","affectsGlobalScope":true,"impliedFormat":1},{"version":"1c9319a09485199c1f7b0498f2988d6d2249793ef67edda49d1e584746be9032","affectsGlobalScope":true,"impliedFormat":1},{"version":"e3a2a0cee0f03ffdde24d89660eba2685bfbdeae955a6c67e8c4c9fd28928eeb","affectsGlobalScope":true,"impliedFormat":1},{"version":"811c71eee4aa0ac5f7adf713323a5c41b0cf6c4e17367a34fbce379e12bbf0a4","affectsGlobalScope":true,"impliedFormat":1},{"version":"51ad4c928303041605b4d7ae32e0c1ee387d43a24cd6f1ebf4a2699e1076d4fa","affectsGlobalScope":true,"impliedFormat":1},{"version":"60037901da1a425516449b9a20073aa03386cce92f7a1fd902d7602be3a7c2e9","affectsGlobalScope":true,"impliedFormat":1},{"version":"d4b1d2c51d058fc21ec2629fff7a76249dec2e36e12960ea056e3ef89174080f","affectsGlobalScope":true,"impliedFormat":1},{"version":"22adec94ef7047a6c9d1af3cb96be87a335908bf9ef386ae9fd50eeb37f44c47","affectsGlobalScope":true,"impliedFormat":1},{"version":"196cb558a13d4533a5163286f30b0509ce0210e4b316c56c38d4c0fd2fb38405","affectsGlobalScope":true,"impliedFormat":1},{"version":"73f78680d4c08509933daf80947902f6ff41b6230f94dd002ae372620adb0f60","affectsGlobalScope":true,"impliedFormat":1},{"version":"c5239f5c01bcfa9cd32f37c496cf19c61d69d37e48be9de612b541aac915805b","affectsGlobalScope":true,"impliedFormat":1},{"version":"8e7f8264d0fb4c5339605a15daadb037bf238c10b654bb3eee14208f860a32ea","affectsGlobalScope":true,"impliedFormat":1},{"version":"782dec38049b92d4e85c1585fbea5474a219c6984a35b004963b00beb1aab538","affectsGlobalScope":true,"impliedFormat":1},{"version":"c16dda3690518a9345f02c212b6401ad56483f04ba0ab1d04d6b23a10ca6ac6c","affectsGlobalScope":true},{"version":"170d4db14678c68178ee8a3d5a990d5afb759ecb6ec44dbd885c50f6da6204f6","affectsGlobalScope":true,"impliedFormat":1},{"version":"ac51dd7d31333793807a6abaa5ae168512b6131bd41d9c5b98477fc3b7800f9f","impliedFormat":1},{"version":"5e76305d58bcdc924ff2bf14f6a9dc2aa5441ed06464b7e7bd039e611d66a89b","impliedFormat":1},{"version":"acd8fd5090ac73902278889c38336ff3f48af6ba03aa665eb34a75e7ba1dccc4","impliedFormat":1},{"version":"d6258883868fb2680d2ca96bc8b1352cab69874581493e6d52680c5ffecdb6cc","impliedFormat":1},{"version":"1b61d259de5350f8b1e5db06290d31eaebebc6baafd5f79d314b5af9256d7153","impliedFormat":1},{"version":"f258e3960f324a956fc76a3d3d9e964fff2244ff5859dcc6ce5951e5413ca826","impliedFormat":1},{"version":"643f7232d07bf75e15bd8f658f664d6183a0efaca5eb84b48201c7671a266979","impliedFormat":1},{"version":"0f6666b58e9276ac3a38fdc80993d19208442d6027ab885580d93aec76b4ef00","impliedFormat":1},{"version":"05fd364b8ef02fb1e174fbac8b825bdb1e5a36a016997c8e421f5fab0a6da0a0","impliedFormat":1},{"version":"631eff75b0e35d1b1b31081d55209abc43e16b49426546ab5a9b40bdd40b1f60","impliedFormat":1},{"version":"6c7176368037af28cb72f2392010fa1cef295d6d6744bca8cfb54985f3a18c3e","affectsGlobalScope":true,"impliedFormat":1},{"version":"ab41ef1f2cdafb8df48be20cd969d875602483859dc194e9c97c8a576892c052","affectsGlobalScope":true,"impliedFormat":1},{"version":"437e20f2ba32abaeb7985e0afe0002de1917bc74e949ba585e49feba65da6ca1","affectsGlobalScope":true,"impliedFormat":1},{"version":"21d819c173c0cf7cc3ce57c3276e77fd9a8a01d35a06ad87158781515c9a438a","impliedFormat":1},{"version":"98cffbf06d6bab333473c70a893770dbe990783904002c4f1a960447b4b53dca","affectsGlobalScope":true,"impliedFormat":1},{"version":"3af97acf03cc97de58a3a4bc91f8f616408099bc4233f6d0852e72a8ffb91ac9","affectsGlobalScope":true,"impliedFormat":1},{"version":"808069bba06b6768b62fd22429b53362e7af342da4a236ed2d2e1c89fcca3b4a","affectsGlobalScope":true,"impliedFormat":1},{"version":"1db0b7dca579049ca4193d034d835f6bfe73096c73663e5ef9a0b5779939f3d0","affectsGlobalScope":true,"impliedFormat":1},{"version":"9798340ffb0d067d69b1ae5b32faa17ab31b82466a3fc00d8f2f2df0c8554aaa","affectsGlobalScope":true,"impliedFormat":1},{"version":"f26b11d8d8e4b8028f1c7d618b22274c892e4b0ef5b3678a8ccbad85419aef43","affectsGlobalScope":true,"impliedFormat":1},{"version":"8e9c23ba78aabc2e0a27033f18737a6df754067731e69dc5f52823957d60a4b6","impliedFormat":1},{"version":"5929864ce17fba74232584d90cb721a89b7ad277220627cc97054ba15a98ea8f","impliedFormat":1},{"version":"763fe0f42b3d79b440a9b6e51e9ba3f3f91352469c1e4b3b67bfa4ff6352f3f4","impliedFormat":1},{"version":"25c8056edf4314820382a5fdb4bb7816999acdcb929c8f75e3f39473b87e85bc","impliedFormat":1},{"version":"c464d66b20788266e5353b48dc4aa6bc0dc4a707276df1e7152ab0c9ae21fad8","impliedFormat":1},{"version":"78d0d27c130d35c60b5e5566c9f1e5be77caf39804636bc1a40133919a949f21","impliedFormat":1},{"version":"c6fd2c5a395f2432786c9cb8deb870b9b0e8ff7e22c029954fabdd692bff6195","impliedFormat":1},{"version":"1d6e127068ea8e104a912e42fc0a110e2aa5a66a356a917a163e8cf9a65e4a75","impliedFormat":1},{"version":"5ded6427296cdf3b9542de4471d2aa8d3983671d4cac0f4bf9c637208d1ced43","impliedFormat":1},{"version":"7f182617db458e98fc18dfb272d40aa2fff3a353c44a89b2c0ccb3937709bfb5","impliedFormat":1},{"version":"cadc8aced301244057c4e7e73fbcae534b0f5b12a37b150d80e5a45aa4bebcbd","impliedFormat":1},{"version":"385aab901643aa54e1c36f5ef3107913b10d1b5bb8cbcd933d4263b80a0d7f20","impliedFormat":1},{"version":"9670d44354bab9d9982eca21945686b5c24a3f893db73c0dae0fd74217a4c219","impliedFormat":1},{"version":"0b8a9268adaf4da35e7fa830c8981cfa22adbbe5b3f6f5ab91f6658899e657a7","impliedFormat":1},{"version":"11396ed8a44c02ab9798b7dca436009f866e8dae3c9c25e8c1fbc396880bf1bb","impliedFormat":1},{"version":"ba7bc87d01492633cb5a0e5da8a4a42a1c86270e7b3d2dea5d156828a84e4882","impliedFormat":1},{"version":"4893a895ea92c85345017a04ed427cbd6a1710453338df26881a6019432febdd","impliedFormat":1},{"version":"c21dc52e277bcfc75fac0436ccb75c204f9e1b3fa5e12729670910639f27343e","impliedFormat":1},{"version":"13f6f39e12b1518c6650bbb220c8985999020fe0f21d818e28f512b7771d00f9","impliedFormat":1},{"version":"9b5369969f6e7175740bf51223112ff209f94ba43ecd3bb09eefff9fd675624a","impliedFormat":1},{"version":"4fe9e626e7164748e8769bbf74b538e09607f07ed17c2f20af8d680ee49fc1da","impliedFormat":1},{"version":"24515859bc0b836719105bb6cc3d68255042a9f02a6022b3187948b204946bd2","impliedFormat":1},{"version":"ea0148f897b45a76544ae179784c95af1bd6721b8610af9ffa467a518a086a43","impliedFormat":1},{"version":"24c6a117721e606c9984335f71711877293a9651e44f59f3d21c1ea0856f9cc9","impliedFormat":1},{"version":"dd3273ead9fbde62a72949c97dbec2247ea08e0c6952e701a483d74ef92d6a17","impliedFormat":1},{"version":"405822be75ad3e4d162e07439bac80c6bcc6dbae1929e179cf467ec0b9ee4e2e","impliedFormat":1},{"version":"0db18c6e78ea846316c012478888f33c11ffadab9efd1cc8bcc12daded7a60b6","impliedFormat":1},{"version":"e61be3f894b41b7baa1fbd6a66893f2579bfad01d208b4ff61daef21493ef0a8","impliedFormat":1},{"version":"bd0532fd6556073727d28da0edfd1736417a3f9f394877b6d5ef6ad88fba1d1a","impliedFormat":1},{"version":"89167d696a849fce5ca508032aabfe901c0868f833a8625d5a9c6e861ef935d2","impliedFormat":1},{"version":"615ba88d0128ed16bf83ef8ccbb6aff05c3ee2db1cc0f89ab50a4939bfc1943f","impliedFormat":1},{"version":"a4d551dbf8746780194d550c88f26cf937caf8d56f102969a110cfaed4b06656","impliedFormat":1},{"version":"8bd86b8e8f6a6aa6c49b71e14c4ffe1211a0e97c80f08d2c8cc98838006e4b88","impliedFormat":1},{"version":"317e63deeb21ac07f3992f5b50cdca8338f10acd4fbb7257ebf56735bf52ab00","impliedFormat":1},{"version":"4732aec92b20fb28c5fe9ad99521fb59974289ed1e45aecb282616202184064f","impliedFormat":1},{"version":"2e85db9e6fd73cfa3d7f28e0ab6b55417ea18931423bd47b409a96e4a169e8e6","impliedFormat":1},{"version":"c46e079fe54c76f95c67fb89081b3e399da2c7d109e7dca8e4b58d83e332e605","impliedFormat":1},{"version":"bf67d53d168abc1298888693338cb82854bdb2e69ef83f8a0092093c2d562107","impliedFormat":1},{"version":"2cbe0621042e2a68c7cbce5dfed3906a1862a16a7d496010636cdbdb91341c0f","affectsGlobalScope":true,"impliedFormat":1},{"version":"f9501cc13ce624c72b61f12b3963e84fad210fbdf0ffbc4590e08460a3f04eba","affectsGlobalScope":true,"impliedFormat":1},{"version":"e7721c4f69f93c91360c26a0a84ee885997d748237ef78ef665b153e622b36c1","affectsGlobalScope":true,"impliedFormat":1},{"version":"0fa06ada475b910e2106c98c68b10483dc8811d0c14a8a8dd36efb2672485b29","impliedFormat":1},{"version":"33e5e9aba62c3193d10d1d33ae1fa75c46a1171cf76fef750777377d53b0303f","impliedFormat":1},{"version":"2b06b93fd01bcd49d1a6bd1f9b65ddcae6480b9a86e9061634d6f8e354c1468f","impliedFormat":1},{"version":"6a0cd27e5dc2cfbe039e731cf879d12b0e2dded06d1b1dedad07f7712de0d7f4","affectsGlobalScope":true,"impliedFormat":1},{"version":"13f5c844119c43e51ce777c509267f14d6aaf31eafb2c2b002ca35584cd13b29","impliedFormat":1},{"version":"e60477649d6ad21542bd2dc7e3d9ff6853d0797ba9f689ba2f6653818999c264","impliedFormat":1},{"version":"c2510f124c0293ab80b1777c44d80f812b75612f297b9857406468c0f4dafe29","affectsGlobalScope":true,"impliedFormat":1},{"version":"5524481e56c48ff486f42926778c0a3cce1cc85dc46683b92b1271865bcf015a","impliedFormat":1},{"version":"4c829ab315f57c5442c6667b53769975acbf92003a66aef19bce151987675bd1","affectsGlobalScope":true,"impliedFormat":1},{"version":"b2ade7657e2db96d18315694789eff2ddd3d8aea7215b181f8a0b303277cc579","impliedFormat":1},{"version":"9855e02d837744303391e5623a531734443a5f8e6e8755e018c41d63ad797db2","impliedFormat":1},{"version":"4d631b81fa2f07a0e63a9a143d6a82c25c5f051298651a9b69176ba28930756d","impliedFormat":1},{"version":"836a356aae992ff3c28a0212e3eabcb76dd4b0cc06bcb9607aeef560661b860d","impliedFormat":1},{"version":"1e0d1f8b0adfa0b0330e028c7941b5a98c08b600efe7f14d2d2a00854fb2f393","impliedFormat":1},{"version":"41670ee38943d9cbb4924e436f56fc19ee94232bc96108562de1a734af20dc2c","affectsGlobalScope":true,"impliedFormat":1},{"version":"c906fb15bd2aabc9ed1e3f44eb6a8661199d6c320b3aa196b826121552cb3695","impliedFormat":1},{"version":"22295e8103f1d6d8ea4b5d6211e43421fe4564e34d0dd8e09e520e452d89e659","impliedFormat":1},{"version":"bb45cd435da536500f1d9692a9b49d0c570b763ccbf00473248b777f5c1f353b","impliedFormat":1},{"version":"6b4e081d55ac24fc8a4631d5dd77fe249fa25900abd7d046abb87d90e3b45645","impliedFormat":1},{"version":"a10f0e1854f3316d7ee437b79649e5a6ae3ae14ffe6322b02d4987071a95362e","impliedFormat":1},{"version":"e208f73ef6a980104304b0d2ca5f6bf1b85de6009d2c7e404028b875020fa8f2","impliedFormat":1},{"version":"d163b6bc2372b4f07260747cbc6c0a6405ab3fbcea3852305e98ac43ca59f5bc","impliedFormat":1},{"version":"e6fa9ad47c5f71ff733744a029d1dc472c618de53804eae08ffc243b936f87ff","affectsGlobalScope":true,"impliedFormat":1},{"version":"83e63d6ccf8ec004a3bb6d58b9bb0104f60e002754b1e968024b320730cc5311","impliedFormat":1},{"version":"24826ed94a78d5c64bd857570fdbd96229ad41b5cb654c08d75a9845e3ab7dde","impliedFormat":1},{"version":"45875bcae57270aeb3ebc73a5e3fb4c7b9d91d6b045f107c1d8513c28ece71c0","impliedFormat":1},{"version":"928af3d90454bf656a52a48679f199f64c1435247d6189d1caf4c68f2eaf921f","affectsGlobalScope":true,"impliedFormat":1},{"version":"21145ce1c54e05ef9e52092b98a4ebfb326b92f52e76e47211c50cfcd2a2b4ad","affectsGlobalScope":true,"impliedFormat":1},{"version":"3f16a7e4deafa527ed9995a772bb380eb7d3c2c0fd4ae178c5263ed18394db2c","impliedFormat":1},{"version":"933921f0bb0ec12ef45d1062a1fc0f27635318f4d294e4d99de9a5493e618ca2","impliedFormat":1},{"version":"71a0f3ad612c123b57239a7749770017ecfe6b66411488000aba83e4546fde25","impliedFormat":1},{"version":"77fbe5eecb6fac4b6242bbf6eebfc43e98ce5ccba8fa44e0ef6a95c945ff4d98","impliedFormat":1},{"version":"4f9d8ca0c417b67b69eeb54c7ca1bedd7b56034bb9bfd27c5d4f3bc4692daca7","impliedFormat":1},{"version":"814118df420c4e38fe5ae1b9a3bafb6e9c2aa40838e528cde908381867be6466","impliedFormat":1},{"version":"a3fc63c0d7b031693f665f5494412ba4b551fe644ededccc0ab5922401079c95","impliedFormat":1},{"version":"f27524f4bef4b6519c604bdb23bf4465bddcccbf3f003abb901acbd0d7404d99","impliedFormat":1},{"version":"37ba7b45141a45ce6e80e66f2a96c8a5ab1bcef0fc2d0f56bb58df96ec67e972","impliedFormat":1},{"version":"45650f47bfb376c8a8ed39d4bcda5902ab899a3150029684ee4c10676d9fbaee","impliedFormat":1},{"version":"dba28a419aec76ed864ef43e5f577a5c99a010c32e5949fe4e17a4d57c58dd11","affectsGlobalScope":true,"impliedFormat":1},{"version":"18fd40412d102c5564136f29735e5d1c3b455b8a37f920da79561f1fde068208","impliedFormat":1},{"version":"c959a391a75be9789b43c8468f71e3fa06488b4d691d5729dde1416dcd38225b","impliedFormat":1},{"version":"f0be1b8078cd549d91f37c30c222c2a187ac1cf981d994fb476a1adc61387b14","affectsGlobalScope":true,"impliedFormat":1},{"version":"0aaed1d72199b01234152f7a60046bc947f1f37d78d182e9ae09c4289e06a592","impliedFormat":1},{"version":"5ebe6f4cc3b803cbfc962bae0d954f9c80e5078ca41eb3f1de41d92e7193ef37","impliedFormat":1},{"version":"66ba1b2c3e3a3644a1011cd530fb444a96b1b2dfe2f5e837a002d41a1a799e60","impliedFormat":1},{"version":"7e514f5b852fdbc166b539fdd1f4e9114f29911592a5eb10a94bb3a13ccac3c4","impliedFormat":1},{"version":"5b7aa3c4c1a5d81b411e8cb302b45507fea9358d3569196b27eb1a27ae3a90ef","affectsGlobalScope":true,"impliedFormat":1},{"version":"5987a903da92c7462e0b35704ce7da94d7fdc4b89a984871c0e2b87a8aae9e69","affectsGlobalScope":true,"impliedFormat":1},{"version":"ea08a0345023ade2b47fbff5a76d0d0ed8bff10bc9d22b83f40858a8e941501c","impliedFormat":1},{"version":"47613031a5a31510831304405af561b0ffaedb734437c595256bb61a90f9311b","impliedFormat":1},{"version":"ae062ce7d9510060c5d7e7952ae379224fb3f8f2dd74e88959878af2057c143b","impliedFormat":1},{"version":"8a1a0d0a4a06a8d278947fcb66bf684f117bf147f89b06e50662d79a53be3e9f","affectsGlobalScope":true,"impliedFormat":1},{"version":"9f663c2f91127ef7024e8ca4b3b4383ff2770e5f826696005de382282794b127","impliedFormat":1},{"version":"9f55299850d4f0921e79b6bf344b47c420ce0f507b9dcf593e532b09ea7eeea1","impliedFormat":1},{"version":"24259d3dae14de55d22f8b3d3e96954e5175a925ab6a830dc05a1993d4794eda","impliedFormat":1},{"version":"27e046d30d55669e9b5a325788a9b4073b05ce62607867754d2918af559a0877","impliedFormat":1},{"version":"be1cc4d94ea60cbe567bc29ed479d42587bf1e6cba490f123d329976b0fe4ee5","impliedFormat":1},{"version":"42bc0e1a903408137c3df2b06dfd7e402cdab5bbfa5fcfb871b22ebfdb30bd0b","impliedFormat":1},{"version":"9894dafe342b976d251aac58e616ac6df8db91fb9d98934ff9dd103e9e82578f","impliedFormat":1},{"version":"413df52d4ea14472c2fa5bee62f7a40abd1eb49be0b9722ee01ee4e52e63beb2","impliedFormat":1},{"version":"db6d2d9daad8a6d83f281af12ce4355a20b9a3e71b82b9f57cddcca0a8964a96","impliedFormat":1},{"version":"829b9e6028b29e6a8b1c01ddb713efe59da04d857089298fa79acbdb3cfcfdef","impliedFormat":1},{"version":"24f8562308dd8ba6013120557fa7b44950b619610b2c6cb8784c79f11e3c4f90","impliedFormat":1},{"version":"c696aa0753345ae6bdaab0e2d4b2053ee76be5140470860eef7e6cadc9f725a1","impliedFormat":1},{"version":"a86f82d646a739041d6702101afa82dcb935c416dd93cbca7fd754fd0282ce1f","impliedFormat":1},{"version":"ad0d1d75d129b1c80f911be438d6b61bfa8703930a8ff2be2f0e1f8a91841c64","impliedFormat":1},{"version":"ce75b1aebb33d510ff28af960a9221410a3eaf7f18fc5f21f9404075fba77256","impliedFormat":1},{"version":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","impliedFormat":1},{"version":"496bbf339f3838c41f164238543e9fe5f1f10659cb30b68903851618464b98ba","impliedFormat":1},{"version":"5178eb4415a172c287c711dc60a619e110c3fd0b7de01ed0627e51a5336aa09c","impliedFormat":1},{"version":"ca6e5264278b53345bc1ce95f42fb0a8b733a09e3d6479c6ccfca55cdc45038c","impliedFormat":1},{"version":"9e2739b32f741859263fdba0244c194ca8e96da49b430377930b8f721d77c000","impliedFormat":1},{"version":"fb1d8e814a3eeb5101ca13515e0548e112bd1ff3fb358ece535b93e94adf5a3a","impliedFormat":1},{"version":"ffa495b17a5ef1d0399586b590bd281056cee6ce3583e34f39926f8dcc6ecdb5","impliedFormat":1},{"version":"98b18458acb46072947aabeeeab1e410f047e0cacc972943059ca5500b0a5e95","impliedFormat":1},{"version":"361e2b13c6765d7f85bb7600b48fde782b90c7c41105b7dab1f6e7871071ba20","impliedFormat":1},{"version":"c86fe861cf1b4c46a0fb7d74dffe596cf679a2e5e8b1456881313170f092e3fa","impliedFormat":1},{"version":"b6db56e4903e9c32e533b78ac85522de734b3d3a8541bf24d256058d464bf04b","impliedFormat":1},{"version":"24daa0366f837d22c94a5c0bad5bf1fd0f6b29e1fae92dc47c3072c3fdb2fbd5","impliedFormat":1},{"version":"570bb5a00836ffad3e4127f6adf581bfc4535737d8ff763a4d6f4cc877e60d98","impliedFormat":1},{"version":"889c00f3d32091841268f0b994beba4dceaa5df7573be12c2c829d7c5fbc232c","impliedFormat":1},{"version":"65f43099ded6073336e697512d9b80f2d4fec3182b7b2316abf712e84104db00","impliedFormat":1},{"version":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","impliedFormat":1},{"version":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","impliedFormat":1},{"version":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881","impliedFormat":1},{"version":"acf5a2ac47b59ca07afa9abbd2b31d001bf7448b041927befae2ea5b1951d9f9","impliedFormat":1},{"version":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881","impliedFormat":1},{"version":"d71291eff1e19d8762a908ba947e891af44749f3a2cbc5bd2ec4b72f72ea795f","impliedFormat":1},{"version":"c0480e03db4b816dff2682b347c95f2177699525c54e7e6f6aa8ded890b76be7","impliedFormat":1},{"version":"27ab780875bcbb65e09da7496f2ca36288b0c541abaa75c311450a077d54ec15","impliedFormat":1},{"version":"b620391fe8060cf9bedc176a4d01366e6574d7a71e0ac0ab344a4e76576fcbb8","impliedFormat":1},{"version":"380647d8f3b7f852cca6d154a376dbf8ac620a2f12b936594504a8a852e71d2f","impliedFormat":1},{"version":"208c9af9429dd3c76f5927b971263174aaa4bc7621ddec63f163640cbd3c473c","impliedFormat":1},{"version":"6459054aabb306821a043e02b89d54da508e3a6966601a41e71c166e4ea1474f","impliedFormat":1},{"version":"a23185bc5ef590c287c28a91baf280367b50ae4ea40327366ad01f6f4a8edbc5","impliedFormat":1},{"version":"bb37588926aba35c9283fe8d46ebf4e79ffe976343105f5c6d45f282793352b2","impliedFormat":1},{"version":"002eae065e6960458bda3cf695e578b0d1e2785523476f8a9170b103c709cd4f","impliedFormat":1},{"version":"c83bb0c9c5645a46c68356c2f73fdc9de339ce77f7f45a954f560c7e0b8d5ebb","impliedFormat":1},{"version":"05c97cddbaf99978f83d96de2d8af86aded9332592f08ce4a284d72d0952c391","impliedFormat":1},{"version":"72179f9dd22a86deaad4cc3490eb0fe69ee084d503b686985965654013f1391b","impliedFormat":1},{"version":"2e6114a7dd6feeef85b2c80120fdbfb59a5529c0dcc5bfa8447b6996c97a69f5","impliedFormat":1},{"version":"7b6ff760c8a240b40dab6e4419b989f06a5b782f4710d2967e67c695ef3e93c4","impliedFormat":1},{"version":"c8f004e6036aa1c764ad4ec543cf89a5c1893a9535c80ef3f2b653e370de45e6","impliedFormat":1},{"version":"dd80b1e600d00f5c6a6ba23f455b84a7db121219e68f89f10552c54ba46e4dc9","impliedFormat":1},{"version":"b064c36f35de7387d71c599bfcf28875849a1dbc733e82bd26cae3d1cd060521","impliedFormat":1},{"version":"6a148329edecbda07c21098639ef4254ef7869fb25a69f58e5d6a8b7b69d4236","impliedFormat":1},{"version":"8de9fe97fa9e00ec00666fa77ab6e91b35d25af8ca75dabcb01e14ad3299b150","impliedFormat":1},{"version":"f63ab283a1c8f5c79fabe7ca4ef85f9633339c4f0e822fce6a767f9d59282af2","impliedFormat":1},{"version":"dba114fb6a32b355a9cfc26ca2276834d72fe0e94cd2c3494005547025015369","impliedFormat":1},{"version":"a54c996c8870ef1728a2c1fa9b8eaec0bf4a8001cd2583c02dd5869289465b10","impliedFormat":1},{"version":"3e7efde639c6a6c3edb9847b3f61e308bf7a69685b92f665048c45132f51c218","impliedFormat":1},{"version":"df45ca1176e6ac211eae7ddf51336dc075c5314bc5c253651bae639defd5eec5","impliedFormat":1},{"version":"3754982006a3b32c502cff0867ca83584f7a43b1035989ca73603f400de13c96","impliedFormat":1},{"version":"a30ae9bb8a8fa7b90f24b8a0496702063ae4fe75deb27da731ed4a03b2eb6631","impliedFormat":1},{"version":"f974e4a06953682a2c15d5bd5114c0284d5abf8bc0fe4da25cb9159427b70072","impliedFormat":1},{"version":"50256e9c31318487f3752b7ac12ff365c8949953e04568009c8705db802776fb","impliedFormat":1},{"version":"7d73b24e7bf31dfb8a931ca6c4245f6bb0814dfae17e4b60c9e194a631fe5f7b","impliedFormat":1},{"version":"413586add0cfe7369b64979d4ec2ed56c3f771c0667fbde1bf1f10063ede0b08","impliedFormat":1},{"version":"06472528e998d152375ad3bd8ebcb69ff4694fd8d2effaf60a9d9f25a37a097a","impliedFormat":1},{"version":"50b5bc34ce6b12eccb76214b51aadfa56572aa6cc79c2b9455cdbb3d6c76af1d","impliedFormat":1},{"version":"b7e16ef7f646a50991119b205794ebfd3a4d8f8e0f314981ebbe991639023d0e","impliedFormat":1},{"version":"42c169fb8c2d42f4f668c624a9a11e719d5d07dacbebb63cbcf7ef365b0a75b3","impliedFormat":1},{"version":"a401617604fa1f6ce437b81689563dfdc377069e4c58465dbd8d16069aede0a5","impliedFormat":1},{"version":"e9dd71cf12123419c60dab867d44fbee5c358169f99529121eaef277f5c83531","impliedFormat":1},{"version":"5b6a189ba3a0befa1f5d9cb028eb9eec2af2089c32f04ff50e2411f63d70f25d","impliedFormat":1},{"version":"d6e73f8010935b7b4c7487b6fb13ea197cc610f0965b759bec03a561ccf8423a","impliedFormat":1},{"version":"174f3864e398f3f33f9a446a4f403d55a892aa55328cf6686135dfaf9e171657","impliedFormat":1},{"version":"824c76aec8d8c7e65769688cbee102238c0ef421ed6686f41b2a7d8e7e78a931","impliedFormat":1},{"version":"75b868be3463d5a8cfc0d9396f0a3d973b8c297401d00bfb008a42ab16643f13","impliedFormat":1},{"version":"15a234e5031b19c48a69ccc1607522d6e4b50f57d308ecb7fe863d44cd9f9eb3","impliedFormat":1},{"version":"d682336018141807fb602709e2d95a192828fcb8d5ba06dda3833a8ea98f69e3","impliedFormat":1},{"version":"6124e973eab8c52cabf3c07575204efc1784aca6b0a30c79eb85fe240a857efa","impliedFormat":1},{"version":"0d891735a21edc75df51f3eb995e18149e119d1ce22fd40db2b260c5960b914e","impliedFormat":1},{"version":"3b414b99a73171e1c4b7b7714e26b87d6c5cb03d200352da5342ab4088a54c85","impliedFormat":1},{"version":"4fbd3116e00ed3a6410499924b6403cc9367fdca303e34838129b328058ede40","impliedFormat":1},{"version":"b01bd582a6e41457bc56e6f0f9de4cb17f33f5f3843a7cf8210ac9c18472fb0f","impliedFormat":1},{"version":"0a437ae178f999b46b6153d79095b60c42c996bc0458c04955f1c996dc68b971","impliedFormat":1},{"version":"74b2a5e5197bd0f2e0077a1ea7c07455bbea67b87b0869d9786d55104006784f","impliedFormat":1},{"version":"4a7baeb6325920044f66c0f8e5e6f1f52e06e6d87588d837bdf44feb6f35c664","impliedFormat":1},{"version":"6dcf60530c25194a9ee0962230e874ff29d34c59605d8e069a49928759a17e0a","impliedFormat":1},{"version":"7274fbffbd7c9589d8d0ffba68157237afd5cecff1e99881ea3399127e60572f","impliedFormat":1},{"version":"1a42d2ec31a1fe62fdc51591768695ed4a2dc64c01be113e7ff22890bebb5e3f","impliedFormat":1},{"version":"1a82deef4c1d39f6882f28d275cad4c01f907b9b39be9cbc472fcf2cf051e05b","impliedFormat":1},{"version":"c5426dbfc1cf90532f66965a7aa8c1136a78d4d0f96d8180ecbfc11d7722f1a5","impliedFormat":1},{"version":"65a15fc47900787c0bd18b603afb98d33ede930bed1798fc984d5ebb78b26cf9","impliedFormat":1},{"version":"9d202701f6e0744adb6314d03d2eb8fc994798fc83d91b691b75b07626a69801","impliedFormat":1},{"version":"de9d2df7663e64e3a91bf495f315a7577e23ba088f2949d5ce9ec96f44fba37d","impliedFormat":1},{"version":"c7af78a2ea7cb1cd009cfb5bdb48cd0b03dad3b54f6da7aab615c2e9e9d570c5","impliedFormat":1},{"version":"1ee45496b5f8bdee6f7abc233355898e5bf9bd51255db65f5ff7ede617ca0027","impliedFormat":1},{"version":"0c7c947ff881c4274c0800deaa0086971e0bfe51f89a33bd3048eaa3792d4876","affectsGlobalScope":true,"impliedFormat":1},{"version":"db01d18853469bcb5601b9fc9826931cc84cc1a1944b33cad76fd6f1e3d8c544","affectsGlobalScope":true,"impliedFormat":1},{"version":"a8f8e6ab2fa07b45251f403548b78eaf2022f3c2254df3dc186cb2671fe4996d","affectsGlobalScope":true,"impliedFormat":1},{"version":"fa6c12a7c0f6b84d512f200690bfc74819e99efae69e4c95c4cd30f6884c526e","impliedFormat":1},{"version":"f1c32f9ce9c497da4dc215c3bc84b722ea02497d35f9134db3bb40a8d918b92b","impliedFormat":1},{"version":"b73c319af2cc3ef8f6421308a250f328836531ea3761823b4cabbd133047aefa","affectsGlobalScope":true,"impliedFormat":1},{"version":"e433b0337b8106909e7953015e8fa3f2d30797cea27141d1c5b135365bb975a6","impliedFormat":1},{"version":"15b36126e0089bfef173ab61329e8286ce74af5e809d8a72edcafd0cc049057f","impliedFormat":1},{"version":"ddff7fc6edbdc5163a09e22bf8df7bef75f75369ebd7ecea95ba55c4386e2441","impliedFormat":1},{"version":"106c6025f1d99fd468fd8bf6e5bda724e11e5905a4076c5d29790b6c3745e50c","impliedFormat":1},{"version":"a57b1802794433adec9ff3fed12aa79d671faed86c49b09e02e1ac41b4f1d33a","impliedFormat":1},{"version":"ad10d4f0517599cdeca7755b930f148804e3e0e5b5a3847adce0f1f71bbccd74","impliedFormat":1},{"version":"1042064ece5bb47d6aba91648fbe0635c17c600ebdf567588b4ca715602f0a9d","impliedFormat":1},{"version":"c49469a5349b3cc1965710b5b0f98ed6c028686aa8450bcb3796728873eb923e","impliedFormat":1},{"version":"4a889f2c763edb4d55cb624257272ac10d04a1cad2ed2948b10ed4a7fda2a428","impliedFormat":1},{"version":"7bb79aa2fead87d9d56294ef71e056487e848d7b550c9a367523ee5416c44cfa","impliedFormat":1},{"version":"72d63643a657c02d3e51cd99a08b47c9b020a565c55f246907050d3c8a5e77fb","impliedFormat":1},{"version":"1d415445ea58f8033ba199703e55ff7483c52ac6742075b803bd3e7bbe9f5d61","impliedFormat":1},{"version":"d6406c629bb3efc31aedb2de809bef471e475c86c7e67f3ef9b676b5d7e0d6b2","impliedFormat":1},{"version":"27ff4196654e6373c9af16b6165120e2dd2169f9ad6abb5c935af5abd8c7938c","impliedFormat":1},{"version":"24428762d0c97b44c4784d28eee9556547167c4592d20d542a79243f7ca6a73f","impliedFormat":1},{"version":"8c030e515014c10a2b98f9f48408e3ba18023dfd3f56e3312c6c2f3ae1f55a16","impliedFormat":1},{"version":"dafc31e9e8751f437122eb8582b93d477e002839864410ff782504a12f2a550c","impliedFormat":1},{"version":"754498c5208ce3c5134f6eabd49b25cf5e1a042373515718953581636491f3c3","impliedFormat":1},{"version":"9c82171d836c47486074e4ca8e059735bf97b205e70b196535b5efd40cbe1bc5","impliedFormat":1},{"version":"f56bdc6884648806d34bc66d31cdb787c4718d04105ce2cd88535db214631f82","impliedFormat":1},{"version":"633d58a237f4bb25ec7d565e4ffa32cecdcee8660ac12189c4351c52557cee9e","impliedFormat":1},{"version":"2e4f37ffe8862b14d8e24ae8763daaa8340c0df0b859d9a9733def0eee7562d9","impliedFormat":1},{"version":"13283350547389802aa35d9f2188effaeac805499169a06ef5cd77ce2a0bd63f","impliedFormat":1},{"version":"ce791f6ea807560f08065d1af6014581eeb54a05abd73294777a281b6dfd73c2","impliedFormat":1},{"version":"6ac6715916fa75a1f7ebdfeacac09513b4d904b667d827b7535e84ff59679aff","impliedFormat":1},{"version":"49f95e989b4632c6c2a578cc0078ee19a5831832d79cc59abecf5160ea71abad","impliedFormat":1},{"version":"9666533332f26e8995e4d6fe472bdeec9f15d405693723e6497bf94120c566c8","impliedFormat":1},{"version":"ce0df82a9ae6f914ba08409d4d883983cc08e6d59eb2df02d8e4d68309e7848b","impliedFormat":1},{"version":"796273b2edc72e78a04e86d7c58ae94d370ab93a0ddf40b1aa85a37a1c29ecd7","impliedFormat":1},{"version":"5df15a69187d737d6d8d066e189ae4f97e41f4d53712a46b2710ff9f8563ec9f","impliedFormat":1},{"version":"e17cd049a1448de4944800399daa4a64c5db8657cc9be7ef46be66e2a2cd0e7c","impliedFormat":1},{"version":"43fa6ea8714e18adc312b30450b13562949ba2f205a1972a459180fa54471018","impliedFormat":1},{"version":"6e89c2c177347d90916bad67714d0fb473f7e37fb3ce912f4ed521fe2892cd0d","impliedFormat":1},{"version":"43ba4f2fa8c698f5c304d21a3ef596741e8e85a810b7c1f9b692653791d8d97a","impliedFormat":1},{"version":"4d4927cbee21750904af7acf940c5e3c491b4d5ebc676530211e389dd375607a","impliedFormat":1},{"version":"72105519d0390262cf0abe84cf41c926ade0ff475d35eb21307b2f94de985778","impliedFormat":1},{"version":"8a97e578a9bc40eb4f1b0ca78f476f2e9154ecbbfd5567ee72943bab37fc156a","impliedFormat":1},{"version":"c857e0aae3f5f444abd791ec81206020fbcc1223e187316677e026d1c1d6fe08","impliedFormat":1},{"version":"ccf6dd45b708fb74ba9ed0f2478d4eb9195c9dfef0ff83a6092fa3cf2ff53b4f","impliedFormat":1},{"version":"2d7db1d73456e8c5075387d4240c29a2a900847f9c1bff106a2e490da8fbd457","impliedFormat":1},{"version":"2b15c805f48e4e970f8ec0b1915f22d13ca6212375e8987663e2ef5f0205e832","impliedFormat":1},{"version":"f22d05663d873ee7a600faf78abb67f3f719d32266803440cf11d5db7ac0cab2","impliedFormat":1},{"version":"d93c544ad20197b3976b0716c6d5cd5994e71165985d31dcab6e1f77feb4b8f2","impliedFormat":1},{"version":"35069c2c417bd7443ae7c7cafd1de02f665bf015479fec998985ffbbf500628c","impliedFormat":1},{"version":"a8b1c79a833ee148251e88a2553d02ce1641d71d2921cce28e79678f3d8b96aa","impliedFormat":1},{"version":"126d4f950d2bba0bd45b3a86c76554d4126c16339e257e6d2fabf8b6bf1ce00c","impliedFormat":1},{"version":"7e0b7f91c5ab6e33f511efc640d36e6f933510b11be24f98836a20a2dc914c2d","impliedFormat":1},{"version":"045b752f44bf9bbdcaffd882424ab0e15cb8d11fa94e1448942e338c8ef19fba","impliedFormat":1},{"version":"2894c56cad581928bb37607810af011764a2f511f575d28c9f4af0f2ef02d1ab","impliedFormat":1},{"version":"0a72186f94215d020cb386f7dca81d7495ab6c17066eb07d0f44a5bf33c1b21a","impliedFormat":1},{"version":"2d3cc2211f352f46ea6b7cf2c751c141ffcdf514d6e7ae7ee20b7b6742da313f","impliedFormat":1},{"version":"c75445151ff8b77d9923191efed7203985b1a9e09eccf4b054e7be864e27923d","impliedFormat":1},{"version":"0aedb02516baf3e66b2c1db9fef50666d6ed257edac0f866ea32f1aa05aa474f","impliedFormat":1},{"version":"fa8a8fbf91ee2a4779496225f0312aac6635b0f21aa09cdafa4283fe32d519c5","affectsGlobalScope":true,"impliedFormat":1},{"version":"0e8aef93d79b000deb6ec336b5645c87de167168e184e84521886f9ecc69a4b5","impliedFormat":1},{"version":"56ccb49443bfb72e5952f7012f0de1a8679f9f75fc93a5c1ac0bafb28725fc5f","impliedFormat":1},{"version":"20fa37b636fdcc1746ea0738f733d0aed17890d1cd7cb1b2f37010222c23f13e","impliedFormat":1},{"version":"d90b9f1520366d713a73bd30c5a9eb0040d0fb6076aff370796bc776fd705943","impliedFormat":1},{"version":"bc03c3c352f689e38c0ddd50c39b1e65d59273991bfc8858a9e3c0ebb79c023b","impliedFormat":1},{"version":"19df3488557c2fc9b4d8f0bac0fd20fb59aa19dec67c81f93813951a81a867f8","affectsGlobalScope":true,"impliedFormat":1},{"version":"b25350193e103ae90423c5418ddb0ad1168dc9c393c9295ef34980b990030617","affectsGlobalScope":true,"impliedFormat":1},{"version":"bef86adb77316505c6b471da1d9b8c9e428867c2566270e8894d4d773a1c4dc2","impliedFormat":1},{"version":"de7052bfee2981443498239a90c04ea5cc07065d5b9bb61b12cb6c84313ad4ef","impliedFormat":1},{"version":"a3e7d932dc9c09daa99141a8e4800fc6c58c625af0d4bbb017773dc36da75426","impliedFormat":1},{"version":"43e96a3d5d1411ab40ba2f61d6a3192e58177bcf3b133a80ad2a16591611726d","impliedFormat":1},{"version":"4a2edd238d9104eac35b60d727f1123de5062f452b70ed8e0366cb36387dfdfd","impliedFormat":1},{"version":"ca921bf56756cb6fe957f6af693a35251b134fb932dc13f3dfff0bb7106f80b4","impliedFormat":1},{"version":"fee92c97f1aa59eb7098a0cc34ff4df7e6b11bae71526aca84359a2575f313d8","impliedFormat":1},{"version":"0bd0297484aacea217d0b76e55452862da3c5d9e33b24430e0719d1161657225","impliedFormat":1},{"version":"2ab6d334bcbf2aff3acfc4fd8c73ecd82b981d3c3aa47b3f3b89281772286904","impliedFormat":1},{"version":"d07cbc787a997d83f7bde3877fec5fb5b12ce8c1b7047eb792996ed9726b4dde","impliedFormat":1},{"version":"6ac6715916fa75a1f7ebdfeacac09513b4d904b667d827b7535e84ff59679aff","impliedFormat":1},{"version":"4805f6161c2c8cefb8d3b8bd96a080c0fe8dbc9315f6ad2e53238f9a79e528a6","impliedFormat":1},{"version":"b83cb14474fa60c5f3ec660146b97d122f0735627f80d82dd03e8caa39b4388c","impliedFormat":1},{"version":"f374cb24e93e7798c4d9e83ff872fa52d2cdb36306392b840a6ddf46cb925cb6","impliedFormat":1},{"version":"49179c6a23701c642bd99abe30d996919748014848b738d8e85181fc159685ff","impliedFormat":1},{"version":"b73cbf0a72c8800cf8f96a9acfe94f3ad32ca71342a8908b8ae484d61113f647","impliedFormat":1},{"version":"bae6dd176832f6423966647382c0d7ba9e63f8c167522f09a982f086cd4e8b23","impliedFormat":1},{"version":"20865ac316b8893c1a0cc383ccfc1801443fbcc2a7255be166cf90d03fac88c9","impliedFormat":1},{"version":"c9958eb32126a3843deedda8c22fb97024aa5d6dd588b90af2d7f2bfac540f23","impliedFormat":1},{"version":"461d0ad8ae5f2ff981778af912ba71b37a8426a33301daa00f21c6ccb27f8156","impliedFormat":1},{"version":"e927c2c13c4eaf0a7f17e6022eee8519eb29ef42c4c13a31e81a611ab8c95577","impliedFormat":1},{"version":"fcafff163ca5e66d3b87126e756e1b6dfa8c526aa9cd2a2b0a9da837d81bbd72","impliedFormat":1},{"version":"70246ad95ad8a22bdfe806cb5d383a26c0c6e58e7207ab9c431f1cb175aca657","impliedFormat":1},{"version":"f00f3aa5d64ff46e600648b55a79dcd1333458f7a10da2ed594d9f0a44b76d0b","impliedFormat":1},{"version":"772d8d5eb158b6c92412c03228bd9902ccb1457d7a705b8129814a5d1a6308fc","impliedFormat":1},{"version":"45490817629431853543adcb91c0673c25af52a456479588b6486daba34f68bb","impliedFormat":1},{"version":"802e797bcab5663b2c9f63f51bdf67eff7c41bc64c0fd65e6da3e7941359e2f7","impliedFormat":1},{"version":"8b4327413e5af38cd8cb97c59f48c3c866015d5d642f28518e3a891c469f240e","impliedFormat":1},{"version":"8514c62ce38e58457d967e9e73f128eedc1378115f712b9eef7127f7c88f82ae","impliedFormat":1},{"version":"f1289e05358c546a5b664fbb35a27738954ec2cc6eb4137350353099d154fc62","impliedFormat":1},{"version":"4b20fcf10a5413680e39f5666464859fc56b1003e7dfe2405ced82371ebd49b6","impliedFormat":1},{"version":"1d17ba45cfbe77a9c7e0df92f7d95f3eefd49ee23d1104d0548b215be56945ad","impliedFormat":1},{"version":"f7d628893c9fa52ba3ab01bcb5e79191636c4331ee5667ecc6373cbccff8ae12","impliedFormat":1},{"version":"1d879125d1ec570bf04bc1f362fdbe0cb538315c7ac4bcfcdf0c1e9670846aa6","impliedFormat":1},{"version":"9f5a0f3ed33e363b7393223ba4f4af15c13ce94fe3dbdaa476afd2437553a7dd","impliedFormat":1},{"version":"46273e8c29816125d0d0b56ce9a849cc77f60f9a5ba627447501d214466f0ff3","impliedFormat":1},{"version":"d663134457d8d669ae0df34eabd57028bddc04fc444c4bc04bc5215afc91e1f4","impliedFormat":1},{"version":"985153f0deb9b4391110331a2f0c114019dbea90cba5ca68a4107700796e0d75","impliedFormat":1},{"version":"3af3584f79c57853028ef9421ec172539e1fe01853296dc05a9d615ade4ffaf6","impliedFormat":1},{"version":"f82579d87701d639ff4e3930a9b24f4ee13ca74221a9a3a792feb47f01881a9c","impliedFormat":1},{"version":"d7e5d5245a8ba34a274717d085174b2c9827722778129b0081fefd341cca8f55","impliedFormat":1},{"version":"d9d32f94056181c31f553b32ce41d0ef75004912e27450738d57efcd2409c324","impliedFormat":1},{"version":"752513f35f6cff294ffe02d6027c41373adf7bfa35e593dbfd53d95c203635ee","impliedFormat":1},{"version":"6c800b281b9e89e69165fd11536195488de3ff53004e55905e6c0059a2d8591e","impliedFormat":1},{"version":"7d4254b4c6c67a29d5e7f65e67d72540480ac2cfb041ca484847f5ae70480b62","impliedFormat":1},{"version":"1a7e2ea171726446850ec72f4d1525d547ff7e86724cc9e7eec509725752a758","impliedFormat":1},{"version":"8c901126d73f09ecdea4785e9a187d1ac4e793e07da308009db04a7283ec2f37","impliedFormat":1},{"version":"db97922b767bd2675fdfa71e08b49c38b7d2c847a1cc4a7274cb77be23b026f1","impliedFormat":1},{"version":"aab290b8e4b7c399f2c09b957666fc95335eb4522b2dd9ead1bf0cb64da6d6ee","impliedFormat":1},{"version":"94fe3281392e1015b22f39535878610b4fa6f1388dc8d78746be3bc4e4bb8950","impliedFormat":1},{"version":"2652448ac55a2010a1f71dd141f828b682298d39728f9871e1cdf8696ef443fd","impliedFormat":1},{"version":"06c25ddfc2242bd06c19f66c9eae4c46d937349a267810f89783680a1d7b5259","impliedFormat":1},{"version":"120599fd965257b1f4d0ff794bc696162832d9d8467224f4665f713a3119078b","impliedFormat":1},{"version":"5433f33b0a20300cca35d2f229a7fc20b0e8477c44be2affeb21cb464af60c76","impliedFormat":1},{"version":"db036c56f79186da50af66511d37d9fe77fa6793381927292d17f81f787bb195","impliedFormat":1},{"version":"bd4131091b773973ca5d2326c60b789ab1f5e02d8843b3587effe6e1ea7c9d86","impliedFormat":1},{"version":"c7f6485931085bf010fbaf46880a9b9ec1a285ad9dc8c695a9e936f5a48f34b4","impliedFormat":1},{"version":"14f6b927888a1112d662877a5966b05ac1bf7ed25d6c84386db4c23c95a5363b","impliedFormat":1},{"version":"6ac6715916fa75a1f7ebdfeacac09513b4d904b667d827b7535e84ff59679aff","impliedFormat":1},{"version":"0427df5c06fafc5fe126d14b9becd24160a288deff40e838bfbd92a35f8d0d00","impliedFormat":1},{"version":"90c54a02432d04e4246c87736e53a6a83084357acfeeba7a489c5422b22f5c7a","impliedFormat":1},{"version":"49c346823ba6d4b12278c12c977fb3a31c06b9ca719015978cb145eb86da1c61","impliedFormat":1},{"version":"bfac6e50eaa7e73bb66b7e052c38fdc8ccfc8dbde2777648642af33cf349f7f1","impliedFormat":1},{"version":"92f7c1a4da7fbfd67a2228d1687d5c2e1faa0ba865a94d3550a3941d7527a45d","impliedFormat":1},{"version":"f53b120213a9289d9a26f5af90c4c686dd71d91487a0aa5451a38366c70dc64b","impliedFormat":1},{"version":"83fe880c090afe485a5c02262c0b7cdd76a299a50c48d9bde02be8e908fb4ae6","impliedFormat":1},{"version":"0a372c2d12a259da78e21b25974d2878502f14d89c6d16b97bd9c5017ab1bc12","impliedFormat":1},{"version":"57d67b72e06059adc5e9454de26bbfe567d412b962a501d263c75c2db430f40e","impliedFormat":1},{"version":"6511e4503cf74c469c60aafd6589e4d14d5eb0a25f9bf043dcbecdf65f261972","impliedFormat":1},{"version":"ec1ca97598eda26b7a5e6c8053623acbd88e43be7c4d29c77ccd57abc4c43999","impliedFormat":1},{"version":"6e2261cd9836b2c25eecb13940d92c024ebed7f8efe23c4b084145cd3a13b8a6","impliedFormat":1},{"version":"a67b87d0281c97dfc1197ef28dfe397fc2c865ccd41f7e32b53f647184cc7307","impliedFormat":1},{"version":"771ffb773f1ddd562492a6b9aaca648192ac3f056f0e1d997678ff97dbb6bf9b","impliedFormat":1},{"version":"232f70c0cf2b432f3a6e56a8dc3417103eb162292a9fd376d51a3a9ea5fbbf6f","impliedFormat":1},{"version":"a47e6d954d22dd9ebb802e7e431b560ed7c581e79fb885e44dc92ed4f60d4c07","impliedFormat":1},{"version":"f019e57d2491c159d47a107fd90219a1734bdd2e25cd8d1db3c8fae5c6b414c4","impliedFormat":1},{"version":"8a0e762ceb20c7e72504feef83d709468a70af4abccb304f32d6b9bac1129b2c","impliedFormat":1},{"version":"d1c9bf292a54312888a77bb19dba5e2503ad803f5393beafd45d78d2f4fe9b48","impliedFormat":1},{"version":"9252d498a77517aab5d8d4b5eb9d71e4b225bbc7123df9713e08181de63180f6","impliedFormat":1},{"version":"cb8d8ef7b9ce8ed3e6f1c814fcbf3f90dab0cb8863079236784fc350746e27c4","impliedFormat":1},{"version":"35e6379c3f7cb27b111ad4c1aa69538fd8e788ab737b8ff7596a1b40e96f4f90","impliedFormat":1},{"version":"1fffe726740f9787f15b532e1dc870af3cd964dbe29e191e76121aa3dd8693f2","impliedFormat":1},{"version":"3be035da7bee86b4c3abf392e0edaa44fc6e45092995eefe36b39118c8a84068","affectsGlobalScope":true,"impliedFormat":1},{"version":"8f828825d077c2fa0ea606649faeb122749273a353daab23924fe674e98ba44c","impliedFormat":1},{"version":"2896c2e673a5d3bd9b4246811f79486a073cbb03950c3d252fba10003c57411a","impliedFormat":1},{"version":"616775f16134fa9d01fc677ad3f76e68c051a056c22ab552c64cc281a9686790","impliedFormat":1},{"version":"65c24a8baa2cca1de069a0ba9fba82a173690f52d7e2d0f1f7542d59d5eb4db0","impliedFormat":1},{"version":"f9fe6af238339a0e5f7563acee3178f51db37f32a2e7c09f85273098cee7ec49","impliedFormat":1},{"version":"407a06ba04eede4074eec470ecba2784cbb3bf4e7de56833b097dd90a2aa0651","impliedFormat":1},{"version":"77e71242e71ebf8528c5802993697878f0533db8f2299b4d36aa015bae08a79c","impliedFormat":1},{"version":"98a787be42bd92f8c2a37d7df5f13e5992da0d967fab794adbb7ee18370f9849","impliedFormat":1},{"version":"5c96bad5f78466785cdad664c056e9e2802d5482ca5f862ed19ba34ffbb7b3a4","impliedFormat":1},{"version":"81d8603ac527e75cfec72bb9391228b58f161c2b33514a9d814c7f3ebd3ef466","impliedFormat":1},{"version":"5f3dc10ae646f375776b4e028d2bed039a93eebbba105694d8b910feebbe8b9c","impliedFormat":1},{"version":"bb0cd7862b72f5eba39909c9889d566e198fcaddf7207c16737d0c2246112678","impliedFormat":1},{"version":"4545c1a1ceca170d5d83452dd7c4994644c35cf676a671412601689d9a62da35","impliedFormat":1},{"version":"320f4091e33548b554d2214ce5fc31c96631b513dffa806e2e3a60766c8c49d9","impliedFormat":1},{"version":"a2d648d333cf67b9aeac5d81a1a379d563a8ffa91ddd61c6179f68de724260ff","impliedFormat":1},{"version":"d90d5f524de38889d1e1dbc2aeef00060d779f8688c02766ddb9ca195e4a713d","impliedFormat":1},{"version":"a3f41ed1b4f2fc3049394b945a68ae4fdefd49fa1739c32f149d32c0545d67f5","impliedFormat":1},{"version":"bad68fd0401eb90fe7da408565c8aee9c7a7021c2577aec92fa1382e8876071a","impliedFormat":1},{"version":"47699512e6d8bebf7be488182427189f999affe3addc1c87c882d36b7f2d0b0e","impliedFormat":1},{"version":"fec01479923e169fb52bd4f668dbeef1d7a7ea6e6d491e15617b46f2cacfa37d","impliedFormat":1},{"version":"8a8fb3097ba52f0ae6530ec6ab34e43e316506eb1d9aa29420a4b1e92a81442d","impliedFormat":1},{"version":"44e09c831fefb6fe59b8e65ad8f68a7ecc0e708d152cfcbe7ba6d6080c31c61e","impliedFormat":1},{"version":"1c0a98de1323051010ce5b958ad47bc1c007f7921973123c999300e2b7b0ecc0","impliedFormat":1},{"version":"4655709c9cb3fd6db2b866cab7c418c40ed9533ce8ea4b66b5f17ec2feea46a9","impliedFormat":1},{"version":"87affad8e2243635d3a191fa72ef896842748d812e973b7510a55c6200b3c2a4","impliedFormat":1},{"version":"ad036a85efcd9e5b4f7dd5c1a7362c8478f9a3b6c3554654ca24a29aa850a9c5","impliedFormat":1},{"version":"fedebeae32c5cdd1a85b4e0504a01996e4a8adf3dfa72876920d3dd6e42978e7","impliedFormat":1},{"version":"3eecb25bb467a948c04874d70452b14ae7edb707660aac17dc053e42f2088b00","impliedFormat":1},{"version":"cdf21eee8007e339b1b9945abf4a7b44930b1d695cc528459e68a3adc39a622e","impliedFormat":1},{"version":"330896c1a2b9693edd617be24fbf9e5895d6e18c7955d6c08f028f272b37314d","impliedFormat":1},{"version":"1d9c0a9a6df4e8f29dc84c25c5aa0bb1da5456ebede7a03e03df08bb8b27bae6","impliedFormat":1},{"version":"84380af21da938a567c65ef95aefb5354f676368ee1a1cbb4cae81604a4c7d17","impliedFormat":1},{"version":"1af3e1f2a5d1332e136f8b0b95c0e6c0a02aaabd5092b36b64f3042a03debf28","impliedFormat":1},{"version":"30d8da250766efa99490fc02801047c2c6d72dd0da1bba6581c7e80d1d8842a4","impliedFormat":1},{"version":"03566202f5553bd2d9de22dfab0c61aa163cabb64f0223c08431fb3fc8f70280","impliedFormat":1},{"version":"5f0292a40df210ab94b9fb44c8b775c51e96777e14e073900e392b295ca1061b","impliedFormat":1},{"version":"bc9ee0192f056b3d5527bcd78dc3f9e527a9ba2bdc0a2c296fbc9027147df4b2","impliedFormat":1},{"version":"8627ad129bcf56e82adff0ab5951627c993937aa99f5949c33240d690088b803","impliedFormat":1},{"version":"1de80059b8078ea5749941c9f863aa970b4735bdbb003be4925c853a8b6b4450","impliedFormat":1},{"version":"1d079c37fa53e3c21ed3fa214a27507bda9991f2a41458705b19ed8c2b61173d","impliedFormat":1},{"version":"5bf5c7a44e779790d1eb54c234b668b15e34affa95e78eada73e5757f61ed76a","impliedFormat":1},{"version":"5835a6e0d7cd2738e56b671af0e561e7c1b4fb77751383672f4b009f4e161d70","impliedFormat":1},{"version":"5c634644d45a1b6bc7b05e71e05e52ec04f3d73d9ac85d5927f647a5f965181a","impliedFormat":1},{"version":"4b7f74b772140395e7af67c4841be1ab867c11b3b82a51b1aeb692822b76c872","impliedFormat":1},{"version":"27be6622e2922a1b412eb057faa854831b95db9db5035c3f6d4b677b902ab3b7","impliedFormat":1},{"version":"a68d4b3182e8d776cdede7ac9630c209a7bfbb59191f99a52479151816ef9f9e","impliedFormat":99},{"version":"39644b343e4e3d748344af8182111e3bbc594930fff0170256567e13bbdbebb0","impliedFormat":99},{"version":"ed7fd5160b47b0de3b1571c5c5578e8e7e3314e33ae0b8ea85a895774ee64749","impliedFormat":99},{"version":"63a7595a5015e65262557f883463f934904959da563b4f788306f699411e9bac","impliedFormat":1},{"version":"ecbaf0da125974be39c0aac869e403f72f033a4e7fd0d8cd821a8349b4159628","impliedFormat":1},{"version":"4ba137d6553965703b6b55fd2000b4e07ba365f8caeb0359162ad7247f9707a6","impliedFormat":1},{"version":"ceec3c81b2d81f5e3b855d9367c1d4c664ab5046dff8fd56552df015b7ccbe8f","affectsGlobalScope":true,"impliedFormat":1},{"version":"8fac4a15690b27612d8474fb2fc7cc00388df52d169791b78d1a3645d60b4c8b","affectsGlobalScope":true,"impliedFormat":1},{"version":"064ac1c2ac4b2867c2ceaa74bbdce0cb6a4c16e7c31a6497097159c18f74aa7c","impliedFormat":1},{"version":"3dc14e1ab45e497e5d5e4295271d54ff689aeae00b4277979fdd10fa563540ae","impliedFormat":1},{"version":"1d63055b690a582006435ddd3aa9c03aac16a696fac77ce2ed808f3e5a06efab","impliedFormat":1},{"version":"b789bf89eb19c777ed1e956dbad0925ca795701552d22e68fd130a032008b9f9","impliedFormat":1},"85ae5aee75f011967cf2d25cbc342f62d69314e9d925f7f4aa3456fc2cffcca6",{"version":"e7ef8a4c4ce8d7e64b239745986088dd8d0aa9a1932a3d626dc353a2edaf944e","signature":"fe30465f81a37f23a168022109187dbd1951404e3ec2fbc6516d584c597f1325"},{"version":"402e5c534fb2b85fa771170595db3ac0dd532112c8fa44fc23f233bc6967488b","impliedFormat":1},{"version":"8885cf05f3e2abf117590bbb951dcf6359e3e5ac462af1c901cfd24c6a6472e2","impliedFormat":1},{"version":"333caa2bfff7f06017f114de738050dd99a765c7eb16571c6d25a38c0d5365dc","impliedFormat":1},{"version":"e61df3640a38d535fd4bc9f4a53aef17c296b58dc4b6394fd576b808dd2fe5e6","impliedFormat":1},{"version":"459920181700cec8cbdf2a5faca127f3f17fd8dd9d9e577ed3f5f3af5d12a2e4","impliedFormat":1},{"version":"4719c209b9c00b579553859407a7e5dcfaa1c472994bd62aa5dd3cc0757eb077","impliedFormat":1},{"version":"7ec359bbc29b69d4063fe7dad0baaf35f1856f914db16b3f4f6e3e1bca4099fa","impliedFormat":1},{"version":"70790a7f0040993ca66ab8a07a059a0f8256e7bb57d968ae945f696cbff4ac7a","impliedFormat":1},{"version":"d1b9a81e99a0050ca7f2d98d7eedc6cda768f0eb9fa90b602e7107433e64c04c","impliedFormat":1},{"version":"a022503e75d6953d0e82c2c564508a5c7f8556fad5d7f971372d2d40479e4034","impliedFormat":1},{"version":"b215c4f0096f108020f666ffcc1f072c81e9f2f95464e894a5d5f34c5ea2a8b1","impliedFormat":1},{"version":"644491cde678bd462bb922c1d0cfab8f17d626b195ccb7f008612dc31f445d2d","impliedFormat":1},{"version":"dfe54dab1fa4961a6bcfba68c4ca955f8b5bbeb5f2ab3c915aa7adaa2eabc03a","impliedFormat":1},{"version":"1251d53755b03cde02466064260bb88fd83c30006a46395b7d9167340bc59b73","impliedFormat":1},{"version":"47865c5e695a382a916b1eedda1b6523145426e48a2eae4647e96b3b5e52024f","impliedFormat":1},{"version":"4cdf27e29feae6c7826cdd5c91751cc35559125e8304f9e7aed8faef97dcf572","impliedFormat":1},{"version":"331b8f71bfae1df25d564f5ea9ee65a0d847c4a94baa45925b6f38c55c7039bf","impliedFormat":1},{"version":"2a771d907aebf9391ac1f50e4ad37952943515eeea0dcc7e78aa08f508294668","impliedFormat":1},{"version":"0146fd6262c3fd3da51cb0254bb6b9a4e42931eb2f56329edd4c199cb9aaf804","impliedFormat":1},{"version":"183f480885db5caa5a8acb833c2be04f98056bdcc5fb29e969ff86e07efe57ab","impliedFormat":99},{"version":"b558c9a18ea4e6e4157124465c3ef1063e64640da139e67be5edb22f534f2f08","impliedFormat":1},{"version":"01374379f82be05d25c08d2f30779fa4a4c41895a18b93b33f14aeef51768692","impliedFormat":1},{"version":"b0dee183d4e65cf938242efaf3d833c6b645afb35039d058496965014f158141","impliedFormat":1},{"version":"c0bbbf84d3fbd85dd60d040c81e8964cc00e38124a52e9c5dcdedf45fea3f213","impliedFormat":1},{"version":"a8fea0afda116f92dbda669c1c44b9f0a7114c6d40f0e3da0c98da755472794f","signature":"5d3e708aa0bdf8f3653d9c4e01ac60d284d0e0c3279ec34f07fa2c0cabe15a65"},{"version":"674c7eb70201c86688bd9c90664b1147ea6218720b32d7a6c904745af0b27090","impliedFormat":1},{"version":"8e4700674ad62fac98d09b86eb547acec82d101ade37a291881e7f7587923a15","impliedFormat":1},{"version":"1348bbc02892926fd4ccec78d25311f20345262d2a9e0cc07d9f8972c8f42174","impliedFormat":1},{"version":"aa4fc83ad40a34b0429b1e3e666426161576c6e3f44761bd28a374f904a1a762","impliedFormat":1},{"version":"3f3bd35f731b30c26d859c71594a416cc9e00f5ad644a19213090f7b1d0d7c36","impliedFormat":1},{"version":"d38338f31b0efc8b86bbc1dd914752236eba3f25ba89d74e391de30ab9171b49","impliedFormat":1},{"version":"2419eac32fe41d4d3a69b5ee38b954e38fa9c7fa95864266f1690ecf368f9e64","impliedFormat":1},{"version":"c0842aafa82fc4a4f44f23c1397ebabe249b6b716b383b005e43f8865760a0da","impliedFormat":1},{"version":"80636829e2be5ace8b032e2cf9de790a6e42e9f2b7cceed1022627c656b88828","impliedFormat":1},{"version":"965b69c16441ebcc3c5e6419635fdf6e90b76fb1ba0c67674c56e46739e9f678","impliedFormat":1},{"version":"da4b735f05554bd552794a44da82cdab57355e30ff2d07e696f2783f7a441f99","impliedFormat":1},{"version":"1f3913db835388e9b268186c9ba714217ec285590e9a737422024af397e95cf2","impliedFormat":1},{"version":"457077f7ffba66d48690c5e60952a773fddcd3d2563c90be65725d1e40015fec","impliedFormat":1},{"version":"ef9fa75c9d2968c3e3e395dc5c6e7bb20ddb918c298f3cbdd105cc213e1b9da0","impliedFormat":1},{"version":"116c9a0cc59c705bcfeef8c8f3155ac0e4b5cd50685e919fffda75b6845ff369","impliedFormat":1},{"version":"2cfe7b47c82c6714a28b660f5f27dd4a04c49a0d0a5cb2715247b70ea010787e","impliedFormat":1},{"version":"3ecd5fcc7c91da5613f6797095ed9aed0ba340e2b63d039e22461bb2ceaf38ba","impliedFormat":1},{"version":"30c37e08950538b20f5b42565fd904ebb235d74b179d0c8727fee6bbc7e53756","impliedFormat":1},{"version":"46d1cce61f43632d5484147de2e531e4e6f3decadb938767afaac6d4ad48f3f0","impliedFormat":1},{"version":"eb22b907cbbbdc86a48d358780dd9e7684d6895c3e05c4c46b65d045b78ebd4f","impliedFormat":1},{"version":"d67dc5e23c916fc65565d4e6d7456c76af6bc6cdf54c4510e87c6de6c791d584","impliedFormat":1},{"version":"6a2d4776d583dd135d3cddbd3a0bb60323cfb54945a922a965694345170d0a94","impliedFormat":1},{"version":"d560855bb971097afb67ea5e970ee82f38f05e16dd680ce8f712f725b17cba61","impliedFormat":1},{"version":"2dc9e32dd4230e4955cb34cb7c32a24256c60c9d263850a8db637aeb4a02d618","impliedFormat":1},{"version":"6c55a1fc5b617b7ad71be2085ce47be425c6f100da9a4d8ebe367f8fd5c84bfb","impliedFormat":1},{"version":"7f9fbf07164ee07aae3f3c0270e8d3a35780ddeace936c7f5f4c2eb846dd1b33","impliedFormat":1},{"version":"1be686292b6f54921b6296c298552c3a2eab17a1db3552f6d54fffa924e4a052","impliedFormat":1},{"version":"a3d3f3350ce88b0e728128785c1815bc9318d375dc831dca6c13bb3902c136c8","impliedFormat":1},{"version":"3aac37c3297fdce42a910675ab7b2a5beaa81eee279dcbf272da75da615a62fa","impliedFormat":1},{"version":"27c7ad8ee760d7984401bc41b37990b1bbe9f4cc1d0c41605fdafaad737468ee","impliedFormat":1},{"version":"18281f6c69238de24990f2f1ec1d7bc96cbd24b97942177f2b1b5787be2786f5","impliedFormat":1},{"version":"2d3a116ea1485d5a264f7a18edbd30d153810aad0e84b35ddff9db0e307a2c34","impliedFormat":1},{"version":"8bb90bfac65d99b28501d6a9056093987a02c47a090077c2630cea2aa8c4b4be","impliedFormat":1},{"version":"aea225adc054b60f3120f7fe30e6af13d141cf8f78d3c1719bd1f4113e287002","impliedFormat":1},{"version":"3bca4a3da764f502823c800c6c17f030af618282d2592e1b97ad878f89b7bc37","impliedFormat":1},{"version":"730a653236078d442c8b785d862e1cd7a4114e6ed2ddccaae637cef3ef8ca2e9","impliedFormat":1},{"version":"42455de16362a4be2acd8f658d22dabfb2d112d1376988f72e8641609806b420","impliedFormat":1},{"version":"7fe66db0fc67afec6be32695e96bec1b1f9b1276dc3420af5b771ba496568769","impliedFormat":1},{"version":"d2edd4dd24d94d1c21c8cfe045ae38a7e6d7a7fadf59cf465f1216e6266e5368","impliedFormat":1},{"version":"2574fd0df641e78924e640d4e61194a74d5626ee6900b9d0023cbeeb472a5b13","impliedFormat":1},{"version":"7deec31e838e791429f1fb32a219492feeaa11edb2b39d14ab16ec3dfb349714","impliedFormat":1},{"version":"8c5b0714e924e855865dd314e03fc130c70d0ddffd0fd51ede2d068fb3d8d83c","impliedFormat":1},{"version":"f681f30a6352d24bc59c8e7e9072f9bf7a7e1d882976762b1906e5b58aa1ad6c","impliedFormat":1},{"version":"524fdee43d764d038a8aaa216b7546e24185b59ceb56540f1e3c84e5578dcb52","impliedFormat":1},{"version":"79ae49eaec49a61f0b66a8790778c7987dbde4db32dc5b7dc34683574abbbdf9","impliedFormat":1},{"version":"515f8a7f87649d51e4a6e98e874faefd9b079449d8da8cde4e030dca6b1261ff","impliedFormat":1},{"version":"84f59efa9d23ffe27c8ae204aa9961f93924a119b1655c087f6a58c9f2856955","impliedFormat":1},{"version":"b55849761d402ce9ed68940862a427a03873a3ca0f1b90ed122b81a16f1ad85d","impliedFormat":1},{"version":"55c87a423a295426b2b6d71d352aa8d6ac6f02e1256ec826f94a7fce7c676d71","impliedFormat":1},{"version":"44b95e2f3ca8b973a6de1542a9b5f306217c08b040cd9013e5d225af2f4c11e7","impliedFormat":1},{"version":"132f1f5b1af8db7dcb4a2449a388d7877ba436c9fc89ed393ee59757b5f6d3a7","impliedFormat":1},{"version":"9475ae70c6e9ee43c88b8a0f361f22b07bffb056ad8db85f490be995333f7314","impliedFormat":1},{"version":"ec3b8e9ef082b58fdaa0fae703ba4ea8ce92b11dbf75c6cdff33bce917b03433","impliedFormat":1},{"version":"efc98e9a33527ad1fd106c788b8fc4dfd1e31eb1e07620aea0a8566c80b96e9c","impliedFormat":1},{"version":"8e370c682eb832fd7f1089210bbe778a676a93ac1783a57ba5914165947ba709","impliedFormat":1},{"version":"a97c0b03a36e25d4ddede9ccaff5b99362928f541c10599054df40606a058729","impliedFormat":1},{"version":"2c22cac2211d4864e18b4315344df482e2707753e20b3d364c57cb3417551cdd","impliedFormat":1},{"version":"bfc1544b179dd81b39d9d95084b9d113dd3f57ae89e5a785bf5b491145237a83","impliedFormat":1},{"version":"ad71621fa5b8cec080eded63266663c7a8101d38ba537270178863a09491906d","impliedFormat":1},{"version":"937c4e0705f14babec41da7f6ad44766c4670c3fd63da539a46da33968d85e7b","impliedFormat":1},{"version":"fdc7cae312825d717b71fa2f323d23ddbe6be8d5eb6ed7a9ba4a4e5c1a777cf5","impliedFormat":1},{"version":"80b66fdc7a2cf1e34cda693f8266a1265f3863758b70c9665d395a3db3c8b808","impliedFormat":1},{"version":"89c0a8be33c5799c5092b6f3d4581a308a20585b5361f16f09fd5cac78cbc283","signature":"8df78618259414569f9647e69db597204bdb6ef74f529a49e4ec8a76420ccbef"},{"version":"2781a1b1c3a01b52f5811d113d6f3b6e70907f5f715d9e5a5978d809eeabb0cc","signature":"0c1fa1072238ee9cf8e9ebe8a5f70cd9874a40a4c79c14d16360ddc37e846175"},{"version":"5b31e282717cbe2a432237e228c0406ec27e040510932c7114c069b253227aaf","signature":"aa29a585c28740119ed2d7d9dd4d3a609eb3dbf50873d1c10d8845d3116875b6"},{"version":"8eed1785ff5e33b58bf8069cfdab5966b897de8fd1942a12c6c3b720971acba3","signature":"b1e4ed662d5c64bbbf9fce485778d62c66fd37e8c035196b12eaf80816476aa2"},{"version":"ac4051044c519641dee0dfdbd53ed7d37a4c3d5c5231b02ea2cc06b5b9d8ded0","signature":"a55269136d24bef8edf9356112a7af71c818317bac7060ae56525adac8402b9d"},{"version":"b13d5fe7f3a81d347f34e48271d10cd44095035a5d7976670f94dd041ca4d22a","signature":"000a968d1cd0546ac81a3ecee25a8e19de7ad301716fbf045dc63a864b4e0b02"},{"version":"a3b073e49119d69d6a4bece47ca8181dd287a61842204d2e9d1cf1bba7220340","signature":"3e2a8fa0d42036522d9a12b87fc8a77776eea8b57a99b0ab27ffb8a559f1c73f"},{"version":"d3cfde44f8089768ebb08098c96d01ca260b88bccf238d55eee93f1c620ff5a5","impliedFormat":1},{"version":"293eadad9dead44c6fd1db6de552663c33f215c55a1bfa2802a1bceed88ff0ec","impliedFormat":1},{"version":"833e92c058d033cde3f29a6c7603f517001d1ddd8020bc94d2067a3bc69b2a8e","impliedFormat":1},{"version":"08b2fae7b0f553ad9f79faec864b179fc58bc172e295a70943e8585dd85f600c","impliedFormat":1},{"version":"f12edf1672a94c578eca32216839604f1e1c16b40a1896198deabf99c882b340","impliedFormat":1},{"version":"e3498cf5e428e6c6b9e97bd88736f26d6cf147dedbfa5a8ad3ed8e05e059af8a","impliedFormat":1},{"version":"dba3f34531fd9b1b6e072928b6f885aa4d28dd6789cbd0e93563d43f4b62da53","impliedFormat":1},{"version":"f672c876c1a04a223cf2023b3d91e8a52bb1544c576b81bf64a8fec82be9969c","impliedFormat":1},{"version":"e4b03ddcf8563b1c0aee782a185286ed85a255ce8a30df8453aade2188bbc904","impliedFormat":1},{"version":"2329d90062487e1eaca87b5e06abcbbeeecf80a82f65f949fd332cfcf824b87b","impliedFormat":1},{"version":"25b3f581e12ede11e5739f57a86e8668fbc0124f6649506def306cad2c59d262","impliedFormat":1},{"version":"4fdb529707247a1a917a4626bfb6a293d52cd8ee57ccf03830ec91d39d606d6d","impliedFormat":1},{"version":"a9ebb67d6bbead6044b43714b50dcb77b8f7541ffe803046fdec1714c1eba206","impliedFormat":1},{"version":"5780b706cece027f0d4444fbb4e1af62dc51e19da7c3d3719f67b22b033859b9","impliedFormat":1},{"version":"07dd9fe09fcbad897b9bc8c41a5829a30cf0e27fb518ad769de7402f97852cf3","signature":"3f63542909caadf3fba138929225071a1c004735a30c34f5cb28bf972e02ab82"},{"version":"7f1580eeb62288ac6be50b97192394b37233f37a24e99f4be177fa1ae8f9ee67","signature":"c7b3cb74e1f56cfd03d27f950d7ffa9f1090c1ffc5d46f92e4d1c7c9eecb80fb"},{"version":"bc72e9b2bd0d7ceb7e8f945d776a69d169ca73a40278177a4950a40e6682b1b8","signature":"23689f4d03b3f89b447189155894591aaa573d510c5d3e7689938410aca1f44e"},{"version":"f3d8c757e148ad968f0d98697987db363070abada5f503da3c06aefd9d4248c1","impliedFormat":1},{"version":"a93daf9245e2e7a8db7055312db5d9aae6d2ac69c20e433a521f69c16c04c5ae","impliedFormat":1},{"version":"e91013ea9bf651a1671f143cc1cfb805afc80e954e18168f7ca1f1f38703e187","impliedFormat":1},{"version":"25947a3f4ce1016a8f967ccaf83a2f2229e15844bc78d4b63a4f7df9e98ecb05","impliedFormat":1},{"version":"a4e9e0d92dcad2cb387a5f1bdffe621569052f2d80186e11973aa7080260d296","impliedFormat":1},{"version":"f6380cc36fc3efc70084d288d0a05d0a2e09da012ee3853f9d62431e7216f129","impliedFormat":1},{"version":"497c3e541b4acf6c5d5ba75b03569cfe5fe25c8a87e6c87f1af98da6a3e7b918","impliedFormat":1},{"version":"d9429b81edf2fb2abf1e81e9c2e92615f596ed3166673d9b69b84c369b15fdc0","impliedFormat":1},{"version":"7e22943ae4e474854ca0695ab750a8026f55bb94278331fda02a4fb42efce063","impliedFormat":1},{"version":"7da9ff3d9a7e62ddca6393a23e67296ab88f2fcb94ee5f7fb977fa8e478852ac","impliedFormat":1},{"version":"e1b45cc21ea200308cbc8abae2fb0cfd014cb5b0e1d1643bcc50afa5959b6d83","impliedFormat":1},{"version":"c9740b0ce7533ce6ba21a7d424e38d2736acdddeab2b1a814c00396e62cc2f10","impliedFormat":1},{"version":"b3c1f6a3fdbb04c6b244de6d5772ffdd9e962a2faea1440e410049c13e874b87","impliedFormat":1},{"version":"dcaa872d9b52b9409979170734bdfd38f846c32114d05b70640fd05140b171bb","impliedFormat":1},{"version":"6c434d20da381fcd2e8b924a3ec9b8653cf8bed8e0da648e91f4c984bd2a5a91","impliedFormat":1},{"version":"992419d044caf6b14946fa7b9463819ab2eeb7af7c04919cc2087ce354c92266","impliedFormat":1},{"version":"fa9815e9ce1330289a5c0192e2e91eb6178c0caa83c19fe0c6a9f67013fe795c","impliedFormat":1},{"version":"06384a1a73fcf4524952ecd0d6b63171c5d41dd23573907a91ef0a687ddb4a8c","impliedFormat":1},{"version":"34b1594ecf1c84bcc7a04d9f583afa6345a6fea27a52cf2685f802629219de45","impliedFormat":1},{"version":"d82c9ca830d7b94b7530a2c5819064d8255b93dfeddc5b2ebb8a09316f002c89","impliedFormat":1},{"version":"7e046b9634add57e512412a7881efbc14d44d1c65eadd35432412aa564537975","impliedFormat":1},{"version":"aac9079b9e2b5180036f27ab37cb3cf4fd19955be48ccc82eab3f092ee3d4026","impliedFormat":1},{"version":"3d9c38933bc69e0a885da20f019de441a3b5433ce041ba5b9d3a541db4b568cb","impliedFormat":1},{"version":"606aa2b74372221b0f79ca8ae3568629f444cc454aa59b032e4cb602308dec94","impliedFormat":1},{"version":"50474eaea72bfda85cc37ae6cd29f0556965c0849495d96c8c04c940ef3d2f44","impliedFormat":1},{"version":"b4874382f863cf7dc82b3d15aed1e1372ac3fede462065d5bfc8510c0d8f7b19","impliedFormat":1},{"version":"df10b4f781871afb72b2d648d497671190b16b679bf7533b744cc10b3c6bf7ea","impliedFormat":1},{"version":"1fdc28754c77e852c92087c789a1461aa6eed19c335dc92ce6b16a188e7ba305","impliedFormat":1},{"version":"a656dab1d502d4ddc845b66d8735c484bfebbf0b1eda5fb29729222675759884","impliedFormat":1},{"version":"465a79505258d251068dc0047a67a3605dd26e6b15e9ad2cec297442cbb58820","impliedFormat":1},{"version":"ddae22d9329db28ce3d80a2a53f99eaed66959c1c9cd719c9b744e5470579d2f","impliedFormat":1},{"version":"d0e25feadef054c6fc6a7f55ccc3b27b7216142106b9ff50f5e7b19d85c62ca7","impliedFormat":1},{"version":"111214009193320cacbae104e8281f6cb37788b52a6a84d259f9822c8c71f6ca","impliedFormat":1},{"version":"01c8e2c8984c96b9b48be20ee396bd3689a3a3e6add8d50fe8229a7d4e62ff45","impliedFormat":1},{"version":"a4a0800b592e533897b4967b00fb00f7cd48af9714d300767cc231271aa100af","impliedFormat":1},{"version":"20aa818c3e16e40586f2fa26327ea17242c8873fe3412a69ec68846017219314","impliedFormat":1},{"version":"f498532f53d54f831851990cb4bcd96063d73e302906fa07e2df24aa5935c7d1","impliedFormat":1},{"version":"5fd19dfde8de7a0b91df6a9bbdc44b648fd1f245cae9e8b8cf210d83ee06f106","impliedFormat":1},{"version":"3b8d6638c32e63ea0679eb26d1eb78534f4cc02c27b80f1c0a19f348774f5571","impliedFormat":1},{"version":"ce0da52e69bc3d82a7b5bc40da6baad08d3790de13ad35e89148a88055b46809","impliedFormat":1},{"version":"9e01233da81bfed887f8d9a70d1a26bf11b8ddff165806cc586c84980bf8fc24","impliedFormat":1},{"version":"214a6afbab8b285fc97eb3cece36cae65ea2fca3cbd0c017a96159b14050d202","impliedFormat":1},{"version":"14beeca2944b75b229c0549e0996dc4b7863e07257e0d359d63a7be49a6b86a4","impliedFormat":1},{"version":"f7bb9adb1daa749208b47d1313a46837e4d27687f85a3af7777fc1c9b3dc06b1","impliedFormat":1},{"version":"c549fe2f52101ffe47f58107c702af7cdcd42da8c80afd79f707d1c5d77d4b6e","impliedFormat":1},{"version":"3966ea9e1c1a5f6e636606785999734988e135541b79adc6b5d00abdc0f4bf05","impliedFormat":1},{"version":"0b60b69c957adb27f990fbc27ea4ac1064249400262d7c4c1b0a1687506b3406","impliedFormat":1},{"version":"12c26e5d1befc0ded725cee4c2316f276013e6f2eb545966562ae9a0c1931357","impliedFormat":1},{"version":"27b247363f1376c12310f73ebac6debcde009c0b95b65a8207e4fa90e132b30a","impliedFormat":1},{"version":"05bd302e2249da923048c09dc684d1d74cb205551a87f22fb8badc09ec532a08","impliedFormat":1},{"version":"fe930ec064571ab3b698b13bddf60a29abf9d2f36d51ab1ca0083b087b061f3a","impliedFormat":1},{"version":"6b85c4198e4b62b0056d55135ad95909adf1b95c9a86cdbed2c0f4cc1a902d53","impliedFormat":1},{"version":"5b405d7e5d368669bd8c6efff0c42f884998948c5c8824fdab5f25baf4551069","impliedFormat":1},{"version":"b3c6f99f544711c6e7c90bea3e2070f5e6d1979dbb119dc20c2fc5c31282257f","impliedFormat":1},{"version":"bbd20827024b23ae67ef05a8b87df779f04c12a6f13406933c601ec85545d2fc","impliedFormat":1},{"version":"08dc2623674d77f84b0cbcc1113f41bcdfeba0a3bf2a23a53a87c921a050080d","signature":"058cd6b02fe26dd82ec02f831c1a7520382bfa606ac57c9b5a7d80d496456692"},{"version":"43ad797cb0146021ef23fa70e9d435944076dfa9b1f067c9c51e97f3737f6e5d","signature":"7026118da69ac15974c7660e853389efdd8da47ea5fa01800620dc6e720d1161"},{"version":"a59c6783265b9a6b5532bee23f4c5077ca6efa1b60641d19b7cbc9fb56eab180","signature":"8171d94d4b0301bca556c9b1065b8420e7c74a25a06654b06d215d36ac1a67b6"},{"version":"b78c9b8fc5d459e332a6966eccde3b8ef7dbc14f06784479fcc6da0bd501d3d9","signature":"5ecf2d0355021ce08196a67e6307068efd50ff501841240e442f4856301c4780"},{"version":"942b15ae14e3b89b861bc59ed22ca05e5bca2308284fa1cbfda9b36e8a12ae8d","signature":"c607567072bbc3b3169ac574895327c4c8d2051893dd8de086980fa520eb5384"},{"version":"ea6bd5785e737cecc766e31872a6e2163483b2c3cb5e31b1346f9cca837e2297","signature":"a9abf349260c510178d0945395ac1fd617370930fd5971b056310c965f02d02c"},{"version":"7869f95f79a1023040633749c6941c7ecee5d306e6e4732526b9d6afe4c7f7f4","signature":"aa7386ea7885065e9909beab418abd52b21ab9c2b399d232c04466d8cbba068f"},{"version":"e6d35a8e67eed60e4f3df14e4c56038debee69ed3985f6513220bc28f0747810","signature":"d109859ebde76167e23753951af3b5afeef4af8afc5cf573ba3bcd25d657e70d"},{"version":"a2da634b5892e27da948f60461ec881fb0cecbb55de53561b38aa62cf23b748d","signature":"f3a05ffc0e4b71802ac7046fc0e3769339ff6ac3f77310486ec3b4bfa6f9dc1f"},"b9a521fa1888007f172607329c915ff159a5495cb1cd00146ebe974826a8fb6e",{"version":"fe93c474ab38ac02e30e3af073412b4f92b740152cf3a751fdaee8cbea982341","impliedFormat":1},{"version":"476e83e2c9e398265eed2c38773ae9081932b08ea5597b579a7d2e0c690ead56","impliedFormat":1},{"version":"1e00b8bf9e3766c958218cd6144ffe08418286f89ff44ba5a2cc830c03dd22c7","impliedFormat":1},{"version":"50cf7a23fc93928995caec8d7956206990f82113beeb6b3242dae8124edc3ca0","impliedFormat":99},{"version":"352031ac2e53031b69a09355e09ad7d95361edf32cc827cfe2417d80247a5a50","impliedFormat":99},{"version":"9971931daaf18158fc38266e838d56eb5d9d1f13360b1181bb4735a05f534c03","impliedFormat":99},{"version":"7004ed3b2b63363fe477fbad8a126ee2b9a0d07ed17451709a54d3331c208e52","impliedFormat":99},{"version":"35c29c2711733aec54c1d354f889c39ac9cff77d37b566df2da51c78dd7a1292","impliedFormat":99},{"version":"0c5b705d31420477189618154d1b6a9bb62a34fa6055f56ade1a316f6adb6b3a","impliedFormat":99},{"version":"853b8bdb5da8c8e5d31e4d715a8057d8e96059d6774b13545c3616ed216b890c","impliedFormat":99},{"version":"4634a4659bcf3ace4a5a687537abef421a778310f100f210ea09bdd816a51c39","impliedFormat":99},{"version":"fe3c64bf61fcfec9b9861725c6d92de03f33748a01d982760ccfa798d777cf9d","impliedFormat":99},{"version":"d68ba1862fa4aac61d0f5f660006d2bf6eeb890b0ce42632b65f2a1530d0b587","impliedFormat":99},{"version":"fa18d692be17a9ff34d00ebf11b1fed35f4bd8ddcb357e59488cec602edc4a56","impliedFormat":99},{"version":"2bb7e3f4061e7fdb62652ffb077ca2a01b55e9d898409e37fe1ae97acab894ea","impliedFormat":99},{"version":"c363b57a3dfab561bfe884baacf8568eea085bd5e11ccf0992fac67537717d90","impliedFormat":99},{"version":"1757a53a602a8991886070f7ba4d81258d70e8dca133b256ae6a1a9f08cd73b3","impliedFormat":99},{"version":"084c09a35a9611e1777c02343c11ab8b1be48eb4895bbe6da90222979940b4a6","impliedFormat":99},{"version":"4b3049a2c849f0217ff4def308637931661461c329e4cf36aeb31db34c4c0c64","impliedFormat":99},{"version":"6245aa515481727f994d1cf7adfc71e36b5fc48216a92d7e932274cee3268000","impliedFormat":99},{"version":"d542fb814a8ceb7eb858ecd5a41434274c45a7d511b9d46feb36d83b437b08d5","impliedFormat":99},{"version":"660ce583eaa09bb39eef5ad7af9d1b5f027a9d1fbf9f76bf5b9dc9ef1be2830e","impliedFormat":99},{"version":"b7d9ca4e3248f643fa86ff11872623fdc8ed2c6009836bec0e38b163b6faed0c","impliedFormat":99},{"version":"ac7a28ab421ea564271e1a9de78d70d68c65fab5cbb6d5c5568afcf50496dd61","impliedFormat":99},{"version":"d4f7a7a5f66b9bc6fbfd53fa08dcf8007ff752064df816da05edfa35abd2c97c","impliedFormat":99},{"version":"1f38ecf63dead74c85180bf18376dc6bc152522ef3aedf7b588cadbbd5877506","impliedFormat":99},{"version":"82fb33c00b1300c19591105fc25ccf78acba220f58d162b120fe3f4292a5605f","impliedFormat":99},{"version":"facde2bec0f59cf92f4635ece51b2c3fa2d0a3bbb67458d24af61e7e6b8f003c","impliedFormat":99},{"version":"4669194e4ca5f7c160833bbb198f25681e629418a6326aba08cf0891821bfe8f","impliedFormat":99},{"version":"db185b403e30e91c5b90f3f2cfa062832d764c9d7df3ad7f5db7e17596344fe8","impliedFormat":99},{"version":"669b62a7169354658d4ae1e043ad8203728655492a8f70a940a11ca5ed4d5029","impliedFormat":99},{"version":"a95cd11c5c8bc03eab4011f8e339a48f9a87293e90c0bf3e9003d7a6f833f557","impliedFormat":99},{"version":"e9bc0db0144701fab1e98c4d595a293c7c840d209b389144142f0adbc36b5ec2","impliedFormat":99},{"version":"9d884b885c4b2d89286685406b45911dcaab03e08e948850e3e41e29af69561c","impliedFormat":99},{"version":"73d67540533e08f353c42280864bbbf51cd1913346d37c3d8013f8817194597d","signature":"4d3f7d40d569178713e5a0faad9b3c86498aa5aa0bb0d7f9e62fff3ba9695b6a"},{"version":"3fb72b52bc0ff12870e88528fedf2f20aa11d320d9e01968c71d56c5c0669773","signature":"b0bcc3c474cf34eabaa3c6a23f95734d9999345db37b96201ac285771310b8ff"},{"version":"668849433018121f49e2aa5e2bd29fd8948bcc1d182ca59d5bfb36b8f2e603d3","signature":"638d63da4811fcba68b8906b3dcd5d2c62bca6315c8ec197efbd37f558d6cd54"},{"version":"77f18bac7d49cde78fe1d19aa388c0bdc76073da5007a1aa353bb5447bdbf035","signature":"7f6e90db49e4dc48530ae9d8bcbd886487f22605ce13d856dc722f92fe7df4b2"},{"version":"1f1ab38008a86682ca279d5a8bd8d6d28a73b4e6c99f424b56dbd892a3fdd476","signature":"711331eee481f04aa5af3d77bd69ada9d720b9137c210b8e5e5d1398c5655570"},{"version":"76f6d6d20620f8b8a12e5b738a0442d06e01c449ddf2af29138695381852c2b7","signature":"9b37defc1cf2817877d82929745263a4741c10b95e7ad1ae1b2386ec1056dc7f"},{"version":"96e6e64c03c14c01662514805a84e097738260dc1a4837290c618fd6fe1ec7ad","signature":"72f8516c00ac3941ed1ece7277c971d56c257531198a6f5fcc5a500e8a148df5"},{"version":"d9a0d151e0bb158a7fb5a31f93af8e77998a9572541a275492e5b35a10fef757","signature":"43ff67bf7fb654d45be485feb6da3086dd0ff1e034e63c31ea3785d67342eaf8"},{"version":"4ccebd147137b5742a8d8b2ffd7c6ed4faaca1c2aeb7e1907a6273fd24f3f6aa","signature":"fa0e4d5551af269fad18a8da53d0fce75fdb60df1b87d8fbee17ce82027d97a3"},"2552a31fad45a9ed1bde87e51b038dc0e786cd364b597162263abbf57018949b",{"version":"ca84c45f0f17a9a81c49fdf358ec32356fba22a10ed86370ea55b81bec8039ee","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"},{"version":"702e6d22d448d683df92c2348b4f0f875e221bf99df5241a4a1dfd9488d74511","signature":"89b0f68f8f0b901f9dfff2b9e7255520283a783d6af7f2bc2953d771232317a2"},{"version":"469b5334563e55310db37c8a3f62f5be1a2810de15013865ebf41f8243fe0098","signature":"89b0f68f8f0b901f9dfff2b9e7255520283a783d6af7f2bc2953d771232317a2"},{"version":"aa32e8fddcb61ce681542a323dd656533483b7ae81d1848ea6268a849d3b7415","signature":"89b0f68f8f0b901f9dfff2b9e7255520283a783d6af7f2bc2953d771232317a2"},{"version":"bfa53e209814d94018f7637abc8bcb6391e1ea506e0105760fa4d2c6df402733","signature":"89b0f68f8f0b901f9dfff2b9e7255520283a783d6af7f2bc2953d771232317a2"},{"version":"9a83638db646d0d3942ad32a60d5c73043e10a850badebc1170eead891e0e2c4","signature":"89b0f68f8f0b901f9dfff2b9e7255520283a783d6af7f2bc2953d771232317a2"},{"version":"89633ce023fa936999f56ed9894ec923f56d889988880f938348a636bb5f562f","signature":"89b0f68f8f0b901f9dfff2b9e7255520283a783d6af7f2bc2953d771232317a2"},{"version":"c2c2a861a338244d7dd700d0c52a78916b4bb75b98fc8ca5e7c501899fc03796","impliedFormat":1},{"version":"b6d03c9cfe2cf0ba4c673c209fcd7c46c815b2619fd2aad59fc4229aaef2ed43","impliedFormat":1},{"version":"adb467429462e3891de5bb4a82a4189b92005d61c7f9367c089baf03997c104e","impliedFormat":1},{"version":"670a76db379b27c8ff42f1ba927828a22862e2ab0b0908e38b671f0e912cc5ed","impliedFormat":1},{"version":"13b77ab19ef7aadd86a1e54f2f08ea23a6d74e102909e3c00d31f231ed040f62","impliedFormat":1},{"version":"069bebfee29864e3955378107e243508b163e77ab10de6a5ee03ae06939f0bb9","impliedFormat":1},{"version":"460627dd2a599c2664d6f9e81ed4765ef520dc2786551d9dcab276df57b98c02","impliedFormat":1},{"version":"151ff381ef9ff8da2da9b9663ebf657eac35c4c9a19183420c05728f31a6761d","impliedFormat":1},{"version":"96d14f21b7652903852eef49379d04dbda28c16ed36468f8c9fa08f7c14c9538","impliedFormat":1}],"root":[83,502,503,528,[591,597],[612,614],[670,679],[714,730]],"options":{"allowJs":true,"esModuleInterop":true,"jsx":1,"module":99,"skipLibCheck":true,"strict":true,"target":9},"referencedMap":[[727,1],[728,2],[729,3],[725,4],[726,5],[730,6],[723,7],[83,8],[724,9],[502,10],[503,11],[669,12],[668,12],[617,13],[616,14],[618,15],[733,16],[731,8],[249,8],[627,17],[630,18],[636,19],[639,20],[660,21],[638,22],[619,8],[620,23],[621,24],[624,8],[622,8],[623,8],[661,25],[626,17],[625,8],[662,26],[629,18],[628,8],[666,27],[663,28],[633,29],[635,30],[632,31],[634,32],[631,29],[664,33],[637,17],[665,34],[640,35],[659,36],[656,37],[658,38],[643,39],[650,40],[652,41],[654,42],[653,43],[645,44],[642,37],[646,8],[657,45],[647,46],[644,8],[655,8],[641,8],[648,47],[649,8],[651,48],[684,49],[686,50],[693,51],[687,52],[688,8],[689,49],[690,52],[685,8],[692,52],[683,8],[691,8],[706,53],[713,54],[703,55],[712,56],[710,55],[704,53],[705,57],[696,55],[694,58],[711,59],[707,58],[709,55],[708,58],[702,58],[701,55],[695,55],[697,60],[699,55],[700,55],[698,55],[736,61],[732,16],[734,62],[735,16],[737,8],[738,8],[615,8],[739,8],[146,63],[147,63],[148,64],[100,65],[149,66],[150,67],[151,68],[95,8],[98,69],[96,8],[97,8],[152,70],[153,71],[154,72],[155,73],[156,74],[157,75],[158,75],[159,76],[160,77],[161,78],[162,79],[101,8],[99,8],[163,80],[164,81],[165,82],[199,83],[166,84],[167,8],[168,85],[169,86],[170,87],[171,88],[172,89],[173,90],[174,91],[175,92],[176,93],[177,93],[178,94],[179,8],[180,95],[181,96],[183,97],[182,98],[184,99],[185,100],[186,101],[187,102],[188,103],[189,104],[190,105],[191,106],[192,107],[193,108],[194,109],[195,110],[196,111],[102,8],[103,8],[104,8],[143,112],[144,8],[145,8],[197,113],[198,114],[203,115],[359,56],[204,116],[202,117],[361,118],[360,119],[200,120],[357,8],[201,121],[84,8],[86,122],[356,56],[267,56],[667,123],[105,8],[85,8],[529,124],[93,125],[448,126],[453,7],[455,127],[225,128],[253,129],[431,130],[248,131],[236,8],[217,8],[223,8],[421,132],[284,133],[224,8],[390,134],[258,135],[259,136],[355,137],[418,138],[373,139],[425,140],[426,141],[424,142],[423,8],[422,143],[255,144],[226,145],[305,8],[306,146],[221,8],[237,147],[227,148],[289,147],[286,147],[210,147],[251,149],[250,8],[430,150],[440,8],[216,8],[331,151],[332,152],[326,56],[476,8],[334,8],[335,57],[327,153],[482,154],[480,155],[475,8],[417,156],[416,8],[474,157],[328,56],[369,158],[367,159],[477,8],[481,8],[479,160],[478,8],[368,161],[469,162],[472,163],[296,164],[295,165],[294,166],[485,56],[293,167],[278,8],[488,8],[681,168],[680,8],[491,8],[490,56],[492,169],[206,8],[427,170],[428,171],[429,172],[239,8],[215,173],[205,8],[347,56],[208,174],[346,175],[345,176],[336,8],[337,8],[344,8],[339,8],[342,177],[338,8],[340,178],[343,179],[341,178],[222,8],[213,8],[214,147],[268,180],[269,181],[266,182],[264,183],[265,184],[261,8],[353,57],[375,57],[447,185],[456,186],[460,187],[434,188],[433,8],[281,8],[493,189],[443,190],[329,191],[330,192],[321,193],[311,8],[352,194],[312,195],[354,196],[349,197],[348,8],[350,8],[366,198],[435,199],[436,200],[314,201],[318,202],[309,203],[413,204],[442,205],[288,206],[391,207],[211,208],[441,209],[207,131],[262,8],[270,210],[402,211],[260,8],[401,212],[94,8],[396,213],[238,8],[307,214],[392,8],[212,8],[271,8],[400,215],[220,8],[276,216],[317,217],[432,218],[316,8],[399,8],[263,8],[404,219],[405,220],[218,8],[407,221],[409,222],[408,223],[241,8],[398,208],[411,224],[397,225],[403,226],[229,8],[232,8],[230,8],[234,8],[231,8],[233,8],[235,227],[228,8],[383,228],[382,8],[388,229],[384,230],[387,231],[386,231],[389,229],[385,230],[275,232],[376,233],[439,234],[495,8],[464,235],[466,236],[313,8],[465,237],[437,199],[494,238],[333,199],[219,8],[315,239],[272,240],[273,241],[274,242],[304,243],[412,243],[290,243],[377,244],[291,244],[257,245],[256,8],[381,246],[380,247],[379,248],[378,249],[438,250],[325,251],[363,252],[324,253],[358,254],[362,255],[420,256],[419,257],[415,258],[372,259],[374,260],[371,261],[410,262],[365,8],[452,8],[364,263],[414,8],[277,264],[310,170],[308,265],[279,266],[282,267],[489,8],[280,268],[283,268],[450,8],[449,8],[451,8],[487,8],[285,269],[323,56],[92,8],[370,270],[254,8],[243,271],[319,8],[458,56],[468,272],[303,56],[462,57],[302,273],[445,274],[301,272],[209,8],[470,275],[299,56],[300,56],[292,8],[242,8],[298,276],[297,277],[240,278],[320,92],[287,92],[406,8],[394,279],[393,8],[454,8],[351,280],[322,56],[446,281],[87,56],[90,282],[91,283],[88,56],[89,8],[252,284],[247,285],[246,8],[245,286],[244,8],[444,287],[457,288],[459,289],[461,290],[682,291],[463,292],[467,293],[501,294],[471,294],[500,295],[473,296],[483,297],[484,298],[486,299],[496,300],[499,173],[498,8],[497,301],[520,302],[518,303],[519,304],[507,305],[508,303],[515,306],[506,307],[511,308],[521,8],[512,309],[517,310],[523,311],[522,312],[505,313],[513,314],[514,315],[509,316],[516,302],[510,317],[585,8],[584,8],[583,8],[587,318],[586,8],[590,319],[588,8],[589,320],[582,8],[395,321],[504,8],[526,322],[525,8],[524,8],[527,323],[530,8],[555,324],[531,325],[556,326],[557,327],[570,327],[575,328],[562,329],[558,330],[564,327],[568,327],[560,327],[574,331],[569,327],[561,327],[576,332],[565,327],[566,327],[559,333],[567,327],[572,334],[571,334],[563,327],[573,327],[581,335],[577,336],[554,337],[533,8],[538,8],[550,337],[535,337],[537,337],[534,337],[545,337],[548,337],[553,338],[549,339],[539,337],[536,337],[532,337],[544,337],[542,337],[546,337],[540,337],[547,337],[551,337],[552,337],[541,337],[543,340],[578,8],[580,341],[579,8],[81,8],[82,8],[13,8],[14,8],[16,8],[15,8],[2,8],[17,8],[18,8],[19,8],[20,8],[21,8],[22,8],[23,8],[24,8],[3,8],[25,8],[26,8],[4,8],[27,8],[31,8],[28,8],[29,8],[30,8],[32,8],[33,8],[34,8],[5,8],[35,8],[36,8],[37,8],[38,8],[6,8],[42,8],[39,8],[40,8],[41,8],[43,8],[7,8],[44,8],[49,8],[50,8],[45,8],[46,8],[47,8],[48,8],[8,8],[54,8],[51,8],[52,8],[53,8],[55,8],[9,8],[56,8],[57,8],[58,8],[60,8],[59,8],[61,8],[62,8],[10,8],[63,8],[64,8],[65,8],[11,8],[66,8],[67,8],[68,8],[69,8],[70,8],[1,8],[71,8],[72,8],[12,8],[76,8],[74,8],[79,8],[78,8],[73,8],[77,8],[75,8],[80,8],[121,342],[131,343],[120,342],[141,344],[112,345],[111,346],[140,301],[134,347],[139,348],[114,349],[128,350],[113,351],[137,352],[109,353],[108,301],[138,354],[110,355],[115,356],[116,8],[119,356],[106,8],[142,357],[132,358],[123,359],[124,360],[126,361],[122,362],[125,363],[135,301],[117,364],[118,365],[127,366],[107,367],[130,358],[129,356],[133,8],[136,368],[611,369],[603,370],[610,371],[605,8],[606,8],[604,372],[607,373],[598,8],[599,8],[600,369],[602,374],[608,8],[609,375],[601,376],[591,377],[594,378],[596,379],[597,378],[613,380],[614,381],[671,382],[672,378],[715,383],[720,384],[719,385],[714,386],[721,387],[722,384],[673,388],[675,388],[674,389],[679,390],[678,391],[676,392],[677,389],[718,393],[716,394],[717,393],[670,395],[612,396],[593,397],[595,398],[592,8],[528,399]],"affectedFilesPendingEmit":[727,728,729,725,726,730,724,503,591,594,596,597,613,614,671,672,715,720,719,714,721,722,673,675,674,679,678,676,677,718,716,717,670,612,593,595,592,528],"version":"5.9.3"} \ No newline at end of file +{"fileNames":["./node_modules/typescript/lib/lib.es5.d.ts","./node_modules/typescript/lib/lib.es2015.d.ts","./node_modules/typescript/lib/lib.es2016.d.ts","./node_modules/typescript/lib/lib.es2017.d.ts","./node_modules/typescript/lib/lib.es2018.d.ts","./node_modules/typescript/lib/lib.es2019.d.ts","./node_modules/typescript/lib/lib.es2020.d.ts","./node_modules/typescript/lib/lib.es2021.d.ts","./node_modules/typescript/lib/lib.es2022.d.ts","./node_modules/typescript/lib/lib.es2023.d.ts","./node_modules/typescript/lib/lib.es2024.d.ts","./node_modules/typescript/lib/lib.esnext.d.ts","./node_modules/typescript/lib/lib.dom.d.ts","./node_modules/typescript/lib/lib.dom.iterable.d.ts","./node_modules/typescript/lib/lib.es2015.core.d.ts","./node_modules/typescript/lib/lib.es2015.collection.d.ts","./node_modules/typescript/lib/lib.es2015.generator.d.ts","./node_modules/typescript/lib/lib.es2015.iterable.d.ts","./node_modules/typescript/lib/lib.es2015.promise.d.ts","./node_modules/typescript/lib/lib.es2015.proxy.d.ts","./node_modules/typescript/lib/lib.es2015.reflect.d.ts","./node_modules/typescript/lib/lib.es2015.symbol.d.ts","./node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","./node_modules/typescript/lib/lib.es2016.array.include.d.ts","./node_modules/typescript/lib/lib.es2016.intl.d.ts","./node_modules/typescript/lib/lib.es2017.arraybuffer.d.ts","./node_modules/typescript/lib/lib.es2017.date.d.ts","./node_modules/typescript/lib/lib.es2017.object.d.ts","./node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","./node_modules/typescript/lib/lib.es2017.string.d.ts","./node_modules/typescript/lib/lib.es2017.intl.d.ts","./node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","./node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","./node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","./node_modules/typescript/lib/lib.es2018.intl.d.ts","./node_modules/typescript/lib/lib.es2018.promise.d.ts","./node_modules/typescript/lib/lib.es2018.regexp.d.ts","./node_modules/typescript/lib/lib.es2019.array.d.ts","./node_modules/typescript/lib/lib.es2019.object.d.ts","./node_modules/typescript/lib/lib.es2019.string.d.ts","./node_modules/typescript/lib/lib.es2019.symbol.d.ts","./node_modules/typescript/lib/lib.es2019.intl.d.ts","./node_modules/typescript/lib/lib.es2020.bigint.d.ts","./node_modules/typescript/lib/lib.es2020.date.d.ts","./node_modules/typescript/lib/lib.es2020.promise.d.ts","./node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","./node_modules/typescript/lib/lib.es2020.string.d.ts","./node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","./node_modules/typescript/lib/lib.es2020.intl.d.ts","./node_modules/typescript/lib/lib.es2020.number.d.ts","./node_modules/typescript/lib/lib.es2021.promise.d.ts","./node_modules/typescript/lib/lib.es2021.string.d.ts","./node_modules/typescript/lib/lib.es2021.weakref.d.ts","./node_modules/typescript/lib/lib.es2021.intl.d.ts","./node_modules/typescript/lib/lib.es2022.array.d.ts","./node_modules/typescript/lib/lib.es2022.error.d.ts","./node_modules/typescript/lib/lib.es2022.intl.d.ts","./node_modules/typescript/lib/lib.es2022.object.d.ts","./node_modules/typescript/lib/lib.es2022.string.d.ts","./node_modules/typescript/lib/lib.es2022.regexp.d.ts","./node_modules/typescript/lib/lib.es2023.array.d.ts","./node_modules/typescript/lib/lib.es2023.collection.d.ts","./node_modules/typescript/lib/lib.es2023.intl.d.ts","./node_modules/typescript/lib/lib.es2024.arraybuffer.d.ts","./node_modules/typescript/lib/lib.es2024.collection.d.ts","./node_modules/typescript/lib/lib.es2024.object.d.ts","./node_modules/typescript/lib/lib.es2024.promise.d.ts","./node_modules/typescript/lib/lib.es2024.regexp.d.ts","./node_modules/typescript/lib/lib.es2024.sharedmemory.d.ts","./node_modules/typescript/lib/lib.es2024.string.d.ts","./node_modules/typescript/lib/lib.esnext.array.d.ts","./node_modules/typescript/lib/lib.esnext.collection.d.ts","./node_modules/typescript/lib/lib.esnext.intl.d.ts","./node_modules/typescript/lib/lib.esnext.disposable.d.ts","./node_modules/typescript/lib/lib.esnext.promise.d.ts","./node_modules/typescript/lib/lib.esnext.decorators.d.ts","./node_modules/typescript/lib/lib.esnext.iterator.d.ts","./node_modules/typescript/lib/lib.esnext.float16.d.ts","./node_modules/typescript/lib/lib.esnext.error.d.ts","./node_modules/typescript/lib/lib.esnext.sharedmemory.d.ts","./node_modules/typescript/lib/lib.decorators.d.ts","./node_modules/typescript/lib/lib.decorators.legacy.d.ts","./.next/types/routes.d.ts","./node_modules/@types/react/global.d.ts","./node_modules/csstype/index.d.ts","./node_modules/@types/react/index.d.ts","./node_modules/next/dist/styled-jsx/types/css.d.ts","./node_modules/next/dist/styled-jsx/types/macro.d.ts","./node_modules/next/dist/styled-jsx/types/style.d.ts","./node_modules/next/dist/styled-jsx/types/global.d.ts","./node_modules/next/dist/styled-jsx/types/index.d.ts","./node_modules/next/dist/shared/lib/amp.d.ts","./node_modules/next/amp.d.ts","./node_modules/next/dist/server/get-page-files.d.ts","./node_modules/@types/node/compatibility/disposable.d.ts","./node_modules/@types/node/compatibility/indexable.d.ts","./node_modules/@types/node/compatibility/iterators.d.ts","./node_modules/@types/node/compatibility/index.d.ts","./node_modules/@types/node/globals.typedarray.d.ts","./node_modules/@types/node/buffer.buffer.d.ts","./node_modules/@types/node/globals.d.ts","./node_modules/@types/node/web-globals/abortcontroller.d.ts","./node_modules/@types/node/web-globals/domexception.d.ts","./node_modules/@types/node/web-globals/events.d.ts","./node_modules/buffer/index.d.ts","./node_modules/undici-types/header.d.ts","./node_modules/undici-types/readable.d.ts","./node_modules/undici-types/file.d.ts","./node_modules/undici-types/fetch.d.ts","./node_modules/undici-types/formdata.d.ts","./node_modules/undici-types/connector.d.ts","./node_modules/undici-types/client.d.ts","./node_modules/undici-types/errors.d.ts","./node_modules/undici-types/dispatcher.d.ts","./node_modules/undici-types/global-dispatcher.d.ts","./node_modules/undici-types/global-origin.d.ts","./node_modules/undici-types/pool-stats.d.ts","./node_modules/undici-types/pool.d.ts","./node_modules/undici-types/handlers.d.ts","./node_modules/undici-types/balanced-pool.d.ts","./node_modules/undici-types/agent.d.ts","./node_modules/undici-types/mock-interceptor.d.ts","./node_modules/undici-types/mock-agent.d.ts","./node_modules/undici-types/mock-client.d.ts","./node_modules/undici-types/mock-pool.d.ts","./node_modules/undici-types/mock-errors.d.ts","./node_modules/undici-types/proxy-agent.d.ts","./node_modules/undici-types/env-http-proxy-agent.d.ts","./node_modules/undici-types/retry-handler.d.ts","./node_modules/undici-types/retry-agent.d.ts","./node_modules/undici-types/api.d.ts","./node_modules/undici-types/interceptors.d.ts","./node_modules/undici-types/util.d.ts","./node_modules/undici-types/cookies.d.ts","./node_modules/undici-types/patch.d.ts","./node_modules/undici-types/websocket.d.ts","./node_modules/undici-types/eventsource.d.ts","./node_modules/undici-types/filereader.d.ts","./node_modules/undici-types/diagnostics-channel.d.ts","./node_modules/undici-types/content-type.d.ts","./node_modules/undici-types/cache.d.ts","./node_modules/undici-types/index.d.ts","./node_modules/@types/node/web-globals/fetch.d.ts","./node_modules/@types/node/web-globals/navigator.d.ts","./node_modules/@types/node/web-globals/storage.d.ts","./node_modules/@types/node/assert.d.ts","./node_modules/@types/node/assert/strict.d.ts","./node_modules/@types/node/async_hooks.d.ts","./node_modules/@types/node/buffer.d.ts","./node_modules/@types/node/child_process.d.ts","./node_modules/@types/node/cluster.d.ts","./node_modules/@types/node/console.d.ts","./node_modules/@types/node/constants.d.ts","./node_modules/@types/node/crypto.d.ts","./node_modules/@types/node/dgram.d.ts","./node_modules/@types/node/diagnostics_channel.d.ts","./node_modules/@types/node/dns.d.ts","./node_modules/@types/node/dns/promises.d.ts","./node_modules/@types/node/domain.d.ts","./node_modules/@types/node/events.d.ts","./node_modules/@types/node/fs.d.ts","./node_modules/@types/node/fs/promises.d.ts","./node_modules/@types/node/http.d.ts","./node_modules/@types/node/http2.d.ts","./node_modules/@types/node/https.d.ts","./node_modules/@types/node/inspector.d.ts","./node_modules/@types/node/inspector.generated.d.ts","./node_modules/@types/node/module.d.ts","./node_modules/@types/node/net.d.ts","./node_modules/@types/node/os.d.ts","./node_modules/@types/node/path.d.ts","./node_modules/@types/node/perf_hooks.d.ts","./node_modules/@types/node/process.d.ts","./node_modules/@types/node/punycode.d.ts","./node_modules/@types/node/querystring.d.ts","./node_modules/@types/node/readline.d.ts","./node_modules/@types/node/readline/promises.d.ts","./node_modules/@types/node/repl.d.ts","./node_modules/@types/node/sea.d.ts","./node_modules/@types/node/sqlite.d.ts","./node_modules/@types/node/stream.d.ts","./node_modules/@types/node/stream/promises.d.ts","./node_modules/@types/node/stream/consumers.d.ts","./node_modules/@types/node/stream/web.d.ts","./node_modules/@types/node/string_decoder.d.ts","./node_modules/@types/node/test.d.ts","./node_modules/@types/node/timers.d.ts","./node_modules/@types/node/timers/promises.d.ts","./node_modules/@types/node/tls.d.ts","./node_modules/@types/node/trace_events.d.ts","./node_modules/@types/node/tty.d.ts","./node_modules/@types/node/url.d.ts","./node_modules/@types/node/util.d.ts","./node_modules/@types/node/v8.d.ts","./node_modules/@types/node/vm.d.ts","./node_modules/@types/node/wasi.d.ts","./node_modules/@types/node/worker_threads.d.ts","./node_modules/@types/node/zlib.d.ts","./node_modules/@types/node/index.d.ts","./node_modules/@types/react/canary.d.ts","./node_modules/@types/react/experimental.d.ts","./node_modules/@types/react-dom/index.d.ts","./node_modules/@types/react-dom/canary.d.ts","./node_modules/@types/react-dom/experimental.d.ts","./node_modules/next/dist/lib/fallback.d.ts","./node_modules/next/dist/compiled/webpack/webpack.d.ts","./node_modules/next/dist/server/config.d.ts","./node_modules/next/dist/lib/load-custom-routes.d.ts","./node_modules/next/dist/shared/lib/image-config.d.ts","./node_modules/next/dist/build/webpack/plugins/subresource-integrity-plugin.d.ts","./node_modules/next/dist/server/body-streams.d.ts","./node_modules/next/dist/server/lib/cache-control.d.ts","./node_modules/next/dist/lib/setup-exception-listeners.d.ts","./node_modules/next/dist/lib/worker.d.ts","./node_modules/next/dist/lib/constants.d.ts","./node_modules/next/dist/client/components/app-router-headers.d.ts","./node_modules/next/dist/build/rendering-mode.d.ts","./node_modules/next/dist/server/lib/router-utils/build-prefetch-segment-data-route.d.ts","./node_modules/next/dist/server/require-hook.d.ts","./node_modules/next/dist/server/lib/experimental/ppr.d.ts","./node_modules/next/dist/build/webpack/plugins/app-build-manifest-plugin.d.ts","./node_modules/next/dist/lib/page-types.d.ts","./node_modules/next/dist/build/segment-config/app/app-segment-config.d.ts","./node_modules/next/dist/build/segment-config/pages/pages-segment-config.d.ts","./node_modules/next/dist/build/analysis/get-page-static-info.d.ts","./node_modules/next/dist/build/webpack/loaders/get-module-build-info.d.ts","./node_modules/next/dist/build/webpack/plugins/middleware-plugin.d.ts","./node_modules/next/dist/server/node-polyfill-crypto.d.ts","./node_modules/next/dist/server/node-environment-baseline.d.ts","./node_modules/next/dist/server/node-environment-extensions/error-inspect.d.ts","./node_modules/next/dist/server/node-environment-extensions/random.d.ts","./node_modules/next/dist/server/node-environment-extensions/date.d.ts","./node_modules/next/dist/server/node-environment-extensions/web-crypto.d.ts","./node_modules/next/dist/server/node-environment-extensions/node-crypto.d.ts","./node_modules/next/dist/server/node-environment.d.ts","./node_modules/next/dist/build/page-extensions-type.d.ts","./node_modules/next/dist/build/webpack/plugins/flight-manifest-plugin.d.ts","./node_modules/next/dist/server/instrumentation/types.d.ts","./node_modules/next/dist/lib/coalesced-function.d.ts","./node_modules/next/dist/shared/lib/router/utils/middleware-route-matcher.d.ts","./node_modules/next/dist/server/lib/router-utils/types.d.ts","./node_modules/next/dist/shared/lib/modern-browserslist-target.d.ts","./node_modules/next/dist/shared/lib/constants.d.ts","./node_modules/next/dist/trace/types.d.ts","./node_modules/next/dist/trace/trace.d.ts","./node_modules/next/dist/trace/shared.d.ts","./node_modules/next/dist/trace/index.d.ts","./node_modules/next/dist/build/load-jsconfig.d.ts","./node_modules/@next/env/dist/index.d.ts","./node_modules/next/dist/build/webpack/plugins/telemetry-plugin/use-cache-tracker-utils.d.ts","./node_modules/next/dist/build/webpack/plugins/telemetry-plugin/telemetry-plugin.d.ts","./node_modules/next/dist/telemetry/storage.d.ts","./node_modules/next/dist/build/build-context.d.ts","./node_modules/next/dist/shared/lib/bloom-filter.d.ts","./node_modules/next/dist/build/webpack-config.d.ts","./node_modules/next/dist/server/route-kind.d.ts","./node_modules/next/dist/server/route-definitions/route-definition.d.ts","./node_modules/next/dist/build/swc/generated-native.d.ts","./node_modules/next/dist/build/swc/types.d.ts","./node_modules/next/dist/server/dev/parse-version-info.d.ts","./node_modules/next/dist/next-devtools/shared/types.d.ts","./node_modules/next/dist/server/dev/dev-indicator-server-state.d.ts","./node_modules/next/dist/server/lib/parse-stack.d.ts","./node_modules/next/dist/next-devtools/server/shared.d.ts","./node_modules/next/dist/next-devtools/shared/stack-frame.d.ts","./node_modules/next/dist/next-devtools/dev-overlay/utils/get-error-by-type.d.ts","./node_modules/@types/react/jsx-runtime.d.ts","./node_modules/next/dist/next-devtools/dev-overlay/container/runtime-error/render-error.d.ts","./node_modules/next/dist/next-devtools/dev-overlay/shared.d.ts","./node_modules/next/dist/server/dev/hot-reloader-types.d.ts","./node_modules/next/dist/server/lib/cache-handlers/types.d.ts","./node_modules/next/dist/server/response-cache/types.d.ts","./node_modules/next/dist/server/resume-data-cache/cache-store.d.ts","./node_modules/next/dist/server/resume-data-cache/resume-data-cache.d.ts","./node_modules/next/dist/server/render-result.d.ts","./node_modules/next/dist/server/lib/i18n-provider.d.ts","./node_modules/next/dist/server/web/next-url.d.ts","./node_modules/next/dist/compiled/@edge-runtime/cookies/index.d.ts","./node_modules/next/dist/server/web/spec-extension/cookies.d.ts","./node_modules/next/dist/server/web/spec-extension/request.d.ts","./node_modules/next/dist/server/after/builtin-request-context.d.ts","./node_modules/next/dist/server/web/spec-extension/fetch-event.d.ts","./node_modules/next/dist/server/web/spec-extension/response.d.ts","./node_modules/next/dist/build/segment-config/middleware/middleware-config.d.ts","./node_modules/next/dist/server/web/types.d.ts","./node_modules/next/dist/build/webpack/plugins/pages-manifest-plugin.d.ts","./node_modules/next/dist/shared/lib/router/utils/parse-url.d.ts","./node_modules/next/dist/server/base-http/node.d.ts","./node_modules/next/dist/build/webpack/plugins/next-font-manifest-plugin.d.ts","./node_modules/next/dist/server/route-definitions/locale-route-definition.d.ts","./node_modules/next/dist/server/route-definitions/pages-route-definition.d.ts","./node_modules/next/dist/shared/lib/mitt.d.ts","./node_modules/next/dist/client/with-router.d.ts","./node_modules/next/dist/client/router.d.ts","./node_modules/next/dist/client/route-loader.d.ts","./node_modules/next/dist/client/page-loader.d.ts","./node_modules/next/dist/shared/lib/router/router.d.ts","./node_modules/next/dist/shared/lib/router-context.shared-runtime.d.ts","./node_modules/next/dist/shared/lib/loadable-context.shared-runtime.d.ts","./node_modules/next/dist/shared/lib/loadable.shared-runtime.d.ts","./node_modules/next/dist/shared/lib/image-config-context.shared-runtime.d.ts","./node_modules/next/dist/shared/lib/hooks-client-context.shared-runtime.d.ts","./node_modules/next/dist/shared/lib/head-manager-context.shared-runtime.d.ts","./node_modules/next/dist/server/route-definitions/app-page-route-definition.d.ts","./node_modules/next/dist/build/webpack/loaders/metadata/types.d.ts","./node_modules/next/dist/build/webpack/loaders/next-app-loader/index.d.ts","./node_modules/next/dist/server/lib/app-dir-module.d.ts","./node_modules/next/dist/server/web/spec-extension/adapters/request-cookies.d.ts","./node_modules/next/dist/server/async-storage/draft-mode-provider.d.ts","./node_modules/next/dist/server/web/spec-extension/adapters/headers.d.ts","./node_modules/next/dist/server/app-render/cache-signal.d.ts","./node_modules/next/dist/server/app-render/dynamic-rendering.d.ts","./node_modules/next/dist/server/request/fallback-params.d.ts","./node_modules/next/dist/server/app-render/work-unit-async-storage-instance.d.ts","./node_modules/next/dist/server/response-cache/index.d.ts","./node_modules/next/dist/server/lib/lazy-result.d.ts","./node_modules/next/dist/server/lib/implicit-tags.d.ts","./node_modules/next/dist/server/app-render/work-unit-async-storage.external.d.ts","./node_modules/next/dist/shared/lib/deep-readonly.d.ts","./node_modules/next/dist/shared/lib/router/utils/parse-relative-url.d.ts","./node_modules/next/dist/server/app-render/app-render.d.ts","./node_modules/next/dist/shared/lib/server-inserted-html.shared-runtime.d.ts","./node_modules/next/dist/shared/lib/amp-context.shared-runtime.d.ts","./node_modules/next/dist/server/route-modules/app-page/vendored/contexts/entrypoints.d.ts","./node_modules/next/dist/server/route-modules/app-page/module.compiled.d.ts","./node_modules/next/dist/client/components/error-boundary.d.ts","./node_modules/next/dist/client/components/layout-router.d.ts","./node_modules/next/dist/client/components/render-from-template-context.d.ts","./node_modules/next/dist/server/app-render/action-async-storage-instance.d.ts","./node_modules/next/dist/server/app-render/action-async-storage.external.d.ts","./node_modules/next/dist/client/components/client-page.d.ts","./node_modules/next/dist/client/components/client-segment.d.ts","./node_modules/next/dist/server/request/search-params.d.ts","./node_modules/next/dist/client/components/hooks-server-context.d.ts","./node_modules/next/dist/client/components/http-access-fallback/error-boundary.d.ts","./node_modules/next/dist/lib/metadata/types/alternative-urls-types.d.ts","./node_modules/next/dist/lib/metadata/types/extra-types.d.ts","./node_modules/next/dist/lib/metadata/types/metadata-types.d.ts","./node_modules/next/dist/lib/metadata/types/manifest-types.d.ts","./node_modules/next/dist/lib/metadata/types/opengraph-types.d.ts","./node_modules/next/dist/lib/metadata/types/twitter-types.d.ts","./node_modules/next/dist/lib/metadata/types/metadata-interface.d.ts","./node_modules/next/dist/lib/metadata/types/resolvers.d.ts","./node_modules/next/dist/lib/metadata/types/icons.d.ts","./node_modules/next/dist/lib/metadata/resolve-metadata.d.ts","./node_modules/next/dist/lib/metadata/metadata.d.ts","./node_modules/next/dist/lib/framework/boundary-components.d.ts","./node_modules/next/dist/server/app-render/rsc/preloads.d.ts","./node_modules/next/dist/server/app-render/rsc/postpone.d.ts","./node_modules/next/dist/server/app-render/rsc/taint.d.ts","./node_modules/next/dist/shared/lib/segment-cache/segment-value-encoding.d.ts","./node_modules/next/dist/server/app-render/collect-segment-data.d.ts","./node_modules/next/dist/next-devtools/userspace/app/segment-explorer-node.d.ts","./node_modules/next/dist/server/app-render/entry-base.d.ts","./node_modules/next/dist/build/templates/app-page.d.ts","./node_modules/@types/react/jsx-dev-runtime.d.ts","./node_modules/@types/react/compiler-runtime.d.ts","./node_modules/next/dist/server/route-modules/app-page/vendored/rsc/entrypoints.d.ts","./node_modules/@types/react-dom/client.d.ts","./node_modules/@types/react-dom/static.d.ts","./node_modules/@types/react-dom/server.d.ts","./node_modules/next/dist/server/route-modules/app-page/vendored/ssr/entrypoints.d.ts","./node_modules/next/dist/server/route-modules/app-page/module.d.ts","./node_modules/next/dist/server/web/adapter.d.ts","./node_modules/next/dist/server/use-cache/cache-life.d.ts","./node_modules/next/dist/server/app-render/types.d.ts","./node_modules/next/dist/client/components/router-reducer/router-reducer-types.d.ts","./node_modules/next/dist/client/flight-data-helpers.d.ts","./node_modules/next/dist/client/components/router-reducer/fetch-server-response.d.ts","./node_modules/next/dist/shared/lib/app-router-context.shared-runtime.d.ts","./node_modules/next/dist/server/route-modules/pages/vendored/contexts/entrypoints.d.ts","./node_modules/next/dist/server/route-modules/pages/module.compiled.d.ts","./node_modules/next/dist/build/templates/pages.d.ts","./node_modules/next/dist/server/route-modules/pages/module.d.ts","./node_modules/next/dist/next-devtools/userspace/pages/pages-dev-overlay-setup.d.ts","./node_modules/next/dist/server/render.d.ts","./node_modules/next/dist/server/route-definitions/pages-api-route-definition.d.ts","./node_modules/next/dist/server/route-matches/pages-api-route-match.d.ts","./node_modules/next/dist/server/route-matchers/route-matcher.d.ts","./node_modules/next/dist/server/route-matcher-providers/route-matcher-provider.d.ts","./node_modules/next/dist/server/route-matcher-managers/route-matcher-manager.d.ts","./node_modules/next/dist/server/normalizers/normalizer.d.ts","./node_modules/next/dist/server/normalizers/locale-route-normalizer.d.ts","./node_modules/next/dist/server/normalizers/request/pathname-normalizer.d.ts","./node_modules/next/dist/server/normalizers/request/suffix.d.ts","./node_modules/next/dist/server/normalizers/request/rsc.d.ts","./node_modules/next/dist/server/normalizers/request/prefetch-rsc.d.ts","./node_modules/next/dist/server/normalizers/request/next-data.d.ts","./node_modules/next/dist/server/normalizers/request/segment-prefix-rsc.d.ts","./node_modules/next/dist/build/static-paths/types.d.ts","./node_modules/next/dist/server/base-server.d.ts","./node_modules/next/dist/server/lib/async-callback-set.d.ts","./node_modules/next/dist/shared/lib/router/utils/route-regex.d.ts","./node_modules/next/dist/shared/lib/router/utils/route-matcher.d.ts","./node_modules/sharp/lib/index.d.ts","./node_modules/next/dist/server/image-optimizer.d.ts","./node_modules/next/dist/server/next-server.d.ts","./node_modules/next/dist/server/lib/types.d.ts","./node_modules/next/dist/server/lib/lru-cache.d.ts","./node_modules/next/dist/server/lib/dev-bundler-service.d.ts","./node_modules/next/dist/server/dev/static-paths-worker.d.ts","./node_modules/next/dist/server/dev/next-dev-server.d.ts","./node_modules/next/dist/server/next.d.ts","./node_modules/next/dist/server/lib/render-server.d.ts","./node_modules/next/dist/server/lib/router-server.d.ts","./node_modules/next/dist/shared/lib/router/utils/path-match.d.ts","./node_modules/next/dist/server/lib/router-utils/filesystem.d.ts","./node_modules/next/dist/server/lib/router-utils/setup-dev-bundler.d.ts","./node_modules/next/dist/server/lib/router-utils/router-server-context.d.ts","./node_modules/next/dist/server/route-modules/route-module.d.ts","./node_modules/next/dist/server/load-components.d.ts","./node_modules/next/dist/server/route-definitions/app-route-route-definition.d.ts","./node_modules/next/dist/server/async-storage/work-store.d.ts","./node_modules/next/dist/server/web/http.d.ts","./node_modules/next/dist/server/route-modules/app-route/shared-modules.d.ts","./node_modules/next/dist/client/components/redirect-status-code.d.ts","./node_modules/next/dist/client/components/redirect-error.d.ts","./node_modules/next/dist/build/templates/app-route.d.ts","./node_modules/next/dist/server/route-modules/app-route/module.d.ts","./node_modules/next/dist/server/route-modules/app-route/module.compiled.d.ts","./node_modules/next/dist/build/segment-config/app/app-segments.d.ts","./node_modules/next/dist/build/utils.d.ts","./node_modules/next/dist/build/turborepo-access-trace/types.d.ts","./node_modules/next/dist/build/turborepo-access-trace/result.d.ts","./node_modules/next/dist/build/turborepo-access-trace/helpers.d.ts","./node_modules/next/dist/build/turborepo-access-trace/index.d.ts","./node_modules/next/dist/export/routes/types.d.ts","./node_modules/next/dist/export/types.d.ts","./node_modules/next/dist/export/worker.d.ts","./node_modules/next/dist/build/worker.d.ts","./node_modules/next/dist/build/index.d.ts","./node_modules/next/dist/server/lib/incremental-cache/index.d.ts","./node_modules/next/dist/server/after/after.d.ts","./node_modules/next/dist/server/after/after-context.d.ts","./node_modules/next/dist/server/app-render/work-async-storage-instance.d.ts","./node_modules/next/dist/server/app-render/work-async-storage.external.d.ts","./node_modules/next/dist/server/request/params.d.ts","./node_modules/next/dist/server/route-matches/route-match.d.ts","./node_modules/next/dist/server/request-meta.d.ts","./node_modules/next/dist/cli/next-test.d.ts","./node_modules/next/dist/server/config-shared.d.ts","./node_modules/next/dist/server/base-http/index.d.ts","./node_modules/next/dist/server/api-utils/index.d.ts","./node_modules/next/dist/types.d.ts","./node_modules/next/dist/shared/lib/html-context.shared-runtime.d.ts","./node_modules/next/dist/shared/lib/utils.d.ts","./node_modules/next/dist/pages/_app.d.ts","./node_modules/next/app.d.ts","./node_modules/next/dist/server/web/spec-extension/unstable-cache.d.ts","./node_modules/next/dist/server/web/spec-extension/revalidate.d.ts","./node_modules/next/dist/server/web/spec-extension/unstable-no-store.d.ts","./node_modules/next/dist/server/use-cache/cache-tag.d.ts","./node_modules/next/cache.d.ts","./node_modules/next/dist/shared/lib/runtime-config.external.d.ts","./node_modules/next/config.d.ts","./node_modules/next/dist/pages/_document.d.ts","./node_modules/next/document.d.ts","./node_modules/next/dist/shared/lib/dynamic.d.ts","./node_modules/next/dynamic.d.ts","./node_modules/next/dist/pages/_error.d.ts","./node_modules/next/error.d.ts","./node_modules/next/dist/shared/lib/head.d.ts","./node_modules/next/head.d.ts","./node_modules/next/dist/server/request/cookies.d.ts","./node_modules/next/dist/server/request/headers.d.ts","./node_modules/next/dist/server/request/draft-mode.d.ts","./node_modules/next/headers.d.ts","./node_modules/next/dist/shared/lib/get-img-props.d.ts","./node_modules/next/dist/client/image-component.d.ts","./node_modules/next/dist/shared/lib/image-external.d.ts","./node_modules/next/image.d.ts","./node_modules/next/dist/client/link.d.ts","./node_modules/next/link.d.ts","./node_modules/next/dist/client/components/redirect.d.ts","./node_modules/next/dist/client/components/not-found.d.ts","./node_modules/next/dist/client/components/forbidden.d.ts","./node_modules/next/dist/client/components/unauthorized.d.ts","./node_modules/next/dist/client/components/unstable-rethrow.server.d.ts","./node_modules/next/dist/client/components/unstable-rethrow.d.ts","./node_modules/next/dist/client/components/navigation.react-server.d.ts","./node_modules/next/dist/client/components/unrecognized-action-error.d.ts","./node_modules/next/dist/client/components/navigation.d.ts","./node_modules/next/navigation.d.ts","./node_modules/next/router.d.ts","./node_modules/next/dist/client/script.d.ts","./node_modules/next/script.d.ts","./node_modules/next/dist/server/web/spec-extension/user-agent.d.ts","./node_modules/next/dist/compiled/@edge-runtime/primitives/url.d.ts","./node_modules/next/dist/server/web/spec-extension/image-response.d.ts","./node_modules/next/dist/compiled/@vercel/og/satori/index.d.ts","./node_modules/next/dist/compiled/@vercel/og/emoji/index.d.ts","./node_modules/next/dist/compiled/@vercel/og/types.d.ts","./node_modules/next/dist/server/after/index.d.ts","./node_modules/next/dist/server/request/root-params.d.ts","./node_modules/next/dist/server/request/connection.d.ts","./node_modules/next/server.d.ts","./node_modules/next/types/global.d.ts","./node_modules/next/types/compiled.d.ts","./node_modules/next/types.d.ts","./node_modules/next/index.d.ts","./node_modules/next/image-types/global.d.ts","./next-env.d.ts","./next.config.ts","./node_modules/source-map-js/source-map.d.ts","./node_modules/postcss/lib/previous-map.d.ts","./node_modules/postcss/lib/input.d.ts","./node_modules/postcss/lib/css-syntax-error.d.ts","./node_modules/postcss/lib/declaration.d.ts","./node_modules/postcss/lib/root.d.ts","./node_modules/postcss/lib/warning.d.ts","./node_modules/postcss/lib/lazy-result.d.ts","./node_modules/postcss/lib/no-work-result.d.ts","./node_modules/postcss/lib/processor.d.ts","./node_modules/postcss/lib/result.d.ts","./node_modules/postcss/lib/document.d.ts","./node_modules/postcss/lib/rule.d.ts","./node_modules/postcss/lib/node.d.ts","./node_modules/postcss/lib/comment.d.ts","./node_modules/postcss/lib/container.d.ts","./node_modules/postcss/lib/at-rule.d.ts","./node_modules/postcss/lib/list.d.ts","./node_modules/postcss/lib/postcss.d.ts","./node_modules/postcss/lib/postcss.d.mts","./node_modules/tailwindcss/types/generated/corepluginlist.d.ts","./node_modules/tailwindcss/types/generated/colors.d.ts","./node_modules/tailwindcss/types/config.d.ts","./node_modules/tailwindcss/types/index.d.ts","./tailwind.config.ts","./node_modules/dotenv/lib/main.d.ts","./node_modules/tmdb-ts/dist/api.d.ts","./node_modules/tmdb-ts/dist/endpoints/base.d.ts","./node_modules/tmdb-ts/dist/types/options.d.ts","./node_modules/tmdb-ts/dist/types/certification.d.ts","./node_modules/tmdb-ts/dist/types/credits.d.ts","./node_modules/tmdb-ts/dist/types/companies.d.ts","./node_modules/tmdb-ts/dist/types/networks.d.ts","./node_modules/tmdb-ts/dist/types/configuration.d.ts","./node_modules/tmdb-ts/dist/types/changes.d.ts","./node_modules/tmdb-ts/dist/types/movies.d.ts","./node_modules/tmdb-ts/dist/types/search.d.ts","./node_modules/tmdb-ts/dist/types/tv-shows.d.ts","./node_modules/tmdb-ts/dist/types/regions.d.ts","./node_modules/tmdb-ts/dist/types/watch-providers.d.ts","./node_modules/tmdb-ts/dist/types/people.d.ts","./node_modules/tmdb-ts/dist/types/discover.d.ts","./node_modules/tmdb-ts/dist/types/review.d.ts","./node_modules/tmdb-ts/dist/types/trending.d.ts","./node_modules/tmdb-ts/dist/types/find.d.ts","./node_modules/tmdb-ts/dist/types/keywords.d.ts","./node_modules/tmdb-ts/dist/types/collections.d.ts","./node_modules/tmdb-ts/dist/types/tv-episode.d.ts","./node_modules/tmdb-ts/dist/types/tv-seasons.d.ts","./node_modules/tmdb-ts/dist/types/index.d.ts","./node_modules/tmdb-ts/dist/types/account.d.ts","./node_modules/tmdb-ts/dist/endpoints/account.d.ts","./node_modules/tmdb-ts/dist/endpoints/certification.d.ts","./node_modules/tmdb-ts/dist/endpoints/changes.d.ts","./node_modules/tmdb-ts/dist/endpoints/credits.d.ts","./node_modules/tmdb-ts/dist/endpoints/search.d.ts","./node_modules/tmdb-ts/dist/endpoints/genre.d.ts","./node_modules/tmdb-ts/dist/endpoints/movies.d.ts","./node_modules/tmdb-ts/dist/endpoints/configuration.d.ts","./node_modules/tmdb-ts/dist/endpoints/tv-shows.d.ts","./node_modules/tmdb-ts/dist/endpoints/discover.d.ts","./node_modules/tmdb-ts/dist/endpoints/people.d.ts","./node_modules/tmdb-ts/dist/endpoints/review.d.ts","./node_modules/tmdb-ts/dist/endpoints/trending.d.ts","./node_modules/tmdb-ts/dist/endpoints/find.d.ts","./node_modules/tmdb-ts/dist/endpoints/keywords.d.ts","./node_modules/tmdb-ts/dist/endpoints/collections.d.ts","./node_modules/tmdb-ts/dist/endpoints/tv-seasons.d.ts","./node_modules/tmdb-ts/dist/endpoints/tv-episode.d.ts","./node_modules/tmdb-ts/dist/endpoints/watch-providers.d.ts","./node_modules/tmdb-ts/dist/endpoints/index.d.ts","./node_modules/tmdb-ts/dist/endpoints/companies.d.ts","./node_modules/tmdb-ts/dist/endpoints/networks.d.ts","./node_modules/tmdb-ts/dist/tmdb.d.ts","./node_modules/tmdb-ts/dist/utils/getimagepath.d.ts","./node_modules/tmdb-ts/dist/utils/parseoptions.d.ts","./node_modules/tmdb-ts/dist/utils/index.d.ts","./node_modules/tmdb-ts/dist/index.d.ts","./node_modules/ruvector/dist/types.d.ts","./node_modules/ruvector/dist/core/gnn-wrapper.d.ts","./node_modules/ruvector/dist/core/attention-fallbacks.d.ts","./node_modules/ruvector/dist/core/agentdb-fast.d.ts","./node_modules/ruvector/dist/core/sona-wrapper.d.ts","./node_modules/ruvector/dist/core/index.d.ts","./node_modules/ruvector/dist/services/embedding-service.d.ts","./node_modules/ruvector/dist/services/index.d.ts","./node_modules/ruvector/dist/index.d.ts","./scripts/sync-embeddings.ts","./src/types/media.ts","./src/lib/tmdb.ts","./src/app/api/discover/route.ts","./src/lib/vector-search.ts","./src/app/api/health/route.ts","./src/app/api/movies/[id]/route.ts","./node_modules/zod/v3/helpers/typealiases.d.cts","./node_modules/zod/v3/helpers/util.d.cts","./node_modules/zod/v3/index.d.cts","./node_modules/zod/v3/zoderror.d.cts","./node_modules/zod/v3/locales/en.d.cts","./node_modules/zod/v3/errors.d.cts","./node_modules/zod/v3/helpers/parseutil.d.cts","./node_modules/zod/v3/helpers/enumutil.d.cts","./node_modules/zod/v3/helpers/errorutil.d.cts","./node_modules/zod/v3/helpers/partialutil.d.cts","./node_modules/zod/v3/standard-schema.d.cts","./node_modules/zod/v3/types.d.cts","./node_modules/zod/v3/external.d.cts","./node_modules/zod/index.d.cts","./src/lib/preferences.ts","./src/app/api/preferences/route.ts","./src/app/api/recommendations/route.ts","./node_modules/@types/json-schema/index.d.ts","./node_modules/@ai-sdk/provider/dist/index.d.ts","./node_modules/@ai-sdk/provider-utils/dist/index.d.ts","./node_modules/@ai-sdk/ui-utils/dist/index.d.ts","./node_modules/@opentelemetry/api/build/src/baggage/internal/symbol.d.ts","./node_modules/@opentelemetry/api/build/src/baggage/types.d.ts","./node_modules/@opentelemetry/api/build/src/baggage/utils.d.ts","./node_modules/@opentelemetry/api/build/src/common/exception.d.ts","./node_modules/@opentelemetry/api/build/src/common/time.d.ts","./node_modules/@opentelemetry/api/build/src/common/attributes.d.ts","./node_modules/@opentelemetry/api/build/src/context/types.d.ts","./node_modules/@opentelemetry/api/build/src/context/context.d.ts","./node_modules/@opentelemetry/api/build/src/api/context.d.ts","./node_modules/@opentelemetry/api/build/src/diag/types.d.ts","./node_modules/@opentelemetry/api/build/src/diag/consolelogger.d.ts","./node_modules/@opentelemetry/api/build/src/api/diag.d.ts","./node_modules/@opentelemetry/api/build/src/metrics/observableresult.d.ts","./node_modules/@opentelemetry/api/build/src/metrics/metric.d.ts","./node_modules/@opentelemetry/api/build/src/metrics/meter.d.ts","./node_modules/@opentelemetry/api/build/src/metrics/noopmeter.d.ts","./node_modules/@opentelemetry/api/build/src/metrics/meterprovider.d.ts","./node_modules/@opentelemetry/api/build/src/api/metrics.d.ts","./node_modules/@opentelemetry/api/build/src/propagation/textmappropagator.d.ts","./node_modules/@opentelemetry/api/build/src/baggage/context-helpers.d.ts","./node_modules/@opentelemetry/api/build/src/api/propagation.d.ts","./node_modules/@opentelemetry/api/build/src/trace/attributes.d.ts","./node_modules/@opentelemetry/api/build/src/trace/trace_state.d.ts","./node_modules/@opentelemetry/api/build/src/trace/span_context.d.ts","./node_modules/@opentelemetry/api/build/src/trace/link.d.ts","./node_modules/@opentelemetry/api/build/src/trace/status.d.ts","./node_modules/@opentelemetry/api/build/src/trace/span.d.ts","./node_modules/@opentelemetry/api/build/src/trace/span_kind.d.ts","./node_modules/@opentelemetry/api/build/src/trace/spanoptions.d.ts","./node_modules/@opentelemetry/api/build/src/trace/tracer.d.ts","./node_modules/@opentelemetry/api/build/src/trace/tracer_options.d.ts","./node_modules/@opentelemetry/api/build/src/trace/proxytracer.d.ts","./node_modules/@opentelemetry/api/build/src/trace/tracer_provider.d.ts","./node_modules/@opentelemetry/api/build/src/trace/proxytracerprovider.d.ts","./node_modules/@opentelemetry/api/build/src/trace/samplingresult.d.ts","./node_modules/@opentelemetry/api/build/src/trace/sampler.d.ts","./node_modules/@opentelemetry/api/build/src/trace/trace_flags.d.ts","./node_modules/@opentelemetry/api/build/src/trace/internal/utils.d.ts","./node_modules/@opentelemetry/api/build/src/trace/spancontext-utils.d.ts","./node_modules/@opentelemetry/api/build/src/trace/invalid-span-constants.d.ts","./node_modules/@opentelemetry/api/build/src/trace/context-utils.d.ts","./node_modules/@opentelemetry/api/build/src/api/trace.d.ts","./node_modules/@opentelemetry/api/build/src/context-api.d.ts","./node_modules/@opentelemetry/api/build/src/diag-api.d.ts","./node_modules/@opentelemetry/api/build/src/metrics-api.d.ts","./node_modules/@opentelemetry/api/build/src/propagation-api.d.ts","./node_modules/@opentelemetry/api/build/src/trace-api.d.ts","./node_modules/@opentelemetry/api/build/src/index.d.ts","./node_modules/ai/dist/index.d.ts","./node_modules/@ai-sdk/openai/dist/index.d.ts","./node_modules/@ai-sdk/google/dist/index.d.ts","./src/lib/natural-language-search.ts","./src/app/api/search/route.ts","./src/app/api/tv/[id]/route.ts","./src/components/detail/backdrop.tsx","./src/components/detail/detailhero.tsx","./src/components/detail/castsection.tsx","./src/components/detail/videosection.tsx","./src/components/mediacard.tsx","./src/components/detail/relatedsection.tsx","./src/components/detail/index.ts","./node_modules/zustand/esm/vanilla.d.mts","./node_modules/zustand/esm/react.d.mts","./node_modules/zustand/esm/index.d.mts","./src/lib/discovery-store.ts","./node_modules/@tanstack/query-core/build/modern/subscribable.d.ts","./node_modules/@tanstack/query-core/build/modern/focusmanager.d.ts","./node_modules/@tanstack/query-core/build/modern/removable.d.ts","./node_modules/@tanstack/query-core/build/modern/hydration-dkskbgqq.d.ts","./node_modules/@tanstack/query-core/build/modern/infinitequeryobserver.d.ts","./node_modules/@tanstack/query-core/build/modern/notifymanager.d.ts","./node_modules/@tanstack/query-core/build/modern/onlinemanager.d.ts","./node_modules/@tanstack/query-core/build/modern/queriesobserver.d.ts","./node_modules/@tanstack/query-core/build/modern/timeoutmanager.d.ts","./node_modules/@tanstack/query-core/build/modern/streamedquery.d.ts","./node_modules/@tanstack/query-core/build/modern/index.d.ts","./node_modules/@tanstack/react-query/build/modern/types.d.ts","./node_modules/@tanstack/react-query/build/modern/usequeries.d.ts","./node_modules/@tanstack/react-query/build/modern/queryoptions.d.ts","./node_modules/@tanstack/react-query/build/modern/usequery.d.ts","./node_modules/@tanstack/react-query/build/modern/usesuspensequery.d.ts","./node_modules/@tanstack/react-query/build/modern/usesuspenseinfinitequery.d.ts","./node_modules/@tanstack/react-query/build/modern/usesuspensequeries.d.ts","./node_modules/@tanstack/react-query/build/modern/useprefetchquery.d.ts","./node_modules/@tanstack/react-query/build/modern/useprefetchinfinitequery.d.ts","./node_modules/@tanstack/react-query/build/modern/infinitequeryoptions.d.ts","./node_modules/@tanstack/react-query/build/modern/queryclientprovider.d.ts","./node_modules/@tanstack/react-query/build/modern/queryerrorresetboundary.d.ts","./node_modules/@tanstack/react-query/build/modern/hydrationboundary.d.ts","./node_modules/@tanstack/react-query/build/modern/useisfetching.d.ts","./node_modules/@tanstack/react-query/build/modern/usemutationstate.d.ts","./node_modules/@tanstack/react-query/build/modern/usemutation.d.ts","./node_modules/@tanstack/react-query/build/modern/mutationoptions.d.ts","./node_modules/@tanstack/react-query/build/modern/useinfinitequery.d.ts","./node_modules/@tanstack/react-query/build/modern/isrestoringprovider.d.ts","./node_modules/@tanstack/react-query/build/modern/index.d.ts","./src/app/providers.tsx","./src/app/layout.tsx","./src/components/searchbar.tsx","./src/components/trendingsection.tsx","./src/components/recommendationssection.tsx","./src/components/adminwidget.tsx","./src/app/page.tsx","./src/app/movie/[id]/page.tsx","./src/app/search/page.tsx","./src/app/tv/[id]/page.tsx","./.next/types/cache-life.d.ts","./.next/types/validator.ts","./.next/types/app/layout.ts","./.next/types/app/page.ts","./.next/types/app/api/discover/route.ts","./.next/types/app/api/movies/[id]/route.ts","./.next/types/app/api/recommendations/route.ts","./.next/types/app/movie/[id]/page.ts","./node_modules/@babel/types/lib/index.d.ts","./node_modules/@types/babel__generator/index.d.ts","./node_modules/@babel/parser/typings/babel-parser.d.ts","./node_modules/@types/babel__template/index.d.ts","./node_modules/@types/babel__traverse/index.d.ts","./node_modules/@types/babel__core/index.d.ts","./node_modules/@types/diff-match-patch/index.d.ts","./node_modules/@types/estree/index.d.ts","./node_modules/@types/json5/index.d.ts"],"fileIdsList":[[100,149,166,167,496,594],[100,149,166,167,496,597],[100,149,166,167,496,614],[100,149,166,167,342,716],[100,149,166,167,342,722],[100,149,166,167,342,721],[100,149,166,167,449,450,451,452],[100,149,166,167],[83,100,149,166,167,496,499,594,596,597,613,614,671,672,716,721,722,723,724],[83,100,149,166,167,500,501],[100,149,166,167,500],[100,149,166,167,611,616,617],[100,149,166,167,611,616],[100,149,166,167,615],[100,149,166,167,611,615,616,617],[100,149,166,167,733],[100,149,166,167,625],[100,149,166,167,628],[100,149,166,167,633,635],[100,149,166,167,621,625,637,638],[100,149,166,167,648,651,657,659],[100,149,166,167,620,625],[100,149,166,167,619],[100,149,166,167,620],[100,149,166,167,627],[100,149,166,167,630],[100,149,166,167,620,621,622,623,624,625,626,627,628,629,630,631,632,633,634,635,636,637,639,640,641,642,643,644,645,646,647,648,649,650,651,652,653,654,655,656,657,658,660,661,662,663,664,665],[100,149,166,167,636],[100,149,166,167,632],[100,149,166,167,633],[100,149,166,167,624,625,631],[100,149,166,167,632,633],[100,149,166,167,639],[100,149,166,167,660],[100,149,166,167,624],[100,149,166,167,625,642,645],[100,149,166,167,641],[100,149,166,167,642],[100,149,166,167,640,642],[100,149,166,167,625,645,647,648,649],[100,149,166,167,648,649,651],[100,149,166,167,625,640,643,646,653],[100,149,166,167,640,641],[100,149,166,167,622,623,640,642,643,644],[100,149,166,167,642,645],[100,149,166,167,623,640,643,646],[100,149,166,167,625,645,647],[100,149,166,167,648,649],[100,149,166,167,684],[100,149,166,167,684,686],[100,149,166,167,684,685,686,687,688,689,690,691,692,693],[100,149,166,167,684,686,687],[86,100,149,166,167,694],[86,100,149,166,167,267,694,695,696,697,698,699,700,701,702,703,704,705,706,707,708,709,710,711,712,713],[100,149,166,167,694,695],[86,100,149,166,167],[86,100,149,166,167,267],[100,149,166,167,694],[100,149,166,167,694,695,704],[100,149,166,167,694,695,697],[100,149,166,167,733,734,735,736,737],[100,149,166,167,733,735],[100,146,147,149,166,167],[100,148,149,166,167],[149,166,167],[100,149,154,166,167,184],[100,149,150,155,160,166,167,169,181,192],[100,149,150,151,160,166,167,169],[95,96,97,100,149,166,167],[100,149,152,166,167,193],[100,149,153,154,161,166,167,170],[100,149,154,166,167,181,189],[100,149,155,157,160,166,167,169],[100,148,149,156,166,167],[100,149,157,158,166,167],[100,149,159,160,166,167],[100,148,149,160,166,167],[100,149,160,161,162,166,167,181,192],[100,149,160,161,162,166,167,176,181,184],[100,142,149,157,160,163,166,167,169,181,192],[100,149,160,161,163,164,166,167,169,181,189,192],[100,149,163,165,166,167,181,189,192],[98,99,100,101,102,103,104,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198],[100,149,160,166,167],[100,149,166,167,168,192],[100,149,157,160,166,167,169,181],[100,149,166,167,170],[100,149,166,167,171],[100,148,149,166,167,172],[100,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198],[100,149,166,167,174],[100,149,166,167,175],[100,149,160,166,167,176,177],[100,149,166,167,176,178,193,195],[100,149,161,166,167],[100,149,160,166,167,181,182,184],[100,149,166,167,183,184],[100,149,166,167,181,182],[100,149,166,167,184],[100,149,166,167,185],[100,146,149,166,167,181,186],[100,149,160,166,167,187,188],[100,149,166,167,187,188],[100,149,154,166,167,169,181,189],[100,149,166,167,190],[100,149,166,167,169,191],[100,149,163,166,167,175,192],[100,149,154,166,167,193],[100,149,166,167,181,194],[100,149,166,167,168,195],[100,149,166,167,196],[100,142,149,166,167],[100,142,149,160,162,166,167,172,181,184,192,194,195,197],[100,149,166,167,181,198],[86,90,100,149,166,167,200,201,202,204,444,492],[86,90,100,149,166,167,200,201,202,203,359,444,492],[86,90,100,149,166,167,200,201,203,204,444,492],[86,100,149,166,167,204,359,360],[86,100,149,166,167,204,359],[86,90,100,149,166,167,201,202,203,204,444,492],[86,90,100,149,166,167,200,202,203,204,444,492],[84,85,100,149,166,167],[100,149,163,166,167,611,616,617,618,666],[100,149,166,167,192,199],[92,100,149,166,167],[100,149,166,167,447],[100,149,166,167,454],[100,149,166,167,208,222,223,224,226,441],[100,149,166,167,208,247,249,251,252,255,441,443],[100,149,166,167,208,212,214,215,216,217,218,430,441,443],[100,149,166,167,441],[100,149,166,167,223,325,411,420,437],[100,149,166,167,208],[100,149,166,167,205,437],[100,149,166,167,259],[100,149,166,167,258,441,443],[100,149,163,166,167,307,325,354,498],[100,149,163,166,167,318,334,420,436],[100,149,163,166,167,372],[100,149,166,167,424],[100,149,166,167,423,424,425],[100,149,166,167,423],[94,100,149,163,166,167,205,208,212,215,219,220,221,223,227,235,236,365,390,421,441,444],[100,149,166,167,208,225,243,247,248,253,254,441,498],[100,149,166,167,225,498],[100,149,166,167,236,243,305,441,498],[100,149,166,167,498],[100,149,166,167,208,225,226,498],[100,149,166,167,250,498],[100,149,166,167,219,422,429],[100,149,166,167,175,267,437],[100,149,166,167,267,437],[86,100,149,166,167,326],[100,149,166,167,322,370,437,480,481],[100,149,166,167,417,474,475,476,477,479],[100,149,166,167,416],[100,149,166,167,416,417],[100,149,166,167,216,366,367,368],[100,149,166,167,366,369,370],[100,149,166,167,478],[100,149,166,167,366,370],[86,100,149,166,167,209,468],[86,100,149,166,167,192],[86,100,149,166,167,225,295],[86,100,149,166,167,225],[100,149,166,167,293,297],[86,100,149,166,167,294,446],[86,90,100,149,163,166,167,199,200,201,202,203,204,444,490,491],[100,149,163,166,167],[100,149,163,166,167,212,274,366,376,391,411,426,427,441,442,498],[100,149,166,167,235,428],[100,149,166,167,444],[100,149,166,167,207],[86,100,149,166,167,307,321,333,343,345,436],[100,149,166,167,175,307,321,342,343,344,436,497],[100,149,166,167,336,337,338,339,340,341],[100,149,166,167,338],[100,149,166,167,342],[100,149,166,167,265,266,267,269],[86,100,149,166,167,260,261,262,268],[100,149,166,167,265,268],[100,149,166,167,263],[100,149,166,167,264],[86,100,149,166,167,267,294,446],[86,100,149,166,167,267,445,446],[86,100,149,166,167,267,446],[100,149,166,167,391,433],[100,149,166,167,433],[100,149,163,166,167,442,446],[100,149,166,167,330],[100,148,149,166,167,329],[100,149,166,167,237,275,313,315,317,318,319,320,363,366,436,439,442],[100,149,166,167,237,351,366,370],[100,149,166,167,318,436],[86,100,149,166,167,318,327,328,330,331,332,333,334,335,346,347,348,349,350,352,353,436,437,498],[100,149,166,167,312],[100,149,163,166,167,175,237,238,274,289,319,363,364,365,370,391,411,432,441,442,443,444,498],[100,149,166,167,436],[100,148,149,166,167,223,316,319,365,432,434,435,442],[100,149,166,167,318],[100,148,149,166,167,274,279,308,309,310,311,312,313,314,315,317,436,437],[100,149,163,166,167,279,280,308,442,443],[100,149,166,167,223,365,366,391,432,436,442],[100,149,163,166,167,441,443],[100,149,163,166,167,181,439,442,443],[100,149,163,166,167,175,192,205,212,225,237,238,240,275,276,281,286,289,315,319,366,376,378,381,383,386,387,388,389,390,411,431,432,437,439,441,442,443],[100,149,163,166,167,181],[100,149,166,167,208,209,210,212,217,220,225,243,431,439,440,444,446,498],[100,149,163,166,167,181,192,255,257,259,260,261,262,269,498],[100,149,166,167,175,192,205,247,257,285,286,287,288,315,366,381,390,391,397,400,401,411,432,437,439],[100,149,166,167,219,220,235,365,390,432,441],[100,149,163,166,167,192,209,212,315,395,439,441],[100,149,166,167,306],[100,149,163,166,167,398,399,408],[100,149,166,167,439,441],[100,149,166,167,313,316],[100,149,166,167,315,319,431,446],[100,149,163,166,167,175,241,247,288,381,391,397,400,403,439],[100,149,163,166,167,219,235,247,404],[100,149,166,167,208,240,406,431,441],[100,149,163,166,167,192,441],[100,149,163,166,167,225,239,240,241,252,270,405,407,431,441],[94,100,149,166,167,237,319,410,444,446],[100,149,163,166,167,175,192,212,219,227,235,238,275,281,285,286,287,288,289,315,366,378,391,392,394,396,411,431,432,437,438,439,446],[100,149,163,166,167,181,219,397,402,408,439],[100,149,166,167,230,231,232,233,234],[100,149,166,167,276,382],[100,149,166,167,384],[100,149,166,167,382],[100,149,166,167,384,385],[100,149,163,166,167,212,215,216,274,442],[100,149,163,166,167,175,207,209,237,275,289,319,374,375,411,439,443,444,446],[100,149,163,166,167,175,192,211,216,315,375,438,442],[100,149,166,167,308],[100,149,166,167,309],[100,149,166,167,310],[100,149,166,167,437],[100,149,166,167,256,272],[100,149,163,166,167,212,256,275],[100,149,166,167,271,272],[100,149,166,167,273],[100,149,166,167,256,257],[100,149,166,167,256,290],[100,149,166,167,256],[100,149,166,167,276,380,438],[100,149,166,167,379],[100,149,166,167,257,437,438],[100,149,166,167,377,438],[100,149,166,167,257,437],[100,149,166,167,363],[100,149,166,167,212,217,275,304,307,313,315,319,321,324,355,358,362,366,410,431,439,442],[100,149,166,167,298,301,302,303,322,323,370],[86,100,149,166,167,202,204,267,356,357],[86,100,149,166,167,202,204,267,356,357,361],[100,149,166,167,419],[100,149,166,167,223,280,318,319,330,334,366,410,412,413,414,415,417,418,421,431,436,441],[100,149,166,167,370],[100,149,166,167,374],[100,149,163,166,167,275,291,371,373,376,410,439,444,446],[100,149,166,167,298,299,300,301,302,303,322,323,370,445],[94,100,149,163,166,167,175,192,238,256,257,289,315,319,408,409,411,431,432,441,442,444],[100,149,166,167,280,282,285,432],[100,149,163,166,167,276,441],[100,149,166,167,279,318],[100,149,166,167,278],[100,149,166,167,280,281],[100,149,166,167,277,279,441],[100,149,163,166,167,211,280,282,283,284,441,442],[86,100,149,166,167,366,367,369],[100,149,166,167,242],[86,100,149,166,167,209],[86,100,149,166,167,437],[86,94,100,149,166,167,289,319,444,446],[100,149,166,167,209,468,469],[86,100,149,166,167,297],[86,100,149,166,167,175,192,207,254,292,294,296,446],[100,149,166,167,225,437,442],[100,149,166,167,393,437],[100,149,166,167,366],[86,100,149,161,163,166,167,175,207,243,249,297,444,445],[86,100,149,166,167,200,201,202,203,204,444,492],[86,87,88,89,90,100,149,166,167],[100,149,154,166,167],[100,149,166,167,244,245,246],[100,149,166,167,244],[86,90,100,149,163,165,166,167,175,199,200,201,202,203,204,205,207,238,342,403,441,443,446,492],[100,149,166,167,456],[100,149,166,167,458],[100,149,166,167,460],[100,149,166,167,462],[100,149,166,167,464,465,466],[100,149,166,167,470],[91,93,100,149,166,167,448,453,455,457,459,461,463,467,471,473,483,484,486,496,497,498,499],[100,149,166,167,472],[100,149,166,167,482],[100,149,166,167,294],[100,149,166,167,485],[100,148,149,166,167,280,282,283,285,333,437,487,488,489,492,493,494,495],[100,149,166,167,199],[100,149,166,167,519],[100,149,166,167,517,519],[100,149,166,167,508,516,517,518,520,522],[100,149,166,167,506],[100,149,166,167,509,514,519,522],[100,149,166,167,505,522],[100,149,166,167,509,510,513,514,515,522],[100,149,166,167,509,510,511,513,514,522],[100,149,166,167,506,507,508,509,510,514,515,516,518,519,520,522],[100,149,166,167,522],[100,149,166,167,504,506,507,508,509,510,511,513,514,515,516,517,518,519,520,521],[100,149,166,167,504,522],[100,149,166,167,509,511,512,514,515,522],[100,149,166,167,513,522],[100,149,166,167,514,515,519,522],[100,149,166,167,507,517],[100,149,166,167,583,584,585,586],[100,149,166,167,582,587,589],[100,149,166,167,588],[100,149,166,167,181,199],[100,149,166,167,524,525],[100,149,166,167,523,526],[100,149,166,167,531,554],[100,149,166,167,530],[100,149,166,167,531,533],[100,149,166,167,531,553],[100,149,166,167,531,535],[100,149,166,167,531,537],[100,149,166,167,531,534],[100,149,166,167,555,556,557,558,559,560,561,562,563,564,565,566,567,568,569,570,571,572,573],[100,149,166,167,531,535,581],[100,149,166,167,531,540,553],[100,149,166,167,531,581],[100,149,166,167,553,577,580],[100,149,166,167,574,575,576],[100,149,166,167,553],[100,149,166,167,532,533,534,535,536,537,538,539,540,541,543,544,545,546,547,548,549,550,551,552],[100,149,166,167,532,553],[100,149,166,167,542,553],[100,149,166,167,578,579],[100,114,118,149,166,167,192],[100,114,149,166,167,181,192],[100,109,149,166,167],[100,111,114,149,166,167,189,192],[100,149,166,167,169,189],[100,109,149,166,167,199],[100,111,114,149,166,167,169,192],[100,106,107,110,113,149,160,166,167,181,192],[100,114,121,149,166,167],[100,106,112,149,166,167],[100,114,135,136,149,166,167],[100,110,114,149,166,167,184,192,199],[100,135,149,166,167,199],[100,108,109,149,166,167,199],[100,114,149,166,167],[100,108,109,110,111,112,113,114,115,116,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,136,137,138,139,140,141,149,166,167],[100,114,129,149,166,167],[100,114,121,122,149,166,167],[100,112,114,122,123,149,166,167],[100,113,149,166,167],[100,106,109,114,149,166,167],[100,114,118,122,123,149,166,167],[100,118,149,166,167],[100,112,114,117,149,166,167,192],[100,106,111,114,121,149,166,167],[100,149,166,167,181],[100,109,114,135,149,166,167,197,199],[100,149,166,167,610],[100,149,166,167,601,602],[100,149,166,167,598,599,601,603,604,609],[100,149,166,167,599,601],[100,149,166,167,609],[100,149,166,167,601],[100,149,166,167,598,599,601,604,605,606,607,608],[100,149,166,167,598,599,600],[100,149,166,167,680,681],[100,149,166,167,680],[100,149,166,167,529,581,590],[100,149,166,167,496,593],[100,149,166,167,496,593,595],[100,149,166,167,496,611,612],[100,149,166,167,496,592,593,595,611],[100,149,166,167,496,611,670],[100,149,166,167,500,715],[86,100,149,166,167,473,592,593,673,674,675,676,678,714],[86,100,149,166,167,683,717,718,719,720],[86,100,149,166,167,714],[86,100,149,166,167,473,483,592,677,714,717],[86,100,149,166,167,683],[100,149,166,167,471,593],[100,149,166,167,471,473,592,593],[100,149,166,167,673,674,675,676,678],[86,100,149,166,167,592,677],[100,149,166,167,593],[100,149,166,167,592,677,714],[86,100,149,166,167,483],[100,149,166,167,682],[100,149,166,167,592,593,595,611,667,668,669],[100,149,166,167,592],[100,149,166,167,581,592],[100,149,166,167,590,592],[100,149,166,167,527]],"fileInfos":[{"version":"c430d44666289dae81f30fa7b2edebf186ecc91a2d4c71266ea6ae76388792e1","affectsGlobalScope":true,"impliedFormat":1},{"version":"45b7ab580deca34ae9729e97c13cfd999df04416a79116c3bfb483804f85ded4","impliedFormat":1},{"version":"3facaf05f0c5fc569c5649dd359892c98a85557e3e0c847964caeb67076f4d75","impliedFormat":1},{"version":"e44bb8bbac7f10ecc786703fe0a6a4b952189f908707980ba8f3c8975a760962","impliedFormat":1},{"version":"5e1c4c362065a6b95ff952c0eab010f04dcd2c3494e813b493ecfd4fcb9fc0d8","impliedFormat":1},{"version":"68d73b4a11549f9c0b7d352d10e91e5dca8faa3322bfb77b661839c42b1ddec7","impliedFormat":1},{"version":"5efce4fc3c29ea84e8928f97adec086e3dc876365e0982cc8479a07954a3efd4","impliedFormat":1},{"version":"feecb1be483ed332fad555aff858affd90a48ab19ba7272ee084704eb7167569","impliedFormat":1},{"version":"ee7bad0c15b58988daa84371e0b89d313b762ab83cb5b31b8a2d1162e8eb41c2","impliedFormat":1},{"version":"27bdc30a0e32783366a5abeda841bc22757c1797de8681bbe81fbc735eeb1c10","impliedFormat":1},{"version":"8fd575e12870e9944c7e1d62e1f5a73fcf23dd8d3a321f2a2c74c20d022283fe","impliedFormat":1},{"version":"2ab096661c711e4a81cc464fa1e6feb929a54f5340b46b0a07ac6bbf857471f0","impliedFormat":1},{"version":"080941d9f9ff9307f7e27a83bcd888b7c8270716c39af943532438932ec1d0b9","affectsGlobalScope":true,"impliedFormat":1},{"version":"2e80ee7a49e8ac312cc11b77f1475804bee36b3b2bc896bead8b6e1266befb43","affectsGlobalScope":true,"impliedFormat":1},{"version":"c57796738e7f83dbc4b8e65132f11a377649c00dd3eee333f672b8f0a6bea671","affectsGlobalScope":true,"impliedFormat":1},{"version":"dc2df20b1bcdc8c2d34af4926e2c3ab15ffe1160a63e58b7e09833f616efff44","affectsGlobalScope":true,"impliedFormat":1},{"version":"515d0b7b9bea2e31ea4ec968e9edd2c39d3eebf4a2d5cbd04e88639819ae3b71","affectsGlobalScope":true,"impliedFormat":1},{"version":"0559b1f683ac7505ae451f9a96ce4c3c92bdc71411651ca6ddb0e88baaaad6a3","affectsGlobalScope":true,"impliedFormat":1},{"version":"0dc1e7ceda9b8b9b455c3a2d67b0412feab00bd2f66656cd8850e8831b08b537","affectsGlobalScope":true,"impliedFormat":1},{"version":"ce691fb9e5c64efb9547083e4a34091bcbe5bdb41027e310ebba8f7d96a98671","affectsGlobalScope":true,"impliedFormat":1},{"version":"8d697a2a929a5fcb38b7a65594020fcef05ec1630804a33748829c5ff53640d0","affectsGlobalScope":true,"impliedFormat":1},{"version":"4ff2a353abf8a80ee399af572debb8faab2d33ad38c4b4474cff7f26e7653b8d","affectsGlobalScope":true,"impliedFormat":1},{"version":"fb0f136d372979348d59b3f5020b4cdb81b5504192b1cacff5d1fbba29378aa1","affectsGlobalScope":true,"impliedFormat":1},{"version":"d15bea3d62cbbdb9797079416b8ac375ae99162a7fba5de2c6c505446486ac0a","affectsGlobalScope":true,"impliedFormat":1},{"version":"68d18b664c9d32a7336a70235958b8997ebc1c3b8505f4f1ae2b7e7753b87618","affectsGlobalScope":true,"impliedFormat":1},{"version":"eb3d66c8327153d8fa7dd03f9c58d351107fe824c79e9b56b462935176cdf12a","affectsGlobalScope":true,"impliedFormat":1},{"version":"38f0219c9e23c915ef9790ab1d680440d95419ad264816fa15009a8851e79119","affectsGlobalScope":true,"impliedFormat":1},{"version":"69ab18c3b76cd9b1be3d188eaf8bba06112ebbe2f47f6c322b5105a6fbc45a2e","affectsGlobalScope":true,"impliedFormat":1},{"version":"a680117f487a4d2f30ea46f1b4b7f58bef1480456e18ba53ee85c2746eeca012","affectsGlobalScope":true,"impliedFormat":1},{"version":"2f11ff796926e0832f9ae148008138ad583bd181899ab7dd768a2666700b1893","affectsGlobalScope":true,"impliedFormat":1},{"version":"4de680d5bb41c17f7f68e0419412ca23c98d5749dcaaea1896172f06435891fc","affectsGlobalScope":true,"impliedFormat":1},{"version":"954296b30da6d508a104a3a0b5d96b76495c709785c1d11610908e63481ee667","affectsGlobalScope":true,"impliedFormat":1},{"version":"ac9538681b19688c8eae65811b329d3744af679e0bdfa5d842d0e32524c73e1c","affectsGlobalScope":true,"impliedFormat":1},{"version":"0a969edff4bd52585473d24995c5ef223f6652d6ef46193309b3921d65dd4376","affectsGlobalScope":true,"impliedFormat":1},{"version":"9e9fbd7030c440b33d021da145d3232984c8bb7916f277e8ffd3dc2e3eae2bdb","affectsGlobalScope":true,"impliedFormat":1},{"version":"811ec78f7fefcabbda4bfa93b3eb67d9ae166ef95f9bff989d964061cbf81a0c","affectsGlobalScope":true,"impliedFormat":1},{"version":"717937616a17072082152a2ef351cb51f98802fb4b2fdabd32399843875974ca","affectsGlobalScope":true,"impliedFormat":1},{"version":"d7e7d9b7b50e5f22c915b525acc5a49a7a6584cf8f62d0569e557c5cfc4b2ac2","affectsGlobalScope":true,"impliedFormat":1},{"version":"71c37f4c9543f31dfced6c7840e068c5a5aacb7b89111a4364b1d5276b852557","affectsGlobalScope":true,"impliedFormat":1},{"version":"576711e016cf4f1804676043e6a0a5414252560eb57de9faceee34d79798c850","affectsGlobalScope":true,"impliedFormat":1},{"version":"89c1b1281ba7b8a96efc676b11b264de7a8374c5ea1e6617f11880a13fc56dc6","affectsGlobalScope":true,"impliedFormat":1},{"version":"74f7fa2d027d5b33eb0471c8e82a6c87216223181ec31247c357a3e8e2fddc5b","affectsGlobalScope":true,"impliedFormat":1},{"version":"d6d7ae4d1f1f3772e2a3cde568ed08991a8ae34a080ff1151af28b7f798e22ca","affectsGlobalScope":true,"impliedFormat":1},{"version":"063600664504610fe3e99b717a1223f8b1900087fab0b4cad1496a114744f8df","affectsGlobalScope":true,"impliedFormat":1},{"version":"934019d7e3c81950f9a8426d093458b65d5aff2c7c1511233c0fd5b941e608ab","affectsGlobalScope":true,"impliedFormat":1},{"version":"52ada8e0b6e0482b728070b7639ee42e83a9b1c22d205992756fe020fd9f4a47","affectsGlobalScope":true,"impliedFormat":1},{"version":"3bdefe1bfd4d6dee0e26f928f93ccc128f1b64d5d501ff4a8cf3c6371200e5e6","affectsGlobalScope":true,"impliedFormat":1},{"version":"59fb2c069260b4ba00b5643b907ef5d5341b167e7d1dbf58dfd895658bda2867","affectsGlobalScope":true,"impliedFormat":1},{"version":"639e512c0dfc3fad96a84caad71b8834d66329a1f28dc95e3946c9b58176c73a","affectsGlobalScope":true,"impliedFormat":1},{"version":"368af93f74c9c932edd84c58883e736c9e3d53cec1fe24c0b0ff451f529ceab1","affectsGlobalScope":true,"impliedFormat":1},{"version":"af3dd424cf267428f30ccfc376f47a2c0114546b55c44d8c0f1d57d841e28d74","affectsGlobalScope":true,"impliedFormat":1},{"version":"995c005ab91a498455ea8dfb63aa9f83fa2ea793c3d8aa344be4a1678d06d399","affectsGlobalScope":true,"impliedFormat":1},{"version":"959d36cddf5e7d572a65045b876f2956c973a586da58e5d26cde519184fd9b8a","affectsGlobalScope":true,"impliedFormat":1},{"version":"965f36eae237dd74e6cca203a43e9ca801ce38824ead814728a2807b1910117d","affectsGlobalScope":true,"impliedFormat":1},{"version":"3925a6c820dcb1a06506c90b1577db1fdbf7705d65b62b99dce4be75c637e26b","affectsGlobalScope":true,"impliedFormat":1},{"version":"0a3d63ef2b853447ec4f749d3f368ce642264246e02911fcb1590d8c161b8005","affectsGlobalScope":true,"impliedFormat":1},{"version":"8cdf8847677ac7d20486e54dd3fcf09eda95812ac8ace44b4418da1bbbab6eb8","affectsGlobalScope":true,"impliedFormat":1},{"version":"8444af78980e3b20b49324f4a16ba35024fef3ee069a0eb67616ea6ca821c47a","affectsGlobalScope":true,"impliedFormat":1},{"version":"3287d9d085fbd618c3971944b65b4be57859f5415f495b33a6adc994edd2f004","affectsGlobalScope":true,"impliedFormat":1},{"version":"b4b67b1a91182421f5df999988c690f14d813b9850b40acd06ed44691f6727ad","affectsGlobalScope":true,"impliedFormat":1},{"version":"df83c2a6c73228b625b0beb6669c7ee2a09c914637e2d35170723ad49c0f5cd4","affectsGlobalScope":true,"impliedFormat":1},{"version":"436aaf437562f276ec2ddbee2f2cdedac7664c1e4c1d2c36839ddd582eeb3d0a","affectsGlobalScope":true,"impliedFormat":1},{"version":"8e3c06ea092138bf9fa5e874a1fdbc9d54805d074bee1de31b99a11e2fec239d","affectsGlobalScope":true,"impliedFormat":1},{"version":"87dc0f382502f5bbce5129bdc0aea21e19a3abbc19259e0b43ae038a9fc4e326","affectsGlobalScope":true,"impliedFormat":1},{"version":"b1cb28af0c891c8c96b2d6b7be76bd394fddcfdb4709a20ba05a7c1605eea0f9","affectsGlobalScope":true,"impliedFormat":1},{"version":"2fef54945a13095fdb9b84f705f2b5994597640c46afeb2ce78352fab4cb3279","affectsGlobalScope":true,"impliedFormat":1},{"version":"ac77cb3e8c6d3565793eb90a8373ee8033146315a3dbead3bde8db5eaf5e5ec6","affectsGlobalScope":true,"impliedFormat":1},{"version":"56e4ed5aab5f5920980066a9409bfaf53e6d21d3f8d020c17e4de584d29600ad","affectsGlobalScope":true,"impliedFormat":1},{"version":"4ece9f17b3866cc077099c73f4983bddbcb1dc7ddb943227f1ec070f529dedd1","affectsGlobalScope":true,"impliedFormat":1},{"version":"0a6282c8827e4b9a95f4bf4f5c205673ada31b982f50572d27103df8ceb8013c","affectsGlobalScope":true,"impliedFormat":1},{"version":"1c9319a09485199c1f7b0498f2988d6d2249793ef67edda49d1e584746be9032","affectsGlobalScope":true,"impliedFormat":1},{"version":"e3a2a0cee0f03ffdde24d89660eba2685bfbdeae955a6c67e8c4c9fd28928eeb","affectsGlobalScope":true,"impliedFormat":1},{"version":"811c71eee4aa0ac5f7adf713323a5c41b0cf6c4e17367a34fbce379e12bbf0a4","affectsGlobalScope":true,"impliedFormat":1},{"version":"51ad4c928303041605b4d7ae32e0c1ee387d43a24cd6f1ebf4a2699e1076d4fa","affectsGlobalScope":true,"impliedFormat":1},{"version":"60037901da1a425516449b9a20073aa03386cce92f7a1fd902d7602be3a7c2e9","affectsGlobalScope":true,"impliedFormat":1},{"version":"d4b1d2c51d058fc21ec2629fff7a76249dec2e36e12960ea056e3ef89174080f","affectsGlobalScope":true,"impliedFormat":1},{"version":"22adec94ef7047a6c9d1af3cb96be87a335908bf9ef386ae9fd50eeb37f44c47","affectsGlobalScope":true,"impliedFormat":1},{"version":"196cb558a13d4533a5163286f30b0509ce0210e4b316c56c38d4c0fd2fb38405","affectsGlobalScope":true,"impliedFormat":1},{"version":"73f78680d4c08509933daf80947902f6ff41b6230f94dd002ae372620adb0f60","affectsGlobalScope":true,"impliedFormat":1},{"version":"c5239f5c01bcfa9cd32f37c496cf19c61d69d37e48be9de612b541aac915805b","affectsGlobalScope":true,"impliedFormat":1},{"version":"8e7f8264d0fb4c5339605a15daadb037bf238c10b654bb3eee14208f860a32ea","affectsGlobalScope":true,"impliedFormat":1},{"version":"782dec38049b92d4e85c1585fbea5474a219c6984a35b004963b00beb1aab538","affectsGlobalScope":true,"impliedFormat":1},{"version":"c16dda3690518a9345f02c212b6401ad56483f04ba0ab1d04d6b23a10ca6ac6c","affectsGlobalScope":true},{"version":"170d4db14678c68178ee8a3d5a990d5afb759ecb6ec44dbd885c50f6da6204f6","affectsGlobalScope":true,"impliedFormat":1},{"version":"ac51dd7d31333793807a6abaa5ae168512b6131bd41d9c5b98477fc3b7800f9f","impliedFormat":1},{"version":"5e76305d58bcdc924ff2bf14f6a9dc2aa5441ed06464b7e7bd039e611d66a89b","impliedFormat":1},{"version":"acd8fd5090ac73902278889c38336ff3f48af6ba03aa665eb34a75e7ba1dccc4","impliedFormat":1},{"version":"d6258883868fb2680d2ca96bc8b1352cab69874581493e6d52680c5ffecdb6cc","impliedFormat":1},{"version":"1b61d259de5350f8b1e5db06290d31eaebebc6baafd5f79d314b5af9256d7153","impliedFormat":1},{"version":"f258e3960f324a956fc76a3d3d9e964fff2244ff5859dcc6ce5951e5413ca826","impliedFormat":1},{"version":"643f7232d07bf75e15bd8f658f664d6183a0efaca5eb84b48201c7671a266979","impliedFormat":1},{"version":"0f6666b58e9276ac3a38fdc80993d19208442d6027ab885580d93aec76b4ef00","impliedFormat":1},{"version":"05fd364b8ef02fb1e174fbac8b825bdb1e5a36a016997c8e421f5fab0a6da0a0","impliedFormat":1},{"version":"631eff75b0e35d1b1b31081d55209abc43e16b49426546ab5a9b40bdd40b1f60","impliedFormat":1},{"version":"6c7176368037af28cb72f2392010fa1cef295d6d6744bca8cfb54985f3a18c3e","affectsGlobalScope":true,"impliedFormat":1},{"version":"ab41ef1f2cdafb8df48be20cd969d875602483859dc194e9c97c8a576892c052","affectsGlobalScope":true,"impliedFormat":1},{"version":"437e20f2ba32abaeb7985e0afe0002de1917bc74e949ba585e49feba65da6ca1","affectsGlobalScope":true,"impliedFormat":1},{"version":"21d819c173c0cf7cc3ce57c3276e77fd9a8a01d35a06ad87158781515c9a438a","impliedFormat":1},{"version":"98cffbf06d6bab333473c70a893770dbe990783904002c4f1a960447b4b53dca","affectsGlobalScope":true,"impliedFormat":1},{"version":"3af97acf03cc97de58a3a4bc91f8f616408099bc4233f6d0852e72a8ffb91ac9","affectsGlobalScope":true,"impliedFormat":1},{"version":"808069bba06b6768b62fd22429b53362e7af342da4a236ed2d2e1c89fcca3b4a","affectsGlobalScope":true,"impliedFormat":1},{"version":"1db0b7dca579049ca4193d034d835f6bfe73096c73663e5ef9a0b5779939f3d0","affectsGlobalScope":true,"impliedFormat":1},{"version":"9798340ffb0d067d69b1ae5b32faa17ab31b82466a3fc00d8f2f2df0c8554aaa","affectsGlobalScope":true,"impliedFormat":1},{"version":"f26b11d8d8e4b8028f1c7d618b22274c892e4b0ef5b3678a8ccbad85419aef43","affectsGlobalScope":true,"impliedFormat":1},{"version":"8e9c23ba78aabc2e0a27033f18737a6df754067731e69dc5f52823957d60a4b6","impliedFormat":1},{"version":"5929864ce17fba74232584d90cb721a89b7ad277220627cc97054ba15a98ea8f","impliedFormat":1},{"version":"763fe0f42b3d79b440a9b6e51e9ba3f3f91352469c1e4b3b67bfa4ff6352f3f4","impliedFormat":1},{"version":"25c8056edf4314820382a5fdb4bb7816999acdcb929c8f75e3f39473b87e85bc","impliedFormat":1},{"version":"c464d66b20788266e5353b48dc4aa6bc0dc4a707276df1e7152ab0c9ae21fad8","impliedFormat":1},{"version":"78d0d27c130d35c60b5e5566c9f1e5be77caf39804636bc1a40133919a949f21","impliedFormat":1},{"version":"c6fd2c5a395f2432786c9cb8deb870b9b0e8ff7e22c029954fabdd692bff6195","impliedFormat":1},{"version":"1d6e127068ea8e104a912e42fc0a110e2aa5a66a356a917a163e8cf9a65e4a75","impliedFormat":1},{"version":"5ded6427296cdf3b9542de4471d2aa8d3983671d4cac0f4bf9c637208d1ced43","impliedFormat":1},{"version":"7f182617db458e98fc18dfb272d40aa2fff3a353c44a89b2c0ccb3937709bfb5","impliedFormat":1},{"version":"cadc8aced301244057c4e7e73fbcae534b0f5b12a37b150d80e5a45aa4bebcbd","impliedFormat":1},{"version":"385aab901643aa54e1c36f5ef3107913b10d1b5bb8cbcd933d4263b80a0d7f20","impliedFormat":1},{"version":"9670d44354bab9d9982eca21945686b5c24a3f893db73c0dae0fd74217a4c219","impliedFormat":1},{"version":"0b8a9268adaf4da35e7fa830c8981cfa22adbbe5b3f6f5ab91f6658899e657a7","impliedFormat":1},{"version":"11396ed8a44c02ab9798b7dca436009f866e8dae3c9c25e8c1fbc396880bf1bb","impliedFormat":1},{"version":"ba7bc87d01492633cb5a0e5da8a4a42a1c86270e7b3d2dea5d156828a84e4882","impliedFormat":1},{"version":"4893a895ea92c85345017a04ed427cbd6a1710453338df26881a6019432febdd","impliedFormat":1},{"version":"c21dc52e277bcfc75fac0436ccb75c204f9e1b3fa5e12729670910639f27343e","impliedFormat":1},{"version":"13f6f39e12b1518c6650bbb220c8985999020fe0f21d818e28f512b7771d00f9","impliedFormat":1},{"version":"9b5369969f6e7175740bf51223112ff209f94ba43ecd3bb09eefff9fd675624a","impliedFormat":1},{"version":"4fe9e626e7164748e8769bbf74b538e09607f07ed17c2f20af8d680ee49fc1da","impliedFormat":1},{"version":"24515859bc0b836719105bb6cc3d68255042a9f02a6022b3187948b204946bd2","impliedFormat":1},{"version":"ea0148f897b45a76544ae179784c95af1bd6721b8610af9ffa467a518a086a43","impliedFormat":1},{"version":"24c6a117721e606c9984335f71711877293a9651e44f59f3d21c1ea0856f9cc9","impliedFormat":1},{"version":"dd3273ead9fbde62a72949c97dbec2247ea08e0c6952e701a483d74ef92d6a17","impliedFormat":1},{"version":"405822be75ad3e4d162e07439bac80c6bcc6dbae1929e179cf467ec0b9ee4e2e","impliedFormat":1},{"version":"0db18c6e78ea846316c012478888f33c11ffadab9efd1cc8bcc12daded7a60b6","impliedFormat":1},{"version":"e61be3f894b41b7baa1fbd6a66893f2579bfad01d208b4ff61daef21493ef0a8","impliedFormat":1},{"version":"bd0532fd6556073727d28da0edfd1736417a3f9f394877b6d5ef6ad88fba1d1a","impliedFormat":1},{"version":"89167d696a849fce5ca508032aabfe901c0868f833a8625d5a9c6e861ef935d2","impliedFormat":1},{"version":"615ba88d0128ed16bf83ef8ccbb6aff05c3ee2db1cc0f89ab50a4939bfc1943f","impliedFormat":1},{"version":"a4d551dbf8746780194d550c88f26cf937caf8d56f102969a110cfaed4b06656","impliedFormat":1},{"version":"8bd86b8e8f6a6aa6c49b71e14c4ffe1211a0e97c80f08d2c8cc98838006e4b88","impliedFormat":1},{"version":"317e63deeb21ac07f3992f5b50cdca8338f10acd4fbb7257ebf56735bf52ab00","impliedFormat":1},{"version":"4732aec92b20fb28c5fe9ad99521fb59974289ed1e45aecb282616202184064f","impliedFormat":1},{"version":"2e85db9e6fd73cfa3d7f28e0ab6b55417ea18931423bd47b409a96e4a169e8e6","impliedFormat":1},{"version":"c46e079fe54c76f95c67fb89081b3e399da2c7d109e7dca8e4b58d83e332e605","impliedFormat":1},{"version":"bf67d53d168abc1298888693338cb82854bdb2e69ef83f8a0092093c2d562107","impliedFormat":1},{"version":"2cbe0621042e2a68c7cbce5dfed3906a1862a16a7d496010636cdbdb91341c0f","affectsGlobalScope":true,"impliedFormat":1},{"version":"f9501cc13ce624c72b61f12b3963e84fad210fbdf0ffbc4590e08460a3f04eba","affectsGlobalScope":true,"impliedFormat":1},{"version":"e7721c4f69f93c91360c26a0a84ee885997d748237ef78ef665b153e622b36c1","affectsGlobalScope":true,"impliedFormat":1},{"version":"0fa06ada475b910e2106c98c68b10483dc8811d0c14a8a8dd36efb2672485b29","impliedFormat":1},{"version":"33e5e9aba62c3193d10d1d33ae1fa75c46a1171cf76fef750777377d53b0303f","impliedFormat":1},{"version":"2b06b93fd01bcd49d1a6bd1f9b65ddcae6480b9a86e9061634d6f8e354c1468f","impliedFormat":1},{"version":"6a0cd27e5dc2cfbe039e731cf879d12b0e2dded06d1b1dedad07f7712de0d7f4","affectsGlobalScope":true,"impliedFormat":1},{"version":"13f5c844119c43e51ce777c509267f14d6aaf31eafb2c2b002ca35584cd13b29","impliedFormat":1},{"version":"e60477649d6ad21542bd2dc7e3d9ff6853d0797ba9f689ba2f6653818999c264","impliedFormat":1},{"version":"c2510f124c0293ab80b1777c44d80f812b75612f297b9857406468c0f4dafe29","affectsGlobalScope":true,"impliedFormat":1},{"version":"5524481e56c48ff486f42926778c0a3cce1cc85dc46683b92b1271865bcf015a","impliedFormat":1},{"version":"4c829ab315f57c5442c6667b53769975acbf92003a66aef19bce151987675bd1","affectsGlobalScope":true,"impliedFormat":1},{"version":"b2ade7657e2db96d18315694789eff2ddd3d8aea7215b181f8a0b303277cc579","impliedFormat":1},{"version":"9855e02d837744303391e5623a531734443a5f8e6e8755e018c41d63ad797db2","impliedFormat":1},{"version":"4d631b81fa2f07a0e63a9a143d6a82c25c5f051298651a9b69176ba28930756d","impliedFormat":1},{"version":"836a356aae992ff3c28a0212e3eabcb76dd4b0cc06bcb9607aeef560661b860d","impliedFormat":1},{"version":"1e0d1f8b0adfa0b0330e028c7941b5a98c08b600efe7f14d2d2a00854fb2f393","impliedFormat":1},{"version":"41670ee38943d9cbb4924e436f56fc19ee94232bc96108562de1a734af20dc2c","affectsGlobalScope":true,"impliedFormat":1},{"version":"c906fb15bd2aabc9ed1e3f44eb6a8661199d6c320b3aa196b826121552cb3695","impliedFormat":1},{"version":"22295e8103f1d6d8ea4b5d6211e43421fe4564e34d0dd8e09e520e452d89e659","impliedFormat":1},{"version":"bb45cd435da536500f1d9692a9b49d0c570b763ccbf00473248b777f5c1f353b","impliedFormat":1},{"version":"6b4e081d55ac24fc8a4631d5dd77fe249fa25900abd7d046abb87d90e3b45645","impliedFormat":1},{"version":"a10f0e1854f3316d7ee437b79649e5a6ae3ae14ffe6322b02d4987071a95362e","impliedFormat":1},{"version":"e208f73ef6a980104304b0d2ca5f6bf1b85de6009d2c7e404028b875020fa8f2","impliedFormat":1},{"version":"d163b6bc2372b4f07260747cbc6c0a6405ab3fbcea3852305e98ac43ca59f5bc","impliedFormat":1},{"version":"e6fa9ad47c5f71ff733744a029d1dc472c618de53804eae08ffc243b936f87ff","affectsGlobalScope":true,"impliedFormat":1},{"version":"83e63d6ccf8ec004a3bb6d58b9bb0104f60e002754b1e968024b320730cc5311","impliedFormat":1},{"version":"24826ed94a78d5c64bd857570fdbd96229ad41b5cb654c08d75a9845e3ab7dde","impliedFormat":1},{"version":"45875bcae57270aeb3ebc73a5e3fb4c7b9d91d6b045f107c1d8513c28ece71c0","impliedFormat":1},{"version":"928af3d90454bf656a52a48679f199f64c1435247d6189d1caf4c68f2eaf921f","affectsGlobalScope":true,"impliedFormat":1},{"version":"21145ce1c54e05ef9e52092b98a4ebfb326b92f52e76e47211c50cfcd2a2b4ad","affectsGlobalScope":true,"impliedFormat":1},{"version":"3f16a7e4deafa527ed9995a772bb380eb7d3c2c0fd4ae178c5263ed18394db2c","impliedFormat":1},{"version":"933921f0bb0ec12ef45d1062a1fc0f27635318f4d294e4d99de9a5493e618ca2","impliedFormat":1},{"version":"71a0f3ad612c123b57239a7749770017ecfe6b66411488000aba83e4546fde25","impliedFormat":1},{"version":"77fbe5eecb6fac4b6242bbf6eebfc43e98ce5ccba8fa44e0ef6a95c945ff4d98","impliedFormat":1},{"version":"4f9d8ca0c417b67b69eeb54c7ca1bedd7b56034bb9bfd27c5d4f3bc4692daca7","impliedFormat":1},{"version":"814118df420c4e38fe5ae1b9a3bafb6e9c2aa40838e528cde908381867be6466","impliedFormat":1},{"version":"a3fc63c0d7b031693f665f5494412ba4b551fe644ededccc0ab5922401079c95","impliedFormat":1},{"version":"f27524f4bef4b6519c604bdb23bf4465bddcccbf3f003abb901acbd0d7404d99","impliedFormat":1},{"version":"37ba7b45141a45ce6e80e66f2a96c8a5ab1bcef0fc2d0f56bb58df96ec67e972","impliedFormat":1},{"version":"45650f47bfb376c8a8ed39d4bcda5902ab899a3150029684ee4c10676d9fbaee","impliedFormat":1},{"version":"dba28a419aec76ed864ef43e5f577a5c99a010c32e5949fe4e17a4d57c58dd11","affectsGlobalScope":true,"impliedFormat":1},{"version":"18fd40412d102c5564136f29735e5d1c3b455b8a37f920da79561f1fde068208","impliedFormat":1},{"version":"c959a391a75be9789b43c8468f71e3fa06488b4d691d5729dde1416dcd38225b","impliedFormat":1},{"version":"f0be1b8078cd549d91f37c30c222c2a187ac1cf981d994fb476a1adc61387b14","affectsGlobalScope":true,"impliedFormat":1},{"version":"0aaed1d72199b01234152f7a60046bc947f1f37d78d182e9ae09c4289e06a592","impliedFormat":1},{"version":"5ebe6f4cc3b803cbfc962bae0d954f9c80e5078ca41eb3f1de41d92e7193ef37","impliedFormat":1},{"version":"66ba1b2c3e3a3644a1011cd530fb444a96b1b2dfe2f5e837a002d41a1a799e60","impliedFormat":1},{"version":"7e514f5b852fdbc166b539fdd1f4e9114f29911592a5eb10a94bb3a13ccac3c4","impliedFormat":1},{"version":"5b7aa3c4c1a5d81b411e8cb302b45507fea9358d3569196b27eb1a27ae3a90ef","affectsGlobalScope":true,"impliedFormat":1},{"version":"5987a903da92c7462e0b35704ce7da94d7fdc4b89a984871c0e2b87a8aae9e69","affectsGlobalScope":true,"impliedFormat":1},{"version":"ea08a0345023ade2b47fbff5a76d0d0ed8bff10bc9d22b83f40858a8e941501c","impliedFormat":1},{"version":"47613031a5a31510831304405af561b0ffaedb734437c595256bb61a90f9311b","impliedFormat":1},{"version":"ae062ce7d9510060c5d7e7952ae379224fb3f8f2dd74e88959878af2057c143b","impliedFormat":1},{"version":"8a1a0d0a4a06a8d278947fcb66bf684f117bf147f89b06e50662d79a53be3e9f","affectsGlobalScope":true,"impliedFormat":1},{"version":"9f663c2f91127ef7024e8ca4b3b4383ff2770e5f826696005de382282794b127","impliedFormat":1},{"version":"9f55299850d4f0921e79b6bf344b47c420ce0f507b9dcf593e532b09ea7eeea1","impliedFormat":1},{"version":"24259d3dae14de55d22f8b3d3e96954e5175a925ab6a830dc05a1993d4794eda","impliedFormat":1},{"version":"27e046d30d55669e9b5a325788a9b4073b05ce62607867754d2918af559a0877","impliedFormat":1},{"version":"be1cc4d94ea60cbe567bc29ed479d42587bf1e6cba490f123d329976b0fe4ee5","impliedFormat":1},{"version":"42bc0e1a903408137c3df2b06dfd7e402cdab5bbfa5fcfb871b22ebfdb30bd0b","impliedFormat":1},{"version":"9894dafe342b976d251aac58e616ac6df8db91fb9d98934ff9dd103e9e82578f","impliedFormat":1},{"version":"413df52d4ea14472c2fa5bee62f7a40abd1eb49be0b9722ee01ee4e52e63beb2","impliedFormat":1},{"version":"db6d2d9daad8a6d83f281af12ce4355a20b9a3e71b82b9f57cddcca0a8964a96","impliedFormat":1},{"version":"829b9e6028b29e6a8b1c01ddb713efe59da04d857089298fa79acbdb3cfcfdef","impliedFormat":1},{"version":"24f8562308dd8ba6013120557fa7b44950b619610b2c6cb8784c79f11e3c4f90","impliedFormat":1},{"version":"c696aa0753345ae6bdaab0e2d4b2053ee76be5140470860eef7e6cadc9f725a1","impliedFormat":1},{"version":"a86f82d646a739041d6702101afa82dcb935c416dd93cbca7fd754fd0282ce1f","impliedFormat":1},{"version":"ad0d1d75d129b1c80f911be438d6b61bfa8703930a8ff2be2f0e1f8a91841c64","impliedFormat":1},{"version":"ce75b1aebb33d510ff28af960a9221410a3eaf7f18fc5f21f9404075fba77256","impliedFormat":1},{"version":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","impliedFormat":1},{"version":"496bbf339f3838c41f164238543e9fe5f1f10659cb30b68903851618464b98ba","impliedFormat":1},{"version":"5178eb4415a172c287c711dc60a619e110c3fd0b7de01ed0627e51a5336aa09c","impliedFormat":1},{"version":"ca6e5264278b53345bc1ce95f42fb0a8b733a09e3d6479c6ccfca55cdc45038c","impliedFormat":1},{"version":"9e2739b32f741859263fdba0244c194ca8e96da49b430377930b8f721d77c000","impliedFormat":1},{"version":"fb1d8e814a3eeb5101ca13515e0548e112bd1ff3fb358ece535b93e94adf5a3a","impliedFormat":1},{"version":"ffa495b17a5ef1d0399586b590bd281056cee6ce3583e34f39926f8dcc6ecdb5","impliedFormat":1},{"version":"98b18458acb46072947aabeeeab1e410f047e0cacc972943059ca5500b0a5e95","impliedFormat":1},{"version":"361e2b13c6765d7f85bb7600b48fde782b90c7c41105b7dab1f6e7871071ba20","impliedFormat":1},{"version":"c86fe861cf1b4c46a0fb7d74dffe596cf679a2e5e8b1456881313170f092e3fa","impliedFormat":1},{"version":"b6db56e4903e9c32e533b78ac85522de734b3d3a8541bf24d256058d464bf04b","impliedFormat":1},{"version":"24daa0366f837d22c94a5c0bad5bf1fd0f6b29e1fae92dc47c3072c3fdb2fbd5","impliedFormat":1},{"version":"570bb5a00836ffad3e4127f6adf581bfc4535737d8ff763a4d6f4cc877e60d98","impliedFormat":1},{"version":"889c00f3d32091841268f0b994beba4dceaa5df7573be12c2c829d7c5fbc232c","impliedFormat":1},{"version":"65f43099ded6073336e697512d9b80f2d4fec3182b7b2316abf712e84104db00","impliedFormat":1},{"version":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","impliedFormat":1},{"version":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","impliedFormat":1},{"version":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881","impliedFormat":1},{"version":"acf5a2ac47b59ca07afa9abbd2b31d001bf7448b041927befae2ea5b1951d9f9","impliedFormat":1},{"version":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881","impliedFormat":1},{"version":"d71291eff1e19d8762a908ba947e891af44749f3a2cbc5bd2ec4b72f72ea795f","impliedFormat":1},{"version":"c0480e03db4b816dff2682b347c95f2177699525c54e7e6f6aa8ded890b76be7","impliedFormat":1},{"version":"27ab780875bcbb65e09da7496f2ca36288b0c541abaa75c311450a077d54ec15","impliedFormat":1},{"version":"b620391fe8060cf9bedc176a4d01366e6574d7a71e0ac0ab344a4e76576fcbb8","impliedFormat":1},{"version":"380647d8f3b7f852cca6d154a376dbf8ac620a2f12b936594504a8a852e71d2f","impliedFormat":1},{"version":"208c9af9429dd3c76f5927b971263174aaa4bc7621ddec63f163640cbd3c473c","impliedFormat":1},{"version":"6459054aabb306821a043e02b89d54da508e3a6966601a41e71c166e4ea1474f","impliedFormat":1},{"version":"a23185bc5ef590c287c28a91baf280367b50ae4ea40327366ad01f6f4a8edbc5","impliedFormat":1},{"version":"bb37588926aba35c9283fe8d46ebf4e79ffe976343105f5c6d45f282793352b2","impliedFormat":1},{"version":"002eae065e6960458bda3cf695e578b0d1e2785523476f8a9170b103c709cd4f","impliedFormat":1},{"version":"c83bb0c9c5645a46c68356c2f73fdc9de339ce77f7f45a954f560c7e0b8d5ebb","impliedFormat":1},{"version":"05c97cddbaf99978f83d96de2d8af86aded9332592f08ce4a284d72d0952c391","impliedFormat":1},{"version":"72179f9dd22a86deaad4cc3490eb0fe69ee084d503b686985965654013f1391b","impliedFormat":1},{"version":"2e6114a7dd6feeef85b2c80120fdbfb59a5529c0dcc5bfa8447b6996c97a69f5","impliedFormat":1},{"version":"7b6ff760c8a240b40dab6e4419b989f06a5b782f4710d2967e67c695ef3e93c4","impliedFormat":1},{"version":"c8f004e6036aa1c764ad4ec543cf89a5c1893a9535c80ef3f2b653e370de45e6","impliedFormat":1},{"version":"dd80b1e600d00f5c6a6ba23f455b84a7db121219e68f89f10552c54ba46e4dc9","impliedFormat":1},{"version":"b064c36f35de7387d71c599bfcf28875849a1dbc733e82bd26cae3d1cd060521","impliedFormat":1},{"version":"6a148329edecbda07c21098639ef4254ef7869fb25a69f58e5d6a8b7b69d4236","impliedFormat":1},{"version":"8de9fe97fa9e00ec00666fa77ab6e91b35d25af8ca75dabcb01e14ad3299b150","impliedFormat":1},{"version":"f63ab283a1c8f5c79fabe7ca4ef85f9633339c4f0e822fce6a767f9d59282af2","impliedFormat":1},{"version":"dba114fb6a32b355a9cfc26ca2276834d72fe0e94cd2c3494005547025015369","impliedFormat":1},{"version":"a54c996c8870ef1728a2c1fa9b8eaec0bf4a8001cd2583c02dd5869289465b10","impliedFormat":1},{"version":"3e7efde639c6a6c3edb9847b3f61e308bf7a69685b92f665048c45132f51c218","impliedFormat":1},{"version":"df45ca1176e6ac211eae7ddf51336dc075c5314bc5c253651bae639defd5eec5","impliedFormat":1},{"version":"3754982006a3b32c502cff0867ca83584f7a43b1035989ca73603f400de13c96","impliedFormat":1},{"version":"a30ae9bb8a8fa7b90f24b8a0496702063ae4fe75deb27da731ed4a03b2eb6631","impliedFormat":1},{"version":"f974e4a06953682a2c15d5bd5114c0284d5abf8bc0fe4da25cb9159427b70072","impliedFormat":1},{"version":"50256e9c31318487f3752b7ac12ff365c8949953e04568009c8705db802776fb","impliedFormat":1},{"version":"7d73b24e7bf31dfb8a931ca6c4245f6bb0814dfae17e4b60c9e194a631fe5f7b","impliedFormat":1},{"version":"413586add0cfe7369b64979d4ec2ed56c3f771c0667fbde1bf1f10063ede0b08","impliedFormat":1},{"version":"06472528e998d152375ad3bd8ebcb69ff4694fd8d2effaf60a9d9f25a37a097a","impliedFormat":1},{"version":"50b5bc34ce6b12eccb76214b51aadfa56572aa6cc79c2b9455cdbb3d6c76af1d","impliedFormat":1},{"version":"b7e16ef7f646a50991119b205794ebfd3a4d8f8e0f314981ebbe991639023d0e","impliedFormat":1},{"version":"42c169fb8c2d42f4f668c624a9a11e719d5d07dacbebb63cbcf7ef365b0a75b3","impliedFormat":1},{"version":"a401617604fa1f6ce437b81689563dfdc377069e4c58465dbd8d16069aede0a5","impliedFormat":1},{"version":"e9dd71cf12123419c60dab867d44fbee5c358169f99529121eaef277f5c83531","impliedFormat":1},{"version":"5b6a189ba3a0befa1f5d9cb028eb9eec2af2089c32f04ff50e2411f63d70f25d","impliedFormat":1},{"version":"d6e73f8010935b7b4c7487b6fb13ea197cc610f0965b759bec03a561ccf8423a","impliedFormat":1},{"version":"174f3864e398f3f33f9a446a4f403d55a892aa55328cf6686135dfaf9e171657","impliedFormat":1},{"version":"824c76aec8d8c7e65769688cbee102238c0ef421ed6686f41b2a7d8e7e78a931","impliedFormat":1},{"version":"75b868be3463d5a8cfc0d9396f0a3d973b8c297401d00bfb008a42ab16643f13","impliedFormat":1},{"version":"15a234e5031b19c48a69ccc1607522d6e4b50f57d308ecb7fe863d44cd9f9eb3","impliedFormat":1},{"version":"d682336018141807fb602709e2d95a192828fcb8d5ba06dda3833a8ea98f69e3","impliedFormat":1},{"version":"6124e973eab8c52cabf3c07575204efc1784aca6b0a30c79eb85fe240a857efa","impliedFormat":1},{"version":"0d891735a21edc75df51f3eb995e18149e119d1ce22fd40db2b260c5960b914e","impliedFormat":1},{"version":"3b414b99a73171e1c4b7b7714e26b87d6c5cb03d200352da5342ab4088a54c85","impliedFormat":1},{"version":"4fbd3116e00ed3a6410499924b6403cc9367fdca303e34838129b328058ede40","impliedFormat":1},{"version":"b01bd582a6e41457bc56e6f0f9de4cb17f33f5f3843a7cf8210ac9c18472fb0f","impliedFormat":1},{"version":"0a437ae178f999b46b6153d79095b60c42c996bc0458c04955f1c996dc68b971","impliedFormat":1},{"version":"74b2a5e5197bd0f2e0077a1ea7c07455bbea67b87b0869d9786d55104006784f","impliedFormat":1},{"version":"4a7baeb6325920044f66c0f8e5e6f1f52e06e6d87588d837bdf44feb6f35c664","impliedFormat":1},{"version":"6dcf60530c25194a9ee0962230e874ff29d34c59605d8e069a49928759a17e0a","impliedFormat":1},{"version":"7274fbffbd7c9589d8d0ffba68157237afd5cecff1e99881ea3399127e60572f","impliedFormat":1},{"version":"1a42d2ec31a1fe62fdc51591768695ed4a2dc64c01be113e7ff22890bebb5e3f","impliedFormat":1},{"version":"1a82deef4c1d39f6882f28d275cad4c01f907b9b39be9cbc472fcf2cf051e05b","impliedFormat":1},{"version":"c5426dbfc1cf90532f66965a7aa8c1136a78d4d0f96d8180ecbfc11d7722f1a5","impliedFormat":1},{"version":"65a15fc47900787c0bd18b603afb98d33ede930bed1798fc984d5ebb78b26cf9","impliedFormat":1},{"version":"9d202701f6e0744adb6314d03d2eb8fc994798fc83d91b691b75b07626a69801","impliedFormat":1},{"version":"de9d2df7663e64e3a91bf495f315a7577e23ba088f2949d5ce9ec96f44fba37d","impliedFormat":1},{"version":"c7af78a2ea7cb1cd009cfb5bdb48cd0b03dad3b54f6da7aab615c2e9e9d570c5","impliedFormat":1},{"version":"1ee45496b5f8bdee6f7abc233355898e5bf9bd51255db65f5ff7ede617ca0027","impliedFormat":1},{"version":"0c7c947ff881c4274c0800deaa0086971e0bfe51f89a33bd3048eaa3792d4876","affectsGlobalScope":true,"impliedFormat":1},{"version":"db01d18853469bcb5601b9fc9826931cc84cc1a1944b33cad76fd6f1e3d8c544","affectsGlobalScope":true,"impliedFormat":1},{"version":"a8f8e6ab2fa07b45251f403548b78eaf2022f3c2254df3dc186cb2671fe4996d","affectsGlobalScope":true,"impliedFormat":1},{"version":"fa6c12a7c0f6b84d512f200690bfc74819e99efae69e4c95c4cd30f6884c526e","impliedFormat":1},{"version":"f1c32f9ce9c497da4dc215c3bc84b722ea02497d35f9134db3bb40a8d918b92b","impliedFormat":1},{"version":"b73c319af2cc3ef8f6421308a250f328836531ea3761823b4cabbd133047aefa","affectsGlobalScope":true,"impliedFormat":1},{"version":"e433b0337b8106909e7953015e8fa3f2d30797cea27141d1c5b135365bb975a6","impliedFormat":1},{"version":"15b36126e0089bfef173ab61329e8286ce74af5e809d8a72edcafd0cc049057f","impliedFormat":1},{"version":"ddff7fc6edbdc5163a09e22bf8df7bef75f75369ebd7ecea95ba55c4386e2441","impliedFormat":1},{"version":"106c6025f1d99fd468fd8bf6e5bda724e11e5905a4076c5d29790b6c3745e50c","impliedFormat":1},{"version":"a57b1802794433adec9ff3fed12aa79d671faed86c49b09e02e1ac41b4f1d33a","impliedFormat":1},{"version":"ad10d4f0517599cdeca7755b930f148804e3e0e5b5a3847adce0f1f71bbccd74","impliedFormat":1},{"version":"1042064ece5bb47d6aba91648fbe0635c17c600ebdf567588b4ca715602f0a9d","impliedFormat":1},{"version":"c49469a5349b3cc1965710b5b0f98ed6c028686aa8450bcb3796728873eb923e","impliedFormat":1},{"version":"4a889f2c763edb4d55cb624257272ac10d04a1cad2ed2948b10ed4a7fda2a428","impliedFormat":1},{"version":"7bb79aa2fead87d9d56294ef71e056487e848d7b550c9a367523ee5416c44cfa","impliedFormat":1},{"version":"72d63643a657c02d3e51cd99a08b47c9b020a565c55f246907050d3c8a5e77fb","impliedFormat":1},{"version":"1d415445ea58f8033ba199703e55ff7483c52ac6742075b803bd3e7bbe9f5d61","impliedFormat":1},{"version":"d6406c629bb3efc31aedb2de809bef471e475c86c7e67f3ef9b676b5d7e0d6b2","impliedFormat":1},{"version":"27ff4196654e6373c9af16b6165120e2dd2169f9ad6abb5c935af5abd8c7938c","impliedFormat":1},{"version":"24428762d0c97b44c4784d28eee9556547167c4592d20d542a79243f7ca6a73f","impliedFormat":1},{"version":"8c030e515014c10a2b98f9f48408e3ba18023dfd3f56e3312c6c2f3ae1f55a16","impliedFormat":1},{"version":"dafc31e9e8751f437122eb8582b93d477e002839864410ff782504a12f2a550c","impliedFormat":1},{"version":"754498c5208ce3c5134f6eabd49b25cf5e1a042373515718953581636491f3c3","impliedFormat":1},{"version":"9c82171d836c47486074e4ca8e059735bf97b205e70b196535b5efd40cbe1bc5","impliedFormat":1},{"version":"f56bdc6884648806d34bc66d31cdb787c4718d04105ce2cd88535db214631f82","impliedFormat":1},{"version":"633d58a237f4bb25ec7d565e4ffa32cecdcee8660ac12189c4351c52557cee9e","impliedFormat":1},{"version":"2e4f37ffe8862b14d8e24ae8763daaa8340c0df0b859d9a9733def0eee7562d9","impliedFormat":1},{"version":"13283350547389802aa35d9f2188effaeac805499169a06ef5cd77ce2a0bd63f","impliedFormat":1},{"version":"ce791f6ea807560f08065d1af6014581eeb54a05abd73294777a281b6dfd73c2","impliedFormat":1},{"version":"6ac6715916fa75a1f7ebdfeacac09513b4d904b667d827b7535e84ff59679aff","impliedFormat":1},{"version":"49f95e989b4632c6c2a578cc0078ee19a5831832d79cc59abecf5160ea71abad","impliedFormat":1},{"version":"9666533332f26e8995e4d6fe472bdeec9f15d405693723e6497bf94120c566c8","impliedFormat":1},{"version":"ce0df82a9ae6f914ba08409d4d883983cc08e6d59eb2df02d8e4d68309e7848b","impliedFormat":1},{"version":"796273b2edc72e78a04e86d7c58ae94d370ab93a0ddf40b1aa85a37a1c29ecd7","impliedFormat":1},{"version":"5df15a69187d737d6d8d066e189ae4f97e41f4d53712a46b2710ff9f8563ec9f","impliedFormat":1},{"version":"e17cd049a1448de4944800399daa4a64c5db8657cc9be7ef46be66e2a2cd0e7c","impliedFormat":1},{"version":"43fa6ea8714e18adc312b30450b13562949ba2f205a1972a459180fa54471018","impliedFormat":1},{"version":"6e89c2c177347d90916bad67714d0fb473f7e37fb3ce912f4ed521fe2892cd0d","impliedFormat":1},{"version":"43ba4f2fa8c698f5c304d21a3ef596741e8e85a810b7c1f9b692653791d8d97a","impliedFormat":1},{"version":"4d4927cbee21750904af7acf940c5e3c491b4d5ebc676530211e389dd375607a","impliedFormat":1},{"version":"72105519d0390262cf0abe84cf41c926ade0ff475d35eb21307b2f94de985778","impliedFormat":1},{"version":"8a97e578a9bc40eb4f1b0ca78f476f2e9154ecbbfd5567ee72943bab37fc156a","impliedFormat":1},{"version":"c857e0aae3f5f444abd791ec81206020fbcc1223e187316677e026d1c1d6fe08","impliedFormat":1},{"version":"ccf6dd45b708fb74ba9ed0f2478d4eb9195c9dfef0ff83a6092fa3cf2ff53b4f","impliedFormat":1},{"version":"2d7db1d73456e8c5075387d4240c29a2a900847f9c1bff106a2e490da8fbd457","impliedFormat":1},{"version":"2b15c805f48e4e970f8ec0b1915f22d13ca6212375e8987663e2ef5f0205e832","impliedFormat":1},{"version":"f22d05663d873ee7a600faf78abb67f3f719d32266803440cf11d5db7ac0cab2","impliedFormat":1},{"version":"d93c544ad20197b3976b0716c6d5cd5994e71165985d31dcab6e1f77feb4b8f2","impliedFormat":1},{"version":"35069c2c417bd7443ae7c7cafd1de02f665bf015479fec998985ffbbf500628c","impliedFormat":1},{"version":"a8b1c79a833ee148251e88a2553d02ce1641d71d2921cce28e79678f3d8b96aa","impliedFormat":1},{"version":"126d4f950d2bba0bd45b3a86c76554d4126c16339e257e6d2fabf8b6bf1ce00c","impliedFormat":1},{"version":"7e0b7f91c5ab6e33f511efc640d36e6f933510b11be24f98836a20a2dc914c2d","impliedFormat":1},{"version":"045b752f44bf9bbdcaffd882424ab0e15cb8d11fa94e1448942e338c8ef19fba","impliedFormat":1},{"version":"2894c56cad581928bb37607810af011764a2f511f575d28c9f4af0f2ef02d1ab","impliedFormat":1},{"version":"0a72186f94215d020cb386f7dca81d7495ab6c17066eb07d0f44a5bf33c1b21a","impliedFormat":1},{"version":"2d3cc2211f352f46ea6b7cf2c751c141ffcdf514d6e7ae7ee20b7b6742da313f","impliedFormat":1},{"version":"c75445151ff8b77d9923191efed7203985b1a9e09eccf4b054e7be864e27923d","impliedFormat":1},{"version":"0aedb02516baf3e66b2c1db9fef50666d6ed257edac0f866ea32f1aa05aa474f","impliedFormat":1},{"version":"fa8a8fbf91ee2a4779496225f0312aac6635b0f21aa09cdafa4283fe32d519c5","affectsGlobalScope":true,"impliedFormat":1},{"version":"0e8aef93d79b000deb6ec336b5645c87de167168e184e84521886f9ecc69a4b5","impliedFormat":1},{"version":"56ccb49443bfb72e5952f7012f0de1a8679f9f75fc93a5c1ac0bafb28725fc5f","impliedFormat":1},{"version":"20fa37b636fdcc1746ea0738f733d0aed17890d1cd7cb1b2f37010222c23f13e","impliedFormat":1},{"version":"d90b9f1520366d713a73bd30c5a9eb0040d0fb6076aff370796bc776fd705943","impliedFormat":1},{"version":"bc03c3c352f689e38c0ddd50c39b1e65d59273991bfc8858a9e3c0ebb79c023b","impliedFormat":1},{"version":"19df3488557c2fc9b4d8f0bac0fd20fb59aa19dec67c81f93813951a81a867f8","affectsGlobalScope":true,"impliedFormat":1},{"version":"b25350193e103ae90423c5418ddb0ad1168dc9c393c9295ef34980b990030617","affectsGlobalScope":true,"impliedFormat":1},{"version":"bef86adb77316505c6b471da1d9b8c9e428867c2566270e8894d4d773a1c4dc2","impliedFormat":1},{"version":"de7052bfee2981443498239a90c04ea5cc07065d5b9bb61b12cb6c84313ad4ef","impliedFormat":1},{"version":"a3e7d932dc9c09daa99141a8e4800fc6c58c625af0d4bbb017773dc36da75426","impliedFormat":1},{"version":"43e96a3d5d1411ab40ba2f61d6a3192e58177bcf3b133a80ad2a16591611726d","impliedFormat":1},{"version":"4a2edd238d9104eac35b60d727f1123de5062f452b70ed8e0366cb36387dfdfd","impliedFormat":1},{"version":"ca921bf56756cb6fe957f6af693a35251b134fb932dc13f3dfff0bb7106f80b4","impliedFormat":1},{"version":"fee92c97f1aa59eb7098a0cc34ff4df7e6b11bae71526aca84359a2575f313d8","impliedFormat":1},{"version":"0bd0297484aacea217d0b76e55452862da3c5d9e33b24430e0719d1161657225","impliedFormat":1},{"version":"2ab6d334bcbf2aff3acfc4fd8c73ecd82b981d3c3aa47b3f3b89281772286904","impliedFormat":1},{"version":"d07cbc787a997d83f7bde3877fec5fb5b12ce8c1b7047eb792996ed9726b4dde","impliedFormat":1},{"version":"6ac6715916fa75a1f7ebdfeacac09513b4d904b667d827b7535e84ff59679aff","impliedFormat":1},{"version":"4805f6161c2c8cefb8d3b8bd96a080c0fe8dbc9315f6ad2e53238f9a79e528a6","impliedFormat":1},{"version":"b83cb14474fa60c5f3ec660146b97d122f0735627f80d82dd03e8caa39b4388c","impliedFormat":1},{"version":"f374cb24e93e7798c4d9e83ff872fa52d2cdb36306392b840a6ddf46cb925cb6","impliedFormat":1},{"version":"49179c6a23701c642bd99abe30d996919748014848b738d8e85181fc159685ff","impliedFormat":1},{"version":"b73cbf0a72c8800cf8f96a9acfe94f3ad32ca71342a8908b8ae484d61113f647","impliedFormat":1},{"version":"bae6dd176832f6423966647382c0d7ba9e63f8c167522f09a982f086cd4e8b23","impliedFormat":1},{"version":"20865ac316b8893c1a0cc383ccfc1801443fbcc2a7255be166cf90d03fac88c9","impliedFormat":1},{"version":"c9958eb32126a3843deedda8c22fb97024aa5d6dd588b90af2d7f2bfac540f23","impliedFormat":1},{"version":"461d0ad8ae5f2ff981778af912ba71b37a8426a33301daa00f21c6ccb27f8156","impliedFormat":1},{"version":"e927c2c13c4eaf0a7f17e6022eee8519eb29ef42c4c13a31e81a611ab8c95577","impliedFormat":1},{"version":"fcafff163ca5e66d3b87126e756e1b6dfa8c526aa9cd2a2b0a9da837d81bbd72","impliedFormat":1},{"version":"70246ad95ad8a22bdfe806cb5d383a26c0c6e58e7207ab9c431f1cb175aca657","impliedFormat":1},{"version":"f00f3aa5d64ff46e600648b55a79dcd1333458f7a10da2ed594d9f0a44b76d0b","impliedFormat":1},{"version":"772d8d5eb158b6c92412c03228bd9902ccb1457d7a705b8129814a5d1a6308fc","impliedFormat":1},{"version":"45490817629431853543adcb91c0673c25af52a456479588b6486daba34f68bb","impliedFormat":1},{"version":"802e797bcab5663b2c9f63f51bdf67eff7c41bc64c0fd65e6da3e7941359e2f7","impliedFormat":1},{"version":"8b4327413e5af38cd8cb97c59f48c3c866015d5d642f28518e3a891c469f240e","impliedFormat":1},{"version":"8514c62ce38e58457d967e9e73f128eedc1378115f712b9eef7127f7c88f82ae","impliedFormat":1},{"version":"f1289e05358c546a5b664fbb35a27738954ec2cc6eb4137350353099d154fc62","impliedFormat":1},{"version":"4b20fcf10a5413680e39f5666464859fc56b1003e7dfe2405ced82371ebd49b6","impliedFormat":1},{"version":"1d17ba45cfbe77a9c7e0df92f7d95f3eefd49ee23d1104d0548b215be56945ad","impliedFormat":1},{"version":"f7d628893c9fa52ba3ab01bcb5e79191636c4331ee5667ecc6373cbccff8ae12","impliedFormat":1},{"version":"1d879125d1ec570bf04bc1f362fdbe0cb538315c7ac4bcfcdf0c1e9670846aa6","impliedFormat":1},{"version":"9f5a0f3ed33e363b7393223ba4f4af15c13ce94fe3dbdaa476afd2437553a7dd","impliedFormat":1},{"version":"46273e8c29816125d0d0b56ce9a849cc77f60f9a5ba627447501d214466f0ff3","impliedFormat":1},{"version":"d663134457d8d669ae0df34eabd57028bddc04fc444c4bc04bc5215afc91e1f4","impliedFormat":1},{"version":"985153f0deb9b4391110331a2f0c114019dbea90cba5ca68a4107700796e0d75","impliedFormat":1},{"version":"3af3584f79c57853028ef9421ec172539e1fe01853296dc05a9d615ade4ffaf6","impliedFormat":1},{"version":"f82579d87701d639ff4e3930a9b24f4ee13ca74221a9a3a792feb47f01881a9c","impliedFormat":1},{"version":"d7e5d5245a8ba34a274717d085174b2c9827722778129b0081fefd341cca8f55","impliedFormat":1},{"version":"d9d32f94056181c31f553b32ce41d0ef75004912e27450738d57efcd2409c324","impliedFormat":1},{"version":"752513f35f6cff294ffe02d6027c41373adf7bfa35e593dbfd53d95c203635ee","impliedFormat":1},{"version":"6c800b281b9e89e69165fd11536195488de3ff53004e55905e6c0059a2d8591e","impliedFormat":1},{"version":"7d4254b4c6c67a29d5e7f65e67d72540480ac2cfb041ca484847f5ae70480b62","impliedFormat":1},{"version":"1a7e2ea171726446850ec72f4d1525d547ff7e86724cc9e7eec509725752a758","impliedFormat":1},{"version":"8c901126d73f09ecdea4785e9a187d1ac4e793e07da308009db04a7283ec2f37","impliedFormat":1},{"version":"db97922b767bd2675fdfa71e08b49c38b7d2c847a1cc4a7274cb77be23b026f1","impliedFormat":1},{"version":"aab290b8e4b7c399f2c09b957666fc95335eb4522b2dd9ead1bf0cb64da6d6ee","impliedFormat":1},{"version":"94fe3281392e1015b22f39535878610b4fa6f1388dc8d78746be3bc4e4bb8950","impliedFormat":1},{"version":"2652448ac55a2010a1f71dd141f828b682298d39728f9871e1cdf8696ef443fd","impliedFormat":1},{"version":"06c25ddfc2242bd06c19f66c9eae4c46d937349a267810f89783680a1d7b5259","impliedFormat":1},{"version":"120599fd965257b1f4d0ff794bc696162832d9d8467224f4665f713a3119078b","impliedFormat":1},{"version":"5433f33b0a20300cca35d2f229a7fc20b0e8477c44be2affeb21cb464af60c76","impliedFormat":1},{"version":"db036c56f79186da50af66511d37d9fe77fa6793381927292d17f81f787bb195","impliedFormat":1},{"version":"bd4131091b773973ca5d2326c60b789ab1f5e02d8843b3587effe6e1ea7c9d86","impliedFormat":1},{"version":"c7f6485931085bf010fbaf46880a9b9ec1a285ad9dc8c695a9e936f5a48f34b4","impliedFormat":1},{"version":"14f6b927888a1112d662877a5966b05ac1bf7ed25d6c84386db4c23c95a5363b","impliedFormat":1},{"version":"6ac6715916fa75a1f7ebdfeacac09513b4d904b667d827b7535e84ff59679aff","impliedFormat":1},{"version":"0427df5c06fafc5fe126d14b9becd24160a288deff40e838bfbd92a35f8d0d00","impliedFormat":1},{"version":"90c54a02432d04e4246c87736e53a6a83084357acfeeba7a489c5422b22f5c7a","impliedFormat":1},{"version":"49c346823ba6d4b12278c12c977fb3a31c06b9ca719015978cb145eb86da1c61","impliedFormat":1},{"version":"bfac6e50eaa7e73bb66b7e052c38fdc8ccfc8dbde2777648642af33cf349f7f1","impliedFormat":1},{"version":"92f7c1a4da7fbfd67a2228d1687d5c2e1faa0ba865a94d3550a3941d7527a45d","impliedFormat":1},{"version":"f53b120213a9289d9a26f5af90c4c686dd71d91487a0aa5451a38366c70dc64b","impliedFormat":1},{"version":"83fe880c090afe485a5c02262c0b7cdd76a299a50c48d9bde02be8e908fb4ae6","impliedFormat":1},{"version":"0a372c2d12a259da78e21b25974d2878502f14d89c6d16b97bd9c5017ab1bc12","impliedFormat":1},{"version":"57d67b72e06059adc5e9454de26bbfe567d412b962a501d263c75c2db430f40e","impliedFormat":1},{"version":"6511e4503cf74c469c60aafd6589e4d14d5eb0a25f9bf043dcbecdf65f261972","impliedFormat":1},{"version":"ec1ca97598eda26b7a5e6c8053623acbd88e43be7c4d29c77ccd57abc4c43999","impliedFormat":1},{"version":"6e2261cd9836b2c25eecb13940d92c024ebed7f8efe23c4b084145cd3a13b8a6","impliedFormat":1},{"version":"a67b87d0281c97dfc1197ef28dfe397fc2c865ccd41f7e32b53f647184cc7307","impliedFormat":1},{"version":"771ffb773f1ddd562492a6b9aaca648192ac3f056f0e1d997678ff97dbb6bf9b","impliedFormat":1},{"version":"232f70c0cf2b432f3a6e56a8dc3417103eb162292a9fd376d51a3a9ea5fbbf6f","impliedFormat":1},{"version":"a47e6d954d22dd9ebb802e7e431b560ed7c581e79fb885e44dc92ed4f60d4c07","impliedFormat":1},{"version":"f019e57d2491c159d47a107fd90219a1734bdd2e25cd8d1db3c8fae5c6b414c4","impliedFormat":1},{"version":"8a0e762ceb20c7e72504feef83d709468a70af4abccb304f32d6b9bac1129b2c","impliedFormat":1},{"version":"d1c9bf292a54312888a77bb19dba5e2503ad803f5393beafd45d78d2f4fe9b48","impliedFormat":1},{"version":"9252d498a77517aab5d8d4b5eb9d71e4b225bbc7123df9713e08181de63180f6","impliedFormat":1},{"version":"cb8d8ef7b9ce8ed3e6f1c814fcbf3f90dab0cb8863079236784fc350746e27c4","impliedFormat":1},{"version":"35e6379c3f7cb27b111ad4c1aa69538fd8e788ab737b8ff7596a1b40e96f4f90","impliedFormat":1},{"version":"1fffe726740f9787f15b532e1dc870af3cd964dbe29e191e76121aa3dd8693f2","impliedFormat":1},{"version":"3be035da7bee86b4c3abf392e0edaa44fc6e45092995eefe36b39118c8a84068","affectsGlobalScope":true,"impliedFormat":1},{"version":"8f828825d077c2fa0ea606649faeb122749273a353daab23924fe674e98ba44c","impliedFormat":1},{"version":"2896c2e673a5d3bd9b4246811f79486a073cbb03950c3d252fba10003c57411a","impliedFormat":1},{"version":"616775f16134fa9d01fc677ad3f76e68c051a056c22ab552c64cc281a9686790","impliedFormat":1},{"version":"65c24a8baa2cca1de069a0ba9fba82a173690f52d7e2d0f1f7542d59d5eb4db0","impliedFormat":1},{"version":"f9fe6af238339a0e5f7563acee3178f51db37f32a2e7c09f85273098cee7ec49","impliedFormat":1},{"version":"407a06ba04eede4074eec470ecba2784cbb3bf4e7de56833b097dd90a2aa0651","impliedFormat":1},{"version":"77e71242e71ebf8528c5802993697878f0533db8f2299b4d36aa015bae08a79c","impliedFormat":1},{"version":"98a787be42bd92f8c2a37d7df5f13e5992da0d967fab794adbb7ee18370f9849","impliedFormat":1},{"version":"5c96bad5f78466785cdad664c056e9e2802d5482ca5f862ed19ba34ffbb7b3a4","impliedFormat":1},{"version":"81d8603ac527e75cfec72bb9391228b58f161c2b33514a9d814c7f3ebd3ef466","impliedFormat":1},{"version":"5f3dc10ae646f375776b4e028d2bed039a93eebbba105694d8b910feebbe8b9c","impliedFormat":1},{"version":"bb0cd7862b72f5eba39909c9889d566e198fcaddf7207c16737d0c2246112678","impliedFormat":1},{"version":"4545c1a1ceca170d5d83452dd7c4994644c35cf676a671412601689d9a62da35","impliedFormat":1},{"version":"320f4091e33548b554d2214ce5fc31c96631b513dffa806e2e3a60766c8c49d9","impliedFormat":1},{"version":"a2d648d333cf67b9aeac5d81a1a379d563a8ffa91ddd61c6179f68de724260ff","impliedFormat":1},{"version":"d90d5f524de38889d1e1dbc2aeef00060d779f8688c02766ddb9ca195e4a713d","impliedFormat":1},{"version":"a3f41ed1b4f2fc3049394b945a68ae4fdefd49fa1739c32f149d32c0545d67f5","impliedFormat":1},{"version":"bad68fd0401eb90fe7da408565c8aee9c7a7021c2577aec92fa1382e8876071a","impliedFormat":1},{"version":"47699512e6d8bebf7be488182427189f999affe3addc1c87c882d36b7f2d0b0e","impliedFormat":1},{"version":"fec01479923e169fb52bd4f668dbeef1d7a7ea6e6d491e15617b46f2cacfa37d","impliedFormat":1},{"version":"8a8fb3097ba52f0ae6530ec6ab34e43e316506eb1d9aa29420a4b1e92a81442d","impliedFormat":1},{"version":"44e09c831fefb6fe59b8e65ad8f68a7ecc0e708d152cfcbe7ba6d6080c31c61e","impliedFormat":1},{"version":"1c0a98de1323051010ce5b958ad47bc1c007f7921973123c999300e2b7b0ecc0","impliedFormat":1},{"version":"4655709c9cb3fd6db2b866cab7c418c40ed9533ce8ea4b66b5f17ec2feea46a9","impliedFormat":1},{"version":"87affad8e2243635d3a191fa72ef896842748d812e973b7510a55c6200b3c2a4","impliedFormat":1},{"version":"ad036a85efcd9e5b4f7dd5c1a7362c8478f9a3b6c3554654ca24a29aa850a9c5","impliedFormat":1},{"version":"fedebeae32c5cdd1a85b4e0504a01996e4a8adf3dfa72876920d3dd6e42978e7","impliedFormat":1},{"version":"3eecb25bb467a948c04874d70452b14ae7edb707660aac17dc053e42f2088b00","impliedFormat":1},{"version":"cdf21eee8007e339b1b9945abf4a7b44930b1d695cc528459e68a3adc39a622e","impliedFormat":1},{"version":"330896c1a2b9693edd617be24fbf9e5895d6e18c7955d6c08f028f272b37314d","impliedFormat":1},{"version":"1d9c0a9a6df4e8f29dc84c25c5aa0bb1da5456ebede7a03e03df08bb8b27bae6","impliedFormat":1},{"version":"84380af21da938a567c65ef95aefb5354f676368ee1a1cbb4cae81604a4c7d17","impliedFormat":1},{"version":"1af3e1f2a5d1332e136f8b0b95c0e6c0a02aaabd5092b36b64f3042a03debf28","impliedFormat":1},{"version":"30d8da250766efa99490fc02801047c2c6d72dd0da1bba6581c7e80d1d8842a4","impliedFormat":1},{"version":"03566202f5553bd2d9de22dfab0c61aa163cabb64f0223c08431fb3fc8f70280","impliedFormat":1},{"version":"5f0292a40df210ab94b9fb44c8b775c51e96777e14e073900e392b295ca1061b","impliedFormat":1},{"version":"bc9ee0192f056b3d5527bcd78dc3f9e527a9ba2bdc0a2c296fbc9027147df4b2","impliedFormat":1},{"version":"8627ad129bcf56e82adff0ab5951627c993937aa99f5949c33240d690088b803","impliedFormat":1},{"version":"1de80059b8078ea5749941c9f863aa970b4735bdbb003be4925c853a8b6b4450","impliedFormat":1},{"version":"1d079c37fa53e3c21ed3fa214a27507bda9991f2a41458705b19ed8c2b61173d","impliedFormat":1},{"version":"5bf5c7a44e779790d1eb54c234b668b15e34affa95e78eada73e5757f61ed76a","impliedFormat":1},{"version":"5835a6e0d7cd2738e56b671af0e561e7c1b4fb77751383672f4b009f4e161d70","impliedFormat":1},{"version":"5c634644d45a1b6bc7b05e71e05e52ec04f3d73d9ac85d5927f647a5f965181a","impliedFormat":1},{"version":"4b7f74b772140395e7af67c4841be1ab867c11b3b82a51b1aeb692822b76c872","impliedFormat":1},{"version":"27be6622e2922a1b412eb057faa854831b95db9db5035c3f6d4b677b902ab3b7","impliedFormat":1},{"version":"a68d4b3182e8d776cdede7ac9630c209a7bfbb59191f99a52479151816ef9f9e","impliedFormat":99},{"version":"39644b343e4e3d748344af8182111e3bbc594930fff0170256567e13bbdbebb0","impliedFormat":99},{"version":"ed7fd5160b47b0de3b1571c5c5578e8e7e3314e33ae0b8ea85a895774ee64749","impliedFormat":99},{"version":"63a7595a5015e65262557f883463f934904959da563b4f788306f699411e9bac","impliedFormat":1},{"version":"ecbaf0da125974be39c0aac869e403f72f033a4e7fd0d8cd821a8349b4159628","impliedFormat":1},{"version":"4ba137d6553965703b6b55fd2000b4e07ba365f8caeb0359162ad7247f9707a6","impliedFormat":1},{"version":"ceec3c81b2d81f5e3b855d9367c1d4c664ab5046dff8fd56552df015b7ccbe8f","affectsGlobalScope":true,"impliedFormat":1},{"version":"8fac4a15690b27612d8474fb2fc7cc00388df52d169791b78d1a3645d60b4c8b","affectsGlobalScope":true,"impliedFormat":1},{"version":"064ac1c2ac4b2867c2ceaa74bbdce0cb6a4c16e7c31a6497097159c18f74aa7c","impliedFormat":1},{"version":"3dc14e1ab45e497e5d5e4295271d54ff689aeae00b4277979fdd10fa563540ae","impliedFormat":1},{"version":"1d63055b690a582006435ddd3aa9c03aac16a696fac77ce2ed808f3e5a06efab","impliedFormat":1},{"version":"b789bf89eb19c777ed1e956dbad0925ca795701552d22e68fd130a032008b9f9","impliedFormat":1},"85ae5aee75f011967cf2d25cbc342f62d69314e9d925f7f4aa3456fc2cffcca6",{"version":"e7ef8a4c4ce8d7e64b239745986088dd8d0aa9a1932a3d626dc353a2edaf944e","signature":"fe30465f81a37f23a168022109187dbd1951404e3ec2fbc6516d584c597f1325"},{"version":"402e5c534fb2b85fa771170595db3ac0dd532112c8fa44fc23f233bc6967488b","impliedFormat":1},{"version":"8885cf05f3e2abf117590bbb951dcf6359e3e5ac462af1c901cfd24c6a6472e2","impliedFormat":1},{"version":"333caa2bfff7f06017f114de738050dd99a765c7eb16571c6d25a38c0d5365dc","impliedFormat":1},{"version":"e61df3640a38d535fd4bc9f4a53aef17c296b58dc4b6394fd576b808dd2fe5e6","impliedFormat":1},{"version":"459920181700cec8cbdf2a5faca127f3f17fd8dd9d9e577ed3f5f3af5d12a2e4","impliedFormat":1},{"version":"4719c209b9c00b579553859407a7e5dcfaa1c472994bd62aa5dd3cc0757eb077","impliedFormat":1},{"version":"7ec359bbc29b69d4063fe7dad0baaf35f1856f914db16b3f4f6e3e1bca4099fa","impliedFormat":1},{"version":"70790a7f0040993ca66ab8a07a059a0f8256e7bb57d968ae945f696cbff4ac7a","impliedFormat":1},{"version":"d1b9a81e99a0050ca7f2d98d7eedc6cda768f0eb9fa90b602e7107433e64c04c","impliedFormat":1},{"version":"a022503e75d6953d0e82c2c564508a5c7f8556fad5d7f971372d2d40479e4034","impliedFormat":1},{"version":"b215c4f0096f108020f666ffcc1f072c81e9f2f95464e894a5d5f34c5ea2a8b1","impliedFormat":1},{"version":"644491cde678bd462bb922c1d0cfab8f17d626b195ccb7f008612dc31f445d2d","impliedFormat":1},{"version":"dfe54dab1fa4961a6bcfba68c4ca955f8b5bbeb5f2ab3c915aa7adaa2eabc03a","impliedFormat":1},{"version":"1251d53755b03cde02466064260bb88fd83c30006a46395b7d9167340bc59b73","impliedFormat":1},{"version":"47865c5e695a382a916b1eedda1b6523145426e48a2eae4647e96b3b5e52024f","impliedFormat":1},{"version":"4cdf27e29feae6c7826cdd5c91751cc35559125e8304f9e7aed8faef97dcf572","impliedFormat":1},{"version":"331b8f71bfae1df25d564f5ea9ee65a0d847c4a94baa45925b6f38c55c7039bf","impliedFormat":1},{"version":"2a771d907aebf9391ac1f50e4ad37952943515eeea0dcc7e78aa08f508294668","impliedFormat":1},{"version":"0146fd6262c3fd3da51cb0254bb6b9a4e42931eb2f56329edd4c199cb9aaf804","impliedFormat":1},{"version":"183f480885db5caa5a8acb833c2be04f98056bdcc5fb29e969ff86e07efe57ab","impliedFormat":99},{"version":"b558c9a18ea4e6e4157124465c3ef1063e64640da139e67be5edb22f534f2f08","impliedFormat":1},{"version":"01374379f82be05d25c08d2f30779fa4a4c41895a18b93b33f14aeef51768692","impliedFormat":1},{"version":"b0dee183d4e65cf938242efaf3d833c6b645afb35039d058496965014f158141","impliedFormat":1},{"version":"c0bbbf84d3fbd85dd60d040c81e8964cc00e38124a52e9c5dcdedf45fea3f213","impliedFormat":1},{"version":"a1d4afc58e345253a0cbb408a5f90d88b9805a928c9f8b660c7758cf95b86a0e","signature":"12d861b4d60f1c07271da99a01a5541f0c478016b285a421df3600047ff12676"},{"version":"674c7eb70201c86688bd9c90664b1147ea6218720b32d7a6c904745af0b27090","impliedFormat":1},{"version":"8e4700674ad62fac98d09b86eb547acec82d101ade37a291881e7f7587923a15","impliedFormat":1},{"version":"1348bbc02892926fd4ccec78d25311f20345262d2a9e0cc07d9f8972c8f42174","impliedFormat":1},{"version":"aa4fc83ad40a34b0429b1e3e666426161576c6e3f44761bd28a374f904a1a762","impliedFormat":1},{"version":"3f3bd35f731b30c26d859c71594a416cc9e00f5ad644a19213090f7b1d0d7c36","impliedFormat":1},{"version":"d38338f31b0efc8b86bbc1dd914752236eba3f25ba89d74e391de30ab9171b49","impliedFormat":1},{"version":"2419eac32fe41d4d3a69b5ee38b954e38fa9c7fa95864266f1690ecf368f9e64","impliedFormat":1},{"version":"c0842aafa82fc4a4f44f23c1397ebabe249b6b716b383b005e43f8865760a0da","impliedFormat":1},{"version":"80636829e2be5ace8b032e2cf9de790a6e42e9f2b7cceed1022627c656b88828","impliedFormat":1},{"version":"965b69c16441ebcc3c5e6419635fdf6e90b76fb1ba0c67674c56e46739e9f678","impliedFormat":1},{"version":"da4b735f05554bd552794a44da82cdab57355e30ff2d07e696f2783f7a441f99","impliedFormat":1},{"version":"1f3913db835388e9b268186c9ba714217ec285590e9a737422024af397e95cf2","impliedFormat":1},{"version":"457077f7ffba66d48690c5e60952a773fddcd3d2563c90be65725d1e40015fec","impliedFormat":1},{"version":"ef9fa75c9d2968c3e3e395dc5c6e7bb20ddb918c298f3cbdd105cc213e1b9da0","impliedFormat":1},{"version":"116c9a0cc59c705bcfeef8c8f3155ac0e4b5cd50685e919fffda75b6845ff369","impliedFormat":1},{"version":"2cfe7b47c82c6714a28b660f5f27dd4a04c49a0d0a5cb2715247b70ea010787e","impliedFormat":1},{"version":"3ecd5fcc7c91da5613f6797095ed9aed0ba340e2b63d039e22461bb2ceaf38ba","impliedFormat":1},{"version":"30c37e08950538b20f5b42565fd904ebb235d74b179d0c8727fee6bbc7e53756","impliedFormat":1},{"version":"46d1cce61f43632d5484147de2e531e4e6f3decadb938767afaac6d4ad48f3f0","impliedFormat":1},{"version":"eb22b907cbbbdc86a48d358780dd9e7684d6895c3e05c4c46b65d045b78ebd4f","impliedFormat":1},{"version":"d67dc5e23c916fc65565d4e6d7456c76af6bc6cdf54c4510e87c6de6c791d584","impliedFormat":1},{"version":"6a2d4776d583dd135d3cddbd3a0bb60323cfb54945a922a965694345170d0a94","impliedFormat":1},{"version":"d560855bb971097afb67ea5e970ee82f38f05e16dd680ce8f712f725b17cba61","impliedFormat":1},{"version":"2dc9e32dd4230e4955cb34cb7c32a24256c60c9d263850a8db637aeb4a02d618","impliedFormat":1},{"version":"6c55a1fc5b617b7ad71be2085ce47be425c6f100da9a4d8ebe367f8fd5c84bfb","impliedFormat":1},{"version":"7f9fbf07164ee07aae3f3c0270e8d3a35780ddeace936c7f5f4c2eb846dd1b33","impliedFormat":1},{"version":"1be686292b6f54921b6296c298552c3a2eab17a1db3552f6d54fffa924e4a052","impliedFormat":1},{"version":"a3d3f3350ce88b0e728128785c1815bc9318d375dc831dca6c13bb3902c136c8","impliedFormat":1},{"version":"3aac37c3297fdce42a910675ab7b2a5beaa81eee279dcbf272da75da615a62fa","impliedFormat":1},{"version":"27c7ad8ee760d7984401bc41b37990b1bbe9f4cc1d0c41605fdafaad737468ee","impliedFormat":1},{"version":"18281f6c69238de24990f2f1ec1d7bc96cbd24b97942177f2b1b5787be2786f5","impliedFormat":1},{"version":"2d3a116ea1485d5a264f7a18edbd30d153810aad0e84b35ddff9db0e307a2c34","impliedFormat":1},{"version":"8bb90bfac65d99b28501d6a9056093987a02c47a090077c2630cea2aa8c4b4be","impliedFormat":1},{"version":"aea225adc054b60f3120f7fe30e6af13d141cf8f78d3c1719bd1f4113e287002","impliedFormat":1},{"version":"3bca4a3da764f502823c800c6c17f030af618282d2592e1b97ad878f89b7bc37","impliedFormat":1},{"version":"730a653236078d442c8b785d862e1cd7a4114e6ed2ddccaae637cef3ef8ca2e9","impliedFormat":1},{"version":"42455de16362a4be2acd8f658d22dabfb2d112d1376988f72e8641609806b420","impliedFormat":1},{"version":"7fe66db0fc67afec6be32695e96bec1b1f9b1276dc3420af5b771ba496568769","impliedFormat":1},{"version":"d2edd4dd24d94d1c21c8cfe045ae38a7e6d7a7fadf59cf465f1216e6266e5368","impliedFormat":1},{"version":"2574fd0df641e78924e640d4e61194a74d5626ee6900b9d0023cbeeb472a5b13","impliedFormat":1},{"version":"7deec31e838e791429f1fb32a219492feeaa11edb2b39d14ab16ec3dfb349714","impliedFormat":1},{"version":"8c5b0714e924e855865dd314e03fc130c70d0ddffd0fd51ede2d068fb3d8d83c","impliedFormat":1},{"version":"f681f30a6352d24bc59c8e7e9072f9bf7a7e1d882976762b1906e5b58aa1ad6c","impliedFormat":1},{"version":"524fdee43d764d038a8aaa216b7546e24185b59ceb56540f1e3c84e5578dcb52","impliedFormat":1},{"version":"79ae49eaec49a61f0b66a8790778c7987dbde4db32dc5b7dc34683574abbbdf9","impliedFormat":1},{"version":"515f8a7f87649d51e4a6e98e874faefd9b079449d8da8cde4e030dca6b1261ff","impliedFormat":1},{"version":"84f59efa9d23ffe27c8ae204aa9961f93924a119b1655c087f6a58c9f2856955","impliedFormat":1},{"version":"b55849761d402ce9ed68940862a427a03873a3ca0f1b90ed122b81a16f1ad85d","impliedFormat":1},{"version":"55c87a423a295426b2b6d71d352aa8d6ac6f02e1256ec826f94a7fce7c676d71","impliedFormat":1},{"version":"44b95e2f3ca8b973a6de1542a9b5f306217c08b040cd9013e5d225af2f4c11e7","impliedFormat":1},{"version":"132f1f5b1af8db7dcb4a2449a388d7877ba436c9fc89ed393ee59757b5f6d3a7","impliedFormat":1},{"version":"9475ae70c6e9ee43c88b8a0f361f22b07bffb056ad8db85f490be995333f7314","impliedFormat":1},{"version":"ec3b8e9ef082b58fdaa0fae703ba4ea8ce92b11dbf75c6cdff33bce917b03433","impliedFormat":1},{"version":"efc98e9a33527ad1fd106c788b8fc4dfd1e31eb1e07620aea0a8566c80b96e9c","impliedFormat":1},{"version":"8e370c682eb832fd7f1089210bbe778a676a93ac1783a57ba5914165947ba709","impliedFormat":1},{"version":"a97c0b03a36e25d4ddede9ccaff5b99362928f541c10599054df40606a058729","impliedFormat":1},{"version":"2c22cac2211d4864e18b4315344df482e2707753e20b3d364c57cb3417551cdd","impliedFormat":1},{"version":"bfc1544b179dd81b39d9d95084b9d113dd3f57ae89e5a785bf5b491145237a83","impliedFormat":1},{"version":"ad71621fa5b8cec080eded63266663c7a8101d38ba537270178863a09491906d","impliedFormat":1},{"version":"937c4e0705f14babec41da7f6ad44766c4670c3fd63da539a46da33968d85e7b","impliedFormat":1},{"version":"fdc7cae312825d717b71fa2f323d23ddbe6be8d5eb6ed7a9ba4a4e5c1a777cf5","impliedFormat":1},{"version":"80b66fdc7a2cf1e34cda693f8266a1265f3863758b70c9665d395a3db3c8b808","impliedFormat":1},{"version":"89c0a8be33c5799c5092b6f3d4581a308a20585b5361f16f09fd5cac78cbc283","signature":"8df78618259414569f9647e69db597204bdb6ef74f529a49e4ec8a76420ccbef"},{"version":"2781a1b1c3a01b52f5811d113d6f3b6e70907f5f715d9e5a5978d809eeabb0cc","signature":"0c1fa1072238ee9cf8e9ebe8a5f70cd9874a40a4c79c14d16360ddc37e846175"},{"version":"b1f1ce7bd7dd3039d3ebe45a7d9f0008d9cfa044aa2b88f5d8f506454056fc7c","signature":"aa29a585c28740119ed2d7d9dd4d3a609eb3dbf50873d1c10d8845d3116875b6"},{"version":"8eed1785ff5e33b58bf8069cfdab5966b897de8fd1942a12c6c3b720971acba3","signature":"b1e4ed662d5c64bbbf9fce485778d62c66fd37e8c035196b12eaf80816476aa2"},{"version":"8b3bbf6324582d5a88020c8cf0dd399956226b666a3e7d0ca781c731cebb8c21","signature":"a55269136d24bef8edf9356112a7af71c818317bac7060ae56525adac8402b9d"},{"version":"b13d5fe7f3a81d347f34e48271d10cd44095035a5d7976670f94dd041ca4d22a","signature":"000a968d1cd0546ac81a3ecee25a8e19de7ad301716fbf045dc63a864b4e0b02"},{"version":"a3b073e49119d69d6a4bece47ca8181dd287a61842204d2e9d1cf1bba7220340","signature":"3e2a8fa0d42036522d9a12b87fc8a77776eea8b57a99b0ab27ffb8a559f1c73f"},{"version":"d3cfde44f8089768ebb08098c96d01ca260b88bccf238d55eee93f1c620ff5a5","impliedFormat":1},{"version":"293eadad9dead44c6fd1db6de552663c33f215c55a1bfa2802a1bceed88ff0ec","impliedFormat":1},{"version":"833e92c058d033cde3f29a6c7603f517001d1ddd8020bc94d2067a3bc69b2a8e","impliedFormat":1},{"version":"08b2fae7b0f553ad9f79faec864b179fc58bc172e295a70943e8585dd85f600c","impliedFormat":1},{"version":"f12edf1672a94c578eca32216839604f1e1c16b40a1896198deabf99c882b340","impliedFormat":1},{"version":"e3498cf5e428e6c6b9e97bd88736f26d6cf147dedbfa5a8ad3ed8e05e059af8a","impliedFormat":1},{"version":"dba3f34531fd9b1b6e072928b6f885aa4d28dd6789cbd0e93563d43f4b62da53","impliedFormat":1},{"version":"f672c876c1a04a223cf2023b3d91e8a52bb1544c576b81bf64a8fec82be9969c","impliedFormat":1},{"version":"e4b03ddcf8563b1c0aee782a185286ed85a255ce8a30df8453aade2188bbc904","impliedFormat":1},{"version":"2329d90062487e1eaca87b5e06abcbbeeecf80a82f65f949fd332cfcf824b87b","impliedFormat":1},{"version":"25b3f581e12ede11e5739f57a86e8668fbc0124f6649506def306cad2c59d262","impliedFormat":1},{"version":"4fdb529707247a1a917a4626bfb6a293d52cd8ee57ccf03830ec91d39d606d6d","impliedFormat":1},{"version":"a9ebb67d6bbead6044b43714b50dcb77b8f7541ffe803046fdec1714c1eba206","impliedFormat":1},{"version":"5780b706cece027f0d4444fbb4e1af62dc51e19da7c3d3719f67b22b033859b9","impliedFormat":1},{"version":"07dd9fe09fcbad897b9bc8c41a5829a30cf0e27fb518ad769de7402f97852cf3","signature":"3f63542909caadf3fba138929225071a1c004735a30c34f5cb28bf972e02ab82"},{"version":"7f1580eeb62288ac6be50b97192394b37233f37a24e99f4be177fa1ae8f9ee67","signature":"c7b3cb74e1f56cfd03d27f950d7ffa9f1090c1ffc5d46f92e4d1c7c9eecb80fb"},{"version":"bc72e9b2bd0d7ceb7e8f945d776a69d169ca73a40278177a4950a40e6682b1b8","signature":"23689f4d03b3f89b447189155894591aaa573d510c5d3e7689938410aca1f44e"},{"version":"f3d8c757e148ad968f0d98697987db363070abada5f503da3c06aefd9d4248c1","impliedFormat":1},{"version":"a93daf9245e2e7a8db7055312db5d9aae6d2ac69c20e433a521f69c16c04c5ae","impliedFormat":1},{"version":"e91013ea9bf651a1671f143cc1cfb805afc80e954e18168f7ca1f1f38703e187","impliedFormat":1},{"version":"25947a3f4ce1016a8f967ccaf83a2f2229e15844bc78d4b63a4f7df9e98ecb05","impliedFormat":1},{"version":"a4e9e0d92dcad2cb387a5f1bdffe621569052f2d80186e11973aa7080260d296","impliedFormat":1},{"version":"f6380cc36fc3efc70084d288d0a05d0a2e09da012ee3853f9d62431e7216f129","impliedFormat":1},{"version":"497c3e541b4acf6c5d5ba75b03569cfe5fe25c8a87e6c87f1af98da6a3e7b918","impliedFormat":1},{"version":"d9429b81edf2fb2abf1e81e9c2e92615f596ed3166673d9b69b84c369b15fdc0","impliedFormat":1},{"version":"7e22943ae4e474854ca0695ab750a8026f55bb94278331fda02a4fb42efce063","impliedFormat":1},{"version":"7da9ff3d9a7e62ddca6393a23e67296ab88f2fcb94ee5f7fb977fa8e478852ac","impliedFormat":1},{"version":"e1b45cc21ea200308cbc8abae2fb0cfd014cb5b0e1d1643bcc50afa5959b6d83","impliedFormat":1},{"version":"c9740b0ce7533ce6ba21a7d424e38d2736acdddeab2b1a814c00396e62cc2f10","impliedFormat":1},{"version":"b3c1f6a3fdbb04c6b244de6d5772ffdd9e962a2faea1440e410049c13e874b87","impliedFormat":1},{"version":"dcaa872d9b52b9409979170734bdfd38f846c32114d05b70640fd05140b171bb","impliedFormat":1},{"version":"6c434d20da381fcd2e8b924a3ec9b8653cf8bed8e0da648e91f4c984bd2a5a91","impliedFormat":1},{"version":"992419d044caf6b14946fa7b9463819ab2eeb7af7c04919cc2087ce354c92266","impliedFormat":1},{"version":"fa9815e9ce1330289a5c0192e2e91eb6178c0caa83c19fe0c6a9f67013fe795c","impliedFormat":1},{"version":"06384a1a73fcf4524952ecd0d6b63171c5d41dd23573907a91ef0a687ddb4a8c","impliedFormat":1},{"version":"34b1594ecf1c84bcc7a04d9f583afa6345a6fea27a52cf2685f802629219de45","impliedFormat":1},{"version":"d82c9ca830d7b94b7530a2c5819064d8255b93dfeddc5b2ebb8a09316f002c89","impliedFormat":1},{"version":"7e046b9634add57e512412a7881efbc14d44d1c65eadd35432412aa564537975","impliedFormat":1},{"version":"aac9079b9e2b5180036f27ab37cb3cf4fd19955be48ccc82eab3f092ee3d4026","impliedFormat":1},{"version":"3d9c38933bc69e0a885da20f019de441a3b5433ce041ba5b9d3a541db4b568cb","impliedFormat":1},{"version":"606aa2b74372221b0f79ca8ae3568629f444cc454aa59b032e4cb602308dec94","impliedFormat":1},{"version":"50474eaea72bfda85cc37ae6cd29f0556965c0849495d96c8c04c940ef3d2f44","impliedFormat":1},{"version":"b4874382f863cf7dc82b3d15aed1e1372ac3fede462065d5bfc8510c0d8f7b19","impliedFormat":1},{"version":"df10b4f781871afb72b2d648d497671190b16b679bf7533b744cc10b3c6bf7ea","impliedFormat":1},{"version":"1fdc28754c77e852c92087c789a1461aa6eed19c335dc92ce6b16a188e7ba305","impliedFormat":1},{"version":"a656dab1d502d4ddc845b66d8735c484bfebbf0b1eda5fb29729222675759884","impliedFormat":1},{"version":"465a79505258d251068dc0047a67a3605dd26e6b15e9ad2cec297442cbb58820","impliedFormat":1},{"version":"ddae22d9329db28ce3d80a2a53f99eaed66959c1c9cd719c9b744e5470579d2f","impliedFormat":1},{"version":"d0e25feadef054c6fc6a7f55ccc3b27b7216142106b9ff50f5e7b19d85c62ca7","impliedFormat":1},{"version":"111214009193320cacbae104e8281f6cb37788b52a6a84d259f9822c8c71f6ca","impliedFormat":1},{"version":"01c8e2c8984c96b9b48be20ee396bd3689a3a3e6add8d50fe8229a7d4e62ff45","impliedFormat":1},{"version":"a4a0800b592e533897b4967b00fb00f7cd48af9714d300767cc231271aa100af","impliedFormat":1},{"version":"20aa818c3e16e40586f2fa26327ea17242c8873fe3412a69ec68846017219314","impliedFormat":1},{"version":"f498532f53d54f831851990cb4bcd96063d73e302906fa07e2df24aa5935c7d1","impliedFormat":1},{"version":"5fd19dfde8de7a0b91df6a9bbdc44b648fd1f245cae9e8b8cf210d83ee06f106","impliedFormat":1},{"version":"3b8d6638c32e63ea0679eb26d1eb78534f4cc02c27b80f1c0a19f348774f5571","impliedFormat":1},{"version":"ce0da52e69bc3d82a7b5bc40da6baad08d3790de13ad35e89148a88055b46809","impliedFormat":1},{"version":"9e01233da81bfed887f8d9a70d1a26bf11b8ddff165806cc586c84980bf8fc24","impliedFormat":1},{"version":"214a6afbab8b285fc97eb3cece36cae65ea2fca3cbd0c017a96159b14050d202","impliedFormat":1},{"version":"14beeca2944b75b229c0549e0996dc4b7863e07257e0d359d63a7be49a6b86a4","impliedFormat":1},{"version":"f7bb9adb1daa749208b47d1313a46837e4d27687f85a3af7777fc1c9b3dc06b1","impliedFormat":1},{"version":"c549fe2f52101ffe47f58107c702af7cdcd42da8c80afd79f707d1c5d77d4b6e","impliedFormat":1},{"version":"3966ea9e1c1a5f6e636606785999734988e135541b79adc6b5d00abdc0f4bf05","impliedFormat":1},{"version":"0b60b69c957adb27f990fbc27ea4ac1064249400262d7c4c1b0a1687506b3406","impliedFormat":1},{"version":"12c26e5d1befc0ded725cee4c2316f276013e6f2eb545966562ae9a0c1931357","impliedFormat":1},{"version":"27b247363f1376c12310f73ebac6debcde009c0b95b65a8207e4fa90e132b30a","impliedFormat":1},{"version":"05bd302e2249da923048c09dc684d1d74cb205551a87f22fb8badc09ec532a08","impliedFormat":1},{"version":"fe930ec064571ab3b698b13bddf60a29abf9d2f36d51ab1ca0083b087b061f3a","impliedFormat":1},{"version":"6b85c4198e4b62b0056d55135ad95909adf1b95c9a86cdbed2c0f4cc1a902d53","impliedFormat":1},{"version":"5b405d7e5d368669bd8c6efff0c42f884998948c5c8824fdab5f25baf4551069","impliedFormat":1},{"version":"b3c6f99f544711c6e7c90bea3e2070f5e6d1979dbb119dc20c2fc5c31282257f","impliedFormat":1},{"version":"bbd20827024b23ae67ef05a8b87df779f04c12a6f13406933c601ec85545d2fc","impliedFormat":1},{"version":"5ff2de3aacf497c8bbe542e8da0474c172de15f4228c7e31990c849d4f597c11","signature":"058cd6b02fe26dd82ec02f831c1a7520382bfa606ac57c9b5a7d80d496456692"},{"version":"43ad797cb0146021ef23fa70e9d435944076dfa9b1f067c9c51e97f3737f6e5d","signature":"7026118da69ac15974c7660e853389efdd8da47ea5fa01800620dc6e720d1161"},{"version":"a59c6783265b9a6b5532bee23f4c5077ca6efa1b60641d19b7cbc9fb56eab180","signature":"8171d94d4b0301bca556c9b1065b8420e7c74a25a06654b06d215d36ac1a67b6"},{"version":"b78c9b8fc5d459e332a6966eccde3b8ef7dbc14f06784479fcc6da0bd501d3d9","signature":"5ecf2d0355021ce08196a67e6307068efd50ff501841240e442f4856301c4780"},{"version":"942b15ae14e3b89b861bc59ed22ca05e5bca2308284fa1cbfda9b36e8a12ae8d","signature":"c607567072bbc3b3169ac574895327c4c8d2051893dd8de086980fa520eb5384"},{"version":"ea6bd5785e737cecc766e31872a6e2163483b2c3cb5e31b1346f9cca837e2297","signature":"a9abf349260c510178d0945395ac1fd617370930fd5971b056310c965f02d02c"},{"version":"7869f95f79a1023040633749c6941c7ecee5d306e6e4732526b9d6afe4c7f7f4","signature":"aa7386ea7885065e9909beab418abd52b21ab9c2b399d232c04466d8cbba068f"},{"version":"5194c6ab9fb413521ab0e2307bee921844f17f033c96359b4806376f4774ccf0","signature":"5486c1df1163b9ce61ff6b7b52f79d8d95911c9436edda7275a487e94515c5fb"},"a2da634b5892e27da948f60461ec881fb0cecbb55de53561b38aa62cf23b748d","b9a521fa1888007f172607329c915ff159a5495cb1cd00146ebe974826a8fb6e",{"version":"4d7d964609a07368d076ce943b07106c5ebee8138c307d3273ba1cf3a0c3c751","impliedFormat":99},{"version":"0e48c1354203ba2ca366b62a0f22fec9e10c251d9d6420c6d435da1d079e6126","impliedFormat":99},{"version":"0662a451f0584bb3026340c3661c3a89774182976cd373eca502a1d3b5c7b580","impliedFormat":99},{"version":"fe7d4a150fc80f1b6be0f66370c7e22000314d8dd5353ae4f3fb4c22144ba412","signature":"57265a602210b9f4604e02121f46be5aa9fcf9f4bc8ca53f7cb6bdcc6481d6f9"},{"version":"50cf7a23fc93928995caec8d7956206990f82113beeb6b3242dae8124edc3ca0","impliedFormat":99},{"version":"352031ac2e53031b69a09355e09ad7d95361edf32cc827cfe2417d80247a5a50","impliedFormat":99},{"version":"9971931daaf18158fc38266e838d56eb5d9d1f13360b1181bb4735a05f534c03","impliedFormat":99},{"version":"7004ed3b2b63363fe477fbad8a126ee2b9a0d07ed17451709a54d3331c208e52","impliedFormat":99},{"version":"35c29c2711733aec54c1d354f889c39ac9cff77d37b566df2da51c78dd7a1292","impliedFormat":99},{"version":"0c5b705d31420477189618154d1b6a9bb62a34fa6055f56ade1a316f6adb6b3a","impliedFormat":99},{"version":"853b8bdb5da8c8e5d31e4d715a8057d8e96059d6774b13545c3616ed216b890c","impliedFormat":99},{"version":"4634a4659bcf3ace4a5a687537abef421a778310f100f210ea09bdd816a51c39","impliedFormat":99},{"version":"fe3c64bf61fcfec9b9861725c6d92de03f33748a01d982760ccfa798d777cf9d","impliedFormat":99},{"version":"d68ba1862fa4aac61d0f5f660006d2bf6eeb890b0ce42632b65f2a1530d0b587","impliedFormat":99},{"version":"fa18d692be17a9ff34d00ebf11b1fed35f4bd8ddcb357e59488cec602edc4a56","impliedFormat":99},{"version":"2bb7e3f4061e7fdb62652ffb077ca2a01b55e9d898409e37fe1ae97acab894ea","impliedFormat":99},{"version":"c363b57a3dfab561bfe884baacf8568eea085bd5e11ccf0992fac67537717d90","impliedFormat":99},{"version":"1757a53a602a8991886070f7ba4d81258d70e8dca133b256ae6a1a9f08cd73b3","impliedFormat":99},{"version":"084c09a35a9611e1777c02343c11ab8b1be48eb4895bbe6da90222979940b4a6","impliedFormat":99},{"version":"4b3049a2c849f0217ff4def308637931661461c329e4cf36aeb31db34c4c0c64","impliedFormat":99},{"version":"6245aa515481727f994d1cf7adfc71e36b5fc48216a92d7e932274cee3268000","impliedFormat":99},{"version":"d542fb814a8ceb7eb858ecd5a41434274c45a7d511b9d46feb36d83b437b08d5","impliedFormat":99},{"version":"660ce583eaa09bb39eef5ad7af9d1b5f027a9d1fbf9f76bf5b9dc9ef1be2830e","impliedFormat":99},{"version":"b7d9ca4e3248f643fa86ff11872623fdc8ed2c6009836bec0e38b163b6faed0c","impliedFormat":99},{"version":"ac7a28ab421ea564271e1a9de78d70d68c65fab5cbb6d5c5568afcf50496dd61","impliedFormat":99},{"version":"d4f7a7a5f66b9bc6fbfd53fa08dcf8007ff752064df816da05edfa35abd2c97c","impliedFormat":99},{"version":"1f38ecf63dead74c85180bf18376dc6bc152522ef3aedf7b588cadbbd5877506","impliedFormat":99},{"version":"82fb33c00b1300c19591105fc25ccf78acba220f58d162b120fe3f4292a5605f","impliedFormat":99},{"version":"facde2bec0f59cf92f4635ece51b2c3fa2d0a3bbb67458d24af61e7e6b8f003c","impliedFormat":99},{"version":"4669194e4ca5f7c160833bbb198f25681e629418a6326aba08cf0891821bfe8f","impliedFormat":99},{"version":"db185b403e30e91c5b90f3f2cfa062832d764c9d7df3ad7f5db7e17596344fe8","impliedFormat":99},{"version":"669b62a7169354658d4ae1e043ad8203728655492a8f70a940a11ca5ed4d5029","impliedFormat":99},{"version":"a95cd11c5c8bc03eab4011f8e339a48f9a87293e90c0bf3e9003d7a6f833f557","impliedFormat":99},{"version":"e9bc0db0144701fab1e98c4d595a293c7c840d209b389144142f0adbc36b5ec2","impliedFormat":99},{"version":"9d884b885c4b2d89286685406b45911dcaab03e08e948850e3e41e29af69561c","impliedFormat":99},{"version":"73d67540533e08f353c42280864bbbf51cd1913346d37c3d8013f8817194597d","signature":"4d3f7d40d569178713e5a0faad9b3c86498aa5aa0bb0d7f9e62fff3ba9695b6a"},{"version":"3879dc63c8b19d64bb56b722655d495399b48dde65d498557b149cac146bcfd4","signature":"b0bcc3c474cf34eabaa3c6a23f95734d9999345db37b96201ac285771310b8ff"},{"version":"1b6fb2099f07040b0085b35c1ff6e4e8d99d1b28277515fb89edfa7b92f05ed1","signature":"638d63da4811fcba68b8906b3dcd5d2c62bca6315c8ec197efbd37f558d6cd54"},{"version":"f17ea0035f594e8b9fcb72d9ba1fd8bcc014916b48da22869e39381166d71656","signature":"7f6e90db49e4dc48530ae9d8bcbd886487f22605ce13d856dc722f92fe7df4b2"},{"version":"f02030ed917437851b078bd653c753c96b37aebc537d835fb9edafe6f93dc922","signature":"711331eee481f04aa5af3d77bd69ada9d720b9137c210b8e5e5d1398c5655570"},{"version":"410dc83c7ea10e57a3b10b9ca20cc4209e1283688f8baab3c3e1fd93d5cf592e","signature":"5ea84f0b4c69810c0d17fdf9f29341cfb9fcfb52dcb7c9b5c5d371567d5f58d8"},{"version":"9ce7e67c757b8e72925c4d041c63be95318f5fc74e25d14985fb5110dc622520","signature":"9b37defc1cf2817877d82929745263a4741c10b95e7ad1ae1b2386ec1056dc7f"},"96e6e64c03c14c01662514805a84e097738260dc1a4837290c618fd6fe1ec7ad","d9a0d151e0bb158a7fb5a31f93af8e77998a9572541a275492e5b35a10fef757","4ccebd147137b5742a8d8b2ffd7c6ed4faaca1c2aeb7e1907a6273fd24f3f6aa","2552a31fad45a9ed1bde87e51b038dc0e786cd364b597162263abbf57018949b","ca84c45f0f17a9a81c49fdf358ec32356fba22a10ed86370ea55b81bec8039ee",{"version":"bd15c8f09e4a5da276290ae660ca295fd64f534038c8f8d80c9c37d137d2aca5","signature":"89b0f68f8f0b901f9dfff2b9e7255520283a783d6af7f2bc2953d771232317a2"},{"version":"e014c7f75ba0de6ec40856b22f1c4765115f572033df382bc249845e28cf8724","signature":"89b0f68f8f0b901f9dfff2b9e7255520283a783d6af7f2bc2953d771232317a2"},{"version":"77509aa6a44ce33cebe65d20d49ab22ee977e9b19fbe7110dbf13bf709e562bf","signature":"89b0f68f8f0b901f9dfff2b9e7255520283a783d6af7f2bc2953d771232317a2"},{"version":"9b9e901d4e484e24a5e05e2338f0d5dc9425e14c3ff27cf0e2b5ee27808ccfdf","signature":"89b0f68f8f0b901f9dfff2b9e7255520283a783d6af7f2bc2953d771232317a2"},{"version":"dfec2f0295a48fcdb854aac06fb4ffab98db8e3ce2ff2c91cd2ed452949cc64f","signature":"89b0f68f8f0b901f9dfff2b9e7255520283a783d6af7f2bc2953d771232317a2"},{"version":"93e959111a76aca4e7c0e77cd8737293aeb87fff7267656b5535eb64ba3cd999","signature":"89b0f68f8f0b901f9dfff2b9e7255520283a783d6af7f2bc2953d771232317a2"},{"version":"c2c2a861a338244d7dd700d0c52a78916b4bb75b98fc8ca5e7c501899fc03796","impliedFormat":1},{"version":"b6d03c9cfe2cf0ba4c673c209fcd7c46c815b2619fd2aad59fc4229aaef2ed43","impliedFormat":1},{"version":"adb467429462e3891de5bb4a82a4189b92005d61c7f9367c089baf03997c104e","impliedFormat":1},{"version":"670a76db379b27c8ff42f1ba927828a22862e2ab0b0908e38b671f0e912cc5ed","impliedFormat":1},{"version":"13b77ab19ef7aadd86a1e54f2f08ea23a6d74e102909e3c00d31f231ed040f62","impliedFormat":1},{"version":"069bebfee29864e3955378107e243508b163e77ab10de6a5ee03ae06939f0bb9","impliedFormat":1},{"version":"460627dd2a599c2664d6f9e81ed4765ef520dc2786551d9dcab276df57b98c02","impliedFormat":1},{"version":"151ff381ef9ff8da2da9b9663ebf657eac35c4c9a19183420c05728f31a6761d","impliedFormat":1},{"version":"96d14f21b7652903852eef49379d04dbda28c16ed36468f8c9fa08f7c14c9538","impliedFormat":1}],"root":[83,502,503,528,[591,597],[612,614],[670,679],683,[715,732]],"options":{"allowJs":true,"esModuleInterop":true,"jsx":1,"module":99,"skipLibCheck":true,"strict":true,"target":9},"referencedMap":[[729,1],[730,2],[731,3],[727,4],[732,5],[728,6],[725,7],[83,8],[726,9],[502,10],[503,11],[669,12],[668,12],[617,13],[616,14],[618,15],[735,16],[733,8],[249,8],[627,17],[630,18],[636,19],[639,20],[660,21],[638,22],[619,8],[620,23],[621,24],[624,8],[622,8],[623,8],[661,25],[626,17],[625,8],[662,26],[629,18],[628,8],[666,27],[663,28],[633,29],[635,30],[632,31],[634,32],[631,29],[664,33],[637,17],[665,34],[640,35],[659,36],[656,37],[658,38],[643,39],[650,40],[652,41],[654,42],[653,43],[645,44],[642,37],[646,8],[657,45],[647,46],[644,8],[655,8],[641,8],[648,47],[649,8],[651,48],[685,49],[687,50],[694,51],[688,52],[689,8],[690,49],[691,52],[686,8],[693,52],[684,8],[692,8],[707,53],[714,54],[704,55],[713,56],[711,55],[705,53],[706,57],[697,55],[695,58],[712,59],[708,58],[710,55],[709,58],[703,58],[702,55],[696,55],[698,60],[700,55],[701,55],[699,55],[738,61],[734,16],[736,62],[737,16],[739,8],[740,8],[615,8],[741,8],[146,63],[147,63],[148,64],[100,65],[149,66],[150,67],[151,68],[95,8],[98,69],[96,8],[97,8],[152,70],[153,71],[154,72],[155,73],[156,74],[157,75],[158,75],[159,76],[160,77],[161,78],[162,79],[101,8],[99,8],[163,80],[164,81],[165,82],[199,83],[166,84],[167,8],[168,85],[169,86],[170,87],[171,88],[172,89],[173,90],[174,91],[175,92],[176,93],[177,93],[178,94],[179,8],[180,95],[181,96],[183,97],[182,98],[184,99],[185,100],[186,101],[187,102],[188,103],[189,104],[190,105],[191,106],[192,107],[193,108],[194,109],[195,110],[196,111],[102,8],[103,8],[104,8],[143,112],[144,8],[145,8],[197,113],[198,114],[203,115],[359,56],[204,116],[202,117],[361,118],[360,119],[200,120],[357,8],[201,121],[84,8],[86,122],[356,56],[267,56],[667,123],[105,8],[85,8],[529,124],[93,125],[448,126],[453,7],[455,127],[225,128],[253,129],[431,130],[248,131],[236,8],[217,8],[223,8],[421,132],[284,133],[224,8],[390,134],[258,135],[259,136],[355,137],[418,138],[373,139],[425,140],[426,141],[424,142],[423,8],[422,143],[255,144],[226,145],[305,8],[306,146],[221,8],[237,147],[227,148],[289,147],[286,147],[210,147],[251,149],[250,8],[430,150],[440,8],[216,8],[331,151],[332,152],[326,56],[476,8],[334,8],[335,57],[327,153],[482,154],[480,155],[475,8],[417,156],[416,8],[474,157],[328,56],[369,158],[367,159],[477,8],[481,8],[479,160],[478,8],[368,161],[469,162],[472,163],[296,164],[295,165],[294,166],[485,56],[293,167],[278,8],[488,8],[491,8],[490,56],[492,168],[206,8],[427,169],[428,170],[429,171],[239,8],[215,172],[205,8],[347,56],[208,173],[346,174],[345,175],[336,8],[337,8],[344,8],[339,8],[342,176],[338,8],[340,177],[343,178],[341,177],[222,8],[213,8],[214,147],[268,179],[269,180],[266,181],[264,182],[265,183],[261,8],[353,57],[375,57],[447,184],[456,185],[460,186],[434,187],[433,8],[281,8],[493,188],[443,189],[329,190],[330,191],[321,192],[311,8],[352,193],[312,194],[354,195],[349,196],[348,8],[350,8],[366,197],[435,198],[436,199],[314,200],[318,201],[309,202],[413,203],[442,204],[288,205],[391,206],[211,207],[441,208],[207,131],[262,8],[270,209],[402,210],[260,8],[401,211],[94,8],[396,212],[238,8],[307,213],[392,8],[212,8],[271,8],[400,214],[220,8],[276,215],[317,216],[432,217],[316,8],[399,8],[263,8],[404,218],[405,219],[218,8],[407,220],[409,221],[408,222],[241,8],[398,207],[411,223],[397,224],[403,225],[229,8],[232,8],[230,8],[234,8],[231,8],[233,8],[235,226],[228,8],[383,227],[382,8],[388,228],[384,229],[387,230],[386,230],[389,228],[385,229],[275,231],[376,232],[439,233],[495,8],[464,234],[466,235],[313,8],[465,236],[437,198],[494,237],[333,198],[219,8],[315,238],[272,239],[273,240],[274,241],[304,242],[412,242],[290,242],[377,243],[291,243],[257,244],[256,8],[381,245],[380,246],[379,247],[378,248],[438,249],[325,250],[363,251],[324,252],[358,253],[362,254],[420,255],[419,256],[415,257],[372,258],[374,259],[371,260],[410,261],[365,8],[452,8],[364,262],[414,8],[277,263],[310,169],[308,264],[279,265],[282,266],[489,8],[280,267],[283,267],[450,8],[449,8],[451,8],[487,8],[285,268],[323,56],[92,8],[370,269],[254,8],[243,270],[319,8],[458,56],[468,271],[303,56],[462,57],[302,272],[445,273],[301,271],[209,8],[470,274],[299,56],[300,56],[292,8],[242,8],[298,275],[297,276],[240,277],[320,92],[287,92],[406,8],[394,278],[393,8],[454,8],[351,279],[322,56],[446,280],[87,56],[90,281],[91,282],[88,56],[89,8],[252,283],[247,284],[246,8],[245,285],[244,8],[444,286],[457,287],[459,288],[461,289],[463,290],[467,291],[501,292],[471,292],[500,293],[473,294],[483,295],[484,296],[486,297],[496,298],[499,172],[498,8],[497,299],[520,300],[518,301],[519,302],[507,303],[508,301],[515,304],[506,305],[511,306],[521,8],[512,307],[517,308],[523,309],[522,310],[505,311],[513,312],[514,313],[509,314],[516,300],[510,315],[585,8],[584,8],[583,8],[587,316],[586,8],[590,317],[588,8],[589,318],[582,8],[395,319],[504,8],[526,320],[525,8],[524,8],[527,321],[530,8],[555,322],[531,323],[556,324],[557,325],[570,325],[575,326],[562,327],[558,328],[564,325],[568,325],[560,325],[574,329],[569,325],[561,325],[576,330],[565,325],[566,325],[559,331],[567,325],[572,332],[571,332],[563,325],[573,325],[581,333],[577,334],[554,335],[533,8],[538,8],[550,335],[535,335],[537,335],[534,335],[545,335],[548,335],[553,336],[549,337],[539,335],[536,335],[532,335],[544,335],[542,335],[546,335],[540,335],[547,335],[551,335],[552,335],[541,335],[543,338],[578,8],[580,339],[579,8],[81,8],[82,8],[13,8],[14,8],[16,8],[15,8],[2,8],[17,8],[18,8],[19,8],[20,8],[21,8],[22,8],[23,8],[24,8],[3,8],[25,8],[26,8],[4,8],[27,8],[31,8],[28,8],[29,8],[30,8],[32,8],[33,8],[34,8],[5,8],[35,8],[36,8],[37,8],[38,8],[6,8],[42,8],[39,8],[40,8],[41,8],[43,8],[7,8],[44,8],[49,8],[50,8],[45,8],[46,8],[47,8],[48,8],[8,8],[54,8],[51,8],[52,8],[53,8],[55,8],[9,8],[56,8],[57,8],[58,8],[60,8],[59,8],[61,8],[62,8],[10,8],[63,8],[64,8],[65,8],[11,8],[66,8],[67,8],[68,8],[69,8],[70,8],[1,8],[71,8],[72,8],[12,8],[76,8],[74,8],[79,8],[78,8],[73,8],[77,8],[75,8],[80,8],[121,340],[131,341],[120,340],[141,342],[112,343],[111,344],[140,299],[134,345],[139,346],[114,347],[128,348],[113,349],[137,350],[109,351],[108,299],[138,352],[110,353],[115,354],[116,8],[119,354],[106,8],[142,355],[132,356],[123,357],[124,358],[126,359],[122,360],[125,361],[135,299],[117,362],[118,363],[127,364],[107,365],[130,356],[129,354],[133,8],[136,366],[611,367],[603,368],[610,369],[605,8],[606,8],[604,370],[607,371],[598,8],[599,8],[600,367],[602,372],[608,8],[609,373],[601,374],[682,375],[681,376],[680,8],[591,377],[594,378],[596,379],[597,378],[613,380],[614,381],[671,382],[672,378],[716,383],[722,384],[721,385],[715,386],[723,387],[724,384],[720,388],[673,389],[675,389],[674,390],[679,391],[678,392],[676,393],[677,390],[719,394],[717,395],[718,394],[683,396],[670,397],[612,398],[593,399],[595,400],[592,8],[528,401]],"affectedFilesPendingEmit":[729,730,731,727,732,728,726,503,591,594,596,597,613,614,671,672,716,722,721,715,723,724,720,673,675,674,679,678,676,677,719,717,718,683,670,612,593,595,592,528],"version":"5.9.3"} \ No newline at end of file diff --git a/apps/ui-exploration/index.html b/apps/ui-exploration/index.html new file mode 100644 index 00000000..713fada3 --- /dev/null +++ b/apps/ui-exploration/index.html @@ -0,0 +1,770 @@ + + + + + + Media Discovery Demo | 8-Genre Cold-Start + + + + + + +
+ +
+ + +
+
+
+

What catches your eye?

+

Hover over the images that interest you

+
0.000s
+
+
+ +
+
+ + +
+
+
+

Curated for You

+

Based on your unique viewing style

+
+
+

Your Top Picks

+
+
+
+

More for You

+
+
+
+

Expand Your Horizons

+
+
+
+
--
+

Not 45 minutes.

+ +
+
+
+ + +
+
+ Genre Leaderboard + +
+
+
0.000s
+
+
Live Genre Rankings
+
+
+
+
Click Sequence
+
No clicks yet
+
+
+
Behavior Signals
+
+ Avg Velocity + 0 px/s +
+
+ Skip Events + 0 +
+
+ Hover Events + 0 +
+
+
+
+ + + + diff --git a/apps/ui-exploration/prd.md b/apps/ui-exploration/prd.md new file mode 100644 index 00000000..aa8490c6 --- /dev/null +++ b/apps/ui-exploration/prd.md @@ -0,0 +1,932 @@ +# Media Discovery Platform PRD +## TV5MONDE Hackathon - Cold-Start Solution + +--- + +## 1. Product Vision & Value Proposition Matrix + +### Product Vision + +Transform the streaming cold-start problem from a 45-minute friction point into a 45-second competitive advantage. By observing micro-behaviors instead of asking questions, we create instant user profiles that feel like magicβ€”not interrogation. + +### Value Proposition Matrix + +| Stakeholder | Problem | Our Solution | Measurable Impact | +|-------------|---------|--------------|-------------------| +| **End User** (Overwhelmed Browser) | Wastes 20+ minutes browsing, defaults to safe rewatches | Profile built in <60 seconds through passive observation | 95% reduction in time-to-first-relevant-recommendation | +| **TV5MONDE Business** | 40% trial abandonment during cold-start; licensed content underutilized | Higher conversion, better catalog surfacing | +15% trial-to-paid conversion; +30% catalog coverage in recommendations | +| **TV5MONDE Brand** | Can't outspend Netflix on content | Out-personalize on niche (francophone) audiences; "respects your time" positioning | Defensible brand identity in crowded market | +| **TV5MONDE Strategy** | Dependent on commoditized metadata providers | Proprietary behavioral signals + francophone content embeddings | Owned recommendation intelligence; strategic asset | + +### Core Thesis + +> *Traditional platforms ask. We observe.* +> *Questionnaires take minutes and feel like homework. Attention takes seconds and feels like browsing.* + +--- + +## 2. Success Criteria & Primary User Persona + +### Success Criteria + +| Priority | Metric | Target | Measurement | +|----------|--------|--------|-------------| +| **Primary** | Speed vs. traditional onboarding | 95% faster than questionnaire-based flows | Side-by-side comparison: our 45 sec vs. competitor 5-10 min | +| Secondary | Time-to-profile | < 60 seconds | Timer from first interaction to recommendation display | +| Secondary | Profile resonance | 80%+ "this feels right" | Post-recommendation user confirmation prompt | +| Secondary | Feed engagement | First click within 10 seconds | Time from feed display to first content selection | +| Diagnostic | Behavioral signal capture | 4+ signals per user | Hover, scroll, hesitation, return-visit, time-to-first-interaction | + +### Primary User Persona: The Overwhelmed Browser + +**Marie, 42** β€” Marketing Director, Lyon + +*Demographics:* Two children (8, 11). Partner works evenings. Dual income, time-poor. + +*Viewing context:* 90-minute window after kids sleep (21:30–23:00). Tired but wants entertainment, not effort. + +*Current behavior:* +- Opens streaming app with intent to watch something new +- Scrolls for 15-20 minutes, overwhelmed by choice +- Anxiety rises: "I'm wasting my limited time" +- Defaults to rewatching The Office or abandons entirely +- Feels frustrated, not relaxed + +*What she needs:* +- Confidence that recommendations are *for her*, not generic +- Speedβ€”every minute browsing is a minute not watching +- No cognitive loadβ€”don't make her think or answer questions + +*Success for Marie:* +> "I opened the app, glanced at a few images, and within a minute I was watching something I actually enjoyed. I didn't even realize I was being profiled." + +--- + +## 3. User Journey + +### Cold-Start Discovery Flow (3 Steps) + +``` +β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” +β”‚ STEP 1: ENTRY STEP 2: DISCOVERY STEP 3: FEED β”‚ +β”‚ ─────────────── ──────────────── ───────────── β”‚ +β”‚ β”‚ +β”‚ "Discover Your 8 visual thumbnails "Curated for β”‚ +β”‚ Next Watch" NO LABELS - images only You" β”‚ +β”‚ β”‚ +β”‚ [Start Exploring] ──────► User browses naturally ───► Personalized β”‚ +β”‚ System captures: results with β”‚ +β”‚ β€’ Hover duration genre labels β”‚ +β”‚ β€’ Micro-hesitations NOW revealed β”‚ +β”‚ β€’ Return visits β”‚ +β”‚ β€’ Scroll velocity Top 2 genres β”‚ +β”‚ β€’ Time-to-first-interact highlighted β”‚ +β”‚ β”‚ +β”‚ Timer visible: 0.000s "45 seconds. β”‚ +β”‚ Not 45 mins." β”‚ +β”‚ β”‚ +β”‚ Duration: 2 sec Duration: 30-60 sec Duration: ∞ β”‚ +β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ +``` + +### Moment-by-Moment Experience + +| Timestamp | User Action | System Response | Signal Captured | +|-----------|-------------|-----------------|-----------------| +| 0:00 | Clicks "Start Exploring" | Grid appears, timer starts | β€” | +| 0:03 | Eyes scan grid | β€” | Time-to-first-interaction begins | +| 0:05 | Mouse moves toward dark, moody image | β€” | Approach velocity | +| 0:06 | Mouse slows, hovers | Subtle border glow (no label) | Micro-hesitation detected | +| 0:08 | Moves away without clicking | Border fades | Interest without commitment logged | +| 0:12 | Returns to same image | β€” | **Return visit** (high signal) | +| 0:14 | Clicks | Click badge appears: "1" | Explicit selection | +| 0:18 | Scrolls past bright/comedic image quickly | β€” | High scroll velocity = rejection | +| 0:25 | Hovers on warm-toned image, clicks | Click badge: "2" | Second preference | +| 0:35 | Continue button appears | β€” | Threshold reached | +| 0:38 | Clicks "See My Recommendations" | Feed loads with labels revealed | Profile complete | + +### Key Design Decisions + +1. **No labels during profiling** β€” Pure System 1 reaction, 100x faster than reading +2. **Labels revealed in results** β€” "Ah, I was drawn to thrillers and drama" +3. **Timer visible** β€” Creates awareness of speed, reinforces value prop +4. **Subtle visual feedback only** β€” Border glow on hover, no text + +### The "Reveal" Moment + +When the user sees results, labels appear for the first time: +> *"Your Top Picks: Thriller & Drama"* + +This creates a small delight: "The system understood me without asking." + +--- + +## 4. MVP Features (Hackathon) + +### Scope Philosophy + +> Ship what works. The prototype already demonstrates the core innovation. Polish the narrative, not the feature set. + +### Current Prototype Capabilities (Keep) + +| Feature | Status | Purpose | +|---------|--------|---------| +| 3-screen flow (Entry β†’ Discovery β†’ Results) | βœ… Built | Core user journey | +| 8-genre thumbnail grid | βœ… Built | Visual profiling surface | +| Hover time tracking | βœ… Built | Primary behavioral signal | +| Click sequence capture | βœ… Built | Explicit preference ranking | +| Mouse velocity tracking | βœ… Built | Skip/rejection detection | +| Real-time timer display | βœ… Built | Value prop reinforcement | +| Admin widget (leaderboard) | βœ… Built | Demo/pitch tool for judges | +| Personalized feed generation | βœ… Built | Proof that profiling works | +| "Time saved" badge | βœ… Built | Dramatic comparison anchor | + +### Hackathon Enhancements (Small tweaks) + +| Enhancement | Effort | Impact | +|-------------|--------|--------| +| Remove genre labels from discovery grid | 30 min | Purer behavioral signal | +| Add labels to results screen only | 30 min | Creates "reveal" moment | +| Refine thumbnail selection for visual contrast | 1 hr | Better differentiation between moods | +| Add "micro-hesitation" detection to widget | 1 hr | Shows technical sophistication | + +### Explicitly NOT in MVP + +| Feature | Why Not | +|---------|---------| +| Real TMDB content | Adds complexity, Unsplash works for demo | +| Video/trailer playback | Different interaction model, Phase 2 | +| User accounts/persistence | Not needed for cold-start demo | +| Mobile/TV interface | Desktop proves concept, device adaptation is Phase 2 | +| AgentDB integration | Post-hackathon continuous profiling | + +### Demo Script (5 minutes) + +1. **Hook (30 sec):** "How long does it take Netflix to understand you? 45 minutes of watch history. We do it in 45 seconds." +2. **Problem (60 sec):** Introduce Marie. Show the scrolling paralysis problem. +3. **Live Demo (120 sec):** Walk through the 3-step flow. Let timer run visibly. +4. **Reveal (30 sec):** Show personalized feed. Point to admin widget data. +5. **Vision (60 sec):** Phase 2 roadmap. TV + Mobile. Continuous profiling. + +--- + +## 5. Phase 2 Roadmap (Post-Hackathon) + +### Phase 2 Vision + +> Cold-start is solved. Now make it *continuous*. Every session refines the profile. Every interaction deepens understanding. + +### Phase 2A: Continuous Profiling with AgentDB + +| Capability | Implementation | User Benefit | +|------------|----------------|--------------| +| Behavioral embedding storage | AgentDB vector persistence per user | Profile survives sessions | +| Session-over-session refinement | Delta vectors merged with historical profile | "Gets smarter every time I use it" | +| Decay modeling | Recent behavior weighted higher | Adapts to mood changes, life changes | +| Cross-content signals | Track behavior on actual content, not just discovery | Deeper than initial profiling | + +**Technical Architecture:** +``` +β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” +β”‚ User Session │────►│ Signal Capture │────►│ AgentDB β”‚ +β”‚ (any device) β”‚ β”‚ (hover, scroll, β”‚ β”‚ (vector store) β”‚ +β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚ watch time) β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”˜ + β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚ + β–Ό +β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” +β”‚ Personalized │◄────│ Recommendation │◄────│ Profile Vector β”‚ +β”‚ Feed β”‚ β”‚ Engine β”‚ β”‚ (accumulated) β”‚ +β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ +``` + +### Phase 2B: Visual Similarity Search (Thumbnail Embeddings) + +| Capability | Implementation | User Benefit | +|------------|----------------|--------------| +| Thumbnail/still frame embeddings | CLIP or similar vision model | "More like this" by visual mood | +| Color palette matching | Extract dominant colors, match to preferences | Warm-tone lovers get warm content | +| Composition analysis | Frame structure, character placement | Visual storytelling preferences | +| Poster vs. still frames | Use actual movie frames, not marketing posters | Authentic visual representation | + +**User Interaction:** +> User hovers long on a dark, desaturated thriller image +> System learns: "prefers cool palette, high contrast, isolated figures" +> Future recommendations prioritize visually similar contentβ€”even across genres + +### Phase 2C: Emotional Arc Matching + +| Capability | Implementation | User Benefit | +|------------|----------------|--------------| +| Narrative shape embeddings | LLM-extracted story arcs (rags-to-riches, tragedy, redemption) | "Find content with similar emotional journey" | +| Mood trajectory mapping | Beginning β†’ middle β†’ end emotional states | Match viewer's desired emotional experience | +| Theme knowledge graphs | Neo4j: Movie β†’ Theme β†’ Related concepts | Deep thematic connections | + +**Example:** +> User loved *AmΓ©lie* (whimsical β†’ melancholy β†’ hopeful) +> System finds: *The Secret Life of Walter Mitty*, *Paddington*, *Chef* +> Not genre-matched (different categories), but emotionally resonant + +### Phase 2 Priority Order + +| Phase | Focus | Dependency | Timeline | +|-------|-------|------------|----------| +| 2A | AgentDB continuous profiling | Hackathon MVP | Month 1-2 | +| 2B | Visual similarity search | 2A (needs storage) | Month 2-3 | +| 2C | Emotional arc matching | 2B (needs embeddings infra) | Month 3-4 | + +--- + +## 6. Technical Architecture (Millisecond Monitoring) + +### Architecture Philosophy + +> Capture everything. Process in real-time. Store intelligently. The behavioral fingerprint is the product. + +### Signal Capture Layer + +``` +β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” +β”‚ BEHAVIORAL SIGNALS β”‚ +β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€ +β”‚ β”‚ +β”‚ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚ +β”‚ β”‚ HOVER β”‚ β”‚ SCROLL β”‚ β”‚ HESITATION β”‚ β”‚ RETURN β”‚ β”‚ +β”‚ β”‚ TIME β”‚ β”‚ VELOCITY β”‚ β”‚ DETECTION β”‚ β”‚ VISITS β”‚ β”‚ +β”‚ β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€ β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€ β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€ β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€ β”‚ +β”‚ β”‚ ms per item β”‚ β”‚ px/s scan β”‚ β”‚ decelerationβ”‚ β”‚ item revisitβ”‚ β”‚ +β”‚ β”‚ cumulative β”‚ β”‚ direction β”‚ β”‚ threshold β”‚ β”‚ count + gap β”‚ β”‚ +β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚ +β”‚ β”‚ +β”‚ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚ +β”‚ β”‚ TIME TO β”‚ β”‚ CLICK β”‚ β”‚ SKIP β”‚ β”‚ DWELL β”‚ β”‚ +β”‚ β”‚ FIRST β”‚ β”‚ SEQUENCE β”‚ β”‚ PATTERNS β”‚ β”‚ DEPTH β”‚ β”‚ +β”‚ β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€ β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€ β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€ β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€ β”‚ +β”‚ β”‚ ms to first β”‚ β”‚ order + gap β”‚ β”‚ rapid-pass β”‚ β”‚ time in β”‚ β”‚ +β”‚ β”‚ interaction β”‚ β”‚ between β”‚ β”‚ items β”‚ β”‚ viewport β”‚ β”‚ +β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚ +β”‚ β”‚ +β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ +``` + +### Signal Weights & Scoring + +| Signal | Weight | Rationale | +|--------|--------|-----------| +| Return visit to same item | 3.0x | Strongest intent indicatorβ€”came back | +| Click (explicit selection) | 2.5x | Conscious commitment | +| Micro-hesitation (>500ms slowdown) | 2.0x | Subconscious interest | +| Hover duration (>1000ms) | 1.5x | Sustained attention | +| Scroll deceleration near item | 1.2x | Peripheral interest | +| Time-to-first-interaction | 1.0x | Baseline confidence signal | +| High scroll velocity past item | -1.5x | Active rejection | +| Zero hover on item | -1.0x | Passive disinterest | + +### Real-Time Processing Pipeline + +``` +β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” +β”‚ Browser β”‚ β”‚ Event β”‚ β”‚ Signal β”‚ β”‚ Profile β”‚ +β”‚ Events │────►│ Debounce │────►│ Processor │────►│ Builder β”‚ +β”‚ (60fps) β”‚ β”‚ (16ms) β”‚ β”‚ (weights) β”‚ β”‚ (ranking) β”‚ +β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ + β”‚ β”‚ + β”‚ mousemove, scroll, β”‚ + β”‚ mouseenter, mouseleave, β–Ό + β”‚ click, timestamp β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” + β”‚ β”‚ Genre β”‚ + └─────────────────────────────────────────────────────│ Leaderboardβ”‚ + β”‚ (live) β”‚ + β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ +``` + +### Latency Targets + +| Stage | Target | Rationale | +|-------|--------|-----------| +| Event capture | <16ms | Match browser frame rate | +| Signal processing | <50ms | Real-time widget updates | +| Profile generation | <100ms | Instant on "Continue" click | +| Feed rendering | <200ms | Perceived as instantaneous | +| **Total cold-start** | **<60 seconds** | Primary success metric | + +### Data Schema (MVP) + +```javascript +UserSession { + sessionId: string + startTime: timestamp + + signals: { + [itemId]: { + hoverTime: number (ms) + hoverCount: number + clickOrder: number | null + returnVisits: number + hesitations: number (count of slowdowns) + scrollVelocityPast: number (px/s, if skipped) + } + } + + meta: { + totalTime: number (ms) + timeToFirstInteraction: number (ms) + avgMouseVelocity: number (px/s) + totalHovers: number + totalClicks: number + skipEvents: number + } + + output: { + rankedGenres: [{ id, score }] + profileConfidence: number (0-1) + } +} +``` + +### Phase 2 Schema Extension (AgentDB) + +```javascript +UserProfile { + userId: string + embedding: Float32Array (behavioral vector) + + sessions: SessionSummary[] + + preferences: { + visualStyle: { palette, contrast, composition } + emotionalArc: { trajectory, intensity } + genreAffinities: { [genre]: score } + } + + decay: { + lastUpdated: timestamp + sessionCount: number + confidenceScore: number + } +} +``` + +--- + +## 7. Interface Evolution (5-Year Horizon) + +### Device Priority + +| Priority | Device | User Context | Current State | +|----------|--------|--------------|---------------| +| **Primary** | Smart TV | Lean-back, 10-foot UI, shared viewing | Target platform | +| **Primary** | Mobile | Thumb-driven, vertical, personal | Target platform | +| Secondary | Desktop | Mouse precision, work breaks | Prototype platform | + +### Challenge: Signal Capture Without a Mouse + +The prototype leverages cursor trackingβ€”rich, precise, millisecond data. TV and mobile have no cursor. How do we maintain signal quality? + +--- + +### Smart TV Interface (Lean-Back) + +``` +β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” +β”‚ SMART TV DISCOVERY β”‚ +β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€ +β”‚ β”‚ +β”‚ β”Œβ”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β” β”‚ +β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β–ˆβ–ˆβ–ˆβ–ˆ β”‚ β”‚ β”‚ ◄── D-pad focus β”‚ +β”‚ β”‚ 1 β”‚ β”‚ 2 β”‚ β”‚ 3 β”‚ β”‚ 4 β”‚ (highlighted) β”‚ +β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ +β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚ +β”‚ β”‚ +β”‚ β”Œβ”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β” β”‚ +β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ +β”‚ β”‚ 5 β”‚ β”‚ 6 β”‚ β”‚ 7 β”‚ β”‚ 8 β”‚ β”‚ +β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ +β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚ +β”‚ β”‚ +β”‚ [OK to select] β”‚ +β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ +``` + +**TV Signal Capture:** + +| Signal | Desktop Equivalent | TV Implementation | +|--------|-------------------|-------------------| +| Hover duration | Mouse hover time | **Dwell time** on D-pad selection | +| Micro-hesitation | Mouse slowdown | **Pause before pressing OK** | +| Return visits | Mouse returns to item | **Navigate back** to same item | +| Scroll velocity | Mouse speed past | **D-pad repeat speed** (rapid clicks = skip) | +| Skip patterns | Fast mouse movement | **Items passed without pause** | + +**TV-Specific Signals:** + +| New Signal | Capture Method | Meaning | +|------------|----------------|---------| +| Direction bias | Track up/down/left/right patterns | Spatial preference mapping | +| Voice hesitation | "Play... um..." pause before command | Uncertainty indicator | +| Co-viewing detection | Multiple "OK" presses in quick succession | Shared decision-making mode | + +--- + +### Mobile Interface (Thumb-Driven) + +``` +β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” +β”‚ β”‚ +β”‚ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚ +β”‚ β”‚ β”‚ β”‚ +β”‚ β”‚ 1 β”‚ β”‚ ◄── Full-width card +β”‚ β”‚ β”‚ β”‚ +β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚ +β”‚ β”‚ +β”‚ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚ +β”‚ β”‚ β”‚ β”‚ +β”‚ β”‚ 2 β”‚ β”‚ ◄── Scroll to reveal +β”‚ β”‚ β”‚ β”‚ +β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚ +β”‚ β”‚ +β”‚ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚ +β”‚ β”‚ β”‚ β”‚ ◄── Vertical swipe +β”‚ β”‚ 3 β”‚ β”‚ feed pattern +β”‚ β”‚ β”‚ β”‚ +β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚ +β”‚ β”‚ +β”‚ ●○○○○ β”‚ ◄── Progress dots +β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ +``` + +**Mobile Signal Capture:** + +| Signal | Desktop Equivalent | Mobile Implementation | +|--------|-------------------|----------------------| +| Hover duration | Mouse hover time | **Thumb pause** on item | +| Micro-hesitation | Mouse slowdown | **Scroll deceleration** near item | +| Return visits | Mouse returns to item | **Scroll back** to previous item | +| Scroll velocity | Mouse speed | **Swipe velocity** (px/s) | +| Skip patterns | Fast mouse movement | **Rapid swipe-through** | + +**Mobile-Specific Signals:** + +| New Signal | Capture Method | Meaning | +|------------|----------------|---------| +| Hold-to-preview | Long press triggers preview | Strong curiosity | +| Swipe direction | Up vs. left swipe | Different intent (dismiss vs. skip) | +| Scroll-back depth | How far back they scroll | How much they regret passing | +| Session time-of-day | Timestamp | Commute vs. evening mood | + +--- + +### Desktop Interface (Current Prototype) + +Remains the richest signal source. Used for: +- Development and testing +- Power users / work-from-home viewers +- Benchmarking signal quality across devices + +--- + +### 5-Year Interface Roadmap + +| Year | Milestone | Interface Focus | +|------|-----------|-----------------| +| 2024 | Hackathon MVP | Desktop prototype proves concept | +| 2025 | Production launch | Smart TV + Mobile primary | +| 2026 | Cross-device sync | Unified profile across all devices | +| 2027 | Ambient signals | Room lighting, time-of-day, co-viewing detection | +| 2028 | Eye-tracking | Smart TV cameras, gaze data | +| 2029 | Predictive pre-loading | System queues content before user decides | + +### Emerging: Eye-Tracking (3-5 Year Bet) + +| Platform | Status | Opportunity | +|----------|--------|-------------| +| Smart TV cameras | Emerging (Samsung, LG) | Living room eye-tracking | +| Mobile eye-tracking | 2-3 years | Front camera gaze estimation | +| VR/AR headsets | Growing market | True gaze data, immersive viewing | + +**Eye-tracking replaces cursor as the gold standard:** +- Where you look = what you consider +- How long you look = interest level +- What you skip visually = rejection +- Pupil dilation = emotional response (advanced) + +--- + +## 8. Success Metrics + +### Metrics Hierarchy + +``` +β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” +β”‚ NORTH STAR METRIC β”‚ +β”‚ β”‚ +β”‚ Time-to-Relevant-Content: < 60 seconds β”‚ +β”‚ β”‚ +β”‚ "From app open to watching something you'll enjoy" β”‚ +β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ + β”‚ + β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” + β–Ό β–Ό β–Ό + β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” + β”‚ SPEED β”‚ β”‚ ACCURACY β”‚ β”‚ ENGAGEMENT β”‚ + β”‚ METRICS β”‚ β”‚ METRICS β”‚ β”‚ METRICS β”‚ + β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ +``` + +### Speed Metrics (Proving the "45 seconds" claim) + +| Metric | Target | Measurement Method | +|--------|--------|-------------------| +| Cold-start profile time | < 60 sec | Timer: first interaction β†’ recommendations shown | +| Comparison vs. questionnaire | 95% faster | Benchmark against Netflix/competitor onboarding | +| Time-to-first-click on feed | < 10 sec | Timer: feed display β†’ first content selection | +| Discovery grid engagement | 30-90 sec | Healthy rangeβ€”too fast = random, too slow = confusion | + +### Accuracy Metrics (Proving profiles are correct) + +| Metric | Target | Measurement Method | +|--------|--------|-------------------| +| Self-reported resonance | 80%+ "this feels right" | Post-feed micro-survey (optional) | +| Top-2 genre match | 70%+ correct | Compare predicted vs. actual watched content | +| Feed click-through rate | > 40% | Clicks on recommended content / total recommendations | +| Content completion rate | > 60% | Users finish what they started watching | + +### Engagement Metrics (Proving business value) + +| Metric | Target | Measurement Method | +|--------|--------|-------------------| +| Trial-to-paid conversion | +15% vs. baseline | A/B test: with vs. without cold-start system | +| Session duration | +20% vs. baseline | Time spent in app per session | +| Return rate (7-day) | > 50% | Users who return within 7 days | +| Catalog coverage | +30% | Unique titles surfaced in recommendations | + +### Diagnostic Metrics (System health) + +| Metric | Target | Purpose | +|--------|--------|---------| +| Signals captured per session | 4+ distinct signals | Data richness indicator | +| Profile confidence score | > 0.7 | Internal validity check | +| Genre distribution in recommendations | No single genre > 50% | Avoid filter bubbles | +| Edge case handling | < 5% "no signal" sessions | Users who don't interact enough | + +### Anti-Metrics (What we don't optimize for) + +| Anti-Metric | Why We Ignore It | +|-------------|------------------| +| Time spent browsing | We want *less* browsing, more watching | +| Number of recommendations shown | Quality over quantity | +| Scroll depth | Deep scrolling = failure, not engagement | +| Session count | Fewer, more satisfying sessions > many frustrating ones | + +### Hackathon Demo Metrics (What judges will see) + +| Visible Metric | Display Location | Purpose | +|----------------|------------------|---------| +| Live timer | Discovery screen | Proves speed claim in real-time | +| Genre leaderboard | Admin widget | Shows signal capture working | +| Behavioral signals count | Admin widget | Technical sophistication | +| "Time saved" badge | Results screen | Dramatic comparison anchor | + +--- + +## 9. Risks & Mitigations + +### Risk Matrix + +| Risk | Severity | Likelihood | Priority | +|------|----------|------------|----------| +| C: Cold-start for cold-start | High | High | **Critical** | +| Signal quality on TV/mobile | High | Medium | High | +| Privacy perception | Medium | Medium | Medium | +| Content catalog dependency | Medium | Low | Low | +| Competitor response | Low | High | Low | + +--- + +### CRITICAL: Cold-Start for Cold-Start + +*The system itself needs data to tune signal weights. How do you bootstrap before you have user behavior data?* + +**The Problem:** +``` +β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” +β”‚ CHICKEN-AND-EGG β”‚ +β”‚ β”‚ +β”‚ Good recommendations ◄─── Accurate signal weights β”‚ +β”‚ β”‚ β–² β”‚ +β”‚ β”‚ β”‚ β”‚ +β”‚ β–Ό β”‚ β”‚ +β”‚ Users engage ──────────────► Behavioral data β”‚ +β”‚ β”‚ +β”‚ But without good recommendations, users won't engage... β”‚ +β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ +``` + +**Mitigation Strategies:** + +| Strategy | Approach | Trade-off | +|----------|----------|-----------| +| **1. Expert priors** | Start with human-curated signal weights based on UX intuition | May not match real user behavior | +| **2. Simulation testing** | Generate synthetic behavior patterns, tune weights | Fake data β‰  real data | +| **3. Soft launch cohort** | Beta users provide initial data, refine before wide launch | Slower rollout | +| **4. Transfer learning** | Use published research on visual attention, hover behavior | Generic, not domain-specific | +| **5. A/B weight testing** | Run parallel weight configurations, measure outcomes | Requires traffic volume | + +**Recommended Approach:** + +``` +Phase 1 (Hackathon): Expert priors +β”œβ”€β”€ Hover time: 1.5x weight (established UX pattern) +β”œβ”€β”€ Return visits: 3.0x weight (strong intent signal) +β”œβ”€β”€ Click sequence: 2.5x weight (explicit commitment) +└── Skip velocity: -1.5x weight (rejection indicator) + +Phase 2 (Soft launch): Validate with real users +β”œβ”€β”€ 500-1000 beta users +β”œβ”€β”€ Compare predicted vs. actual viewing behavior +β”œβ”€β”€ Adjust weights based on correlation data +└── Build confidence intervals per signal + +Phase 3 (Production): Continuous learning +β”œβ”€β”€ AgentDB stores outcomes (did they watch? complete? return?) +β”œβ”€β”€ Feedback loop refines weights per user segment +└── Eventually: personalized weight profiles +``` + +--- + +### HIGH: Signal Quality on TV/Mobile + +*Can you capture enough behavioral data without mouse precision?* + +**The Problem:** +- Desktop: 60fps cursor tracking, sub-pixel precision +- TV: D-pad navigation, binary (selected / not selected) +- Mobile: Touch scrolling, less granular than cursor + +**Mitigation Strategies:** + +| Strategy | Approach | +|----------|----------| +| **Compensate with time** | TV/mobile may need 90 sec vs. desktop's 45 sec | +| **Device-specific weights** | Dwell time more important on TV; swipe velocity more important on mobile | +| **Richer visual stimuli** | Larger thumbnails, higher contrast, more distinct choices | +| **Supplementary signals** | Time-of-day, session frequency, content completion history | +| **Graceful degradation** | If signal quality low, fall back to broader recommendations | + +**Signal Quality Targets by Device:** + +| Device | Minimum Signals | Profile Confidence Target | +|--------|-----------------|---------------------------| +| Desktop | 6+ | > 0.8 | +| Mobile | 4+ | > 0.7 | +| Smart TV | 3+ | > 0.6 | + +--- + +### MEDIUM: Privacy Perception + +*"You're tracking my every micro-movement" feels creepy to some users.* + +**The Problem:** +- Millisecond tracking sounds invasive when described technically +- GDPR/privacy regulations require transparency +- Trust is essential for francophone audience + +**Mitigation Strategies:** + +| Strategy | Implementation | +|----------|----------------| +| **Frame as "attention, not surveillance"** | "We notice what catches your eye" vs. "We track your mouse" | +| **Transparency without overwhelm** | Simple explanation: "We personalize based on what you browse" | +| **No PII in behavioral data** | Signals are anonymous; tied to session, not identity | +| **Opt-out available** | "Skip personalization" option (falls back to editorial picks) | +| **Data locality** | Process on-device where possible; minimize server-side storage | + +**Messaging Framework:** + +> "We learn your taste by watching what catches your attentionβ€”no questions asked" + +--- + +### LOW: Content Catalog Dependency + +*Recommendations are only as good as the content library.* + +**The Problem:** +- If TV5MONDE's catalog has genre gaps, no algorithm fixes that +- User profiled as "thriller lover" but catalog is 80% drama + +**Mitigation:** +- Acknowledge limitation in pitch: "Algorithm surfaces the best of what exists" +- Phase 2 opportunity: "Identifies catalog gaps based on unmet user demand" +- Hybrid curation: Human editors fill gaps algorithm can't solve + +--- + +### LOW: Competitor Response + +*Netflix/Prime could copy this in 6 months if it works.* + +**Why It's Low Priority:** + +| Moat | Defensibility | +|------|---------------| +| **Speed-to-value brand** | Identity, not featureβ€”hard to copy positioning | +| **Francophone specialization** | Netflix won't invest in niche optimization | +| **Editorial + algorithm hybrid** | Requires human taste, not just engineering | +| **Behavioral signal IP** | Specific weights/combinations are proprietary | +| **First-mover in segment** | TV5MONDE owns the narrative for their audience | + +--- + +## 10. Future-Proofing + +### Two Moats Strategy + +``` +β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” +β”‚ DEFENSIBILITY FRAMEWORK β”‚ +β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€ +β”‚ β”‚ +β”‚ MOAT 1: BRAND IDENTITY MOAT 2: OPERATIONAL ADVANTAGE β”‚ +β”‚ ────────────────────── ───────────────────────────── β”‚ +β”‚ β”‚ +β”‚ "The platform that Algorithm suggests, β”‚ +β”‚ respects your time" editors refine β”‚ +β”‚ β”‚ +β”‚ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚ +β”‚ β”‚ Not a feature. β”‚ β”‚ Human taste + β”‚ β”‚ +β”‚ β”‚ An identity. β”‚ β”‚ machine scale β”‚ β”‚ +β”‚ β”‚ β”‚ β”‚ β”‚ β”‚ +β”‚ β”‚ Features get β”‚ β”‚ Competitors can β”‚ β”‚ +β”‚ β”‚ copied. β”‚ β”‚ copy algorithm, β”‚ β”‚ +β”‚ β”‚ Positioning β”‚ β”‚ not your curators. β”‚ β”‚ +β”‚ β”‚ persists. β”‚ β”‚ β”‚ β”‚ +β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚ +β”‚ β”‚ +β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ +``` + +--- + +### Moat 1: Speed-to-Value as Brand + +**The Positioning:** +> *"Other platforms make you work for entertainment. We get you watching in under a minute."* + +**Why This Persists:** + +| Factor | Explanation | +|--------|-------------| +| Emotional resonance | Time-poor users *feel* this problem daily | +| Simple to communicate | "45 seconds vs. 45 minutes" is instantly understood | +| Hard to out-claim | Competitors would need to prove fasterβ€”we set the benchmark | +| Compounds over time | Every satisfied user reinforces the reputation | + +**Brand Execution:** + +| Touchpoint | Message | +|------------|---------| +| App Store description | "Find your next watch in under a minute" | +| Onboarding | Timer visibleβ€”proving the claim live | +| Marketing | "We respect your time" campaign | +| Word-of-mouth | Users share: "It just knew what I wanted" | + +--- + +### Moat 2: Hybrid AI + Editorial Curation + +**The Model:** + +``` +β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” +β”‚ β”‚ +β”‚ ALGORITHM LAYER EDITORIAL LAYER β”‚ +β”‚ ─────────────── ────────────── β”‚ +β”‚ β”‚ +β”‚ β€’ Behavioral profiling β€’ Thematic collections β”‚ +β”‚ β€’ Signal processing β€’ Cultural context β”‚ +β”‚ β€’ Similarity matching β€’ Quality curation β”‚ +β”‚ β€’ Personalization at scale β€’ "Editor's Picks" trust signal β”‚ +β”‚ β”‚ +β”‚ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”‚ +β”‚ β”‚ HYBRID β”‚ β”‚ +β”‚ β”‚ OUTPUT β”‚ β”‚ +β”‚ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β”‚ +β”‚ β”‚ β”‚ +β”‚ β–Ό β”‚ +β”‚ "Personalized AND trustworthy" β”‚ +β”‚ β”‚ +β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ +``` + +**Why Competitors Can't Copy This:** + +| Component | Netflix/Prime | TV5MONDE | +|-----------|---------------|----------| +| Algorithm | Better resourced | Sufficient for niche | +| Scale | Billions of data points | Smaller dataset | +| Francophone expertise | Not a priority | Core competency | +| Editorial taste | Algorithmic-first culture | Curatorial heritage | +| Niche audience trust | Generic global brand | Cultural authority | + +**Editorial Integration Points:** + +| Stage | Algorithm Role | Editor Role | +|-------|----------------|-------------| +| Discovery thumbnails | Select from catalog | Approve visual quality | +| Recommendation ranking | Score by behavioral fit | Boost hidden gems | +| Collection creation | Cluster similar content | Name and contextualize | +| New content onboarding | Cold-start embedding | Editorial positioning | + +--- + +### Technology Future-Proofing + +| Trend | Preparation | Timeline | +|-------|-------------|----------| +| **Multimodal AI** | Embeddings architecture supports text, image, video | Ready now | +| **On-device ML** | Signal processing can run client-side | 1-2 years | +| **Real-time personalization** | AgentDB enables instant profile updates | Phase 2 | +| **Voice interfaces** | Behavioral signals from voice hesitation, queries | 2-3 years | +| **Spatial computing** | Gaze tracking as primary signal | 3-5 years | + +**Architecture Principles for Longevity:** + +| Principle | Implementation | +|-----------|----------------| +| **Signal-agnostic core** | New signals (gaze, voice) plug into existing weight system | +| **Embedding-first storage** | Any content type becomes a vectorβ€”future-proof format | +| **Device-abstracted capture** | Signal capture layer per device; processing layer shared | +| **Modular recommendation engine** | Swap algorithms without rebuilding infrastructure | + +--- + +### Strategic Roadmap Summary + +| Horizon | Focus | Moat Built | +|---------|-------|------------| +| **Now (Hackathon)** | Prove cold-start solved in 45 seconds | Speed claim established | +| **6 months** | Production on TV + Mobile | Brand identity launched | +| **1 year** | Continuous profiling with AgentDB | Data asset accumulating | +| **2 years** | Visual + emotional embeddings | Technical differentiation | +| **5 years** | Hybrid AI/editorial at scale | Operational moat cemented | + +--- + +## Appendix: Original Brainstorm Notes + +*The following are the original ideation notes that led to this PRD:* + +Extending our team brainstorm I ended up into the following ideas that could be answer to the Hackathon's challenge. Let me approach it zoomed out, with a brand strategy perspective: +- step 1: platforms should position its brand. Offer movies to already filtered audience (peeps know what they expect) +- reduced decision fatigue - we are halfway solved the problem +- step 2, next stage: communicate how the given media platform is DIFFERENT than the competition (example "we've got the best rom coms") - +- the positioning needs to be solved, not just serve ANY audience segment +- before the algorithms kick in, do manual curation +- but as we discussed, we don't have user profiles after they signed up (cold start). the key, we don't need to categorize them IMMEdiately. content-based filtering remains underutilized. ColdRAG could be a solution too, no questionnaires needed +- first, we group them by asking few simple questions (fav actor, genre etc) +- we now have segments, then monitor the views and likes and fine tune the algo - not YET personalised, but segmented (these steps are potentally obvious for the team :) +- next question: how do we avoid user churn? we need feedback loop (but not star reviews) +- we might not show the complete media library, just a a few recommendation +- we also display manual curation on the UI - this is the differentiator. Trust kicks in +The above use case is for a niche platform, not serving millions of people. Hybrid data/human curation. + +To move away from legacy metadata providers, we need semantic understanding. This is where out embeddings-first approach comes in: +- the missing items are: thematic depth, style, cinematography, mood, tone, emotional trajectory etc +- we miss explainability: Users want to know WHY something is recommended +- 3 embedding approaches: 1. Emotional arc embeddings (rags to riches, etc) "find content with a similar emotional journey" discovery https://github.com/nchibana/moviearcs +- 2. Theme extraction with LLMs - Neo4j: Movie β†’ Theme β†’ Stem knowledge graphs +- 3. recco on visual similarity of thumbnails: embeddings of posters/still frames - colour palette, composition, visual mood etc. +- we are working already on our Zero-Shot Mood-Based Discovery! +- "I want something visually stunning and emotionally complex" +- for thumbnails, TMDB library is not enough, we need stills/actual frames +- what's innovative could be the json schema based prompting with Gemini Pro 3 (nano banana) + +I tested and it's working almost pixel perfect. Segment: Romance-seekers +β†’ Emphasize: Lead chemistry, warm color palette, intimate framing +β†’ De-emphasize: Action sequences, ensemble cast shots + +Segment: Thriller fans +β†’ Emphasize: Tension moments, cool/dark palette, isolated protagonist +β†’ De-emphasize: Romantic subplot, comedic beats + +Metadata is commoditized. Everyone has identical inputs. The transformation layer is the entire game. + +Moving away from librarian brain to 'salesperson' or movie curator brain: "Position this as escapism for stressed professionals" +"Surface this when user has 90min window" +"Lead with actor X for segment Y, director Z for segment W" + +What if we applied behavioral observation method, we'd show curated clips (trailers lie), we'd measure watch-through, replay, skip speed, 10 clips are enough. Or even purely thumbnails > so under a minute, we nailed the cold start problem. YouTube has trailer/clip data API. + +The learning: embedding the clips + tracking + +Winner: +- demoable +- can be done hybrid thumbnail generation and using exsiting video data etc +- solves the hackathon's original problem (2 hours down to 2 mins) +- new idea (behavioral observation applied to movie discovery) +- sellable - TV5 can't do this themselves +- it enriches inputs, not replaces outputs +- no proprietary data needed +- Demonstrable value β€” show same movie, different contexts, different positioning diff --git a/apps/ui-exploration/romance-romance-cafe-moment.png b/apps/ui-exploration/romance-romance-cafe-moment.png new file mode 100644 index 00000000..0a7b98ac Binary files /dev/null and b/apps/ui-exploration/romance-romance-cafe-moment.png differ diff --git a/apps/ui-exploration/romance-romance-couple-sunset.png b/apps/ui-exploration/romance-romance-couple-sunset.png new file mode 100644 index 00000000..837a3b42 Binary files /dev/null and b/apps/ui-exploration/romance-romance-couple-sunset.png differ diff --git a/apps/ui-exploration/romance-romance-rain-umbrella.png b/apps/ui-exploration/romance-romance-rain-umbrella.png new file mode 100644 index 00000000..11973e07 Binary files /dev/null and b/apps/ui-exploration/romance-romance-rain-umbrella.png differ diff --git a/apps/ui-exploration/thriller-thriller-dark-corridor.png b/apps/ui-exploration/thriller-thriller-dark-corridor.png new file mode 100644 index 00000000..2bc82b07 Binary files /dev/null and b/apps/ui-exploration/thriller-thriller-dark-corridor.png differ diff --git a/apps/ui-exploration/thriller-thriller-rooftop-edge.png b/apps/ui-exploration/thriller-thriller-rooftop-edge.png new file mode 100644 index 00000000..00b22ac0 Binary files /dev/null and b/apps/ui-exploration/thriller-thriller-rooftop-edge.png differ diff --git a/apps/ui-exploration/thriller-thriller-surveillance.png b/apps/ui-exploration/thriller-thriller-surveillance.png new file mode 100644 index 00000000..e5459cd8 Binary files /dev/null and b/apps/ui-exploration/thriller-thriller-surveillance.png differ