From 9a99c489c38690361eeff9b2fc3f1a28f5ed8d5f Mon Sep 17 00:00:00 2001 From: SJCoetz Date: Tue, 7 Jul 2026 17:15:42 +0200 Subject: [PATCH] feat: add geographic grouping, refactor collection workflow - Add standardized item display helpers for consistent labeling across components - Rework PocketBase data fetching into scoped assigned/pool/problem item queries - Add proximity-based clustering and AreaGroup component for geographic list grouping - Sync map page tab state with main collections list using localStorage - Update all existing components to use new data and display patterns - Add custom map marker, tooltip, and cluster styling --- app/globals.css | 183 ++++++++ app/map/page.tsx | 97 ++++- app/page.tsx | 209 ++++++--- components/AreaGroup.tsx | 234 ++++++++++ components/CollectModal.tsx | 9 +- components/CollectionItemCard.tsx | 29 +- components/CollectionMap.tsx | 679 ++++++++++++++++++++++++------ lib/pocketbase.ts | 174 ++++++-- lib/types.ts | 59 ++- lib/utils.ts | 80 +++- tsconfig.tsbuildinfo | 2 +- 11 files changed, 1485 insertions(+), 270 deletions(-) create mode 100644 components/AreaGroup.tsx diff --git a/app/globals.css b/app/globals.css index d615ae3..b9a7efd 100644 --- a/app/globals.css +++ b/app/globals.css @@ -159,6 +159,189 @@ button, a, nav { font-family: inherit; } +/* Supplier item-name tooltip — Cursor-harmonized: warm cream surface + with a hairline border and tight radius matching the rest of the + app. Default Leaflet tooltip is white with a hard tip — wrong tone. */ +.supplier-tooltip { + background: #e6e5e0 !important; + color: #26251e !important; + border: 1px solid rgba(38, 37, 30, 0.1) !important; + border-radius: 6px !important; + font-family: system-ui, -apple-system, sans-serif !important; + padding: 4px 8px !important; + box-shadow: 0 4px 14px rgba(0,0,0,0.18) !important; + white-space: nowrap !important; + max-width: 240px !important; + overflow: hidden !important; + text-overflow: ellipsis !important; +} +.supplier-tooltip::before { + border-top-color: #e6e5e0 !important; +} + +/* ─────────────────────────────────────────────────────────────────── + Waypoint pill — the new unified marker shape. Leaflet wraps each + divIcon in a `.leaflet-marker-icon` container that ships with + `text-align: center` and a default white background. We override + so the pill: + • renders the actual pill (no default white box behind it) + • centers on the lat/lng (Leaflet applies the iconAnchor already) + • never gets selected or dragged-text by accident + • keeps its high z-index so it stacks above polylines + ─────────────────────────────────────────────────────────────── */ +.waypoint-div-icon { + background: transparent !important; + border: none !important; + user-select: none !important; + -webkit-user-select: none !important; +} +/* ────────────────────────────────────────────────────────────────── + Waypoint map marker — consistent circle for every stop. + Three reasons: + 1. At 10+ stops pill-shaped icons crowded and collided. A small + identical circle scales gracefully at every density. + 2. Driver reads shape — a denser region of dots = more pickups, + not "many different icon types to parse." + 3. Cluster count lives in a small corner badge so the silhouette + of "1 stop" vs "9 stops at same supplier" stays identical. + ─────────────────────────────────────────────────────────────── */ +.waypoint-div-icon { + background: transparent !important; + border: none !important; + user-select: none !important; + -webkit-user-select: none !important; +} +.waypoint-div-icon .waypoint-dot-wrap { + position: relative; + cursor: pointer; + display: block; + pointer-events: auto; +} +/* Soft halo: sits behind the dot, gives it a faint presence on the + map without competing with the dot's silhouette. */ +.waypoint-div-icon .waypoint-dot-shadow { + position: absolute; + top: 50%; + left: 50%; + width: 28px; + height: 28px; + margin: -14px 0 0 -14px; + border-radius: 50%; + background: rgba(245, 78, 0, 0.18); + filter: blur(2px); + transition: transform 150ms ease, opacity 150ms ease; +} +/* The dot itself — 26px circle, brand orange fill, cream ring for + contrast on light tiles, subtle dark ring for depth on darks. */ +.waypoint-div-icon .waypoint-dot { + position: absolute; + top: 50%; + left: 50%; + width: 26px; + height: 26px; + margin: -13px 0 0 -13px; + border-radius: 50%; + background: #f54e00; + border: 3px solid #f2f1ed; + box-shadow: + 0 0 0 1px rgba(38, 37, 30, 0.25), + 0 4px 10px rgba(38, 37, 30, 0.35); + transition: transform 150ms ease, box-shadow 150ms ease; +} +/* Cluster count badge — small pill in the top-right corner of the + hit area. Only ever shown on multi-point clusters; for singletons + we leave the slot empty so the silhouette stays minimal. */ +.waypoint-div-icon .waypoint-dot-badge { + position: absolute; + top: 0; + right: 0; + min-width: 18px; + height: 18px; + padding: 0 5px; + display: inline-flex; + align-items: center; + justify-content: center; + background: #26251e; + color: #f2f1ed; + font-family: ui-monospace, SFMono-Regular, Menlo, monospace; + font-size: 10px; + font-weight: 700; + letter-spacing: 0.02em; + border-radius: 9999px; + border: 2px solid #f2f1ed; + box-shadow: 0 1px 3px rgba(0, 0, 0, 0.3); + pointer-events: none; /* clicks pass through to the dot */ +} +/* Singleton name label — sits below the dot, only when there's exactly + one stop here. Hidden when a count badge is present so the dot's + footprint stays small in dense regions. */ +.waypoint-div-icon .waypoint-dot-name { + position: absolute; + top: calc(50% + 16px); + left: 50%; + transform: translateX(-50%); + max-width: 140px; + padding: 2px 6px; + background: rgba(38, 37, 30, 0.78); + color: #f2f1ed; + font-family: system-ui, -apple-system, "Segoe UI", Helvetica, Arial, sans-serif; + font-size: 10px; + font-weight: 600; + letter-spacing: -0.005em; + border-radius: 4px; + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; + text-align: center; + pointer-events: none; + opacity: 0; + transition: opacity 150ms ease; +} +.waypoint-div-icon:hover .waypoint-dot-name { + opacity: 1; +} +/* Hover state — dot scales up 1.15× and lifts, badge pops slightly. */ +.waypoint-div-icon:hover .waypoint-dot, +.waypoint-div-icon:focus-visible .waypoint-dot { + transform: scale(1.15); + box-shadow: + 0 0 0 1px rgba(38, 37, 30, 0.3), + 0 7px 16px rgba(245, 78, 0, 0.4), + 0 4px 8px rgba(38, 37, 30, 0.3); +} +.waypoint-div-icon:hover .waypoint-dot-shadow { + transform: scale(1.4); + opacity: 0.6; +} +/* Keyboard focus: the hit box is the only focusable surface. */ +.waypoint-div-icon:focus-visible { + outline: none; +} +.waypoint-div-icon:focus-visible .waypoint-dot { + box-shadow: + 0 0 0 3px rgba(245, 78, 0, 0.4), + 0 0 0 1px rgba(38, 37, 30, 0.3), + 0 4px 10px rgba(38, 37, 30, 0.35); +} +/* Active press: dot squashes slightly to confirm the click. */ +.waypoint-div-icon:active .waypoint-dot { + transform: scale(0.95); +} +/* Respect prefers-reduced-motion: drop the easing and transforms + so users sensitive to motion still see the waypoints clearly. */ +@media (prefers-reduced-motion: reduce) { + .waypoint-div-icon .waypoint-dot, + .waypoint-div-icon .waypoint-dot-shadow, + .waypoint-div-icon .waypoint-dot-name { + transition: none !important; + } + .waypoint-div-icon:hover .waypoint-dot, + .waypoint-div-icon:focus-visible .waypoint-dot, + .waypoint-div-icon:hover .waypoint-dot-shadow { + transform: none !important; + } +} + /* ======================================== Animations ======================================== */ diff --git a/app/map/page.tsx b/app/map/page.tsx index 2423dd1..cf9653e 100644 --- a/app/map/page.tsx +++ b/app/map/page.tsx @@ -7,9 +7,15 @@ import { OrderItem } from '@/lib/types'; import { useAuth } from '@/components/AuthProvider'; import BottomNav from '@/components/BottomNav'; import LocationTracker from '@/components/LocationTracker'; -import { getAssignedCollections, isAuthenticated } from '@/lib/pocketbase'; +import { getMyAssignedItems, getPoolItems, getProblemItems, isAuthenticated } from '@/lib/pocketbase'; import { cn } from '@/lib/utils'; -import { RefreshCw, MapPin, AlertCircle } from 'lucide-react'; +import { RefreshCw, MapPin, AlertCircle, Package, Inbox, AlertTriangle } from 'lucide-react'; + +// Sync the map's dataset with the list page's selected tab via +// localStorage so a driver who flips to "Pool" on the list and then +// taps Map sees the same pool stops, not just their assigned list. +const MAP_TAB_KEY = '1driver_map_tab'; +type MapTab = 'assigned' | 'collection_pool' | 'problem'; const CollectionMap = dynamic(() => import('@/components/CollectionMap'), { ssr: false, @@ -56,6 +62,16 @@ export default function MapPage() { const [isLoading, setIsLoading] = useState(true); const [isRefreshing, setIsRefreshing] = useState(false); const [error, setError] = useState(''); + const [tab, setTab] = useState('assigned'); + + useEffect(() => { + if (typeof window !== 'undefined') { + const saved = window.localStorage.getItem(MAP_TAB_KEY); + if (saved === 'assigned' || saved === 'collection_pool' || saved === 'problem') { + setTab(saved); + } + } + }, []); useEffect(() => { if (!authLoading && !isLoggedIn) router.push('/login/'); @@ -66,7 +82,10 @@ export default function MapPage() { if (showLoading) setIsLoading(true); setError(''); try { - const data = await getAssignedCollections(); + let data: OrderItem[] = []; + if (tab === 'assigned') data = await getMyAssignedItems(); + else if (tab === 'collection_pool') data = await getPoolItems(); + else data = await getProblemItems(); setItems(data); } catch (err) { console.error('Failed to load collections:', err); @@ -75,9 +94,16 @@ export default function MapPage() { setIsLoading(false); setIsRefreshing(false); } - }, []); + }, [tab]); - useEffect(() => { loadItems(); }, [loadItems]); + useEffect(() => { + if (typeof window !== 'undefined') window.localStorage.setItem(MAP_TAB_KEY, tab); + loadItems(); + }, [tab, loadItems]); + + const handleTabChange = (next: MapTab) => { + setTab(next); + }; const handleNavigate = (lat: number, lng: number, name: string) => { const isIOS = /iPad|iPhone|iPod/.test(navigator.userAgent); @@ -105,24 +131,53 @@ export default function MapPage() {
-
-
-
- -
-
-

Map

-

{items.length} stop{items.length !== 1 ? 's' : ''}

+
+
+
+
+ +
+
+

Map

+

{items.length} stop{items.length !== 1 ? 's' : ''} on map

+
+ +
+ + {/* Tab switcher — same semantics as the list page so the map + shows whatever scope the driver is currently working on. */} +
+ {([ + { key: 'assigned', label: 'My stops', Icon: Package }, + { key: 'collection_pool', label: 'Pool', Icon: Inbox }, + { key: 'problem', label: 'Problems', Icon: AlertTriangle }, + ] as const).map(({ key, label, Icon }) => { + const active = tab === key; + return ( + + ); + })}
-
diff --git a/app/page.tsx b/app/page.tsx index 4b02085..e2ed47d 100644 --- a/app/page.tsx +++ b/app/page.tsx @@ -8,16 +8,19 @@ import BottomNav from '@/components/BottomNav'; import LocationTracker from '@/components/LocationTracker'; import CollectionItemCard from '@/components/CollectionItemCard'; import SupplierGroup from '@/components/SupplierGroup'; +import AreaGroup from '@/components/AreaGroup'; import CollectModal from '@/components/CollectModal'; import ProblemModal from '@/components/ProblemModal'; import { - getAssignedCollections, + getMyAssignedItems, + getPoolItems, + getProblemItems, updateCollectionStatus, reportProblem, isAuthenticated, logout, } from '@/lib/pocketbase'; -import { cn } from '@/lib/utils'; +import { cn, clusterByProximity } from '@/lib/utils'; import { RefreshCw, LogOut, @@ -27,8 +30,7 @@ import { Search, X, Package, - LayoutList, - Columns, + Layers, } from 'lucide-react'; // Cursor-harmonized supplier color palette: same warm cream surface @@ -43,7 +45,7 @@ const SUPPLIER_COLORS = [ { dot: 'bg-[#8a5a02]', light: 'bg-[#fcf3d8]', text: 'text-[#8a5a02]', ring: 'ring-[#d49103]/30' }, // amber { dot: 'bg-[#26251e]', light: 'bg-[#ebeae5]', text: 'text-[#26251e]', ring: 'ring-[#26251e]/30' }, // ink { dot: 'bg-[#6b6760]', light: 'bg-[#ebeae5]', text: 'text-[#4a4742]', ring: 'ring-[#6b6760]/30' }, // warm gray - { dot: 'bg-[#18714f]', light: 'bg-[#e6f1ec]', text: 'text-[#125a3e]', ring: 'ring-[#18714f]/30' }, // teal-ish + { dot: 'bg-[#0d9488]', light: 'bg-[#e6f5f3]', text: 'text-[#0a7a70]', ring: 'ring-[#0d9488]/30' }, // teal { dot: 'bg-[#8a1b3a]', light: 'bg-[#fbeaef]', text: 'text-[#8a1b3a]', ring: 'ring-[#cf2d56]/30' }, // crimson { dot: 'bg-[#4a3d6b]', light: 'bg-[#ece8f3]', text: 'text-[#4a3d6b]', ring: 'ring-[#6c5a99]/30' }, // indigo ]; @@ -62,29 +64,46 @@ export default function CollectionsPage() { const [showProblemModal, setShowProblemModal] = useState(false); const [toast, setToast] = useState<{ message: string; type: 'success' | 'error' | 'warning' } | null>(null); const [viewMode, setViewMode] = useState<'compact' | 'detailed'>('compact'); - const [statusFilter, setStatusFilter] = useState<'all' | 'assigned' | 'driver_pool' | 'problem'>('all'); + const [groupMode, setGroupMode] = useState<'supplier' | 'area'>('supplier'); + const [statusFilter, setStatusFilter] = useState<'assigned' | 'collection_pool' | 'problem'>('assigned'); // Track which supplier groups are expanded const [expandedSuppliers, setExpandedSuppliers] = useState>(new Set()); + const [expandedAreas, setExpandedAreas] = useState>(new Set()); useEffect(() => { if (!authLoading && !isLoggedIn) router.push('/login/'); }, [isLoggedIn, authLoading, router]); + // Each tab maps to a different PocketBase fetch — pool and problems + // are SYSTEM-WIDE (any driver can see them), assigned is the current + // driver's personal list only. This is the contract the brief asked + // for: "pool must show all items in collection_pool, same with + // problems; default when you open the app should be assigned". const loadItems = useCallback(async (showLoading = true) => { if (!isAuthenticated()) return; if (showLoading) setIsLoading(true); setError(''); try { - const data = await getAssignedCollections(); + let data: OrderItem[] = []; + if (statusFilter === 'assigned') { + data = await getMyAssignedItems(); + } else if (statusFilter === 'collection_pool') { + data = await getPoolItems(); + } else if (statusFilter === 'problem') { + data = await getProblemItems(); + } setItems(data); setFilteredItems(data); - // Auto-expand all suppliers on fresh load - const allIds = new Set(); + const allSupplierIds = new Set(); data.forEach(i => { - if (i.expand?.supplier?.id) allIds.add(i.expand.supplier.id); + if (i.expand?.supplier?.id) allSupplierIds.add(i.expand.supplier.id); }); - setExpandedSuppliers(allIds); + setExpandedSuppliers(allSupplierIds); + const allAreaIds = new Set(); + const clusters = clusterByProximity(data, 2); + clusters.forEach(c => allAreaIds.add(c.id)); + setExpandedAreas(allAreaIds); } catch (err) { console.error('Failed to load collections:', err); setError('Failed to load collections. Pull down to retry.'); @@ -92,15 +111,12 @@ export default function CollectionsPage() { setIsLoading(false); setIsRefreshing(false); } - }, []); + }, [statusFilter]); useEffect(() => { loadItems(); }, [loadItems]); useEffect(() => { let filtered = items; - if (statusFilter !== 'all') { - filtered = filtered.filter((i) => i.item_status === statusFilter || (statusFilter === 'problem' && i.problem_flag)); - } if (searchQuery) { const query = searchQuery.toLowerCase(); filtered = filtered.filter((i) => { @@ -119,13 +135,24 @@ export default function CollectionsPage() { // Counts for the status chip strip — derived from the unfiltered // list so chips stay stable as the user types in the search field. + // Each tab pulls from a different PB query (driver-scoped vs system-wide), + // so these counts aren't comparable across tabs; they each represent + // the size of the most recent fetch for THAT tab. const statusCounts = useMemo(() => ({ - all: items.length, assigned: items.filter((i) => i.item_status === 'assigned').length, - driver_pool: items.filter((i) => i.item_status === 'driver_pool').length, + collection_pool: items.filter((i) => i.item_status === 'collection_pool').length, problem: items.filter((i) => i.problem_flag).length, }), [items]); + // Mirror the currently selected tab to localStorage so the Map page + // can pick it up on its next visit and show the same dataset the + // driver was last working with. + useEffect(() => { + if (typeof window !== 'undefined') { + window.localStorage.setItem('1driver_map_tab', statusFilter); + } + }, [statusFilter]); + const handleRefresh = async () => { setIsRefreshing(true); await loadItems(false); @@ -179,12 +206,27 @@ export default function CollectionsPage() { }); }; - const expandAll = () => { - const allIds = new Set(); - filteredItems.forEach(i => { - if (i.expand?.supplier?.id) allIds.add(i.expand.supplier.id); + const toggleArea = (clusterId: string) => { + setExpandedAreas(prev => { + const next = new Set(prev); + if (next.has(clusterId)) next.delete(clusterId); + else next.add(clusterId); + return next; }); - setExpandedSuppliers(allIds); + }; + + const expandAll = () => { + if (groupMode === 'supplier') { + const allIds = new Set(); + filteredItems.forEach(i => { + if (i.expand?.supplier?.id) allIds.add(i.expand.supplier.id); + }); + setExpandedSuppliers(allIds); + } else { + const allIds = new Set(); + areaClusters.forEach(c => allIds.add(c.id)); + setExpandedAreas(allIds); + } }; const collapseAll = () => setExpandedSuppliers(new Set()); @@ -204,6 +246,11 @@ export default function CollectionsPage() { ); }, [filteredItems]); + // Group by geographic proximity — items within 2km share a cluster color + const areaClusters = useMemo(() => { + return clusterByProximity(filteredItems, 2); + }, [filteredItems]); + if (authLoading) { return (
@@ -297,11 +344,43 @@ export default function CollectionsPage() {
{/* View toggle */} -
+
+ {/* Group mode toggle */} +
+ + +
+ + {/* View density toggle */} +
+
{/* Status filter chips — show counts of each state so drivers can see at a glance what's pending vs flagged. */} @@ -333,9 +413,8 @@ export default function CollectionsPage() { aria-label="Filter by status" > {([ - { key: 'all', label: 'All' }, { key: 'assigned', label: 'Assigned' }, - { key: 'driver_pool', label: 'Pool' }, + { key: 'collection_pool', label: 'Pool' }, { key: 'problem', label: 'Problems' }, ] as const).map(({ key, label }) => { const count = statusCounts[key]; @@ -397,43 +476,69 @@ export default function CollectionsPage() { Try Again - ) : groupedArray.length === 0 ? ( + ) : filteredItems.length === 0 ? (

- {searchQuery || statusFilter !== 'all' ? 'Nothing matches' : 'All caught up'} + {searchQuery ? 'Nothing matches' : 'All caught up'}

{searchQuery ? 'No collections match your search.' - : statusFilter !== 'all' - ? `No ${statusFilter.replace('_', ' ')} items in your list.` - : 'No assigned collections right now. New pickups will appear here.'} + : statusFilter === 'assigned' + ? 'No assigned collections right now. New pickups will appear here.' + : statusFilter === 'collection_pool' + ? 'Collection pool is empty — nothing to claim right now.' + : 'No problems reported. Nice work.'}

) : (
- {groupedArray.map(({ supplier, items: supplierItems }, groupIdx) => { - const color = SUPPLIER_COLORS[groupIdx % SUPPLIER_COLORS.length]; - const isExpanded = expandedSuppliers.has(supplier!.id); + {groupMode === 'supplier' ? ( + groupedArray.map(({ supplier, items: supplierItems }, groupIdx) => { + const color = SUPPLIER_COLORS[groupIdx % SUPPLIER_COLORS.length]; + const isExpanded = expandedSuppliers.has(supplier!.id); - return ( - toggleSupplier(supplier!.id)} - onCollect={(item) => { setSelectedItem(item); setShowCollectModal(true); }} - onProblem={(item) => { setSelectedItem(item); setShowProblemModal(true); }} - onNavigate={handleNavigate} - /> - ); - })} + return ( + toggleSupplier(supplier!.id)} + onCollect={(item) => { setSelectedItem(item); setShowCollectModal(true); }} + onProblem={(item) => { setSelectedItem(item); setShowProblemModal(true); }} + onNavigate={handleNavigate} + /> + ); + }) + ) : ( + areaClusters.map((cluster, clusterIdx) => { + const color = SUPPLIER_COLORS[clusterIdx % SUPPLIER_COLORS.length]; + const isExpanded = expandedAreas.has(cluster.id); + + return ( + toggleArea(cluster.id)} + onCollect={(item) => { setSelectedItem(item); setShowCollectModal(true); }} + onProblem={(item) => { setSelectedItem(item); setShowProblemModal(true); }} + onNavigate={handleNavigate} + /> + ); + }) + )}
)} diff --git a/components/AreaGroup.tsx b/components/AreaGroup.tsx new file mode 100644 index 0000000..4a7cb84 --- /dev/null +++ b/components/AreaGroup.tsx @@ -0,0 +1,234 @@ +'use client'; + +import { OrderItem } from '@/lib/types'; +import { cn } from '@/lib/utils'; +import CollectionItemCard from '@/components/CollectionItemCard'; +import { + ChevronDown, + ChevronUp, + MapPin, + Navigation, + Package, + ShoppingCart, + Hammer, + Wrench, + AlertTriangle, + Layers, +} from 'lucide-react'; + +interface AreaColor { + dot: string; + light: string; + text: string; + ring: string; +} + +interface AreaGroupProps { + clusterId: string; + label: string; + items: OrderItem[]; + center: { latitude: number; longitude: number }; + color: AreaColor; + isExpanded: boolean; + viewMode: 'compact' | 'detailed'; + onToggle: () => void; + onCollect: (item: OrderItem) => void; + onProblem: (item: OrderItem) => void; + onNavigate: (lat: number, lng: number, name: string) => void; +} + +function getItemIcon(item: OrderItem) { + if (item.problem_flag) return ; + const orderNumber = item.expand?.order?.order_number || ''; + if (orderNumber.toLowerCase().includes('breakdown')) return ; + if (orderNumber.toLowerCase().includes('repair')) return ; + if (item.is_stock_item) return ; + return ; +} + +export default function AreaGroup({ + clusterId, + label, + items, + center, + color, + isExpanded, + viewMode, + onToggle, + onCollect, + onProblem, + onNavigate, +}: AreaGroupProps) { + const totalQty = items.reduce((sum, i) => sum + (i.order_qty || i.quantity || 0), 0); + + const uniqueSuppliers = Array.from( + new Set( + items + .map(i => i.expand?.supplier?.suppliername) + .filter((n): n is string => !!n) + ) + ); + + const hasCoords = center.latitude !== 0 && center.longitude !== 0; + + return ( +
+ + + {isExpanded && ( +
+ {viewMode === 'compact' ? ( +
    + {items.map((item) => { + const expectedQty = item.order_qty || item.quantity || 0; + return ( +
  • +
    + {getItemIcon(item)} +
    + + {item.description || 'Unknown item'} + + {item.expand?.supplier?.suppliername && ( + + {item.expand.supplier.suppliername} + + )} +
    + {item.problem_flag && ( + + Problem + + )} +
    +
    + {expectedQty}× +
    + + +
    +
    +
  • + ); + })} +
+ ) : ( +
+ {items.map((item) => ( + + ))} +
+ )} + + {hasCoords && ( +
+ +
+ )} +
+ )} +
+ ); +} diff --git a/components/CollectModal.tsx b/components/CollectModal.tsx index 39c669f..836c0b4 100644 --- a/components/CollectModal.tsx +++ b/components/CollectModal.tsx @@ -3,6 +3,7 @@ import { useState } from 'react'; import { OrderItem } from '@/lib/types'; import { cn, formatCurrency } from '@/lib/utils'; +import { getItemDisplayDescription, getItemDisplayQty } from '@/lib/pocketbase'; import { X, Minus, Plus, Check } from 'lucide-react'; interface CollectModalProps { @@ -24,10 +25,11 @@ export default function CollectModal({ if (!isOpen || !item) return null; - const expectedQty = item.order_qty || item.quantity || 0; + const expectedQty = getItemDisplayQty(item); const parsedQty = parseFloat(receivedQty) || 0; const isPartial = parsedQty > 0 && parsedQty < expectedQty; const isOverQty = parsedQty > expectedQty; + const displayDescription = getItemDisplayDescription(item); const handleSubmit = (e: React.FormEvent) => { e.preventDefault(); @@ -88,7 +90,10 @@ export default function CollectModal({
{/* Item info */}
-

{item.description}

+

{displayDescription}

+ {item.sku && ( +

#{item.sku}

+ )}
{item.expand?.supplier?.suppliername || 'Unknown'} diff --git a/components/CollectionItemCard.tsx b/components/CollectionItemCard.tsx index 7cb5d12..f5b3df8 100644 --- a/components/CollectionItemCard.tsx +++ b/components/CollectionItemCard.tsx @@ -3,6 +3,7 @@ import { useState } from 'react'; import { OrderItem } from '@/lib/types'; import { cn, formatDate, formatCurrency, parseCoordinates } from '@/lib/utils'; +import { getItemDisplayDescription, getItemDisplayQty } from '@/lib/pocketbase'; import { Check, AlertTriangle, @@ -99,8 +100,11 @@ export default function CollectionItemCard({ const itemType = getItemType(item); const coords = parseCoordinates(supplier?.coordinates); const hasCoords = coords !== null; - const description = item.description || 'Unknown item'; - const expectedQty = item.order_qty || item.quantity || 0; + // Per the project brief: prefer the supplier-facing description on the + // pickup screen; fall back to the customer-facing description. + const description = getItemDisplayDescription(item); + // Per the brief: prefer order_qty; falls back to quantity. + const expectedQty = getItemDisplayQty(item); return (
+ {/* If the customer-facing description differs from the + supplier-facing one we just rendered, surface the + customer one as a smaller sub-line so the driver can + spot a discrepancy on pickup. */} + {item.description && item.po_description && item.description.trim() !== item.po_description.trim() && ( +

+ customer line: {item.description} +

+ )} +
Qty: {expectedQty} - {item.collection_date && ( - -
diff --git a/components/CollectionMap.tsx b/components/CollectionMap.tsx index 6eed992..8e548b8 100644 --- a/components/CollectionMap.tsx +++ b/components/CollectionMap.tsx @@ -1,32 +1,103 @@ 'use client'; import { useEffect, useMemo, useState, useCallback, useRef } from 'react'; -import { MapContainer, TileLayer, Marker, Popup, Polyline, useMap } from 'react-leaflet'; +import { MapContainer, TileLayer, Marker, Popup, Polyline, useMap, useMapEvents } from 'react-leaflet'; import { OrderItem, Supplier } from '@/lib/types'; -import { formatCurrency, calculateDistance, parseCoordinates } from '@/lib/utils'; -import { getDriverTrail, isAuthenticated, getCurrentUser } from '@/lib/pocketbase'; -import { Navigation, AlertTriangle, Route, Crosshair } from 'lucide-react'; +import { formatCurrency, calculateDistance, parseCoordinates, clusterByProximity } from '@/lib/utils'; +import { getItemDisplayDescription, getItemDisplayQty, getDriverTrail, isAuthenticated, getCurrentUser } from '@/lib/pocketbase'; +import { Navigation, AlertTriangle, Route, Crosshair, Package } from 'lucide-react'; import L from 'leaflet'; -const defaultIcon = L.icon({ - iconUrl: 'https://cdnjs.cloudflare.com/ajax/libs/leaflet/1.7.1/images/marker-icon.png', - iconRetinaUrl: 'https://cdnjs.cloudflare.com/ajax/libs/leaflet/1.7.1/images/marker-icon-2x.png', - shadowUrl: 'https://cdnjs.cloudflare.com/ajax/libs/leaflet/1.7.1/images/marker-shadow.png', - iconSize: [25, 41], - iconAnchor: [12, 41], - popupAnchor: [1, -34], - shadowSize: [41, 41], -}); +const AREA_COLORS = [ + '#f54e00', // orange + '#18714f', // emerald + '#6c5a99', // violet + '#cf2d56', // rose + '#8a5a02', // amber + '#26251e', // ink + '#2563eb', // blue + '#0d9488', // teal + '#7c3aed', // purple + '#dc2626', // red +]; +// ──────────────────────────────────────────────────────────────────── +// ONE shape for every waypoint. Every stop — singleton or cluster — +// uses the same 26px orange dot so the map reads as one product surface, +// not "Leaflet default + my clusters glued on top". +// +// Why a circle, not a pill: +// • At 10+ stops the pill stage was crowded — names overlapped and +// the silhouette grew with text length, so dense regions became +// unreadable. +// • A consistent dot keeps the map balanced at every zoom: silhouette +// is identical for 1 stop or 99, so the driver reads shape density +// (= how clustered) instead of having to re-parse variable icons. +// • Count moves to a corner badge that appears only when ≥ 2 stops +// share the pin — the dot itself never lies about "this is a stop". +// +// Where the name lives: +// • On the dot itself — only when there's exactly 1 stop here +// (the badge slot is available, and the name fits without crowding). +// Multi-point dots stay pure geometry; the popup names them. +// • On hover — a tooltip shows the supplier name + count. +// • On click — the popup lists every item at this pin. +// ──────────────────────────────────────────────────────────────────── +const DOT_PX = 26; // fixed across every waypoint — silent unity + +const buildWaypointIcon = (count: number, supplierName: string, areaColor?: string): L.DivIcon => { + const isMulti = count >= 2; + const nameForSingles = (!isMulti && supplierName) ? supplierName : ''; + const dotColor = areaColor || '#f54e00'; + + const dotHtml = ` +
+
+ ${nameForSingles + ? `
${escapeHtml(nameForSingles)}
` + : ''} + ${isMulti + ? `
${count > 99 ? '99+' : count}
` + : ''} + `; + + // iconSize is the hit-box around the visual. We give it a slightly + // larger square than the dot so the hit area is generous, the badge + // sits inside it, and stacks of identical dots near each other don't + // fight for clicks. + const hit = DOT_PX + 8; + return L.divIcon({ + className: 'waypoint-div-icon', + html: `
${dotHtml}
`, + iconSize: [hit, hit], + iconAnchor: [hit / 2, hit / 2], + popupAnchor: [0, -(hit / 2) - 4], + }); +}; + +// Escape supplier names for safe HTML interpolation inside divIcon.html. +// (Leaflet renders this html via document.write-ish paths that can +// break if a supplier name contains `<` or `&` — unlikely but cheap.) +function escapeHtml(s: string): string { + return String(s) + .replace(/&/g, '&') + .replace(//g, '>') + .replace(/"/g, '"') + .replace(/'/g, '''); +} + +// Current-location marker (you) — distinct shape so it's never confused +// with a stop. Solid white-bordered dot + slow outer pulse. const currentLocationIcon = L.divIcon({ className: 'custom-div-icon', html: `
-
-
+
+
`, - iconSize: [22, 22], - iconAnchor: [11, 11], + iconSize: [18, 18], + iconAnchor: [9, 9], }); interface MapViewProps { @@ -34,20 +105,83 @@ interface MapViewProps { onNavigate: (lat: number, lng: number, name: string) => void; } -function MapBounds({ items }: { items: OrderItem[] }) { +// One stop = one item's supplier coordinates. Multiple items at the same +// supplier count as multiple stops at that pin. +interface ResolvedPoint { + item: OrderItem; + supplier: Supplier; + coords: { latitude: number; longitude: number }; +} + +// Resolve items to lat/lng; skip rows without a usable supplier location. +function resolvePoints(items: OrderItem[]): ResolvedPoint[] { + const out: ResolvedPoint[] = []; + for (const item of items) { + const supplier = item.expand?.supplier; + if (!supplier) continue; + const coords = parseCoordinates(supplier.coordinates); + if (!coords) continue; + out.push({ item, supplier, coords }); + } + return out; +} + +// Cluster radius (in pixels) — points within this pixel distance get merged. +const CLUSTER_PX = 60; + +interface Cluster { + points: ResolvedPoint[]; + center: [number, number]; // average lat/lng of member points + bounds: L.LatLngBounds; +} + +function clusterPoints( + points: ResolvedPoint[], + map: L.Map +): Cluster[] { + if (points.length === 0) return []; + const projected: Array<{ p: ResolvedPoint; px: [number, number] }> = []; + for (const p of points) { + const latLng = L.latLng(p.coords.latitude, p.coords.longitude); + const px = map.latLngToContainerPoint(latLng); + projected.push({ p, px: [px.x, px.y] }); + } + + // Grid cluster: snap each point to a grid cell of size CLUSTER_PX. + // Two points sharing the same cell belong to the same cluster. + const cellSize = CLUSTER_PX; + const cellMap = new Map(); + for (const { p, px } of projected) { + const cx = Math.floor(px[0] / cellSize); + const cy = Math.floor(px[1] / cellSize); + const key = `${cx}:${cy}`; + if (!cellMap.has(key)) cellMap.set(key, []); + cellMap.get(key)!.push(p); + } + + const clusters: Cluster[] = []; + for (const pts of Array.from(cellMap.values())) { + const lats = pts.map((p: ResolvedPoint) => p.coords.latitude); + const lngs = pts.map((p: ResolvedPoint) => p.coords.longitude); + const centerLat = lats.reduce((a: number, b: number) => a + b, 0) / lats.length; + const centerLng = lngs.reduce((a: number, b: number) => a + b, 0) / lngs.length; + const bounds = L.latLngBounds(pts.map((p: ResolvedPoint) => [p.coords.latitude, p.coords.longitude])); + clusters.push({ + points: pts, + center: [centerLat, centerLng], + bounds, + }); + } + return clusters; +} + +function MapBounds({ points }: { points: ResolvedPoint[] }) { const map = useMap(); useEffect(() => { - const validPoints = items - .map((i) => { - const coords = parseCoordinates(i.expand?.supplier?.coordinates); - return coords ? [coords.latitude, coords.longitude] as [number, number] : null; - }) - .filter((point): point is [number, number] => point !== null); - if (validPoints.length > 0) { - const bounds = L.latLngBounds(validPoints); - map.fitBounds(bounds, { padding: [60, 60], maxZoom: 15 }); - } - }, [map, items]); + if (points.length === 0) return; + const bounds = L.latLngBounds(points.map((p) => [p.coords.latitude, p.coords.longitude])); + map.fitBounds(bounds, { padding: [60, 60], maxZoom: 15 }); + }, [map, points]); return null; } @@ -55,9 +189,10 @@ function RecenterButton({ center }: { center: [number, number] }) { const map = useMap(); return ( + )} +
+ ); +} + +// Internal helper: re-cluster whenever the map moves or zooms. + +function ClusterPopupBody({ + cluster, + userLocation, + onNavigate, +}: { + cluster: Cluster; + userLocation: [number, number] | null; + onNavigate: (lat: number, lng: number, name: string) => void; +}) { + const supplier = cluster.points[0].supplier; + const distance = userLocation + ? calculateDistance(userLocation[0], userLocation[1], cluster.center[0], cluster.center[1]) + : null; + + return ( +
+

{supplier.suppliername}

+ {supplier.supplieraddress && ( +

{supplier.supplieraddress}

+ )} +
+ + + {distance && ( + + {distance < 1 ? `${Math.round(distance * 1000)}m` : `${distance.toFixed(1)} km`} away + + )} +
+
+ {cluster.points.map((p) => ( +
+
+ {p.item.problem_flag && } + {getItemDisplayDescription(p.item)} + {p.item.sku && ( + #{p.item.sku} + )} +
+ + Qty: {getItemDisplayQty(p.item)} + {p.item.order_qty && p.item.quantity && p.item.order_qty !== p.item.quantity && ( + + (cust: {p.item.quantity}) + + )} + +
+ ))} +
+ +
+ ); +} + +// A single cluster marker. Click on a multi-point cluster zooms into +// its bounds so the individual pins fan out; a single-point marker +// shows the popup normally. All clusters — count 1 or 99 — render the +// same `buildWaypointIcon` shape, so the map never mixes marker styles. +// +// Cluster zoom-in: we fitBounds with maxZoom 17 (street-level), then +// panBy(-y) so the cluster settles slightly above the FAB stack +// instead of behind it. Without the pan, the driver has to drag the +// map before they can read the popup. +function ClusterMarker({ + cluster, + onNavigate, + userLocation, + areaColor, +}: { + cluster: Cluster; + userLocation: [number, number] | null; + onNavigate: (lat: number, lng: number, name: string) => void; + areaColor?: string; +}) { + const map = useMap(); + const count = cluster.points.length; + // Use the SUPPLIER name as the cluster's primary label. Every point + // in this cluster shares a supplier (and in this dataset sometimes + // shares coords), so this is the right identity — not an item SKU. + const supplierName = + cluster.points[0].supplier.suppliername || 'Unknown supplier'; + + const handleClick = () => { + if (count === 1) { + // Singleton: just open the popup at the current zoom — moving the + // map on every single pin is disorienting when there are several + // singletons visible. The popup itself is the action. + const m = cluster.points[0]; + map.panTo([m.coords.latitude, m.coords.longitude], { animate: true }); + } else { + // Multi-point: fitBounds and zoom in DEEP. maxZoom 17 is full + // street detail; we then nudge the map down so the cluster + // appears just below the FAB controls instead of behind them. + map.fitBounds(cluster.bounds, { + padding: [40, 40], + maxZoom: 17, + animate: true, + }); + // After fitBounds, shift the visible center down a touch so the + // pill badge isn't occluded by the top-right control stack. + // setTimeout because fitBounds updates the view synchronously but + // the panBy needs the new container size + zoom to be applied. + setTimeout(() => { + const size = map.getSize(); + if (size.y > 0) { + map.panBy([0, -Math.round(size.y * 0.12)], { animate: true }); + } + }, 60); + } + }; + + return ( + + + + + + ); +} + export default function CollectionMap({ items, onNavigate }: MapViewProps) { const [userLocation, setUserLocation] = useState<[number, number] | null>(null); const [trail, setTrail] = useState<[number, number][]>([]); const [showTrail, setShowTrail] = useState(true); const intervalRef = useRef | null>(null); + const points = useMemo(() => resolvePoints(items), [items]); + + // Proximity-based area coloring — items within 2km share a color + const areaColorMap = useMemo(() => { + const clusters = clusterByProximity(items, 2); + const map = new Map(); + clusters.forEach((cluster, idx) => { + cluster.items.forEach(item => { + map.set(item.id, idx % AREA_COLORS.length); + }); + }); + return map; + }, [items]); + const [clusters, setClusters] = useState([]); + const mapReadyRef = useRef(false); + // Get current position useEffect(() => { if ('geolocation' in navigator) { @@ -88,11 +439,11 @@ export default function CollectionMap({ items, onNavigate }: MapViewProps) { const user = getCurrentUser(); if (!user) return; const data = await getDriverTrail(user.id); - const points = data + const pts = data .filter((loc) => loc.latitude && loc.longitude) .map((loc) => [loc.latitude, loc.longitude] as [number, number]); - if (points.length > 0) { - setTrail(points); + if (pts.length > 0) { + setTrail(pts); } }, []); @@ -104,23 +455,6 @@ export default function CollectionMap({ items, onNavigate }: MapViewProps) { }; }, [fetchTrail]); - // Group by supplier - const suppliers = useMemo(() => { - const map = new Map(); - items.forEach((item) => { - if (!item.expand?.supplier) return; - const supplier = item.expand.supplier; - const coords = parseCoordinates(supplier.coordinates); - if (!coords) return; - const key = supplier.id; - if (!map.has(key)) { - map.set(key, { supplier, items: [], coords }); - } - map.get(key)!.items.push(item); - }); - return Array.from(map.values()); - }, [items]); - const defaultCenter: [number, number] = [-33.9249, 18.4241]; const center = userLocation || defaultCenter; @@ -129,6 +463,91 @@ export default function CollectionMap({ items, onNavigate }: MapViewProps) { return calculateDistance(userLocation[0], userLocation[1], coords.latitude, coords.longitude); }; + // Layer that wires up clustering reactively when items change. + // + // Why this used to infinite-loop: the original implementation called + // setClusters inside the moveend/zoomend handlers AND inside an + // effect that depended on `points`. Each parent render that produced + // a new `points` reference (or each moveend fire from Leaflet's + // internal layout invalidation) triggered another setState, which + // re-rendered, which produced another `points` reference, which + // fired the effect again — bounded only by React's depth limit. + // + // The fix: compute clusters in a layout-effect-free model. We + // subscribe to Leaflet's moveend/zoomend (the only times cluster + // pixel positions actually change) and re-cluster then. The initial + // cluster pass happens after the map container's first layout + // settles, gated by mapReadyRef so we never call latLngToContainer + // on an unmeasured map. Content-dedup via signature string kills + // redundant state churn even when Leaflet fires spurious moveend. + function ClusterSync() { + const map = useMap(); + + // Stable signature function — no deps so the ref never changes. + const sigOf = useCallback((cs: Cluster[]) => + cs.map((c) => `${c.points.length}@${c.center[0].toFixed(4)},${c.center[1].toFixed(4)}`).join('|'), + []); + + // Initial clustering: run once after map layout is ready. We use + // a raf to wait for Leaflet's first container-size measurement, + // because latLngToContainerPoint() returns invalid coords before + // then — which would produce NaN-bearing clusters that flip the + // sig every frame. + useEffect(() => { + let cancelled = false; + mapReadyRef.current = false; + // eslint-disable-next-line no-console + console.log('[ClusterSync] mount effect firing'); + const initialFrame = requestAnimationFrame(() => { + if (cancelled) return; + mapReadyRef.current = true; + const next = clusterPoints(points, map); + // eslint-disable-next-line no-console + console.log('[ClusterSync] initial frame, sig=', sigOf(next)); + setClusters((prev) => (sigOf(prev) === sigOf(next) ? prev : next)); + }); + return () => { + // eslint-disable-next-line no-console + console.log('[ClusterSync] mount cleanup'); + cancelled = true; + cancelAnimationFrame(initialFrame); + }; + // We intentionally don't include `points` or `sigOf` here — this + // is the FIRST snapshot only. Subsequent updates are driven by + // the points-effect and the map event handlers below. + // eslint-disable-next-line react-hooks/exhaustive-deps + }, [map]); + + // Re-cluster when the points list itself changes (new items, tab + // switch, PB poll). Content-deduped. + useEffect(() => { + if (!mapReadyRef.current) return; + const next = clusterPoints(points, map); + // eslint-disable-next-line no-console + console.log('[ClusterSync] points change, next.sig=', sigOf(next)); + setClusters((prev) => (sigOf(prev) === sigOf(next) ? prev : next)); + }, [points, map, sigOf]); + + // Re-cluster on pan/zoom — these are the only events where cluster + // pixel positions change. Read points from a ref so the handler + // subscription is stable across renders. + const pointsRef = useRef(points); + useEffect(() => { pointsRef.current = points; }, [points]); + useMapEvents({ + zoomend: () => { + if (!mapReadyRef.current) return; + const next = clusterPoints(pointsRef.current, map); + setClusters((prev) => (sigOf(prev) === sigOf(next) ? prev : next)); + }, + moveend: () => { + if (!mapReadyRef.current) return; + const next = clusterPoints(pointsRef.current, map); + setClusters((prev) => (sigOf(prev) === sigOf(next) ? prev : next)); + }, + }); + return null; + } + return (
- + + + setShowTrail((v) => !v)} + /> {userLocation && ( @@ -179,93 +605,86 @@ export default function CollectionMap({ items, onNavigate }: MapViewProps) { )} - {suppliers.map(({ supplier, items: supplierItems, coords }) => { - const distance = getDistance(coords); + {clusters.map((cluster, i) => { + // Find the majority area color among the points in this visual cluster + const colorCounts = new Map(); + for (const p of cluster.points) { + const ci = areaColorMap.get(p.item.id); + if (ci !== undefined) { + colorCounts.set(ci, (colorCounts.get(ci) || 0) + 1); + } + } + let majorityColor: string | undefined; + if (colorCounts.size > 0) { + let maxCount = 0; + let maxIdx = 0; + Array.from(colorCounts.entries()).forEach(([idx, count]) => { + if (count > maxCount) { maxCount = count; maxIdx = idx; } + }); + majorityColor = AREA_COLORS[maxIdx]; + } + return ( - - -
-

{supplier.suppliername}

- {supplier.supplieraddress && ( -

{supplier.supplieraddress}

- )} - {distance && ( -

- {distance < 1 ? `${Math.round(distance * 1000)}m` : `${distance.toFixed(1)} km`} away -

- )} -
- {supplierItems.map((i) => ( -
-
- {i.problem_flag && } - {i.description} -
- Qty: {i.order_qty || i.quantity || 0} -
- ))} -
- -
-
-
+ ); })}
- {/* Floating controls */} -
- {/* Recenter */} - {userLocation && ( - - )} - - {/* Trail toggle */} - {trail.length > 1 && ( - - )} - - {/* Legend */} -
-

Legend

-
-
-
- You -
-
-
- Stop -
- {trail.length > 1 && ( -
-
- Route -
- )} + {/* Legend — pure UI, no leaflet hooks, safe to render outside MapContainer. */} +
+

Legend

+
+
+
+ You
+
+ {/* Miniature of the actual dot + a tiny corner badge so the legend + matches exactly what the map renders — not the old pill. */} +
+
+
+ N +
+
+ Waypoint (N stops) +
+ {trail.length > 1 && ( +
+
+ Route +
+ )}
+ + {/* Empty-state overlay. Shown when the API returned items but none + of them have usable supplier coordinates (the most common cause + in this codebase: supplier row exists but coordinates field is + blank). The map still renders, so the driver can manually + navigate via the list view and search for the supplier. */} + {points.length === 0 && ( +
+

No stops on the map yet

+

+ Assigned pickups need a supplier address with coordinates. Use the list to add one. +

+
+ )}
); } \ No newline at end of file diff --git a/lib/pocketbase.ts b/lib/pocketbase.ts index 46802ae..8ec8250 100644 --- a/lib/pocketbase.ts +++ b/lib/pocketbase.ts @@ -24,61 +24,122 @@ export const login = async (email: string, password: string) => { return await pb.collection('users').authWithPassword(email, password); }; -// Get assigned collections (order_items assigned to current driver). -// The `order_items` schema has `supplier` (singular) and `driver` -// (singular) as relation field names — those are the keys to use -// in expand / sort / filter. -export const getAssignedCollections = async () => { - const user = getCurrentUser(); - if (!user) return []; +// PB `order_items` schema (verified live 2026-07-07): +// drv_id = relation -> users (canonical "assigned driver" field) +// driver = legacy/parallel driver field (only set on 1 row) +// supplier = relation -> suppliers (singular) +// item_status real values: assigned, collection_pool, pending, +// collected, problem, ... +// drv_status real values: assigned, en_route, collected, failed, '' (empty), +// unassigned +// po_description = supplier-facing line ("M20×40 nut sku 11243…") +// description = customer-facing line +// order_qty = supplier-facing qty (falls back to quantity) +// quantity = customer-facing qty +// in_stock = NOT IN PB YET — add before relying on it +// assigned_at = ISO timestamp, populated server-side on assignment +// problem_notes = driver-written audit trail of failed collections +// Unknown status values are NOT rejected by PB — they silently match +// nothing. Always use the exact string below. - // 1) Happy path — rich expand + sort by supplier name. - try { - const records = await pb.collection('order_items').getFullList({ - filter: `driver = "${user.id}" && (item_status = "assigned" || item_status = "driver_pool")`, - expand: 'supplier,order,purchase_order', - sort: 'supplier.suppliername', - }); - return records as unknown as OrderItem[]; - } catch (err: any) { - if (typeof console !== 'undefined') { - console.warn('[pocketbase] expand=supplier/sort failed, retrying without it:', err?.message || err); - } - } - - // 2) Resilient fallback — items only, then batched suppliers. - const items = await pb.collection('order_items').getFullList({ - filter: `driver = "${user.id}" && (item_status = "assigned" || item_status = "driver_pool")`, - }); - - const supplierIds = Array.from(new Set( +// ---------- Hydration helper ---------- +// PB query builder can't always do the supplier expand (some deployments +// strip expand support). This helper takes raw records and, if supplier +// isn't already expanded, batch-fetches suppliers by id and stitches +// them back into item.expand.supplier. Shared by every fetch below. +const hydrateSuppliers = async (items: OrderItem[]): Promise => { + const missing = Array.from(new Set( items - .map((it) => (it as any).supplier) - .filter((id): id is string => typeof id === 'string' && id.length > 0) + .filter((it) => !it.expand?.supplier && (it as any).supplier) + .map((it) => (it as any).supplier as string) )); + if (missing.length === 0) return items; let supplierMap = new Map(); - if (supplierIds.length > 0) { - try { - const filter = supplierIds.map((id) => `id = "${id}"`).join(' || '); - const suppliers = await pb.collection('suppliers').getFullList({ filter }); - supplierMap = new Map(suppliers.map((s: any) => [s.id, s])); - } catch { - // Suppliers collection not reachable. - } + try { + const filter = missing.map((id) => `id = "${id}"`).join(' || '); + const suppliers = await pb.collection('suppliers').getFullList({ filter }); + supplierMap = new Map(suppliers.map((s: any) => [s.id, s])); + } catch { + return items; } return items.map((it) => { + if (it.expand?.supplier) return it; const supplierId = (it as any).supplier; const supplier = supplierId ? supplierMap.get(supplierId) : null; if (!supplier) return it; return { ...it, expand: { ...(it.expand || {}), supplier }, - } as unknown as OrderItem; + } as OrderItem; }); }; +// ---------- 1. ASSIGNED — only items with drv_id = current user ---------- +// Filter uses `drv_id` (the canonical assigned-driver relation), not +// `driver` (which is a legacy/parallel field only set on a handful of +// rows). drv_id is the field per the project brief (2026-07-07). +export const getMyAssignedItems = async (): Promise => { + const user = getCurrentUser(); + if (!user) return []; + try { + const items = await pb.collection('order_items').getFullList({ + filter: `drv_id = "${user.id}" && item_status = "assigned" && ready_for_collection = true`, + expand: 'supplier,order,purchase_order', + sort: 'supplier.suppliername', + }); + return items; + } catch { + const items = await pb.collection('order_items').getFullList({ + filter: `drv_id = "${user.id}" && item_status = "assigned" && ready_for_collection = true`, + }); + return hydrateSuppliers(items); + } +}; + +// Backwards-compat alias — keep old call sites working during the refactor. +export const getAssignedCollections = getMyAssignedItems; + +// ---------- 2. POOL — every collection_pool item in the system ---------- +// Pool means "open for any driver to claim". The driver app shows ALL +// pool rows here so the driver can see what's available before claiming. +// No driver filter on purpose. +export const getPoolItems = async (): Promise => { + try { + const items = await pb.collection('order_items').getFullList({ + filter: `item_status = "collection_pool" && ready_for_collection = true`, + expand: 'supplier,order,purchase_order', + sort: 'supplier.suppliername', + }); + return items; + } catch { + const items = await pb.collection('order_items').getFullList({ + filter: `item_status = "collection_pool" && ready_for_collection = true`, + }); + return hydrateSuppliers(items); + } +}; + +// ---------- 3. PROBLEMS — every flagged item in the system ---------- +// Items with problem_flag=true OR item_status='problem'. No driver +// filter — problems are operational visibility, not personal lists. +export const getProblemItems = async (): Promise => { + try { + const items = await pb.collection('order_items').getFullList({ + filter: `problem_flag = true || item_status = "problem"`, + expand: 'supplier,order,purchase_order', + sort: '-updated', + }); + return items; + } catch { + const items = await pb.collection('order_items').getFullList({ + filter: `problem_flag = true || item_status = "problem"`, + }); + return hydrateSuppliers(items); + } +}; + // Update order item status when collected export const updateCollectionStatus = async ( id: string, @@ -91,6 +152,43 @@ export const updateCollectionStatus = async ( }); }; +// ---------- Display helpers ---------- +// Per the project brief: +// po_description is the supplier-facing line (preferred on the PO +// pickup screen); description is the customer-facing line. We always +// show the supplier-facing line when it's there, and fall back to the +// customer-facing one for legacy rows. +export const getItemDisplayDescription = (item: OrderItem): string => { + const po = (item.po_description || '').trim(); + if (po) return po; + return (item.description || '').trim() || '—'; +}; + +// order_qty is the supplier-facing quantity (preferred on the pickup +// screen); quantity is the customer-facing quantity. Per the brief: +// order_qty "falls back to quantity if blank". We honor that order. +export const getItemDisplayQty = (item: OrderItem): number => { + const oq = item.order_qty; + if (typeof oq === 'number' && !Number.isNaN(oq) && oq > 0) return oq; + const q = item.quantity; + if (typeof q === 'number' && !Number.isNaN(q) && q > 0) return q; + return 0; +}; + +// ---------- Driver-side claim action ---------- +// When the driver sees an open item in Pool and wants to take it: +// set drv_id = me, item_status = "assigned", assigned_at = now. +export const claimItemForDriver = async (itemId: string) => { + const user = getCurrentUser(); + if (!user) throw new Error('Not signed in'); + return await pb.collection('order_items').update(itemId, { + drv_id: user.id, + item_status: 'assigned', + drv_status: 'assigned', + assigned_at: new Date().toISOString(), + }); +}; + // Report a problem on an order item export const reportProblem = async ( orderItemId: string, diff --git a/lib/types.ts b/lib/types.ts index 210a252..b02d1d7 100644 --- a/lib/types.ts +++ b/lib/types.ts @@ -25,30 +25,33 @@ export interface PurchaseOrder { export interface OrderItem { id: string; order: string; - quote_item?: string; - purchase_order?: string; - supplier?: string; - drv_id?: string; - driver?: string; + // Customer-facing line. Use this for label / list / customer view. description: string; + // Supplier-facing line. Use this on the PO pickup screen — supplier + // paperwork references this exact wording. Falls back to description. po_description?: string; - notes?: string; - problem_notes?: string; + // Customer-side quantity. Nullable on legacy rows. quantity: number; + // Supplier-side quantity. Per the brief, falls back to quantity when + // blank (zero is treated as blank in getItemDisplayQty). order_qty?: number; - qty_processed?: number; - qty_assigned?: number; - qty_collected?: number; - qty_delivered?: number; + // Pricing — operator-side (cost), customer-side (selling), and audit + // source ('quote' | 'catalogue' | 'manual'). cost_price?: number; - selling_price?: number; - markup?: number; - markup_percent?: number; + selling_price?: number | null; + pricing_source?: 'quote' | 'catalogue' | 'manual' | string; + matched_quote_item?: string; + // Supplier part number. Use this on PO paperwork over description. + sku?: string; + // Workflow states. item_status is the operator-side state, drv_status + // is the driver-side state. They're independent enums — an item can + // be item_status='collected' (operator marked it received) while + // drv_status is still 'en_route' (driver hasn't checked in), etc. item_status: | 'pending' | 'processed' | 'po_generated' - | 'driver_pool' + | 'collection_pool' | 'assigned' | 'collected' | 'stock_verified' @@ -56,15 +59,33 @@ export interface OrderItem { | 'ready_delivery' | 'delivered' | 'cancelled'; - drv_status?: 'unassigned' | 'assigned' | 'en_route' | 'collected' | 'failed'; - driver_status?: 'unassigned' | 'assigned' | 'en_route' | 'collected' | 'failed'; + drv_status?: 'unassigned' | 'assigned' | 'en_route' | 'collected' | 'failed' | string; + driver_status?: string; delivery_status?: 'pending' | 'ready' | 'in_transit' | 'delivered' | 'failed'; invoice_status?: 'pending' | 'invoiced' | 'paid' | 'cancelled'; + // Driver assignment. The canonical driver field per the brief is + // `drv_id` (relation -> users); the older `driver` field is a legacy + // shadow that only a handful of rows set. Use drv_id in every filter. + drv_id?: string; + driver?: string; + // Server-side ISO timestamp of when drv_id was set. Surface in detail. + assigned_at?: string; + // Audit trail of failed-collection attempts. The driver writes here. + // Distinct from notes (operator-side). + notes?: string; + problem_notes?: string; problem_flag?: boolean; - problem_type?: 'stock' | 'supplier' | 'driver' | 'delivery' | 'pricing' | 'other'; + problem_type?: 'stock' | 'supplier' | 'driver' | 'delivery' | 'pricing' | 'other' | string; + // Per-row quantities used for proving/dashboard math. + qty_processed?: number; + qty_assigned?: number; + qty_collected?: number; + qty_delivered?: number; drv_assigned_at?: string; drv_collected_at?: string; delivered_at?: string; + markup?: number; + markup_percent?: number; legacy_order_item_id?: string; // Backwards-compat shim the app uses in some spots is_stock_item?: boolean; @@ -72,7 +93,7 @@ export interface OrderItem { collection_date?: string; // Expanded fields expand?: { - supplier?: Supplier; + supplier?: Supplier; // PB expand key matches relation field name order?: Order; purchase_order?: PurchaseOrder; }; diff --git a/lib/utils.ts b/lib/utils.ts index 5cf56fa..d5772b7 100644 --- a/lib/utils.ts +++ b/lib/utils.ts @@ -96,7 +96,6 @@ export function calculateDistance( export function parseCoordinates(coordString: string | undefined): { latitude: number; longitude: number } | null { if (!coordString) return null; - // Try to extract two numbers that look like lat/lng const matches = coordString.match(/-?\d+\.?\d*/g); if (matches && matches.length >= 2) { const lat = parseFloat(matches[0]); @@ -108,3 +107,82 @@ export function parseCoordinates(coordString: string | undefined): { latitude: n return null; } + +export interface ProximityCluster { + id: string; + items: T[]; + center: { latitude: number; longitude: number }; + label: string; +} + +export function clusterByProximity( + items: T[], + radiusKm: number = 2 +): ProximityCluster[] { + const withCoords: Array<{ item: T; coords: { latitude: number; longitude: number } }> = []; + const withoutCoords: T[] = []; + + for (const item of items) { + const coords = parseCoordinates(item.expand?.supplier?.coordinates); + if (coords) { + withCoords.push({ item, coords }); + } else { + withoutCoords.push(item); + } + } + + const assigned = new Set(); + const clusters: ProximityCluster[] = []; + + for (const seed of withCoords) { + if (assigned.has(seed.item.id)) continue; + + const clusterItems: Array<{ item: T; coords: { latitude: number; longitude: number } }> = [seed]; + assigned.add(seed.item.id); + + for (const candidate of withCoords) { + if (assigned.has(candidate.item.id)) continue; + const dist = calculateDistance( + seed.coords.latitude, seed.coords.longitude, + candidate.coords.latitude, candidate.coords.longitude + ); + if (dist <= radiusKm) { + clusterItems.push(candidate); + assigned.add(candidate.item.id); + } + } + + const centerLat = clusterItems.reduce((s, p) => s + p.coords.latitude, 0) / clusterItems.length; + const centerLng = clusterItems.reduce((s, p) => s + p.coords.longitude, 0) / clusterItems.length; + + const supplierNames = Array.from( + new Set( + clusterItems + .map(c => c.item.expand?.supplier?.suppliername) + .filter((n): n is string => !!n) + ) + ); + + clusters.push({ + id: `cluster-${clusters.length}`, + items: clusterItems.map(c => c.item), + center: { latitude: centerLat, longitude: centerLng }, + label: supplierNames.length === 1 + ? supplierNames[0] + : supplierNames.length > 1 + ? `${supplierNames[0]} +${supplierNames.length - 1}` + : `Stop ${clusters.length + 1}`, + }); + } + + if (withoutCoords.length > 0) { + clusters.push({ + id: 'cluster-no-coords', + items: withoutCoords, + center: { latitude: 0, longitude: 0 }, + label: 'No location', + }); + } + + return clusters; +} diff --git a/tsconfig.tsbuildinfo b/tsconfig.tsbuildinfo index 572d8e8..e54c3cc 100644 --- a/tsconfig.tsbuildinfo +++ b/tsconfig.tsbuildinfo @@ -1 +1 @@ -{"fileNames":["./node_modules/typescript/lib/lib.es5.d.ts","./node_modules/typescript/lib/lib.es2015.d.ts","./node_modules/typescript/lib/lib.es2016.d.ts","./node_modules/typescript/lib/lib.es2017.d.ts","./node_modules/typescript/lib/lib.es2018.d.ts","./node_modules/typescript/lib/lib.es2019.d.ts","./node_modules/typescript/lib/lib.es2020.d.ts","./node_modules/typescript/lib/lib.es2021.d.ts","./node_modules/typescript/lib/lib.es2022.d.ts","./node_modules/typescript/lib/lib.es2023.d.ts","./node_modules/typescript/lib/lib.es2024.d.ts","./node_modules/typescript/lib/lib.esnext.d.ts","./node_modules/typescript/lib/lib.dom.d.ts","./node_modules/typescript/lib/lib.dom.iterable.d.ts","./node_modules/typescript/lib/lib.es2015.core.d.ts","./node_modules/typescript/lib/lib.es2015.collection.d.ts","./node_modules/typescript/lib/lib.es2015.generator.d.ts","./node_modules/typescript/lib/lib.es2015.iterable.d.ts","./node_modules/typescript/lib/lib.es2015.promise.d.ts","./node_modules/typescript/lib/lib.es2015.proxy.d.ts","./node_modules/typescript/lib/lib.es2015.reflect.d.ts","./node_modules/typescript/lib/lib.es2015.symbol.d.ts","./node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","./node_modules/typescript/lib/lib.es2016.array.include.d.ts","./node_modules/typescript/lib/lib.es2016.intl.d.ts","./node_modules/typescript/lib/lib.es2017.arraybuffer.d.ts","./node_modules/typescript/lib/lib.es2017.date.d.ts","./node_modules/typescript/lib/lib.es2017.object.d.ts","./node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","./node_modules/typescript/lib/lib.es2017.string.d.ts","./node_modules/typescript/lib/lib.es2017.intl.d.ts","./node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","./node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","./node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","./node_modules/typescript/lib/lib.es2018.intl.d.ts","./node_modules/typescript/lib/lib.es2018.promise.d.ts","./node_modules/typescript/lib/lib.es2018.regexp.d.ts","./node_modules/typescript/lib/lib.es2019.array.d.ts","./node_modules/typescript/lib/lib.es2019.object.d.ts","./node_modules/typescript/lib/lib.es2019.string.d.ts","./node_modules/typescript/lib/lib.es2019.symbol.d.ts","./node_modules/typescript/lib/lib.es2019.intl.d.ts","./node_modules/typescript/lib/lib.es2020.bigint.d.ts","./node_modules/typescript/lib/lib.es2020.date.d.ts","./node_modules/typescript/lib/lib.es2020.promise.d.ts","./node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","./node_modules/typescript/lib/lib.es2020.string.d.ts","./node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","./node_modules/typescript/lib/lib.es2020.intl.d.ts","./node_modules/typescript/lib/lib.es2020.number.d.ts","./node_modules/typescript/lib/lib.es2021.promise.d.ts","./node_modules/typescript/lib/lib.es2021.string.d.ts","./node_modules/typescript/lib/lib.es2021.weakref.d.ts","./node_modules/typescript/lib/lib.es2021.intl.d.ts","./node_modules/typescript/lib/lib.es2022.array.d.ts","./node_modules/typescript/lib/lib.es2022.error.d.ts","./node_modules/typescript/lib/lib.es2022.intl.d.ts","./node_modules/typescript/lib/lib.es2022.object.d.ts","./node_modules/typescript/lib/lib.es2022.string.d.ts","./node_modules/typescript/lib/lib.es2022.regexp.d.ts","./node_modules/typescript/lib/lib.es2023.array.d.ts","./node_modules/typescript/lib/lib.es2023.collection.d.ts","./node_modules/typescript/lib/lib.es2023.intl.d.ts","./node_modules/typescript/lib/lib.es2024.arraybuffer.d.ts","./node_modules/typescript/lib/lib.es2024.collection.d.ts","./node_modules/typescript/lib/lib.es2024.object.d.ts","./node_modules/typescript/lib/lib.es2024.promise.d.ts","./node_modules/typescript/lib/lib.es2024.regexp.d.ts","./node_modules/typescript/lib/lib.es2024.sharedmemory.d.ts","./node_modules/typescript/lib/lib.es2024.string.d.ts","./node_modules/typescript/lib/lib.esnext.array.d.ts","./node_modules/typescript/lib/lib.esnext.collection.d.ts","./node_modules/typescript/lib/lib.esnext.intl.d.ts","./node_modules/typescript/lib/lib.esnext.disposable.d.ts","./node_modules/typescript/lib/lib.esnext.promise.d.ts","./node_modules/typescript/lib/lib.esnext.decorators.d.ts","./node_modules/typescript/lib/lib.esnext.iterator.d.ts","./node_modules/typescript/lib/lib.esnext.float16.d.ts","./node_modules/typescript/lib/lib.esnext.error.d.ts","./node_modules/typescript/lib/lib.esnext.sharedmemory.d.ts","./node_modules/typescript/lib/lib.decorators.d.ts","./node_modules/typescript/lib/lib.decorators.legacy.d.ts","./node_modules/next/dist/styled-jsx/types/css.d.ts","./node_modules/@types/react/global.d.ts","./node_modules/csstype/index.d.ts","./node_modules/@types/prop-types/index.d.ts","./node_modules/@types/react/index.d.ts","./node_modules/next/dist/styled-jsx/types/index.d.ts","./node_modules/next/dist/styled-jsx/types/macro.d.ts","./node_modules/next/dist/styled-jsx/types/style.d.ts","./node_modules/next/dist/styled-jsx/types/global.d.ts","./node_modules/next/dist/shared/lib/amp.d.ts","./node_modules/next/amp.d.ts","./node_modules/@types/node/compatibility/disposable.d.ts","./node_modules/@types/node/compatibility/indexable.d.ts","./node_modules/@types/node/compatibility/iterators.d.ts","./node_modules/@types/node/compatibility/index.d.ts","./node_modules/@types/node/globals.typedarray.d.ts","./node_modules/@types/node/buffer.buffer.d.ts","./node_modules/@types/node/globals.d.ts","./node_modules/@types/node/web-globals/abortcontroller.d.ts","./node_modules/@types/node/web-globals/domexception.d.ts","./node_modules/@types/node/web-globals/events.d.ts","./node_modules/undici-types/header.d.ts","./node_modules/undici-types/readable.d.ts","./node_modules/undici-types/file.d.ts","./node_modules/undici-types/fetch.d.ts","./node_modules/undici-types/formdata.d.ts","./node_modules/undici-types/connector.d.ts","./node_modules/undici-types/client.d.ts","./node_modules/undici-types/errors.d.ts","./node_modules/undici-types/dispatcher.d.ts","./node_modules/undici-types/global-dispatcher.d.ts","./node_modules/undici-types/global-origin.d.ts","./node_modules/undici-types/pool-stats.d.ts","./node_modules/undici-types/pool.d.ts","./node_modules/undici-types/handlers.d.ts","./node_modules/undici-types/balanced-pool.d.ts","./node_modules/undici-types/agent.d.ts","./node_modules/undici-types/mock-interceptor.d.ts","./node_modules/undici-types/mock-agent.d.ts","./node_modules/undici-types/mock-client.d.ts","./node_modules/undici-types/mock-pool.d.ts","./node_modules/undici-types/mock-errors.d.ts","./node_modules/undici-types/proxy-agent.d.ts","./node_modules/undici-types/env-http-proxy-agent.d.ts","./node_modules/undici-types/retry-handler.d.ts","./node_modules/undici-types/retry-agent.d.ts","./node_modules/undici-types/api.d.ts","./node_modules/undici-types/interceptors.d.ts","./node_modules/undici-types/util.d.ts","./node_modules/undici-types/cookies.d.ts","./node_modules/undici-types/patch.d.ts","./node_modules/undici-types/websocket.d.ts","./node_modules/undici-types/eventsource.d.ts","./node_modules/undici-types/filereader.d.ts","./node_modules/undici-types/diagnostics-channel.d.ts","./node_modules/undici-types/content-type.d.ts","./node_modules/undici-types/cache.d.ts","./node_modules/undici-types/index.d.ts","./node_modules/@types/node/web-globals/fetch.d.ts","./node_modules/@types/node/assert.d.ts","./node_modules/@types/node/assert/strict.d.ts","./node_modules/@types/node/async_hooks.d.ts","./node_modules/@types/node/buffer.d.ts","./node_modules/@types/node/child_process.d.ts","./node_modules/@types/node/cluster.d.ts","./node_modules/@types/node/console.d.ts","./node_modules/@types/node/constants.d.ts","./node_modules/@types/node/crypto.d.ts","./node_modules/@types/node/dgram.d.ts","./node_modules/@types/node/diagnostics_channel.d.ts","./node_modules/@types/node/dns.d.ts","./node_modules/@types/node/dns/promises.d.ts","./node_modules/@types/node/domain.d.ts","./node_modules/@types/node/events.d.ts","./node_modules/@types/node/fs.d.ts","./node_modules/@types/node/fs/promises.d.ts","./node_modules/@types/node/http.d.ts","./node_modules/@types/node/http2.d.ts","./node_modules/@types/node/https.d.ts","./node_modules/@types/node/inspector.generated.d.ts","./node_modules/@types/node/module.d.ts","./node_modules/@types/node/net.d.ts","./node_modules/@types/node/os.d.ts","./node_modules/@types/node/path.d.ts","./node_modules/@types/node/perf_hooks.d.ts","./node_modules/@types/node/process.d.ts","./node_modules/@types/node/punycode.d.ts","./node_modules/@types/node/querystring.d.ts","./node_modules/@types/node/readline.d.ts","./node_modules/@types/node/readline/promises.d.ts","./node_modules/@types/node/repl.d.ts","./node_modules/@types/node/sea.d.ts","./node_modules/@types/node/stream.d.ts","./node_modules/@types/node/stream/promises.d.ts","./node_modules/@types/node/stream/consumers.d.ts","./node_modules/@types/node/stream/web.d.ts","./node_modules/@types/node/string_decoder.d.ts","./node_modules/@types/node/test.d.ts","./node_modules/@types/node/timers.d.ts","./node_modules/@types/node/timers/promises.d.ts","./node_modules/@types/node/tls.d.ts","./node_modules/@types/node/trace_events.d.ts","./node_modules/@types/node/tty.d.ts","./node_modules/@types/node/url.d.ts","./node_modules/@types/node/util.d.ts","./node_modules/@types/node/v8.d.ts","./node_modules/@types/node/vm.d.ts","./node_modules/@types/node/wasi.d.ts","./node_modules/@types/node/worker_threads.d.ts","./node_modules/@types/node/zlib.d.ts","./node_modules/@types/node/index.d.ts","./node_modules/next/dist/server/get-page-files.d.ts","./node_modules/@types/react/canary.d.ts","./node_modules/@types/react/experimental.d.ts","./node_modules/@types/react-dom/index.d.ts","./node_modules/@types/react-dom/canary.d.ts","./node_modules/@types/react-dom/experimental.d.ts","./node_modules/next/dist/compiled/webpack/webpack.d.ts","./node_modules/next/dist/server/config.d.ts","./node_modules/next/dist/lib/load-custom-routes.d.ts","./node_modules/next/dist/shared/lib/image-config.d.ts","./node_modules/next/dist/build/webpack/plugins/subresource-integrity-plugin.d.ts","./node_modules/next/dist/server/body-streams.d.ts","./node_modules/next/dist/server/future/route-kind.d.ts","./node_modules/next/dist/server/future/route-definitions/route-definition.d.ts","./node_modules/next/dist/server/future/route-matches/route-match.d.ts","./node_modules/next/dist/client/components/app-router-headers.d.ts","./node_modules/next/dist/server/request-meta.d.ts","./node_modules/next/dist/server/lib/revalidate.d.ts","./node_modules/next/dist/server/config-shared.d.ts","./node_modules/next/dist/server/base-http/index.d.ts","./node_modules/next/dist/server/api-utils/index.d.ts","./node_modules/next/dist/server/node-environment.d.ts","./node_modules/next/dist/server/require-hook.d.ts","./node_modules/next/dist/server/node-polyfill-crypto.d.ts","./node_modules/next/dist/lib/page-types.d.ts","./node_modules/next/dist/build/analysis/get-page-static-info.d.ts","./node_modules/next/dist/build/webpack/loaders/get-module-build-info.d.ts","./node_modules/next/dist/build/webpack/plugins/middleware-plugin.d.ts","./node_modules/next/dist/server/render-result.d.ts","./node_modules/next/dist/server/future/helpers/i18n-provider.d.ts","./node_modules/next/dist/server/web/next-url.d.ts","./node_modules/next/dist/compiled/@edge-runtime/cookies/index.d.ts","./node_modules/next/dist/server/web/spec-extension/cookies.d.ts","./node_modules/next/dist/server/web/spec-extension/request.d.ts","./node_modules/next/dist/server/web/spec-extension/fetch-event.d.ts","./node_modules/next/dist/server/web/spec-extension/response.d.ts","./node_modules/next/dist/server/web/types.d.ts","./node_modules/next/dist/lib/setup-exception-listeners.d.ts","./node_modules/next/dist/lib/constants.d.ts","./node_modules/next/dist/build/index.d.ts","./node_modules/next/dist/build/webpack/plugins/pages-manifest-plugin.d.ts","./node_modules/next/dist/shared/lib/router/utils/route-regex.d.ts","./node_modules/next/dist/shared/lib/router/utils/route-matcher.d.ts","./node_modules/next/dist/shared/lib/router/utils/parse-url.d.ts","./node_modules/next/dist/server/base-http/node.d.ts","./node_modules/next/dist/server/font-utils.d.ts","./node_modules/next/dist/build/webpack/plugins/flight-manifest-plugin.d.ts","./node_modules/next/dist/server/future/route-modules/route-module.d.ts","./node_modules/next/dist/shared/lib/deep-readonly.d.ts","./node_modules/next/dist/server/load-components.d.ts","./node_modules/next/dist/shared/lib/router/utils/middleware-route-matcher.d.ts","./node_modules/next/dist/build/webpack/plugins/next-font-manifest-plugin.d.ts","./node_modules/next/dist/server/future/route-definitions/locale-route-definition.d.ts","./node_modules/next/dist/server/future/route-definitions/pages-route-definition.d.ts","./node_modules/next/dist/shared/lib/mitt.d.ts","./node_modules/next/dist/client/with-router.d.ts","./node_modules/next/dist/client/router.d.ts","./node_modules/next/dist/client/route-loader.d.ts","./node_modules/next/dist/client/page-loader.d.ts","./node_modules/next/dist/shared/lib/bloom-filter.d.ts","./node_modules/next/dist/shared/lib/router/router.d.ts","./node_modules/next/dist/shared/lib/router-context.shared-runtime.d.ts","./node_modules/next/dist/shared/lib/loadable-context.shared-runtime.d.ts","./node_modules/next/dist/shared/lib/loadable.shared-runtime.d.ts","./node_modules/next/dist/shared/lib/image-config-context.shared-runtime.d.ts","./node_modules/next/dist/shared/lib/hooks-client-context.shared-runtime.d.ts","./node_modules/next/dist/shared/lib/head-manager-context.shared-runtime.d.ts","./node_modules/next/dist/server/future/route-definitions/app-page-route-definition.d.ts","./node_modules/next/dist/shared/lib/modern-browserslist-target.d.ts","./node_modules/next/dist/shared/lib/constants.d.ts","./node_modules/next/dist/build/webpack/loaders/metadata/types.d.ts","./node_modules/next/dist/build/page-extensions-type.d.ts","./node_modules/next/dist/build/webpack/loaders/next-app-loader.d.ts","./node_modules/next/dist/server/lib/app-dir-module.d.ts","./node_modules/next/dist/server/response-cache/types.d.ts","./node_modules/next/dist/server/response-cache/index.d.ts","./node_modules/next/dist/server/lib/incremental-cache/index.d.ts","./node_modules/next/dist/client/components/hooks-server-context.d.ts","./node_modules/next/dist/server/app-render/dynamic-rendering.d.ts","./node_modules/next/dist/client/components/static-generation-async-storage-instance.d.ts","./node_modules/next/dist/client/components/static-generation-async-storage.external.d.ts","./node_modules/next/dist/server/web/spec-extension/adapters/request-cookies.d.ts","./node_modules/next/dist/server/async-storage/draft-mode-provider.d.ts","./node_modules/next/dist/server/web/spec-extension/adapters/headers.d.ts","./node_modules/next/dist/client/components/request-async-storage-instance.d.ts","./node_modules/next/dist/client/components/request-async-storage.external.d.ts","./node_modules/next/dist/server/app-render/create-error-handler.d.ts","./node_modules/next/dist/server/app-render/app-render.d.ts","./node_modules/next/dist/shared/lib/server-inserted-html.shared-runtime.d.ts","./node_modules/next/dist/shared/lib/amp-context.shared-runtime.d.ts","./node_modules/next/dist/server/future/route-modules/app-page/vendored/contexts/entrypoints.d.ts","./node_modules/next/dist/server/future/route-modules/app-page/module.compiled.d.ts","./node_modules/@types/react/jsx-runtime.d.ts","./node_modules/next/dist/client/components/error-boundary.d.ts","./node_modules/next/dist/client/components/router-reducer/create-initial-router-state.d.ts","./node_modules/next/dist/client/components/app-router.d.ts","./node_modules/next/dist/client/components/layout-router.d.ts","./node_modules/next/dist/client/components/render-from-template-context.d.ts","./node_modules/next/dist/client/components/action-async-storage-instance.d.ts","./node_modules/next/dist/client/components/action-async-storage.external.d.ts","./node_modules/next/dist/client/components/client-page.d.ts","./node_modules/next/dist/client/components/search-params.d.ts","./node_modules/next/dist/client/components/not-found-boundary.d.ts","./node_modules/next/dist/server/app-render/rsc/preloads.d.ts","./node_modules/next/dist/server/app-render/rsc/postpone.d.ts","./node_modules/next/dist/server/app-render/rsc/taint.d.ts","./node_modules/next/dist/server/app-render/entry-base.d.ts","./node_modules/next/dist/build/templates/app-page.d.ts","./node_modules/next/dist/server/future/route-modules/app-page/module.d.ts","./node_modules/next/dist/server/lib/builtin-request-context.d.ts","./node_modules/next/dist/server/app-render/types.d.ts","./node_modules/next/dist/client/components/router-reducer/fetch-server-response.d.ts","./node_modules/next/dist/client/components/router-reducer/router-reducer-types.d.ts","./node_modules/next/dist/shared/lib/app-router-context.shared-runtime.d.ts","./node_modules/next/dist/server/future/route-modules/pages/vendored/contexts/entrypoints.d.ts","./node_modules/next/dist/server/future/route-modules/pages/module.compiled.d.ts","./node_modules/next/dist/build/templates/pages.d.ts","./node_modules/next/dist/server/future/route-modules/pages/module.d.ts","./node_modules/next/dist/server/render.d.ts","./node_modules/next/dist/server/future/route-definitions/pages-api-route-definition.d.ts","./node_modules/next/dist/server/future/route-matches/pages-api-route-match.d.ts","./node_modules/next/dist/server/future/route-matchers/route-matcher.d.ts","./node_modules/next/dist/server/future/route-matcher-providers/route-matcher-provider.d.ts","./node_modules/next/dist/server/future/route-matcher-managers/route-matcher-manager.d.ts","./node_modules/next/dist/server/future/normalizers/normalizer.d.ts","./node_modules/next/dist/server/future/normalizers/locale-route-normalizer.d.ts","./node_modules/next/dist/server/future/normalizers/request/pathname-normalizer.d.ts","./node_modules/next/dist/server/future/normalizers/request/suffix.d.ts","./node_modules/next/dist/server/future/normalizers/request/rsc.d.ts","./node_modules/next/dist/server/future/normalizers/request/prefix.d.ts","./node_modules/next/dist/server/future/normalizers/request/postponed.d.ts","./node_modules/next/dist/server/future/normalizers/request/action.d.ts","./node_modules/next/dist/server/future/normalizers/request/prefetch-rsc.d.ts","./node_modules/next/dist/server/future/normalizers/request/next-data.d.ts","./node_modules/next/dist/server/base-server.d.ts","./node_modules/next/dist/server/image-optimizer.d.ts","./node_modules/next/dist/server/next-server.d.ts","./node_modules/next/dist/lib/coalesced-function.d.ts","./node_modules/next/dist/server/lib/router-utils/types.d.ts","./node_modules/next/dist/trace/types.d.ts","./node_modules/next/dist/trace/trace.d.ts","./node_modules/next/dist/trace/shared.d.ts","./node_modules/next/dist/trace/index.d.ts","./node_modules/next/dist/build/load-jsconfig.d.ts","./node_modules/next/dist/build/webpack-config.d.ts","./node_modules/next/dist/build/webpack/plugins/define-env-plugin.d.ts","./node_modules/next/dist/build/swc/index.d.ts","./node_modules/next/dist/server/dev/parse-version-info.d.ts","./node_modules/next/dist/server/dev/hot-reloader-types.d.ts","./node_modules/next/dist/telemetry/storage.d.ts","./node_modules/next/dist/server/lib/types.d.ts","./node_modules/next/dist/server/lib/render-server.d.ts","./node_modules/next/dist/server/lib/router-server.d.ts","./node_modules/next/dist/shared/lib/router/utils/path-match.d.ts","./node_modules/next/dist/server/lib/router-utils/filesystem.d.ts","./node_modules/next/dist/server/lib/router-utils/setup-dev-bundler.d.ts","./node_modules/next/dist/server/lib/dev-bundler-service.d.ts","./node_modules/next/dist/server/dev/static-paths-worker.d.ts","./node_modules/next/dist/server/dev/next-dev-server.d.ts","./node_modules/next/dist/server/next.d.ts","./node_modules/next/dist/lib/metadata/types/alternative-urls-types.d.ts","./node_modules/next/dist/lib/metadata/types/extra-types.d.ts","./node_modules/next/dist/lib/metadata/types/metadata-types.d.ts","./node_modules/next/dist/lib/metadata/types/manifest-types.d.ts","./node_modules/next/dist/lib/metadata/types/opengraph-types.d.ts","./node_modules/next/dist/lib/metadata/types/twitter-types.d.ts","./node_modules/next/dist/lib/metadata/types/metadata-interface.d.ts","./node_modules/next/types/index.d.ts","./node_modules/next/dist/shared/lib/html-context.shared-runtime.d.ts","./node_modules/@next/env/dist/index.d.ts","./node_modules/next/dist/shared/lib/utils.d.ts","./node_modules/next/dist/pages/_app.d.ts","./node_modules/next/app.d.ts","./node_modules/next/dist/server/web/spec-extension/unstable-cache.d.ts","./node_modules/next/dist/server/web/spec-extension/revalidate.d.ts","./node_modules/next/dist/server/web/spec-extension/unstable-no-store.d.ts","./node_modules/next/cache.d.ts","./node_modules/next/dist/shared/lib/runtime-config.external.d.ts","./node_modules/next/config.d.ts","./node_modules/next/dist/pages/_document.d.ts","./node_modules/next/document.d.ts","./node_modules/next/dist/shared/lib/dynamic.d.ts","./node_modules/next/dynamic.d.ts","./node_modules/next/dist/pages/_error.d.ts","./node_modules/next/error.d.ts","./node_modules/next/dist/shared/lib/head.d.ts","./node_modules/next/head.d.ts","./node_modules/next/dist/client/components/draft-mode.d.ts","./node_modules/next/dist/client/components/headers.d.ts","./node_modules/next/headers.d.ts","./node_modules/next/dist/shared/lib/get-img-props.d.ts","./node_modules/next/dist/client/image-component.d.ts","./node_modules/next/dist/shared/lib/image-external.d.ts","./node_modules/next/image.d.ts","./node_modules/next/dist/client/link.d.ts","./node_modules/next/link.d.ts","./node_modules/next/dist/client/components/redirect-status-code.d.ts","./node_modules/next/dist/client/components/redirect.d.ts","./node_modules/next/dist/client/components/not-found.d.ts","./node_modules/next/dist/client/components/navigation.react-server.d.ts","./node_modules/next/dist/client/components/navigation.d.ts","./node_modules/next/navigation.d.ts","./node_modules/next/router.d.ts","./node_modules/next/dist/client/script.d.ts","./node_modules/next/script.d.ts","./node_modules/next/dist/server/web/spec-extension/user-agent.d.ts","./node_modules/next/dist/compiled/@edge-runtime/primitives/url.d.ts","./node_modules/next/dist/server/web/spec-extension/image-response.d.ts","./node_modules/next/dist/compiled/@vercel/og/satori/index.d.ts","./node_modules/next/dist/compiled/@vercel/og/emoji/index.d.ts","./node_modules/next/dist/compiled/@vercel/og/types.d.ts","./node_modules/next/server.d.ts","./node_modules/next/types/global.d.ts","./node_modules/next/types/compiled.d.ts","./node_modules/next/index.d.ts","./node_modules/next/image-types/global.d.ts","./next-env.d.ts","./node_modules/pocketbase/dist/pocketbase.es.d.mts","./lib/types.ts","./lib/pocketbase.ts","./lib/pwa.ts","./node_modules/clsx/clsx.d.mts","./node_modules/tailwind-merge/dist/types.d.ts","./lib/utils.ts","./components/authprovider.tsx","./node_modules/lucide-react/dist/lucide-react.d.ts","./components/offlineindicator.tsx","./components/installprompt.tsx","./components/pwabridge.tsx","./app/layout.tsx","./components/bottomnav.tsx","./components/locationtracker.tsx","./components/collectionitemcard.tsx","./components/suppliergroup.tsx","./components/collectmodal.tsx","./components/problemmodal.tsx","./app/page.tsx","./app/login/page.tsx","./node_modules/@types/geojson/index.d.ts","./node_modules/@types/leaflet/index.d.ts","./node_modules/react-leaflet/lib/hooks.d.ts","./node_modules/react-leaflet/lib/attributioncontrol.d.ts","./node_modules/@react-leaflet/core/lib/attribution.d.ts","./node_modules/@react-leaflet/core/lib/context.d.ts","./node_modules/@react-leaflet/core/lib/element.d.ts","./node_modules/@react-leaflet/core/lib/events.d.ts","./node_modules/@react-leaflet/core/lib/layer.d.ts","./node_modules/@react-leaflet/core/lib/path.d.ts","./node_modules/@react-leaflet/core/lib/circle.d.ts","./node_modules/@react-leaflet/core/lib/div-overlay.d.ts","./node_modules/@react-leaflet/core/lib/component.d.ts","./node_modules/@react-leaflet/core/lib/control.d.ts","./node_modules/@react-leaflet/core/lib/dom.d.ts","./node_modules/@react-leaflet/core/lib/generic.d.ts","./node_modules/@react-leaflet/core/lib/grid-layer.d.ts","./node_modules/@react-leaflet/core/lib/media-overlay.d.ts","./node_modules/@react-leaflet/core/lib/pane.d.ts","./node_modules/@react-leaflet/core/lib/index.d.ts","./node_modules/react-leaflet/lib/circle.d.ts","./node_modules/react-leaflet/lib/circlemarker.d.ts","./node_modules/react-leaflet/lib/layergroup.d.ts","./node_modules/react-leaflet/lib/featuregroup.d.ts","./node_modules/react-leaflet/lib/geojson.d.ts","./node_modules/react-leaflet/lib/imageoverlay.d.ts","./node_modules/react-leaflet/lib/layerscontrol.d.ts","./node_modules/react-leaflet/lib/mapcontainer.d.ts","./node_modules/react-leaflet/lib/marker.d.ts","./node_modules/react-leaflet/lib/pane.d.ts","./node_modules/react-leaflet/lib/polygon.d.ts","./node_modules/react-leaflet/lib/polyline.d.ts","./node_modules/react-leaflet/lib/popup.d.ts","./node_modules/react-leaflet/lib/rectangle.d.ts","./node_modules/react-leaflet/lib/scalecontrol.d.ts","./node_modules/react-leaflet/lib/svgoverlay.d.ts","./node_modules/react-leaflet/lib/tilelayer.d.ts","./node_modules/react-leaflet/lib/tooltip.d.ts","./node_modules/react-leaflet/lib/videooverlay.d.ts","./node_modules/react-leaflet/lib/wmstilelayer.d.ts","./node_modules/react-leaflet/lib/zoomcontrol.d.ts","./node_modules/react-leaflet/lib/index.d.ts","./components/collectionmap.tsx","./app/map/page.tsx","./app/settings/page.tsx","./.next/types/app/layout.ts","./.next/types/app/page.ts","./.next/types/app/login/page.ts","./.next/types/app/map/page.ts","./.next/types/app/settings/page.ts","./node_modules/@types/json5/index.d.ts"],"fileIdsList":[[99,145,360,423],[99,145,360,431],[99,145,360,475],[99,145,360,430],[99,145,360,476],[99,145,408,418,420,421,422],[87,99,145,413,417,419],[87,99,145,376,395,412,413,417,418,419,424,425,474],[87,99,145,395,412,413,417,418,419,424,425,426,427,428,429],[87,99,145,395,412,413,417,418,419,424],[87,99,145,413],[99,145,389,395,417,419],[87,99,145,412,417,419],[87,99,145,412,413,417,419,433,473],[87,99,145,414,417,419],[87,99,145,414],[99,145,412,417,419,426],[99,145,411,412],[87,99,145],[99,145],[99,145,415,416],[99,145,408,409],[99,145,433],[87,99,145,433,441],[87,99,145,438,443],[87,99,145,433],[99,145,433,438],[99,145,433,437,438,440],[87,99,145,437],[87,99,145,433,437,438,440,441,443,444],[99,145,436,437,438,439,440,441,442,443,444,445,446,447,448,449,450],[99,145,433,437,438,439],[99,145,433,440],[99,145,433,437],[99,145,433,438,440],[99,145,432],[99,142,145],[99,144,145],[145],[99,145,150,178],[99,145,146,151,156,164,175,186],[99,145,146,147,156,164],[94,95,96,99,145],[99,145,148,187],[99,145,149,150,157,165],[99,145,150,175,183],[99,145,151,153,156,164],[99,144,145,152],[99,145,153,154],[99,145,155,156],[99,144,145,156],[99,145,156,157,158,175,186],[99,145,156,157,158,171,175,178],[99,145,153,156,159,164,175,186],[99,145,156,157,159,160,164,175,183,186],[99,145,159,161,175,183,186],[97,98,99,100,101,102,103,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],[99,145,156,162],[99,145,163,186,191],[99,145,153,156,164,175],[99,145,165],[99,145,166],[99,144,145,167],[99,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],[99,145,169],[99,145,170],[99,145,156,171,172],[99,145,171,173,187,189],[99,145,156,175,176,178],[99,145,177,178],[99,145,175,176],[99,145,178],[99,145,179],[99,142,145,175,180],[99,145,156,181,182],[99,145,181,182],[99,145,150,164,175,183],[99,145,184],[99,145,164,185],[99,145,159,170,186],[99,145,150,187],[99,145,175,188],[99,145,163,189],[99,145,190],[99,140,145],[99,140,145,156,158,167,175,178,186,189,191],[99,145,175,192],[87,99,145,197,198,199],[87,99,145,197,198],[87,91,99,145,196,361,404],[87,91,99,145,195,361,404],[84,85,86,99,145],[92,99,145],[99,145,365],[99,145,367,368,369],[99,145,371],[99,145,202,212,218,220,361],[99,145,202,209,211,214,232],[99,145,212],[99,145,212,214,339],[99,145,267,285,300,407],[99,145,309],[99,145,202,212,219,253,263,336,337,407],[99,145,219,407],[99,145,212,263,264,265,407],[99,145,212,219,253,407],[99,145,407],[99,145,202,219,220,407],[99,145,293],[99,144,145,193,292],[87,99,145,286,287,288,306,307],[87,99,145,286],[99,145,276],[99,145,275,277,381],[87,99,145,286,287,304],[99,145,282,307,393],[99,145,391,392],[99,145,226,390],[99,145,279],[99,144,145,193,226,242,275,276,277,278],[87,99,145,304,306,307],[99,145,304,306],[99,145,304,305,307],[99,145,170,193],[99,145,274],[99,144,145,193,211,213,270,271,272,273],[87,99,145,203,384],[87,99,145,186,193],[87,99,145,219,251],[87,99,145,219],[99,145,249,254],[87,99,145,250,364],[87,91,99,145,159,193,195,196,361,402,403],[99,145,361],[99,145,201],[99,145,354,355,356,357,358,359],[99,145,356],[87,99,145,250,286,364],[87,99,145,286,362,364],[87,99,145,286,364],[99,145,159,193,213,364],[99,145,159,193,210,211,222,240,242,274,279,280,302,304],[99,145,271,274,279,287,289,290,291,293,294,295,296,297,298,299,407],[99,145,272],[87,99,145,170,193,211,212,240,242,243,245,270,302,303,307,361,407],[99,145,159,193,213,214,226,227,275],[99,145,159,193,212,214],[99,145,159,175,193,210,213,214],[99,145,159,170,186,193,210,211,212,213,214,219,222,223,233,234,236,239,240,242,243,244,245,269,270,303,304,312,314,317,319,322,324,325,326,327],[99,145,159,175,193],[99,145,202,203,204,210,211,361,364,407],[99,145,159,175,186,193,207,338,340,341,407],[99,145,170,186,193,207,210,213,230,234,236,237,238,243,270,317,328,330,336,350,351],[99,145,212,216,270],[99,145,210,212],[99,145,223,318],[99,145,320,321],[99,145,320],[99,145,318],[99,145,320,323],[99,145,206,207],[99,145,206,246],[99,145,206],[99,145,208,223,316],[99,145,315],[99,145,207,208],[99,145,208,313],[99,145,207],[99,145,302],[99,145,159,193,210,222,241,261,267,281,284,301,304],[99,145,255,256,257,258,259,260,282,283,307,362],[99,145,311],[99,145,159,193,210,222,241,247,308,310,312,361,364],[99,145,159,186,193,203,210,212,269],[99,145,266],[99,145,159,193,344,349],[99,145,233,242,269,364],[99,145,332,336,350,353],[99,145,159,216,336,344,345,353],[99,145,202,212,233,244,347],[99,145,159,193,212,219,244,331,332,342,343,346,348],[99,145,194,240,241,242,361,364],[99,145,159,170,186,193,208,210,211,213,216,221,222,230,233,234,236,237,238,239,243,245,269,270,314,328,329,364],[99,145,159,193,210,212,216,330,352],[99,145,159,193,211,213],[87,99,145,159,170,193,201,203,210,211,214,222,239,240,242,243,245,311,361,364],[99,145,159,170,186,193,205,208,209,213],[99,145,206,268],[99,145,159,193,206,211,222],[99,145,159,193,212,223],[99,145,159,193],[99,145,226],[99,145,225],[99,145,227],[99,145,212,224,226,230],[99,145,212,224,226],[99,145,159,193,205,212,213,219,227,228,229],[87,99,145,304,305,306],[99,145,262],[87,99,145,203],[87,99,145,236],[87,99,145,194,239,242,245,361,364],[99,145,203,384,385],[87,99,145,254],[87,99,145,170,186,193,201,248,250,252,253,364],[99,145,213,219,236],[99,145,235],[87,99,145,157,159,170,193,201,254,263,361,362,363],[83,87,88,89,90,99,145,195,196,361,404],[99,145,150],[99,145,333,334,335],[99,145,333],[99,145,373],[99,145,375],[99,145,377],[99,145,379],[99,145,382],[99,145,386],[91,93,99,145,361,366,370,372,374,376,378,380,383,387,389,395,396,398,405,406,407],[99,145,388],[99,145,394],[99,145,250],[99,145,397],[99,144,145,227,228,229,230,399,400,401,404],[99,145,193],[87,91,99,145,159,161,170,193,195,196,197,199,201,214,353,360,364,404],[87,99,145,433,451],[87,99,145,433,451,454],[87,99,145,432,433,451,454],[99,145,434,435,452,453,454,455,456,457,458,459,460,461,462,463,464,465,466,467,468,469,470,471,472],[87,99,145,432,433,451],[99,112,116,145,186],[99,112,145,175,186],[99,107,145],[99,109,112,145,183,186],[99,145,164,183],[99,107,145,193],[99,109,112,145,164,186],[99,104,105,108,111,145,156,175,186],[99,112,119,145],[99,104,110,145],[99,112,133,134,145],[99,108,112,145,178,186,193],[99,133,145,193],[99,106,107,145,193],[99,112,145],[99,106,107,108,109,110,111,112,113,114,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,134,135,136,137,138,139,145],[99,112,127,145],[99,112,119,120,145],[99,110,112,120,121,145],[99,111,145],[99,104,107,112,145],[99,112,116,120,121,145],[99,116,145],[99,110,112,115,145,186],[99,104,109,112,119,145],[99,145,175],[99,107,112,133,145,191,193]],"fileInfos":[{"version":"c430d44666289dae81f30fa7b2edebf186ecc91a2d4c71266ea6ae76388792e1","affectsGlobalScope":true,"impliedFormat":1},{"version":"45b7ab580deca34ae9729e97c13cfd999df04416a79116c3bfb483804f85ded4","impliedFormat":1},{"version":"3facaf05f0c5fc569c5649dd359892c98a85557e3e0c847964caeb67076f4d75","impliedFormat":1},{"version":"e44bb8bbac7f10ecc786703fe0a6a4b952189f908707980ba8f3c8975a760962","impliedFormat":1},{"version":"5e1c4c362065a6b95ff952c0eab010f04dcd2c3494e813b493ecfd4fcb9fc0d8","impliedFormat":1},{"version":"68d73b4a11549f9c0b7d352d10e91e5dca8faa3322bfb77b661839c42b1ddec7","impliedFormat":1},{"version":"5efce4fc3c29ea84e8928f97adec086e3dc876365e0982cc8479a07954a3efd4","impliedFormat":1},{"version":"feecb1be483ed332fad555aff858affd90a48ab19ba7272ee084704eb7167569","impliedFormat":1},{"version":"ee7bad0c15b58988daa84371e0b89d313b762ab83cb5b31b8a2d1162e8eb41c2","impliedFormat":1},{"version":"27bdc30a0e32783366a5abeda841bc22757c1797de8681bbe81fbc735eeb1c10","impliedFormat":1},{"version":"8fd575e12870e9944c7e1d62e1f5a73fcf23dd8d3a321f2a2c74c20d022283fe","impliedFormat":1},{"version":"2ab096661c711e4a81cc464fa1e6feb929a54f5340b46b0a07ac6bbf857471f0","impliedFormat":1},{"version":"080941d9f9ff9307f7e27a83bcd888b7c8270716c39af943532438932ec1d0b9","affectsGlobalScope":true,"impliedFormat":1},{"version":"2e80ee7a49e8ac312cc11b77f1475804bee36b3b2bc896bead8b6e1266befb43","affectsGlobalScope":true,"impliedFormat":1},{"version":"c57796738e7f83dbc4b8e65132f11a377649c00dd3eee333f672b8f0a6bea671","affectsGlobalScope":true,"impliedFormat":1},{"version":"dc2df20b1bcdc8c2d34af4926e2c3ab15ffe1160a63e58b7e09833f616efff44","affectsGlobalScope":true,"impliedFormat":1},{"version":"515d0b7b9bea2e31ea4ec968e9edd2c39d3eebf4a2d5cbd04e88639819ae3b71","affectsGlobalScope":true,"impliedFormat":1},{"version":"0559b1f683ac7505ae451f9a96ce4c3c92bdc71411651ca6ddb0e88baaaad6a3","affectsGlobalScope":true,"impliedFormat":1},{"version":"0dc1e7ceda9b8b9b455c3a2d67b0412feab00bd2f66656cd8850e8831b08b537","affectsGlobalScope":true,"impliedFormat":1},{"version":"ce691fb9e5c64efb9547083e4a34091bcbe5bdb41027e310ebba8f7d96a98671","affectsGlobalScope":true,"impliedFormat":1},{"version":"8d697a2a929a5fcb38b7a65594020fcef05ec1630804a33748829c5ff53640d0","affectsGlobalScope":true,"impliedFormat":1},{"version":"4ff2a353abf8a80ee399af572debb8faab2d33ad38c4b4474cff7f26e7653b8d","affectsGlobalScope":true,"impliedFormat":1},{"version":"fb0f136d372979348d59b3f5020b4cdb81b5504192b1cacff5d1fbba29378aa1","affectsGlobalScope":true,"impliedFormat":1},{"version":"d15bea3d62cbbdb9797079416b8ac375ae99162a7fba5de2c6c505446486ac0a","affectsGlobalScope":true,"impliedFormat":1},{"version":"68d18b664c9d32a7336a70235958b8997ebc1c3b8505f4f1ae2b7e7753b87618","affectsGlobalScope":true,"impliedFormat":1},{"version":"eb3d66c8327153d8fa7dd03f9c58d351107fe824c79e9b56b462935176cdf12a","affectsGlobalScope":true,"impliedFormat":1},{"version":"38f0219c9e23c915ef9790ab1d680440d95419ad264816fa15009a8851e79119","affectsGlobalScope":true,"impliedFormat":1},{"version":"69ab18c3b76cd9b1be3d188eaf8bba06112ebbe2f47f6c322b5105a6fbc45a2e","affectsGlobalScope":true,"impliedFormat":1},{"version":"a680117f487a4d2f30ea46f1b4b7f58bef1480456e18ba53ee85c2746eeca012","affectsGlobalScope":true,"impliedFormat":1},{"version":"2f11ff796926e0832f9ae148008138ad583bd181899ab7dd768a2666700b1893","affectsGlobalScope":true,"impliedFormat":1},{"version":"4de680d5bb41c17f7f68e0419412ca23c98d5749dcaaea1896172f06435891fc","affectsGlobalScope":true,"impliedFormat":1},{"version":"954296b30da6d508a104a3a0b5d96b76495c709785c1d11610908e63481ee667","affectsGlobalScope":true,"impliedFormat":1},{"version":"ac9538681b19688c8eae65811b329d3744af679e0bdfa5d842d0e32524c73e1c","affectsGlobalScope":true,"impliedFormat":1},{"version":"0a969edff4bd52585473d24995c5ef223f6652d6ef46193309b3921d65dd4376","affectsGlobalScope":true,"impliedFormat":1},{"version":"9e9fbd7030c440b33d021da145d3232984c8bb7916f277e8ffd3dc2e3eae2bdb","affectsGlobalScope":true,"impliedFormat":1},{"version":"811ec78f7fefcabbda4bfa93b3eb67d9ae166ef95f9bff989d964061cbf81a0c","affectsGlobalScope":true,"impliedFormat":1},{"version":"717937616a17072082152a2ef351cb51f98802fb4b2fdabd32399843875974ca","affectsGlobalScope":true,"impliedFormat":1},{"version":"d7e7d9b7b50e5f22c915b525acc5a49a7a6584cf8f62d0569e557c5cfc4b2ac2","affectsGlobalScope":true,"impliedFormat":1},{"version":"71c37f4c9543f31dfced6c7840e068c5a5aacb7b89111a4364b1d5276b852557","affectsGlobalScope":true,"impliedFormat":1},{"version":"576711e016cf4f1804676043e6a0a5414252560eb57de9faceee34d79798c850","affectsGlobalScope":true,"impliedFormat":1},{"version":"89c1b1281ba7b8a96efc676b11b264de7a8374c5ea1e6617f11880a13fc56dc6","affectsGlobalScope":true,"impliedFormat":1},{"version":"74f7fa2d027d5b33eb0471c8e82a6c87216223181ec31247c357a3e8e2fddc5b","affectsGlobalScope":true,"impliedFormat":1},{"version":"d6d7ae4d1f1f3772e2a3cde568ed08991a8ae34a080ff1151af28b7f798e22ca","affectsGlobalScope":true,"impliedFormat":1},{"version":"063600664504610fe3e99b717a1223f8b1900087fab0b4cad1496a114744f8df","affectsGlobalScope":true,"impliedFormat":1},{"version":"934019d7e3c81950f9a8426d093458b65d5aff2c7c1511233c0fd5b941e608ab","affectsGlobalScope":true,"impliedFormat":1},{"version":"52ada8e0b6e0482b728070b7639ee42e83a9b1c22d205992756fe020fd9f4a47","affectsGlobalScope":true,"impliedFormat":1},{"version":"3bdefe1bfd4d6dee0e26f928f93ccc128f1b64d5d501ff4a8cf3c6371200e5e6","affectsGlobalScope":true,"impliedFormat":1},{"version":"59fb2c069260b4ba00b5643b907ef5d5341b167e7d1dbf58dfd895658bda2867","affectsGlobalScope":true,"impliedFormat":1},{"version":"639e512c0dfc3fad96a84caad71b8834d66329a1f28dc95e3946c9b58176c73a","affectsGlobalScope":true,"impliedFormat":1},{"version":"368af93f74c9c932edd84c58883e736c9e3d53cec1fe24c0b0ff451f529ceab1","affectsGlobalScope":true,"impliedFormat":1},{"version":"af3dd424cf267428f30ccfc376f47a2c0114546b55c44d8c0f1d57d841e28d74","affectsGlobalScope":true,"impliedFormat":1},{"version":"995c005ab91a498455ea8dfb63aa9f83fa2ea793c3d8aa344be4a1678d06d399","affectsGlobalScope":true,"impliedFormat":1},{"version":"959d36cddf5e7d572a65045b876f2956c973a586da58e5d26cde519184fd9b8a","affectsGlobalScope":true,"impliedFormat":1},{"version":"965f36eae237dd74e6cca203a43e9ca801ce38824ead814728a2807b1910117d","affectsGlobalScope":true,"impliedFormat":1},{"version":"3925a6c820dcb1a06506c90b1577db1fdbf7705d65b62b99dce4be75c637e26b","affectsGlobalScope":true,"impliedFormat":1},{"version":"0a3d63ef2b853447ec4f749d3f368ce642264246e02911fcb1590d8c161b8005","affectsGlobalScope":true,"impliedFormat":1},{"version":"8cdf8847677ac7d20486e54dd3fcf09eda95812ac8ace44b4418da1bbbab6eb8","affectsGlobalScope":true,"impliedFormat":1},{"version":"8444af78980e3b20b49324f4a16ba35024fef3ee069a0eb67616ea6ca821c47a","affectsGlobalScope":true,"impliedFormat":1},{"version":"3287d9d085fbd618c3971944b65b4be57859f5415f495b33a6adc994edd2f004","affectsGlobalScope":true,"impliedFormat":1},{"version":"b4b67b1a91182421f5df999988c690f14d813b9850b40acd06ed44691f6727ad","affectsGlobalScope":true,"impliedFormat":1},{"version":"df83c2a6c73228b625b0beb6669c7ee2a09c914637e2d35170723ad49c0f5cd4","affectsGlobalScope":true,"impliedFormat":1},{"version":"436aaf437562f276ec2ddbee2f2cdedac7664c1e4c1d2c36839ddd582eeb3d0a","affectsGlobalScope":true,"impliedFormat":1},{"version":"8e3c06ea092138bf9fa5e874a1fdbc9d54805d074bee1de31b99a11e2fec239d","affectsGlobalScope":true,"impliedFormat":1},{"version":"87dc0f382502f5bbce5129bdc0aea21e19a3abbc19259e0b43ae038a9fc4e326","affectsGlobalScope":true,"impliedFormat":1},{"version":"b1cb28af0c891c8c96b2d6b7be76bd394fddcfdb4709a20ba05a7c1605eea0f9","affectsGlobalScope":true,"impliedFormat":1},{"version":"2fef54945a13095fdb9b84f705f2b5994597640c46afeb2ce78352fab4cb3279","affectsGlobalScope":true,"impliedFormat":1},{"version":"ac77cb3e8c6d3565793eb90a8373ee8033146315a3dbead3bde8db5eaf5e5ec6","affectsGlobalScope":true,"impliedFormat":1},{"version":"56e4ed5aab5f5920980066a9409bfaf53e6d21d3f8d020c17e4de584d29600ad","affectsGlobalScope":true,"impliedFormat":1},{"version":"4ece9f17b3866cc077099c73f4983bddbcb1dc7ddb943227f1ec070f529dedd1","affectsGlobalScope":true,"impliedFormat":1},{"version":"0a6282c8827e4b9a95f4bf4f5c205673ada31b982f50572d27103df8ceb8013c","affectsGlobalScope":true,"impliedFormat":1},{"version":"1c9319a09485199c1f7b0498f2988d6d2249793ef67edda49d1e584746be9032","affectsGlobalScope":true,"impliedFormat":1},{"version":"e3a2a0cee0f03ffdde24d89660eba2685bfbdeae955a6c67e8c4c9fd28928eeb","affectsGlobalScope":true,"impliedFormat":1},{"version":"811c71eee4aa0ac5f7adf713323a5c41b0cf6c4e17367a34fbce379e12bbf0a4","affectsGlobalScope":true,"impliedFormat":1},{"version":"51ad4c928303041605b4d7ae32e0c1ee387d43a24cd6f1ebf4a2699e1076d4fa","affectsGlobalScope":true,"impliedFormat":1},{"version":"60037901da1a425516449b9a20073aa03386cce92f7a1fd902d7602be3a7c2e9","affectsGlobalScope":true,"impliedFormat":1},{"version":"d4b1d2c51d058fc21ec2629fff7a76249dec2e36e12960ea056e3ef89174080f","affectsGlobalScope":true,"impliedFormat":1},{"version":"22adec94ef7047a6c9d1af3cb96be87a335908bf9ef386ae9fd50eeb37f44c47","affectsGlobalScope":true,"impliedFormat":1},{"version":"196cb558a13d4533a5163286f30b0509ce0210e4b316c56c38d4c0fd2fb38405","affectsGlobalScope":true,"impliedFormat":1},{"version":"73f78680d4c08509933daf80947902f6ff41b6230f94dd002ae372620adb0f60","affectsGlobalScope":true,"impliedFormat":1},{"version":"c5239f5c01bcfa9cd32f37c496cf19c61d69d37e48be9de612b541aac915805b","affectsGlobalScope":true,"impliedFormat":1},{"version":"8e7f8264d0fb4c5339605a15daadb037bf238c10b654bb3eee14208f860a32ea","affectsGlobalScope":true,"impliedFormat":1},{"version":"782dec38049b92d4e85c1585fbea5474a219c6984a35b004963b00beb1aab538","affectsGlobalScope":true,"impliedFormat":1},{"version":"0990a7576222f248f0a3b888adcb7389f957928ce2afb1cd5128169086ff4d29","impliedFormat":1},{"version":"eb5b19b86227ace1d29ea4cf81387279d04bb34051e944bc53df69f58914b788","affectsGlobalScope":true,"impliedFormat":1},{"version":"ac51dd7d31333793807a6abaa5ae168512b6131bd41d9c5b98477fc3b7800f9f","impliedFormat":1},{"version":"87d9d29dbc745f182683f63187bf3d53fd8673e5fca38ad5eaab69798ed29fbc","impliedFormat":1},{"version":"f5977813ad5baf0c16eb027f2474cd8c8adea5d94fb595141ce3478efd8ac7c4","affectsGlobalScope":true,"impliedFormat":1},{"version":"cc69795d9954ee4ad57545b10c7bf1a7260d990231b1685c147ea71a6faa265c","impliedFormat":1},{"version":"8bc6c94ff4f2af1f4023b7bb2379b08d3d7dd80c698c9f0b07431ea16101f05f","impliedFormat":1},{"version":"1b61d259de5350f8b1e5db06290d31eaebebc6baafd5f79d314b5af9256d7153","impliedFormat":1},{"version":"57194e1f007f3f2cbef26fa299d4c6b21f4623a2eddc63dfeef79e38e187a36e","impliedFormat":1},{"version":"0f6666b58e9276ac3a38fdc80993d19208442d6027ab885580d93aec76b4ef00","impliedFormat":1},{"version":"05fd364b8ef02fb1e174fbac8b825bdb1e5a36a016997c8e421f5fab0a6da0a0","impliedFormat":1},{"version":"70521b6ab0dcba37539e5303104f29b721bfb2940b2776da4cc818c07e1fefc1","affectsGlobalScope":true,"impliedFormat":1},{"version":"ab41ef1f2cdafb8df48be20cd969d875602483859dc194e9c97c8a576892c052","affectsGlobalScope":true,"impliedFormat":1},{"version":"d153a11543fd884b596587ccd97aebbeed950b26933ee000f94009f1ab142848","affectsGlobalScope":true,"impliedFormat":1},{"version":"21d819c173c0cf7cc3ce57c3276e77fd9a8a01d35a06ad87158781515c9a438a","impliedFormat":1},{"version":"98cffbf06d6bab333473c70a893770dbe990783904002c4f1a960447b4b53dca","affectsGlobalScope":true,"impliedFormat":1},{"version":"ba481bca06f37d3f2c137ce343c7d5937029b2468f8e26111f3c9d9963d6568d","affectsGlobalScope":true,"impliedFormat":1},{"version":"6d9ef24f9a22a88e3e9b3b3d8c40ab1ddb0853f1bfbd5c843c37800138437b61","affectsGlobalScope":true,"impliedFormat":1},{"version":"1db0b7dca579049ca4193d034d835f6bfe73096c73663e5ef9a0b5779939f3d0","affectsGlobalScope":true,"impliedFormat":1},{"version":"9798340ffb0d067d69b1ae5b32faa17ab31b82466a3fc00d8f2f2df0c8554aaa","affectsGlobalScope":true,"impliedFormat":1},{"version":"f26b11d8d8e4b8028f1c7d618b22274c892e4b0ef5b3678a8ccbad85419aef43","affectsGlobalScope":true,"impliedFormat":1},{"version":"5929864ce17fba74232584d90cb721a89b7ad277220627cc97054ba15a98ea8f","impliedFormat":1},{"version":"763fe0f42b3d79b440a9b6e51e9ba3f3f91352469c1e4b3b67bfa4ff6352f3f4","impliedFormat":1},{"version":"25c8056edf4314820382a5fdb4bb7816999acdcb929c8f75e3f39473b87e85bc","impliedFormat":1},{"version":"c464d66b20788266e5353b48dc4aa6bc0dc4a707276df1e7152ab0c9ae21fad8","impliedFormat":1},{"version":"78d0d27c130d35c60b5e5566c9f1e5be77caf39804636bc1a40133919a949f21","impliedFormat":1},{"version":"c6fd2c5a395f2432786c9cb8deb870b9b0e8ff7e22c029954fabdd692bff6195","impliedFormat":1},{"version":"1d6e127068ea8e104a912e42fc0a110e2aa5a66a356a917a163e8cf9a65e4a75","impliedFormat":1},{"version":"5ded6427296cdf3b9542de4471d2aa8d3983671d4cac0f4bf9c637208d1ced43","impliedFormat":1},{"version":"7f182617db458e98fc18dfb272d40aa2fff3a353c44a89b2c0ccb3937709bfb5","impliedFormat":1},{"version":"cadc8aced301244057c4e7e73fbcae534b0f5b12a37b150d80e5a45aa4bebcbd","impliedFormat":1},{"version":"385aab901643aa54e1c36f5ef3107913b10d1b5bb8cbcd933d4263b80a0d7f20","impliedFormat":1},{"version":"9670d44354bab9d9982eca21945686b5c24a3f893db73c0dae0fd74217a4c219","impliedFormat":1},{"version":"0b8a9268adaf4da35e7fa830c8981cfa22adbbe5b3f6f5ab91f6658899e657a7","impliedFormat":1},{"version":"11396ed8a44c02ab9798b7dca436009f866e8dae3c9c25e8c1fbc396880bf1bb","impliedFormat":1},{"version":"ba7bc87d01492633cb5a0e5da8a4a42a1c86270e7b3d2dea5d156828a84e4882","impliedFormat":1},{"version":"4893a895ea92c85345017a04ed427cbd6a1710453338df26881a6019432febdd","impliedFormat":1},{"version":"c21dc52e277bcfc75fac0436ccb75c204f9e1b3fa5e12729670910639f27343e","impliedFormat":1},{"version":"13f6f39e12b1518c6650bbb220c8985999020fe0f21d818e28f512b7771d00f9","impliedFormat":1},{"version":"9b5369969f6e7175740bf51223112ff209f94ba43ecd3bb09eefff9fd675624a","impliedFormat":1},{"version":"4fe9e626e7164748e8769bbf74b538e09607f07ed17c2f20af8d680ee49fc1da","impliedFormat":1},{"version":"24515859bc0b836719105bb6cc3d68255042a9f02a6022b3187948b204946bd2","impliedFormat":1},{"version":"ea0148f897b45a76544ae179784c95af1bd6721b8610af9ffa467a518a086a43","impliedFormat":1},{"version":"24c6a117721e606c9984335f71711877293a9651e44f59f3d21c1ea0856f9cc9","impliedFormat":1},{"version":"dd3273ead9fbde62a72949c97dbec2247ea08e0c6952e701a483d74ef92d6a17","impliedFormat":1},{"version":"405822be75ad3e4d162e07439bac80c6bcc6dbae1929e179cf467ec0b9ee4e2e","impliedFormat":1},{"version":"0db18c6e78ea846316c012478888f33c11ffadab9efd1cc8bcc12daded7a60b6","impliedFormat":1},{"version":"e61be3f894b41b7baa1fbd6a66893f2579bfad01d208b4ff61daef21493ef0a8","impliedFormat":1},{"version":"bd0532fd6556073727d28da0edfd1736417a3f9f394877b6d5ef6ad88fba1d1a","impliedFormat":1},{"version":"89167d696a849fce5ca508032aabfe901c0868f833a8625d5a9c6e861ef935d2","impliedFormat":1},{"version":"615ba88d0128ed16bf83ef8ccbb6aff05c3ee2db1cc0f89ab50a4939bfc1943f","impliedFormat":1},{"version":"a4d551dbf8746780194d550c88f26cf937caf8d56f102969a110cfaed4b06656","impliedFormat":1},{"version":"8bd86b8e8f6a6aa6c49b71e14c4ffe1211a0e97c80f08d2c8cc98838006e4b88","impliedFormat":1},{"version":"317e63deeb21ac07f3992f5b50cdca8338f10acd4fbb7257ebf56735bf52ab00","impliedFormat":1},{"version":"4732aec92b20fb28c5fe9ad99521fb59974289ed1e45aecb282616202184064f","impliedFormat":1},{"version":"2e85db9e6fd73cfa3d7f28e0ab6b55417ea18931423bd47b409a96e4a169e8e6","impliedFormat":1},{"version":"c46e079fe54c76f95c67fb89081b3e399da2c7d109e7dca8e4b58d83e332e605","impliedFormat":1},{"version":"bf67d53d168abc1298888693338cb82854bdb2e69ef83f8a0092093c2d562107","impliedFormat":1},{"version":"b52476feb4a0cbcb25e5931b930fc73cb6643fb1a5060bf8a3dda0eeae5b4b68","affectsGlobalScope":true,"impliedFormat":1},{"version":"e2677634fe27e87348825bb041651e22d50a613e2fdf6a4a3ade971d71bac37e","impliedFormat":1},{"version":"7394959e5a741b185456e1ef5d64599c36c60a323207450991e7a42e08911419","impliedFormat":1},{"version":"8c0bcd6c6b67b4b503c11e91a1fb91522ed585900eab2ab1f61bba7d7caa9d6f","impliedFormat":1},{"version":"8cd19276b6590b3ebbeeb030ac271871b9ed0afc3074ac88a94ed2449174b776","affectsGlobalScope":true,"impliedFormat":1},{"version":"696eb8d28f5949b87d894b26dc97318ef944c794a9a4e4f62360cd1d1958014b","impliedFormat":1},{"version":"3f8fa3061bd7402970b399300880d55257953ee6d3cd408722cb9ac20126460c","impliedFormat":1},{"version":"35ec8b6760fd7138bbf5809b84551e31028fb2ba7b6dc91d95d098bf212ca8b4","affectsGlobalScope":true,"impliedFormat":1},{"version":"5524481e56c48ff486f42926778c0a3cce1cc85dc46683b92b1271865bcf015a","impliedFormat":1},{"version":"68bd56c92c2bd7d2339457eb84d63e7de3bd56a69b25f3576e1568d21a162398","affectsGlobalScope":true,"impliedFormat":1},{"version":"3e93b123f7c2944969d291b35fed2af79a6e9e27fdd5faa99748a51c07c02d28","impliedFormat":1},{"version":"9d19808c8c291a9010a6c788e8532a2da70f811adb431c97520803e0ec649991","impliedFormat":1},{"version":"87aad3dd9752067dc875cfaa466fc44246451c0c560b820796bdd528e29bef40","impliedFormat":1},{"version":"4aacb0dd020eeaef65426153686cc639a78ec2885dc72ad220be1d25f1a439df","impliedFormat":1},{"version":"f0bd7e6d931657b59605c44112eaf8b980ba7f957a5051ed21cb93d978cf2f45","impliedFormat":1},{"version":"8db0ae9cb14d9955b14c214f34dae1b9ef2baee2fe4ce794a4cd3ac2531e3255","affectsGlobalScope":true,"impliedFormat":1},{"version":"15fc6f7512c86810273af28f224251a5a879e4261b4d4c7e532abfbfc3983134","impliedFormat":1},{"version":"58adba1a8ab2d10b54dc1dced4e41f4e7c9772cbbac40939c0dc8ce2cdb1d442","impliedFormat":1},{"version":"641942a78f9063caa5d6b777c99304b7d1dc7328076038c6d94d8a0b81fc95c1","impliedFormat":1},{"version":"2de7636e6fbb9e54a61a38bcb7505b94ec5be61197fe9e840cff629ca920c4bc","impliedFormat":1},{"version":"855cd5f7eb396f5f1ab1bc0f8580339bff77b68a770f84c6b254e319bbfd1ac7","impliedFormat":1},{"version":"5650cf3dace09e7c25d384e3e6b818b938f68f4e8de96f52d9c5a1b3db068e86","impliedFormat":1},{"version":"1354ca5c38bd3fd3836a68e0f7c9f91f172582ba30ab15bb8c075891b91502b7","affectsGlobalScope":true,"impliedFormat":1},{"version":"7e20d899c28ca26a2a7afc98beaa69e63ff7fba0a8bc47b4e3bf3ede5e09e424","impliedFormat":1},{"version":"2d2fcaab481b31a5882065c7951255703ddbe1c0e507af56ea42d79ac3911201","impliedFormat":1},{"version":"a192fe8ec33f75edbc8d8f3ed79f768dfae11ff5735e7fe52bfa69956e46d78d","impliedFormat":1},{"version":"ca867399f7db82df981d6915bcbb2d81131d7d1ef683bc782b59f71dda59bc85","affectsGlobalScope":true,"impliedFormat":1},{"version":"372413016d17d804e1d139418aca0c68e47a83fb6669490857f4b318de8cccb3","affectsGlobalScope":true,"impliedFormat":1},{"version":"9e043a1bc8fbf2a255bccf9bf27e0f1caf916c3b0518ea34aa72357c0afd42ec","impliedFormat":1},{"version":"b4f70ec656a11d570e1a9edce07d118cd58d9760239e2ece99306ee9dfe61d02","impliedFormat":1},{"version":"3bc2f1e2c95c04048212c569ed38e338873f6a8593930cf5a7ef24ffb38fc3b6","impliedFormat":1},{"version":"6e70e9570e98aae2b825b533aa6292b6abd542e8d9f6e9475e88e1d7ba17c866","impliedFormat":1},{"version":"f9d9d753d430ed050dc1bf2667a1bab711ccbb1c1507183d794cc195a5b085cc","impliedFormat":1},{"version":"9eece5e586312581ccd106d4853e861aaaa1a39f8e3ea672b8c3847eedd12f6e","impliedFormat":1},{"version":"085f552d005479e2e6a7311cdbbe5d8c55c497b4d19274285df161ee9684cd9c","impliedFormat":1},{"version":"37ba7b45141a45ce6e80e66f2a96c8a5ab1bcef0fc2d0f56bb58df96ec67e972","impliedFormat":1},{"version":"45650f47bfb376c8a8ed39d4bcda5902ab899a3150029684ee4c10676d9fbaee","impliedFormat":1},{"version":"007faacc9268357caa21d24169f3f3f2497af3e9241308df2d89f6e6d9bb3f2e","affectsGlobalScope":true,"impliedFormat":1},{"version":"74cf591a0f63db318651e0e04cb55f8791385f86e987a67fd4d2eaab8191f730","impliedFormat":1},{"version":"5eab9b3dc9b34f185417342436ec3f106898da5f4801992d8ff38ab3aff346b5","impliedFormat":1},{"version":"12ed4559eba17cd977aa0db658d25c4047067444b51acfdcbf38470630642b23","affectsGlobalScope":true,"impliedFormat":1},{"version":"f3ffabc95802521e1e4bcba4c88d8615176dc6e09111d920c7a213bdda6e1d65","impliedFormat":1},{"version":"809821b8a065e3234a55b3a9d7846231ed18d66dd749f2494c66288d890daf7f","impliedFormat":1},{"version":"ae56f65caf3be91108707bd8dfbccc2a57a91feb5daabf7165a06a945545ed26","impliedFormat":1},{"version":"a136d5de521da20f31631a0a96bf712370779d1c05b7015d7019a9b2a0446ca9","impliedFormat":1},{"version":"c3b41e74b9a84b88b1dca61ec39eee25c0dbc8e7d519ba11bb070918cfacf656","affectsGlobalScope":true,"impliedFormat":1},{"version":"4737a9dc24d0e68b734e6cfbcea0c15a2cfafeb493485e27905f7856988c6b29","affectsGlobalScope":true,"impliedFormat":1},{"version":"36d8d3e7506b631c9582c251a2c0b8a28855af3f76719b12b534c6edf952748d","impliedFormat":1},{"version":"1ca69210cc42729e7ca97d3a9ad48f2e9cb0042bada4075b588ae5387debd318","impliedFormat":1},{"version":"f5ebe66baaf7c552cfa59d75f2bfba679f329204847db3cec385acda245e574e","impliedFormat":1},{"version":"ed59add13139f84da271cafd32e2171876b0a0af2f798d0c663e8eeb867732cf","affectsGlobalScope":true,"impliedFormat":1},{"version":"b7c5e2ea4a9749097c347454805e933844ed207b6eefec6b7cfd418b5f5f7b28","impliedFormat":1},{"version":"b1810689b76fd473bd12cc9ee219f8e62f54a7d08019a235d07424afbf074d25","impliedFormat":1},{"version":"8caa5c86be1b793cd5f599e27ecb34252c41e011980f7d61ae4989a149ff6ccc","impliedFormat":1},{"version":"f9fd93190acb1ffe0bc0fb395df979452f8d625071e9ffc8636e4dfb86ab2508","impliedFormat":1},{"version":"5f41fd8732a89e940c58ce22206e3df85745feb8983e2b4c6257fb8cbb118493","impliedFormat":1},{"version":"17ed71200119e86ccef2d96b73b02ce8854b76ad6bd21b5021d4269bec527b5f","impliedFormat":1},{"version":"1cfa8647d7d71cb03847d616bd79320abfc01ddea082a49569fda71ac5ece66b","impliedFormat":1},{"version":"bb7a61dd55dc4b9422d13da3a6bb9cc5e89be888ef23bbcf6558aa9726b89a1c","impliedFormat":1},{"version":"db6d2d9daad8a6d83f281af12ce4355a20b9a3e71b82b9f57cddcca0a8964a96","impliedFormat":1},{"version":"cfe4ef4710c3786b6e23dae7c086c70b4f4835a2e4d77b75d39f9046106e83d3","impliedFormat":1},{"version":"cbea99888785d49bb630dcbb1613c73727f2b5a2cf02e1abcaab7bcf8d6bf3c5","impliedFormat":1},{"version":"3a8bddb66b659f6bd2ff641fc71df8a8165bafe0f4b799cc298be5cd3755bb20","impliedFormat":1},{"version":"a86f82d646a739041d6702101afa82dcb935c416dd93cbca7fd754fd0282ce1f","impliedFormat":1},{"version":"2dad084c67e649f0f354739ec7df7c7df0779a28a4f55c97c6b6883ae850d1ce","impliedFormat":1},{"version":"fa5bbc7ab4130dd8cdc55ea294ec39f76f2bc507a0f75f4f873e38631a836ca7","impliedFormat":1},{"version":"df45ca1176e6ac211eae7ddf51336dc075c5314bc5c253651bae639defd5eec5","impliedFormat":1},{"version":"cf86de1054b843e484a3c9300d62fbc8c97e77f168bbffb131d560ca0474d4a8","impliedFormat":1},{"version":"196c960b12253fde69b204aa4fbf69470b26daf7a430855d7f94107a16495ab0","impliedFormat":1},{"version":"ee15ea5dd7a9fc9f5013832e5843031817a880bf0f24f37a29fd8337981aae07","impliedFormat":1},{"version":"bf24f6d35f7318e246010ffe9924395893c4e96d34324cde77151a73f078b9ad","impliedFormat":1},{"version":"ea53732769832d0f127ae16620bd5345991d26bf0b74e85e41b61b27d74ea90f","impliedFormat":1},{"version":"10595c7ff5094dd5b6a959ccb1c00e6a06441b4e10a87bc09c15f23755d34439","impliedFormat":1},{"version":"9620c1ff645afb4a9ab4044c85c26676f0a93e8c0e4b593aea03a89ccb47b6d0","impliedFormat":1},{"version":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","impliedFormat":1},{"version":"a9af0e608929aaf9ce96bd7a7b99c9360636c31d73670e4af09a09950df97841","impliedFormat":1},{"version":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","impliedFormat":1},{"version":"c86fe861cf1b4c46a0fb7d74dffe596cf679a2e5e8b1456881313170f092e3fa","impliedFormat":1},{"version":"08ed0b3f0166787f84a6606f80aa3b1388c7518d78912571b203817406e471da","impliedFormat":1},{"version":"47e5af2a841356a961f815e7c55d72554db0c11b4cba4d0caab91f8717846a94","impliedFormat":1},{"version":"65f43099ded6073336e697512d9b80f2d4fec3182b7b2316abf712e84104db00","impliedFormat":1},{"version":"f5f541902bf7ae0512a177295de9b6bcd6809ea38307a2c0a18bfca72212f368","impliedFormat":1},{"version":"b0decf4b6da3ebc52ea0c96095bdfaa8503acc4ac8e9081c5f2b0824835dd3bd","impliedFormat":1},{"version":"ca1b882a105a1972f82cc58e3be491e7d750a1eb074ffd13b198269f57ed9e1b","impliedFormat":1},{"version":"fc3e1c87b39e5ba1142f27ec089d1966da168c04a859a4f6aab64dceae162c2b","impliedFormat":1},{"version":"3b414b99a73171e1c4b7b7714e26b87d6c5cb03d200352da5342ab4088a54c85","impliedFormat":1},{"version":"61888522cec948102eba94d831c873200aa97d00d8989fdfd2a3e0ee75ec65a2","impliedFormat":1},{"version":"4e10622f89fea7b05dd9b52fb65e1e2b5cbd96d4cca3d9e1a60bb7f8a9cb86a1","impliedFormat":1},{"version":"74b2a5e5197bd0f2e0077a1ea7c07455bbea67b87b0869d9786d55104006784f","impliedFormat":1},{"version":"59bf32919de37809e101acffc120596a9e45fdbab1a99de5087f31fdc36e2f11","impliedFormat":1},{"version":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","impliedFormat":1},{"version":"faa03dffb64286e8304a2ca96dd1317a77db6bfc7b3fb385163648f67e535d77","impliedFormat":1},{"version":"c40c848daad198266370c1c72a7a8c3d18d2f50727c7859fcfefd3ff69a7f288","impliedFormat":1},{"version":"ac60bbee0d4235643cc52b57768b22de8c257c12bd8c2039860540cab1fa1d82","impliedFormat":1},{"version":"6428e6edd944ce6789afdf43f9376c1f2e4957eea34166177625aaff4c0da1a0","impliedFormat":1},{"version":"ada39cbb2748ab2873b7835c90c8d4620723aedf323550e8489f08220e477c7f","impliedFormat":1},{"version":"6e5f5cee603d67ee1ba6120815497909b73399842254fc1e77a0d5cdc51d8c9c","impliedFormat":1},{"version":"8dba67056cbb27628e9b9a1cba8e57036d359dceded0725c72a3abe4b6c79cd4","impliedFormat":1},{"version":"70f3814c457f54a7efe2d9ce9d2686de9250bb42eb7f4c539bd2280a42e52d33","impliedFormat":1},{"version":"154dd2e22e1e94d5bc4ff7726706bc0483760bae40506bdce780734f11f7ec47","impliedFormat":1},{"version":"ef61792acbfa8c27c9bd113f02731e66229f7d3a169e3c1993b508134f1a58e0","impliedFormat":1},{"version":"9c82171d836c47486074e4ca8e059735bf97b205e70b196535b5efd40cbe1bc5","impliedFormat":1},{"version":"0131e203d8560edb39678abe10db42564a068f98c4ebd1ed9ffe7279c78b3c81","impliedFormat":1},{"version":"f6404e7837b96da3ea4d38c4f1a3812c96c9dcdf264e93d5bdb199f983a3ef4b","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":"8b8f00491431fe82f060dfe8c7f2180a9fb239f3d851527db909b83230e75882","affectsGlobalScope":true,"impliedFormat":1},{"version":"db01d18853469bcb5601b9fc9826931cc84cc1a1944b33cad76fd6f1e3d8c544","affectsGlobalScope":true,"impliedFormat":1},{"version":"dba114fb6a32b355a9cfc26ca2276834d72fe0e94cd2c3494005547025015369","impliedFormat":1},{"version":"903e299a28282fa7b714586e28409ed73c3b63f5365519776bf78e8cf173db36","affectsGlobalScope":true,"impliedFormat":1},{"version":"fa6c12a7c0f6b84d512f200690bfc74819e99efae69e4c95c4cd30f6884c526e","impliedFormat":1},{"version":"f1c32f9ce9c497da4dc215c3bc84b722ea02497d35f9134db3bb40a8d918b92b","impliedFormat":1},{"version":"b73c319af2cc3ef8f6421308a250f328836531ea3761823b4cabbd133047aefa","affectsGlobalScope":true,"impliedFormat":1},{"version":"e433b0337b8106909e7953015e8fa3f2d30797cea27141d1c5b135365bb975a6","impliedFormat":1},{"version":"dd3900b24a6a8745efeb7ad27629c0f8a626470ac229c1d73f1fe29d67e44dca","impliedFormat":1},{"version":"ddff7fc6edbdc5163a09e22bf8df7bef75f75369ebd7ecea95ba55c4386e2441","impliedFormat":1},{"version":"106c6025f1d99fd468fd8bf6e5bda724e11e5905a4076c5d29790b6c3745e50c","impliedFormat":1},{"version":"ec29be0737d39268696edcec4f5e97ce26f449fa9b7afc2f0f99a86def34a418","impliedFormat":1},{"version":"aeab39e8e0b1a3b250434c3b2bb8f4d17bbec2a9dbce5f77e8a83569d3d2cbc2","impliedFormat":1},{"version":"ec6cba1c02c675e4dd173251b156792e8d3b0c816af6d6ad93f1a55d674591aa","impliedFormat":1},{"version":"b620391fe8060cf9bedc176a4d01366e6574d7a71e0ac0ab344a4e76576fcbb8","impliedFormat":1},{"version":"d729408dfde75b451530bcae944cf89ee8277e2a9df04d1f62f2abfd8b03c1e1","impliedFormat":1},{"version":"e15d3c84d5077bb4a3adee4c791022967b764dc41cb8fa3cfa44d4379b2c95f5","impliedFormat":1},{"version":"5f58e28cd22e8fc1ac1b3bc6b431869f1e7d0b39e2c21fbf79b9fa5195a85980","impliedFormat":1},{"version":"e1fc1a1045db5aa09366be2b330e4ce391550041fc3e925f60998ca0b647aa97","impliedFormat":1},{"version":"63533978dcda286422670f6e184ac516805a365fb37a086eeff4309e812f1402","impliedFormat":1},{"version":"43ba4f2fa8c698f5c304d21a3ef596741e8e85a810b7c1f9b692653791d8d97a","impliedFormat":1},{"version":"31fb49ef3aa3d76f0beb644984e01eab0ea222372ea9b49bb6533be5722d756c","impliedFormat":1},{"version":"33cd131e1461157e3e06b06916b5176e7a8ec3fce15a5cfe145e56de744e07d2","impliedFormat":1},{"version":"889ef863f90f4917221703781d9723278db4122d75596b01c429f7c363562b86","impliedFormat":1},{"version":"3556cfbab7b43da96d15a442ddbb970e1f2fc97876d055b6555d86d7ac57dae5","impliedFormat":1},{"version":"437751e0352c6e924ddf30e90849f1d9eb00ca78c94d58d6a37202ec84eb8393","impliedFormat":1},{"version":"48e8af7fdb2677a44522fd185d8c87deff4d36ee701ea003c6c780b1407a1397","impliedFormat":1},{"version":"d11308de5a36c7015bb73adb5ad1c1bdaac2baede4cc831a05cf85efa3cc7f2f","impliedFormat":1},{"version":"38e4684c22ed9319beda6765bab332c724103d3a966c2e5e1c5a49cf7007845f","impliedFormat":1},{"version":"f9812cfc220ecf7557183379531fa409acd249b9e5b9a145d0d52b76c20862de","affectsGlobalScope":true,"impliedFormat":1},{"version":"e650298721abc4f6ae851e60ae93ee8199791ceec4b544c3379862f81f43178c","impliedFormat":1},{"version":"2e4f37ffe8862b14d8e24ae8763daaa8340c0df0b859d9a9733def0eee7562d9","impliedFormat":1},{"version":"13283350547389802aa35d9f2188effaeac805499169a06ef5cd77ce2a0bd63f","impliedFormat":1},{"version":"680793958f6a70a44c8d9ae7d46b7a385361c69ac29dcab3ed761edce1c14ab8","impliedFormat":1},{"version":"6ac6715916fa75a1f7ebdfeacac09513b4d904b667d827b7535e84ff59679aff","impliedFormat":1},{"version":"42c169fb8c2d42f4f668c624a9a11e719d5d07dacbebb63cbcf7ef365b0a75b3","impliedFormat":1},{"version":"913ddbba170240070bd5921b8f33ea780021bdf42fbdfcd4fcb2691b1884ddde","impliedFormat":1},{"version":"b4e6d416466999ff40d3fe5ceb95f7a8bfb7ac2262580287ac1a8391e5362431","impliedFormat":1},{"version":"5fe23bd829e6be57d41929ac374ee9551ccc3c44cee893167b7b5b77be708014","impliedFormat":1},{"version":"0a626484617019fcfbfc3c1bc1f9e84e2913f1adb73692aa9075817404fb41a1","impliedFormat":1},{"version":"438c7513b1df91dcef49b13cd7a1c4720f91a36e88c1df731661608b7c055f10","impliedFormat":1},{"version":"cf185cc4a9a6d397f416dd28cca95c227b29f0f27b160060a95c0e5e36cda865","impliedFormat":1},{"version":"0086f3e4ad898fd7ca56bb223098acfacf3fa065595182aaf0f6c4a6a95e6fbd","impliedFormat":1},{"version":"efaa078e392f9abda3ee8ade3f3762ab77f9c50b184e6883063a911742a4c96a","impliedFormat":1},{"version":"54a8bb487e1dc04591a280e7a673cdfb272c83f61e28d8a64cf1ac2e63c35c51","impliedFormat":1},{"version":"021a9498000497497fd693dd315325484c58a71b5929e2bbb91f419b04b24cea","impliedFormat":1},{"version":"9385cdc09850950bc9b59cca445a3ceb6fcca32b54e7b626e746912e489e535e","impliedFormat":1},{"version":"2894c56cad581928bb37607810af011764a2f511f575d28c9f4af0f2ef02d1ab","impliedFormat":1},{"version":"0a72186f94215d020cb386f7dca81d7495ab6c17066eb07d0f44a5bf33c1b21a","impliedFormat":1},{"version":"84124384abae2f6f66b7fbfc03862d0c2c0b71b826f7dbf42c8085d31f1d3f95","impliedFormat":1},{"version":"63a8e96f65a22604eae82737e409d1536e69a467bb738bec505f4f97cce9d878","impliedFormat":1},{"version":"3fd78152a7031315478f159c6a5872c712ece6f01212c78ea82aef21cb0726e2","impliedFormat":1},{"version":"b01bd582a6e41457bc56e6f0f9de4cb17f33f5f3843a7cf8210ac9c18472fb0f","impliedFormat":1},{"version":"58b49e5c1def740360b5ae22ae2405cfac295fee74abd88d74ac4ea42502dc03","impliedFormat":1},{"version":"512fc15cca3a35b8dbbf6e23fe9d07e6f87ad03c895acffd3087ce09f352aad0","impliedFormat":1},{"version":"9a0946d15a005832e432ea0cd4da71b57797efb25b755cc07f32274296d62355","impliedFormat":1},{"version":"a52ff6c0a149e9f370372fc3c715d7f2beee1f3bab7980e271a7ab7d313ec677","impliedFormat":1},{"version":"fd933f824347f9edd919618a76cdb6a0c0085c538115d9a287fa0c7f59957ab3","impliedFormat":1},{"version":"6ac6715916fa75a1f7ebdfeacac09513b4d904b667d827b7535e84ff59679aff","impliedFormat":1},{"version":"6a1aa3e55bdc50503956c5cd09ae4cd72e3072692d742816f65c66ca14f4dfdd","impliedFormat":1},{"version":"ab75cfd9c4f93ffd601f7ca1753d6a9d953bbedfbd7a5b3f0436ac8a1de60dfa","impliedFormat":1},{"version":"f95180f03d827525ca4f990f49e17ec67198c316dd000afbe564655141f725cd","impliedFormat":1},{"version":"b73cbf0a72c8800cf8f96a9acfe94f3ad32ca71342a8908b8ae484d61113f647","impliedFormat":1},{"version":"bae6dd176832f6423966647382c0d7ba9e63f8c167522f09a982f086cd4e8b23","impliedFormat":1},{"version":"1364f64d2fb03bbb514edc42224abd576c064f89be6a990136774ecdd881a1da","impliedFormat":1},{"version":"c9958eb32126a3843deedda8c22fb97024aa5d6dd588b90af2d7f2bfac540f23","impliedFormat":1},{"version":"950fb67a59be4c2dbe69a5786292e60a5cb0e8612e0e223537784c731af55db1","impliedFormat":1},{"version":"e927c2c13c4eaf0a7f17e6022eee8519eb29ef42c4c13a31e81a611ab8c95577","impliedFormat":1},{"version":"07ca44e8d8288e69afdec7a31fa408ce6ab90d4f3d620006701d5544646da6aa","impliedFormat":1},{"version":"70246ad95ad8a22bdfe806cb5d383a26c0c6e58e7207ab9c431f1cb175aca657","impliedFormat":1},{"version":"f00f3aa5d64ff46e600648b55a79dcd1333458f7a10da2ed594d9f0a44b76d0b","impliedFormat":1},{"version":"772d8d5eb158b6c92412c03228bd9902ccb1457d7a705b8129814a5d1a6308fc","impliedFormat":1},{"version":"4e4475fba4ed93a72f167b061cd94a2e171b82695c56de9899275e880e06ba41","impliedFormat":1},{"version":"97c5f5d580ab2e4decd0a3135204050f9b97cd7908c5a8fbc041eadede79b2fa","impliedFormat":1},{"version":"c99a3a5f2215d5b9d735aa04cec6e61ed079d8c0263248e298ffe4604d4d0624","impliedFormat":1},{"version":"49b2375c586882c3ac7f57eba86680ff9742a8d8cb2fe25fe54d1b9673690d41","impliedFormat":1},{"version":"802e797bcab5663b2c9f63f51bdf67eff7c41bc64c0fd65e6da3e7941359e2f7","impliedFormat":1},{"version":"847e160d709c74cc714fbe1f99c41d3425b74cd47b1be133df1623cd87014089","impliedFormat":1},{"version":"9fee04f1e1afa50524862289b9f0b0fdc3735b80e2a0d684cec3b9ff3d94cecc","impliedFormat":1},{"version":"5cdc27fbc5c166fc5c763a30ac21cbac9859dc5ba795d3230db6d4e52a1965bb","impliedFormat":1},{"version":"6459054aabb306821a043e02b89d54da508e3a6966601a41e71c166e4ea1474f","impliedFormat":1},{"version":"f416c9c3eee9d47ff49132c34f96b9180e50485d435d5748f0e8b72521d28d2e","impliedFormat":1},{"version":"05c97cddbaf99978f83d96de2d8af86aded9332592f08ce4a284d72d0952c391","impliedFormat":1},{"version":"14e5cdec6f8ae82dfd0694e64903a0a54abdfe37e1d966de3d4128362acbf35f","impliedFormat":1},{"version":"bbc183d2d69f4b59fd4dd8799ffdf4eb91173d1c4ad71cce91a3811c021bf80c","impliedFormat":1},{"version":"7b6ff760c8a240b40dab6e4419b989f06a5b782f4710d2967e67c695ef3e93c4","impliedFormat":1},{"version":"8dbc4134a4b3623fc476be5f36de35c40f2768e2e3d9ed437e0d5f1c4cd850f6","impliedFormat":1},{"version":"4e06330a84dec7287f7ebdd64978f41a9f70a668d3b5edc69d5d4a50b9b376bb","impliedFormat":1},{"version":"65bfa72967fbe9fc33353e1ac03f0480aa2e2ea346d61ff3ea997dfd850f641a","impliedFormat":1},{"version":"c06f0bb92d1a1a5a6c6e4b5389a5664d96d09c31673296cb7da5fe945d54d786","impliedFormat":1},{"version":"f974e4a06953682a2c15d5bd5114c0284d5abf8bc0fe4da25cb9159427b70072","impliedFormat":1},{"version":"872caaa31423f4345983d643e4649fb30f548e9883a334d6d1c5fff68ede22d4","impliedFormat":1},{"version":"94404c4a878fe291e7578a2a80264c6f18e9f1933fbb57e48f0eb368672e389c","impliedFormat":1},{"version":"5c1b7f03aa88be854bc15810bfd5bd5a1943c5a7620e1c53eddd2a013996343e","impliedFormat":1},{"version":"09dfc64fcd6a2785867f2368419859a6cc5a8d4e73cbe2538f205b1642eb0f51","impliedFormat":1},{"version":"bcf6f0a323653e72199105a9316d91463ad4744c546d1271310818b8cef7c608","impliedFormat":1},{"version":"01aa917531e116485beca44a14970834687b857757159769c16b228eb1e49c5f","impliedFormat":1},{"version":"351475f9c874c62f9b45b1f0dc7e2704e80dfd5f1af83a3a9f841f9dfe5b2912","impliedFormat":1},{"version":"ac457ad39e531b7649e7b40ee5847606eac64e236efd76c5d12db95bf4eacd17","impliedFormat":1},{"version":"187a6fdbdecb972510b7555f3caacb44b58415da8d5825d03a583c4b73fde4cf","impliedFormat":1},{"version":"d4c3250105a612202289b3a266bb7e323db144f6b9414f9dea85c531c098b811","impliedFormat":1},{"version":"95b444b8c311f2084f0fb51c616163f950fb2e35f4eaa07878f313a2d36c98a4","impliedFormat":1},{"version":"741067675daa6d4334a2dc80a4452ca3850e89d5852e330db7cb2b5f867173b1","impliedFormat":1},{"version":"f8acecec1114f11690956e007d920044799aefeb3cece9e7f4b1f8a1d542b2c9","impliedFormat":1},{"version":"178071ccd043967a58c5d1a032db0ddf9bd139e7920766b537d9783e88eb615e","impliedFormat":1},{"version":"3a17f09634c50cce884721f54fd9e7b98e03ac505889c560876291fcf8a09e90","impliedFormat":1},{"version":"32531dfbb0cdc4525296648f53b2b5c39b64282791e2a8c765712e49e6461046","impliedFormat":1},{"version":"0ce1b2237c1c3df49748d61568160d780d7b26693bd9feb3acb0744a152cd86d","impliedFormat":1},{"version":"e489985388e2c71d3542612685b4a7db326922b57ac880f299da7026a4e8a117","impliedFormat":1},{"version":"5cad4158616d7793296dd41e22e1257440910ea8d01c7b75045d4dfb20c5a41a","impliedFormat":1},{"version":"04d3aad777b6af5bd000bfc409907a159fe77e190b9d368da4ba649cdc28d39e","affectsGlobalScope":true,"impliedFormat":1},{"version":"74efc1d6523bd57eb159c18d805db4ead810626bc5bc7002a2c7f483044b2e0f","impliedFormat":1},{"version":"19252079538942a69be1645e153f7dbbc1ef56b4f983c633bf31fe26aeac32cd","impliedFormat":1},{"version":"bc11f3ac00ac060462597add171220aed628c393f2782ac75dd29ff1e0db871c","impliedFormat":1},{"version":"616775f16134fa9d01fc677ad3f76e68c051a056c22ab552c64cc281a9686790","impliedFormat":1},{"version":"65c24a8baa2cca1de069a0ba9fba82a173690f52d7e2d0f1f7542d59d5eb4db0","impliedFormat":1},{"version":"f9fe6af238339a0e5f7563acee3178f51db37f32a2e7c09f85273098cee7ec49","impliedFormat":1},{"version":"3b0b1d352b8d2e47f1c4df4fb0678702aee071155b12ef0185fce9eb4fa4af1e","impliedFormat":1},{"version":"77e71242e71ebf8528c5802993697878f0533db8f2299b4d36aa015bae08a79c","impliedFormat":1},{"version":"a344403e7a7384e0e7093942533d309194ad0a53eca2a3100c0b0ab4d3932773","impliedFormat":1},{"version":"b7fff2d004c5879cae335db8f954eb1d61242d9f2d28515e67902032723caeab","impliedFormat":1},{"version":"5f3dc10ae646f375776b4e028d2bed039a93eebbba105694d8b910feebbe8b9c","impliedFormat":1},{"version":"bb18bf4a61a17b4a6199eb3938ecfa4a59eb7c40843ad4a82b975ab6f7e3d925","impliedFormat":1},{"version":"4545c1a1ceca170d5d83452dd7c4994644c35cf676a671412601689d9a62da35","impliedFormat":1},{"version":"e9b6fc05f536dfddcdc65dbcf04e09391b1c968ab967382e48924f5cb90d88e1","impliedFormat":1},{"version":"a2d648d333cf67b9aeac5d81a1a379d563a8ffa91ddd61c6179f68de724260ff","impliedFormat":1},{"version":"2b664c3cc544d0e35276e1fb2d4989f7d4b4027ffc64da34ec83a6ccf2e5c528","impliedFormat":1},{"version":"a3f41ed1b4f2fc3049394b945a68ae4fdefd49fa1739c32f149d32c0545d67f5","impliedFormat":1},{"version":"3cd8f0464e0939b47bfccbb9bb474a6d87d57210e304029cd8eb59c63a81935d","impliedFormat":1},{"version":"47699512e6d8bebf7be488182427189f999affe3addc1c87c882d36b7f2d0b0e","impliedFormat":1},{"version":"3026abd48e5e312f2328629ede6e0f770d21c3cd32cee705c450e589d015ee09","impliedFormat":1},{"version":"8b140b398a6afbd17cc97c38aea5274b2f7f39b1ae5b62952cfe65bf493e3e75","impliedFormat":1},{"version":"7663d2c19ce5ef8288c790edba3d45af54e58c84f1b37b1249f6d49d962f3d91","impliedFormat":1},{"version":"5cce3b975cdb72b57ae7de745b3c5de5790781ee88bcb41ba142f07c0fa02e97","impliedFormat":1},{"version":"00bd6ebe607246b45296aa2b805bd6a58c859acecda154bfa91f5334d7c175c6","impliedFormat":1},{"version":"ad036a85efcd9e5b4f7dd5c1a7362c8478f9a3b6c3554654ca24a29aa850a9c5","impliedFormat":1},{"version":"fedebeae32c5cdd1a85b4e0504a01996e4a8adf3dfa72876920d3dd6e42978e7","impliedFormat":1},{"version":"0d28b974a7605c4eda20c943b3fa9ae16cb452c1666fc9b8c341b879992c7612","impliedFormat":1},{"version":"cdf21eee8007e339b1b9945abf4a7b44930b1d695cc528459e68a3adc39a622e","impliedFormat":1},{"version":"db036c56f79186da50af66511d37d9fe77fa6793381927292d17f81f787bb195","impliedFormat":1},{"version":"87ac2fb61e629e777f4d161dff534c2023ee15afd9cb3b1589b9b1f014e75c58","impliedFormat":1},{"version":"13c8b4348db91e2f7d694adc17e7438e6776bc506d5c8f5de9ad9989707fa3fe","impliedFormat":1},{"version":"3c1051617aa50b38e9efaabce25e10a5dd9b1f42e372ef0e8a674076a68742ed","impliedFormat":1},{"version":"07a3e20cdcb0f1182f452c0410606711fbea922ca76929a41aacb01104bc0d27","impliedFormat":1},{"version":"1de80059b8078ea5749941c9f863aa970b4735bdbb003be4925c853a8b6b4450","impliedFormat":1},{"version":"1d079c37fa53e3c21ed3fa214a27507bda9991f2a41458705b19ed8c2b61173d","impliedFormat":1},{"version":"4cd4b6b1279e9d744a3825cbd7757bbefe7f0708f3f1069179ad535f19e8ed2c","impliedFormat":1},{"version":"5835a6e0d7cd2738e56b671af0e561e7c1b4fb77751383672f4b009f4e161d70","impliedFormat":1},{"version":"c0eeaaa67c85c3bb6c52b629ebbfd3b2292dc67e8c0ffda2fc6cd2f78dc471e6","impliedFormat":1},{"version":"4b7f74b772140395e7af67c4841be1ab867c11b3b82a51b1aeb692822b76c872","impliedFormat":1},{"version":"27be6622e2922a1b412eb057faa854831b95db9db5035c3f6d4b677b902ab3b7","impliedFormat":1},{"version":"b95a6f019095dd1d48fd04965b50dfd63e5743a6e75478343c46d2582a5132bf","impliedFormat":99},{"version":"c2008605e78208cfa9cd70bd29856b72dda7ad89df5dc895920f8e10bcb9cd0a","impliedFormat":99},{"version":"b97cb5616d2ab82a98ec9ada7b9e9cabb1f5da880ec50ea2b8dc5baa4cbf3c16","impliedFormat":99},{"version":"d23df9ff06ae8bf1dcb7cc933e97ae7da418ac77749fecee758bb43a8d69f840","affectsGlobalScope":true,"impliedFormat":1},{"version":"040c71dde2c406f869ad2f41e8d4ce579cc60c8dbe5aa0dd8962ac943b846572","affectsGlobalScope":true,"impliedFormat":1},{"version":"3586f5ea3cc27083a17bd5c9059ede9421d587286d5a47f4341a4c2d00e4fa91","impliedFormat":1},{"version":"a6df929821e62f4719551f7955b9f42c0cd53c1370aec2dd322e24196a7dfe33","impliedFormat":1},{"version":"b789bf89eb19c777ed1e956dbad0925ca795701552d22e68fd130a032008b9f9","impliedFormat":1},"9dd9d642cdb87d4d5b3173217e0c45429b3e47a6f5cf5fb0ead6c644ec5fed01",{"version":"b096a6ce1bb7690fa346a694a1b79601bac254a562ced45fffa276dee7e3913f","impliedFormat":99},{"version":"5dcc7cb607f787664245e49da1824c0b149db2b3cbc505fddd65bbaa5decc454","signature":"4e4fc1bf6a2b0b74c6e54391ad245876ad4d7689b7718e529de5adb380473cc8"},"0ab3a0d13fd5246694e3098bdb0e4c02e8b5e871e3c7cedb99591da0d316b75f","ec6b511e057f58c78ee9b768f2c953ea2bd7fda3a76420819a35c8c37a1e84a7",{"version":"c57b441e0c0a9cbdfa7d850dae1f8a387d6f81cbffbc3cd0465d530084c2417d","impliedFormat":99},{"version":"26c57c9f839e6d2048d6c25e81f805ba0ca32a28fd4d824399fd5456c9b0575b","impliedFormat":1},"f7f3ccf1c7024a4365ba1152f0aab2279fd36c244da34d6adcd47ce62caad7b6","b490273df6912252d6ee03f7dd3d1f5aa179e4c2c5010c8c36e0da8cdadadf36",{"version":"ce7d3d402f69829019fb67f5fd708638b95865e9619d83f4835e283d02d95e0f","impliedFormat":1},{"version":"7784fb18015360125d085a2c1a63f353c13241cd3cbb9f7ca930c5ee6cf1961c","signature":"d5b08d745be839d17b5fc9c7e317242f7ad890747fc2840cc533d68dcececfc9"},{"version":"552c1a678041badf191e53d9c7a32cd895c5ab70373f69b8c7558ed54c339376","signature":"e8854955d20978e594b6b6c1c2d478300f360d3c7b213b59f5f47516a0526f8e"},"2a065692f9e62533d96bb1d1405f8a7cdf976047b4b6659a59f20044cfd92621","bbd211fc2e82df87f3cf26be3185d522edce55e83452e8f2b1f33422b7d1c412",{"version":"108d3a652eb0b8f9aec32be0e229c5ad941880bf88e958b7a0a4de9ad4ee54cf","signature":"a50a1e86bca335b8627f0e8dd6d1b5a983189def5c9c64f875d7a340d9559571"},"1ca7083297db2cf123e1ea1cfc618978d1dde52ff49b3e132f354e622caac799",{"version":"df72a540166cc19f1d335b111c882e169a139bfee834afca4b34f65c2572eb00","signature":"8624c1c197891bc7d2eb1f88971ffcc3166cdea874665155df8f12154d3f22c2"},{"version":"ab3f1fb6ef9f8c07e43865fd57c36e06293dd22df36cfb24a9455765719fdd69","signature":"35821ff28c92b14a72ed4619ac4ecd693634de6da9b690ee94b3bba468f26a9c"},{"version":"7e6d634c4c4ec95ae3f1ba8bae9b5317486de6075d9985d410424281d28f4b4c","signature":"78bc236c7ccfe4b726e45eb768a224805bb758dafc24092ad2a600446f56eb10"},{"version":"49990812cd940b3e86da99d7460192532e5f774ff0794bc660f185032d49d71e","signature":"67d94f2b48c17b69efe18a3d4dcaecdd773b465769c8ede742e43b4a8f7bc767"},"dd79280e10cf9421e0432aedb2d4d83e07e98edaa52f3326e09b9aaefb10400b","a7b5570a50e80ab1dfa00c9261781246e34ec916577bcc746bd2f7494aabde25",{"version":"d30e67059f5c545c5f8f0cc328a36d2e03b8c4a091b4301bc1d6afb2b1491a3a","impliedFormat":1},{"version":"a356d9a0ba90d10ec6c0fa33386c0b0e2843fd6f0a49513c44f7809926ac25ff","impliedFormat":1},{"version":"f77db1be13db8dcf8c7a268c1f235c1ba1e4707e829175cdc237421b3c346f9d","impliedFormat":99},{"version":"05cb95655ecadfd1230547b84367d1c4d40a4bb6309545b8dc4d1638a3de1a50","impliedFormat":99},{"version":"e980a9cf8404a649ff3a2f0628d76e4469613c02b98bd3b922756d7d962476c9","impliedFormat":99},{"version":"f8adbcb59256526bc69d94fb5c826e812ebd1321b30ab35baa9997d74d45dd73","impliedFormat":99},{"version":"050a4570de5ad6e47cc9ac9fd9db7a26e57dbe1daadadbc19b20567941f8bf1a","impliedFormat":99},{"version":"5ed040255a4d5181f8ecb4ba90b8b38e0a6f1becf0ed860ca75b6e52c46db0bc","impliedFormat":99},{"version":"e22a49cd604cab3b62b1968a363d7b182edcb23d46793ed12cf5cfc6b1597f39","impliedFormat":99},{"version":"ff1b4730f5d49d37b73ee2db3443145daa0bfc7ff9c865134d871b08955e389b","impliedFormat":99},{"version":"8e64b72fa289b7f133b8cdb7d837f73e30ca7eb76ad88e1020d97c405c94fd7e","impliedFormat":99},{"version":"1f907507e41cc3df66b4521b80134bb8f7afada8d31c10f7100c93c90ab0f84e","impliedFormat":99},{"version":"6bb14070b70b4c9a897a4f5088af984e6e316b420d00d82fb962bad577896723","impliedFormat":99},{"version":"46e17953f7ffbf43d4328fcb5983e0ade2932fb56e84181e6929fcdcfa7c7aa6","impliedFormat":99},{"version":"113aef5576cd65f310927b17ae5f6ac8745c542a660bace5f019034d536fbd04","impliedFormat":99},{"version":"ddf0fdbb010c94978c1151441171f0aac236a23b6786e9f6332f745527d905e9","impliedFormat":99},{"version":"a2c1678ec68c42795e2ac068a7d026b61680357d2a881c9df211dd0f83d077fd","impliedFormat":99},{"version":"2fe207d2e8662abb709772fff1f3ec3116a4787b5caa4e862daa5dab2753edd7","impliedFormat":99},{"version":"a7af5f01007f450dc8cf2cdbbb11f4d4bf8bf3faa869d21267db5de74ebf665a","impliedFormat":99},{"version":"709cb4986cbe2b58ac3bbbad45dbfa24cda1b62c794c73b96e9ff1236dd0d5d1","impliedFormat":99},{"version":"afdc9b1fd1937d9b649bca2b377d1144cc9c48158403c17cfd21b6e1e8b25099","impliedFormat":99},{"version":"1d47324801b498d62f31ea179f58e1f3eaa1e607914504a7c92fb5465affb851","impliedFormat":99},{"version":"95fdf978302838125ac79d9d5e9485d8fa1ddd909664bf5cc3b45ec31f794fda","impliedFormat":99},{"version":"d92bf7d6d30c85e53b961236ceeb099e73a1a874849d038a348b51383087872f","impliedFormat":99},{"version":"e56e4a57ca5aa762d67fd3d16471c47592469944315fa5e92b3b09c83eabae91","impliedFormat":99},{"version":"f3d31927b7a3d0f2f119a05a102af2bdd1fc4f759fe43d508a64a80b3b341f6b","impliedFormat":99},{"version":"678700fba88589e28648a923e4b98ab60f3f7df4742412419e29f95966da4475","impliedFormat":99},{"version":"5a71b307074ef3d2794c4104248b7a3cad5f486df204da65862a7d24f698fc95","impliedFormat":99},{"version":"9a4496ad6d48bc801a122c11e94ee1e3f0710bda38b125573f67f5cb0add1733","impliedFormat":99},{"version":"afa5e16f2ad07d847701e3bde9e7ab36f87e0e3a5c0cb7998644791a1fa3c5b1","impliedFormat":99},{"version":"98cd9124b5d8438db4b4dbd247b2c68ac22b6366a43e6dc4945ae32972f157fc","impliedFormat":99},{"version":"dc21879e45f3a023b5fe459c3da5f2f3cf995f21a1ac533049d8950ce394c045","impliedFormat":99},{"version":"622d6ce66ac838d5d7e968daf4ae760cf49797e3fbfaa2b21d01e0fb5d625bc9","impliedFormat":99},{"version":"ecfa30418b2200ba6496b5f59b4c09a95cce9ea37c1daaf5a5db9bb306ee038f","impliedFormat":99},{"version":"3b56e30b1cbe1bfa7710e88e5e0b8fa6eddc7c2e67615f73bdf8637af68403e6","impliedFormat":99},{"version":"92a8de4f8f6595bf1eb24a19aebff7371c66ae8751f2e045edd9e25ca435e4a2","impliedFormat":99},{"version":"01810afb0ed31afdea0846cee91e85a474727d0966e5bb57c2a4a732854deab1","impliedFormat":99},{"version":"c874e98cd875727ea62fdcd978ac9e067ce07cf7493aa4b8b193fdc3b7318eea","impliedFormat":99},{"version":"455e843c1f8e0df452f101c9ec0b63ab8e749f296c947249f8bbc29bff58c83c","impliedFormat":99},{"version":"eadc4c556b494cc52676e084eadf0b60fb2cc6e2408d1411eeae5cb74068ca86","impliedFormat":99},{"version":"3b8689266e8fb628ca2068ff610ed0b842ff4e407c3a914358ef1895dabfcfcd","impliedFormat":99},{"version":"fc741907f6d8158b2c4722932d745b11dd41f9355a5b325c8cd3cdfbd966d76d","impliedFormat":99},{"version":"5cc56b94d427ebb83561aef01de50af1a16206a873be8556c58baf20fc501dbc","signature":"21d10456b81ce5129b219ae44f8929d4601ba540e7dd931d50752b963bfabe58"},"aeaef6e656bc5000a077cf87e48977615b95acebf4063f6b31381174cd5923d9","be0baf670b578850ec31d4a8d0345b6c39d69a47bfee8abe4c59ca9ee952b860","7e920c7ccf05036f667294b5360aa4c10b004613dd7c25627ede70e1f58dd48c","f276ad664b71bc5b54a3567b42b3b882e4b2d8e5e07ccedb82013c426e5329cd","126fc747ae4a5e68d0f1c560338cc66bc6f73d5039e1d89cdc1bab8be9ced945","826bb5a0ca1f5b8ddf5a954598183611b85431aff89c8d69d4d5fe136b6178ad","19b490b3f910ef40a1ad682748fcb779a9ee037d2f57a5eccfb7517f9fecc379",{"version":"96d14f21b7652903852eef49379d04dbda28c16ed36468f8c9fa08f7c14c9538","impliedFormat":1}],"root":[410,[412,414],417,418,[420,431],[474,481]],"options":{"allowJs":true,"esModuleInterop":true,"jsx":1,"module":99,"skipLibCheck":true,"strict":true},"referencedMap":[[477,1],[479,2],[480,3],[478,4],[481,5],[423,6],[431,7],[475,8],[430,9],[476,10],[418,11],[424,12],[426,13],[474,14],[428,13],[421,15],[425,11],[420,15],[429,13],[422,16],[427,17],[413,18],[414,19],[412,20],[417,21],[410,22],[363,20],[436,23],[442,24],[444,25],[437,26],[445,27],[443,28],[446,20],[438,29],[439,27],[447,30],[448,23],[451,31],[440,32],[449,33],[450,34],[441,35],[432,20],[482,20],[433,36],[142,37],[143,37],[144,38],[99,39],[145,40],[146,41],[147,42],[94,20],[97,43],[95,20],[96,20],[148,44],[149,45],[150,46],[151,47],[152,48],[153,49],[154,49],[155,50],[156,51],[157,52],[158,53],[100,20],[98,20],[159,54],[160,55],[161,56],[193,57],[162,58],[163,59],[164,60],[165,61],[166,62],[167,63],[168,64],[169,65],[170,66],[171,67],[172,67],[173,68],[174,20],[175,69],[177,70],[176,71],[178,72],[179,73],[180,74],[181,75],[182,76],[183,77],[184,78],[185,79],[186,80],[187,81],[188,82],[189,83],[190,84],[101,20],[102,20],[103,20],[141,85],[191,86],[192,87],[86,20],[198,88],[199,89],[197,19],[195,90],[196,91],[84,20],[87,92],[286,19],[415,20],[85,20],[419,19],[93,93],[366,94],[370,95],[372,96],[219,97],[233,98],[337,99],[265,20],[340,100],[301,101],[310,102],[338,103],[220,104],[264,20],[266,105],[339,106],[240,107],[221,108],[245,107],[234,107],[204,107],[292,109],[293,110],[209,20],[289,111],[294,112],[381,113],[287,112],[382,114],[271,20],[290,115],[394,116],[393,117],[296,112],[392,20],[390,20],[391,118],[291,19],[278,119],[279,120],[288,121],[305,122],[306,123],[295,124],[273,125],[274,126],[385,127],[388,128],[252,129],[251,130],[250,131],[397,19],[249,132],[225,20],[400,20],[403,20],[402,19],[404,133],[200,20],[331,20],[232,134],[202,135],[354,20],[355,20],[357,20],[360,136],[356,20],[358,137],[359,137],[218,20],[231,20],[365,138],[373,139],[377,140],[214,141],[281,142],[280,20],[272,125],[300,143],[298,144],[297,20],[299,20],[304,145],[276,146],[213,147],[238,148],[328,149],[205,150],[212,151],[201,99],[342,152],[352,153],[341,20],[351,154],[239,20],[223,155],[319,156],[318,20],[325,157],[327,158],[320,159],[324,160],[326,157],[323,159],[322,157],[321,159],[261,161],[246,161],[313,162],[247,162],[207,163],[206,20],[317,164],[316,165],[315,166],[314,167],[208,168],[285,169],[302,170],[284,171],[309,172],[311,173],[308,171],[241,168],[194,20],[329,174],[267,175],[303,20],[350,176],[270,177],[345,178],[211,20],[346,179],[348,180],[349,181],[332,20],[344,150],[243,182],[330,183],[353,184],[215,20],[217,20],[222,185],[312,186],[210,187],[216,20],[269,188],[268,189],[224,190],[277,191],[275,192],[226,193],[228,194],[401,20],[227,195],[229,196],[368,20],[367,20],[369,20],[399,20],[230,197],[283,19],[92,20],[307,198],[253,20],[263,199],[242,20],[375,19],[384,200],[260,19],[379,112],[259,201],[362,202],[258,200],[203,20],[386,203],[256,19],[257,19],[248,20],[262,20],[255,204],[254,205],[244,206],[237,124],[347,20],[236,207],[235,20],[371,20],[282,19],[364,208],[83,20],[91,209],[88,19],[89,20],[90,20],[343,210],[336,211],[335,20],[334,212],[333,20],[374,213],[376,214],[378,215],[380,216],[383,217],[409,218],[387,218],[408,219],[389,220],[395,221],[396,222],[398,223],[405,224],[407,20],[406,225],[361,226],[411,20],[435,26],[452,227],[453,227],[455,228],[456,229],[434,23],[457,227],[473,230],[454,227],[458,26],[459,26],[460,227],[461,19],[462,227],[463,231],[464,227],[465,227],[466,26],[467,227],[468,227],[469,227],[470,227],[471,227],[472,26],[416,20],[81,20],[82,20],[13,20],[14,20],[16,20],[15,20],[2,20],[17,20],[18,20],[19,20],[20,20],[21,20],[22,20],[23,20],[24,20],[3,20],[25,20],[26,20],[4,20],[27,20],[31,20],[28,20],[29,20],[30,20],[32,20],[33,20],[34,20],[5,20],[35,20],[36,20],[37,20],[38,20],[6,20],[42,20],[39,20],[40,20],[41,20],[43,20],[7,20],[44,20],[49,20],[50,20],[45,20],[46,20],[47,20],[48,20],[8,20],[54,20],[51,20],[52,20],[53,20],[55,20],[9,20],[56,20],[57,20],[58,20],[60,20],[59,20],[61,20],[62,20],[10,20],[63,20],[64,20],[65,20],[11,20],[66,20],[67,20],[68,20],[69,20],[70,20],[1,20],[71,20],[72,20],[12,20],[76,20],[74,20],[79,20],[78,20],[73,20],[77,20],[75,20],[80,20],[119,232],[129,233],[118,232],[139,234],[110,235],[109,236],[138,225],[132,237],[137,238],[112,239],[126,240],[111,241],[135,242],[107,243],[106,225],[136,244],[108,245],[113,246],[114,20],[117,246],[104,20],[140,247],[130,248],[121,249],[122,250],[124,251],[120,252],[123,253],[133,225],[115,254],[116,255],[125,256],[105,257],[128,248],[127,246],[131,20],[134,258]],"affectedFilesPendingEmit":[477,479,480,478,481,423,431,475,430,476,418,424,426,474,428,421,425,420,429,422,427,413,414,412,417],"version":"5.9.3"} \ No newline at end of file +{"fileNames":["./node_modules/typescript/lib/lib.es5.d.ts","./node_modules/typescript/lib/lib.es2015.d.ts","./node_modules/typescript/lib/lib.es2016.d.ts","./node_modules/typescript/lib/lib.es2017.d.ts","./node_modules/typescript/lib/lib.es2018.d.ts","./node_modules/typescript/lib/lib.es2019.d.ts","./node_modules/typescript/lib/lib.es2020.d.ts","./node_modules/typescript/lib/lib.es2021.d.ts","./node_modules/typescript/lib/lib.es2022.d.ts","./node_modules/typescript/lib/lib.es2023.d.ts","./node_modules/typescript/lib/lib.es2024.d.ts","./node_modules/typescript/lib/lib.esnext.d.ts","./node_modules/typescript/lib/lib.dom.d.ts","./node_modules/typescript/lib/lib.dom.iterable.d.ts","./node_modules/typescript/lib/lib.es2015.core.d.ts","./node_modules/typescript/lib/lib.es2015.collection.d.ts","./node_modules/typescript/lib/lib.es2015.generator.d.ts","./node_modules/typescript/lib/lib.es2015.iterable.d.ts","./node_modules/typescript/lib/lib.es2015.promise.d.ts","./node_modules/typescript/lib/lib.es2015.proxy.d.ts","./node_modules/typescript/lib/lib.es2015.reflect.d.ts","./node_modules/typescript/lib/lib.es2015.symbol.d.ts","./node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","./node_modules/typescript/lib/lib.es2016.array.include.d.ts","./node_modules/typescript/lib/lib.es2016.intl.d.ts","./node_modules/typescript/lib/lib.es2017.arraybuffer.d.ts","./node_modules/typescript/lib/lib.es2017.date.d.ts","./node_modules/typescript/lib/lib.es2017.object.d.ts","./node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","./node_modules/typescript/lib/lib.es2017.string.d.ts","./node_modules/typescript/lib/lib.es2017.intl.d.ts","./node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","./node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","./node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","./node_modules/typescript/lib/lib.es2018.intl.d.ts","./node_modules/typescript/lib/lib.es2018.promise.d.ts","./node_modules/typescript/lib/lib.es2018.regexp.d.ts","./node_modules/typescript/lib/lib.es2019.array.d.ts","./node_modules/typescript/lib/lib.es2019.object.d.ts","./node_modules/typescript/lib/lib.es2019.string.d.ts","./node_modules/typescript/lib/lib.es2019.symbol.d.ts","./node_modules/typescript/lib/lib.es2019.intl.d.ts","./node_modules/typescript/lib/lib.es2020.bigint.d.ts","./node_modules/typescript/lib/lib.es2020.date.d.ts","./node_modules/typescript/lib/lib.es2020.promise.d.ts","./node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","./node_modules/typescript/lib/lib.es2020.string.d.ts","./node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","./node_modules/typescript/lib/lib.es2020.intl.d.ts","./node_modules/typescript/lib/lib.es2020.number.d.ts","./node_modules/typescript/lib/lib.es2021.promise.d.ts","./node_modules/typescript/lib/lib.es2021.string.d.ts","./node_modules/typescript/lib/lib.es2021.weakref.d.ts","./node_modules/typescript/lib/lib.es2021.intl.d.ts","./node_modules/typescript/lib/lib.es2022.array.d.ts","./node_modules/typescript/lib/lib.es2022.error.d.ts","./node_modules/typescript/lib/lib.es2022.intl.d.ts","./node_modules/typescript/lib/lib.es2022.object.d.ts","./node_modules/typescript/lib/lib.es2022.string.d.ts","./node_modules/typescript/lib/lib.es2022.regexp.d.ts","./node_modules/typescript/lib/lib.es2023.array.d.ts","./node_modules/typescript/lib/lib.es2023.collection.d.ts","./node_modules/typescript/lib/lib.es2023.intl.d.ts","./node_modules/typescript/lib/lib.es2024.arraybuffer.d.ts","./node_modules/typescript/lib/lib.es2024.collection.d.ts","./node_modules/typescript/lib/lib.es2024.object.d.ts","./node_modules/typescript/lib/lib.es2024.promise.d.ts","./node_modules/typescript/lib/lib.es2024.regexp.d.ts","./node_modules/typescript/lib/lib.es2024.sharedmemory.d.ts","./node_modules/typescript/lib/lib.es2024.string.d.ts","./node_modules/typescript/lib/lib.esnext.array.d.ts","./node_modules/typescript/lib/lib.esnext.collection.d.ts","./node_modules/typescript/lib/lib.esnext.intl.d.ts","./node_modules/typescript/lib/lib.esnext.disposable.d.ts","./node_modules/typescript/lib/lib.esnext.promise.d.ts","./node_modules/typescript/lib/lib.esnext.decorators.d.ts","./node_modules/typescript/lib/lib.esnext.iterator.d.ts","./node_modules/typescript/lib/lib.esnext.float16.d.ts","./node_modules/typescript/lib/lib.esnext.error.d.ts","./node_modules/typescript/lib/lib.esnext.sharedmemory.d.ts","./node_modules/typescript/lib/lib.decorators.d.ts","./node_modules/typescript/lib/lib.decorators.legacy.d.ts","./node_modules/next/dist/styled-jsx/types/css.d.ts","./node_modules/@types/react/global.d.ts","./node_modules/csstype/index.d.ts","./node_modules/@types/prop-types/index.d.ts","./node_modules/@types/react/index.d.ts","./node_modules/next/dist/styled-jsx/types/index.d.ts","./node_modules/next/dist/styled-jsx/types/macro.d.ts","./node_modules/next/dist/styled-jsx/types/style.d.ts","./node_modules/next/dist/styled-jsx/types/global.d.ts","./node_modules/next/dist/shared/lib/amp.d.ts","./node_modules/next/amp.d.ts","./node_modules/@types/node/compatibility/disposable.d.ts","./node_modules/@types/node/compatibility/indexable.d.ts","./node_modules/@types/node/compatibility/iterators.d.ts","./node_modules/@types/node/compatibility/index.d.ts","./node_modules/@types/node/globals.typedarray.d.ts","./node_modules/@types/node/buffer.buffer.d.ts","./node_modules/@types/node/globals.d.ts","./node_modules/@types/node/web-globals/abortcontroller.d.ts","./node_modules/@types/node/web-globals/domexception.d.ts","./node_modules/@types/node/web-globals/events.d.ts","./node_modules/undici-types/header.d.ts","./node_modules/undici-types/readable.d.ts","./node_modules/undici-types/file.d.ts","./node_modules/undici-types/fetch.d.ts","./node_modules/undici-types/formdata.d.ts","./node_modules/undici-types/connector.d.ts","./node_modules/undici-types/client.d.ts","./node_modules/undici-types/errors.d.ts","./node_modules/undici-types/dispatcher.d.ts","./node_modules/undici-types/global-dispatcher.d.ts","./node_modules/undici-types/global-origin.d.ts","./node_modules/undici-types/pool-stats.d.ts","./node_modules/undici-types/pool.d.ts","./node_modules/undici-types/handlers.d.ts","./node_modules/undici-types/balanced-pool.d.ts","./node_modules/undici-types/agent.d.ts","./node_modules/undici-types/mock-interceptor.d.ts","./node_modules/undici-types/mock-agent.d.ts","./node_modules/undici-types/mock-client.d.ts","./node_modules/undici-types/mock-pool.d.ts","./node_modules/undici-types/mock-errors.d.ts","./node_modules/undici-types/proxy-agent.d.ts","./node_modules/undici-types/env-http-proxy-agent.d.ts","./node_modules/undici-types/retry-handler.d.ts","./node_modules/undici-types/retry-agent.d.ts","./node_modules/undici-types/api.d.ts","./node_modules/undici-types/interceptors.d.ts","./node_modules/undici-types/util.d.ts","./node_modules/undici-types/cookies.d.ts","./node_modules/undici-types/patch.d.ts","./node_modules/undici-types/websocket.d.ts","./node_modules/undici-types/eventsource.d.ts","./node_modules/undici-types/filereader.d.ts","./node_modules/undici-types/diagnostics-channel.d.ts","./node_modules/undici-types/content-type.d.ts","./node_modules/undici-types/cache.d.ts","./node_modules/undici-types/index.d.ts","./node_modules/@types/node/web-globals/fetch.d.ts","./node_modules/@types/node/assert.d.ts","./node_modules/@types/node/assert/strict.d.ts","./node_modules/@types/node/async_hooks.d.ts","./node_modules/@types/node/buffer.d.ts","./node_modules/@types/node/child_process.d.ts","./node_modules/@types/node/cluster.d.ts","./node_modules/@types/node/console.d.ts","./node_modules/@types/node/constants.d.ts","./node_modules/@types/node/crypto.d.ts","./node_modules/@types/node/dgram.d.ts","./node_modules/@types/node/diagnostics_channel.d.ts","./node_modules/@types/node/dns.d.ts","./node_modules/@types/node/dns/promises.d.ts","./node_modules/@types/node/domain.d.ts","./node_modules/@types/node/events.d.ts","./node_modules/@types/node/fs.d.ts","./node_modules/@types/node/fs/promises.d.ts","./node_modules/@types/node/http.d.ts","./node_modules/@types/node/http2.d.ts","./node_modules/@types/node/https.d.ts","./node_modules/@types/node/inspector.generated.d.ts","./node_modules/@types/node/module.d.ts","./node_modules/@types/node/net.d.ts","./node_modules/@types/node/os.d.ts","./node_modules/@types/node/path.d.ts","./node_modules/@types/node/perf_hooks.d.ts","./node_modules/@types/node/process.d.ts","./node_modules/@types/node/punycode.d.ts","./node_modules/@types/node/querystring.d.ts","./node_modules/@types/node/readline.d.ts","./node_modules/@types/node/readline/promises.d.ts","./node_modules/@types/node/repl.d.ts","./node_modules/@types/node/sea.d.ts","./node_modules/@types/node/stream.d.ts","./node_modules/@types/node/stream/promises.d.ts","./node_modules/@types/node/stream/consumers.d.ts","./node_modules/@types/node/stream/web.d.ts","./node_modules/@types/node/string_decoder.d.ts","./node_modules/@types/node/test.d.ts","./node_modules/@types/node/timers.d.ts","./node_modules/@types/node/timers/promises.d.ts","./node_modules/@types/node/tls.d.ts","./node_modules/@types/node/trace_events.d.ts","./node_modules/@types/node/tty.d.ts","./node_modules/@types/node/url.d.ts","./node_modules/@types/node/util.d.ts","./node_modules/@types/node/v8.d.ts","./node_modules/@types/node/vm.d.ts","./node_modules/@types/node/wasi.d.ts","./node_modules/@types/node/worker_threads.d.ts","./node_modules/@types/node/zlib.d.ts","./node_modules/@types/node/index.d.ts","./node_modules/next/dist/server/get-page-files.d.ts","./node_modules/@types/react/canary.d.ts","./node_modules/@types/react/experimental.d.ts","./node_modules/@types/react-dom/index.d.ts","./node_modules/@types/react-dom/canary.d.ts","./node_modules/@types/react-dom/experimental.d.ts","./node_modules/next/dist/compiled/webpack/webpack.d.ts","./node_modules/next/dist/server/config.d.ts","./node_modules/next/dist/lib/load-custom-routes.d.ts","./node_modules/next/dist/shared/lib/image-config.d.ts","./node_modules/next/dist/build/webpack/plugins/subresource-integrity-plugin.d.ts","./node_modules/next/dist/server/body-streams.d.ts","./node_modules/next/dist/server/future/route-kind.d.ts","./node_modules/next/dist/server/future/route-definitions/route-definition.d.ts","./node_modules/next/dist/server/future/route-matches/route-match.d.ts","./node_modules/next/dist/client/components/app-router-headers.d.ts","./node_modules/next/dist/server/request-meta.d.ts","./node_modules/next/dist/server/lib/revalidate.d.ts","./node_modules/next/dist/server/config-shared.d.ts","./node_modules/next/dist/server/base-http/index.d.ts","./node_modules/next/dist/server/api-utils/index.d.ts","./node_modules/next/dist/server/node-environment.d.ts","./node_modules/next/dist/server/require-hook.d.ts","./node_modules/next/dist/server/node-polyfill-crypto.d.ts","./node_modules/next/dist/lib/page-types.d.ts","./node_modules/next/dist/build/analysis/get-page-static-info.d.ts","./node_modules/next/dist/build/webpack/loaders/get-module-build-info.d.ts","./node_modules/next/dist/build/webpack/plugins/middleware-plugin.d.ts","./node_modules/next/dist/server/render-result.d.ts","./node_modules/next/dist/server/future/helpers/i18n-provider.d.ts","./node_modules/next/dist/server/web/next-url.d.ts","./node_modules/next/dist/compiled/@edge-runtime/cookies/index.d.ts","./node_modules/next/dist/server/web/spec-extension/cookies.d.ts","./node_modules/next/dist/server/web/spec-extension/request.d.ts","./node_modules/next/dist/server/web/spec-extension/fetch-event.d.ts","./node_modules/next/dist/server/web/spec-extension/response.d.ts","./node_modules/next/dist/server/web/types.d.ts","./node_modules/next/dist/lib/setup-exception-listeners.d.ts","./node_modules/next/dist/lib/constants.d.ts","./node_modules/next/dist/build/index.d.ts","./node_modules/next/dist/build/webpack/plugins/pages-manifest-plugin.d.ts","./node_modules/next/dist/shared/lib/router/utils/route-regex.d.ts","./node_modules/next/dist/shared/lib/router/utils/route-matcher.d.ts","./node_modules/next/dist/shared/lib/router/utils/parse-url.d.ts","./node_modules/next/dist/server/base-http/node.d.ts","./node_modules/next/dist/server/font-utils.d.ts","./node_modules/next/dist/build/webpack/plugins/flight-manifest-plugin.d.ts","./node_modules/next/dist/server/future/route-modules/route-module.d.ts","./node_modules/next/dist/shared/lib/deep-readonly.d.ts","./node_modules/next/dist/server/load-components.d.ts","./node_modules/next/dist/shared/lib/router/utils/middleware-route-matcher.d.ts","./node_modules/next/dist/build/webpack/plugins/next-font-manifest-plugin.d.ts","./node_modules/next/dist/server/future/route-definitions/locale-route-definition.d.ts","./node_modules/next/dist/server/future/route-definitions/pages-route-definition.d.ts","./node_modules/next/dist/shared/lib/mitt.d.ts","./node_modules/next/dist/client/with-router.d.ts","./node_modules/next/dist/client/router.d.ts","./node_modules/next/dist/client/route-loader.d.ts","./node_modules/next/dist/client/page-loader.d.ts","./node_modules/next/dist/shared/lib/bloom-filter.d.ts","./node_modules/next/dist/shared/lib/router/router.d.ts","./node_modules/next/dist/shared/lib/router-context.shared-runtime.d.ts","./node_modules/next/dist/shared/lib/loadable-context.shared-runtime.d.ts","./node_modules/next/dist/shared/lib/loadable.shared-runtime.d.ts","./node_modules/next/dist/shared/lib/image-config-context.shared-runtime.d.ts","./node_modules/next/dist/shared/lib/hooks-client-context.shared-runtime.d.ts","./node_modules/next/dist/shared/lib/head-manager-context.shared-runtime.d.ts","./node_modules/next/dist/server/future/route-definitions/app-page-route-definition.d.ts","./node_modules/next/dist/shared/lib/modern-browserslist-target.d.ts","./node_modules/next/dist/shared/lib/constants.d.ts","./node_modules/next/dist/build/webpack/loaders/metadata/types.d.ts","./node_modules/next/dist/build/page-extensions-type.d.ts","./node_modules/next/dist/build/webpack/loaders/next-app-loader.d.ts","./node_modules/next/dist/server/lib/app-dir-module.d.ts","./node_modules/next/dist/server/response-cache/types.d.ts","./node_modules/next/dist/server/response-cache/index.d.ts","./node_modules/next/dist/server/lib/incremental-cache/index.d.ts","./node_modules/next/dist/client/components/hooks-server-context.d.ts","./node_modules/next/dist/server/app-render/dynamic-rendering.d.ts","./node_modules/next/dist/client/components/static-generation-async-storage-instance.d.ts","./node_modules/next/dist/client/components/static-generation-async-storage.external.d.ts","./node_modules/next/dist/server/web/spec-extension/adapters/request-cookies.d.ts","./node_modules/next/dist/server/async-storage/draft-mode-provider.d.ts","./node_modules/next/dist/server/web/spec-extension/adapters/headers.d.ts","./node_modules/next/dist/client/components/request-async-storage-instance.d.ts","./node_modules/next/dist/client/components/request-async-storage.external.d.ts","./node_modules/next/dist/server/app-render/create-error-handler.d.ts","./node_modules/next/dist/server/app-render/app-render.d.ts","./node_modules/next/dist/shared/lib/server-inserted-html.shared-runtime.d.ts","./node_modules/next/dist/shared/lib/amp-context.shared-runtime.d.ts","./node_modules/next/dist/server/future/route-modules/app-page/vendored/contexts/entrypoints.d.ts","./node_modules/next/dist/server/future/route-modules/app-page/module.compiled.d.ts","./node_modules/@types/react/jsx-runtime.d.ts","./node_modules/next/dist/client/components/error-boundary.d.ts","./node_modules/next/dist/client/components/router-reducer/create-initial-router-state.d.ts","./node_modules/next/dist/client/components/app-router.d.ts","./node_modules/next/dist/client/components/layout-router.d.ts","./node_modules/next/dist/client/components/render-from-template-context.d.ts","./node_modules/next/dist/client/components/action-async-storage-instance.d.ts","./node_modules/next/dist/client/components/action-async-storage.external.d.ts","./node_modules/next/dist/client/components/client-page.d.ts","./node_modules/next/dist/client/components/search-params.d.ts","./node_modules/next/dist/client/components/not-found-boundary.d.ts","./node_modules/next/dist/server/app-render/rsc/preloads.d.ts","./node_modules/next/dist/server/app-render/rsc/postpone.d.ts","./node_modules/next/dist/server/app-render/rsc/taint.d.ts","./node_modules/next/dist/server/app-render/entry-base.d.ts","./node_modules/next/dist/build/templates/app-page.d.ts","./node_modules/next/dist/server/future/route-modules/app-page/module.d.ts","./node_modules/next/dist/server/lib/builtin-request-context.d.ts","./node_modules/next/dist/server/app-render/types.d.ts","./node_modules/next/dist/client/components/router-reducer/fetch-server-response.d.ts","./node_modules/next/dist/client/components/router-reducer/router-reducer-types.d.ts","./node_modules/next/dist/shared/lib/app-router-context.shared-runtime.d.ts","./node_modules/next/dist/server/future/route-modules/pages/vendored/contexts/entrypoints.d.ts","./node_modules/next/dist/server/future/route-modules/pages/module.compiled.d.ts","./node_modules/next/dist/build/templates/pages.d.ts","./node_modules/next/dist/server/future/route-modules/pages/module.d.ts","./node_modules/next/dist/server/render.d.ts","./node_modules/next/dist/server/future/route-definitions/pages-api-route-definition.d.ts","./node_modules/next/dist/server/future/route-matches/pages-api-route-match.d.ts","./node_modules/next/dist/server/future/route-matchers/route-matcher.d.ts","./node_modules/next/dist/server/future/route-matcher-providers/route-matcher-provider.d.ts","./node_modules/next/dist/server/future/route-matcher-managers/route-matcher-manager.d.ts","./node_modules/next/dist/server/future/normalizers/normalizer.d.ts","./node_modules/next/dist/server/future/normalizers/locale-route-normalizer.d.ts","./node_modules/next/dist/server/future/normalizers/request/pathname-normalizer.d.ts","./node_modules/next/dist/server/future/normalizers/request/suffix.d.ts","./node_modules/next/dist/server/future/normalizers/request/rsc.d.ts","./node_modules/next/dist/server/future/normalizers/request/prefix.d.ts","./node_modules/next/dist/server/future/normalizers/request/postponed.d.ts","./node_modules/next/dist/server/future/normalizers/request/action.d.ts","./node_modules/next/dist/server/future/normalizers/request/prefetch-rsc.d.ts","./node_modules/next/dist/server/future/normalizers/request/next-data.d.ts","./node_modules/next/dist/server/base-server.d.ts","./node_modules/next/dist/server/image-optimizer.d.ts","./node_modules/next/dist/server/next-server.d.ts","./node_modules/next/dist/lib/coalesced-function.d.ts","./node_modules/next/dist/server/lib/router-utils/types.d.ts","./node_modules/next/dist/trace/types.d.ts","./node_modules/next/dist/trace/trace.d.ts","./node_modules/next/dist/trace/shared.d.ts","./node_modules/next/dist/trace/index.d.ts","./node_modules/next/dist/build/load-jsconfig.d.ts","./node_modules/next/dist/build/webpack-config.d.ts","./node_modules/next/dist/build/webpack/plugins/define-env-plugin.d.ts","./node_modules/next/dist/build/swc/index.d.ts","./node_modules/next/dist/server/dev/parse-version-info.d.ts","./node_modules/next/dist/server/dev/hot-reloader-types.d.ts","./node_modules/next/dist/telemetry/storage.d.ts","./node_modules/next/dist/server/lib/types.d.ts","./node_modules/next/dist/server/lib/render-server.d.ts","./node_modules/next/dist/server/lib/router-server.d.ts","./node_modules/next/dist/shared/lib/router/utils/path-match.d.ts","./node_modules/next/dist/server/lib/router-utils/filesystem.d.ts","./node_modules/next/dist/server/lib/router-utils/setup-dev-bundler.d.ts","./node_modules/next/dist/server/lib/dev-bundler-service.d.ts","./node_modules/next/dist/server/dev/static-paths-worker.d.ts","./node_modules/next/dist/server/dev/next-dev-server.d.ts","./node_modules/next/dist/server/next.d.ts","./node_modules/next/dist/lib/metadata/types/alternative-urls-types.d.ts","./node_modules/next/dist/lib/metadata/types/extra-types.d.ts","./node_modules/next/dist/lib/metadata/types/metadata-types.d.ts","./node_modules/next/dist/lib/metadata/types/manifest-types.d.ts","./node_modules/next/dist/lib/metadata/types/opengraph-types.d.ts","./node_modules/next/dist/lib/metadata/types/twitter-types.d.ts","./node_modules/next/dist/lib/metadata/types/metadata-interface.d.ts","./node_modules/next/types/index.d.ts","./node_modules/next/dist/shared/lib/html-context.shared-runtime.d.ts","./node_modules/@next/env/dist/index.d.ts","./node_modules/next/dist/shared/lib/utils.d.ts","./node_modules/next/dist/pages/_app.d.ts","./node_modules/next/app.d.ts","./node_modules/next/dist/server/web/spec-extension/unstable-cache.d.ts","./node_modules/next/dist/server/web/spec-extension/revalidate.d.ts","./node_modules/next/dist/server/web/spec-extension/unstable-no-store.d.ts","./node_modules/next/cache.d.ts","./node_modules/next/dist/shared/lib/runtime-config.external.d.ts","./node_modules/next/config.d.ts","./node_modules/next/dist/pages/_document.d.ts","./node_modules/next/document.d.ts","./node_modules/next/dist/shared/lib/dynamic.d.ts","./node_modules/next/dynamic.d.ts","./node_modules/next/dist/pages/_error.d.ts","./node_modules/next/error.d.ts","./node_modules/next/dist/shared/lib/head.d.ts","./node_modules/next/head.d.ts","./node_modules/next/dist/client/components/draft-mode.d.ts","./node_modules/next/dist/client/components/headers.d.ts","./node_modules/next/headers.d.ts","./node_modules/next/dist/shared/lib/get-img-props.d.ts","./node_modules/next/dist/client/image-component.d.ts","./node_modules/next/dist/shared/lib/image-external.d.ts","./node_modules/next/image.d.ts","./node_modules/next/dist/client/link.d.ts","./node_modules/next/link.d.ts","./node_modules/next/dist/client/components/redirect-status-code.d.ts","./node_modules/next/dist/client/components/redirect.d.ts","./node_modules/next/dist/client/components/not-found.d.ts","./node_modules/next/dist/client/components/navigation.react-server.d.ts","./node_modules/next/dist/client/components/navigation.d.ts","./node_modules/next/navigation.d.ts","./node_modules/next/router.d.ts","./node_modules/next/dist/client/script.d.ts","./node_modules/next/script.d.ts","./node_modules/next/dist/server/web/spec-extension/user-agent.d.ts","./node_modules/next/dist/compiled/@edge-runtime/primitives/url.d.ts","./node_modules/next/dist/server/web/spec-extension/image-response.d.ts","./node_modules/next/dist/compiled/@vercel/og/satori/index.d.ts","./node_modules/next/dist/compiled/@vercel/og/emoji/index.d.ts","./node_modules/next/dist/compiled/@vercel/og/types.d.ts","./node_modules/next/server.d.ts","./node_modules/next/types/global.d.ts","./node_modules/next/types/compiled.d.ts","./node_modules/next/index.d.ts","./node_modules/next/image-types/global.d.ts","./next-env.d.ts","./node_modules/pocketbase/dist/pocketbase.es.d.mts","./lib/types.ts","./lib/pocketbase.ts","./lib/pwa.ts","./node_modules/clsx/clsx.d.mts","./node_modules/tailwind-merge/dist/types.d.ts","./lib/utils.ts","./components/authprovider.tsx","./node_modules/lucide-react/dist/lucide-react.d.ts","./components/offlineindicator.tsx","./components/installprompt.tsx","./components/pwabridge.tsx","./app/layout.tsx","./components/bottomnav.tsx","./components/locationtracker.tsx","./components/collectionitemcard.tsx","./components/suppliergroup.tsx","./components/areagroup.tsx","./components/collectmodal.tsx","./components/problemmodal.tsx","./app/page.tsx","./app/login/page.tsx","./node_modules/@types/geojson/index.d.ts","./node_modules/@types/leaflet/index.d.ts","./node_modules/react-leaflet/lib/hooks.d.ts","./node_modules/react-leaflet/lib/attributioncontrol.d.ts","./node_modules/@react-leaflet/core/lib/attribution.d.ts","./node_modules/@react-leaflet/core/lib/context.d.ts","./node_modules/@react-leaflet/core/lib/element.d.ts","./node_modules/@react-leaflet/core/lib/events.d.ts","./node_modules/@react-leaflet/core/lib/layer.d.ts","./node_modules/@react-leaflet/core/lib/path.d.ts","./node_modules/@react-leaflet/core/lib/circle.d.ts","./node_modules/@react-leaflet/core/lib/div-overlay.d.ts","./node_modules/@react-leaflet/core/lib/component.d.ts","./node_modules/@react-leaflet/core/lib/control.d.ts","./node_modules/@react-leaflet/core/lib/dom.d.ts","./node_modules/@react-leaflet/core/lib/generic.d.ts","./node_modules/@react-leaflet/core/lib/grid-layer.d.ts","./node_modules/@react-leaflet/core/lib/media-overlay.d.ts","./node_modules/@react-leaflet/core/lib/pane.d.ts","./node_modules/@react-leaflet/core/lib/index.d.ts","./node_modules/react-leaflet/lib/circle.d.ts","./node_modules/react-leaflet/lib/circlemarker.d.ts","./node_modules/react-leaflet/lib/layergroup.d.ts","./node_modules/react-leaflet/lib/featuregroup.d.ts","./node_modules/react-leaflet/lib/geojson.d.ts","./node_modules/react-leaflet/lib/imageoverlay.d.ts","./node_modules/react-leaflet/lib/layerscontrol.d.ts","./node_modules/react-leaflet/lib/mapcontainer.d.ts","./node_modules/react-leaflet/lib/marker.d.ts","./node_modules/react-leaflet/lib/pane.d.ts","./node_modules/react-leaflet/lib/polygon.d.ts","./node_modules/react-leaflet/lib/polyline.d.ts","./node_modules/react-leaflet/lib/popup.d.ts","./node_modules/react-leaflet/lib/rectangle.d.ts","./node_modules/react-leaflet/lib/scalecontrol.d.ts","./node_modules/react-leaflet/lib/svgoverlay.d.ts","./node_modules/react-leaflet/lib/tilelayer.d.ts","./node_modules/react-leaflet/lib/tooltip.d.ts","./node_modules/react-leaflet/lib/videooverlay.d.ts","./node_modules/react-leaflet/lib/wmstilelayer.d.ts","./node_modules/react-leaflet/lib/zoomcontrol.d.ts","./node_modules/react-leaflet/lib/index.d.ts","./components/collectionmap.tsx","./app/map/page.tsx","./app/settings/page.tsx","./.next/types/app/layout.ts","./.next/types/app/page.ts","./.next/types/app/login/page.ts","./.next/types/app/map/page.ts","./.next/types/app/settings/page.ts","./node_modules/@types/json5/index.d.ts"],"fileIdsList":[[99,145,360,423],[99,145,360,432],[99,145,360,476],[99,145,360,431],[99,145,360,477],[99,145,408,418,420,421,422],[87,99,145,413,417,419],[87,99,145,376,395,412,413,417,418,419,424,425,475],[87,99,145,395,412,413,417,418,419,424,425,426,427,428,429,430],[87,99,145,395,412,413,417,418,419,424],[99,145,412,417,419,426],[87,99,145,413],[99,145,389,395,417,419],[87,99,145,412,413,417,419],[87,99,145,412,413,417,419,434,474],[87,99,145,414,417,419],[87,99,145,412,417,419],[87,99,145,414],[99,145,411,412],[87,99,145],[99,145],[99,145,415,416],[99,145,408,409],[99,145,434],[87,99,145,434,442],[87,99,145,439,444],[87,99,145,434],[99,145,434,439],[99,145,434,438,439,441],[87,99,145,438],[87,99,145,434,438,439,441,442,444,445],[99,145,437,438,439,440,441,442,443,444,445,446,447,448,449,450,451],[99,145,434,438,439,440],[99,145,434,441],[99,145,434,438],[99,145,434,439,441],[99,145,433],[99,142,145],[99,144,145],[145],[99,145,150,178],[99,145,146,151,156,164,175,186],[99,145,146,147,156,164],[94,95,96,99,145],[99,145,148,187],[99,145,149,150,157,165],[99,145,150,175,183],[99,145,151,153,156,164],[99,144,145,152],[99,145,153,154],[99,145,155,156],[99,144,145,156],[99,145,156,157,158,175,186],[99,145,156,157,158,171,175,178],[99,145,153,156,159,164,175,186],[99,145,156,157,159,160,164,175,183,186],[99,145,159,161,175,183,186],[97,98,99,100,101,102,103,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],[99,145,156,162],[99,145,163,186,191],[99,145,153,156,164,175],[99,145,165],[99,145,166],[99,144,145,167],[99,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],[99,145,169],[99,145,170],[99,145,156,171,172],[99,145,171,173,187,189],[99,145,156,175,176,178],[99,145,177,178],[99,145,175,176],[99,145,178],[99,145,179],[99,142,145,175,180],[99,145,156,181,182],[99,145,181,182],[99,145,150,164,175,183],[99,145,184],[99,145,164,185],[99,145,159,170,186],[99,145,150,187],[99,145,175,188],[99,145,163,189],[99,145,190],[99,140,145],[99,140,145,156,158,167,175,178,186,189,191],[99,145,175,192],[87,99,145,197,198,199],[87,99,145,197,198],[87,91,99,145,196,361,404],[87,91,99,145,195,361,404],[84,85,86,99,145],[92,99,145],[99,145,365],[99,145,367,368,369],[99,145,371],[99,145,202,212,218,220,361],[99,145,202,209,211,214,232],[99,145,212],[99,145,212,214,339],[99,145,267,285,300,407],[99,145,309],[99,145,202,212,219,253,263,336,337,407],[99,145,219,407],[99,145,212,263,264,265,407],[99,145,212,219,253,407],[99,145,407],[99,145,202,219,220,407],[99,145,293],[99,144,145,193,292],[87,99,145,286,287,288,306,307],[87,99,145,286],[99,145,276],[99,145,275,277,381],[87,99,145,286,287,304],[99,145,282,307,393],[99,145,391,392],[99,145,226,390],[99,145,279],[99,144,145,193,226,242,275,276,277,278],[87,99,145,304,306,307],[99,145,304,306],[99,145,304,305,307],[99,145,170,193],[99,145,274],[99,144,145,193,211,213,270,271,272,273],[87,99,145,203,384],[87,99,145,186,193],[87,99,145,219,251],[87,99,145,219],[99,145,249,254],[87,99,145,250,364],[87,91,99,145,159,193,195,196,361,402,403],[99,145,361],[99,145,201],[99,145,354,355,356,357,358,359],[99,145,356],[87,99,145,250,286,364],[87,99,145,286,362,364],[87,99,145,286,364],[99,145,159,193,213,364],[99,145,159,193,210,211,222,240,242,274,279,280,302,304],[99,145,271,274,279,287,289,290,291,293,294,295,296,297,298,299,407],[99,145,272],[87,99,145,170,193,211,212,240,242,243,245,270,302,303,307,361,407],[99,145,159,193,213,214,226,227,275],[99,145,159,193,212,214],[99,145,159,175,193,210,213,214],[99,145,159,170,186,193,210,211,212,213,214,219,222,223,233,234,236,239,240,242,243,244,245,269,270,303,304,312,314,317,319,322,324,325,326,327],[99,145,159,175,193],[99,145,202,203,204,210,211,361,364,407],[99,145,159,175,186,193,207,338,340,341,407],[99,145,170,186,193,207,210,213,230,234,236,237,238,243,270,317,328,330,336,350,351],[99,145,212,216,270],[99,145,210,212],[99,145,223,318],[99,145,320,321],[99,145,320],[99,145,318],[99,145,320,323],[99,145,206,207],[99,145,206,246],[99,145,206],[99,145,208,223,316],[99,145,315],[99,145,207,208],[99,145,208,313],[99,145,207],[99,145,302],[99,145,159,193,210,222,241,261,267,281,284,301,304],[99,145,255,256,257,258,259,260,282,283,307,362],[99,145,311],[99,145,159,193,210,222,241,247,308,310,312,361,364],[99,145,159,186,193,203,210,212,269],[99,145,266],[99,145,159,193,344,349],[99,145,233,242,269,364],[99,145,332,336,350,353],[99,145,159,216,336,344,345,353],[99,145,202,212,233,244,347],[99,145,159,193,212,219,244,331,332,342,343,346,348],[99,145,194,240,241,242,361,364],[99,145,159,170,186,193,208,210,211,213,216,221,222,230,233,234,236,237,238,239,243,245,269,270,314,328,329,364],[99,145,159,193,210,212,216,330,352],[99,145,159,193,211,213],[87,99,145,159,170,193,201,203,210,211,214,222,239,240,242,243,245,311,361,364],[99,145,159,170,186,193,205,208,209,213],[99,145,206,268],[99,145,159,193,206,211,222],[99,145,159,193,212,223],[99,145,159,193],[99,145,226],[99,145,225],[99,145,227],[99,145,212,224,226,230],[99,145,212,224,226],[99,145,159,193,205,212,213,219,227,228,229],[87,99,145,304,305,306],[99,145,262],[87,99,145,203],[87,99,145,236],[87,99,145,194,239,242,245,361,364],[99,145,203,384,385],[87,99,145,254],[87,99,145,170,186,193,201,248,250,252,253,364],[99,145,213,219,236],[99,145,235],[87,99,145,157,159,170,193,201,254,263,361,362,363],[83,87,88,89,90,99,145,195,196,361,404],[99,145,150],[99,145,333,334,335],[99,145,333],[99,145,373],[99,145,375],[99,145,377],[99,145,379],[99,145,382],[99,145,386],[91,93,99,145,361,366,370,372,374,376,378,380,383,387,389,395,396,398,405,406,407],[99,145,388],[99,145,394],[99,145,250],[99,145,397],[99,144,145,227,228,229,230,399,400,401,404],[99,145,193],[87,91,99,145,159,161,170,193,195,196,197,199,201,214,353,360,364,404],[87,99,145,434,452],[87,99,145,434,452,455],[87,99,145,433,434,452,455],[99,145,435,436,453,454,455,456,457,458,459,460,461,462,463,464,465,466,467,468,469,470,471,472,473],[87,99,145,433,434,452],[99,112,116,145,186],[99,112,145,175,186],[99,107,145],[99,109,112,145,183,186],[99,145,164,183],[99,107,145,193],[99,109,112,145,164,186],[99,104,105,108,111,145,156,175,186],[99,112,119,145],[99,104,110,145],[99,112,133,134,145],[99,108,112,145,178,186,193],[99,133,145,193],[99,106,107,145,193],[99,112,145],[99,106,107,108,109,110,111,112,113,114,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,134,135,136,137,138,139,145],[99,112,127,145],[99,112,119,120,145],[99,110,112,120,121,145],[99,111,145],[99,104,107,112,145],[99,112,116,120,121,145],[99,116,145],[99,110,112,115,145,186],[99,104,109,112,119,145],[99,145,175],[99,107,112,133,145,191,193]],"fileInfos":[{"version":"c430d44666289dae81f30fa7b2edebf186ecc91a2d4c71266ea6ae76388792e1","affectsGlobalScope":true,"impliedFormat":1},{"version":"45b7ab580deca34ae9729e97c13cfd999df04416a79116c3bfb483804f85ded4","impliedFormat":1},{"version":"3facaf05f0c5fc569c5649dd359892c98a85557e3e0c847964caeb67076f4d75","impliedFormat":1},{"version":"e44bb8bbac7f10ecc786703fe0a6a4b952189f908707980ba8f3c8975a760962","impliedFormat":1},{"version":"5e1c4c362065a6b95ff952c0eab010f04dcd2c3494e813b493ecfd4fcb9fc0d8","impliedFormat":1},{"version":"68d73b4a11549f9c0b7d352d10e91e5dca8faa3322bfb77b661839c42b1ddec7","impliedFormat":1},{"version":"5efce4fc3c29ea84e8928f97adec086e3dc876365e0982cc8479a07954a3efd4","impliedFormat":1},{"version":"feecb1be483ed332fad555aff858affd90a48ab19ba7272ee084704eb7167569","impliedFormat":1},{"version":"ee7bad0c15b58988daa84371e0b89d313b762ab83cb5b31b8a2d1162e8eb41c2","impliedFormat":1},{"version":"27bdc30a0e32783366a5abeda841bc22757c1797de8681bbe81fbc735eeb1c10","impliedFormat":1},{"version":"8fd575e12870e9944c7e1d62e1f5a73fcf23dd8d3a321f2a2c74c20d022283fe","impliedFormat":1},{"version":"2ab096661c711e4a81cc464fa1e6feb929a54f5340b46b0a07ac6bbf857471f0","impliedFormat":1},{"version":"080941d9f9ff9307f7e27a83bcd888b7c8270716c39af943532438932ec1d0b9","affectsGlobalScope":true,"impliedFormat":1},{"version":"2e80ee7a49e8ac312cc11b77f1475804bee36b3b2bc896bead8b6e1266befb43","affectsGlobalScope":true,"impliedFormat":1},{"version":"c57796738e7f83dbc4b8e65132f11a377649c00dd3eee333f672b8f0a6bea671","affectsGlobalScope":true,"impliedFormat":1},{"version":"dc2df20b1bcdc8c2d34af4926e2c3ab15ffe1160a63e58b7e09833f616efff44","affectsGlobalScope":true,"impliedFormat":1},{"version":"515d0b7b9bea2e31ea4ec968e9edd2c39d3eebf4a2d5cbd04e88639819ae3b71","affectsGlobalScope":true,"impliedFormat":1},{"version":"0559b1f683ac7505ae451f9a96ce4c3c92bdc71411651ca6ddb0e88baaaad6a3","affectsGlobalScope":true,"impliedFormat":1},{"version":"0dc1e7ceda9b8b9b455c3a2d67b0412feab00bd2f66656cd8850e8831b08b537","affectsGlobalScope":true,"impliedFormat":1},{"version":"ce691fb9e5c64efb9547083e4a34091bcbe5bdb41027e310ebba8f7d96a98671","affectsGlobalScope":true,"impliedFormat":1},{"version":"8d697a2a929a5fcb38b7a65594020fcef05ec1630804a33748829c5ff53640d0","affectsGlobalScope":true,"impliedFormat":1},{"version":"4ff2a353abf8a80ee399af572debb8faab2d33ad38c4b4474cff7f26e7653b8d","affectsGlobalScope":true,"impliedFormat":1},{"version":"fb0f136d372979348d59b3f5020b4cdb81b5504192b1cacff5d1fbba29378aa1","affectsGlobalScope":true,"impliedFormat":1},{"version":"d15bea3d62cbbdb9797079416b8ac375ae99162a7fba5de2c6c505446486ac0a","affectsGlobalScope":true,"impliedFormat":1},{"version":"68d18b664c9d32a7336a70235958b8997ebc1c3b8505f4f1ae2b7e7753b87618","affectsGlobalScope":true,"impliedFormat":1},{"version":"eb3d66c8327153d8fa7dd03f9c58d351107fe824c79e9b56b462935176cdf12a","affectsGlobalScope":true,"impliedFormat":1},{"version":"38f0219c9e23c915ef9790ab1d680440d95419ad264816fa15009a8851e79119","affectsGlobalScope":true,"impliedFormat":1},{"version":"69ab18c3b76cd9b1be3d188eaf8bba06112ebbe2f47f6c322b5105a6fbc45a2e","affectsGlobalScope":true,"impliedFormat":1},{"version":"a680117f487a4d2f30ea46f1b4b7f58bef1480456e18ba53ee85c2746eeca012","affectsGlobalScope":true,"impliedFormat":1},{"version":"2f11ff796926e0832f9ae148008138ad583bd181899ab7dd768a2666700b1893","affectsGlobalScope":true,"impliedFormat":1},{"version":"4de680d5bb41c17f7f68e0419412ca23c98d5749dcaaea1896172f06435891fc","affectsGlobalScope":true,"impliedFormat":1},{"version":"954296b30da6d508a104a3a0b5d96b76495c709785c1d11610908e63481ee667","affectsGlobalScope":true,"impliedFormat":1},{"version":"ac9538681b19688c8eae65811b329d3744af679e0bdfa5d842d0e32524c73e1c","affectsGlobalScope":true,"impliedFormat":1},{"version":"0a969edff4bd52585473d24995c5ef223f6652d6ef46193309b3921d65dd4376","affectsGlobalScope":true,"impliedFormat":1},{"version":"9e9fbd7030c440b33d021da145d3232984c8bb7916f277e8ffd3dc2e3eae2bdb","affectsGlobalScope":true,"impliedFormat":1},{"version":"811ec78f7fefcabbda4bfa93b3eb67d9ae166ef95f9bff989d964061cbf81a0c","affectsGlobalScope":true,"impliedFormat":1},{"version":"717937616a17072082152a2ef351cb51f98802fb4b2fdabd32399843875974ca","affectsGlobalScope":true,"impliedFormat":1},{"version":"d7e7d9b7b50e5f22c915b525acc5a49a7a6584cf8f62d0569e557c5cfc4b2ac2","affectsGlobalScope":true,"impliedFormat":1},{"version":"71c37f4c9543f31dfced6c7840e068c5a5aacb7b89111a4364b1d5276b852557","affectsGlobalScope":true,"impliedFormat":1},{"version":"576711e016cf4f1804676043e6a0a5414252560eb57de9faceee34d79798c850","affectsGlobalScope":true,"impliedFormat":1},{"version":"89c1b1281ba7b8a96efc676b11b264de7a8374c5ea1e6617f11880a13fc56dc6","affectsGlobalScope":true,"impliedFormat":1},{"version":"74f7fa2d027d5b33eb0471c8e82a6c87216223181ec31247c357a3e8e2fddc5b","affectsGlobalScope":true,"impliedFormat":1},{"version":"d6d7ae4d1f1f3772e2a3cde568ed08991a8ae34a080ff1151af28b7f798e22ca","affectsGlobalScope":true,"impliedFormat":1},{"version":"063600664504610fe3e99b717a1223f8b1900087fab0b4cad1496a114744f8df","affectsGlobalScope":true,"impliedFormat":1},{"version":"934019d7e3c81950f9a8426d093458b65d5aff2c7c1511233c0fd5b941e608ab","affectsGlobalScope":true,"impliedFormat":1},{"version":"52ada8e0b6e0482b728070b7639ee42e83a9b1c22d205992756fe020fd9f4a47","affectsGlobalScope":true,"impliedFormat":1},{"version":"3bdefe1bfd4d6dee0e26f928f93ccc128f1b64d5d501ff4a8cf3c6371200e5e6","affectsGlobalScope":true,"impliedFormat":1},{"version":"59fb2c069260b4ba00b5643b907ef5d5341b167e7d1dbf58dfd895658bda2867","affectsGlobalScope":true,"impliedFormat":1},{"version":"639e512c0dfc3fad96a84caad71b8834d66329a1f28dc95e3946c9b58176c73a","affectsGlobalScope":true,"impliedFormat":1},{"version":"368af93f74c9c932edd84c58883e736c9e3d53cec1fe24c0b0ff451f529ceab1","affectsGlobalScope":true,"impliedFormat":1},{"version":"af3dd424cf267428f30ccfc376f47a2c0114546b55c44d8c0f1d57d841e28d74","affectsGlobalScope":true,"impliedFormat":1},{"version":"995c005ab91a498455ea8dfb63aa9f83fa2ea793c3d8aa344be4a1678d06d399","affectsGlobalScope":true,"impliedFormat":1},{"version":"959d36cddf5e7d572a65045b876f2956c973a586da58e5d26cde519184fd9b8a","affectsGlobalScope":true,"impliedFormat":1},{"version":"965f36eae237dd74e6cca203a43e9ca801ce38824ead814728a2807b1910117d","affectsGlobalScope":true,"impliedFormat":1},{"version":"3925a6c820dcb1a06506c90b1577db1fdbf7705d65b62b99dce4be75c637e26b","affectsGlobalScope":true,"impliedFormat":1},{"version":"0a3d63ef2b853447ec4f749d3f368ce642264246e02911fcb1590d8c161b8005","affectsGlobalScope":true,"impliedFormat":1},{"version":"8cdf8847677ac7d20486e54dd3fcf09eda95812ac8ace44b4418da1bbbab6eb8","affectsGlobalScope":true,"impliedFormat":1},{"version":"8444af78980e3b20b49324f4a16ba35024fef3ee069a0eb67616ea6ca821c47a","affectsGlobalScope":true,"impliedFormat":1},{"version":"3287d9d085fbd618c3971944b65b4be57859f5415f495b33a6adc994edd2f004","affectsGlobalScope":true,"impliedFormat":1},{"version":"b4b67b1a91182421f5df999988c690f14d813b9850b40acd06ed44691f6727ad","affectsGlobalScope":true,"impliedFormat":1},{"version":"df83c2a6c73228b625b0beb6669c7ee2a09c914637e2d35170723ad49c0f5cd4","affectsGlobalScope":true,"impliedFormat":1},{"version":"436aaf437562f276ec2ddbee2f2cdedac7664c1e4c1d2c36839ddd582eeb3d0a","affectsGlobalScope":true,"impliedFormat":1},{"version":"8e3c06ea092138bf9fa5e874a1fdbc9d54805d074bee1de31b99a11e2fec239d","affectsGlobalScope":true,"impliedFormat":1},{"version":"87dc0f382502f5bbce5129bdc0aea21e19a3abbc19259e0b43ae038a9fc4e326","affectsGlobalScope":true,"impliedFormat":1},{"version":"b1cb28af0c891c8c96b2d6b7be76bd394fddcfdb4709a20ba05a7c1605eea0f9","affectsGlobalScope":true,"impliedFormat":1},{"version":"2fef54945a13095fdb9b84f705f2b5994597640c46afeb2ce78352fab4cb3279","affectsGlobalScope":true,"impliedFormat":1},{"version":"ac77cb3e8c6d3565793eb90a8373ee8033146315a3dbead3bde8db5eaf5e5ec6","affectsGlobalScope":true,"impliedFormat":1},{"version":"56e4ed5aab5f5920980066a9409bfaf53e6d21d3f8d020c17e4de584d29600ad","affectsGlobalScope":true,"impliedFormat":1},{"version":"4ece9f17b3866cc077099c73f4983bddbcb1dc7ddb943227f1ec070f529dedd1","affectsGlobalScope":true,"impliedFormat":1},{"version":"0a6282c8827e4b9a95f4bf4f5c205673ada31b982f50572d27103df8ceb8013c","affectsGlobalScope":true,"impliedFormat":1},{"version":"1c9319a09485199c1f7b0498f2988d6d2249793ef67edda49d1e584746be9032","affectsGlobalScope":true,"impliedFormat":1},{"version":"e3a2a0cee0f03ffdde24d89660eba2685bfbdeae955a6c67e8c4c9fd28928eeb","affectsGlobalScope":true,"impliedFormat":1},{"version":"811c71eee4aa0ac5f7adf713323a5c41b0cf6c4e17367a34fbce379e12bbf0a4","affectsGlobalScope":true,"impliedFormat":1},{"version":"51ad4c928303041605b4d7ae32e0c1ee387d43a24cd6f1ebf4a2699e1076d4fa","affectsGlobalScope":true,"impliedFormat":1},{"version":"60037901da1a425516449b9a20073aa03386cce92f7a1fd902d7602be3a7c2e9","affectsGlobalScope":true,"impliedFormat":1},{"version":"d4b1d2c51d058fc21ec2629fff7a76249dec2e36e12960ea056e3ef89174080f","affectsGlobalScope":true,"impliedFormat":1},{"version":"22adec94ef7047a6c9d1af3cb96be87a335908bf9ef386ae9fd50eeb37f44c47","affectsGlobalScope":true,"impliedFormat":1},{"version":"196cb558a13d4533a5163286f30b0509ce0210e4b316c56c38d4c0fd2fb38405","affectsGlobalScope":true,"impliedFormat":1},{"version":"73f78680d4c08509933daf80947902f6ff41b6230f94dd002ae372620adb0f60","affectsGlobalScope":true,"impliedFormat":1},{"version":"c5239f5c01bcfa9cd32f37c496cf19c61d69d37e48be9de612b541aac915805b","affectsGlobalScope":true,"impliedFormat":1},{"version":"8e7f8264d0fb4c5339605a15daadb037bf238c10b654bb3eee14208f860a32ea","affectsGlobalScope":true,"impliedFormat":1},{"version":"782dec38049b92d4e85c1585fbea5474a219c6984a35b004963b00beb1aab538","affectsGlobalScope":true,"impliedFormat":1},{"version":"0990a7576222f248f0a3b888adcb7389f957928ce2afb1cd5128169086ff4d29","impliedFormat":1},{"version":"eb5b19b86227ace1d29ea4cf81387279d04bb34051e944bc53df69f58914b788","affectsGlobalScope":true,"impliedFormat":1},{"version":"ac51dd7d31333793807a6abaa5ae168512b6131bd41d9c5b98477fc3b7800f9f","impliedFormat":1},{"version":"87d9d29dbc745f182683f63187bf3d53fd8673e5fca38ad5eaab69798ed29fbc","impliedFormat":1},{"version":"f5977813ad5baf0c16eb027f2474cd8c8adea5d94fb595141ce3478efd8ac7c4","affectsGlobalScope":true,"impliedFormat":1},{"version":"cc69795d9954ee4ad57545b10c7bf1a7260d990231b1685c147ea71a6faa265c","impliedFormat":1},{"version":"8bc6c94ff4f2af1f4023b7bb2379b08d3d7dd80c698c9f0b07431ea16101f05f","impliedFormat":1},{"version":"1b61d259de5350f8b1e5db06290d31eaebebc6baafd5f79d314b5af9256d7153","impliedFormat":1},{"version":"57194e1f007f3f2cbef26fa299d4c6b21f4623a2eddc63dfeef79e38e187a36e","impliedFormat":1},{"version":"0f6666b58e9276ac3a38fdc80993d19208442d6027ab885580d93aec76b4ef00","impliedFormat":1},{"version":"05fd364b8ef02fb1e174fbac8b825bdb1e5a36a016997c8e421f5fab0a6da0a0","impliedFormat":1},{"version":"70521b6ab0dcba37539e5303104f29b721bfb2940b2776da4cc818c07e1fefc1","affectsGlobalScope":true,"impliedFormat":1},{"version":"ab41ef1f2cdafb8df48be20cd969d875602483859dc194e9c97c8a576892c052","affectsGlobalScope":true,"impliedFormat":1},{"version":"d153a11543fd884b596587ccd97aebbeed950b26933ee000f94009f1ab142848","affectsGlobalScope":true,"impliedFormat":1},{"version":"21d819c173c0cf7cc3ce57c3276e77fd9a8a01d35a06ad87158781515c9a438a","impliedFormat":1},{"version":"98cffbf06d6bab333473c70a893770dbe990783904002c4f1a960447b4b53dca","affectsGlobalScope":true,"impliedFormat":1},{"version":"ba481bca06f37d3f2c137ce343c7d5937029b2468f8e26111f3c9d9963d6568d","affectsGlobalScope":true,"impliedFormat":1},{"version":"6d9ef24f9a22a88e3e9b3b3d8c40ab1ddb0853f1bfbd5c843c37800138437b61","affectsGlobalScope":true,"impliedFormat":1},{"version":"1db0b7dca579049ca4193d034d835f6bfe73096c73663e5ef9a0b5779939f3d0","affectsGlobalScope":true,"impliedFormat":1},{"version":"9798340ffb0d067d69b1ae5b32faa17ab31b82466a3fc00d8f2f2df0c8554aaa","affectsGlobalScope":true,"impliedFormat":1},{"version":"f26b11d8d8e4b8028f1c7d618b22274c892e4b0ef5b3678a8ccbad85419aef43","affectsGlobalScope":true,"impliedFormat":1},{"version":"5929864ce17fba74232584d90cb721a89b7ad277220627cc97054ba15a98ea8f","impliedFormat":1},{"version":"763fe0f42b3d79b440a9b6e51e9ba3f3f91352469c1e4b3b67bfa4ff6352f3f4","impliedFormat":1},{"version":"25c8056edf4314820382a5fdb4bb7816999acdcb929c8f75e3f39473b87e85bc","impliedFormat":1},{"version":"c464d66b20788266e5353b48dc4aa6bc0dc4a707276df1e7152ab0c9ae21fad8","impliedFormat":1},{"version":"78d0d27c130d35c60b5e5566c9f1e5be77caf39804636bc1a40133919a949f21","impliedFormat":1},{"version":"c6fd2c5a395f2432786c9cb8deb870b9b0e8ff7e22c029954fabdd692bff6195","impliedFormat":1},{"version":"1d6e127068ea8e104a912e42fc0a110e2aa5a66a356a917a163e8cf9a65e4a75","impliedFormat":1},{"version":"5ded6427296cdf3b9542de4471d2aa8d3983671d4cac0f4bf9c637208d1ced43","impliedFormat":1},{"version":"7f182617db458e98fc18dfb272d40aa2fff3a353c44a89b2c0ccb3937709bfb5","impliedFormat":1},{"version":"cadc8aced301244057c4e7e73fbcae534b0f5b12a37b150d80e5a45aa4bebcbd","impliedFormat":1},{"version":"385aab901643aa54e1c36f5ef3107913b10d1b5bb8cbcd933d4263b80a0d7f20","impliedFormat":1},{"version":"9670d44354bab9d9982eca21945686b5c24a3f893db73c0dae0fd74217a4c219","impliedFormat":1},{"version":"0b8a9268adaf4da35e7fa830c8981cfa22adbbe5b3f6f5ab91f6658899e657a7","impliedFormat":1},{"version":"11396ed8a44c02ab9798b7dca436009f866e8dae3c9c25e8c1fbc396880bf1bb","impliedFormat":1},{"version":"ba7bc87d01492633cb5a0e5da8a4a42a1c86270e7b3d2dea5d156828a84e4882","impliedFormat":1},{"version":"4893a895ea92c85345017a04ed427cbd6a1710453338df26881a6019432febdd","impliedFormat":1},{"version":"c21dc52e277bcfc75fac0436ccb75c204f9e1b3fa5e12729670910639f27343e","impliedFormat":1},{"version":"13f6f39e12b1518c6650bbb220c8985999020fe0f21d818e28f512b7771d00f9","impliedFormat":1},{"version":"9b5369969f6e7175740bf51223112ff209f94ba43ecd3bb09eefff9fd675624a","impliedFormat":1},{"version":"4fe9e626e7164748e8769bbf74b538e09607f07ed17c2f20af8d680ee49fc1da","impliedFormat":1},{"version":"24515859bc0b836719105bb6cc3d68255042a9f02a6022b3187948b204946bd2","impliedFormat":1},{"version":"ea0148f897b45a76544ae179784c95af1bd6721b8610af9ffa467a518a086a43","impliedFormat":1},{"version":"24c6a117721e606c9984335f71711877293a9651e44f59f3d21c1ea0856f9cc9","impliedFormat":1},{"version":"dd3273ead9fbde62a72949c97dbec2247ea08e0c6952e701a483d74ef92d6a17","impliedFormat":1},{"version":"405822be75ad3e4d162e07439bac80c6bcc6dbae1929e179cf467ec0b9ee4e2e","impliedFormat":1},{"version":"0db18c6e78ea846316c012478888f33c11ffadab9efd1cc8bcc12daded7a60b6","impliedFormat":1},{"version":"e61be3f894b41b7baa1fbd6a66893f2579bfad01d208b4ff61daef21493ef0a8","impliedFormat":1},{"version":"bd0532fd6556073727d28da0edfd1736417a3f9f394877b6d5ef6ad88fba1d1a","impliedFormat":1},{"version":"89167d696a849fce5ca508032aabfe901c0868f833a8625d5a9c6e861ef935d2","impliedFormat":1},{"version":"615ba88d0128ed16bf83ef8ccbb6aff05c3ee2db1cc0f89ab50a4939bfc1943f","impliedFormat":1},{"version":"a4d551dbf8746780194d550c88f26cf937caf8d56f102969a110cfaed4b06656","impliedFormat":1},{"version":"8bd86b8e8f6a6aa6c49b71e14c4ffe1211a0e97c80f08d2c8cc98838006e4b88","impliedFormat":1},{"version":"317e63deeb21ac07f3992f5b50cdca8338f10acd4fbb7257ebf56735bf52ab00","impliedFormat":1},{"version":"4732aec92b20fb28c5fe9ad99521fb59974289ed1e45aecb282616202184064f","impliedFormat":1},{"version":"2e85db9e6fd73cfa3d7f28e0ab6b55417ea18931423bd47b409a96e4a169e8e6","impliedFormat":1},{"version":"c46e079fe54c76f95c67fb89081b3e399da2c7d109e7dca8e4b58d83e332e605","impliedFormat":1},{"version":"bf67d53d168abc1298888693338cb82854bdb2e69ef83f8a0092093c2d562107","impliedFormat":1},{"version":"b52476feb4a0cbcb25e5931b930fc73cb6643fb1a5060bf8a3dda0eeae5b4b68","affectsGlobalScope":true,"impliedFormat":1},{"version":"e2677634fe27e87348825bb041651e22d50a613e2fdf6a4a3ade971d71bac37e","impliedFormat":1},{"version":"7394959e5a741b185456e1ef5d64599c36c60a323207450991e7a42e08911419","impliedFormat":1},{"version":"8c0bcd6c6b67b4b503c11e91a1fb91522ed585900eab2ab1f61bba7d7caa9d6f","impliedFormat":1},{"version":"8cd19276b6590b3ebbeeb030ac271871b9ed0afc3074ac88a94ed2449174b776","affectsGlobalScope":true,"impliedFormat":1},{"version":"696eb8d28f5949b87d894b26dc97318ef944c794a9a4e4f62360cd1d1958014b","impliedFormat":1},{"version":"3f8fa3061bd7402970b399300880d55257953ee6d3cd408722cb9ac20126460c","impliedFormat":1},{"version":"35ec8b6760fd7138bbf5809b84551e31028fb2ba7b6dc91d95d098bf212ca8b4","affectsGlobalScope":true,"impliedFormat":1},{"version":"5524481e56c48ff486f42926778c0a3cce1cc85dc46683b92b1271865bcf015a","impliedFormat":1},{"version":"68bd56c92c2bd7d2339457eb84d63e7de3bd56a69b25f3576e1568d21a162398","affectsGlobalScope":true,"impliedFormat":1},{"version":"3e93b123f7c2944969d291b35fed2af79a6e9e27fdd5faa99748a51c07c02d28","impliedFormat":1},{"version":"9d19808c8c291a9010a6c788e8532a2da70f811adb431c97520803e0ec649991","impliedFormat":1},{"version":"87aad3dd9752067dc875cfaa466fc44246451c0c560b820796bdd528e29bef40","impliedFormat":1},{"version":"4aacb0dd020eeaef65426153686cc639a78ec2885dc72ad220be1d25f1a439df","impliedFormat":1},{"version":"f0bd7e6d931657b59605c44112eaf8b980ba7f957a5051ed21cb93d978cf2f45","impliedFormat":1},{"version":"8db0ae9cb14d9955b14c214f34dae1b9ef2baee2fe4ce794a4cd3ac2531e3255","affectsGlobalScope":true,"impliedFormat":1},{"version":"15fc6f7512c86810273af28f224251a5a879e4261b4d4c7e532abfbfc3983134","impliedFormat":1},{"version":"58adba1a8ab2d10b54dc1dced4e41f4e7c9772cbbac40939c0dc8ce2cdb1d442","impliedFormat":1},{"version":"641942a78f9063caa5d6b777c99304b7d1dc7328076038c6d94d8a0b81fc95c1","impliedFormat":1},{"version":"2de7636e6fbb9e54a61a38bcb7505b94ec5be61197fe9e840cff629ca920c4bc","impliedFormat":1},{"version":"855cd5f7eb396f5f1ab1bc0f8580339bff77b68a770f84c6b254e319bbfd1ac7","impliedFormat":1},{"version":"5650cf3dace09e7c25d384e3e6b818b938f68f4e8de96f52d9c5a1b3db068e86","impliedFormat":1},{"version":"1354ca5c38bd3fd3836a68e0f7c9f91f172582ba30ab15bb8c075891b91502b7","affectsGlobalScope":true,"impliedFormat":1},{"version":"7e20d899c28ca26a2a7afc98beaa69e63ff7fba0a8bc47b4e3bf3ede5e09e424","impliedFormat":1},{"version":"2d2fcaab481b31a5882065c7951255703ddbe1c0e507af56ea42d79ac3911201","impliedFormat":1},{"version":"a192fe8ec33f75edbc8d8f3ed79f768dfae11ff5735e7fe52bfa69956e46d78d","impliedFormat":1},{"version":"ca867399f7db82df981d6915bcbb2d81131d7d1ef683bc782b59f71dda59bc85","affectsGlobalScope":true,"impliedFormat":1},{"version":"372413016d17d804e1d139418aca0c68e47a83fb6669490857f4b318de8cccb3","affectsGlobalScope":true,"impliedFormat":1},{"version":"9e043a1bc8fbf2a255bccf9bf27e0f1caf916c3b0518ea34aa72357c0afd42ec","impliedFormat":1},{"version":"b4f70ec656a11d570e1a9edce07d118cd58d9760239e2ece99306ee9dfe61d02","impliedFormat":1},{"version":"3bc2f1e2c95c04048212c569ed38e338873f6a8593930cf5a7ef24ffb38fc3b6","impliedFormat":1},{"version":"6e70e9570e98aae2b825b533aa6292b6abd542e8d9f6e9475e88e1d7ba17c866","impliedFormat":1},{"version":"f9d9d753d430ed050dc1bf2667a1bab711ccbb1c1507183d794cc195a5b085cc","impliedFormat":1},{"version":"9eece5e586312581ccd106d4853e861aaaa1a39f8e3ea672b8c3847eedd12f6e","impliedFormat":1},{"version":"085f552d005479e2e6a7311cdbbe5d8c55c497b4d19274285df161ee9684cd9c","impliedFormat":1},{"version":"37ba7b45141a45ce6e80e66f2a96c8a5ab1bcef0fc2d0f56bb58df96ec67e972","impliedFormat":1},{"version":"45650f47bfb376c8a8ed39d4bcda5902ab899a3150029684ee4c10676d9fbaee","impliedFormat":1},{"version":"007faacc9268357caa21d24169f3f3f2497af3e9241308df2d89f6e6d9bb3f2e","affectsGlobalScope":true,"impliedFormat":1},{"version":"74cf591a0f63db318651e0e04cb55f8791385f86e987a67fd4d2eaab8191f730","impliedFormat":1},{"version":"5eab9b3dc9b34f185417342436ec3f106898da5f4801992d8ff38ab3aff346b5","impliedFormat":1},{"version":"12ed4559eba17cd977aa0db658d25c4047067444b51acfdcbf38470630642b23","affectsGlobalScope":true,"impliedFormat":1},{"version":"f3ffabc95802521e1e4bcba4c88d8615176dc6e09111d920c7a213bdda6e1d65","impliedFormat":1},{"version":"809821b8a065e3234a55b3a9d7846231ed18d66dd749f2494c66288d890daf7f","impliedFormat":1},{"version":"ae56f65caf3be91108707bd8dfbccc2a57a91feb5daabf7165a06a945545ed26","impliedFormat":1},{"version":"a136d5de521da20f31631a0a96bf712370779d1c05b7015d7019a9b2a0446ca9","impliedFormat":1},{"version":"c3b41e74b9a84b88b1dca61ec39eee25c0dbc8e7d519ba11bb070918cfacf656","affectsGlobalScope":true,"impliedFormat":1},{"version":"4737a9dc24d0e68b734e6cfbcea0c15a2cfafeb493485e27905f7856988c6b29","affectsGlobalScope":true,"impliedFormat":1},{"version":"36d8d3e7506b631c9582c251a2c0b8a28855af3f76719b12b534c6edf952748d","impliedFormat":1},{"version":"1ca69210cc42729e7ca97d3a9ad48f2e9cb0042bada4075b588ae5387debd318","impliedFormat":1},{"version":"f5ebe66baaf7c552cfa59d75f2bfba679f329204847db3cec385acda245e574e","impliedFormat":1},{"version":"ed59add13139f84da271cafd32e2171876b0a0af2f798d0c663e8eeb867732cf","affectsGlobalScope":true,"impliedFormat":1},{"version":"b7c5e2ea4a9749097c347454805e933844ed207b6eefec6b7cfd418b5f5f7b28","impliedFormat":1},{"version":"b1810689b76fd473bd12cc9ee219f8e62f54a7d08019a235d07424afbf074d25","impliedFormat":1},{"version":"8caa5c86be1b793cd5f599e27ecb34252c41e011980f7d61ae4989a149ff6ccc","impliedFormat":1},{"version":"f9fd93190acb1ffe0bc0fb395df979452f8d625071e9ffc8636e4dfb86ab2508","impliedFormat":1},{"version":"5f41fd8732a89e940c58ce22206e3df85745feb8983e2b4c6257fb8cbb118493","impliedFormat":1},{"version":"17ed71200119e86ccef2d96b73b02ce8854b76ad6bd21b5021d4269bec527b5f","impliedFormat":1},{"version":"1cfa8647d7d71cb03847d616bd79320abfc01ddea082a49569fda71ac5ece66b","impliedFormat":1},{"version":"bb7a61dd55dc4b9422d13da3a6bb9cc5e89be888ef23bbcf6558aa9726b89a1c","impliedFormat":1},{"version":"db6d2d9daad8a6d83f281af12ce4355a20b9a3e71b82b9f57cddcca0a8964a96","impliedFormat":1},{"version":"cfe4ef4710c3786b6e23dae7c086c70b4f4835a2e4d77b75d39f9046106e83d3","impliedFormat":1},{"version":"cbea99888785d49bb630dcbb1613c73727f2b5a2cf02e1abcaab7bcf8d6bf3c5","impliedFormat":1},{"version":"3a8bddb66b659f6bd2ff641fc71df8a8165bafe0f4b799cc298be5cd3755bb20","impliedFormat":1},{"version":"a86f82d646a739041d6702101afa82dcb935c416dd93cbca7fd754fd0282ce1f","impliedFormat":1},{"version":"2dad084c67e649f0f354739ec7df7c7df0779a28a4f55c97c6b6883ae850d1ce","impliedFormat":1},{"version":"fa5bbc7ab4130dd8cdc55ea294ec39f76f2bc507a0f75f4f873e38631a836ca7","impliedFormat":1},{"version":"df45ca1176e6ac211eae7ddf51336dc075c5314bc5c253651bae639defd5eec5","impliedFormat":1},{"version":"cf86de1054b843e484a3c9300d62fbc8c97e77f168bbffb131d560ca0474d4a8","impliedFormat":1},{"version":"196c960b12253fde69b204aa4fbf69470b26daf7a430855d7f94107a16495ab0","impliedFormat":1},{"version":"ee15ea5dd7a9fc9f5013832e5843031817a880bf0f24f37a29fd8337981aae07","impliedFormat":1},{"version":"bf24f6d35f7318e246010ffe9924395893c4e96d34324cde77151a73f078b9ad","impliedFormat":1},{"version":"ea53732769832d0f127ae16620bd5345991d26bf0b74e85e41b61b27d74ea90f","impliedFormat":1},{"version":"10595c7ff5094dd5b6a959ccb1c00e6a06441b4e10a87bc09c15f23755d34439","impliedFormat":1},{"version":"9620c1ff645afb4a9ab4044c85c26676f0a93e8c0e4b593aea03a89ccb47b6d0","impliedFormat":1},{"version":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","impliedFormat":1},{"version":"a9af0e608929aaf9ce96bd7a7b99c9360636c31d73670e4af09a09950df97841","impliedFormat":1},{"version":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","impliedFormat":1},{"version":"c86fe861cf1b4c46a0fb7d74dffe596cf679a2e5e8b1456881313170f092e3fa","impliedFormat":1},{"version":"08ed0b3f0166787f84a6606f80aa3b1388c7518d78912571b203817406e471da","impliedFormat":1},{"version":"47e5af2a841356a961f815e7c55d72554db0c11b4cba4d0caab91f8717846a94","impliedFormat":1},{"version":"65f43099ded6073336e697512d9b80f2d4fec3182b7b2316abf712e84104db00","impliedFormat":1},{"version":"f5f541902bf7ae0512a177295de9b6bcd6809ea38307a2c0a18bfca72212f368","impliedFormat":1},{"version":"b0decf4b6da3ebc52ea0c96095bdfaa8503acc4ac8e9081c5f2b0824835dd3bd","impliedFormat":1},{"version":"ca1b882a105a1972f82cc58e3be491e7d750a1eb074ffd13b198269f57ed9e1b","impliedFormat":1},{"version":"fc3e1c87b39e5ba1142f27ec089d1966da168c04a859a4f6aab64dceae162c2b","impliedFormat":1},{"version":"3b414b99a73171e1c4b7b7714e26b87d6c5cb03d200352da5342ab4088a54c85","impliedFormat":1},{"version":"61888522cec948102eba94d831c873200aa97d00d8989fdfd2a3e0ee75ec65a2","impliedFormat":1},{"version":"4e10622f89fea7b05dd9b52fb65e1e2b5cbd96d4cca3d9e1a60bb7f8a9cb86a1","impliedFormat":1},{"version":"74b2a5e5197bd0f2e0077a1ea7c07455bbea67b87b0869d9786d55104006784f","impliedFormat":1},{"version":"59bf32919de37809e101acffc120596a9e45fdbab1a99de5087f31fdc36e2f11","impliedFormat":1},{"version":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","impliedFormat":1},{"version":"faa03dffb64286e8304a2ca96dd1317a77db6bfc7b3fb385163648f67e535d77","impliedFormat":1},{"version":"c40c848daad198266370c1c72a7a8c3d18d2f50727c7859fcfefd3ff69a7f288","impliedFormat":1},{"version":"ac60bbee0d4235643cc52b57768b22de8c257c12bd8c2039860540cab1fa1d82","impliedFormat":1},{"version":"6428e6edd944ce6789afdf43f9376c1f2e4957eea34166177625aaff4c0da1a0","impliedFormat":1},{"version":"ada39cbb2748ab2873b7835c90c8d4620723aedf323550e8489f08220e477c7f","impliedFormat":1},{"version":"6e5f5cee603d67ee1ba6120815497909b73399842254fc1e77a0d5cdc51d8c9c","impliedFormat":1},{"version":"8dba67056cbb27628e9b9a1cba8e57036d359dceded0725c72a3abe4b6c79cd4","impliedFormat":1},{"version":"70f3814c457f54a7efe2d9ce9d2686de9250bb42eb7f4c539bd2280a42e52d33","impliedFormat":1},{"version":"154dd2e22e1e94d5bc4ff7726706bc0483760bae40506bdce780734f11f7ec47","impliedFormat":1},{"version":"ef61792acbfa8c27c9bd113f02731e66229f7d3a169e3c1993b508134f1a58e0","impliedFormat":1},{"version":"9c82171d836c47486074e4ca8e059735bf97b205e70b196535b5efd40cbe1bc5","impliedFormat":1},{"version":"0131e203d8560edb39678abe10db42564a068f98c4ebd1ed9ffe7279c78b3c81","impliedFormat":1},{"version":"f6404e7837b96da3ea4d38c4f1a3812c96c9dcdf264e93d5bdb199f983a3ef4b","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":"8b8f00491431fe82f060dfe8c7f2180a9fb239f3d851527db909b83230e75882","affectsGlobalScope":true,"impliedFormat":1},{"version":"db01d18853469bcb5601b9fc9826931cc84cc1a1944b33cad76fd6f1e3d8c544","affectsGlobalScope":true,"impliedFormat":1},{"version":"dba114fb6a32b355a9cfc26ca2276834d72fe0e94cd2c3494005547025015369","impliedFormat":1},{"version":"903e299a28282fa7b714586e28409ed73c3b63f5365519776bf78e8cf173db36","affectsGlobalScope":true,"impliedFormat":1},{"version":"fa6c12a7c0f6b84d512f200690bfc74819e99efae69e4c95c4cd30f6884c526e","impliedFormat":1},{"version":"f1c32f9ce9c497da4dc215c3bc84b722ea02497d35f9134db3bb40a8d918b92b","impliedFormat":1},{"version":"b73c319af2cc3ef8f6421308a250f328836531ea3761823b4cabbd133047aefa","affectsGlobalScope":true,"impliedFormat":1},{"version":"e433b0337b8106909e7953015e8fa3f2d30797cea27141d1c5b135365bb975a6","impliedFormat":1},{"version":"dd3900b24a6a8745efeb7ad27629c0f8a626470ac229c1d73f1fe29d67e44dca","impliedFormat":1},{"version":"ddff7fc6edbdc5163a09e22bf8df7bef75f75369ebd7ecea95ba55c4386e2441","impliedFormat":1},{"version":"106c6025f1d99fd468fd8bf6e5bda724e11e5905a4076c5d29790b6c3745e50c","impliedFormat":1},{"version":"ec29be0737d39268696edcec4f5e97ce26f449fa9b7afc2f0f99a86def34a418","impliedFormat":1},{"version":"aeab39e8e0b1a3b250434c3b2bb8f4d17bbec2a9dbce5f77e8a83569d3d2cbc2","impliedFormat":1},{"version":"ec6cba1c02c675e4dd173251b156792e8d3b0c816af6d6ad93f1a55d674591aa","impliedFormat":1},{"version":"b620391fe8060cf9bedc176a4d01366e6574d7a71e0ac0ab344a4e76576fcbb8","impliedFormat":1},{"version":"d729408dfde75b451530bcae944cf89ee8277e2a9df04d1f62f2abfd8b03c1e1","impliedFormat":1},{"version":"e15d3c84d5077bb4a3adee4c791022967b764dc41cb8fa3cfa44d4379b2c95f5","impliedFormat":1},{"version":"5f58e28cd22e8fc1ac1b3bc6b431869f1e7d0b39e2c21fbf79b9fa5195a85980","impliedFormat":1},{"version":"e1fc1a1045db5aa09366be2b330e4ce391550041fc3e925f60998ca0b647aa97","impliedFormat":1},{"version":"63533978dcda286422670f6e184ac516805a365fb37a086eeff4309e812f1402","impliedFormat":1},{"version":"43ba4f2fa8c698f5c304d21a3ef596741e8e85a810b7c1f9b692653791d8d97a","impliedFormat":1},{"version":"31fb49ef3aa3d76f0beb644984e01eab0ea222372ea9b49bb6533be5722d756c","impliedFormat":1},{"version":"33cd131e1461157e3e06b06916b5176e7a8ec3fce15a5cfe145e56de744e07d2","impliedFormat":1},{"version":"889ef863f90f4917221703781d9723278db4122d75596b01c429f7c363562b86","impliedFormat":1},{"version":"3556cfbab7b43da96d15a442ddbb970e1f2fc97876d055b6555d86d7ac57dae5","impliedFormat":1},{"version":"437751e0352c6e924ddf30e90849f1d9eb00ca78c94d58d6a37202ec84eb8393","impliedFormat":1},{"version":"48e8af7fdb2677a44522fd185d8c87deff4d36ee701ea003c6c780b1407a1397","impliedFormat":1},{"version":"d11308de5a36c7015bb73adb5ad1c1bdaac2baede4cc831a05cf85efa3cc7f2f","impliedFormat":1},{"version":"38e4684c22ed9319beda6765bab332c724103d3a966c2e5e1c5a49cf7007845f","impliedFormat":1},{"version":"f9812cfc220ecf7557183379531fa409acd249b9e5b9a145d0d52b76c20862de","affectsGlobalScope":true,"impliedFormat":1},{"version":"e650298721abc4f6ae851e60ae93ee8199791ceec4b544c3379862f81f43178c","impliedFormat":1},{"version":"2e4f37ffe8862b14d8e24ae8763daaa8340c0df0b859d9a9733def0eee7562d9","impliedFormat":1},{"version":"13283350547389802aa35d9f2188effaeac805499169a06ef5cd77ce2a0bd63f","impliedFormat":1},{"version":"680793958f6a70a44c8d9ae7d46b7a385361c69ac29dcab3ed761edce1c14ab8","impliedFormat":1},{"version":"6ac6715916fa75a1f7ebdfeacac09513b4d904b667d827b7535e84ff59679aff","impliedFormat":1},{"version":"42c169fb8c2d42f4f668c624a9a11e719d5d07dacbebb63cbcf7ef365b0a75b3","impliedFormat":1},{"version":"913ddbba170240070bd5921b8f33ea780021bdf42fbdfcd4fcb2691b1884ddde","impliedFormat":1},{"version":"b4e6d416466999ff40d3fe5ceb95f7a8bfb7ac2262580287ac1a8391e5362431","impliedFormat":1},{"version":"5fe23bd829e6be57d41929ac374ee9551ccc3c44cee893167b7b5b77be708014","impliedFormat":1},{"version":"0a626484617019fcfbfc3c1bc1f9e84e2913f1adb73692aa9075817404fb41a1","impliedFormat":1},{"version":"438c7513b1df91dcef49b13cd7a1c4720f91a36e88c1df731661608b7c055f10","impliedFormat":1},{"version":"cf185cc4a9a6d397f416dd28cca95c227b29f0f27b160060a95c0e5e36cda865","impliedFormat":1},{"version":"0086f3e4ad898fd7ca56bb223098acfacf3fa065595182aaf0f6c4a6a95e6fbd","impliedFormat":1},{"version":"efaa078e392f9abda3ee8ade3f3762ab77f9c50b184e6883063a911742a4c96a","impliedFormat":1},{"version":"54a8bb487e1dc04591a280e7a673cdfb272c83f61e28d8a64cf1ac2e63c35c51","impliedFormat":1},{"version":"021a9498000497497fd693dd315325484c58a71b5929e2bbb91f419b04b24cea","impliedFormat":1},{"version":"9385cdc09850950bc9b59cca445a3ceb6fcca32b54e7b626e746912e489e535e","impliedFormat":1},{"version":"2894c56cad581928bb37607810af011764a2f511f575d28c9f4af0f2ef02d1ab","impliedFormat":1},{"version":"0a72186f94215d020cb386f7dca81d7495ab6c17066eb07d0f44a5bf33c1b21a","impliedFormat":1},{"version":"84124384abae2f6f66b7fbfc03862d0c2c0b71b826f7dbf42c8085d31f1d3f95","impliedFormat":1},{"version":"63a8e96f65a22604eae82737e409d1536e69a467bb738bec505f4f97cce9d878","impliedFormat":1},{"version":"3fd78152a7031315478f159c6a5872c712ece6f01212c78ea82aef21cb0726e2","impliedFormat":1},{"version":"b01bd582a6e41457bc56e6f0f9de4cb17f33f5f3843a7cf8210ac9c18472fb0f","impliedFormat":1},{"version":"58b49e5c1def740360b5ae22ae2405cfac295fee74abd88d74ac4ea42502dc03","impliedFormat":1},{"version":"512fc15cca3a35b8dbbf6e23fe9d07e6f87ad03c895acffd3087ce09f352aad0","impliedFormat":1},{"version":"9a0946d15a005832e432ea0cd4da71b57797efb25b755cc07f32274296d62355","impliedFormat":1},{"version":"a52ff6c0a149e9f370372fc3c715d7f2beee1f3bab7980e271a7ab7d313ec677","impliedFormat":1},{"version":"fd933f824347f9edd919618a76cdb6a0c0085c538115d9a287fa0c7f59957ab3","impliedFormat":1},{"version":"6ac6715916fa75a1f7ebdfeacac09513b4d904b667d827b7535e84ff59679aff","impliedFormat":1},{"version":"6a1aa3e55bdc50503956c5cd09ae4cd72e3072692d742816f65c66ca14f4dfdd","impliedFormat":1},{"version":"ab75cfd9c4f93ffd601f7ca1753d6a9d953bbedfbd7a5b3f0436ac8a1de60dfa","impliedFormat":1},{"version":"f95180f03d827525ca4f990f49e17ec67198c316dd000afbe564655141f725cd","impliedFormat":1},{"version":"b73cbf0a72c8800cf8f96a9acfe94f3ad32ca71342a8908b8ae484d61113f647","impliedFormat":1},{"version":"bae6dd176832f6423966647382c0d7ba9e63f8c167522f09a982f086cd4e8b23","impliedFormat":1},{"version":"1364f64d2fb03bbb514edc42224abd576c064f89be6a990136774ecdd881a1da","impliedFormat":1},{"version":"c9958eb32126a3843deedda8c22fb97024aa5d6dd588b90af2d7f2bfac540f23","impliedFormat":1},{"version":"950fb67a59be4c2dbe69a5786292e60a5cb0e8612e0e223537784c731af55db1","impliedFormat":1},{"version":"e927c2c13c4eaf0a7f17e6022eee8519eb29ef42c4c13a31e81a611ab8c95577","impliedFormat":1},{"version":"07ca44e8d8288e69afdec7a31fa408ce6ab90d4f3d620006701d5544646da6aa","impliedFormat":1},{"version":"70246ad95ad8a22bdfe806cb5d383a26c0c6e58e7207ab9c431f1cb175aca657","impliedFormat":1},{"version":"f00f3aa5d64ff46e600648b55a79dcd1333458f7a10da2ed594d9f0a44b76d0b","impliedFormat":1},{"version":"772d8d5eb158b6c92412c03228bd9902ccb1457d7a705b8129814a5d1a6308fc","impliedFormat":1},{"version":"4e4475fba4ed93a72f167b061cd94a2e171b82695c56de9899275e880e06ba41","impliedFormat":1},{"version":"97c5f5d580ab2e4decd0a3135204050f9b97cd7908c5a8fbc041eadede79b2fa","impliedFormat":1},{"version":"c99a3a5f2215d5b9d735aa04cec6e61ed079d8c0263248e298ffe4604d4d0624","impliedFormat":1},{"version":"49b2375c586882c3ac7f57eba86680ff9742a8d8cb2fe25fe54d1b9673690d41","impliedFormat":1},{"version":"802e797bcab5663b2c9f63f51bdf67eff7c41bc64c0fd65e6da3e7941359e2f7","impliedFormat":1},{"version":"847e160d709c74cc714fbe1f99c41d3425b74cd47b1be133df1623cd87014089","impliedFormat":1},{"version":"9fee04f1e1afa50524862289b9f0b0fdc3735b80e2a0d684cec3b9ff3d94cecc","impliedFormat":1},{"version":"5cdc27fbc5c166fc5c763a30ac21cbac9859dc5ba795d3230db6d4e52a1965bb","impliedFormat":1},{"version":"6459054aabb306821a043e02b89d54da508e3a6966601a41e71c166e4ea1474f","impliedFormat":1},{"version":"f416c9c3eee9d47ff49132c34f96b9180e50485d435d5748f0e8b72521d28d2e","impliedFormat":1},{"version":"05c97cddbaf99978f83d96de2d8af86aded9332592f08ce4a284d72d0952c391","impliedFormat":1},{"version":"14e5cdec6f8ae82dfd0694e64903a0a54abdfe37e1d966de3d4128362acbf35f","impliedFormat":1},{"version":"bbc183d2d69f4b59fd4dd8799ffdf4eb91173d1c4ad71cce91a3811c021bf80c","impliedFormat":1},{"version":"7b6ff760c8a240b40dab6e4419b989f06a5b782f4710d2967e67c695ef3e93c4","impliedFormat":1},{"version":"8dbc4134a4b3623fc476be5f36de35c40f2768e2e3d9ed437e0d5f1c4cd850f6","impliedFormat":1},{"version":"4e06330a84dec7287f7ebdd64978f41a9f70a668d3b5edc69d5d4a50b9b376bb","impliedFormat":1},{"version":"65bfa72967fbe9fc33353e1ac03f0480aa2e2ea346d61ff3ea997dfd850f641a","impliedFormat":1},{"version":"c06f0bb92d1a1a5a6c6e4b5389a5664d96d09c31673296cb7da5fe945d54d786","impliedFormat":1},{"version":"f974e4a06953682a2c15d5bd5114c0284d5abf8bc0fe4da25cb9159427b70072","impliedFormat":1},{"version":"872caaa31423f4345983d643e4649fb30f548e9883a334d6d1c5fff68ede22d4","impliedFormat":1},{"version":"94404c4a878fe291e7578a2a80264c6f18e9f1933fbb57e48f0eb368672e389c","impliedFormat":1},{"version":"5c1b7f03aa88be854bc15810bfd5bd5a1943c5a7620e1c53eddd2a013996343e","impliedFormat":1},{"version":"09dfc64fcd6a2785867f2368419859a6cc5a8d4e73cbe2538f205b1642eb0f51","impliedFormat":1},{"version":"bcf6f0a323653e72199105a9316d91463ad4744c546d1271310818b8cef7c608","impliedFormat":1},{"version":"01aa917531e116485beca44a14970834687b857757159769c16b228eb1e49c5f","impliedFormat":1},{"version":"351475f9c874c62f9b45b1f0dc7e2704e80dfd5f1af83a3a9f841f9dfe5b2912","impliedFormat":1},{"version":"ac457ad39e531b7649e7b40ee5847606eac64e236efd76c5d12db95bf4eacd17","impliedFormat":1},{"version":"187a6fdbdecb972510b7555f3caacb44b58415da8d5825d03a583c4b73fde4cf","impliedFormat":1},{"version":"d4c3250105a612202289b3a266bb7e323db144f6b9414f9dea85c531c098b811","impliedFormat":1},{"version":"95b444b8c311f2084f0fb51c616163f950fb2e35f4eaa07878f313a2d36c98a4","impliedFormat":1},{"version":"741067675daa6d4334a2dc80a4452ca3850e89d5852e330db7cb2b5f867173b1","impliedFormat":1},{"version":"f8acecec1114f11690956e007d920044799aefeb3cece9e7f4b1f8a1d542b2c9","impliedFormat":1},{"version":"178071ccd043967a58c5d1a032db0ddf9bd139e7920766b537d9783e88eb615e","impliedFormat":1},{"version":"3a17f09634c50cce884721f54fd9e7b98e03ac505889c560876291fcf8a09e90","impliedFormat":1},{"version":"32531dfbb0cdc4525296648f53b2b5c39b64282791e2a8c765712e49e6461046","impliedFormat":1},{"version":"0ce1b2237c1c3df49748d61568160d780d7b26693bd9feb3acb0744a152cd86d","impliedFormat":1},{"version":"e489985388e2c71d3542612685b4a7db326922b57ac880f299da7026a4e8a117","impliedFormat":1},{"version":"5cad4158616d7793296dd41e22e1257440910ea8d01c7b75045d4dfb20c5a41a","impliedFormat":1},{"version":"04d3aad777b6af5bd000bfc409907a159fe77e190b9d368da4ba649cdc28d39e","affectsGlobalScope":true,"impliedFormat":1},{"version":"74efc1d6523bd57eb159c18d805db4ead810626bc5bc7002a2c7f483044b2e0f","impliedFormat":1},{"version":"19252079538942a69be1645e153f7dbbc1ef56b4f983c633bf31fe26aeac32cd","impliedFormat":1},{"version":"bc11f3ac00ac060462597add171220aed628c393f2782ac75dd29ff1e0db871c","impliedFormat":1},{"version":"616775f16134fa9d01fc677ad3f76e68c051a056c22ab552c64cc281a9686790","impliedFormat":1},{"version":"65c24a8baa2cca1de069a0ba9fba82a173690f52d7e2d0f1f7542d59d5eb4db0","impliedFormat":1},{"version":"f9fe6af238339a0e5f7563acee3178f51db37f32a2e7c09f85273098cee7ec49","impliedFormat":1},{"version":"3b0b1d352b8d2e47f1c4df4fb0678702aee071155b12ef0185fce9eb4fa4af1e","impliedFormat":1},{"version":"77e71242e71ebf8528c5802993697878f0533db8f2299b4d36aa015bae08a79c","impliedFormat":1},{"version":"a344403e7a7384e0e7093942533d309194ad0a53eca2a3100c0b0ab4d3932773","impliedFormat":1},{"version":"b7fff2d004c5879cae335db8f954eb1d61242d9f2d28515e67902032723caeab","impliedFormat":1},{"version":"5f3dc10ae646f375776b4e028d2bed039a93eebbba105694d8b910feebbe8b9c","impliedFormat":1},{"version":"bb18bf4a61a17b4a6199eb3938ecfa4a59eb7c40843ad4a82b975ab6f7e3d925","impliedFormat":1},{"version":"4545c1a1ceca170d5d83452dd7c4994644c35cf676a671412601689d9a62da35","impliedFormat":1},{"version":"e9b6fc05f536dfddcdc65dbcf04e09391b1c968ab967382e48924f5cb90d88e1","impliedFormat":1},{"version":"a2d648d333cf67b9aeac5d81a1a379d563a8ffa91ddd61c6179f68de724260ff","impliedFormat":1},{"version":"2b664c3cc544d0e35276e1fb2d4989f7d4b4027ffc64da34ec83a6ccf2e5c528","impliedFormat":1},{"version":"a3f41ed1b4f2fc3049394b945a68ae4fdefd49fa1739c32f149d32c0545d67f5","impliedFormat":1},{"version":"3cd8f0464e0939b47bfccbb9bb474a6d87d57210e304029cd8eb59c63a81935d","impliedFormat":1},{"version":"47699512e6d8bebf7be488182427189f999affe3addc1c87c882d36b7f2d0b0e","impliedFormat":1},{"version":"3026abd48e5e312f2328629ede6e0f770d21c3cd32cee705c450e589d015ee09","impliedFormat":1},{"version":"8b140b398a6afbd17cc97c38aea5274b2f7f39b1ae5b62952cfe65bf493e3e75","impliedFormat":1},{"version":"7663d2c19ce5ef8288c790edba3d45af54e58c84f1b37b1249f6d49d962f3d91","impliedFormat":1},{"version":"5cce3b975cdb72b57ae7de745b3c5de5790781ee88bcb41ba142f07c0fa02e97","impliedFormat":1},{"version":"00bd6ebe607246b45296aa2b805bd6a58c859acecda154bfa91f5334d7c175c6","impliedFormat":1},{"version":"ad036a85efcd9e5b4f7dd5c1a7362c8478f9a3b6c3554654ca24a29aa850a9c5","impliedFormat":1},{"version":"fedebeae32c5cdd1a85b4e0504a01996e4a8adf3dfa72876920d3dd6e42978e7","impliedFormat":1},{"version":"0d28b974a7605c4eda20c943b3fa9ae16cb452c1666fc9b8c341b879992c7612","impliedFormat":1},{"version":"cdf21eee8007e339b1b9945abf4a7b44930b1d695cc528459e68a3adc39a622e","impliedFormat":1},{"version":"db036c56f79186da50af66511d37d9fe77fa6793381927292d17f81f787bb195","impliedFormat":1},{"version":"87ac2fb61e629e777f4d161dff534c2023ee15afd9cb3b1589b9b1f014e75c58","impliedFormat":1},{"version":"13c8b4348db91e2f7d694adc17e7438e6776bc506d5c8f5de9ad9989707fa3fe","impliedFormat":1},{"version":"3c1051617aa50b38e9efaabce25e10a5dd9b1f42e372ef0e8a674076a68742ed","impliedFormat":1},{"version":"07a3e20cdcb0f1182f452c0410606711fbea922ca76929a41aacb01104bc0d27","impliedFormat":1},{"version":"1de80059b8078ea5749941c9f863aa970b4735bdbb003be4925c853a8b6b4450","impliedFormat":1},{"version":"1d079c37fa53e3c21ed3fa214a27507bda9991f2a41458705b19ed8c2b61173d","impliedFormat":1},{"version":"4cd4b6b1279e9d744a3825cbd7757bbefe7f0708f3f1069179ad535f19e8ed2c","impliedFormat":1},{"version":"5835a6e0d7cd2738e56b671af0e561e7c1b4fb77751383672f4b009f4e161d70","impliedFormat":1},{"version":"c0eeaaa67c85c3bb6c52b629ebbfd3b2292dc67e8c0ffda2fc6cd2f78dc471e6","impliedFormat":1},{"version":"4b7f74b772140395e7af67c4841be1ab867c11b3b82a51b1aeb692822b76c872","impliedFormat":1},{"version":"27be6622e2922a1b412eb057faa854831b95db9db5035c3f6d4b677b902ab3b7","impliedFormat":1},{"version":"b95a6f019095dd1d48fd04965b50dfd63e5743a6e75478343c46d2582a5132bf","impliedFormat":99},{"version":"c2008605e78208cfa9cd70bd29856b72dda7ad89df5dc895920f8e10bcb9cd0a","impliedFormat":99},{"version":"b97cb5616d2ab82a98ec9ada7b9e9cabb1f5da880ec50ea2b8dc5baa4cbf3c16","impliedFormat":99},{"version":"d23df9ff06ae8bf1dcb7cc933e97ae7da418ac77749fecee758bb43a8d69f840","affectsGlobalScope":true,"impliedFormat":1},{"version":"040c71dde2c406f869ad2f41e8d4ce579cc60c8dbe5aa0dd8962ac943b846572","affectsGlobalScope":true,"impliedFormat":1},{"version":"3586f5ea3cc27083a17bd5c9059ede9421d587286d5a47f4341a4c2d00e4fa91","impliedFormat":1},{"version":"a6df929821e62f4719551f7955b9f42c0cd53c1370aec2dd322e24196a7dfe33","impliedFormat":1},{"version":"b789bf89eb19c777ed1e956dbad0925ca795701552d22e68fd130a032008b9f9","impliedFormat":1},"9dd9d642cdb87d4d5b3173217e0c45429b3e47a6f5cf5fb0ead6c644ec5fed01",{"version":"b096a6ce1bb7690fa346a694a1b79601bac254a562ced45fffa276dee7e3913f","impliedFormat":99},{"version":"837e37ad02c025f38d2f650df1dfa7e3282a9eca075fda51917e694b50e76e50","signature":"b3430fd3b2e05fc17a28ada18669d862550de22b0a55c4d49454fe03c953cabf"},{"version":"046a3723d831d3b287bac71cbfb4fd0c70d9e5589367ba95b0bee2c960938d5b","signature":"ade6b7c1729e7aba83a85ebbc376247ac93720f057fb89d5ed05b1e2af5ce923"},"ec6b511e057f58c78ee9b768f2c953ea2bd7fda3a76420819a35c8c37a1e84a7",{"version":"c57b441e0c0a9cbdfa7d850dae1f8a387d6f81cbffbc3cd0465d530084c2417d","impliedFormat":99},{"version":"26c57c9f839e6d2048d6c25e81f805ba0ca32a28fd4d824399fd5456c9b0575b","impliedFormat":1},{"version":"d3e9a302632b806c20039325b3ac796ae0159aaca84a088513ad9a533edeae8a","signature":"1d88bca5555937cf9b1741c58baebc8c83e094a3b3524ec04abef31e98baed04"},"b490273df6912252d6ee03f7dd3d1f5aa179e4c2c5010c8c36e0da8cdadadf36",{"version":"ce7d3d402f69829019fb67f5fd708638b95865e9619d83f4835e283d02d95e0f","impliedFormat":1},"7784fb18015360125d085a2c1a63f353c13241cd3cbb9f7ca930c5ee6cf1961c","552c1a678041badf191e53d9c7a32cd895c5ab70373f69b8c7558ed54c339376","2a065692f9e62533d96bb1d1405f8a7cdf976047b4b6659a59f20044cfd92621","bbd211fc2e82df87f3cf26be3185d522edce55e83452e8f2b1f33422b7d1c412","108d3a652eb0b8f9aec32be0e229c5ad941880bf88e958b7a0a4de9ad4ee54cf","1ca7083297db2cf123e1ea1cfc618978d1dde52ff49b3e132f354e622caac799","300153a1894511758d945649546779be2bcd7ba926f4a730c4cd466be0525d2a","ab3f1fb6ef9f8c07e43865fd57c36e06293dd22df36cfb24a9455765719fdd69",{"version":"8409b41191a1bd3c6cec4b39d1e1b7d1c2483b7bd78195766ef2730932d9d1d9","signature":"700b2952c49beb99b28d4256bdb264145800203991d7440b4ec3e1e41f97f3e2"},"9601064ab21d7a82a3f76a6426ddd964e95d545c272d551cc523e3c77fb394bc","49990812cd940b3e86da99d7460192532e5f774ff0794bc660f185032d49d71e",{"version":"067231d4b93e135dd95634e79bee8d25fe0786469262f74ad7a09c4f7b010ad3","signature":"de53ceb4489cab62540516d38e8503b7c6ee2482cd66ac9945afd21d8b123dda"},"a7b5570a50e80ab1dfa00c9261781246e34ec916577bcc746bd2f7494aabde25",{"version":"d30e67059f5c545c5f8f0cc328a36d2e03b8c4a091b4301bc1d6afb2b1491a3a","impliedFormat":1},{"version":"a356d9a0ba90d10ec6c0fa33386c0b0e2843fd6f0a49513c44f7809926ac25ff","impliedFormat":1},{"version":"f77db1be13db8dcf8c7a268c1f235c1ba1e4707e829175cdc237421b3c346f9d","impliedFormat":99},{"version":"05cb95655ecadfd1230547b84367d1c4d40a4bb6309545b8dc4d1638a3de1a50","impliedFormat":99},{"version":"e980a9cf8404a649ff3a2f0628d76e4469613c02b98bd3b922756d7d962476c9","impliedFormat":99},{"version":"f8adbcb59256526bc69d94fb5c826e812ebd1321b30ab35baa9997d74d45dd73","impliedFormat":99},{"version":"050a4570de5ad6e47cc9ac9fd9db7a26e57dbe1daadadbc19b20567941f8bf1a","impliedFormat":99},{"version":"5ed040255a4d5181f8ecb4ba90b8b38e0a6f1becf0ed860ca75b6e52c46db0bc","impliedFormat":99},{"version":"e22a49cd604cab3b62b1968a363d7b182edcb23d46793ed12cf5cfc6b1597f39","impliedFormat":99},{"version":"ff1b4730f5d49d37b73ee2db3443145daa0bfc7ff9c865134d871b08955e389b","impliedFormat":99},{"version":"8e64b72fa289b7f133b8cdb7d837f73e30ca7eb76ad88e1020d97c405c94fd7e","impliedFormat":99},{"version":"1f907507e41cc3df66b4521b80134bb8f7afada8d31c10f7100c93c90ab0f84e","impliedFormat":99},{"version":"6bb14070b70b4c9a897a4f5088af984e6e316b420d00d82fb962bad577896723","impliedFormat":99},{"version":"46e17953f7ffbf43d4328fcb5983e0ade2932fb56e84181e6929fcdcfa7c7aa6","impliedFormat":99},{"version":"113aef5576cd65f310927b17ae5f6ac8745c542a660bace5f019034d536fbd04","impliedFormat":99},{"version":"ddf0fdbb010c94978c1151441171f0aac236a23b6786e9f6332f745527d905e9","impliedFormat":99},{"version":"a2c1678ec68c42795e2ac068a7d026b61680357d2a881c9df211dd0f83d077fd","impliedFormat":99},{"version":"2fe207d2e8662abb709772fff1f3ec3116a4787b5caa4e862daa5dab2753edd7","impliedFormat":99},{"version":"a7af5f01007f450dc8cf2cdbbb11f4d4bf8bf3faa869d21267db5de74ebf665a","impliedFormat":99},{"version":"709cb4986cbe2b58ac3bbbad45dbfa24cda1b62c794c73b96e9ff1236dd0d5d1","impliedFormat":99},{"version":"afdc9b1fd1937d9b649bca2b377d1144cc9c48158403c17cfd21b6e1e8b25099","impliedFormat":99},{"version":"1d47324801b498d62f31ea179f58e1f3eaa1e607914504a7c92fb5465affb851","impliedFormat":99},{"version":"95fdf978302838125ac79d9d5e9485d8fa1ddd909664bf5cc3b45ec31f794fda","impliedFormat":99},{"version":"d92bf7d6d30c85e53b961236ceeb099e73a1a874849d038a348b51383087872f","impliedFormat":99},{"version":"e56e4a57ca5aa762d67fd3d16471c47592469944315fa5e92b3b09c83eabae91","impliedFormat":99},{"version":"f3d31927b7a3d0f2f119a05a102af2bdd1fc4f759fe43d508a64a80b3b341f6b","impliedFormat":99},{"version":"678700fba88589e28648a923e4b98ab60f3f7df4742412419e29f95966da4475","impliedFormat":99},{"version":"5a71b307074ef3d2794c4104248b7a3cad5f486df204da65862a7d24f698fc95","impliedFormat":99},{"version":"9a4496ad6d48bc801a122c11e94ee1e3f0710bda38b125573f67f5cb0add1733","impliedFormat":99},{"version":"afa5e16f2ad07d847701e3bde9e7ab36f87e0e3a5c0cb7998644791a1fa3c5b1","impliedFormat":99},{"version":"98cd9124b5d8438db4b4dbd247b2c68ac22b6366a43e6dc4945ae32972f157fc","impliedFormat":99},{"version":"dc21879e45f3a023b5fe459c3da5f2f3cf995f21a1ac533049d8950ce394c045","impliedFormat":99},{"version":"622d6ce66ac838d5d7e968daf4ae760cf49797e3fbfaa2b21d01e0fb5d625bc9","impliedFormat":99},{"version":"ecfa30418b2200ba6496b5f59b4c09a95cce9ea37c1daaf5a5db9bb306ee038f","impliedFormat":99},{"version":"3b56e30b1cbe1bfa7710e88e5e0b8fa6eddc7c2e67615f73bdf8637af68403e6","impliedFormat":99},{"version":"92a8de4f8f6595bf1eb24a19aebff7371c66ae8751f2e045edd9e25ca435e4a2","impliedFormat":99},{"version":"01810afb0ed31afdea0846cee91e85a474727d0966e5bb57c2a4a732854deab1","impliedFormat":99},{"version":"c874e98cd875727ea62fdcd978ac9e067ce07cf7493aa4b8b193fdc3b7318eea","impliedFormat":99},{"version":"455e843c1f8e0df452f101c9ec0b63ab8e749f296c947249f8bbc29bff58c83c","impliedFormat":99},{"version":"eadc4c556b494cc52676e084eadf0b60fb2cc6e2408d1411eeae5cb74068ca86","impliedFormat":99},{"version":"3b8689266e8fb628ca2068ff610ed0b842ff4e407c3a914358ef1895dabfcfcd","impliedFormat":99},{"version":"fc741907f6d8158b2c4722932d745b11dd41f9355a5b325c8cd3cdfbd966d76d","impliedFormat":99},{"version":"be7093fcd3ea86c74f551d06581e7aa4aa08e7f564b7f7f92099be9e09274e1a","signature":"21d10456b81ce5129b219ae44f8929d4601ba540e7dd931d50752b963bfabe58"},"cea1c2b9bd469e9c04564cc5c5b352062b02fa8ff56128010d376ccfbbd43abb","be0baf670b578850ec31d4a8d0345b6c39d69a47bfee8abe4c59ca9ee952b860","7e920c7ccf05036f667294b5360aa4c10b004613dd7c25627ede70e1f58dd48c","f276ad664b71bc5b54a3567b42b3b882e4b2d8e5e07ccedb82013c426e5329cd","126fc747ae4a5e68d0f1c560338cc66bc6f73d5039e1d89cdc1bab8be9ced945","826bb5a0ca1f5b8ddf5a954598183611b85431aff89c8d69d4d5fe136b6178ad","19b490b3f910ef40a1ad682748fcb779a9ee037d2f57a5eccfb7517f9fecc379",{"version":"96d14f21b7652903852eef49379d04dbda28c16ed36468f8c9fa08f7c14c9538","impliedFormat":1}],"root":[410,[412,414],417,418,[420,432],[475,482]],"options":{"allowJs":true,"esModuleInterop":true,"jsx":1,"module":99,"skipLibCheck":true,"strict":true},"referencedMap":[[478,1],[480,2],[481,3],[479,4],[482,5],[423,6],[432,7],[476,8],[431,9],[477,10],[428,11],[418,12],[424,13],[426,14],[475,15],[429,14],[421,16],[425,12],[420,16],[430,17],[422,18],[427,11],[413,19],[414,20],[412,21],[417,22],[410,23],[363,21],[437,24],[443,25],[445,26],[438,27],[446,28],[444,29],[447,21],[439,30],[440,28],[448,31],[449,24],[452,32],[441,33],[450,34],[451,35],[442,36],[433,21],[483,21],[434,37],[142,38],[143,38],[144,39],[99,40],[145,41],[146,42],[147,43],[94,21],[97,44],[95,21],[96,21],[148,45],[149,46],[150,47],[151,48],[152,49],[153,50],[154,50],[155,51],[156,52],[157,53],[158,54],[100,21],[98,21],[159,55],[160,56],[161,57],[193,58],[162,59],[163,60],[164,61],[165,62],[166,63],[167,64],[168,65],[169,66],[170,67],[171,68],[172,68],[173,69],[174,21],[175,70],[177,71],[176,72],[178,73],[179,74],[180,75],[181,76],[182,77],[183,78],[184,79],[185,80],[186,81],[187,82],[188,83],[189,84],[190,85],[101,21],[102,21],[103,21],[141,86],[191,87],[192,88],[86,21],[198,89],[199,90],[197,20],[195,91],[196,92],[84,21],[87,93],[286,20],[415,21],[85,21],[419,20],[93,94],[366,95],[370,96],[372,97],[219,98],[233,99],[337,100],[265,21],[340,101],[301,102],[310,103],[338,104],[220,105],[264,21],[266,106],[339,107],[240,108],[221,109],[245,108],[234,108],[204,108],[292,110],[293,111],[209,21],[289,112],[294,113],[381,114],[287,113],[382,115],[271,21],[290,116],[394,117],[393,118],[296,113],[392,21],[390,21],[391,119],[291,20],[278,120],[279,121],[288,122],[305,123],[306,124],[295,125],[273,126],[274,127],[385,128],[388,129],[252,130],[251,131],[250,132],[397,20],[249,133],[225,21],[400,21],[403,21],[402,20],[404,134],[200,21],[331,21],[232,135],[202,136],[354,21],[355,21],[357,21],[360,137],[356,21],[358,138],[359,138],[218,21],[231,21],[365,139],[373,140],[377,141],[214,142],[281,143],[280,21],[272,126],[300,144],[298,145],[297,21],[299,21],[304,146],[276,147],[213,148],[238,149],[328,150],[205,151],[212,152],[201,100],[342,153],[352,154],[341,21],[351,155],[239,21],[223,156],[319,157],[318,21],[325,158],[327,159],[320,160],[324,161],[326,158],[323,160],[322,158],[321,160],[261,162],[246,162],[313,163],[247,163],[207,164],[206,21],[317,165],[316,166],[315,167],[314,168],[208,169],[285,170],[302,171],[284,172],[309,173],[311,174],[308,172],[241,169],[194,21],[329,175],[267,176],[303,21],[350,177],[270,178],[345,179],[211,21],[346,180],[348,181],[349,182],[332,21],[344,151],[243,183],[330,184],[353,185],[215,21],[217,21],[222,186],[312,187],[210,188],[216,21],[269,189],[268,190],[224,191],[277,192],[275,193],[226,194],[228,195],[401,21],[227,196],[229,197],[368,21],[367,21],[369,21],[399,21],[230,198],[283,20],[92,21],[307,199],[253,21],[263,200],[242,21],[375,20],[384,201],[260,20],[379,113],[259,202],[362,203],[258,201],[203,21],[386,204],[256,20],[257,20],[248,21],[262,21],[255,205],[254,206],[244,207],[237,125],[347,21],[236,208],[235,21],[371,21],[282,20],[364,209],[83,21],[91,210],[88,20],[89,21],[90,21],[343,211],[336,212],[335,21],[334,213],[333,21],[374,214],[376,215],[378,216],[380,217],[383,218],[409,219],[387,219],[408,220],[389,221],[395,222],[396,223],[398,224],[405,225],[407,21],[406,226],[361,227],[411,21],[436,27],[453,228],[454,228],[456,229],[457,230],[435,24],[458,228],[474,231],[455,228],[459,27],[460,27],[461,228],[462,20],[463,228],[464,232],[465,228],[466,228],[467,27],[468,228],[469,228],[470,228],[471,228],[472,228],[473,27],[416,21],[81,21],[82,21],[13,21],[14,21],[16,21],[15,21],[2,21],[17,21],[18,21],[19,21],[20,21],[21,21],[22,21],[23,21],[24,21],[3,21],[25,21],[26,21],[4,21],[27,21],[31,21],[28,21],[29,21],[30,21],[32,21],[33,21],[34,21],[5,21],[35,21],[36,21],[37,21],[38,21],[6,21],[42,21],[39,21],[40,21],[41,21],[43,21],[7,21],[44,21],[49,21],[50,21],[45,21],[46,21],[47,21],[48,21],[8,21],[54,21],[51,21],[52,21],[53,21],[55,21],[9,21],[56,21],[57,21],[58,21],[60,21],[59,21],[61,21],[62,21],[10,21],[63,21],[64,21],[65,21],[11,21],[66,21],[67,21],[68,21],[69,21],[70,21],[1,21],[71,21],[72,21],[12,21],[76,21],[74,21],[79,21],[78,21],[73,21],[77,21],[75,21],[80,21],[119,233],[129,234],[118,233],[139,235],[110,236],[109,237],[138,226],[132,238],[137,239],[112,240],[126,241],[111,242],[135,243],[107,244],[106,226],[136,245],[108,246],[113,247],[114,21],[117,247],[104,21],[140,248],[130,249],[121,250],[122,251],[124,252],[120,253],[123,254],[133,226],[115,255],[116,256],[125,257],[105,258],[128,249],[127,247],[131,21],[134,259]],"affectedFilesPendingEmit":[478,480,481,479,482,423,432,476,431,477,428,418,424,426,475,429,421,425,420,430,422,427,413,414,412,417],"version":"5.9.3"} \ No newline at end of file