diff --git a/next.config.ts b/next.config.ts index 4914476..cf6dcfd 100644 --- a/next.config.ts +++ b/next.config.ts @@ -10,7 +10,6 @@ const nextConfig: NextConfig = { { hostname: "*.unsplash.com", protocol: "https" }, { hostname: "avatars.githubusercontent.com", protocol: "https" }, { hostname: "cdn.jsdelivr.net", protocol: "https" }, - { hostname: "avatars.githubusercontent.com", protocol: "https" }, ], }, }; diff --git a/public/assets/images/dot-background.jpeg b/public/assets/images/dot-background.jpeg new file mode 100644 index 0000000..1abd111 Binary files /dev/null and b/public/assets/images/dot-background.jpeg differ diff --git a/public/assets/images/earth.jpg b/public/assets/images/earth.jpg deleted file mode 100644 index c614b9a..0000000 Binary files a/public/assets/images/earth.jpg and /dev/null differ diff --git a/public/assets/images/world-dots.svg b/public/assets/images/world-dots.svg new file mode 100644 index 0000000..1590da1 --- /dev/null +++ b/public/assets/images/world-dots.svg @@ -0,0 +1,3068 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/app/(public)/page.tsx b/src/app/(public)/page.tsx index 2db12ad..2fc1a8f 100644 --- a/src/app/(public)/page.tsx +++ b/src/app/(public)/page.tsx @@ -1,125 +1,59 @@ -"use client"; - -import { motion, useMotionValue, useSpring } from "framer-motion"; -import { usePostHog } from "@posthog/react"; -import { useEffect, useRef } from "react"; -import Link from "next/link"; - -import { Avatar, AvatarGroup, AvatarImage } from "@/components/ui/avatar"; -import { Button } from "@/components/ui/button"; -import { AVATARS, METRICS } from "@/constants"; import { MembersSpotlightSection } from "@/features/members"; - -const Page = () => { - const posthong = usePostHog(); - - const ref = useRef(null); - const rotateX = useMotionValue(0); - const rotateY = useMotionValue(0); - const springX = useSpring(rotateX, { stiffness: 200, damping: 20 }); - const springY = useSpring(rotateY, { stiffness: 200, damping: 20 }); - - const handleMouseMove = (e: React.MouseEvent) => { - const el = ref.current; - if (!el) return; - const { left, top, width, height } = el.getBoundingClientRect(); - const dx = (e.clientX - (left + width / 2)) / (width / 2); - const dy = (e.clientY - (top + height / 2)) / (height / 2); - rotateY.set(dx * 35); - rotateX.set(-dy * 35); - }; - - const handleMouseLeave = () => { - rotateX.set(0); - rotateY.set(0); - }; - - useEffect(() => { - posthong.capture("page_view"); - }, [posthong]); +import { getHomeData } from "@/features/github/server"; +import { + Community, + Cta, + GlobeSection, + Hero, + HowItWorks, + PageviewTracker, + Statement, + StatsStrip, +} from "@/features/home"; + +export const revalidate = 3600; + +export default async function Page() { + const data = await getHomeData(); return ( -
-
-
-
-
- - {AVATARS.map((avatar) => ( - - - - ))} - -

- 500+ pros already inside — from over - 50 companies & indie studios -

-
-

Where pros actually hang out.

-

- A members-only community for designers, engineers and builders shipping real things. No gurus, no generic - threads — just your people, a portfolio that doesn't suck, and the events you actually want to go - attend. -

-
- - -
-
-
- -
+
+ +
+
+
-
-
- {METRICS.map((metric) => ( -
-

{metric.value}+

-

{metric.label}

-

{metric.description}

-
- ))} +
+
+
-
-
-
- -
+
+
-
-
+
+
+ +
-
-
+
+
+ +
-
-
-

- Stop scrolling. Start shipping with people. -

+
+
+
-
-
+
+
+ +
+ +
); -}; - -export default Page; +} diff --git a/src/app/(public)/welcome/page.tsx b/src/app/(public)/welcome/page.tsx index c91aab6..d7b5f59 100644 --- a/src/app/(public)/welcome/page.tsx +++ b/src/app/(public)/welcome/page.tsx @@ -9,7 +9,7 @@ export const metadata: Metadata = { description: "Raise a pull request in the practice repo to activate your membership.", }; -const steps = [ +const STEPS = [ { icon: GitPullRequest, title: "Open a pull request", @@ -38,11 +38,10 @@ export default function Page() { you're in.

-
    - {steps.map(({ icon: Icon, title, body }, index) => ( + {STEPS.map(({ icon: Icon, title, body }, index) => (
  1. - +

    @@ -52,7 +51,6 @@ export default function Page() {

  2. ))}
-
- + {children} diff --git a/src/constants/avatars.ts b/src/constants/avatars.ts deleted file mode 100644 index 9e9c521..0000000 --- a/src/constants/avatars.ts +++ /dev/null @@ -1,27 +0,0 @@ -export const AVATARS = [ - { - id: "1", - image: - "https://images.unsplash.com/photo-1740252117044-2af197eea287?q=80&w=880&auto=format&fit=crop&ixlib=rb-4.1.0&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D", - }, - { - id: "2", - image: - "https://images.unsplash.com/photo-1740252117027-4275d3f84385?q=80&w=880&auto=format&fit=crop&ixlib=rb-4.1.0&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D", - }, - { - id: "3", - image: - "https://images.unsplash.com/photo-1740252117013-4fb21771e7ca?q=80&w=880&auto=format&fit=crop&ixlib=rb-4.1.0&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D", - }, - { - id: "4", - image: - "https://images.unsplash.com/photo-1740252117012-bb53ad05e370?w=500&auto=format&fit=crop&q=60&ixlib=rb-4.1.0&ixid=M3wxMjA3fDB8MHxzZWFyY2h8N3x8Y2FydG9vbiUyMGF2YXRhcnN8ZW58MHwyfDB8fHww", - }, - { - id: "5", - image: - "https://images.unsplash.com/photo-1772371272141-0fbd644b65c4?w=500&auto=format&fit=crop&q=60&ixlib=rb-4.1.0&ixid=M3wxMjA3fDB8MHxzZWFyY2h8MTV8fGNhcnRvb24lMjBhdmF0YXJzfGVufDB8MnwwfHx8MA%3D%3D", - }, -]; diff --git a/src/constants/index.ts b/src/constants/index.ts index 6bc448a..482ba70 100644 --- a/src/constants/index.ts +++ b/src/constants/index.ts @@ -1,5 +1,3 @@ -export * from "./avatars"; export * from "./library"; export * from "./loader"; -export * from "./metrics"; export * from "./sponsors"; diff --git a/src/constants/metrics.ts b/src/constants/metrics.ts deleted file mode 100644 index c9df244..0000000 --- a/src/constants/metrics.ts +++ /dev/null @@ -1,6 +0,0 @@ -export const METRICS = [ - { id: "1", label: "Vetted Members", value: 500, description: "across 5 countries" }, - { id: "2", label: "Events", value: 10, description: "per year IRL and online" }, - { id: "3", label: "Jobs", value: 30, description: "in the last 6 months" }, - { id: "4", label: "Member Rating", value: 4.9, description: "after the first 90 days" }, -]; diff --git a/src/env.d.ts b/src/env.d.ts index c8d1725..0c0ca75 100644 --- a/src/env.d.ts +++ b/src/env.d.ts @@ -9,6 +9,7 @@ declare global { readonly NEXT_PUBLIC_POSTHOG_KEY?: string; readonly NEXT_PUBLIC_GITHUB_ORG?: string; readonly NEXT_PUBLIC_PRACTICE_REPO?: string; + readonly GITHUB_API_TOKEN?: string; } } } diff --git a/src/features/github/geocode.ts b/src/features/github/geocode.ts new file mode 100644 index 0000000..03ddb95 --- /dev/null +++ b/src/features/github/geocode.ts @@ -0,0 +1,227 @@ +type GeoEntry = { + key: string; + label: string; + country: string; + lat: number; + lng: number; +}; + +// why: GitHub locations are free text ("Lagos, Nigeria", "remote", "Metaverse"). +// City keys are matched before country keys so "Lagos, Nigeria" resolves to Lagos, not the Nigeria centroid. +const CITIES: GeoEntry[] = [ + { key: "lagos", label: "Lagos", country: "Nigeria", lat: 6.5244, lng: 3.3792 }, + { key: "abuja", label: "Abuja", country: "Nigeria", lat: 9.0765, lng: 7.3986 }, + { key: "port harcourt", label: "Port Harcourt", country: "Nigeria", lat: 4.8156, lng: 7.0498 }, + { key: "ibadan", label: "Ibadan", country: "Nigeria", lat: 7.3775, lng: 3.947 }, + { key: "benin city", label: "Benin City", country: "Nigeria", lat: 6.335, lng: 5.6037 }, + { key: "enugu", label: "Enugu", country: "Nigeria", lat: 6.5244, lng: 7.5106 }, + { key: "kano", label: "Kano", country: "Nigeria", lat: 12.0022, lng: 8.592 }, + { key: "jos", label: "Jos", country: "Nigeria", lat: 9.8965, lng: 8.8583 }, + { key: "kaduna", label: "Kaduna", country: "Nigeria", lat: 10.5105, lng: 7.4165 }, + { key: "uyo", label: "Uyo", country: "Nigeria", lat: 5.0377, lng: 7.9128 }, + { key: "accra", label: "Accra", country: "Ghana", lat: 5.6037, lng: -0.187 }, + { key: "kumasi", label: "Kumasi", country: "Ghana", lat: 6.6666, lng: -1.6163 }, + { key: "nairobi", label: "Nairobi", country: "Kenya", lat: -1.2921, lng: 36.8219 }, + { key: "kampala", label: "Kampala", country: "Uganda", lat: 0.3476, lng: 32.5825 }, + { key: "kigali", label: "Kigali", country: "Rwanda", lat: -1.9441, lng: 30.0619 }, + { key: "dar es salaam", label: "Dar es Salaam", country: "Tanzania", lat: -6.7924, lng: 39.2083 }, + { key: "addis ababa", label: "Addis Ababa", country: "Ethiopia", lat: 9.0054, lng: 38.7636 }, + { key: "cape town", label: "Cape Town", country: "South Africa", lat: -33.9249, lng: 18.4241 }, + { key: "johannesburg", label: "Johannesburg", country: "South Africa", lat: -26.2041, lng: 28.0473 }, + { key: "pretoria", label: "Pretoria", country: "South Africa", lat: -25.7479, lng: 28.2293 }, + { key: "cairo", label: "Cairo", country: "Egypt", lat: 30.0444, lng: 31.2357 }, + { key: "casablanca", label: "Casablanca", country: "Morocco", lat: 33.5731, lng: -7.5898 }, + { key: "tunis", label: "Tunis", country: "Tunisia", lat: 36.8065, lng: 10.1815 }, + { key: "dakar", label: "Dakar", country: "Senegal", lat: 14.7167, lng: -17.4677 }, + { key: "abidjan", label: "Abidjan", country: "Côte d'Ivoire", lat: 5.3599, lng: -4.0083 }, + { key: "douala", label: "Douala", country: "Cameroon", lat: 4.0511, lng: 9.7679 }, + { key: "lusaka", label: "Lusaka", country: "Zambia", lat: -15.3875, lng: 28.3228 }, + { key: "harare", label: "Harare", country: "Zimbabwe", lat: -17.8252, lng: 31.0335 }, + { key: "london", label: "London", country: "United Kingdom", lat: 51.5072, lng: -0.1276 }, + { key: "manchester", label: "Manchester", country: "United Kingdom", lat: 53.4808, lng: -2.2426 }, + { key: "birmingham", label: "Birmingham", country: "United Kingdom", lat: 52.4862, lng: -1.8904 }, + { key: "leeds", label: "Leeds", country: "United Kingdom", lat: 53.8008, lng: -1.5491 }, + { key: "glasgow", label: "Glasgow", country: "United Kingdom", lat: 55.8642, lng: -4.2518 }, + { key: "edinburgh", label: "Edinburgh", country: "United Kingdom", lat: 55.9533, lng: -3.1883 }, + { key: "dublin", label: "Dublin", country: "Ireland", lat: 53.3498, lng: -6.2603 }, + { key: "berlin", label: "Berlin", country: "Germany", lat: 52.52, lng: 13.405 }, + { key: "munich", label: "Munich", country: "Germany", lat: 48.1351, lng: 11.582 }, + { key: "hamburg", label: "Hamburg", country: "Germany", lat: 53.5511, lng: 9.9937 }, + { key: "paris", label: "Paris", country: "France", lat: 48.8566, lng: 2.3522 }, + { key: "amsterdam", label: "Amsterdam", country: "Netherlands", lat: 52.3676, lng: 4.9041 }, + { key: "brussels", label: "Brussels", country: "Belgium", lat: 50.8503, lng: 4.3517 }, + { key: "madrid", label: "Madrid", country: "Spain", lat: 40.4168, lng: -3.7038 }, + { key: "barcelona", label: "Barcelona", country: "Spain", lat: 41.3874, lng: 2.1686 }, + { key: "lisbon", label: "Lisbon", country: "Portugal", lat: 38.7223, lng: -9.1393 }, + { key: "rome", label: "Rome", country: "Italy", lat: 41.9028, lng: 12.4964 }, + { key: "milan", label: "Milan", country: "Italy", lat: 45.4642, lng: 9.19 }, + { key: "warsaw", label: "Warsaw", country: "Poland", lat: 52.2297, lng: 21.0122 }, + { key: "kyiv", label: "Kyiv", country: "Ukraine", lat: 50.4501, lng: 30.5234 }, + { key: "kiev", label: "Kyiv", country: "Ukraine", lat: 50.4501, lng: 30.5234 }, + { key: "istanbul", label: "Istanbul", country: "Türkiye", lat: 41.0082, lng: 28.9784 }, + { key: "stockholm", label: "Stockholm", country: "Sweden", lat: 59.3293, lng: 18.0686 }, + { key: "oslo", label: "Oslo", country: "Norway", lat: 59.9139, lng: 10.7522 }, + { key: "copenhagen", label: "Copenhagen", country: "Denmark", lat: 55.6761, lng: 12.5683 }, + { key: "helsinki", label: "Helsinki", country: "Finland", lat: 60.1699, lng: 24.9384 }, + { key: "zurich", label: "Zürich", country: "Switzerland", lat: 47.3769, lng: 8.5417 }, + { key: "vienna", label: "Vienna", country: "Austria", lat: 48.2082, lng: 16.3738 }, + { key: "prague", label: "Prague", country: "Czechia", lat: 50.0755, lng: 14.4378 }, + { key: "bucharest", label: "Bucharest", country: "Romania", lat: 44.4268, lng: 26.1025 }, + { key: "athens", label: "Athens", country: "Greece", lat: 37.9838, lng: 23.7275 }, + { key: "new york", label: "New York", country: "United States", lat: 40.7128, lng: -74.006 }, + { key: "san francisco", label: "San Francisco", country: "United States", lat: 37.7749, lng: -122.4194 }, + { key: "los angeles", label: "Los Angeles", country: "United States", lat: 34.0522, lng: -118.2437 }, + { key: "seattle", label: "Seattle", country: "United States", lat: 47.6062, lng: -122.3321 }, + { key: "austin", label: "Austin", country: "United States", lat: 30.2672, lng: -97.7431 }, + { key: "chicago", label: "Chicago", country: "United States", lat: 41.8781, lng: -87.6298 }, + { key: "boston", label: "Boston", country: "United States", lat: 42.3601, lng: -71.0589 }, + { key: "atlanta", label: "Atlanta", country: "United States", lat: 33.749, lng: -84.388 }, + { key: "dallas", label: "Dallas", country: "United States", lat: 32.7767, lng: -96.797 }, + { key: "houston", label: "Houston", country: "United States", lat: 29.7604, lng: -95.3698 }, + { key: "miami", label: "Miami", country: "United States", lat: 25.7617, lng: -80.1918 }, + { key: "denver", label: "Denver", country: "United States", lat: 39.7392, lng: -104.9903 }, + { key: "toronto", label: "Toronto", country: "Canada", lat: 43.6532, lng: -79.3832 }, + { key: "vancouver", label: "Vancouver", country: "Canada", lat: 49.2827, lng: -123.1207 }, + { key: "montreal", label: "Montréal", country: "Canada", lat: 45.5019, lng: -73.5674 }, + { key: "mexico city", label: "Mexico City", country: "Mexico", lat: 19.4326, lng: -99.1332 }, + { key: "sao paulo", label: "São Paulo", country: "Brazil", lat: -23.5505, lng: -46.6333 }, + { key: "rio de janeiro", label: "Rio de Janeiro", country: "Brazil", lat: -22.9068, lng: -43.1729 }, + { key: "buenos aires", label: "Buenos Aires", country: "Argentina", lat: -34.6037, lng: -58.3816 }, + { key: "bogota", label: "Bogotá", country: "Colombia", lat: 4.711, lng: -74.0721 }, + { key: "lima", label: "Lima", country: "Peru", lat: -12.0464, lng: -77.0428 }, + { key: "santiago", label: "Santiago", country: "Chile", lat: -33.4489, lng: -70.6693 }, + { key: "mumbai", label: "Mumbai", country: "India", lat: 19.076, lng: 72.8777 }, + { key: "delhi", label: "Delhi", country: "India", lat: 28.7041, lng: 77.1025 }, + { key: "bangalore", label: "Bengaluru", country: "India", lat: 12.9716, lng: 77.5946 }, + { key: "bengaluru", label: "Bengaluru", country: "India", lat: 12.9716, lng: 77.5946 }, + { key: "hyderabad", label: "Hyderabad", country: "India", lat: 17.385, lng: 78.4867 }, + { key: "chennai", label: "Chennai", country: "India", lat: 13.0827, lng: 80.2707 }, + { key: "pune", label: "Pune", country: "India", lat: 18.5204, lng: 73.8567 }, + { key: "kolkata", label: "Kolkata", country: "India", lat: 22.5726, lng: 88.3639 }, + { key: "gujarat", label: "Gujarat", country: "India", lat: 23.0225, lng: 72.5714 }, + { key: "ahmedabad", label: "Ahmedabad", country: "India", lat: 23.0225, lng: 72.5714 }, + { key: "jaipur", label: "Jaipur", country: "India", lat: 26.9124, lng: 75.7873 }, + { key: "kerala", label: "Kerala", country: "India", lat: 10.8505, lng: 76.2711 }, + { key: "karachi", label: "Karachi", country: "Pakistan", lat: 24.8607, lng: 67.0011 }, + { key: "lahore", label: "Lahore", country: "Pakistan", lat: 31.5204, lng: 74.3587 }, + { key: "islamabad", label: "Islamabad", country: "Pakistan", lat: 33.6844, lng: 73.0479 }, + { key: "dhaka", label: "Dhaka", country: "Bangladesh", lat: 23.8103, lng: 90.4125 }, + { key: "colombo", label: "Colombo", country: "Sri Lanka", lat: 6.9271, lng: 79.8612 }, + { key: "kathmandu", label: "Kathmandu", country: "Nepal", lat: 27.7172, lng: 85.324 }, + { key: "kuala lumpur", label: "Kuala Lumpur", country: "Malaysia", lat: 3.139, lng: 101.6869 }, + { key: "jakarta", label: "Jakarta", country: "Indonesia", lat: -6.2088, lng: 106.8456 }, + { key: "manila", label: "Manila", country: "Philippines", lat: 14.5995, lng: 120.9842 }, + { key: "bangkok", label: "Bangkok", country: "Thailand", lat: 13.7563, lng: 100.5018 }, + { key: "hanoi", label: "Hanoi", country: "Vietnam", lat: 21.0278, lng: 105.8342 }, + { key: "ho chi minh", label: "Ho Chi Minh City", country: "Vietnam", lat: 10.8231, lng: 106.6297 }, + { key: "seoul", label: "Seoul", country: "South Korea", lat: 37.5665, lng: 126.978 }, + { key: "tokyo", label: "Tokyo", country: "Japan", lat: 35.6762, lng: 139.6503 }, + { key: "beijing", label: "Beijing", country: "China", lat: 39.9042, lng: 116.4074 }, + { key: "shanghai", label: "Shanghai", country: "China", lat: 31.2304, lng: 121.4737 }, + { key: "shenzhen", label: "Shenzhen", country: "China", lat: 22.5431, lng: 114.0579 }, + { key: "hong kong", label: "Hong Kong", country: "China", lat: 22.3193, lng: 114.1694 }, + { key: "taipei", label: "Taipei", country: "Taiwan", lat: 25.033, lng: 121.5654 }, + { key: "dubai", label: "Dubai", country: "UAE", lat: 25.2048, lng: 55.2708 }, + { key: "abu dhabi", label: "Abu Dhabi", country: "UAE", lat: 24.4539, lng: 54.3773 }, + { key: "riyadh", label: "Riyadh", country: "Saudi Arabia", lat: 24.7136, lng: 46.6753 }, + { key: "doha", label: "Doha", country: "Qatar", lat: 25.2854, lng: 51.531 }, + { key: "amman", label: "Amman", country: "Jordan", lat: 31.9454, lng: 35.9284 }, + { key: "beirut", label: "Beirut", country: "Lebanon", lat: 33.8938, lng: 35.5018 }, + { key: "sydney", label: "Sydney", country: "Australia", lat: -33.8688, lng: 151.2093 }, + { key: "melbourne", label: "Melbourne", country: "Australia", lat: -37.8136, lng: 144.9631 }, + { key: "auckland", label: "Auckland", country: "New Zealand", lat: -36.8509, lng: 174.7645 }, + { key: "singapore", label: "Singapore", country: "Singapore", lat: 1.3521, lng: 103.8198 }, +]; + +const COUNTRIES: GeoEntry[] = [ + { key: "nigeria", label: "Nigeria", country: "Nigeria", lat: 9.082, lng: 8.6753 }, + { key: "ghana", label: "Ghana", country: "Ghana", lat: 7.9465, lng: -1.0232 }, + { key: "kenya", label: "Kenya", country: "Kenya", lat: -0.0236, lng: 37.9062 }, + { key: "uganda", label: "Uganda", country: "Uganda", lat: 1.3733, lng: 32.2903 }, + { key: "rwanda", label: "Rwanda", country: "Rwanda", lat: -1.9403, lng: 29.8739 }, + { key: "tanzania", label: "Tanzania", country: "Tanzania", lat: -6.369, lng: 34.8888 }, + { key: "ethiopia", label: "Ethiopia", country: "Ethiopia", lat: 9.145, lng: 40.4897 }, + { key: "south africa", label: "South Africa", country: "South Africa", lat: -30.5595, lng: 22.9375 }, + { key: "egypt", label: "Egypt", country: "Egypt", lat: 26.8206, lng: 30.8025 }, + { key: "morocco", label: "Morocco", country: "Morocco", lat: 31.7917, lng: -7.0926 }, + { key: "tunisia", label: "Tunisia", country: "Tunisia", lat: 33.8869, lng: 9.5375 }, + { key: "algeria", label: "Algeria", country: "Algeria", lat: 28.0339, lng: 1.6596 }, + { key: "senegal", label: "Senegal", country: "Senegal", lat: 14.4974, lng: -14.4524 }, + { key: "cameroon", label: "Cameroon", country: "Cameroon", lat: 7.3697, lng: 12.3547 }, + { key: "zambia", label: "Zambia", country: "Zambia", lat: -13.1339, lng: 27.8493 }, + { key: "zimbabwe", label: "Zimbabwe", country: "Zimbabwe", lat: -19.0154, lng: 29.1549 }, + { key: "togo", label: "Togo", country: "Togo", lat: 8.6195, lng: 0.8248 }, + { key: "ivory coast", label: "Côte d'Ivoire", country: "Côte d'Ivoire", lat: 7.54, lng: -5.5471 }, + { key: "united kingdom", label: "United Kingdom", country: "United Kingdom", lat: 55.3781, lng: -3.436 }, + { key: "england", label: "England", country: "United Kingdom", lat: 52.3555, lng: -1.1743 }, + { key: "scotland", label: "Scotland", country: "United Kingdom", lat: 56.4907, lng: -4.2026 }, + { key: "ireland", label: "Ireland", country: "Ireland", lat: 53.4129, lng: -8.2439 }, + { key: "germany", label: "Germany", country: "Germany", lat: 51.1657, lng: 10.4515 }, + { key: "france", label: "France", country: "France", lat: 46.2276, lng: 2.2137 }, + { key: "netherlands", label: "Netherlands", country: "Netherlands", lat: 52.1326, lng: 5.2913 }, + { key: "belgium", label: "Belgium", country: "Belgium", lat: 50.5039, lng: 4.4699 }, + { key: "spain", label: "Spain", country: "Spain", lat: 40.4637, lng: -3.7492 }, + { key: "portugal", label: "Portugal", country: "Portugal", lat: 39.3999, lng: -8.2245 }, + { key: "italy", label: "Italy", country: "Italy", lat: 41.8719, lng: 12.5674 }, + { key: "poland", label: "Poland", country: "Poland", lat: 51.9194, lng: 19.1451 }, + { key: "ukraine", label: "Ukraine", country: "Ukraine", lat: 48.3794, lng: 31.1656 }, + { key: "turkey", label: "Türkiye", country: "Türkiye", lat: 38.9637, lng: 35.2433 }, + { key: "sweden", label: "Sweden", country: "Sweden", lat: 60.1282, lng: 18.6435 }, + { key: "norway", label: "Norway", country: "Norway", lat: 60.472, lng: 8.4689 }, + { key: "denmark", label: "Denmark", country: "Denmark", lat: 56.2639, lng: 9.5018 }, + { key: "finland", label: "Finland", country: "Finland", lat: 61.9241, lng: 25.7482 }, + { key: "switzerland", label: "Switzerland", country: "Switzerland", lat: 46.8182, lng: 8.2275 }, + { key: "austria", label: "Austria", country: "Austria", lat: 47.5162, lng: 14.5501 }, + { key: "czech", label: "Czechia", country: "Czechia", lat: 49.8175, lng: 15.473 }, + { key: "romania", label: "Romania", country: "Romania", lat: 45.9432, lng: 24.9668 }, + { key: "greece", label: "Greece", country: "Greece", lat: 39.0742, lng: 21.8243 }, + { key: "united states", label: "United States", country: "United States", lat: 37.0902, lng: -95.7129 }, + { key: "usa", label: "United States", country: "United States", lat: 37.0902, lng: -95.7129 }, + { key: "canada", label: "Canada", country: "Canada", lat: 56.1304, lng: -106.3468 }, + { key: "mexico", label: "Mexico", country: "Mexico", lat: 23.6345, lng: -102.5528 }, + { key: "brazil", label: "Brazil", country: "Brazil", lat: -14.235, lng: -51.9253 }, + { key: "argentina", label: "Argentina", country: "Argentina", lat: -38.4161, lng: -63.6167 }, + { key: "colombia", label: "Colombia", country: "Colombia", lat: 4.5709, lng: -74.2973 }, + { key: "peru", label: "Peru", country: "Peru", lat: -9.19, lng: -75.0152 }, + { key: "chile", label: "Chile", country: "Chile", lat: -35.6751, lng: -71.543 }, + { key: "india", label: "India", country: "India", lat: 20.5937, lng: 78.9629 }, + { key: "pakistan", label: "Pakistan", country: "Pakistan", lat: 30.3753, lng: 69.3451 }, + { key: "bangladesh", label: "Bangladesh", country: "Bangladesh", lat: 23.685, lng: 90.3563 }, + { key: "sri lanka", label: "Sri Lanka", country: "Sri Lanka", lat: 7.8731, lng: 80.7718 }, + { key: "nepal", label: "Nepal", country: "Nepal", lat: 28.3949, lng: 84.124 }, + { key: "malaysia", label: "Malaysia", country: "Malaysia", lat: 4.2105, lng: 101.9758 }, + { key: "indonesia", label: "Indonesia", country: "Indonesia", lat: -0.7893, lng: 113.9213 }, + { key: "philippines", label: "Philippines", country: "Philippines", lat: 12.8797, lng: 121.774 }, + { key: "thailand", label: "Thailand", country: "Thailand", lat: 15.87, lng: 100.9925 }, + { key: "vietnam", label: "Vietnam", country: "Vietnam", lat: 14.0583, lng: 108.2772 }, + { key: "south korea", label: "South Korea", country: "South Korea", lat: 35.9078, lng: 127.7669 }, + { key: "japan", label: "Japan", country: "Japan", lat: 36.2048, lng: 138.2529 }, + { key: "china", label: "China", country: "China", lat: 35.8617, lng: 104.1954 }, + { key: "taiwan", label: "Taiwan", country: "Taiwan", lat: 23.6978, lng: 120.9605 }, + { key: "united arab emirates", label: "UAE", country: "UAE", lat: 23.4241, lng: 53.8478 }, + { key: "uae", label: "UAE", country: "UAE", lat: 23.4241, lng: 53.8478 }, + { key: "saudi", label: "Saudi Arabia", country: "Saudi Arabia", lat: 23.8859, lng: 45.0792 }, + { key: "qatar", label: "Qatar", country: "Qatar", lat: 25.3548, lng: 51.1839 }, + { key: "jordan", label: "Jordan", country: "Jordan", lat: 30.5852, lng: 36.2384 }, + { key: "lebanon", label: "Lebanon", country: "Lebanon", lat: 33.8547, lng: 35.8623 }, + { key: "israel", label: "Israel", country: "Israel", lat: 31.0461, lng: 34.8516 }, + { key: "australia", label: "Australia", country: "Australia", lat: -25.2744, lng: 133.7751 }, + { key: "new zealand", label: "New Zealand", country: "New Zealand", lat: -40.9006, lng: 174.886 }, +]; + +const TABLE = [...CITIES, ...COUNTRIES]; + +/** + * Resolves a free-text GitHub profile location to a known city/country entry. + * Unresolvable strings ("remote", "Metaverse", empty) return null and are skipped. + * + * @param location - Raw `location` string from a GitHub user profile. + * @returns The matched geo entry, or null when nothing in the table matches. + * @example + * geocodeLocation("Port Harcourt, Rivers State, Nigeria")?.label; // "Port Harcourt" + */ +export const geocodeLocation = (location: string | null | undefined): GeoEntry | null => { + if (!location) return null; + const normalized = location.normalize("NFD").replace(/[̀-ͯ]/g, "").toLowerCase(); + return TABLE.find((entry) => normalized.includes(entry.key)) ?? null; +}; diff --git a/src/features/github/index.ts b/src/features/github/index.ts new file mode 100644 index 0000000..95a51b5 --- /dev/null +++ b/src/features/github/index.ts @@ -0,0 +1,5 @@ +// why: server.ts is intentionally NOT re-exported — client components import types +// from this barrel, and the fetch layer (with its token access) must stay server-only. +// Server components import it directly from "@/features/github/server". +export * from "./geocode"; +export * from "./types"; diff --git a/src/features/github/server.ts b/src/features/github/server.ts new file mode 100644 index 0000000..2148e75 --- /dev/null +++ b/src/features/github/server.ts @@ -0,0 +1,145 @@ +import { geocodeLocation } from "./geocode"; + +import type { Contributor, FeaturedMember, HomeData, MemberHub, OrgMember, OrgStats } from "./types"; + +const GITHUB_API = "https://api.github.com"; +const ORG = process.env.NEXT_PUBLIC_GITHUB_ORG || "CommunityPro"; +const PRACTICE_REPO = process.env.NEXT_PUBLIC_PRACTICE_REPO || "Practice-Contribution"; +const REVALIDATE_SECONDS = 3600; +const LOCATION_PROFILE_LIMIT = 60; + +type RawUser = { + login: string; + name: string | null; + bio: string | null; + location: string | null; + followers: number; + avatar_url: string; + html_url: string; +}; + +type RawMember = { login: string; avatar_url: string; html_url: string }; +type RawContributor = { login: string; avatar_url: string; html_url: string; contributions: number }; +type RawRepo = { name: string; stargazers_count: number; forks_count: number; html_url: string; fork: boolean }; +type RawOrg = { followers: number; created_at: string; public_repos: number }; + +const headers = (): HeadersInit => ({ + Accept: "application/vnd.github+json", + ...(process.env.GITHUB_API_TOKEN ? { Authorization: `Bearer ${process.env.GITHUB_API_TOKEN}` } : {}), +}); + +const ghGet = async (path: string): Promise => { + try { + const res = await fetch(`${GITHUB_API}${path}`, { headers: headers(), next: { revalidate: REVALIDATE_SECONDS } }); + return res.ok ? res : null; + } catch { + return null; + } +}; + +const ghJson = async (path: string): Promise => { + const res = await ghGet(path); + return res ? ((await res.json()) as T) : null; +}; + +// why: GitHub reports total org members nowhere; per_page=1 makes the Link header's +// rel="last" page number equal the member count for the price of one request. +const fetchMemberCount = async (): Promise => { + const res = await ghGet(`/orgs/${ORG}/members?per_page=1`); + if (!res) return null; + const link = res.headers.get("link"); + const match = link?.match(/[?&]page=(\d+)>; rel="last"/); + return match ? Number(match[1]) : null; +}; + +const fetchUsers = async (logins: string[]): Promise> => { + const users = await Promise.all(logins.map((login) => ghJson(`/users/${login}`))); + const map = new Map(); + users.forEach((user) => { + if (user) map.set(user.login, user); + }); + return map; +}; + +const buildHubs = (profiles: Iterable): MemberHub[] => { + const hubs = new Map(); + for (const profile of profiles) { + const geo = geocodeLocation(profile.location); + if (!geo) continue; + const existing = hubs.get(geo.label); + if (existing) existing.members += 1; + else hubs.set(geo.label, { label: geo.label, country: geo.country, lat: geo.lat, lng: geo.lng, members: 1 }); + } + return [...hubs.values()].sort((a, b) => b.members - a.members); +}; + +/** + * Aggregates everything the home page shows from the GitHub org: live stats, + * top contributors of the practice repo, an avatar wall, the featured member for + * the hero card, and geocoded member hubs for the globe. Every call is cached with + * ISR (1h) and every failure degrades to null/empty so the page renders offline. + * + * @returns Home page data sourced exclusively from the GitHub org. + * @example + * const data = await getHomeData(); // in a server component + */ +export const getHomeData = async (): Promise => { + const [org, memberCount, repos, members, rawContributors] = await Promise.all([ + ghJson(`/orgs/${ORG}`), + fetchMemberCount(), + ghJson(`/orgs/${ORG}/repos?per_page=100`), + ghJson(`/orgs/${ORG}/members?per_page=100`), + ghJson(`/repos/${ORG}/${PRACTICE_REPO}/contributors?per_page=12`), + ]); + + const contributorLogins = (rawContributors ?? []).map((c) => c.login); + const memberLogins = (members ?? []).slice(0, LOCATION_PROFILE_LIMIT).map((m) => m.login); + const profileLogins = [...new Set([...contributorLogins, ...memberLogins])]; + const profiles = await fetchUsers(profileLogins); + + const stats: OrgStats | null = + org && repos + ? { + members: memberCount ?? members?.length ?? 0, + publicRepos: org.public_repos, + stars: repos.reduce((sum, repo) => sum + repo.stargazers_count, 0), + forks: repos.reduce((sum, repo) => sum + repo.forks_count, 0), + followers: org.followers, + foundedYear: new Date(org.created_at).getFullYear(), + } + : null; + + const contributors: Contributor[] = (rawContributors ?? []).map((c) => ({ + login: c.login, + name: profiles.get(c.login)?.name ?? null, + avatarUrl: c.avatar_url, + htmlUrl: c.html_url, + contributions: c.contributions, + })); + + const top = contributors[0]; + const topProfile = top ? profiles.get(top.login) : undefined; + const featured: FeaturedMember | null = + top && topProfile + ? { ...top, bio: topProfile.bio, followers: topProfile.followers, location: topProfile.location } + : null; + + const wall: OrgMember[] = (members ?? []).map((m) => ({ + login: m.login, + avatarUrl: m.avatar_url, + htmlUrl: m.html_url, + })); + + const practice = (repos ?? []).find((repo) => repo.name === PRACTICE_REPO); + + return { + stats, + wall, + contributors, + featured, + hubs: buildHubs(profiles.values()), + practiceRepo: practice + ? { forks: practice.forks_count, stars: practice.stargazers_count, url: practice.html_url } + : null, + }; +}; diff --git a/src/features/github/types.ts b/src/features/github/types.ts new file mode 100644 index 0000000..a03973b --- /dev/null +++ b/src/features/github/types.ts @@ -0,0 +1,45 @@ +export type OrgStats = { + members: number; + publicRepos: number; + stars: number; + forks: number; + followers: number; + foundedYear: number; +}; + +export type OrgMember = { + login: string; + avatarUrl: string; + htmlUrl: string; +}; + +export type Contributor = { + login: string; + name: string | null; + avatarUrl: string; + htmlUrl: string; + contributions: number; +}; + +export type FeaturedMember = Contributor & { + bio: string | null; + followers: number; + location: string | null; +}; + +export type MemberHub = { + label: string; + country: string; + lat: number; + lng: number; + members: number; +}; + +export type HomeData = { + stats: OrgStats | null; + wall: OrgMember[]; + contributors: Contributor[]; + featured: FeaturedMember | null; + hubs: MemberHub[]; + practiceRepo: { forks: number; stars: number; url: string } | null; +}; diff --git a/src/features/home/community.tsx b/src/features/home/community.tsx new file mode 100644 index 0000000..7faaba9 --- /dev/null +++ b/src/features/home/community.tsx @@ -0,0 +1,145 @@ +"use client"; + +import Image from "next/image"; +import Link from "next/link"; + +import { Reveal } from "./reveal"; + +import type { Contributor, OrgMember } from "@/features/github"; + +type CommunityProps = { + contributors: Contributor[]; + wall: OrgMember[]; +}; + +const MarqueeRow = ({ members, reverse }: { members: OrgMember[]; reverse?: boolean }) => ( +
+
+ {[...members, ...members].map((member, index) => ( + = members.length || undefined} + className="shrink-0 transition-transform duration-300 hover:-translate-y-1" + href={member.htmlUrl} + key={`${member.login}-${index}`} + rel="noopener noreferrer" + tabIndex={index >= members.length ? -1 : undefined} + target="_blank" + title={member.login} + > + {index= members.length ? "" : member.login} + className="border-border-default size-14 rounded-full border grayscale transition-all duration-300 hover:grayscale-0" + height={56} + src={member.avatarUrl} + width={56} + /> + + ))} +
+
+); + +/** + * The community proof section: top practice-repo contributors as a ranked podium + * plus list, and an infinite two-row marquee of real member avatars linking to + * their GitHub profiles. + * + * @param contributors - Ranked contributors from getHomeData. + * @param wall - Org members for the avatar marquee. + * @returns The community section. + * @example + * + */ +export const Community = ({ contributors, wall }: CommunityProps) => { + const podium = contributors.slice(0, 3); + const runnersUp = contributors.slice(3, 10); + const firstRow = wall.slice(0, Math.ceil(wall.length / 2)); + const secondRow = wall.slice(Math.ceil(wall.length / 2)); + + return ( +
+
+ +

[ Contributors ]

+

+ Built by the people in it. +

+
+ {podium.length > 0 && ( +
+ {podium.map((contributor, index) => ( + + +
+ {contributor.name + #{index + 1} +
+
+

{contributor.name ?? contributor.login}

+

@{contributor.login}

+
+

+ + {contributor.contributions} + + merged PRs +

+ +
+ ))} +
+ )} + {runnersUp.length > 0 && ( + +
    + {runnersUp.map((contributor, index) => ( +
  1. + + + {String(index + 4).padStart(2, "0")} + + {contributor.name + + {contributor.name ?? contributor.login} + + + {contributor.contributions} merged + + +
  2. + ))} +
+
+ )} +
+ {wall.length > 6 && ( +
+ + +
+ )} +
+ ); +}; diff --git a/src/features/home/cta.tsx b/src/features/home/cta.tsx new file mode 100644 index 0000000..d995d5f --- /dev/null +++ b/src/features/home/cta.tsx @@ -0,0 +1,43 @@ +"use client"; + +import Link from "next/link"; + +import { Button } from "@/components/ui/button"; +import { Reveal } from "./reveal"; + +import type { OrgStats } from "@/features/github"; + +/** + * Closing dark panel with a radial yellow glow and a single call to action. + * The microcopy carries the live member count when stats are available. + * + * @param stats - Org stats for the member count line, or null. + * @returns The CTA section. + * @example + * + */ +export const Cta = ({ stats }: { stats: OrgStats | null }) => ( +
+
+
+ +

+ Stop scrolling. Start shipping with people. +

+
+ +

+ {stats ? `${stats.members.toLocaleString()} members` : "open membership"} · no fees · one merged PR to join +

+
+ + + +
+
+); diff --git a/src/features/home/globe-dots.ts b/src/features/home/globe-dots.ts new file mode 100644 index 0000000..4e26390 --- /dev/null +++ b/src/features/home/globe-dots.ts @@ -0,0 +1,1100 @@ +// Generated with dotted-map (height 110, diagonal grid): flat [lat, lng, ...] pairs of land dots for the member globe. +// Regenerate with the scratchpad script if density needs to change; do not hand-edit. +export const GLOBE_DOTS: readonly number[] = [ + 71, -156.4, 71, -154.9, 71, -116.4, 71, -114.8, 71, -113.3, 71, -111.7, 71, -110.2, 71, -108.7, 71, -107.1, 71, + -105.6, 71, -96.3, 71, -94.8, 71, -93.2, 71, -88.6, 71, -87.1, 71, -85.5, 71, -84, 71, -82.5, 71, -80.9, 71, -79.4, + 71, -77.8, 71, -76.3, 71, -74.8, 71, -73.2, 71, -71.7, 71, -51.6, 71, -50.1, 71, -48.6, 71, -47, 71, -45.5, 71, -43.9, + 71, -42.4, 71, -40.8, 71, -39.3, 71, -37.8, 71, -36.2, 71, -34.7, 71, -33.1, 71, -31.6, 71, -30.1, 71, -28.5, 71, -27, + 71, -25.4, 71, -23.9, 71, -22.3, 71, 25.4, 71, 27, 71, 28.5, 71, 54.7, 71, 56.3, 71, 67, 71, 68.6, 71, 70.1, 71, 71.7, + 71, 74.8, 71, 76.3, 71, 77.8, 71, 79.4, 71, 80.9, 71, 82.5, 71, 84, 71, 85.5, 71, 87.1, 71, 88.6, 71, 90.2, 71, 91.7, + 71, 93.2, 71, 94.8, 71, 96.3, 71, 97.9, 71, 99.4, 71, 101, 71, 102.5, 71, 104, 71, 105.6, 71, 107.1, 71, 108.7, 71, + 110.2, 71, 111.7, 71, 113.3, 71, 114.8, 71, 116.4, 71, 117.9, 71, 119.4, 71, 121, 71, 122.5, 71, 124.1, 71, 125.6, 71, + 127.2, 71, 128.7, 71, 130.2, 71, 131.8, 71, 133.3, 71, 134.9, 71, 136.4, 71, 137.9, 71, 139.5, 71, 141, 71, 142.6, 71, + 144.1, 71, 145.7, 71, 147.2, 71, 148.7, 71, 150.3, 71, 151.8, 71, 156.4, 70.6, -160.3, 70.6, -158.8, 70.6, -157.2, + 70.6, -155.7, 70.6, -154.1, 70.6, -152.6, 70.6, -117.1, 70.6, -115.6, 70.6, -112.5, 70.6, -111, 70.6, -109.4, 70.6, + -107.9, 70.6, -106.3, 70.6, -104.8, 70.6, -103.3, 70.6, -95.6, 70.6, -94, 70.6, -92.5, 70.6, -87.9, 70.6, -86.3, 70.6, + -84.8, 70.6, -83.2, 70.6, -81.7, 70.6, -80.1, 70.6, -78.6, 70.6, -77.1, 70.6, -75.5, 70.6, -74, 70.6, -72.4, 70.6, + -70.9, 70.6, -69.4, 70.6, -53.9, 70.6, -52.4, 70.6, -50.9, 70.6, -49.3, 70.6, -47.8, 70.6, -46.2, 70.6, -44.7, 70.6, + -43.2, 70.6, -41.6, 70.6, -40.1, 70.6, -38.5, 70.6, -37, 70.6, -35.4, 70.6, -33.9, 70.6, -32.4, 70.6, -30.8, 70.6, + -29.3, 70.6, -27.7, 70.6, -26.2, 70.6, -23.1, 70.6, 24.7, 70.6, 26.2, 70.6, 27.7, 70.6, 29.3, 70.6, 30.8, 70.6, 67.8, + 70.6, 69.4, 70.6, 70.9, 70.6, 72.4, 70.6, 75.5, 70.6, 77.1, 70.6, 78.6, 70.6, 80.1, 70.6, 81.7, 70.6, 83.2, 70.6, + 84.8, 70.6, 86.3, 70.6, 87.9, 70.6, 89.4, 70.6, 90.9, 70.6, 92.5, 70.6, 94, 70.6, 95.6, 70.6, 97.1, 70.6, 98.6, 70.6, + 100.2, 70.6, 101.7, 70.6, 103.3, 70.6, 104.8, 70.6, 106.3, 70.6, 107.9, 70.6, 109.4, 70.6, 111, 70.6, 112.5, 70.6, + 114.1, 70.6, 115.6, 70.6, 117.1, 70.6, 118.7, 70.6, 120.2, 70.6, 121.8, 70.6, 123.3, 70.6, 124.8, 70.6, 126.4, 70.6, + 127.9, 70.6, 129.5, 70.6, 131, 70.6, 132.6, 70.6, 134.1, 70.6, 135.6, 70.6, 137.2, 70.6, 138.7, 70.6, 140.3, 70.6, + 141.8, 70.6, 143.3, 70.6, 144.9, 70.6, 146.4, 70.6, 148, 70.6, 149.5, 70.6, 151, 70.6, 152.6, 70.6, 154.1, 70.6, + 155.7, 70.6, 157.2, 70.6, 158.8, 70.1, -161.1, 70.1, -159.5, 70.1, -158, 70.1, -156.4, 70.1, -154.9, 70.1, -153.4, + 70.1, -151.8, 70.1, -150.3, 70.1, -148.7, 70.1, -147.2, 70.1, -145.7, 70.1, -130.2, 70.1, -127.2, 70.1, -114.8, 70.1, + -113.3, 70.1, -111.7, 70.1, -110.2, 70.1, -108.7, 70.1, -107.1, 70.1, -105.6, 70.1, -104, 70.1, -102.5, 70.1, -96.3, + 70.1, -94.8, 70.1, -93.2, 70.1, -91.7, 70.1, -85.5, 70.1, -84, 70.1, -82.5, 70.1, -80.9, 70.1, -79.4, 70.1, -77.8, + 70.1, -76.3, 70.1, -74.8, 70.1, -73.2, 70.1, -71.7, 70.1, -70.1, 70.1, -68.6, 70.1, -54.7, 70.1, -53.2, 70.1, -51.6, + 70.1, -50.1, 70.1, -48.6, 70.1, -47, 70.1, -45.5, 70.1, -43.9, 70.1, -42.4, 70.1, -40.8, 70.1, -39.3, 70.1, -37.8, + 70.1, -36.2, 70.1, -34.7, 70.1, -33.1, 70.1, -31.6, 70.1, -30.1, 70.1, -28.5, 70.1, -27, 70.1, -25.4, 70.1, -23.9, + 70.1, 20.8, 70.1, 22.3, 70.1, 23.9, 70.1, 25.4, 70.1, 27, 70.1, 28.5, 70.1, 30.1, 70.1, 68.6, 70.1, 70.1, 70.1, 71.7, + 70.1, 74.8, 70.1, 76.3, 70.1, 77.8, 70.1, 79.4, 70.1, 80.9, 70.1, 82.5, 70.1, 84, 70.1, 85.5, 70.1, 87.1, 70.1, 88.6, + 70.1, 90.2, 70.1, 91.7, 70.1, 93.2, 70.1, 94.8, 70.1, 96.3, 70.1, 97.9, 70.1, 99.4, 70.1, 101, 70.1, 102.5, 70.1, 104, + 70.1, 105.6, 70.1, 107.1, 70.1, 108.7, 70.1, 110.2, 70.1, 111.7, 70.1, 113.3, 70.1, 114.8, 70.1, 116.4, 70.1, 117.9, + 70.1, 119.4, 70.1, 121, 70.1, 122.5, 70.1, 124.1, 70.1, 125.6, 70.1, 127.2, 70.1, 128.7, 70.1, 130.2, 70.1, 131.8, + 70.1, 133.3, 70.1, 134.9, 70.1, 136.4, 70.1, 137.9, 70.1, 139.5, 70.1, 141, 70.1, 142.6, 70.1, 144.1, 70.1, 145.7, + 70.1, 147.2, 70.1, 148.7, 70.1, 150.3, 70.1, 151.8, 70.1, 153.4, 70.1, 154.9, 70.1, 156.4, 70.1, 158, 70.1, 159.5, + 69.7, -161.8, 69.7, -160.3, 69.7, -158.8, 69.7, -157.2, 69.7, -155.7, 69.7, -154.1, 69.7, -152.6, 69.7, -151, 69.7, + -149.5, 69.7, -148, 69.7, -146.4, 69.7, -144.9, 69.7, -143.3, 69.7, -141.8, 69.7, -131, 69.7, -129.5, 69.7, -127.9, + 69.7, -126.4, 69.7, -124.8, 69.7, -121.8, 69.7, -115.6, 69.7, -114.1, 69.7, -112.5, 69.7, -111, 69.7, -109.4, 69.7, + -107.9, 69.7, -106.3, 69.7, -104.8, 69.7, -103.3, 69.7, -101.7, 69.7, -98.6, 69.7, -97.1, 69.7, -94, 69.7, -92.5, + 69.7, -84.8, 69.7, -83.2, 69.7, -77.1, 69.7, -75.5, 69.7, -74, 69.7, -72.4, 69.7, -70.9, 69.7, -69.4, 69.7, -67.8, + 69.7, -53.9, 69.7, -52.4, 69.7, -50.9, 69.7, -49.3, 69.7, -47.8, 69.7, -46.2, 69.7, -44.7, 69.7, -43.2, 69.7, -41.6, + 69.7, -40.1, 69.7, -38.5, 69.7, -37, 69.7, -35.4, 69.7, -33.9, 69.7, -32.4, 69.7, -30.8, 69.7, -29.3, 69.7, -27.7, + 69.7, -26.2, 69.7, -24.7, 69.7, 20, 69.7, 21.6, 69.7, 23.1, 69.7, 24.7, 69.7, 26.2, 69.7, 27.7, 69.7, 29.3, 69.7, + 30.8, 69.7, 32.4, 69.7, 61.7, 69.7, 67.8, 69.7, 69.4, 69.7, 70.9, 69.7, 72.4, 69.7, 74, 69.7, 75.5, 69.7, 77.1, 69.7, + 78.6, 69.7, 80.1, 69.7, 81.7, 69.7, 83.2, 69.7, 84.8, 69.7, 86.3, 69.7, 87.9, 69.7, 89.4, 69.7, 90.9, 69.7, 92.5, + 69.7, 94, 69.7, 95.6, 69.7, 97.1, 69.7, 98.6, 69.7, 100.2, 69.7, 101.7, 69.7, 103.3, 69.7, 104.8, 69.7, 106.3, 69.7, + 107.9, 69.7, 109.4, 69.7, 111, 69.7, 112.5, 69.7, 114.1, 69.7, 115.6, 69.7, 117.1, 69.7, 118.7, 69.7, 120.2, 69.7, + 121.8, 69.7, 123.3, 69.7, 124.8, 69.7, 126.4, 69.7, 127.9, 69.7, 129.5, 69.7, 131, 69.7, 132.6, 69.7, 134.1, 69.7, + 135.6, 69.7, 137.2, 69.7, 138.7, 69.7, 140.3, 69.7, 141.8, 69.7, 143.3, 69.7, 144.9, 69.7, 146.4, 69.7, 148, 69.7, + 149.5, 69.7, 151, 69.7, 152.6, 69.7, 154.1, 69.7, 155.7, 69.7, 157.2, 69.7, 158.8, 69.7, 163.4, 69.2, -162.6, 69.2, + -161.1, 69.2, -159.5, 69.2, -158, 69.2, -156.4, 69.2, -154.9, 69.2, -153.4, 69.2, -151.8, 69.2, -150.3, 69.2, -148.7, + 69.2, -147.2, 69.2, -145.7, 69.2, -144.1, 69.2, -142.6, 69.2, -141, 69.2, -139.5, 69.2, -134.9, 69.2, -133.3, 69.2, + -131.8, 69.2, -130.2, 69.2, -128.7, 69.2, -127.2, 69.2, -125.6, 69.2, -124.1, 69.2, -122.5, 69.2, -121, 69.2, -119.4, + 69.2, -113.3, 69.2, -111.7, 69.2, -110.2, 69.2, -108.7, 69.2, -107.1, 69.2, -105.6, 69.2, -104, 69.2, -102.5, 69.2, + -97.9, 69.2, -96.3, 69.2, -93.2, 69.2, -91.7, 69.2, -85.5, 69.2, -84, 69.2, -82.5, 69.2, -74.8, 69.2, -73.2, 69.2, + -71.7, 69.2, -70.1, 69.2, -68.6, 69.2, -67, 69.2, -50.1, 69.2, -48.6, 69.2, -47, 69.2, -45.5, 69.2, -43.9, 69.2, + -42.4, 69.2, -40.8, 69.2, -39.3, 69.2, -37.8, 69.2, -36.2, 69.2, -34.7, 69.2, -33.1, 69.2, -31.6, 69.2, -30.1, 69.2, + -28.5, 69.2, -27, 69.2, -25.4, 69.2, 19.3, 69.2, 20.8, 69.2, 22.3, 69.2, 23.9, 69.2, 25.4, 69.2, 27, 69.2, 28.5, 69.2, + 30.1, 69.2, 31.6, 69.2, 33.1, 69.2, 34.7, 69.2, 60.9, 69.2, 62.4, 69.2, 64, 69.2, 68.6, 69.2, 70.1, 69.2, 71.7, 69.2, + 74.8, 69.2, 76.3, 69.2, 77.8, 69.2, 79.4, 69.2, 80.9, 69.2, 82.5, 69.2, 84, 69.2, 85.5, 69.2, 87.1, 69.2, 88.6, 69.2, + 90.2, 69.2, 91.7, 69.2, 93.2, 69.2, 94.8, 69.2, 96.3, 69.2, 97.9, 69.2, 99.4, 69.2, 101, 69.2, 102.5, 69.2, 104, 69.2, + 105.6, 69.2, 107.1, 69.2, 108.7, 69.2, 110.2, 69.2, 111.7, 69.2, 113.3, 69.2, 114.8, 69.2, 116.4, 69.2, 117.9, 69.2, + 119.4, 69.2, 121, 69.2, 122.5, 69.2, 124.1, 69.2, 125.6, 69.2, 127.2, 69.2, 128.7, 69.2, 130.2, 69.2, 131.8, 69.2, + 133.3, 69.2, 134.9, 69.2, 136.4, 69.2, 137.9, 69.2, 139.5, 69.2, 141, 69.2, 142.6, 69.2, 144.1, 69.2, 145.7, 69.2, + 147.2, 69.2, 148.7, 69.2, 150.3, 69.2, 151.8, 69.2, 153.4, 69.2, 154.9, 69.2, 156.4, 69.2, 158, 69.2, 159.5, 69.2, + 161.1, 69.2, 162.6, 69.2, 164.1, 69.2, 165.7, 69.2, 167.2, 68.7, -164.9, 68.7, -163.4, 68.7, -161.8, 68.7, -160.3, + 68.7, -158.8, 68.7, -157.2, 68.7, -155.7, 68.7, -154.1, 68.7, -152.6, 68.7, -151, 68.7, -149.5, 68.7, -148, 68.7, + -146.4, 68.7, -144.9, 68.7, -143.3, 68.7, -141.8, 68.7, -140.3, 68.7, -138.7, 68.7, -137.2, 68.7, -135.6, 68.7, + -134.1, 68.7, -132.6, 68.7, -131, 68.7, -129.5, 68.7, -127.9, 68.7, -126.4, 68.7, -124.8, 68.7, -123.3, 68.7, -121.8, + 68.7, -120.2, 68.7, -118.7, 68.7, -117.1, 68.7, -115.6, 68.7, -112.5, 68.7, -111, 68.7, -106.3, 68.7, -94, 68.7, + -92.5, 68.7, -90.9, 68.7, -89.4, 68.7, -84.8, 68.7, -83.2, 68.7, -81.7, 68.7, -75.5, 68.7, -74, 68.7, -72.4, 68.7, + -70.9, 68.7, -69.4, 68.7, -50.9, 68.7, -49.3, 68.7, -47.8, 68.7, -46.2, 68.7, -44.7, 68.7, -43.2, 68.7, -41.6, 68.7, + -40.1, 68.7, -38.5, 68.7, -37, 68.7, -35.4, 68.7, -33.9, 68.7, -32.4, 68.7, -30.8, 68.7, -29.3, 68.7, -27.7, 68.7, 17, + 68.7, 18.5, 68.7, 20, 68.7, 21.6, 68.7, 23.1, 68.7, 24.7, 68.7, 26.2, 68.7, 27.7, 68.7, 29.3, 68.7, 30.8, 68.7, 32.4, + 68.7, 33.9, 68.7, 35.4, 68.7, 37, 68.7, 53.9, 68.7, 58.6, 68.7, 61.7, 68.7, 63.2, 68.7, 64.7, 68.7, 66.3, 68.7, 69.4, + 68.7, 70.9, 68.7, 72.4, 68.7, 75.5, 68.7, 77.1, 68.7, 78.6, 68.7, 80.1, 68.7, 81.7, 68.7, 83.2, 68.7, 84.8, 68.7, + 86.3, 68.7, 87.9, 68.7, 89.4, 68.7, 90.9, 68.7, 92.5, 68.7, 94, 68.7, 95.6, 68.7, 97.1, 68.7, 98.6, 68.7, 100.2, 68.7, + 101.7, 68.7, 103.3, 68.7, 104.8, 68.7, 106.3, 68.7, 107.9, 68.7, 109.4, 68.7, 111, 68.7, 112.5, 68.7, 114.1, 68.7, + 115.6, 68.7, 117.1, 68.7, 118.7, 68.7, 120.2, 68.7, 121.8, 68.7, 123.3, 68.7, 124.8, 68.7, 126.4, 68.7, 127.9, 68.7, + 129.5, 68.7, 131, 68.7, 132.6, 68.7, 134.1, 68.7, 135.6, 68.7, 137.2, 68.7, 138.7, 68.7, 140.3, 68.7, 141.8, 68.7, + 143.3, 68.7, 144.9, 68.7, 146.4, 68.7, 148, 68.7, 149.5, 68.7, 151, 68.7, 152.6, 68.7, 154.1, 68.7, 155.7, 68.7, + 157.2, 68.7, 158.8, 68.7, 160.3, 68.7, 161.8, 68.7, 163.4, 68.7, 164.9, 68.7, 166.5, 68.2, -165.7, 68.2, -164.1, 68.2, + -162.6, 68.2, -161.1, 68.2, -159.5, 68.2, -158, 68.2, -156.4, 68.2, -154.9, 68.2, -153.4, 68.2, -151.8, 68.2, -150.3, + 68.2, -148.7, 68.2, -147.2, 68.2, -145.7, 68.2, -144.1, 68.2, -142.6, 68.2, -141, 68.2, -139.5, 68.2, -137.9, 68.2, + -136.4, 68.2, -134.9, 68.2, -133.3, 68.2, -131.8, 68.2, -130.2, 68.2, -128.7, 68.2, -127.2, 68.2, -125.6, 68.2, + -124.1, 68.2, -122.5, 68.2, -121, 68.2, -119.4, 68.2, -117.9, 68.2, -116.4, 68.2, -114.8, 68.2, -107.1, 68.2, -105.6, + 68.2, -97.9, 68.2, -96.3, 68.2, -93.2, 68.2, -91.7, 68.2, -90.2, 68.2, -88.6, 68.2, -85.5, 68.2, -84, 68.2, -82.5, + 68.2, -76.3, 68.2, -73.2, 68.2, -71.7, 68.2, -70.1, 68.2, -68.6, 68.2, -67, 68.2, -51.6, 68.2, -50.1, 68.2, -48.6, + 68.2, -47, 68.2, -45.5, 68.2, -43.9, 68.2, -42.4, 68.2, -40.8, 68.2, -39.3, 68.2, -37.8, 68.2, -36.2, 68.2, -34.7, + 68.2, -33.1, 68.2, -31.6, 68.2, -30.1, 68.2, 16.2, 68.2, 17.7, 68.2, 19.3, 68.2, 20.8, 68.2, 22.3, 68.2, 23.9, 68.2, + 25.4, 68.2, 27, 68.2, 28.5, 68.2, 30.1, 68.2, 31.6, 68.2, 33.1, 68.2, 34.7, 68.2, 36.2, 68.2, 37.8, 68.2, 39.3, 68.2, + 43.9, 68.2, 45.5, 68.2, 51.6, 68.2, 53.2, 68.2, 56.3, 68.2, 57.8, 68.2, 59.3, 68.2, 60.9, 68.2, 62.4, 68.2, 64, 68.2, + 65.5, 68.2, 67, 68.2, 70.1, 68.2, 71.7, 68.2, 73.2, 68.2, 74.8, 68.2, 76.3, 68.2, 77.8, 68.2, 79.4, 68.2, 80.9, 68.2, + 82.5, 68.2, 84, 68.2, 85.5, 68.2, 87.1, 68.2, 88.6, 68.2, 90.2, 68.2, 91.7, 68.2, 93.2, 68.2, 94.8, 68.2, 96.3, 68.2, + 97.9, 68.2, 99.4, 68.2, 101, 68.2, 102.5, 68.2, 104, 68.2, 105.6, 68.2, 107.1, 68.2, 108.7, 68.2, 110.2, 68.2, 111.7, + 68.2, 113.3, 68.2, 114.8, 68.2, 116.4, 68.2, 117.9, 68.2, 119.4, 68.2, 121, 68.2, 122.5, 68.2, 124.1, 68.2, 125.6, + 68.2, 127.2, 68.2, 128.7, 68.2, 130.2, 68.2, 131.8, 68.2, 133.3, 68.2, 134.9, 68.2, 136.4, 68.2, 137.9, 68.2, 139.5, + 68.2, 141, 68.2, 142.6, 68.2, 144.1, 68.2, 145.7, 68.2, 147.2, 68.2, 148.7, 68.2, 150.3, 68.2, 151.8, 68.2, 153.4, + 68.2, 154.9, 68.2, 156.4, 68.2, 158, 68.2, 159.5, 68.2, 161.1, 68.2, 162.6, 68.2, 164.1, 68.2, 165.7, 68.2, 167.2, + 67.7, -163.4, 67.7, -161.8, 67.7, -160.3, 67.7, -158.8, 67.7, -157.2, 67.7, -155.7, 67.7, -154.1, 67.7, -152.6, 67.7, + -151, 67.7, -149.5, 67.7, -148, 67.7, -146.4, 67.7, -144.9, 67.7, -143.3, 67.7, -141.8, 67.7, -140.3, 67.7, -138.7, + 67.7, -137.2, 67.7, -135.6, 67.7, -134.1, 67.7, -132.6, 67.7, -131, 67.7, -129.5, 67.7, -127.9, 67.7, -126.4, 67.7, + -124.8, 67.7, -123.3, 67.7, -121.8, 67.7, -120.2, 67.7, -118.7, 67.7, -117.1, 67.7, -115.6, 67.7, -114.1, 67.7, + -112.5, 67.7, -111, 67.7, -107.9, 67.7, -106.3, 67.7, -104.8, 67.7, -103.3, 67.7, -101.7, 67.7, -100.2, 67.7, -98.6, + 67.7, -97.1, 67.7, -95.6, 67.7, -94, 67.7, -92.5, 67.7, -90.9, 67.7, -89.4, 67.7, -86.3, 67.7, -84.8, 67.7, -83.2, + 67.7, -81.7, 67.7, -77.1, 67.7, -75.5, 67.7, -72.4, 67.7, -70.9, 67.7, -69.4, 67.7, -67.8, 67.7, -66.3, 67.7, -64.7, + 67.7, -52.4, 67.7, -50.9, 67.7, -49.3, 67.7, -47.8, 67.7, -46.2, 67.7, -44.7, 67.7, -43.2, 67.7, -41.6, 67.7, -40.1, + 67.7, -38.5, 67.7, -37, 67.7, -35.4, 67.7, -33.9, 67.7, 15.4, 67.7, 17, 67.7, 18.5, 67.7, 20, 67.7, 21.6, 67.7, 23.1, + 67.7, 24.7, 67.7, 26.2, 67.7, 27.7, 67.7, 29.3, 67.7, 30.8, 67.7, 32.4, 67.7, 33.9, 67.7, 35.4, 67.7, 37, 67.7, 38.5, + 67.7, 40.1, 67.7, 44.7, 67.7, 46.2, 67.7, 49.3, 67.7, 50.9, 67.7, 52.4, 67.7, 53.9, 67.7, 55.5, 67.7, 57, 67.7, 58.6, + 67.7, 60.1, 67.7, 61.7, 67.7, 63.2, 67.7, 64.7, 67.7, 66.3, 67.7, 67.8, 67.7, 69.4, 67.7, 70.9, 67.7, 72.4, 67.7, + 75.5, 67.7, 77.1, 67.7, 78.6, 67.7, 80.1, 67.7, 81.7, 67.7, 83.2, 67.7, 84.8, 67.7, 86.3, 67.7, 87.9, 67.7, 89.4, + 67.7, 90.9, 67.7, 92.5, 67.7, 94, 67.7, 95.6, 67.7, 97.1, 67.7, 98.6, 67.7, 100.2, 67.7, 101.7, 67.7, 103.3, 67.7, + 104.8, 67.7, 106.3, 67.7, 107.9, 67.7, 109.4, 67.7, 111, 67.7, 112.5, 67.7, 114.1, 67.7, 115.6, 67.7, 117.1, 67.7, + 118.7, 67.7, 120.2, 67.7, 121.8, 67.7, 123.3, 67.7, 124.8, 67.7, 126.4, 67.7, 127.9, 67.7, 129.5, 67.7, 131, 67.7, + 132.6, 67.7, 134.1, 67.7, 135.6, 67.7, 137.2, 67.7, 138.7, 67.7, 140.3, 67.7, 141.8, 67.7, 143.3, 67.7, 144.9, 67.7, + 146.4, 67.7, 148, 67.7, 149.5, 67.7, 151, 67.7, 152.6, 67.7, 154.1, 67.7, 155.7, 67.7, 157.2, 67.7, 158.8, 67.7, + 160.3, 67.7, 161.8, 67.7, 163.4, 67.7, 164.9, 67.7, 166.5, 67.2, -162.6, 67.2, -161.1, 67.2, -159.5, 67.2, -158, 67.2, + -156.4, 67.2, -154.9, 67.2, -153.4, 67.2, -151.8, 67.2, -150.3, 67.2, -148.7, 67.2, -147.2, 67.2, -145.7, 67.2, + -144.1, 67.2, -142.6, 67.2, -141, 67.2, -139.5, 67.2, -137.9, 67.2, -136.4, 67.2, -134.9, 67.2, -133.3, 67.2, -131.8, + 67.2, -130.2, 67.2, -128.7, 67.2, -127.2, 67.2, -125.6, 67.2, -124.1, 67.2, -122.5, 67.2, -121, 67.2, -119.4, 67.2, + -117.9, 67.2, -116.4, 67.2, -114.8, 67.2, -113.3, 67.2, -111.7, 67.2, -110.2, 67.2, -108.7, 67.2, -107.1, 67.2, + -105.6, 67.2, -104, 67.2, -102.5, 67.2, -101, 67.2, -99.4, 67.2, -97.9, 67.2, -96.3, 67.2, -94.8, 67.2, -93.2, 67.2, + -91.7, 67.2, -90.2, 67.2, -88.6, 67.2, -87.1, 67.2, -85.5, 67.2, -84, 67.2, -82.5, 67.2, -76.3, 67.2, -71.7, 67.2, + -70.1, 67.2, -68.6, 67.2, -67, 67.2, -65.5, 67.2, -64, 67.2, -53.2, 67.2, -51.6, 67.2, -50.1, 67.2, -48.6, 67.2, -47, + 67.2, -45.5, 67.2, -43.9, 67.2, -42.4, 67.2, -40.8, 67.2, -39.3, 67.2, -37.8, 67.2, -36.2, 67.2, -34.7, 67.2, 14.6, + 67.2, 16.2, 67.2, 17.7, 67.2, 19.3, 67.2, 20.8, 67.2, 22.3, 67.2, 23.9, 67.2, 25.4, 67.2, 27, 67.2, 28.5, 67.2, 30.1, + 67.2, 31.6, 67.2, 33.1, 67.2, 34.7, 67.2, 36.2, 67.2, 37.8, 67.2, 39.3, 67.2, 40.8, 67.2, 43.9, 67.2, 45.5, 67.2, + 48.6, 67.2, 50.1, 67.2, 51.6, 67.2, 53.2, 67.2, 54.7, 67.2, 56.3, 67.2, 57.8, 67.2, 59.3, 67.2, 60.9, 67.2, 62.4, + 67.2, 64, 67.2, 65.5, 67.2, 67, 67.2, 68.6, 67.2, 70.1, 67.2, 71.7, 67.2, 74.8, 67.2, 76.3, 67.2, 77.8, 67.2, 79.4, + 67.2, 80.9, 67.2, 82.5, 67.2, 84, 67.2, 85.5, 67.2, 87.1, 67.2, 88.6, 67.2, 90.2, 67.2, 91.7, 67.2, 93.2, 67.2, 94.8, + 67.2, 96.3, 67.2, 97.9, 67.2, 99.4, 67.2, 101, 67.2, 102.5, 67.2, 104, 67.2, 105.6, 67.2, 107.1, 67.2, 108.7, 67.2, + 110.2, 67.2, 111.7, 67.2, 113.3, 67.2, 114.8, 67.2, 116.4, 67.2, 117.9, 67.2, 119.4, 67.2, 121, 67.2, 122.5, 67.2, + 124.1, 67.2, 125.6, 67.2, 127.2, 67.2, 128.7, 67.2, 130.2, 67.2, 131.8, 67.2, 133.3, 67.2, 134.9, 67.2, 136.4, 67.2, + 137.9, 67.2, 139.5, 67.2, 141, 67.2, 142.6, 67.2, 144.1, 67.2, 145.7, 67.2, 147.2, 67.2, 148.7, 67.2, 150.3, 67.2, + 151.8, 67.2, 153.4, 67.2, 154.9, 67.2, 156.4, 67.2, 158, 67.2, 159.5, 67.2, 161.1, 67.2, 162.6, 67.2, 164.1, 67.2, + 165.7, 67.2, 167.2, 66.7, -161.8, 66.7, -160.3, 66.7, -158.8, 66.7, -157.2, 66.7, -155.7, 66.7, -154.1, 66.7, -152.6, + 66.7, -151, 66.7, -149.5, 66.7, -148, 66.7, -146.4, 66.7, -144.9, 66.7, -143.3, 66.7, -141.8, 66.7, -140.3, 66.7, + -138.7, 66.7, -137.2, 66.7, -135.6, 66.7, -134.1, 66.7, -132.6, 66.7, -131, 66.7, -129.5, 66.7, -127.9, 66.7, -126.4, + 66.7, -124.8, 66.7, -123.3, 66.7, -121.8, 66.7, -120.2, 66.7, -118.7, 66.7, -117.1, 66.7, -115.6, 66.7, -114.1, 66.7, + -112.5, 66.7, -111, 66.7, -109.4, 66.7, -107.9, 66.7, -106.3, 66.7, -104.8, 66.7, -103.3, 66.7, -101.7, 66.7, -100.2, + 66.7, -98.6, 66.7, -97.1, 66.7, -95.6, 66.7, -94, 66.7, -92.5, 66.7, -90.9, 66.7, -89.4, 66.7, -87.9, 66.7, -86.3, + 66.7, -84.8, 66.7, -83.2, 66.7, -72.4, 66.7, -70.9, 66.7, -69.4, 66.7, -67.8, 66.7, -66.3, 66.7, -64.7, 66.7, -63.2, + 66.7, -52.4, 66.7, -50.9, 66.7, -49.3, 66.7, -47.8, 66.7, -46.2, 66.7, -44.7, 66.7, -43.2, 66.7, -41.6, 66.7, -40.1, + 66.7, -38.5, 66.7, -37, 66.7, -35.4, 66.7, 13.9, 66.7, 15.4, 66.7, 17, 66.7, 18.5, 66.7, 20, 66.7, 21.6, 66.7, 23.1, + 66.7, 24.7, 66.7, 26.2, 66.7, 27.7, 66.7, 29.3, 66.7, 30.8, 66.7, 32.4, 66.7, 35.4, 66.7, 37, 66.7, 38.5, 66.7, 40.1, + 66.7, 44.7, 66.7, 46.2, 66.7, 47.8, 66.7, 49.3, 66.7, 50.9, 66.7, 52.4, 66.7, 53.9, 66.7, 55.5, 66.7, 57, 66.7, 58.6, + 66.7, 60.1, 66.7, 61.7, 66.7, 63.2, 66.7, 64.7, 66.7, 66.3, 66.7, 67.8, 66.7, 69.4, 66.7, 70.9, 66.7, 74, 66.7, 75.5, + 66.7, 77.1, 66.7, 78.6, 66.7, 80.1, 66.7, 81.7, 66.7, 83.2, 66.7, 84.8, 66.7, 86.3, 66.7, 87.9, 66.7, 89.4, 66.7, + 90.9, 66.7, 92.5, 66.7, 94, 66.7, 95.6, 66.7, 97.1, 66.7, 98.6, 66.7, 100.2, 66.7, 101.7, 66.7, 103.3, 66.7, 104.8, + 66.7, 106.3, 66.7, 107.9, 66.7, 109.4, 66.7, 111, 66.7, 112.5, 66.7, 114.1, 66.7, 115.6, 66.7, 117.1, 66.7, 118.7, + 66.7, 120.2, 66.7, 121.8, 66.7, 123.3, 66.7, 124.8, 66.7, 126.4, 66.7, 127.9, 66.7, 129.5, 66.7, 131, 66.7, 132.6, + 66.7, 134.1, 66.7, 135.6, 66.7, 137.2, 66.7, 138.7, 66.7, 140.3, 66.7, 141.8, 66.7, 143.3, 66.7, 144.9, 66.7, 146.4, + 66.7, 148, 66.7, 149.5, 66.7, 151, 66.7, 152.6, 66.7, 154.1, 66.7, 155.7, 66.7, 157.2, 66.7, 158.8, 66.7, 160.3, 66.7, + 161.8, 66.7, 163.4, 66.7, 164.9, 66.7, 166.5, 66.1, -165.7, 66.1, -164.1, 66.1, -161.1, 66.1, -159.5, 66.1, -158, + 66.1, -156.4, 66.1, -154.9, 66.1, -153.4, 66.1, -151.8, 66.1, -150.3, 66.1, -148.7, 66.1, -147.2, 66.1, -145.7, 66.1, + -144.1, 66.1, -142.6, 66.1, -141, 66.1, -139.5, 66.1, -137.9, 66.1, -136.4, 66.1, -134.9, 66.1, -133.3, 66.1, -131.8, + 66.1, -130.2, 66.1, -128.7, 66.1, -127.2, 66.1, -125.6, 66.1, -124.1, 66.1, -122.5, 66.1, -121, 66.1, -119.4, 66.1, + -117.9, 66.1, -116.4, 66.1, -114.8, 66.1, -113.3, 66.1, -111.7, 66.1, -110.2, 66.1, -108.7, 66.1, -107.1, 66.1, + -105.6, 66.1, -104, 66.1, -102.5, 66.1, -101, 66.1, -99.4, 66.1, -97.9, 66.1, -96.3, 66.1, -94.8, 66.1, -93.2, 66.1, + -91.7, 66.1, -90.2, 66.1, -88.6, 66.1, -87.1, 66.1, -73.2, 66.1, -71.7, 66.1, -70.1, 66.1, -68.6, 66.1, -65.5, 66.1, + -64, 66.1, -62.4, 66.1, -53.2, 66.1, -51.6, 66.1, -50.1, 66.1, -48.6, 66.1, -47, 66.1, -45.5, 66.1, -43.9, 66.1, + -42.4, 66.1, -40.8, 66.1, -39.3, 66.1, -37.8, 66.1, -36.2, 66.1, -22.3, 66.1, -19.3, 66.1, -16.2, 66.1, -14.6, 66.1, + 13.1, 66.1, 14.6, 66.1, 16.2, 66.1, 17.7, 66.1, 19.3, 66.1, 20.8, 66.1, 22.3, 66.1, 23.9, 66.1, 25.4, 66.1, 27, 66.1, + 28.5, 66.1, 30.1, 66.1, 31.6, 66.1, 33.1, 66.1, 37.8, 66.1, 42.4, 66.1, 45.5, 66.1, 47, 66.1, 48.6, 66.1, 50.1, 66.1, + 51.6, 66.1, 53.2, 66.1, 54.7, 66.1, 56.3, 66.1, 57.8, 66.1, 59.3, 66.1, 60.9, 66.1, 62.4, 66.1, 64, 66.1, 65.5, 66.1, + 67, 66.1, 68.6, 66.1, 70.1, 66.1, 71.7, 66.1, 73.2, 66.1, 74.8, 66.1, 76.3, 66.1, 77.8, 66.1, 79.4, 66.1, 80.9, 66.1, + 82.5, 66.1, 84, 66.1, 85.5, 66.1, 87.1, 66.1, 88.6, 66.1, 90.2, 66.1, 91.7, 66.1, 93.2, 66.1, 94.8, 66.1, 96.3, 66.1, + 97.9, 66.1, 99.4, 66.1, 101, 66.1, 102.5, 66.1, 104, 66.1, 105.6, 66.1, 107.1, 66.1, 108.7, 66.1, 110.2, 66.1, 111.7, + 66.1, 113.3, 66.1, 114.8, 66.1, 116.4, 66.1, 117.9, 66.1, 119.4, 66.1, 121, 66.1, 122.5, 66.1, 124.1, 66.1, 125.6, + 66.1, 127.2, 66.1, 128.7, 66.1, 130.2, 66.1, 131.8, 66.1, 133.3, 66.1, 134.9, 66.1, 136.4, 66.1, 137.9, 66.1, 139.5, + 66.1, 141, 66.1, 142.6, 66.1, 144.1, 66.1, 145.7, 66.1, 147.2, 66.1, 148.7, 66.1, 150.3, 66.1, 151.8, 66.1, 153.4, + 66.1, 154.9, 66.1, 156.4, 66.1, 158, 66.1, 159.5, 66.1, 161.1, 66.1, 162.6, 66.1, 164.1, 66.1, 165.7, 66.1, 167.2, + 65.6, -166.5, 65.6, -164.9, 65.6, -163.4, 65.6, -161.8, 65.6, -160.3, 65.6, -158.8, 65.6, -157.2, 65.6, -155.7, 65.6, + -154.1, 65.6, -152.6, 65.6, -151, 65.6, -149.5, 65.6, -148, 65.6, -146.4, 65.6, -144.9, 65.6, -143.3, 65.6, -141.8, + 65.6, -140.3, 65.6, -138.7, 65.6, -137.2, 65.6, -135.6, 65.6, -134.1, 65.6, -132.6, 65.6, -131, 65.6, -129.5, 65.6, + -127.9, 65.6, -126.4, 65.6, -124.8, 65.6, -123.3, 65.6, -121.8, 65.6, -120.2, 65.6, -118.7, 65.6, -117.1, 65.6, + -115.6, 65.6, -114.1, 65.6, -112.5, 65.6, -111, 65.6, -109.4, 65.6, -107.9, 65.6, -106.3, 65.6, -104.8, 65.6, -103.3, + 65.6, -101.7, 65.6, -100.2, 65.6, -98.6, 65.6, -97.1, 65.6, -95.6, 65.6, -94, 65.6, -92.5, 65.6, -90.9, 65.6, -89.4, + 65.6, -87.9, 65.6, -74, 65.6, -72.4, 65.6, -70.9, 65.6, -69.4, 65.6, -64.7, 65.6, -63.2, 65.6, -52.4, 65.6, -50.9, + 65.6, -49.3, 65.6, -47.8, 65.6, -46.2, 65.6, -44.7, 65.6, -43.2, 65.6, -41.6, 65.6, -40.1, 65.6, -23.1, 65.6, -21.6, + 65.6, -20, 65.6, -18.5, 65.6, -17, 65.6, -15.4, 65.6, 12.3, 65.6, 13.9, 65.6, 15.4, 65.6, 17, 65.6, 18.5, 65.6, 20, + 65.6, 21.6, 65.6, 26.2, 65.6, 27.7, 65.6, 29.3, 65.6, 30.8, 65.6, 32.4, 65.6, 33.9, 65.6, 40.1, 65.6, 41.6, 65.6, + 43.2, 65.6, 44.7, 65.6, 46.2, 65.6, 47.8, 65.6, 49.3, 65.6, 50.9, 65.6, 52.4, 65.6, 53.9, 65.6, 55.5, 65.6, 57, 65.6, + 58.6, 65.6, 60.1, 65.6, 61.7, 65.6, 63.2, 65.6, 64.7, 65.6, 66.3, 65.6, 67.8, 65.6, 69.4, 65.6, 70.9, 65.6, 72.4, + 65.6, 74, 65.6, 75.5, 65.6, 77.1, 65.6, 78.6, 65.6, 80.1, 65.6, 81.7, 65.6, 83.2, 65.6, 84.8, 65.6, 86.3, 65.6, 87.9, + 65.6, 89.4, 65.6, 90.9, 65.6, 92.5, 65.6, 94, 65.6, 95.6, 65.6, 97.1, 65.6, 98.6, 65.6, 100.2, 65.6, 101.7, 65.6, + 103.3, 65.6, 104.8, 65.6, 106.3, 65.6, 107.9, 65.6, 109.4, 65.6, 111, 65.6, 112.5, 65.6, 114.1, 65.6, 115.6, 65.6, + 117.1, 65.6, 118.7, 65.6, 120.2, 65.6, 121.8, 65.6, 123.3, 65.6, 124.8, 65.6, 126.4, 65.6, 127.9, 65.6, 129.5, 65.6, + 131, 65.6, 132.6, 65.6, 134.1, 65.6, 135.6, 65.6, 137.2, 65.6, 138.7, 65.6, 140.3, 65.6, 141.8, 65.6, 143.3, 65.6, + 144.9, 65.6, 146.4, 65.6, 148, 65.6, 149.5, 65.6, 151, 65.6, 152.6, 65.6, 154.1, 65.6, 155.7, 65.6, 157.2, 65.6, + 158.8, 65.6, 160.3, 65.6, 161.8, 65.6, 163.4, 65.6, 164.9, 65.6, 166.5, 65, -165.7, 65, -164.1, 65, -162.6, 65, + -161.1, 65, -159.5, 65, -158, 65, -156.4, 65, -154.9, 65, -153.4, 65, -151.8, 65, -150.3, 65, -148.7, 65, -147.2, 65, + -145.7, 65, -144.1, 65, -142.6, 65, -141, 65, -139.5, 65, -137.9, 65, -136.4, 65, -134.9, 65, -133.3, 65, -131.8, 65, + -130.2, 65, -128.7, 65, -127.2, 65, -125.6, 65, -124.1, 65, -122.5, 65, -121, 65, -119.4, 65, -117.9, 65, -116.4, 65, + -114.8, 65, -113.3, 65, -111.7, 65, -110.2, 65, -108.7, 65, -107.1, 65, -105.6, 65, -104, 65, -102.5, 65, -101, 65, + -99.4, 65, -97.9, 65, -96.3, 65, -94.8, 65, -93.2, 65, -91.7, 65, -90.2, 65, -88.6, 65, -85.5, 65, -84, 65, -77.8, 65, + -76.3, 65, -74.8, 65, -73.2, 65, -71.7, 65, -70.1, 65, -68.6, 65, -67, 65, -64, 65, -51.6, 65, -50.1, 65, -48.6, 65, + -47, 65, -45.5, 65, -43.9, 65, -42.4, 65, -40.8, 65, -22.3, 65, -20.8, 65, -19.3, 65, -17.7, 65, -16.2, 65, -14.6, 65, + 11.6, 65, 13.1, 65, 14.6, 65, 16.2, 65, 17.7, 65, 19.3, 65, 20.8, 65, 25.4, 65, 27, 65, 28.5, 65, 30.1, 65, 31.6, 65, + 33.1, 65, 34.7, 65, 40.8, 65, 42.4, 65, 43.9, 65, 45.5, 65, 47, 65, 48.6, 65, 50.1, 65, 51.6, 65, 53.2, 65, 54.7, 65, + 56.3, 65, 57.8, 65, 59.3, 65, 60.9, 65, 62.4, 65, 64, 65, 65.5, 65, 67, 65, 68.6, 65, 70.1, 65, 71.7, 65, 73.2, 65, + 74.8, 65, 76.3, 65, 77.8, 65, 79.4, 65, 80.9, 65, 82.5, 65, 84, 65, 85.5, 65, 87.1, 65, 88.6, 65, 90.2, 65, 91.7, 65, + 93.2, 65, 94.8, 65, 96.3, 65, 97.9, 65, 99.4, 65, 101, 65, 102.5, 65, 104, 65, 105.6, 65, 107.1, 65, 108.7, 65, 110.2, + 65, 111.7, 65, 113.3, 65, 114.8, 65, 116.4, 65, 117.9, 65, 119.4, 65, 121, 65, 122.5, 65, 124.1, 65, 125.6, 65, 127.2, + 65, 128.7, 65, 130.2, 65, 131.8, 65, 133.3, 65, 134.9, 65, 136.4, 65, 137.9, 65, 139.5, 65, 141, 65, 142.6, 65, 144.1, + 65, 145.7, 65, 147.2, 65, 148.7, 65, 150.3, 65, 151.8, 65, 153.4, 65, 154.9, 65, 156.4, 65, 158, 65, 159.5, 65, 161.1, + 65, 162.6, 65, 164.1, 65, 165.7, 65, 167.2, 64.5, -164.9, 64.5, -160.3, 64.5, -158.8, 64.5, -157.2, 64.5, -155.7, + 64.5, -154.1, 64.5, -152.6, 64.5, -151, 64.5, -149.5, 64.5, -148, 64.5, -146.4, 64.5, -144.9, 64.5, -143.3, 64.5, + -141.8, 64.5, -140.3, 64.5, -138.7, 64.5, -137.2, 64.5, -135.6, 64.5, -134.1, 64.5, -132.6, 64.5, -131, 64.5, -129.5, + 64.5, -127.9, 64.5, -126.4, 64.5, -124.8, 64.5, -123.3, 64.5, -121.8, 64.5, -120.2, 64.5, -118.7, 64.5, -117.1, 64.5, + -115.6, 64.5, -114.1, 64.5, -112.5, 64.5, -111, 64.5, -109.4, 64.5, -107.9, 64.5, -106.3, 64.5, -104.8, 64.5, -103.3, + 64.5, -101.7, 64.5, -100.2, 64.5, -98.6, 64.5, -97.1, 64.5, -95.6, 64.5, -94, 64.5, -92.5, 64.5, -90.9, 64.5, -89.4, + 64.5, -84.8, 64.5, -83.2, 64.5, -81.7, 64.5, -77.1, 64.5, -75.5, 64.5, -74, 64.5, -72.4, 64.5, -70.9, 64.5, -69.4, + 64.5, -67.8, 64.5, -66.3, 64.5, -50.9, 64.5, -49.3, 64.5, -47.8, 64.5, -46.2, 64.5, -44.7, 64.5, -43.2, 64.5, -41.6, + 64.5, -21.6, 64.5, -20, 64.5, -18.5, 64.5, -17, 64.5, -15.4, 64.5, 10.8, 64.5, 12.3, 64.5, 13.9, 64.5, 15.4, 64.5, 17, + 64.5, 18.5, 64.5, 20, 64.5, 24.7, 64.5, 26.2, 64.5, 27.7, 64.5, 29.3, 64.5, 30.8, 64.5, 32.4, 64.5, 33.9, 64.5, 37, + 64.5, 38.5, 64.5, 40.1, 64.5, 41.6, 64.5, 43.2, 64.5, 44.7, 64.5, 46.2, 64.5, 47.8, 64.5, 49.3, 64.5, 50.9, 64.5, + 52.4, 64.5, 53.9, 64.5, 55.5, 64.5, 57, 64.5, 58.6, 64.5, 60.1, 64.5, 61.7, 64.5, 63.2, 64.5, 64.7, 64.5, 66.3, 64.5, + 67.8, 64.5, 69.4, 64.5, 70.9, 64.5, 72.4, 64.5, 74, 64.5, 75.5, 64.5, 77.1, 64.5, 78.6, 64.5, 80.1, 64.5, 81.7, 64.5, + 83.2, 64.5, 84.8, 64.5, 86.3, 64.5, 87.9, 64.5, 89.4, 64.5, 90.9, 64.5, 92.5, 64.5, 94, 64.5, 95.6, 64.5, 97.1, 64.5, + 98.6, 64.5, 100.2, 64.5, 101.7, 64.5, 103.3, 64.5, 104.8, 64.5, 106.3, 64.5, 107.9, 64.5, 109.4, 64.5, 111, 64.5, + 112.5, 64.5, 114.1, 64.5, 115.6, 64.5, 117.1, 64.5, 118.7, 64.5, 120.2, 64.5, 121.8, 64.5, 123.3, 64.5, 124.8, 64.5, + 126.4, 64.5, 127.9, 64.5, 129.5, 64.5, 131, 64.5, 132.6, 64.5, 134.1, 64.5, 135.6, 64.5, 137.2, 64.5, 138.7, 64.5, + 140.3, 64.5, 141.8, 64.5, 143.3, 64.5, 144.9, 64.5, 146.4, 64.5, 148, 64.5, 149.5, 64.5, 151, 64.5, 152.6, 64.5, + 154.1, 64.5, 155.7, 64.5, 157.2, 64.5, 158.8, 64.5, 160.3, 64.5, 161.8, 64.5, 163.4, 64.5, 164.9, 64.5, 166.5, 63.9, + -159.5, 63.9, -158, 63.9, -156.4, 63.9, -154.9, 63.9, -153.4, 63.9, -151.8, 63.9, -150.3, 63.9, -148.7, 63.9, -147.2, + 63.9, -145.7, 63.9, -144.1, 63.9, -142.6, 63.9, -141, 63.9, -139.5, 63.9, -137.9, 63.9, -136.4, 63.9, -134.9, 63.9, + -133.3, 63.9, -131.8, 63.9, -130.2, 63.9, -128.7, 63.9, -127.2, 63.9, -125.6, 63.9, -124.1, 63.9, -122.5, 63.9, -121, + 63.9, -119.4, 63.9, -117.9, 63.9, -116.4, 63.9, -114.8, 63.9, -113.3, 63.9, -111.7, 63.9, -110.2, 63.9, -108.7, 63.9, + -107.1, 63.9, -105.6, 63.9, -104, 63.9, -102.5, 63.9, -101, 63.9, -99.4, 63.9, -97.9, 63.9, -96.3, 63.9, -94.8, 63.9, + -93.2, 63.9, -91.7, 63.9, -85.5, 63.9, -84, 63.9, -82.5, 63.9, -80.9, 63.9, -71.7, 63.9, -70.1, 63.9, -68.6, 63.9, + -67, 63.9, -65.5, 63.9, -51.6, 63.9, -50.1, 63.9, -48.6, 63.9, -47, 63.9, -45.5, 63.9, -43.9, 63.9, -42.4, 63.9, + -20.8, 63.9, -19.3, 63.9, -17.7, 63.9, 10, 63.9, 11.6, 63.9, 13.1, 63.9, 14.6, 63.9, 16.2, 63.9, 17.7, 63.9, 19.3, + 63.9, 23.9, 63.9, 25.4, 63.9, 27, 63.9, 28.5, 63.9, 30.1, 63.9, 31.6, 63.9, 33.1, 63.9, 34.7, 63.9, 36.2, 63.9, 37.8, + 63.9, 39.3, 63.9, 40.8, 63.9, 42.4, 63.9, 43.9, 63.9, 45.5, 63.9, 47, 63.9, 48.6, 63.9, 50.1, 63.9, 51.6, 63.9, 53.2, + 63.9, 54.7, 63.9, 56.3, 63.9, 57.8, 63.9, 59.3, 63.9, 60.9, 63.9, 62.4, 63.9, 64, 63.9, 65.5, 63.9, 67, 63.9, 68.6, + 63.9, 70.1, 63.9, 71.7, 63.9, 73.2, 63.9, 74.8, 63.9, 76.3, 63.9, 77.8, 63.9, 79.4, 63.9, 80.9, 63.9, 82.5, 63.9, 84, + 63.9, 85.5, 63.9, 87.1, 63.9, 88.6, 63.9, 90.2, 63.9, 91.7, 63.9, 93.2, 63.9, 94.8, 63.9, 96.3, 63.9, 97.9, 63.9, + 99.4, 63.9, 101, 63.9, 102.5, 63.9, 104, 63.9, 105.6, 63.9, 107.1, 63.9, 108.7, 63.9, 110.2, 63.9, 111.7, 63.9, 113.3, + 63.9, 114.8, 63.9, 116.4, 63.9, 117.9, 63.9, 119.4, 63.9, 121, 63.9, 122.5, 63.9, 124.1, 63.9, 125.6, 63.9, 127.2, + 63.9, 128.7, 63.9, 130.2, 63.9, 131.8, 63.9, 133.3, 63.9, 134.9, 63.9, 136.4, 63.9, 137.9, 63.9, 139.5, 63.9, 141, + 63.9, 142.6, 63.9, 144.1, 63.9, 145.7, 63.9, 147.2, 63.9, 148.7, 63.9, 150.3, 63.9, 151.8, 63.9, 153.4, 63.9, 154.9, + 63.9, 156.4, 63.9, 158, 63.9, 159.5, 63.9, 161.1, 63.9, 162.6, 63.9, 164.1, 63.9, 165.7, 63.9, 167.2, 63.3, -161.8, + 63.3, -160.3, 63.3, -158.8, 63.3, -157.2, 63.3, -155.7, 63.3, -154.1, 63.3, -152.6, 63.3, -151, 63.3, -149.5, 63.3, + -148, 63.3, -146.4, 63.3, -144.9, 63.3, -143.3, 63.3, -141.8, 63.3, -140.3, 63.3, -138.7, 63.3, -137.2, 63.3, -135.6, + 63.3, -134.1, 63.3, -132.6, 63.3, -131, 63.3, -129.5, 63.3, -127.9, 63.3, -126.4, 63.3, -124.8, 63.3, -123.3, 63.3, + -121.8, 63.3, -120.2, 63.3, -118.7, 63.3, -117.1, 63.3, -115.6, 63.3, -114.1, 63.3, -112.5, 63.3, -111, 63.3, -109.4, + 63.3, -107.9, 63.3, -106.3, 63.3, -104.8, 63.3, -103.3, 63.3, -101.7, 63.3, -100.2, 63.3, -98.6, 63.3, -97.1, 63.3, + -95.6, 63.3, -94, 63.3, -92.5, 63.3, -90.9, 63.3, -70.9, 63.3, -69.4, 63.3, -66.3, 63.3, -64.7, 63.3, -50.9, 63.3, + -49.3, 63.3, -47.8, 63.3, -46.2, 63.3, -44.7, 63.3, -43.2, 63.3, -41.6, 63.3, 9.2, 63.3, 10.8, 63.3, 12.3, 63.3, 13.9, + 63.3, 15.4, 63.3, 17, 63.3, 18.5, 63.3, 23.1, 63.3, 24.7, 63.3, 26.2, 63.3, 27.7, 63.3, 29.3, 63.3, 30.8, 63.3, 32.4, + 63.3, 33.9, 63.3, 35.4, 63.3, 37, 63.3, 38.5, 63.3, 40.1, 63.3, 41.6, 63.3, 43.2, 63.3, 44.7, 63.3, 46.2, 63.3, 47.8, + 63.3, 49.3, 63.3, 50.9, 63.3, 52.4, 63.3, 53.9, 63.3, 55.5, 63.3, 57, 63.3, 58.6, 63.3, 60.1, 63.3, 61.7, 63.3, 63.2, + 63.3, 64.7, 63.3, 66.3, 63.3, 67.8, 63.3, 69.4, 63.3, 70.9, 63.3, 72.4, 63.3, 74, 63.3, 75.5, 63.3, 77.1, 63.3, 78.6, + 63.3, 80.1, 63.3, 81.7, 63.3, 83.2, 63.3, 84.8, 63.3, 86.3, 63.3, 87.9, 63.3, 89.4, 63.3, 90.9, 63.3, 92.5, 63.3, 94, + 63.3, 95.6, 63.3, 97.1, 63.3, 98.6, 63.3, 100.2, 63.3, 101.7, 63.3, 103.3, 63.3, 104.8, 63.3, 106.3, 63.3, 107.9, + 63.3, 109.4, 63.3, 111, 63.3, 112.5, 63.3, 114.1, 63.3, 115.6, 63.3, 117.1, 63.3, 118.7, 63.3, 120.2, 63.3, 121.8, + 63.3, 123.3, 63.3, 124.8, 63.3, 126.4, 63.3, 127.9, 63.3, 129.5, 63.3, 131, 63.3, 132.6, 63.3, 134.1, 63.3, 135.6, + 63.3, 137.2, 63.3, 138.7, 63.3, 140.3, 63.3, 141.8, 63.3, 143.3, 63.3, 144.9, 63.3, 146.4, 63.3, 148, 63.3, 149.5, + 63.3, 151, 63.3, 152.6, 63.3, 154.1, 63.3, 155.7, 63.3, 157.2, 63.3, 158.8, 63.3, 160.3, 63.3, 161.8, 63.3, 163.4, + 63.3, 164.9, 63.3, 166.5, 62.7, -164.1, 62.7, -162.6, 62.7, -161.1, 62.7, -159.5, 62.7, -158, 62.7, -156.4, 62.7, + -154.9, 62.7, -153.4, 62.7, -151.8, 62.7, -150.3, 62.7, -148.7, 62.7, -147.2, 62.7, -145.7, 62.7, -144.1, 62.7, + -142.6, 62.7, -141, 62.7, -139.5, 62.7, -137.9, 62.7, -136.4, 62.7, -134.9, 62.7, -133.3, 62.7, -131.8, 62.7, -130.2, + 62.7, -128.7, 62.7, -127.2, 62.7, -125.6, 62.7, -124.1, 62.7, -122.5, 62.7, -121, 62.7, -119.4, 62.7, -117.9, 62.7, + -116.4, 62.7, -114.8, 62.7, -113.3, 62.7, -111.7, 62.7, -110.2, 62.7, -108.7, 62.7, -107.1, 62.7, -105.6, 62.7, -104, + 62.7, -102.5, 62.7, -101, 62.7, -99.4, 62.7, -97.9, 62.7, -96.3, 62.7, -94.8, 62.7, -93.2, 62.7, -82.5, 62.7, -70.1, + 62.7, -68.6, 62.7, -67, 62.7, -50.1, 62.7, -48.6, 62.7, -47, 62.7, -45.5, 62.7, -43.9, 62.7, 6.9, 62.7, 8.5, 62.7, 10, + 62.7, 11.6, 62.7, 13.1, 62.7, 14.6, 62.7, 16.2, 62.7, 17.7, 62.7, 22.3, 62.7, 23.9, 62.7, 25.4, 62.7, 27, 62.7, 28.5, + 62.7, 30.1, 62.7, 31.6, 62.7, 33.1, 62.7, 34.7, 62.7, 36.2, 62.7, 37.8, 62.7, 39.3, 62.7, 40.8, 62.7, 42.4, 62.7, + 43.9, 62.7, 45.5, 62.7, 47, 62.7, 48.6, 62.7, 50.1, 62.7, 51.6, 62.7, 53.2, 62.7, 54.7, 62.7, 56.3, 62.7, 57.8, 62.7, + 59.3, 62.7, 60.9, 62.7, 62.4, 62.7, 64, 62.7, 65.5, 62.7, 67, 62.7, 68.6, 62.7, 70.1, 62.7, 71.7, 62.7, 73.2, 62.7, + 74.8, 62.7, 76.3, 62.7, 77.8, 62.7, 79.4, 62.7, 80.9, 62.7, 82.5, 62.7, 84, 62.7, 85.5, 62.7, 87.1, 62.7, 88.6, 62.7, + 90.2, 62.7, 91.7, 62.7, 93.2, 62.7, 94.8, 62.7, 96.3, 62.7, 97.9, 62.7, 99.4, 62.7, 101, 62.7, 102.5, 62.7, 104, 62.7, + 105.6, 62.7, 107.1, 62.7, 108.7, 62.7, 110.2, 62.7, 111.7, 62.7, 113.3, 62.7, 114.8, 62.7, 116.4, 62.7, 117.9, 62.7, + 119.4, 62.7, 121, 62.7, 122.5, 62.7, 124.1, 62.7, 125.6, 62.7, 127.2, 62.7, 128.7, 62.7, 130.2, 62.7, 131.8, 62.7, + 133.3, 62.7, 134.9, 62.7, 136.4, 62.7, 137.9, 62.7, 139.5, 62.7, 141, 62.7, 142.6, 62.7, 144.1, 62.7, 145.7, 62.7, + 147.2, 62.7, 148.7, 62.7, 150.3, 62.7, 151.8, 62.7, 153.4, 62.7, 154.9, 62.7, 156.4, 62.7, 158, 62.7, 159.5, 62.7, + 161.1, 62.7, 162.6, 62.7, 164.1, 62.7, 165.7, 62.7, 167.2, 62.1, -164.9, 62.1, -163.4, 62.1, -161.8, 62.1, -160.3, + 62.1, -158.8, 62.1, -157.2, 62.1, -155.7, 62.1, -154.1, 62.1, -152.6, 62.1, -151, 62.1, -149.5, 62.1, -148, 62.1, + -146.4, 62.1, -144.9, 62.1, -143.3, 62.1, -141.8, 62.1, -140.3, 62.1, -138.7, 62.1, -137.2, 62.1, -135.6, 62.1, + -134.1, 62.1, -132.6, 62.1, -131, 62.1, -129.5, 62.1, -127.9, 62.1, -126.4, 62.1, -124.8, 62.1, -123.3, 62.1, -121.8, + 62.1, -120.2, 62.1, -118.7, 62.1, -117.1, 62.1, -115.6, 62.1, -114.1, 62.1, -112.5, 62.1, -111, 62.1, -109.4, 62.1, + -107.9, 62.1, -106.3, 62.1, -104.8, 62.1, -103.3, 62.1, -101.7, 62.1, -100.2, 62.1, -98.6, 62.1, -97.1, 62.1, -95.6, + 62.1, -94, 62.1, -80.1, 62.1, -77.1, 62.1, -75.5, 62.1, -74, 62.1, -66.3, 62.1, -49.3, 62.1, -47.8, 62.1, -46.2, 62.1, + -44.7, 62.1, -43.2, 62.1, 6.2, 62.1, 7.7, 62.1, 9.2, 62.1, 10.8, 62.1, 12.3, 62.1, 13.9, 62.1, 15.4, 62.1, 17, 62.1, + 21.6, 62.1, 23.1, 62.1, 24.7, 62.1, 26.2, 62.1, 27.7, 62.1, 29.3, 62.1, 30.8, 62.1, 32.4, 62.1, 33.9, 62.1, 35.4, + 62.1, 37, 62.1, 38.5, 62.1, 40.1, 62.1, 41.6, 62.1, 43.2, 62.1, 44.7, 62.1, 46.2, 62.1, 47.8, 62.1, 49.3, 62.1, 50.9, + 62.1, 52.4, 62.1, 53.9, 62.1, 55.5, 62.1, 57, 62.1, 58.6, 62.1, 60.1, 62.1, 61.7, 62.1, 63.2, 62.1, 64.7, 62.1, 66.3, + 62.1, 67.8, 62.1, 69.4, 62.1, 70.9, 62.1, 72.4, 62.1, 74, 62.1, 75.5, 62.1, 77.1, 62.1, 78.6, 62.1, 80.1, 62.1, 81.7, + 62.1, 83.2, 62.1, 84.8, 62.1, 86.3, 62.1, 87.9, 62.1, 89.4, 62.1, 90.9, 62.1, 92.5, 62.1, 94, 62.1, 95.6, 62.1, 97.1, + 62.1, 98.6, 62.1, 100.2, 62.1, 101.7, 62.1, 103.3, 62.1, 104.8, 62.1, 106.3, 62.1, 107.9, 62.1, 109.4, 62.1, 111, + 62.1, 112.5, 62.1, 114.1, 62.1, 115.6, 62.1, 117.1, 62.1, 118.7, 62.1, 120.2, 62.1, 121.8, 62.1, 123.3, 62.1, 124.8, + 62.1, 126.4, 62.1, 127.9, 62.1, 129.5, 62.1, 131, 62.1, 132.6, 62.1, 134.1, 62.1, 135.6, 62.1, 137.2, 62.1, 138.7, + 62.1, 140.3, 62.1, 141.8, 62.1, 143.3, 62.1, 144.9, 62.1, 146.4, 62.1, 148, 62.1, 149.5, 62.1, 151, 62.1, 152.6, 62.1, + 154.1, 62.1, 155.7, 62.1, 157.2, 62.1, 158.8, 62.1, 160.3, 62.1, 161.8, 62.1, 164.9, 62.1, 166.5, 61.4, -165.7, 61.4, + -164.1, 61.4, -162.6, 61.4, -161.1, 61.4, -159.5, 61.4, -158, 61.4, -156.4, 61.4, -154.9, 61.4, -153.4, 61.4, -151.8, + 61.4, -150.3, 61.4, -148.7, 61.4, -147.2, 61.4, -145.7, 61.4, -144.1, 61.4, -142.6, 61.4, -141, 61.4, -139.5, 61.4, + -137.9, 61.4, -136.4, 61.4, -134.9, 61.4, -133.3, 61.4, -131.8, 61.4, -130.2, 61.4, -128.7, 61.4, -127.2, 61.4, + -125.6, 61.4, -124.1, 61.4, -122.5, 61.4, -121, 61.4, -119.4, 61.4, -117.9, 61.4, -116.4, 61.4, -114.8, 61.4, -113.3, + 61.4, -111.7, 61.4, -110.2, 61.4, -108.7, 61.4, -107.1, 61.4, -105.6, 61.4, -104, 61.4, -102.5, 61.4, -101, 61.4, + -99.4, 61.4, -97.9, 61.4, -96.3, 61.4, -94.8, 61.4, -77.8, 61.4, -76.3, 61.4, -74.8, 61.4, -73.2, 61.4, -71.7, 61.4, + -48.6, 61.4, -47, 61.4, -45.5, 61.4, -43.9, 61.4, 5.4, 61.4, 6.9, 61.4, 8.5, 61.4, 10, 61.4, 11.6, 61.4, 13.1, 61.4, + 14.6, 61.4, 16.2, 61.4, 22.3, 61.4, 23.9, 61.4, 25.4, 61.4, 27, 61.4, 28.5, 61.4, 30.1, 61.4, 31.6, 61.4, 33.1, 61.4, + 34.7, 61.4, 36.2, 61.4, 37.8, 61.4, 39.3, 61.4, 40.8, 61.4, 42.4, 61.4, 43.9, 61.4, 45.5, 61.4, 47, 61.4, 48.6, 61.4, + 50.1, 61.4, 51.6, 61.4, 53.2, 61.4, 54.7, 61.4, 56.3, 61.4, 57.8, 61.4, 59.3, 61.4, 60.9, 61.4, 62.4, 61.4, 64, 61.4, + 65.5, 61.4, 67, 61.4, 68.6, 61.4, 70.1, 61.4, 71.7, 61.4, 73.2, 61.4, 74.8, 61.4, 76.3, 61.4, 77.8, 61.4, 79.4, 61.4, + 80.9, 61.4, 82.5, 61.4, 84, 61.4, 85.5, 61.4, 87.1, 61.4, 88.6, 61.4, 90.2, 61.4, 91.7, 61.4, 93.2, 61.4, 94.8, 61.4, + 96.3, 61.4, 97.9, 61.4, 99.4, 61.4, 101, 61.4, 102.5, 61.4, 104, 61.4, 105.6, 61.4, 107.1, 61.4, 108.7, 61.4, 110.2, + 61.4, 111.7, 61.4, 113.3, 61.4, 114.8, 61.4, 116.4, 61.4, 117.9, 61.4, 119.4, 61.4, 121, 61.4, 122.5, 61.4, 124.1, + 61.4, 125.6, 61.4, 127.2, 61.4, 128.7, 61.4, 130.2, 61.4, 131.8, 61.4, 133.3, 61.4, 134.9, 61.4, 136.4, 61.4, 137.9, + 61.4, 139.5, 61.4, 141, 61.4, 142.6, 61.4, 144.1, 61.4, 145.7, 61.4, 147.2, 61.4, 148.7, 61.4, 150.3, 61.4, 151.8, + 61.4, 153.4, 61.4, 154.9, 61.4, 156.4, 61.4, 161.1, 61.4, 164.1, 61.4, 165.7, 61.4, 167.2, 60.8, -164.9, 60.8, -163.4, + 60.8, -161.8, 60.8, -160.3, 60.8, -158.8, 60.8, -157.2, 60.8, -155.7, 60.8, -154.1, 60.8, -152.6, 60.8, -151, 60.8, + -149.5, 60.8, -148, 60.8, -146.4, 60.8, -144.9, 60.8, -143.3, 60.8, -141.8, 60.8, -140.3, 60.8, -138.7, 60.8, -137.2, + 60.8, -135.6, 60.8, -134.1, 60.8, -132.6, 60.8, -131, 60.8, -129.5, 60.8, -127.9, 60.8, -126.4, 60.8, -124.8, 60.8, + -123.3, 60.8, -121.8, 60.8, -120.2, 60.8, -118.7, 60.8, -117.1, 60.8, -115.6, 60.8, -114.1, 60.8, -112.5, 60.8, -111, + 60.8, -109.4, 60.8, -107.9, 60.8, -106.3, 60.8, -104.8, 60.8, -103.3, 60.8, -101.7, 60.8, -100.2, 60.8, -98.6, 60.8, + -97.1, 60.8, -95.6, 60.8, -77.1, 60.8, -75.5, 60.8, -74, 60.8, -72.4, 60.8, -70.9, 60.8, -44.7, 60.8, -43.2, 60.8, + 6.2, 60.8, 7.7, 60.8, 9.2, 60.8, 10.8, 60.8, 12.3, 60.8, 13.9, 60.8, 15.4, 60.8, 17, 60.8, 21.6, 60.8, 23.1, 60.8, + 24.7, 60.8, 26.2, 60.8, 27.7, 60.8, 29.3, 60.8, 30.8, 60.8, 32.4, 60.8, 33.9, 60.8, 35.4, 60.8, 37, 60.8, 38.5, 60.8, + 40.1, 60.8, 41.6, 60.8, 43.2, 60.8, 44.7, 60.8, 46.2, 60.8, 47.8, 60.8, 49.3, 60.8, 50.9, 60.8, 52.4, 60.8, 53.9, + 60.8, 55.5, 60.8, 57, 60.8, 58.6, 60.8, 60.1, 60.8, 61.7, 60.8, 63.2, 60.8, 64.7, 60.8, 66.3, 60.8, 67.8, 60.8, 69.4, + 60.8, 70.9, 60.8, 72.4, 60.8, 74, 60.8, 75.5, 60.8, 77.1, 60.8, 78.6, 60.8, 80.1, 60.8, 81.7, 60.8, 83.2, 60.8, 84.8, + 60.8, 86.3, 60.8, 87.9, 60.8, 89.4, 60.8, 90.9, 60.8, 92.5, 60.8, 94, 60.8, 95.6, 60.8, 97.1, 60.8, 98.6, 60.8, 100.2, + 60.8, 101.7, 60.8, 103.3, 60.8, 104.8, 60.8, 106.3, 60.8, 107.9, 60.8, 109.4, 60.8, 111, 60.8, 112.5, 60.8, 114.1, + 60.8, 115.6, 60.8, 117.1, 60.8, 118.7, 60.8, 120.2, 60.8, 121.8, 60.8, 123.3, 60.8, 124.8, 60.8, 126.4, 60.8, 127.9, + 60.8, 129.5, 60.8, 131, 60.8, 132.6, 60.8, 134.1, 60.8, 135.6, 60.8, 137.2, 60.8, 138.7, 60.8, 140.3, 60.8, 141.8, + 60.8, 143.3, 60.8, 144.9, 60.8, 146.4, 60.8, 148, 60.8, 149.5, 60.8, 151, 60.8, 152.6, 60.8, 154.1, 60.8, 155.7, 60.8, + 160.3, 60.8, 163.4, 60.8, 164.9, 60.8, 166.5, 60.1, -167.2, 60.1, -165.7, 60.1, -164.1, 60.1, -162.6, 60.1, -161.1, + 60.1, -159.5, 60.1, -158, 60.1, -156.4, 60.1, -154.9, 60.1, -153.4, 60.1, -150.3, 60.1, -148.7, 60.1, -144.1, 60.1, + -142.6, 60.1, -141, 60.1, -139.5, 60.1, -137.9, 60.1, -136.4, 60.1, -134.9, 60.1, -133.3, 60.1, -131.8, 60.1, -130.2, + 60.1, -128.7, 60.1, -127.2, 60.1, -125.6, 60.1, -124.1, 60.1, -122.5, 60.1, -121, 60.1, -119.4, 60.1, -117.9, 60.1, + -116.4, 60.1, -114.8, 60.1, -113.3, 60.1, -111.7, 60.1, -110.2, 60.1, -108.7, 60.1, -107.1, 60.1, -105.6, 60.1, -104, + 60.1, -102.5, 60.1, -101, 60.1, -99.4, 60.1, -97.9, 60.1, -96.3, 60.1, -94.8, 60.1, -76.3, 60.1, -74.8, 60.1, -73.2, + 60.1, -71.7, 60.1, -70.1, 60.1, -43.9, 60.1, 5.4, 60.1, 6.9, 60.1, 8.5, 60.1, 10, 60.1, 11.6, 60.1, 13.1, 60.1, 14.6, + 60.1, 16.2, 60.1, 17.7, 60.1, 23.9, 60.1, 30.1, 60.1, 31.6, 60.1, 33.1, 60.1, 34.7, 60.1, 36.2, 60.1, 37.8, 60.1, + 39.3, 60.1, 40.8, 60.1, 42.4, 60.1, 43.9, 60.1, 45.5, 60.1, 47, 60.1, 48.6, 60.1, 50.1, 60.1, 51.6, 60.1, 53.2, 60.1, + 54.7, 60.1, 56.3, 60.1, 57.8, 60.1, 59.3, 60.1, 60.9, 60.1, 62.4, 60.1, 64, 60.1, 65.5, 60.1, 67, 60.1, 68.6, 60.1, + 70.1, 60.1, 71.7, 60.1, 73.2, 60.1, 74.8, 60.1, 76.3, 60.1, 77.8, 60.1, 79.4, 60.1, 80.9, 60.1, 82.5, 60.1, 84, 60.1, + 85.5, 60.1, 87.1, 60.1, 88.6, 60.1, 90.2, 60.1, 91.7, 60.1, 93.2, 60.1, 94.8, 60.1, 96.3, 60.1, 97.9, 60.1, 99.4, + 60.1, 101, 60.1, 102.5, 60.1, 104, 60.1, 105.6, 60.1, 107.1, 60.1, 108.7, 60.1, 110.2, 60.1, 111.7, 60.1, 113.3, 60.1, + 114.8, 60.1, 116.4, 60.1, 117.9, 60.1, 119.4, 60.1, 121, 60.1, 122.5, 60.1, 124.1, 60.1, 125.6, 60.1, 127.2, 60.1, + 128.7, 60.1, 130.2, 60.1, 131.8, 60.1, 133.3, 60.1, 134.9, 60.1, 136.4, 60.1, 137.9, 60.1, 139.5, 60.1, 141, 60.1, + 142.6, 60.1, 144.1, 60.1, 145.7, 60.1, 147.2, 60.1, 148.7, 60.1, 150.3, 60.1, 151.8, 60.1, 153.4, 60.1, 162.6, 60.1, + 164.1, 60.1, 165.7, 60.1, 167.2, 59.4, -161.8, 59.4, -160.3, 59.4, -158.8, 59.4, -157.2, 59.4, -155.7, 59.4, -154.1, + 59.4, -151, 59.4, -138.7, 59.4, -137.2, 59.4, -135.6, 59.4, -134.1, 59.4, -132.6, 59.4, -131, 59.4, -129.5, 59.4, + -127.9, 59.4, -126.4, 59.4, -124.8, 59.4, -123.3, 59.4, -121.8, 59.4, -120.2, 59.4, -118.7, 59.4, -117.1, 59.4, + -115.6, 59.4, -114.1, 59.4, -112.5, 59.4, -111, 59.4, -109.4, 59.4, -107.9, 59.4, -106.3, 59.4, -104.8, 59.4, -103.3, + 59.4, -101.7, 59.4, -100.2, 59.4, -98.6, 59.4, -97.1, 59.4, -95.6, 59.4, -77.1, 59.4, -75.5, 59.4, -74, 59.4, -72.4, + 59.4, -70.9, 59.4, -64.7, 59.4, 6.2, 59.4, 7.7, 59.4, 9.2, 59.4, 10.8, 59.4, 12.3, 59.4, 13.9, 59.4, 15.4, 59.4, 17, + 59.4, 24.7, 59.4, 26.2, 59.4, 27.7, 59.4, 29.3, 59.4, 30.8, 59.4, 32.4, 59.4, 33.9, 59.4, 35.4, 59.4, 37, 59.4, 38.5, + 59.4, 40.1, 59.4, 41.6, 59.4, 43.2, 59.4, 44.7, 59.4, 46.2, 59.4, 47.8, 59.4, 49.3, 59.4, 50.9, 59.4, 52.4, 59.4, + 53.9, 59.4, 55.5, 59.4, 57, 59.4, 58.6, 59.4, 60.1, 59.4, 61.7, 59.4, 63.2, 59.4, 64.7, 59.4, 66.3, 59.4, 67.8, 59.4, + 69.4, 59.4, 70.9, 59.4, 72.4, 59.4, 74, 59.4, 75.5, 59.4, 77.1, 59.4, 78.6, 59.4, 80.1, 59.4, 81.7, 59.4, 83.2, 59.4, + 84.8, 59.4, 86.3, 59.4, 87.9, 59.4, 89.4, 59.4, 90.9, 59.4, 92.5, 59.4, 94, 59.4, 95.6, 59.4, 97.1, 59.4, 98.6, 59.4, + 100.2, 59.4, 101.7, 59.4, 103.3, 59.4, 104.8, 59.4, 106.3, 59.4, 107.9, 59.4, 109.4, 59.4, 111, 59.4, 112.5, 59.4, + 114.1, 59.4, 115.6, 59.4, 117.1, 59.4, 118.7, 59.4, 120.2, 59.4, 121.8, 59.4, 123.3, 59.4, 124.8, 59.4, 126.4, 59.4, + 127.9, 59.4, 129.5, 59.4, 131, 59.4, 132.6, 59.4, 134.1, 59.4, 135.6, 59.4, 137.2, 59.4, 138.7, 59.4, 140.3, 59.4, + 141.8, 59.4, 143.3, 59.4, 144.9, 59.4, 146.4, 59.4, 148, 59.4, 152.6, 59.4, 154.1, 59.4, 161.8, 58.8, -158, 58.8, + -156.4, 58.8, -154.9, 58.8, -137.9, 58.8, -136.4, 58.8, -134.9, 58.8, -133.3, 58.8, -131.8, 58.8, -130.2, 58.8, + -128.7, 58.8, -127.2, 58.8, -125.6, 58.8, -124.1, 58.8, -122.5, 58.8, -121, 58.8, -119.4, 58.8, -117.9, 58.8, -116.4, + 58.8, -114.8, 58.8, -113.3, 58.8, -111.7, 58.8, -110.2, 58.8, -108.7, 58.8, -107.1, 58.8, -105.6, 58.8, -104, 58.8, + -102.5, 58.8, -101, 58.8, -99.4, 58.8, -97.9, 58.8, -96.3, 58.8, -94.8, 58.8, -93.2, 58.8, -77.8, 58.8, -76.3, 58.8, + -74.8, 58.8, -73.2, 58.8, -71.7, 58.8, -70.1, 58.8, -68.6, 58.8, -65.5, 58.8, -64, 58.8, 6.9, 58.8, 8.5, 58.8, 11.6, + 58.8, 13.1, 58.8, 14.6, 58.8, 16.2, 58.8, 23.9, 58.8, 25.4, 58.8, 27, 58.8, 28.5, 58.8, 30.1, 58.8, 31.6, 58.8, 33.1, + 58.8, 34.7, 58.8, 36.2, 58.8, 37.8, 58.8, 39.3, 58.8, 40.8, 58.8, 42.4, 58.8, 43.9, 58.8, 45.5, 58.8, 47, 58.8, 48.6, + 58.8, 50.1, 58.8, 51.6, 58.8, 53.2, 58.8, 54.7, 58.8, 56.3, 58.8, 57.8, 58.8, 59.3, 58.8, 60.9, 58.8, 62.4, 58.8, 64, + 58.8, 65.5, 58.8, 67, 58.8, 68.6, 58.8, 70.1, 58.8, 71.7, 58.8, 73.2, 58.8, 74.8, 58.8, 76.3, 58.8, 77.8, 58.8, 79.4, + 58.8, 80.9, 58.8, 82.5, 58.8, 84, 58.8, 85.5, 58.8, 87.1, 58.8, 88.6, 58.8, 90.2, 58.8, 91.7, 58.8, 93.2, 58.8, 94.8, + 58.8, 96.3, 58.8, 97.9, 58.8, 99.4, 58.8, 101, 58.8, 102.5, 58.8, 104, 58.8, 105.6, 58.8, 107.1, 58.8, 108.7, 58.8, + 110.2, 58.8, 111.7, 58.8, 113.3, 58.8, 114.8, 58.8, 116.4, 58.8, 117.9, 58.8, 119.4, 58.8, 121, 58.8, 122.5, 58.8, + 124.1, 58.8, 125.6, 58.8, 127.2, 58.8, 128.7, 58.8, 130.2, 58.8, 131.8, 58.8, 133.3, 58.8, 134.9, 58.8, 136.4, 58.8, + 137.9, 58.8, 139.5, 58.8, 141, 58.8, 159.5, 58.8, 161.1, 58.8, 162.6, 58.1, -157.2, 58.1, -155.7, 58.1, -132.6, 58.1, + -131, 58.1, -129.5, 58.1, -127.9, 58.1, -126.4, 58.1, -124.8, 58.1, -123.3, 58.1, -121.8, 58.1, -120.2, 58.1, -118.7, + 58.1, -117.1, 58.1, -115.6, 58.1, -114.1, 58.1, -112.5, 58.1, -111, 58.1, -109.4, 58.1, -107.9, 58.1, -106.3, 58.1, + -104.8, 58.1, -103.3, 58.1, -101.7, 58.1, -100.2, 58.1, -98.6, 58.1, -97.1, 58.1, -95.6, 58.1, -94, 58.1, -77.1, 58.1, + -75.5, 58.1, -74, 58.1, -72.4, 58.1, -70.9, 58.1, -69.4, 58.1, -67.8, 58.1, -66.3, 58.1, -64.7, 58.1, -63.2, 58.1, + -4.6, 58.1, 12.3, 58.1, 13.9, 58.1, 15.4, 58.1, 24.7, 58.1, 26.2, 58.1, 27.7, 58.1, 29.3, 58.1, 30.8, 58.1, 32.4, + 58.1, 33.9, 58.1, 35.4, 58.1, 37, 58.1, 38.5, 58.1, 40.1, 58.1, 41.6, 58.1, 43.2, 58.1, 44.7, 58.1, 46.2, 58.1, 47.8, + 58.1, 49.3, 58.1, 50.9, 58.1, 52.4, 58.1, 53.9, 58.1, 55.5, 58.1, 57, 58.1, 58.6, 58.1, 60.1, 58.1, 61.7, 58.1, 63.2, + 58.1, 64.7, 58.1, 66.3, 58.1, 67.8, 58.1, 69.4, 58.1, 70.9, 58.1, 72.4, 58.1, 74, 58.1, 75.5, 58.1, 77.1, 58.1, 78.6, + 58.1, 80.1, 58.1, 81.7, 58.1, 83.2, 58.1, 84.8, 58.1, 86.3, 58.1, 87.9, 58.1, 89.4, 58.1, 90.9, 58.1, 92.5, 58.1, 94, + 58.1, 95.6, 58.1, 97.1, 58.1, 98.6, 58.1, 100.2, 58.1, 101.7, 58.1, 103.3, 58.1, 104.8, 58.1, 106.3, 58.1, 107.9, + 58.1, 109.4, 58.1, 111, 58.1, 112.5, 58.1, 114.1, 58.1, 115.6, 58.1, 117.1, 58.1, 118.7, 58.1, 120.2, 58.1, 121.8, + 58.1, 123.3, 58.1, 124.8, 58.1, 126.4, 58.1, 127.9, 58.1, 129.5, 58.1, 131, 58.1, 132.6, 58.1, 134.1, 58.1, 135.6, + 58.1, 137.2, 58.1, 138.7, 58.1, 140.3, 58.1, 158.8, 58.1, 160.3, 58.1, 161.8, 57.3, -158, 57.3, -156.4, 57.3, -153.4, + 57.3, -133.3, 57.3, -131.8, 57.3, -130.2, 57.3, -128.7, 57.3, -127.2, 57.3, -125.6, 57.3, -124.1, 57.3, -122.5, 57.3, + -121, 57.3, -119.4, 57.3, -117.9, 57.3, -116.4, 57.3, -114.8, 57.3, -113.3, 57.3, -111.7, 57.3, -110.2, 57.3, -108.7, + 57.3, -107.1, 57.3, -105.6, 57.3, -104, 57.3, -102.5, 57.3, -101, 57.3, -99.4, 57.3, -97.9, 57.3, -96.3, 57.3, -94.8, + 57.3, -93.2, 57.3, -76.3, 57.3, -74.8, 57.3, -73.2, 57.3, -71.7, 57.3, -70.1, 57.3, -68.6, 57.3, -67, 57.3, -65.5, + 57.3, -64, 57.3, -62.4, 57.3, -5.4, 57.3, -3.9, 57.3, -2.3, 57.3, 10, 57.3, 13.1, 57.3, 14.6, 57.3, 16.2, 57.3, 22.3, + 57.3, 25.4, 57.3, 27, 57.3, 28.5, 57.3, 30.1, 57.3, 31.6, 57.3, 33.1, 57.3, 34.7, 57.3, 36.2, 57.3, 37.8, 57.3, 39.3, + 57.3, 40.8, 57.3, 42.4, 57.3, 43.9, 57.3, 45.5, 57.3, 47, 57.3, 48.6, 57.3, 50.1, 57.3, 51.6, 57.3, 53.2, 57.3, 54.7, + 57.3, 56.3, 57.3, 57.8, 57.3, 59.3, 57.3, 60.9, 57.3, 62.4, 57.3, 64, 57.3, 65.5, 57.3, 67, 57.3, 68.6, 57.3, 70.1, + 57.3, 71.7, 57.3, 73.2, 57.3, 74.8, 57.3, 76.3, 57.3, 77.8, 57.3, 79.4, 57.3, 80.9, 57.3, 82.5, 57.3, 84, 57.3, 85.5, + 57.3, 87.1, 57.3, 88.6, 57.3, 90.2, 57.3, 91.7, 57.3, 93.2, 57.3, 94.8, 57.3, 96.3, 57.3, 97.9, 57.3, 99.4, 57.3, 101, + 57.3, 102.5, 57.3, 104, 57.3, 105.6, 57.3, 107.1, 57.3, 108.7, 57.3, 110.2, 57.3, 111.7, 57.3, 113.3, 57.3, 114.8, + 57.3, 116.4, 57.3, 117.9, 57.3, 119.4, 57.3, 121, 57.3, 122.5, 57.3, 124.1, 57.3, 125.6, 57.3, 127.2, 57.3, 128.7, + 57.3, 130.2, 57.3, 131.8, 57.3, 133.3, 57.3, 134.9, 57.3, 136.4, 57.3, 137.9, 57.3, 158, 57.3, 159.5, 57.3, 161.1, + 57.3, 162.6, 56.6, -158.8, 56.6, -132.6, 56.6, -131, 56.6, -129.5, 56.6, -127.9, 56.6, -126.4, 56.6, -124.8, 56.6, + -123.3, 56.6, -121.8, 56.6, -120.2, 56.6, -118.7, 56.6, -117.1, 56.6, -115.6, 56.6, -114.1, 56.6, -112.5, 56.6, -111, + 56.6, -109.4, 56.6, -107.9, 56.6, -106.3, 56.6, -104.8, 56.6, -103.3, 56.6, -101.7, 56.6, -100.2, 56.6, -98.6, 56.6, + -97.1, 56.6, -95.6, 56.6, -94, 56.6, -92.5, 56.6, -90.9, 56.6, -89.4, 56.6, -75.5, 56.6, -74, 56.6, -72.4, 56.6, + -70.9, 56.6, -69.4, 56.6, -67.8, 56.6, -66.3, 56.6, -64.7, 56.6, -63.2, 56.6, -61.7, 56.6, -4.6, 56.6, -3.1, 56.6, + 9.2, 56.6, 13.9, 56.6, 15.4, 56.6, 21.6, 56.6, 23.1, 56.6, 24.7, 56.6, 26.2, 56.6, 27.7, 56.6, 29.3, 56.6, 30.8, 56.6, + 32.4, 56.6, 33.9, 56.6, 35.4, 56.6, 37, 56.6, 38.5, 56.6, 40.1, 56.6, 41.6, 56.6, 43.2, 56.6, 44.7, 56.6, 46.2, 56.6, + 47.8, 56.6, 49.3, 56.6, 50.9, 56.6, 52.4, 56.6, 53.9, 56.6, 55.5, 56.6, 57, 56.6, 58.6, 56.6, 60.1, 56.6, 61.7, 56.6, + 63.2, 56.6, 64.7, 56.6, 66.3, 56.6, 67.8, 56.6, 69.4, 56.6, 70.9, 56.6, 72.4, 56.6, 74, 56.6, 75.5, 56.6, 77.1, 56.6, + 78.6, 56.6, 80.1, 56.6, 81.7, 56.6, 83.2, 56.6, 84.8, 56.6, 86.3, 56.6, 87.9, 56.6, 89.4, 56.6, 90.9, 56.6, 92.5, + 56.6, 94, 56.6, 95.6, 56.6, 97.1, 56.6, 98.6, 56.6, 100.2, 56.6, 101.7, 56.6, 103.3, 56.6, 104.8, 56.6, 106.3, 56.6, + 107.9, 56.6, 109.4, 56.6, 111, 56.6, 112.5, 56.6, 114.1, 56.6, 115.6, 56.6, 117.1, 56.6, 118.7, 56.6, 120.2, 56.6, + 121.8, 56.6, 123.3, 56.6, 124.8, 56.6, 126.4, 56.6, 127.9, 56.6, 129.5, 56.6, 131, 56.6, 132.6, 56.6, 134.1, 56.6, + 135.6, 56.6, 137.2, 56.6, 157.2, 56.6, 158.8, 56.6, 160.3, 56.6, 161.8, 55.9, -161.1, 55.9, -159.5, 55.9, -131.8, + 55.9, -130.2, 55.9, -128.7, 55.9, -127.2, 55.9, -125.6, 55.9, -124.1, 55.9, -122.5, 55.9, -121, 55.9, -119.4, 55.9, + -117.9, 55.9, -116.4, 55.9, -114.8, 55.9, -113.3, 55.9, -111.7, 55.9, -110.2, 55.9, -108.7, 55.9, -107.1, 55.9, + -105.6, 55.9, -104, 55.9, -102.5, 55.9, -101, 55.9, -99.4, 55.9, -97.9, 55.9, -96.3, 55.9, -94.8, 55.9, -93.2, 55.9, + -91.7, 55.9, -90.2, 55.9, -88.6, 55.9, -87.1, 55.9, -76.3, 55.9, -74.8, 55.9, -73.2, 55.9, -71.7, 55.9, -70.1, 55.9, + -68.6, 55.9, -67, 55.9, -65.5, 55.9, -64, 55.9, -62.4, 55.9, -60.9, 55.9, -5.4, 55.9, -3.9, 55.9, -2.3, 55.9, 8.5, + 55.9, 10, 55.9, 11.6, 55.9, 13.1, 55.9, 22.3, 55.9, 23.9, 55.9, 25.4, 55.9, 27, 55.9, 28.5, 55.9, 30.1, 55.9, 31.6, + 55.9, 33.1, 55.9, 34.7, 55.9, 36.2, 55.9, 37.8, 55.9, 39.3, 55.9, 40.8, 55.9, 42.4, 55.9, 43.9, 55.9, 45.5, 55.9, 47, + 55.9, 48.6, 55.9, 50.1, 55.9, 51.6, 55.9, 53.2, 55.9, 54.7, 55.9, 56.3, 55.9, 57.8, 55.9, 59.3, 55.9, 60.9, 55.9, + 62.4, 55.9, 64, 55.9, 65.5, 55.9, 67, 55.9, 68.6, 55.9, 70.1, 55.9, 71.7, 55.9, 73.2, 55.9, 74.8, 55.9, 76.3, 55.9, + 77.8, 55.9, 79.4, 55.9, 80.9, 55.9, 82.5, 55.9, 84, 55.9, 85.5, 55.9, 87.1, 55.9, 88.6, 55.9, 90.2, 55.9, 91.7, 55.9, + 93.2, 55.9, 94.8, 55.9, 96.3, 55.9, 97.9, 55.9, 99.4, 55.9, 101, 55.9, 102.5, 55.9, 104, 55.9, 105.6, 55.9, 107.1, + 55.9, 108.7, 55.9, 110.2, 55.9, 111.7, 55.9, 113.3, 55.9, 114.8, 55.9, 116.4, 55.9, 117.9, 55.9, 119.4, 55.9, 121, + 55.9, 122.5, 55.9, 124.1, 55.9, 125.6, 55.9, 127.2, 55.9, 128.7, 55.9, 130.2, 55.9, 131.8, 55.9, 133.3, 55.9, 134.9, + 55.9, 136.4, 55.9, 156.4, 55.9, 158, 55.9, 159.5, 55.9, 161.1, 55.1, -163.4, 55.1, -129.5, 55.1, -127.9, 55.1, -126.4, + 55.1, -124.8, 55.1, -123.3, 55.1, -121.8, 55.1, -120.2, 55.1, -118.7, 55.1, -117.1, 55.1, -115.6, 55.1, -114.1, 55.1, + -112.5, 55.1, -111, 55.1, -109.4, 55.1, -107.9, 55.1, -106.3, 55.1, -104.8, 55.1, -103.3, 55.1, -101.7, 55.1, -100.2, + 55.1, -98.6, 55.1, -97.1, 55.1, -95.6, 55.1, -94, 55.1, -92.5, 55.1, -90.9, 55.1, -89.4, 55.1, -87.9, 55.1, -86.3, + 55.1, -84.8, 55.1, -83.2, 55.1, -77.1, 55.1, -75.5, 55.1, -74, 55.1, -72.4, 55.1, -70.9, 55.1, -69.4, 55.1, -67.8, + 55.1, -66.3, 55.1, -64.7, 55.1, -63.2, 55.1, -61.7, 55.1, -60.1, 55.1, -4.6, 55.1, -3.1, 55.1, -1.5, 55.1, 9.2, 55.1, + 21.6, 55.1, 23.1, 55.1, 24.7, 55.1, 26.2, 55.1, 27.7, 55.1, 29.3, 55.1, 30.8, 55.1, 32.4, 55.1, 33.9, 55.1, 35.4, + 55.1, 37, 55.1, 38.5, 55.1, 40.1, 55.1, 41.6, 55.1, 43.2, 55.1, 44.7, 55.1, 46.2, 55.1, 47.8, 55.1, 49.3, 55.1, 50.9, + 55.1, 52.4, 55.1, 53.9, 55.1, 55.5, 55.1, 57, 55.1, 58.6, 55.1, 60.1, 55.1, 61.7, 55.1, 63.2, 55.1, 64.7, 55.1, 66.3, + 55.1, 67.8, 55.1, 69.4, 55.1, 70.9, 55.1, 72.4, 55.1, 74, 55.1, 75.5, 55.1, 77.1, 55.1, 78.6, 55.1, 80.1, 55.1, 81.7, + 55.1, 83.2, 55.1, 84.8, 55.1, 86.3, 55.1, 87.9, 55.1, 89.4, 55.1, 90.9, 55.1, 92.5, 55.1, 94, 55.1, 95.6, 55.1, 97.1, + 55.1, 98.6, 55.1, 100.2, 55.1, 101.7, 55.1, 103.3, 55.1, 104.8, 55.1, 106.3, 55.1, 107.9, 55.1, 109.4, 55.1, 111, + 55.1, 112.5, 55.1, 114.1, 55.1, 115.6, 55.1, 117.1, 55.1, 118.7, 55.1, 120.2, 55.1, 121.8, 55.1, 123.3, 55.1, 124.8, + 55.1, 126.4, 55.1, 127.9, 55.1, 129.5, 55.1, 131, 55.1, 132.6, 55.1, 134.1, 55.1, 135.6, 55.1, 155.7, 55.1, 157.2, + 55.1, 158.8, 55.1, 160.3, 55.1, 161.8, 54.3, -130.2, 54.3, -128.7, 54.3, -127.2, 54.3, -125.6, 54.3, -124.1, 54.3, + -122.5, 54.3, -121, 54.3, -119.4, 54.3, -117.9, 54.3, -116.4, 54.3, -114.8, 54.3, -113.3, 54.3, -111.7, 54.3, -110.2, + 54.3, -108.7, 54.3, -107.1, 54.3, -105.6, 54.3, -104, 54.3, -102.5, 54.3, -101, 54.3, -99.4, 54.3, -97.9, 54.3, -96.3, + 54.3, -94.8, 54.3, -93.2, 54.3, -91.7, 54.3, -90.2, 54.3, -88.6, 54.3, -87.1, 54.3, -85.5, 54.3, -84, 54.3, -82.5, + 54.3, -79.4, 54.3, -77.8, 54.3, -76.3, 54.3, -74.8, 54.3, -73.2, 54.3, -71.7, 54.3, -70.1, 54.3, -68.6, 54.3, -67, + 54.3, -65.5, 54.3, -64, 54.3, -62.4, 54.3, -60.9, 54.3, -59.3, 54.3, -57.8, 54.3, -8.5, 54.3, -6.9, 54.3, -2.3, 54.3, + -0.8, 54.3, 10, 54.3, 16.2, 54.3, 17.7, 54.3, 19.3, 54.3, 20.8, 54.3, 22.3, 54.3, 23.9, 54.3, 25.4, 54.3, 27, 54.3, + 28.5, 54.3, 30.1, 54.3, 31.6, 54.3, 33.1, 54.3, 34.7, 54.3, 36.2, 54.3, 37.8, 54.3, 39.3, 54.3, 40.8, 54.3, 42.4, + 54.3, 43.9, 54.3, 45.5, 54.3, 47, 54.3, 48.6, 54.3, 50.1, 54.3, 51.6, 54.3, 53.2, 54.3, 54.7, 54.3, 56.3, 54.3, 57.8, + 54.3, 59.3, 54.3, 60.9, 54.3, 62.4, 54.3, 64, 54.3, 65.5, 54.3, 67, 54.3, 68.6, 54.3, 70.1, 54.3, 71.7, 54.3, 73.2, + 54.3, 74.8, 54.3, 76.3, 54.3, 77.8, 54.3, 79.4, 54.3, 80.9, 54.3, 82.5, 54.3, 84, 54.3, 85.5, 54.3, 87.1, 54.3, 88.6, + 54.3, 90.2, 54.3, 91.7, 54.3, 93.2, 54.3, 94.8, 54.3, 96.3, 54.3, 97.9, 54.3, 99.4, 54.3, 101, 54.3, 102.5, 54.3, 104, + 54.3, 105.6, 54.3, 107.1, 54.3, 108.7, 54.3, 110.2, 54.3, 111.7, 54.3, 113.3, 54.3, 114.8, 54.3, 116.4, 54.3, 117.9, + 54.3, 119.4, 54.3, 121, 54.3, 122.5, 54.3, 124.1, 54.3, 125.6, 54.3, 127.2, 54.3, 128.7, 54.3, 130.2, 54.3, 131.8, + 54.3, 133.3, 54.3, 134.9, 54.3, 136.4, 54.3, 142.6, 54.3, 156.4, 54.3, 158, 54.3, 159.5, 53.5, -132.6, 53.5, -127.9, + 53.5, -126.4, 53.5, -124.8, 53.5, -123.3, 53.5, -121.8, 53.5, -120.2, 53.5, -118.7, 53.5, -117.1, 53.5, -115.6, 53.5, + -114.1, 53.5, -112.5, 53.5, -111, 53.5, -109.4, 53.5, -107.9, 53.5, -106.3, 53.5, -104.8, 53.5, -103.3, 53.5, -101.7, + 53.5, -100.2, 53.5, -98.6, 53.5, -97.1, 53.5, -95.6, 53.5, -94, 53.5, -92.5, 53.5, -90.9, 53.5, -89.4, 53.5, -87.9, + 53.5, -86.3, 53.5, -84.8, 53.5, -83.2, 53.5, -78.6, 53.5, -77.1, 53.5, -75.5, 53.5, -74, 53.5, -72.4, 53.5, -70.9, + 53.5, -69.4, 53.5, -67.8, 53.5, -66.3, 53.5, -64.7, 53.5, -63.2, 53.5, -61.7, 53.5, -60.1, 53.5, -58.6, 53.5, -57, + 53.5, -9.2, 53.5, -7.7, 53.5, -6.2, 53.5, -1.5, 53.5, 0, 53.5, 7.7, 53.5, 9.2, 53.5, 10.8, 53.5, 12.3, 53.5, 13.9, + 53.5, 15.4, 53.5, 17, 53.5, 18.5, 53.5, 20, 53.5, 21.6, 53.5, 23.1, 53.5, 24.7, 53.5, 26.2, 53.5, 27.7, 53.5, 29.3, + 53.5, 30.8, 53.5, 32.4, 53.5, 33.9, 53.5, 35.4, 53.5, 37, 53.5, 38.5, 53.5, 40.1, 53.5, 41.6, 53.5, 43.2, 53.5, 44.7, + 53.5, 46.2, 53.5, 47.8, 53.5, 49.3, 53.5, 50.9, 53.5, 52.4, 53.5, 53.9, 53.5, 55.5, 53.5, 57, 53.5, 58.6, 53.5, 60.1, + 53.5, 61.7, 53.5, 63.2, 53.5, 64.7, 53.5, 66.3, 53.5, 67.8, 53.5, 69.4, 53.5, 70.9, 53.5, 72.4, 53.5, 74, 53.5, 75.5, + 53.5, 77.1, 53.5, 78.6, 53.5, 80.1, 53.5, 81.7, 53.5, 83.2, 53.5, 84.8, 53.5, 86.3, 53.5, 87.9, 53.5, 89.4, 53.5, + 90.9, 53.5, 92.5, 53.5, 94, 53.5, 95.6, 53.5, 97.1, 53.5, 98.6, 53.5, 100.2, 53.5, 101.7, 53.5, 103.3, 53.5, 104.8, + 53.5, 106.3, 53.5, 107.9, 53.5, 109.4, 53.5, 111, 53.5, 112.5, 53.5, 114.1, 53.5, 115.6, 53.5, 117.1, 53.5, 118.7, + 53.5, 120.2, 53.5, 121.8, 53.5, 123.3, 53.5, 124.8, 53.5, 126.4, 53.5, 127.9, 53.5, 129.5, 53.5, 131, 53.5, 132.6, + 53.5, 134.1, 53.5, 135.6, 53.5, 137.2, 53.5, 138.7, 53.5, 140.3, 53.5, 157.2, 53.5, 158.8, 52.7, -128.7, 52.7, -127.2, + 52.7, -125.6, 52.7, -124.1, 52.7, -122.5, 52.7, -121, 52.7, -119.4, 52.7, -117.9, 52.7, -116.4, 52.7, -114.8, 52.7, + -113.3, 52.7, -111.7, 52.7, -110.2, 52.7, -108.7, 52.7, -107.1, 52.7, -105.6, 52.7, -104, 52.7, -102.5, 52.7, -101, + 52.7, -99.4, 52.7, -97.9, 52.7, -96.3, 52.7, -94.8, 52.7, -93.2, 52.7, -91.7, 52.7, -90.2, 52.7, -88.6, 52.7, -87.1, + 52.7, -85.5, 52.7, -84, 52.7, -82.5, 52.7, -77.8, 52.7, -76.3, 52.7, -74.8, 52.7, -73.2, 52.7, -71.7, 52.7, -70.1, + 52.7, -68.6, 52.7, -67, 52.7, -65.5, 52.7, -64, 52.7, -62.4, 52.7, -60.9, 52.7, -59.3, 52.7, -57.8, 52.7, -56.3, 52.7, + -8.5, 52.7, -6.9, 52.7, -3.9, 52.7, -2.3, 52.7, -0.8, 52.7, 0.8, 52.7, 5.4, 52.7, 6.9, 52.7, 8.5, 52.7, 10, 52.7, + 11.6, 52.7, 13.1, 52.7, 14.6, 52.7, 16.2, 52.7, 17.7, 52.7, 19.3, 52.7, 20.8, 52.7, 22.3, 52.7, 23.9, 52.7, 25.4, + 52.7, 27, 52.7, 28.5, 52.7, 30.1, 52.7, 31.6, 52.7, 33.1, 52.7, 34.7, 52.7, 36.2, 52.7, 37.8, 52.7, 39.3, 52.7, 40.8, + 52.7, 42.4, 52.7, 43.9, 52.7, 45.5, 52.7, 47, 52.7, 48.6, 52.7, 50.1, 52.7, 51.6, 52.7, 53.2, 52.7, 54.7, 52.7, 56.3, + 52.7, 57.8, 52.7, 59.3, 52.7, 60.9, 52.7, 62.4, 52.7, 64, 52.7, 65.5, 52.7, 67, 52.7, 68.6, 52.7, 70.1, 52.7, 71.7, + 52.7, 73.2, 52.7, 74.8, 52.7, 76.3, 52.7, 77.8, 52.7, 79.4, 52.7, 80.9, 52.7, 82.5, 52.7, 84, 52.7, 85.5, 52.7, 87.1, + 52.7, 88.6, 52.7, 90.2, 52.7, 91.7, 52.7, 93.2, 52.7, 94.8, 52.7, 96.3, 52.7, 97.9, 52.7, 99.4, 52.7, 101, 52.7, + 102.5, 52.7, 104, 52.7, 105.6, 52.7, 107.1, 52.7, 108.7, 52.7, 110.2, 52.7, 111.7, 52.7, 113.3, 52.7, 114.8, 52.7, + 116.4, 52.7, 117.9, 52.7, 119.4, 52.7, 121, 52.7, 122.5, 52.7, 124.1, 52.7, 125.6, 52.7, 127.2, 52.7, 128.7, 52.7, + 130.2, 52.7, 131.8, 52.7, 133.3, 52.7, 134.9, 52.7, 136.4, 52.7, 137.9, 52.7, 139.5, 52.7, 141, 52.7, 142.6, 52.7, + 156.4, 52.7, 158, 51.9, -127.9, 51.9, -126.4, 51.9, -124.8, 51.9, -123.3, 51.9, -121.8, 51.9, -120.2, 51.9, -118.7, + 51.9, -117.1, 51.9, -115.6, 51.9, -114.1, 51.9, -112.5, 51.9, -111, 51.9, -109.4, 51.9, -107.9, 51.9, -106.3, 51.9, + -104.8, 51.9, -103.3, 51.9, -101.7, 51.9, -100.2, 51.9, -98.6, 51.9, -97.1, 51.9, -95.6, 51.9, -94, 51.9, -92.5, 51.9, + -90.9, 51.9, -89.4, 51.9, -87.9, 51.9, -86.3, 51.9, -84.8, 51.9, -83.2, 51.9, -81.7, 51.9, -78.6, 51.9, -77.1, 51.9, + -75.5, 51.9, -74, 51.9, -72.4, 51.9, -70.9, 51.9, -69.4, 51.9, -67.8, 51.9, -66.3, 51.9, -64.7, 51.9, -63.2, 51.9, + -61.7, 51.9, -60.1, 51.9, -58.6, 51.9, -57, 51.9, -9.2, 51.9, -4.6, 51.9, -3.1, 51.9, -1.5, 51.9, 0, 51.9, 4.6, 51.9, + 6.2, 51.9, 7.7, 51.9, 9.2, 51.9, 10.8, 51.9, 12.3, 51.9, 13.9, 51.9, 15.4, 51.9, 17, 51.9, 18.5, 51.9, 20, 51.9, 21.6, + 51.9, 23.1, 51.9, 24.7, 51.9, 26.2, 51.9, 27.7, 51.9, 29.3, 51.9, 30.8, 51.9, 32.4, 51.9, 33.9, 51.9, 35.4, 51.9, 37, + 51.9, 38.5, 51.9, 40.1, 51.9, 41.6, 51.9, 43.2, 51.9, 44.7, 51.9, 46.2, 51.9, 47.8, 51.9, 49.3, 51.9, 50.9, 51.9, + 52.4, 51.9, 53.9, 51.9, 55.5, 51.9, 57, 51.9, 58.6, 51.9, 60.1, 51.9, 61.7, 51.9, 63.2, 51.9, 64.7, 51.9, 66.3, 51.9, + 67.8, 51.9, 69.4, 51.9, 70.9, 51.9, 72.4, 51.9, 74, 51.9, 75.5, 51.9, 77.1, 51.9, 78.6, 51.9, 80.1, 51.9, 81.7, 51.9, + 83.2, 51.9, 84.8, 51.9, 86.3, 51.9, 87.9, 51.9, 89.4, 51.9, 90.9, 51.9, 92.5, 51.9, 94, 51.9, 95.6, 51.9, 97.1, 51.9, + 98.6, 51.9, 100.2, 51.9, 101.7, 51.9, 103.3, 51.9, 104.8, 51.9, 106.3, 51.9, 107.9, 51.9, 109.4, 51.9, 111, 51.9, + 112.5, 51.9, 114.1, 51.9, 115.6, 51.9, 117.1, 51.9, 118.7, 51.9, 120.2, 51.9, 121.8, 51.9, 123.3, 51.9, 124.8, 51.9, + 126.4, 51.9, 127.9, 51.9, 129.5, 51.9, 131, 51.9, 132.6, 51.9, 134.1, 51.9, 135.6, 51.9, 137.2, 51.9, 138.7, 51.9, + 140.3, 51.9, 141.8, 51.9, 157.2, 51.1, -127.2, 51.1, -125.6, 51.1, -124.1, 51.1, -122.5, 51.1, -121, 51.1, -119.4, + 51.1, -117.9, 51.1, -116.4, 51.1, -114.8, 51.1, -113.3, 51.1, -111.7, 51.1, -110.2, 51.1, -108.7, 51.1, -107.1, 51.1, + -105.6, 51.1, -104, 51.1, -102.5, 51.1, -101, 51.1, -99.4, 51.1, -97.9, 51.1, -96.3, 51.1, -94.8, 51.1, -93.2, 51.1, + -91.7, 51.1, -90.2, 51.1, -88.6, 51.1, -87.1, 51.1, -85.5, 51.1, -84, 51.1, -82.5, 51.1, -80.9, 51.1, -79.4, 51.1, + -77.8, 51.1, -76.3, 51.1, -74.8, 51.1, -73.2, 51.1, -71.7, 51.1, -70.1, 51.1, -68.6, 51.1, -67, 51.1, -65.5, 51.1, + -64, 51.1, -62.4, 51.1, -60.9, 51.1, -59.3, 51.1, -56.3, 51.1, -3.9, 51.1, -2.3, 51.1, -0.8, 51.1, 0.8, 51.1, 2.3, + 51.1, 3.9, 51.1, 5.4, 51.1, 6.9, 51.1, 8.5, 51.1, 10, 51.1, 11.6, 51.1, 13.1, 51.1, 14.6, 51.1, 16.2, 51.1, 17.7, + 51.1, 19.3, 51.1, 20.8, 51.1, 22.3, 51.1, 23.9, 51.1, 25.4, 51.1, 27, 51.1, 28.5, 51.1, 30.1, 51.1, 31.6, 51.1, 33.1, + 51.1, 34.7, 51.1, 36.2, 51.1, 37.8, 51.1, 39.3, 51.1, 40.8, 51.1, 42.4, 51.1, 43.9, 51.1, 45.5, 51.1, 47, 51.1, 48.6, + 51.1, 50.1, 51.1, 51.6, 51.1, 53.2, 51.1, 54.7, 51.1, 56.3, 51.1, 57.8, 51.1, 59.3, 51.1, 60.9, 51.1, 62.4, 51.1, 64, + 51.1, 65.5, 51.1, 67, 51.1, 68.6, 51.1, 70.1, 51.1, 71.7, 51.1, 73.2, 51.1, 74.8, 51.1, 76.3, 51.1, 77.8, 51.1, 79.4, + 51.1, 80.9, 51.1, 82.5, 51.1, 84, 51.1, 85.5, 51.1, 87.1, 51.1, 88.6, 51.1, 90.2, 51.1, 91.7, 51.1, 93.2, 51.1, 94.8, + 51.1, 96.3, 51.1, 97.9, 51.1, 99.4, 51.1, 101, 51.1, 102.5, 51.1, 104, 51.1, 105.6, 51.1, 107.1, 51.1, 108.7, 51.1, + 110.2, 51.1, 111.7, 51.1, 113.3, 51.1, 114.8, 51.1, 116.4, 51.1, 117.9, 51.1, 119.4, 51.1, 121, 51.1, 122.5, 51.1, + 124.1, 51.1, 125.6, 51.1, 127.2, 51.1, 128.7, 51.1, 130.2, 51.1, 131.8, 51.1, 133.3, 51.1, 134.9, 51.1, 136.4, 51.1, + 137.9, 51.1, 139.5, 51.1, 142.6, 50.2, -127.9, 50.2, -126.4, 50.2, -124.8, 50.2, -123.3, 50.2, -121.8, 50.2, -120.2, + 50.2, -118.7, 50.2, -117.1, 50.2, -115.6, 50.2, -114.1, 50.2, -112.5, 50.2, -111, 50.2, -109.4, 50.2, -107.9, 50.2, + -106.3, 50.2, -104.8, 50.2, -103.3, 50.2, -101.7, 50.2, -100.2, 50.2, -98.6, 50.2, -97.1, 50.2, -95.6, 50.2, -94, + 50.2, -92.5, 50.2, -90.9, 50.2, -89.4, 50.2, -87.9, 50.2, -86.3, 50.2, -84.8, 50.2, -83.2, 50.2, -81.7, 50.2, -80.1, + 50.2, -78.6, 50.2, -77.1, 50.2, -75.5, 50.2, -74, 50.2, -72.4, 50.2, -70.9, 50.2, -69.4, 50.2, -67.8, 50.2, -66.3, + 50.2, -63.2, 50.2, -61.7, 50.2, -60.1, 50.2, -57, 50.2, 1.5, 50.2, 3.1, 50.2, 4.6, 50.2, 6.2, 50.2, 7.7, 50.2, 9.2, + 50.2, 10.8, 50.2, 12.3, 50.2, 13.9, 50.2, 15.4, 50.2, 17, 50.2, 18.5, 50.2, 20, 50.2, 21.6, 50.2, 23.1, 50.2, 24.7, + 50.2, 26.2, 50.2, 27.7, 50.2, 29.3, 50.2, 30.8, 50.2, 32.4, 50.2, 33.9, 50.2, 35.4, 50.2, 37, 50.2, 38.5, 50.2, 40.1, + 50.2, 41.6, 50.2, 43.2, 50.2, 44.7, 50.2, 46.2, 50.2, 47.8, 50.2, 49.3, 50.2, 50.9, 50.2, 52.4, 50.2, 53.9, 50.2, + 55.5, 50.2, 57, 50.2, 58.6, 50.2, 60.1, 50.2, 61.7, 50.2, 63.2, 50.2, 64.7, 50.2, 66.3, 50.2, 67.8, 50.2, 69.4, 50.2, + 70.9, 50.2, 72.4, 50.2, 74, 50.2, 75.5, 50.2, 77.1, 50.2, 78.6, 50.2, 80.1, 50.2, 81.7, 50.2, 83.2, 50.2, 84.8, 50.2, + 86.3, 50.2, 87.9, 50.2, 89.4, 50.2, 90.9, 50.2, 92.5, 50.2, 94, 50.2, 95.6, 50.2, 97.1, 50.2, 98.6, 50.2, 100.2, 50.2, + 101.7, 50.2, 103.3, 50.2, 104.8, 50.2, 106.3, 50.2, 107.9, 50.2, 109.4, 50.2, 111, 50.2, 112.5, 50.2, 114.1, 50.2, + 115.6, 50.2, 117.1, 50.2, 118.7, 50.2, 120.2, 50.2, 121.8, 50.2, 123.3, 50.2, 124.8, 50.2, 126.4, 50.2, 127.9, 50.2, + 129.5, 50.2, 131, 50.2, 132.6, 50.2, 134.1, 50.2, 135.6, 50.2, 137.2, 50.2, 138.7, 50.2, 140.3, 50.2, 143.3, 49.4, + -125.6, 49.4, -122.5, 49.4, -121, 49.4, -119.4, 49.4, -117.9, 49.4, -116.4, 49.4, -114.8, 49.4, -113.3, 49.4, -111.7, + 49.4, -110.2, 49.4, -108.7, 49.4, -107.1, 49.4, -105.6, 49.4, -104, 49.4, -102.5, 49.4, -101, 49.4, -99.4, 49.4, + -97.9, 49.4, -96.3, 49.4, -94.8, 49.4, -93.2, 49.4, -91.7, 49.4, -90.2, 49.4, -88.6, 49.4, -87.1, 49.4, -85.5, 49.4, + -84, 49.4, -82.5, 49.4, -80.9, 49.4, -79.4, 49.4, -77.8, 49.4, -76.3, 49.4, -74.8, 49.4, -73.2, 49.4, -71.7, 49.4, + -70.1, 49.4, -68.6, 49.4, -62.4, 49.4, -57.8, 49.4, -56.3, 49.4, -54.7, 49.4, -0.8, 49.4, 0.8, 49.4, 2.3, 49.4, 3.9, + 49.4, 5.4, 49.4, 6.9, 49.4, 8.5, 49.4, 10, 49.4, 11.6, 49.4, 13.1, 49.4, 14.6, 49.4, 16.2, 49.4, 17.7, 49.4, 19.3, + 49.4, 20.8, 49.4, 22.3, 49.4, 23.9, 49.4, 25.4, 49.4, 27, 49.4, 28.5, 49.4, 30.1, 49.4, 31.6, 49.4, 33.1, 49.4, 34.7, + 49.4, 36.2, 49.4, 37.8, 49.4, 39.3, 49.4, 40.8, 49.4, 42.4, 49.4, 43.9, 49.4, 45.5, 49.4, 47, 49.4, 48.6, 49.4, 50.1, + 49.4, 51.6, 49.4, 53.2, 49.4, 54.7, 49.4, 56.3, 49.4, 57.8, 49.4, 59.3, 49.4, 60.9, 49.4, 62.4, 49.4, 64, 49.4, 65.5, + 49.4, 67, 49.4, 68.6, 49.4, 70.1, 49.4, 71.7, 49.4, 73.2, 49.4, 74.8, 49.4, 76.3, 49.4, 77.8, 49.4, 79.4, 49.4, 80.9, + 49.4, 82.5, 49.4, 84, 49.4, 85.5, 49.4, 87.1, 49.4, 88.6, 49.4, 90.2, 49.4, 91.7, 49.4, 93.2, 49.4, 94.8, 49.4, 96.3, + 49.4, 97.9, 49.4, 99.4, 49.4, 101, 49.4, 102.5, 49.4, 104, 49.4, 105.6, 49.4, 107.1, 49.4, 108.7, 49.4, 110.2, 49.4, + 111.7, 49.4, 113.3, 49.4, 114.8, 49.4, 116.4, 49.4, 117.9, 49.4, 119.4, 49.4, 121, 49.4, 122.5, 49.4, 124.1, 49.4, + 125.6, 49.4, 127.2, 49.4, 128.7, 49.4, 130.2, 49.4, 131.8, 49.4, 133.3, 49.4, 134.9, 49.4, 136.4, 49.4, 137.9, 49.4, + 139.5, 49.4, 142.6, 49.4, 144.1, 48.5, -121.8, 48.5, -120.2, 48.5, -118.7, 48.5, -117.1, 48.5, -115.6, 48.5, -114.1, + 48.5, -112.5, 48.5, -111, 48.5, -109.4, 48.5, -107.9, 48.5, -106.3, 48.5, -104.8, 48.5, -103.3, 48.5, -101.7, 48.5, + -100.2, 48.5, -98.6, 48.5, -97.1, 48.5, -95.6, 48.5, -94, 48.5, -92.5, 48.5, -90.9, 48.5, -89.4, 48.5, -87.9, 48.5, + -86.3, 48.5, -84.8, 48.5, -83.2, 48.5, -81.7, 48.5, -80.1, 48.5, -78.6, 48.5, -77.1, 48.5, -75.5, 48.5, -74, 48.5, + -72.4, 48.5, -70.9, 48.5, -69.4, 48.5, -67.8, 48.5, -66.3, 48.5, -64.7, 48.5, -58.6, 48.5, -57, 48.5, -55.5, 48.5, + -53.9, 48.5, -3.1, 48.5, -1.5, 48.5, 0, 48.5, 1.5, 48.5, 3.1, 48.5, 4.6, 48.5, 6.2, 48.5, 7.7, 48.5, 9.2, 48.5, 10.8, + 48.5, 12.3, 48.5, 13.9, 48.5, 15.4, 48.5, 17, 48.5, 18.5, 48.5, 20, 48.5, 21.6, 48.5, 23.1, 48.5, 24.7, 48.5, 26.2, + 48.5, 27.7, 48.5, 29.3, 48.5, 30.8, 48.5, 32.4, 48.5, 33.9, 48.5, 35.4, 48.5, 37, 48.5, 38.5, 48.5, 40.1, 48.5, 41.6, + 48.5, 43.2, 48.5, 44.7, 48.5, 46.2, 48.5, 47.8, 48.5, 49.3, 48.5, 50.9, 48.5, 52.4, 48.5, 53.9, 48.5, 55.5, 48.5, 57, + 48.5, 58.6, 48.5, 60.1, 48.5, 61.7, 48.5, 63.2, 48.5, 64.7, 48.5, 66.3, 48.5, 67.8, 48.5, 69.4, 48.5, 70.9, 48.5, + 72.4, 48.5, 74, 48.5, 75.5, 48.5, 77.1, 48.5, 78.6, 48.5, 80.1, 48.5, 81.7, 48.5, 83.2, 48.5, 84.8, 48.5, 86.3, 48.5, + 87.9, 48.5, 89.4, 48.5, 90.9, 48.5, 92.5, 48.5, 94, 48.5, 95.6, 48.5, 97.1, 48.5, 98.6, 48.5, 100.2, 48.5, 101.7, + 48.5, 103.3, 48.5, 104.8, 48.5, 106.3, 48.5, 107.9, 48.5, 109.4, 48.5, 111, 48.5, 112.5, 48.5, 114.1, 48.5, 115.6, + 48.5, 117.1, 48.5, 118.7, 48.5, 120.2, 48.5, 121.8, 48.5, 123.3, 48.5, 124.8, 48.5, 126.4, 48.5, 127.9, 48.5, 129.5, + 48.5, 131, 48.5, 132.6, 48.5, 134.1, 48.5, 135.6, 48.5, 137.2, 48.5, 138.7, 47.6, -124.1, 47.6, -121, 47.6, -119.4, + 47.6, -117.9, 47.6, -116.4, 47.6, -114.8, 47.6, -113.3, 47.6, -111.7, 47.6, -110.2, 47.6, -108.7, 47.6, -107.1, 47.6, + -105.6, 47.6, -104, 47.6, -102.5, 47.6, -101, 47.6, -99.4, 47.6, -97.9, 47.6, -96.3, 47.6, -94.8, 47.6, -93.2, 47.6, + -91.7, 47.6, -90.2, 47.6, -88.6, 47.6, -87.1, 47.6, -85.5, 47.6, -84, 47.6, -82.5, 47.6, -80.9, 47.6, -79.4, 47.6, + -77.8, 47.6, -76.3, 47.6, -74.8, 47.6, -73.2, 47.6, -71.7, 47.6, -68.6, 47.6, -67, 47.6, -65.5, 47.6, -57.8, 47.6, + -54.7, 47.6, -53.2, 47.6, -2.3, 47.6, -0.8, 47.6, 0.8, 47.6, 2.3, 47.6, 3.9, 47.6, 5.4, 47.6, 6.9, 47.6, 8.5, 47.6, + 10, 47.6, 11.6, 47.6, 13.1, 47.6, 14.6, 47.6, 16.2, 47.6, 17.7, 47.6, 19.3, 47.6, 20.8, 47.6, 22.3, 47.6, 23.9, 47.6, + 25.4, 47.6, 27, 47.6, 28.5, 47.6, 30.1, 47.6, 31.6, 47.6, 33.1, 47.6, 34.7, 47.6, 36.2, 47.6, 37.8, 47.6, 39.3, 47.6, + 40.8, 47.6, 42.4, 47.6, 43.9, 47.6, 45.5, 47.6, 47, 47.6, 48.6, 47.6, 50.1, 47.6, 51.6, 47.6, 53.2, 47.6, 54.7, 47.6, + 56.3, 47.6, 57.8, 47.6, 59.3, 47.6, 60.9, 47.6, 62.4, 47.6, 64, 47.6, 65.5, 47.6, 67, 47.6, 68.6, 47.6, 70.1, 47.6, + 71.7, 47.6, 73.2, 47.6, 74.8, 47.6, 76.3, 47.6, 77.8, 47.6, 79.4, 47.6, 80.9, 47.6, 82.5, 47.6, 84, 47.6, 85.5, 47.6, + 87.1, 47.6, 88.6, 47.6, 90.2, 47.6, 91.7, 47.6, 93.2, 47.6, 94.8, 47.6, 96.3, 47.6, 97.9, 47.6, 99.4, 47.6, 101, 47.6, + 102.5, 47.6, 104, 47.6, 105.6, 47.6, 107.1, 47.6, 108.7, 47.6, 110.2, 47.6, 111.7, 47.6, 113.3, 47.6, 114.8, 47.6, + 116.4, 47.6, 117.9, 47.6, 119.4, 47.6, 121, 47.6, 122.5, 47.6, 124.1, 47.6, 125.6, 47.6, 127.2, 47.6, 128.7, 47.6, + 130.2, 47.6, 131.8, 47.6, 133.3, 47.6, 134.9, 47.6, 136.4, 47.6, 137.9, 47.6, 142.6, 46.7, -123.3, 46.7, -121.8, 46.7, + -120.2, 46.7, -118.7, 46.7, -117.1, 46.7, -115.6, 46.7, -114.1, 46.7, -112.5, 46.7, -111, 46.7, -109.4, 46.7, -107.9, + 46.7, -106.3, 46.7, -104.8, 46.7, -103.3, 46.7, -101.7, 46.7, -100.2, 46.7, -98.6, 46.7, -97.1, 46.7, -95.6, 46.7, + -94, 46.7, -92.5, 46.7, -90.9, 46.7, -89.4, 46.7, -87.9, 46.7, -86.3, 46.7, -84.8, 46.7, -83.2, 46.7, -81.7, 46.7, + -80.1, 46.7, -78.6, 46.7, -77.1, 46.7, -75.5, 46.7, -74, 46.7, -72.4, 46.7, -70.9, 46.7, -69.4, 46.7, -67.8, 46.7, + -66.3, 46.7, -64.7, 46.7, -1.5, 46.7, 0, 46.7, 1.5, 46.7, 3.1, 46.7, 4.6, 46.7, 6.2, 46.7, 7.7, 46.7, 9.2, 46.7, 10.8, + 46.7, 12.3, 46.7, 13.9, 46.7, 15.4, 46.7, 17, 46.7, 18.5, 46.7, 20, 46.7, 21.6, 46.7, 23.1, 46.7, 24.7, 46.7, 26.2, + 46.7, 27.7, 46.7, 29.3, 46.7, 30.8, 46.7, 32.4, 46.7, 33.9, 46.7, 35.4, 46.7, 38.5, 46.7, 40.1, 46.7, 41.6, 46.7, + 43.2, 46.7, 44.7, 46.7, 46.2, 46.7, 47.8, 46.7, 49.3, 46.7, 53.9, 46.7, 55.5, 46.7, 57, 46.7, 58.6, 46.7, 60.1, 46.7, + 61.7, 46.7, 63.2, 46.7, 64.7, 46.7, 66.3, 46.7, 67.8, 46.7, 69.4, 46.7, 70.9, 46.7, 72.4, 46.7, 74, 46.7, 75.5, 46.7, + 77.1, 46.7, 78.6, 46.7, 80.1, 46.7, 81.7, 46.7, 83.2, 46.7, 84.8, 46.7, 86.3, 46.7, 87.9, 46.7, 89.4, 46.7, 90.9, + 46.7, 92.5, 46.7, 94, 46.7, 95.6, 46.7, 97.1, 46.7, 98.6, 46.7, 100.2, 46.7, 101.7, 46.7, 103.3, 46.7, 104.8, 46.7, + 106.3, 46.7, 107.9, 46.7, 109.4, 46.7, 111, 46.7, 112.5, 46.7, 114.1, 46.7, 115.6, 46.7, 117.1, 46.7, 118.7, 46.7, + 120.2, 46.7, 121.8, 46.7, 123.3, 46.7, 124.8, 46.7, 126.4, 46.7, 127.9, 46.7, 129.5, 46.7, 131, 46.7, 132.6, 46.7, + 134.1, 46.7, 135.6, 46.7, 137.2, 46.7, 143.3, 45.8, -122.5, 45.8, -121, 45.8, -119.4, 45.8, -117.9, 45.8, -116.4, + 45.8, -114.8, 45.8, -113.3, 45.8, -111.7, 45.8, -110.2, 45.8, -108.7, 45.8, -107.1, 45.8, -105.6, 45.8, -104, 45.8, + -102.5, 45.8, -101, 45.8, -99.4, 45.8, -97.9, 45.8, -96.3, 45.8, -94.8, 45.8, -93.2, 45.8, -91.7, 45.8, -90.2, 45.8, + -88.6, 45.8, -87.1, 45.8, -85.5, 45.8, -84, 45.8, -82.5, 45.8, -80.9, 45.8, -79.4, 45.8, -77.8, 45.8, -76.3, 45.8, + -74.8, 45.8, -73.2, 45.8, -71.7, 45.8, -70.1, 45.8, -68.6, 45.8, -67, 45.8, -65.5, 45.8, -64, 45.8, -62.4, 45.8, + -60.9, 45.8, -0.8, 45.8, 0.8, 45.8, 2.3, 45.8, 3.9, 45.8, 5.4, 45.8, 6.9, 45.8, 8.5, 45.8, 10, 45.8, 11.6, 45.8, 13.1, + 45.8, 14.6, 45.8, 16.2, 45.8, 17.7, 45.8, 19.3, 45.8, 20.8, 45.8, 22.3, 45.8, 23.9, 45.8, 25.4, 45.8, 27, 45.8, 28.5, + 45.8, 30.1, 45.8, 34.7, 45.8, 37.8, 45.8, 39.3, 45.8, 40.8, 45.8, 42.4, 45.8, 43.9, 45.8, 45.5, 45.8, 47, 45.8, 53.2, + 45.8, 54.7, 45.8, 56.3, 45.8, 57.8, 45.8, 59.3, 45.8, 60.9, 45.8, 62.4, 45.8, 64, 45.8, 65.5, 45.8, 67, 45.8, 68.6, + 45.8, 70.1, 45.8, 71.7, 45.8, 73.2, 45.8, 74.8, 45.8, 76.3, 45.8, 77.8, 45.8, 79.4, 45.8, 80.9, 45.8, 82.5, 45.8, 84, + 45.8, 85.5, 45.8, 87.1, 45.8, 88.6, 45.8, 90.2, 45.8, 91.7, 45.8, 93.2, 45.8, 94.8, 45.8, 96.3, 45.8, 97.9, 45.8, + 99.4, 45.8, 101, 45.8, 102.5, 45.8, 104, 45.8, 105.6, 45.8, 107.1, 45.8, 108.7, 45.8, 110.2, 45.8, 111.7, 45.8, 113.3, + 45.8, 114.8, 45.8, 116.4, 45.8, 117.9, 45.8, 119.4, 45.8, 121, 45.8, 122.5, 45.8, 124.1, 45.8, 125.6, 45.8, 127.2, + 45.8, 128.7, 45.8, 130.2, 45.8, 131.8, 45.8, 133.3, 45.8, 134.9, 45.8, 136.4, 44.8, -123.3, 44.8, -121.8, 44.8, + -120.2, 44.8, -118.7, 44.8, -117.1, 44.8, -115.6, 44.8, -114.1, 44.8, -112.5, 44.8, -111, 44.8, -109.4, 44.8, -107.9, + 44.8, -106.3, 44.8, -104.8, 44.8, -103.3, 44.8, -101.7, 44.8, -100.2, 44.8, -98.6, 44.8, -97.1, 44.8, -95.6, 44.8, + -94, 44.8, -92.5, 44.8, -90.9, 44.8, -89.4, 44.8, -87.9, 44.8, -86.3, 44.8, -84.8, 44.8, -83.2, 44.8, -81.7, 44.8, + -80.1, 44.8, -78.6, 44.8, -77.1, 44.8, -75.5, 44.8, -74, 44.8, -72.4, 44.8, -70.9, 44.8, -69.4, 44.8, -67.8, 44.8, + -64.7, 44.8, -63.2, 44.8, 0, 44.8, 1.5, 44.8, 3.1, 44.8, 4.6, 44.8, 6.2, 44.8, 7.7, 44.8, 9.2, 44.8, 10.8, 44.8, 12.3, + 44.8, 15.4, 44.8, 17, 44.8, 18.5, 44.8, 20, 44.8, 21.6, 44.8, 23.1, 44.8, 24.7, 44.8, 26.2, 44.8, 27.7, 44.8, 33.9, + 44.8, 38.5, 44.8, 40.1, 44.8, 41.6, 44.8, 43.2, 44.8, 44.7, 44.8, 46.2, 44.8, 52.4, 44.8, 53.9, 44.8, 55.5, 44.8, 57, + 44.8, 58.6, 44.8, 60.1, 44.8, 61.7, 44.8, 63.2, 44.8, 64.7, 44.8, 66.3, 44.8, 67.8, 44.8, 69.4, 44.8, 70.9, 44.8, + 72.4, 44.8, 74, 44.8, 75.5, 44.8, 77.1, 44.8, 78.6, 44.8, 80.1, 44.8, 81.7, 44.8, 83.2, 44.8, 84.8, 44.8, 86.3, 44.8, + 87.9, 44.8, 89.4, 44.8, 90.9, 44.8, 92.5, 44.8, 94, 44.8, 95.6, 44.8, 97.1, 44.8, 98.6, 44.8, 100.2, 44.8, 101.7, + 44.8, 103.3, 44.8, 104.8, 44.8, 106.3, 44.8, 107.9, 44.8, 109.4, 44.8, 111, 44.8, 112.5, 44.8, 114.1, 44.8, 115.6, + 44.8, 117.1, 44.8, 118.7, 44.8, 120.2, 44.8, 121.8, 44.8, 123.3, 44.8, 124.8, 44.8, 126.4, 44.8, 127.9, 44.8, 129.5, + 44.8, 131, 44.8, 132.6, 44.8, 134.1, 44.8, 135.6, 44.8, 141.8, 43.9, -124.1, 43.9, -122.5, 43.9, -121, 43.9, -119.4, + 43.9, -117.9, 43.9, -116.4, 43.9, -114.8, 43.9, -113.3, 43.9, -111.7, 43.9, -110.2, 43.9, -108.7, 43.9, -107.1, 43.9, + -105.6, 43.9, -104, 43.9, -102.5, 43.9, -101, 43.9, -99.4, 43.9, -97.9, 43.9, -96.3, 43.9, -94.8, 43.9, -93.2, 43.9, + -91.7, 43.9, -90.2, 43.9, -88.6, 43.9, -87.1, 43.9, -85.5, 43.9, -84, 43.9, -82.5, 43.9, -80.9, 43.9, -79.4, 43.9, + -77.8, 43.9, -76.3, 43.9, -74.8, 43.9, -73.2, 43.9, -71.7, 43.9, -70.1, 43.9, -65.5, 43.9, -0.8, 43.9, 0.8, 43.9, 2.3, + 43.9, 3.9, 43.9, 5.4, 43.9, 6.9, 43.9, 11.6, 43.9, 16.2, 43.9, 17.7, 43.9, 19.3, 43.9, 20.8, 43.9, 22.3, 43.9, 23.9, + 43.9, 25.4, 43.9, 27, 43.9, 28.5, 43.9, 40.8, 43.9, 42.4, 43.9, 43.9, 43.9, 45.5, 43.9, 47, 43.9, 51.6, 43.9, 53.2, + 43.9, 54.7, 43.9, 56.3, 43.9, 57.8, 43.9, 59.3, 43.9, 60.9, 43.9, 62.4, 43.9, 64, 43.9, 65.5, 43.9, 67, 43.9, 68.6, + 43.9, 70.1, 43.9, 71.7, 43.9, 73.2, 43.9, 74.8, 43.9, 76.3, 43.9, 77.8, 43.9, 79.4, 43.9, 80.9, 43.9, 82.5, 43.9, 84, + 43.9, 85.5, 43.9, 87.1, 43.9, 88.6, 43.9, 90.2, 43.9, 91.7, 43.9, 93.2, 43.9, 94.8, 43.9, 96.3, 43.9, 97.9, 43.9, + 99.4, 43.9, 101, 43.9, 102.5, 43.9, 104, 43.9, 105.6, 43.9, 107.1, 43.9, 108.7, 43.9, 110.2, 43.9, 111.7, 43.9, 113.3, + 43.9, 114.8, 43.9, 116.4, 43.9, 117.9, 43.9, 119.4, 43.9, 121, 43.9, 122.5, 43.9, 124.1, 43.9, 125.6, 43.9, 127.2, + 43.9, 128.7, 43.9, 130.2, 43.9, 131.8, 43.9, 133.3, 43.9, 134.9, 43.9, 142.6, 43.9, 144.1, 42.9, -123.3, 42.9, -121.8, + 42.9, -120.2, 42.9, -118.7, 42.9, -117.1, 42.9, -115.6, 42.9, -114.1, 42.9, -112.5, 42.9, -111, 42.9, -109.4, 42.9, + -107.9, 42.9, -106.3, 42.9, -104.8, 42.9, -103.3, 42.9, -101.7, 42.9, -100.2, 42.9, -98.6, 42.9, -97.1, 42.9, -95.6, + 42.9, -94, 42.9, -92.5, 42.9, -90.9, 42.9, -89.4, 42.9, -87.9, 42.9, -86.3, 42.9, -84.8, 42.9, -83.2, 42.9, -81.7, + 42.9, -80.1, 42.9, -78.6, 42.9, -77.1, 42.9, -75.5, 42.9, -74, 42.9, -72.4, 42.9, -70.9, 42.9, -9.2, 42.9, -7.7, 42.9, + -6.2, 42.9, -4.6, 42.9, -3.1, 42.9, -1.5, 42.9, 0, 42.9, 1.5, 42.9, 9.2, 42.9, 10.8, 42.9, 12.3, 42.9, 13.9, 42.9, + 18.5, 42.9, 20, 42.9, 21.6, 42.9, 23.1, 42.9, 24.7, 42.9, 26.2, 42.9, 27.7, 42.9, 41.6, 42.9, 43.2, 42.9, 44.7, 42.9, + 46.2, 42.9, 52.4, 42.9, 53.9, 42.9, 55.5, 42.9, 57, 42.9, 58.6, 42.9, 60.1, 42.9, 61.7, 42.9, 63.2, 42.9, 64.7, 42.9, + 66.3, 42.9, 67.8, 42.9, 69.4, 42.9, 70.9, 42.9, 72.4, 42.9, 74, 42.9, 75.5, 42.9, 77.1, 42.9, 78.6, 42.9, 80.1, 42.9, + 81.7, 42.9, 83.2, 42.9, 84.8, 42.9, 86.3, 42.9, 87.9, 42.9, 89.4, 42.9, 90.9, 42.9, 92.5, 42.9, 94, 42.9, 95.6, 42.9, + 97.1, 42.9, 98.6, 42.9, 100.2, 42.9, 101.7, 42.9, 103.3, 42.9, 104.8, 42.9, 106.3, 42.9, 107.9, 42.9, 109.4, 42.9, + 111, 42.9, 112.5, 42.9, 114.1, 42.9, 115.6, 42.9, 117.1, 42.9, 118.7, 42.9, 120.2, 42.9, 121.8, 42.9, 123.3, 42.9, + 124.8, 42.9, 126.4, 42.9, 127.9, 42.9, 129.5, 42.9, 131, 42.9, 140.3, 42.9, 141.8, 42.9, 143.3, 41.9, -124.1, 41.9, + -122.5, 41.9, -121, 41.9, -119.4, 41.9, -117.9, 41.9, -116.4, 41.9, -114.8, 41.9, -113.3, 41.9, -111.7, 41.9, -110.2, + 41.9, -108.7, 41.9, -107.1, 41.9, -105.6, 41.9, -104, 41.9, -102.5, 41.9, -101, 41.9, -99.4, 41.9, -97.9, 41.9, -96.3, + 41.9, -94.8, 41.9, -93.2, 41.9, -91.7, 41.9, -90.2, 41.9, -88.6, 41.9, -87.1, 41.9, -85.5, 41.9, -84, 41.9, -82.5, + 41.9, -80.9, 41.9, -79.4, 41.9, -77.8, 41.9, -76.3, 41.9, -74.8, 41.9, -73.2, 41.9, -71.7, 41.9, -8.5, 41.9, -6.9, + 41.9, -5.4, 41.9, -3.9, 41.9, -2.3, 41.9, -0.8, 41.9, 0.8, 41.9, 2.3, 41.9, 13.1, 41.9, 14.6, 41.9, 20.8, 41.9, 22.3, + 41.9, 23.9, 41.9, 25.4, 41.9, 27, 41.9, 33.1, 41.9, 34.7, 41.9, 42.4, 41.9, 43.9, 41.9, 45.5, 41.9, 47, 41.9, 54.7, + 41.9, 56.3, 41.9, 57.8, 41.9, 59.3, 41.9, 60.9, 41.9, 62.4, 41.9, 64, 41.9, 65.5, 41.9, 67, 41.9, 68.6, 41.9, 70.1, + 41.9, 71.7, 41.9, 73.2, 41.9, 74.8, 41.9, 76.3, 41.9, 77.8, 41.9, 79.4, 41.9, 80.9, 41.9, 82.5, 41.9, 84, 41.9, 85.5, + 41.9, 87.1, 41.9, 88.6, 41.9, 90.2, 41.9, 91.7, 41.9, 93.2, 41.9, 94.8, 41.9, 96.3, 41.9, 97.9, 41.9, 99.4, 41.9, 101, + 41.9, 102.5, 41.9, 104, 41.9, 105.6, 41.9, 107.1, 41.9, 108.7, 41.9, 110.2, 41.9, 111.7, 41.9, 113.3, 41.9, 114.8, + 41.9, 116.4, 41.9, 117.9, 41.9, 119.4, 41.9, 121, 41.9, 122.5, 41.9, 124.1, 41.9, 125.6, 41.9, 127.2, 41.9, 128.7, + 41.9, 141, 40.9, -123.3, 40.9, -121.8, 40.9, -120.2, 40.9, -118.7, 40.9, -117.1, 40.9, -115.6, 40.9, -114.1, 40.9, + -112.5, 40.9, -111, 40.9, -109.4, 40.9, -107.9, 40.9, -106.3, 40.9, -104.8, 40.9, -103.3, 40.9, -101.7, 40.9, -100.2, + 40.9, -98.6, 40.9, -97.1, 40.9, -95.6, 40.9, -94, 40.9, -92.5, 40.9, -90.9, 40.9, -89.4, 40.9, -87.9, 40.9, -86.3, + 40.9, -84.8, 40.9, -83.2, 40.9, -81.7, 40.9, -80.1, 40.9, -78.6, 40.9, -77.1, 40.9, -75.5, 40.9, -74, 40.9, -72.4, + 40.9, -7.7, 40.9, -6.2, 40.9, -4.6, 40.9, -3.1, 40.9, -1.5, 40.9, 0, 40.9, 9.2, 40.9, 15.4, 40.9, 17, 40.9, 20, 40.9, + 21.6, 40.9, 23.1, 40.9, 24.7, 40.9, 26.2, 40.9, 29.3, 40.9, 30.8, 40.9, 32.4, 40.9, 33.9, 40.9, 35.4, 40.9, 37, 40.9, + 38.5, 40.9, 40.1, 40.9, 41.6, 40.9, 43.2, 40.9, 44.7, 40.9, 46.2, 40.9, 47.8, 40.9, 49.3, 40.9, 55.5, 40.9, 57, 40.9, + 58.6, 40.9, 60.1, 40.9, 61.7, 40.9, 63.2, 40.9, 64.7, 40.9, 66.3, 40.9, 67.8, 40.9, 69.4, 40.9, 70.9, 40.9, 72.4, + 40.9, 74, 40.9, 75.5, 40.9, 77.1, 40.9, 78.6, 40.9, 80.1, 40.9, 81.7, 40.9, 83.2, 40.9, 84.8, 40.9, 86.3, 40.9, 87.9, + 40.9, 89.4, 40.9, 90.9, 40.9, 92.5, 40.9, 94, 40.9, 95.6, 40.9, 97.1, 40.9, 98.6, 40.9, 100.2, 40.9, 101.7, 40.9, + 103.3, 40.9, 104.8, 40.9, 106.3, 40.9, 107.9, 40.9, 109.4, 40.9, 111, 40.9, 112.5, 40.9, 114.1, 40.9, 115.6, 40.9, + 117.1, 40.9, 118.7, 40.9, 120.2, 40.9, 121.8, 40.9, 123.3, 40.9, 124.8, 40.9, 126.4, 40.9, 127.9, 40.9, 129.5, 40.9, + 140.3, 39.9, -122.5, 39.9, -121, 39.9, -119.4, 39.9, -117.9, 39.9, -116.4, 39.9, -114.8, 39.9, -113.3, 39.9, -111.7, + 39.9, -110.2, 39.9, -108.7, 39.9, -107.1, 39.9, -105.6, 39.9, -104, 39.9, -102.5, 39.9, -101, 39.9, -99.4, 39.9, + -97.9, 39.9, -96.3, 39.9, -94.8, 39.9, -93.2, 39.9, -91.7, 39.9, -90.2, 39.9, -88.6, 39.9, -87.1, 39.9, -85.5, 39.9, + -84, 39.9, -82.5, 39.9, -80.9, 39.9, -79.4, 39.9, -77.8, 39.9, -76.3, 39.9, -74.8, 39.9, -8.5, 39.9, -6.9, 39.9, -5.4, + 39.9, -3.9, 39.9, -2.3, 39.9, -0.8, 39.9, 8.5, 39.9, 16.2, 39.9, 20.8, 39.9, 22.3, 39.9, 27, 39.9, 28.5, 39.9, 30.1, + 39.9, 31.6, 39.9, 33.1, 39.9, 34.7, 39.9, 36.2, 39.9, 37.8, 39.9, 39.3, 39.9, 40.8, 39.9, 42.4, 39.9, 43.9, 39.9, + 45.5, 39.9, 47, 39.9, 48.6, 39.9, 54.7, 39.9, 56.3, 39.9, 57.8, 39.9, 59.3, 39.9, 60.9, 39.9, 62.4, 39.9, 64, 39.9, + 65.5, 39.9, 67, 39.9, 68.6, 39.9, 70.1, 39.9, 71.7, 39.9, 73.2, 39.9, 74.8, 39.9, 76.3, 39.9, 77.8, 39.9, 79.4, 39.9, + 80.9, 39.9, 82.5, 39.9, 84, 39.9, 85.5, 39.9, 87.1, 39.9, 88.6, 39.9, 90.2, 39.9, 91.7, 39.9, 93.2, 39.9, 94.8, 39.9, + 96.3, 39.9, 97.9, 39.9, 99.4, 39.9, 101, 39.9, 102.5, 39.9, 104, 39.9, 105.6, 39.9, 107.1, 39.9, 108.7, 39.9, 110.2, + 39.9, 111.7, 39.9, 113.3, 39.9, 114.8, 39.9, 116.4, 39.9, 117.9, 39.9, 119.4, 39.9, 122.5, 39.9, 125.6, 39.9, 127.2, + 39.9, 141, 38.8, -123.3, 38.8, -121.8, 38.8, -120.2, 38.8, -118.7, 38.8, -117.1, 38.8, -115.6, 38.8, -114.1, 38.8, + -112.5, 38.8, -111, 38.8, -109.4, 38.8, -107.9, 38.8, -106.3, 38.8, -104.8, 38.8, -103.3, 38.8, -101.7, 38.8, -100.2, + 38.8, -98.6, 38.8, -97.1, 38.8, -95.6, 38.8, -94, 38.8, -92.5, 38.8, -90.9, 38.8, -89.4, 38.8, -87.9, 38.8, -86.3, + 38.8, -84.8, 38.8, -83.2, 38.8, -81.7, 38.8, -80.1, 38.8, -78.6, 38.8, -77.1, 38.8, -75.5, 38.8, -9.2, 38.8, -7.7, + 38.8, -6.2, 38.8, -4.6, 38.8, -3.1, 38.8, -1.5, 38.8, 0, 38.8, 21.6, 38.8, 23.1, 38.8, 27.7, 38.8, 29.3, 38.8, 30.8, + 38.8, 32.4, 38.8, 33.9, 38.8, 35.4, 38.8, 37, 38.8, 38.5, 38.8, 40.1, 38.8, 41.6, 38.8, 43.2, 38.8, 44.7, 38.8, 46.2, + 38.8, 47.8, 38.8, 53.9, 38.8, 55.5, 38.8, 57, 38.8, 58.6, 38.8, 60.1, 38.8, 61.7, 38.8, 63.2, 38.8, 64.7, 38.8, 66.3, + 38.8, 67.8, 38.8, 69.4, 38.8, 70.9, 38.8, 72.4, 38.8, 74, 38.8, 75.5, 38.8, 77.1, 38.8, 78.6, 38.8, 80.1, 38.8, 81.7, + 38.8, 83.2, 38.8, 84.8, 38.8, 86.3, 38.8, 87.9, 38.8, 89.4, 38.8, 90.9, 38.8, 92.5, 38.8, 94, 38.8, 95.6, 38.8, 97.1, + 38.8, 98.6, 38.8, 100.2, 38.8, 101.7, 38.8, 103.3, 38.8, 104.8, 38.8, 106.3, 38.8, 107.9, 38.8, 109.4, 38.8, 111, + 38.8, 112.5, 38.8, 114.1, 38.8, 115.6, 38.8, 117.1, 38.8, 126.4, 38.8, 127.9, 38.8, 140.3, 37.8, -121, 37.8, -119.4, + 37.8, -117.9, 37.8, -116.4, 37.8, -114.8, 37.8, -113.3, 37.8, -111.7, 37.8, -110.2, 37.8, -108.7, 37.8, -107.1, 37.8, + -105.6, 37.8, -104, 37.8, -102.5, 37.8, -101, 37.8, -99.4, 37.8, -97.9, 37.8, -96.3, 37.8, -94.8, 37.8, -93.2, 37.8, + -91.7, 37.8, -90.2, 37.8, -88.6, 37.8, -87.1, 37.8, -85.5, 37.8, -84, 37.8, -82.5, 37.8, -80.9, 37.8, -79.4, 37.8, + -77.8, 37.8, -8.5, 37.8, -6.9, 37.8, -5.4, 37.8, -3.9, 37.8, -2.3, 37.8, -0.8, 37.8, 13.1, 37.8, 14.6, 37.8, 22.3, + 37.8, 23.9, 37.8, 27, 37.8, 28.5, 37.8, 30.1, 37.8, 31.6, 37.8, 33.1, 37.8, 34.7, 37.8, 36.2, 37.8, 37.8, 37.8, 39.3, + 37.8, 40.8, 37.8, 42.4, 37.8, 43.9, 37.8, 45.5, 37.8, 47, 37.8, 48.6, 37.8, 54.7, 37.8, 56.3, 37.8, 57.8, 37.8, 59.3, + 37.8, 60.9, 37.8, 62.4, 37.8, 64, 37.8, 65.5, 37.8, 67, 37.8, 68.6, 37.8, 70.1, 37.8, 71.7, 37.8, 73.2, 37.8, 74.8, + 37.8, 76.3, 37.8, 77.8, 37.8, 79.4, 37.8, 80.9, 37.8, 82.5, 37.8, 84, 37.8, 85.5, 37.8, 87.1, 37.8, 88.6, 37.8, 90.2, + 37.8, 91.7, 37.8, 93.2, 37.8, 94.8, 37.8, 96.3, 37.8, 97.9, 37.8, 99.4, 37.8, 101, 37.8, 102.5, 37.8, 104, 37.8, + 105.6, 37.8, 107.1, 37.8, 108.7, 37.8, 110.2, 37.8, 111.7, 37.8, 113.3, 37.8, 114.8, 37.8, 116.4, 37.8, 117.9, 37.8, + 121, 37.8, 127.2, 37.8, 128.7, 37.8, 139.5, 36.7, -121.8, 36.7, -120.2, 36.7, -118.7, 36.7, -117.1, 36.7, -115.6, + 36.7, -114.1, 36.7, -112.5, 36.7, -111, 36.7, -109.4, 36.7, -107.9, 36.7, -106.3, 36.7, -104.8, 36.7, -103.3, 36.7, + -101.7, 36.7, -100.2, 36.7, -98.6, 36.7, -97.1, 36.7, -95.6, 36.7, -94, 36.7, -92.5, 36.7, -90.9, 36.7, -89.4, 36.7, + -87.9, 36.7, -86.3, 36.7, -84.8, 36.7, -83.2, 36.7, -81.7, 36.7, -80.1, 36.7, -78.6, 36.7, -77.1, 36.7, -6.2, 36.7, + -4.6, 36.7, -3.1, 36.7, 3.1, 36.7, 4.6, 36.7, 6.2, 36.7, 7.7, 36.7, 9.2, 36.7, 10.8, 36.7, 27.7, 36.7, 29.3, 36.7, + 30.8, 36.7, 32.4, 36.7, 33.9, 36.7, 35.4, 36.7, 37, 36.7, 38.5, 36.7, 40.1, 36.7, 41.6, 36.7, 43.2, 36.7, 44.7, 36.7, + 46.2, 36.7, 47.8, 36.7, 49.3, 36.7, 50.9, 36.7, 52.4, 36.7, 53.9, 36.7, 55.5, 36.7, 57, 36.7, 58.6, 36.7, 60.1, 36.7, + 61.7, 36.7, 63.2, 36.7, 64.7, 36.7, 66.3, 36.7, 67.8, 36.7, 69.4, 36.7, 70.9, 36.7, 72.4, 36.7, 74, 36.7, 75.5, 36.7, + 77.1, 36.7, 78.6, 36.7, 80.1, 36.7, 81.7, 36.7, 83.2, 36.7, 84.8, 36.7, 86.3, 36.7, 87.9, 36.7, 89.4, 36.7, 90.9, + 36.7, 92.5, 36.7, 94, 36.7, 95.6, 36.7, 97.1, 36.7, 98.6, 36.7, 100.2, 36.7, 101.7, 36.7, 103.3, 36.7, 104.8, 36.7, + 106.3, 36.7, 107.9, 36.7, 109.4, 36.7, 111, 36.7, 112.5, 36.7, 114.1, 36.7, 115.6, 36.7, 117.1, 36.7, 118.7, 36.7, + 120.2, 36.7, 126.4, 36.7, 127.9, 36.7, 137.2, 36.7, 138.7, 36.7, 140.3, 35.6, -121, 35.6, -119.4, 35.6, -117.9, 35.6, + -116.4, 35.6, -114.8, 35.6, -113.3, 35.6, -111.7, 35.6, -110.2, 35.6, -108.7, 35.6, -107.1, 35.6, -105.6, 35.6, -104, + 35.6, -102.5, 35.6, -101, 35.6, -99.4, 35.6, -97.9, 35.6, -96.3, 35.6, -94.8, 35.6, -93.2, 35.6, -91.7, 35.6, -90.2, + 35.6, -88.6, 35.6, -87.1, 35.6, -85.5, 35.6, -84, 35.6, -82.5, 35.6, -80.9, 35.6, -79.4, 35.6, -77.8, 35.6, -76.3, + 35.6, -5.4, 35.6, -0.8, 35.6, 0.8, 35.6, 2.3, 35.6, 3.9, 35.6, 5.4, 35.6, 6.9, 35.6, 8.5, 35.6, 10, 35.6, 36.2, 35.6, + 37.8, 35.6, 39.3, 35.6, 40.8, 35.6, 42.4, 35.6, 43.9, 35.6, 45.5, 35.6, 47, 35.6, 48.6, 35.6, 50.1, 35.6, 51.6, 35.6, + 53.2, 35.6, 54.7, 35.6, 56.3, 35.6, 57.8, 35.6, 59.3, 35.6, 60.9, 35.6, 62.4, 35.6, 64, 35.6, 65.5, 35.6, 67, 35.6, + 68.6, 35.6, 70.1, 35.6, 71.7, 35.6, 73.2, 35.6, 74.8, 35.6, 76.3, 35.6, 77.8, 35.6, 79.4, 35.6, 80.9, 35.6, 82.5, + 35.6, 84, 35.6, 85.5, 35.6, 87.1, 35.6, 88.6, 35.6, 90.2, 35.6, 91.7, 35.6, 93.2, 35.6, 94.8, 35.6, 96.3, 35.6, 97.9, + 35.6, 99.4, 35.6, 101, 35.6, 102.5, 35.6, 104, 35.6, 105.6, 35.6, 107.1, 35.6, 108.7, 35.6, 110.2, 35.6, 111.7, 35.6, + 113.3, 35.6, 114.8, 35.6, 116.4, 35.6, 117.9, 35.6, 119.4, 35.6, 127.2, 35.6, 128.7, 35.6, 134.9, 35.6, 136.4, 35.6, + 137.9, 35.6, 139.5, 34.5, -120.2, 34.5, -118.7, 34.5, -117.1, 34.5, -115.6, 34.5, -114.1, 34.5, -112.5, 34.5, -111, + 34.5, -109.4, 34.5, -107.9, 34.5, -106.3, 34.5, -104.8, 34.5, -103.3, 34.5, -101.7, 34.5, -100.2, 34.5, -98.6, 34.5, + -97.1, 34.5, -95.6, 34.5, -94, 34.5, -92.5, 34.5, -90.9, 34.5, -89.4, 34.5, -87.9, 34.5, -86.3, 34.5, -84.8, 34.5, + -83.2, 34.5, -81.7, 34.5, -80.1, 34.5, -78.6, 34.5, -6.2, 34.5, -4.6, 34.5, -3.1, 34.5, -1.5, 34.5, 0, 34.5, 1.5, + 34.5, 3.1, 34.5, 4.6, 34.5, 6.2, 34.5, 7.7, 34.5, 9.2, 34.5, 37, 34.5, 38.5, 34.5, 40.1, 34.5, 41.6, 34.5, 43.2, 34.5, + 44.7, 34.5, 46.2, 34.5, 47.8, 34.5, 49.3, 34.5, 50.9, 34.5, 52.4, 34.5, 53.9, 34.5, 55.5, 34.5, 57, 34.5, 58.6, 34.5, + 60.1, 34.5, 61.7, 34.5, 63.2, 34.5, 64.7, 34.5, 66.3, 34.5, 67.8, 34.5, 69.4, 34.5, 70.9, 34.5, 72.4, 34.5, 74, 34.5, + 75.5, 34.5, 77.1, 34.5, 78.6, 34.5, 80.1, 34.5, 81.7, 34.5, 83.2, 34.5, 84.8, 34.5, 86.3, 34.5, 87.9, 34.5, 89.4, + 34.5, 90.9, 34.5, 92.5, 34.5, 94, 34.5, 95.6, 34.5, 97.1, 34.5, 98.6, 34.5, 100.2, 34.5, 101.7, 34.5, 103.3, 34.5, + 104.8, 34.5, 106.3, 34.5, 107.9, 34.5, 109.4, 34.5, 111, 34.5, 112.5, 34.5, 114.1, 34.5, 115.6, 34.5, 117.1, 34.5, + 118.7, 34.5, 132.6, 34.5, 134.1, 34.5, 135.6, 33.4, -116.4, 33.4, -114.8, 33.4, -113.3, 33.4, -111.7, 33.4, -110.2, + 33.4, -108.7, 33.4, -107.1, 33.4, -105.6, 33.4, -104, 33.4, -102.5, 33.4, -101, 33.4, -99.4, 33.4, -97.9, 33.4, -96.3, + 33.4, -94.8, 33.4, -93.2, 33.4, -91.7, 33.4, -90.2, 33.4, -88.6, 33.4, -87.1, 33.4, -85.5, 33.4, -84, 33.4, -82.5, + 33.4, -80.9, 33.4, -79.4, 33.4, -6.9, 33.4, -5.4, 33.4, -3.9, 33.4, -2.3, 33.4, -0.8, 33.4, 0.8, 33.4, 2.3, 33.4, 3.9, + 33.4, 5.4, 33.4, 6.9, 33.4, 8.5, 33.4, 10, 33.4, 36.2, 33.4, 37.8, 33.4, 39.3, 33.4, 40.8, 33.4, 42.4, 33.4, 43.9, + 33.4, 45.5, 33.4, 47, 33.4, 48.6, 33.4, 50.1, 33.4, 51.6, 33.4, 53.2, 33.4, 54.7, 33.4, 56.3, 33.4, 57.8, 33.4, 59.3, + 33.4, 60.9, 33.4, 62.4, 33.4, 64, 33.4, 65.5, 33.4, 67, 33.4, 68.6, 33.4, 70.1, 33.4, 71.7, 33.4, 73.2, 33.4, 74.8, + 33.4, 76.3, 33.4, 77.8, 33.4, 79.4, 33.4, 80.9, 33.4, 82.5, 33.4, 84, 33.4, 85.5, 33.4, 87.1, 33.4, 88.6, 33.4, 90.2, + 33.4, 91.7, 33.4, 93.2, 33.4, 94.8, 33.4, 96.3, 33.4, 97.9, 33.4, 99.4, 33.4, 101, 33.4, 102.5, 33.4, 104, 33.4, + 105.6, 33.4, 107.1, 33.4, 108.7, 33.4, 110.2, 33.4, 111.7, 33.4, 113.3, 33.4, 114.8, 33.4, 116.4, 33.4, 117.9, 33.4, + 119.4, 33.4, 130.2, 33.4, 133.3, 32.3, -115.6, 32.3, -114.1, 32.3, -112.5, 32.3, -111, 32.3, -109.4, 32.3, -107.9, + 32.3, -106.3, 32.3, -104.8, 32.3, -103.3, 32.3, -101.7, 32.3, -100.2, 32.3, -98.6, 32.3, -97.1, 32.3, -95.6, 32.3, + -94, 32.3, -92.5, 32.3, -90.9, 32.3, -89.4, 32.3, -87.9, 32.3, -86.3, 32.3, -84.8, 32.3, -83.2, 32.3, -81.7, 32.3, + -9.2, 32.3, -7.7, 32.3, -6.2, 32.3, -4.6, 32.3, -3.1, 32.3, -1.5, 32.3, 0, 32.3, 1.5, 32.3, 3.1, 32.3, 4.6, 32.3, 6.2, + 32.3, 7.7, 32.3, 9.2, 32.3, 10.8, 32.3, 12.3, 32.3, 13.9, 32.3, 21.6, 32.3, 23.1, 32.3, 35.4, 32.3, 37, 32.3, 38.5, + 32.3, 40.1, 32.3, 41.6, 32.3, 43.2, 32.3, 44.7, 32.3, 46.2, 32.3, 47.8, 32.3, 49.3, 32.3, 50.9, 32.3, 52.4, 32.3, + 53.9, 32.3, 55.5, 32.3, 57, 32.3, 58.6, 32.3, 60.1, 32.3, 61.7, 32.3, 63.2, 32.3, 64.7, 32.3, 66.3, 32.3, 67.8, 32.3, + 69.4, 32.3, 70.9, 32.3, 72.4, 32.3, 74, 32.3, 75.5, 32.3, 77.1, 32.3, 78.6, 32.3, 80.1, 32.3, 81.7, 32.3, 83.2, 32.3, + 84.8, 32.3, 86.3, 32.3, 87.9, 32.3, 89.4, 32.3, 90.9, 32.3, 92.5, 32.3, 94, 32.3, 95.6, 32.3, 97.1, 32.3, 98.6, 32.3, + 100.2, 32.3, 101.7, 32.3, 103.3, 32.3, 104.8, 32.3, 106.3, 32.3, 107.9, 32.3, 109.4, 32.3, 111, 32.3, 112.5, 32.3, + 114.1, 32.3, 115.6, 32.3, 117.1, 32.3, 118.7, 32.3, 120.2, 32.3, 131, 31.2, -116.4, 31.2, -111.7, 31.2, -110.2, 31.2, + -108.7, 31.2, -107.1, 31.2, -105.6, 31.2, -104, 31.2, -102.5, 31.2, -101, 31.2, -99.4, 31.2, -97.9, 31.2, -96.3, 31.2, + -94.8, 31.2, -93.2, 31.2, -91.7, 31.2, -90.2, 31.2, -88.6, 31.2, -87.1, 31.2, -85.5, 31.2, -84, 31.2, -82.5, 31.2, + -8.5, 31.2, -6.9, 31.2, -5.4, 31.2, -3.9, 31.2, -2.3, 31.2, -0.8, 31.2, 0.8, 31.2, 2.3, 31.2, 3.9, 31.2, 5.4, 31.2, + 6.9, 31.2, 8.5, 31.2, 10, 31.2, 11.6, 31.2, 13.1, 31.2, 14.6, 31.2, 16.2, 31.2, 20.8, 31.2, 22.3, 31.2, 23.9, 31.2, + 25.4, 31.2, 27, 31.2, 30.1, 31.2, 31.6, 31.2, 34.7, 31.2, 36.2, 31.2, 37.8, 31.2, 39.3, 31.2, 40.8, 31.2, 42.4, 31.2, + 43.9, 31.2, 45.5, 31.2, 47, 31.2, 48.6, 31.2, 50.1, 31.2, 51.6, 31.2, 53.2, 31.2, 54.7, 31.2, 56.3, 31.2, 57.8, 31.2, + 59.3, 31.2, 60.9, 31.2, 62.4, 31.2, 64, 31.2, 65.5, 31.2, 67, 31.2, 68.6, 31.2, 70.1, 31.2, 71.7, 31.2, 73.2, 31.2, + 74.8, 31.2, 76.3, 31.2, 77.8, 31.2, 79.4, 31.2, 80.9, 31.2, 82.5, 31.2, 84, 31.2, 85.5, 31.2, 87.1, 31.2, 88.6, 31.2, + 90.2, 31.2, 91.7, 31.2, 93.2, 31.2, 94.8, 31.2, 96.3, 31.2, 97.9, 31.2, 99.4, 31.2, 101, 31.2, 102.5, 31.2, 104, 31.2, + 105.6, 31.2, 107.1, 31.2, 108.7, 31.2, 110.2, 31.2, 111.7, 31.2, 113.3, 31.2, 114.8, 31.2, 116.4, 31.2, 117.9, 31.2, + 119.4, 31.2, 121, 30, -115.6, 30, -112.5, 30, -111, 30, -109.4, 30, -107.9, 30, -106.3, 30, -104.8, 30, -103.3, 30, + -101.7, 30, -100.2, 30, -98.6, 30, -97.1, 30, -95.6, 30, -94, 30, -92.5, 30, -90.9, 30, -84.8, 30, -83.2, 30, -81.7, + 30, -9.2, 30, -7.7, 30, -6.2, 30, -4.6, 30, -3.1, 30, -1.5, 30, 0, 30, 1.5, 30, 3.1, 30, 4.6, 30, 6.2, 30, 7.7, 30, + 9.2, 30, 10.8, 30, 12.3, 30, 13.9, 30, 15.4, 30, 17, 30, 18.5, 30, 20, 30, 21.6, 30, 23.1, 30, 24.7, 30, 26.2, 30, + 27.7, 30, 29.3, 30, 30.8, 30, 32.4, 30, 33.9, 30, 35.4, 30, 37, 30, 38.5, 30, 40.1, 30, 41.6, 30, 43.2, 30, 44.7, 30, + 46.2, 30, 47.8, 30, 50.9, 30, 52.4, 30, 53.9, 30, 55.5, 30, 57, 30, 58.6, 30, 60.1, 30, 61.7, 30, 63.2, 30, 64.7, 30, + 66.3, 30, 67.8, 30, 69.4, 30, 70.9, 30, 72.4, 30, 74, 30, 75.5, 30, 77.1, 30, 78.6, 30, 80.1, 30, 81.7, 30, 83.2, 30, + 84.8, 30, 86.3, 30, 87.9, 30, 89.4, 30, 90.9, 30, 92.5, 30, 94, 30, 95.6, 30, 97.1, 30, 98.6, 30, 100.2, 30, 101.7, + 30, 103.3, 30, 104.8, 30, 106.3, 30, 107.9, 30, 109.4, 30, 111, 30, 112.5, 30, 114.1, 30, 115.6, 30, 117.1, 30, 118.7, + 30, 120.2, 30, 121.8, 28.8, -111.7, 28.8, -110.2, 28.8, -108.7, 28.8, -107.1, 28.8, -105.6, 28.8, -104, 28.8, -102.5, + 28.8, -101, 28.8, -99.4, 28.8, -97.9, 28.8, -96.3, 28.8, -82.5, 28.8, -80.9, 28.8, -10, 28.8, -8.5, 28.8, -6.9, 28.8, + -5.4, 28.8, -3.9, 28.8, -2.3, 28.8, -0.8, 28.8, 0.8, 28.8, 2.3, 28.8, 3.9, 28.8, 5.4, 28.8, 6.9, 28.8, 8.5, 28.8, 10, + 28.8, 11.6, 28.8, 13.1, 28.8, 14.6, 28.8, 16.2, 28.8, 17.7, 28.8, 19.3, 28.8, 20.8, 28.8, 22.3, 28.8, 23.9, 28.8, + 25.4, 28.8, 27, 28.8, 28.5, 28.8, 30.1, 28.8, 31.6, 28.8, 33.1, 28.8, 36.2, 28.8, 37.8, 28.8, 39.3, 28.8, 40.8, 28.8, + 42.4, 28.8, 43.9, 28.8, 45.5, 28.8, 47, 28.8, 51.6, 28.8, 53.2, 28.8, 54.7, 28.8, 56.3, 28.8, 57.8, 28.8, 59.3, 28.8, + 60.9, 28.8, 62.4, 28.8, 64, 28.8, 65.5, 28.8, 67, 28.8, 68.6, 28.8, 70.1, 28.8, 71.7, 28.8, 73.2, 28.8, 74.8, 28.8, + 76.3, 28.8, 77.8, 28.8, 79.4, 28.8, 80.9, 28.8, 82.5, 28.8, 84, 28.8, 85.5, 28.8, 87.1, 28.8, 88.6, 28.8, 90.2, 28.8, + 91.7, 28.8, 93.2, 28.8, 94.8, 28.8, 96.3, 28.8, 97.9, 28.8, 99.4, 28.8, 101, 28.8, 102.5, 28.8, 104, 28.8, 105.6, + 28.8, 107.1, 28.8, 108.7, 28.8, 110.2, 28.8, 111.7, 28.8, 113.3, 28.8, 114.8, 28.8, 116.4, 28.8, 117.9, 28.8, 119.4, + 28.8, 121, 27.6, -114.1, 27.6, -109.4, 27.6, -107.9, 27.6, -106.3, 27.6, -104.8, 27.6, -103.3, 27.6, -101.7, 27.6, + -100.2, 27.6, -98.6, 27.6, -81.7, 27.6, -12.3, 27.6, -10.8, 27.6, -9.2, 27.6, -7.7, 27.6, -6.2, 27.6, -4.6, 27.6, + -3.1, 27.6, -1.5, 27.6, 0, 27.6, 1.5, 27.6, 3.1, 27.6, 4.6, 27.6, 6.2, 27.6, 7.7, 27.6, 9.2, 27.6, 10.8, 27.6, 12.3, + 27.6, 13.9, 27.6, 15.4, 27.6, 17, 27.6, 18.5, 27.6, 20, 27.6, 21.6, 27.6, 23.1, 27.6, 24.7, 27.6, 26.2, 27.6, 27.7, + 27.6, 29.3, 27.6, 30.8, 27.6, 32.4, 27.6, 35.4, 27.6, 37, 27.6, 38.5, 27.6, 40.1, 27.6, 41.6, 27.6, 43.2, 27.6, 44.7, + 27.6, 46.2, 27.6, 47.8, 27.6, 52.4, 27.6, 53.9, 27.6, 55.5, 27.6, 57, 27.6, 58.6, 27.6, 60.1, 27.6, 61.7, 27.6, 63.2, + 27.6, 64.7, 27.6, 66.3, 27.6, 67.8, 27.6, 69.4, 27.6, 70.9, 27.6, 72.4, 27.6, 74, 27.6, 75.5, 27.6, 77.1, 27.6, 78.6, + 27.6, 80.1, 27.6, 81.7, 27.6, 83.2, 27.6, 84.8, 27.6, 86.3, 27.6, 87.9, 27.6, 89.4, 27.6, 90.9, 27.6, 92.5, 27.6, 94, + 27.6, 95.6, 27.6, 97.1, 27.6, 98.6, 27.6, 100.2, 27.6, 101.7, 27.6, 103.3, 27.6, 104.8, 27.6, 106.3, 27.6, 107.9, + 27.6, 109.4, 27.6, 111, 27.6, 112.5, 27.6, 114.1, 27.6, 115.6, 27.6, 117.1, 27.6, 118.7, 27.6, 120.2, 26.4, -111.7, + 26.4, -108.7, 26.4, -107.1, 26.4, -105.6, 26.4, -104, 26.4, -102.5, 26.4, -101, 26.4, -99.4, 26.4, -97.9, 26.4, -80.9, + 26.4, -13.1, 26.4, -11.6, 26.4, -10, 26.4, -8.5, 26.4, -6.9, 26.4, -5.4, 26.4, -3.9, 26.4, -2.3, 26.4, -0.8, 26.4, + 0.8, 26.4, 2.3, 26.4, 3.9, 26.4, 5.4, 26.4, 6.9, 26.4, 8.5, 26.4, 10, 26.4, 11.6, 26.4, 13.1, 26.4, 14.6, 26.4, 16.2, + 26.4, 17.7, 26.4, 19.3, 26.4, 20.8, 26.4, 22.3, 26.4, 23.9, 26.4, 25.4, 26.4, 27, 26.4, 28.5, 26.4, 30.1, 26.4, 31.6, + 26.4, 33.1, 26.4, 37.8, 26.4, 39.3, 26.4, 40.8, 26.4, 42.4, 26.4, 43.9, 26.4, 45.5, 26.4, 47, 26.4, 48.6, 26.4, 50.1, + 26.4, 57.8, 26.4, 59.3, 26.4, 60.9, 26.4, 62.4, 26.4, 64, 26.4, 65.5, 26.4, 67, 26.4, 68.6, 26.4, 70.1, 26.4, 71.7, + 26.4, 73.2, 26.4, 74.8, 26.4, 76.3, 26.4, 77.8, 26.4, 79.4, 26.4, 80.9, 26.4, 82.5, 26.4, 84, 26.4, 85.5, 26.4, 87.1, + 26.4, 88.6, 26.4, 90.2, 26.4, 91.7, 26.4, 93.2, 26.4, 94.8, 26.4, 96.3, 26.4, 97.9, 26.4, 99.4, 26.4, 101, 26.4, + 102.5, 26.4, 104, 26.4, 105.6, 26.4, 107.1, 26.4, 108.7, 26.4, 110.2, 26.4, 111.7, 26.4, 113.3, 26.4, 114.8, 26.4, + 116.4, 26.4, 117.9, 26.4, 119.4, 25.2, -111, 25.2, -107.9, 25.2, -106.3, 25.2, -104.8, 25.2, -103.3, 25.2, -101.7, + 25.2, -100.2, 25.2, -98.6, 25.2, -13.9, 25.2, -12.3, 25.2, -10.8, 25.2, -9.2, 25.2, -7.7, 25.2, -6.2, 25.2, -4.6, + 25.2, -3.1, 25.2, -1.5, 25.2, 0, 25.2, 1.5, 25.2, 3.1, 25.2, 4.6, 25.2, 6.2, 25.2, 7.7, 25.2, 9.2, 25.2, 10.8, 25.2, + 12.3, 25.2, 13.9, 25.2, 15.4, 25.2, 17, 25.2, 18.5, 25.2, 20, 25.2, 21.6, 25.2, 23.1, 25.2, 24.7, 25.2, 26.2, 25.2, + 27.7, 25.2, 29.3, 25.2, 30.8, 25.2, 32.4, 25.2, 33.9, 25.2, 38.5, 25.2, 40.1, 25.2, 41.6, 25.2, 43.2, 25.2, 44.7, + 25.2, 46.2, 25.2, 47.8, 25.2, 49.3, 25.2, 50.9, 25.2, 55.5, 25.2, 61.7, 25.2, 63.2, 25.2, 67.8, 25.2, 69.4, 25.2, + 70.9, 25.2, 72.4, 25.2, 74, 25.2, 75.5, 25.2, 77.1, 25.2, 78.6, 25.2, 80.1, 25.2, 81.7, 25.2, 83.2, 25.2, 84.8, 25.2, + 86.3, 25.2, 87.9, 25.2, 89.4, 25.2, 90.9, 25.2, 92.5, 25.2, 94, 25.2, 95.6, 25.2, 97.1, 25.2, 98.6, 25.2, 100.2, 25.2, + 101.7, 25.2, 103.3, 25.2, 104.8, 25.2, 106.3, 25.2, 107.9, 25.2, 109.4, 25.2, 111, 25.2, 112.5, 25.2, 114.1, 25.2, + 115.6, 25.2, 117.1, 25.2, 118.7, 24, -110.2, 24, -107.1, 24, -105.6, 24, -104, 24, -102.5, 24, -101, 24, -99.4, 24, + -97.9, 24, -77.8, 24, -14.6, 24, -13.1, 24, -11.6, 24, -10, 24, -8.5, 24, -6.9, 24, -5.4, 24, -3.9, 24, -2.3, 24, + -0.8, 24, 0.8, 24, 2.3, 24, 3.9, 24, 5.4, 24, 6.9, 24, 8.5, 24, 10, 24, 11.6, 24, 13.1, 24, 14.6, 24, 16.2, 24, 17.7, + 24, 19.3, 24, 20.8, 24, 22.3, 24, 23.9, 24, 25.4, 24, 27, 24, 28.5, 24, 30.1, 24, 31.6, 24, 33.1, 24, 34.7, 24, 39.3, + 24, 40.8, 24, 42.4, 24, 43.9, 24, 45.5, 24, 47, 24, 48.6, 24, 50.1, 24, 51.6, 24, 53.2, 24, 54.7, 24, 56.3, 24, 68.6, + 24, 70.1, 24, 71.7, 24, 73.2, 24, 74.8, 24, 76.3, 24, 77.8, 24, 79.4, 24, 80.9, 24, 82.5, 24, 84, 24, 85.5, 24, 87.1, + 24, 88.6, 24, 90.2, 24, 91.7, 24, 93.2, 24, 94.8, 24, 96.3, 24, 97.9, 24, 99.4, 24, 101, 24, 102.5, 24, 104, 24, + 105.6, 24, 107.1, 24, 108.7, 24, 110.2, 24, 111.7, 24, 113.3, 24, 114.8, 24, 116.4, 24, 121, 22.8, -104.8, 22.8, + -103.3, 22.8, -101.7, 22.8, -100.2, 22.8, -98.6, 22.8, -83.2, 22.8, -81.7, 22.8, -80.1, 22.8, -15.4, 22.8, -13.9, + 22.8, -12.3, 22.8, -10.8, 22.8, -9.2, 22.8, -7.7, 22.8, -6.2, 22.8, -4.6, 22.8, -3.1, 22.8, -1.5, 22.8, 0, 22.8, 1.5, + 22.8, 3.1, 22.8, 4.6, 22.8, 6.2, 22.8, 7.7, 22.8, 9.2, 22.8, 10.8, 22.8, 12.3, 22.8, 13.9, 22.8, 15.4, 22.8, 17, 22.8, + 18.5, 22.8, 20, 22.8, 21.6, 22.8, 23.1, 22.8, 24.7, 22.8, 26.2, 22.8, 27.7, 22.8, 29.3, 22.8, 30.8, 22.8, 32.4, 22.8, + 33.9, 22.8, 35.4, 22.8, 40.1, 22.8, 41.6, 22.8, 43.2, 22.8, 44.7, 22.8, 46.2, 22.8, 47.8, 22.8, 49.3, 22.8, 50.9, + 22.8, 52.4, 22.8, 53.9, 22.8, 55.5, 22.8, 57, 22.8, 58.6, 22.8, 70.9, 22.8, 72.4, 22.8, 74, 22.8, 75.5, 22.8, 77.1, + 22.8, 78.6, 22.8, 80.1, 22.8, 81.7, 22.8, 83.2, 22.8, 84.8, 22.8, 86.3, 22.8, 87.9, 22.8, 89.4, 22.8, 90.9, 22.8, + 92.5, 22.8, 94, 22.8, 95.6, 22.8, 97.1, 22.8, 98.6, 22.8, 100.2, 22.8, 101.7, 22.8, 103.3, 22.8, 104.8, 22.8, 106.3, + 22.8, 107.9, 22.8, 109.4, 22.8, 111, 22.8, 112.5, 22.8, 114.1, 22.8, 115.6, 21.5, -158, 21.5, -104, 21.5, -102.5, + 21.5, -101, 21.5, -99.4, 21.5, -97.9, 21.5, -77.8, 21.5, -16.2, 21.5, -14.6, 21.5, -13.1, 21.5, -11.6, 21.5, -10, + 21.5, -8.5, 21.5, -6.9, 21.5, -5.4, 21.5, -3.9, 21.5, -2.3, 21.5, -0.8, 21.5, 0.8, 21.5, 2.3, 21.5, 3.9, 21.5, 5.4, + 21.5, 6.9, 21.5, 8.5, 21.5, 10, 21.5, 11.6, 21.5, 13.1, 21.5, 14.6, 21.5, 16.2, 21.5, 17.7, 21.5, 19.3, 21.5, 20.8, + 21.5, 22.3, 21.5, 23.9, 21.5, 25.4, 21.5, 27, 21.5, 28.5, 21.5, 30.1, 21.5, 31.6, 21.5, 33.1, 21.5, 34.7, 21.5, 36.2, + 21.5, 39.3, 21.5, 40.8, 21.5, 42.4, 21.5, 43.9, 21.5, 45.5, 21.5, 47, 21.5, 48.6, 21.5, 50.1, 21.5, 51.6, 21.5, 53.2, + 21.5, 54.7, 21.5, 56.3, 21.5, 57.8, 21.5, 59.3, 21.5, 70.1, 21.5, 71.7, 21.5, 73.2, 21.5, 74.8, 21.5, 76.3, 21.5, + 77.8, 21.5, 79.4, 21.5, 80.9, 21.5, 82.5, 21.5, 84, 21.5, 85.5, 21.5, 87.1, 21.5, 93.2, 21.5, 94.8, 21.5, 96.3, 21.5, + 97.9, 21.5, 99.4, 21.5, 101, 21.5, 102.5, 21.5, 104, 21.5, 105.6, 21.5, 107.1, 21.5, 110.2, 21.5, 111.7, 20.3, -104.8, + 20.3, -103.3, 20.3, -101.7, 20.3, -100.2, 20.3, -98.6, 20.3, -97.1, 20.3, -89.4, 20.3, -87.9, 20.3, -77.1, 20.3, + -75.5, 20.3, -15.4, 20.3, -13.9, 20.3, -12.3, 20.3, -10.8, 20.3, -9.2, 20.3, -7.7, 20.3, -6.2, 20.3, -4.6, 20.3, -3.1, + 20.3, -1.5, 20.3, 0, 20.3, 1.5, 20.3, 3.1, 20.3, 4.6, 20.3, 6.2, 20.3, 7.7, 20.3, 9.2, 20.3, 10.8, 20.3, 12.3, 20.3, + 13.9, 20.3, 15.4, 20.3, 17, 20.3, 18.5, 20.3, 20, 20.3, 21.6, 20.3, 23.1, 20.3, 24.7, 20.3, 26.2, 20.3, 27.7, 20.3, + 29.3, 20.3, 30.8, 20.3, 32.4, 20.3, 33.9, 20.3, 35.4, 20.3, 37, 20.3, 40.1, 20.3, 41.6, 20.3, 43.2, 20.3, 44.7, 20.3, + 46.2, 20.3, 47.8, 20.3, 49.3, 20.3, 50.9, 20.3, 52.4, 20.3, 53.9, 20.3, 55.5, 20.3, 57, 20.3, 74, 20.3, 75.5, 20.3, + 77.1, 20.3, 78.6, 20.3, 80.1, 20.3, 81.7, 20.3, 83.2, 20.3, 84.8, 20.3, 86.3, 20.3, 94, 20.3, 95.6, 20.3, 97.1, 20.3, + 98.6, 20.3, 100.2, 20.3, 101.7, 20.3, 103.3, 20.3, 104.8, 20.3, 106.3, 19, -104, 19, -102.5, 19, -101, 19, -99.4, 19, + -97.9, 19, -96.3, 19, -90.2, 19, -88.6, 19, -71.7, 19, -70.1, 19, -16.2, 19, -14.6, 19, -13.1, 19, -11.6, 19, -10, 19, + -8.5, 19, -6.9, 19, -5.4, 19, -3.9, 19, -2.3, 19, -0.8, 19, 0.8, 19, 2.3, 19, 3.9, 19, 5.4, 19, 6.9, 19, 8.5, 19, 10, + 19, 11.6, 19, 13.1, 19, 14.6, 19, 16.2, 19, 17.7, 19, 19.3, 19, 20.8, 19, 22.3, 19, 23.9, 19, 25.4, 19, 27, 19, 28.5, + 19, 30.1, 19, 31.6, 19, 33.1, 19, 34.7, 19, 36.2, 19, 42.4, 19, 43.9, 19, 45.5, 19, 47, 19, 48.6, 19, 50.1, 19, 51.6, + 19, 53.2, 19, 54.7, 19, 56.3, 19, 73.2, 19, 74.8, 19, 76.3, 19, 77.8, 19, 79.4, 19, 80.9, 19, 82.5, 19, 84, 19, 94.8, + 19, 96.3, 19, 97.9, 19, 99.4, 19, 101, 19, 102.5, 19, 104, 19, 105.6, 19, 108.7, 19, 110.2, 17.7, -101.7, 17.7, + -100.2, 17.7, -98.6, 17.7, -97.1, 17.7, -95.6, 17.7, -94, 17.7, -92.5, 17.7, -90.9, 17.7, -89.4, 17.7, -15.4, 17.7, + -13.9, 17.7, -12.3, 17.7, -10.8, 17.7, -9.2, 17.7, -7.7, 17.7, -6.2, 17.7, -4.6, 17.7, -3.1, 17.7, -1.5, 17.7, 0, + 17.7, 1.5, 17.7, 3.1, 17.7, 4.6, 17.7, 6.2, 17.7, 7.7, 17.7, 9.2, 17.7, 10.8, 17.7, 12.3, 17.7, 13.9, 17.7, 15.4, + 17.7, 17, 17.7, 18.5, 17.7, 20, 17.7, 21.6, 17.7, 23.1, 17.7, 24.7, 17.7, 26.2, 17.7, 27.7, 17.7, 29.3, 17.7, 30.8, + 17.7, 32.4, 17.7, 33.9, 17.7, 35.4, 17.7, 37, 17.7, 38.5, 17.7, 43.2, 17.7, 44.7, 17.7, 46.2, 17.7, 47.8, 17.7, 49.3, + 17.7, 50.9, 17.7, 52.4, 17.7, 53.9, 17.7, 74, 17.7, 75.5, 17.7, 77.1, 17.7, 78.6, 17.7, 80.1, 17.7, 81.7, 17.7, 83.2, + 17.7, 95.6, 17.7, 97.1, 17.7, 98.6, 17.7, 100.2, 17.7, 101.7, 17.7, 103.3, 17.7, 104.8, 17.7, 106.3, 17.7, 121.8, + 16.5, -97.9, 16.5, -96.3, 16.5, -94.8, 16.5, -93.2, 16.5, -91.7, 16.5, -90.2, 16.5, -88.6, 16.5, -16.2, 16.5, -14.6, + 16.5, -13.1, 16.5, -11.6, 16.5, -10, 16.5, -8.5, 16.5, -6.9, 16.5, -5.4, 16.5, -3.9, 16.5, -2.3, 16.5, -0.8, 16.5, + 0.8, 16.5, 2.3, 16.5, 3.9, 16.5, 5.4, 16.5, 6.9, 16.5, 8.5, 16.5, 10, 16.5, 11.6, 16.5, 13.1, 16.5, 14.6, 16.5, 16.2, + 16.5, 17.7, 16.5, 19.3, 16.5, 20.8, 16.5, 22.3, 16.5, 23.9, 16.5, 25.4, 16.5, 27, 16.5, 28.5, 16.5, 30.1, 16.5, 31.6, + 16.5, 33.1, 16.5, 34.7, 16.5, 36.2, 16.5, 37.8, 16.5, 43.9, 16.5, 45.5, 16.5, 47, 16.5, 48.6, 16.5, 50.1, 16.5, 51.6, + 16.5, 74.8, 16.5, 76.3, 16.5, 77.8, 16.5, 79.4, 16.5, 80.9, 16.5, 94.8, 16.5, 96.3, 16.5, 97.9, 16.5, 99.4, 16.5, 101, + 16.5, 102.5, 16.5, 104, 16.5, 105.6, 16.5, 107.1, 16.5, 121, 15.2, -92.5, 15.2, -90.9, 15.2, -89.4, 15.2, -87.9, 15.2, + -86.3, 15.2, -84.8, 15.2, -17, 15.2, -15.4, 15.2, -13.9, 15.2, -12.3, 15.2, -10.8, 15.2, -9.2, 15.2, -7.7, 15.2, -6.2, + 15.2, -4.6, 15.2, -3.1, 15.2, -1.5, 15.2, 0, 15.2, 1.5, 15.2, 3.1, 15.2, 4.6, 15.2, 6.2, 15.2, 7.7, 15.2, 9.2, 15.2, + 10.8, 15.2, 12.3, 15.2, 13.9, 15.2, 15.4, 15.2, 17, 15.2, 18.5, 15.2, 20, 15.2, 21.6, 15.2, 23.1, 15.2, 24.7, 15.2, + 26.2, 15.2, 27.7, 15.2, 29.3, 15.2, 30.8, 15.2, 32.4, 15.2, 33.9, 15.2, 35.4, 15.2, 37, 15.2, 38.5, 15.2, 40.1, 15.2, + 43.2, 15.2, 44.7, 15.2, 46.2, 15.2, 47.8, 15.2, 49.3, 15.2, 50.9, 15.2, 75.5, 15.2, 77.1, 15.2, 78.6, 15.2, 98.6, + 15.2, 100.2, 15.2, 101.7, 15.2, 103.3, 15.2, 104.8, 15.2, 106.3, 15.2, 107.9, 15.2, 120.2, 13.9, -90.2, 13.9, -88.6, + 13.9, -87.1, 13.9, -85.5, 13.9, -84, 13.9, -16.2, 13.9, -14.6, 13.9, -13.1, 13.9, -11.6, 13.9, -10, 13.9, -8.5, 13.9, + -6.9, 13.9, -5.4, 13.9, -3.9, 13.9, -2.3, 13.9, -0.8, 13.9, 0.8, 13.9, 2.3, 13.9, 3.9, 13.9, 5.4, 13.9, 6.9, 13.9, + 8.5, 13.9, 10, 13.9, 11.6, 13.9, 13.1, 13.9, 14.6, 13.9, 16.2, 13.9, 17.7, 13.9, 19.3, 13.9, 20.8, 13.9, 22.3, 13.9, + 23.9, 13.9, 25.4, 13.9, 27, 13.9, 28.5, 13.9, 30.1, 13.9, 31.6, 13.9, 33.1, 13.9, 34.7, 13.9, 36.2, 13.9, 37.8, 13.9, + 39.3, 13.9, 40.8, 13.9, 43.9, 13.9, 45.5, 13.9, 47, 13.9, 74.8, 13.9, 76.3, 13.9, 77.8, 13.9, 79.4, 13.9, 99.4, 13.9, + 101, 13.9, 102.5, 13.9, 104, 13.9, 105.6, 13.9, 107.1, 13.9, 108.7, 13.9, 121, 13.9, 122.5, 12.6, -86.3, 12.6, -84.8, + 12.6, -15.4, 12.6, -13.9, 12.6, -12.3, 12.6, -10.8, 12.6, -9.2, 12.6, -7.7, 12.6, -6.2, 12.6, -4.6, 12.6, -3.1, 12.6, + -1.5, 12.6, 0, 12.6, 1.5, 12.6, 3.1, 12.6, 4.6, 12.6, 6.2, 12.6, 7.7, 12.6, 9.2, 12.6, 10.8, 12.6, 12.3, 12.6, 13.9, + 12.6, 15.4, 12.6, 17, 12.6, 18.5, 12.6, 20, 12.6, 21.6, 12.6, 23.1, 12.6, 24.7, 12.6, 26.2, 12.6, 27.7, 12.6, 29.3, + 12.6, 30.8, 12.6, 32.4, 12.6, 33.9, 12.6, 35.4, 12.6, 37, 12.6, 38.5, 12.6, 40.1, 12.6, 41.6, 12.6, 43.2, 12.6, 75.5, + 12.6, 77.1, 12.6, 78.6, 12.6, 98.6, 12.6, 103.3, 12.6, 104.8, 12.6, 106.3, 12.6, 107.9, 11.2, -85.5, 11.2, -84, 11.2, + -73.2, 11.2, -70.1, 11.2, -14.6, 11.2, -13.1, 11.2, -11.6, 11.2, -10, 11.2, -8.5, 11.2, -6.9, 11.2, -5.4, 11.2, -3.9, + 11.2, -2.3, 11.2, -0.8, 11.2, 0.8, 11.2, 2.3, 11.2, 3.9, 11.2, 5.4, 11.2, 6.9, 11.2, 8.5, 11.2, 10, 11.2, 11.6, 11.2, + 13.1, 11.2, 14.6, 11.2, 16.2, 11.2, 17.7, 11.2, 19.3, 11.2, 20.8, 11.2, 22.3, 11.2, 23.9, 11.2, 25.4, 11.2, 27, 11.2, + 28.5, 11.2, 30.1, 11.2, 31.6, 11.2, 33.1, 11.2, 34.7, 11.2, 36.2, 11.2, 37.8, 11.2, 39.3, 11.2, 40.8, 11.2, 42.4, + 11.2, 48.6, 11.2, 50.1, 11.2, 76.3, 11.2, 77.8, 11.2, 79.4, 11.2, 99.4, 11.2, 104, 11.2, 105.6, 11.2, 107.1, 11.2, + 108.7, 11.2, 119.4, 11.2, 122.5, 11.2, 125.6, 9.9, -83.2, 9.9, -75.5, 9.9, -74, 9.9, -72.4, 9.9, -70.9, 9.9, -69.4, + 9.9, -67.8, 9.9, -66.3, 9.9, -64.7, 9.9, -63.2, 9.9, -13.9, 9.9, -12.3, 9.9, -10.8, 9.9, -9.2, 9.9, -7.7, 9.9, -6.2, + 9.9, -4.6, 9.9, -3.1, 9.9, -1.5, 9.9, 0, 9.9, 1.5, 9.9, 3.1, 9.9, 4.6, 9.9, 6.2, 9.9, 7.7, 9.9, 9.2, 9.9, 10.8, 9.9, + 12.3, 9.9, 13.9, 9.9, 15.4, 9.9, 17, 9.9, 18.5, 9.9, 20, 9.9, 21.6, 9.9, 23.1, 9.9, 24.7, 9.9, 26.2, 9.9, 27.7, 9.9, + 29.3, 9.9, 30.8, 9.9, 32.4, 9.9, 33.9, 9.9, 35.4, 9.9, 37, 9.9, 38.5, 9.9, 40.1, 9.9, 41.6, 9.9, 43.2, 9.9, 44.7, 9.9, + 46.2, 9.9, 47.8, 9.9, 49.3, 9.9, 77.1, 9.9, 78.6, 9.9, 98.6, 9.9, 106.3, 9.9, 118.7, 9.9, 123.3, 8.6, -82.5, 8.6, + -80.9, 8.6, -77.8, 8.6, -76.3, 8.6, -74.8, 8.6, -73.2, 8.6, -71.7, 8.6, -70.1, 8.6, -68.6, 8.6, -67, 8.6, -65.5, 8.6, + -64, 8.6, -62.4, 8.6, -60.9, 8.6, -13.1, 8.6, -11.6, 8.6, -10, 8.6, -8.5, 8.6, -6.9, 8.6, -5.4, 8.6, -3.9, 8.6, -2.3, + 8.6, -0.8, 8.6, 0.8, 8.6, 2.3, 8.6, 3.9, 8.6, 5.4, 8.6, 6.9, 8.6, 8.5, 8.6, 10, 8.6, 11.6, 8.6, 13.1, 8.6, 14.6, 8.6, + 16.2, 8.6, 17.7, 8.6, 19.3, 8.6, 20.8, 8.6, 22.3, 8.6, 23.9, 8.6, 25.4, 8.6, 27, 8.6, 28.5, 8.6, 30.1, 8.6, 31.6, 8.6, + 33.1, 8.6, 34.7, 8.6, 36.2, 8.6, 37.8, 8.6, 39.3, 8.6, 40.8, 8.6, 42.4, 8.6, 43.9, 8.6, 45.5, 8.6, 47, 8.6, 48.6, 8.6, + 50.1, 8.6, 77.8, 8.6, 80.9, 8.6, 99.4, 8.6, 125.6, 7.3, -77.1, 7.3, -75.5, 7.3, -74, 7.3, -72.4, 7.3, -70.9, 7.3, + -69.4, 7.3, -67.8, 7.3, -66.3, 7.3, -64.7, 7.3, -63.2, 7.3, -61.7, 7.3, -60.1, 7.3, -58.6, 7.3, -12.3, 7.3, -10.8, + 7.3, -9.2, 7.3, -7.7, 7.3, -6.2, 7.3, -4.6, 7.3, -3.1, 7.3, -1.5, 7.3, 0, 7.3, 1.5, 7.3, 3.1, 7.3, 4.6, 7.3, 6.2, 7.3, + 7.7, 7.3, 9.2, 7.3, 10.8, 7.3, 12.3, 7.3, 13.9, 7.3, 15.4, 7.3, 17, 7.3, 18.5, 7.3, 20, 7.3, 21.6, 7.3, 23.1, 7.3, + 24.7, 7.3, 26.2, 7.3, 27.7, 7.3, 29.3, 7.3, 30.8, 7.3, 32.4, 7.3, 33.9, 7.3, 35.4, 7.3, 37, 7.3, 38.5, 7.3, 40.1, 7.3, + 41.6, 7.3, 43.2, 7.3, 44.7, 7.3, 46.2, 7.3, 47.8, 7.3, 49.3, 7.3, 80.1, 7.3, 81.7, 7.3, 100.2, 7.3, 124.8, 7.3, 126.4, + 5.9, -76.3, 5.9, -74.8, 5.9, -73.2, 5.9, -71.7, 5.9, -70.1, 5.9, -68.6, 5.9, -67, 5.9, -65.5, 5.9, -64, 5.9, -62.4, + 5.9, -60.9, 5.9, -59.3, 5.9, -57.8, 5.9, -54.7, 5.9, -10, 5.9, -8.5, 5.9, -6.9, 5.9, -5.4, 5.9, -3.9, 5.9, -2.3, 5.9, + -0.8, 5.9, 0.8, 5.9, 5.4, 5.9, 6.9, 5.9, 8.5, 5.9, 10, 5.9, 11.6, 5.9, 13.1, 5.9, 14.6, 5.9, 16.2, 5.9, 17.7, 5.9, + 19.3, 5.9, 20.8, 5.9, 22.3, 5.9, 23.9, 5.9, 25.4, 5.9, 27, 5.9, 28.5, 5.9, 30.1, 5.9, 31.6, 5.9, 33.1, 5.9, 34.7, 5.9, + 36.2, 5.9, 37.8, 5.9, 39.3, 5.9, 40.8, 5.9, 42.4, 5.9, 43.9, 5.9, 45.5, 5.9, 47, 5.9, 48.6, 5.9, 101, 5.9, 102.5, 5.9, + 116.4, 4.6, -77.1, 4.6, -75.5, 4.6, -74, 4.6, -72.4, 4.6, -70.9, 4.6, -69.4, 4.6, -67.8, 4.6, -66.3, 4.6, -64.7, 4.6, + -63.2, 4.6, -61.7, 4.6, -60.1, 4.6, -58.6, 4.6, -57, 4.6, -55.5, 4.6, -53.9, 4.6, -52.4, 4.6, -7.7, 4.6, 6.2, 4.6, + 7.7, 4.6, 9.2, 4.6, 10.8, 4.6, 12.3, 4.6, 13.9, 4.6, 15.4, 4.6, 17, 4.6, 18.5, 4.6, 20, 4.6, 21.6, 4.6, 23.1, 4.6, + 24.7, 4.6, 26.2, 4.6, 27.7, 4.6, 29.3, 4.6, 30.8, 4.6, 32.4, 4.6, 33.9, 4.6, 35.4, 4.6, 37, 4.6, 38.5, 4.6, 40.1, 4.6, + 41.6, 4.6, 43.2, 4.6, 44.7, 4.6, 46.2, 4.6, 47.8, 4.6, 97.1, 4.6, 101.7, 4.6, 103.3, 4.6, 115.6, 4.6, 117.1, 3.3, + -76.3, 3.3, -74.8, 3.3, -73.2, 3.3, -71.7, 3.3, -70.1, 3.3, -68.6, 3.3, -67, 3.3, -65.5, 3.3, -64, 3.3, -62.4, 3.3, + -60.9, 3.3, -59.3, 3.3, -57.8, 3.3, -56.3, 3.3, -54.7, 3.3, -53.2, 3.3, -51.6, 3.3, 10, 3.3, 11.6, 3.3, 13.1, 3.3, + 14.6, 3.3, 16.2, 3.3, 17.7, 3.3, 19.3, 3.3, 20.8, 3.3, 22.3, 3.3, 23.9, 3.3, 25.4, 3.3, 27, 3.3, 28.5, 3.3, 30.1, 3.3, + 31.6, 3.3, 33.1, 3.3, 34.7, 3.3, 36.2, 3.3, 37.8, 3.3, 39.3, 3.3, 40.8, 3.3, 42.4, 3.3, 43.9, 3.3, 45.5, 3.3, 97.9, + 3.3, 99.4, 3.3, 102.5, 3.3, 113.3, 3.3, 114.8, 3.3, 116.4, 1.9, -78.6, 1.9, -77.1, 1.9, -75.5, 1.9, -74, 1.9, -72.4, + 1.9, -70.9, 1.9, -69.4, 1.9, -67.8, 1.9, -66.3, 1.9, -64.7, 1.9, -63.2, 1.9, -61.7, 1.9, -60.1, 1.9, -58.6, 1.9, -57, + 1.9, -55.5, 1.9, -53.9, 1.9, -52.4, 1.9, -50.9, 1.9, 10.8, 1.9, 12.3, 1.9, 13.9, 1.9, 15.4, 1.9, 17, 1.9, 18.5, 1.9, + 20, 1.9, 21.6, 1.9, 23.1, 1.9, 24.7, 1.9, 26.2, 1.9, 27.7, 1.9, 29.3, 1.9, 30.8, 1.9, 32.4, 1.9, 33.9, 1.9, 35.4, 1.9, + 37, 1.9, 38.5, 1.9, 40.1, 1.9, 41.6, 1.9, 43.2, 1.9, 44.7, 1.9, 98.6, 1.9, 100.2, 1.9, 101.7, 1.9, 103.3, 1.9, 112.5, + 1.9, 114.1, 1.9, 115.6, 1.9, 117.1, 1.9, 127.9, 0.6, -79.4, 0.6, -77.8, 0.6, -76.3, 0.6, -74.8, 0.6, -73.2, 0.6, + -71.7, 0.6, -70.1, 0.6, -68.6, 0.6, -67, 0.6, -65.5, 0.6, -64, 0.6, -62.4, 0.6, -60.9, 0.6, -59.3, 0.6, -57.8, 0.6, + -56.3, 0.6, -54.7, 0.6, -53.2, 0.6, -51.6, 0.6, 10, 0.6, 11.6, 0.6, 13.1, 0.6, 14.6, 0.6, 16.2, 0.6, 17.7, 0.6, 19.3, + 0.6, 20.8, 0.6, 22.3, 0.6, 23.9, 0.6, 25.4, 0.6, 27, 0.6, 28.5, 0.6, 30.1, 0.6, 31.6, 0.6, 33.1, 0.6, 34.7, 0.6, 36.2, + 0.6, 37.8, 0.6, 39.3, 0.6, 40.8, 0.6, 42.4, 0.6, 99.4, 0.6, 101, 0.6, 102.5, 0.6, 110.2, 0.6, 111.7, 0.6, 113.3, 0.6, + 114.8, 0.6, 116.4, 0.6, 121, 0.6, 122.5, 0.6, 124.1, -0.8, -80.1, -0.8, -78.6, -0.8, -77.1, -0.8, -75.5, -0.8, -74, + -0.8, -72.4, -0.8, -70.9, -0.8, -69.4, -0.8, -67.8, -0.8, -66.3, -0.8, -64.7, -0.8, -63.2, -0.8, -61.7, -0.8, -60.1, + -0.8, -58.6, -0.8, -57, -0.8, -55.5, -0.8, -53.9, -0.8, -52.4, -0.8, -50.9, -0.8, -49.3, -0.8, -47.8, -0.8, 9.2, -0.8, + 10.8, -0.8, 12.3, -0.8, 13.9, -0.8, 15.4, -0.8, 17, -0.8, 18.5, -0.8, 20, -0.8, 21.6, -0.8, 23.1, -0.8, 24.7, -0.8, + 26.2, -0.8, 27.7, -0.8, 29.3, -0.8, 30.8, -0.8, 32.4, -0.8, 33.9, -0.8, 35.4, -0.8, 37, -0.8, 38.5, -0.8, 40.1, -0.8, + 41.6, -0.8, 101.7, -0.8, 103.3, -0.8, 109.4, -0.8, 111, -0.8, 112.5, -0.8, 114.1, -0.8, 115.6, -0.8, 117.1, -0.8, + 120.2, -0.8, 123.3, -0.8, 132.6, -2.1, -79.4, -2.1, -77.8, -2.1, -76.3, -2.1, -74.8, -2.1, -73.2, -2.1, -71.7, -2.1, + -70.1, -2.1, -68.6, -2.1, -67, -2.1, -65.5, -2.1, -64, -2.1, -62.4, -2.1, -60.9, -2.1, -59.3, -2.1, -57.8, -2.1, + -56.3, -2.1, -54.7, -2.1, -53.2, -2.1, -51.6, -2.1, -50.1, -2.1, -48.6, -2.1, -47, -2.1, -45.5, -2.1, 10, -2.1, 11.6, + -2.1, 13.1, -2.1, 14.6, -2.1, 16.2, -2.1, 17.7, -2.1, 19.3, -2.1, 20.8, -2.1, 22.3, -2.1, 23.9, -2.1, 25.4, -2.1, 27, + -2.1, 28.5, -2.1, 30.1, -2.1, 31.6, -2.1, 33.1, -2.1, 34.7, -2.1, 36.2, -2.1, 37.8, -2.1, 39.3, -2.1, 40.8, -2.1, 101, + -2.1, 102.5, -2.1, 104, -2.1, 110.2, -2.1, 111.7, -2.1, 113.3, -2.1, 114.8, -2.1, 116.4, -2.1, 119.4, -2.1, 121, -2.1, + 133.3, -2.1, 137.9, -3.5, -80.1, -3.5, -78.6, -3.5, -77.1, -3.5, -75.5, -3.5, -74, -3.5, -72.4, -3.5, -70.9, -3.5, + -69.4, -3.5, -67.8, -3.5, -66.3, -3.5, -64.7, -3.5, -63.2, -3.5, -61.7, -3.5, -60.1, -3.5, -58.6, -3.5, -57, -3.5, + -55.5, -3.5, -53.9, -3.5, -52.4, -3.5, -50.9, -3.5, -49.3, -3.5, -47.8, -3.5, -46.2, -3.5, -44.7, -3.5, -43.2, -3.5, + -41.6, -3.5, -40.1, -3.5, 10.8, -3.5, 12.3, -3.5, 13.9, -3.5, 15.4, -3.5, 17, -3.5, 18.5, -3.5, 20, -3.5, 21.6, -3.5, + 23.1, -3.5, 24.7, -3.5, 26.2, -3.5, 27.7, -3.5, 29.3, -3.5, 30.8, -3.5, 32.4, -3.5, 33.9, -3.5, 35.4, -3.5, 37, -3.5, + 38.5, -3.5, 103.3, -3.5, 104.8, -3.5, 115.6, -3.5, 120.2, -3.5, 121.8, -3.5, 126.4, -3.5, 134.1, -3.5, 135.6, -3.5, + 137.2, -3.5, 138.7, -3.5, 140.3, -3.5, 141.8, -4.8, -80.9, -4.8, -79.4, -4.8, -77.8, -4.8, -76.3, -4.8, -74.8, -4.8, + -73.2, -4.8, -71.7, -4.8, -70.1, -4.8, -68.6, -4.8, -67, -4.8, -65.5, -4.8, -64, -4.8, -62.4, -4.8, -60.9, -4.8, + -59.3, -4.8, -57.8, -4.8, -56.3, -4.8, -54.7, -4.8, -53.2, -4.8, -51.6, -4.8, -50.1, -4.8, -48.6, -4.8, -47, -4.8, + -45.5, -4.8, -43.9, -4.8, -42.4, -4.8, -40.8, -4.8, -39.3, -4.8, -37.8, -4.8, 13.1, -4.8, 14.6, -4.8, 16.2, -4.8, + 17.7, -4.8, 19.3, -4.8, 20.8, -4.8, 22.3, -4.8, 23.9, -4.8, 25.4, -4.8, 27, -4.8, 28.5, -4.8, 30.1, -4.8, 31.6, -4.8, + 33.1, -4.8, 34.7, -4.8, 36.2, -4.8, 37.8, -4.8, 104, -4.8, 105.6, -4.8, 122.5, -4.8, 137.9, -4.8, 139.5, -4.8, 141, + -4.8, 142.6, -4.8, 144.1, -4.8, 145.7, -4.8, 151.8, -6.1, -80.1, -6.1, -78.6, -6.1, -77.1, -6.1, -75.5, -6.1, -74, + -6.1, -72.4, -6.1, -70.9, -6.1, -69.4, -6.1, -67.8, -6.1, -66.3, -6.1, -64.7, -6.1, -63.2, -6.1, -61.7, -6.1, -60.1, + -6.1, -58.6, -6.1, -57, -6.1, -55.5, -6.1, -53.9, -6.1, -52.4, -6.1, -50.9, -6.1, -49.3, -6.1, -47.8, -6.1, -46.2, + -6.1, -44.7, -6.1, -43.2, -6.1, -41.6, -6.1, -40.1, -6.1, -38.5, -6.1, -37, -6.1, -35.4, -6.1, 12.3, -6.1, 13.9, -6.1, + 15.4, -6.1, 17, -6.1, 18.5, -6.1, 20, -6.1, 21.6, -6.1, 23.1, -6.1, 24.7, -6.1, 26.2, -6.1, 27.7, -6.1, 29.3, -6.1, + 30.8, -6.1, 32.4, -6.1, 33.9, -6.1, 35.4, -6.1, 37, -6.1, 38.5, -6.1, 106.3, -6.1, 138.7, -6.1, 140.3, -6.1, 141.8, + -6.1, 143.3, -6.1, 144.9, -6.1, 146.4, -6.1, 149.5, -7.5, -79.4, -7.5, -77.8, -7.5, -76.3, -7.5, -74.8, -7.5, -73.2, + -7.5, -71.7, -7.5, -70.1, -7.5, -68.6, -7.5, -67, -7.5, -65.5, -7.5, -64, -7.5, -62.4, -7.5, -60.9, -7.5, -59.3, -7.5, + -57.8, -7.5, -56.3, -7.5, -54.7, -7.5, -53.2, -7.5, -51.6, -7.5, -50.1, -7.5, -48.6, -7.5, -47, -7.5, -45.5, -7.5, + -43.9, -7.5, -42.4, -7.5, -40.8, -7.5, -39.3, -7.5, -37.8, -7.5, -36.2, -7.5, 13.1, -7.5, 14.6, -7.5, 16.2, -7.5, + 17.7, -7.5, 19.3, -7.5, 20.8, -7.5, 22.3, -7.5, 23.9, -7.5, 25.4, -7.5, 27, -7.5, 28.5, -7.5, 30.1, -7.5, 31.6, -7.5, + 33.1, -7.5, 34.7, -7.5, 36.2, -7.5, 37.8, -7.5, 107.1, -7.5, 108.7, -7.5, 110.2, -7.5, 111.7, -7.5, 139.5, -7.5, 141, + -7.5, 142.6, -7.5, 144.1, -7.5, 145.7, -7.5, 147.2, -8.8, -78.6, -8.8, -77.1, -8.8, -75.5, -8.8, -74, -8.8, -72.4, + -8.8, -70.9, -8.8, -69.4, -8.8, -67.8, -8.8, -66.3, -8.8, -64.7, -8.8, -63.2, -8.8, -61.7, -8.8, -60.1, -8.8, -58.6, + -8.8, -57, -8.8, -55.5, -8.8, -53.9, -8.8, -52.4, -8.8, -50.9, -8.8, -49.3, -8.8, -47.8, -8.8, -46.2, -8.8, -44.7, + -8.8, -43.2, -8.8, -41.6, -8.8, -40.1, -8.8, -38.5, -8.8, -37, -8.8, -35.4, -8.8, 13.9, -8.8, 15.4, -8.8, 17, -8.8, + 18.5, -8.8, 20, -8.8, 21.6, -8.8, 23.1, -8.8, 24.7, -8.8, 26.2, -8.8, 27.7, -8.8, 29.3, -8.8, 30.8, -8.8, 32.4, -8.8, + 33.9, -8.8, 35.4, -8.8, 37, -8.8, 38.5, -8.8, 117.1, -8.8, 120.2, -8.8, 121.8, -8.8, 126.4, -8.8, 141.8, -8.8, 143.3, + -8.8, 148, -10.1, -77.8, -10.1, -76.3, -10.1, -74.8, -10.1, -73.2, -10.1, -71.7, -10.1, -70.1, -10.1, -68.6, -10.1, + -67, -10.1, -65.5, -10.1, -64, -10.1, -62.4, -10.1, -60.9, -10.1, -59.3, -10.1, -57.8, -10.1, -56.3, -10.1, -54.7, + -10.1, -53.2, -10.1, -51.6, -10.1, -50.1, -10.1, -48.6, -10.1, -47, -10.1, -45.5, -10.1, -43.9, -10.1, -42.4, -10.1, + -40.8, -10.1, -39.3, -10.1, -37.8, -10.1, -36.2, -10.1, 14.6, -10.1, 16.2, -10.1, 17.7, -10.1, 19.3, -10.1, 20.8, + -10.1, 22.3, -10.1, 23.9, -10.1, 25.4, -10.1, 27, -10.1, 28.5, -10.1, 30.1, -10.1, 31.6, -10.1, 33.1, -10.1, 34.7, + -10.1, 36.2, -10.1, 37.8, -10.1, 39.3, -10.1, 124.1, -10.1, 148.7, -10.1, 150.3, -11.5, -77.1, -11.5, -75.5, -11.5, + -74, -11.5, -72.4, -11.5, -70.9, -11.5, -69.4, -11.5, -67.8, -11.5, -66.3, -11.5, -64.7, -11.5, -63.2, -11.5, -61.7, + -11.5, -60.1, -11.5, -58.6, -11.5, -57, -11.5, -55.5, -11.5, -53.9, -11.5, -52.4, -11.5, -50.9, -11.5, -49.3, -11.5, + -47.8, -11.5, -46.2, -11.5, -44.7, -11.5, -43.2, -11.5, -41.6, -11.5, -40.1, -11.5, -38.5, -11.5, 13.9, -11.5, 15.4, + -11.5, 17, -11.5, 18.5, -11.5, 20, -11.5, 21.6, -11.5, 23.1, -11.5, 24.7, -11.5, 26.2, -11.5, 27.7, -11.5, 29.3, + -11.5, 30.8, -11.5, 32.4, -11.5, 33.9, -11.5, 35.4, -11.5, 37, -11.5, 38.5, -11.5, 40.1, -11.5, 132.6, -12.8, -76.3, + -12.8, -74.8, -12.8, -73.2, -12.8, -71.7, -12.8, -70.1, -12.8, -68.6, -12.8, -67, -12.8, -65.5, -12.8, -64, -12.8, + -62.4, -12.8, -60.9, -12.8, -59.3, -12.8, -57.8, -12.8, -56.3, -12.8, -54.7, -12.8, -53.2, -12.8, -51.6, -12.8, -50.1, + -12.8, -48.6, -12.8, -47, -12.8, -45.5, -12.8, -43.9, -12.8, -42.4, -12.8, -40.8, -12.8, -39.3, -12.8, 13.1, -12.8, + 14.6, -12.8, 16.2, -12.8, 17.7, -12.8, 19.3, -12.8, 20.8, -12.8, 22.3, -12.8, 23.9, -12.8, 25.4, -12.8, 27, -12.8, + 28.5, -12.8, 30.1, -12.8, 31.6, -12.8, 33.1, -12.8, 34.7, -12.8, 36.2, -12.8, 37.8, -12.8, 39.3, -12.8, 131.8, -12.8, + 133.3, -12.8, 134.9, -12.8, 136.4, -12.8, 142.6, -14.1, -75.5, -14.1, -74, -14.1, -72.4, -14.1, -70.9, -14.1, -69.4, + -14.1, -67.8, -14.1, -66.3, -14.1, -64.7, -14.1, -63.2, -14.1, -61.7, -14.1, -60.1, -14.1, -58.6, -14.1, -57, -14.1, + -55.5, -14.1, -53.9, -14.1, -52.4, -14.1, -50.9, -14.1, -49.3, -14.1, -47.8, -14.1, -46.2, -14.1, -44.7, -14.1, -43.2, + -14.1, -41.6, -14.1, -40.1, -14.1, 12.3, -14.1, 13.9, -14.1, 15.4, -14.1, 17, -14.1, 18.5, -14.1, 20, -14.1, 21.6, + -14.1, 23.1, -14.1, 24.7, -14.1, 26.2, -14.1, 27.7, -14.1, 29.3, -14.1, 30.8, -14.1, 32.4, -14.1, 33.9, -14.1, 35.4, + -14.1, 37, -14.1, 38.5, -14.1, 40.1, -14.1, 49.3, -14.1, 126.4, -14.1, 131, -14.1, 132.6, -14.1, 134.1, -14.1, 135.6, + -14.1, 141.8, -14.1, 143.3, -15.4, -74.8, -15.4, -73.2, -15.4, -71.7, -15.4, -70.1, -15.4, -68.6, -15.4, -67, -15.4, + -65.5, -15.4, -64, -15.4, -62.4, -15.4, -60.9, -15.4, -59.3, -15.4, -57.8, -15.4, -56.3, -15.4, -54.7, -15.4, -53.2, + -15.4, -51.6, -15.4, -50.1, -15.4, -48.6, -15.4, -47, -15.4, -45.5, -15.4, -43.9, -15.4, -42.4, -15.4, -40.8, -15.4, + -39.3, -15.4, 13.1, -15.4, 14.6, -15.4, 16.2, -15.4, 17.7, -15.4, 19.3, -15.4, 20.8, -15.4, 22.3, -15.4, 23.9, -15.4, + 25.4, -15.4, 27, -15.4, 28.5, -15.4, 30.1, -15.4, 31.6, -15.4, 33.1, -15.4, 34.7, -15.4, 36.2, -15.4, 37.8, -15.4, + 39.3, -15.4, 47, -15.4, 48.6, -15.4, 50.1, -15.4, 125.6, -15.4, 127.2, -15.4, 128.7, -15.4, 130.2, -15.4, 131.8, + -15.4, 133.3, -15.4, 134.9, -15.4, 142.6, -15.4, 144.1, -16.7, -72.4, -16.7, -70.9, -16.7, -69.4, -16.7, -67.8, -16.7, + -66.3, -16.7, -64.7, -16.7, -63.2, -16.7, -61.7, -16.7, -60.1, -16.7, -58.6, -16.7, -57, -16.7, -55.5, -16.7, -53.9, + -16.7, -52.4, -16.7, -50.9, -16.7, -49.3, -16.7, -47.8, -16.7, -46.2, -16.7, -44.7, -16.7, -43.2, -16.7, -41.6, -16.7, + -40.1, -16.7, 12.3, -16.7, 13.9, -16.7, 15.4, -16.7, 17, -16.7, 18.5, -16.7, 20, -16.7, 21.6, -16.7, 23.1, -16.7, + 24.7, -16.7, 26.2, -16.7, 27.7, -16.7, 29.3, -16.7, 30.8, -16.7, 32.4, -16.7, 33.9, -16.7, 35.4, -16.7, 37, -16.7, + 38.5, -16.7, 44.7, -16.7, 46.2, -16.7, 47.8, -16.7, 49.3, -16.7, 124.8, -16.7, 126.4, -16.7, 127.9, -16.7, 129.5, + -16.7, 131, -16.7, 132.6, -16.7, 134.1, -16.7, 135.6, -16.7, 137.2, -16.7, 141.8, -16.7, 143.3, -16.7, 144.9, -18, + -70.1, -18, -68.6, -18, -67, -18, -65.5, -18, -64, -18, -62.4, -18, -60.9, -18, -59.3, -18, -57.8, -18, -56.3, -18, + -54.7, -18, -53.2, -18, -51.6, -18, -50.1, -18, -48.6, -18, -47, -18, -45.5, -18, -43.9, -18, -42.4, -18, -40.8, -18, + 13.1, -18, 14.6, -18, 16.2, -18, 17.7, -18, 19.3, -18, 20.8, -18, 22.3, -18, 23.9, -18, 25.4, -18, 27, -18, 28.5, -18, + 30.1, -18, 31.6, -18, 33.1, -18, 34.7, -18, 36.2, -18, 45.5, -18, 47, -18, 48.6, -18, 122.5, -18, 124.1, -18, 125.6, + -18, 127.2, -18, 128.7, -18, 130.2, -18, 131.8, -18, 133.3, -18, 134.9, -18, 136.4, -18, 137.9, -18, 139.5, -18, 141, + -18, 142.6, -18, 144.1, -18, 145.7, -19.2, -69.4, -19.2, -67.8, -19.2, -66.3, -19.2, -64.7, -19.2, -63.2, -19.2, + -61.7, -19.2, -60.1, -19.2, -58.6, -19.2, -57, -19.2, -55.5, -19.2, -53.9, -19.2, -52.4, -19.2, -50.9, -19.2, -49.3, + -19.2, -47.8, -19.2, -46.2, -19.2, -44.7, -19.2, -43.2, -19.2, -41.6, -19.2, -40.1, -19.2, 13.9, -19.2, 15.4, -19.2, + 17, -19.2, 18.5, -19.2, 20, -19.2, 21.6, -19.2, 23.1, -19.2, 24.7, -19.2, 26.2, -19.2, 27.7, -19.2, 29.3, -19.2, 30.8, + -19.2, 32.4, -19.2, 33.9, -19.2, 35.4, -19.2, 44.7, -19.2, 46.2, -19.2, 47.8, -19.2, 121.8, -19.2, 123.3, -19.2, + 124.8, -19.2, 126.4, -19.2, 127.9, -19.2, 129.5, -19.2, 131, -19.2, 132.6, -19.2, 134.1, -19.2, 135.6, -19.2, 137.2, + -19.2, 138.7, -19.2, 140.3, -19.2, 141.8, -19.2, 143.3, -19.2, 144.9, -19.2, 146.4, -20.5, -70.1, -20.5, -68.6, -20.5, + -67, -20.5, -65.5, -20.5, -64, -20.5, -62.4, -20.5, -60.9, -20.5, -59.3, -20.5, -57.8, -20.5, -56.3, -20.5, -54.7, + -20.5, -53.2, -20.5, -51.6, -20.5, -50.1, -20.5, -48.6, -20.5, -47, -20.5, -45.5, -20.5, -43.9, -20.5, -42.4, -20.5, + -40.8, -20.5, 14.6, -20.5, 16.2, -20.5, 17.7, -20.5, 19.3, -20.5, 20.8, -20.5, 22.3, -20.5, 23.9, -20.5, 25.4, -20.5, + 27, -20.5, 28.5, -20.5, 30.1, -20.5, 31.6, -20.5, 33.1, -20.5, 34.7, -20.5, 45.5, -20.5, 47, -20.5, 119.4, -20.5, 121, + -20.5, 122.5, -20.5, 124.1, -20.5, 125.6, -20.5, 127.2, -20.5, 128.7, -20.5, 130.2, -20.5, 131.8, -20.5, 133.3, -20.5, + 134.9, -20.5, 136.4, -20.5, 137.9, -20.5, 139.5, -20.5, 141, -20.5, 142.6, -20.5, 144.1, -20.5, 145.7, -20.5, 147.2, + -20.5, 148.7, -21.7, -69.4, -21.7, -67.8, -21.7, -66.3, -21.7, -64.7, -21.7, -63.2, -21.7, -61.7, -21.7, -60.1, -21.7, + -58.6, -21.7, -57, -21.7, -55.5, -21.7, -53.9, -21.7, -52.4, -21.7, -50.9, -21.7, -49.3, -21.7, -47.8, -21.7, -46.2, + -21.7, -44.7, -21.7, -43.2, -21.7, -41.6, -21.7, 15.4, -21.7, 17, -21.7, 18.5, -21.7, 20, -21.7, 21.6, -21.7, 23.1, + -21.7, 24.7, -21.7, 26.2, -21.7, 27.7, -21.7, 29.3, -21.7, 30.8, -21.7, 32.4, -21.7, 33.9, -21.7, 44.7, -21.7, 46.2, + -21.7, 47.8, -21.7, 115.6, -21.7, 117.1, -21.7, 118.7, -21.7, 120.2, -21.7, 121.8, -21.7, 123.3, -21.7, 124.8, -21.7, + 126.4, -21.7, 127.9, -21.7, 129.5, -21.7, 131, -21.7, 132.6, -21.7, 134.1, -21.7, 135.6, -21.7, 137.2, -21.7, 138.7, + -21.7, 140.3, -21.7, 141.8, -21.7, 143.3, -21.7, 144.9, -21.7, 146.4, -21.7, 148, -21.7, 166.5, -23, -70.1, -23, + -68.6, -23, -67, -23, -65.5, -23, -64, -23, -62.4, -23, -60.9, -23, -59.3, -23, -57.8, -23, -56.3, -23, -54.7, -23, + -53.2, -23, -51.6, -23, -50.1, -23, -48.6, -23, -47, -23, -45.5, -23, -43.9, -23, 14.6, -23, 16.2, -23, 17.7, -23, + 19.3, -23, 20.8, -23, 22.3, -23, 23.9, -23, 25.4, -23, 27, -23, 28.5, -23, 30.1, -23, 31.6, -23, 33.1, -23, 34.7, -23, + 43.9, -23, 45.5, -23, 47, -23, 114.8, -23, 116.4, -23, 117.9, -23, 119.4, -23, 121, -23, 122.5, -23, 124.1, -23, + 125.6, -23, 127.2, -23, 128.7, -23, 130.2, -23, 131.8, -23, 133.3, -23, 134.9, -23, 136.4, -23, 137.9, -23, 139.5, + -23, 141, -23, 142.6, -23, 144.1, -23, 145.7, -23, 147.2, -23, 148.7, -23, 150.3, -24.2, -69.4, -24.2, -67.8, -24.2, + -66.3, -24.2, -64.7, -24.2, -63.2, -24.2, -61.7, -24.2, -60.1, -24.2, -58.6, -24.2, -57, -24.2, -55.5, -24.2, -53.9, + -24.2, -52.4, -24.2, -50.9, -24.2, -49.3, -24.2, -47.8, -24.2, 15.4, -24.2, 17, -24.2, 18.5, -24.2, 20, -24.2, 21.6, + -24.2, 23.1, -24.2, 24.7, -24.2, 26.2, -24.2, 27.7, -24.2, 29.3, -24.2, 30.8, -24.2, 32.4, -24.2, 33.9, -24.2, 44.7, + -24.2, 46.2, -24.2, 114.1, -24.2, 115.6, -24.2, 117.1, -24.2, 118.7, -24.2, 120.2, -24.2, 121.8, -24.2, 123.3, -24.2, + 124.8, -24.2, 126.4, -24.2, 127.9, -24.2, 129.5, -24.2, 131, -24.2, 132.6, -24.2, 134.1, -24.2, 135.6, -24.2, 137.2, + -24.2, 138.7, -24.2, 140.3, -24.2, 141.8, -24.2, 143.3, -24.2, 144.9, -24.2, 146.4, -24.2, 148, -24.2, 149.5, -24.2, + 151, -25.4, -70.1, -25.4, -68.6, -25.4, -67, -25.4, -65.5, -25.4, -64, -25.4, -62.4, -25.4, -60.9, -25.4, -59.3, + -25.4, -57.8, -25.4, -56.3, -25.4, -54.7, -25.4, -53.2, -25.4, -51.6, -25.4, -50.1, -25.4, -48.6, -25.4, 16.2, -25.4, + 17.7, -25.4, 19.3, -25.4, 20.8, -25.4, 22.3, -25.4, 23.9, -25.4, 25.4, -25.4, 27, -25.4, 28.5, -25.4, 30.1, -25.4, + 31.6, -25.4, 45.5, -25.4, 114.8, -25.4, 116.4, -25.4, 117.9, -25.4, 119.4, -25.4, 121, -25.4, 122.5, -25.4, 124.1, + -25.4, 125.6, -25.4, 127.2, -25.4, 128.7, -25.4, 130.2, -25.4, 131.8, -25.4, 133.3, -25.4, 134.9, -25.4, 136.4, -25.4, + 137.9, -25.4, 139.5, -25.4, 141, -25.4, 142.6, -25.4, 144.1, -25.4, 145.7, -25.4, 147.2, -25.4, 148.7, -25.4, 150.3, + -25.4, 151.8, -26.6, -69.4, -26.6, -67.8, -26.6, -66.3, -26.6, -64.7, -26.6, -63.2, -26.6, -61.7, -26.6, -60.1, -26.6, + -58.6, -26.6, -57, -26.6, -55.5, -26.6, -53.9, -26.6, -52.4, -26.6, -50.9, -26.6, -49.3, -26.6, 15.4, -26.6, 17, + -26.6, 18.5, -26.6, 20, -26.6, 21.6, -26.6, 23.1, -26.6, 24.7, -26.6, 26.2, -26.6, 27.7, -26.6, 29.3, -26.6, 30.8, + -26.6, 32.4, -26.6, 114.1, -26.6, 115.6, -26.6, 117.1, -26.6, 118.7, -26.6, 120.2, -26.6, 121.8, -26.6, 123.3, -26.6, + 124.8, -26.6, 126.4, -26.6, 127.9, -26.6, 129.5, -26.6, 131, -26.6, 132.6, -26.6, 134.1, -26.6, 135.6, -26.6, 137.2, + -26.6, 138.7, -26.6, 140.3, -26.6, 141.8, -26.6, 143.3, -26.6, 144.9, -26.6, 146.4, -26.6, 148, -26.6, 149.5, -26.6, + 151, -26.6, 152.6, -27.8, -70.1, -27.8, -68.6, -27.8, -67, -27.8, -65.5, -27.8, -64, -27.8, -62.4, -27.8, -60.9, + -27.8, -59.3, -27.8, -57.8, -27.8, -56.3, -27.8, -54.7, -27.8, -53.2, -27.8, -51.6, -27.8, -50.1, -27.8, 16.2, -27.8, + 17.7, -27.8, 19.3, -27.8, 20.8, -27.8, 22.3, -27.8, 23.9, -27.8, 25.4, -27.8, 27, -27.8, 28.5, -27.8, 30.1, -27.8, + 31.6, -27.8, 114.8, -27.8, 116.4, -27.8, 117.9, -27.8, 119.4, -27.8, 121, -27.8, 122.5, -27.8, 124.1, -27.8, 125.6, + -27.8, 127.2, -27.8, 128.7, -27.8, 130.2, -27.8, 131.8, -27.8, 133.3, -27.8, 134.9, -27.8, 136.4, -27.8, 137.9, -27.8, + 139.5, -27.8, 141, -27.8, 142.6, -27.8, 144.1, -27.8, 145.7, -27.8, 147.2, -27.8, 148.7, -27.8, 150.3, -27.8, 151.8, + -27.8, 153.4, -29, -70.9, -29, -69.4, -29, -67.8, -29, -66.3, -29, -64.7, -29, -63.2, -29, -61.7, -29, -60.1, -29, + -58.6, -29, -57, -29, -55.5, -29, -53.9, -29, -52.4, -29, -50.9, -29, 17, -29, 18.5, -29, 20, -29, 21.6, -29, 23.1, + -29, 24.7, -29, 26.2, -29, 27.7, -29, 29.3, -29, 30.8, -29, 115.6, -29, 117.1, -29, 118.7, -29, 120.2, -29, 121.8, + -29, 123.3, -29, 124.8, -29, 126.4, -29, 127.9, -29, 129.5, -29, 131, -29, 132.6, -29, 134.1, -29, 135.6, -29, 137.2, + -29, 138.7, -29, 140.3, -29, 141.8, -29, 143.3, -29, 144.9, -29, 146.4, -29, 148, -29, 149.5, -29, 151, -29, 152.6, + -30.2, -70.1, -30.2, -68.6, -30.2, -67, -30.2, -65.5, -30.2, -64, -30.2, -62.4, -30.2, -60.9, -30.2, -59.3, -30.2, + -57.8, -30.2, -56.3, -30.2, -54.7, -30.2, -53.2, -30.2, -51.6, -30.2, 17.7, -30.2, 19.3, -30.2, 20.8, -30.2, 22.3, + -30.2, 23.9, -30.2, 25.4, -30.2, 27, -30.2, 28.5, -30.2, 30.1, -30.2, 116.4, -30.2, 117.9, -30.2, 119.4, -30.2, 121, + -30.2, 122.5, -30.2, 124.1, -30.2, 125.6, -30.2, 127.2, -30.2, 128.7, -30.2, 130.2, -30.2, 131.8, -30.2, 133.3, -30.2, + 134.9, -30.2, 136.4, -30.2, 137.9, -30.2, 139.5, -30.2, 141, -30.2, 142.6, -30.2, 144.1, -30.2, 145.7, -30.2, 147.2, + -30.2, 148.7, -30.2, 150.3, -30.2, 151.8, -31.3, -70.9, -31.3, -69.4, -31.3, -67.8, -31.3, -66.3, -31.3, -64.7, -31.3, + -63.2, -31.3, -61.7, -31.3, -60.1, -31.3, -58.6, -31.3, -57, -31.3, -55.5, -31.3, -53.9, -31.3, -52.4, -31.3, 18.5, + -31.3, 20, -31.3, 21.6, -31.3, 23.1, -31.3, 24.7, -31.3, 26.2, -31.3, 27.7, -31.3, 29.3, -31.3, 115.6, -31.3, 117.1, + -31.3, 118.7, -31.3, 120.2, -31.3, 121.8, -31.3, 123.3, -31.3, 124.8, -31.3, 126.4, -31.3, 127.9, -31.3, 129.5, -31.3, + 131, -31.3, 132.6, -31.3, 134.1, -31.3, 135.6, -31.3, 137.2, -31.3, 138.7, -31.3, 140.3, -31.3, 141.8, -31.3, 143.3, + -31.3, 144.9, -31.3, 146.4, -31.3, 148, -31.3, 149.5, -31.3, 151, -31.3, 152.6, -32.5, -70.1, -32.5, -68.6, -32.5, + -67, -32.5, -65.5, -32.5, -64, -32.5, -62.4, -32.5, -60.9, -32.5, -59.3, -32.5, -57.8, -32.5, -56.3, -32.5, -54.7, + -32.5, -53.2, -32.5, 19.3, -32.5, 20.8, -32.5, 22.3, -32.5, 23.9, -32.5, 25.4, -32.5, 27, -32.5, 28.5, -32.5, 116.4, + -32.5, 117.9, -32.5, 119.4, -32.5, 121, -32.5, 122.5, -32.5, 124.1, -32.5, 134.9, -32.5, 136.4, -32.5, 137.9, -32.5, + 139.5, -32.5, 141, -32.5, 142.6, -32.5, 144.1, -32.5, 145.7, -32.5, 147.2, -32.5, 148.7, -32.5, 150.3, -32.5, 151.8, + -33.6, -70.9, -33.6, -69.4, -33.6, -67.8, -33.6, -66.3, -33.6, -64.7, -33.6, -63.2, -33.6, -61.7, -33.6, -60.1, -33.6, + -58.6, -33.6, -57, -33.6, -55.5, -33.6, -53.9, -33.6, 18.5, -33.6, 20, -33.6, 21.6, -33.6, 23.1, -33.6, 24.7, -33.6, + 26.2, -33.6, 115.6, -33.6, 117.1, -33.6, 118.7, -33.6, 120.2, -33.6, 121.8, -33.6, 123.3, -33.6, 135.6, -33.6, 138.7, + -33.6, 140.3, -33.6, 141.8, -33.6, 143.3, -33.6, 144.9, -33.6, 146.4, -33.6, 148, -33.6, 149.5, -33.6, 151, -34.7, + -71.7, -34.7, -70.1, -34.7, -68.6, -34.7, -67, -34.7, -65.5, -34.7, -64, -34.7, -62.4, -34.7, -60.9, -34.7, -59.3, + -34.7, -56.3, -34.7, -54.7, -34.7, 116.4, -34.7, 117.9, -34.7, 137.9, -34.7, 139.5, -34.7, 141, -34.7, 142.6, -34.7, + 144.1, -34.7, 145.7, -34.7, 147.2, -34.7, 148.7, -34.7, 150.3, -35.8, -72.4, -35.8, -70.9, -35.8, -69.4, -35.8, -67.8, + -35.8, -66.3, -35.8, -64.7, -35.8, -63.2, -35.8, -61.7, -35.8, -60.1, -35.8, -58.6, -35.8, 140.3, -35.8, 141.8, -35.8, + 143.3, -35.8, 144.9, -35.8, 146.4, -35.8, 148, -35.8, 149.5, -36.9, -71.7, -36.9, -70.1, -36.9, -68.6, -36.9, -67, + -36.9, -65.5, -36.9, -64, -36.9, -62.4, -36.9, -60.9, -36.9, -59.3, -36.9, -57.8, -36.9, 141, -36.9, 142.6, -36.9, + 144.1, -36.9, 145.7, -36.9, 147.2, -36.9, 148.7, -38, -72.4, -38, -70.9, -38, -69.4, -38, -67.8, -38, -66.3, -38, + -64.7, -38, -63.2, -38, -61.7, -38, -60.1, -38, -58.6, -38, 141.8, -38, 143.3, -38, 146.4, -38, 148, -39, -73.2, -39, + -71.7, -39, -70.1, -39, -68.6, -39, -67, -39, -65.5, -39, -64, -39, -62.4, -40, -72.4, -40, -70.9, -40, -69.4, -40, + -67.8, -40, -66.3, -40, -64.7, -40, -63.2, -41.1, -73.2, -41.1, -71.7, -41.1, -70.1, -41.1, -68.6, -41.1, -67, -41.1, + -65.5, -41.1, -64, -41.1, 145.7, -41.1, 147.2, -42.1, -74, -42.1, -72.4, -42.1, -70.9, -42.1, -69.4, -42.1, -67.8, + -42.1, -66.3, -42.1, 146.4, -42.1, 148, -43, -71.7, -43, -70.1, -43, -68.6, -43, -67, -43, -65.5, -43, 147.2, -44, + -72.4, -44, -70.9, -44, -69.4, -44, -67.8, -44, -66.3, -45, -73.2, -45, -71.7, -45, -70.1, -45, -68.6, -45, -67, -45, + 167.2, -45.9, -74, -45.9, -72.4, -45.9, -70.9, -45.9, -69.4, -45.9, -67.8, -46.8, -73.2, -46.8, -71.7, -46.8, -70.1, + -46.8, -68.6, -46.8, -67, -47.7, -74, -47.7, -72.4, -47.7, -70.9, -47.7, -69.4, -47.7, -67.8, -47.7, -66.3, -48.6, + -74.8, -48.6, -73.2, -48.6, -71.7, -48.6, -70.1, -48.6, -68.6, -49.5, -75.5, -49.5, -74, -49.5, -72.4, -49.5, -70.9, + -49.5, -69.4, -49.5, -67.8, -49.5, 69.4, -50.4, -74.8, -50.4, -73.2, -50.4, -71.7, -50.4, -70.1, -51.2, -74, -51.2, + -72.4, -51.2, -70.9, -51.2, -69.4, -51.2, -58.6, -52.1, -74.8, -52.1, -73.2, -52.1, -71.7, -52.1, -70.1, -52.1, -68.6, + -52.1, -60.9, -52.1, -59.3, -52.9, -72.4, -52.9, -70.9, -52.9, -69.4, -53.7, -73.2, -53.7, -71.7, -53.7, -70.1, -53.7, + -68.6, -54.5, -70.9, -54.5, -69.4, -54.5, -67.8, -55.2, -68.6, +]; diff --git a/src/features/home/globe-section.tsx b/src/features/home/globe-section.tsx new file mode 100644 index 0000000..27f52a4 --- /dev/null +++ b/src/features/home/globe-section.tsx @@ -0,0 +1,74 @@ +"use client"; + +import { useInView } from "framer-motion"; +import { useTheme } from "next-themes"; +import dynamic from "next/dynamic"; +import { useRef } from "react"; + +import { Reveal } from "./reveal"; + +import type { MemberHub } from "@/features/github"; + +const MemberGlobe = dynamic(() => import("./member-globe"), { ssr: false }); + +/** + * "Every timezone" section: a WebGL globe with pulsing markers on real member + * hubs, beside a ranked list of the top cities. The canvas mounts lazily when the + * section approaches the viewport; without hubs the section renders nothing. + * + * @param hubs - Geocoded member hubs from getHomeData. + * @returns The globe section, or null when no hubs resolved. + * @example + * + */ +export const GlobeSection = ({ hubs }: { hubs: MemberHub[] }) => { + const ref = useRef(null); + const nearViewport = useInView(ref, { once: true, margin: "400px 0px" }); + const { resolvedTheme } = useTheme(); + + if (hubs.length === 0) return null; + + const totalCountries = new Set(hubs.map((hub) => hub.country)).size; + const topHubs = hubs.slice(0, 8); + + return ( +
+
+
+ {nearViewport && } +
+
+ +

[ Everywhere ]

+

+ One community, every timezone. +

+
+ +

+ Members list {hubs.length} hubs across {totalCountries} countries on their GitHub profiles — whenever + you're online, someone else is shipping too. +

+
+ +
    + {topHubs.map((hub, index) => ( +
  1. + + {String(index + 1).padStart(2, "0")} + + + {hub.label} + {hub.country} + + + {hub.members} {hub.members === 1 ? "member" : "members"} + +
  2. + ))} +
+
+
+
+ ); +}; diff --git a/src/features/home/hero-card-3d.tsx b/src/features/home/hero-card-3d.tsx new file mode 100644 index 0000000..da11fab --- /dev/null +++ b/src/features/home/hero-card-3d.tsx @@ -0,0 +1,71 @@ +"use client"; + +import { Float, Html, RoundedBox } from "@react-three/drei"; +import { Canvas, useFrame } from "@react-three/fiber"; +import { useTheme } from "next-themes"; +import { easing } from "maath"; +import { useRef } from "react"; + +import { HeroCardFace } from "./hero-card-face"; + +import type { FeaturedMember } from "@/features/github"; +import type { Group } from "three"; + +const CardRig = ({ children }: { children: React.ReactNode }) => { + const group = useRef(null); + + useFrame((state, delta) => { + if (!group.current) return; + easing.damp(group.current.rotation, "x", -state.pointer.y * 0.3, 0.3, delta); + easing.damp(group.current.rotation, "y", state.pointer.x * 0.45, 0.3, delta); + }); + + return {children}; +}; + +type HeroCard3dProps = { + member: FeaturedMember; + practiceRepoName: string; +}; + +/** + * WebGL hero card: a physical card mesh that tilts toward the pointer with damped + * easing and floats idly, with the member's real data projected onto its face. + * Import through next/dynamic with ssr disabled. + * + * @param member - Featured member rendered on the card face. + * @param practiceRepoName - Practice repo name shown on the face. + * @returns A transparent full-size Canvas containing the card. + * @example + * const HeroCard3d = dynamic(() => import("./hero-card-3d"), { ssr: false }); + */ +const HeroCard3d = ({ member, practiceRepoName }: HeroCard3dProps) => { + const { resolvedTheme } = useTheme(); + const cardColor = resolvedTheme === "dark" ? "#161613" : "#ffffff"; + + return ( + + + + + + + + + + + + + + + + ); +}; + +export default HeroCard3d; diff --git a/src/features/home/hero-card-face.tsx b/src/features/home/hero-card-face.tsx new file mode 100644 index 0000000..04790c1 --- /dev/null +++ b/src/features/home/hero-card-face.tsx @@ -0,0 +1,58 @@ +"use client"; + +import { BadgeCheck, GitMerge, MapPin, Users } from "lucide-react"; +import Image from "next/image"; + +import type { FeaturedMember } from "@/features/github"; + +type HeroCardFaceProps = { + member: FeaturedMember; + practiceRepoName: string; +}; + +/** + * The DOM face of the hero member card — rendered flat as the reduced-motion + * fallback and projected onto the WebGL card via drei's Html in the 3D version. + * Everything shown is the featured member's real GitHub data. + * + * @param member - Top practice-repo contributor (from the GitHub API). + * @param practiceRepoName - Name of the practice repo their PRs were merged into. + * @returns The card face. + * @example + * + */ +export const HeroCardFace = ({ member, practiceRepoName }: HeroCardFaceProps) => ( +
+
+ {member.name +
+

{member.name ?? member.login}

+

@{member.login}

+
+
+ {member.bio &&

{member.bio}

} +
+ + + {member.followers.toLocaleString()} followers + + {member.location && ( + + + {member.location} + + )} +
+
+
+

+ + {member.contributions} merged PRs in {practiceRepoName} +

+

+ + Top contributor — earned, not bought +

+
+
+); diff --git a/src/features/home/hero.tsx b/src/features/home/hero.tsx new file mode 100644 index 0000000..c43036c --- /dev/null +++ b/src/features/home/hero.tsx @@ -0,0 +1,100 @@ +"use client"; + +import { motion, useReducedMotion } from "framer-motion"; +import dynamic from "next/dynamic"; +import Image from "next/image"; +import Link from "next/link"; + +import { Button } from "@/components/ui/button"; +import { HeroCardFace } from "./hero-card-face"; +import { EASE_OUT } from "./reveal"; + +import type { FeaturedMember, OrgMember, OrgStats } from "@/features/github"; + +const HeroCard3d = dynamic(() => import("./hero-card-3d"), { ssr: false }); + +const PRACTICE_REPO_NAME = process.env.NEXT_PUBLIC_PRACTICE_REPO || "Practice-Contribution"; + +type HeroProps = { + featured: FeaturedMember | null; + stats: OrgStats | null; + faces: OrgMember[]; +}; + +const enter = (delay: number) => ({ + initial: { opacity: 0, y: 24, filter: "blur(6px)" }, + animate: { opacity: 1, y: 0, filter: "blur(0px)" }, + transition: { duration: 0.9, ease: EASE_OUT, delay }, +}); + +/** + * Stacked hero: centered statement copy on top, the WebGL member card below. + * The avatar strip and member count are live GitHub org data; the card shows the + * practice repo's top contributor. Falls back to a flat card without WebGL when + * the user prefers reduced motion. + * + * @param featured - Top contributor for the card, or null to hide the card. + * @param stats - Org stats for the live member count line. + * @param faces - Members whose avatars appear in the proof strip. + * @returns The hero section content. + * @example + * + */ +export const Hero = ({ featured, stats, faces }: HeroProps) => { + const reducedMotion = useReducedMotion(); + + return ( +
+
+ + {faces.length > 0 && ( + + {faces.map((face) => ( + {face.login} + ))} + + )} +

+ {stats ? `${stats.members.toLocaleString()} members · since ${stats.foundedYear}` : "an open community"} +

+
+ + Where pros actually hang out. + + + A members-only community for designers, engineers and builders shipping real things. No gurus, no generic + threads — just your people, a portfolio that doesn't suck, and events worth leaving the terminal for. + + + + + +
+ {featured && ( + +
+ {reducedMotion ? ( +
+ +
+ ) : ( +
+ +
+ )} + + )} +
+ ); +}; diff --git a/src/features/home/how-it-works.tsx b/src/features/home/how-it-works.tsx new file mode 100644 index 0000000..8be6e70 --- /dev/null +++ b/src/features/home/how-it-works.tsx @@ -0,0 +1,82 @@ +"use client"; + +import { ArrowUpRight } from "lucide-react"; +import Link from "next/link"; + +import { Reveal } from "./reveal"; + +import type { HomeData } from "@/features/github"; + +type HowItWorksProps = { + practiceRepo: HomeData["practiceRepo"]; +}; + +/** + * The three-step activation story as numbered editorial rows. Step two links to + * the real practice repo with its live fork/star counts. + * + * @param practiceRepo - Practice repo stats from getHomeData, or null. + * @returns The how-it-works section. + * @example + * + */ +export const HowItWorks = ({ practiceRepo }: HowItWorksProps) => { + const steps = [ + { + number: "01", + title: "Sign in with GitHub", + description: "No forms, no fees, no gatekeeping interview. Your GitHub account is your application.", + meta: null, + }, + { + number: "02", + title: "Raise one pull request", + description: "Open a PR in the practice repo. Any honest contribution counts — docs, code, a fix.", + meta: practiceRepo + ? { href: practiceRepo.url, label: `${practiceRepo.forks} forks · ${practiceRepo.stars} stars` } + : null, + }, + { + number: "03", + title: "Merge your way in", + description: + "The moment it merges, a webhook activates your membership. Profile, mentorship, events — all of it.", + meta: null, + }, + ]; + + return ( +
+ +

[ How it works ]

+

+ Three steps. The last one is a merge. +

+
+
+ {steps.map((step, index) => ( + +
+ {step.number} +
+

{step.title}

+

{step.description}

+
+ {step.meta && ( + + {step.meta.label} + + + )} +
+
+ ))} +
+
+ ); +}; diff --git a/src/features/home/index.ts b/src/features/home/index.ts new file mode 100644 index 0000000..4082f2c --- /dev/null +++ b/src/features/home/index.ts @@ -0,0 +1,9 @@ +export * from "./community"; +export * from "./cta"; +export * from "./globe-section"; +export * from "./hero"; +export * from "./how-it-works"; +export * from "./pageview-tracker"; +export * from "./reveal"; +export * from "./statement"; +export * from "./stats-strip"; diff --git a/src/features/home/member-globe.tsx b/src/features/home/member-globe.tsx new file mode 100644 index 0000000..e99c04d --- /dev/null +++ b/src/features/home/member-globe.tsx @@ -0,0 +1,101 @@ +"use client"; + +import { Canvas, useFrame } from "@react-three/fiber"; +import { AdditiveBlending } from "three"; +import { easing } from "maath"; +import { useMemo, useRef } from "react"; + +import { GLOBE_DOTS } from "./globe-dots"; + +import type { MemberHub } from "@/features/github"; +import type { Group, PointsMaterial } from "three"; + +const RADIUS = 2; + +const toVec3 = (lat: number, lng: number, radius: number): [number, number, number] => { + const phi = (lat * Math.PI) / 180; + const theta = (lng * Math.PI) / 180; + return [radius * Math.cos(phi) * Math.sin(theta), radius * Math.sin(phi), radius * Math.cos(phi) * Math.cos(theta)]; +}; + +const Globe = ({ dotColor, hubs }: { dotColor: string; hubs: MemberHub[] }) => { + const group = useRef(null); + const markerMaterial = useRef(null); + + const landPositions = useMemo(() => { + const positions = new Float32Array((GLOBE_DOTS.length / 2) * 3); + for (let i = 0; i < GLOBE_DOTS.length / 2; i++) { + const [x, y, z] = toVec3(GLOBE_DOTS[i * 2], GLOBE_DOTS[i * 2 + 1], RADIUS); + positions.set([x, y, z], i * 3); + } + return positions; + }, []); + + const hubPositions = useMemo(() => { + const positions = new Float32Array(hubs.length * 3); + hubs.forEach((hub, i) => { + positions.set(toVec3(hub.lat, hub.lng, RADIUS * 1.008), i * 3); + }); + return positions; + }, [hubs]); + + useFrame((state, delta) => { + if (group.current) { + group.current.rotation.y += delta * 0.07; + easing.damp(group.current.rotation, "x", 0.18 - state.pointer.y * 0.25, 0.5, delta); + } + if (markerMaterial.current) { + markerMaterial.current.size = 0.075 + Math.sin(state.clock.elapsedTime * 2.4) * 0.02; + } + }); + + return ( + + + + + + + + {hubs.length > 0 && ( + + + + + + + )} + + ); +}; + +type MemberGlobeProps = { + hubs: MemberHub[]; + dotColor: string; +}; + +/** + * WebGL globe of ~10k land dots with pulsing yellow markers on every member hub. + * Rotates slowly, tilts with the pointer. Import through next/dynamic (ssr off) + * and mount only when the section is near the viewport. + * + * @param hubs - Geocoded member locations from the GitHub org. + * @param dotColor - Land dot color, matched to the active theme. + * @returns A transparent Canvas with the globe. + * @example + * const MemberGlobe = dynamic(() => import("./member-globe"), { ssr: false }); + */ +const MemberGlobe = ({ hubs, dotColor }: MemberGlobeProps) => ( + + + +); + +export default MemberGlobe; diff --git a/src/features/home/pageview-tracker.tsx b/src/features/home/pageview-tracker.tsx new file mode 100644 index 0000000..f792495 --- /dev/null +++ b/src/features/home/pageview-tracker.tsx @@ -0,0 +1,22 @@ +"use client"; + +import { usePostHog } from "@posthog/react"; +import { useEffect } from "react"; + +/** + * Fires the home page_view PostHog event once on mount. Exists so the page itself + * can stay a server component. + * + * @returns Nothing renders. + * @example + * + */ +export const PageviewTracker = () => { + const posthog = usePostHog(); + + useEffect(() => { + posthog.capture("page_view"); + }, [posthog]); + + return null; +}; diff --git a/src/features/home/reveal.tsx b/src/features/home/reveal.tsx new file mode 100644 index 0000000..961535b --- /dev/null +++ b/src/features/home/reveal.tsx @@ -0,0 +1,42 @@ +"use client"; + +import { motion, useReducedMotion } from "framer-motion"; + +export const EASE_OUT = [0.22, 1, 0.36, 1] as const; + +type RevealProps = { + children: React.ReactNode; + className?: string; + delay?: number; + y?: number; +}; + +/** + * Scroll-triggered entrance: children rise, sharpen and fade in the first time they + * enter the viewport. Renders statically when the user prefers reduced motion. + * + * @param children - Content to reveal. + * @param className - Classes forwarded to the wrapping motion.div. + * @param delay - Seconds to hold back the transition (for staggering siblings). + * @param y - Initial vertical offset in px (default 28). + * @returns The reveal wrapper. + * @example + *

Heading

+ */ +export const Reveal = ({ children, className, delay = 0, y = 28 }: RevealProps) => { + const reducedMotion = useReducedMotion(); + + if (reducedMotion) return
{children}
; + + return ( + + {children} + + ); +}; diff --git a/src/features/home/statement.tsx b/src/features/home/statement.tsx new file mode 100644 index 0000000..c7fc1cf --- /dev/null +++ b/src/features/home/statement.tsx @@ -0,0 +1,69 @@ +"use client"; + +import { motion, useReducedMotion, useScroll, useTransform, type MotionValue } from "framer-motion"; +import { useRef } from "react"; + +const SENTENCE = + "Membership here is earned, not bought. Sign in with GitHub, raise one pull request, and merge your way in."; +const ACCENTED = new Set(["earned,", "merge"]); + +const Word = ({ + children, + progress, + range, + accent, +}: { + children: string; + progress: MotionValue; + range: [number, number]; + accent: boolean; +}) => { + const opacity = useTransform(progress, range, [0.12, 1]); + + return ( + + {children}{" "} + + ); +}; + +/** + * Full-bleed dark statement panel. The sentence resolves word by word as the + * reader scrolls through it (static under reduced motion). Deliberately dark in + * both themes — it's the page's Spade-style interruption. + * + * @returns The statement section. + * @example + * + */ +export const Statement = () => { + const ref = useRef(null); + const reducedMotion = useReducedMotion(); + const { scrollYProgress } = useScroll({ target: ref, offset: ["start 0.85", "end 0.5"] }); + + const words = SENTENCE.split(" "); + + return ( +
+

[ The rule ]

+

+ {reducedMotion + ? words.map((word) => ( + + {word}{" "} + + )) + : words.map((word, index) => ( + + {word} + + ))} +

+
+ ); +}; diff --git a/src/features/home/stats-strip.tsx b/src/features/home/stats-strip.tsx new file mode 100644 index 0000000..78f5c0c --- /dev/null +++ b/src/features/home/stats-strip.tsx @@ -0,0 +1,68 @@ +"use client"; + +import { animate, useInView, useReducedMotion } from "framer-motion"; +import { useEffect, useRef } from "react"; + +import { EASE_OUT, Reveal } from "./reveal"; + +import type { OrgStats } from "@/features/github"; + +const CountUp = ({ value }: { value: number }) => { + const ref = useRef(null); + const inView = useInView(ref, { once: true, margin: "-15% 0px" }); + const reducedMotion = useReducedMotion(); + + useEffect(() => { + const el = ref.current; + if (!el || !inView) return; + if (reducedMotion) { + el.textContent = value.toLocaleString(); + return; + } + const controls = animate(0, value, { + duration: 1.8, + ease: EASE_OUT, + onUpdate: (latest) => { + el.textContent = Math.round(latest).toLocaleString(); + }, + }); + return () => controls.stop(); + }, [inView, reducedMotion, value]); + + return 0; +}; + +/** + * Live org numbers in an editorial row — every figure comes from the GitHub API + * and counts up when scrolled into view. Renders nothing if stats are unavailable. + * + * @param stats - Org stats from getHomeData, or null. + * @returns The stats strip, or null. + * @example + * + */ +export const StatsStrip = ({ stats }: { stats: OrgStats | null }) => { + if (!stats) return null; + + const items = [ + { label: "Members on GitHub", value: stats.members }, + { label: "Open source repos", value: stats.publicRepos }, + { label: "Stars earned", value: stats.stars }, + { label: "Forks by builders", value: stats.forks }, + ]; + + return ( +
+ {items.map((item, index) => ( + +
+
+ +
+
{item.label}
+
+
+ ))} +
+ ); +}; diff --git a/src/features/members/spotlight-carousel.tsx b/src/features/members/spotlight-carousel.tsx index 9692ba3..2b3b6cf 100644 --- a/src/features/members/spotlight-carousel.tsx +++ b/src/features/members/spotlight-carousel.tsx @@ -30,7 +30,7 @@ export const SpotlightCarousel = () => { if (!members || members.length === 0) return null; return ( -
+
{members.map((member) => (