diff --git a/.claude/settings.local.json b/.claude/settings.local.json index f07ad0d..c1f4714 100644 --- a/.claude/settings.local.json +++ b/.claude/settings.local.json @@ -395,7 +395,13 @@ "Bash(curl -s -o /dev/null -w \"more: %{http_code}\\\\n\" https://teecup.teeoff.no/more)", "Bash(echo \"tsc exit: $?\")", "Bash(docker rm -f teecup_frontend_scratch teecup_api_scratch teecup-minio-scratch > /dev/null 2>&1 *)", - "Bash(curl -s -o /dev/null -w \"%{http_code}\\\\n\" https://teecup.teeoff.no/my-rounds)" + "Bash(curl -s -o /dev/null -w \"%{http_code}\\\\n\" https://teecup.teeoff.no/my-rounds)", + "Bash(xargs -I{} basename {})", + "Bash(python3 test_part2_backend.py)", + "Bash(python3 test_oom_backend.py)", + "Bash(grep -n \"Dine organisasjoner\\\\|organizations/\\\\[id\\\\]\\\\|/organizations/\\\\${\" /opt/teecup/frontend/components/dashboard.tsx)", + "Bash(python3 -c \"import fastapi\")", + "Bash(openssl rand *)" ], "additionalDirectories": [ "/opt/teeoff/deploy", diff --git a/056_scramble_solo_round.sql b/056_scramble_solo_round.sql new file mode 100644 index 0000000..3c4e2c8 --- /dev/null +++ b/056_scramble_solo_round.sql @@ -0,0 +1,45 @@ +-- ===================================================================== +-- TeeCup — Scramble mot enkeltspiller, slagspill-varianten (frittstående +-- runder), migrasjon 056. +-- +-- Første ASYMMETRISKE to-siders-format i prosjektet: et scramble-lag +-- (variabel størrelse, N>=2, delt ball) spiller netto slagspill mot ÉN +-- individuell spiller (egen ball) -- laveste nettosum vinner. Bevisst +-- utenfor omfang: match-play-varianten (egen runde senere), org- +-- lagturneringer (kun frittstående runder nå). +-- +-- Lagets Playing Handicap = enkelt gjennomsnitt av medlemmenes course +-- handicap (handicap_engine.py sin nye TeamAverage) -- bevisst uavhengig +-- av scramble_2/scramble_4 sine faste RankedSplit-tabeller, som +-- forutsetter fast lagstørrelse. Ingen av de tre HCP-PDF-ene (se +-- CLAUDE.md) dekker lag-vs-individuell eller vilkårlig lagstørrelse -- +-- dette er en bevisst ny, enkel TeeCup-regel, bekreftet med bruker +-- 2026-08-05, ikke en kildebelagt formel. +-- ===================================================================== +\set ON_ERROR_STOP on + +ALTER TABLE round DROP CONSTRAINT round_play_format_check; +ALTER TABLE round ADD CONSTRAINT round_play_format_check + CHECK (play_format IN ('stroke', 'match', 'skins', 'fourball', 'foursome', 'greensome', 'scramble_2', 'scramble_4', 'stableford', 'chapman', 'copenhagen', 'bbb', 'flag', 'shamble', 'money_ball', 'high_low_high', 'scramble_solo')); + +-- Individualspillerens konfigurerbare allowance-%, arrangør-satt per +-- runde, standard 100. Bespoke kolonne (samme mønster som bbb_sweep_ +-- bonus_enabled/shamble_best_n) -- IKKE den generiske allowance_override- +-- JSON-en (migrasjon 051), som forutsetter ÉN delt strategi for hele +-- runden. Dette formatet trenger to UAVHENGIGE strategier: lagsiden har +-- ingen konfig i det hele tatt (alltid rent snitt via TeamAverage), +-- individualsiden har nøyaktig denne ene justerbare prosenten. +ALTER TABLE round ADD COLUMN scramble_solo_individual_pct smallint NOT NULL DEFAULT 100 + CHECK (scramble_solo_individual_pct BETWEEN 0 AND 100); + +-- Side-rolle-disambiguering. Nullable, meningsløs/NULL for alle andre +-- formater. round_side kan slettes/gjenopprettes fritt (delete_round_ +-- side) uten garantert stabil opprettelsesrekkefølge -- rekkefølge-basert +-- "side 1 = lag, side 2 = individuell" er derfor IKKE pålitelig identitet. +-- round_side_id IS NULL for individualspilleren ville dessuten brutt +-- eksisterende "er denne deltakeren med i matchen"-sjekker +-- (_two_sided_hole_results m.fl.), som bruker nettopp round_side_id IS +-- NOT NULL som signal -- individualspilleren får derfor en ekte +-- round_side-rad (rollen 'individual'), ikke NULL. +ALTER TABLE round_side ADD COLUMN side_role text CHECK (side_role IN ('team', 'individual')); +CREATE UNIQUE INDEX round_side_role_unique ON round_side (round_id, side_role) WHERE side_role IS NOT NULL; diff --git a/057_scramble_solo_match_round.sql b/057_scramble_solo_match_round.sql new file mode 100644 index 0000000..c25f472 --- /dev/null +++ b/057_scramble_solo_match_round.sql @@ -0,0 +1,22 @@ +-- ===================================================================== +-- TeeCup — Scramble mot enkeltspiller, MATCHSPILL-varianten (frittstående +-- runder), migrasjon 057. +-- +-- Samme asymmetriske to-siders-struktur som scramble_solo (migrasjon +-- 056, stroke-play-varianten) -- variabelt scramble-lag mot nøyaktig én +-- individuell spiller -- men avgjort hull-for-hull ("X UP"/dormie/ +-- avgjort) i stedet for netto totalsum-sammenligning. +-- +-- REN CHECK-utvidelse -- ingen nye kolonner. round_side.side_role og +-- round.scramble_solo_individual_pct (begge fra migrasjon 056) er +-- allerede generiske nok til å gjenbrukes uendret: samme betydning +-- (hvem er laget/individualspilleren, individualspillerens allowance-%) +-- gjelder uansett om sammenligningen er netto totalsum eller matchspill. +-- handicap_engine.py sin match_play_strokes()/compute_match_state() +-- brukes uendret (begge allerede domeneagnostiske) -- ingen ny motorkode. +-- ===================================================================== +\set ON_ERROR_STOP on + +ALTER TABLE round DROP CONSTRAINT round_play_format_check; +ALTER TABLE round ADD CONSTRAINT round_play_format_check + CHECK (play_format IN ('stroke', 'match', 'skins', 'fourball', 'foursome', 'greensome', 'scramble_2', 'scramble_4', 'stableford', 'chapman', 'copenhagen', 'bbb', 'flag', 'shamble', 'money_ball', 'high_low_high', 'scramble_solo', 'scramble_solo_match')); diff --git a/CHANGELOG.md b/CHANGELOG.md index 64ff6c1..19c789f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7550,3 +7550,303 @@ Neste steg: compose up -d --build teecup_frontend` (ingen migrasjon involvert), containeren boot-et rent, `/health` og `/dashboard` → 200 over https. + +22. **Nytt format: "Scramble mot enkeltspiller" (`scramble_solo`), + slagspill-varianten — 2026-08-05 (migrasjon 056).** Første + ASYMMETRISKE to-siders-format i prosjektet: et scramble-lag + (variabel størrelse, N>=2, delt ball) mot ÉN individuell spiller + (egen ball), avgjort ved netto SLAGSPILL-totalsum (ikke matchspill) + -- laveste nettosum vinner. Bevisst utenfor omfang denne runden: + match-play-varianten av formatet (egen runde senere), org- + lagturneringer (kun frittstående runder nå). + + **Kilder undersøkt FØR design** (CLAUDE.md sin regel for nye + formater): de tre HCP-PDF-ene dekker IKKE lag-vs-individuell eller + vilkårlig lagstørrelse -- bekreftet ved grundig lesing. Lagets + Playing Handicap er derfor en bevisst NY, enkel TeeCup-regel + (`TeamAverage` -- rent snitt av medlemmenes course handicap, for + N>=2), bekreftet eksplisitt med bruker, IKKE en kildebelagt formel + som `scramble_2`/`scramble_4` sine faste `RankedSplit`-tabeller + (som forutsetter fast lagstørrelse og derfor bevisst IKKE gjenbrukt + her). Individualspillerens allowance er en konfigurerbar prosent + (`scramble_solo_individual_pct`, std 100 %, arrangør-satt) -- + egen bespoke kolonne, IKKE den generiske `allowance_override`-JSON- + en (som forutsetter ÉN delt strategi for hele runden, mens dette + formatet trenger to uavhengige strategier). + + **Skjema** (migrasjon 056): `round.scramble_solo_individual_pct` + (smallint, std 100) og `round_side.side_role` + (`'team'`/`'individual'`, unik per rolle per runde). `round_hole` + sin eksisterende XOR-struktur (migrasjon 031) trengte INGEN endring + -- lagsiden bruker `round_side_id`-veien (samme som foursome/ + scramble), individualsiden bruker `round_participant_id`-veien + (samme som singles), begge coexisterer allerede fritt i samme + tabell. + + **Motor** (`handicap_engine.py`): ny `TeamAverage`-strategi og ny, + domeneagnostisk `net_stroke_play_margin(net_total_a, net_total_b)` + -- eksplisitt SØSKEN til, ikke del av, `compute_match_state` + (ingen hull-for-hull-tilstand for dette formatet). Selve per-side- + nettosummen gjenbruker eksisterende `allocate_strokes_by_index`/ + `stroke_play_net_total`, ingen ny funksjon trengtes der. 8 nye + enhetstester (115/115 totalt, opp fra 107). + + **Backend** (`app/routers/rounds.py`): ny `_ASYMMETRIC_SIDE_FORMATS`- + konstant (bevisst adskilt fra `_TWO_SIDED_FORMATS`, siden formatet + verken er symmetrisk eller matchspill). Asymmetrisk sidekapasitet i + `_check_side_capacity` (laget: ingen øvre grense, individualsiden: + maks 1) -- kan IKKE uttrykkes av det eksisterende + `_SIDE_PLAYER_COUNT`-oppslaget, som forutsetter ett fast tall for + HELE formatet. Ny `_individual_round_hole_needed`-hjelpefunksjon + (avgjør delt-ball vs. individuell-ball-lagring per DELTAKER, ikke + per format, siden de to sidene har ulik struktur). Ny + `_recompute_scramble_solo_handicaps` (søsterfunksjon til + `_recompute_side_handicaps`, som ikke kunne gjenbrukes -- to + uavhengige strategier, ikke én). Ny `_build_scramble_solo_result` + (samme "regn ut ved lesing, ingen cache"-filosofi som Nassau/ + High-low-high), dispatchet FØR den generiske to-sidede grenen i + `_build_format_result`. + + **Frontend -- ALT promptet til V0** (brukerens eksplisitte instruks + denne runden, gjentatt: "Alt av frontend skal promptes mot V0" -- + ingen håndkoding/design-beslutning av meg). To V0-prompter skrevet + (forankret i `DESIGN_SYSTEM.md` + tilgjengelighetskravet), levert + som zip 30 (oppsett-steget) og zip 31 (resultatvisning, bygget på + 30). Integrert -- IKKE blindt kopiert (V0 sin egen full-app-eksport + bruker fortsatt mock-data for alt utenom det som faktisk ble + promptet) -- kun de faktiske diff-relevante stykkene ble portet inn + i de allerede API-koblede filene: + - `new-round.tsx`: ny `ScrambleVsSoloSides`-komponent (Steg 4, + asymmetrisk sideoppsett -- "Laget" åpen liste/"minst 2"-hint, + "Individuell motstander" låst til 1), ny `SoloAllowanceControl` + (Steg 2, 0-100 %-stepper). `submitWizard()` fikk en egen + side-opprettelses-gren for formatet (sender `side_role`, som + TWO_SIDED-formatenes gren ikke gjør). "Avanserte handicap- + innstillinger"-panelet skjules helt for formatet (ingen av + feltene der har noen effekt siden formatet aldri bruker + `allowance_override`) -- funnet og rettet UNDER integrasjonen, + ikke en del av V0-eksporten. + - `scramble-solo-result.tsx`: NY fil, ren V0-eksport uendret + (selvstendig presentasjonskomponent, `ScrambleSoloResultView`). + Adapter fra `ApiFormatResult` til komponentens props-form skrevet + lokalt i `round-leaderboard.tsx` (`buildScrambleSoloResult`) og + `round-detail.tsx` (lokal kopi, prosjektets vanlige mønster) -- + foretrekker hull-entryens `label`-felt (deltakerens faktiske + navn) over sidens egen (faste) label, med fallback. + - `round-scorecard.tsx`: eneste sted som trengte GENUINT ny logikk + (ikke bare registrering) -- formatet har BLANDEDE enhetstyper i + samme fane-liste (laget = side, individualspilleren = + participant). Løst ved å slå opp faktisk enhetstype fra selve + `unitId` (`round.sides.some(s => s.id === unitId)`) i stedet for + et format-bredt `isSharedBall`-flagg, som ikke kan uttrykke en + blanding -- denne oppslags-tilnærmingen forble samtidig korrekt + uendret for alle eksisterende rene formater. + - `round-detail.tsx`: INGEN endring i selve scoreføringen + (`SideScoreWizard` for laget, vanlig per-deltaker-veiviser for + individualspilleren fungerer begge uendret) -- kun + `FormatResultPanel` fikk en ny gren (MÅ avskjæres FØR den + generiske to-sidede fallback-koden, ellers ville den krasjet/vist + feil for dette asymmetriske formatet). + - `FORMAT_LABELS` lagt til i 8 filer (`round-card.tsx`, + `round-leaderboard.tsx`, `round-detail.tsx`, `round-scorecard.tsx`, + `round-stats.tsx`, `friend-profile.tsx`, `watch-round.tsx`) -- + `public-live.tsx` bevisst IKKE (den nøkler på org-turneringers + `session.format`, utenfor omfang). + + **Scratch-verifisert grundig, TO RUNDER** (samme "backend alene, + så full stack"-disiplin som Order of Merit-runden): + 1. Backend alene: isolert `teecup_scratch`-DB (alle 56 migrasjoner + friskt), isolert `teecup_app_scratch`-rolle, isolert scratch- + MinIO, engangs API-container. Håndregnet Python-testskript, 45/45 + sjekker bestått -- 3-manns lag (HCP 8/14/20, snitt 14) mot + individualspiller (HCP 10), begge 100 % og 50 % allowance, + inkl. eksplisitt bevis på at en hull-SI mellom de to + allowance-tersklene (SI 7) korrekt skifter fra 1 til 0 mottatte + slag. Kapasitetsgrenser bekreftet begge veier (laget avviser + ALDRI en 4. spiller, individualsiden avviser alltid en 2.). + "Fullfør runde"-gating eksplisitt testet med et ufullstendig lag + (1 spiller) -- avvist med riktig forklarende melding, samme + type sjekk som avdekket punkt 21 sin bug. + 2. Full stack: ny isolert scratch-runde (DB/rolle/MinIO/API- + container pluss et ekte `docker build` av frontend-imaget -- + den faktiske typesjekkede produksjonsbuilden, ikke bare lokal + `tsc`), ekte nettleser via magic-link-innlogging + (`TEECUP_DEV_LOG_MAGIC_LINKS`). Opprettet en ekte runde gjennom + hele veiviseren (inkl. V0 sin `ScrambleVsSoloSides`-UI), satte + score på tre hull via ekte PATCH-kall, og bekreftet at + `ScrambleSoloResultView` viste EKSAKT de håndregnede tallene + ("Laget leder med 1 slag", 12 mot 13 netto) med riktig + grønn/oransje leder-fremheving per hull. `test_isolation.sql` + uendret 12/12 (migrasjonen er rent additiv). Scratch-miljøet + ryddet opp fullstendig etter BEGGE runder. + + **Rullet ut live 2026-08-05**, bruker bekreftet eksplisitt: migrasjon + 056 kjørt mot ekte `teecup_db` (`round.scramble_solo_individual_pct`, + `round_side.side_role` + `round_side_role_unique`-indeksen, bekreftet + tilstede etterpå), `docker compose up -d --build teecup_api + teecup_frontend`, begge containere boot-et rent, `/health` og + `/my-rounds/new` → 200 over https, `round_play_format_check` bekreftet + å inkludere `'scramble_solo'`. + +23. **Matchspill-varianten av samme format (`scramble_solo_match`) — + 2026-08-05 (migrasjon 057), PLUSS en kritisk regresjonsbug funnet og + rettet i samme runde som rammet BEGGE variantene (se eget punkt + under).** Samme asymmetriske lag-mot-individualspiller-struktur som + punkt 22, men avgjort hull-for-hull (matchspill) i stedet for netto + slagspill-totalsum. Vesentlig mindre bygg enn punkt 22 -- nesten alt + gjenbrukes uendret. + + **Motor -- ingen endring:** `match_play_strokes`/`compute_match_state` + (`handicap_engine.py`) var allerede domeneagnostiske og brukes uendret + -- konverterer lagets `TeamAverage`/individualspillerens + `PerPlayerPercentage(pct/100)` (samme `_recompute_scramble_solo_ + handicaps` som punkt 22, uendret) til RELATIVE slag (laveste side + spiller "av scratch"), i motsetning til slagspill-variantens + ABSOLUTTE, uavhengige allowance per side -- bevisst forskjell, riktig + fordi matchspill per definisjon betyr relativ slagfordeling. + + **Skjema** (migrasjon 057): ren CHECK-utvidelse, INGEN nye kolonner + -- `round.scramble_solo_individual_pct`/`round_side.side_role` + (migrasjon 056) er generiske nok til å gjenbrukes uendret. + + **Backend:** ny delt konstant `_SCRAMBLE_SOLO_FORMATS = {"scramble_ + solo", "scramble_solo_match"}`, widened seks eksakte + `== "scramble_solo"`-strengsjekker i `app/routers/rounds.py` til + settmedlemskap. Ny `_build_scramble_solo_match_result` gjenbruker det + eksisterende blandede hull-oppslaget fra `_build_scramble_solo_result` + (samme to queries: `round_hole` via `round_side_id` for laget, via + `round_participant_id` for individualspilleren), bygger en + `list[HoleResult]` fra netto-sammenligning per hull, mater + `compute_match_state` -- gir lead/holes_remaining/is_dormie/ + is_closed/`describe()` gratis. + + **Frontend -- maksimalt gjenbruk, bekreftet eksplisitt med bruker + (ingen ny V0-prompt for denne varianten):** `new-round.tsx` sin + oppsett-UI (`ScrambleVsSoloSides`/`SoloAllowanceControl`) gjenbrukt + HELT uendret. Resultatvisning gjenbruker `TwoSidedBoard` + (round-leaderboard.tsx) og den generiske to-sidede + `sideIdentity`/`LeadZone`-grenen (round-detail.tsx) -- begge allerede + korrekte for en N-mot-1-side siden de grener på FAKTISK ANTALL + SPILLERE per side, ikke på rolle. Én kritisk, selv-oppdaget + korrekthetsbug FØR noen verifisering i det hele tatt: første utkast + av `_build_scramble_solo_match_result` brukte en FAST konvensjon + (laget alltid "a", individualspilleren alltid "b") -- resten av appen + (inkl. `TwoSidedBoard`) forutsetter derimot at "a" = `round.sides[0]` + SORTERT ETTER UUID, ikke rolle. Rettet til `team_is_a = team_side["id"] + < individual_side["id"]`, tredd gjennom hull-sammenligningen og + `FormatHoleEntry`-side-tagger. `round-scorecard.tsx` sin + `MatchScorecardGrid` fikk en liten, dedikert (ikke-V0) gren for å vise + ÉN rad per SIDE for dette formatet (samme mønster som `isSharedBall`- + grenen der) -- uten den ville laget vist N dupliserte rader, siden + alle lagmedlemmer deler samme `TeamAverage`-tall. + + **KRITISK REGRESJONSBUG funnet under full nettleser-verifisering, + rammet OGSÅ den allerede live slagspill-varianten (punkt 22) -- + ikke bare den nye matchspill-varianten:** `round-detail.tsx` sin + "Score"-fane (`SHARED_BALL_FORMATS`) inneholdt aldri `scramble_solo`/ + `scramble_solo_match` (kun ekte delt-ball-formater som foursome/ + scramble_2/scramble_4/chapman) -- rimelig nok isolert sett, siden + scramble mot enkeltspiller er HALVPARTEN delt-ball (laget) og + HALVPARTEN individuell (motstanderen), ikke rent det ene eller det + andre. Konsekvens: et klikk på en LAGSPILLERS scorekort rutet + (feilaktig) til den vanlige per-deltaker `ScoringWizard`/ + `wizardPlayerId`-stien i stedet for den delte `SideScoreWizard`/ + `wizardSideId`-stien. Siden lagspilleres hull ALDRI lagres per + `round_participant_id` (kun per `round_side_id`), returnerte + `GET .../participants/{id}/holes` alltid `[]` for dem -- og siden + SPINNER-porten i samme fil (`holes.length === 0`) også var avledet + fra akkurat DENNE deltakerens egen (evig tomme) liste, satt den seg + fast i en evig spinner, permanent, uten noen feilmelding. Siden + `SHARED_BALL_FORMATS` aldri var endret for `scramble_solo` i punkt + 22 sin utrulling heller, var dette allerede live og reelt ødelagt + for ekte lagspillere på scramble_solo-runder FØR denne rettelsen. + Rettet: `hole`/spinner-porten hentes nå fra HVILKEN SOM HELST kilde + som allerede har lastet inn hull (deltaker- ELLER side-basert, + uavhengig av hvem som er "aktiv spiller") i stedet for kun aktiv + spillers egen liste; ny `openPlayerOrTeamSideEntry`-klikkhåndterer + ruter lagets spillere til `wizardSideId`, individualspilleren + fortsatt til `wizardPlayerId`; `advanceWizardPlayer`/`advanceWizardSide` + justert til å ikke lenger kunne "vandre inn i" den andre kjeden. + Funnet OG rettet FØR migrasjon 057/redeploy -- ikke en kjent, + ureparert feil et øyeblikk i produksjon. + + **Verifisering:** + 1. Håndregnet API-testskript (`test_scramble_solo_match.py`, 31/31 + bestått): 3-manns lag (HCP 8/14/20 → TeamAverage 14) mot + individualspiller (HCP 10, 100 %), `match_play_strokes([14,10])`, + 5 spilte hull → "2 UP", `hole_results`/`strokes_received` stemte + hånd-for-hånd mot forventet forløp. Dynamisk `team_is_a`-utledning + i selve testen (ikke antatt fast) for å faktisk teste sorterings- + konvensjonen, ikke bare den ene retningen. + 2. Full stack, ekte nettleser (fjerde scratch-miljø, ekte + `docker build` av frontend-imaget): opprettet en runde gjennom + hele veiviseren, satte team/individualspiller opp, entret score + via BEGGE veiviserne (fant og rettet bug-en HER, se over), bekreftet + `LeadZone` viste korrekt "X UP" og skiftet leder korrekt, bekreftet + `MatchScorecardGrid` viste eksakt ÉN rad for laget (ikke tre) og + riktig "N UP"-progresjon per hull, fullførte runden via ekte + "Fullfør runde"-knapp. + 3. Regresjonsbekreftet SEPARAT at samme fiks løser samme bug for den + allerede-live slagspill-varianten (`scramble_solo`): opprettet en + ny runde med det formatet i samme scratch-miljø, bekreftet at + `SideScoreWizard` nå åpner korrekt for lagsiden (før fiksen: samme + evige spinner). + 4. `test_isolation.sql` uendret 12/12. Scratch-miljøet (DB/rolle/ + MinIO/API-/frontend-containere/images) ryddet opp fullstendig + etter bruk. + + **Rullet ut live 2026-08-05** (samme økt som punkt 22): migrasjon 057 + kjørt mot ekte `teecup_db` (`round_play_format_check` bekreftet å nå + inkludere `'scramble_solo_match'`), `docker compose up -d --build + teecup_api teecup_frontend` (inkluderer BÅDE matchspill-formatet OG + bug-fiksen over -- fiksen var derfor allerede live for ekte + `scramble_solo`-lagspillere idet denne utrullingen fullførte), begge + containere boot-et rent, `/my-rounds/new` → 200 over https. + +24. **"Bruk som mal for egen bane" viste seg for bredt — 2026-08-05, + rent frontend, ingen skjema-/backend-endring.** Brukeren rapporterte + at knappen (fork en eksisterende personlig bane til utgangspunkt for + en NY) dukket opp i det vanlige "Egen bane"-søket i opprett-runde- + veiviseren, uansett om målet var å VELGE en eksisterende bane å + spille på eller å opprette en helt ny -- feil sted for en + mal-handling som kun gir mening når brukeren faktisk har sagt at + målet er å opprette. + + **Avklart med bruker (tre alternativer presentert)**: knappen skal + KUN vises når brukeren eksplisitt har trykket "Opprett ny bane" og + derfra velger å basere den nye banen på en eksisterende, ikke i det + vanlige søket. + + **Fiks (`frontend/components/new-round.tsx`):** ny `S1Sub`-verdi + `"own-search-template"`, distinkt fra det vanlige `"own-search"`. + `OwnSearch`s `onUseAsTemplate`-prop gjort valgfri (var påkrevd) -- + "Bruk som mal for egen bane" rendres nå kun `{onUseAsTemplate && + (...)}`, akkurat som den allerede korrekt gaterte offisiell-bane- + varianten i `CourseList`. Det vanlige `"own-search"`-kallet (nådd fra + Step1 sitt "Egen bane"-kort) slutter å sende med `onUseAsTemplate` i + det hele tatt. Ny lenke "Basér på en eksisterende bane i stedet" lagt + til øverst i `OwnCreateStep`s blanke skjema (kun synlig når + `!initial`, altså før noen mal er valgt) -- trykk navigerer til + `"own-search-template"`, som gjenbruker `OwnSearch` UENDRET, denne + gangen MED `onUseAsTemplate` satt (samme forhåndsutfyllings-bro som + allerede fantes for offisielle baner). Ny `ownCreateOrigin`-state + (løftet til toppnivå-hook-en, ved siden av `s1Sub`) sporer hvor + "own-create" skal gå TILBAKE til (vanlig søk, mal-søk, eller broen + fra offisielle baner) -- uten denne ville tilbake-knappen fra + mal-søket hoppet feil sted. + + **Scratch-verifisert i ekte nettleser** (femte scratch-miljø, ekte + `docker build` av frontend-imaget): bekreftet at "Bruk som mal for + egen bane" IKKE lenger vises i det vanlige "Egen bane"-søket; + bekreftet at "Basér på en eksisterende bane i stedet"-lenken vises i + det blanke opprett-skjemaet; trykket den, bekreftet at knappen NÅ + vises i det samme søket; trykket "Bruk som mal", bekreftet at + opprett-skjemaet forhåndsfylte navn/18 hull/utslag korrekt fra den + valgte banen; bekreftet at tilbake-knappen fra opprett-skjemaet gikk + til mal-søket (ikke det vanlige søket eller helt til `source`). + Ingen konsoll-feil. Scratch-miljøet (DB/rolle/MinIO/API-/frontend- + containere/images) ryddet opp fullstendig etter bruk. + + **Rullet ut live 2026-08-05** (kun `teecup_frontend` bygget/ + restartet -- ren frontend-endring, ingen skjema-/API-endring). + `/my-rounds/new` → 200 over https etterpå. diff --git a/FEATURE_BACKLOG.md b/FEATURE_BACKLOG.md index e24be13..1daf900 100644 --- a/FEATURE_BACKLOG.md +++ b/FEATURE_BACKLOG.md @@ -4130,6 +4130,64 @@ isolasjon + ekte nettleser-gjennomgang). --- +## Scramble mot enkeltspiller — ✅ BEGGE VARIANTER (slagspill + matchspill) BYGGET, SCRATCH-/BROWSERVERIFISERT OG LIVE 2026-08-05 (migrasjon 056+057). Org-lagturneringer 📋 GJENSTÅR + +Brukeren ba om et nytt, niende turneringsformat: et scramble-lag +(variabel størrelse, N>=2, delt ball) mot ÉN individuell spiller (egen +ball). Første ASYMMETRISKE to-siders-format i prosjektet -- de åtte +tidligere formatene (se seksjonen over) har alle SAMME struktur på +begge sider. + +**Bygget denne runden (kun frittstående runder, kun slagspill- +sammenligning):** skjema (migrasjon 056: `round.scramble_solo_ +individual_pct`, `round_side.side_role`), motor (`TeamAverage`, +`net_stroke_play_margin` -- 8 nye enhetstester, 115/115 totalt), full +API-wiring i `app/routers/rounds.py` (asymmetrisk sidekapasitet, +konfigurerbar individuell allowance, `_build_scramble_solo_result`). +Frontend ALT promptet til V0 (brukerens eksplisitte instruks denne +runden) -- ny `ScrambleSoloResultView`-komponent + `ScrambleVsSoloSides`- +sideoppsett i opprett-runde-veiviseren, integrert (ikke blindt kopiert) +mot de eksisterende API-koblede filene. Se CHANGELOG.md 2026-08-05 +(punkt 22) for full bygge-/verifiseringsdetalj, inkl. to separate +scratch-verifiseringsrunder (backend alene, deretter full stack med +ekte nettleser). + +**Kildesjekk før design:** ingen av de tre HCP-PDF-ene (se CLAUDE.md) +dekker lag-vs-individuell eller vilkårlig lagstørrelse -- lagets +Playing Handicap (`TeamAverage`, rent snitt) er derfor en bevisst NY +TeeCup-regel, bekreftet eksplisitt med bruker, ikke kildebelagt slik +`scramble_2`/`scramble_4` sine `RankedSplit`-tabeller er. + +**Bevisst utenfor omfang, fortsatt (ikke glemt):** +- **Org-lagturneringer** (`session.format`) -- kun frittstående runder + nå. `public-live.tsx` sin `FORMAT_LABELS` (som nøkler på + `session.format`) fikk derfor bevisst IKKE formatet lagt til. +- Ingen kobling til Order of Merit for dette formatet. + +**Matchspill-varianten (`scramble_solo_match`) bygget samme dag, +2026-08-05 (migrasjon 057):** samme lag-mot-individuell-idé, avgjort +hull-for-hull (`match_play_strokes`/`compute_match_state`, begge +gjenbrukt uendret) i stedet for netto slagspill-totalsum. Ren +CHECK-migrasjon (ingen nye kolonner). Frontend gjenbruker +`TwoSidedBoard`/`LeadZone`/oppsett-UI-en fra slagspill-varianten helt +uendret (bekreftet med bruker, ingen ny V0-prompt for denne +varianten) -- kun én liten, dedikert (ikke-V0) gren i +`MatchScorecardGrid` for én rad per lag-side. + +**Kritisk regresjonsbug funnet OG rettet samme dag, FØR denne +utrullingen:** `round-detail.tsx` sin "Score"-fane rutet feilaktig et +klikk på en LAGSPILLERS scorekort til per-deltaker-veiviseren i stedet +for den delte lag-veiviseren -- satt seg fast i en evig spinner, uten +feilmelding. Rammet BEGGE variantene (var allerede live og ødelagt for +ekte lagspillere på slagspill-varianten siden 2026-08-05 tidligere +samme dag, inntil denne rettelsen). Se CHANGELOG.md punkt 23 for full +rotårsak/fiks-detalj. + +**Rullet ut live 2026-08-05** (begge varianter + bug-fiksen, samme +utrulling), bruker bekreftet eksplisitt. + +--- + ## Bevisst endret fra opprinnelige (Gemini-)råd - 🔀 **Banedata:** API mot teeoff (ADR-004), IKKE direkte delt database. Direkte diff --git a/Order of Merit - Opret Order of Merit – GolfBox Support og salg.pdf b/Order of Merit - Opret Order of Merit – GolfBox Support og salg.pdf new file mode 100644 index 0000000..c3ee2bf Binary files /dev/null and b/Order of Merit - Opret Order of Merit – GolfBox Support og salg.pdf differ diff --git a/__pycache__/handicap_engine.cpython-312.pyc b/__pycache__/handicap_engine.cpython-312.pyc index 706f74d..22e77c2 100644 Binary files a/__pycache__/handicap_engine.cpython-312.pyc and b/__pycache__/handicap_engine.cpython-312.pyc differ diff --git a/app/routers/rounds.py b/app/routers/rounds.py index 7614f59..d6d15ff 100644 --- a/app/routers/rounds.py +++ b/app/routers/rounds.py @@ -56,6 +56,8 @@ from .auth import _hash_secret from .notifications import create_notification from handicap_engine import ( HoleResult, + PerPlayerPercentage, + TeamAverage, adjusted_gross_score, allocate_over_played_holes, allocate_strokes_by_index, @@ -70,8 +72,10 @@ from handicap_engine import ( high_low_high_points_for_hole, high_low_high_running_score, money_ball_hole_score, + net_stroke_play_margin, shamble_hole_score, stableford_points_for_hole, + stroke_play_net_total, course_handicap_raw, handicap_index_from_differentials, low_handicap_index, @@ -803,6 +807,43 @@ async def _recompute_side_handicaps(conn, round_id: str, play_format: str) -> No await conn.execute("UPDATE round_participant SET playing_handicap = $1 WHERE id = $2", playing, p["id"]) +async def _recompute_scramble_solo_handicaps(conn, round_id: str) -> None: + """Beregn og lagre playing_handicap for BEGGE sider i scramble_solo + (migrasjon 056) -- egen søsterfunksjon til _recompute_side_handicaps, + som IKKE gjenbrukes: den forutsetter ÉN felles strategi (via parse_ + allowance_config/allowance_override-JSON) og ETT fast forventet + spillerantall for HELE formatet -- ingen av delene stemmer her. + + Lagsiden (variabel størrelse, N>=2): TeamAverage, ALDRI konfigurerbar. + Individualsiden (nøyaktig 1 spiller): PerPlayerPercentage, prosenten + lest direkte fra round.scramble_solo_individual_pct (ikke allowance_ + override -- se RoundCreate/RoundUpdate). + """ + pct = await conn.fetchval("SELECT scramble_solo_individual_pct FROM round WHERE id = $1", round_id) + sides = await conn.fetch("SELECT id::text AS id, side_role FROM round_side WHERE round_id = $1", round_id) + for side in sides: + participants = await conn.fetch( + "SELECT id::text AS id, course_handicap_snapshot FROM round_participant WHERE round_side_id = $1", + side["id"], + ) + if not participants or any(p["course_handicap_snapshot"] is None for p in participants): + continue # ikke komplett ennå, eller mangler HCP-sporing for noen + + if side["side_role"] == "team": + if len(participants) < 2: + continue # TeamAverage krever minst to -- ikke komplett ennå + course_handicaps = [float(p["course_handicap_snapshot"]) for p in participants] + playing = TeamAverage().playing_handicap(course_handicaps) + for p in participants: + await conn.execute("UPDATE round_participant SET playing_handicap = $1 WHERE id = $2", playing, p["id"]) + elif side["side_role"] == "individual": + if len(participants) != 1: + continue # nøyaktig én forventet -- ikke komplett ennå + p = participants[0] + playing = PerPlayerPercentage(pct / 100).playing_handicap([float(p["course_handicap_snapshot"])]) + await conn.execute("UPDATE round_participant SET playing_handicap = $1 WHERE id = $2", playing, p["id"]) + + async def _relative_strokes_for_round(conn, round_id: str, play_format: str) -> dict[str, int]: """Relative slag per scoringsenhet (porterer relative_strokes_for_match). @@ -847,11 +888,26 @@ async def _check_side_capacity( stedet for å oppdage overtallet først ved fullføring. `exclude_ participant_id` unngår at en deltaker som allerede ER på siden (f.eks. en no-op-reassignment til samme side) teller seg selv ut av plass.""" - expected = _SIDE_PLAYER_COUNT[play_format] current_count = await conn.fetchval( "SELECT count(*) FROM round_participant WHERE round_side_id = $1 AND id != $2", side_id, exclude_participant_id or "00000000-0000-0000-0000-000000000000", ) + if play_format in _ASYMMETRIC_SIDE_FORMATS: + # scramble_solo (2026-08-05): kapasitet avhenger av HVILKEN rolle + # siden har, ikke et fast tall for hele formatet -- laget (variabel + # størrelse, N>=2) har ALDRI en øvre grense, individualsiden har + # ALLTID nøyaktig plass til én. + side_role = await conn.fetchval("SELECT side_role FROM round_side WHERE id = $1", side_id) + if side_role == "team": + return + if current_count >= 1: + raise app_error( + 409, "SIDE_FULL", + "Individualspiller-siden har allerede sin ene spiller.", + ) + return + + expected = _SIDE_PLAYER_COUNT[play_format] if current_count >= expected: raise app_error( 409, "SIDE_FULL", @@ -912,6 +968,27 @@ async def _format_setup_status(conn, round_id: str, play_format: str) -> tuple[b return False, "Alle fire spillerne må ha en tildelt, distinkt plass i rekkefølgen (0-3)." return True, None + if play_format in _SCRAMBLE_SOLO_FORMATS: + sides = await conn.fetch( + "SELECT id::text AS id, label, side_role FROM round_side WHERE round_id = $1 ORDER BY id", round_id + ) + if len(sides) != 2 or {s["side_role"] for s in sides} != {"team", "individual"}: + return False, "Denne spilleformen krever nøyaktig to sider -- ett lag og én individuell motstander." + unassigned = await conn.fetchval( + "SELECT count(*) FROM round_participant WHERE round_id = $1 AND round_side_id IS NULL", round_id + ) + if unassigned > 0: + return False, f"{unassigned} deltaker(e) er ikke tildelt noen side ennå." + for side in sides: + count = await conn.fetchval("SELECT count(*) FROM round_participant WHERE round_side_id = $1", side["id"]) + if side["side_role"] == "team" and count < 2: + label = side["label"] or "Laget" + return False, f"{label} har {count} spiller(e), men trenger minst 2." + if side["side_role"] == "individual" and count != 1: + label = side["label"] or "Individualspiller-siden" + return False, f"{label} har {count} spiller(e), men trenger nøyaktig 1." + return True, None + # To-sidede formater (match/fourball/foursome/greensome/scramble_*). expected = _SIDE_PLAYER_COUNT[play_format] sides = await conn.fetch("SELECT id::text AS id, label FROM round_side WHERE round_id = $1 ORDER BY id", round_id) @@ -950,6 +1027,21 @@ StatLevel = Literal["strokes_only", "strokes_and_putts", "full"] _TWO_SIDED_FORMATS = { "match", "fourball", "foursome", "greensome", "scramble_2", "scramble_4", "chapman", "high_low_high", } +# Scramble mot enkeltspiller -- to varianter, BEGGE bevisst IKKE i +# _TWO_SIDED_FORMATS: to-siders-settet over forutsetter SAMME struktur på +# begge sider (én engine_format, én _SIDE_PLAYER_COUNT). Disse formatene +# er asymmetriske (variabel lagstørrelse vs. nøyaktig én individualspiller) +# -- egne gate-steder (se _check_side_capacity/create_round_side/ +# add_participant/update_participant), egne _build_scramble_solo_*_result- +# funksjoner. Lag-/individual-håndteringen (kapasitet, side_role, +# individual_round_hole, playing_handicap-beregning via +# _recompute_scramble_solo_handicaps) er IDENTISK for begge variantene -- +# kun selve resultat-sammenligningen skiller dem (scramble_solo: netto +# totalsum via net_stroke_play_margin, migrasjon 056. scramble_solo_match: +# hull-for-hull via compute_match_state, migrasjon 057) -- derfor étt +# delt sett brukt gjennomgående i stedet for to. +_SCRAMBLE_SOLO_FORMATS = {"scramble_solo", "scramble_solo_match"} +_ASYMMETRIC_SIDE_FORMATS = _SCRAMBLE_SOLO_FORMATS def _viewer_match_status_text(lead: int, holes_remaining: int, is_closed: bool) -> str: @@ -1028,7 +1120,8 @@ class RoundCreate(BaseModel): # Beslutning A) -- IKKE noe som settes opp i selve opprett-kallet. play_format: Literal[ "stroke", "match", "skins", "fourball", "foursome", "greensome", "scramble_2", "scramble_4", "stableford", - "chapman", "copenhagen", "bbb", "flag", "shamble", "money_ball", "high_low_high", + "chapman", "copenhagen", "bbb", "flag", "shamble", "money_ball", "high_low_high", "scramble_solo", + "scramble_solo_match", ] = "stroke" # Frontend forhåndsutfyller denne til True når play_format='match' # (anbefalt, men overstyrbart) -- eierens EGEN rad ved opprettelse. @@ -1053,6 +1146,13 @@ class RoundCreate(BaseModel): # KUN meningsfullt (og påkrevd) når play_format='shamble' -- antall av # lagets individuelle resultater som teller per hull ("beste N av M"). shamble_best_n: int | None = Field(default=None, ge=1) + # KUN meningsfullt når play_format='scramble_solo' (migrasjon 056, + # 2026-08-05) -- individualspillerens allowance-%, arrangør-satt, + # standard 100. Lagsiden har INGEN tilsvarende konfig (alltid rent + # snitt via TeamAverage, se _recompute_scramble_solo_handicaps) -- + # bevisst IKKE den generiske allowance_override-JSON-en over, som + # forutsetter ÉN delt strategi for hele runden. + scramble_solo_individual_pct: int = Field(default=100, ge=0, le=100) # ADR-036 Beslutning B (fase 2, 2026-07-28) -- styrer KUN tredjeparts # innsyn (venner/offentligheten). Trygg standard 'private', samme # filosofi som RLS-policyenes "se ingenting" ved manglende kontekst. @@ -1120,6 +1220,9 @@ class RoundParticipantOut(BaseModel): class RoundSideOut(BaseModel): id: str label: str | None + # KUN satt for scramble_solo (migrasjon 056) -- None for alle andre + # formater, som ikke skiller sidene fra hverandre strukturelt. + side_role: Literal["team", "individual"] | None = None class RoundOut(BaseModel): @@ -1138,6 +1241,8 @@ class RoundOut(BaseModel): bbb_sweep_bonus_enabled: bool # KUN meningsfullt for play_format='shamble' (2026-07-30). shamble_best_n: int | None + # KUN meningsfullt for play_format='scramble_solo' (migrasjon 056). + scramble_solo_individual_pct: int started_at: str | None completed_at: str | None participants: list[RoundParticipantOut] @@ -1189,7 +1294,8 @@ async def _load_round_out(conn, round_id: str, viewer_user_id: str) -> RoundOut: SELECT id::text AS id, course_source, name, course_name_snapshot, tee_name_snapshot, played_at, start_hole, holes_planned, play_format, skins_scoring, skins_tie_handling, started_at, completed_at, visibility_mode, flight_group_id::text AS flight_group_id, - bbb_sweep_bonus_enabled, shamble_best_n, allowance_override::text AS allowance_override + bbb_sweep_bonus_enabled, shamble_best_n, scramble_solo_individual_pct, + allowance_override::text AS allowance_override FROM round WHERE id = $1 """, round_id, @@ -1215,7 +1321,7 @@ async def _load_round_out(conn, round_id: str, viewer_user_id: str) -> RoundOut: round_id, ) side_rows = await conn.fetch( - "SELECT id::text AS id, label FROM round_side WHERE round_id = $1 ORDER BY id", round_id + "SELECT id::text AS id, label, side_role FROM round_side WHERE round_id = $1 ORDER BY id", round_id ) # Viewer-relativt (ADR-036 fase 3-utvidelsen 2026-07-26): en lenket # medspiller som ser SIN EGEN "Egne runder"-liste skal se SIN EGEN @@ -1297,6 +1403,7 @@ async def _load_round_out(conn, round_id: str, viewer_user_id: str) -> RoundOut: skins_tie_handling=round_row["skins_tie_handling"], bbb_sweep_bonus_enabled=round_row["bbb_sweep_bonus_enabled"], shamble_best_n=round_row["shamble_best_n"], + scramble_solo_individual_pct=round_row["scramble_solo_individual_pct"], started_at=round_row["started_at"].isoformat() if round_row["started_at"] else None, completed_at=round_row["completed_at"].isoformat() if round_row["completed_at"] else None, participants=[RoundParticipantOut(**dict(r)) for r in participant_rows], @@ -1316,6 +1423,22 @@ async def _load_round_out(conn, round_id: str, viewer_user_id: str) -> RoundOut: ) +async def _individual_round_hole_needed(conn, play_format: str, round_side_id: str | None) -> bool: + """Trenger denne deltakeren egne individuelle round_hole-rader, eller + leser/skriver den via en delt side-rad i stedet? For de fleste to-sidede + formater er dette EN fast egenskap ved formatet (SIDE_IS_UNIT). For + scramble_solo-familien (migrasjon 056/057) avhenger det av HVILKEN + side -- laget deler ALLTID siden sine round_hole-rader (samme som + foursome/scramble), individualsiden trenger ALLTID egne (samme som + singles).""" + if play_format in _SCRAMBLE_SOLO_FORMATS: + if round_side_id is None: + return True # ukjent side ennå -- samme trygge standard som resten av formatet + side_role = await conn.fetchval("SELECT side_role FROM round_side WHERE id = $1", round_side_id) + return side_role != "team" + return _ROUND_FORMAT_TO_ENGINE_FORMAT.get(play_format, play_format) not in SIDE_IS_UNIT + + async def _create_participant( conn, round_id: str, @@ -1442,8 +1565,8 @@ async def create_round( personal_course_id, course_name_snapshot, tee_name_snapshot, played_at, start_hole, holes_planned, started_at, name, play_format, skins_scoring, skins_tie_handling, visibility_mode, flight_group_id, - bbb_sweep_bonus_enabled, shamble_best_n, allowance_override) - VALUES ($1, $2, $3, $4, $5, $6, $7, $8, $9, $10, $11, $12, $13, $14, $15, $16, $17, $18, $19, $20::jsonb) + bbb_sweep_bonus_enabled, shamble_best_n, scramble_solo_individual_pct, allowance_override) + VALUES ($1, $2, $3, $4, $5, $6, $7, $8, $9, $10, $11, $12, $13, $14, $15, $16, $17, $18, $19, $20, $21::jsonb) RETURNING id::text AS id """, user.user_id, @@ -1465,6 +1588,7 @@ async def create_round( body.flight_group_id, body.bbb_sweep_bonus_enabled, body.shamble_best_n, + body.scramble_solo_individual_pct, json.dumps(body.allowance_override) if body.allowance_override is not None else None, ) round_id = round_row["id"] @@ -1475,8 +1599,7 @@ async def create_round( gender=owner_row["gender"], handicap_index=owner_row["handicap_index"], stat_level=body.stat_level, exclude_from_handicap=body.exclude_owner_from_handicap, - individual_round_hole=_ROUND_FORMAT_TO_ENGINE_FORMAT.get(body.play_format, body.play_format) - not in SIDE_IS_UNIT, + individual_round_hole=await _individual_round_hole_needed(conn, body.play_format, None), ) if body.visibility_mode == "friends" and body.visible_categories: @@ -2197,7 +2320,8 @@ class RoundUpdate(BaseModel): # å validere her. play_format: Literal[ "stroke", "match", "skins", "fourball", "foursome", "greensome", "scramble_2", "scramble_4", "stableford", - "chapman", "copenhagen", "bbb", "flag", "shamble", "money_ball", "high_low_high", + "chapman", "copenhagen", "bbb", "flag", "shamble", "money_ball", "high_low_high", "scramble_solo", + "scramble_solo_match", ] | None = None # Utslagstidspunkt og "Ferdig"-tidspunkt -- begge kan justeres i # etterkant (f.eks. glemte å trykke "Fullfør runde" før flere timer @@ -2228,6 +2352,9 @@ class RoundUpdate(BaseModel): # Rører ALDRI course_handicap_snapshot, men regner playing_handicap på # nytt for allerede tildelte sider (se update_round). allowance_override: dict | None = None + # KUN meningsfullt for play_format='scramble_solo' (migrasjon 056) -- + # samme "None = ikke rør"-konvensjon som resten av denne modellen. + scramble_solo_individual_pct: int | None = Field(default=None, ge=0, le=100) @router.patch("/rounds/{round_id}", response_model=RoundOut) @@ -2335,6 +2462,12 @@ async def update_round( round_id, json.dumps(body.allowance_override), ) + if body.scramble_solo_individual_pct is not None: + await conn.execute( + "UPDATE round SET scramble_solo_individual_pct = $2 WHERE id = $1", + round_id, + body.scramble_solo_individual_pct, + ) if body.started_at is not None: await conn.execute("UPDATE round SET started_at = $2 WHERE id = $1", round_id, body.started_at) if body.completed_at is not None: @@ -2402,6 +2535,14 @@ async def update_round( effective_play_format = body.play_format if body.play_format is not None else round_row["play_format"] if effective_play_format in _TWO_SIDED_FORMATS: await _recompute_side_handicaps(conn, round_id, effective_play_format) + # scramble_solo-familien (migrasjon 056/057) bruker aldri + # allowance_override -- egen trigger på sin egen kolonne i + # stedet, samme "regn på nytt for allerede tildelte sider"- + # prinsipp som over. + if body.scramble_solo_individual_pct is not None: + effective_play_format = body.play_format if body.play_format is not None else round_row["play_format"] + if effective_play_format in _SCRAMBLE_SOLO_FORMATS: + await _recompute_scramble_solo_handicaps(conn, round_id) result = await _load_round_out(conn, round_id, user.user_id) @@ -2489,7 +2630,7 @@ async def add_participant( raise app_error(403, "NOT_AUTHORIZED", "Du eier ikke denne runden.") if body.round_side_id is not None: - if round_row["play_format"] not in _TWO_SIDED_FORMATS: + if round_row["play_format"] not in (_TWO_SIDED_FORMATS | _ASYMMETRIC_SIDE_FORMATS): raise app_error(400, "VALIDATION_FAILED", "Denne spilleformen bruker ikke sider.") side_exists = await conn.fetchval( "SELECT 1 FROM round_side WHERE id = $1 AND round_id = $2", body.round_side_id, round_id @@ -2547,13 +2688,15 @@ async def add_participant( guest_email=body.guest_email, exclude_from_handicap=body.exclude_from_handicap, round_side_id=body.round_side_id, - individual_round_hole=_ROUND_FORMAT_TO_ENGINE_FORMAT.get( - round_row["play_format"], round_row["play_format"] - ) - not in SIDE_IS_UNIT, + individual_round_hole=await _individual_round_hole_needed( + conn, round_row["play_format"], body.round_side_id + ), ) if body.round_side_id is not None: - await _recompute_side_handicaps(conn, round_id, round_row["play_format"]) + if round_row["play_format"] in _SCRAMBLE_SOLO_FORMATS: + await _recompute_scramble_solo_handicaps(conn, round_id) + else: + await _recompute_side_handicaps(conn, round_id, round_row["play_format"]) # Rundevarsel (2026-07-28) -- bevisst ETTER at transaksjonen er # begått, samme mønster som create_round/complete_round (en @@ -2598,6 +2741,10 @@ async def add_participant( class RoundSideCreate(BaseModel): label: str | None = Field(default=None, max_length=100) + # KUN meningsfullt (og påkrevd) når play_format='scramble_solo' + # (migrasjon 056) -- hvilken av de to strukturelt ulike sidene dette + # er. None for alle andre to-sidede formater, som ikke skiller sidene. + side_role: Literal["team", "individual"] | None = None @router.post("/rounds/{round_id}/sides", response_model=RoundSideOut, status_code=201) @@ -2613,25 +2760,44 @@ async def create_round_side( "personal_course_id, completed_at FROM round WHERE id = $1", round_id, ) - if round_row["play_format"] not in _TWO_SIDED_FORMATS: + is_scramble_solo = round_row["play_format"] in _SCRAMBLE_SOLO_FORMATS + if round_row["play_format"] not in (_TWO_SIDED_FORMATS | _ASYMMETRIC_SIDE_FORMATS): raise app_error(400, "VALIDATION_FAILED", "Denne spilleformen bruker ikke sider.") if round_row["completed_at"] is not None: raise app_error(409, "ALREADY_COMPLETED", "Runden er allerede fullført.") existing_count = await conn.fetchval("SELECT count(*) FROM round_side WHERE round_id = $1", round_id) if existing_count >= 2: raise app_error(409, "LIMIT_REACHED", "En runde kan maks ha to sider.") + if is_scramble_solo: + if body.side_role is None: + raise app_error(400, "VALIDATION_FAILED", "side_role ('team'/'individual') er påkrevd for denne spilleformen.") + role_taken = await conn.fetchval( + "SELECT 1 FROM round_side WHERE round_id = $1 AND side_role = $2", round_id, body.side_role + ) + if role_taken: + raise app_error(409, "DUPLICATE", f"Runden har allerede en side med rollen '{body.side_role}'.") + elif body.side_role is not None: + raise app_error(400, "VALIDATION_FAILED", "side_role gir kun mening for scramble mot enkeltspiller-formatene.") async with conn.transaction(): side_row = await conn.fetchrow( - "INSERT INTO round_side (round_id, label) VALUES ($1, $2) RETURNING id::text AS id, label", - round_id, body.label, + "INSERT INTO round_side (round_id, label, side_role) VALUES ($1, $2, $3) " + "RETURNING id::text AS id, label, side_role", + round_id, body.label, body.side_role, ) # Delt-ball-formater (ADR-039 Beslutning C): siden får sine # round_hole-rader med en gang -- rating trengs ikke her, kun # par/stroke-index-snapshot, uavhengig av om siden har fått - # noen deltakere ennå. - engine_format = _ROUND_FORMAT_TO_ENGINE_FORMAT[round_row["play_format"]] - if engine_format in SIDE_IS_UNIT: + # noen deltakere ennå. scramble_solo (migrasjon 056) er IKKE i + # _ROUND_FORMAT_TO_ENGINE_FORMAT (bevisst -- se _ASYMMETRIC_ + # SIDE_FORMATS-kommentaren), så avgjør delt-ball KUN av + # side_role for dette formatet i stedet for et format-bredt + # engine_format-oppslag: kun lagsiden får delt-ball-rader. + wants_shared_hole = ( + body.side_role == "team" if is_scramble_solo + else _ROUND_FORMAT_TO_ENGINE_FORMAT[round_row["play_format"]] in SIDE_IS_UNIT + ) + if wants_shared_hole: resolved = await _resolve_round_course(round_row) for hole_number, par, stroke_index in resolved.holes: await conn.execute( @@ -2817,13 +2983,20 @@ async def update_participant( if "round_side_id" in updates: new_side_id = updates["round_side_id"] if new_side_id is not None: - if current["play_format"] not in _TWO_SIDED_FORMATS: + if current["play_format"] not in (_TWO_SIDED_FORMATS | _ASYMMETRIC_SIDE_FORMATS): raise app_error(400, "VALIDATION_FAILED", "Denne spilleformen bruker ikke sider.") side_exists = await conn.fetchval( "SELECT 1 FROM round_side WHERE id = $1 AND round_id = $2", new_side_id, round_id ) if not side_exists: raise app_error(404, "NOT_FOUND", "Siden finnes ikke på denne runden.") + # scramble_solo (migrasjon 056), kjent v1-begrensning: et + # BYTTE av side_role (lag<->individuell) etter opprettelse + # oppdaterer IKKE round_hole-eierskapet retroaktivt (satt + # kun ved _create_participant-tidspunktet) -- flytting + # innad i SAMME rolle (f.eks. bytte hvilket lag) er + # uproblematisk. Ikke håndtert her, samme aksepterte- + # begrensning-mønster som Nassaus runaway-margin-kvirk. await _check_side_capacity(conn, new_side_id, current["play_format"], exclude_participant_id=participant_id) values.append(new_side_id) set_clauses.append(f"round_side_id = ${len(values)}") @@ -2899,7 +3072,9 @@ async def update_participant( # nytt, siden det opprinnelige triggeret kun så på round_side_id -- # laget lignende resultatet permanent "ikke klart" til siden ble # rørt på nytt. rating_changed dekker nå samme sak. - if ( + if ("round_side_id" in updates or rating_changed) and current["play_format"] in _SCRAMBLE_SOLO_FORMATS: + await _recompute_scramble_solo_handicaps(conn, round_id) + elif ( ("round_side_id" in updates or rating_changed) and current["play_format"] in _TWO_SIDED_FORMATS ): @@ -3335,6 +3510,14 @@ class RoundFormatResultOut(BaseModel): # FAKTISKE tallene til visning (f.eks. "2-1"). hlh_points_a: int | None = None hlh_points_b: int | None = None + # Scramble mot enkeltspiller (migrasjon 056, 2026-08-05): rene netto- + # totalsummer, INGEN match-play-tilstand -- side "a" er alltid LAGET, + # side "b" er alltid INDIVIDUALSPILLEREN (fast, ikke id-sortert som + # resten -- rollen er entydig, ikke vilkårlig). scramble_solo_margin + # er net_stroke_play_margin(team, individual): positiv = laget leder. + scramble_solo_team_net: int | None = None + scramble_solo_individual_net: int | None = None + scramble_solo_margin: int | None = None # Hull-for-hull-forløp (2026-07-28, "hvorfor ble resultatet som det ble" -- # brutto/netto/slag-mottatt per enhet, ikke bare et vinn/tap-merke). # None når ready=False (to-sidede formater) -- ellers alltid satt, @@ -3459,6 +3642,287 @@ async def _build_high_low_high_result(conn, round_id: str, round_row) -> RoundFo ) +async def _build_scramble_solo_result(conn, round_id: str, round_row) -> RoundFormatResultOut: + """Scramble mot enkeltspiller, slagspill (migrasjon 056, 2026-08-05) -- + passer IKKE inn i den generiske to-siders-grenen under (den forutsetter + ÉN engine_format/_SIDE_PLAYER_COUNT for HELE formatet og går via + compute_match_state) -- egen, selvstendig sti, samme mønster som High- + low-high/Shamble/Money Ball sine dedikerte grener. REN netto-totalsum- + sammenligning (net_stroke_play_margin), INGEN hull-for-hull-tilstand. + Beregnes ved LESING, ingen cache-kolonne (som Nassau/High-low-high). + """ + side_rows = await conn.fetch( + "SELECT id::text AS id, label, side_role FROM round_side WHERE round_id = $1", round_id + ) + team_side = next((s for s in side_rows if s["side_role"] == "team"), None) + individual_side = next((s for s in side_rows if s["side_role"] == "individual"), None) + if team_side is None or individual_side is None: + return RoundFormatResultOut(play_format="scramble_solo", ready=False) + + team_participants = await conn.fetch( + "SELECT id::text AS id, playing_handicap, COALESCE(guest_name, " + "(SELECT display_name FROM app_user WHERE id = round_participant.user_id), 'Medspiller') AS label " + "FROM round_participant WHERE round_side_id = $1", + team_side["id"], + ) + individual_participant = await conn.fetchrow( + "SELECT id::text AS id, playing_handicap, COALESCE(guest_name, " + "(SELECT display_name FROM app_user WHERE id = round_participant.user_id), 'Medspiller') AS label " + "FROM round_participant WHERE round_side_id = $1", + individual_side["id"], + ) + if ( + len(team_participants) < 2 + or any(p["playing_handicap"] is None for p in team_participants) + or individual_participant is None + or individual_participant["playing_handicap"] is None + ): + return RoundFormatResultOut(play_format="scramble_solo", ready=False) + + team_playing_handicap = team_participants[0]["playing_handicap"] # samme verdi lagret på alle lagmedlemmer + individual_playing_handicap = individual_participant["playing_handicap"] + + all_18_si_by_hole: dict[int, int] = {} + par_by_hole: dict[int, int] = {} + team_gross_by_hole: dict[int, int] = {} + individual_gross_by_hole: dict[int, int] = {} + + team_hole_rows = await conn.fetch( + "SELECT hole_number, par, stroke_index, played, score FROM round_hole WHERE round_side_id = $1", + team_side["id"], + ) + individual_hole_rows = await conn.fetch( + "SELECT hole_number, par, stroke_index, played, score FROM round_hole WHERE round_participant_id = $1", + individual_participant["id"], + ) + for r in team_hole_rows: + all_18_si_by_hole[r["hole_number"]] = r["stroke_index"] + par_by_hole[r["hole_number"]] = r["par"] + if r["played"] and r["score"] is not None: + team_gross_by_hole[r["hole_number"]] = r["score"] + for r in individual_hole_rows: + all_18_si_by_hole.setdefault(r["hole_number"], r["stroke_index"]) + par_by_hole.setdefault(r["hole_number"], r["par"]) + if r["played"] and r["score"] is not None: + individual_gross_by_hole[r["hole_number"]] = r["score"] + if len(all_18_si_by_hole) != 18: + return RoundFormatResultOut(play_format="scramble_solo", ready=False) + all_18_si = [all_18_si_by_hole[h] for h in range(1, 19)] + + team_strokes_per_hole = dict( + zip(range(1, 19), allocate_over_played_holes(team_playing_handicap, all_18_si, list(range(1, 19)))) + ) + individual_strokes_per_hole = dict( + zip(range(1, 19), allocate_over_played_holes(individual_playing_handicap, all_18_si, list(range(1, 19)))) + ) + + play_order = _round_hole_order(round_row["start_hole"], round_row["holes_planned"]) + team_label = team_side["label"] or "Laget" + individual_label = individual_side["label"] or individual_participant["label"] + + team_gross_played: list[int] = [] + team_received_played: list[int] = [] + individual_gross_played: list[int] = [] + individual_received_played: list[int] = [] + holes: list[FormatHoleOut] = [] + for h in play_order: + if h not in team_gross_by_hole or h not in individual_gross_by_hole: + break + team_gross = team_gross_by_hole[h] + individual_gross = individual_gross_by_hole[h] + team_received = team_strokes_per_hole[h] + individual_received = individual_strokes_per_hole[h] + team_gross_played.append(team_gross) + team_received_played.append(team_received) + individual_gross_played.append(individual_gross) + individual_received_played.append(individual_received) + team_net = team_gross - team_received + individual_net = individual_gross - individual_received + holes.append( + FormatHoleOut( + hole_number=h, par=par_by_hole[h], stroke_index=all_18_si_by_hole[h], + entries=[ + FormatHoleEntry( + id=team_side["id"], label=team_label, side="a", + gross=team_gross, net=team_net, strokes_received=team_received, + ), + FormatHoleEntry( + id=individual_participant["id"], label=individual_label, side="b", + gross=individual_gross, net=individual_net, strokes_received=individual_received, + ), + ], + result=("a" if team_net < individual_net else "b" if individual_net < team_net else "halved"), + ) + ) + + if not holes: + return RoundFormatResultOut(play_format="scramble_solo", ready=True, holes=[]) + + team_net_total = stroke_play_net_total(team_gross_played, team_received_played) + individual_net_total = stroke_play_net_total(individual_gross_played, individual_received_played) + return RoundFormatResultOut( + play_format="scramble_solo", + ready=True, + scramble_solo_team_net=team_net_total, + scramble_solo_individual_net=individual_net_total, + scramble_solo_margin=net_stroke_play_margin(team_net_total, individual_net_total), + holes=holes, + ) + + +async def _build_scramble_solo_match_result(conn, round_id: str, round_row) -> RoundFormatResultOut: + """Scramble mot enkeltspiller, MATCHSPILL (migrasjon 057, 2026-08-05) -- + samme asymmetriske lag-/individual-oppsett og samme blandede hull- + oppslag (round_side_id for laget, round_participant_id for + individualspilleren) som _build_scramble_solo_result over, men + sammenligningen er nå ekte matchspill: RELATIVE slag via + match_play_strokes([lag, individualspiller]) i stedet for hver sides + fulle allowance uavhengig (standard matchspill-konvensjon, samme + prinsipp som foursome/chapman/fourball allerede bruker) -- deretter + hull-for-hull HoleResult inn i compute_match_state, IKKE en netto + totalsum. Beregnes ved LESING, ingen cache-kolonne (som Nassau/ + High-low-high/scramble_solo).""" + side_rows = await conn.fetch( + "SELECT id::text AS id, label, side_role FROM round_side WHERE round_id = $1", round_id + ) + team_side = next((s for s in side_rows if s["side_role"] == "team"), None) + individual_side = next((s for s in side_rows if s["side_role"] == "individual"), None) + if team_side is None or individual_side is None: + return RoundFormatResultOut(play_format="scramble_solo_match", ready=False) + + team_participants = await conn.fetch( + "SELECT id::text AS id, playing_handicap, COALESCE(guest_name, " + "(SELECT display_name FROM app_user WHERE id = round_participant.user_id), 'Medspiller') AS label " + "FROM round_participant WHERE round_side_id = $1", + team_side["id"], + ) + individual_participant = await conn.fetchrow( + "SELECT id::text AS id, playing_handicap, COALESCE(guest_name, " + "(SELECT display_name FROM app_user WHERE id = round_participant.user_id), 'Medspiller') AS label " + "FROM round_participant WHERE round_side_id = $1", + individual_side["id"], + ) + if ( + len(team_participants) < 2 + or any(p["playing_handicap"] is None for p in team_participants) + or individual_participant is None + or individual_participant["playing_handicap"] is None + ): + return RoundFormatResultOut(play_format="scramble_solo_match", ready=False) + + team_playing_handicap = team_participants[0]["playing_handicap"] # samme verdi lagret på alle lagmedlemmer + individual_playing_handicap = individual_participant["playing_handicap"] + # Matchspill-konvensjon (R&A Appendix C, samme som resten av appens + # to-sidede formater): RELATIVE slag, ikke hver sides fulle absolutte + # allowance uavhengig -- dette er den ENESTE forskjellen fra + # _build_scramble_solo_result sin handicap-håndtering. + team_relative, individual_relative = match_play_strokes([team_playing_handicap, individual_playing_handicap]) + + # "a"/"b" avgjøres av SORTERT side-id, IKKE en fast lag=a/individuell=b- + # tildeling -- samme konvensjon som ALLE andre to-sidede formater i + # appen (generiske grenen under bruker sorted(relative.keys()), High- + # low-high bruker sorted(by_side.keys())). round.sides hentes ALLTID + # `ORDER BY id` frontend-siden (_load_round_out), så frontend sin + # TwoSidedBoard/buildSideTeams (som brukes UENDRET for dette formatet, + # se new-round.tsx/round-leaderboard.tsx) forutsetter at backend sin + # "a" alltid er round.sides[0] -- en fast lag=a-tildeling ville gitt + # FEIL ledelsesfarge når laget tilfeldigvis IKKE er den lavest- + # sorterte UUID-en. + team_is_a = team_side["id"] < individual_side["id"] + team_side_label_tag: Literal["a", "b"] = "a" if team_is_a else "b" + individual_side_label_tag: Literal["a", "b"] = "b" if team_is_a else "a" + + all_18_si_by_hole: dict[int, int] = {} + par_by_hole: dict[int, int] = {} + team_gross_by_hole: dict[int, int] = {} + individual_gross_by_hole: dict[int, int] = {} + + team_hole_rows = await conn.fetch( + "SELECT hole_number, par, stroke_index, played, score FROM round_hole WHERE round_side_id = $1", + team_side["id"], + ) + individual_hole_rows = await conn.fetch( + "SELECT hole_number, par, stroke_index, played, score FROM round_hole WHERE round_participant_id = $1", + individual_participant["id"], + ) + for r in team_hole_rows: + all_18_si_by_hole[r["hole_number"]] = r["stroke_index"] + par_by_hole[r["hole_number"]] = r["par"] + if r["played"] and r["score"] is not None: + team_gross_by_hole[r["hole_number"]] = r["score"] + for r in individual_hole_rows: + all_18_si_by_hole.setdefault(r["hole_number"], r["stroke_index"]) + par_by_hole.setdefault(r["hole_number"], r["par"]) + if r["played"] and r["score"] is not None: + individual_gross_by_hole[r["hole_number"]] = r["score"] + if len(all_18_si_by_hole) != 18: + return RoundFormatResultOut(play_format="scramble_solo_match", ready=False) + all_18_si = [all_18_si_by_hole[h] for h in range(1, 19)] + + team_strokes_per_hole = dict( + zip(range(1, 19), allocate_over_played_holes(team_relative, all_18_si, list(range(1, 19)))) + ) + individual_strokes_per_hole = dict( + zip(range(1, 19), allocate_over_played_holes(individual_relative, all_18_si, list(range(1, 19)))) + ) + + play_order = _round_hole_order(round_row["start_hole"], round_row["holes_planned"]) + team_label = team_side["label"] or "Laget" + individual_label = individual_side["label"] or individual_participant["label"] + + hole_results: list[HoleResult] = [] + holes: list[FormatHoleOut] = [] + for h in play_order: + if h not in team_gross_by_hole or h not in individual_gross_by_hole: + break + team_gross = team_gross_by_hole[h] + individual_gross = individual_gross_by_hole[h] + team_received = team_strokes_per_hole[h] + individual_received = individual_strokes_per_hole[h] + team_net = team_gross - team_received + individual_net = individual_gross - individual_received + a_net, b_net = (team_net, individual_net) if team_is_a else (individual_net, team_net) + if a_net < b_net: + hole_results.append(HoleResult.SIDE_A) + elif b_net < a_net: + hole_results.append(HoleResult.SIDE_B) + else: + hole_results.append(HoleResult.HALVED) + holes.append( + FormatHoleOut( + hole_number=h, par=par_by_hole[h], stroke_index=all_18_si_by_hole[h], + entries=[ + FormatHoleEntry( + id=team_side["id"], label=team_label, side=team_side_label_tag, + gross=team_gross, net=team_net, strokes_received=team_received, + ), + FormatHoleEntry( + id=individual_participant["id"], label=individual_label, side=individual_side_label_tag, + gross=individual_gross, net=individual_net, strokes_received=individual_received, + ), + ], + result=_RESULT_LABEL[hole_results[-1]], + ) + ) + + if not holes: + return RoundFormatResultOut(play_format="scramble_solo_match", ready=True, holes=[]) + + state = compute_match_state(hole_results, total_holes=round_row["holes_planned"]) + return RoundFormatResultOut( + play_format="scramble_solo_match", + ready=True, + match_lead=state.lead, + match_holes_played=state.holes_played, + match_holes_remaining=state.holes_remaining, + match_is_closed=state.is_closed, + match_is_dormie=state.is_dormie, + match_status_text=state.describe(), + hole_results=[_RESULT_LABEL[r] for r in hole_results], + holes=holes, + ) + + async def _build_format_result(conn, round_id: str) -> RoundFormatResultOut: """Delt mellom den autentiserte GET og den offentlige/venn-gatede /public/rounds-varianten (ADR-036 fase 2) -- selve dataen er identisk, @@ -3473,6 +3937,12 @@ async def _build_format_result(conn, round_id: str) -> RoundFormatResultOut: if play_format == "high_low_high": return await _build_high_low_high_result(conn, round_id, round_row) + if play_format == "scramble_solo": + return await _build_scramble_solo_result(conn, round_id, round_row) + + if play_format == "scramble_solo_match": + return await _build_scramble_solo_match_result(conn, round_id, round_row) + if play_format in _TWO_SIDED_FORMATS: relative = await _relative_strokes_for_round(conn, round_id, play_format) if not relative: diff --git a/frontend/components/friend-profile.tsx b/frontend/components/friend-profile.tsx index 8bf9e18..a19e567 100644 --- a/frontend/components/friend-profile.tsx +++ b/frontend/components/friend-profile.tsx @@ -45,6 +45,8 @@ const FORMAT_LABELS: Record = { greensome: "Greensome", scramble_2: "Scramble (2)", scramble_4: "Scramble (4)", + scramble_solo: "Scramble mot enkeltspiller", + scramble_solo_match: "Scramble mot enkeltspiller (matchspill)", } const dateFormatter = new Intl.DateTimeFormat("no-NO", { day: "numeric", month: "long", year: "numeric" }) diff --git a/frontend/components/new-round.tsx b/frontend/components/new-round.tsx index 263e4e0..c7ae4eb 100644 --- a/frontend/components/new-round.tsx +++ b/frontend/components/new-round.tsx @@ -25,11 +25,14 @@ import { Globe, Lock, MapPin, + Minus, Pencil, Plus, Search, Sparkles, Trophy, + User, + UserPlus, Users, X, } from "lucide-react" @@ -93,7 +96,7 @@ type Player = { type Side = { id: string; label: string } -type S1Sub = "source" | "official-search" | "official-courses" | "own-search" | "own-create" | "fields" +type S1Sub = "source" | "official-search" | "official-courses" | "own-search" | "own-search-template" | "own-create" | "fields" // --- Formater ------------------------------------------------------------------ @@ -114,6 +117,8 @@ type FormatId = | "shamble" | "moneyball" | "highlowhigh" + | "scramblevssolo" + | "scramblevssolomatch" const FORMATS: { id: FormatId; label: string; desc: string }[] = [ { id: "slagspill", label: "Slagspill", desc: "Vanlig individuell runde." }, @@ -132,8 +137,27 @@ const FORMATS: { id: FormatId; label: string; desc: string }[] = [ { id: "shamble", label: "Shamble", desc: "2-4 spillere, alle slår ut, velger beste -- spiller så egen ball inn." }, { id: "moneyball", label: "Money Ball", desc: 'Fire spillere, én roterer som "money ball" per hull.' }, { id: "highlowhigh", label: "High-low-high", desc: "To lag à to -- høy mot høy, lav mot lav, per hull." }, + { + id: "scramblevssolo", + label: "Scramble mot enkeltspiller", + desc: "Et lag med delt ball (minst 2 spillere) mot én enkeltspiller — nettoscore avgjør.", + }, + { + id: "scramblevssolomatch", + label: "Scramble mot enkeltspiller (matchspill)", + desc: "Samme oppsett som over, men avgjort hull for hull i stedet for netto totalsum.", + }, ] +// Begge scramble-mot-enkeltspiller-variantene er BEVISST IKKE i dette +// settet -- de to sidene er strukturelt ulike (variabel lagstørrelse mot +// nøyaktig én individualspiller), ikke to like sider som resten av +// formatene her. Se app/routers/rounds.py sin _TWO_SIDED_FORMATS/ +// _SCRAMBLE_SOLO_FORMATS for samme skille på backend-siden. Egen samlet +// set siden begge variantene deler EKSAKT samme sideoppsett-UI +// (ScrambleVsSoloSides)/allowance-kontroll (SoloAllowanceControl)/ +// side_role-innsendingslogikk -- kun selve resultatvisningen skiller dem. +const SCRAMBLE_SOLO_VARIANTS = new Set(["scramblevssolo", "scramblevssolomatch"]) const TWO_SIDED = new Set([ "match", "fourball", "foursome", "greensome", "scramble2", "scramble4", "chapman", "highlowhigh", ]) @@ -148,7 +172,7 @@ const SIDE_IS_UNIT_FORMAT = new Set(["foursome", "greensome", "scrambl const ORDINARY_FORMATS = new Set(["slagspill", "stableford"]) function usesStep4(f: FormatId) { - return TWO_SIDED.has(f) || f === "moneyball" + return TWO_SIDED.has(f) || f === "moneyball" || SCRAMBLE_SOLO_VARIANTS.has(f) } // Wizardens FormatId -> ekte round.play_format-verdi (RoundCreate). @@ -169,6 +193,8 @@ const FORMAT_TO_API: Record = { shamble: "shamble", moneyball: "money_ball", highlowhigh: "high_low_high", + scramblevssolo: "scramble_solo", + scramblevssolomatch: "scramble_solo_match", } // Motsatt vei, brukt til å forhåndsutfylle format ved "legg til en flight // til" (playFormat kommer fra URL som en ekte API-verdi). @@ -332,6 +358,11 @@ export function NewRound() { // Step 1 const [s1Sub, setS1Sub] = useState("source") + // Hvor "own-create" skal gå TILBAKE til (2026-08-05) -- avhenger av om + // brukeren kom fra det vanlige "finn en bane å spille"-søket, fra + // mal-søket ("Basér på en eksisterende bane" inne i opprett-skjemaet), + // eller broen fra offisielle baner. + const [ownCreateOrigin, setOwnCreateOrigin] = useState("own-search") const [courseSource, setCourseSource] = useState<"official" | "own">("official") const [selectedClub, setSelectedClub] = useState(null) const [course, setCourse] = useState(null) @@ -353,6 +384,7 @@ export function NewRound() { const [skinsTie, setSkinsTie] = useState<"roll" | "split">("roll") const [bbbBonus, setBbbBonus] = useState(false) const [shambleBest, setShambleBest] = useState(2) + const [soloAllowance, setSoloAllowance] = useState(100) const [advOpen, setAdvOpen] = useState(false) const [useHcp, setUseHcp] = useState(true) const [useCourseHcp, setUseCourseHcp] = useState(true) @@ -464,8 +496,10 @@ export function NewRound() { setS1Sub("official-search") } else if (s1Sub === "own-search") { setS1Sub("source") + } else if (s1Sub === "own-search-template") { + setS1Sub("own-create") } else if (s1Sub === "own-create") { - setS1Sub("own-search") + setS1Sub(ownCreateOrigin) } else if (s1Sub === "fields") { setS1Sub(courseSource === "official" ? "official-courses" : "own-search") } @@ -504,6 +538,7 @@ export function NewRound() { skins_tie_handling: format === "skins" ? (skinsTie === "roll" ? "carry" : "split") : null, bbb_sweep_bonus_enabled: format === "bbb" ? bbbBonus : false, shamble_best_n: format === "shamble" ? shambleBest : null, + scramble_solo_individual_pct: SCRAMBLE_SOLO_VARIANTS.has(format) ? soloAllowance : 100, visibility_mode: visibility === "privat" ? "private" : visibility === "venner" ? "friends" : "public", visible_categories: visibility === "venner" ? Array.from(categories) : [], flight_group_id: flightGroupId || undefined, @@ -545,6 +580,29 @@ export function NewRound() { const created: { id: string } = await res.json() sideIdMap.set(side.id, created.id) } + } else if (SCRAMBLE_SOLO_VARIANTS.has(format)) { + // Asymmetrisk format (begge varianter, stroke- og matchspill) -- + // de to sidene er faste (ikke organisator-opprettet via + // CreateSideCard som TWO_SIDED-formatene), og trenger side_role + // (backend kan ellers ikke skille laget fra individualspilleren, + // se RoundSideCreate.side_role). Lokale player.sideId-verdier + // "team"/"solo" (satt av ScrambleVsSoloSides) mappes her til de + // ekte, nyopprettede side-id-ene. + const roles: { localId: "team" | "solo"; label: string; side_role: "team" | "individual" }[] = [ + { localId: "team", label: "Laget", side_role: "team" }, + { localId: "solo", label: "Individuell motstander", side_role: "individual" }, + ] + for (const { localId, label, side_role } of roles) { + const res = await fetch(`/rounds/${roundId}/sides`, { + method: "POST", + headers: { "Content-Type": "application/json" }, + credentials: "include", + body: JSON.stringify({ label, side_role }), + }) + if (!res.ok) throw new Error(`create side: ${res.status}`) + const created: { id: string } = await res.json() + sideIdMap.set(localId, created.id) + } } // Medspillere (alle unntatt eieren, som allerede finnes). @@ -589,7 +647,7 @@ export function NewRound() { // Eierens egen side-tildeling (PATCH -- eieren finnes allerede FØR // sidene ble opprettet over). - if (TWO_SIDED.has(format)) { + if (TWO_SIDED.has(format) || SCRAMBLE_SOLO_VARIANTS.has(format)) { const owner = players.find((p) => p.isOwner) const realSideId = owner?.sideId ? sideIdMap.get(owner.sideId) : undefined if (realSideId) { @@ -719,6 +777,7 @@ export function NewRound() { + )} {stepN === 5 && ( @@ -1022,6 +1090,7 @@ function HelperNote({ children }: { children: React.ReactNode }) { function Step1(props: { s1Sub: S1Sub setS1Sub: (s: S1Sub) => void + setOwnCreateOrigin: (s: S1Sub) => void selectedClub: OfficialClub | null setSelectedClub: (c: OfficialClub | null) => void setCourseSource: (s: "official" | "own") => void @@ -1039,7 +1108,7 @@ function Step1(props: { startHole: string setStartHole: (v: string) => void }) { - const { s1Sub, setS1Sub, selectedClub, setSelectedClub, setCourseSource, course, chooseCourse, ownGender } = props + const { s1Sub, setS1Sub, setOwnCreateOrigin, selectedClub, setSelectedClub, setCourseSource, course, chooseCourse, ownGender } = props const [resolvingClub, setResolvingClub] = useState(false) // "Bruk som mal"-broen (2026-08-04): forhåndsutfylling for own-create, // satt fra enten TeeOff-baneutvalget eller det offentlige bane-søket. @@ -1117,13 +1186,46 @@ function Step1(props: { onUseAsTemplate={(c) => { setTemplatePrefill({ values: { name: c.name, holes: c.templateHoles ?? [], tees: c.templateTees ?? [] } }) setCourseSource("own") + setOwnCreateOrigin("official-courses") setS1Sub("own-create") }} /> ) } + // Vanlig "finn en bane å spille"-søk (2026-08-05) -- IKKE "Bruk som mal + // for egen bane" her lenger. Den knappen hører hjemme der brukeren + // FAKTISK har sagt at målet er å OPPRETTE en ny bane (se + // "own-search-template" under, nådd fra "Basér på en eksisterende + // bane"-lenken inne i det blanke opprett-skjemaet) -- ikke i det + // vanlige søket der målet som oftest bare er å velge en bane å spille. if (s1Sub === "own-search") { + return ( + { + const res = await fetch(`/personal-courses/${picked.id}`, { credentials: "include" }) + if (!res.ok) return + const detail: ApiPersonalCourseDetail = await res.json() + chooseCourse( + { id: detail.id, name: detail.name, tees: apiTeesToTees(detail.tees) }, + { source: "custom", personalCourseId: detail.id }, + "own", + ) + }} + onCreate={() => { + setTemplatePrefill(null) + setOwnCreateOrigin("own-search") + setS1Sub("own-create") + }} + /> + ) + } + + // Mal-søk (2026-08-05) -- samme søkeskjerm som over, men nådd KUN fra + // "Basér på en eksisterende bane" inne i opprett-ny-bane-skjemaet, så + // "Bruk som mal for egen bane" er meningsfull her (brukeren har allerede + // sagt at målet er å opprette en ny bane). + if (s1Sub === "own-search-template") { return ( { @@ -1144,10 +1246,12 @@ function Step1(props: { values: { name: detail.name, holes: detail.holes, tees: detail.full_tees }, forkedFromId: detail.id, }) + setOwnCreateOrigin("own-search-template") setS1Sub("own-create") }} onCreate={() => { setTemplatePrefill(null) + setOwnCreateOrigin("own-search-template") setS1Sub("own-create") }} /> @@ -1160,6 +1264,7 @@ function Step1(props: { initial={templatePrefill?.values} forkedFromId={templatePrefill?.forkedFromId} onCreated={(created) => chooseCourse(created, { source: "custom", personalCourseId: created.id }, "own")} + onSearchTemplate={() => setS1Sub("own-search-template")} onCancel={() => { setTemplatePrefill(null) setS1Sub("own-search") @@ -1388,7 +1493,10 @@ function OwnSearch({ onCreate, }: { onSelect: (c: ApiPersonalCourse) => void - onUseAsTemplate: (c: ApiPersonalCourse) => void + // Kun satt når søket er nådd med hensikten å OPPRETTE en ny bane (se + // "own-search-template" i Step1) -- undefined i det vanlige "finn en + // bane å spille"-søket, som skjuler knappen under (2026-08-05). + onUseAsTemplate?: (c: ApiPersonalCourse) => void onCreate: () => void }) { const [query, setQuery] = useState("") @@ -1412,7 +1520,14 @@ function OwnSearch({ return (
- +
- + {onUseAsTemplate && ( + + )} ))} @@ -1515,11 +1632,17 @@ function OwnCreateStep({ initial, forkedFromId, onCreated, + onSearchTemplate, onCancel, }: { initial?: CourseTemplateValues forkedFromId?: string onCreated: (course: Course) => void + // "Basér på en eksisterende bane" (2026-08-05) -- kun tilbudt når skjemaet + // fortsatt er blankt (ingen mal valgt ennå); gir "Bruk som mal for egen + // bane" en riktig plassering: kun der brukeren FAKTISK har sagt at målet + // er å opprette en ny bane, ikke i det vanlige "finn en bane å spille"-søket. + onSearchTemplate?: () => void onCancel: () => void }) { const [name, setName] = useState(initial?.name ?? "") @@ -1603,6 +1726,16 @@ function OwnCreateStep({
+ {onSearchTemplate && !initial && ( + + )} + {error &&

{error}

}
@@ -1904,6 +2037,8 @@ function Step2(props: { setBbbBonus: (v: boolean) => void shambleBest: number setShambleBest: (v: number) => void + soloAllowance: number + setSoloAllowance: (v: number) => void advOpen: boolean setAdvOpen: (v: boolean) => void useHcp: boolean @@ -1918,7 +2053,7 @@ function Step2(props: { const { statLevel, setStatLevel, format, setFormat, holes, setHoles, matchExcludeHcp, setMatchExcludeHcp, skinsScoring, setSkinsScoring, skinsTie, setSkinsTie, - bbbBonus, setBbbBonus, shambleBest, setShambleBest, + bbbBonus, setBbbBonus, shambleBest, setShambleBest, soloAllowance, setSoloAllowance, advOpen, setAdvOpen, useHcp, setUseHcp, useCourseHcp, setUseCourseHcp, useMatchplayHcp, setUseMatchplayHcp, hcpPercent, setHcpPercent, } = props @@ -1977,45 +2112,49 @@ function Step2(props: { setBbbBonus={setBbbBonus} shambleBest={shambleBest} setShambleBest={setShambleBest} + soloAllowance={soloAllowance} + setSoloAllowance={setSoloAllowance} /> -
- - {advOpen && ( -
- - {useHcp && !ORDINARY_FORMATS.has(format) && ( - - )} - {useHcp && twoSided && ( -
- -

- Fordeler slagene som en differanse mellom sidene i stedet for hvert lags fulle handicap — slås av - spilles matchen med rå brutto/netto per side. -

-
- )} - {useHcp && ( -
- - setHcpPercent(e.target.value)} placeholder="Standard for format" className="h-14 rounded-2xl text-lg" /> -
- )} -
- )} -
+ {!SCRAMBLE_SOLO_VARIANTS.has(format) && ( +
+ + {advOpen && ( +
+ + {useHcp && !ORDINARY_FORMATS.has(format) && ( + + )} + {useHcp && twoSided && ( +
+ +

+ Fordeler slagene som en differanse mellom sidene i stedet for hvert lags fulle handicap — slås av + spilles matchen med rå brutto/netto per side. +

+
+ )} + {useHcp && ( +
+ + setHcpPercent(e.target.value)} placeholder="Standard for format" className="h-14 rounded-2xl text-lg" /> +
+ )} +
+ )} +
+ )}
@@ -2064,6 +2203,8 @@ function FormatConfig({ setBbbBonus, shambleBest, setShambleBest, + soloAllowance, + setSoloAllowance, }: { format: FormatId matchExcludeHcp: boolean @@ -2076,6 +2217,8 @@ function FormatConfig({ setBbbBonus: (v: boolean) => void shambleBest: number setShambleBest: (v: number) => void + soloAllowance: number + setSoloAllowance: (v: number) => void }) { if (format === "match") { return ( @@ -2152,6 +2295,10 @@ function FormatConfig({ return Nøyaktig 3 spillere. } + if (SCRAMBLE_SOLO_VARIANTS.has(format)) { + return + } + if (TWO_SIDED.has(format)) { return Du setter opp lagene i neste steg. } @@ -2159,6 +2306,83 @@ function FormatConfig({ return null } +// Kompakt 0-100 (steg 5) tallvelger for individualspillerens handicap- +// andel. Bevisst INGEN tilsvarende kontroll for lagsiden -- lagets +// handicap er alltid en fast beregning (TeamAverage), ikke konfigurerbar. +function SoloAllowanceControl({ + value, + onChange, +}: { + value: number + onChange: (v: number) => void +}) { + const STEP = 5 + const MIN = 0 + const MAX = 100 + + function clamp(n: number) { + if (!Number.isFinite(n)) return MIN + return Math.min(MAX, Math.max(MIN, n)) + } + function snap(n: number) { + return clamp(Math.round(n / STEP) * STEP) + } + + return ( +
+ +
+ + +
+ { + const digits = e.target.value.replace(/[^0-9]/g, "") + onChange(digits === "" ? MIN : clamp(Number(digits))) + }} + onBlur={() => onChange(snap(value))} + aria-describedby="solo-allowance-help" + className="h-14 rounded-2xl pr-10 text-center text-lg font-bold tabular-nums" + /> + +
+ + +
+

+ Hvor stor andel av egen handicap individualspilleren spiller med. Standard 100 % (full + handicap). +

+
+ ) +} + // --- Step 3: Spillere --------------------------------------------------------- function Step3({ @@ -2682,13 +2906,19 @@ function Step4({ setPlayers, sides, setSides, + roundStatLevel, }: { format: FormatId players: Player[] setPlayers: React.Dispatch> sides: Side[] setSides: React.Dispatch> + roundStatLevel: StatLevel }) { + if (SCRAMBLE_SOLO_VARIANTS.has(format)) { + return + } + if (format === "moneyball") { return (
@@ -2794,6 +3024,220 @@ function Step4({ ) } +// Asymmetrisk sideoppsett for "Scramble mot enkeltspiller": slot 1 (Laget) +// er en åpen liste (ingen øvre grense, "minst 2"-hint), slot 2 (Individuell +// motstander) er begrenset til nøyaktig én spiller. player.sideId bruker +// de faste literalene "team"/"solo" her (ikke en dynamisk opprettet Side- +// id som i den symmetriske Step4 over) -- submitWizard() oppretter de to +// ekte backend-sidene (med side_role) og mapper disse to nøklene til de +// virkelige side-id-ene ved innsending. +function ScrambleVsSoloSides({ + players, + setPlayers, + roundStatLevel, +}: { + players: Player[] + setPlayers: React.Dispatch> + roundStatLevel: StatLevel +}) { + const [addingTo, setAddingTo] = useState<"team" | "solo" | null>(null) + + const team = players.filter((p) => p.sideId === "team") + const solo = players.filter((p) => p.sideId === "solo") + const unplaced = players.filter((p) => p.sideId !== "team" && p.sideId !== "solo") + const soloFull = solo.length >= 1 + const teamOk = team.length >= 2 + + function assign(id: string, sideId: string | undefined) { + setPlayers((prev) => prev.map((p) => (p.id === id ? { ...p, sideId } : p))) + } + function addTo(sideId: "team" | "solo", p: Player) { + setPlayers((prev) => [...prev, { ...p, sideId }]) + setAddingTo(null) + } + + const existingNames = players.map((p) => p.name) + + return ( +
+ + + {/* Slot 1: Laget (åpen liste) */} +
+
+
+ + +

Laget

+
+ + {team.length} {team.length === 1 ? "spiller" : "spillere"} + +
+ +
+ {teamOk ? ( +
+ + {team.length > 0 && ( +
    + {team.map((p) => ( + assign(p.id, undefined)} + removeLabel={`Fjern ${p.name} fra laget`} + /> + ))} +
+ )} + + {addingTo === "team" ? ( + setAddingTo(null)} + onAdd={(p) => addTo("team", p)} + roundStatLevel={roundStatLevel} + existingNames={existingNames} + /> + ) : ( + setAddingTo("team")} /> + )} +
+ + {/* Slot 2: Individuell motstander (begrenset til 1) */} +
+
+ + +
+

Individuell motstander

+

Nøyaktig én spiller

+
+
+ + {soloFull ? ( +
    + {solo.map((p) => ( + assign(p.id, undefined)} + removeLabel={`Fjern ${p.name} som motstander`} + /> + ))} +
+ ) : addingTo === "solo" ? ( + setAddingTo(null)} + onAdd={(p) => addTo("solo", p)} + roundStatLevel={roundStatLevel} + existingNames={existingNames} + /> + ) : ( + setAddingTo("solo")} /> + )} +
+ + {/* Spillere i runden som ennå ikke er plassert på noen side */} + {unplaced.length > 0 && ( +
+ +
    + {unplaced.map((p) => ( +
  • + + {p.name} + + {!soloFull && ( + + )} +
  • + ))} +
+
+ )} +
+ ) +} + +function MemberRow({ + player, + onRemove, + removeLabel, +}: { + player: Player + onRemove: () => void + removeLabel: string +}) { + return ( +
  • + +
    + {player.name} + {player.hcp.trim() !== "" && ( + HCP {player.hcp} + )} +
    + +
  • + ) +} + +function AddAffordance({ label, onClick }: { label: string; onClick: () => void }) { + return ( + + ) +} + function CreateSideCard({ slot, onCreate, disabled }: { slot: number; onCreate: (label: string) => void; disabled: boolean }) { const [label, setLabel] = useState("") const fallback = slot === 0 ? "Side A" : "Side B" diff --git a/frontend/components/round-card.tsx b/frontend/components/round-card.tsx index 120dd81..cae78f5 100644 --- a/frontend/components/round-card.tsx +++ b/frontend/components/round-card.tsx @@ -41,6 +41,29 @@ const STATUS_CONFIG: Record = { completed: { label: "Fullført" }, } +// Egen lokal kopi per prosjektets konvensjon (liten duplisering fremfor +// cross-file-import, se samme mønster i round-detail.tsx/round-scorecard.tsx). +const FORMAT_LABELS: Record = { + stroke: "Slagspill", + stableford: "Stableford", + match: "Match", + skins: "Skins", + fourball: "Fourball", + foursome: "Foursome", + greensome: "Greensome", + scramble_2: "Scramble (2)", + scramble_4: "Scramble (4)", + chapman: "Chapman", + copenhagen: "Københavner", + bbb: "Bingo Bango Bongo", + flag: "Flaggturnering", + shamble: "Shamble", + money_ball: "Money Ball", + high_low_high: "High-low-high", + scramble_solo: "Scramble mot enkeltspiller", + scramble_solo_match: "Scramble mot enkeltspiller (matchspill)", +} + const dateFormatter = new Intl.DateTimeFormat("no-NO", { day: "numeric", month: "short", @@ -120,6 +143,9 @@ export function RoundCard({ round }: { round: Round }) { ? round.differential.toFixed(1).replace(".", ",") : null const showPersonalBest = round.status === "completed" && round.isPersonalBest === true + // Skjules for "stroke" (samme "kun avvik fra standardformatet er verdt en + // pille"-konvensjon som round-scorecard.tsx sin sammendrags-stripe). + const formatLabel = round.playFormat && round.playFormat !== "stroke" ? FORMAT_LABELS[round.playFormat] ?? round.playFormat : null // To-sidede formater (match/fourball/foursome/greensome/scramble, // 2026-07-29): vis matchStatus i stedet for rå slagtall -- brutto @@ -178,8 +204,15 @@ export function RoundCard({ round }: { round: Round }) {
    - - {STATUS_CONFIG[round.status].label} + + + {STATUS_CONFIG[round.status].label} + + {formatLabel && ( + + {formatLabel} + + )} {round.status === "active" && ( diff --git a/frontend/components/round-detail.tsx b/frontend/components/round-detail.tsx index 7fd6f39..d43d178 100644 --- a/frontend/components/round-detail.tsx +++ b/frontend/components/round-detail.tsx @@ -40,6 +40,7 @@ import { import { Badge } from "@/components/ui/badge" import { Button } from "@/components/ui/button" import { RoundLeaderboardMini } from "@/components/round-leaderboard" +import { ScrambleSoloResultView, type ScrambleSoloResult } from "@/components/scramble-solo-result" import { Input } from "@/components/ui/input" import { Label } from "@/components/ui/label" import { cn } from "@/lib/utils" @@ -193,6 +194,9 @@ type ApiParticipant = { type ApiSide = { id: string label: string | null + // KUN satt for scramble_solo (migrasjon 056) -- null for alle andre + // formater, som ikke skiller sidene fra hverandre strukturelt. + side_role: "team" | "individual" | null } type PersonMatch = { @@ -264,6 +268,14 @@ const TWO_SIDED_FORMATS = new Set([ "match", "fourball", "foursome", "greensome", "scramble_2", "scramble_4", "chapman", "high_low_high", ]) const SHARED_BALL_FORMATS = new Set(["foursome", "greensome", "scramble_2", "scramble_4", "chapman"]) +// Scramble mot enkeltspiller (migrasjon 056/057) -- HALVPARTEN delt-ball +// (laget deler ball via round_side_id) og HALVPARTEN individuell +// (motstanderen scorer per deltaker via round_participant_id). Passer +// derfor IKKE inn i SHARED_BALL_FORMATS sin alt-eller-ingenting-bryter -- +// se scrambleSoloTeamSideId lenger ned, som ruter KUN lagets spillere til +// SideScoreWizard, mens individualspilleren fortsatt bruker vanlig +// ScoringWizard. +const SCRAMBLE_SOLO_FORMATS = new Set(["scramble_solo", "scramble_solo_match"]) const SIDE_PLAYER_COUNT: Record = { match: 1, fourball: 2, @@ -291,6 +303,8 @@ const FORMAT_LABELS: Record = { shamble: "Shamble", money_ball: "Money Ball", high_low_high: "High-low-high", + scramble_solo: "Scramble mot enkeltspiller", + scramble_solo_match: "Scramble mot enkeltspiller (matchspill)", } // Flatt felt, egne tilleggsvisninger i FormatResultPanel -- ingen sider, // bruker vanlig individuell-ball scorekort/veiviser for selve registreringen. @@ -833,11 +847,29 @@ export function RoundDetail({ roundId }: { roundId: string }) { const activePlayer = players.find((p) => p.id === activePlayerId) ?? players[0] ?? null const apiHoles = activePlayerId ? holesByParticipant[activePlayerId] : undefined - const holes: Hole[] = (apiHoles ?? []).map((h) => ({ holeNumber: h.hole_number, par: h.par, index: h.stroke_index })) // Alltid en tallverdi å regne videre på selv rett etter mount, FØR // loadRound() har satt currentHole fra round.start_hole. const activeHole = currentHole ?? round?.start_hole ?? 1 - const hole = holes.find((h) => h.holeNumber === activeHole) ?? null + // Par/index for aktivt hull -- samme for ALLE deltakere/sider (samme + // bane), hentet fra HVILKEN SOM HELST kilde som allerede har lastet inn + // hullene sine (2026-08-05, erstatter en tidligere versjon som kun så på + // activePlayerId sin egen liste -- brøt permanent for scramble_solo sine + // lagspillere, som ALDRI får egne round_participant_id-keyede hull-rader + // siden laget deler ball via round_side_id. En aktiv spiller på laget + // ga derfor en evig tom `holes`-liste og en evig spinner). Samme mønster + // som delt-ball-formatenes side-baserte oppslag alltid har brukt, nå + // generalisert til å også dekke deltaker-baserte kilder. + const hole: Hole | null = (() => { + for (const list of Object.values(holesByParticipant)) { + const h = list.find((x) => x.hole_number === activeHole) + if (h) return { holeNumber: h.hole_number, par: h.par, index: h.stroke_index } + } + for (const s of round?.sides ?? []) { + const h = holesBySide[s.id]?.find((x) => x.hole_number === activeHole) + if (h) return { holeNumber: h.hole_number, par: h.par, index: h.stroke_index } + } + return null + })() // Navigasjonsrekkefølge starter på øktens starthull og går rundt // (sirkulært over 18 hull), men KUN så mange hull som runden faktisk @@ -902,36 +934,60 @@ export function RoundDetail({ roundId }: { roundId: string }) { // siste spiller på hullet -- bytter til NESTE spiller i rekkefølgen (samme // veiviser, nullstilt til steg 1), eller -- er aktiv spiller den siste -- // lukker veiviseren og går videre til neste hull, klar for spiller 1 igjen. - function advanceWizardPlayer() { - const idx = players.findIndex((p) => p.id === wizardPlayerId) - const isLast = idx === -1 || idx === players.length - 1 - if (!isLast) { - const next = players[idx + 1] - setActivePlayerId(next.id) - setWizardPlayerId(next.id) - } else { - setWizardPlayerId(null) - setActivePlayerId(players[0]?.id ?? null) - goNext() - } - } - // ADR-039 Beslutning C -- delt-ball-formater (foursome/greensome/scramble) // scorer PER SIDE, ikke per spiller. Egen, enklere veiviser-tilstand og // -oppdatering (kun slagtall, ingen putt/detalj-steg -- gir ikke entydig // mening for en delt ball). const isSharedBall = round ? SHARED_BALL_FORMATS.has(round.play_format) : false + // Scramble mot enkeltspiller (2026-08-05) -- KUN lagets side, aldri + // individualspillerens (den fortsetter å bruke vanlig ScoringWizard/ + // wizardPlayerId). Null for alle andre formater. + const scrambleSoloTeamSideId = + round && SCRAMBLE_SOLO_FORMATS.has(round.play_format) + ? round.sides.find((s) => s.side_role === "team")?.id ?? null + : null const wizardSide = round?.sides.find((s) => s.id === wizardSideId) ?? null const wizardSideHole = wizardSideId ? (holesBySide[wizardSideId]?.find((h) => h.hole_number === activeHole) ?? null) : null - // Par/index for aktivt hull -- samme for begge sider (samme bane), henter - // fra hvilken som helst av de to som allerede har lastet inn hullene sine. - const sharedHole: Hole | null = (() => { - for (const s of round?.sides ?? []) { - const h = holesBySide[s.id]?.find((x) => x.hole_number === activeHole) - if (h) return { holeNumber: h.hole_number, par: h.par, index: h.stroke_index } + + // Felles klikk-håndtering for PlayerHoleCards/ScorecardGrid sine + // "Registrer X sin score"-kort (2026-08-05) -- for scramble mot + // enkeltspiller skal LAGETS spillere åpne den delte SideScoreWizard + // (samme lagscore for alle, keyet på round_side_id), mens + // individualspilleren fortsatt åpner den vanlige, per-deltaker + // ScoringWizard. Alle andre formater (ingen team-side) oppfører seg + // som før. + function openPlayerOrTeamSideEntry(playerId: string, holeNumber: number) { + setCurrentHole(holeNumber) + const player = players.find((p) => p.id === playerId) + if (scrambleSoloTeamSideId && player?.roundSideId === scrambleSoloTeamSideId) { + setWizardSideId(scrambleSoloTeamSideId) + return } - return null - })() + setActivePlayerId(playerId) + setWizardPlayerId(playerId) + } + + // Samlebånd-fremdrift (2026-07-26): kalles fra veiviserens siste steg for + // siste spiller på hullet -- bytter til NESTE spiller i rekkefølgen (samme + // veiviser, nullstilt til steg 1), eller -- er aktiv spiller den siste -- + // lukker veiviseren og går videre til neste hull, klar for spiller 1 igjen. + // Hopper over lagets spillere for scramble_solo (2026-08-05) -- de scorer + // ALDRI via denne per-deltaker-veiviseren (se scrambleSoloTeamSideId), så + // de skal aldri kunne bli et "neste"-mål her heller. + function advanceWizardPlayer() { + const chain = scrambleSoloTeamSideId ? players.filter((p) => p.roundSideId !== scrambleSoloTeamSideId) : players + const idx = chain.findIndex((p) => p.id === wizardPlayerId) + const isLast = idx === -1 || idx === chain.length - 1 + if (!isLast) { + const next = chain[idx + 1] + setActivePlayerId(next.id) + setWizardPlayerId(next.id) + } else { + setWizardPlayerId(null) + setActivePlayerId(chain[0]?.id ?? null) + goNext() + } + } // Auto-prompt "Fullfør runde" (2026-07-30): er ALLE hull ført for ALLE // deltakere (individuelle formater) eller for BEGGE sider (delt-ball) -- @@ -1002,6 +1058,16 @@ export function RoundDetail({ roundId }: { roundId: string }) { function advanceWizardSide() { if (!round) return + // Scramble mot enkeltspiller (2026-08-05): kun ÉN side er noensinne + // side-veiviser-styrt (laget) -- individualspilleren har sin egen, + // separate ScoringWizard-kjede (advanceWizardPlayer). Aldri "hopp til + // neste side" her, i motsetning til ekte delt-ball-formater der begge + // sider deler samme veiviser-kjede. + if (scrambleSoloTeamSideId) { + setWizardSideId(null) + goNext() + return + } const idx = round.sides.findIndex((s) => s.id === wizardSideId) const isLast = idx === -1 || idx === round.sides.length - 1 if (!isLast) { @@ -1459,7 +1525,7 @@ export function RoundDetail({ roundId }: { roundId: string }) { full begrunnelse. Gridet selv er UENDRET, bare flyttet til en "Vis hele scorekortet"-bryter under -- ingen informasjon er fjernet. */} - {holes.length === 0 ? ( + {hole === null ? (
    @@ -1481,11 +1547,7 @@ export function RoundDetail({ roundId }: { roundId: string }) { }} onPrevHole={goPrev} onNextHole={goNext} - onOpenEntry={(playerId, holeNumber) => { - setCurrentHole(holeNumber) - setActivePlayerId(playerId) - setWizardPlayerId(playerId) - }} + onOpenEntry={openPlayerOrTeamSideEntry} />
    @@ -1514,11 +1576,7 @@ export function RoundDetail({ roundId }: { roundId: string }) { setCurrentHole(n) scrollToHolePanel() }} - onOpenEntry={(playerId, holeNumber) => { - setCurrentHole(holeNumber) - setActivePlayerId(playerId) - setWizardPlayerId(playerId) - }} + onOpenEntry={openPlayerOrTeamSideEntry} />
    )} @@ -1534,12 +1592,12 @@ export function RoundDetail({ roundId }: { roundId: string }) { {/* Skjermovertagende scoringsveiviser (2026-07-26) -- rendres HELT UTENFOR
    , øverst i DOM-treet, slik at den dekker hele skjermen uavhengig av hvor langt man har skrollet i bakgrunnen. */} - {wizardSide && sharedHole && ( + {wizardSide && hole && ( p.roundSideId === wizardSide.id)} - hole={sharedHole} + hole={hole} score={wizardSideHole?.played ? wizardSideHole.score : null} selectedParticipantId={wizardSideHole?.selected_participant_id ?? null} onSave={updateWizardSideScore} @@ -2573,6 +2631,11 @@ type ApiFormatResult = { money_ball_team_score: number | null hlh_points_a: number | null hlh_points_b: number | null + // Scramble mot enkeltspiller (migrasjon 056) -- rene netto-totalsummer, + // side "a" = laget, side "b" = individualspilleren. margin > 0 = laget leder. + scramble_solo_team_net: number | null + scramble_solo_individual_net: number | null + scramble_solo_margin: number | null holes: ApiFormatHoleOut[] | null } @@ -2622,6 +2685,50 @@ function matchStillingByHole( // navn når nøyaktig én er tildelt siden (match, eller en komplett foursome- // side sett fra én spiller... nei, alltid nøyaktig 1 for match), ellers // sidens eget (evt. generiske) navn uten noen entydig HCP å vise. +// Samme adapter-logikk som round-leaderboard.tsx sin buildScrambleSoloResult +// (lokal kopi, prosjektets etablerte mønster) -- bygger ScrambleSoloResultView +// sin props-form fra det generiske ApiFormatResult-svaret. +function buildScrambleSoloResult(round: ApiRound, result: ApiFormatResult): ScrambleSoloResult { + const teamSide = round.sides.find((s) => s.side_role === "team") + const individualSide = round.sides.find((s) => s.side_role === "individual") + const firstHoleEntries = result.holes?.[0]?.entries ?? [] + const teamLabel = firstHoleEntries.find((e) => e.side === "a")?.label || teamSide?.label || "Laget" + const individualLabel = + firstHoleEntries.find((e) => e.side === "b")?.label || individualSide?.label || "Individuell motstander" + + const holes: ScrambleSoloResult["holes"] = (result.holes ?? []).map((h) => { + const teamEntry = h.entries.find((e) => e.side === "a") + const individualEntry = h.entries.find((e) => e.side === "b") + const holeResult: "a" | "b" | "halved" = h.result === "a" || h.result === "b" ? h.result : "halved" + return { + holeNumber: h.hole_number, + par: h.par, + strokeIndex: h.stroke_index, + result: holeResult, + team: { + gross: teamEntry?.gross ?? 0, + net: teamEntry?.net ?? 0, + strokesReceived: teamEntry?.strokes_received ?? 0, + }, + individual: { + gross: individualEntry?.gross ?? 0, + net: individualEntry?.net ?? 0, + strokesReceived: individualEntry?.strokes_received ?? 0, + }, + } + }) + + return { + ready: result.ready, + teamLabel, + individualLabel, + teamNet: result.scramble_solo_team_net, + individualNet: result.scramble_solo_individual_net, + margin: result.scramble_solo_margin, + holes, + } +} + function sideIdentity(round: ApiRound, players: Player[], side: "a" | "b"): { name: string; hcp: number | null } { const idx = side === "a" ? 0 : 1 const sideId = round.sides[idx]?.id @@ -3046,6 +3153,21 @@ function FormatResultPanel({ ) } + // Scramble mot enkeltspiller (migrasjon 056, 2026-08-05) -- netto + // slagspill-sammenligning, ikke matchspill -- MÅ avskjæres FØR den + // generiske to-sidede fallback-koden under, som forutsetter et + // symmetrisk match-play-format (ville krasjet/vist feil for dette + // formatet ellers). Gjenbruker samme ScrambleSoloResultView som den + // frittstående leaderboard-siden (round-leaderboard.tsx), ikke en egen + // kondensert visning. + if (round.play_format === "scramble_solo") { + return ( +
    + +
    + ) + } + // To-sidede formater (match/fourball/foursome/greensome/scramble/chapman). if (!result.ready) { return ( diff --git a/frontend/components/round-leaderboard.tsx b/frontend/components/round-leaderboard.tsx index cc3d98a..c238f3f 100644 --- a/frontend/components/round-leaderboard.tsx +++ b/frontend/components/round-leaderboard.tsx @@ -24,6 +24,7 @@ import { useEffect, useState } from "react" import Link from "next/link" import { ArrowLeft, ChevronDown, ChevronRight, Crown, Flag as FlagIcon, Trophy } from "lucide-react" import { cn } from "@/lib/utils" +import { ScrambleSoloResultView, type ScrambleSoloResult } from "@/components/scramble-solo-result" // --- API-typer --------------------------------------------------------------- @@ -65,6 +66,9 @@ type ApiRoundParticipant = { type ApiSide = { id: string label: string | null + // KUN satt for scramble_solo (migrasjon 056) -- null for alle andre + // formater, som ikke skiller sidene fra hverandre strukturelt. + side_role: "team" | "individual" | null } type ApiRoundHeader = { @@ -87,6 +91,16 @@ type ApiRoundHeader = { // derfor vist en tom/meningsløs liste for dem uansett. const TWO_SIDED_FORMATS = [ "match", "fourball", "foursome", "greensome", "scramble_2", "scramble_4", "chapman", + // scramble_solo_match (migrasjon 057) -- ekte hull-for-hull matchspill + // (compute_match_state på backend-siden), samme generiske match_lead/ + // match_holes_played/-remaining/is_closed/is_dormie-felter som resten + // av denne listen. Asymmetrisk lag-mot-individuell-struktur (IKKE + // fast antall spillere per side), men TwoSidedBoard/buildSideTeams + // grener allerede på FAKTISK antall spillere per side, ikke et fast + // tall -- bekreftet trygt å gjenbruke uendret. scramble_solo (stroke- + // varianten, migrasjon 056) er BEVISST IKKE her, se SCRAMBLE_SOLO_ + // FORMATS under. + "scramble_solo_match", ] // High-low-high er et SÆRTILFELLE av de to-sidede formatene -- IKKE et // hull-ledelse-konsept ("X UP"), se HighLowBoard. @@ -94,6 +108,11 @@ const HIGH_LOW_FORMATS = new Set(["high_low_high"]) // Shamble/Money Ball -- HELE runden er ETT lag, ikke to sider -- lagets // EGEN samlede hullscore + flight-gruppe-sammenligning, se TeamFlightBoard. const TEAM_RESULT_FORMATS = new Set(["shamble", "money_ball"]) +// Scramble mot enkeltspiller (migrasjon 056) -- BEVISST IKKE i +// TWO_SIDED_FORMATS: dette er netto SLAGSPILL-sammenligning +// (net_stroke_play_margin), ikke matchspill/hull-ledelse -- egen enkel +// visning, se ScrambleSoloResultView. +const SCRAMBLE_SOLO_FORMATS = new Set(["scramble_solo"]) // Bingo Bango Bongo/Københavner har egne poengsystem, uavhengig av rå // slagtall -- `ApiLeaderboardEntry.total_points` er ALLTID generisk // Stableford (backend regner den likt uansett format), FEIL for disse to. @@ -101,6 +120,28 @@ const FORMAT_OWN_POINTS_FIELD: Partial = { + stroke: "Slagspill", + stableford: "Stableford", + match: "Match", + skins: "Skins", + fourball: "Fourball", + foursome: "Foursome", + greensome: "Greensome", + scramble_2: "Scramble (2)", + scramble_4: "Scramble (4)", + chapman: "Chapman", + copenhagen: "Københavner", + bbb: "Bingo Bango Bongo", + flag: "Flaggturnering", + shamble: "Shamble", + money_ball: "Money Ball", + high_low_high: "High-low-high", + scramble_solo: "Scramble mot enkeltspiller", + scramble_solo_match: "Scramble mot enkeltspiller (matchspill)", +} const dateFormatter = new Intl.DateTimeFormat("no-NO", { day: "numeric", month: "long", year: "numeric" }) @@ -1059,6 +1100,12 @@ type ApiFormatResult = { money_ball_team_score: number | null hlh_points_a: number | null hlh_points_b: number | null + // Scramble mot enkeltspiller (migrasjon 056) -- rene netto-totalsummer, + // side "a" = laget, side "b" = individualspilleren (fast, se + // _build_scramble_solo_result). margin > 0 = laget leder. + scramble_solo_team_net: number | null + scramble_solo_individual_net: number | null + scramble_solo_margin: number | null holes: ApiFormatHole[] | null } @@ -1079,6 +1126,54 @@ function useFormatResult(roundId: string, refreshKey: number): ApiFormatResult | return result } +// Bygger ScrambleSoloResultView sin props-form fra det generiske +// ApiFormatResult-svaret. Hull-entryen sitt `label`-felt (satt av +// _build_scramble_solo_result til deltakerens/lagets faktiske +// visningsnavn) foretrekkes over sidens EGEN label (som bare er den +// faste "Laget"/"Individuell motstander"-teksten satt ved opprettelse, +// se new-round.tsx sin submitWizard) -- faller tilbake til sidens label +// når ingen hull er spilt ennå. +function buildScrambleSoloResult(round: ApiRoundHeader, formatResult: ApiFormatResult | null): ScrambleSoloResult { + const teamSide = round.sides.find((s) => s.side_role === "team") + const individualSide = round.sides.find((s) => s.side_role === "individual") + const firstHoleEntries = formatResult?.holes?.[0]?.entries ?? [] + const teamLabel = firstHoleEntries.find((e) => e.side === "a")?.label || teamSide?.label || "Laget" + const individualLabel = + firstHoleEntries.find((e) => e.side === "b")?.label || individualSide?.label || "Individuell motstander" + + const holes: ScrambleSoloResult["holes"] = (formatResult?.holes ?? []).map((h) => { + const teamEntry = h.entries.find((e) => e.side === "a") + const individualEntry = h.entries.find((e) => e.side === "b") + const result: "a" | "b" | "halved" = h.result === "a" || h.result === "b" ? h.result : "halved" + return { + holeNumber: h.hole_number, + par: h.par, + strokeIndex: h.stroke_index, + result, + team: { + gross: teamEntry?.gross ?? 0, + net: teamEntry?.net ?? 0, + strokesReceived: teamEntry?.strokes_received ?? 0, + }, + individual: { + gross: individualEntry?.gross ?? 0, + net: individualEntry?.net ?? 0, + strokesReceived: individualEntry?.strokes_received ?? 0, + }, + } + }) + + return { + ready: formatResult?.ready ?? false, + teamLabel, + individualLabel, + teamNet: formatResult?.scramble_solo_team_net ?? null, + individualNet: formatResult?.scramble_solo_individual_net ?? null, + margin: formatResult?.scramble_solo_margin ?? null, + holes, + } +} + type FlightSibling = { round_id: string; name: string | null; isAnchor: boolean; teamScore: number | null; par: number | null; through: number } function useFlightTeamStandings(roundId: string, playFormat: string, refreshKey: number) { @@ -1309,6 +1404,7 @@ export function RoundLeaderboard({ const isHighLow = HIGH_LOW_FORMATS.has(round.play_format) const isTwoSided = TWO_SIDED_FORMATS.includes(round.play_format) const isTeamResult = TEAM_RESULT_FORMATS.has(round.play_format) + const isScrambleSolo = SCRAMBLE_SOLO_FORMATS.has(round.play_format) const ownPointsField = FORMAT_OWN_POINTS_FIELD[round.play_format] return ( @@ -1329,8 +1425,15 @@ export function RoundLeaderboard({
    - - {round.name?.trim() || round.course_name_snapshot} + + + {round.name?.trim() || round.course_name_snapshot} + + {round.play_format !== "stroke" && ( + + {FORMAT_LABELS[round.play_format] ?? round.play_format} + + )} {round.name?.trim() ? `${round.course_name_snapshot} · ` : ""} @@ -1435,6 +1538,8 @@ export function RoundLeaderboard({ /> ) })() + ) : isScrambleSolo ? ( + !formatResult ? null : ) : ( (() => { const players = buildIndividualPlayers(leaderboard.entries, round.participants, holeOrder, viewerParticipantId, ownPointsField, formatResult) @@ -1468,16 +1573,21 @@ export function RoundLeaderboardMini({ roundId }: { roundId: string }) { if (!round || !leaderboard || round.participants.length < 2) return null // To-sidede formater (match/fourball/foursome/greensome/scramble/ - // high_low_high) vises allerede av FormatResultPanel rett under denne - // komponenten sitt kallsted i round-detail.tsx -- ingen individuell - // brutto-rangering å vise her. Shamble/Money Ball har heller ingen - // meningsfull individuell topp-3 -- lagets EGEN hullscore-sum er det - // som teller, vist i TeamFlightBoard på selve leaderboard-siden i - // stedet for en misvisende råscore-rangering her. + // high_low_high/scramble_solo_match) vises allerede av FormatResultPanel + // rett under denne komponenten sitt kallsted i round-detail.tsx -- ingen + // individuell brutto-rangering å vise her. Shamble/Money Ball har heller + // ingen meningsfull individuell topp-3 -- lagets EGEN hullscore-sum er + // det som teller, vist i TeamFlightBoard på selve leaderboard-siden i + // stedet for en misvisende råscore-rangering her. scramble_solo + // (stroke-varianten) har av samme grunn ingen meningsfull individuell + // rangering -- lag-mot-individuell netto-sammenligning vises av + // ScrambleSoloResultView i stedet (fikset her, opprinnelig glemt da + // scramble_solo ble bygget 2026-08-05). if ( TWO_SIDED_FORMATS.includes(round.play_format) || HIGH_LOW_FORMATS.has(round.play_format) || - TEAM_RESULT_FORMATS.has(round.play_format) + TEAM_RESULT_FORMATS.has(round.play_format) || + SCRAMBLE_SOLO_FORMATS.has(round.play_format) ) { return null } diff --git a/frontend/components/round-scorecard.tsx b/frontend/components/round-scorecard.tsx index 77d551e..c5d3a54 100644 --- a/frontend/components/round-scorecard.tsx +++ b/frontend/components/round-scorecard.tsx @@ -48,6 +48,9 @@ type ApiParticipant = { type ApiSide = { id: string label: string | null + // KUN satt for scramble_solo (migrasjon 056) -- null for alle andre + // formater, som ikke skiller sidene fra hverandre strukturelt. + side_role: "team" | "individual" | null } type ApiRound = { @@ -86,7 +89,17 @@ type ApiHole = { } const SHARED_BALL_FORMATS = ["foursome", "greensome", "scramble_2", "scramble_4", "chapman"] -const TWO_SIDED_FORMATS = ["match", "fourball", "high_low_high", ...SHARED_BALL_FORMATS] +// scramble_solo_match (migrasjon 057) lagt til her -- KUN denne bruken +// (isTwoSided) gater MatchScorecardGrid, som får sin egen dedikerte +// scramble-solo-familie-gren for å unngå dupliserte rader (se der). +// SHARED_BALL_FORMATS/isSharedBall RØRES bevisst ikke -- se +// SCRAMBLE_SOLO_FORMATS under for den egne, riktige klassifiseringen. +const TWO_SIDED_FORMATS = ["match", "fourball", "high_low_high", "scramble_solo_match", ...SHARED_BALL_FORMATS] +// Begge scramble-mot-enkeltspiller-variantene deler NØYAKTIG samme +// asymmetriske side-/enhetsstruktur (laget = side, individualspilleren = +// participant) -- kun selve resultat-sammenligningen skiller dem. Én +// samlet klassifisering brukt for alt UNNTATT selve resultatvisningen. +const SCRAMBLE_SOLO_FORMATS = new Set(["scramble_solo", "scramble_solo_match"]) const FORMAT_LABELS: Record = { stroke: "Slagspill", stableford: "Stableford", @@ -104,6 +117,8 @@ const FORMAT_LABELS: Record = { shamble: "Shamble", money_ball: "Money Ball", high_low_high: "High-low-high", + scramble_solo: "Scramble mot enkeltspiller", + scramble_solo_match: "Scramble mot enkeltspiller (matchspill)", } const dateFormatter = new Intl.DateTimeFormat("no-NO", { day: "numeric", month: "long", year: "numeric" }) @@ -778,22 +793,55 @@ function MatchScorecardGrid({ if (!result) return null const isSharedBall = SHARED_BALL_FORMATS.includes(round.play_format) + // scramble_solo_match (migrasjon 057) -- ÉN rad per SIDE (som + // delt-ball-grenen under), IKKE én per deltaker, siden laget kan ha + // vilkårlig mange medlemmer som alle deler samme TeamAverage-verdi -- + // uten denne egne grenen ville "else"-grenen under vist N dupliserte + // rader for laget. Individualsidens rad viser spillerens EGET navn + // (ikke bare sidens "Individuell motstander"-label) siden den siden + // alltid har nøyaktig én deltaker. + const isScrambleSoloMatch = SCRAMBLE_SOLO_FORMATS.has(round.play_format) - const rows: MatchRow[] = isSharedBall - ? round.sides.map((s, idx) => ({ - id: s.id, - side: idx === 0 ? "a" : ("b" as const), - label: s.label?.trim() || (idx === 0 ? "Side A" : "Side B"), - hcp: round.participants.find((p) => p.round_side_id === s.id)?.playing_handicap ?? null, - })) - : round.participants - .filter((p) => p.round_side_id) - .map((p) => ({ - id: p.id, - side: (p.round_side_id === round.sides[0]?.id ? "a" : "b") as "a" | "b", - label: participantLabel(p, viewerId), - hcp: p.playing_handicap, + const rows: MatchRow[] = isScrambleSoloMatch + ? round.sides.map((s, idx) => { + // side="a"/"b" er POSISJONELL (idx===0 -> "a"), samme sorterte- + // etter-id-konvensjon som backend sin _build_scramble_solo_match_ + // result bruker (round.sides hentes ALLTID `ORDER BY id`, samme + // sortering backend legger til grunn for "a"/"b"-tildelingen -- + // IKKE en fast lag=a/individuell=b-tildeling, som ville gitt feil + // ledelsesfarge når laget ikke er den lavest-sorterte UUID-en). + // row.id må for individualsiden være DELTAKERENS id (ikke sidens), + // siden FormatHoleEntry.id for den siden er individual_ + // participant["id"] på backend-siden -- ellers finner + // h.entries.find(e => e.id === row.id) under aldri en match. + const sideParticipants = round.participants.filter((p) => p.round_side_id === s.id) + const isTeam = s.side_role === "team" + const label = + !isTeam && sideParticipants.length === 1 + ? participantLabel(sideParticipants[0], viewerId) + : s.label?.trim() || (isTeam ? "Laget" : "Individuell motstander") + return { + id: isTeam ? s.id : (sideParticipants[0]?.id ?? s.id), + side: idx === 0 ? "a" : ("b" as const), + label, + hcp: sideParticipants[0]?.playing_handicap ?? null, + } + }) + : isSharedBall + ? round.sides.map((s, idx) => ({ + id: s.id, + side: idx === 0 ? "a" : ("b" as const), + label: s.label?.trim() || (idx === 0 ? "Side A" : "Side B"), + hcp: round.participants.find((p) => p.round_side_id === s.id)?.playing_handicap ?? null, })) + : round.participants + .filter((p) => p.round_side_id) + .map((p) => ({ + id: p.id, + side: (p.round_side_id === round.sides[0]?.id ? "a" : "b") as "a" | "b", + label: participantLabel(p, viewerId), + hcp: p.playing_handicap, + })) // Lagvis gruppering (2026-08-02, "det store grepet") -- individuell-ball- // formater (match/fourball) bygde tidligere rader i ren @@ -1079,6 +1127,19 @@ export function RoundScorecard({ const isSharedBall = SHARED_BALL_FORMATS.includes(data.play_format) setUnitId((prev) => { if (prev) return prev + // scramble_solo-familien (migrasjon 056/057) -- blandet enhetstype + // (laget = en SIDE, individualspilleren = en PARTICIPANT, se + // units-bygging under). Standardvalg: individualspillerens egen + // rad hvis DET er den spørrende brukeren, ellers lagsiden. + if (SCRAMBLE_SOLO_FORMATS.has(data.play_format)) { + const individualSide = data.sides.find((s) => s.side_role === "individual") + const individualParticipant = individualSide + ? data.participants.find((p) => p.round_side_id === individualSide.id) + : undefined + if (viewerId && individualParticipant?.user_id === viewerId) return individualParticipant.id + const teamSide = data.sides.find((s) => s.side_role === "team") + return teamSide?.id ?? data.sides[0]?.id ?? null + } if (isSharedBall) { const viewerParticipant = viewerId ? data.participants.find((p) => p.user_id === viewerId) : undefined return viewerParticipant?.round_side_id ?? data.sides[0]?.id ?? null @@ -1101,8 +1162,15 @@ export function RoundScorecard({ useEffect(() => { if (!unitId || !round) return - const isSharedBall = SHARED_BALL_FORMATS.includes(round.play_format) - const endpoint = isSharedBall + // scramble_solo (migrasjon 056) har BLANDEDE enhetstyper i samme + // fane-liste (laget = side, individualspilleren = participant) -- slå + // opp faktisk type fra selve unitId i stedet for et format-bredt + // isSharedBall-flagg, som ikke kan uttrykke en blanding. Denne + // oppslags-tilnærmingen er samtidig korrekt uendret for de rene + // delt-ball-/individuell-ball-formatene (alle enheter er da alltid + // den ene eller den andre typen). + const isSideUnit = round.sides.some((s) => s.id === unitId) + const endpoint = isSideUnit ? `/rounds/${roundId}/sides/${unitId}/holes` : `/rounds/${roundId}/participants/${unitId}/holes` let cancelled = false @@ -1140,12 +1208,14 @@ export function RoundScorecard({ const isSharedBall = SHARED_BALL_FORMATS.includes(round.play_format) const isTwoSided = TWO_SIDED_FORMATS.includes(round.play_format) const isSkins = round.play_format === "skins" + const isScrambleSolo = SCRAMBLE_SOLO_FORMATS.has(round.play_format) const formatLabel = FORMAT_LABELS[round.play_format] ?? round.play_format - // Delt-ball-formater trenger sidene opprettet (via runde-siden sin - // "Spillere og runde"-fane) FØR noe scorekort gir mening her -- vis en - // forklarende melding i stedet for en evig lastespinner. - if (isSharedBall && round.sides.length < 2) { + // Delt-ball-formater OG scramble_solo trenger sidene opprettet (via + // runde-siden sin "Spillere og runde"-fane) FØR noe scorekort gir + // mening her -- vis en forklarende melding i stedet for en evig + // lastespinner. + if ((isSharedBall || isScrambleSolo) && round.sides.length < 2) { return (
    {!embedded && ( @@ -1163,17 +1233,35 @@ export function RoundScorecard({ )}
    - {formatLabel} spilles med to sider (ett felles slagtall per side). Opprett sidene på selve - runde-siden (fanen "Spillere og runde") før scorekortet kan vises her. + {isScrambleSolo + ? `${formatLabel} krever at både laget og individualspilleren er satt opp som egne sider. Opprett dem på selve runde-siden (fanen "Spillere og runde") før scorekortet kan vises her.` + : `${formatLabel} spilles med to sider (ett felles slagtall per side). Opprett sidene på selve runde-siden (fanen "Spillere og runde") før scorekortet kan vises her.`}
    ) } - const units: { id: string; label: string }[] = isSharedBall - ? round.sides.map((s, idx) => ({ id: s.id, label: s.label?.trim() || (idx === 0 ? "Side A" : "Side B") })) - : round.participants.map((p) => ({ id: p.id, label: participantLabel(p, viewerId) })) + // scramble_solo (migrasjon 056) -- blandet enhetsliste: laget er en + // SIDE-fane (delt ball), individualspilleren er en PARTICIPANT-fane + // (egen ball) -- IKKE lagt til SHARED_BALL_FORMATS, det ville feilaktig + // behandlet BEGGE fanene som sider (se hull-hente-effekten over, som + // slår opp faktisk type fra unitId). + const units: { id: string; label: string }[] = isScrambleSolo + ? (() => { + const teamSide = round.sides.find((s) => s.side_role === "team") + const individualSide = round.sides.find((s) => s.side_role === "individual") + const individualParticipant = individualSide + ? round.participants.find((p) => p.round_side_id === individualSide.id) + : undefined + const list: { id: string; label: string }[] = [] + if (teamSide) list.push({ id: teamSide.id, label: teamSide.label?.trim() || "Laget" }) + if (individualParticipant) list.push({ id: individualParticipant.id, label: participantLabel(individualParticipant, viewerId) }) + return list + })() + : isSharedBall + ? round.sides.map((s, idx) => ({ id: s.id, label: s.label?.trim() || (idx === 0 ? "Side A" : "Side B") })) + : round.participants.map((p) => ({ id: p.id, label: participantLabel(p, viewerId) })) if (!holes) { return ( @@ -1270,7 +1358,7 @@ export function RoundScorecard({ {/* Enhets-velger (spillere, eller SIDER for delt-ball-formater) */} {units.length > 1 && ( -
    +
    {units.map((u) => { const active = u.id === unitId diff --git a/frontend/components/round-stats.tsx b/frontend/components/round-stats.tsx index a387201..064c8ab 100644 --- a/frontend/components/round-stats.tsx +++ b/frontend/components/round-stats.tsx @@ -407,6 +407,8 @@ const FORMAT_LABELS: Record = { scramble_2: "Scramble (2)", scramble_4: "Scramble (4)", chapman: "Chapman", + scramble_solo: "Scramble mot enkeltspiller", + scramble_solo_match: "Scramble mot enkeltspiller (matchspill)", } type ApiHole = { diff --git a/frontend/components/scramble-solo-result.tsx b/frontend/components/scramble-solo-result.tsx new file mode 100644 index 0000000..9f61ac7 --- /dev/null +++ b/frontend/components/scramble-solo-result.tsx @@ -0,0 +1,350 @@ +"use client" + +// Resultatvisning for "Scramble mot enkeltspiller" (migrasjon 056, +// 2026-08-05) -- ren V0-eksport (zip 31), uendret fra levert komponent. +// Adapter fra det generiske API-svaret (ApiFormatResult) til denne +// komponentens ScrambleSoloResult-props ligger i round-leaderboard.tsx +// (buildScrambleSoloResult) og round-detail.tsx (lokal kopi, samme navn). + +import { Check, Flag, Minus } from "lucide-react" +import { cn } from "@/lib/utils" + +// --------------------------------------------------------------------------- +// Data shape (matches the API response this component is built around) +// --------------------------------------------------------------------------- + +export interface ScrambleSoloHole { + holeNumber: number + par: number + strokeIndex: number + result: "a" | "b" | "halved" // "a" = team won hole, "b" = individual won, "halved" = tied + team: { gross: number; net: number; strokesReceived: number } + individual: { gross: number; net: number; strokesReceived: number } +} + +export interface ScrambleSoloResult { + ready: boolean + teamLabel: string + individualLabel: string + teamNet: number | null + individualNet: number | null + margin: number | null // individualNet - teamNet; positive = team leads, negative = individual leads, 0 = tied + holes: ScrambleSoloHole[] +} + +type Leader = "team" | "individual" | "tie" + +function leaderFromMargin(margin: number | null): Leader { + if (margin === null) return "tie" + if (margin > 0) return "team" + if (margin < 0) return "individual" + return "tie" +} + +// --------------------------------------------------------------------------- +// Component +// --------------------------------------------------------------------------- + +export function ScrambleSoloResultView({ result }: { result: ScrambleSoloResult }) { + return ( +
    + {result.ready ? ( + <> + + + + ) : ( + + )} +
    + ) +} + +// --- Waiting state --------------------------------------------------------- + +function WaitingState() { + return ( +
    + + +

    + Venter på at oppsettet blir fullført +

    +

    + Resultatet vises så snart handicap og lag er ferdig satt opp for denne runden. +

    +
    + ) +} + +// --- Headline card --------------------------------------------------------- + +function HeadlineCard({ result }: { result: ScrambleSoloResult }) { + const leader = leaderFromMargin(result.margin) + const strokes = result.margin === null ? 0 : Math.abs(result.margin) + + return ( +
    + + +
    + +
    + mot +
    + +
    +
    + ) +} + +function MarginBanner({ + leader, + strokes, + result, +}: { + leader: Leader + strokes: number + result: ScrambleSoloResult +}) { + let text: string + let tone: "team" | "individual" | "tie" + + if (leader === "tie") { + text = "Uavgjort" + tone = "tie" + } else if (leader === "team") { + text = `${result.teamLabel} leder med ${strokes} ${strokes === 1 ? "slag" : "slag"}` + tone = "team" + } else { + text = `${result.individualLabel} leder med ${strokes} slag` + tone = "individual" + } + + return ( +
    + {tone === "tie" ? ( +
    + ) +} + +function SideTotal({ + label, + kind, + net, + leading, +}: { + label: string + kind: "team" | "individual" + net: number | null + leading: boolean +}) { + return ( +
    + + {label} + + + {net ?? "–"} + + + netto + + {leading && ( + + Leder + + )} +
    + ) +} + +// --- Hole-by-hole ledger --------------------------------------------------- + +function HoleLedger({ result }: { result: ScrambleSoloResult }) { + return ( +
    +
    +

    Hull for hull

    + + {result.holes.length} {result.holes.length === 1 ? "hull spilt" : "hull spilt"} + +
    + + {/* Column legend so the two net columns are unambiguous */} +
    + Hull + {result.teamLabel} + {result.individualLabel} +
    + +
      + {result.holes.map((hole) => ( + + ))} +
    +
    + ) +} + +function HoleRow({ hole }: { hole: ScrambleSoloHole }) { + return ( +
  • + {/* Hole meta */} +
    + {hole.holeNumber} + + Par {hole.par} + , · idx {hole.strokeIndex} + +
    + + + +
  • + ) +} + +function SideCell({ + gross, + net, + received, + won, + halved, + kind, +}: { + gross: number + net: number + received: number + won: boolean + halved: boolean + kind: "team" | "individual" +}) { + const wonLabel = won + ? kind === "team" + ? "Laget vant hullet" + : "Utfordreren vant hullet" + : halved + ? "Delt hull" + : undefined + + return ( +
    + {/* Net (the number that decides the hole) — largest, bold */} +
    + {won && ( +
    + {/* Gross + strokes received context */} + + Brutto {gross} + {received > 0 && <> · {received} slag} + + {wonLabel && {wonLabel}} +
    + ) +} diff --git a/frontend/components/watch-round.tsx b/frontend/components/watch-round.tsx index 8468642..21866c5 100644 --- a/frontend/components/watch-round.tsx +++ b/frontend/components/watch-round.tsx @@ -95,6 +95,8 @@ const FORMAT_LABELS: Record = { shamble: "Shamble", money_ball: "Money Ball", high_low_high: "High-low-high", + scramble_solo: "Scramble mot enkeltspiller", + scramble_solo_match: "Scramble mot enkeltspiller (matchspill)", } const TWO_SIDED_FORMATS = new Set([ "match", "fourball", "foursome", "greensome", "scramble_2", "scramble_4", "chapman", "high_low_high", diff --git a/frontend/tsconfig.tsbuildinfo b/frontend/tsconfig.tsbuildinfo index 799c883..9d5fd0f 100644 --- a/frontend/tsconfig.tsbuildinfo +++ b/frontend/tsconfig.tsbuildinfo @@ -1 +1 @@ -{"fileNames":["./node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.es5.d.ts","./node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.es2015.d.ts","./node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.es2016.d.ts","./node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.es2017.d.ts","./node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.es2018.d.ts","./node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.es2019.d.ts","./node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.es2020.d.ts","./node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.es2021.d.ts","./node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.es2022.d.ts","./node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.es2023.d.ts","./node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.es2024.d.ts","./node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.esnext.d.ts","./node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.dom.d.ts","./node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.dom.iterable.d.ts","./node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.es2015.core.d.ts","./node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.es2015.collection.d.ts","./node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.es2015.generator.d.ts","./node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.es2015.iterable.d.ts","./node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.es2015.promise.d.ts","./node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.es2015.proxy.d.ts","./node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.es2015.reflect.d.ts","./node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.es2015.symbol.d.ts","./node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","./node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.es2016.array.include.d.ts","./node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.es2016.intl.d.ts","./node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.es2017.arraybuffer.d.ts","./node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.es2017.date.d.ts","./node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.es2017.object.d.ts","./node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","./node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.es2017.string.d.ts","./node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.es2017.intl.d.ts","./node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","./node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","./node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","./node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.es2018.intl.d.ts","./node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.es2018.promise.d.ts","./node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.es2018.regexp.d.ts","./node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.es2019.array.d.ts","./node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.es2019.object.d.ts","./node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.es2019.string.d.ts","./node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.es2019.symbol.d.ts","./node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.es2019.intl.d.ts","./node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.es2020.bigint.d.ts","./node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.es2020.date.d.ts","./node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.es2020.promise.d.ts","./node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","./node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.es2020.string.d.ts","./node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","./node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.es2020.intl.d.ts","./node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.es2020.number.d.ts","./node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.es2021.promise.d.ts","./node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.es2021.string.d.ts","./node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.es2021.weakref.d.ts","./node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.es2021.intl.d.ts","./node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.es2022.array.d.ts","./node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.es2022.error.d.ts","./node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.es2022.intl.d.ts","./node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.es2022.object.d.ts","./node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.es2022.string.d.ts","./node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.es2022.regexp.d.ts","./node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.es2023.array.d.ts","./node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.es2023.collection.d.ts","./node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.es2023.intl.d.ts","./node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.es2024.arraybuffer.d.ts","./node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.es2024.collection.d.ts","./node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.es2024.object.d.ts","./node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.es2024.promise.d.ts","./node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.es2024.regexp.d.ts","./node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.es2024.sharedmemory.d.ts","./node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.es2024.string.d.ts","./node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.esnext.array.d.ts","./node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.esnext.collection.d.ts","./node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.esnext.intl.d.ts","./node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.esnext.disposable.d.ts","./node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.esnext.decorators.d.ts","./node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.esnext.iterator.d.ts","./node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.decorators.d.ts","./node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.decorators.legacy.d.ts","./node_modules/.pnpm/@types+react@19.2.14/node_modules/@types/react/global.d.ts","./node_modules/.pnpm/csstype@3.2.3/node_modules/csstype/index.d.ts","./node_modules/.pnpm/@types+react@19.2.14/node_modules/@types/react/index.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/styled-jsx/types/css.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/styled-jsx/types/macro.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/styled-jsx/types/style.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/styled-jsx/types/global.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/styled-jsx/types/index.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/get-page-files.d.ts","./node_modules/.pnpm/@types+node@24.10.4/node_modules/@types/node/ts5.7/compatibility/float16array.d.ts","./node_modules/.pnpm/@types+node@24.10.4/node_modules/@types/node/compatibility/iterators.d.ts","./node_modules/.pnpm/@types+node@24.10.4/node_modules/@types/node/globals.typedarray.d.ts","./node_modules/.pnpm/@types+node@24.10.4/node_modules/@types/node/buffer.buffer.d.ts","./node_modules/.pnpm/@types+node@24.10.4/node_modules/@types/node/globals.d.ts","./node_modules/.pnpm/@types+node@24.10.4/node_modules/@types/node/web-globals/abortcontroller.d.ts","./node_modules/.pnpm/@types+node@24.10.4/node_modules/@types/node/web-globals/crypto.d.ts","./node_modules/.pnpm/@types+node@24.10.4/node_modules/@types/node/web-globals/domexception.d.ts","./node_modules/.pnpm/@types+node@24.10.4/node_modules/@types/node/web-globals/events.d.ts","./node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/utility.d.ts","./node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/header.d.ts","./node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/readable.d.ts","./node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/fetch.d.ts","./node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/formdata.d.ts","./node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/connector.d.ts","./node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/client-stats.d.ts","./node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/client.d.ts","./node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/errors.d.ts","./node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/dispatcher.d.ts","./node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/global-dispatcher.d.ts","./node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/global-origin.d.ts","./node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/pool-stats.d.ts","./node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/pool.d.ts","./node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/handlers.d.ts","./node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/balanced-pool.d.ts","./node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/h2c-client.d.ts","./node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/agent.d.ts","./node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/mock-interceptor.d.ts","./node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/mock-call-history.d.ts","./node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/mock-agent.d.ts","./node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/mock-client.d.ts","./node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/mock-pool.d.ts","./node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/snapshot-agent.d.ts","./node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/mock-errors.d.ts","./node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/proxy-agent.d.ts","./node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/env-http-proxy-agent.d.ts","./node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/retry-handler.d.ts","./node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/retry-agent.d.ts","./node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/api.d.ts","./node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/cache-interceptor.d.ts","./node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/interceptors.d.ts","./node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/util.d.ts","./node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/cookies.d.ts","./node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/patch.d.ts","./node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/websocket.d.ts","./node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/eventsource.d.ts","./node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/diagnostics-channel.d.ts","./node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/content-type.d.ts","./node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/cache.d.ts","./node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/index.d.ts","./node_modules/.pnpm/@types+node@24.10.4/node_modules/@types/node/web-globals/fetch.d.ts","./node_modules/.pnpm/@types+node@24.10.4/node_modules/@types/node/web-globals/navigator.d.ts","./node_modules/.pnpm/@types+node@24.10.4/node_modules/@types/node/web-globals/storage.d.ts","./node_modules/.pnpm/@types+node@24.10.4/node_modules/@types/node/web-globals/streams.d.ts","./node_modules/.pnpm/@types+node@24.10.4/node_modules/@types/node/assert.d.ts","./node_modules/.pnpm/@types+node@24.10.4/node_modules/@types/node/assert/strict.d.ts","./node_modules/.pnpm/@types+node@24.10.4/node_modules/@types/node/async_hooks.d.ts","./node_modules/.pnpm/@types+node@24.10.4/node_modules/@types/node/buffer.d.ts","./node_modules/.pnpm/@types+node@24.10.4/node_modules/@types/node/child_process.d.ts","./node_modules/.pnpm/@types+node@24.10.4/node_modules/@types/node/cluster.d.ts","./node_modules/.pnpm/@types+node@24.10.4/node_modules/@types/node/console.d.ts","./node_modules/.pnpm/@types+node@24.10.4/node_modules/@types/node/constants.d.ts","./node_modules/.pnpm/@types+node@24.10.4/node_modules/@types/node/crypto.d.ts","./node_modules/.pnpm/@types+node@24.10.4/node_modules/@types/node/dgram.d.ts","./node_modules/.pnpm/@types+node@24.10.4/node_modules/@types/node/diagnostics_channel.d.ts","./node_modules/.pnpm/@types+node@24.10.4/node_modules/@types/node/dns.d.ts","./node_modules/.pnpm/@types+node@24.10.4/node_modules/@types/node/dns/promises.d.ts","./node_modules/.pnpm/@types+node@24.10.4/node_modules/@types/node/domain.d.ts","./node_modules/.pnpm/@types+node@24.10.4/node_modules/@types/node/events.d.ts","./node_modules/.pnpm/@types+node@24.10.4/node_modules/@types/node/fs.d.ts","./node_modules/.pnpm/@types+node@24.10.4/node_modules/@types/node/fs/promises.d.ts","./node_modules/.pnpm/@types+node@24.10.4/node_modules/@types/node/http.d.ts","./node_modules/.pnpm/@types+node@24.10.4/node_modules/@types/node/http2.d.ts","./node_modules/.pnpm/@types+node@24.10.4/node_modules/@types/node/https.d.ts","./node_modules/.pnpm/@types+node@24.10.4/node_modules/@types/node/inspector.d.ts","./node_modules/.pnpm/@types+node@24.10.4/node_modules/@types/node/inspector.generated.d.ts","./node_modules/.pnpm/@types+node@24.10.4/node_modules/@types/node/module.d.ts","./node_modules/.pnpm/@types+node@24.10.4/node_modules/@types/node/net.d.ts","./node_modules/.pnpm/@types+node@24.10.4/node_modules/@types/node/os.d.ts","./node_modules/.pnpm/@types+node@24.10.4/node_modules/@types/node/path.d.ts","./node_modules/.pnpm/@types+node@24.10.4/node_modules/@types/node/perf_hooks.d.ts","./node_modules/.pnpm/@types+node@24.10.4/node_modules/@types/node/process.d.ts","./node_modules/.pnpm/@types+node@24.10.4/node_modules/@types/node/punycode.d.ts","./node_modules/.pnpm/@types+node@24.10.4/node_modules/@types/node/querystring.d.ts","./node_modules/.pnpm/@types+node@24.10.4/node_modules/@types/node/readline.d.ts","./node_modules/.pnpm/@types+node@24.10.4/node_modules/@types/node/readline/promises.d.ts","./node_modules/.pnpm/@types+node@24.10.4/node_modules/@types/node/repl.d.ts","./node_modules/.pnpm/@types+node@24.10.4/node_modules/@types/node/sea.d.ts","./node_modules/.pnpm/@types+node@24.10.4/node_modules/@types/node/sqlite.d.ts","./node_modules/.pnpm/@types+node@24.10.4/node_modules/@types/node/stream.d.ts","./node_modules/.pnpm/@types+node@24.10.4/node_modules/@types/node/stream/promises.d.ts","./node_modules/.pnpm/@types+node@24.10.4/node_modules/@types/node/stream/consumers.d.ts","./node_modules/.pnpm/@types+node@24.10.4/node_modules/@types/node/stream/web.d.ts","./node_modules/.pnpm/@types+node@24.10.4/node_modules/@types/node/string_decoder.d.ts","./node_modules/.pnpm/@types+node@24.10.4/node_modules/@types/node/test.d.ts","./node_modules/.pnpm/@types+node@24.10.4/node_modules/@types/node/timers.d.ts","./node_modules/.pnpm/@types+node@24.10.4/node_modules/@types/node/timers/promises.d.ts","./node_modules/.pnpm/@types+node@24.10.4/node_modules/@types/node/tls.d.ts","./node_modules/.pnpm/@types+node@24.10.4/node_modules/@types/node/trace_events.d.ts","./node_modules/.pnpm/@types+node@24.10.4/node_modules/@types/node/tty.d.ts","./node_modules/.pnpm/@types+node@24.10.4/node_modules/@types/node/url.d.ts","./node_modules/.pnpm/@types+node@24.10.4/node_modules/@types/node/util.d.ts","./node_modules/.pnpm/@types+node@24.10.4/node_modules/@types/node/v8.d.ts","./node_modules/.pnpm/@types+node@24.10.4/node_modules/@types/node/vm.d.ts","./node_modules/.pnpm/@types+node@24.10.4/node_modules/@types/node/wasi.d.ts","./node_modules/.pnpm/@types+node@24.10.4/node_modules/@types/node/worker_threads.d.ts","./node_modules/.pnpm/@types+node@24.10.4/node_modules/@types/node/zlib.d.ts","./node_modules/.pnpm/@types+node@24.10.4/node_modules/@types/node/ts5.7/index.d.ts","./node_modules/.pnpm/@types+react@19.2.14/node_modules/@types/react/canary.d.ts","./node_modules/.pnpm/@types+react@19.2.14/node_modules/@types/react/experimental.d.ts","./node_modules/.pnpm/@types+react-dom@19.2.3_@types+react@19.2.14/node_modules/@types/react-dom/index.d.ts","./node_modules/.pnpm/@types+react-dom@19.2.3_@types+react@19.2.14/node_modules/@types/react-dom/canary.d.ts","./node_modules/.pnpm/@types+react-dom@19.2.3_@types+react@19.2.14/node_modules/@types/react-dom/experimental.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/lib/fallback.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/compiled/webpack/webpack.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/shared/lib/modern-browserslist-target.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/shared/lib/entry-constants.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/shared/lib/constants.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/lib/bundler.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/config.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/lib/load-custom-routes.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/shared/lib/image-config.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/build/webpack/plugins/subresource-integrity-plugin.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/body-streams.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/request/search-params.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/shared/lib/segment-cache/vary-params-decoding.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/app-render/vary-params.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/request/params.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/route-kind.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/route-definitions/route-definition.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/route-matches/route-match.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/client/components/app-router-headers.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/lib/cache-control.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/shared/lib/app-router-types.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/lib/cache-handlers/types.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/use-cache/use-cache-wrapper.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/resume-data-cache/cache-store.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/resume-data-cache/resume-data-cache.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/lib/constants.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/render-result.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/response-cache/types.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/response-cache/index.d.ts","./node_modules/.pnpm/@types+react@19.2.14/node_modules/@types/react/jsx-runtime.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/next-devtools/userspace/pages/pages-dev-overlay-setup.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/build/static-paths/types.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/route-definitions/app-page-route-definition.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/build/adapter/setup-node-env.external.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/instrumentation/types.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/lib/setup-exception-listeners.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/lib/worker.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/lib/experimental/ppr.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/lib/page-types.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/build/segment-config/app/app-segment-config.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/build/segment-config/pages/pages-segment-config.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/build/analysis/get-page-static-info.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/build/webpack/loaders/get-module-build-info.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/build/webpack/plugins/middleware-plugin.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/require-hook.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/node-polyfill-crypto.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/node-environment-baseline.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/node-environment-extensions/error-inspect.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/node-environment-extensions/console-file.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/node-environment-extensions/console-exit.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/node-environment-extensions/console-dim.external.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/node-environment-extensions/unhandled-rejection.external.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/node-environment-extensions/random.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/node-environment-extensions/date.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/node-environment-extensions/web-crypto.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/node-environment-extensions/node-crypto.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/node-environment-extensions/fast-set-immediate.external.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/node-environment.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/build/page-extensions-type.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/route-modules/app-page/module.compiled.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/route-definitions/app-route-route-definition.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/lib/i18n-provider.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/web/next-url.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/compiled/@edge-runtime/cookies/index.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/web/spec-extension/cookies.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/web/spec-extension/request.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/shared/lib/deep-readonly.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/lib/incremental-cache/index.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/shared/lib/router/utils/middleware-route-matcher.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/build/webpack/plugins/flight-manifest-plugin.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/build/webpack/plugins/next-font-manifest-plugin.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/route-definitions/locale-route-definition.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/route-definitions/pages-route-definition.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/shared/lib/mitt.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/client/with-router.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/client/router.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/client/route-loader.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/client/page-loader.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/shared/lib/bloom-filter.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/shared/lib/router/router.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/shared/lib/router-context.shared-runtime.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/shared/lib/loadable-context.shared-runtime.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/shared/lib/loadable.shared-runtime.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/shared/lib/image-config-context.shared-runtime.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/client/components/readonly-url-search-params.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/shared/lib/hooks-client-context.shared-runtime.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/shared/lib/head-manager-context.shared-runtime.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/client/flight-data-helpers.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/client/components/segment-cache/cache-key.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/client/components/router-reducer/fetch-server-response.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/client/components/segment-cache/types.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/shared/lib/segment-cache/segment-value-encoding.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/client/components/segment-cache/scheduler.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/client/components/segment-cache/cache-map.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/client/components/segment-cache/vary-path.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/client/components/segment-cache/cache.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/client/components/router-reducer/ppr-navigations.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/client/components/segment-cache/navigation.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/client/components/router-reducer/router-reducer-types.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/shared/lib/app-router-context.shared-runtime.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/shared/lib/server-inserted-html.shared-runtime.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/route-modules/pages/vendored/contexts/entrypoints.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/route-modules/pages/module.compiled.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/build/templates/pages.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/route-modules/pages/module.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/render.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/build/webpack/plugins/pages-manifest-plugin.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/route-definitions/pages-api-route-definition.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/route-matches/pages-api-route-match.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/route-matchers/route-matcher.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/route-matcher-providers/route-matcher-provider.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/route-matcher-managers/route-matcher-manager.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/normalizers/normalizer.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/normalizers/locale-route-normalizer.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/normalizers/request/pathname-normalizer.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/normalizers/request/suffix.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/normalizers/request/rsc.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/normalizers/request/next-data.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/after/builtin-request-context.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/normalizers/request/segment-prefix-rsc.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/route-modules/pages/builtin/_error.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/load-default-error-components.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/base-server.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/after/after.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/after/after-context.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/use-cache/cache-life.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/app-render/work-async-storage-instance.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/lib/lazy-result.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/app-render/create-error-handler.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/shared/lib/action-revalidation-kind.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/app-render/work-async-storage.external.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/async-storage/work-store.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/web/http.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/client/components/hooks-server-context.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/route-modules/app-route/shared-modules.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/client/components/redirect-status-code.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/client/components/redirect-error.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/web/spec-extension/adapters/request-cookies.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/async-storage/draft-mode-provider.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/web/spec-extension/adapters/headers.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/app-render/cache-signal.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/app-render/instant-validation/boundary-tracking.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/app-render/instant-validation/instant-validation-error.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/shared/lib/router/utils/parse-relative-url.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/app-render/instant-validation/instant-samples.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/app-render/dynamic-rendering.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/app-render/work-unit-async-storage-instance.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/lib/implicit-tags.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/app-render/staged-rendering.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/app-render/work-unit-async-storage.external.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/build/templates/app-route.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/app-render/action-async-storage-instance.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/app-render/action-async-storage.external.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/route-modules/app-route/module.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/route-modules/app-route/module.compiled.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/build/segment-config/app/app-segments.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/build/get-supported-browsers.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/build/utils.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/build/rendering-mode.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/lib/router-utils/build-prefetch-segment-data-route.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/lib/cpu-profile.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/build/turborepo-access-trace/types.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/build/turborepo-access-trace/result.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/build/turborepo-access-trace/helpers.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/build/turborepo-access-trace/index.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/export/routes/types.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/export/types.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/export/worker.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/build/worker.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/build/index.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/lib/coalesced-function.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/lib/router-utils/types.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/trace/types.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/trace/trace.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/trace/shared.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/trace/index.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/build/load-jsconfig.d.ts","./node_modules/.pnpm/@next+env@16.2.6/node_modules/@next/env/dist/index.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/build/webpack/plugins/telemetry-plugin/use-cache-tracker-utils.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/build/webpack/plugins/telemetry-plugin/telemetry-plugin.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/telemetry/storage.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/build/build-context.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/build/webpack-config.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/build/swc/generated-native.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/build/define-env.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/build/swc/index.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/build/swc/types.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/dev/parse-version-info.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/next-devtools/shared/types.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/dev/dev-indicator-server-state.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/next-devtools/dev-overlay/cache-indicator.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/lib/parse-stack.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/next-devtools/server/shared.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/next-devtools/shared/stack-frame.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/next-devtools/dev-overlay/utils/get-error-by-type.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/next-devtools/dev-overlay/container/runtime-error/render-error.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/next-devtools/dev-overlay/shared.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/dev/debug-channel.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/dev/hot-reloader-types.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/web/spec-extension/fetch-event.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/web/spec-extension/response.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/build/segment-config/middleware/middleware-config.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/web/types.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/shared/lib/router/utils/parse-url.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/base-http/node.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/lib/async-callback-set.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/shared/lib/router/utils/route-regex.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/shared/lib/router/utils/route-matcher.d.ts","./node_modules/.pnpm/sharp@0.34.5/node_modules/sharp/lib/index.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/image-optimizer.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/next-server.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/lib/types.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/lib/lru-cache.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/lib/dev-bundler-service.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/dev/static-paths-worker.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/dev/next-dev-server.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/next.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/lib/render-server.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/lib/router-server.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/shared/lib/router/utils/path-match.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/lib/router-utils/filesystem.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/lib/router-utils/setup-dev-bundler.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/lib/router-utils/router-server-context.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/route-modules/route-module.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/load-components.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/web/adapter.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/app-render/types.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/build/webpack/loaders/metadata/types.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/build/webpack/loaders/next-app-loader/index.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/lib/app-dir-module.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/app-render/app-render.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/route-modules/app-page/vendored/contexts/entrypoints.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/client/components/error-boundary.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/client/components/layout-router.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/client/components/render-from-template-context.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/client/components/client-page.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/client/components/client-segment.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/client/components/http-access-fallback/error-boundary.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/lib/metadata/types/alternative-urls-types.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/lib/metadata/types/extra-types.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/lib/metadata/types/metadata-types.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/lib/metadata/types/manifest-types.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/lib/metadata/types/opengraph-types.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/lib/metadata/types/twitter-types.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/lib/metadata/types/metadata-interface.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/lib/metadata/types/resolvers.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/lib/metadata/types/icons.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/lib/metadata/resolve-metadata.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/lib/metadata/metadata.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/lib/framework/boundary-components.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/app-render/rsc/preloads.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/app-render/rsc/postpone.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/app-render/rsc/taint.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/app-render/collect-segment-data.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/app-render/instant-validation/instant-validation.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/next-devtools/userspace/app/segment-explorer-node.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/app-render/entry-base.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/build/templates/app-page.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/route-modules/app-page/helpers/prerender-manifest-matcher.d.ts","./node_modules/.pnpm/@types+react@19.2.14/node_modules/@types/react/jsx-dev-runtime.d.ts","./node_modules/.pnpm/@types+react@19.2.14/node_modules/@types/react/compiler-runtime.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/route-modules/app-page/vendored/rsc/entrypoints.d.ts","./node_modules/.pnpm/@types+react-dom@19.2.3_@types+react@19.2.14/node_modules/@types/react-dom/client.d.ts","./node_modules/.pnpm/@types+react-dom@19.2.3_@types+react@19.2.14/node_modules/@types/react-dom/static.d.ts","./node_modules/.pnpm/@types+react-dom@19.2.3_@types+react@19.2.14/node_modules/@types/react-dom/server.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/route-modules/app-page/vendored/ssr/entrypoints.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/route-modules/app-page/module.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/request/fallback-params.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/web/spec-extension/image-response.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/web/spec-extension/user-agent.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/web/spec-extension/url-pattern.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/after/index.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/request/connection.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/web/exports/index.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/request-meta.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/cli/next-test.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/shared/lib/size-limit.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/config-shared.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/base-http/index.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/api-utils/index.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/build/adapter/build-complete.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/types.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/shared/lib/html-context.shared-runtime.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/shared/lib/utils.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/pages/_app.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/app.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/web/spec-extension/unstable-cache.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/web/spec-extension/revalidate.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/web/spec-extension/unstable-no-store.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/use-cache/cache-tag.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/cache.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/pages/_document.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/document.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/shared/lib/dynamic.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dynamic.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/pages/_error.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/client/components/catch-error.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/api/error.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/error.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/shared/lib/head.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/head.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/request/cookies.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/request/headers.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/request/draft-mode.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/headers.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/shared/lib/get-img-props.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/client/image-component.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/shared/lib/image-external.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/image.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/client/link.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/link.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/client/components/unrecognized-action-error.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/client/components/redirect.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/client/components/not-found.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/client/components/forbidden.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/client/components/unauthorized.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/client/components/unstable-rethrow.server.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/client/components/unstable-rethrow.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/client/components/navigation.react-server.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/client/components/navigation.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/navigation.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/router.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/client/script.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/script.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/compiled/@edge-runtime/primitives/url.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/compiled/@vercel/og/satori/index.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/compiled/@vercel/og/types.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/server.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/types/global.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/types/compiled.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/types.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/index.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/image-types/global.d.ts","./.next/types/routes.d.ts","./next-env.d.ts","./app/manifest.ts","./lib/offline-queue.ts","./lib/push-subscribe.ts","./lib/pwa-install.ts","./node_modules/.pnpm/clsx@2.1.1/node_modules/clsx/clsx.d.mts","./node_modules/.pnpm/tailwind-merge@3.4.0/node_modules/tailwind-merge/dist/types.d.ts","./lib/utils.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/compiled/@next/font/dist/types.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/compiled/@next/font/dist/google/index.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/font/google/index.d.ts","./components/sw-register.tsx","./app/layout.tsx","./node_modules/.pnpm/lucide-react@1.17.0_react@19.2.4/node_modules/lucide-react/dist/lucide-react.d.ts","./node_modules/.pnpm/@base-ui+react@1.5.0_@date-fns+tz@1.4.1_@types+react@19.2.14_date-fns@4.1.0_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/@base-ui/react/esm/internals/reason-parts.d.ts","./node_modules/.pnpm/@base-ui+react@1.5.0_@date-fns+tz@1.4.1_@types+react@19.2.14_date-fns@4.1.0_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/@base-ui/react/esm/internals/reasons.d.ts","./node_modules/.pnpm/@base-ui+react@1.5.0_@date-fns+tz@1.4.1_@types+react@19.2.14_date-fns@4.1.0_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/@base-ui/react/esm/internals/createBaseUIEventDetails.d.ts","./node_modules/.pnpm/@base-ui+react@1.5.0_@date-fns+tz@1.4.1_@types+react@19.2.14_date-fns@4.1.0_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/@base-ui/react/esm/types/index.d.ts","./node_modules/.pnpm/@base-ui+react@1.5.0_@date-fns+tz@1.4.1_@types+react@19.2.14_date-fns@4.1.0_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/@base-ui/react/esm/internals/types.d.ts","./node_modules/.pnpm/@base-ui+react@1.5.0_@date-fns+tz@1.4.1_@types+react@19.2.14_date-fns@4.1.0_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/@base-ui/react/esm/button/Button.d.ts","./node_modules/.pnpm/@base-ui+react@1.5.0_@date-fns+tz@1.4.1_@types+react@19.2.14_date-fns@4.1.0_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/@base-ui/react/esm/button/index.d.ts","./node_modules/.pnpm/class-variance-authority@0.7.1/node_modules/class-variance-authority/dist/types.d.ts","./node_modules/.pnpm/class-variance-authority@0.7.1/node_modules/class-variance-authority/dist/index.d.ts","./components/ui/button.tsx","./node_modules/.pnpm/@base-ui+react@1.5.0_@date-fns+tz@1.4.1_@types+react@19.2.14_date-fns@4.1.0_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/@base-ui/react/esm/internals/form-context/FormContext.d.ts","./node_modules/.pnpm/@base-ui+react@1.5.0_@date-fns+tz@1.4.1_@types+react@19.2.14_date-fns@4.1.0_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/@base-ui/react/esm/form/Form.d.ts","./node_modules/.pnpm/@base-ui+react@1.5.0_@date-fns+tz@1.4.1_@types+react@19.2.14_date-fns@4.1.0_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/@base-ui/react/esm/form/index.d.ts","./node_modules/.pnpm/@base-ui+react@1.5.0_@date-fns+tz@1.4.1_@types+react@19.2.14_date-fns@4.1.0_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/@base-ui/react/esm/field/root/FieldRoot.d.ts","./node_modules/.pnpm/@base-ui+react@1.5.0_@date-fns+tz@1.4.1_@types+react@19.2.14_date-fns@4.1.0_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/@base-ui/react/esm/field/label/FieldLabel.d.ts","./node_modules/.pnpm/@base-ui+react@1.5.0_@date-fns+tz@1.4.1_@types+react@19.2.14_date-fns@4.1.0_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/@base-ui/react/esm/internals/useTransitionStatus.d.ts","./node_modules/.pnpm/@base-ui+react@1.5.0_@date-fns+tz@1.4.1_@types+react@19.2.14_date-fns@4.1.0_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/@base-ui/react/esm/field/error/FieldError.d.ts","./node_modules/.pnpm/@base-ui+react@1.5.0_@date-fns+tz@1.4.1_@types+react@19.2.14_date-fns@4.1.0_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/@base-ui/react/esm/field/description/FieldDescription.d.ts","./node_modules/.pnpm/@base-ui+react@1.5.0_@date-fns+tz@1.4.1_@types+react@19.2.14_date-fns@4.1.0_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/@base-ui/react/esm/field/control/FieldControl.d.ts","./node_modules/.pnpm/@base-ui+react@1.5.0_@date-fns+tz@1.4.1_@types+react@19.2.14_date-fns@4.1.0_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/@base-ui/react/esm/field/validity/FieldValidity.d.ts","./node_modules/.pnpm/@base-ui+react@1.5.0_@date-fns+tz@1.4.1_@types+react@19.2.14_date-fns@4.1.0_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/@base-ui/react/esm/field/item/FieldItem.d.ts","./node_modules/.pnpm/@base-ui+react@1.5.0_@date-fns+tz@1.4.1_@types+react@19.2.14_date-fns@4.1.0_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/@base-ui/react/esm/field/index.parts.d.ts","./node_modules/.pnpm/@base-ui+react@1.5.0_@date-fns+tz@1.4.1_@types+react@19.2.14_date-fns@4.1.0_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/@base-ui/react/esm/field/index.d.ts","./node_modules/.pnpm/@base-ui+react@1.5.0_@date-fns+tz@1.4.1_@types+react@19.2.14_date-fns@4.1.0_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/@base-ui/react/esm/input/Input.d.ts","./node_modules/.pnpm/@base-ui+react@1.5.0_@date-fns+tz@1.4.1_@types+react@19.2.14_date-fns@4.1.0_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/@base-ui/react/esm/input/index.d.ts","./components/ui/input.tsx","./components/ui/label.tsx","./components/two-factor-flow.tsx","./components/login-form.tsx","./app/page.tsx","./components/wordmark.tsx","./components/account-settings.tsx","./app/account/page.tsx","./node_modules/.pnpm/@floating-ui+utils@0.2.11/node_modules/@floating-ui/utils/dist/floating-ui.utils.d.mts","./node_modules/.pnpm/@floating-ui+core@1.7.5/node_modules/@floating-ui/core/dist/floating-ui.core.d.mts","./node_modules/.pnpm/@floating-ui+utils@0.2.11/node_modules/@floating-ui/utils/dist/floating-ui.utils.dom.d.mts","./node_modules/.pnpm/@floating-ui+dom@1.7.6/node_modules/@floating-ui/dom/dist/floating-ui.dom.d.mts","./node_modules/.pnpm/@floating-ui+react-dom@2.1.8_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/@floating-ui/react-dom/dist/floating-ui.react-dom.d.mts","./node_modules/.pnpm/@base-ui+react@1.5.0_@date-fns+tz@1.4.1_@types+react@19.2.14_date-fns@4.1.0_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/@base-ui/react/esm/floating-ui-react/components/FloatingTreeStore.d.ts","./node_modules/.pnpm/reselect@5.2.0/node_modules/reselect/dist/reselect.d.ts","./node_modules/.pnpm/@base-ui+utils@0.2.9_@types+react@19.2.14_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/@base-ui/utils/esm/store/createSelector.d.ts","./node_modules/.pnpm/@base-ui+utils@0.2.9_@types+react@19.2.14_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/@base-ui/utils/esm/store/createSelectorMemoized.d.ts","./node_modules/.pnpm/@base-ui+utils@0.2.9_@types+react@19.2.14_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/@base-ui/utils/esm/fastHooks.d.ts","./node_modules/.pnpm/@base-ui+utils@0.2.9_@types+react@19.2.14_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/@base-ui/utils/esm/store/Store.d.ts","./node_modules/.pnpm/@base-ui+utils@0.2.9_@types+react@19.2.14_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/@base-ui/utils/esm/store/useStore.d.ts","./node_modules/.pnpm/@base-ui+utils@0.2.9_@types+react@19.2.14_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/@base-ui/utils/esm/store/ReactStore.d.ts","./node_modules/.pnpm/@base-ui+utils@0.2.9_@types+react@19.2.14_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/@base-ui/utils/esm/store/StoreInspector.d.ts","./node_modules/.pnpm/@base-ui+utils@0.2.9_@types+react@19.2.14_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/@base-ui/utils/esm/store/index.d.ts","./node_modules/.pnpm/@base-ui+react@1.5.0_@date-fns+tz@1.4.1_@types+react@19.2.14_date-fns@4.1.0_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/@base-ui/react/esm/utils/popups/inlineRect.d.ts","./node_modules/.pnpm/@base-ui+utils@0.2.9_@types+react@19.2.14_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/@base-ui/utils/esm/useEnhancedClickHandler.d.ts","./node_modules/.pnpm/@base-ui+react@1.5.0_@date-fns+tz@1.4.1_@types+react@19.2.14_date-fns@4.1.0_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/@base-ui/react/esm/utils/popups/popupTriggerMap.d.ts","./node_modules/.pnpm/@base-ui+react@1.5.0_@date-fns+tz@1.4.1_@types+react@19.2.14_date-fns@4.1.0_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/@base-ui/react/esm/utils/popups/store.d.ts","./node_modules/.pnpm/@base-ui+react@1.5.0_@date-fns+tz@1.4.1_@types+react@19.2.14_date-fns@4.1.0_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/@base-ui/react/esm/utils/popups/popupStoreUtils.d.ts","./node_modules/.pnpm/@base-ui+react@1.5.0_@date-fns+tz@1.4.1_@types+react@19.2.14_date-fns@4.1.0_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/@base-ui/react/esm/utils/popups/index.d.ts","./node_modules/.pnpm/@base-ui+react@1.5.0_@date-fns+tz@1.4.1_@types+react@19.2.14_date-fns@4.1.0_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/@base-ui/react/esm/floating-ui-react/components/FloatingRootStore.d.ts","./node_modules/.pnpm/@base-ui+react@1.5.0_@date-fns+tz@1.4.1_@types+react@19.2.14_date-fns@4.1.0_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/@base-ui/react/esm/floating-ui-react/components/FloatingFocusManager.d.ts","./node_modules/.pnpm/@base-ui+react@1.5.0_@date-fns+tz@1.4.1_@types+react@19.2.14_date-fns@4.1.0_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/@base-ui/react/esm/internals/getStateAttributesProps.d.ts","./node_modules/.pnpm/@base-ui+react@1.5.0_@date-fns+tz@1.4.1_@types+react@19.2.14_date-fns@4.1.0_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/@base-ui/react/esm/internals/useRenderElement.d.ts","./node_modules/.pnpm/@base-ui+react@1.5.0_@date-fns+tz@1.4.1_@types+react@19.2.14_date-fns@4.1.0_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/@base-ui/react/esm/floating-ui-react/components/FloatingPortal.d.ts","./node_modules/.pnpm/@base-ui+react@1.5.0_@date-fns+tz@1.4.1_@types+react@19.2.14_date-fns@4.1.0_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/@base-ui/react/esm/floating-ui-react/hooks/useClientPoint.d.ts","./node_modules/.pnpm/@base-ui+react@1.5.0_@date-fns+tz@1.4.1_@types+react@19.2.14_date-fns@4.1.0_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/@base-ui/react/esm/floating-ui-react/hooks/useDismiss.d.ts","./node_modules/.pnpm/@base-ui+react@1.5.0_@date-fns+tz@1.4.1_@types+react@19.2.14_date-fns@4.1.0_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/@base-ui/react/esm/floating-ui-react/hooks/useFocus.d.ts","./node_modules/.pnpm/@base-ui+react@1.5.0_@date-fns+tz@1.4.1_@types+react@19.2.14_date-fns@4.1.0_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/@base-ui/react/esm/internals/shadowDom.d.ts","./node_modules/.pnpm/@base-ui+react@1.5.0_@date-fns+tz@1.4.1_@types+react@19.2.14_date-fns@4.1.0_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/@base-ui/react/esm/floating-ui-react/utils/element.d.ts","./node_modules/.pnpm/@base-ui+react@1.5.0_@date-fns+tz@1.4.1_@types+react@19.2.14_date-fns@4.1.0_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/@base-ui/react/esm/floating-ui-react/hooks/useHoverShared.d.ts","./node_modules/.pnpm/@base-ui+react@1.5.0_@date-fns+tz@1.4.1_@types+react@19.2.14_date-fns@4.1.0_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/@base-ui/react/esm/floating-ui-react/hooks/useHover.d.ts","./node_modules/.pnpm/@base-ui+react@1.5.0_@date-fns+tz@1.4.1_@types+react@19.2.14_date-fns@4.1.0_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/@base-ui/react/esm/floating-ui-react/hooks/useHoverFloatingInteraction.d.ts","./node_modules/.pnpm/@base-ui+react@1.5.0_@date-fns+tz@1.4.1_@types+react@19.2.14_date-fns@4.1.0_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/@base-ui/react/esm/floating-ui-react/hooks/useHoverReferenceInteraction.d.ts","./node_modules/.pnpm/@base-ui+react@1.5.0_@date-fns+tz@1.4.1_@types+react@19.2.14_date-fns@4.1.0_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/@base-ui/react/esm/floating-ui-react/hooks/useListNavigation.d.ts","./node_modules/.pnpm/@base-ui+react@1.5.0_@date-fns+tz@1.4.1_@types+react@19.2.14_date-fns@4.1.0_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/@base-ui/react/esm/floating-ui-react/hooks/useTypeahead.d.ts","./node_modules/.pnpm/@base-ui+react@1.5.0_@date-fns+tz@1.4.1_@types+react@19.2.14_date-fns@4.1.0_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/@base-ui/react/esm/floating-ui-react/hooks/useFloatingRootContext.d.ts","./node_modules/.pnpm/@base-ui+react@1.5.0_@date-fns+tz@1.4.1_@types+react@19.2.14_date-fns@4.1.0_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/@base-ui/react/esm/floating-ui-react/safePolygon.d.ts","./node_modules/.pnpm/@base-ui+react@1.5.0_@date-fns+tz@1.4.1_@types+react@19.2.14_date-fns@4.1.0_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/@base-ui/react/esm/floating-ui-react/components/FloatingTree.d.ts","./node_modules/.pnpm/@base-ui+react@1.5.0_@date-fns+tz@1.4.1_@types+react@19.2.14_date-fns@4.1.0_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/@base-ui/react/esm/floating-ui-react/types.d.ts","./node_modules/.pnpm/@base-ui+react@1.5.0_@date-fns+tz@1.4.1_@types+react@19.2.14_date-fns@4.1.0_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/@base-ui/react/esm/floating-ui-react/components/FloatingDelayGroup.d.ts","./node_modules/.pnpm/@base-ui+react@1.5.0_@date-fns+tz@1.4.1_@types+react@19.2.14_date-fns@4.1.0_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/@base-ui/react/esm/floating-ui-react/hooks/useClick.d.ts","./node_modules/.pnpm/@base-ui+react@1.5.0_@date-fns+tz@1.4.1_@types+react@19.2.14_date-fns@4.1.0_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/@base-ui/react/esm/floating-ui-react/hooks/useFloating.d.ts","./node_modules/.pnpm/@base-ui+react@1.5.0_@date-fns+tz@1.4.1_@types+react@19.2.14_date-fns@4.1.0_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/@base-ui/react/esm/floating-ui-react/hooks/useSyncedFloatingRootContext.d.ts","./node_modules/.pnpm/@base-ui+react@1.5.0_@date-fns+tz@1.4.1_@types+react@19.2.14_date-fns@4.1.0_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/@base-ui/react/esm/floating-ui-react/index.d.ts","./node_modules/.pnpm/@base-ui+react@1.5.0_@date-fns+tz@1.4.1_@types+react@19.2.14_date-fns@4.1.0_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/@base-ui/react/esm/utils/useAnchorPositioning.d.ts","./node_modules/.pnpm/@base-ui+react@1.5.0_@date-fns+tz@1.4.1_@types+react@19.2.14_date-fns@4.1.0_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/@base-ui/react/esm/menu/arrow/MenuArrow.d.ts","./node_modules/.pnpm/@base-ui+react@1.5.0_@date-fns+tz@1.4.1_@types+react@19.2.14_date-fns@4.1.0_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/@base-ui/react/esm/menu/backdrop/MenuBackdrop.d.ts","./node_modules/.pnpm/@base-ui+react@1.5.0_@date-fns+tz@1.4.1_@types+react@19.2.14_date-fns@4.1.0_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/@base-ui/react/esm/menu/store/MenuStore.d.ts","./node_modules/.pnpm/@base-ui+react@1.5.0_@date-fns+tz@1.4.1_@types+react@19.2.14_date-fns@4.1.0_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/@base-ui/react/esm/menu/root/MenuRootContext.d.ts","./node_modules/.pnpm/@base-ui+react@1.5.0_@date-fns+tz@1.4.1_@types+react@19.2.14_date-fns@4.1.0_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/@base-ui/react/esm/menubar/MenubarContext.d.ts","./node_modules/.pnpm/@base-ui+react@1.5.0_@date-fns+tz@1.4.1_@types+react@19.2.14_date-fns@4.1.0_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/@base-ui/react/esm/context-menu/root/ContextMenuRoot.d.ts","./node_modules/.pnpm/@base-ui+react@1.5.0_@date-fns+tz@1.4.1_@types+react@19.2.14_date-fns@4.1.0_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/@base-ui/react/esm/context-menu/root/ContextMenuRootContext.d.ts","./node_modules/.pnpm/@base-ui+react@1.5.0_@date-fns+tz@1.4.1_@types+react@19.2.14_date-fns@4.1.0_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/@base-ui/react/esm/menu/store/MenuHandle.d.ts","./node_modules/.pnpm/@base-ui+react@1.5.0_@date-fns+tz@1.4.1_@types+react@19.2.14_date-fns@4.1.0_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/@base-ui/react/esm/menu/root/MenuRoot.d.ts","./node_modules/.pnpm/@base-ui+react@1.5.0_@date-fns+tz@1.4.1_@types+react@19.2.14_date-fns@4.1.0_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/@base-ui/react/esm/menu/checkbox-item/MenuCheckboxItem.d.ts","./node_modules/.pnpm/@base-ui+react@1.5.0_@date-fns+tz@1.4.1_@types+react@19.2.14_date-fns@4.1.0_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/@base-ui/react/esm/menu/checkbox-item-indicator/MenuCheckboxItemIndicator.d.ts","./node_modules/.pnpm/@base-ui+react@1.5.0_@date-fns+tz@1.4.1_@types+react@19.2.14_date-fns@4.1.0_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/@base-ui/react/esm/menu/group/MenuGroup.d.ts","./node_modules/.pnpm/@base-ui+react@1.5.0_@date-fns+tz@1.4.1_@types+react@19.2.14_date-fns@4.1.0_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/@base-ui/react/esm/menu/group-label/MenuGroupLabel.d.ts","./node_modules/.pnpm/@base-ui+react@1.5.0_@date-fns+tz@1.4.1_@types+react@19.2.14_date-fns@4.1.0_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/@base-ui/react/esm/menu/item/MenuItem.d.ts","./node_modules/.pnpm/@base-ui+react@1.5.0_@date-fns+tz@1.4.1_@types+react@19.2.14_date-fns@4.1.0_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/@base-ui/react/esm/menu/link-item/MenuLinkItem.d.ts","./node_modules/.pnpm/@base-ui+react@1.5.0_@date-fns+tz@1.4.1_@types+react@19.2.14_date-fns@4.1.0_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/@base-ui/react/esm/menu/popup/MenuPopup.d.ts","./node_modules/.pnpm/@base-ui+react@1.5.0_@date-fns+tz@1.4.1_@types+react@19.2.14_date-fns@4.1.0_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/@base-ui/react/esm/menu/portal/MenuPortal.d.ts","./node_modules/.pnpm/@base-ui+react@1.5.0_@date-fns+tz@1.4.1_@types+react@19.2.14_date-fns@4.1.0_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/@base-ui/react/esm/menu/positioner/MenuPositioner.d.ts","./node_modules/.pnpm/@base-ui+react@1.5.0_@date-fns+tz@1.4.1_@types+react@19.2.14_date-fns@4.1.0_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/@base-ui/react/esm/menu/radio-group/MenuRadioGroup.d.ts","./node_modules/.pnpm/@base-ui+react@1.5.0_@date-fns+tz@1.4.1_@types+react@19.2.14_date-fns@4.1.0_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/@base-ui/react/esm/menu/radio-item/MenuRadioItem.d.ts","./node_modules/.pnpm/@base-ui+react@1.5.0_@date-fns+tz@1.4.1_@types+react@19.2.14_date-fns@4.1.0_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/@base-ui/react/esm/menu/radio-item-indicator/MenuRadioItemIndicator.d.ts","./node_modules/.pnpm/@base-ui+react@1.5.0_@date-fns+tz@1.4.1_@types+react@19.2.14_date-fns@4.1.0_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/@base-ui/react/esm/menu/submenu-root/MenuSubmenuRootContext.d.ts","./node_modules/.pnpm/@base-ui+react@1.5.0_@date-fns+tz@1.4.1_@types+react@19.2.14_date-fns@4.1.0_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/@base-ui/react/esm/menu/submenu-root/MenuSubmenuRoot.d.ts","./node_modules/.pnpm/@base-ui+react@1.5.0_@date-fns+tz@1.4.1_@types+react@19.2.14_date-fns@4.1.0_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/@base-ui/react/esm/menu/trigger/MenuTrigger.d.ts","./node_modules/.pnpm/@base-ui+react@1.5.0_@date-fns+tz@1.4.1_@types+react@19.2.14_date-fns@4.1.0_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/@base-ui/react/esm/menu/viewport/MenuViewport.d.ts","./node_modules/.pnpm/@base-ui+react@1.5.0_@date-fns+tz@1.4.1_@types+react@19.2.14_date-fns@4.1.0_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/@base-ui/react/esm/separator/Separator.d.ts","./node_modules/.pnpm/@base-ui+react@1.5.0_@date-fns+tz@1.4.1_@types+react@19.2.14_date-fns@4.1.0_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/@base-ui/react/esm/menu/submenu-trigger/MenuSubmenuTrigger.d.ts","./node_modules/.pnpm/@base-ui+react@1.5.0_@date-fns+tz@1.4.1_@types+react@19.2.14_date-fns@4.1.0_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/@base-ui/react/esm/menu/index.parts.d.ts","./node_modules/.pnpm/@base-ui+react@1.5.0_@date-fns+tz@1.4.1_@types+react@19.2.14_date-fns@4.1.0_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/@base-ui/react/esm/menu/index.d.ts","./components/ui/dropdown-menu.tsx","./components/tournament-status-badge.tsx","./components/tournament-card.tsx","./components/public-club.tsx","./app/clubs/[slug]/page.tsx","./components/install-prompt.tsx","./components/round-card.tsx","./components/dashboard.tsx","./app/dashboard/page.tsx","./components/more-menu.tsx","./app/more/page.tsx","./components/friends.tsx","./app/my-friends/page.tsx","./components/friend-profile.tsx","./app/my-friends/[id]/page.tsx","./components/notifications.tsx","./app/my-notifications/page.tsx","./components/own-rounds.tsx","./app/my-rounds/page.tsx","./components/round-header.tsx","./components/round-page-shell.tsx","./node_modules/.pnpm/@base-ui+react@1.5.0_@date-fns+tz@1.4.1_@types+react@19.2.14_date-fns@4.1.0_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/@base-ui/react/esm/merge-props/mergeProps.d.ts","./node_modules/.pnpm/@base-ui+react@1.5.0_@date-fns+tz@1.4.1_@types+react@19.2.14_date-fns@4.1.0_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/@base-ui/react/esm/merge-props/index.d.ts","./node_modules/.pnpm/@base-ui+react@1.5.0_@date-fns+tz@1.4.1_@types+react@19.2.14_date-fns@4.1.0_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/@base-ui/react/esm/use-render/useRender.d.ts","./node_modules/.pnpm/@base-ui+react@1.5.0_@date-fns+tz@1.4.1_@types+react@19.2.14_date-fns@4.1.0_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/@base-ui/react/esm/use-render/index.d.ts","./components/ui/badge.tsx","./components/round-leaderboard.tsx","./components/round-detail.tsx","./app/my-rounds/[id]/page.tsx","./components/flight-group-leaderboard.tsx","./app/my-rounds/[id]/flights/page.tsx","./app/my-rounds/[id]/leaderboard/page.tsx","./components/round-scorecard.tsx","./components/round-stats.tsx","./app/my-rounds/[id]/scorecard/page.tsx","./app/my-rounds/[id]/stats/page.tsx","./components/course-rounds.tsx","./app/my-rounds/course/[name]/page.tsx","./node_modules/.pnpm/@base-ui+react@1.5.0_@date-fns+tz@1.4.1_@types+react@19.2.14_date-fns@4.1.0_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/@base-ui/react/esm/switch/root/SwitchRoot.d.ts","./node_modules/.pnpm/@base-ui+react@1.5.0_@date-fns+tz@1.4.1_@types+react@19.2.14_date-fns@4.1.0_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/@base-ui/react/esm/switch/thumb/SwitchThumb.d.ts","./node_modules/.pnpm/@base-ui+react@1.5.0_@date-fns+tz@1.4.1_@types+react@19.2.14_date-fns@4.1.0_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/@base-ui/react/esm/switch/index.parts.d.ts","./node_modules/.pnpm/@base-ui+react@1.5.0_@date-fns+tz@1.4.1_@types+react@19.2.14_date-fns@4.1.0_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/@base-ui/react/esm/switch/index.d.ts","./components/ui/switch.tsx","./components/new-round.tsx","./app/my-rounds/new/page.tsx","./components/rounds-stats-summary.tsx","./app/my-rounds/stats/page.tsx","./components/org-members.tsx","./app/organizations/[id]/members/page.tsx","./components/public-tournament.tsx","./app/t/[id]/page.tsx","./components/public-live.tsx","./app/t/[id]/live/page.tsx","./components/tournament-detail.tsx","./components/individual-tournament-detail.tsx","./components/tournament-router.tsx","./app/tournaments/[id]/page.tsx","./components/tournament-leaderboard.tsx","./app/tournaments/[id]/leaderboard/page.tsx","./components/tournament-program.tsx","./app/tournaments/[id]/program/page.tsx","./components/session-blind-draw.tsx","./app/tournaments/[id]/sessions/[sessionId]/page.tsx","./components/session-individual-leaderboard.tsx","./app/tournaments/[id]/sessions/[sessionId]/individual-leaderboard/page.tsx","./components/session-scorecard.tsx","./app/tournaments/[id]/sessions/[sessionId]/matches/[matchId]/page.tsx","./components/team-chat.tsx","./app/tournaments/[id]/teams/[teamId]/chat/page.tsx","./components/verify-form.tsx","./app/verify/page.tsx","./components/verify-email-form.tsx","./app/verify-email/page.tsx","./components/watch-round.tsx","./app/watch/[id]/page.tsx","./components/ui/card.tsx","./.next/types/cache-life.d.ts","./.next/types/validator.ts"],"fileIdsList":[[91,145,162,163,487,488,489,490],[91,145,162,163],[91,145,162,163,230,531,534,547,578,581,662,666,668,670,672,674,676,686,688,689,692,693,695,702,704,706,708,710,714,716,718,720,722,724,726,728,730,732],[91,145,162,163,230,580],[91,145,162,163,230,532,661],[91,145,162,163,230,665],[91,145,162,163,230,529,532,545,546],[91,145,162,163,230,532],[91,145,162,163,230,667],[91,145,162,163,230,671],[91,145,162,163,230,669],[91,145,162,163,230,673],[91,145,162,163,230,687],[91,145,162,163,230,678,684],[81,91,145,162,163,230,685],[91,145,162,163,230,678,690,691],[91,145,162,163,230,521],[91,145,162,163,230,694],[81,91,145,162,163,230,701],[91,145,162,163,230,675],[91,145,162,163,230,703],[91,145,162,163,230,705],[91,145,162,163,230,505,521,577],[91,145,162,163,230,709],[91,145,162,163,230,532,707],[91,145,162,163,230,715],[91,145,162,163,230,713],[91,145,162,163,230,717],[91,145,162,163,230,721],[91,145,162,163,230,723],[91,145,162,163,230,719],[91,145,162,163,230,725],[81,91,145,162,163,230,579,729],[81,91,145,162,163,230,579,727],[91,145,162,163,230,731],[81,91,145,162,163,230,511,521,538,548,558,574,575,576,579],[81,91,145,162,163,230,511,521,548,579,664],[81,91,145,162,163,230,511,521,542,548,558,574,575,658,659,660,663,664],[81,91,145,162,163,230,511,542,548,683],[81,91,145,162,163,230,511,542,548],[81,91,145,162,163,230,511,521,542,548,574,579],[81,91,145,162,163,230,511,542,548,558,574,575,658,659],[81,91,145,162,163,230,539,548],[81,91,145,162,163,230,521,548,576],[81,91,145,162,163,230,511,521,548,665],[81,91,145,162,163,230,511,521,542,548,558,574,575,579,700],[81,91,145,162,163,230,511,521,542,548,579],[81,91,145,162,163,230,511,548,558,574,575],[81,91,145,162,163,230,511,521,548,558,579,664],[81,91,145,162,163,230,548,579,660],[81,91,145,162,163,230,511,542,548,579],[81,91,145,162,163,230,511,542,548,558,574,575,579],[81,91,145,162,163,230,511,521,537,542,548,558,574,575,678,683,684],[81,91,145,162,163,198,200,230,511,542,548,558],[81,91,145,162,163,230,521,677],[81,91,145,162,163,230,511,521,548],[81,91,145,162,163,230,511,542,548,558],[81,91,145,162,163,230,511,537,542,548,558],[81,91,145,162,163,230,539],[91,145,162,163,230,511,548,659],[81,91,145,162,163,230,511,542,548,558,574,575,658,700],[81,91,145,162,163,230,711,712],[91,145,162,163,230,542,548,658],[81,91,145,162,163,230,548,558,574,575],[91,145,162,163,230,542,557,680,682],[91,145,162,163,230,542,555,557],[81,91,145,162,163,230,542],[81,91,145,162,163,230,542,548,657],[81,91,145,162,163,230,542,573],[91,145,162,163,230,542,699],[81,91,145,162,163,230,521,548,558,574,575,576],[91,145,162,163,230,542,548],[91,145,162,163,230],[91,145,162,163,230,540,541],[91,145,162,163,532,533,534],[81,91,145,162,163,553],[91,145,162,163,554],[91,145,162,163,230,552,637,657],[81,91,145,162,163,634],[81,91,145,162,163,550,551,553,562],[81,91,145,162,163,553,562],[81,91,145,162,163,553,562,564],[91,145,162,163,562,563,565,566,567,568,569,570],[91,145,162,163,562,563,565,566,567,568,569],[81,91,145,162,163,553,561],[81,91,145,162,163,562,564],[81,91,145,162,163,622],[81,91,145,162,163,587,598,622],[81,91,145,162,163,553,606],[81,91,145,162,163,551,564,596,602,622],[81,91,145,162,163,587,622],[91,145,162,163,622],[91,145,162,163,550,622],[91,145,162,163,587,622],[91,145,162,163,551,603,622],[91,145,162,163,613,622],[81,91,145,162,163,553,587,613,622],[91,145,162,163,612,622],[91,145,162,163,552,596,602,603],[91,145,162,163,586,587,604,607,608,609,610,614,615,616,617,618,619,620,621,622,623,624,625,626],[91,145,162,163,613],[81,91,145,162,163,551,586,587,603,604,607,608,609,610,613,614,615,616,617,618,619,620,621,623,627],[91,145,162,163,602,611],[81,91,145,162,163,550,551,553,559],[91,145,162,163,560],[81,91,145,162,163,553,571],[91,145,162,163,572],[91,145,162,163,550],[81,91,145,162,163,560,562],[91,145,162,163,549],[81,91,145,162,163,552],[81,91,145,162,163,553,605],[81,91,145,162,163],[81,91,145,162,163,553,628],[81,91,145,162,163,553,564],[81,91,145,162,163,553,637],[91,145,162,163,629,630,637,638,639,640,641,642,643,644,645,646,647,648,649,651,652,653,655,656],[91,145,162,163,629,630,636,637,638,639,640,641,642,643,644,645,646,647,648,649,651,652,653,654,655],[81,91,145,162,163,553,564,598,628],[81,91,145,162,163,627],[81,91,145,162,163,230,550,551,602,631,632,633,635,636],[81,91,145,162,163,631,637],[91,145,162,163,631],[81,91,145,162,163,553,564,587,596,598,602,603,627,637,657],[91,145,162,163,230,637,650],[81,91,145,162,163,631],[81,91,145,162,163,553,636],[81,91,145,162,163,637],[91,145,162,163,679],[91,145,162,163,696,697,698],[91,145,162,163,696,697],[81,91,145,162,163,550,552,553,562],[81,91,145,162,163,553,696],[81,91,145,162,163,551],[91,145,162,163,553,681],[91,145,162,163,597,599,600,601],[81,91,145,162,163,586],[81,91,145,162,163,551,564,596,598,600],[91,145,162,163,553,564,599,603,627],[81,91,145,162,163,582,627],[91,145,162,163,592],[81,91,145,162,163,230,592],[91,145,162,163,588],[91,145,162,163,589],[91,145,162,163,589,590,592,593,594,595],[91,145,162,163,591,592],[91,145,162,163,582],[91,145,162,163,583,584],[81,91,145,162,163,585],[91,142,143,145,162,163],[91,144,145,162,163],[145,162,163],[91,145,150,162,163,180],[91,145,146,151,156,162,163,165,177,188],[91,145,146,147,156,162,163,165],[91,145,148,162,163,189],[91,145,149,150,157,162,163,166],[91,145,150,162,163,177,185],[91,145,151,153,156,162,163,165],[91,144,145,152,162,163],[91,145,153,154,162,163],[91,145,155,156,162,163],[91,144,145,156,162,163],[91,145,156,157,158,162,163,177,188],[91,145,156,157,158,162,163,172,177,180],[91,137,145,153,156,159,162,163,165,177,188],[91,145,156,157,159,160,162,163,165,177,185,188],[91,145,159,161,162,163,177,185,188],[91,145,156,162,163],[91,145,162,163,164,188],[91,145,153,156,162,163,165,177],[91,145,162,163,166],[91,145,162,163,167],[91,144,145,162,163,168],[91,142,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],[91,145,162,163,170],[91,145,162,163,171],[91,145,156,162,163,172,173],[91,145,162,163,172,174,189,191],[91,145,157,162,163],[91,145,156,162,163,177,178,180],[91,145,162,163,179,180],[91,145,162,163,177,178],[91,145,162,163,180],[91,145,162,163,181],[91,142,145,162,163,177,182],[91,145,156,162,163,183,184],[91,145,162,163,183,184],[91,145,150,162,163,165,177,185],[91,145,162,163,186],[88,89,90,91,92,93,94,95,96,138,139,140,141,142,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],[91,145,162,163,165,187],[91,145,159,162,163,171,188],[91,145,150,162,163,189],[91,145,162,163,177,190],[91,145,162,163,164,191],[91,145,162,163,192],[91,145,150,162,163],[91,137,145,162,163],[91,145,162,163,193],[91,137,145,156,158,162,163,168,177,180,188,190,191,193],[91,145,162,163,177,194],[81,85,91,145,162,163,196,197,198,200,482,527],[81,85,91,145,162,163,196,197,198,199,463,482,527],[81,85,91,145,162,163,196,197,199,200,482,527],[81,91,145,162,163,200,463,464],[81,91,145,162,163,200,463],[81,85,91,145,162,163,197,198,199,200,482,527],[81,85,91,145,162,163,196,198,199,200,482,527],[79,80,91,145,162,163],[91,145,162,163,540,556],[91,145,162,163,540],[91,145,162,163,485],[91,145,162,163,433,496,497],[91,145,162,163,205,206,208,220,244,359,370,478],[91,145,162,163,208,239,240,241,243,478],[91,145,162,163,208,376,378,380,381,383,478,480],[91,145,162,163,208,242,279,478],[91,145,162,163,206,208,219,220,226,232,237,358,359,360,369,478,480],[91,145,162,163,478],[91,145,162,163,215,221,240,260,355],[91,145,162,163,208],[91,145,162,163,201,215,221],[91,145,162,163,387],[91,145,162,163,384,385,387],[91,145,162,163,384,386,478],[91,145,159,162,163,260,457,475],[91,145,159,162,163,331,334,350,355,475],[91,145,159,162,163,303,475],[91,145,162,163,363],[91,145,162,163,362,363,364],[91,145,162,163,362],[87,91,145,159,162,163,201,208,220,226,232,238,240,244,245,258,259,326,356,357,370,478,482],[91,145,162,163,205,208,242,279,376,377,382,478,530],[91,145,162,163,242,530],[91,145,162,163,205,259,428,478,530],[91,145,162,163,530],[91,145,162,163,208,242,243,530],[91,145,162,163,379,530],[91,145,162,163,245,358,361,368],[81,91,145,162,163,433],[91,145,162,163,171,215,230],[91,145,162,163,215,230],[81,91,145,162,163,300],[81,91,145,162,163,230],[81,91,145,162,163,221,230,433],[91,145,162,163,215,286,300,301,512,519],[91,145,162,163,285,513,514,515,516,518],[91,145,162,163,336],[91,145,162,163,336,337],[91,145,162,163,219,221,288,289],[91,145,162,163,221,295,296],[91,145,162,163,221,290,298],[91,145,162,163,295],[91,145,162,163,213,221,288,289,290,291,292,293,294,295,298],[91,145,162,163,221,288,295,296,297,299],[91,145,162,163,221,289,291,292],[91,145,162,163,289,291,294,296],[91,145,162,163,517],[91,145,162,163,221],[81,91,145,162,163,209,506],[81,91,145,162,163,188],[81,91,145,162,163,242,277],[81,91,145,162,163,242,370],[91,145,162,163,275,280],[81,91,145,162,163,276,484],[91,145,162,163,543],[81,85,91,145,159,162,163,196,197,198,199,200,482,526],[91,145,159,162,163,221],[91,145,159,162,163,220,225,306,323,365,366,370,425,427,478,479],[91,145,162,163,258,367],[91,145,162,163,482],[91,145,162,163,207],[81,91,145,162,163,212,215,430,446,448],[91,145,162,163,171,215,430,445,446,447,529],[91,145,162,163,439,440,441,442,443,444],[91,145,162,163,441],[91,145,162,163,445],[91,145,162,163,230,394,395,397],[81,91,145,162,163,221,388,389,390,391,396],[91,145,162,163,394,396],[91,145,162,163,392],[91,145,162,163,393],[81,91,145,162,163,230,276,484],[81,91,145,162,163,230,483,484],[81,91,145,162,163,230,484],[91,145,162,163,323,324],[91,145,162,163,324],[91,145,159,162,163,479,484],[91,145,162,163,353],[91,144,145,162,163,352],[91,145,162,163,215,221,227,229,331,344,348,350,427,430,467,468,475,479],[91,145,162,163,221,270,292],[91,145,162,163,331,342,345,350],[81,91,145,162,163,212,215,331,334,350,353,387,434,435,436,437,438,449,450,451,452,453,454,455,456,530],[91,145,162,163,212,215,240,331,338,339,340,343,344],[91,145,162,163,177,221,240,342,349,430,431,475],[91,145,162,163,346],[91,145,159,162,163,171,209,221,225,235,267,268,271,323,326,391,425,426,467,478,479,480,482,530],[91,145,162,163,212,213,215],[91,145,162,163,331],[91,144,145,162,163,240,267,268,325,326,327,328,329,330,479],[91,145,162,163,350],[91,144,145,162,163,214,215,225,229,265,331,338,339,340,341,342,345,346,347,348,349,468],[91,145,159,162,163,265,266,338,479,480],[91,145,162,163,240,268,323,326,331,427,479],[91,145,159,162,163,478,480],[91,145,159,162,163,177,475,479,480],[91,145,159,162,163,171,201,215,220,227,229,232,235,242,262,267,268,269,270,271,306,307,309,312,314,317,318,319,320,322,370,425,427,475,478,479,480],[91,145,159,162,163,177],[91,145,162,163,208,209,210,238,475,476,477,482,484,530],[91,145,162,163,205,206,478],[91,145,162,163,399],[91,145,159,162,163,177,188,217,383,387,388,389,390,391,397,398,530],[91,145,162,163,171,188,201,215,217,229,232,268,307,312,322,323,376,403,404,405,411,414,415,425,427,475,478],[91,145,162,163,232,238,245,258,268,326,478],[91,145,159,162,163,188,209,220,229,268,409,475,478],[91,145,162,163,429],[91,145,159,162,163,399,412,413,422],[91,145,162,163,475,478],[91,145,162,163,328,468],[91,145,162,163,229,267,370,484],[91,145,159,162,163,171,207,312,372,376,405,411,414,417,475],[91,145,159,162,163,245,258,376,418],[91,145,162,163,208,269,370,420,478,480],[91,145,159,162,163,188,391,478],[91,145,159,162,163,242,269,370,371,372,381,399,419,421,478],[87,91,145,159,162,163,267,424,482,484],[91,145,162,163,321,425],[91,145,159,162,163,171,215,218,220,221,227,229,235,244,245,258,268,271,307,309,319,322,323,370,403,404,405,406,408,410,425,427,475,484],[91,145,159,162,163,177,245,411,416,422,475],[91,145,162,163,248,249,250,251,252,253,254,255,256,257],[91,145,162,163,262,313],[91,145,162,163,315],[91,145,162,163,313],[91,145,162,163,315,316],[91,145,159,162,163,219,220,221,225,226,479],[91,145,159,162,163,171,207,209,227,231,267,270,271,305,425,475,480,482,484],[91,145,159,162,163,171,188,211,218,219,229,231,268,423,468,474,479],[91,145,162,163,338],[91,145,162,163,339],[91,145,162,163,221,232,467],[91,145,162,163,340],[91,145,162,163,214],[91,145,162,163,216,228],[91,145,159,162,163,216,220,227],[91,145,162,163,223,228],[91,145,162,163,224],[91,145,162,163,216,217],[91,145,162,163,216,272],[91,145,162,163,216],[91,145,162,163,218,262,311],[91,145,162,163,310],[91,145,162,163,215,217,218],[91,145,162,163,218,308],[91,145,162,163,215,217],[91,145,162,163,267,370],[91,145,162,163,467],[91,145,159,162,163,188,227,229,233,267,370,424,427,430,431,432,458,459,462,466,468,475,479],[91,145,162,163,281,284,286,287,300,301],[81,91,145,162,163,198,200,230,460,461],[81,91,145,162,163,198,200,230,460,461,465],[91,145,162,163,354],[91,145,162,163,240,261,266,267,331,332,333,334,335,337,350,351,353,356,424,427,478,480],[91,145,162,163,300],[91,145,159,162,163,305,475],[91,145,162,163,305],[91,145,159,162,163,227,273,302,304,306,424,475,482,484],[91,145,162,163,281,282,283,284,286,287,300,301,483],[87,91,145,159,162,163,171,188,216,217,229,235,267,268,271,370,422,423,425,475,478,479,482],[91,145,162,163,212,215,222],[91,145,162,163,266,268,400,403],[91,145,162,163,266,401,469,470,471,472,473],[91,145,159,162,163,262,478],[91,145,159,162,163],[91,145,162,163,265,350],[91,145,162,163,264],[91,145,162,163,266,319],[91,145,162,163,263,265,478],[91,145,159,162,163,211,266,400,401,402,475,478,479],[81,91,145,162,163,215,221,299],[81,91,145,162,163,213],[91,145,162,163,203,204],[81,91,145,162,163,209],[81,91,145,162,163,215,285],[81,87,91,145,162,163,267,271,482,484],[91,145,162,163,209,506,507],[81,91,145,162,163,280],[81,91,145,162,163,171,188,207,274,276,278,279,484],[91,145,162,163,215,242,479],[91,145,162,163,215,407],[81,91,145,157,159,162,163,171,205,207,280,378,482,483],[81,91,145,162,163,196,197,198,199,200,482,527],[81,82,83,84,85,91,145,162,163],[91,145,162,163,373,374,375],[91,145,162,163,373],[81,85,91,145,159,161,162,163,171,195,196,197,198,199,200,201,207,235,240,417,445,480,481,484,527],[91,145,162,163,492],[91,145,162,163,494],[91,145,162,163,498],[91,145,162,163,544],[91,145,162,163,500],[91,145,162,163,502,503,504],[91,145,162,163,508],[86,91,145,162,163,486,491,493,495,499,501,505,509,511,521,522,524,528,529,530,531],[91,145,162,163,510],[91,145,162,163,520],[91,145,162,163,276],[91,145,162,163,523],[91,144,145,162,163,266,400,401,403,469,470,472,473,525,527],[91,145,162,163,195],[91,145,162,163,177,195],[91,103,106,109,110,145,162,163,188],[91,106,145,162,163,177,188],[91,106,110,145,162,163,188],[91,145,162,163,177],[91,100,145,162,163],[91,104,145,162,163],[91,102,103,106,145,162,163,188],[91,145,162,163,165,185],[91,100,145,162,163,195],[91,102,106,145,162,163,165,188],[91,97,98,99,101,105,145,156,162,163,177,188],[91,106,114,122,145,162,163],[91,98,104,145,162,163],[91,106,131,132,145,162,163],[91,98,101,106,145,162,163,180,188,195],[91,106,145,162,163],[91,102,106,145,162,163,188],[91,97,145,162,163],[91,100,101,102,104,105,106,107,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,132,133,134,135,136,145,162,163],[91,106,124,127,145,153,162,163],[91,106,114,115,116,145,162,163],[91,104,106,115,117,145,162,163],[91,105,145,162,163],[91,98,100,106,145,162,163],[91,106,110,115,117,145,162,163],[91,110,145,162,163],[91,104,106,109,145,162,163,188],[91,98,102,106,114,145,162,163],[91,106,124,145,162,163],[91,117,145,162,163],[91,100,106,131,145,162,163,180,193,195]],"fileInfos":[{"version":"e41c290ef7dd7dab3493e6cbe5909e0148edf4a8dad0271be08edec368a0f7b9","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":"e12a46ce14b817d4c9e6b2b478956452330bf00c9801b79de46f7a1815b5bd40","impliedFormat":1},{"version":"4fd3f3422b2d2a3dfd5cdd0f387b3a8ec45f006c6ea896a4cb41264c2100bb2c","affectsGlobalScope":true,"impliedFormat":1},{"version":"69e65d976bf166ce4a9e6f6c18f94d2424bf116e90837ace179610dbccad9b42","affectsGlobalScope":true,"impliedFormat":1},{"version":"c57796738e7f83dbc4b8e65132f11a377649c00dd3eee333f672b8f0a6bea671","affectsGlobalScope":true,"impliedFormat":1},{"version":"dc2df20b1bcdc8c2d34af4926e2c3ab15ffe1160a63e58b7e09833f616efff44","affectsGlobalScope":true,"impliedFormat":1},{"version":"515d0b7b9bea2e31ea4ec968e9edd2c39d3eebf4a2d5cbd04e88639819ae3b71","affectsGlobalScope":true,"impliedFormat":1},{"version":"62bb211266ee48b2d0edf0d8d1b191f0c24fc379a82bd4c1692a082c540bc6b1","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":"936e80ad36a2ee83fc3caf008e7c4c5afe45b3cf3d5c24408f039c1d47bdc1df","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":"fef8cfad2e2dc5f5b3d97a6f4f2e92848eb1b88e897bb7318cef0e2820bceaab","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":"f1e2a172204962276504466a6393426d2ca9c54894b1ad0a6c9dad867a65f876","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":"b5ce7a470bc3628408429040c4e3a53a27755022a32fd05e2cb694e7015386c7","affectsGlobalScope":true,"impliedFormat":1},{"version":"8444af78980e3b20b49324f4a16ba35024fef3ee069a0eb67616ea6ca821c47a","affectsGlobalScope":true,"impliedFormat":1},{"version":"3287d9d085fbd618c3971944b65b4be57859f5415f495b33a6adc994edd2f004","affectsGlobalScope":true,"impliedFormat":1},{"version":"b4b67b1a91182421f5df999988c690f14d813b9850b40acd06ed44691f6727ad","affectsGlobalScope":true,"impliedFormat":1},{"version":"bab26767638ab3557de12c900f0b91f710c7dc40ee9793d5a27d32c04f0bf646","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":"d4b1d2c51d058fc21ec2629fff7a76249dec2e36e12960ea056e3ef89174080f","affectsGlobalScope":true,"impliedFormat":1},{"version":"61d6a2092f48af66dbfb220e31eea8b10bc02b6932d6e529005fd2d7b3281290","affectsGlobalScope":true,"impliedFormat":1},{"version":"8e7f8264d0fb4c5339605a15daadb037bf238c10b654bb3eee14208f860a32ea","affectsGlobalScope":true,"impliedFormat":1},{"version":"782dec38049b92d4e85c1585fbea5474a219c6984a35b004963b00beb1aab538","affectsGlobalScope":true,"impliedFormat":1},{"version":"7e29f41b158de217f94cb9676bf9cbd0cd9b5a46e1985141ed36e075c52bf6ad","affectsGlobalScope":true,"impliedFormat":1},{"version":"ac51dd7d31333793807a6abaa5ae168512b6131bd41d9c5b98477fc3b7800f9f","impliedFormat":1},{"version":"dc0a7f107690ee5cd8afc8dbf05c4df78085471ce16bdd9881642ec738bc81fe","impliedFormat":1},{"version":"acd8fd5090ac73902278889c38336ff3f48af6ba03aa665eb34a75e7ba1dccc4","impliedFormat":1},{"version":"d6258883868fb2680d2ca96bc8b1352cab69874581493e6d52680c5ffecdb6cc","impliedFormat":1},{"version":"1b61d259de5350f8b1e5db06290d31eaebebc6baafd5f79d314b5af9256d7153","impliedFormat":1},{"version":"f258e3960f324a956fc76a3d3d9e964fff2244ff5859dcc6ce5951e5413ca826","impliedFormat":1},{"version":"643f7232d07bf75e15bd8f658f664d6183a0efaca5eb84b48201c7671a266979","impliedFormat":1},{"version":"21da358700a3893281ce0c517a7a30cbd46be020d9f0c3f2834d0a8ad1f5fc75","impliedFormat":1},{"version":"cebfeedf63623d54f7423d58cae1ec204c0d8d97a66d5fb17579e26a902085e1","affectsGlobalScope":true,"impliedFormat":1},{"version":"d153a11543fd884b596587ccd97aebbeed950b26933ee000f94009f1ab142848","affectsGlobalScope":true,"impliedFormat":1},{"version":"378281aa35786c27d5811af7e6bcaa492eebd0c7013d48137c35bbc69a2b9751","affectsGlobalScope":true,"impliedFormat":1},{"version":"3af97acf03cc97de58a3a4bc91f8f616408099bc4233f6d0852e72a8ffb91ac9","affectsGlobalScope":true,"impliedFormat":1},{"version":"1b2dd1cbeb0cc6ae20795958ba5950395ebb2849b7c8326853dd15530c77ab0c","affectsGlobalScope":true,"impliedFormat":1},{"version":"1db0b7dca579049ca4193d034d835f6bfe73096c73663e5ef9a0b5779939f3d0","affectsGlobalScope":true,"impliedFormat":1},{"version":"387a023d363f755eb63450a66c28b14cdd7bc30a104565e2dbf0a8988bb4a56c","affectsGlobalScope":true,"impliedFormat":1},{"version":"9798340ffb0d067d69b1ae5b32faa17ab31b82466a3fc00d8f2f2df0c8554aaa","affectsGlobalScope":true,"impliedFormat":1},{"version":"f26b11d8d8e4b8028f1c7d618b22274c892e4b0ef5b3678a8ccbad85419aef43","affectsGlobalScope":true,"impliedFormat":1},{"version":"cdcf9ea426ad970f96ac930cd176d5c69c6c24eebd9fc580e1572d6c6a88f62c","impliedFormat":1},{"version":"23cd712e2ce083d68afe69224587438e5914b457b8acf87073c22494d706a3d0","impliedFormat":1},{"version":"487b694c3de27ddf4ad107d4007ad304d29effccf9800c8ae23c2093638d906a","impliedFormat":1},{"version":"3a80bc85f38526ca3b08007ee80712e7bb0601df178b23fbf0bf87036fce40ce","impliedFormat":1},{"version":"ccf4552357ce3c159ef75f0f0114e80401702228f1898bdc9402214c9499e8c0","impliedFormat":1},{"version":"c6fd2c5a395f2432786c9cb8deb870b9b0e8ff7e22c029954fabdd692bff6195","impliedFormat":1},{"version":"68834d631c8838c715f225509cfc3927913b9cc7a4870460b5b60c8dbdb99baf","impliedFormat":1},{"version":"2931540c47ee0ff8a62860e61782eb17b155615db61e36986e54645ec67f67c2","impliedFormat":1},{"version":"ccab02f3920fc75c01174c47fcf67882a11daf16baf9e81701d0a94636e94556","impliedFormat":1},{"version":"f6faf5f74e4c4cc309a6c6a6c4da02dbb840be5d3e92905a23dcd7b2b0bd1986","impliedFormat":1},{"version":"ea6bc8de8b59f90a7a3960005fd01988f98fd0784e14bc6922dde2e93305ec7d","impliedFormat":1},{"version":"36107995674b29284a115e21a0618c4c2751b32a8766dd4cb3ba740308b16d59","impliedFormat":1},{"version":"914a0ae30d96d71915fc519ccb4efbf2b62c0ddfb3a3fc6129151076bc01dc60","impliedFormat":1},{"version":"33e981bf6376e939f99bd7f89abec757c64897d33c005036b9a10d9587d80187","impliedFormat":1},{"version":"7fd1b31fd35876b0aa650811c25ec2c97a3c6387e5473eb18004bed86cdd76b6","impliedFormat":1},{"version":"b41767d372275c154c7ea6c9d5449d9a741b8ce080f640155cc88ba1763e35b3","impliedFormat":1},{"version":"3bacf516d686d08682751a3bd2519ea3b8041a164bfb4f1d35728993e70a2426","impliedFormat":1},{"version":"7fb266686238369442bd1719bc0d7edd0199da4fb8540354e1ff7f16669b4323","impliedFormat":1},{"version":"0a60a292b89ca7218b8616f78e5bbd1c96b87e048849469cccb4355e98af959a","impliedFormat":1},{"version":"0b6e25234b4eec6ed96ab138d96eb70b135690d7dd01f3dd8a8ab291c35a683a","impliedFormat":1},{"version":"9666f2f84b985b62400d2e5ab0adae9ff44de9b2a34803c2c5bd3c8325b17dc0","impliedFormat":1},{"version":"40cd35c95e9cf22cfa5bd84e96408b6fcbca55295f4ff822390abb11afbc3dca","impliedFormat":1},{"version":"b1616b8959bf557feb16369c6124a97a0e74ed6f49d1df73bb4b9ddf68acf3f3","impliedFormat":1},{"version":"5b03a034c72146b61573aab280f295b015b9168470f2df05f6080a2122f9b4df","impliedFormat":1},{"version":"40b463c6766ca1b689bfcc46d26b5e295954f32ad43e37ee6953c0a677e4ae2b","impliedFormat":1},{"version":"249b9cab7f5d628b71308c7d9bb0a808b50b091e640ba3ed6e2d0516f4a8d91d","impliedFormat":1},{"version":"80aae6afc67faa5ac0b32b5b8bc8cc9f7fa299cff15cf09cc2e11fd28c6ae29e","impliedFormat":1},{"version":"f473cd2288991ff3221165dcf73cd5d24da30391f87e85b3dd4d0450c787a391","impliedFormat":1},{"version":"499e5b055a5aba1e1998f7311a6c441a369831c70905cc565ceac93c28083d53","impliedFormat":1},{"version":"54c3e2371e3d016469ad959697fd257e5621e16296fa67082c2575d0bf8eced0","impliedFormat":1},{"version":"beb8233b2c220cfa0feea31fbe9218d89fa02faa81ef744be8dce5acb89bb1fd","impliedFormat":1},{"version":"c183b931b68ad184bc8e8372bf663f3d33304772fb482f29fb91b3c391031f3e","impliedFormat":1},{"version":"5d0375ca7310efb77e3ef18d068d53784faf62705e0ad04569597ae0e755c401","impliedFormat":1},{"version":"59af37caec41ecf7b2e76059c9672a49e682c1a2aa6f9d7dc78878f53aa284d6","impliedFormat":1},{"version":"addf417b9eb3f938fddf8d81e96393a165e4be0d4a8b6402292f9c634b1cb00d","impliedFormat":1},{"version":"48cc3ec153b50985fb95153258a710782b25975b10dd4ac8a4f3920632d10790","impliedFormat":1},{"version":"adf27937dba6af9f08a68c5b1d3fce0ca7d4b960c57e6d6c844e7d1a8e53adae","impliedFormat":1},{"version":"e1528ca65ac90f6fa0e4a247eb656b4263c470bb22d9033e466463e13395e599","impliedFormat":1},{"version":"2e85db9e6fd73cfa3d7f28e0ab6b55417ea18931423bd47b409a96e4a169e8e6","impliedFormat":1},{"version":"c46e079fe54c76f95c67fb89081b3e399da2c7d109e7dca8e4b58d83e332e605","impliedFormat":1},{"version":"866078923a56d026e39243b4392e282c1c63159723996fa89243140e1388a98d","impliedFormat":1},{"version":"830171b27c5fdf9bcbe4cf7d428fcf3ae2c67780fb7fbdccdf70d1623d938bc4","affectsGlobalScope":true,"impliedFormat":1},{"version":"1cf059eaf468efcc649f8cf6075d3cb98e9a35a0fe9c44419ec3d2f5428d7123","affectsGlobalScope":true,"impliedFormat":1},{"version":"e7721c4f69f93c91360c26a0a84ee885997d748237ef78ef665b153e622b36c1","affectsGlobalScope":true,"impliedFormat":1},{"version":"d97fb21da858fb18b8ae72c314e9743fd52f73ebe2764e12af1db32fc03f853f","affectsGlobalScope":true,"impliedFormat":1},{"version":"4ea15fd99b2e34cb25fe8346c955000bb70c8b423ae4377a972ef46bfb37f595","impliedFormat":1},{"version":"7cf69dd5502c41644c9e5106210b5da7144800670cbe861f66726fa209e231c4","impliedFormat":1},{"version":"72c1f5e0a28e473026074817561d1bc9647909cf253c8d56c41d1df8d95b85f7","impliedFormat":1},{"version":"f9b4137a0d285bd77dba2e6e895530112264310ae47e07bf311feae428fb8b61","affectsGlobalScope":true,"impliedFormat":1},{"version":"8b21e13ed07d0df176ae31d6b7f01f7b17d66dbeb489c0d31d00de2ca14883da","impliedFormat":1},{"version":"51aecd2df90a3cffea1eb4696b33b2d78594ea2aa2138e6b9471ec4841c6c2ee","impliedFormat":1},{"version":"9d8f9e63e29a3396285620908e7f14d874d066caea747dc4b2c378f0599166b4","affectsGlobalScope":true,"impliedFormat":1},{"version":"5524481e56c48ff486f42926778c0a3cce1cc85dc46683b92b1271865bcf015a","impliedFormat":1},{"version":"f929f0b6b3421a2d34344b0f421f45aeb2c84ad365ebf29d04312023b3accc58","impliedFormat":1},{"version":"db9ada976f9e52e13f7ae8b9a320f4b67b87685938c5879187d8864b2fbe97f3","impliedFormat":1},{"version":"9f39e70a354d0fba29ac3cdf6eca00b7f9e96f64b2b2780c432e8ea27f133743","impliedFormat":1},{"version":"0dace96cc0f7bc6d0ee2044921bdf19fe42d16284dbcc8ae200800d1c9579335","impliedFormat":1},{"version":"a2e2bbde231b65c53c764c12313897ffdfb6c49183dd31823ee2405f2f7b5378","impliedFormat":1},{"version":"ad1cc0ed328f3f708771272021be61ab146b32ecf2b78f3224959ff1e2cd2a5c","impliedFormat":1},{"version":"c64e1888baaa3253ca4405b455e4bf44f76357868a1bd0a52998ade9a092ad78","affectsGlobalScope":true,"impliedFormat":1},{"version":"d8cf132379078d0974a59df26069689a2d33c7dc826b5be56231841cb2f32e58","impliedFormat":1},{"version":"fbf413fc617837453c878a9174a1f1b383616857a3f8366bc41cf30df4aea7d5","impliedFormat":1},{"version":"148c73ec11318850f571172ceae3e55ce479d850fe18ec8eae0abd99d9f6c319","impliedFormat":1},{"version":"230bdc111d7578276e4a3bb9d075d85c78c6b68f428c3a9935e2eaa10f4ae1f5","impliedFormat":1},{"version":"e8aabbee5e7b9101b03bb4222607d57f38859b8115a8050a4eb91b4ee43a3a73","impliedFormat":1},{"version":"bbf42f98a5819f4f06e18c8b669a994afe9a17fe520ae3454a195e6eabf7700d","impliedFormat":1},{"version":"c0bb1b65757c72bbf8ddf7eaa532223bacf58041ff16c883e76f45506596e925","impliedFormat":1},{"version":"c8b85f7aed29f8f52b813f800611406b0bfe5cf3224d20a4bdda7c7f73ce368e","affectsGlobalScope":true,"impliedFormat":1},{"version":"145dcf25fd4967c610c53d93d7bc4dce8fbb1b6dd7935362472d4ae49363c7ba","impliedFormat":1},{"version":"ff65b8a8bd380c6d129becc35de02f7c29ad7ce03300331ca91311fb4044d1a9","impliedFormat":1},{"version":"04bf1aa481d1adfb16d93d76e44ce71c51c8ef68039d849926551199489637f6","impliedFormat":1},{"version":"9043daec15206650fa119bad6b8d70136021ea7d52673a71f79a87a42ee38d44","affectsGlobalScope":true,"impliedFormat":1},{"version":"0b055dae40c0e27154f109c4ff771ae748db161c503a1687e3d4b9c91ba20de3","affectsGlobalScope":true,"impliedFormat":1},{"version":"a58a15da4c5ba3df60c910a043281256fa52d36a0fcdef9b9100c646282e88dd","impliedFormat":1},{"version":"b36beffbf8acdc3ebc58c8bb4b75574b31a2169869c70fc03f82895b93950a12","impliedFormat":1},{"version":"de263f0089aefbfd73c89562fb7254a7468b1f33b61839aafc3f035d60766cb4","impliedFormat":1},{"version":"77fbe5eecb6fac4b6242bbf6eebfc43e98ce5ccba8fa44e0ef6a95c945ff4d98","impliedFormat":1},{"version":"8c81fd4a110490c43d7c578e8c6f69b3af01717189196899a6a44f93daa57a3a","impliedFormat":1},{"version":"5fb39858b2459864b139950a09adae4f38dad87c25bf572ce414f10e4bd7baab","impliedFormat":1},{"version":"65faec1b4bd63564aeec33eab9cacfaefd84ce2400f03903a71a1841fbce195f","impliedFormat":1},{"version":"b33b74b97952d9bf4fbd2951dcfbb5136656ddb310ce1c84518aaa77dbca9992","impliedFormat":1},{"version":"37ba7b45141a45ce6e80e66f2a96c8a5ab1bcef0fc2d0f56bb58df96ec67e972","impliedFormat":1},{"version":"45650f47bfb376c8a8ed39d4bcda5902ab899a3150029684ee4c10676d9fbaee","impliedFormat":1},{"version":"6b306cd4282bbb54d4a6bb23cfb7a271160983dfc38c67b5a132504cfcc34896","affectsGlobalScope":true,"impliedFormat":1},{"version":"c119835edf36415081dfd9ed15fc0cd37aaa28d232be029ad073f15f3d88c323","impliedFormat":1},{"version":"450172a56b944c2d83f45cc11c9a388ea967cd301a21202aa0a23c34c7506a18","impliedFormat":1},{"version":"9705cd157ffbb91c5cab48bdd2de5a437a372e63f870f8a8472e72ff634d47c1","affectsGlobalScope":true,"impliedFormat":1},{"version":"ae86f30d5d10e4f75ce8dcb6e1bd3a12ecec3d071a21e8f462c5c85c678efb41","impliedFormat":1},{"version":"72f8936aebf0c4a1adab767b97d34ba7d3a308afcf76de4417b9c16fb92ed548","impliedFormat":1},{"version":"e03460fe72b259f6d25ad029f085e4bedc3f90477da4401d8fbc1efa9793230e","impliedFormat":1},{"version":"4286a3a6619514fca656089aee160bb6f2e77f4dd53dc5a96b26a0b4fc778055","impliedFormat":1},{"version":"69e0a41d620fb678a899c65e073413b452f4db321b858fe422ad93fd686cd49a","affectsGlobalScope":true,"impliedFormat":1},{"version":"3585d6891e9ea18e07d0755a6d90d71331558ba5dc5561933553209f886db106","affectsGlobalScope":true,"impliedFormat":1},{"version":"86be71cbb0593468644932a6eb96d527cfa600cecfc0b698af5f52e51804451d","impliedFormat":1},{"version":"84dd6b0fd2505135692935599d6606f50a421389e8d4535194bcded307ee5cf2","impliedFormat":1},{"version":"0d5b085f36e6dc55bc6332ecb9c733be3a534958c238fb8d8d18d4a2b6f2a15a","impliedFormat":1},{"version":"db19ea066fdc5f97df3f769e582ae3000380ab7942e266654bdb1a4650d19eaf","affectsGlobalScope":true,"impliedFormat":1},{"version":"2a034894bf28c220a331c7a0229d33564803abe2ac1b9a5feee91b6b9b6e88ea","impliedFormat":1},{"version":"63228283eda38338f98e629d8033bffe727d2247ba2f3a1cbd1273a6827a1ec4","impliedFormat":1},{"version":"2beff543f6e9a9701df88daeee3cdd70a34b4a1c11cb4c734472195a5cb2af54","impliedFormat":1},{"version":"2e07abf27aa06353d46f4448c0bbac73431f6065eef7113128a5cd804d0c384d","impliedFormat":1},{"version":"be1cc4d94ea60cbe567bc29ed479d42587bf1e6cba490f123d329976b0fe4ee5","impliedFormat":1},{"version":"42bc0e1a903408137c3df2b06dfd7e402cdab5bbfa5fcfb871b22ebfdb30bd0b","impliedFormat":1},{"version":"9894dafe342b976d251aac58e616ac6df8db91fb9d98934ff9dd103e9e82578f","impliedFormat":1},{"version":"413df52d4ea14472c2fa5bee62f7a40abd1eb49be0b9722ee01ee4e52e63beb2","impliedFormat":1},{"version":"db6d2d9daad8a6d83f281af12ce4355a20b9a3e71b82b9f57cddcca0a8964a96","impliedFormat":1},{"version":"446a50749b24d14deac6f8843e057a6355dd6437d1fac4f9e5ce4a5071f34bff","impliedFormat":1},{"version":"182e9fcbe08ac7c012e0a6e2b5798b4352470be29a64fdc114d23c2bab7d5106","impliedFormat":1},{"version":"2f4e6b4d39426a1b85ecf4bdeb9dddbf4d9b3397d95d8555d46f925c9519ec7d","impliedFormat":1},{"version":"78a2869ad0cbf3f9045dda08c0d4562b7e1b2bfe07b19e0db072f5c3c56e9584","impliedFormat":1},{"version":"89d5d28d4f57e000b836ac273079be1b75710e28ce14750d081fb420d37e2ca5","impliedFormat":1},{"version":"fd4e24ccff3966390600d7f5d6aa1fed5a512e92ada735ea5fbc933d313ad3d3","impliedFormat":1},{"version":"b7cddfe1aa6b86b5fad3c9ccb30d05b3ccb165aebbf112f48d2d8a5f69dd98b1","impliedFormat":1},{"version":"a86f82d646a739041d6702101afa82dcb935c416dd93cbca7fd754fd0282ce1f","impliedFormat":1},{"version":"ad0d1d75d129b1c80f911be438d6b61bfa8703930a8ff2be2f0e1f8a91841c64","impliedFormat":1},{"version":"bd2c7ada3dee03653d3f601011d30072194bc3970cd93208f9588fbdc0c69347","impliedFormat":1},{"version":"e480da45d32313e7174b265674da504f075f59ef326852f0c5a5d863b438ae85","impliedFormat":1},{"version":"ad54850f61fcf5d014e11be80d2f46fea9265cfa7e77456da876f7833ef81769","impliedFormat":1},{"version":"6f7c9e8bd2b5b6a080b07080065f94900bd3c7e5ebbd3047bc33fcce2fab1dd8","impliedFormat":1},{"version":"3e7efde639c6a6c3edb9847b3f61e308bf7a69685b92f665048c45132f51c218","impliedFormat":1},{"version":"df45ca1176e6ac211eae7ddf51336dc075c5314bc5c253651bae639defd5eec5","impliedFormat":1},{"version":"8a0e762ceb20c7e72504feef83d709468a70af4abccb304f32d6b9bac1129b2c","impliedFormat":1},{"version":"da5950ee2a90721df6f3fba45f5d05308f7e4c35835392215dd2cd404505e2de","impliedFormat":1},{"version":"ce75b1aebb33d510ff28af960a9221410a3eaf7f18fc5f21f9404075fba77256","impliedFormat":1},{"version":"f42d5fed19610d485c646a0c430e768115567d078c7fc855c57b0c578b3d6cd3","impliedFormat":1},{"version":"ee8df1cb8d0faaca4013a1b442e99130769ce06f438d18d510fed95890067563","impliedFormat":1},{"version":"d5630f2ad9b4541e5ce891648121022f9412ecdca1820baa1f0104f70fd7eff7","impliedFormat":1},{"version":"4d15375ab13497104bc8fe56fdef2b5fd6853f29255737d23a33fa306ff7fd69","impliedFormat":1},{"version":"2cd3fc1d0d6a1e85baffd2d4f50f5efb192b5446eef567e97c94765402f0aad4","impliedFormat":1},{"version":"e4cbf2f1e89ecccaddd2c045e600ae41b732295953fb06247c7dcbc2d281ed30","impliedFormat":1},{"version":"6dcedaef57dff0d79a05ab0ab602cde74db803d1e765468bf91263786a383e1b","impliedFormat":1},{"version":"8c1697d90c394a6fd955b98eae01238eff628e129b987a68aea10f898a48e7da","impliedFormat":1},{"version":"7580e62139cb2b44a0270c8d01abcbfcba2819a02514a527342447fa69b34ef1","impliedFormat":1},{"version":"42c169fb8c2d42f4f668c624a9a11e719d5d07dacbebb63cbcf7ef365b0a75b3","impliedFormat":1},{"version":"f374cb24e93e7798c4d9e83ff872fa52d2cdb36306392b840a6ddf46cb925cb6","impliedFormat":1},{"version":"d10d63718e1646c2279e3b33831f82c60e31f622b2b7020f1196409ca4c09242","impliedFormat":1},{"version":"106c6025f1d99fd468fd8bf6e5bda724e11e5905a4076c5d29790b6c3745e50c","impliedFormat":1},{"version":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","impliedFormat":1},{"version":"148679c6d0f449210a96e7d2e562d589e56fcde87f843a92808b3ff103f1a774","impliedFormat":1},{"version":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","impliedFormat":1},{"version":"02436d7e9ead85e09a2f8e27d5f47d9464bced31738dec138ca735390815c9f0","impliedFormat":1},{"version":"f8d5ff8eafd37499f2b6a98659dd9b45a321de186b8db6b6142faed0fea3de77","impliedFormat":1},{"version":"c86fe861cf1b4c46a0fb7d74dffe596cf679a2e5e8b1456881313170f092e3fa","impliedFormat":1},{"version":"a22dd55aa4d39906252000ab8e8a1b83b195eef7f4274eb51e457c1f11cf6580","impliedFormat":1},{"version":"540cc83ab772a2c6bc509fe1354f314825b5dba3669efdfbe4693ecd3048e34f","impliedFormat":1},{"version":"121b0696021ab885c570bbeb331be8ad82c6efe2f3b93a6e63874901bebc13e3","impliedFormat":1},{"version":"612d9da66bb046a9c1e2e8d026245ded881fc4b9f98cbfae714415d57ee0ae0b","impliedFormat":1},{"version":"32c2ad9494dad5d11b0564a619fee18f388db6c1e9e2cd3c360b3122549691eb","impliedFormat":1},{"version":"6c301d40aec56a74ec7bd7324e31a728dadf9bfba3e96def02938d3d973534ec","impliedFormat":1},{"version":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","impliedFormat":1},{"version":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","impliedFormat":1},{"version":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881","impliedFormat":1},{"version":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881","impliedFormat":1},{"version":"aa14cee20aa0db79f8df101fc027d929aec10feb5b8a8da3b9af3895d05b7ba2","impliedFormat":1},{"version":"493c700ac3bd317177b2eb913805c87fe60d4e8af4fb39c41f04ba81fae7e170","impliedFormat":1},{"version":"aeb554d876c6b8c818da2e118d8b11e1e559adbe6bf606cc9a611c1b6c09f670","impliedFormat":1},{"version":"acf5a2ac47b59ca07afa9abbd2b31d001bf7448b041927befae2ea5b1951d9f9","impliedFormat":1},{"version":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881","impliedFormat":1},{"version":"d71291eff1e19d8762a908ba947e891af44749f3a2cbc5bd2ec4b72f72ea795f","impliedFormat":1},{"version":"c0480e03db4b816dff2682b347c95f2177699525c54e7e6f6aa8ded890b76be7","impliedFormat":1},{"version":"25a5f6fd3a2243c859eddc99ab5fba11d970af2fe7a5df9c32b7668f76f97b01","impliedFormat":1},{"version":"8d207e1f9d2c30d6f77dfa693f3827c3fbf0d89240297e10bdfe1041d433df68","impliedFormat":1},{"version":"b620391fe8060cf9bedc176a4d01366e6574d7a71e0ac0ab344a4e76576fcbb8","impliedFormat":1},{"version":"6ac6715916fa75a1f7ebdfeacac09513b4d904b667d827b7535e84ff59679aff","impliedFormat":1},{"version":"2652448ac55a2010a1f71dd141f828b682298d39728f9871e1cdf8696ef443fd","impliedFormat":1},{"version":"d682336018141807fb602709e2d95a192828fcb8d5ba06dda3833a8ea98f69e3","impliedFormat":1},{"version":"6124e973eab8c52cabf3c07575204efc1784aca6b0a30c79eb85fe240a857efa","impliedFormat":1},{"version":"0d891735a21edc75df51f3eb995e18149e119d1ce22fd40db2b260c5960b914e","impliedFormat":1},{"version":"3b414b99a73171e1c4b7b7714e26b87d6c5cb03d200352da5342ab4088a54c85","impliedFormat":1},{"version":"4fbd3116e00ed3a6410499924b6403cc9367fdca303e34838129b328058ede40","impliedFormat":1},{"version":"9c82171d836c47486074e4ca8e059735bf97b205e70b196535b5efd40cbe1bc5","impliedFormat":1},{"version":"8c70ddc0c22d85e56011d49fddfaae3405eb53d47b59327b9dd589e82df672e7","impliedFormat":1},{"version":"2f9c89cbb29d362290531b48880a4024f258c6033aaeb7e59fbc62db26819650","impliedFormat":1},{"version":"a365c4d3bed3be4e4e20793c999c51f5cd7e6792322f14650949d827fbcd170f","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":"273782b8454e78f6a8b30d2cfbf6860499c930595095fcc1689637115f0eddda","affectsGlobalScope":true,"impliedFormat":1},{"version":"3fbdd025f9d4d820414417eeb4107ffa0078d454a033b506e22d3a23bc3d9c41","affectsGlobalScope":true,"impliedFormat":1},{"version":"dba114fb6a32b355a9cfc26ca2276834d72fe0e94cd2c3494005547025015369","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":"9f9bb6755a8ce32d656ffa4763a8144aa4f274d6b69b59d7c32811031467216e","impliedFormat":1},{"version":"5c32bdfbd2d65e8fffbb9fbda04d7165e9181b08dad61154961852366deb7540","impliedFormat":1},{"version":"ddff7fc6edbdc5163a09e22bf8df7bef75f75369ebd7ecea95ba55c4386e2441","impliedFormat":1},{"version":"0c05e9842ec4f8b7bfebfd3ca61604bb8c914ba8da9b5337c4f25da427a005f2","impliedFormat":1},{"version":"faed7a5153215dbd6ebe76dfdcc0af0cfe760f7362bed43284be544308b114cf","impliedFormat":1},{"version":"7029e566b8df176f703fb59fd437a38670c7a0e02c58b2d66dfb5b2e2b2defdb","impliedFormat":1},{"version":"7f2aa4d4989a82530aaac3f72b3dceca90e9c25bee0b1a327e8a08a1262435ad","impliedFormat":1},{"version":"d96b39301d0ded3f1a27b47759676a33a02f6f5049bfcbde81e533fd10f50dcb","impliedFormat":1},{"version":"e9f147ecca73d9346a4c073432843c159ccbe50bdcb678a78f6da10eae2cecf4","impliedFormat":1},{"version":"de061f7d72bd65c06fc1419f841dfdcb29a8e22fe6fa527d1e6eb20b897d4de0","impliedFormat":1},{"version":"663beafc2446079574570cba86e9b15f986f908ddb1b01274509970126fee945","impliedFormat":1},{"version":"a3102887d5058bf4cb5b37fa6964c09e9527c42053b3b5c642b89878620748de","impliedFormat":1},{"version":"0aaaa1727edd29673d85c9b26d7ca4d54e5407a48586903c51b48b7f7d196f61","impliedFormat":1},{"version":"d35bca0b261bff02635758c48e8ab99c61c420d0dfabbcf467e847171d876b7d","impliedFormat":1},{"version":"3bc12c40d90c342ff88a3d876996c555ed5cbee5fe8c3308a240b321f401ee46","impliedFormat":1},{"version":"ba130768aae855a5477e9e148e5c879548e6e7ccbcc56fd1934c8a18ea5b7569","impliedFormat":1},{"version":"2e4f37ffe8862b14d8e24ae8763daaa8340c0df0b859d9a9733def0eee7562d9","impliedFormat":1},{"version":"d38530db0601215d6d767f280e3a3c54b2a83b709e8d9001acb6f61c67e965fc","impliedFormat":1},{"version":"6ac6715916fa75a1f7ebdfeacac09513b4d904b667d827b7535e84ff59679aff","impliedFormat":1},{"version":"b499af2054a037a162b3b72cd886f48bbf32a3502c865c6e29fac7d2ab3ce0b5","impliedFormat":1},{"version":"b83cb14474fa60c5f3ec660146b97d122f0735627f80d82dd03e8caa39b4388c","impliedFormat":1},{"version":"48773ca557b0319c2ee62ae249cf52a81709e8be139920d6479a66274de7c4ed","impliedFormat":1},{"version":"7274fbffbd7c9589d8d0ffba68157237afd5cecff1e99881ea3399127e60572f","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":"802e797bcab5663b2c9f63f51bdf67eff7c41bc64c0fd65e6da3e7941359e2f7","impliedFormat":1},{"version":"b01bd582a6e41457bc56e6f0f9de4cb17f33f5f3843a7cf8210ac9c18472fb0f","impliedFormat":1},{"version":"8b4327413e5af38cd8cb97c59f48c3c866015d5d642f28518e3a891c469f240e","impliedFormat":1},{"version":"4cceef18d7f088e797a463e90b7a9dad10c6bc667724b7686e3e740ae00122be","impliedFormat":1},{"version":"7ee86fbb3754388e004de0ef9e6505485ddfb3be7640783d6d015711c03d302d","impliedFormat":1},{"version":"cc1954b539604b1e562319119ac7e888172208b32ca873f9a357a92c826bd046","impliedFormat":1},{"version":"a67b87d0281c97dfc1197ef28dfe397fc2c865ccd41f7e32b53f647184cc7307","impliedFormat":1},{"version":"771ffb773f1ddd562492a6b9aaca648192ac3f056f0e1d997678ff97dbb6bf9b","impliedFormat":1},{"version":"43e96a3d5d1411ab40ba2f61d6a3192e58177bcf3b133a80ad2a16591611726d","impliedFormat":1},{"version":"232f70c0cf2b432f3a6e56a8dc3417103eb162292a9fd376d51a3a9ea5fbbf6f","impliedFormat":1},{"version":"bb8f2dbc03533abca2066ce4655c119bff353dd4514375beb93c08590c03e023","impliedFormat":1},{"version":"706dd95827e7ebaabda91d5db2b755233e0952d98570e9c032b0f066a15c1177","affectsGlobalScope":true,"impliedFormat":1},{"version":"0b103e9abfe82d14c0ad06a55d9f91d6747154ef7cacc73cf27ecad2bfb3afcf","impliedFormat":1},{"version":"cd9304972e6d616197fb44fce00540a904f38b54306a1951b5dbeaf3c01ab5bd","impliedFormat":1},{"version":"77438e2c397a3db78407621cfc57241a305b310ddea2c185f1d555248297f587","impliedFormat":1},{"version":"120599fd965257b1f4d0ff794bc696162832d9d8467224f4665f713a3119078b","impliedFormat":1},{"version":"43ba4f2fa8c698f5c304d21a3ef596741e8e85a810b7c1f9b692653791d8d97a","impliedFormat":1},{"version":"5433f33b0a20300cca35d2f229a7fc20b0e8477c44be2affeb21cb464af60c76","impliedFormat":1},{"version":"db036c56f79186da50af66511d37d9fe77fa6793381927292d17f81f787bb195","impliedFormat":1},{"version":"a6805fcafed712aea7759f8bc731014f9d22738c1d6ef9d43b8091d1d48346d5","impliedFormat":1},{"version":"c49469a5349b3cc1965710b5b0f98ed6c028686aa8450bcb3796728873eb923e","impliedFormat":1},{"version":"4a889f2c763edb4d55cb624257272ac10d04a1cad2ed2948b10ed4a7fda2a428","impliedFormat":1},{"version":"7bb79aa2fead87d9d56294ef71e056487e848d7b550c9a367523ee5416c44cfa","impliedFormat":1},{"version":"d88ea80a6447d7391f52352ec97e56b52ebec934a4a4af6e2464cfd8b39c3ba8","impliedFormat":1},{"version":"142617b3cdf902b69c6464c9fbd942b60ab3e733ca18c032b19e0f7e2adbefe8","impliedFormat":1},{"version":"0b603555f1881f87256ffd6344d3e3ed6d466c2e701eabf381f28be8c2125892","impliedFormat":1},{"version":"897e4f7662488e3ecc79e743bdd3b78f13bdb69a97851afa5b440c4211e32ea9","impliedFormat":1},{"version":"e2e1c6d3b2d93add5200bd7bc1a8cccb4e446836b2111ece45db8683a2c765de","impliedFormat":1},{"version":"251b03d5cd243854ce870d9a9a39f491faf69898c5d6b5eee28cc7649c57417b","impliedFormat":1},{"version":"27ff4196654e6373c9af16b6165120e2dd2169f9ad6abb5c935af5abd8c7938c","impliedFormat":1},{"version":"2c4de79f406d137390608e8c0a44fba2ff8e00bacfcae7c9d1781fef10e9440d","impliedFormat":1},{"version":"07ba23a10465791be5d22deaf5ef7de7658774ddff53721e5ea17fedea1bc721","impliedFormat":1},{"version":"dca8c645c5afeb03b1ecedbf16323f33e7d0afaa6256c8e047e6e38087a97f53","impliedFormat":1},{"version":"775f181bd4a533d6f8b5e55ec1d9f1624559720ae8a70e9432258da26b38d27c","impliedFormat":1},{"version":"796273b2edc72e78a04e86d7c58ae94d370ab93a0ddf40b1aa85a37a1c29ecd7","impliedFormat":1},{"version":"5df15a69187d737d6d8d066e189ae4f97e41f4d53712a46b2710ff9f8563ec9f","impliedFormat":1},{"version":"7715134a0cf07dd41a9da2895d708625a3a303a0385e355ecaaf0b8bfaef2550","impliedFormat":1},{"version":"6ac6715916fa75a1f7ebdfeacac09513b4d904b667d827b7535e84ff59679aff","impliedFormat":1},{"version":"622694a8522b46f6310c2a9b5d2530dde1e2854cb5829354e6d1ff8f371cf469","impliedFormat":1},{"version":"cd8ce8d68567f62dd580b3c3c37777ac3f5b81944c7417f5ea83030eab533385","impliedFormat":1},{"version":"e5c939d896565dcac0f6fbdbada11284e7728ef26a069561c09aa5aa4a788393","impliedFormat":1},{"version":"9e2739b32f741859263fdba0244c194ca8e96da49b430377930b8f721d77c000","impliedFormat":1},{"version":"a9e6c0ff3f8186fccd05752cf75fc94e147c02645087ac6de5cc16403323d870","impliedFormat":1},{"version":"49af4b52f0d4d2304c5f2c6fe5fab3e153e0acc38830d0202821b877c097dd02","impliedFormat":1},{"version":"49c346823ba6d4b12278c12c977fb3a31c06b9ca719015978cb145eb86da1c61","impliedFormat":1},{"version":"bfac6e50eaa7e73bb66b7e052c38fdc8ccfc8dbde2777648642af33cf349f7f1","impliedFormat":1},{"version":"92f7c1a4da7fbfd67a2228d1687d5c2e1faa0ba865a94d3550a3941d7527a45d","impliedFormat":1},{"version":"f53b120213a9289d9a26f5af90c4c686dd71d91487a0aa5451a38366c70dc64b","impliedFormat":1},{"version":"e68b8e5a1df7c1be2bc105141456ecba70215806e1c28bfbc5c12bfce4be6e68","impliedFormat":1},{"version":"511c8f02329808d47d00b859c532ae9115590048b17325a946c74dac48428650","impliedFormat":1},{"version":"57d67b72e06059adc5e9454de26bbfe567d412b962a501d263c75c2db430f40e","impliedFormat":1},{"version":"b5f9e66625783eefcbe3d2da074b2e7ba2066d61ce3fc6ef4f22805ad946cab4","impliedFormat":1},{"version":"e37115962d284b9f7a37c2bdd2add50f88365dde41f5e0ff591ffc48a8ec7575","impliedFormat":1},{"version":"6459054aabb306821a043e02b89d54da508e3a6966601a41e71c166e4ea1474f","impliedFormat":1},{"version":"bb37588926aba35c9283fe8d46ebf4e79ffe976343105f5c6d45f282793352b2","impliedFormat":1},{"version":"f89488602bec98a142072fae7ea5ba99431a569ff580c64b7be39896474799d8","impliedFormat":1},{"version":"bbbc47961f39a57df103cf4ca3bb8f8732b4b6678a18225a0aa76d59c466956c","impliedFormat":1},{"version":"2e6114a7dd6feeef85b2c80120fdbfb59a5529c0dcc5bfa8447b6996c97a69f5","impliedFormat":1},{"version":"2ffb043dc5163458e473b7010859f86e01dc4edffcae0a93d885d028b426a546","impliedFormat":1},{"version":"c8f004e6036aa1c764ad4ec543cf89a5c1893a9535c80ef3f2b653e370de45e6","impliedFormat":1},{"version":"dd80b1e600d00f5c6a6ba23f455b84a7db121219e68f89f10552c54ba46e4dc9","impliedFormat":1},{"version":"b064c36f35de7387d71c599bfcf28875849a1dbc733e82bd26cae3d1cd060521","impliedFormat":1},{"version":"05c7280d72f3ed26f346cbe7cbbbb002fb7f15739197cbbee6ab3fd1a6cb9347","impliedFormat":1},{"version":"8de9fe97fa9e00ec00666fa77ab6e91b35d25af8ca75dabcb01e14ad3299b150","impliedFormat":1},{"version":"04b7b2e0832dfd3c31e81df3975e8d8fda28e7ff999b0aa2932608a8f6661d5c","impliedFormat":1},{"version":"ca2d34c6ed5cbd3070b8b6f32f42ae54adcc6499c1e4b99f0a5798b3f27cc653","impliedFormat":1},{"version":"9ec68995e66dd6b9dac834bf5ae85fde802714ea2e82151a5d1d53ef01b463ef","impliedFormat":1},{"version":"5c4d626b4902f2ef8a1cc146d761d276cef988016dc674e3b98fbad70e64bc9f","impliedFormat":1},{"version":"fdfaa0aad899524962e2955287b5b991ffe3be50f64e02eb60c933ca44644a94","impliedFormat":1},{"version":"53c972a0f9bc3a4ec70fff7314123ea8cfcf75b3703046f767d2dc1eea87b2fb","impliedFormat":1},{"version":"f974e4a06953682a2c15d5bd5114c0284d5abf8bc0fe4da25cb9159427b70072","impliedFormat":1},{"version":"50256e9c31318487f3752b7ac12ff365c8949953e04568009c8705db802776fb","impliedFormat":1},{"version":"7d73b24e7bf31dfb8a931ca6c4245f6bb0814dfae17e4b60c9e194a631fe5f7b","impliedFormat":1},{"version":"d130c5f73768de51402351d5dc7d1b36eaec980ca697846e53156e4ea9911476","impliedFormat":1},{"version":"413586add0cfe7369b64979d4ec2ed56c3f771c0667fbde1bf1f10063ede0b08","impliedFormat":1},{"version":"06472528e998d152375ad3bd8ebcb69ff4694fd8d2effaf60a9d9f25a37a097a","impliedFormat":1},{"version":"7303b45138d2511035056a5901a1490ebdcbf055cbb1276f8629c5121cbe733e","impliedFormat":1},{"version":"27f874cd5327507eeff699a74567f60c1215b94509f4308633a7b01922471ed2","impliedFormat":1},{"version":"a401617604fa1f6ce437b81689563dfdc377069e4c58465dbd8d16069aede0a5","impliedFormat":1},{"version":"2c6cf04bc525caf6546e859e8ef10bfb9573837ec0bc5ec7b53a7b1b8ca72781","impliedFormat":1},{"version":"8695dec09ad439b0ceef3776ea68a232e381135b516878f0901ed2ea114fd0fe","impliedFormat":1},{"version":"304b44b1e97dd4c94697c3313df89a578dca4930a104454c99863f1784a54357","impliedFormat":1},{"version":"0a437ae178f999b46b6153d79095b60c42c996bc0458c04955f1c996dc68b971","impliedFormat":1},{"version":"74b2a5e5197bd0f2e0077a1ea7c07455bbea67b87b0869d9786d55104006784f","impliedFormat":1},{"version":"4a7baeb6325920044f66c0f8e5e6f1f52e06e6d87588d837bdf44feb6f35c664","impliedFormat":1},{"version":"87cc05fe13108f02e12da7e3efd8e360fef78d96a0c9e11408ea1b1b9fb3e03d","impliedFormat":1},{"version":"1abbf67c218d23c2ce76887caac2df6c7dab3d97ba2b65348432b876f510002a","impliedFormat":1},{"version":"1a82deef4c1d39f6882f28d275cad4c01f907b9b39be9cbc472fcf2cf051e05b","impliedFormat":1},{"version":"4b20fcf10a5413680e39f5666464859fc56b1003e7dfe2405ced82371ebd49b6","impliedFormat":1},{"version":"c06ef3b2569b1c1ad99fcd7fe5fba8d466e2619da5375dfa940a94e0feea899b","impliedFormat":1},{"version":"f7d628893c9fa52ba3ab01bcb5e79191636c4331ee5667ecc6373cbccff8ae12","impliedFormat":1},{"version":"1d879125d1ec570bf04bc1f362fdbe0cb538315c7ac4bcfcdf0c1e9670846aa6","impliedFormat":1},{"version":"dad97c99382889e9c7d1a9d8275500ff71235130fae9f8916fdbf3641d56e592","impliedFormat":1},{"version":"a6dba407fc287f1e25454e75028c91bbc00675f2d1c4e8b3edcc36c08611a486","impliedFormat":1},{"version":"d663134457d8d669ae0df34eabd57028bddc04fc444c4bc04bc5215afc91e1f4","impliedFormat":1},{"version":"e91f7b1344577a02f051b9b471f33044fef8334a76dc9e1de003d17595a5219b","impliedFormat":1},{"version":"c0723195c85e19656d6b5b9fdb81d3f3403c1ae4679e722c6ea058c516b38d12","impliedFormat":1},{"version":"b55eb9f72166093b5460d34b34f5d8699c968de3bc3fc696e40f2c93f2ebf650","impliedFormat":1},{"version":"71d9eb4c4e99456b78ae182fb20a5dfc20eb1667f091dbb9335b3c017dd1c783","impliedFormat":1},{"version":"cfa846a7b7847a1d973605fbb8c91f47f3a0f0643c18ac05c47077ebc72e71c7","impliedFormat":1},{"version":"1594da19968752a22b2ac48c2d0e60575700e745c577a8a4a676b841238ad5bb","impliedFormat":1},{"version":"e0cee12109e0a10a4c3d6769fcc7644b7c1ea7f52365bea51728f5af29f8a137","impliedFormat":1},{"version":"7d4254b4c6c67a29d5e7f65e67d72540480ac2cfb041ca484847f5ae70480b62","impliedFormat":1},{"version":"3536968defef8a75514f547ead5e2e9c1e984820290ec9b00c5fdfb6ef786535","impliedFormat":1},{"version":"d83773870080c30a230e322ce13a9c6f3398e8dacea4ea8a83e26370f3bac23e","impliedFormat":1},{"version":"dcfeaf98d66314fec29a9076c4290e45d0b196a65827becc19138e9c7b855f37","impliedFormat":1},{"version":"6849fe9210fe4946d5f085bfed36758f33dc6ae15a751338d178dd4daa017c46","impliedFormat":1},{"version":"888cda0fa66d7f74e985a3f7b1af1f64b8ff03eb3d5e80d051c3cbdeb7f32ab7","impliedFormat":1},{"version":"60681e13f3545be5e9477acb752b741eae6eaf4cc01658a25ec05bff8b82a2ef","impliedFormat":1},{"version":"ffae4e1e06aa848a1e4bcef162cd1c48e5909b26223515981310af9c036bdfc7","impliedFormat":1},{"version":"a57b1802794433adec9ff3fed12aa79d671faed86c49b09e02e1ac41b4f1d33a","impliedFormat":1},{"version":"34e16eb7c31768a11a08aebcfb3d70d7b8f0b016197e98d8419e566ceae6d6c8","impliedFormat":1},{"version":"f94ec1f7e4b709d26960306c9082a7a1b728a6e13089346aa48ba57c74cbf47e","impliedFormat":1},{"version":"9a11cb4033405e96c247cd5aa29790212aaffdd127869e8a5219103f0b389fd5","impliedFormat":1},{"version":"01479d9d5a5dda16d529b91811375187f61a06e74be294a35ecce77e0b9e8d6c","impliedFormat":1},{"version":"aff5213585cb72e94054dfe17250ff315f3569b3919d1ef1ad235f37c4ee894e","impliedFormat":1},{"version":"fb2ea35e1be6388d722d7725e2b49c697d34d9c890c3b96758faaeb86d35cef8","impliedFormat":1},{"version":"ce0df82a9ae6f914ba08409d4d883983cc08e6d59eb2df02d8e4d68309e7848b","impliedFormat":1},{"version":"1a4dc28334a926d90ba6a2d811ba0ff6c22775fcc13679521f034c124269fd40","impliedFormat":1},{"version":"f05315ff85714f0b87cc0b54bcd3dde2716e5a6b99aedcc19cad02bf2403e08c","impliedFormat":1},{"version":"5fad3b31fc17a5bc58095118a8b160f5260964787c52e7eb51e3d4fcf5d4a6f0","impliedFormat":1},{"version":"72105519d0390262cf0abe84cf41c926ade0ff475d35eb21307b2f94de985778","impliedFormat":1},{"version":"456006a6975b26c0a1785feddae165f6d307e2d601ffde27e21fc4a790e448a4","impliedFormat":1},{"version":"c857e0aae3f5f444abd791ec81206020fbcc1223e187316677e026d1c1d6fe08","impliedFormat":1},{"version":"ccf6dd45b708fb74ba9ed0f2478d4eb9195c9dfef0ff83a6092fa3cf2ff53b4f","impliedFormat":1},{"version":"1fe0d18b111e1145a7e7601855bccd4ca20f24e3b9a5aba6bb1fa9d1a7059170","impliedFormat":1},{"version":"5632c3c26d420c063eebe64c45b1248b9492a67bf44f1d0c57e9dc8f6cf449bb","impliedFormat":1},{"version":"0df5aa619ab12993a39ea6dae062ee46eadbb4d738916460e636ada52bced75b","impliedFormat":1},{"version":"8fca3039857709484e5893c05c1f9126ab7451fa6c29e19bb8c2411a2e937345","impliedFormat":1},{"version":"35069c2c417bd7443ae7c7cafd1de02f665bf015479fec998985ffbbf500628c","impliedFormat":1},{"version":"10ab7be91f87ebe8916b62cf28af2e45b5601fc7b0e311adf838f912c6b31dd8","impliedFormat":1},{"version":"bc636fbc08e0979ceb7eb0731a33000283d77a33b62e1f71ee65be50394e40ba","impliedFormat":1},{"version":"7e0b7f91c5ab6e33f511efc640d36e6f933510b11be24f98836a20a2dc914c2d","impliedFormat":1},{"version":"045b752f44bf9bbdcaffd882424ab0e15cb8d11fa94e1448942e338c8ef19fba","impliedFormat":1},{"version":"2894c56cad581928bb37607810af011764a2f511f575d28c9f4af0f2ef02d1ab","impliedFormat":1},{"version":"0a72186f94215d020cb386f7dca81d7495ab6c17066eb07d0f44a5bf33c1b21a","impliedFormat":1},{"version":"75bbd3be047d539988a0ff0b56384ef7a6a25f3b676ad96bee547d44c31622a7","impliedFormat":1},{"version":"42960001a776b089ade681ab5cfddc936e0afb0615133ec1841f3dee89d3e1bf","impliedFormat":1},{"version":"0aedb02516baf3e66b2c1db9fef50666d6ed257edac0f866ea32f1aa05aa474f","impliedFormat":1},{"version":"da47712b394d944328245482603bc6f416d3949b67c9392279caab595076b510","affectsGlobalScope":true,"impliedFormat":1},{"version":"37d0071d8f0a06dc55c2c5e0ec3391affd4fd107c53410bf358196ec0bf3923f","impliedFormat":1},{"version":"b213dad76ca37fd552274c9499056e1c0d9c1bd38a55bb7f68b22ba6b84c3ad7","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":"5a49adaef698b7ad7e6127949fa1b0bbd3d46b7cbd11c54e392a4dcdd51f5190","impliedFormat":1},{"version":"6ee598cdfdd0fa52039dca135b3dfff7b49035dc13292143e0a93843e3861967","impliedFormat":1},{"version":"27be6622e2922a1b412eb057faa854831b95db9db5035c3f6d4b677b902ab3b7","impliedFormat":1},{"version":"5c634644d45a1b6bc7b05e71e05e52ec04f3d73d9ac85d5927f647a5f965181a","impliedFormat":1},{"version":"2489bf04d77dc025ba67f49f1a56eb24b9db477d5ff88123d887e163ed1776aa","impliedFormat":1},{"version":"63a7595a5015e65262557f883463f934904959da563b4f788306f699411e9bac","impliedFormat":1},{"version":"4ba137d6553965703b6b55fd2000b4e07ba365f8caeb0359162ad7247f9707a6","impliedFormat":1},{"version":"0b77b819b5417775fccb20c678293cf614c054a5b1a65421a5b933a9124ba998","impliedFormat":1},{"version":"eb5acb58487367e502d994b57e2c58255d8241f481ea8efa8e79af23af3f41c2","impliedFormat":1},{"version":"9252d498a77517aab5d8d4b5eb9d71e4b225bbc7123df9713e08181de63180f6","impliedFormat":1},{"version":"b1f1d57fde8247599731b24a733395c880a6561ec0c882efaaf20d7df968c5af","impliedFormat":1},{"version":"6715dc4eb59c8ea9abe2b78c235ed331dc710a06fe56798868dbc4d40cd1b707","impliedFormat":1},{"version":"35e6379c3f7cb27b111ad4c1aa69538fd8e788ab737b8ff7596a1b40e96f4f90","impliedFormat":1},{"version":"1fffe726740f9787f15b532e1dc870af3cd964dbe29e191e76121aa3dd8693f2","impliedFormat":1},{"version":"5a3ea721d03a361ccbdd7390ccd75f6e84cbca3a3f01f4b331ecc9af31890c49","impliedFormat":1},{"version":"e7dfaee4af38d45b1cab8a1ee0b3bc1f85ddcf64545ed391d675d78ae6526274","affectsGlobalScope":true,"impliedFormat":1},{"version":"e8daa443eaf9a27fd382cc1f8ebe30330c0f4d89511cfb469166874806751d35","impliedFormat":1},{"version":"af48e58339188d5737b608d41411a9c054685413d8ae88b8c1d0d9bfabdf6e7e","impliedFormat":1},{"version":"616775f16134fa9d01fc677ad3f76e68c051a056c22ab552c64cc281a9686790","impliedFormat":1},{"version":"65c24a8baa2cca1de069a0ba9fba82a173690f52d7e2d0f1f7542d59d5eb4db0","impliedFormat":1},{"version":"f9fe6af238339a0e5f7563acee3178f51db37f32a2e7c09f85273098cee7ec49","impliedFormat":1},{"version":"1de8c302fd35220d8f29dea378a4ae45199dc8ff83ca9923aca1400f2b28848a","impliedFormat":1},{"version":"77e71242e71ebf8528c5802993697878f0533db8f2299b4d36aa015bae08a79c","impliedFormat":1},{"version":"98a787be42bd92f8c2a37d7df5f13e5992da0d967fab794adbb7ee18370f9849","impliedFormat":1},{"version":"332248ee37cca52903572e66c11bef755ccc6e235835e63d3c3e60ddda3e9b93","impliedFormat":1},{"version":"94e8cc88ae2ef3d920bb3bdc369f48436db123aa2dc07f683309ad8c9968a1e1","impliedFormat":1},{"version":"4545c1a1ceca170d5d83452dd7c4994644c35cf676a671412601689d9a62da35","impliedFormat":1},{"version":"320f4091e33548b554d2214ce5fc31c96631b513dffa806e2e3a60766c8c49d9","impliedFormat":1},{"version":"a2d648d333cf67b9aeac5d81a1a379d563a8ffa91ddd61c6179f68de724260ff","impliedFormat":1},{"version":"d90d5f524de38889d1e1dbc2aeef00060d779f8688c02766ddb9ca195e4a713d","impliedFormat":1},{"version":"07ed3ddab975995eea41b22f3010506fb9f5fb301d04820b07d7a1aee5477d7c","impliedFormat":1},{"version":"969d8b0965849f4bae7cab0ba90bd1e1220e95999c2c6f01117fa7500901c017","impliedFormat":1},{"version":"6ec840ee5e2bc103f557fe38b1d585ee250540468713d7634ee066de372bf332","impliedFormat":1},{"version":"b0309e1eda99a9e76f87c18992d9c3689b0938266242835dd4611f2b69efe456","impliedFormat":1},{"version":"47699512e6d8bebf7be488182427189f999affe3addc1c87c882d36b7f2d0b0e","impliedFormat":1},{"version":"6ceb10ca57943be87ff9debe978f4ab73593c0c85ee802c051a93fc96aaf7a20","impliedFormat":1},{"version":"1de3ffe0cc28a9fe2ac761ece075826836b5a02f340b412510a59ba1d41a505a","impliedFormat":1},{"version":"e46d6cc08d243d8d0d83986f609d830991f00450fb234f5b2f861648c42dc0d8","impliedFormat":1},{"version":"1c0a98de1323051010ce5b958ad47bc1c007f7921973123c999300e2b7b0ecc0","impliedFormat":1},{"version":"ff863d17c6c659440f7c5c536e4db7762d8c2565547b2608f36b798a743606ca","impliedFormat":1},{"version":"5412ad0043cd60d1f1406fc12cb4fb987e9a734decbdd4db6f6acf71791e36fe","impliedFormat":1},{"version":"ad036a85efcd9e5b4f7dd5c1a7362c8478f9a3b6c3554654ca24a29aa850a9c5","impliedFormat":1},{"version":"fedebeae32c5cdd1a85b4e0504a01996e4a8adf3dfa72876920d3dd6e42978e7","impliedFormat":1},{"version":"e297c0a524edee7677939122f90027bfbe5f2698939d9a85728e5044b39c7124","impliedFormat":1},{"version":"cdf21eee8007e339b1b9945abf4a7b44930b1d695cc528459e68a3adc39a622e","impliedFormat":1},{"version":"bc9ee0192f056b3d5527bcd78dc3f9e527a9ba2bdc0a2c296fbc9027147df4b2","impliedFormat":1},{"version":"b62381cae176db34f003cc6172ee8f3e0122014889d66391aa73698105cf4934","impliedFormat":1},{"version":"1d9c0a9a6df4e8f29dc84c25c5aa0bb1da5456ebede7a03e03df08bb8b27bae6","impliedFormat":1},{"version":"84380af21da938a567c65ef95aefb5354f676368ee1a1cbb4cae81604a4c7d17","impliedFormat":1},{"version":"1af3e1f2a5d1332e136f8b0b95c0e6c0a02aaabd5092b36b64f3042a03debf28","impliedFormat":1},{"version":"30d8da250766efa99490fc02801047c2c6d72dd0da1bba6581c7e80d1d8842a4","impliedFormat":1},{"version":"03566202f5553bd2d9de22dfab0c61aa163cabb64f0223c08431fb3fc8f70280","impliedFormat":1},{"version":"41eb514d9ce0a6e87957f08a4b7af70d93f87637f37dee706e2d92a6601c25a9","impliedFormat":1},{"version":"e7765aa8bcb74a38b3230d212b4547686eb9796621ffb4367a104451c3f9614f","impliedFormat":1},{"version":"1de80059b8078ea5749941c9f863aa970b4735bdbb003be4925c853a8b6b4450","impliedFormat":1},{"version":"1d079c37fa53e3c21ed3fa214a27507bda9991f2a41458705b19ed8c2b61173d","impliedFormat":1},{"version":"5bf5c7a44e779790d1eb54c234b668b15e34affa95e78eada73e5757f61ed76a","impliedFormat":1},{"version":"5835a6e0d7cd2738e56b671af0e561e7c1b4fb77751383672f4b009f4e161d70","impliedFormat":1},{"version":"4b7f74b772140395e7af67c4841be1ab867c11b3b82a51b1aeb692822b76c872","impliedFormat":1},{"version":"7bd01f0f28cd3aeb2046274d85208e245965f6f2948edf4f7b2057bcf9f22ccc","impliedFormat":99},{"version":"d2f2cf2b8cc92bea913cda4a076e0f790b23a21e84f989d12f0116a7fe3906e0","impliedFormat":99},{"version":"6de125ea94866c736c6d58d68eb15272cf7d1020a5b459fea1c660027eca9a90","affectsGlobalScope":true,"impliedFormat":1},{"version":"f5b20bc288ee49989c95b20847fc93b96bf61cc0845598897a6a53a967dd7d07","affectsGlobalScope":true,"impliedFormat":1},{"version":"064ac1c2ac4b2867c2ceaa74bbdce0cb6a4c16e7c31a6497097159c18f74aa7c","impliedFormat":1},{"version":"3dc14e1ab45e497e5d5e4295271d54ff689aeae00b4277979fdd10fa563540ae","impliedFormat":1},{"version":"d3b315763d91265d6b0e7e7fa93cfdb8a80ce7cdd2d9f55ba0f37a22db00bdb8","impliedFormat":1},{"version":"b789bf89eb19c777ed1e956dbad0925ca795701552d22e68fd130a032008b9f9","impliedFormat":1},{"version":"1d76866f6aca5bb7b9eb003266628c298607c1242691d029de1b19b39f9c9942","affectsGlobalScope":true},"7b550dda9686c16f36a17bf9051d5dbf31e98555b30d114ac49fc49a1e712651",{"version":"a78793bb6b4b642f2821eb60c9ddfa0d3dd186b28568b5f0f4c268ba2b250bd2","signature":"f5803d39603639ee91c7f21fbd6d792f12358eca4fcf74146d6c2f1343b0c135"},{"version":"eccc6b88a6c5c3815e21afbafc1991ee4066019645d20ed3d05aafc9e54d0f58","signature":"5b3beb9e110c494b12be107c3cece59af336b53d20e481c9bdd7eb554799bde6"},{"version":"8c5eb64fd57d3eedf82b7e474cd7d178e5c0b2eb02d3db9c72e428119b7c99f0","signature":"487e769753040e86224af6f95fdbf933a94c34f1b395d6e506c48417b2ba7ff2"},{"version":"6c2e6283e9451736465aa62fc5e01cabbb61513446957e0507956f7248162bed","signature":"b006d19a31dd8e0870f79a2b7eb1a4f25f72306232d4c8b5d71fe9b14565b36d"},{"version":"c57b441e0c0a9cbdfa7d850dae1f8a387d6f81cbffbc3cd0465d530084c2417d","impliedFormat":99},{"version":"51954e948be6a5b728fcfaf561f12331b4f54f068934c77adfc8f70eea17d285","impliedFormat":1},{"version":"e46429536f43f5910f5b2b0c50bb2769b510a4558bb4b5d20a3b0a9091dbf7c3","signature":"400b40fe5d5f4140993b0ac871686d2b7611ab791e8810b2e14f2d89701fc49e"},{"version":"fe93c474ab38ac02e30e3af073412b4f92b740152cf3a751fdaee8cbea982341","impliedFormat":1},{"version":"3255b97f3f24af29c79cc1aa88004efb13b6285ebdde0a567bf32e19bb65250d","impliedFormat":1},{"version":"1e00b8bf9e3766c958218cd6144ffe08418286f89ff44ba5a2cc830c03dd22c7","impliedFormat":1},{"version":"c8bb01579c9ef5995c8390a8cc7d63ff4da8626643859c77ddadf8d9e5696678","signature":"ea0a7def22250c96963ab5de115c944676e0841797a7edc114d470925252c2a0"},{"version":"e78f1ff29c9175e7e451629df69f06b52e729cfa0d64fb6b0a6555142275b078","signature":"4ef8b0b2f91fee53ff8b0ee7f69fd93b8a294bd7da4c44e40057bf1e14aa0763"},{"version":"166c048927c78e0ca166de2df67186fd3bd3fa9c28092d332370122a54a4b66f","impliedFormat":1},{"version":"44dafc547130d69f8f3ff19973b00a4443a133ceb8cb24c03e0ca9b01626aee6","impliedFormat":99},{"version":"c24ab9ac84d65b417a807ada25456697bb2adf1189fa80cb240625dfb3e61c42","impliedFormat":99},{"version":"d6d57aa3e60250a8526871b3e14abc5a12dc5bb7891512628ffa5c40de369d62","impliedFormat":99},{"version":"0d121799b2cbac398e84a4708fcd82f980f33bf3ac7721a3cf9db9f28d9eb2b2","impliedFormat":99},{"version":"8aed22221e416e7811335f9518690ea0db873de1d0286602e644e1700cd166a4","impliedFormat":99},{"version":"9c3663fa36fb976609d8fc43372ae38dc2e066dab014a955f40ae6430733fb71","impliedFormat":99},{"version":"e38a172f8912eebc79671e07b81687a304a9d366a47933fde9f97ad79f8ac08a","impliedFormat":99},{"version":"2fbe402f0ee5aa8ab55367f88030f79d46211c0a0f342becaa9f648bf8534e9d","impliedFormat":1},{"version":"b94258ef37e67474ac5522e9c519489a55dcb3d4a8f645e335fc68ea2215fe88","impliedFormat":1},{"version":"4e679215c9c8480ea8b876cf74d77c1225da544adaf6acba43634a434275a69d","signature":"677d5d88630239f2364c5a7de8936ab5763cec65206614c814f0122d61d9fd33"},{"version":"539bede51b7dfa42c5168884f8f2075ee38d50fb900da46436f2855e46e84af4","impliedFormat":99},{"version":"4244c6a12dc14768ddc3ee2737ccf1c6c0d07353785d5979df7d250eda461a61","impliedFormat":99},{"version":"cce820aba9ba9d1984461c67d0d543d8eba7ea25c6a1be7a47c31cc18907a631","impliedFormat":99},{"version":"3e7e929f14bc384ed6da8ef0c7dc3aae5ea191494c9554e4327186ef40db2573","impliedFormat":99},{"version":"9d28b54569f4cd1c0c21d95d0e70f6fdbfd792121604b95d7c2d067ee0f0fd11","impliedFormat":99},{"version":"4d857105510df8011cfb5b3769dec55624a1df92e85d399cd03bc82bb89d090c","impliedFormat":99},{"version":"b92dbe495c1dee9f3cd7c1466fdf02476f19ae18a7ecc829e3ed8a380b2d597f","impliedFormat":99},{"version":"bd3e3a447a34cf3dd875ed550ea349589b2dfcd6b3a14abebdc946366bd812a4","impliedFormat":99},{"version":"6b100282ebfd5bfa4d8c72ad5dd3e9d325aa32d0a53623d6171fc2cc2899fbc4","impliedFormat":99},{"version":"31e0d88a23043e61cff5cb8e9bab319b5ca680f2b663e8582d4800a19da8600c","impliedFormat":99},{"version":"5cf87865e3a8b12bb8ddfb311846ff2eae24983faa365f53d9224fb182cd0269","impliedFormat":99},{"version":"98ef9c3f5f15c18abcd6fa9f12e93e1bbd608225501151603cce97642dbc961d","impliedFormat":99},{"version":"c80a56a10f1a8e01c4b7f08df6e9260ae076c910402dae8173fa6c7dcacc51fe","impliedFormat":99},{"version":"becca0fa1bbcc55ad69918f65f771b76904ac98b2563cb34f26fbe240c3d4db3","impliedFormat":99},{"version":"32b344c3765dc7c383516f3326c108ca84c33df44ece8ac789fce47d47ba8810","impliedFormat":99},{"version":"f7d6ecff9a4d631feeaf401c02bb87e26ddb38131c55d15a43b9290747390847","signature":"f774a7e8875649db68f5952801f001f3c316560ede472e5663af7a8c9c18f938"},{"version":"7f19b8476658d25ff197c84030e58cd7395059d876a54630e025951e474ebdae","signature":"cbb6e618cfae37c1feb246b78260428cf2bcba79a0c9bf1ac60d511a4158692d"},{"version":"3a33d94e3e35f61f5c30828f795c8db1d1fbfd2eb9c7d578a8d9276c6d94cc7b","signature":"d4e4eb785403cd7ffa1eb9afe44d7601b52a99cb205972508f2ef4ff5739bd7d"},{"version":"ba1c5c19412fd7f60a9411ec61344c4ec425d77b5a3a78d8f7ce51d1cb4b3855","signature":"5cec2d5111000faf9f06f8fa85b11b747c2fb4db35ada617f019f80de10790b5"},{"version":"b0309aa43d7073c58b43d47f80311b81aad17b395940f43faff11387ff8b2038","signature":"cde8c57cf796fc88faa8ed92f02bb868c64100eb22c6bcf935487bd8eeb1ed08"},{"version":"2ba6dd2fc6a213bef7e1dba18791da6e83992ff17f6bbd50f2c8f7f4b6fa2d82","signature":"132db3de92d2a718bd41fe3f47e75fb6916b1af96d1289347316ee1abc358b06"},{"version":"4f09605424e0a2ce414f48096837fbfaf06f13956829438a5e1743c347bf5cde","signature":"f03c9fc060940404460998108d975d541cbef8644269862a531d5b41edb0ac40"},{"version":"9800c238da31c600373883bb7a1a3ddb431684992dfd2b3112fbc1983403c427","signature":"c1c0fdbb129948e18a8b11c893490ee3ce0055631ad8de1eee247343d8359ce6"},{"version":"2b4276dde46aa2faf0dd86119999c76b81e6488cd6b0d0fcf9fb985769cd11c0","impliedFormat":99},{"version":"38d4cff03e87dc58bfd50ffe5a3fb25e6e6d4136a1282883285baf71d35967c5","impliedFormat":99},{"version":"5ecea63968444d55f7c3cf677cbec9525db9229953b34f06be0386a24b0fffd2","impliedFormat":99},{"version":"6ea9c8bf2ae4d47a0dbc2a1f9ac1e36c639b2ac9225c4d271c2f63a2faf24831","impliedFormat":99},{"version":"a3d603c46b55d51493799241b8a456169d36301cc926ff72c75f5480e7eb25bf","impliedFormat":99},{"version":"773c18e2bcc18598df8f8b2be930eb26b22608edf368e42e9ca3484828ec4122","impliedFormat":99},{"version":"9eb8e1320fc0ecbfba15c0f3452dfc1957543dfbd466aaf8b67ddb0f2ad0f217","impliedFormat":1},{"version":"4faca872dbd194a17b3ee267bd8ddc3daf3d16df96f4e43a02c7d9a862022c4f","impliedFormat":99},{"version":"f89aeba83b1744a0d697c1b7fb8a06d8dc4cf7c0d469d2419772121f499efa8e","impliedFormat":99},{"version":"144a4e5780b800c0553949169f50be285eccbdb0298afd83ef2ae03fef77e2d2","impliedFormat":99},{"version":"66aeb47bf8638d6767f7b4ff684c2d794391c981590073025e98f98e1afed499","impliedFormat":99},{"version":"26748898fec8579096c776866e8e6f07754845b3d08f5ae98c3a59baa9e85c2e","impliedFormat":99},{"version":"6d805abd62920edbd9ed4b20be26d040d01529f3ce53fdab9ca4d0fa9b589f02","impliedFormat":99},{"version":"edbeff52e73b0ff82898142aaf8ffb336910a8ccdfc31b79960ea4ad4c9f407b","impliedFormat":99},{"version":"b64a8c7a27133db3f181199d21c0c582e86f38ba57a031a126b77229526b4916","impliedFormat":99},{"version":"1b1c48c4d7cbe6f40616594c2a3f6f95bb1dcefd200a7e4167e47b67725b631a","impliedFormat":99},{"version":"97b02501eb45f487174d5a0ff89b6a95690d50e9eae242e2162118edd5f2705c","impliedFormat":99},{"version":"8eca47167dadd486582ecd4e41f7fba6ae66cc4a4c5202f1f7acf34129a0dadf","impliedFormat":99},{"version":"390dc7901776ab8f54c64100156ae561f4601a6913e86e7d1658715d7c414763","impliedFormat":99},{"version":"6841c30168fa7fe25409d83ae5e210c6340cd412e543e98625d277764d136994","impliedFormat":99},{"version":"1dc13534a1f9f442a683b92ae3200c611f19c2e8039c0b381e09076c85e90049","impliedFormat":99},{"version":"f68896096cba0f06ffbf39a67c2280f6f2e5b90c75db56a3f9ae5f7f3bb54460","impliedFormat":99},{"version":"ceed5b112e868b1c223f4f24e03d302e8043f6bd8f6cf8ede8e75f0471ede6d3","impliedFormat":99},{"version":"26cfaec143443411bc7d5363f274f885ced430b8f4bee25a81f7827248848d7b","impliedFormat":99},{"version":"f9a591e5fe0be6728cc84e70325aacafffcf203b051ddef37d65651b43c05056","impliedFormat":99},{"version":"293c0a3e323608f4e20667acc74d7bdba727db954b840ee1db03f2fd5807c761","impliedFormat":99},{"version":"de8b4c367880fe92a0a740b706f08a46d1cf9e3981d55c2701e82423e81ef0ef","impliedFormat":99},{"version":"8f1b151c1f2ab5f797666d1d53199ad5cec66ab6f4c46f4c02d51ac6d47998d3","impliedFormat":99},{"version":"3a3fd6f5ca85ceeb293f2a010125f9455404958122b6dd0ba0b34f7dab74feb5","impliedFormat":99},{"version":"5bd7f6f573ac89ec20aaf326e79394da8a89fbff8a297aa864de9137ca045678","impliedFormat":99},{"version":"01498e4cffc8badc7ba4bacb201e88d89e7ffa46d0a710f1d0510a11104b4e15","impliedFormat":99},{"version":"5916b6f272fe245dd8032c708487405eb9f5b8a83ded6630ec1ab02df36ed63d","impliedFormat":99},{"version":"9e003336714371c98108af3dc53342829039327f8b1db97d826ca81805746b7f","impliedFormat":99},{"version":"d8954254110123f6f5c9fda6280674f6b853d47df7fc41c2090e741dc8b6b627","impliedFormat":99},{"version":"1e257873c8332ca2066f2f9409269352839d6ef6cd5624ba6b777199e78f70af","impliedFormat":99},{"version":"409e0eb04698050bf40f5da901990a58f7119591fad21dc5f4d94ef20be7f457","impliedFormat":99},{"version":"0fa0e6941b1d3095f625c4bda62c0a37247ab8749cfdbc8b44f4b4518d5482f5","impliedFormat":99},{"version":"56c7641a2de5b6695f415a89826b724734aa8cdcc72a112c8e80c3d140b86f4b","impliedFormat":99},{"version":"e96bd939a55117abe6ccbc02839f2f4d9ce3893368fea528ca91c59ebddf496f","impliedFormat":99},{"version":"81f6bf27eedb1ed92466abfcee33795a6b2304691ae01f42e60f8c76894fade7","impliedFormat":99},{"version":"228127c94406a1583eb6e1314a611d9ee26418d4590b4466ed0468d5be0b7e41","impliedFormat":99},{"version":"26a0c2d883e1ed55ba00810d957dedcde5d16d637e33063686e2bc3f58a5c64a","impliedFormat":99},{"version":"68099697ac4e919f6f1832389f32eb67d3d94fae744967f33e0cbc049a222a3a","impliedFormat":99},{"version":"bfb900f7de2066a4be644c269285fda8ccca40b065476a27b082173014d00467","impliedFormat":99},{"version":"ca2f4468c5bcfc7a37aace0a1f20f92b226b097bebb834f29ecbce8ee399c6cf","impliedFormat":99},{"version":"b787dc6f2d3fa1d219038e6b360245b6c7d15c00a64ee31b24c56e823a0e71ea","impliedFormat":99},{"version":"ce757254610e6b3a37357a5892c46a86525d0d7f0a5e4a907f6707a3928b8a63","impliedFormat":99},{"version":"31a63b6b49338cc6ddb1a318beda72d3d8fd523e50f8dd5d5ff3accd39a490d7","impliedFormat":99},{"version":"8fc7615fb8fa095406f5a58b1b817b9a685c516058877a3d2c06d4545fdf5dbe","impliedFormat":99},{"version":"eeab2749ab639ddcd1b01f3c3acebe9616e0265021bf6aff910070015b03b92b","impliedFormat":99},{"version":"d5da26af31358a4883edb6112879018b14c7c1fbcc457aa36961b03ee17bedea","impliedFormat":99},{"version":"4e93fb2d2c59bbc1f1a5211b36c447efe4d0af568d682ef1e5eb5f84ca6ccc2e","impliedFormat":99},{"version":"b6cc07bc56c7418ab500421d2629c26acdb6ec2e9af85c5e2c5d7e8c9f92566d","impliedFormat":99},{"version":"3d13fe973e92e708ad3dbbf1b2385bb799f8e70c8da71a1ac72fcb5521c8a5e9","impliedFormat":99},{"version":"16f3f66b5182e57c554d0e374e29fdc0a899c1321b3f94fa997d19abf9faf931","impliedFormat":99},{"version":"df459c67b9eef71318851331b23926961f0476b4b9d1674addcb627eabe583b2","impliedFormat":99},{"version":"b93915733f1802a8d9093116a5e660385afda0f72a5bab9c9bd356549a61f1cd","impliedFormat":99},{"version":"1dfb1491b28cf3734f3c07745a56d7758a12d546f81a70fbfe8ee9faeb528c54","impliedFormat":99},{"version":"42b00a511331c7f79039ae3be83fd5941b212ce193654c3ac5d82157227b69ad","impliedFormat":99},{"version":"1a5914065c7c6e2b6e98437c4ba6059bfeda3441f0f55cb07189df1e78698922","impliedFormat":99},{"version":"66d3f42196f32c639d8240bbd520852abc024d673c713bc5ab26b4bdde750a74","impliedFormat":99},{"version":"18ce9175445b3edec11bbca1c682a8f3919e74fb3504abd883ac462ea8089a0d","impliedFormat":99},{"version":"aec96f94a27fc61d5f4ead202628e811199f887d48bb7614b7e1706b629cd1ba","impliedFormat":99},{"version":"2ab01a0368f65b3b891e25416ae785dca54808f70d8f6204b99589ed4f7f1d2f","impliedFormat":99},{"version":"efd87ca2190e2d0f905e30343443c8d2f0d32cb2b1c9e05b2cb97b0061abec08","impliedFormat":99},{"version":"3323edd649d2c85d3528912cdf6fb770258d59d75241575fcf25c7850837de79","impliedFormat":99},{"version":"e0c8deca5262879f11ee84fe6664dcd197a60f546930363bf2d78d37c3138c69","impliedFormat":99},{"version":"3b8ba0456ce7763676505d103eb336a6b97659d6fc8a7d7d186558ea0b8c7ea5","impliedFormat":99},{"version":"7bae4a3f50a844fcbdc504d717f5f13dd7178ca99f131b230305db6b55e1dbc3","impliedFormat":99},{"version":"f3a4668046e42e9f5ebfdc8b79238eb27c399443dd1dcfcd4c4c3652692ed031","impliedFormat":99},{"version":"07160ad59d49c6f2999f9703542918df3eb1ef93857bc560b4baa7c6775d22ce","impliedFormat":99},{"version":"cbb7705b157d0be735c4564681d749529d26ac77296757fdf4d861a76e279d4d","impliedFormat":99},{"version":"c23b9684ab48ea6956f0a510c3cf724277fa457efa7ff85d5907f4e4290ba0aa","impliedFormat":99},{"version":"3859635347ecc10d4ff5dd68bde66420f5a8539b7313dd62020aa025208d2222","impliedFormat":99},{"version":"f49e8feb6d7473579a5ceb5872598bbc1be3723da653993472720629c72fa0ba","impliedFormat":99},{"version":"14c727434cfe6a078b51a88d005033ad01a76bec36292d7b47369d82e48e1cb0","impliedFormat":99},{"version":"1c1ae4ec02de9778286f84e0d15a1b74cc610c13c5b6a13c1ada2e6770eeb4e1","signature":"6d6449b80881e70de3f27d314c1e8a6353071f30442df504dc00e429b4f2252f"},{"version":"0e354464ab326224591b02875550f37ae289785c1558a494f858e3d2b289851c","signature":"8123bb1692f9138dedb3997a3c3ca15cafd7bacbafc0f67f50c62d4c8774fccb"},{"version":"366cdf6ad7ecd5713a24f28af7a40765cb9d2538540d232b7521f0ea5ce0bb13","signature":"6a9d493e0c5865db9fc7519b48fb79ba3eaf00535a697ff7ea1f0dabccf4d15d"},{"version":"de708061021467057ac23fc62822e8d0840a216e24dcc423d4658a95033fdb8d","signature":"0283eafdc2b9ec618b38542bb438d3e514d72ca37203be108f45f0f960019a0e"},{"version":"59ce31d87135ea5719f4451f6a288ac851746e6200088bcc1d3a7b1c0094c442","signature":"797b1b35838a594d3ba015115250d87d02d7e3ec59ac0ca62d4d32e0dd79bb50"},{"version":"417e42f4fe8f9ce5963dee9e82641653dd15266a75153b4624e299ca60a04c07","signature":"3db332987db7707a742b841f11d8a5590960b598d15bc3f678600d28afa94a91"},{"version":"dfa56c0062ac0ab7ed8916d742280b29f945b1ce10554b32b238fa0e84b94e98","signature":"245cbd0512d5ad85db0cbf054c74dad653b62f2da5300ceff0e87ff99dce5caf"},{"version":"c94b208239748236f918cd33929ff9d52a9941b4a8251f54a318f72fb872cb64","signature":"cc20a19087b1df060516722de9e6c4aa87a5c239c5ad1ecd83b61cd17c9bd16f"},{"version":"8dedf145bef222eb6a09d63a4a6d8f340cd315cbf61ede98ed459bb5b5ffcaeb","signature":"7a4fe07bffc8b6ec1785aec2b011f454fc93828d90b9269ccdda995af85bf073"},{"version":"8972f785d4fa7ea7d8b1c84bc5fe8cf151d30ab4ff288756df96e0e082f7594a","signature":"827c3c8128c93043529320108a33afe0cc3459ba09c04192f4600b80c73607b2"},{"version":"d08cf172a38f58995eda96e030606dce61e63fb16c50a0e20bf0148b1dd34cbd","signature":"485253ab3565278dbb431417d5ff09907309ee9e5c88550c115d882e872593c7"},{"version":"ceb8eb94f3be6f723de8230d338a50a8696f145270f68c514a804fab5343c404","signature":"c7429d15c4b492628c3b307bb6e3cfe8eb2ee741469b1ca524f90b84a143fe8f"},{"version":"8ad83abba071cb20fe7166a8adae3bd77a79be8711426fd96f5be354d868efdb","signature":"ac02d8be5e6d2e71292fe738d73adebc09aaa60603a8e51f7230faec34c5378a"},{"version":"87ed35cd068b7438bdc0f845b4ee101e98d3903b3722ef6f358df292e73d7d73","signature":"e4dbf6dbee6e1a22a1b988a18d5cb517c17e9ada9d691f2b4eb9e689452a17ac"},{"version":"05c806043f883a81bee91b72428e9551f7cff48fd3d03ce2ffbf22af8f0e10cc","signature":"5e1e3ed0f08feb1037e9f84157aa96a5177bba21b5b4d818d026532d0ff007b0"},{"version":"c1f1a1ff58583a523e6eb11fd5801a5bb0b3b531417bb0ce53db02a59a5545e9","signature":"d092958065bbc70478d8049066581c325f46a724087ef328cf2d47fbdc282b9a"},{"version":"0872ece3daf3df853bb9a0ca45cdae713dbf616445fff7c792bad8484d5f97ea","signature":"a0948a68b9c152fab283c5f443f8ec9535c005d8bbe560b2b8ff87f54279b68a"},{"version":"0b7fc25d6c77adeedb6cb69fe0eea69155fe7684212c7f3b2b440e90bac48a5b","signature":"7fc4d84099fd385c7645d9d41f854d415baad44aad0b6e07d6d89a89ef7bfc49"},{"version":"ef1b801787af0d1c73a87574b74f49c79c2c89c85360e0faedf3b345d527ad5f","signature":"a501d75788b8433deb30e2113ccbad77c77fb3ce7426757194549f621804f562"},{"version":"1408cfd0bd1cd2dd7d3a1f36a64552b2cd985acffeadbbb7a1fba337554620e5","signature":"e45edace128227a34a1958d4c889a4cf3f24ad784771495cd0004e7bbb07bfc5"},{"version":"b01f4830e8a111ec641ad7342febd9d3e77ad1e113110a3eaaaa4f162700710d","signature":"7be4e60a740deaefbfe7896964791aff6e6b2e3e12b93adbfbb29f8f7628dc34"},{"version":"c840e12da509f2c771dbc356a23750227a43d1864640c7e6404b8f9ec86b3871","impliedFormat":99},{"version":"6ae92eaaaef30fae975de604d3af31d5b00eca7f02d89fab589152df926685fd","impliedFormat":99},{"version":"e3b3780b68c70ff42894b68ee8f49186ef3335fc86a9106dd07e11580b460cc1","impliedFormat":99},{"version":"459fda119c27213d3defde220c051414020029abd52fb6fb9aea0beedc512c6b","impliedFormat":99},{"version":"968b0403af74a785c9408ca69a677235e49d0c80b2c27fb9858ad421a8778c7d","signature":"816603a3a3ce186bf710d1be189162cda5af637d36d8f318022aa2e448e3565a"},{"version":"cc1125c7db290dc0219331a85725d94303b9726bf330f8f3eb0bb8d025fab096","signature":"eaf8e3e068e23fbc82dbc1aa21ddfbe54baff2a86d75d50902329a5472efe0de"},{"version":"3450ea407aadc65c23c66e11e19c4461c44f8ed956b819ba78ea7e2daf5d1b56","signature":"53774aa9ee1a946a98d3b2659d6aa4d81b0468b05525256a44acbfb4105a8412"},{"version":"0294f36355f84a2f9a078ff3dfc0fb90feecd3912f9fc7a213635e08d01348c5","signature":"a858f290e6f252e0e404b7fc2a8636fb9c205f6e6c353d1b3188faf9af5ab234"},{"version":"767a2e055fe6e021328f51448538e15f93cd53f89e5ba8c83c3a1e94b6630c22","signature":"a4ef05d8a5a879ad9030332befb57989305a3c6e1ed2dca110f645794beed040"},{"version":"1762c51f9a975e4451b8941109881e59f775acd37e13bbab014a48e8731d75a1","signature":"ef1e776b998a0c02087c6501bd07c78832baeac620b5021c245df4836dfa2f17"},{"version":"880acfd4ebc7da22bd68d4bee7f5ffd9f89d48b494110186b50ed856f0076ca7","signature":"cf8b1979ffd2f536106875f0b58c79a8b401278739c3d70dac5d4e201cb3c32c"},{"version":"962d0a7d54369011ddbca592841a6afc2ccbea3cba752b812caef6b8cc74cb1e","signature":"335690b6dd1a9cc476cd01cf766c5ae1234e90a318eb383a96d2e147358250a3"},{"version":"b839eb3a08e4549339974eedb277393502294a80e3718ee06bc8fd5cdd20ae37","signature":"324717f7bc7631d3a880b8e42f32c7f6225a2b8295c2793568c99de08e1fef1b"},{"version":"2f69175a10d85d5c041a48ad3699ac5a6055eaefd43f9440d8a57778a0ffec92","signature":"c2c4afc8c03490924367c6e6a877dddec82fb37ef9f2554c5754c71c7188e3e9"},{"version":"423483c43cd900e3315654a720cba2abdff48ade505900609d40ce4c5c323833","signature":"e6a25231cd80539f77cdaa44ccf5be365ffd178c050299a383c1a7a167a80a37"},{"version":"0edae8aaff2ba9ad6291e8b5313de1b7b7f4e3c1ffadc256d9f45953b3edc649","signature":"8754fe347bd81594a37b5a19a333e4a8063a20f443fab1af850f7edf12bb5537"},{"version":"f07845a4f9772a545efa7c1086e83a81732c72026d3f365f0bb52bfae5b66752","signature":"b3b0332e154b1a2ccb655349b7e2471c65f61a5b523c06973d88cb50ce785d19"},{"version":"082062d5e676f7049e4a684dc6726c631fe153cb457e494cc240bbe3be5650a4","impliedFormat":99},{"version":"ab2e38bc6b61891361655b5d2e45c4cbc95c9db4920453fd5329cac7fd4e1385","impliedFormat":99},{"version":"9bb8a03e0015254999c1e96830242fa3764856fd14958d3b097149f4491b1fa6","impliedFormat":99},{"version":"21655de6cf9d8df920b2dd8aaa5d6b4f88630c5c6f4df66947f4a2c4e59f7c79","impliedFormat":99},{"version":"c98e4b259d28463c34c65cdbfba447d5ccd4fed0a138b7acf8c796309e61e2d6","signature":"d9ed1c6c07bd03524f35e2b7cf385c3278909b3ed2daafb4b74d460d8b6420ce"},{"version":"4bc116adaefa80ed039a3cb3bf6a3e7017b4e4d99e507613c4b07b7d58a4ba85","signature":"633e87523348a4bf2e0999dfa6d93004738ecbd7186f7f2ae5f350e5d7781d2b"},{"version":"fe71593dddfc086fd941f484c1094f952f54acdf7ec2d983acfaa61a816dec86","signature":"137673d794fa6adcae07fe30e38455116513f5894811194401033fe14bb56e38"},{"version":"c6c3dbe3b2cf62152b1c7493424edf66460d53d25e7d49c98f6a7d2c80334528","signature":"6a2879106635e78675da8924862839ed3ab8806d3e08316152b00a697a4141aa"},{"version":"3e7064de07e84a24d10943b69a0278752f23f1999b396153feb0a63f355beae3","signature":"d6e9a3e9eddda48d8308210ee9ecc68f9425bcc378fb1f8bec08ebb7e0f1b6d3"},{"version":"ce4eec21950930b52a7b7d76154bf16d87cbd7b057257d0857fbcb0bc690bd61","signature":"343542f6bbe309692eda70274e04acfbfe25aa0bfd9d2c9a711c5281bdb49cba"},{"version":"8ffdf73d62d015140d4c4edfe58757d2f21474d50da2f92d48e33c522b79dbc7","signature":"917fd3d6e4f13868f4a867924f3fbdd816fbad049d179cc81b17a45fd591cc86"},{"version":"4661743ca06bc9577174fc8ecd963ccaf0ec605c4aa89eaf6a622467397cf147","signature":"5879818ce307b9ed0a24051ba091c110081cbe6a2ba56008132dbdf4181ab8be"},{"version":"6be9cc6d63419c8acb7c6b32fdd7fff8285842e69dd35588019d93f95a52571b","signature":"6cc449dc9995a239ca20bb0e067ba9e5008acbd036727e8cd97bc0001bdbb2b7"},{"version":"7945ca8edb5a34539de61ed93c4877f1e90fa603e5b208740bde9cc00693067a","signature":"19d54bf73a5a0216df1cf3bd0ff80167cf2bda8b0aa052d2cc7ff7caaccc4efe"},{"version":"28cb8c81a73ab8485fcf4bebcaa7264cd678224a222b85a491be882798d8f550","signature":"1a3c71cf6a6fbdd7591116f48d95ef7dedf3cba8345149fe195729409cd34fe2"},{"version":"0c259776b22163c556ef08874cf8133e76b1700eee5477ac2608dd7bf8083e45","signature":"fec7336827914a1816050bca31f2ee284f4d7deaf7211898cdd094a0deb2b513"},{"version":"c8dea650241e838a1c6d0904e3f90109f1f934678fe64c7bba7c38b1af5dd4dd","signature":"82fd574ed84b5a906cdc2676c26414e76adc47c70dc6b848e0f4343438a34590"},{"version":"b531db01208aaffa47aff4926c165af00a6c8c13fa231187deb75f69eeb16aca","signature":"17fe8278e6a30c0377d12ab4098d280e74b21daa2c7f8dff2bb60d3795555bbe"},{"version":"b68acd2160533c5f326af2de608d45c4cc3cebced25340efa69a4cfec6658f38","signature":"7c199173b55f57172fe53234f0fc95cc87e6565a13ce83e7b47918742bd47dfc"},{"version":"307d88c82e8c9436b09ac27af700c3acc03a87bc6745cfbb51069a75e2b6d2c0","signature":"001c2ad8eef03b07f14e41bee9a415db23dccadc02a78919faee940e545787d2"},{"version":"14ddfd8524dece18a84e2745bd609fb9dffd6339abe7c85af10f5cbb8cb67bfe","signature":"ee0527b1ff34f0ceffb2348f0095b1c1cddf4faa46085ea2a110cebaee50d347"},{"version":"5a1348cbf5183880d6eaeb31d669d5853280b2e41d58e42bb2f6cd3d1b3e5b71","signature":"b843fbec02d0cb54db1702adcfd063ad08120abeda2498a1787b64590684359c"},{"version":"9a9e04e07fe35d1874951bdc8de7359f75e671b9397557f7384ad6b2a315cf58","signature":"18a4751b41acc2856ed6f45b34fbe725cf9c7e4d90eba0ad2feb4e2d0990ec5e"},{"version":"5170e400dc24e75c4b25865bbe0b20886ed49f59f59e7503b5caca5270cabde2","signature":"8aef51ae2a7868e062803dec9fbb656da273542c7c9f4621d5464b9605dfe009"},{"version":"a78eb0d122e55304d670c8a5e01b0ac0f37dbce5a53869669be076470a7f4d78","signature":"a7a3a87855b2d2cc8ae413e677b4899ffc58a5e4a20f055c07a404da99541520"},{"version":"e1024bac63fac77ff2dcf562cf00a82a2ee2f22f02d78869c293991716cf192c","signature":"0da53c45d881830a663b858e68023d38da5ac262bfdc606024742e9b45b74032"},{"version":"3787076bd7bc40a1c348d115b0fcefb37f77e0b92e941f2efa44d464396ca328","signature":"986ef67c1983fdc1546cd063b625ccee6cde32da7705ab8e1acebfa0fb39df5c"},{"version":"5a2588c9ed56c03c0e357d58330d2bb6d89e390f4be303a09ee854c0bcb36a92","signature":"5283c1424f61516c54136798c3e7e256528a1a75581132e32e616d76add1160d"},{"version":"19e8160ad82839d8ece0f64fa0354373220e0b0192fb63601bd2bee81f2fd782","signature":"1592edebde83872e3c0cdd72f5eadddab86cf295a6d19f09620b84442fd7854e"},{"version":"50873ca05ca34d25a3324222510a86a9599b3a311d9fff1406d8de0be6a9eaa8","signature":"e5f9d5f6f37816cef8cfd651f6a81ff29222429b81fe76184722549e7904facf"},{"version":"586f0de1456ff1f22947e2aec82642f7ec102d0ad0b6f13edeb79dbaa8b9d11b","signature":"8c6eba7333e72b090341a04f45aab07e000ee74e78276b2c041119bf6dd60587"},{"version":"4e150e90bb4f5066740c6bf43a8e5061e998b884d37c7170caaae8dcd808b8ab","signature":"2445a341f73ffabebf7b9d8886a913be095356c2ba0673e3cc2e7fa68b500c36"},{"version":"6dc5f5d9c28c0aa23452a32416ce337ac09ce633ad893b988a1ce256fd7e72be","signature":"828afa634f40e99fc918fbfbacbc0148c5502118e44433a914acadf42cbcc802"},{"version":"052c188cf49779dda6dd016340f5b1158da01b9cc983108dc4037ec5c0575afa","signature":"2840fdae09764d8ef1660442dd476e00484643fff12b1039a7e44c6df5df5b53"},{"version":"8dcf898abdf1bfe773b873d5e1b329b8f4d061fdba45f2ad842a3fdb4db5ab07","signature":"b410611afb0627ebadfbb1f24feaba95b75f2d6eb44e9b4a78cdbca1b5f64aaf"},{"version":"977a787ed6eda7e66ef0c3b925af8b08c9a4d8780e23cc8359c6a427dc84862a","signature":"5177c419b162946d62af34a97439621b087540542b9a706a057c72b7106ea818"},{"version":"bc4194f8ea1fdb9f7d518df1015108da6bd5a38aba9d64b6c134ce83c76fb51c","signature":"4c09a264144e8e6e0b181b42eb9c86fbe44114927c0141188c9105549fcc7969"},{"version":"55e5845f6f31bcb05e539336a48ced65fce64e02af796e6da40f4aee7bc78e91","signature":"0b8fd7aa2222d31c2de139a76ef2aa14dc86717c45b9ef30e2c733be1fa2707e"},"d1986184a09a52db8228cb2bb2a61a8c05c9354e5b93cec8e2628d8579c892d7",{"version":"d9fa276add16d87de0375e4ee85d1b8427515e8e3f08f1adf87c4e0cbc89f09e","signature":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881"}],"root":[[534,539],542,546,547,558,[574,581],[658,678],[683,695],[700,735]],"options":{"allowJs":true,"esModuleInterop":true,"jsx":4,"module":99,"skipLibCheck":true,"strict":true,"target":2},"referencedMap":[[734,1],[534,2],[735,3],[581,4],[662,5],[666,6],[547,7],[536,8],[668,9],[672,10],[670,11],[674,12],[688,13],[689,14],[686,15],[692,16],[693,17],[695,18],[702,19],[676,20],[704,21],[706,22],[578,23],[710,24],[708,25],[716,26],[714,27],[718,28],[722,29],[724,30],[720,31],[726,32],[730,33],[728,34],[732,35],[580,36],[694,37],[665,38],[687,39],[671,40],[669,41],[712,42],[663,43],[577,44],[667,45],[701,46],[673,47],[705,48],[675,49],[661,50],[709,51],[707,52],[664,40],[685,53],[677,54],[684,40],[678,55],[690,40],[691,40],[703,56],[719,57],[721,40],[723,58],[546,59],[725,57],[660,60],[711,42],[715,40],[717,61],[713,62],[659,63],[576,64],[683,65],[558,66],[733,67],[658,68],[574,69],[575,67],[700,70],[729,56],[727,71],[731,39],[579,72],[537,73],[538,73],[539,73],[542,74],[535,75],[554,76],[555,77],[634,78],[635,79],[567,80],[566,81],[565,82],[571,83],[570,84],[569,81],[563,81],[562,85],[568,86],[623,87],[604,88],[607,89],[603,90],[621,91],[587,92],[624,93],[608,92],[609,94],[625,92],[619,95],[610,92],[614,96],[615,92],[616,97],[613,98],[617,91],[626,99],[618,87],[627,100],[620,101],[622,102],[612,103],[560,104],[561,105],[572,106],[573,107],[551,108],[559,109],[605,2],[549,2],[550,110],[611,2],[553,111],[606,112],[564,113],[629,114],[630,115],[639,115],[638,116],[641,76],[640,76],[657,117],[656,118],[642,76],[643,76],[644,119],[645,120],[646,114],[647,116],[649,115],[648,76],[637,121],[632,122],[636,123],[631,124],[651,125],[650,126],[655,76],[652,127],[653,76],[633,128],[680,129],[679,76],[654,76],[699,130],[698,131],[696,132],[697,133],[552,134],[682,135],[681,112],[602,136],[597,137],[601,138],[599,2],[600,139],[628,140],[591,113],[594,141],[592,2],[595,142],[589,143],[590,144],[596,145],[593,146],[598,113],[583,147],[585,148],[586,149],[582,2],[584,2],[378,2],[142,150],[143,150],[144,151],[91,152],[145,153],[146,154],[147,155],[89,2],[148,156],[149,157],[150,158],[151,159],[152,160],[153,161],[154,161],[155,162],[156,163],[157,164],[158,165],[92,2],[90,2],[159,166],[160,167],[161,168],[162,169],[163,2],[164,170],[165,171],[166,172],[167,173],[168,174],[169,175],[170,176],[171,177],[172,178],[173,178],[174,179],[175,2],[176,180],[177,181],[179,182],[178,183],[180,184],[181,185],[182,186],[183,187],[184,188],[185,189],[186,190],[88,2],[195,191],[187,192],[188,193],[189,194],[190,195],[191,196],[192,197],[93,2],[94,198],[95,2],[96,2],[138,199],[139,200],[140,2],[141,184],[193,201],[194,202],[199,203],[463,113],[200,204],[198,205],[465,206],[464,207],[196,208],[461,2],[197,209],[79,2],[81,210],[460,113],[230,113],[557,211],[556,212],[540,2],[80,2],[548,113],[486,213],[491,1],[498,214],[481,215],[234,2],[242,216],[382,217],[385,218],[357,2],[370,219],[377,220],[259,2],[359,2],[240,2],[356,221],[402,222],[241,2],[232,223],[384,224],[386,225],[387,226],[458,227],[351,228],[304,229],[364,230],[365,231],[363,232],[362,2],[358,233],[383,234],[243,235],[428,2],[429,236],[270,237],[244,238],[271,237],[307,237],[210,237],[380,239],[379,2],[369,240],[476,2],[219,2],[497,241],[436,242],[437,243],[433,244],[515,2],[334,2],[438,245],[434,246],[520,247],[519,248],[514,2],[285,2],[337,249],[336,2],[513,250],[435,113],[290,251],[297,252],[299,253],[289,2],[294,254],[296,255],[298,256],[293,257],[291,2],[295,258],[516,2],[512,2],[518,259],[517,2],[288,260],[507,261],[510,262],[278,263],[277,264],[276,265],[523,113],[275,266],[264,2],[525,2],[544,267],[543,2],[526,113],[527,268],[202,2],[366,269],[367,270],[368,271],[206,2],[371,2],[226,272],[201,2],[450,113],[208,273],[449,274],[448,275],[439,2],[440,2],[447,2],[442,2],[445,276],[441,2],[443,277],[446,278],[444,277],[239,2],[236,2],[237,237],[391,2],[396,279],[397,280],[395,281],[393,282],[394,283],[389,2],[456,245],[231,245],[485,284],[492,285],[496,286],[325,287],[324,2],[319,2],[472,288],[480,289],[352,290],[353,291],[431,292],[341,2],[454,293],[329,113],[346,294],[457,295],[342,2],[345,296],[343,2],[455,297],[452,298],[451,2],[453,2],[349,2],[427,299],[214,300],[327,301],[331,302],[347,303],[350,304],[339,305],[332,306],[479,307],[405,308],[323,309],[211,310],[478,311],[207,312],[398,313],[390,2],[399,314],[416,315],[388,2],[415,316],[87,2],[410,317],[235,2],[430,318],[406,2],[220,2],[222,2],[361,2],[414,319],[238,2],[262,320],[348,321],[268,322],[328,2],[413,2],[392,2],[418,323],[419,324],[360,2],[421,325],[423,326],[422,327],[372,2],[412,310],[425,328],[322,329],[411,330],[417,331],[247,2],[251,2],[250,2],[249,2],[254,2],[248,2],[257,2],[256,2],[253,2],[252,2],[255,2],[258,332],[246,2],[314,333],[313,2],[318,334],[315,335],[317,336],[320,334],[316,335],[227,337],[306,338],[475,339],[473,2],[502,340],[504,341],[468,342],[503,343],[215,344],[212,344],[245,2],[229,345],[228,346],[224,347],[225,348],[233,349],[261,349],[272,349],[308,350],[273,350],[217,351],[216,2],[312,352],[311,353],[310,354],[309,355],[218,356],[459,357],[260,358],[467,359],[432,360],[462,361],[466,362],[355,363],[354,364],[335,365],[321,366],[303,367],[305,368],[302,369],[424,370],[326,2],[490,2],[223,371],[426,372],[474,373],[333,2],[263,374],[340,375],[338,376],[265,377],[400,378],[469,2],[266,379],[401,379],[488,2],[487,2],[489,2],[471,2],[470,2],[403,380],[330,2],[300,381],[221,382],[279,2],[205,383],[267,2],[494,113],[204,2],[506,384],[287,113],[500,245],[286,385],[483,386],[284,384],[209,2],[508,387],[282,113],[283,113],[274,2],[203,2],[281,388],[280,389],[269,390],[344,177],[404,177],[420,2],[408,391],[407,2],[292,260],[213,2],[301,113],[477,272],[484,392],[82,113],[85,393],[86,394],[83,113],[84,2],[381,198],[376,395],[375,2],[374,396],[373,2],[482,397],[493,398],[495,399],[499,400],[545,401],[501,402],[505,403],[533,404],[509,404],[532,405],[511,406],[521,407],[522,408],[524,409],[528,410],[531,272],[530,2],[529,411],[588,2],[409,412],[541,2],[77,2],[78,2],[13,2],[14,2],[16,2],[15,2],[2,2],[17,2],[18,2],[19,2],[20,2],[21,2],[22,2],[23,2],[24,2],[3,2],[25,2],[26,2],[4,2],[27,2],[31,2],[28,2],[29,2],[30,2],[32,2],[33,2],[34,2],[5,2],[35,2],[36,2],[37,2],[38,2],[6,2],[42,2],[39,2],[40,2],[41,2],[43,2],[7,2],[44,2],[49,2],[50,2],[45,2],[46,2],[47,2],[48,2],[8,2],[54,2],[51,2],[52,2],[53,2],[55,2],[9,2],[56,2],[57,2],[58,2],[60,2],[59,2],[61,2],[62,2],[10,2],[63,2],[64,2],[65,2],[11,2],[66,2],[67,2],[68,2],[69,2],[70,2],[1,2],[71,2],[72,2],[12,2],[75,2],[74,2],[73,2],[76,2],[114,413],[126,414],[112,415],[127,416],[136,417],[103,418],[104,419],[102,420],[135,411],[130,421],[134,422],[106,423],[123,424],[105,425],[133,426],[100,427],[101,421],[107,428],[108,2],[113,429],[111,428],[98,430],[137,431],[128,432],[117,433],[116,428],[118,434],[121,435],[115,436],[119,437],[131,411],[109,438],[110,439],[122,440],[99,416],[125,441],[124,428],[120,442],[129,2],[97,2],[132,443]],"affectedFilesPendingEmit":[735,581,662,666,547,536,668,672,670,674,688,689,686,692,693,695,702,676,704,706,578,710,708,716,714,718,722,724,720,726,730,728,732,580,694,665,687,671,669,712,663,577,667,701,673,705,675,661,709,707,664,685,677,684,678,690,691,703,719,721,723,546,725,660,711,715,717,713,659,576,683,558,733,658,574,575,700,729,727,731,579,537,538,539,542],"version":"5.7.3"} \ No newline at end of file +{"fileNames":["./node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.es5.d.ts","./node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.es2015.d.ts","./node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.es2016.d.ts","./node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.es2017.d.ts","./node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.es2018.d.ts","./node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.es2019.d.ts","./node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.es2020.d.ts","./node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.es2021.d.ts","./node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.es2022.d.ts","./node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.es2023.d.ts","./node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.es2024.d.ts","./node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.esnext.d.ts","./node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.dom.d.ts","./node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.dom.iterable.d.ts","./node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.es2015.core.d.ts","./node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.es2015.collection.d.ts","./node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.es2015.generator.d.ts","./node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.es2015.iterable.d.ts","./node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.es2015.promise.d.ts","./node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.es2015.proxy.d.ts","./node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.es2015.reflect.d.ts","./node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.es2015.symbol.d.ts","./node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","./node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.es2016.array.include.d.ts","./node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.es2016.intl.d.ts","./node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.es2017.arraybuffer.d.ts","./node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.es2017.date.d.ts","./node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.es2017.object.d.ts","./node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","./node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.es2017.string.d.ts","./node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.es2017.intl.d.ts","./node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","./node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","./node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","./node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.es2018.intl.d.ts","./node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.es2018.promise.d.ts","./node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.es2018.regexp.d.ts","./node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.es2019.array.d.ts","./node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.es2019.object.d.ts","./node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.es2019.string.d.ts","./node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.es2019.symbol.d.ts","./node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.es2019.intl.d.ts","./node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.es2020.bigint.d.ts","./node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.es2020.date.d.ts","./node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.es2020.promise.d.ts","./node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","./node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.es2020.string.d.ts","./node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","./node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.es2020.intl.d.ts","./node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.es2020.number.d.ts","./node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.es2021.promise.d.ts","./node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.es2021.string.d.ts","./node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.es2021.weakref.d.ts","./node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.es2021.intl.d.ts","./node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.es2022.array.d.ts","./node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.es2022.error.d.ts","./node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.es2022.intl.d.ts","./node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.es2022.object.d.ts","./node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.es2022.string.d.ts","./node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.es2022.regexp.d.ts","./node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.es2023.array.d.ts","./node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.es2023.collection.d.ts","./node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.es2023.intl.d.ts","./node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.es2024.arraybuffer.d.ts","./node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.es2024.collection.d.ts","./node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.es2024.object.d.ts","./node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.es2024.promise.d.ts","./node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.es2024.regexp.d.ts","./node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.es2024.sharedmemory.d.ts","./node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.es2024.string.d.ts","./node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.esnext.array.d.ts","./node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.esnext.collection.d.ts","./node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.esnext.intl.d.ts","./node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.esnext.disposable.d.ts","./node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.esnext.decorators.d.ts","./node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.esnext.iterator.d.ts","./node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.decorators.d.ts","./node_modules/.pnpm/typescript@5.7.3/node_modules/typescript/lib/lib.decorators.legacy.d.ts","./node_modules/.pnpm/@types+react@19.2.14/node_modules/@types/react/global.d.ts","./node_modules/.pnpm/csstype@3.2.3/node_modules/csstype/index.d.ts","./node_modules/.pnpm/@types+react@19.2.14/node_modules/@types/react/index.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/styled-jsx/types/css.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/styled-jsx/types/macro.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/styled-jsx/types/style.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/styled-jsx/types/global.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/styled-jsx/types/index.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/get-page-files.d.ts","./node_modules/.pnpm/@types+node@24.10.4/node_modules/@types/node/ts5.7/compatibility/float16array.d.ts","./node_modules/.pnpm/@types+node@24.10.4/node_modules/@types/node/compatibility/iterators.d.ts","./node_modules/.pnpm/@types+node@24.10.4/node_modules/@types/node/globals.typedarray.d.ts","./node_modules/.pnpm/@types+node@24.10.4/node_modules/@types/node/buffer.buffer.d.ts","./node_modules/.pnpm/@types+node@24.10.4/node_modules/@types/node/globals.d.ts","./node_modules/.pnpm/@types+node@24.10.4/node_modules/@types/node/web-globals/abortcontroller.d.ts","./node_modules/.pnpm/@types+node@24.10.4/node_modules/@types/node/web-globals/crypto.d.ts","./node_modules/.pnpm/@types+node@24.10.4/node_modules/@types/node/web-globals/domexception.d.ts","./node_modules/.pnpm/@types+node@24.10.4/node_modules/@types/node/web-globals/events.d.ts","./node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/utility.d.ts","./node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/header.d.ts","./node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/readable.d.ts","./node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/fetch.d.ts","./node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/formdata.d.ts","./node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/connector.d.ts","./node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/client-stats.d.ts","./node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/client.d.ts","./node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/errors.d.ts","./node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/dispatcher.d.ts","./node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/global-dispatcher.d.ts","./node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/global-origin.d.ts","./node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/pool-stats.d.ts","./node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/pool.d.ts","./node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/handlers.d.ts","./node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/balanced-pool.d.ts","./node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/h2c-client.d.ts","./node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/agent.d.ts","./node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/mock-interceptor.d.ts","./node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/mock-call-history.d.ts","./node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/mock-agent.d.ts","./node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/mock-client.d.ts","./node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/mock-pool.d.ts","./node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/snapshot-agent.d.ts","./node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/mock-errors.d.ts","./node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/proxy-agent.d.ts","./node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/env-http-proxy-agent.d.ts","./node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/retry-handler.d.ts","./node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/retry-agent.d.ts","./node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/api.d.ts","./node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/cache-interceptor.d.ts","./node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/interceptors.d.ts","./node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/util.d.ts","./node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/cookies.d.ts","./node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/patch.d.ts","./node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/websocket.d.ts","./node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/eventsource.d.ts","./node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/diagnostics-channel.d.ts","./node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/content-type.d.ts","./node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/cache.d.ts","./node_modules/.pnpm/undici-types@7.16.0/node_modules/undici-types/index.d.ts","./node_modules/.pnpm/@types+node@24.10.4/node_modules/@types/node/web-globals/fetch.d.ts","./node_modules/.pnpm/@types+node@24.10.4/node_modules/@types/node/web-globals/navigator.d.ts","./node_modules/.pnpm/@types+node@24.10.4/node_modules/@types/node/web-globals/storage.d.ts","./node_modules/.pnpm/@types+node@24.10.4/node_modules/@types/node/web-globals/streams.d.ts","./node_modules/.pnpm/@types+node@24.10.4/node_modules/@types/node/assert.d.ts","./node_modules/.pnpm/@types+node@24.10.4/node_modules/@types/node/assert/strict.d.ts","./node_modules/.pnpm/@types+node@24.10.4/node_modules/@types/node/async_hooks.d.ts","./node_modules/.pnpm/@types+node@24.10.4/node_modules/@types/node/buffer.d.ts","./node_modules/.pnpm/@types+node@24.10.4/node_modules/@types/node/child_process.d.ts","./node_modules/.pnpm/@types+node@24.10.4/node_modules/@types/node/cluster.d.ts","./node_modules/.pnpm/@types+node@24.10.4/node_modules/@types/node/console.d.ts","./node_modules/.pnpm/@types+node@24.10.4/node_modules/@types/node/constants.d.ts","./node_modules/.pnpm/@types+node@24.10.4/node_modules/@types/node/crypto.d.ts","./node_modules/.pnpm/@types+node@24.10.4/node_modules/@types/node/dgram.d.ts","./node_modules/.pnpm/@types+node@24.10.4/node_modules/@types/node/diagnostics_channel.d.ts","./node_modules/.pnpm/@types+node@24.10.4/node_modules/@types/node/dns.d.ts","./node_modules/.pnpm/@types+node@24.10.4/node_modules/@types/node/dns/promises.d.ts","./node_modules/.pnpm/@types+node@24.10.4/node_modules/@types/node/domain.d.ts","./node_modules/.pnpm/@types+node@24.10.4/node_modules/@types/node/events.d.ts","./node_modules/.pnpm/@types+node@24.10.4/node_modules/@types/node/fs.d.ts","./node_modules/.pnpm/@types+node@24.10.4/node_modules/@types/node/fs/promises.d.ts","./node_modules/.pnpm/@types+node@24.10.4/node_modules/@types/node/http.d.ts","./node_modules/.pnpm/@types+node@24.10.4/node_modules/@types/node/http2.d.ts","./node_modules/.pnpm/@types+node@24.10.4/node_modules/@types/node/https.d.ts","./node_modules/.pnpm/@types+node@24.10.4/node_modules/@types/node/inspector.d.ts","./node_modules/.pnpm/@types+node@24.10.4/node_modules/@types/node/inspector.generated.d.ts","./node_modules/.pnpm/@types+node@24.10.4/node_modules/@types/node/module.d.ts","./node_modules/.pnpm/@types+node@24.10.4/node_modules/@types/node/net.d.ts","./node_modules/.pnpm/@types+node@24.10.4/node_modules/@types/node/os.d.ts","./node_modules/.pnpm/@types+node@24.10.4/node_modules/@types/node/path.d.ts","./node_modules/.pnpm/@types+node@24.10.4/node_modules/@types/node/perf_hooks.d.ts","./node_modules/.pnpm/@types+node@24.10.4/node_modules/@types/node/process.d.ts","./node_modules/.pnpm/@types+node@24.10.4/node_modules/@types/node/punycode.d.ts","./node_modules/.pnpm/@types+node@24.10.4/node_modules/@types/node/querystring.d.ts","./node_modules/.pnpm/@types+node@24.10.4/node_modules/@types/node/readline.d.ts","./node_modules/.pnpm/@types+node@24.10.4/node_modules/@types/node/readline/promises.d.ts","./node_modules/.pnpm/@types+node@24.10.4/node_modules/@types/node/repl.d.ts","./node_modules/.pnpm/@types+node@24.10.4/node_modules/@types/node/sea.d.ts","./node_modules/.pnpm/@types+node@24.10.4/node_modules/@types/node/sqlite.d.ts","./node_modules/.pnpm/@types+node@24.10.4/node_modules/@types/node/stream.d.ts","./node_modules/.pnpm/@types+node@24.10.4/node_modules/@types/node/stream/promises.d.ts","./node_modules/.pnpm/@types+node@24.10.4/node_modules/@types/node/stream/consumers.d.ts","./node_modules/.pnpm/@types+node@24.10.4/node_modules/@types/node/stream/web.d.ts","./node_modules/.pnpm/@types+node@24.10.4/node_modules/@types/node/string_decoder.d.ts","./node_modules/.pnpm/@types+node@24.10.4/node_modules/@types/node/test.d.ts","./node_modules/.pnpm/@types+node@24.10.4/node_modules/@types/node/timers.d.ts","./node_modules/.pnpm/@types+node@24.10.4/node_modules/@types/node/timers/promises.d.ts","./node_modules/.pnpm/@types+node@24.10.4/node_modules/@types/node/tls.d.ts","./node_modules/.pnpm/@types+node@24.10.4/node_modules/@types/node/trace_events.d.ts","./node_modules/.pnpm/@types+node@24.10.4/node_modules/@types/node/tty.d.ts","./node_modules/.pnpm/@types+node@24.10.4/node_modules/@types/node/url.d.ts","./node_modules/.pnpm/@types+node@24.10.4/node_modules/@types/node/util.d.ts","./node_modules/.pnpm/@types+node@24.10.4/node_modules/@types/node/v8.d.ts","./node_modules/.pnpm/@types+node@24.10.4/node_modules/@types/node/vm.d.ts","./node_modules/.pnpm/@types+node@24.10.4/node_modules/@types/node/wasi.d.ts","./node_modules/.pnpm/@types+node@24.10.4/node_modules/@types/node/worker_threads.d.ts","./node_modules/.pnpm/@types+node@24.10.4/node_modules/@types/node/zlib.d.ts","./node_modules/.pnpm/@types+node@24.10.4/node_modules/@types/node/ts5.7/index.d.ts","./node_modules/.pnpm/@types+react@19.2.14/node_modules/@types/react/canary.d.ts","./node_modules/.pnpm/@types+react@19.2.14/node_modules/@types/react/experimental.d.ts","./node_modules/.pnpm/@types+react-dom@19.2.3_@types+react@19.2.14/node_modules/@types/react-dom/index.d.ts","./node_modules/.pnpm/@types+react-dom@19.2.3_@types+react@19.2.14/node_modules/@types/react-dom/canary.d.ts","./node_modules/.pnpm/@types+react-dom@19.2.3_@types+react@19.2.14/node_modules/@types/react-dom/experimental.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/lib/fallback.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/compiled/webpack/webpack.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/shared/lib/modern-browserslist-target.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/shared/lib/entry-constants.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/shared/lib/constants.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/lib/bundler.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/config.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/lib/load-custom-routes.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/shared/lib/image-config.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/build/webpack/plugins/subresource-integrity-plugin.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/body-streams.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/request/search-params.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/shared/lib/segment-cache/vary-params-decoding.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/app-render/vary-params.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/request/params.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/route-kind.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/route-definitions/route-definition.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/route-matches/route-match.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/client/components/app-router-headers.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/lib/cache-control.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/shared/lib/app-router-types.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/lib/cache-handlers/types.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/use-cache/use-cache-wrapper.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/resume-data-cache/cache-store.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/resume-data-cache/resume-data-cache.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/lib/constants.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/render-result.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/response-cache/types.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/response-cache/index.d.ts","./node_modules/.pnpm/@types+react@19.2.14/node_modules/@types/react/jsx-runtime.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/next-devtools/userspace/pages/pages-dev-overlay-setup.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/build/static-paths/types.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/route-definitions/app-page-route-definition.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/build/adapter/setup-node-env.external.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/instrumentation/types.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/lib/setup-exception-listeners.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/lib/worker.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/lib/experimental/ppr.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/lib/page-types.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/build/segment-config/app/app-segment-config.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/build/segment-config/pages/pages-segment-config.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/build/analysis/get-page-static-info.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/build/webpack/loaders/get-module-build-info.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/build/webpack/plugins/middleware-plugin.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/require-hook.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/node-polyfill-crypto.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/node-environment-baseline.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/node-environment-extensions/error-inspect.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/node-environment-extensions/console-file.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/node-environment-extensions/console-exit.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/node-environment-extensions/console-dim.external.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/node-environment-extensions/unhandled-rejection.external.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/node-environment-extensions/random.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/node-environment-extensions/date.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/node-environment-extensions/web-crypto.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/node-environment-extensions/node-crypto.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/node-environment-extensions/fast-set-immediate.external.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/node-environment.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/build/page-extensions-type.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/route-modules/app-page/module.compiled.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/route-definitions/app-route-route-definition.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/lib/i18n-provider.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/web/next-url.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/compiled/@edge-runtime/cookies/index.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/web/spec-extension/cookies.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/web/spec-extension/request.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/shared/lib/deep-readonly.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/lib/incremental-cache/index.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/shared/lib/router/utils/middleware-route-matcher.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/build/webpack/plugins/flight-manifest-plugin.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/build/webpack/plugins/next-font-manifest-plugin.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/route-definitions/locale-route-definition.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/route-definitions/pages-route-definition.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/shared/lib/mitt.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/client/with-router.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/client/router.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/client/route-loader.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/client/page-loader.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/shared/lib/bloom-filter.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/shared/lib/router/router.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/shared/lib/router-context.shared-runtime.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/shared/lib/loadable-context.shared-runtime.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/shared/lib/loadable.shared-runtime.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/shared/lib/image-config-context.shared-runtime.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/client/components/readonly-url-search-params.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/shared/lib/hooks-client-context.shared-runtime.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/shared/lib/head-manager-context.shared-runtime.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/client/flight-data-helpers.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/client/components/segment-cache/cache-key.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/client/components/router-reducer/fetch-server-response.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/client/components/segment-cache/types.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/shared/lib/segment-cache/segment-value-encoding.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/client/components/segment-cache/scheduler.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/client/components/segment-cache/cache-map.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/client/components/segment-cache/vary-path.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/client/components/segment-cache/cache.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/client/components/router-reducer/ppr-navigations.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/client/components/segment-cache/navigation.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/client/components/router-reducer/router-reducer-types.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/shared/lib/app-router-context.shared-runtime.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/shared/lib/server-inserted-html.shared-runtime.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/route-modules/pages/vendored/contexts/entrypoints.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/route-modules/pages/module.compiled.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/build/templates/pages.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/route-modules/pages/module.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/render.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/build/webpack/plugins/pages-manifest-plugin.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/route-definitions/pages-api-route-definition.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/route-matches/pages-api-route-match.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/route-matchers/route-matcher.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/route-matcher-providers/route-matcher-provider.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/route-matcher-managers/route-matcher-manager.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/normalizers/normalizer.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/normalizers/locale-route-normalizer.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/normalizers/request/pathname-normalizer.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/normalizers/request/suffix.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/normalizers/request/rsc.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/normalizers/request/next-data.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/after/builtin-request-context.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/normalizers/request/segment-prefix-rsc.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/route-modules/pages/builtin/_error.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/load-default-error-components.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/base-server.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/after/after.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/after/after-context.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/use-cache/cache-life.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/app-render/work-async-storage-instance.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/lib/lazy-result.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/app-render/create-error-handler.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/shared/lib/action-revalidation-kind.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/app-render/work-async-storage.external.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/async-storage/work-store.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/web/http.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/client/components/hooks-server-context.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/route-modules/app-route/shared-modules.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/client/components/redirect-status-code.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/client/components/redirect-error.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/web/spec-extension/adapters/request-cookies.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/async-storage/draft-mode-provider.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/web/spec-extension/adapters/headers.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/app-render/cache-signal.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/app-render/instant-validation/boundary-tracking.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/app-render/instant-validation/instant-validation-error.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/shared/lib/router/utils/parse-relative-url.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/app-render/instant-validation/instant-samples.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/app-render/dynamic-rendering.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/app-render/work-unit-async-storage-instance.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/lib/implicit-tags.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/app-render/staged-rendering.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/app-render/work-unit-async-storage.external.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/build/templates/app-route.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/app-render/action-async-storage-instance.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/app-render/action-async-storage.external.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/route-modules/app-route/module.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/route-modules/app-route/module.compiled.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/build/segment-config/app/app-segments.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/build/get-supported-browsers.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/build/utils.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/build/rendering-mode.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/lib/router-utils/build-prefetch-segment-data-route.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/lib/cpu-profile.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/build/turborepo-access-trace/types.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/build/turborepo-access-trace/result.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/build/turborepo-access-trace/helpers.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/build/turborepo-access-trace/index.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/export/routes/types.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/export/types.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/export/worker.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/build/worker.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/build/index.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/lib/coalesced-function.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/lib/router-utils/types.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/trace/types.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/trace/trace.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/trace/shared.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/trace/index.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/build/load-jsconfig.d.ts","./node_modules/.pnpm/@next+env@16.2.6/node_modules/@next/env/dist/index.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/build/webpack/plugins/telemetry-plugin/use-cache-tracker-utils.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/build/webpack/plugins/telemetry-plugin/telemetry-plugin.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/telemetry/storage.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/build/build-context.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/build/webpack-config.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/build/swc/generated-native.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/build/define-env.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/build/swc/index.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/build/swc/types.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/dev/parse-version-info.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/next-devtools/shared/types.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/dev/dev-indicator-server-state.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/next-devtools/dev-overlay/cache-indicator.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/lib/parse-stack.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/next-devtools/server/shared.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/next-devtools/shared/stack-frame.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/next-devtools/dev-overlay/utils/get-error-by-type.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/next-devtools/dev-overlay/container/runtime-error/render-error.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/next-devtools/dev-overlay/shared.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/dev/debug-channel.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/dev/hot-reloader-types.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/web/spec-extension/fetch-event.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/web/spec-extension/response.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/build/segment-config/middleware/middleware-config.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/web/types.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/shared/lib/router/utils/parse-url.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/base-http/node.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/lib/async-callback-set.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/shared/lib/router/utils/route-regex.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/shared/lib/router/utils/route-matcher.d.ts","./node_modules/.pnpm/sharp@0.34.5/node_modules/sharp/lib/index.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/image-optimizer.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/next-server.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/lib/types.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/lib/lru-cache.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/lib/dev-bundler-service.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/dev/static-paths-worker.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/dev/next-dev-server.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/next.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/lib/render-server.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/lib/router-server.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/shared/lib/router/utils/path-match.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/lib/router-utils/filesystem.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/lib/router-utils/setup-dev-bundler.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/lib/router-utils/router-server-context.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/route-modules/route-module.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/load-components.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/web/adapter.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/app-render/types.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/build/webpack/loaders/metadata/types.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/build/webpack/loaders/next-app-loader/index.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/lib/app-dir-module.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/app-render/app-render.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/route-modules/app-page/vendored/contexts/entrypoints.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/client/components/error-boundary.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/client/components/layout-router.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/client/components/render-from-template-context.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/client/components/client-page.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/client/components/client-segment.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/client/components/http-access-fallback/error-boundary.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/lib/metadata/types/alternative-urls-types.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/lib/metadata/types/extra-types.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/lib/metadata/types/metadata-types.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/lib/metadata/types/manifest-types.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/lib/metadata/types/opengraph-types.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/lib/metadata/types/twitter-types.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/lib/metadata/types/metadata-interface.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/lib/metadata/types/resolvers.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/lib/metadata/types/icons.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/lib/metadata/resolve-metadata.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/lib/metadata/metadata.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/lib/framework/boundary-components.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/app-render/rsc/preloads.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/app-render/rsc/postpone.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/app-render/rsc/taint.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/app-render/collect-segment-data.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/app-render/instant-validation/instant-validation.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/next-devtools/userspace/app/segment-explorer-node.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/app-render/entry-base.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/build/templates/app-page.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/route-modules/app-page/helpers/prerender-manifest-matcher.d.ts","./node_modules/.pnpm/@types+react@19.2.14/node_modules/@types/react/jsx-dev-runtime.d.ts","./node_modules/.pnpm/@types+react@19.2.14/node_modules/@types/react/compiler-runtime.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/route-modules/app-page/vendored/rsc/entrypoints.d.ts","./node_modules/.pnpm/@types+react-dom@19.2.3_@types+react@19.2.14/node_modules/@types/react-dom/client.d.ts","./node_modules/.pnpm/@types+react-dom@19.2.3_@types+react@19.2.14/node_modules/@types/react-dom/static.d.ts","./node_modules/.pnpm/@types+react-dom@19.2.3_@types+react@19.2.14/node_modules/@types/react-dom/server.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/route-modules/app-page/vendored/ssr/entrypoints.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/route-modules/app-page/module.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/request/fallback-params.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/web/spec-extension/image-response.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/web/spec-extension/user-agent.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/web/spec-extension/url-pattern.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/after/index.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/request/connection.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/web/exports/index.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/request-meta.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/cli/next-test.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/shared/lib/size-limit.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/config-shared.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/base-http/index.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/api-utils/index.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/build/adapter/build-complete.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/types.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/shared/lib/html-context.shared-runtime.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/shared/lib/utils.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/pages/_app.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/app.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/web/spec-extension/unstable-cache.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/web/spec-extension/revalidate.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/web/spec-extension/unstable-no-store.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/use-cache/cache-tag.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/cache.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/pages/_document.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/document.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/shared/lib/dynamic.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dynamic.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/pages/_error.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/client/components/catch-error.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/api/error.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/error.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/shared/lib/head.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/head.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/request/cookies.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/request/headers.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/server/request/draft-mode.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/headers.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/shared/lib/get-img-props.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/client/image-component.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/shared/lib/image-external.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/image.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/client/link.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/link.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/client/components/unrecognized-action-error.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/client/components/redirect.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/client/components/not-found.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/client/components/forbidden.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/client/components/unauthorized.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/client/components/unstable-rethrow.server.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/client/components/unstable-rethrow.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/client/components/navigation.react-server.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/client/components/navigation.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/navigation.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/router.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/client/script.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/script.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/compiled/@edge-runtime/primitives/url.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/compiled/@vercel/og/satori/index.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/compiled/@vercel/og/types.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/server.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/types/global.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/types/compiled.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/types.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/index.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/image-types/global.d.ts","./.next/types/routes.d.ts","./next-env.d.ts","./app/manifest.ts","./lib/offline-queue.ts","./lib/push-subscribe.ts","./lib/pwa-install.ts","./node_modules/.pnpm/clsx@2.1.1/node_modules/clsx/clsx.d.mts","./node_modules/.pnpm/tailwind-merge@3.4.0/node_modules/tailwind-merge/dist/types.d.ts","./lib/utils.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/compiled/@next/font/dist/types.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/compiled/@next/font/dist/google/index.d.ts","./node_modules/.pnpm/next@16.2.6_@babel+core@7.29.7_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/font/google/index.d.ts","./components/sw-register.tsx","./app/layout.tsx","./node_modules/.pnpm/lucide-react@1.17.0_react@19.2.4/node_modules/lucide-react/dist/lucide-react.d.ts","./node_modules/.pnpm/@base-ui+react@1.5.0_@date-fns+tz@1.4.1_@types+react@19.2.14_date-fns@4.1.0_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/@base-ui/react/esm/internals/reason-parts.d.ts","./node_modules/.pnpm/@base-ui+react@1.5.0_@date-fns+tz@1.4.1_@types+react@19.2.14_date-fns@4.1.0_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/@base-ui/react/esm/internals/reasons.d.ts","./node_modules/.pnpm/@base-ui+react@1.5.0_@date-fns+tz@1.4.1_@types+react@19.2.14_date-fns@4.1.0_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/@base-ui/react/esm/internals/createBaseUIEventDetails.d.ts","./node_modules/.pnpm/@base-ui+react@1.5.0_@date-fns+tz@1.4.1_@types+react@19.2.14_date-fns@4.1.0_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/@base-ui/react/esm/types/index.d.ts","./node_modules/.pnpm/@base-ui+react@1.5.0_@date-fns+tz@1.4.1_@types+react@19.2.14_date-fns@4.1.0_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/@base-ui/react/esm/internals/types.d.ts","./node_modules/.pnpm/@base-ui+react@1.5.0_@date-fns+tz@1.4.1_@types+react@19.2.14_date-fns@4.1.0_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/@base-ui/react/esm/button/Button.d.ts","./node_modules/.pnpm/@base-ui+react@1.5.0_@date-fns+tz@1.4.1_@types+react@19.2.14_date-fns@4.1.0_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/@base-ui/react/esm/button/index.d.ts","./node_modules/.pnpm/class-variance-authority@0.7.1/node_modules/class-variance-authority/dist/types.d.ts","./node_modules/.pnpm/class-variance-authority@0.7.1/node_modules/class-variance-authority/dist/index.d.ts","./components/ui/button.tsx","./node_modules/.pnpm/@base-ui+react@1.5.0_@date-fns+tz@1.4.1_@types+react@19.2.14_date-fns@4.1.0_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/@base-ui/react/esm/internals/form-context/FormContext.d.ts","./node_modules/.pnpm/@base-ui+react@1.5.0_@date-fns+tz@1.4.1_@types+react@19.2.14_date-fns@4.1.0_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/@base-ui/react/esm/form/Form.d.ts","./node_modules/.pnpm/@base-ui+react@1.5.0_@date-fns+tz@1.4.1_@types+react@19.2.14_date-fns@4.1.0_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/@base-ui/react/esm/form/index.d.ts","./node_modules/.pnpm/@base-ui+react@1.5.0_@date-fns+tz@1.4.1_@types+react@19.2.14_date-fns@4.1.0_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/@base-ui/react/esm/field/root/FieldRoot.d.ts","./node_modules/.pnpm/@base-ui+react@1.5.0_@date-fns+tz@1.4.1_@types+react@19.2.14_date-fns@4.1.0_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/@base-ui/react/esm/field/label/FieldLabel.d.ts","./node_modules/.pnpm/@base-ui+react@1.5.0_@date-fns+tz@1.4.1_@types+react@19.2.14_date-fns@4.1.0_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/@base-ui/react/esm/internals/useTransitionStatus.d.ts","./node_modules/.pnpm/@base-ui+react@1.5.0_@date-fns+tz@1.4.1_@types+react@19.2.14_date-fns@4.1.0_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/@base-ui/react/esm/field/error/FieldError.d.ts","./node_modules/.pnpm/@base-ui+react@1.5.0_@date-fns+tz@1.4.1_@types+react@19.2.14_date-fns@4.1.0_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/@base-ui/react/esm/field/description/FieldDescription.d.ts","./node_modules/.pnpm/@base-ui+react@1.5.0_@date-fns+tz@1.4.1_@types+react@19.2.14_date-fns@4.1.0_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/@base-ui/react/esm/field/control/FieldControl.d.ts","./node_modules/.pnpm/@base-ui+react@1.5.0_@date-fns+tz@1.4.1_@types+react@19.2.14_date-fns@4.1.0_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/@base-ui/react/esm/field/validity/FieldValidity.d.ts","./node_modules/.pnpm/@base-ui+react@1.5.0_@date-fns+tz@1.4.1_@types+react@19.2.14_date-fns@4.1.0_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/@base-ui/react/esm/field/item/FieldItem.d.ts","./node_modules/.pnpm/@base-ui+react@1.5.0_@date-fns+tz@1.4.1_@types+react@19.2.14_date-fns@4.1.0_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/@base-ui/react/esm/field/index.parts.d.ts","./node_modules/.pnpm/@base-ui+react@1.5.0_@date-fns+tz@1.4.1_@types+react@19.2.14_date-fns@4.1.0_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/@base-ui/react/esm/field/index.d.ts","./node_modules/.pnpm/@base-ui+react@1.5.0_@date-fns+tz@1.4.1_@types+react@19.2.14_date-fns@4.1.0_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/@base-ui/react/esm/input/Input.d.ts","./node_modules/.pnpm/@base-ui+react@1.5.0_@date-fns+tz@1.4.1_@types+react@19.2.14_date-fns@4.1.0_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/@base-ui/react/esm/input/index.d.ts","./components/ui/input.tsx","./components/ui/label.tsx","./components/two-factor-flow.tsx","./components/login-form.tsx","./app/page.tsx","./components/wordmark.tsx","./components/course-template-editor.tsx","./components/account-settings.tsx","./app/account/page.tsx","./node_modules/.pnpm/@floating-ui+utils@0.2.11/node_modules/@floating-ui/utils/dist/floating-ui.utils.d.mts","./node_modules/.pnpm/@floating-ui+core@1.7.5/node_modules/@floating-ui/core/dist/floating-ui.core.d.mts","./node_modules/.pnpm/@floating-ui+utils@0.2.11/node_modules/@floating-ui/utils/dist/floating-ui.utils.dom.d.mts","./node_modules/.pnpm/@floating-ui+dom@1.7.6/node_modules/@floating-ui/dom/dist/floating-ui.dom.d.mts","./node_modules/.pnpm/@floating-ui+react-dom@2.1.8_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/@floating-ui/react-dom/dist/floating-ui.react-dom.d.mts","./node_modules/.pnpm/@base-ui+react@1.5.0_@date-fns+tz@1.4.1_@types+react@19.2.14_date-fns@4.1.0_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/@base-ui/react/esm/floating-ui-react/components/FloatingTreeStore.d.ts","./node_modules/.pnpm/reselect@5.2.0/node_modules/reselect/dist/reselect.d.ts","./node_modules/.pnpm/@base-ui+utils@0.2.9_@types+react@19.2.14_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/@base-ui/utils/esm/store/createSelector.d.ts","./node_modules/.pnpm/@base-ui+utils@0.2.9_@types+react@19.2.14_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/@base-ui/utils/esm/store/createSelectorMemoized.d.ts","./node_modules/.pnpm/@base-ui+utils@0.2.9_@types+react@19.2.14_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/@base-ui/utils/esm/fastHooks.d.ts","./node_modules/.pnpm/@base-ui+utils@0.2.9_@types+react@19.2.14_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/@base-ui/utils/esm/store/Store.d.ts","./node_modules/.pnpm/@base-ui+utils@0.2.9_@types+react@19.2.14_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/@base-ui/utils/esm/store/useStore.d.ts","./node_modules/.pnpm/@base-ui+utils@0.2.9_@types+react@19.2.14_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/@base-ui/utils/esm/store/ReactStore.d.ts","./node_modules/.pnpm/@base-ui+utils@0.2.9_@types+react@19.2.14_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/@base-ui/utils/esm/store/StoreInspector.d.ts","./node_modules/.pnpm/@base-ui+utils@0.2.9_@types+react@19.2.14_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/@base-ui/utils/esm/store/index.d.ts","./node_modules/.pnpm/@base-ui+react@1.5.0_@date-fns+tz@1.4.1_@types+react@19.2.14_date-fns@4.1.0_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/@base-ui/react/esm/utils/popups/inlineRect.d.ts","./node_modules/.pnpm/@base-ui+utils@0.2.9_@types+react@19.2.14_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/@base-ui/utils/esm/useEnhancedClickHandler.d.ts","./node_modules/.pnpm/@base-ui+react@1.5.0_@date-fns+tz@1.4.1_@types+react@19.2.14_date-fns@4.1.0_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/@base-ui/react/esm/utils/popups/popupTriggerMap.d.ts","./node_modules/.pnpm/@base-ui+react@1.5.0_@date-fns+tz@1.4.1_@types+react@19.2.14_date-fns@4.1.0_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/@base-ui/react/esm/utils/popups/store.d.ts","./node_modules/.pnpm/@base-ui+react@1.5.0_@date-fns+tz@1.4.1_@types+react@19.2.14_date-fns@4.1.0_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/@base-ui/react/esm/utils/popups/popupStoreUtils.d.ts","./node_modules/.pnpm/@base-ui+react@1.5.0_@date-fns+tz@1.4.1_@types+react@19.2.14_date-fns@4.1.0_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/@base-ui/react/esm/utils/popups/index.d.ts","./node_modules/.pnpm/@base-ui+react@1.5.0_@date-fns+tz@1.4.1_@types+react@19.2.14_date-fns@4.1.0_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/@base-ui/react/esm/floating-ui-react/components/FloatingRootStore.d.ts","./node_modules/.pnpm/@base-ui+react@1.5.0_@date-fns+tz@1.4.1_@types+react@19.2.14_date-fns@4.1.0_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/@base-ui/react/esm/floating-ui-react/components/FloatingFocusManager.d.ts","./node_modules/.pnpm/@base-ui+react@1.5.0_@date-fns+tz@1.4.1_@types+react@19.2.14_date-fns@4.1.0_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/@base-ui/react/esm/internals/getStateAttributesProps.d.ts","./node_modules/.pnpm/@base-ui+react@1.5.0_@date-fns+tz@1.4.1_@types+react@19.2.14_date-fns@4.1.0_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/@base-ui/react/esm/internals/useRenderElement.d.ts","./node_modules/.pnpm/@base-ui+react@1.5.0_@date-fns+tz@1.4.1_@types+react@19.2.14_date-fns@4.1.0_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/@base-ui/react/esm/floating-ui-react/components/FloatingPortal.d.ts","./node_modules/.pnpm/@base-ui+react@1.5.0_@date-fns+tz@1.4.1_@types+react@19.2.14_date-fns@4.1.0_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/@base-ui/react/esm/floating-ui-react/hooks/useClientPoint.d.ts","./node_modules/.pnpm/@base-ui+react@1.5.0_@date-fns+tz@1.4.1_@types+react@19.2.14_date-fns@4.1.0_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/@base-ui/react/esm/floating-ui-react/hooks/useDismiss.d.ts","./node_modules/.pnpm/@base-ui+react@1.5.0_@date-fns+tz@1.4.1_@types+react@19.2.14_date-fns@4.1.0_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/@base-ui/react/esm/floating-ui-react/hooks/useFocus.d.ts","./node_modules/.pnpm/@base-ui+react@1.5.0_@date-fns+tz@1.4.1_@types+react@19.2.14_date-fns@4.1.0_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/@base-ui/react/esm/internals/shadowDom.d.ts","./node_modules/.pnpm/@base-ui+react@1.5.0_@date-fns+tz@1.4.1_@types+react@19.2.14_date-fns@4.1.0_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/@base-ui/react/esm/floating-ui-react/utils/element.d.ts","./node_modules/.pnpm/@base-ui+react@1.5.0_@date-fns+tz@1.4.1_@types+react@19.2.14_date-fns@4.1.0_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/@base-ui/react/esm/floating-ui-react/hooks/useHoverShared.d.ts","./node_modules/.pnpm/@base-ui+react@1.5.0_@date-fns+tz@1.4.1_@types+react@19.2.14_date-fns@4.1.0_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/@base-ui/react/esm/floating-ui-react/hooks/useHover.d.ts","./node_modules/.pnpm/@base-ui+react@1.5.0_@date-fns+tz@1.4.1_@types+react@19.2.14_date-fns@4.1.0_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/@base-ui/react/esm/floating-ui-react/hooks/useHoverFloatingInteraction.d.ts","./node_modules/.pnpm/@base-ui+react@1.5.0_@date-fns+tz@1.4.1_@types+react@19.2.14_date-fns@4.1.0_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/@base-ui/react/esm/floating-ui-react/hooks/useHoverReferenceInteraction.d.ts","./node_modules/.pnpm/@base-ui+react@1.5.0_@date-fns+tz@1.4.1_@types+react@19.2.14_date-fns@4.1.0_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/@base-ui/react/esm/floating-ui-react/hooks/useListNavigation.d.ts","./node_modules/.pnpm/@base-ui+react@1.5.0_@date-fns+tz@1.4.1_@types+react@19.2.14_date-fns@4.1.0_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/@base-ui/react/esm/floating-ui-react/hooks/useTypeahead.d.ts","./node_modules/.pnpm/@base-ui+react@1.5.0_@date-fns+tz@1.4.1_@types+react@19.2.14_date-fns@4.1.0_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/@base-ui/react/esm/floating-ui-react/hooks/useFloatingRootContext.d.ts","./node_modules/.pnpm/@base-ui+react@1.5.0_@date-fns+tz@1.4.1_@types+react@19.2.14_date-fns@4.1.0_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/@base-ui/react/esm/floating-ui-react/safePolygon.d.ts","./node_modules/.pnpm/@base-ui+react@1.5.0_@date-fns+tz@1.4.1_@types+react@19.2.14_date-fns@4.1.0_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/@base-ui/react/esm/floating-ui-react/components/FloatingTree.d.ts","./node_modules/.pnpm/@base-ui+react@1.5.0_@date-fns+tz@1.4.1_@types+react@19.2.14_date-fns@4.1.0_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/@base-ui/react/esm/floating-ui-react/types.d.ts","./node_modules/.pnpm/@base-ui+react@1.5.0_@date-fns+tz@1.4.1_@types+react@19.2.14_date-fns@4.1.0_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/@base-ui/react/esm/floating-ui-react/components/FloatingDelayGroup.d.ts","./node_modules/.pnpm/@base-ui+react@1.5.0_@date-fns+tz@1.4.1_@types+react@19.2.14_date-fns@4.1.0_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/@base-ui/react/esm/floating-ui-react/hooks/useClick.d.ts","./node_modules/.pnpm/@base-ui+react@1.5.0_@date-fns+tz@1.4.1_@types+react@19.2.14_date-fns@4.1.0_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/@base-ui/react/esm/floating-ui-react/hooks/useFloating.d.ts","./node_modules/.pnpm/@base-ui+react@1.5.0_@date-fns+tz@1.4.1_@types+react@19.2.14_date-fns@4.1.0_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/@base-ui/react/esm/floating-ui-react/hooks/useSyncedFloatingRootContext.d.ts","./node_modules/.pnpm/@base-ui+react@1.5.0_@date-fns+tz@1.4.1_@types+react@19.2.14_date-fns@4.1.0_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/@base-ui/react/esm/floating-ui-react/index.d.ts","./node_modules/.pnpm/@base-ui+react@1.5.0_@date-fns+tz@1.4.1_@types+react@19.2.14_date-fns@4.1.0_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/@base-ui/react/esm/utils/useAnchorPositioning.d.ts","./node_modules/.pnpm/@base-ui+react@1.5.0_@date-fns+tz@1.4.1_@types+react@19.2.14_date-fns@4.1.0_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/@base-ui/react/esm/menu/arrow/MenuArrow.d.ts","./node_modules/.pnpm/@base-ui+react@1.5.0_@date-fns+tz@1.4.1_@types+react@19.2.14_date-fns@4.1.0_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/@base-ui/react/esm/menu/backdrop/MenuBackdrop.d.ts","./node_modules/.pnpm/@base-ui+react@1.5.0_@date-fns+tz@1.4.1_@types+react@19.2.14_date-fns@4.1.0_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/@base-ui/react/esm/menu/store/MenuStore.d.ts","./node_modules/.pnpm/@base-ui+react@1.5.0_@date-fns+tz@1.4.1_@types+react@19.2.14_date-fns@4.1.0_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/@base-ui/react/esm/menu/root/MenuRootContext.d.ts","./node_modules/.pnpm/@base-ui+react@1.5.0_@date-fns+tz@1.4.1_@types+react@19.2.14_date-fns@4.1.0_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/@base-ui/react/esm/menubar/MenubarContext.d.ts","./node_modules/.pnpm/@base-ui+react@1.5.0_@date-fns+tz@1.4.1_@types+react@19.2.14_date-fns@4.1.0_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/@base-ui/react/esm/context-menu/root/ContextMenuRoot.d.ts","./node_modules/.pnpm/@base-ui+react@1.5.0_@date-fns+tz@1.4.1_@types+react@19.2.14_date-fns@4.1.0_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/@base-ui/react/esm/context-menu/root/ContextMenuRootContext.d.ts","./node_modules/.pnpm/@base-ui+react@1.5.0_@date-fns+tz@1.4.1_@types+react@19.2.14_date-fns@4.1.0_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/@base-ui/react/esm/menu/store/MenuHandle.d.ts","./node_modules/.pnpm/@base-ui+react@1.5.0_@date-fns+tz@1.4.1_@types+react@19.2.14_date-fns@4.1.0_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/@base-ui/react/esm/menu/root/MenuRoot.d.ts","./node_modules/.pnpm/@base-ui+react@1.5.0_@date-fns+tz@1.4.1_@types+react@19.2.14_date-fns@4.1.0_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/@base-ui/react/esm/menu/checkbox-item/MenuCheckboxItem.d.ts","./node_modules/.pnpm/@base-ui+react@1.5.0_@date-fns+tz@1.4.1_@types+react@19.2.14_date-fns@4.1.0_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/@base-ui/react/esm/menu/checkbox-item-indicator/MenuCheckboxItemIndicator.d.ts","./node_modules/.pnpm/@base-ui+react@1.5.0_@date-fns+tz@1.4.1_@types+react@19.2.14_date-fns@4.1.0_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/@base-ui/react/esm/menu/group/MenuGroup.d.ts","./node_modules/.pnpm/@base-ui+react@1.5.0_@date-fns+tz@1.4.1_@types+react@19.2.14_date-fns@4.1.0_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/@base-ui/react/esm/menu/group-label/MenuGroupLabel.d.ts","./node_modules/.pnpm/@base-ui+react@1.5.0_@date-fns+tz@1.4.1_@types+react@19.2.14_date-fns@4.1.0_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/@base-ui/react/esm/menu/item/MenuItem.d.ts","./node_modules/.pnpm/@base-ui+react@1.5.0_@date-fns+tz@1.4.1_@types+react@19.2.14_date-fns@4.1.0_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/@base-ui/react/esm/menu/link-item/MenuLinkItem.d.ts","./node_modules/.pnpm/@base-ui+react@1.5.0_@date-fns+tz@1.4.1_@types+react@19.2.14_date-fns@4.1.0_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/@base-ui/react/esm/menu/popup/MenuPopup.d.ts","./node_modules/.pnpm/@base-ui+react@1.5.0_@date-fns+tz@1.4.1_@types+react@19.2.14_date-fns@4.1.0_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/@base-ui/react/esm/menu/portal/MenuPortal.d.ts","./node_modules/.pnpm/@base-ui+react@1.5.0_@date-fns+tz@1.4.1_@types+react@19.2.14_date-fns@4.1.0_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/@base-ui/react/esm/menu/positioner/MenuPositioner.d.ts","./node_modules/.pnpm/@base-ui+react@1.5.0_@date-fns+tz@1.4.1_@types+react@19.2.14_date-fns@4.1.0_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/@base-ui/react/esm/menu/radio-group/MenuRadioGroup.d.ts","./node_modules/.pnpm/@base-ui+react@1.5.0_@date-fns+tz@1.4.1_@types+react@19.2.14_date-fns@4.1.0_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/@base-ui/react/esm/menu/radio-item/MenuRadioItem.d.ts","./node_modules/.pnpm/@base-ui+react@1.5.0_@date-fns+tz@1.4.1_@types+react@19.2.14_date-fns@4.1.0_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/@base-ui/react/esm/menu/radio-item-indicator/MenuRadioItemIndicator.d.ts","./node_modules/.pnpm/@base-ui+react@1.5.0_@date-fns+tz@1.4.1_@types+react@19.2.14_date-fns@4.1.0_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/@base-ui/react/esm/menu/submenu-root/MenuSubmenuRootContext.d.ts","./node_modules/.pnpm/@base-ui+react@1.5.0_@date-fns+tz@1.4.1_@types+react@19.2.14_date-fns@4.1.0_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/@base-ui/react/esm/menu/submenu-root/MenuSubmenuRoot.d.ts","./node_modules/.pnpm/@base-ui+react@1.5.0_@date-fns+tz@1.4.1_@types+react@19.2.14_date-fns@4.1.0_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/@base-ui/react/esm/menu/trigger/MenuTrigger.d.ts","./node_modules/.pnpm/@base-ui+react@1.5.0_@date-fns+tz@1.4.1_@types+react@19.2.14_date-fns@4.1.0_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/@base-ui/react/esm/menu/viewport/MenuViewport.d.ts","./node_modules/.pnpm/@base-ui+react@1.5.0_@date-fns+tz@1.4.1_@types+react@19.2.14_date-fns@4.1.0_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/@base-ui/react/esm/separator/Separator.d.ts","./node_modules/.pnpm/@base-ui+react@1.5.0_@date-fns+tz@1.4.1_@types+react@19.2.14_date-fns@4.1.0_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/@base-ui/react/esm/menu/submenu-trigger/MenuSubmenuTrigger.d.ts","./node_modules/.pnpm/@base-ui+react@1.5.0_@date-fns+tz@1.4.1_@types+react@19.2.14_date-fns@4.1.0_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/@base-ui/react/esm/menu/index.parts.d.ts","./node_modules/.pnpm/@base-ui+react@1.5.0_@date-fns+tz@1.4.1_@types+react@19.2.14_date-fns@4.1.0_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/@base-ui/react/esm/menu/index.d.ts","./components/ui/dropdown-menu.tsx","./components/tournament-status-badge.tsx","./components/tournament-card.tsx","./components/public-club.tsx","./app/clubs/[slug]/page.tsx","./components/install-prompt.tsx","./components/round-card.tsx","./components/dashboard.tsx","./app/dashboard/page.tsx","./components/more-menu.tsx","./app/more/page.tsx","./components/friends.tsx","./app/my-friends/page.tsx","./components/friend-profile.tsx","./app/my-friends/[id]/page.tsx","./components/notifications.tsx","./app/my-notifications/page.tsx","./components/own-rounds.tsx","./app/my-rounds/page.tsx","./components/round-header.tsx","./components/round-page-shell.tsx","./node_modules/.pnpm/@base-ui+react@1.5.0_@date-fns+tz@1.4.1_@types+react@19.2.14_date-fns@4.1.0_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/@base-ui/react/esm/merge-props/mergeProps.d.ts","./node_modules/.pnpm/@base-ui+react@1.5.0_@date-fns+tz@1.4.1_@types+react@19.2.14_date-fns@4.1.0_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/@base-ui/react/esm/merge-props/index.d.ts","./node_modules/.pnpm/@base-ui+react@1.5.0_@date-fns+tz@1.4.1_@types+react@19.2.14_date-fns@4.1.0_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/@base-ui/react/esm/use-render/useRender.d.ts","./node_modules/.pnpm/@base-ui+react@1.5.0_@date-fns+tz@1.4.1_@types+react@19.2.14_date-fns@4.1.0_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/@base-ui/react/esm/use-render/index.d.ts","./components/ui/badge.tsx","./components/scramble-solo-result.tsx","./components/round-leaderboard.tsx","./components/round-detail.tsx","./app/my-rounds/[id]/page.tsx","./components/flight-group-leaderboard.tsx","./app/my-rounds/[id]/flights/page.tsx","./app/my-rounds/[id]/leaderboard/page.tsx","./components/round-scorecard.tsx","./components/round-stats.tsx","./app/my-rounds/[id]/scorecard/page.tsx","./app/my-rounds/[id]/stats/page.tsx","./components/course-rounds.tsx","./app/my-rounds/course/[name]/page.tsx","./node_modules/.pnpm/@base-ui+react@1.5.0_@date-fns+tz@1.4.1_@types+react@19.2.14_date-fns@4.1.0_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/@base-ui/react/esm/switch/root/SwitchRoot.d.ts","./node_modules/.pnpm/@base-ui+react@1.5.0_@date-fns+tz@1.4.1_@types+react@19.2.14_date-fns@4.1.0_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/@base-ui/react/esm/switch/thumb/SwitchThumb.d.ts","./node_modules/.pnpm/@base-ui+react@1.5.0_@date-fns+tz@1.4.1_@types+react@19.2.14_date-fns@4.1.0_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/@base-ui/react/esm/switch/index.parts.d.ts","./node_modules/.pnpm/@base-ui+react@1.5.0_@date-fns+tz@1.4.1_@types+react@19.2.14_date-fns@4.1.0_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/@base-ui/react/esm/switch/index.d.ts","./components/ui/switch.tsx","./components/new-round.tsx","./app/my-rounds/new/page.tsx","./components/rounds-stats-summary.tsx","./app/my-rounds/stats/page.tsx","./components/org-members.tsx","./app/organizations/[id]/members/page.tsx","./components/order-of-merit-list.tsx","./app/organizations/[id]/order-of-merit/page.tsx","./components/order-of-merit-detail.tsx","./app/organizations/[id]/order-of-merit/[oomId]/page.tsx","./components/public-tournament.tsx","./app/t/[id]/page.tsx","./components/public-live.tsx","./app/t/[id]/live/page.tsx","./components/tournament-detail.tsx","./components/tournament-presentation.tsx","./components/stroke-play-leaderboard.tsx","./components/individual-tournament-detail.tsx","./components/tournament-router.tsx","./app/tournaments/[id]/page.tsx","./components/tournament-leaderboard.tsx","./app/tournaments/[id]/leaderboard/page.tsx","./app/tournaments/[id]/presentation/page.tsx","./components/tournament-program.tsx","./app/tournaments/[id]/program/page.tsx","./components/session-blind-draw.tsx","./app/tournaments/[id]/sessions/[sessionId]/page.tsx","./components/session-individual-leaderboard.tsx","./app/tournaments/[id]/sessions/[sessionId]/individual-leaderboard/page.tsx","./components/session-scorecard.tsx","./app/tournaments/[id]/sessions/[sessionId]/matches/[matchId]/page.tsx","./components/team-chat.tsx","./app/tournaments/[id]/teams/[teamId]/chat/page.tsx","./components/verify-form.tsx","./app/verify/page.tsx","./components/verify-email-form.tsx","./app/verify-email/page.tsx","./components/watch-round.tsx","./app/watch/[id]/page.tsx","./components/ui/card.tsx","./.next/types/cache-life.d.ts","./.next/types/validator.ts"],"fileIdsList":[[91,145,162,163,487,488,489,490],[91,145,162,163],[91,145,162,163,230,531,534,547,578,582,663,667,669,671,673,675,677,688,690,691,694,695,697,704,706,708,714,716,722,724,727,729,731,733,735,737,739,741],[91,145,162,163,230,581],[91,145,162,163,230,532,662],[91,145,162,163,230,666],[91,145,162,163,230,529,532,545,546],[91,145,162,163,230,532],[91,145,162,163,230,668],[91,145,162,163,230,672],[91,145,162,163,230,670],[91,145,162,163,230,674],[91,145,162,163,230,689],[91,145,162,163,230,679,686],[81,91,145,162,163,230,687],[91,145,162,163,230,679,692,693],[91,145,162,163,230,521],[91,145,162,163,230,696],[81,91,145,162,163,230,703],[91,145,162,163,230,676],[91,145,162,163,230,705],[91,145,162,163,230,707],[91,145,162,163,230,711],[91,145,162,163,230,709],[91,145,162,163,230,505,521,577],[91,145,162,163,230,715],[91,145,162,163,230,532,713],[91,145,162,163,230,723],[91,145,162,163,230,721],[91,145,162,163,230,718],[91,145,162,163,230,726],[91,145,162,163,230,730],[91,145,162,163,230,732],[91,145,162,163,230,728],[91,145,162,163,230,734],[81,91,145,162,163,230,579,738],[81,91,145,162,163,230,579,736],[91,145,162,163,230,740],[81,91,145,162,163,230,511,521,538,548,558,574,575,576,579,580],[81,91,145,162,163,230,511,521,548,579,665],[81,91,145,162,163,230,548,558,574,575],[81,91,145,162,163,230,511,521,542,548,558,574,575,659,660,661,664,665],[81,91,145,162,163,230,511,542,548,684],[81,91,145,162,163,230,511,542,548],[81,91,145,162,163,230,511,521,542,548,574,579],[81,91,145,162,163,230,511,542,548,558,574,575,580,659,660,718,719],[81,91,145,162,163,230,539,548],[81,91,145,162,163,230,521,548,576],[81,91,145,162,163,230,511,521,548,666],[81,91,145,162,163,230,511,521,542,548,558,574,575,579,580,702],[81,91,145,162,163,230,511,521,542,548,579],[81,91,145,162,163,230,511,542,548,558,574,575,702],[81,91,145,162,163,230,511,521,542,548,558,574,575],[81,91,145,162,163,230,511,548,558,574,575],[81,91,145,162,163,230,511,521,548,558,579,665],[81,91,145,162,163,230,548,579,661],[81,91,145,162,163,230,511,542,548,579],[81,91,145,162,163,230,511,542,548,558,574,575,579],[81,91,145,162,163,230,511,521,537,542,548,558,574,575,679,684,685,686],[81,91,145,162,163,198,200,230,511,542,548,558],[81,91,145,162,163,230,511,542,548,685],[81,91,145,162,163,230,521,678],[81,91,145,162,163,230,511,521,548],[91,145,162,163,230,542,548],[81,91,145,162,163,230,511,542,548,558],[81,91,145,162,163,230,511,537,542,548,558],[81,91,145,162,163,230,542,548,558],[81,91,145,162,163,230,539],[91,145,162,163,230,511,548,660],[81,91,145,162,163,230,511,542,548,558,574,575,659,660],[81,91,145,162,163,230,511,542,548,558,574,575,580,659,702],[81,91,145,162,163,230,717,720],[91,145,162,163,230,542,548,659],[91,145,162,163,230,542,557,681,683],[91,145,162,163,230,542,555,557],[81,91,145,162,163,230,542],[81,91,145,162,163,230,542,548,658],[81,91,145,162,163,230,542,573],[91,145,162,163,230,542,701],[81,91,145,162,163,230,521,548,558,574,575,576],[91,145,162,163,230],[91,145,162,163,230,540,541],[91,145,162,163,532,533,534],[81,91,145,162,163,553],[91,145,162,163,554],[91,145,162,163,230,552,638,658],[81,91,145,162,163,635],[81,91,145,162,163,550,551,553,562],[81,91,145,162,163,553,562],[81,91,145,162,163,553,562,564],[91,145,162,163,562,563,565,566,567,568,569,570],[91,145,162,163,562,563,565,566,567,568,569],[81,91,145,162,163,553,561],[81,91,145,162,163,562,564],[81,91,145,162,163,623],[81,91,145,162,163,588,599,623],[81,91,145,162,163,553,607],[81,91,145,162,163,551,564,597,603,623],[81,91,145,162,163,588,623],[91,145,162,163,623],[91,145,162,163,550,623],[91,145,162,163,588,623],[91,145,162,163,551,604,623],[91,145,162,163,614,623],[81,91,145,162,163,553,588,614,623],[91,145,162,163,613,623],[91,145,162,163,552,597,603,604],[91,145,162,163,587,588,605,608,609,610,611,615,616,617,618,619,620,621,622,623,624,625,626,627],[91,145,162,163,614],[81,91,145,162,163,551,587,588,604,605,608,609,610,611,614,615,616,617,618,619,620,621,622,624,628],[91,145,162,163,603,612],[81,91,145,162,163,550,551,553,559],[91,145,162,163,560],[81,91,145,162,163,553,571],[91,145,162,163,572],[91,145,162,163,550],[81,91,145,162,163,560,562],[91,145,162,163,549],[81,91,145,162,163,552],[81,91,145,162,163,553,606],[81,91,145,162,163],[81,91,145,162,163,553,629],[81,91,145,162,163,553,564],[81,91,145,162,163,553,638],[91,145,162,163,630,631,638,639,640,641,642,643,644,645,646,647,648,649,650,652,653,654,656,657],[91,145,162,163,630,631,637,638,639,640,641,642,643,644,645,646,647,648,649,650,652,653,654,655,656],[81,91,145,162,163,553,564,599,629],[81,91,145,162,163,628],[81,91,145,162,163,230,550,551,603,632,633,634,636,637],[81,91,145,162,163,632,638],[91,145,162,163,632],[81,91,145,162,163,553,564,588,597,599,603,604,628,638,658],[91,145,162,163,230,638,651],[81,91,145,162,163,632],[81,91,145,162,163,553,637],[81,91,145,162,163,638],[91,145,162,163,680],[91,145,162,163,698,699,700],[91,145,162,163,698,699],[81,91,145,162,163,550,552,553,562],[81,91,145,162,163,553,698],[81,91,145,162,163,551],[91,145,162,163,553,682],[91,145,162,163,598,600,601,602],[81,91,145,162,163,587],[81,91,145,162,163,551,564,597,599,601],[91,145,162,163,553,564,600,604,628],[81,91,145,162,163,583,628],[91,145,162,163,593],[81,91,145,162,163,230,593],[91,145,162,163,589],[91,145,162,163,590],[91,145,162,163,590,591,593,594,595,596],[91,145,162,163,592,593],[91,145,162,163,583],[91,145,162,163,584,585],[81,91,145,162,163,586],[91,142,143,145,162,163],[91,144,145,162,163],[145,162,163],[91,145,150,162,163,180],[91,145,146,151,156,162,163,165,177,188],[91,145,146,147,156,162,163,165],[91,145,148,162,163,189],[91,145,149,150,157,162,163,166],[91,145,150,162,163,177,185],[91,145,151,153,156,162,163,165],[91,144,145,152,162,163],[91,145,153,154,162,163],[91,145,155,156,162,163],[91,144,145,156,162,163],[91,145,156,157,158,162,163,177,188],[91,145,156,157,158,162,163,172,177,180],[91,137,145,153,156,159,162,163,165,177,188],[91,145,156,157,159,160,162,163,165,177,185,188],[91,145,159,161,162,163,177,185,188],[91,145,156,162,163],[91,145,162,163,164,188],[91,145,153,156,162,163,165,177],[91,145,162,163,166],[91,145,162,163,167],[91,144,145,162,163,168],[91,142,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],[91,145,162,163,170],[91,145,162,163,171],[91,145,156,162,163,172,173],[91,145,162,163,172,174,189,191],[91,145,157,162,163],[91,145,156,162,163,177,178,180],[91,145,162,163,179,180],[91,145,162,163,177,178],[91,145,162,163,180],[91,145,162,163,181],[91,142,145,162,163,177,182],[91,145,156,162,163,183,184],[91,145,162,163,183,184],[91,145,150,162,163,165,177,185],[91,145,162,163,186],[88,89,90,91,92,93,94,95,96,138,139,140,141,142,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],[91,145,162,163,165,187],[91,145,159,162,163,171,188],[91,145,150,162,163,189],[91,145,162,163,177,190],[91,145,162,163,164,191],[91,145,162,163,192],[91,145,150,162,163],[91,137,145,162,163],[91,145,162,163,193],[91,137,145,156,158,162,163,168,177,180,188,190,191,193],[91,145,162,163,177,194],[81,85,91,145,162,163,196,197,198,200,482,527],[81,85,91,145,162,163,196,197,198,199,463,482,527],[81,85,91,145,162,163,196,197,199,200,482,527],[81,91,145,162,163,200,463,464],[81,91,145,162,163,200,463],[81,85,91,145,162,163,197,198,199,200,482,527],[81,85,91,145,162,163,196,198,199,200,482,527],[79,80,91,145,162,163],[91,145,162,163,540,556],[91,145,162,163,540],[91,145,162,163,485],[91,145,162,163,433,496,497],[91,145,162,163,205,206,208,220,244,359,370,478],[91,145,162,163,208,239,240,241,243,478],[91,145,162,163,208,376,378,380,381,383,478,480],[91,145,162,163,208,242,279,478],[91,145,162,163,206,208,219,220,226,232,237,358,359,360,369,478,480],[91,145,162,163,478],[91,145,162,163,215,221,240,260,355],[91,145,162,163,208],[91,145,162,163,201,215,221],[91,145,162,163,387],[91,145,162,163,384,385,387],[91,145,162,163,384,386,478],[91,145,159,162,163,260,457,475],[91,145,159,162,163,331,334,350,355,475],[91,145,159,162,163,303,475],[91,145,162,163,363],[91,145,162,163,362,363,364],[91,145,162,163,362],[87,91,145,159,162,163,201,208,220,226,232,238,240,244,245,258,259,326,356,357,370,478,482],[91,145,162,163,205,208,242,279,376,377,382,478,530],[91,145,162,163,242,530],[91,145,162,163,205,259,428,478,530],[91,145,162,163,530],[91,145,162,163,208,242,243,530],[91,145,162,163,379,530],[91,145,162,163,245,358,361,368],[81,91,145,162,163,433],[91,145,162,163,171,215,230],[91,145,162,163,215,230],[81,91,145,162,163,300],[81,91,145,162,163,230],[81,91,145,162,163,221,230,433],[91,145,162,163,215,286,300,301,512,519],[91,145,162,163,285,513,514,515,516,518],[91,145,162,163,336],[91,145,162,163,336,337],[91,145,162,163,219,221,288,289],[91,145,162,163,221,295,296],[91,145,162,163,221,290,298],[91,145,162,163,295],[91,145,162,163,213,221,288,289,290,291,292,293,294,295,298],[91,145,162,163,221,288,295,296,297,299],[91,145,162,163,221,289,291,292],[91,145,162,163,289,291,294,296],[91,145,162,163,517],[91,145,162,163,221],[81,91,145,162,163,209,506],[81,91,145,162,163,188],[81,91,145,162,163,242,277],[81,91,145,162,163,242,370],[91,145,162,163,275,280],[81,91,145,162,163,276,484],[91,145,162,163,543],[81,85,91,145,159,162,163,196,197,198,199,200,482,526],[91,145,159,162,163,221],[91,145,159,162,163,220,225,306,323,365,366,370,425,427,478,479],[91,145,162,163,258,367],[91,145,162,163,482],[91,145,162,163,207],[81,91,145,162,163,212,215,430,446,448],[91,145,162,163,171,215,430,445,446,447,529],[91,145,162,163,439,440,441,442,443,444],[91,145,162,163,441],[91,145,162,163,445],[91,145,162,163,230,394,395,397],[81,91,145,162,163,221,388,389,390,391,396],[91,145,162,163,394,396],[91,145,162,163,392],[91,145,162,163,393],[81,91,145,162,163,230,276,484],[81,91,145,162,163,230,483,484],[81,91,145,162,163,230,484],[91,145,162,163,323,324],[91,145,162,163,324],[91,145,159,162,163,479,484],[91,145,162,163,353],[91,144,145,162,163,352],[91,145,162,163,215,221,227,229,331,344,348,350,427,430,467,468,475,479],[91,145,162,163,221,270,292],[91,145,162,163,331,342,345,350],[81,91,145,162,163,212,215,331,334,350,353,387,434,435,436,437,438,449,450,451,452,453,454,455,456,530],[91,145,162,163,212,215,240,331,338,339,340,343,344],[91,145,162,163,177,221,240,342,349,430,431,475],[91,145,162,163,346],[91,145,159,162,163,171,209,221,225,235,267,268,271,323,326,391,425,426,467,478,479,480,482,530],[91,145,162,163,212,213,215],[91,145,162,163,331],[91,144,145,162,163,240,267,268,325,326,327,328,329,330,479],[91,145,162,163,350],[91,144,145,162,163,214,215,225,229,265,331,338,339,340,341,342,345,346,347,348,349,468],[91,145,159,162,163,265,266,338,479,480],[91,145,162,163,240,268,323,326,331,427,479],[91,145,159,162,163,478,480],[91,145,159,162,163,177,475,479,480],[91,145,159,162,163,171,201,215,220,227,229,232,235,242,262,267,268,269,270,271,306,307,309,312,314,317,318,319,320,322,370,425,427,475,478,479,480],[91,145,159,162,163,177],[91,145,162,163,208,209,210,238,475,476,477,482,484,530],[91,145,162,163,205,206,478],[91,145,162,163,399],[91,145,159,162,163,177,188,217,383,387,388,389,390,391,397,398,530],[91,145,162,163,171,188,201,215,217,229,232,268,307,312,322,323,376,403,404,405,411,414,415,425,427,475,478],[91,145,162,163,232,238,245,258,268,326,478],[91,145,159,162,163,188,209,220,229,268,409,475,478],[91,145,162,163,429],[91,145,159,162,163,399,412,413,422],[91,145,162,163,475,478],[91,145,162,163,328,468],[91,145,162,163,229,267,370,484],[91,145,159,162,163,171,207,312,372,376,405,411,414,417,475],[91,145,159,162,163,245,258,376,418],[91,145,162,163,208,269,370,420,478,480],[91,145,159,162,163,188,391,478],[91,145,159,162,163,242,269,370,371,372,381,399,419,421,478],[87,91,145,159,162,163,267,424,482,484],[91,145,162,163,321,425],[91,145,159,162,163,171,215,218,220,221,227,229,235,244,245,258,268,271,307,309,319,322,323,370,403,404,405,406,408,410,425,427,475,484],[91,145,159,162,163,177,245,411,416,422,475],[91,145,162,163,248,249,250,251,252,253,254,255,256,257],[91,145,162,163,262,313],[91,145,162,163,315],[91,145,162,163,313],[91,145,162,163,315,316],[91,145,159,162,163,219,220,221,225,226,479],[91,145,159,162,163,171,207,209,227,231,267,270,271,305,425,475,480,482,484],[91,145,159,162,163,171,188,211,218,219,229,231,268,423,468,474,479],[91,145,162,163,338],[91,145,162,163,339],[91,145,162,163,221,232,467],[91,145,162,163,340],[91,145,162,163,214],[91,145,162,163,216,228],[91,145,159,162,163,216,220,227],[91,145,162,163,223,228],[91,145,162,163,224],[91,145,162,163,216,217],[91,145,162,163,216,272],[91,145,162,163,216],[91,145,162,163,218,262,311],[91,145,162,163,310],[91,145,162,163,215,217,218],[91,145,162,163,218,308],[91,145,162,163,215,217],[91,145,162,163,267,370],[91,145,162,163,467],[91,145,159,162,163,188,227,229,233,267,370,424,427,430,431,432,458,459,462,466,468,475,479],[91,145,162,163,281,284,286,287,300,301],[81,91,145,162,163,198,200,230,460,461],[81,91,145,162,163,198,200,230,460,461,465],[91,145,162,163,354],[91,145,162,163,240,261,266,267,331,332,333,334,335,337,350,351,353,356,424,427,478,480],[91,145,162,163,300],[91,145,159,162,163,305,475],[91,145,162,163,305],[91,145,159,162,163,227,273,302,304,306,424,475,482,484],[91,145,162,163,281,282,283,284,286,287,300,301,483],[87,91,145,159,162,163,171,188,216,217,229,235,267,268,271,370,422,423,425,475,478,479,482],[91,145,162,163,212,215,222],[91,145,162,163,266,268,400,403],[91,145,162,163,266,401,469,470,471,472,473],[91,145,159,162,163,262,478],[91,145,159,162,163],[91,145,162,163,265,350],[91,145,162,163,264],[91,145,162,163,266,319],[91,145,162,163,263,265,478],[91,145,159,162,163,211,266,400,401,402,475,478,479],[81,91,145,162,163,215,221,299],[81,91,145,162,163,213],[91,145,162,163,203,204],[81,91,145,162,163,209],[81,91,145,162,163,215,285],[81,87,91,145,162,163,267,271,482,484],[91,145,162,163,209,506,507],[81,91,145,162,163,280],[81,91,145,162,163,171,188,207,274,276,278,279,484],[91,145,162,163,215,242,479],[91,145,162,163,215,407],[81,91,145,157,159,162,163,171,205,207,280,378,482,483],[81,91,145,162,163,196,197,198,199,200,482,527],[81,82,83,84,85,91,145,162,163],[91,145,162,163,373,374,375],[91,145,162,163,373],[81,85,91,145,159,161,162,163,171,195,196,197,198,199,200,201,207,235,240,417,445,480,481,484,527],[91,145,162,163,492],[91,145,162,163,494],[91,145,162,163,498],[91,145,162,163,544],[91,145,162,163,500],[91,145,162,163,502,503,504],[91,145,162,163,508],[86,91,145,162,163,486,491,493,495,499,501,505,509,511,521,522,524,528,529,530,531],[91,145,162,163,510],[91,145,162,163,520],[91,145,162,163,276],[91,145,162,163,523],[91,144,145,162,163,266,400,401,403,469,470,472,473,525,527],[91,145,162,163,195],[91,145,162,163,177,195],[91,103,106,109,110,145,162,163,188],[91,106,145,162,163,177,188],[91,106,110,145,162,163,188],[91,145,162,163,177],[91,100,145,162,163],[91,104,145,162,163],[91,102,103,106,145,162,163,188],[91,145,162,163,165,185],[91,100,145,162,163,195],[91,102,106,145,162,163,165,188],[91,97,98,99,101,105,145,156,162,163,177,188],[91,106,114,122,145,162,163],[91,98,104,145,162,163],[91,106,131,132,145,162,163],[91,98,101,106,145,162,163,180,188,195],[91,106,145,162,163],[91,102,106,145,162,163,188],[91,97,145,162,163],[91,100,101,102,104,105,106,107,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,132,133,134,135,136,145,162,163],[91,106,124,127,145,153,162,163],[91,106,114,115,116,145,162,163],[91,104,106,115,117,145,162,163],[91,105,145,162,163],[91,98,100,106,145,162,163],[91,106,110,115,117,145,162,163],[91,110,145,162,163],[91,104,106,109,145,162,163,188],[91,98,102,106,114,145,162,163],[91,106,124,145,162,163],[91,117,145,162,163],[91,100,106,131,145,162,163,180,193,195]],"fileInfos":[{"version":"e41c290ef7dd7dab3493e6cbe5909e0148edf4a8dad0271be08edec368a0f7b9","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":"e12a46ce14b817d4c9e6b2b478956452330bf00c9801b79de46f7a1815b5bd40","impliedFormat":1},{"version":"4fd3f3422b2d2a3dfd5cdd0f387b3a8ec45f006c6ea896a4cb41264c2100bb2c","affectsGlobalScope":true,"impliedFormat":1},{"version":"69e65d976bf166ce4a9e6f6c18f94d2424bf116e90837ace179610dbccad9b42","affectsGlobalScope":true,"impliedFormat":1},{"version":"c57796738e7f83dbc4b8e65132f11a377649c00dd3eee333f672b8f0a6bea671","affectsGlobalScope":true,"impliedFormat":1},{"version":"dc2df20b1bcdc8c2d34af4926e2c3ab15ffe1160a63e58b7e09833f616efff44","affectsGlobalScope":true,"impliedFormat":1},{"version":"515d0b7b9bea2e31ea4ec968e9edd2c39d3eebf4a2d5cbd04e88639819ae3b71","affectsGlobalScope":true,"impliedFormat":1},{"version":"62bb211266ee48b2d0edf0d8d1b191f0c24fc379a82bd4c1692a082c540bc6b1","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":"936e80ad36a2ee83fc3caf008e7c4c5afe45b3cf3d5c24408f039c1d47bdc1df","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":"fef8cfad2e2dc5f5b3d97a6f4f2e92848eb1b88e897bb7318cef0e2820bceaab","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":"f1e2a172204962276504466a6393426d2ca9c54894b1ad0a6c9dad867a65f876","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":"b5ce7a470bc3628408429040c4e3a53a27755022a32fd05e2cb694e7015386c7","affectsGlobalScope":true,"impliedFormat":1},{"version":"8444af78980e3b20b49324f4a16ba35024fef3ee069a0eb67616ea6ca821c47a","affectsGlobalScope":true,"impliedFormat":1},{"version":"3287d9d085fbd618c3971944b65b4be57859f5415f495b33a6adc994edd2f004","affectsGlobalScope":true,"impliedFormat":1},{"version":"b4b67b1a91182421f5df999988c690f14d813b9850b40acd06ed44691f6727ad","affectsGlobalScope":true,"impliedFormat":1},{"version":"bab26767638ab3557de12c900f0b91f710c7dc40ee9793d5a27d32c04f0bf646","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":"d4b1d2c51d058fc21ec2629fff7a76249dec2e36e12960ea056e3ef89174080f","affectsGlobalScope":true,"impliedFormat":1},{"version":"61d6a2092f48af66dbfb220e31eea8b10bc02b6932d6e529005fd2d7b3281290","affectsGlobalScope":true,"impliedFormat":1},{"version":"8e7f8264d0fb4c5339605a15daadb037bf238c10b654bb3eee14208f860a32ea","affectsGlobalScope":true,"impliedFormat":1},{"version":"782dec38049b92d4e85c1585fbea5474a219c6984a35b004963b00beb1aab538","affectsGlobalScope":true,"impliedFormat":1},{"version":"7e29f41b158de217f94cb9676bf9cbd0cd9b5a46e1985141ed36e075c52bf6ad","affectsGlobalScope":true,"impliedFormat":1},{"version":"ac51dd7d31333793807a6abaa5ae168512b6131bd41d9c5b98477fc3b7800f9f","impliedFormat":1},{"version":"dc0a7f107690ee5cd8afc8dbf05c4df78085471ce16bdd9881642ec738bc81fe","impliedFormat":1},{"version":"acd8fd5090ac73902278889c38336ff3f48af6ba03aa665eb34a75e7ba1dccc4","impliedFormat":1},{"version":"d6258883868fb2680d2ca96bc8b1352cab69874581493e6d52680c5ffecdb6cc","impliedFormat":1},{"version":"1b61d259de5350f8b1e5db06290d31eaebebc6baafd5f79d314b5af9256d7153","impliedFormat":1},{"version":"f258e3960f324a956fc76a3d3d9e964fff2244ff5859dcc6ce5951e5413ca826","impliedFormat":1},{"version":"643f7232d07bf75e15bd8f658f664d6183a0efaca5eb84b48201c7671a266979","impliedFormat":1},{"version":"21da358700a3893281ce0c517a7a30cbd46be020d9f0c3f2834d0a8ad1f5fc75","impliedFormat":1},{"version":"cebfeedf63623d54f7423d58cae1ec204c0d8d97a66d5fb17579e26a902085e1","affectsGlobalScope":true,"impliedFormat":1},{"version":"d153a11543fd884b596587ccd97aebbeed950b26933ee000f94009f1ab142848","affectsGlobalScope":true,"impliedFormat":1},{"version":"378281aa35786c27d5811af7e6bcaa492eebd0c7013d48137c35bbc69a2b9751","affectsGlobalScope":true,"impliedFormat":1},{"version":"3af97acf03cc97de58a3a4bc91f8f616408099bc4233f6d0852e72a8ffb91ac9","affectsGlobalScope":true,"impliedFormat":1},{"version":"1b2dd1cbeb0cc6ae20795958ba5950395ebb2849b7c8326853dd15530c77ab0c","affectsGlobalScope":true,"impliedFormat":1},{"version":"1db0b7dca579049ca4193d034d835f6bfe73096c73663e5ef9a0b5779939f3d0","affectsGlobalScope":true,"impliedFormat":1},{"version":"387a023d363f755eb63450a66c28b14cdd7bc30a104565e2dbf0a8988bb4a56c","affectsGlobalScope":true,"impliedFormat":1},{"version":"9798340ffb0d067d69b1ae5b32faa17ab31b82466a3fc00d8f2f2df0c8554aaa","affectsGlobalScope":true,"impliedFormat":1},{"version":"f26b11d8d8e4b8028f1c7d618b22274c892e4b0ef5b3678a8ccbad85419aef43","affectsGlobalScope":true,"impliedFormat":1},{"version":"cdcf9ea426ad970f96ac930cd176d5c69c6c24eebd9fc580e1572d6c6a88f62c","impliedFormat":1},{"version":"23cd712e2ce083d68afe69224587438e5914b457b8acf87073c22494d706a3d0","impliedFormat":1},{"version":"487b694c3de27ddf4ad107d4007ad304d29effccf9800c8ae23c2093638d906a","impliedFormat":1},{"version":"3a80bc85f38526ca3b08007ee80712e7bb0601df178b23fbf0bf87036fce40ce","impliedFormat":1},{"version":"ccf4552357ce3c159ef75f0f0114e80401702228f1898bdc9402214c9499e8c0","impliedFormat":1},{"version":"c6fd2c5a395f2432786c9cb8deb870b9b0e8ff7e22c029954fabdd692bff6195","impliedFormat":1},{"version":"68834d631c8838c715f225509cfc3927913b9cc7a4870460b5b60c8dbdb99baf","impliedFormat":1},{"version":"2931540c47ee0ff8a62860e61782eb17b155615db61e36986e54645ec67f67c2","impliedFormat":1},{"version":"ccab02f3920fc75c01174c47fcf67882a11daf16baf9e81701d0a94636e94556","impliedFormat":1},{"version":"f6faf5f74e4c4cc309a6c6a6c4da02dbb840be5d3e92905a23dcd7b2b0bd1986","impliedFormat":1},{"version":"ea6bc8de8b59f90a7a3960005fd01988f98fd0784e14bc6922dde2e93305ec7d","impliedFormat":1},{"version":"36107995674b29284a115e21a0618c4c2751b32a8766dd4cb3ba740308b16d59","impliedFormat":1},{"version":"914a0ae30d96d71915fc519ccb4efbf2b62c0ddfb3a3fc6129151076bc01dc60","impliedFormat":1},{"version":"33e981bf6376e939f99bd7f89abec757c64897d33c005036b9a10d9587d80187","impliedFormat":1},{"version":"7fd1b31fd35876b0aa650811c25ec2c97a3c6387e5473eb18004bed86cdd76b6","impliedFormat":1},{"version":"b41767d372275c154c7ea6c9d5449d9a741b8ce080f640155cc88ba1763e35b3","impliedFormat":1},{"version":"3bacf516d686d08682751a3bd2519ea3b8041a164bfb4f1d35728993e70a2426","impliedFormat":1},{"version":"7fb266686238369442bd1719bc0d7edd0199da4fb8540354e1ff7f16669b4323","impliedFormat":1},{"version":"0a60a292b89ca7218b8616f78e5bbd1c96b87e048849469cccb4355e98af959a","impliedFormat":1},{"version":"0b6e25234b4eec6ed96ab138d96eb70b135690d7dd01f3dd8a8ab291c35a683a","impliedFormat":1},{"version":"9666f2f84b985b62400d2e5ab0adae9ff44de9b2a34803c2c5bd3c8325b17dc0","impliedFormat":1},{"version":"40cd35c95e9cf22cfa5bd84e96408b6fcbca55295f4ff822390abb11afbc3dca","impliedFormat":1},{"version":"b1616b8959bf557feb16369c6124a97a0e74ed6f49d1df73bb4b9ddf68acf3f3","impliedFormat":1},{"version":"5b03a034c72146b61573aab280f295b015b9168470f2df05f6080a2122f9b4df","impliedFormat":1},{"version":"40b463c6766ca1b689bfcc46d26b5e295954f32ad43e37ee6953c0a677e4ae2b","impliedFormat":1},{"version":"249b9cab7f5d628b71308c7d9bb0a808b50b091e640ba3ed6e2d0516f4a8d91d","impliedFormat":1},{"version":"80aae6afc67faa5ac0b32b5b8bc8cc9f7fa299cff15cf09cc2e11fd28c6ae29e","impliedFormat":1},{"version":"f473cd2288991ff3221165dcf73cd5d24da30391f87e85b3dd4d0450c787a391","impliedFormat":1},{"version":"499e5b055a5aba1e1998f7311a6c441a369831c70905cc565ceac93c28083d53","impliedFormat":1},{"version":"54c3e2371e3d016469ad959697fd257e5621e16296fa67082c2575d0bf8eced0","impliedFormat":1},{"version":"beb8233b2c220cfa0feea31fbe9218d89fa02faa81ef744be8dce5acb89bb1fd","impliedFormat":1},{"version":"c183b931b68ad184bc8e8372bf663f3d33304772fb482f29fb91b3c391031f3e","impliedFormat":1},{"version":"5d0375ca7310efb77e3ef18d068d53784faf62705e0ad04569597ae0e755c401","impliedFormat":1},{"version":"59af37caec41ecf7b2e76059c9672a49e682c1a2aa6f9d7dc78878f53aa284d6","impliedFormat":1},{"version":"addf417b9eb3f938fddf8d81e96393a165e4be0d4a8b6402292f9c634b1cb00d","impliedFormat":1},{"version":"48cc3ec153b50985fb95153258a710782b25975b10dd4ac8a4f3920632d10790","impliedFormat":1},{"version":"adf27937dba6af9f08a68c5b1d3fce0ca7d4b960c57e6d6c844e7d1a8e53adae","impliedFormat":1},{"version":"e1528ca65ac90f6fa0e4a247eb656b4263c470bb22d9033e466463e13395e599","impliedFormat":1},{"version":"2e85db9e6fd73cfa3d7f28e0ab6b55417ea18931423bd47b409a96e4a169e8e6","impliedFormat":1},{"version":"c46e079fe54c76f95c67fb89081b3e399da2c7d109e7dca8e4b58d83e332e605","impliedFormat":1},{"version":"866078923a56d026e39243b4392e282c1c63159723996fa89243140e1388a98d","impliedFormat":1},{"version":"830171b27c5fdf9bcbe4cf7d428fcf3ae2c67780fb7fbdccdf70d1623d938bc4","affectsGlobalScope":true,"impliedFormat":1},{"version":"1cf059eaf468efcc649f8cf6075d3cb98e9a35a0fe9c44419ec3d2f5428d7123","affectsGlobalScope":true,"impliedFormat":1},{"version":"e7721c4f69f93c91360c26a0a84ee885997d748237ef78ef665b153e622b36c1","affectsGlobalScope":true,"impliedFormat":1},{"version":"d97fb21da858fb18b8ae72c314e9743fd52f73ebe2764e12af1db32fc03f853f","affectsGlobalScope":true,"impliedFormat":1},{"version":"4ea15fd99b2e34cb25fe8346c955000bb70c8b423ae4377a972ef46bfb37f595","impliedFormat":1},{"version":"7cf69dd5502c41644c9e5106210b5da7144800670cbe861f66726fa209e231c4","impliedFormat":1},{"version":"72c1f5e0a28e473026074817561d1bc9647909cf253c8d56c41d1df8d95b85f7","impliedFormat":1},{"version":"f9b4137a0d285bd77dba2e6e895530112264310ae47e07bf311feae428fb8b61","affectsGlobalScope":true,"impliedFormat":1},{"version":"8b21e13ed07d0df176ae31d6b7f01f7b17d66dbeb489c0d31d00de2ca14883da","impliedFormat":1},{"version":"51aecd2df90a3cffea1eb4696b33b2d78594ea2aa2138e6b9471ec4841c6c2ee","impliedFormat":1},{"version":"9d8f9e63e29a3396285620908e7f14d874d066caea747dc4b2c378f0599166b4","affectsGlobalScope":true,"impliedFormat":1},{"version":"5524481e56c48ff486f42926778c0a3cce1cc85dc46683b92b1271865bcf015a","impliedFormat":1},{"version":"f929f0b6b3421a2d34344b0f421f45aeb2c84ad365ebf29d04312023b3accc58","impliedFormat":1},{"version":"db9ada976f9e52e13f7ae8b9a320f4b67b87685938c5879187d8864b2fbe97f3","impliedFormat":1},{"version":"9f39e70a354d0fba29ac3cdf6eca00b7f9e96f64b2b2780c432e8ea27f133743","impliedFormat":1},{"version":"0dace96cc0f7bc6d0ee2044921bdf19fe42d16284dbcc8ae200800d1c9579335","impliedFormat":1},{"version":"a2e2bbde231b65c53c764c12313897ffdfb6c49183dd31823ee2405f2f7b5378","impliedFormat":1},{"version":"ad1cc0ed328f3f708771272021be61ab146b32ecf2b78f3224959ff1e2cd2a5c","impliedFormat":1},{"version":"c64e1888baaa3253ca4405b455e4bf44f76357868a1bd0a52998ade9a092ad78","affectsGlobalScope":true,"impliedFormat":1},{"version":"d8cf132379078d0974a59df26069689a2d33c7dc826b5be56231841cb2f32e58","impliedFormat":1},{"version":"fbf413fc617837453c878a9174a1f1b383616857a3f8366bc41cf30df4aea7d5","impliedFormat":1},{"version":"148c73ec11318850f571172ceae3e55ce479d850fe18ec8eae0abd99d9f6c319","impliedFormat":1},{"version":"230bdc111d7578276e4a3bb9d075d85c78c6b68f428c3a9935e2eaa10f4ae1f5","impliedFormat":1},{"version":"e8aabbee5e7b9101b03bb4222607d57f38859b8115a8050a4eb91b4ee43a3a73","impliedFormat":1},{"version":"bbf42f98a5819f4f06e18c8b669a994afe9a17fe520ae3454a195e6eabf7700d","impliedFormat":1},{"version":"c0bb1b65757c72bbf8ddf7eaa532223bacf58041ff16c883e76f45506596e925","impliedFormat":1},{"version":"c8b85f7aed29f8f52b813f800611406b0bfe5cf3224d20a4bdda7c7f73ce368e","affectsGlobalScope":true,"impliedFormat":1},{"version":"145dcf25fd4967c610c53d93d7bc4dce8fbb1b6dd7935362472d4ae49363c7ba","impliedFormat":1},{"version":"ff65b8a8bd380c6d129becc35de02f7c29ad7ce03300331ca91311fb4044d1a9","impliedFormat":1},{"version":"04bf1aa481d1adfb16d93d76e44ce71c51c8ef68039d849926551199489637f6","impliedFormat":1},{"version":"9043daec15206650fa119bad6b8d70136021ea7d52673a71f79a87a42ee38d44","affectsGlobalScope":true,"impliedFormat":1},{"version":"0b055dae40c0e27154f109c4ff771ae748db161c503a1687e3d4b9c91ba20de3","affectsGlobalScope":true,"impliedFormat":1},{"version":"a58a15da4c5ba3df60c910a043281256fa52d36a0fcdef9b9100c646282e88dd","impliedFormat":1},{"version":"b36beffbf8acdc3ebc58c8bb4b75574b31a2169869c70fc03f82895b93950a12","impliedFormat":1},{"version":"de263f0089aefbfd73c89562fb7254a7468b1f33b61839aafc3f035d60766cb4","impliedFormat":1},{"version":"77fbe5eecb6fac4b6242bbf6eebfc43e98ce5ccba8fa44e0ef6a95c945ff4d98","impliedFormat":1},{"version":"8c81fd4a110490c43d7c578e8c6f69b3af01717189196899a6a44f93daa57a3a","impliedFormat":1},{"version":"5fb39858b2459864b139950a09adae4f38dad87c25bf572ce414f10e4bd7baab","impliedFormat":1},{"version":"65faec1b4bd63564aeec33eab9cacfaefd84ce2400f03903a71a1841fbce195f","impliedFormat":1},{"version":"b33b74b97952d9bf4fbd2951dcfbb5136656ddb310ce1c84518aaa77dbca9992","impliedFormat":1},{"version":"37ba7b45141a45ce6e80e66f2a96c8a5ab1bcef0fc2d0f56bb58df96ec67e972","impliedFormat":1},{"version":"45650f47bfb376c8a8ed39d4bcda5902ab899a3150029684ee4c10676d9fbaee","impliedFormat":1},{"version":"6b306cd4282bbb54d4a6bb23cfb7a271160983dfc38c67b5a132504cfcc34896","affectsGlobalScope":true,"impliedFormat":1},{"version":"c119835edf36415081dfd9ed15fc0cd37aaa28d232be029ad073f15f3d88c323","impliedFormat":1},{"version":"450172a56b944c2d83f45cc11c9a388ea967cd301a21202aa0a23c34c7506a18","impliedFormat":1},{"version":"9705cd157ffbb91c5cab48bdd2de5a437a372e63f870f8a8472e72ff634d47c1","affectsGlobalScope":true,"impliedFormat":1},{"version":"ae86f30d5d10e4f75ce8dcb6e1bd3a12ecec3d071a21e8f462c5c85c678efb41","impliedFormat":1},{"version":"72f8936aebf0c4a1adab767b97d34ba7d3a308afcf76de4417b9c16fb92ed548","impliedFormat":1},{"version":"e03460fe72b259f6d25ad029f085e4bedc3f90477da4401d8fbc1efa9793230e","impliedFormat":1},{"version":"4286a3a6619514fca656089aee160bb6f2e77f4dd53dc5a96b26a0b4fc778055","impliedFormat":1},{"version":"69e0a41d620fb678a899c65e073413b452f4db321b858fe422ad93fd686cd49a","affectsGlobalScope":true,"impliedFormat":1},{"version":"3585d6891e9ea18e07d0755a6d90d71331558ba5dc5561933553209f886db106","affectsGlobalScope":true,"impliedFormat":1},{"version":"86be71cbb0593468644932a6eb96d527cfa600cecfc0b698af5f52e51804451d","impliedFormat":1},{"version":"84dd6b0fd2505135692935599d6606f50a421389e8d4535194bcded307ee5cf2","impliedFormat":1},{"version":"0d5b085f36e6dc55bc6332ecb9c733be3a534958c238fb8d8d18d4a2b6f2a15a","impliedFormat":1},{"version":"db19ea066fdc5f97df3f769e582ae3000380ab7942e266654bdb1a4650d19eaf","affectsGlobalScope":true,"impliedFormat":1},{"version":"2a034894bf28c220a331c7a0229d33564803abe2ac1b9a5feee91b6b9b6e88ea","impliedFormat":1},{"version":"63228283eda38338f98e629d8033bffe727d2247ba2f3a1cbd1273a6827a1ec4","impliedFormat":1},{"version":"2beff543f6e9a9701df88daeee3cdd70a34b4a1c11cb4c734472195a5cb2af54","impliedFormat":1},{"version":"2e07abf27aa06353d46f4448c0bbac73431f6065eef7113128a5cd804d0c384d","impliedFormat":1},{"version":"be1cc4d94ea60cbe567bc29ed479d42587bf1e6cba490f123d329976b0fe4ee5","impliedFormat":1},{"version":"42bc0e1a903408137c3df2b06dfd7e402cdab5bbfa5fcfb871b22ebfdb30bd0b","impliedFormat":1},{"version":"9894dafe342b976d251aac58e616ac6df8db91fb9d98934ff9dd103e9e82578f","impliedFormat":1},{"version":"413df52d4ea14472c2fa5bee62f7a40abd1eb49be0b9722ee01ee4e52e63beb2","impliedFormat":1},{"version":"db6d2d9daad8a6d83f281af12ce4355a20b9a3e71b82b9f57cddcca0a8964a96","impliedFormat":1},{"version":"446a50749b24d14deac6f8843e057a6355dd6437d1fac4f9e5ce4a5071f34bff","impliedFormat":1},{"version":"182e9fcbe08ac7c012e0a6e2b5798b4352470be29a64fdc114d23c2bab7d5106","impliedFormat":1},{"version":"2f4e6b4d39426a1b85ecf4bdeb9dddbf4d9b3397d95d8555d46f925c9519ec7d","impliedFormat":1},{"version":"78a2869ad0cbf3f9045dda08c0d4562b7e1b2bfe07b19e0db072f5c3c56e9584","impliedFormat":1},{"version":"89d5d28d4f57e000b836ac273079be1b75710e28ce14750d081fb420d37e2ca5","impliedFormat":1},{"version":"fd4e24ccff3966390600d7f5d6aa1fed5a512e92ada735ea5fbc933d313ad3d3","impliedFormat":1},{"version":"b7cddfe1aa6b86b5fad3c9ccb30d05b3ccb165aebbf112f48d2d8a5f69dd98b1","impliedFormat":1},{"version":"a86f82d646a739041d6702101afa82dcb935c416dd93cbca7fd754fd0282ce1f","impliedFormat":1},{"version":"ad0d1d75d129b1c80f911be438d6b61bfa8703930a8ff2be2f0e1f8a91841c64","impliedFormat":1},{"version":"bd2c7ada3dee03653d3f601011d30072194bc3970cd93208f9588fbdc0c69347","impliedFormat":1},{"version":"e480da45d32313e7174b265674da504f075f59ef326852f0c5a5d863b438ae85","impliedFormat":1},{"version":"ad54850f61fcf5d014e11be80d2f46fea9265cfa7e77456da876f7833ef81769","impliedFormat":1},{"version":"6f7c9e8bd2b5b6a080b07080065f94900bd3c7e5ebbd3047bc33fcce2fab1dd8","impliedFormat":1},{"version":"3e7efde639c6a6c3edb9847b3f61e308bf7a69685b92f665048c45132f51c218","impliedFormat":1},{"version":"df45ca1176e6ac211eae7ddf51336dc075c5314bc5c253651bae639defd5eec5","impliedFormat":1},{"version":"8a0e762ceb20c7e72504feef83d709468a70af4abccb304f32d6b9bac1129b2c","impliedFormat":1},{"version":"da5950ee2a90721df6f3fba45f5d05308f7e4c35835392215dd2cd404505e2de","impliedFormat":1},{"version":"ce75b1aebb33d510ff28af960a9221410a3eaf7f18fc5f21f9404075fba77256","impliedFormat":1},{"version":"f42d5fed19610d485c646a0c430e768115567d078c7fc855c57b0c578b3d6cd3","impliedFormat":1},{"version":"ee8df1cb8d0faaca4013a1b442e99130769ce06f438d18d510fed95890067563","impliedFormat":1},{"version":"d5630f2ad9b4541e5ce891648121022f9412ecdca1820baa1f0104f70fd7eff7","impliedFormat":1},{"version":"4d15375ab13497104bc8fe56fdef2b5fd6853f29255737d23a33fa306ff7fd69","impliedFormat":1},{"version":"2cd3fc1d0d6a1e85baffd2d4f50f5efb192b5446eef567e97c94765402f0aad4","impliedFormat":1},{"version":"e4cbf2f1e89ecccaddd2c045e600ae41b732295953fb06247c7dcbc2d281ed30","impliedFormat":1},{"version":"6dcedaef57dff0d79a05ab0ab602cde74db803d1e765468bf91263786a383e1b","impliedFormat":1},{"version":"8c1697d90c394a6fd955b98eae01238eff628e129b987a68aea10f898a48e7da","impliedFormat":1},{"version":"7580e62139cb2b44a0270c8d01abcbfcba2819a02514a527342447fa69b34ef1","impliedFormat":1},{"version":"42c169fb8c2d42f4f668c624a9a11e719d5d07dacbebb63cbcf7ef365b0a75b3","impliedFormat":1},{"version":"f374cb24e93e7798c4d9e83ff872fa52d2cdb36306392b840a6ddf46cb925cb6","impliedFormat":1},{"version":"d10d63718e1646c2279e3b33831f82c60e31f622b2b7020f1196409ca4c09242","impliedFormat":1},{"version":"106c6025f1d99fd468fd8bf6e5bda724e11e5905a4076c5d29790b6c3745e50c","impliedFormat":1},{"version":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","impliedFormat":1},{"version":"148679c6d0f449210a96e7d2e562d589e56fcde87f843a92808b3ff103f1a774","impliedFormat":1},{"version":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","impliedFormat":1},{"version":"02436d7e9ead85e09a2f8e27d5f47d9464bced31738dec138ca735390815c9f0","impliedFormat":1},{"version":"f8d5ff8eafd37499f2b6a98659dd9b45a321de186b8db6b6142faed0fea3de77","impliedFormat":1},{"version":"c86fe861cf1b4c46a0fb7d74dffe596cf679a2e5e8b1456881313170f092e3fa","impliedFormat":1},{"version":"a22dd55aa4d39906252000ab8e8a1b83b195eef7f4274eb51e457c1f11cf6580","impliedFormat":1},{"version":"540cc83ab772a2c6bc509fe1354f314825b5dba3669efdfbe4693ecd3048e34f","impliedFormat":1},{"version":"121b0696021ab885c570bbeb331be8ad82c6efe2f3b93a6e63874901bebc13e3","impliedFormat":1},{"version":"612d9da66bb046a9c1e2e8d026245ded881fc4b9f98cbfae714415d57ee0ae0b","impliedFormat":1},{"version":"32c2ad9494dad5d11b0564a619fee18f388db6c1e9e2cd3c360b3122549691eb","impliedFormat":1},{"version":"6c301d40aec56a74ec7bd7324e31a728dadf9bfba3e96def02938d3d973534ec","impliedFormat":1},{"version":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","impliedFormat":1},{"version":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","impliedFormat":1},{"version":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881","impliedFormat":1},{"version":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881","impliedFormat":1},{"version":"aa14cee20aa0db79f8df101fc027d929aec10feb5b8a8da3b9af3895d05b7ba2","impliedFormat":1},{"version":"493c700ac3bd317177b2eb913805c87fe60d4e8af4fb39c41f04ba81fae7e170","impliedFormat":1},{"version":"aeb554d876c6b8c818da2e118d8b11e1e559adbe6bf606cc9a611c1b6c09f670","impliedFormat":1},{"version":"acf5a2ac47b59ca07afa9abbd2b31d001bf7448b041927befae2ea5b1951d9f9","impliedFormat":1},{"version":"8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881","impliedFormat":1},{"version":"d71291eff1e19d8762a908ba947e891af44749f3a2cbc5bd2ec4b72f72ea795f","impliedFormat":1},{"version":"c0480e03db4b816dff2682b347c95f2177699525c54e7e6f6aa8ded890b76be7","impliedFormat":1},{"version":"25a5f6fd3a2243c859eddc99ab5fba11d970af2fe7a5df9c32b7668f76f97b01","impliedFormat":1},{"version":"8d207e1f9d2c30d6f77dfa693f3827c3fbf0d89240297e10bdfe1041d433df68","impliedFormat":1},{"version":"b620391fe8060cf9bedc176a4d01366e6574d7a71e0ac0ab344a4e76576fcbb8","impliedFormat":1},{"version":"6ac6715916fa75a1f7ebdfeacac09513b4d904b667d827b7535e84ff59679aff","impliedFormat":1},{"version":"2652448ac55a2010a1f71dd141f828b682298d39728f9871e1cdf8696ef443fd","impliedFormat":1},{"version":"d682336018141807fb602709e2d95a192828fcb8d5ba06dda3833a8ea98f69e3","impliedFormat":1},{"version":"6124e973eab8c52cabf3c07575204efc1784aca6b0a30c79eb85fe240a857efa","impliedFormat":1},{"version":"0d891735a21edc75df51f3eb995e18149e119d1ce22fd40db2b260c5960b914e","impliedFormat":1},{"version":"3b414b99a73171e1c4b7b7714e26b87d6c5cb03d200352da5342ab4088a54c85","impliedFormat":1},{"version":"4fbd3116e00ed3a6410499924b6403cc9367fdca303e34838129b328058ede40","impliedFormat":1},{"version":"9c82171d836c47486074e4ca8e059735bf97b205e70b196535b5efd40cbe1bc5","impliedFormat":1},{"version":"8c70ddc0c22d85e56011d49fddfaae3405eb53d47b59327b9dd589e82df672e7","impliedFormat":1},{"version":"2f9c89cbb29d362290531b48880a4024f258c6033aaeb7e59fbc62db26819650","impliedFormat":1},{"version":"a365c4d3bed3be4e4e20793c999c51f5cd7e6792322f14650949d827fbcd170f","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":"273782b8454e78f6a8b30d2cfbf6860499c930595095fcc1689637115f0eddda","affectsGlobalScope":true,"impliedFormat":1},{"version":"3fbdd025f9d4d820414417eeb4107ffa0078d454a033b506e22d3a23bc3d9c41","affectsGlobalScope":true,"impliedFormat":1},{"version":"dba114fb6a32b355a9cfc26ca2276834d72fe0e94cd2c3494005547025015369","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":"9f9bb6755a8ce32d656ffa4763a8144aa4f274d6b69b59d7c32811031467216e","impliedFormat":1},{"version":"5c32bdfbd2d65e8fffbb9fbda04d7165e9181b08dad61154961852366deb7540","impliedFormat":1},{"version":"ddff7fc6edbdc5163a09e22bf8df7bef75f75369ebd7ecea95ba55c4386e2441","impliedFormat":1},{"version":"0c05e9842ec4f8b7bfebfd3ca61604bb8c914ba8da9b5337c4f25da427a005f2","impliedFormat":1},{"version":"faed7a5153215dbd6ebe76dfdcc0af0cfe760f7362bed43284be544308b114cf","impliedFormat":1},{"version":"7029e566b8df176f703fb59fd437a38670c7a0e02c58b2d66dfb5b2e2b2defdb","impliedFormat":1},{"version":"7f2aa4d4989a82530aaac3f72b3dceca90e9c25bee0b1a327e8a08a1262435ad","impliedFormat":1},{"version":"d96b39301d0ded3f1a27b47759676a33a02f6f5049bfcbde81e533fd10f50dcb","impliedFormat":1},{"version":"e9f147ecca73d9346a4c073432843c159ccbe50bdcb678a78f6da10eae2cecf4","impliedFormat":1},{"version":"de061f7d72bd65c06fc1419f841dfdcb29a8e22fe6fa527d1e6eb20b897d4de0","impliedFormat":1},{"version":"663beafc2446079574570cba86e9b15f986f908ddb1b01274509970126fee945","impliedFormat":1},{"version":"a3102887d5058bf4cb5b37fa6964c09e9527c42053b3b5c642b89878620748de","impliedFormat":1},{"version":"0aaaa1727edd29673d85c9b26d7ca4d54e5407a48586903c51b48b7f7d196f61","impliedFormat":1},{"version":"d35bca0b261bff02635758c48e8ab99c61c420d0dfabbcf467e847171d876b7d","impliedFormat":1},{"version":"3bc12c40d90c342ff88a3d876996c555ed5cbee5fe8c3308a240b321f401ee46","impliedFormat":1},{"version":"ba130768aae855a5477e9e148e5c879548e6e7ccbcc56fd1934c8a18ea5b7569","impliedFormat":1},{"version":"2e4f37ffe8862b14d8e24ae8763daaa8340c0df0b859d9a9733def0eee7562d9","impliedFormat":1},{"version":"d38530db0601215d6d767f280e3a3c54b2a83b709e8d9001acb6f61c67e965fc","impliedFormat":1},{"version":"6ac6715916fa75a1f7ebdfeacac09513b4d904b667d827b7535e84ff59679aff","impliedFormat":1},{"version":"b499af2054a037a162b3b72cd886f48bbf32a3502c865c6e29fac7d2ab3ce0b5","impliedFormat":1},{"version":"b83cb14474fa60c5f3ec660146b97d122f0735627f80d82dd03e8caa39b4388c","impliedFormat":1},{"version":"48773ca557b0319c2ee62ae249cf52a81709e8be139920d6479a66274de7c4ed","impliedFormat":1},{"version":"7274fbffbd7c9589d8d0ffba68157237afd5cecff1e99881ea3399127e60572f","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":"802e797bcab5663b2c9f63f51bdf67eff7c41bc64c0fd65e6da3e7941359e2f7","impliedFormat":1},{"version":"b01bd582a6e41457bc56e6f0f9de4cb17f33f5f3843a7cf8210ac9c18472fb0f","impliedFormat":1},{"version":"8b4327413e5af38cd8cb97c59f48c3c866015d5d642f28518e3a891c469f240e","impliedFormat":1},{"version":"4cceef18d7f088e797a463e90b7a9dad10c6bc667724b7686e3e740ae00122be","impliedFormat":1},{"version":"7ee86fbb3754388e004de0ef9e6505485ddfb3be7640783d6d015711c03d302d","impliedFormat":1},{"version":"cc1954b539604b1e562319119ac7e888172208b32ca873f9a357a92c826bd046","impliedFormat":1},{"version":"a67b87d0281c97dfc1197ef28dfe397fc2c865ccd41f7e32b53f647184cc7307","impliedFormat":1},{"version":"771ffb773f1ddd562492a6b9aaca648192ac3f056f0e1d997678ff97dbb6bf9b","impliedFormat":1},{"version":"43e96a3d5d1411ab40ba2f61d6a3192e58177bcf3b133a80ad2a16591611726d","impliedFormat":1},{"version":"232f70c0cf2b432f3a6e56a8dc3417103eb162292a9fd376d51a3a9ea5fbbf6f","impliedFormat":1},{"version":"bb8f2dbc03533abca2066ce4655c119bff353dd4514375beb93c08590c03e023","impliedFormat":1},{"version":"706dd95827e7ebaabda91d5db2b755233e0952d98570e9c032b0f066a15c1177","affectsGlobalScope":true,"impliedFormat":1},{"version":"0b103e9abfe82d14c0ad06a55d9f91d6747154ef7cacc73cf27ecad2bfb3afcf","impliedFormat":1},{"version":"cd9304972e6d616197fb44fce00540a904f38b54306a1951b5dbeaf3c01ab5bd","impliedFormat":1},{"version":"77438e2c397a3db78407621cfc57241a305b310ddea2c185f1d555248297f587","impliedFormat":1},{"version":"120599fd965257b1f4d0ff794bc696162832d9d8467224f4665f713a3119078b","impliedFormat":1},{"version":"43ba4f2fa8c698f5c304d21a3ef596741e8e85a810b7c1f9b692653791d8d97a","impliedFormat":1},{"version":"5433f33b0a20300cca35d2f229a7fc20b0e8477c44be2affeb21cb464af60c76","impliedFormat":1},{"version":"db036c56f79186da50af66511d37d9fe77fa6793381927292d17f81f787bb195","impliedFormat":1},{"version":"a6805fcafed712aea7759f8bc731014f9d22738c1d6ef9d43b8091d1d48346d5","impliedFormat":1},{"version":"c49469a5349b3cc1965710b5b0f98ed6c028686aa8450bcb3796728873eb923e","impliedFormat":1},{"version":"4a889f2c763edb4d55cb624257272ac10d04a1cad2ed2948b10ed4a7fda2a428","impliedFormat":1},{"version":"7bb79aa2fead87d9d56294ef71e056487e848d7b550c9a367523ee5416c44cfa","impliedFormat":1},{"version":"d88ea80a6447d7391f52352ec97e56b52ebec934a4a4af6e2464cfd8b39c3ba8","impliedFormat":1},{"version":"142617b3cdf902b69c6464c9fbd942b60ab3e733ca18c032b19e0f7e2adbefe8","impliedFormat":1},{"version":"0b603555f1881f87256ffd6344d3e3ed6d466c2e701eabf381f28be8c2125892","impliedFormat":1},{"version":"897e4f7662488e3ecc79e743bdd3b78f13bdb69a97851afa5b440c4211e32ea9","impliedFormat":1},{"version":"e2e1c6d3b2d93add5200bd7bc1a8cccb4e446836b2111ece45db8683a2c765de","impliedFormat":1},{"version":"251b03d5cd243854ce870d9a9a39f491faf69898c5d6b5eee28cc7649c57417b","impliedFormat":1},{"version":"27ff4196654e6373c9af16b6165120e2dd2169f9ad6abb5c935af5abd8c7938c","impliedFormat":1},{"version":"2c4de79f406d137390608e8c0a44fba2ff8e00bacfcae7c9d1781fef10e9440d","impliedFormat":1},{"version":"07ba23a10465791be5d22deaf5ef7de7658774ddff53721e5ea17fedea1bc721","impliedFormat":1},{"version":"dca8c645c5afeb03b1ecedbf16323f33e7d0afaa6256c8e047e6e38087a97f53","impliedFormat":1},{"version":"775f181bd4a533d6f8b5e55ec1d9f1624559720ae8a70e9432258da26b38d27c","impliedFormat":1},{"version":"796273b2edc72e78a04e86d7c58ae94d370ab93a0ddf40b1aa85a37a1c29ecd7","impliedFormat":1},{"version":"5df15a69187d737d6d8d066e189ae4f97e41f4d53712a46b2710ff9f8563ec9f","impliedFormat":1},{"version":"7715134a0cf07dd41a9da2895d708625a3a303a0385e355ecaaf0b8bfaef2550","impliedFormat":1},{"version":"6ac6715916fa75a1f7ebdfeacac09513b4d904b667d827b7535e84ff59679aff","impliedFormat":1},{"version":"622694a8522b46f6310c2a9b5d2530dde1e2854cb5829354e6d1ff8f371cf469","impliedFormat":1},{"version":"cd8ce8d68567f62dd580b3c3c37777ac3f5b81944c7417f5ea83030eab533385","impliedFormat":1},{"version":"e5c939d896565dcac0f6fbdbada11284e7728ef26a069561c09aa5aa4a788393","impliedFormat":1},{"version":"9e2739b32f741859263fdba0244c194ca8e96da49b430377930b8f721d77c000","impliedFormat":1},{"version":"a9e6c0ff3f8186fccd05752cf75fc94e147c02645087ac6de5cc16403323d870","impliedFormat":1},{"version":"49af4b52f0d4d2304c5f2c6fe5fab3e153e0acc38830d0202821b877c097dd02","impliedFormat":1},{"version":"49c346823ba6d4b12278c12c977fb3a31c06b9ca719015978cb145eb86da1c61","impliedFormat":1},{"version":"bfac6e50eaa7e73bb66b7e052c38fdc8ccfc8dbde2777648642af33cf349f7f1","impliedFormat":1},{"version":"92f7c1a4da7fbfd67a2228d1687d5c2e1faa0ba865a94d3550a3941d7527a45d","impliedFormat":1},{"version":"f53b120213a9289d9a26f5af90c4c686dd71d91487a0aa5451a38366c70dc64b","impliedFormat":1},{"version":"e68b8e5a1df7c1be2bc105141456ecba70215806e1c28bfbc5c12bfce4be6e68","impliedFormat":1},{"version":"511c8f02329808d47d00b859c532ae9115590048b17325a946c74dac48428650","impliedFormat":1},{"version":"57d67b72e06059adc5e9454de26bbfe567d412b962a501d263c75c2db430f40e","impliedFormat":1},{"version":"b5f9e66625783eefcbe3d2da074b2e7ba2066d61ce3fc6ef4f22805ad946cab4","impliedFormat":1},{"version":"e37115962d284b9f7a37c2bdd2add50f88365dde41f5e0ff591ffc48a8ec7575","impliedFormat":1},{"version":"6459054aabb306821a043e02b89d54da508e3a6966601a41e71c166e4ea1474f","impliedFormat":1},{"version":"bb37588926aba35c9283fe8d46ebf4e79ffe976343105f5c6d45f282793352b2","impliedFormat":1},{"version":"f89488602bec98a142072fae7ea5ba99431a569ff580c64b7be39896474799d8","impliedFormat":1},{"version":"bbbc47961f39a57df103cf4ca3bb8f8732b4b6678a18225a0aa76d59c466956c","impliedFormat":1},{"version":"2e6114a7dd6feeef85b2c80120fdbfb59a5529c0dcc5bfa8447b6996c97a69f5","impliedFormat":1},{"version":"2ffb043dc5163458e473b7010859f86e01dc4edffcae0a93d885d028b426a546","impliedFormat":1},{"version":"c8f004e6036aa1c764ad4ec543cf89a5c1893a9535c80ef3f2b653e370de45e6","impliedFormat":1},{"version":"dd80b1e600d00f5c6a6ba23f455b84a7db121219e68f89f10552c54ba46e4dc9","impliedFormat":1},{"version":"b064c36f35de7387d71c599bfcf28875849a1dbc733e82bd26cae3d1cd060521","impliedFormat":1},{"version":"05c7280d72f3ed26f346cbe7cbbbb002fb7f15739197cbbee6ab3fd1a6cb9347","impliedFormat":1},{"version":"8de9fe97fa9e00ec00666fa77ab6e91b35d25af8ca75dabcb01e14ad3299b150","impliedFormat":1},{"version":"04b7b2e0832dfd3c31e81df3975e8d8fda28e7ff999b0aa2932608a8f6661d5c","impliedFormat":1},{"version":"ca2d34c6ed5cbd3070b8b6f32f42ae54adcc6499c1e4b99f0a5798b3f27cc653","impliedFormat":1},{"version":"9ec68995e66dd6b9dac834bf5ae85fde802714ea2e82151a5d1d53ef01b463ef","impliedFormat":1},{"version":"5c4d626b4902f2ef8a1cc146d761d276cef988016dc674e3b98fbad70e64bc9f","impliedFormat":1},{"version":"fdfaa0aad899524962e2955287b5b991ffe3be50f64e02eb60c933ca44644a94","impliedFormat":1},{"version":"53c972a0f9bc3a4ec70fff7314123ea8cfcf75b3703046f767d2dc1eea87b2fb","impliedFormat":1},{"version":"f974e4a06953682a2c15d5bd5114c0284d5abf8bc0fe4da25cb9159427b70072","impliedFormat":1},{"version":"50256e9c31318487f3752b7ac12ff365c8949953e04568009c8705db802776fb","impliedFormat":1},{"version":"7d73b24e7bf31dfb8a931ca6c4245f6bb0814dfae17e4b60c9e194a631fe5f7b","impliedFormat":1},{"version":"d130c5f73768de51402351d5dc7d1b36eaec980ca697846e53156e4ea9911476","impliedFormat":1},{"version":"413586add0cfe7369b64979d4ec2ed56c3f771c0667fbde1bf1f10063ede0b08","impliedFormat":1},{"version":"06472528e998d152375ad3bd8ebcb69ff4694fd8d2effaf60a9d9f25a37a097a","impliedFormat":1},{"version":"7303b45138d2511035056a5901a1490ebdcbf055cbb1276f8629c5121cbe733e","impliedFormat":1},{"version":"27f874cd5327507eeff699a74567f60c1215b94509f4308633a7b01922471ed2","impliedFormat":1},{"version":"a401617604fa1f6ce437b81689563dfdc377069e4c58465dbd8d16069aede0a5","impliedFormat":1},{"version":"2c6cf04bc525caf6546e859e8ef10bfb9573837ec0bc5ec7b53a7b1b8ca72781","impliedFormat":1},{"version":"8695dec09ad439b0ceef3776ea68a232e381135b516878f0901ed2ea114fd0fe","impliedFormat":1},{"version":"304b44b1e97dd4c94697c3313df89a578dca4930a104454c99863f1784a54357","impliedFormat":1},{"version":"0a437ae178f999b46b6153d79095b60c42c996bc0458c04955f1c996dc68b971","impliedFormat":1},{"version":"74b2a5e5197bd0f2e0077a1ea7c07455bbea67b87b0869d9786d55104006784f","impliedFormat":1},{"version":"4a7baeb6325920044f66c0f8e5e6f1f52e06e6d87588d837bdf44feb6f35c664","impliedFormat":1},{"version":"87cc05fe13108f02e12da7e3efd8e360fef78d96a0c9e11408ea1b1b9fb3e03d","impliedFormat":1},{"version":"1abbf67c218d23c2ce76887caac2df6c7dab3d97ba2b65348432b876f510002a","impliedFormat":1},{"version":"1a82deef4c1d39f6882f28d275cad4c01f907b9b39be9cbc472fcf2cf051e05b","impliedFormat":1},{"version":"4b20fcf10a5413680e39f5666464859fc56b1003e7dfe2405ced82371ebd49b6","impliedFormat":1},{"version":"c06ef3b2569b1c1ad99fcd7fe5fba8d466e2619da5375dfa940a94e0feea899b","impliedFormat":1},{"version":"f7d628893c9fa52ba3ab01bcb5e79191636c4331ee5667ecc6373cbccff8ae12","impliedFormat":1},{"version":"1d879125d1ec570bf04bc1f362fdbe0cb538315c7ac4bcfcdf0c1e9670846aa6","impliedFormat":1},{"version":"dad97c99382889e9c7d1a9d8275500ff71235130fae9f8916fdbf3641d56e592","impliedFormat":1},{"version":"a6dba407fc287f1e25454e75028c91bbc00675f2d1c4e8b3edcc36c08611a486","impliedFormat":1},{"version":"d663134457d8d669ae0df34eabd57028bddc04fc444c4bc04bc5215afc91e1f4","impliedFormat":1},{"version":"e91f7b1344577a02f051b9b471f33044fef8334a76dc9e1de003d17595a5219b","impliedFormat":1},{"version":"c0723195c85e19656d6b5b9fdb81d3f3403c1ae4679e722c6ea058c516b38d12","impliedFormat":1},{"version":"b55eb9f72166093b5460d34b34f5d8699c968de3bc3fc696e40f2c93f2ebf650","impliedFormat":1},{"version":"71d9eb4c4e99456b78ae182fb20a5dfc20eb1667f091dbb9335b3c017dd1c783","impliedFormat":1},{"version":"cfa846a7b7847a1d973605fbb8c91f47f3a0f0643c18ac05c47077ebc72e71c7","impliedFormat":1},{"version":"1594da19968752a22b2ac48c2d0e60575700e745c577a8a4a676b841238ad5bb","impliedFormat":1},{"version":"e0cee12109e0a10a4c3d6769fcc7644b7c1ea7f52365bea51728f5af29f8a137","impliedFormat":1},{"version":"7d4254b4c6c67a29d5e7f65e67d72540480ac2cfb041ca484847f5ae70480b62","impliedFormat":1},{"version":"3536968defef8a75514f547ead5e2e9c1e984820290ec9b00c5fdfb6ef786535","impliedFormat":1},{"version":"d83773870080c30a230e322ce13a9c6f3398e8dacea4ea8a83e26370f3bac23e","impliedFormat":1},{"version":"dcfeaf98d66314fec29a9076c4290e45d0b196a65827becc19138e9c7b855f37","impliedFormat":1},{"version":"6849fe9210fe4946d5f085bfed36758f33dc6ae15a751338d178dd4daa017c46","impliedFormat":1},{"version":"888cda0fa66d7f74e985a3f7b1af1f64b8ff03eb3d5e80d051c3cbdeb7f32ab7","impliedFormat":1},{"version":"60681e13f3545be5e9477acb752b741eae6eaf4cc01658a25ec05bff8b82a2ef","impliedFormat":1},{"version":"ffae4e1e06aa848a1e4bcef162cd1c48e5909b26223515981310af9c036bdfc7","impliedFormat":1},{"version":"a57b1802794433adec9ff3fed12aa79d671faed86c49b09e02e1ac41b4f1d33a","impliedFormat":1},{"version":"34e16eb7c31768a11a08aebcfb3d70d7b8f0b016197e98d8419e566ceae6d6c8","impliedFormat":1},{"version":"f94ec1f7e4b709d26960306c9082a7a1b728a6e13089346aa48ba57c74cbf47e","impliedFormat":1},{"version":"9a11cb4033405e96c247cd5aa29790212aaffdd127869e8a5219103f0b389fd5","impliedFormat":1},{"version":"01479d9d5a5dda16d529b91811375187f61a06e74be294a35ecce77e0b9e8d6c","impliedFormat":1},{"version":"aff5213585cb72e94054dfe17250ff315f3569b3919d1ef1ad235f37c4ee894e","impliedFormat":1},{"version":"fb2ea35e1be6388d722d7725e2b49c697d34d9c890c3b96758faaeb86d35cef8","impliedFormat":1},{"version":"ce0df82a9ae6f914ba08409d4d883983cc08e6d59eb2df02d8e4d68309e7848b","impliedFormat":1},{"version":"1a4dc28334a926d90ba6a2d811ba0ff6c22775fcc13679521f034c124269fd40","impliedFormat":1},{"version":"f05315ff85714f0b87cc0b54bcd3dde2716e5a6b99aedcc19cad02bf2403e08c","impliedFormat":1},{"version":"5fad3b31fc17a5bc58095118a8b160f5260964787c52e7eb51e3d4fcf5d4a6f0","impliedFormat":1},{"version":"72105519d0390262cf0abe84cf41c926ade0ff475d35eb21307b2f94de985778","impliedFormat":1},{"version":"456006a6975b26c0a1785feddae165f6d307e2d601ffde27e21fc4a790e448a4","impliedFormat":1},{"version":"c857e0aae3f5f444abd791ec81206020fbcc1223e187316677e026d1c1d6fe08","impliedFormat":1},{"version":"ccf6dd45b708fb74ba9ed0f2478d4eb9195c9dfef0ff83a6092fa3cf2ff53b4f","impliedFormat":1},{"version":"1fe0d18b111e1145a7e7601855bccd4ca20f24e3b9a5aba6bb1fa9d1a7059170","impliedFormat":1},{"version":"5632c3c26d420c063eebe64c45b1248b9492a67bf44f1d0c57e9dc8f6cf449bb","impliedFormat":1},{"version":"0df5aa619ab12993a39ea6dae062ee46eadbb4d738916460e636ada52bced75b","impliedFormat":1},{"version":"8fca3039857709484e5893c05c1f9126ab7451fa6c29e19bb8c2411a2e937345","impliedFormat":1},{"version":"35069c2c417bd7443ae7c7cafd1de02f665bf015479fec998985ffbbf500628c","impliedFormat":1},{"version":"10ab7be91f87ebe8916b62cf28af2e45b5601fc7b0e311adf838f912c6b31dd8","impliedFormat":1},{"version":"bc636fbc08e0979ceb7eb0731a33000283d77a33b62e1f71ee65be50394e40ba","impliedFormat":1},{"version":"7e0b7f91c5ab6e33f511efc640d36e6f933510b11be24f98836a20a2dc914c2d","impliedFormat":1},{"version":"045b752f44bf9bbdcaffd882424ab0e15cb8d11fa94e1448942e338c8ef19fba","impliedFormat":1},{"version":"2894c56cad581928bb37607810af011764a2f511f575d28c9f4af0f2ef02d1ab","impliedFormat":1},{"version":"0a72186f94215d020cb386f7dca81d7495ab6c17066eb07d0f44a5bf33c1b21a","impliedFormat":1},{"version":"75bbd3be047d539988a0ff0b56384ef7a6a25f3b676ad96bee547d44c31622a7","impliedFormat":1},{"version":"42960001a776b089ade681ab5cfddc936e0afb0615133ec1841f3dee89d3e1bf","impliedFormat":1},{"version":"0aedb02516baf3e66b2c1db9fef50666d6ed257edac0f866ea32f1aa05aa474f","impliedFormat":1},{"version":"da47712b394d944328245482603bc6f416d3949b67c9392279caab595076b510","affectsGlobalScope":true,"impliedFormat":1},{"version":"37d0071d8f0a06dc55c2c5e0ec3391affd4fd107c53410bf358196ec0bf3923f","impliedFormat":1},{"version":"b213dad76ca37fd552274c9499056e1c0d9c1bd38a55bb7f68b22ba6b84c3ad7","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":"5a49adaef698b7ad7e6127949fa1b0bbd3d46b7cbd11c54e392a4dcdd51f5190","impliedFormat":1},{"version":"6ee598cdfdd0fa52039dca135b3dfff7b49035dc13292143e0a93843e3861967","impliedFormat":1},{"version":"27be6622e2922a1b412eb057faa854831b95db9db5035c3f6d4b677b902ab3b7","impliedFormat":1},{"version":"5c634644d45a1b6bc7b05e71e05e52ec04f3d73d9ac85d5927f647a5f965181a","impliedFormat":1},{"version":"2489bf04d77dc025ba67f49f1a56eb24b9db477d5ff88123d887e163ed1776aa","impliedFormat":1},{"version":"63a7595a5015e65262557f883463f934904959da563b4f788306f699411e9bac","impliedFormat":1},{"version":"4ba137d6553965703b6b55fd2000b4e07ba365f8caeb0359162ad7247f9707a6","impliedFormat":1},{"version":"0b77b819b5417775fccb20c678293cf614c054a5b1a65421a5b933a9124ba998","impliedFormat":1},{"version":"eb5acb58487367e502d994b57e2c58255d8241f481ea8efa8e79af23af3f41c2","impliedFormat":1},{"version":"9252d498a77517aab5d8d4b5eb9d71e4b225bbc7123df9713e08181de63180f6","impliedFormat":1},{"version":"b1f1d57fde8247599731b24a733395c880a6561ec0c882efaaf20d7df968c5af","impliedFormat":1},{"version":"6715dc4eb59c8ea9abe2b78c235ed331dc710a06fe56798868dbc4d40cd1b707","impliedFormat":1},{"version":"35e6379c3f7cb27b111ad4c1aa69538fd8e788ab737b8ff7596a1b40e96f4f90","impliedFormat":1},{"version":"1fffe726740f9787f15b532e1dc870af3cd964dbe29e191e76121aa3dd8693f2","impliedFormat":1},{"version":"5a3ea721d03a361ccbdd7390ccd75f6e84cbca3a3f01f4b331ecc9af31890c49","impliedFormat":1},{"version":"e7dfaee4af38d45b1cab8a1ee0b3bc1f85ddcf64545ed391d675d78ae6526274","affectsGlobalScope":true,"impliedFormat":1},{"version":"e8daa443eaf9a27fd382cc1f8ebe30330c0f4d89511cfb469166874806751d35","impliedFormat":1},{"version":"af48e58339188d5737b608d41411a9c054685413d8ae88b8c1d0d9bfabdf6e7e","impliedFormat":1},{"version":"616775f16134fa9d01fc677ad3f76e68c051a056c22ab552c64cc281a9686790","impliedFormat":1},{"version":"65c24a8baa2cca1de069a0ba9fba82a173690f52d7e2d0f1f7542d59d5eb4db0","impliedFormat":1},{"version":"f9fe6af238339a0e5f7563acee3178f51db37f32a2e7c09f85273098cee7ec49","impliedFormat":1},{"version":"1de8c302fd35220d8f29dea378a4ae45199dc8ff83ca9923aca1400f2b28848a","impliedFormat":1},{"version":"77e71242e71ebf8528c5802993697878f0533db8f2299b4d36aa015bae08a79c","impliedFormat":1},{"version":"98a787be42bd92f8c2a37d7df5f13e5992da0d967fab794adbb7ee18370f9849","impliedFormat":1},{"version":"332248ee37cca52903572e66c11bef755ccc6e235835e63d3c3e60ddda3e9b93","impliedFormat":1},{"version":"94e8cc88ae2ef3d920bb3bdc369f48436db123aa2dc07f683309ad8c9968a1e1","impliedFormat":1},{"version":"4545c1a1ceca170d5d83452dd7c4994644c35cf676a671412601689d9a62da35","impliedFormat":1},{"version":"320f4091e33548b554d2214ce5fc31c96631b513dffa806e2e3a60766c8c49d9","impliedFormat":1},{"version":"a2d648d333cf67b9aeac5d81a1a379d563a8ffa91ddd61c6179f68de724260ff","impliedFormat":1},{"version":"d90d5f524de38889d1e1dbc2aeef00060d779f8688c02766ddb9ca195e4a713d","impliedFormat":1},{"version":"07ed3ddab975995eea41b22f3010506fb9f5fb301d04820b07d7a1aee5477d7c","impliedFormat":1},{"version":"969d8b0965849f4bae7cab0ba90bd1e1220e95999c2c6f01117fa7500901c017","impliedFormat":1},{"version":"6ec840ee5e2bc103f557fe38b1d585ee250540468713d7634ee066de372bf332","impliedFormat":1},{"version":"b0309e1eda99a9e76f87c18992d9c3689b0938266242835dd4611f2b69efe456","impliedFormat":1},{"version":"47699512e6d8bebf7be488182427189f999affe3addc1c87c882d36b7f2d0b0e","impliedFormat":1},{"version":"6ceb10ca57943be87ff9debe978f4ab73593c0c85ee802c051a93fc96aaf7a20","impliedFormat":1},{"version":"1de3ffe0cc28a9fe2ac761ece075826836b5a02f340b412510a59ba1d41a505a","impliedFormat":1},{"version":"e46d6cc08d243d8d0d83986f609d830991f00450fb234f5b2f861648c42dc0d8","impliedFormat":1},{"version":"1c0a98de1323051010ce5b958ad47bc1c007f7921973123c999300e2b7b0ecc0","impliedFormat":1},{"version":"ff863d17c6c659440f7c5c536e4db7762d8c2565547b2608f36b798a743606ca","impliedFormat":1},{"version":"5412ad0043cd60d1f1406fc12cb4fb987e9a734decbdd4db6f6acf71791e36fe","impliedFormat":1},{"version":"ad036a85efcd9e5b4f7dd5c1a7362c8478f9a3b6c3554654ca24a29aa850a9c5","impliedFormat":1},{"version":"fedebeae32c5cdd1a85b4e0504a01996e4a8adf3dfa72876920d3dd6e42978e7","impliedFormat":1},{"version":"e297c0a524edee7677939122f90027bfbe5f2698939d9a85728e5044b39c7124","impliedFormat":1},{"version":"cdf21eee8007e339b1b9945abf4a7b44930b1d695cc528459e68a3adc39a622e","impliedFormat":1},{"version":"bc9ee0192f056b3d5527bcd78dc3f9e527a9ba2bdc0a2c296fbc9027147df4b2","impliedFormat":1},{"version":"b62381cae176db34f003cc6172ee8f3e0122014889d66391aa73698105cf4934","impliedFormat":1},{"version":"1d9c0a9a6df4e8f29dc84c25c5aa0bb1da5456ebede7a03e03df08bb8b27bae6","impliedFormat":1},{"version":"84380af21da938a567c65ef95aefb5354f676368ee1a1cbb4cae81604a4c7d17","impliedFormat":1},{"version":"1af3e1f2a5d1332e136f8b0b95c0e6c0a02aaabd5092b36b64f3042a03debf28","impliedFormat":1},{"version":"30d8da250766efa99490fc02801047c2c6d72dd0da1bba6581c7e80d1d8842a4","impliedFormat":1},{"version":"03566202f5553bd2d9de22dfab0c61aa163cabb64f0223c08431fb3fc8f70280","impliedFormat":1},{"version":"41eb514d9ce0a6e87957f08a4b7af70d93f87637f37dee706e2d92a6601c25a9","impliedFormat":1},{"version":"e7765aa8bcb74a38b3230d212b4547686eb9796621ffb4367a104451c3f9614f","impliedFormat":1},{"version":"1de80059b8078ea5749941c9f863aa970b4735bdbb003be4925c853a8b6b4450","impliedFormat":1},{"version":"1d079c37fa53e3c21ed3fa214a27507bda9991f2a41458705b19ed8c2b61173d","impliedFormat":1},{"version":"5bf5c7a44e779790d1eb54c234b668b15e34affa95e78eada73e5757f61ed76a","impliedFormat":1},{"version":"5835a6e0d7cd2738e56b671af0e561e7c1b4fb77751383672f4b009f4e161d70","impliedFormat":1},{"version":"4b7f74b772140395e7af67c4841be1ab867c11b3b82a51b1aeb692822b76c872","impliedFormat":1},{"version":"7bd01f0f28cd3aeb2046274d85208e245965f6f2948edf4f7b2057bcf9f22ccc","impliedFormat":99},{"version":"d2f2cf2b8cc92bea913cda4a076e0f790b23a21e84f989d12f0116a7fe3906e0","impliedFormat":99},{"version":"6de125ea94866c736c6d58d68eb15272cf7d1020a5b459fea1c660027eca9a90","affectsGlobalScope":true,"impliedFormat":1},{"version":"f5b20bc288ee49989c95b20847fc93b96bf61cc0845598897a6a53a967dd7d07","affectsGlobalScope":true,"impliedFormat":1},{"version":"064ac1c2ac4b2867c2ceaa74bbdce0cb6a4c16e7c31a6497097159c18f74aa7c","impliedFormat":1},{"version":"3dc14e1ab45e497e5d5e4295271d54ff689aeae00b4277979fdd10fa563540ae","impliedFormat":1},{"version":"d3b315763d91265d6b0e7e7fa93cfdb8a80ce7cdd2d9f55ba0f37a22db00bdb8","impliedFormat":1},{"version":"b789bf89eb19c777ed1e956dbad0925ca795701552d22e68fd130a032008b9f9","impliedFormat":1},{"version":"1d76866f6aca5bb7b9eb003266628c298607c1242691d029de1b19b39f9c9942","affectsGlobalScope":true},"7b550dda9686c16f36a17bf9051d5dbf31e98555b30d114ac49fc49a1e712651",{"version":"a78793bb6b4b642f2821eb60c9ddfa0d3dd186b28568b5f0f4c268ba2b250bd2","signature":"f5803d39603639ee91c7f21fbd6d792f12358eca4fcf74146d6c2f1343b0c135"},{"version":"eccc6b88a6c5c3815e21afbafc1991ee4066019645d20ed3d05aafc9e54d0f58","signature":"5b3beb9e110c494b12be107c3cece59af336b53d20e481c9bdd7eb554799bde6"},{"version":"8c5eb64fd57d3eedf82b7e474cd7d178e5c0b2eb02d3db9c72e428119b7c99f0","signature":"487e769753040e86224af6f95fdbf933a94c34f1b395d6e506c48417b2ba7ff2"},{"version":"6c2e6283e9451736465aa62fc5e01cabbb61513446957e0507956f7248162bed","signature":"b006d19a31dd8e0870f79a2b7eb1a4f25f72306232d4c8b5d71fe9b14565b36d"},{"version":"c57b441e0c0a9cbdfa7d850dae1f8a387d6f81cbffbc3cd0465d530084c2417d","impliedFormat":99},{"version":"51954e948be6a5b728fcfaf561f12331b4f54f068934c77adfc8f70eea17d285","impliedFormat":1},{"version":"e46429536f43f5910f5b2b0c50bb2769b510a4558bb4b5d20a3b0a9091dbf7c3","signature":"400b40fe5d5f4140993b0ac871686d2b7611ab791e8810b2e14f2d89701fc49e"},{"version":"fe93c474ab38ac02e30e3af073412b4f92b740152cf3a751fdaee8cbea982341","impliedFormat":1},{"version":"3255b97f3f24af29c79cc1aa88004efb13b6285ebdde0a567bf32e19bb65250d","impliedFormat":1},{"version":"1e00b8bf9e3766c958218cd6144ffe08418286f89ff44ba5a2cc830c03dd22c7","impliedFormat":1},{"version":"c8bb01579c9ef5995c8390a8cc7d63ff4da8626643859c77ddadf8d9e5696678","signature":"ea0a7def22250c96963ab5de115c944676e0841797a7edc114d470925252c2a0"},{"version":"698c1bc0181441a03474d42f6743b2f31926845bc31c8554b34a6cef77838e19","signature":"4ef8b0b2f91fee53ff8b0ee7f69fd93b8a294bd7da4c44e40057bf1e14aa0763"},{"version":"166c048927c78e0ca166de2df67186fd3bd3fa9c28092d332370122a54a4b66f","impliedFormat":1},{"version":"44dafc547130d69f8f3ff19973b00a4443a133ceb8cb24c03e0ca9b01626aee6","impliedFormat":99},{"version":"c24ab9ac84d65b417a807ada25456697bb2adf1189fa80cb240625dfb3e61c42","impliedFormat":99},{"version":"d6d57aa3e60250a8526871b3e14abc5a12dc5bb7891512628ffa5c40de369d62","impliedFormat":99},{"version":"0d121799b2cbac398e84a4708fcd82f980f33bf3ac7721a3cf9db9f28d9eb2b2","impliedFormat":99},{"version":"8aed22221e416e7811335f9518690ea0db873de1d0286602e644e1700cd166a4","impliedFormat":99},{"version":"9c3663fa36fb976609d8fc43372ae38dc2e066dab014a955f40ae6430733fb71","impliedFormat":99},{"version":"e38a172f8912eebc79671e07b81687a304a9d366a47933fde9f97ad79f8ac08a","impliedFormat":99},{"version":"2fbe402f0ee5aa8ab55367f88030f79d46211c0a0f342becaa9f648bf8534e9d","impliedFormat":1},{"version":"b94258ef37e67474ac5522e9c519489a55dcb3d4a8f645e335fc68ea2215fe88","impliedFormat":1},{"version":"4e679215c9c8480ea8b876cf74d77c1225da544adaf6acba43634a434275a69d","signature":"677d5d88630239f2364c5a7de8936ab5763cec65206614c814f0122d61d9fd33"},{"version":"539bede51b7dfa42c5168884f8f2075ee38d50fb900da46436f2855e46e84af4","impliedFormat":99},{"version":"4244c6a12dc14768ddc3ee2737ccf1c6c0d07353785d5979df7d250eda461a61","impliedFormat":99},{"version":"cce820aba9ba9d1984461c67d0d543d8eba7ea25c6a1be7a47c31cc18907a631","impliedFormat":99},{"version":"3e7e929f14bc384ed6da8ef0c7dc3aae5ea191494c9554e4327186ef40db2573","impliedFormat":99},{"version":"9d28b54569f4cd1c0c21d95d0e70f6fdbfd792121604b95d7c2d067ee0f0fd11","impliedFormat":99},{"version":"4d857105510df8011cfb5b3769dec55624a1df92e85d399cd03bc82bb89d090c","impliedFormat":99},{"version":"b92dbe495c1dee9f3cd7c1466fdf02476f19ae18a7ecc829e3ed8a380b2d597f","impliedFormat":99},{"version":"bd3e3a447a34cf3dd875ed550ea349589b2dfcd6b3a14abebdc946366bd812a4","impliedFormat":99},{"version":"6b100282ebfd5bfa4d8c72ad5dd3e9d325aa32d0a53623d6171fc2cc2899fbc4","impliedFormat":99},{"version":"31e0d88a23043e61cff5cb8e9bab319b5ca680f2b663e8582d4800a19da8600c","impliedFormat":99},{"version":"5cf87865e3a8b12bb8ddfb311846ff2eae24983faa365f53d9224fb182cd0269","impliedFormat":99},{"version":"98ef9c3f5f15c18abcd6fa9f12e93e1bbd608225501151603cce97642dbc961d","impliedFormat":99},{"version":"c80a56a10f1a8e01c4b7f08df6e9260ae076c910402dae8173fa6c7dcacc51fe","impliedFormat":99},{"version":"becca0fa1bbcc55ad69918f65f771b76904ac98b2563cb34f26fbe240c3d4db3","impliedFormat":99},{"version":"32b344c3765dc7c383516f3326c108ca84c33df44ece8ac789fce47d47ba8810","impliedFormat":99},{"version":"f7d6ecff9a4d631feeaf401c02bb87e26ddb38131c55d15a43b9290747390847","signature":"f774a7e8875649db68f5952801f001f3c316560ede472e5663af7a8c9c18f938"},{"version":"7f19b8476658d25ff197c84030e58cd7395059d876a54630e025951e474ebdae","signature":"cbb6e618cfae37c1feb246b78260428cf2bcba79a0c9bf1ac60d511a4158692d"},{"version":"3a33d94e3e35f61f5c30828f795c8db1d1fbfd2eb9c7d578a8d9276c6d94cc7b","signature":"d4e4eb785403cd7ffa1eb9afe44d7601b52a99cb205972508f2ef4ff5739bd7d"},{"version":"ba1c5c19412fd7f60a9411ec61344c4ec425d77b5a3a78d8f7ce51d1cb4b3855","signature":"5cec2d5111000faf9f06f8fa85b11b747c2fb4db35ada617f019f80de10790b5"},{"version":"b0309aa43d7073c58b43d47f80311b81aad17b395940f43faff11387ff8b2038","signature":"cde8c57cf796fc88faa8ed92f02bb868c64100eb22c6bcf935487bd8eeb1ed08"},{"version":"2ba6dd2fc6a213bef7e1dba18791da6e83992ff17f6bbd50f2c8f7f4b6fa2d82","signature":"132db3de92d2a718bd41fe3f47e75fb6916b1af96d1289347316ee1abc358b06"},{"version":"ea0d2c537414d351e758ec7b5194133fc5713f52a861d81217ffc059314f0ab5","signature":"208e9588f4aca391d3a0b24a16faa67a7ae6308e814b345fcf8b29f8a702a686"},{"version":"85daf5876f61561c54b87bd927e30d332e06964790059a73a47374911e1e8e66","signature":"f03c9fc060940404460998108d975d541cbef8644269862a531d5b41edb0ac40"},{"version":"9800c238da31c600373883bb7a1a3ddb431684992dfd2b3112fbc1983403c427","signature":"c1c0fdbb129948e18a8b11c893490ee3ce0055631ad8de1eee247343d8359ce6"},{"version":"2b4276dde46aa2faf0dd86119999c76b81e6488cd6b0d0fcf9fb985769cd11c0","impliedFormat":99},{"version":"38d4cff03e87dc58bfd50ffe5a3fb25e6e6d4136a1282883285baf71d35967c5","impliedFormat":99},{"version":"5ecea63968444d55f7c3cf677cbec9525db9229953b34f06be0386a24b0fffd2","impliedFormat":99},{"version":"6ea9c8bf2ae4d47a0dbc2a1f9ac1e36c639b2ac9225c4d271c2f63a2faf24831","impliedFormat":99},{"version":"a3d603c46b55d51493799241b8a456169d36301cc926ff72c75f5480e7eb25bf","impliedFormat":99},{"version":"773c18e2bcc18598df8f8b2be930eb26b22608edf368e42e9ca3484828ec4122","impliedFormat":99},{"version":"9eb8e1320fc0ecbfba15c0f3452dfc1957543dfbd466aaf8b67ddb0f2ad0f217","impliedFormat":1},{"version":"4faca872dbd194a17b3ee267bd8ddc3daf3d16df96f4e43a02c7d9a862022c4f","impliedFormat":99},{"version":"f89aeba83b1744a0d697c1b7fb8a06d8dc4cf7c0d469d2419772121f499efa8e","impliedFormat":99},{"version":"144a4e5780b800c0553949169f50be285eccbdb0298afd83ef2ae03fef77e2d2","impliedFormat":99},{"version":"66aeb47bf8638d6767f7b4ff684c2d794391c981590073025e98f98e1afed499","impliedFormat":99},{"version":"26748898fec8579096c776866e8e6f07754845b3d08f5ae98c3a59baa9e85c2e","impliedFormat":99},{"version":"6d805abd62920edbd9ed4b20be26d040d01529f3ce53fdab9ca4d0fa9b589f02","impliedFormat":99},{"version":"edbeff52e73b0ff82898142aaf8ffb336910a8ccdfc31b79960ea4ad4c9f407b","impliedFormat":99},{"version":"b64a8c7a27133db3f181199d21c0c582e86f38ba57a031a126b77229526b4916","impliedFormat":99},{"version":"1b1c48c4d7cbe6f40616594c2a3f6f95bb1dcefd200a7e4167e47b67725b631a","impliedFormat":99},{"version":"97b02501eb45f487174d5a0ff89b6a95690d50e9eae242e2162118edd5f2705c","impliedFormat":99},{"version":"8eca47167dadd486582ecd4e41f7fba6ae66cc4a4c5202f1f7acf34129a0dadf","impliedFormat":99},{"version":"390dc7901776ab8f54c64100156ae561f4601a6913e86e7d1658715d7c414763","impliedFormat":99},{"version":"6841c30168fa7fe25409d83ae5e210c6340cd412e543e98625d277764d136994","impliedFormat":99},{"version":"1dc13534a1f9f442a683b92ae3200c611f19c2e8039c0b381e09076c85e90049","impliedFormat":99},{"version":"f68896096cba0f06ffbf39a67c2280f6f2e5b90c75db56a3f9ae5f7f3bb54460","impliedFormat":99},{"version":"ceed5b112e868b1c223f4f24e03d302e8043f6bd8f6cf8ede8e75f0471ede6d3","impliedFormat":99},{"version":"26cfaec143443411bc7d5363f274f885ced430b8f4bee25a81f7827248848d7b","impliedFormat":99},{"version":"f9a591e5fe0be6728cc84e70325aacafffcf203b051ddef37d65651b43c05056","impliedFormat":99},{"version":"293c0a3e323608f4e20667acc74d7bdba727db954b840ee1db03f2fd5807c761","impliedFormat":99},{"version":"de8b4c367880fe92a0a740b706f08a46d1cf9e3981d55c2701e82423e81ef0ef","impliedFormat":99},{"version":"8f1b151c1f2ab5f797666d1d53199ad5cec66ab6f4c46f4c02d51ac6d47998d3","impliedFormat":99},{"version":"3a3fd6f5ca85ceeb293f2a010125f9455404958122b6dd0ba0b34f7dab74feb5","impliedFormat":99},{"version":"5bd7f6f573ac89ec20aaf326e79394da8a89fbff8a297aa864de9137ca045678","impliedFormat":99},{"version":"01498e4cffc8badc7ba4bacb201e88d89e7ffa46d0a710f1d0510a11104b4e15","impliedFormat":99},{"version":"5916b6f272fe245dd8032c708487405eb9f5b8a83ded6630ec1ab02df36ed63d","impliedFormat":99},{"version":"9e003336714371c98108af3dc53342829039327f8b1db97d826ca81805746b7f","impliedFormat":99},{"version":"d8954254110123f6f5c9fda6280674f6b853d47df7fc41c2090e741dc8b6b627","impliedFormat":99},{"version":"1e257873c8332ca2066f2f9409269352839d6ef6cd5624ba6b777199e78f70af","impliedFormat":99},{"version":"409e0eb04698050bf40f5da901990a58f7119591fad21dc5f4d94ef20be7f457","impliedFormat":99},{"version":"0fa0e6941b1d3095f625c4bda62c0a37247ab8749cfdbc8b44f4b4518d5482f5","impliedFormat":99},{"version":"56c7641a2de5b6695f415a89826b724734aa8cdcc72a112c8e80c3d140b86f4b","impliedFormat":99},{"version":"e96bd939a55117abe6ccbc02839f2f4d9ce3893368fea528ca91c59ebddf496f","impliedFormat":99},{"version":"81f6bf27eedb1ed92466abfcee33795a6b2304691ae01f42e60f8c76894fade7","impliedFormat":99},{"version":"228127c94406a1583eb6e1314a611d9ee26418d4590b4466ed0468d5be0b7e41","impliedFormat":99},{"version":"26a0c2d883e1ed55ba00810d957dedcde5d16d637e33063686e2bc3f58a5c64a","impliedFormat":99},{"version":"68099697ac4e919f6f1832389f32eb67d3d94fae744967f33e0cbc049a222a3a","impliedFormat":99},{"version":"bfb900f7de2066a4be644c269285fda8ccca40b065476a27b082173014d00467","impliedFormat":99},{"version":"ca2f4468c5bcfc7a37aace0a1f20f92b226b097bebb834f29ecbce8ee399c6cf","impliedFormat":99},{"version":"b787dc6f2d3fa1d219038e6b360245b6c7d15c00a64ee31b24c56e823a0e71ea","impliedFormat":99},{"version":"ce757254610e6b3a37357a5892c46a86525d0d7f0a5e4a907f6707a3928b8a63","impliedFormat":99},{"version":"31a63b6b49338cc6ddb1a318beda72d3d8fd523e50f8dd5d5ff3accd39a490d7","impliedFormat":99},{"version":"8fc7615fb8fa095406f5a58b1b817b9a685c516058877a3d2c06d4545fdf5dbe","impliedFormat":99},{"version":"eeab2749ab639ddcd1b01f3c3acebe9616e0265021bf6aff910070015b03b92b","impliedFormat":99},{"version":"d5da26af31358a4883edb6112879018b14c7c1fbcc457aa36961b03ee17bedea","impliedFormat":99},{"version":"4e93fb2d2c59bbc1f1a5211b36c447efe4d0af568d682ef1e5eb5f84ca6ccc2e","impliedFormat":99},{"version":"b6cc07bc56c7418ab500421d2629c26acdb6ec2e9af85c5e2c5d7e8c9f92566d","impliedFormat":99},{"version":"3d13fe973e92e708ad3dbbf1b2385bb799f8e70c8da71a1ac72fcb5521c8a5e9","impliedFormat":99},{"version":"16f3f66b5182e57c554d0e374e29fdc0a899c1321b3f94fa997d19abf9faf931","impliedFormat":99},{"version":"df459c67b9eef71318851331b23926961f0476b4b9d1674addcb627eabe583b2","impliedFormat":99},{"version":"b93915733f1802a8d9093116a5e660385afda0f72a5bab9c9bd356549a61f1cd","impliedFormat":99},{"version":"1dfb1491b28cf3734f3c07745a56d7758a12d546f81a70fbfe8ee9faeb528c54","impliedFormat":99},{"version":"42b00a511331c7f79039ae3be83fd5941b212ce193654c3ac5d82157227b69ad","impliedFormat":99},{"version":"1a5914065c7c6e2b6e98437c4ba6059bfeda3441f0f55cb07189df1e78698922","impliedFormat":99},{"version":"66d3f42196f32c639d8240bbd520852abc024d673c713bc5ab26b4bdde750a74","impliedFormat":99},{"version":"18ce9175445b3edec11bbca1c682a8f3919e74fb3504abd883ac462ea8089a0d","impliedFormat":99},{"version":"aec96f94a27fc61d5f4ead202628e811199f887d48bb7614b7e1706b629cd1ba","impliedFormat":99},{"version":"2ab01a0368f65b3b891e25416ae785dca54808f70d8f6204b99589ed4f7f1d2f","impliedFormat":99},{"version":"efd87ca2190e2d0f905e30343443c8d2f0d32cb2b1c9e05b2cb97b0061abec08","impliedFormat":99},{"version":"3323edd649d2c85d3528912cdf6fb770258d59d75241575fcf25c7850837de79","impliedFormat":99},{"version":"e0c8deca5262879f11ee84fe6664dcd197a60f546930363bf2d78d37c3138c69","impliedFormat":99},{"version":"3b8ba0456ce7763676505d103eb336a6b97659d6fc8a7d7d186558ea0b8c7ea5","impliedFormat":99},{"version":"7bae4a3f50a844fcbdc504d717f5f13dd7178ca99f131b230305db6b55e1dbc3","impliedFormat":99},{"version":"f3a4668046e42e9f5ebfdc8b79238eb27c399443dd1dcfcd4c4c3652692ed031","impliedFormat":99},{"version":"07160ad59d49c6f2999f9703542918df3eb1ef93857bc560b4baa7c6775d22ce","impliedFormat":99},{"version":"cbb7705b157d0be735c4564681d749529d26ac77296757fdf4d861a76e279d4d","impliedFormat":99},{"version":"c23b9684ab48ea6956f0a510c3cf724277fa457efa7ff85d5907f4e4290ba0aa","impliedFormat":99},{"version":"3859635347ecc10d4ff5dd68bde66420f5a8539b7313dd62020aa025208d2222","impliedFormat":99},{"version":"f49e8feb6d7473579a5ceb5872598bbc1be3723da653993472720629c72fa0ba","impliedFormat":99},{"version":"14c727434cfe6a078b51a88d005033ad01a76bec36292d7b47369d82e48e1cb0","impliedFormat":99},{"version":"1c1ae4ec02de9778286f84e0d15a1b74cc610c13c5b6a13c1ada2e6770eeb4e1","signature":"6d6449b80881e70de3f27d314c1e8a6353071f30442df504dc00e429b4f2252f"},{"version":"0e354464ab326224591b02875550f37ae289785c1558a494f858e3d2b289851c","signature":"8123bb1692f9138dedb3997a3c3ca15cafd7bacbafc0f67f50c62d4c8774fccb"},{"version":"366cdf6ad7ecd5713a24f28af7a40765cb9d2538540d232b7521f0ea5ce0bb13","signature":"6a9d493e0c5865db9fc7519b48fb79ba3eaf00535a697ff7ea1f0dabccf4d15d"},{"version":"de708061021467057ac23fc62822e8d0840a216e24dcc423d4658a95033fdb8d","signature":"0283eafdc2b9ec618b38542bb438d3e514d72ca37203be108f45f0f960019a0e"},{"version":"59ce31d87135ea5719f4451f6a288ac851746e6200088bcc1d3a7b1c0094c442","signature":"797b1b35838a594d3ba015115250d87d02d7e3ec59ac0ca62d4d32e0dd79bb50"},{"version":"417e42f4fe8f9ce5963dee9e82641653dd15266a75153b4624e299ca60a04c07","signature":"3db332987db7707a742b841f11d8a5590960b598d15bc3f678600d28afa94a91"},{"version":"933589f7dda5b27a7fe819603878b0ca51b54328154ddab377ca2fe8c1b914b6","signature":"245cbd0512d5ad85db0cbf054c74dad653b62f2da5300ceff0e87ff99dce5caf"},{"version":"c94b208239748236f918cd33929ff9d52a9941b4a8251f54a318f72fb872cb64","signature":"cc20a19087b1df060516722de9e6c4aa87a5c239c5ad1ecd83b61cd17c9bd16f"},{"version":"8dedf145bef222eb6a09d63a4a6d8f340cd315cbf61ede98ed459bb5b5ffcaeb","signature":"7a4fe07bffc8b6ec1785aec2b011f454fc93828d90b9269ccdda995af85bf073"},{"version":"8972f785d4fa7ea7d8b1c84bc5fe8cf151d30ab4ff288756df96e0e082f7594a","signature":"827c3c8128c93043529320108a33afe0cc3459ba09c04192f4600b80c73607b2"},{"version":"d08cf172a38f58995eda96e030606dce61e63fb16c50a0e20bf0148b1dd34cbd","signature":"485253ab3565278dbb431417d5ff09907309ee9e5c88550c115d882e872593c7"},{"version":"ceb8eb94f3be6f723de8230d338a50a8696f145270f68c514a804fab5343c404","signature":"c7429d15c4b492628c3b307bb6e3cfe8eb2ee741469b1ca524f90b84a143fe8f"},{"version":"8ad83abba071cb20fe7166a8adae3bd77a79be8711426fd96f5be354d868efdb","signature":"ac02d8be5e6d2e71292fe738d73adebc09aaa60603a8e51f7230faec34c5378a"},{"version":"7f334261cdc7c58466bab779b937db5d0632938142598fb4abc43cf9358a5efb","signature":"e4dbf6dbee6e1a22a1b988a18d5cb517c17e9ada9d691f2b4eb9e689452a17ac"},{"version":"05c806043f883a81bee91b72428e9551f7cff48fd3d03ce2ffbf22af8f0e10cc","signature":"5e1e3ed0f08feb1037e9f84157aa96a5177bba21b5b4d818d026532d0ff007b0"},{"version":"c1f1a1ff58583a523e6eb11fd5801a5bb0b3b531417bb0ce53db02a59a5545e9","signature":"d092958065bbc70478d8049066581c325f46a724087ef328cf2d47fbdc282b9a"},{"version":"0872ece3daf3df853bb9a0ca45cdae713dbf616445fff7c792bad8484d5f97ea","signature":"a0948a68b9c152fab283c5f443f8ec9535c005d8bbe560b2b8ff87f54279b68a"},{"version":"0b7fc25d6c77adeedb6cb69fe0eea69155fe7684212c7f3b2b440e90bac48a5b","signature":"7fc4d84099fd385c7645d9d41f854d415baad44aad0b6e07d6d89a89ef7bfc49"},{"version":"ef1b801787af0d1c73a87574b74f49c79c2c89c85360e0faedf3b345d527ad5f","signature":"a501d75788b8433deb30e2113ccbad77c77fb3ce7426757194549f621804f562"},{"version":"946e27c0ac856874d8db8118c8a1dcdd0cbdfd428b78c3f500bdc494f3b8b3e7","signature":"8216090525c0b63eabfe8945e299d1fe8d5adbbc335fbcfaac4f7ed0b42d1eaa"},{"version":"8593b8436e234a5315f5d660ed6c41bb872754a47340ba85c9e4321748e6f789","signature":"7be4e60a740deaefbfe7896964791aff6e6b2e3e12b93adbfbb29f8f7628dc34"},{"version":"c840e12da509f2c771dbc356a23750227a43d1864640c7e6404b8f9ec86b3871","impliedFormat":99},{"version":"6ae92eaaaef30fae975de604d3af31d5b00eca7f02d89fab589152df926685fd","impliedFormat":99},{"version":"e3b3780b68c70ff42894b68ee8f49186ef3335fc86a9106dd07e11580b460cc1","impliedFormat":99},{"version":"459fda119c27213d3defde220c051414020029abd52fb6fb9aea0beedc512c6b","impliedFormat":99},{"version":"968b0403af74a785c9408ca69a677235e49d0c80b2c27fb9858ad421a8778c7d","signature":"816603a3a3ce186bf710d1be189162cda5af637d36d8f318022aa2e448e3565a"},{"version":"63de7fa6602b7769e0f6bd2af239dd3434b740f60aaca15d195adaef61c4c7c9","signature":"9dae22191e4fffaf54d13373b0e73e214590aabbe19a9926ba442922eea64b61"},{"version":"0f8b75a9d4ebf450320d2a463784aeea6b5db9c0c19ca39c275b9da80b322fef","signature":"eaf8e3e068e23fbc82dbc1aa21ddfbe54baff2a86d75d50902329a5472efe0de"},{"version":"aaa29b5efbecef6b101d6b6772f90da4d26d518815b16e8ff4f0ab58fcc93890","signature":"53774aa9ee1a946a98d3b2659d6aa4d81b0468b05525256a44acbfb4105a8412"},"0294f36355f84a2f9a078ff3dfc0fb90feecd3912f9fc7a213635e08d01348c5",{"version":"767a2e055fe6e021328f51448538e15f93cd53f89e5ba8c83c3a1e94b6630c22","signature":"a4ef05d8a5a879ad9030332befb57989305a3c6e1ed2dca110f645794beed040"},{"version":"1762c51f9a975e4451b8941109881e59f775acd37e13bbab014a48e8731d75a1","signature":"ef1e776b998a0c02087c6501bd07c78832baeac620b5021c245df4836dfa2f17"},"880acfd4ebc7da22bd68d4bee7f5ffd9f89d48b494110186b50ed856f0076ca7",{"version":"f8b5b9d4a432e7aef2c0d2d3e5f404de98ad85ca97a586d1767781a19f250d4e","signature":"335690b6dd1a9cc476cd01cf766c5ae1234e90a318eb383a96d2e147358250a3"},{"version":"f4a3aaf79f4fa5359cb698576ab9f4d301afb6666ccc558ef8f6bb18f4b72c77","signature":"324717f7bc7631d3a880b8e42f32c7f6225a2b8295c2793568c99de08e1fef1b"},"2f69175a10d85d5c041a48ad3699ac5a6055eaefd43f9440d8a57778a0ffec92",{"version":"423483c43cd900e3315654a720cba2abdff48ade505900609d40ce4c5c323833","signature":"e6a25231cd80539f77cdaa44ccf5be365ffd178c050299a383c1a7a167a80a37"},{"version":"0edae8aaff2ba9ad6291e8b5313de1b7b7f4e3c1ffadc256d9f45953b3edc649","signature":"8754fe347bd81594a37b5a19a333e4a8063a20f443fab1af850f7edf12bb5537"},{"version":"f07845a4f9772a545efa7c1086e83a81732c72026d3f365f0bb52bfae5b66752","signature":"b3b0332e154b1a2ccb655349b7e2471c65f61a5b523c06973d88cb50ce785d19"},{"version":"082062d5e676f7049e4a684dc6726c631fe153cb457e494cc240bbe3be5650a4","impliedFormat":99},{"version":"ab2e38bc6b61891361655b5d2e45c4cbc95c9db4920453fd5329cac7fd4e1385","impliedFormat":99},{"version":"9bb8a03e0015254999c1e96830242fa3764856fd14958d3b097149f4491b1fa6","impliedFormat":99},{"version":"21655de6cf9d8df920b2dd8aaa5d6b4f88630c5c6f4df66947f4a2c4e59f7c79","impliedFormat":99},{"version":"c98e4b259d28463c34c65cdbfba447d5ccd4fed0a138b7acf8c796309e61e2d6","signature":"d9ed1c6c07bd03524f35e2b7cf385c3278909b3ed2daafb4b74d460d8b6420ce"},{"version":"4bcac0755d72a070b32c0c078a9ca65f99aec491558f8fba80969f99659fba29","signature":"633e87523348a4bf2e0999dfa6d93004738ecbd7186f7f2ae5f350e5d7781d2b"},{"version":"fe71593dddfc086fd941f484c1094f952f54acdf7ec2d983acfaa61a816dec86","signature":"137673d794fa6adcae07fe30e38455116513f5894811194401033fe14bb56e38"},{"version":"c6c3dbe3b2cf62152b1c7493424edf66460d53d25e7d49c98f6a7d2c80334528","signature":"6a2879106635e78675da8924862839ed3ab8806d3e08316152b00a697a4141aa"},{"version":"3e7064de07e84a24d10943b69a0278752f23f1999b396153feb0a63f355beae3","signature":"d6e9a3e9eddda48d8308210ee9ecc68f9425bcc378fb1f8bec08ebb7e0f1b6d3"},{"version":"92e489ee150822319675c8499bba1edafa1776bc03db66c822d033160e7cebf2","signature":"343542f6bbe309692eda70274e04acfbfe25aa0bfd9d2c9a711c5281bdb49cba"},{"version":"8ffdf73d62d015140d4c4edfe58757d2f21474d50da2f92d48e33c522b79dbc7","signature":"917fd3d6e4f13868f4a867924f3fbdd816fbad049d179cc81b17a45fd591cc86"},{"version":"a47bbf9dfd28b7d2c53e3cd685b93b81045757c6c98a60988c5407efd9a1ed62","signature":"a6eabf2956d288497ef743ae571632a3bb49e065ba767561e2147a8694c1e4c7"},{"version":"4901350bcb3977f35d1fa978ed01b59f37051cd804850a054503520dbf64c165","signature":"88df5e98ceef3d5a816aec77494f867cd5b0c4cf7f0274902f4cea79a4246514"},{"version":"e032ebd946a99379fd2a545e7320517c1059a43cfcdc0cf2b8e24125d844bd08","signature":"0278bd05765122bc9adc3fd760911b50ed6e61da7498a1b4e545f028647bb328"},{"version":"3fa47574f1e8d253de91fd3e7aca2dcc43ba92384e47e6ba5f67d8aa01527097","signature":"c3bc8fa5724f12da849b1c8c2b0bb4f321f60fb65426abf4f82387437c542090"},{"version":"4661743ca06bc9577174fc8ecd963ccaf0ec605c4aa89eaf6a622467397cf147","signature":"5879818ce307b9ed0a24051ba091c110081cbe6a2ba56008132dbdf4181ab8be"},{"version":"6be9cc6d63419c8acb7c6b32fdd7fff8285842e69dd35588019d93f95a52571b","signature":"6cc449dc9995a239ca20bb0e067ba9e5008acbd036727e8cd97bc0001bdbb2b7"},{"version":"7945ca8edb5a34539de61ed93c4877f1e90fa603e5b208740bde9cc00693067a","signature":"19d54bf73a5a0216df1cf3bd0ff80167cf2bda8b0aa052d2cc7ff7caaccc4efe"},{"version":"28cb8c81a73ab8485fcf4bebcaa7264cd678224a222b85a491be882798d8f550","signature":"1a3c71cf6a6fbdd7591116f48d95ef7dedf3cba8345149fe195729409cd34fe2"},{"version":"480ae446e8e3c81ea6e96dea8e86617f5a430fb0746d5e979b48773501bcf423","signature":"fec7336827914a1816050bca31f2ee284f4d7deaf7211898cdd094a0deb2b513"},{"version":"1e24d107b1e2f1426a2d61d94e4fa2fb3595baa9257f2c035d741ff2a3f8529f","signature":"125b793a5d8ff951e3b8ebee15cafc78e0f58c245cbdae564e54301ad998cbb9"},{"version":"2047f914f7dd72a0368b8ef3e8b80b899f664df199f4d2b855a63a39f6b952ac","signature":"99e60850c1e5ca84e37793f659c5e113fda1e356659a2ae7175c543eb99e7c28"},{"version":"4ae2f23c94a07864ab52b7e66a3e863feffcc259f5b431c13f94341b1d72c199","signature":"82fd574ed84b5a906cdc2676c26414e76adc47c70dc6b848e0f4343438a34590"},"b531db01208aaffa47aff4926c165af00a6c8c13fa231187deb75f69eeb16aca","b68acd2160533c5f326af2de608d45c4cc3cebced25340efa69a4cfec6658f38",{"version":"17618a2a6d68ae6a30ee27c36b58f3c3e135573f937d4e281df693814fd2a9dc","signature":"001c2ad8eef03b07f14e41bee9a415db23dccadc02a78919faee940e545787d2"},{"version":"14ddfd8524dece18a84e2745bd609fb9dffd6339abe7c85af10f5cbb8cb67bfe","signature":"ee0527b1ff34f0ceffb2348f0095b1c1cddf4faa46085ea2a110cebaee50d347"},{"version":"63ca4e856cccc6e9e6ee3adeeab2cfb08566770fdeb5c1dcf5eee0b0532d6778","signature":"f6d1494406cbeffb08cd23ca8d9675d754def7fb3f700bca4ff1536b07de2b00"},{"version":"b99c765822d1a1073e0250e55252adff7be2cf41641949f86b882edffec97875","signature":"b843fbec02d0cb54db1702adcfd063ad08120abeda2498a1787b64590684359c"},{"version":"9a9e04e07fe35d1874951bdc8de7359f75e671b9397557f7384ad6b2a315cf58","signature":"18a4751b41acc2856ed6f45b34fbe725cf9c7e4d90eba0ad2feb4e2d0990ec5e"},{"version":"dcea5f87f6ffcc732bf129e6e58dd6100ab7bcf4d9d66c65bb32822bda923259","signature":"8aef51ae2a7868e062803dec9fbb656da273542c7c9f4621d5464b9605dfe009"},{"version":"a78eb0d122e55304d670c8a5e01b0ac0f37dbce5a53869669be076470a7f4d78","signature":"a7a3a87855b2d2cc8ae413e677b4899ffc58a5e4a20f055c07a404da99541520"},{"version":"e1024bac63fac77ff2dcf562cf00a82a2ee2f22f02d78869c293991716cf192c","signature":"0da53c45d881830a663b858e68023d38da5ac262bfdc606024742e9b45b74032"},{"version":"3787076bd7bc40a1c348d115b0fcefb37f77e0b92e941f2efa44d464396ca328","signature":"986ef67c1983fdc1546cd063b625ccee6cde32da7705ab8e1acebfa0fb39df5c"},{"version":"5a2588c9ed56c03c0e357d58330d2bb6d89e390f4be303a09ee854c0bcb36a92","signature":"5283c1424f61516c54136798c3e7e256528a1a75581132e32e616d76add1160d"},{"version":"19e8160ad82839d8ece0f64fa0354373220e0b0192fb63601bd2bee81f2fd782","signature":"1592edebde83872e3c0cdd72f5eadddab86cf295a6d19f09620b84442fd7854e"},{"version":"50873ca05ca34d25a3324222510a86a9599b3a311d9fff1406d8de0be6a9eaa8","signature":"e5f9d5f6f37816cef8cfd651f6a81ff29222429b81fe76184722549e7904facf"},{"version":"586f0de1456ff1f22947e2aec82642f7ec102d0ad0b6f13edeb79dbaa8b9d11b","signature":"8c6eba7333e72b090341a04f45aab07e000ee74e78276b2c041119bf6dd60587"},{"version":"4e150e90bb4f5066740c6bf43a8e5061e998b884d37c7170caaae8dcd808b8ab","signature":"2445a341f73ffabebf7b9d8886a913be095356c2ba0673e3cc2e7fa68b500c36"},{"version":"6dc5f5d9c28c0aa23452a32416ce337ac09ce633ad893b988a1ce256fd7e72be","signature":"828afa634f40e99fc918fbfbacbc0148c5502118e44433a914acadf42cbcc802"},{"version":"052c188cf49779dda6dd016340f5b1158da01b9cc983108dc4037ec5c0575afa","signature":"2840fdae09764d8ef1660442dd476e00484643fff12b1039a7e44c6df5df5b53"},{"version":"8dcf898abdf1bfe773b873d5e1b329b8f4d061fdba45f2ad842a3fdb4db5ab07","signature":"b410611afb0627ebadfbb1f24feaba95b75f2d6eb44e9b4a78cdbca1b5f64aaf"},{"version":"dec64d9baf5965cd7029438ef95c580c6a01db49a25162276946bf72b56a5dfa","signature":"5177c419b162946d62af34a97439621b087540542b9a706a057c72b7106ea818"},{"version":"bc4194f8ea1fdb9f7d518df1015108da6bd5a38aba9d64b6c134ce83c76fb51c","signature":"4c09a264144e8e6e0b181b42eb9c86fbe44114927c0141188c9105549fcc7969"},{"version":"55e5845f6f31bcb05e539336a48ced65fce64e02af796e6da40f4aee7bc78e91","signature":"0b8fd7aa2222d31c2de139a76ef2aa14dc86717c45b9ef30e2c733be1fa2707e"},"d1986184a09a52db8228cb2bb2a61a8c05c9354e5b93cec8e2628d8579c892d7","d9fa276add16d87de0375e4ee85d1b8427515e8e3f08f1adf87c4e0cbc89f09e"],"root":[[534,539],542,546,547,558,[574,582],[659,679],[684,697],[702,744]],"options":{"allowJs":true,"esModuleInterop":true,"jsx":4,"module":99,"skipLibCheck":true,"strict":true,"target":2},"referencedMap":[[743,1],[534,2],[744,3],[582,4],[663,5],[667,6],[547,7],[536,8],[669,9],[673,10],[671,11],[675,12],[690,13],[691,14],[688,15],[694,16],[695,17],[697,18],[704,19],[677,20],[706,21],[708,22],[712,23],[710,24],[578,25],[716,26],[714,27],[724,28],[722,29],[725,30],[727,31],[731,32],[733,33],[729,34],[735,35],[739,36],[737,37],[741,38],[581,39],[696,40],[580,41],[666,42],[689,43],[672,44],[670,45],[720,46],[664,47],[577,48],[668,49],[703,50],[674,51],[711,52],[709,53],[707,54],[676,55],[662,56],[715,57],[713,58],[665,44],[687,59],[678,60],[686,61],[679,62],[692,44],[693,44],[705,63],[685,64],[728,65],[730,44],[732,66],[719,67],[546,68],[734,65],[661,69],[717,70],[723,44],[718,52],[726,71],[721,72],[660,73],[576,41],[684,74],[558,75],[742,76],[659,77],[574,78],[575,76],[702,79],[738,63],[736,80],[740,43],[579,64],[537,81],[538,81],[539,81],[542,82],[535,83],[554,84],[555,85],[635,86],[636,87],[567,88],[566,89],[565,90],[571,91],[570,92],[569,89],[563,89],[562,93],[568,94],[624,95],[605,96],[608,97],[604,98],[622,99],[588,100],[625,101],[609,100],[610,102],[626,100],[620,103],[611,100],[615,104],[616,100],[617,105],[614,106],[618,99],[627,107],[619,95],[628,108],[621,109],[623,110],[613,111],[560,112],[561,113],[572,114],[573,115],[551,116],[559,117],[606,2],[549,2],[550,118],[612,2],[553,119],[607,120],[564,121],[630,122],[631,123],[640,123],[639,124],[642,84],[641,84],[658,125],[657,126],[643,84],[644,84],[645,127],[646,128],[647,122],[648,124],[650,123],[649,84],[638,129],[633,130],[637,131],[632,132],[652,133],[651,134],[656,84],[653,135],[654,84],[634,136],[681,137],[680,84],[655,84],[701,138],[700,139],[698,140],[699,141],[552,142],[683,143],[682,120],[603,144],[598,145],[602,146],[600,2],[601,147],[629,148],[592,121],[595,149],[593,2],[596,150],[590,151],[591,152],[597,153],[594,154],[599,121],[584,155],[586,156],[587,157],[583,2],[585,2],[378,2],[142,158],[143,158],[144,159],[91,160],[145,161],[146,162],[147,163],[89,2],[148,164],[149,165],[150,166],[151,167],[152,168],[153,169],[154,169],[155,170],[156,171],[157,172],[158,173],[92,2],[90,2],[159,174],[160,175],[161,176],[162,177],[163,2],[164,178],[165,179],[166,180],[167,181],[168,182],[169,183],[170,184],[171,185],[172,186],[173,186],[174,187],[175,2],[176,188],[177,189],[179,190],[178,191],[180,192],[181,193],[182,194],[183,195],[184,196],[185,197],[186,198],[88,2],[195,199],[187,200],[188,201],[189,202],[190,203],[191,204],[192,205],[93,2],[94,206],[95,2],[96,2],[138,207],[139,208],[140,2],[141,192],[193,209],[194,210],[199,211],[463,121],[200,212],[198,213],[465,214],[464,215],[196,216],[461,2],[197,217],[79,2],[81,218],[460,121],[230,121],[557,219],[556,220],[540,2],[80,2],[548,121],[486,221],[491,1],[498,222],[481,223],[234,2],[242,224],[382,225],[385,226],[357,2],[370,227],[377,228],[259,2],[359,2],[240,2],[356,229],[402,230],[241,2],[232,231],[384,232],[386,233],[387,234],[458,235],[351,236],[304,237],[364,238],[365,239],[363,240],[362,2],[358,241],[383,242],[243,243],[428,2],[429,244],[270,245],[244,246],[271,245],[307,245],[210,245],[380,247],[379,2],[369,248],[476,2],[219,2],[497,249],[436,250],[437,251],[433,252],[515,2],[334,2],[438,253],[434,254],[520,255],[519,256],[514,2],[285,2],[337,257],[336,2],[513,258],[435,121],[290,259],[297,260],[299,261],[289,2],[294,262],[296,263],[298,264],[293,265],[291,2],[295,266],[516,2],[512,2],[518,267],[517,2],[288,268],[507,269],[510,270],[278,271],[277,272],[276,273],[523,121],[275,274],[264,2],[525,2],[544,275],[543,2],[526,121],[527,276],[202,2],[366,277],[367,278],[368,279],[206,2],[371,2],[226,280],[201,2],[450,121],[208,281],[449,282],[448,283],[439,2],[440,2],[447,2],[442,2],[445,284],[441,2],[443,285],[446,286],[444,285],[239,2],[236,2],[237,245],[391,2],[396,287],[397,288],[395,289],[393,290],[394,291],[389,2],[456,253],[231,253],[485,292],[492,293],[496,294],[325,295],[324,2],[319,2],[472,296],[480,297],[352,298],[353,299],[431,300],[341,2],[454,301],[329,121],[346,302],[457,303],[342,2],[345,304],[343,2],[455,305],[452,306],[451,2],[453,2],[349,2],[427,307],[214,308],[327,309],[331,310],[347,311],[350,312],[339,313],[332,314],[479,315],[405,316],[323,317],[211,318],[478,319],[207,320],[398,321],[390,2],[399,322],[416,323],[388,2],[415,324],[87,2],[410,325],[235,2],[430,326],[406,2],[220,2],[222,2],[361,2],[414,327],[238,2],[262,328],[348,329],[268,330],[328,2],[413,2],[392,2],[418,331],[419,332],[360,2],[421,333],[423,334],[422,335],[372,2],[412,318],[425,336],[322,337],[411,338],[417,339],[247,2],[251,2],[250,2],[249,2],[254,2],[248,2],[257,2],[256,2],[253,2],[252,2],[255,2],[258,340],[246,2],[314,341],[313,2],[318,342],[315,343],[317,344],[320,342],[316,343],[227,345],[306,346],[475,347],[473,2],[502,348],[504,349],[468,350],[503,351],[215,352],[212,352],[245,2],[229,353],[228,354],[224,355],[225,356],[233,357],[261,357],[272,357],[308,358],[273,358],[217,359],[216,2],[312,360],[311,361],[310,362],[309,363],[218,364],[459,365],[260,366],[467,367],[432,368],[462,369],[466,370],[355,371],[354,372],[335,373],[321,374],[303,375],[305,376],[302,377],[424,378],[326,2],[490,2],[223,379],[426,380],[474,381],[333,2],[263,382],[340,383],[338,384],[265,385],[400,386],[469,2],[266,387],[401,387],[488,2],[487,2],[489,2],[471,2],[470,2],[403,388],[330,2],[300,389],[221,390],[279,2],[205,391],[267,2],[494,121],[204,2],[506,392],[287,121],[500,253],[286,393],[483,394],[284,392],[209,2],[508,395],[282,121],[283,121],[274,2],[203,2],[281,396],[280,397],[269,398],[344,185],[404,185],[420,2],[408,399],[407,2],[292,268],[213,2],[301,121],[477,280],[484,400],[82,121],[85,401],[86,402],[83,121],[84,2],[381,206],[376,403],[375,2],[374,404],[373,2],[482,405],[493,406],[495,407],[499,408],[545,409],[501,410],[505,411],[533,412],[509,412],[532,413],[511,414],[521,415],[522,416],[524,417],[528,418],[531,280],[530,2],[529,419],[589,2],[409,420],[541,2],[77,2],[78,2],[13,2],[14,2],[16,2],[15,2],[2,2],[17,2],[18,2],[19,2],[20,2],[21,2],[22,2],[23,2],[24,2],[3,2],[25,2],[26,2],[4,2],[27,2],[31,2],[28,2],[29,2],[30,2],[32,2],[33,2],[34,2],[5,2],[35,2],[36,2],[37,2],[38,2],[6,2],[42,2],[39,2],[40,2],[41,2],[43,2],[7,2],[44,2],[49,2],[50,2],[45,2],[46,2],[47,2],[48,2],[8,2],[54,2],[51,2],[52,2],[53,2],[55,2],[9,2],[56,2],[57,2],[58,2],[60,2],[59,2],[61,2],[62,2],[10,2],[63,2],[64,2],[65,2],[11,2],[66,2],[67,2],[68,2],[69,2],[70,2],[1,2],[71,2],[72,2],[12,2],[75,2],[74,2],[73,2],[76,2],[114,421],[126,422],[112,423],[127,424],[136,425],[103,426],[104,427],[102,428],[135,419],[130,429],[134,430],[106,431],[123,432],[105,433],[133,434],[100,435],[101,429],[107,436],[108,2],[113,437],[111,436],[98,438],[137,439],[128,440],[117,441],[116,436],[118,442],[121,443],[115,444],[119,445],[131,419],[109,446],[110,447],[122,448],[99,424],[125,449],[124,436],[120,450],[129,2],[97,2],[132,451]],"affectedFilesPendingEmit":[744,582,663,667,547,536,669,673,671,675,690,691,688,694,695,697,704,677,706,708,712,710,578,716,714,724,722,725,727,731,733,729,735,739,737,741,581,696,580,666,689,672,670,720,664,577,668,703,674,711,709,707,676,662,715,713,665,687,678,686,679,692,693,705,685,728,730,732,719,546,734,661,717,723,718,726,721,660,576,684,558,742,659,574,575,702,738,736,740,579,537,538,539,542],"version":"5.7.3"} \ No newline at end of file diff --git a/handicap_engine.py b/handicap_engine.py index 44a9088..b6236df 100644 --- a/handicap_engine.py +++ b/handicap_engine.py @@ -397,6 +397,23 @@ class RankedSplit: return round_half_up(total) +@dataclass(frozen=True) +class TeamAverage: + """Enkelt gjennomsnitt av ALLE lagmedlemmers course handicap, avrundet. + + Brukt for `scramble_solo` (scramble-lag mot enkeltspiller, variabel + lagstørrelse N>=2) -- bevisst UAVHENGIG av RankedSplit (scramble_2/ + scramble_4 sine faste 35/15-/25/20/15/10-tabeller), som forutsetter + FAST lagstørrelse og ikke er kildebelagt for vilkårlig N. Ingen + rangering/vekting her, rent snitt -- bekreftet med bruker 2026-08-05 + som en bevisst ny, enkel TeeCup-regel, ikke hentet fra HCP-kildene. + """ + def playing_handicap(self, course_handicaps: Sequence[float]) -> int: + if len(course_handicaps) < 2: + raise ValueError("TeamAverage forventer minst to spillere") + return round_half_up(sum(course_handicaps) / len(course_handicaps)) + + # --------------------------------------------------------------------------- # Format-register (STANDARDVERDIER — kan overstyres per turnering) # --------------------------------------------------------------------------- @@ -536,6 +553,19 @@ def stableford_total(pars: Sequence[int], gross_strokes: Sequence[int], strokes_ ) +# --------------------------------------------------------------------------- +# To-sidet netto-slagspill-sammenligning (scramble_solo): "laveste totalsum +# vinner", INGEN hull-for-hull-tilstand -- eksplisitt SØSKEN til, ikke del +# av, match-status-seksjonen under (som er for ekte match play). Hver sides +# nettosum beregnes med de allerede eksisterende allocate_strokes_by_index/ +# stroke_play_net_total over -- ingen ny funksjon trengs for selve summen. +# --------------------------------------------------------------------------- + +def net_stroke_play_margin(net_total_a: int, net_total_b: int) -> int: + """Positiv = A leder (A har LAVEST nettosum), negativ = B leder, 0 = delt.""" + return net_total_b - net_total_a + + # --------------------------------------------------------------------------- # Match-status ("2 UP", "dormie", "3&2", "AS") # --------------------------------------------------------------------------- diff --git a/teecup-beskrivelse.md b/teecup-beskrivelse.md new file mode 100644 index 0000000..c639ea5 --- /dev/null +++ b/teecup-beskrivelse.md @@ -0,0 +1,69 @@ +# TeeCup — hva det er, og hva det skal bli + +## Kort sagt + +TeeCup er en mobil-først app for golfturneringer og live-scoring — bygget +for golfklubber, bedrifter og vennegjenger som spiller sammen. Navnet +smelter sammen "Tee" (utslagsstedet, der hvert hull begynner) og "Cup" +(både hullet selv og pokalen konkurransen spilles om) — hele buen i en +konkurransedyktig runde, i ett ord. + +## Hvor det startet + +TeeCup begynte som en avlegger av teeoff.no (banedata/booking), bygget +rundt Ryder Cup-formatet: to lag, kapteiner, matchspill hull mot hull. +Det har siden vokst til en selvstendig, kommersiell produkt med egen +identitet (eget domene, teecup.golf, egen innlogging uavhengig av +teeoff) — solgt til klubber og bedrifter som kanskje aldri har hørt om +moderselskapet. + +## Hva det er i dag + +- **Ni turneringsformater** og voksende: fra vanlig slagspill og + Stableford, via klassiske to-mot-to-formater (Fourball, Foursome, + Greensome, Scramble), til mer eksotiske varianter som Chapman, + Bingo Bango Bongo, Flaggturnering, Shamble, Money Ball, High-low-high + — og nyeste tilskudd: et scramble-lag mot én enkeltspiller. +- **Ekte, live scoreføring** — spillere fører slag hull for hull fra + telefonen sin, ute på banen. Leaderboard oppdaterer seg i sanntid. +- **Ekte handicap-system** — full WHS-indeksberegning (Score + Differential, Net Double Bogey, capping), ikke en forenklet + tilnærming. +- **Turneringer over tid** — individuelle turneringer over flere + runder, og en sesong-sammenlagt rangering (Order of Merit) på tvers + av flere arrangementer. +- **Sosialt lag** — venner, delte runder, følg-live for tilskuere, + personlig spillerprofil og historikk. +- **Installerbar app (PWA)** — fungerer som en ekte app på telefonen, + med push-varsler. + +## Personlighet + +Varm og energisk — klubbhus-stemning, ikke countryklubb-snobberi. +Vennlig og tilgjengelig fremfor bedriftsaktig eller luksuriøs. Trygg og +tydelig, men lekent — bygget for folk som spiller golf med venner en +lørdag, ikke bare turneringsproffer. Appen er dessuten bevisst bygget +for å være lesbar og betjenbar for noen med noe redusert syn, uten +briller — stor skrift, god kontrast, store trykkflater. Det skal gjerne +gjenspeiles i hvor ryddig og lesbar en logo er, selv i liten størrelse. + +## Hva det skal bli + +TeeCup fortsetter å utvide hvor mange måter man kan spille turnering på +— flere formater legges til etter hvert som brukere ber om dem, inkl. +en matchspill-variant av det nyeste laget-mot-enkeltspiller-formatet +(denne er forresten bygget og live nå). Det skal etter hvert dekke enda +mer av det en golfklubb faktisk trenger for å drive turneringer — ikke +bare scoreføring, men hele reisen fra oppsett til sesongrangering. +Målet er å være det naturlige valget for klubber og bedrifter som vil +ha noe raskere og triveligere enn tunge, gamle turneringssystemer. + +## Praktisk for logoen + +- Farge-arven: frisk grønn (#8bc24a) og en varm oransje (#ff5722) er de + to kjernefargene i produktet i dag — nyttig referanse, ikke en + tvangstrøye for selve merket. +- Skal IKKE minne om eller gjenbruke teeoff.no sin logo — TeeCup er et + eget, selvstendig produkt. +- Må fungere som et lite app-ikon (hjemskjerm/favicon) like godt som en + ordmerke — les godt i miniatyr, ikke bare i stort format. diff --git a/test_handicap_engine.py b/test_handicap_engine.py index 9c61f9b..dff7ec5 100644 --- a/test_handicap_engine.py +++ b/test_handicap_engine.py @@ -19,6 +19,7 @@ from handicap_engine import ( CombinedPercentage, WeightedLowHigh, RankedSplit, + TeamAverage, DEFAULT_MATCHPLAY_ALLOWANCES, adjusted_gross_score, allocate_strokes_by_index, @@ -32,6 +33,7 @@ from handicap_engine import ( handicap_index_from_differentials, low_handicap_index, match_play_strokes, + net_stroke_play_margin, compute_skins, compute_skins_detail, copenhagen_points_for_hole, @@ -176,6 +178,39 @@ def test_scramble_2_ranked_split(): assert unit_playing_handicap(players, strat) == 5 +def test_team_average_two_players(): + # CH 6 og 18 -> (6+18)/2 = 12 + players = [Player("A", 18.0, 113, 72.0, 72), Player("B", 6.0, 113, 72.0, 72)] + assert unit_playing_handicap(players, TeamAverage()) == 12 + + +def test_team_average_three_players_rounds_half_up(): + # CH 8, 14, 20 -> (8+14+20)/3 = 14,0 -> 14 + players = [Player(f"P{i}", ch, 113, 72.0, 72) for i, ch in enumerate([8, 14, 20])] + assert unit_playing_handicap(players, TeamAverage()) == 14 + + +def test_team_average_five_players_rounds_up_at_half(): + # CH 5, 6, 7, 8, 9 -> sum 35 / 5 = 7,0 -> 7. Rekkefølge irrelevant. + players = [Player(f"P{i}", ch, 113, 72.0, 72) for i, ch in enumerate([9, 5, 8, 6, 7])] + assert unit_playing_handicap(players, TeamAverage()) == 7 + + +def test_team_average_rounding_half_up_boundary(): + # CH 4 og 5 -> 4,5 -> 5 (halvveis alltid opp, samme regel som round_half_up) + players = [Player("A", 4.0, 113, 72.0, 72), Player("B", 5.0, 113, 72.0, 72)] + assert unit_playing_handicap(players, TeamAverage()) == 5 + + +def test_team_average_rejects_single_player(): + try: + TeamAverage().playing_handicap([10.0]) + except ValueError: + pass + else: + raise AssertionError("TeamAverage skulle avvist én spiller") + + def test_allowance_is_configurable_not_hardcoded(): """ADR-005: motoren skal godta en overstyrt allowance (f.eks. 75 %/3/4).""" strat_75 = PerPlayerPercentage(0.75) @@ -319,6 +354,25 @@ def test_match_state_side_b_leads(): assert state.describe() == "1 UP (B)" +# --------------------------------------------------------------------------- +# Netto-slagspill-sammenligning mellom to sider (scramble_solo) -- SØSKEN +# til match-status over, ikke en del av den: ren totalsum-sammenligning, +# ingen hull-for-hull-tilstand. +# --------------------------------------------------------------------------- + +def test_net_stroke_play_margin_a_wins(): + # A har lavest nettosum -> A leder. + assert net_stroke_play_margin(net_total_a=68, net_total_b=72) == 4 + + +def test_net_stroke_play_margin_b_wins(): + assert net_stroke_play_margin(net_total_a=75, net_total_b=70) == -5 + + +def test_net_stroke_play_margin_tie(): + assert net_stroke_play_margin(net_total_a=71, net_total_b=71) == 0 + + # --------------------------------------------------------------------------- # HCP-indeksberegning fra spilte runder (ADR-033) #