From a80ce3cdbb936e26dd91839b247c14938957554b Mon Sep 17 00:00:00 2001 From: young Date: Mon, 25 May 2026 18:33:50 +0900 Subject: [PATCH] carrot hud / cluster - turzx 9.2 in (#369) * add cluster alpha * add dep * add dep * fix usb timeout * fix usb timeout * Improve error handling in USB frame transmission Refactor error handling and input draining in USB frame methods. * Refactor JPEG rendering logic in main.py Refactor JPEG rendering to improve readability and add logging. * Refactor _send_frame_no_ack method Refactor _send_frame_no_ack method for better readability and structure. * Update main.py * Update main.py * Update cluster_usb_display.py * Increase NUM_READERS from 25 to 40 * Add center_clock_text attribute to cluster model * Add replace import from dataclasses * Update main.py * Implement center clock drawing in cluster renderer Added a new method to draw the center clock on the cluster UI. * Update cluster_renderer.py * Simplify input draining condition in USB frame method Refactor input draining logic to improve readability. * Update main.py * Update cluster_renderer.py * Update main.py * Update cluster_usb_display.py * Implement performance profiling in cluster rendering Added profiling for rendering performance metrics in the cluster renderer. * Update cluster_renderer.py * Update cluster_renderer.py * Update cluster_renderer.py * Update main.py * Add CLUSTER_PROFILE_RGBA option to README Added environment variable for RGBA profile to cluster_run.py command. * fix replay * fix replay * add log * add log * add log * fix * fix * fix * fix * fix * fix * performance * performance * performance * performance * performance * performance * performance * performance * performance * performance * performance * process * process * process * process * remove dummy * fix ui * fix ui * fix ui * fix usb event monitor * fix usb event monitor * fix ui * fix ui * fix ui apply font * fix ui apply font * fix ui * fix ui * fix ui * fix ui * fix ui * fix ui * fix ui * fix ui * fix ui * fix ui * fix ui * fix ui * fix radar point * fix radar point * fix radar point * fix radar point * fix radar point * fix radar point * fix radar point * fix radar point * fix radar point * fix radar point * fix radar point * fix radar point * fix ui * fix ui * fix ui * fix ui * fix ui * fix ui * dark mode * dark mode * dark mode * cleanup * add bsd * bsd * lca * lca * lca * lca * lca * lca * lca * lca * move speed limit * profiler * perfomance * perfomance * perfomance * perfomance * perfomance * perfomance * perfomance * perfomance * perfomance * fps * perfomance * params * monit * add git info --- common/params_keys.h | 3 + msgq_repo/msgq/msgq.h | 2 +- .../library/__init__.py | 1 + .../library/lcd/__init__.py | 1 + .../library/lcd/color.py | 48 + .../library/lcd/lcd_comm.py | 723 + .../library/lcd/lcd_comm_turing_usb.py | 992 + .../library/log.py | 38 + selfdrive/carrot/cluster/README.md | 51 + .../assets/models/cybertruck/aspalt-road.jpg | Bin 0 -> 2596 bytes .../models/cybertruck/cybertruck_cluster.mtl | 72 + .../models/cybertruck/cybertruck_cluster.obj | 28990 ++++++++++++++++ selfdrive/carrot/cluster/cluster_config.py | 240 + selfdrive/carrot/cluster/cluster_gamepad.py | 214 + .../carrot/cluster/cluster_git_status.py | 199 + selfdrive/carrot/cluster/cluster_live.py | 186 + selfdrive/carrot/cluster/cluster_models.py | 230 + selfdrive/carrot/cluster/cluster_profile.py | 177 + selfdrive/carrot/cluster/cluster_renderer.py | 1830 + .../carrot/cluster/cluster_route_replay.py | 3051 ++ selfdrive/carrot/cluster/cluster_scene.py | 2061 ++ selfdrive/carrot/cluster/cluster_simulator.py | 325 + .../carrot/cluster/cluster_system_monitor.py | 127 + selfdrive/carrot/cluster/cluster_ui.py | 57 + .../carrot/cluster/cluster_usb_display.py | 536 + .../carrot/cluster/cluster_usb_pipeline.py | 104 + selfdrive/carrot/cluster/cluster_utils.py | 42 + selfdrive/carrot/cluster/main.py | 626 + selfdrive/carrot/cluster/requirements.txt | 8 + selfdrive/carrot/cluster_autorun.py | 296 + selfdrive/carrot/cluster_run.py | 63 + selfdrive/carrot_settings.json | 48 + system/manager/process_config.py | 7 + 33 files changed, 41347 insertions(+), 1 deletion(-) create mode 100644 selfdrive/carrot/cluster/.vendor/turing-smart-screen-python-main/library/__init__.py create mode 100644 selfdrive/carrot/cluster/.vendor/turing-smart-screen-python-main/library/lcd/__init__.py create mode 100644 selfdrive/carrot/cluster/.vendor/turing-smart-screen-python-main/library/lcd/color.py create mode 100644 selfdrive/carrot/cluster/.vendor/turing-smart-screen-python-main/library/lcd/lcd_comm.py create mode 100644 selfdrive/carrot/cluster/.vendor/turing-smart-screen-python-main/library/lcd/lcd_comm_turing_usb.py create mode 100644 selfdrive/carrot/cluster/.vendor/turing-smart-screen-python-main/library/log.py create mode 100644 selfdrive/carrot/cluster/README.md create mode 100644 selfdrive/carrot/cluster/assets/models/cybertruck/aspalt-road.jpg create mode 100644 selfdrive/carrot/cluster/assets/models/cybertruck/cybertruck_cluster.mtl create mode 100644 selfdrive/carrot/cluster/assets/models/cybertruck/cybertruck_cluster.obj create mode 100644 selfdrive/carrot/cluster/cluster_config.py create mode 100644 selfdrive/carrot/cluster/cluster_gamepad.py create mode 100644 selfdrive/carrot/cluster/cluster_git_status.py create mode 100644 selfdrive/carrot/cluster/cluster_live.py create mode 100644 selfdrive/carrot/cluster/cluster_models.py create mode 100644 selfdrive/carrot/cluster/cluster_profile.py create mode 100644 selfdrive/carrot/cluster/cluster_renderer.py create mode 100644 selfdrive/carrot/cluster/cluster_route_replay.py create mode 100644 selfdrive/carrot/cluster/cluster_scene.py create mode 100644 selfdrive/carrot/cluster/cluster_simulator.py create mode 100644 selfdrive/carrot/cluster/cluster_system_monitor.py create mode 100644 selfdrive/carrot/cluster/cluster_ui.py create mode 100644 selfdrive/carrot/cluster/cluster_usb_display.py create mode 100644 selfdrive/carrot/cluster/cluster_usb_pipeline.py create mode 100644 selfdrive/carrot/cluster/cluster_utils.py create mode 100644 selfdrive/carrot/cluster/main.py create mode 100644 selfdrive/carrot/cluster/requirements.txt create mode 100644 selfdrive/carrot/cluster_autorun.py create mode 100644 selfdrive/carrot/cluster_run.py diff --git a/common/params_keys.h b/common/params_keys.h index 3c1fa9684..171c7aa46 100644 --- a/common/params_keys.h +++ b/common/params_keys.h @@ -165,6 +165,9 @@ inline static std::unordered_map keys = { {"ShowPlotMode", {PERSISTENT, INT, "0"}}, {"ShowCustomBrightness", {PERSISTENT, INT, "100"}}, {"ShowModelView", {PERSISTENT, INT, "0"}}, + {"ClusterHud", {PERSISTENT, INT, "0"}}, + {"ClusterHudTheme", {PERSISTENT, INT, "0"}}, + {"ClusterHudLiveFps", {PERSISTENT, INT, "0"}}, {"RecordRoadCam", {PERSISTENT, INT, "0"}}, {"HDPuse", {PERSISTENT, INT, "0"}}, diff --git a/msgq_repo/msgq/msgq.h b/msgq_repo/msgq/msgq.h index 95b9b3025..6c3a78ced 100644 --- a/msgq_repo/msgq/msgq.h +++ b/msgq_repo/msgq/msgq.h @@ -6,7 +6,7 @@ #include #define DEFAULT_SEGMENT_SIZE (1 * 1024 * 1024) -#define NUM_READERS 25//15 +#define NUM_READERS 40//15 #define ALIGN(n) ((n + (8 - 1)) & -8) #define UNUSED(x) (void)x diff --git a/selfdrive/carrot/cluster/.vendor/turing-smart-screen-python-main/library/__init__.py b/selfdrive/carrot/cluster/.vendor/turing-smart-screen-python-main/library/__init__.py new file mode 100644 index 000000000..8b1378917 --- /dev/null +++ b/selfdrive/carrot/cluster/.vendor/turing-smart-screen-python-main/library/__init__.py @@ -0,0 +1 @@ + diff --git a/selfdrive/carrot/cluster/.vendor/turing-smart-screen-python-main/library/lcd/__init__.py b/selfdrive/carrot/cluster/.vendor/turing-smart-screen-python-main/library/lcd/__init__.py new file mode 100644 index 000000000..8b1378917 --- /dev/null +++ b/selfdrive/carrot/cluster/.vendor/turing-smart-screen-python-main/library/lcd/__init__.py @@ -0,0 +1 @@ + diff --git a/selfdrive/carrot/cluster/.vendor/turing-smart-screen-python-main/library/lcd/color.py b/selfdrive/carrot/cluster/.vendor/turing-smart-screen-python-main/library/lcd/color.py new file mode 100644 index 000000000..5882fdcce --- /dev/null +++ b/selfdrive/carrot/cluster/.vendor/turing-smart-screen-python-main/library/lcd/color.py @@ -0,0 +1,48 @@ +# SPDX-License-Identifier: GPL-3.0-or-later +from typing import Union, Tuple + +from PIL import ImageColor + +RGBColor = Tuple[int, int, int] + +# Color can be an RGB tuple (RGBColor), or a string in any of these formats: +# - "r, g, b" (e.g. "255, 0, 0"), as is found in the themes' yaml settings +# - any of the formats supported by PIL: https://pillow.readthedocs.io/en/stable/reference/ImageColor.html +# +# For example, here are multiple ways to write the pure red color: +# - (255, 0, 0) +# - "255, 0, 0" +# - "#ff0000" +# - "red" +# - "hsl(0, 100%, 50%)" +Color = Union[str, RGBColor] + +def parse_color(color: Color) -> RGBColor: + # even if undocumented, let's be nice and accept a list in lieu of a tuple + if isinstance(color, tuple) or isinstance(color, list): + if len(color) != 3: + raise ValueError("RGB color must have 3 values") + return (int(color[0]), int(color[1]), int(color[2])) + + if not isinstance(color, str): + raise ValueError("Color must be either an RGB tuple or a string") + + # Try to parse it as our custom "r, g, b" format + rgb = color.split(',') + if len(rgb) == 3: + r, g, b = rgb + try: + rgbcolor = (int(r.strip()), int(g.strip()), int(b.strip())) + except ValueError: + # at least one element can't be converted to int, we continue to + # try parsing as a PIL color + pass + else: + return rgbcolor + + # fallback as a PIL color + rgbcolor = ImageColor.getrgb(color) + if len(rgbcolor) == 4: + return (rgbcolor[0], rgbcolor[1], rgbcolor[2]) + return rgbcolor + diff --git a/selfdrive/carrot/cluster/.vendor/turing-smart-screen-python-main/library/lcd/lcd_comm.py b/selfdrive/carrot/cluster/.vendor/turing-smart-screen-python-main/library/lcd/lcd_comm.py new file mode 100644 index 000000000..f12f07f95 --- /dev/null +++ b/selfdrive/carrot/cluster/.vendor/turing-smart-screen-python-main/library/lcd/lcd_comm.py @@ -0,0 +1,723 @@ +# SPDX-License-Identifier: GPL-3.0-or-later +# +# turing-smart-screen-python - a Python system monitor and library for USB-C displays like Turing Smart Screen or XuanFang +# https://github.com/mathoudebine/turing-smart-screen-python/ +# +# Copyright (C) 2021 Matthieu Houdebine (mathoudebine) +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +import copy +import math +import os +import platform +import queue +import sys +import threading +import time +from abc import ABC, abstractmethod +from enum import IntEnum +from typing import Tuple, List, Optional, Dict + +import serial +from PIL import Image, ImageDraw, ImageFont + +from library.log import logger +from library.lcd.color import Color, parse_color + + +class Orientation(IntEnum): + PORTRAIT = 0 + LANDSCAPE = 2 + REVERSE_PORTRAIT = 1 + REVERSE_LANDSCAPE = 3 + + +class LcdComm(ABC): + def __init__(self, com_port: str = "AUTO", display_width: int = 320, display_height: int = 480, + update_queue: Optional[queue.Queue] = None): + self.lcd_serial = None + + # String containing absolute path to serial port e.g. "COM3", "/dev/ttyACM1" or "AUTO" for auto-discovery + # Ignored for USB HID screens + self.com_port = com_port + + # Display always start in portrait orientation by default + self.orientation = Orientation.PORTRAIT + # Display width in default orientation (portrait) + self.display_width = display_width + # Display height in default orientation (portrait) + self.display_height = display_height + + # Queue containing the serial requests to send to the screen. An external thread should run to process requests + # on the queue. If you want serial requests to be done in sequence, set it to None + self.update_queue = update_queue + + # Mutex to protect the queue in case a thread want to add multiple requests (e.g. image data) that should not be + # mixed with other requests in-between + self.update_queue_mutex = threading.Lock() + + # Create a cache to store opened images, to avoid opening and loading from the filesystem every time + self.image_cache = {} # { key=path, value=PIL.Image } + + # Create a cache to store opened fonts, to avoid opening and loading from the filesystem every time + self.font_cache: Dict[ + Tuple[str, int], # key=(font, size) + ImageFont.FreeTypeFont # value= a loaded freetype font + ] = {} + + def get_width(self) -> int: + if self.orientation == Orientation.PORTRAIT or self.orientation == Orientation.REVERSE_PORTRAIT: + return self.display_width + else: + return self.display_height + + def get_height(self) -> int: + if self.orientation == Orientation.PORTRAIT or self.orientation == Orientation.REVERSE_PORTRAIT: + return self.display_height + else: + return self.display_width + + def openSerial(self): + if self.com_port == 'AUTO': + self.com_port = self.auto_detect_com_port() + if not self.com_port: + logger.error( + "Cannot find COM port automatically, please run Configuration again and select COM port manually") + try: + sys.exit(0) + except: + os._exit(0) + else: + logger.debug(f"Auto detected COM port: {self.com_port}") + else: + logger.debug(f"Static COM port: {self.com_port}") + + try: + self.lcd_serial = serial.Serial(self.com_port, 115200, timeout=1, rtscts=True) + except Exception as e: + logger.error(f"Cannot open COM port {self.com_port}: {e}") + try: + sys.exit(0) + except: + os._exit(0) + + def closeSerial(self): + if self.lcd_serial is not None: + self.lcd_serial.close() + + def serial_write(self, data: bytes): + assert self.lcd_serial is not None + self.lcd_serial.write(data) + + def serial_read(self, size: int) -> bytes: + assert self.lcd_serial is not None + return self.lcd_serial.read(size) + + def serial_readall(self) -> bytes: + assert self.lcd_serial is not None + return self.lcd_serial.readall() + + def serial_flush_input(self): + if self.lcd_serial is not None: + self.lcd_serial.reset_input_buffer() + + def WriteData(self, byteBuffer: bytearray): + self.WriteLine(bytes(byteBuffer)) + + def SendLine(self, line: bytes): + if self.update_queue: + # Queue the request. Mutex is locked by caller to queue multiple lines + self.update_queue.put((self.WriteLine, [line])) + else: + # If no queue for async requests: do request now + self.WriteLine(line) + + def WriteLine(self, line: bytes): + try: + self.serial_write(line) + if platform.system() == "Darwin": + # macOS needs the serial buffer to be flushed regularly to avoid bitmap corruption on the display + # See https://github.com/mathoudebine/turing-smart-screen-python/issues/7 + self.lcd_serial.flush() + except serial.SerialTimeoutException: + # We timed-out trying to write to our device, slow things down. + logger.warning("(Write line) Too fast! Slow down!") + except serial.SerialException: + # Error writing data to device: close and reopen serial port, try to write again + logger.error( + "SerialException: Failed to send serial data to device. Closing and reopening COM port before retrying once.") + self.closeSerial() + time.sleep(1) + self.openSerial() + self.serial_write(line) + + def ReadData(self, readSize: int): + try: + response = self.serial_read(readSize) + # logger.debug("Received: [{}]".format(str(response, 'utf-8'))) + return response + except serial.SerialTimeoutException: + # We timed-out trying to read from our device, slow things down. + logger.warning("(Read data) Too fast! Slow down!") + except serial.SerialException: + # Error writing data to device: close and reopen serial port, try to read again + logger.error( + "SerialException: Failed to read serial data from device. Closing and reopening COM port before retrying once.") + self.closeSerial() + time.sleep(1) + self.openSerial() + return self.serial_read(readSize) + + @staticmethod + def auto_detect_com_port() -> Optional[str]: + # To implement only for screens that use serial commands + pass + + @abstractmethod + def InitializeComm(self): + pass + + @abstractmethod + def Reset(self): + pass + + @abstractmethod + def Clear(self): + pass + + @abstractmethod + def ScreenOff(self): + pass + + @abstractmethod + def ScreenOn(self): + pass + + @abstractmethod + def SetBrightness(self, level: int): + pass + + def SetBackplateLedColor(self, led_color: Tuple[int, int, int] = (255, 255, 255)): + pass + + @abstractmethod + def SetOrientation(self, orientation: Orientation): + pass + + @abstractmethod + def DisplayPILImage( + self, + image: Image.Image, + x: int = 0, y: int = 0, + image_width: int = 0, + image_height: int = 0 + ): + pass + + def DisplayBitmap(self, bitmap_path: str, x: int = 0, y: int = 0, width: int = 0, height: int = 0): + image = self.open_image(bitmap_path) + + # Resize the picture if custom width/height provided + if width != 0 and height != 0: + if width != image.size[0] or height != image.size[1]: + image = image.resize((width, height)) + + self.DisplayPILImage(image, x, y, width, height) + + def DisplayText( + self, + text: str, + x: int = 0, + y: int = 0, + width: int = 0, + height: int = 0, + font: str = "./res/fonts/roboto-mono/RobotoMono-Regular.ttf", + font_size: int = 20, + font_color: Color = (0, 0, 0), + background_color: Color = (255, 255, 255), + background_image: Optional[str] = None, + align: str = 'left', + anchor: str = 'la', + ): + # Convert text to bitmap using PIL and display it + # Provide the background image path to display text with transparent background + + font_color = parse_color(font_color) + background_color = parse_color(background_color) + + assert x <= self.get_width(), 'Text "' + text + '" X coordinate ' + str(x) + ' must be <= display width ' + str( + self.get_width()) + assert y <= self.get_height(), 'Text "' + text + '" Y coordinate ' + str(y) + ' must be <= display height ' + str( + self.get_height()) + assert len(text) > 0, 'Text must not be empty' + assert font_size > 0, "Font size must be > 0" + + # If only width is specified, assume height based on font size (one-line text) + if width > 0 and height == 0: + height = font_size + + if background_image is None: + # A text bitmap is created with max width/height by default : text with solid background + text_image = Image.new( + 'RGB', + (self.get_width(), self.get_height()), + background_color + ) + else: + # The text bitmap is created from provided background image : text with transparent background + text_image = self.open_image(background_image) + + # Get text bounding box + ttfont = self.open_font(font, font_size) + d = ImageDraw.Draw(text_image) + + if width == 0 or height == 0: + left, top, right, bottom = d.textbbox((x, y), text, font=ttfont, align=align, anchor=anchor) + + # textbbox may return float values, which is not good for the bitmap operations below. + # Let's extend the bounding box to the next whole pixel in all directions + left, top = math.floor(left), math.floor(top) + right, bottom = math.ceil(right), math.ceil(bottom) + else: + left, top, right, bottom = x, y, x + width, y + height + + if anchor.startswith("m"): + x = int((right + left) / 2) + elif anchor.startswith("r"): + x = right + else: + x = left + + if anchor.endswith("m"): + y = int((bottom + top) / 2) + elif anchor.endswith("b"): + y = bottom + else: + y = top + + # Draw text onto the background image with specified color & font + d.text((x, y), text, font=ttfont, fill=font_color, align=align, anchor=anchor) + + # Restrict the dimensions if they overflow the display size + left = max(left, 0) + top = max(top, 0) + right = min(right, self.get_width()) + bottom = min(bottom, self.get_height()) + + # Crop text bitmap to keep only the text + text_image = text_image.crop(box=(left, top, right, bottom)) + + self.DisplayPILImage(text_image, left, top) + + def DisplayProgressBar(self, x: int, y: int, width: int, height: int, min_value: int = 0, max_value: int = 100, + value: int = 50, + bar_color: Color = (0, 0, 0), + bar_outline: bool = True, + background_color: Color = (255, 255, 255), + background_image: Optional[str] = None, + reverse_direction: Optional[bool] = False): + # Generate a progress bar and display it + # Provide the background image path to display progress bar with transparent background + + bar_color = parse_color(bar_color) + background_color = parse_color(background_color) + + assert x <= self.get_width(), 'Progress bar X coordinate must be <= display width' + assert y <= self.get_height(), 'Progress bar Y coordinate must be <= display height' + assert x + width <= self.get_width(), 'Progress bar width exceeds display width' + assert y + height <= self.get_height(), 'Progress bar height exceeds display height' + + # Don't let the set value exceed our min or max value, this is bad :) + if value < min_value: + value = min_value + elif max_value < value: + value = max_value + + assert min_value <= value <= max_value, 'Progress bar value shall be between min and max' + + if background_image is None: + # A bitmap is created with solid background + bar_image = Image.new('RGB', (width, height), background_color) + else: + # A bitmap is created from provided background image + bar_image = self.open_image(background_image) + + # Crop bitmap to keep only the progress bar background + bar_image = bar_image.crop(box=(x, y, x + width, y + height)) + + # Draw progress bar. Fill has to be computed from the offset + # into [min_value, max_value], not the raw value; otherwise a + # bar with min_value > 0 (e.g. a 25..95 temperature bar) is + # filled by the wrong fraction. DisplayRadialProgressBar below + # already does this correctly. See issue #954. + if width > height: + bar_filled_width = ((value - min_value) / (max_value - min_value) * width) - 1 + if bar_filled_width < 0: + bar_filled_width = 0 + else: + bar_filled_height = ((value - min_value) / (max_value - min_value) * height) - 1 + if bar_filled_height < 0: + bar_filled_height = 0 + draw = ImageDraw.Draw(bar_image) + + # most common setting + x1 = 0 + y1 = 0 + x2 = width - 1 + y2 = height - 1 + + if width > height: + if reverse_direction is True: + x1 = width - 1 - bar_filled_width + else: + x2 = bar_filled_width + else: + if reverse_direction is True: + y2 = bar_filled_height + else: + y1 = height - 1 - bar_filled_height + draw.rectangle([x1, y1, x2, y2], fill=bar_color, outline=bar_color) + + if bar_outline: + # Draw outline + draw.rectangle([0, 0, width - 1, height - 1], fill=None, outline=bar_color) + + self.DisplayPILImage(bar_image, x, y) + + def DisplayLineGraph(self, x: int, y: int, width: int, height: int, + values: List[float], + min_value: float = 0, + max_value: float = 100, + autoscale: bool = False, + line_color: Color = (0, 0, 0), + line_width: int = 2, + graph_axis: bool = True, + axis_color: Color = (0, 0, 0), + axis_font: str = "./res/fonts/roboto/Roboto-Black.ttf", + axis_font_size: int = 10, + background_color: Color = (255, 255, 255), + background_image: Optional[str] = None, + axis_minmax_format: str = "{:0.0f}"): + # Generate a plot graph and display it + # Provide the background image path to display plot graph with transparent background + + line_color = parse_color(line_color) + axis_color = parse_color(axis_color) + background_color = parse_color(background_color) + + assert x <= self.get_width(), 'Progress bar X coordinate must be <= display width' + assert y <= self.get_height(), 'Progress bar Y coordinate must be <= display height' + assert x + width <= self.get_width(), 'Progress bar width exceeds display width' + assert y + height <= self.get_height(), 'Progress bar height exceeds display height' + + if background_image is None: + # A bitmap is created with solid background + graph_image = Image.new('RGB', (width, height), background_color) + else: + # A bitmap is created from provided background image + graph_image = self.open_image(background_image) + + # Crop bitmap to keep only the plot graph background + graph_image = graph_image.crop(box=(x, y, x + width, y + height)) + + # if autoscale is enabled, define new min/max value to "zoom" the graph + if autoscale: + trueMin = max_value + trueMax = min_value + for value in values: + if not math.isnan(value): + if trueMin > value: + trueMin = value + if trueMax < value: + trueMax = value + + if trueMin != max_value and trueMax != min_value: + min_value = max(trueMin - 5, min_value) + max_value = min(trueMax + 5, max_value) + + step = width / len(values) + # pre compute yScale multiplier value + yScale = (height / (max_value - min_value)) if (max_value - min_value) != 0 else 0 + + plotsX = [] + plotsY = [] + count = 0 + for value in values: + if not math.isnan(value): + # Don't let the set value exceed our min or max value, this is bad :) + if value < min_value: + value = min_value + elif max_value < value: + value = max_value + + assert min_value <= value <= max_value, 'Plot point value shall be between min and max' + + plotsX.append(count * step) + plotsY.append(height - (value - min_value) * yScale) + + count += 1 + + # Draw plot graph + draw = ImageDraw.Draw(graph_image) + draw.line(list(zip(plotsX, plotsY)), fill=line_color, width=line_width) + + if graph_axis: + # Draw axis + draw.line([0, height - 1, width - 1, height - 1], fill=axis_color) + draw.line([0, 0, 0, height - 1], fill=axis_color) + + # Draw Legend + draw.line([0, 0, 1, 0], fill=axis_color) + text = axis_minmax_format.format(max_value) + ttfont = self.open_font(axis_font, axis_font_size) + _, top, right, bottom = ttfont.getbbox(text) + draw.text((2, 0 - top), text, + font=ttfont, fill=axis_color) + + text = axis_minmax_format.format(min_value) + _, top, right, bottom = ttfont.getbbox(text) + draw.text((width - 1 - right, height - 2 - bottom), text, + font=ttfont, fill=axis_color) + + self.DisplayPILImage(graph_image, x, y) + + def DrawRadialDecoration(self, draw: ImageDraw.ImageDraw, angle: float, radius: float, width: float, color: Tuple[int, int, int] = (0, 0, 0)): + i_cos = math.cos(angle*math.pi/180) + i_sin = math.sin(angle*math.pi/180) + x_f = (i_cos * (radius - width/2)) + radius + if math.modf(x_f) == 0.5: + if i_cos > 0: + x_f = math.floor(x_f) + else: + x_f = math.ceil(x_f) + else: + x_f = math.floor(x_f + 0.5) + + y_f = (i_sin * (radius - width/2)) + radius + if math.modf(y_f) == 0.5: + if i_sin > 0: + y_f = math.floor(y_f) + else: + y_f = math.ceil(y_f) + else: + y_f = math.floor(y_f + 0.5) + draw.ellipse([x_f - width/2, y_f - width/2, x_f + width/2, y_f - 1 + width/2 - 1], outline=color, fill=color, width=1) + + + def DisplayRadialProgressBar(self, xc: int, yc: int, radius: int, bar_width: int, + min_value: int = 0, + max_value: int = 100, + angle_start: float = 0, + angle_end: float = 360, + angle_sep: int = 5, + angle_steps: int = 10, + clockwise: bool = True, + value: int = 50, + text: Optional[str] = None, + with_text: bool = True, + font: str = "./res/fonts/roboto/Roboto-Black.ttf", + font_size: int = 20, + font_color: Color = (0, 0, 0), + bar_color: Color = (0, 0, 0), + background_color: Color = (255, 255, 255), + background_image: Optional[str] = None, + custom_bbox: Tuple[int, int, int, int] = (0, 0, 0, 0), + text_offset: Tuple[int, int] = (0,0), + bar_background_color: Color = (0, 0, 0), + draw_bar_background: bool = False, + bar_decoration: str = ""): + # Generate a radial progress bar and display it + # Provide the background image path to display progress bar with transparent background + + bar_color = parse_color(bar_color) + background_color = parse_color(background_color) + font_color = parse_color(font_color) + bar_background_color = parse_color(bar_background_color) + + if angle_start % 361 == angle_end % 361: + if clockwise: + angle_start += 0.1 + else: + angle_end += 0.1 + + assert xc - radius >= 0 and xc + radius <= self.get_width(), 'Radial is out of screen (left/right)' + assert yc - radius >= 0 and yc + radius <= self.get_height(), 'Radial is out of screen (up/down)' + assert 0 < bar_width <= radius, f'Radial linewidth is {bar_width}, must be > 0 and <= radius' + assert angle_end % 361 != angle_start % 361, f'Invalid angles values, start = {angle_start}, end = {angle_end}' + assert isinstance(angle_steps, int), 'angle_steps value must be an integer' + assert angle_sep >= 0, 'Provide an angle_sep value >= 0' + assert angle_steps > 0, 'Provide an angle_step value > 0' + assert angle_sep * angle_steps < 360, 'Given angle_sep and angle_steps values are not correctly set' + + # Don't let the set value exceed our min or max value, this is bad :) + if value < min_value: + value = min_value + elif max_value < value: + value = max_value + + assert min_value <= value <= max_value, 'Radial value shall be between min and max' + + diameter = 2 * radius + bbox = (xc - radius, yc - radius, xc + radius, yc + radius) + # + if background_image is None: + # A bitmap is created with solid background + bar_image = Image.new('RGB', (diameter, diameter), background_color) + else: + # A bitmap is created from provided background image + bar_image = self.open_image(background_image) + + # Crop bitmap to keep only the progress bar background + bar_image = bar_image.crop(box=bbox) + + # Draw progress bar + pct = (value - min_value) / (max_value - min_value) + draw = ImageDraw.Draw(bar_image) + + # PIL arc method uses angles with + # . 3 o'clock for 0 + # . clockwise from angle start to angle end + angle_start %= 361 + angle_end %= 361 + # + if clockwise: + if angle_end < angle_start: + ecart = 360 - angle_start + angle_end + else: + ecart = angle_end - angle_start + + # draw bar background + if draw_bar_background: + if angle_end < angle_start: + angleE = angle_start + ecart + angleS = angle_start + else: + angleS = angle_start + angleE = angle_start + ecart + draw.arc([0, 0, diameter - 1, diameter - 1], angleS, angleE, fill=bar_background_color, width=bar_width) + + # draw bar decoration + if bar_decoration == "Ellipse": + self.DrawRadialDecoration(draw = draw, angle = angle_end, radius = radius, width = bar_width, color = bar_background_color) + self.DrawRadialDecoration(draw = draw, angle = angle_start, radius = radius, width = bar_width, color = bar_color) + self.DrawRadialDecoration(draw = draw, angle = angle_start + pct * ecart, radius = radius, width = bar_width, color = bar_color) + + # + # solid bar case + if angle_sep == 0: + if angle_end < angle_start: + angleE = angle_start + pct * ecart + angleS = angle_start + else: + angleS = angle_start + angleE = angle_start + pct * ecart + draw.arc([0, 0, diameter - 1, diameter - 1], angleS, angleE, + fill=bar_color, width=bar_width) + # discontinued bar case + else: + angleE = angle_start + pct * ecart + angle_complet = ecart / angle_steps + etapes = int((angleE - angle_start) / angle_complet) + for i in range(etapes): + draw.arc([0, 0, diameter - 1, diameter - 1], + angle_start + i * angle_complet, + angle_start + (i + 1) * angle_complet - angle_sep, + fill=bar_color, + width=bar_width) + + draw.arc([0, 0, diameter - 1, diameter - 1], + angle_start + etapes * angle_complet, + angleE, + fill=bar_color, + width=bar_width) + else: + if angle_end < angle_start: + ecart = angle_start - angle_end + else: + ecart = 360 - angle_end + angle_start + + # draw bar background + if draw_bar_background: + if angle_end < angle_start: + angleE = angle_start + angleS = angle_start - ecart + else: + angleS = angle_start - ecart + angleE = angle_start + draw.arc([0, 0, diameter - 1, diameter - 1], angleS, angleE, fill=bar_background_color, width=bar_width) + + + # draw bar decoration + if bar_decoration == "Ellipse": + self.DrawRadialDecoration(draw = draw, angle = angle_end, radius = radius, width = bar_width, color = bar_background_color) + self.DrawRadialDecoration(draw = draw, angle = angle_start, radius = radius, width = bar_width, color = bar_color) + self.DrawRadialDecoration(draw = draw, angle = angle_start - pct * ecart, radius = radius, width = bar_width, color = bar_color) + + # + # solid bar case + if angle_sep == 0: + if angle_end < angle_start: + angleE = angle_start + angleS = angle_start - pct * ecart + else: + angleS = angle_start - pct * ecart + angleE = angle_start + draw.arc([0, 0, diameter - 1, diameter - 1], angleS, angleE, + fill=bar_color, width=bar_width) + # discontinued bar case + else: + angleS = angle_start - pct * ecart + angle_complet = ecart / angle_steps + etapes = int((angle_start - angleS) / angle_complet) + for i in range(etapes): + draw.arc([0, 0, diameter - 1, diameter - 1], + angle_start - (i + 1) * angle_complet + angle_sep, + angle_start - i * angle_complet, + fill=bar_color, + width=bar_width) + + draw.arc([0, 0, diameter - 1, diameter - 1], + angleS, + angle_start - etapes * angle_complet, + fill=bar_color, + width=bar_width) + + # Draw text + if with_text: + if text is None: + text = f"{int(pct * 100 + .5)}%" + ttfont = self.open_font(font, font_size) + left, top, right, bottom = ttfont.getbbox(text) + w, h = right - left, bottom - top + draw.text((radius - w / 2 + text_offset[0], radius - top - h / 2 + text_offset[1]), text, + font=ttfont, fill=font_color) + + if custom_bbox[0] != 0 or custom_bbox[1] != 0 or custom_bbox[2] != 0 or custom_bbox[3] != 0: + bar_image = bar_image.crop(box=custom_bbox) + + self.DisplayPILImage(bar_image, xc - radius + custom_bbox[0], yc - radius + custom_bbox[1]) + # self.DisplayPILImage(bar_image, xc - radius, yc - radius) + + # Load image from the filesystem, or get from the cache if it has already been loaded previously + def open_image(self, bitmap_path: str) -> Image.Image: + if bitmap_path not in self.image_cache: + logger.debug("Bitmap " + bitmap_path + " is now loaded in the cache") + self.image_cache[bitmap_path] = Image.open(bitmap_path) + return copy.copy(self.image_cache[bitmap_path]) + + def open_font(self, name: str, size: int) -> ImageFont.FreeTypeFont: + if (name, size) not in self.font_cache: + self.font_cache[(name, size)] = ImageFont.truetype(name, size) + return self.font_cache[(name, size)] diff --git a/selfdrive/carrot/cluster/.vendor/turing-smart-screen-python-main/library/lcd/lcd_comm_turing_usb.py b/selfdrive/carrot/cluster/.vendor/turing-smart-screen-python-main/library/lcd/lcd_comm_turing_usb.py new file mode 100644 index 000000000..3eef95f26 --- /dev/null +++ b/selfdrive/carrot/cluster/.vendor/turing-smart-screen-python-main/library/lcd/lcd_comm_turing_usb.py @@ -0,0 +1,992 @@ +# SPDX-License-Identifier: GPL-3.0-or-later +# +# turing-smart-screen-python - a Python system monitor and library for USB-C displays like Turing Smart Screen or XuanFang +# https://github.com/mathoudebine/turing-smart-screen-python/ +# +# Copyright (C) 2021 Matthieu Houdebine (mathoudebine) +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +import os +import platform +import queue +import shutil +import struct +import subprocess +import sys +import time +from io import BytesIO +from pathlib import Path +from typing import Optional + +import usb.core +import usb.util +from Crypto.Cipher import DES +from PIL import Image + +from library.lcd.lcd_comm import Orientation, LcdComm +from library.log import logger + +VENDOR_ID = 0x1cbe + +# Map of display supported product IDs and their respective resolution in portrait mode +PRODUCT_ID = {0x0028: (480, 480), # Turing 2.8" round (USB) + 0x0046: (320, 960), # Turing 4.6" + 0x0050: (720, 1280), # Turing 5.2" + 0x0080: (800, 1280), # Turing 8.0" + 0x0088: (480, 1920), # Turing 8.8" + 0x0092: (462, 1920), # Turing 9.2" + 0x0123: (720, 1920), # Turing 12.3" +} + +MAX_CHUNK_BYTES = 1024 * 1024 # Data sent to screen cannot exceed 1024MB or there will be a timeout + +# Command IDs used by the vendor protocol (subset) +CMD_UPLOAD_JPEG = 101 +CMD_UPLOAD_PNG = 102 +CMD_GET_H264_CHUNK_SIZE = 17 +CMD_PLAY_H264_CHUNK = 121 +CMD_GET_STREAM_STATUS = 122 +CMD_STOP_STREAM = 123 + +# Default max payload for frame uploads (device/transport limit) +MAX_IMAGE_PAYLOAD_DEFAULT = MAX_CHUNK_BYTES + + +def _resp_ok(resp: Optional[bytes]) -> bool: + if not resp: + return False + b1 = resp[1] if len(resp) > 1 else None + b8 = resp[8] if len(resp) > 8 else None + return (b1 == 0xC8) or (b8 == 0xC8) + + +def send_jpeg(dev, jpeg_data: bytes): + img_size = len(jpeg_data) + cmd_packet = build_command_packet_header(CMD_UPLOAD_JPEG) + cmd_packet[8] = (img_size >> 24) & 0xFF + cmd_packet[9] = (img_size >> 16) & 0xFF + cmd_packet[10] = (img_size >> 8) & 0xFF + cmd_packet[11] = img_size & 0xFF + full_payload = encrypt_command_packet(cmd_packet) + jpeg_data + return write_to_device(dev, full_payload) + + +def _encode_jpeg_under_limit(image: Image.Image, *, max_bytes: int, quality: int = 95, + subsampling: int = -1, ) -> bytes: + if subsampling not in (-1, 0, 1, 2): + raise ValueError("subsampling must be one of: -1, 0, 1, 2") + img = image + if img.mode not in ("RGB", "L"): + img = img.convert("RGB") + elif img.mode == "L": + img = img.convert("RGB") + + subs = (2, 1, 0) if subsampling == -1 else (subsampling,) + best = b"" + for sub in subs: + q = int(quality) + while q >= 1: + buf = BytesIO() + try: + img.save(buf, format="JPEG", quality=q, optimize=False, progressive=False, subsampling=sub, ) + except TypeError: + img.save(buf, format="JPEG", quality=q, optimize=False, progressive=False) + data = buf.getvalue() + if not best or len(data) < len(best): + best = data + if len(data) <= max_bytes: + return data + q = q - 5 if q > 10 else q - 1 + + raise RuntimeError(f"Could not transcode JPEG under max_bytes: {len(best)} > {max_bytes}") + + +def send_pil_image_auto(dev, image: Image.Image, *, max_bytes: int = MAX_IMAGE_PAYLOAD_DEFAULT, ) -> None: + # First try PNG (preferred) + png = _encode_png(image) + if len(png) <= max_bytes: + send_image(dev, png) + return + # Fallback to JPEG when over limit (default behavior) + jpg = _encode_jpeg_under_limit(image, max_bytes=max_bytes, quality=90, subsampling=-1) + send_jpeg(dev, jpg) + + +# ---- MP4 parsing + Annex-B extraction (pure Python fallback) ---- +from dataclasses import dataclass +from typing import Iterable, Set + + +def _u32be(b: bytes, off: int = 0) -> int: + return int.from_bytes(b[off:off + 4], "big", signed=False) + + +def _u64be(b: bytes, off: int = 0) -> int: + return int.from_bytes(b[off:off + 8], "big", signed=False) + + +def _iter_mp4_boxes(data: bytes, start: int, end: int) -> Iterable[tuple[bytes, int, int]]: + i = start + while i + 8 <= end: + size = _u32be(data, i) + typ = data[i + 4:i + 8] + hdr = 8 + if size == 1: + if i + 16 > end: + break + size = _u64be(data, i + 8) + hdr = 16 + elif size == 0: + size = end - i + if size < hdr: + break + j = i + int(size) + if j > end: + break + yield typ, i + hdr, j + i = j + + +def _mp4_find_box(data: bytes, start: int, end: int, typ: bytes) -> Optional[tuple[int, int]]: + for t, ps, pe in _iter_mp4_boxes(data, start, end): + if t == typ: + return ps, pe + return None + + +@dataclass +class _Mp4H264Track: + nal_len_size: int + sps_list: list[bytes] + pps_list: list[bytes] + sample_sizes: list[int] + chunk_offsets: list[int] + stsc: list[tuple[int, int, int]] # (first_chunk, samples_per_chunk, sample_desc_idx) + sync_samples: Optional[Set[int]] + + +def _mp4_parse_avcc(avcc: bytes) -> tuple[int, list[bytes], list[bytes]]: + if len(avcc) < 7: + raise ValueError("avcC too small") + nal_len_size = (avcc[4] & 0x03) + 1 + num_sps = avcc[5] & 0x1F + off = 6 + sps_list: list[bytes] = [] + for _ in range(num_sps): + if off + 2 > len(avcc): + raise ValueError("avcC truncated (SPS length)") + n = int.from_bytes(avcc[off:off + 2], "big") + off += 2 + if off + n > len(avcc): + raise ValueError("avcC truncated (SPS data)") + sps_list.append(avcc[off:off + n]) + off += n + if off + 1 > len(avcc): + raise ValueError("avcC truncated (PPS count)") + num_pps = avcc[off] + off += 1 + pps_list: list[bytes] = [] + for _ in range(num_pps): + if off + 2 > len(avcc): + raise ValueError("avcC truncated (PPS length)") + n = int.from_bytes(avcc[off:off + 2], "big") + off += 2 + if off + n > len(avcc): + raise ValueError("avcC truncated (PPS data)") + pps_list.append(avcc[off:off + n]) + off += n + return nal_len_size, sps_list, pps_list + + +def _mp4_load_moov(path: str) -> bytes: + with open(path, "rb") as f: + f.seek(0, os.SEEK_END) + file_size = f.tell() + f.seek(0, os.SEEK_SET) + while f.tell() + 8 <= file_size: + off0 = f.tell() + hdr = f.read(8) + if len(hdr) < 8: + break + size = _u32be(hdr, 0) + typ = hdr[4:8] + hdr_size = 8 + if size == 1: + ext = f.read(8) + if len(ext) < 8: + break + size = _u64be(ext, 0) + hdr_size = 16 + elif size == 0: + size = file_size - off0 + if size < hdr_size: + break + payload_size = int(size) - hdr_size + if typ == b"moov": + return f.read(payload_size) + f.seek(payload_size, os.SEEK_CUR) + raise ValueError("MP4: moov box not found") + + +def _mp4_pick_h264_video_track(moov: bytes) -> _Mp4H264Track: + moov_start = 0 + moov_end = len(moov) + for t_trak, trak_ps, trak_pe in _iter_mp4_boxes(moov, moov_start, moov_end): + if t_trak != b"trak": + continue + mdia = _mp4_find_box(moov, trak_ps, trak_pe, b"mdia") + if mdia is None: + continue + mdia_ps, mdia_pe = mdia + hdlr = _mp4_find_box(moov, mdia_ps, mdia_pe, b"hdlr") + if hdlr is None: + continue + hdlr_ps, hdlr_pe = hdlr + hdlr_payload = moov[hdlr_ps:hdlr_pe] + if len(hdlr_payload) < 12 or hdlr_payload[8:12] != b"vide": + continue + + minf = _mp4_find_box(moov, mdia_ps, mdia_pe, b"minf") + if minf is None: + continue + stbl = _mp4_find_box(moov, minf[0], minf[1], b"stbl") + if stbl is None: + continue + stbl_ps, stbl_pe = stbl + + stsd = _mp4_find_box(moov, stbl_ps, stbl_pe, b"stsd") + stsz = _mp4_find_box(moov, stbl_ps, stbl_pe, b"stsz") + stsc = _mp4_find_box(moov, stbl_ps, stbl_pe, b"stsc") + stco = _mp4_find_box(moov, stbl_ps, stbl_pe, b"stco") + co64 = _mp4_find_box(moov, stbl_ps, stbl_pe, b"co64") + stss = _mp4_find_box(moov, stbl_ps, stbl_pe, b"stss") + if stsd is None or stsz is None or stsc is None or (stco is None and co64 is None): + continue + + stsd_payload = moov[stsd[0]:stsd[1]] + if len(stsd_payload) < 8: + continue + entry_count = _u32be(stsd_payload, 4) + off = 8 + found = False + nal_len_size = 4 + sps_list: list[bytes] = [] + pps_list: list[bytes] = [] + for _ in range(entry_count): + if off + 8 > len(stsd_payload): + break + ent_size = _u32be(stsd_payload, off) + fmt = stsd_payload[off + 4:off + 8] + ent_end = off + int(ent_size) + if ent_size < 8 or ent_end > len(stsd_payload): + break + if fmt in (b"avc1", b"avc3"): + child_start = off + 8 + 78 + if child_start < ent_end: + for t2, ps2, pe2 in _iter_mp4_boxes(stsd_payload, child_start, ent_end): + if t2 == b"avcC": + nal_len_size, sps_list, pps_list = _mp4_parse_avcc(stsd_payload[ps2:pe2]) + found = True + break + elif fmt in (b"hvc1", b"hev1"): + raise ValueError("MP4 contains HEVC/H.265; device expects H.264") + if found: + break + off = ent_end + if not found: + continue + + stsz_payload = moov[stsz[0]:stsz[1]] + if len(stsz_payload) < 12: + continue + fixed_size = _u32be(stsz_payload, 4) + sample_count = _u32be(stsz_payload, 8) + sample_sizes: list[int] = [] + if fixed_size: + sample_sizes = [int(fixed_size)] * int(sample_count) + else: + need = 12 + int(sample_count) * 4 + if len(stsz_payload) < need: + continue + off2 = 12 + for _ in range(int(sample_count)): + sample_sizes.append(int(_u32be(stsz_payload, off2))) + off2 += 4 + + if stco is not None: + stco_payload = moov[stco[0]:stco[1]] + if len(stco_payload) < 8: + continue + n = _u32be(stco_payload, 4) + need = 8 + int(n) * 4 + if len(stco_payload) < need: + continue + chunk_offsets = [int(_u32be(stco_payload, 8 + 4 * i)) for i in range(int(n))] + else: + co64_payload = moov[co64[0]:co64[1]] # type: ignore[index] + if len(co64_payload) < 8: + continue + n = _u32be(co64_payload, 4) + need = 8 + int(n) * 8 + if len(co64_payload) < need: + continue + chunk_offsets = [int(_u64be(co64_payload, 8 + 8 * i)) for i in range(int(n))] + + stsc_payload = moov[stsc[0]:stsc[1]] + if len(stsc_payload) < 8: + continue + n = _u32be(stsc_payload, 4) + need = 8 + int(n) * 12 + if len(stsc_payload) < need: + continue + stsc_entries: list[tuple[int, int, int]] = [] + off3 = 8 + for _ in range(int(n)): + first_chunk = int(_u32be(stsc_payload, off3)) + samples_per_chunk = int(_u32be(stsc_payload, off3 + 4)) + desc_idx = int(_u32be(stsc_payload, off3 + 8)) + stsc_entries.append((first_chunk, samples_per_chunk, desc_idx)) + off3 += 12 + stsc_entries.sort(key=lambda x: x[0]) + + sync_samples: Optional[Set[int]] = None + if stss is not None: + stss_payload = moov[stss[0]:stss[1]] + if len(stss_payload) >= 8: + n2 = _u32be(stss_payload, 4) + need = 8 + int(n2) * 4 + if len(stss_payload) >= need: + sync_samples = set(int(_u32be(stss_payload, 8 + 4 * i)) for i in range(int(n2))) + + return _Mp4H264Track(nal_len_size=int(nal_len_size), sps_list=sps_list, pps_list=pps_list, + sample_sizes=sample_sizes, chunk_offsets=chunk_offsets, stsc=stsc_entries, sync_samples=sync_samples, ) + + raise ValueError("MP4: no H.264 video track found") + + +def _mp4_iter_sample_locations(track: _Mp4H264Track) -> Iterable[tuple[int, int, int]]: + sizes = track.sample_sizes + sample_idx0 = 0 + entries = track.stsc + entry_idx = 0 + if not sizes: + return + for chunk_idx1, chunk_off in enumerate(track.chunk_offsets, start=1): + while (entry_idx + 1) < len(entries) and chunk_idx1 >= entries[entry_idx + 1][0]: + entry_idx += 1 + samples_per_chunk = entries[entry_idx][1] + off = int(chunk_off) + for _ in range(samples_per_chunk): + if sample_idx0 >= len(sizes): + return + sz = int(sizes[sample_idx0]) + yield sample_idx0 + 1, off, sz + off += sz + sample_idx0 += 1 + + +def _mp4_extract_h264_annexb(in_path: str, out_path: str, *, repeat_headers: bool = True) -> None: + moov = _mp4_load_moov(in_path) + track = _mp4_pick_h264_video_track(moov) + start_code = b"\x00\x00\x00\x01" + spspps = b"".join(start_code + s for s in track.sps_list) + b"".join(start_code + p for p in track.pps_list) + if not spspps: + raise ValueError("MP4: missing SPS/PPS in avcC") + + with open(in_path, "rb") as fin, open(out_path, "wb") as fout: + fout.write(spspps) + nls = int(track.nal_len_size) + if nls not in (1, 2, 3, 4): + raise ValueError(f"MP4: unsupported NAL length size: {nls}") + sync = track.sync_samples + for sample_no, off, sz in _mp4_iter_sample_locations(track): + if repeat_headers and sync is not None and sample_no in sync: + fout.write(spspps) + fin.seek(off, os.SEEK_SET) + data = fin.read(sz) + if len(data) != sz: + raise ValueError("MP4: truncated sample read") + pos = 0 + end = len(data) + while pos + nls <= end: + nal_len = int.from_bytes(data[pos:pos + nls], "big") + pos += nls + if nal_len <= 0: + continue + if pos + nal_len > end: + raise ValueError("MP4: invalid NAL length in sample") + fout.write(start_code) + fout.write(data[pos:pos + nal_len]) + pos += nal_len + + +def build_command_packet_header(a0: int) -> bytearray: + packet = bytearray(500) + packet[0] = a0 + packet[2] = 0x1A + packet[3] = 0x6D + timestamp = int((time.time() - time.mktime(time.localtime()[:3] + (0, 0, 0, 0, 0, -1))) * 1000) + packet[4:8] = struct.pack(' bytes: + cipher = DES.new(key, DES.MODE_CBC, key) + padded_len = (len(data) + 7) // 8 * 8 + padded_data = data.ljust(padded_len, b'\x00') + return cipher.encrypt(padded_data) + + +def encrypt_command_packet(data: bytearray) -> bytearray: + des_key = b'slv3tuzx' + encrypted = encrypt_with_des(des_key, data) + final_packet = bytearray(512) + final_packet[:len(encrypted)] = encrypted + final_packet[510] = 161 + final_packet[511] = 26 + return final_packet + + +def find_usb_device(): + dev = None + dev_pid = None + for pid in PRODUCT_ID.keys(): + try: + dev = usb.core.find(idVendor=VENDOR_ID, idProduct=pid) + except usb.core.NoBackendError as e: + print("""[ERROR] %s: libusb could not be loaded from your system. Make sure it is installed. +On Linux and BSD, these will generally be available on the distribution's official repositories. +On macOS, libusb 1.0 can easily be installed through Homebrew: brew install libusb +On Windows, manually copy 'external/libusb-1.0/libusb-1.0.dll' to C:\\Windows\\System32""" % str( + e)) + try: + sys.exit(0) + except: + os._exit(0) + + dev_pid = pid + if dev is not None: + break + if dev is None: + raise ValueError(f'USB device not found') + + try: + dev.set_configuration() + except usb.core.USBError as e: + print("Warning: set_configuration() failed:", e) + + if platform.system() == "Linux": + try: + if dev.is_kernel_driver_active(0): + dev.detach_kernel_driver(0) + except usb.core.USBError as e: + print("Warning: detach_kernel_driver failed:", e) + + return dev, dev_pid + + +def read_flush(ep_in, max_attempts=5): + """ + Flush the USB IN endpoint by reading available data until timeout or max attempts reached. + """ + for _ in range(max_attempts): + try: + ep_in.read(512, timeout=100) + except usb.core.USBError as e: + if e.errno == 110 or e.args[0] == 'Operation timed out': + break + else: + # print("Flush read error:", e) + break + + +def write_to_device(dev, data, timeout=2000): + cfg = dev.get_active_configuration() + intf = usb.util.find_descriptor(cfg, bInterfaceNumber=0) + if intf is None: + raise RuntimeError("USB interface 0 not found") + ep_out = usb.util.find_descriptor(intf, custom_match=lambda e: usb.util.endpoint_direction( + e.bEndpointAddress) == usb.util.ENDPOINT_OUT) + ep_in = usb.util.find_descriptor(intf, custom_match=lambda e: usb.util.endpoint_direction( + e.bEndpointAddress) == usb.util.ENDPOINT_IN) + assert ep_out is not None and ep_in is not None, "Could not find USB endpoints" + + try: + ep_out.write(data, timeout) + except usb.core.USBError as e: + print("USB write error:", e) + return None + + try: + response = ep_in.read(512, timeout) + read_flush(ep_in) + return bytes(response) + except usb.core.USBError as e: + print("USB read error:", e) + return None + + +def delay_sync(dev): + send_sync_command(dev) + time.sleep(0.2) + + +def send_sync_command(dev): + print("Sending Sync Command (ID 10)...") + cmd_packet = build_command_packet_header(10) + return write_to_device(dev, encrypt_command_packet(cmd_packet)) + + +def send_restart_device_command(dev): + print("Sending Restart Command (ID 11)...") + return write_to_device(dev, encrypt_command_packet(build_command_packet_header(11))) + + +def send_brightness_command(dev, brightness: int): + print(f"Sending Brightness Command (ID 14)...") + print(f" Brightness = {brightness}") + cmd_packet = build_command_packet_header(14) + cmd_packet[8] = brightness + return write_to_device(dev, encrypt_command_packet(cmd_packet)) + + +def send_frame_rate_command(dev, frame_rate: int): + print(f"Sending Frame Rate Command (ID 15)...") + print(f" Frame Rate = {frame_rate}") + cmd_packet = build_command_packet_header(15) + cmd_packet[8] = frame_rate + return write_to_device(dev, encrypt_command_packet(cmd_packet)) + + +def format_bytes(val): + if val > 1024 * 1024: + return f"{val / (1024 * 1024):.2f} GB" + else: + return f"{val / 1024:.2f} MB" + + +def send_refresh_storage_command(dev): + print("Sending Refresh Storage Command (ID 100)...") + response = write_to_device(dev, encrypt_command_packet(build_command_packet_header(100))) + + total = format_bytes(int.from_bytes(response[8:12], byteorder='little')) + used = format_bytes(int.from_bytes(response[12:16], byteorder='little')) + valid = format_bytes(int.from_bytes(response[16:20], byteorder='little')) + + print(f" Card Total = {total}") + print(f" Card Used = {used}") + print(f" Card Valid = {valid}") + + +def send_save_settings_command(dev, brightness=0, startup=0, reserved=0, sleep=0, offline=0): + print("Sending Save Settings Command (ID 125)...") + print(f" Brightness: {brightness}") + print(f" Startup Mode: {startup}") + print(f" Reserved: {reserved}") + print(f" Sleep Timeout: {sleep}") + print(f" Offline Mode: {offline}") + cmd_packet = build_command_packet_header(125) + cmd_packet[8] = brightness + cmd_packet[9] = startup + cmd_packet[10] = reserved + cmd_packet[11] = 0 + cmd_packet[12] = sleep + cmd_packet[13] = offline + return write_to_device(dev, encrypt_command_packet(cmd_packet)) + + +def send_image(dev, png_data: bytes): + img_size = len(png_data) + + cmd_packet = build_command_packet_header(CMD_UPLOAD_PNG) + cmd_packet[8] = (img_size >> 24) & 0xFF + cmd_packet[9] = (img_size >> 16) & 0xFF + cmd_packet[10] = (img_size >> 8) & 0xFF + cmd_packet[11] = img_size & 0xFF + + full_payload = encrypt_command_packet(cmd_packet) + png_data + return write_to_device(dev, full_payload) + + +def clear_image(dev): + img_data = bytearray( + [0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a, 0x00, 0x00, 0x00, 0x0d, 0x49, 0x48, 0x44, 0x52, 0x00, 0x00, + 0x01, 0xe0, 0x00, 0x00, 0x07, 0x80, 0x08, 0x06, 0x00, 0x00, 0x00, 0x16, 0xf0, 0x84, 0xf5, 0x00, 0x00, 0x00, + 0x01, 0x73, 0x52, 0x47, 0x42, 0x00, 0xae, 0xce, 0x1c, 0xe9, 0x00, 0x00, 0x00, 0x04, 0x67, 0x41, 0x4d, 0x41, + 0x00, 0x00, 0xb1, 0x8f, 0x0b, 0xfc, 0x61, 0x05, 0x00, 0x00, 0x00, 0x09, 0x70, 0x48, 0x59, 0x73, 0x00, 0x00, + 0x0e, 0xc3, 0x00, 0x00, 0x0e, 0xc3, 0x01, 0xc7, 0x6f, 0xa8, 0x64, 0x00, 0x00, 0x0e, 0x0c, 0x49, 0x44, 0x41, + 0x54, 0x78, 0x5e, 0xed, 0xc1, 0x01, 0x0d, 0x00, 0x00, 0x00, 0xc2, 0xa0, 0xf7, 0x4f, 0x6d, 0x0f, 0x07, 0x14, + 0x00, 0x00, 0x00, 0x00, ] + [0x00] * 3568 + [0x00, 0xf0, 0x66, 0x4a, 0xc8, 0x00, 0x01, 0x11, 0x9d, 0x82, 0x0a, + 0x00, 0x00, 0x00, 0x00, 0x49, 0x45, 0x4e, 0x44, 0xae, 0x42, 0x60, + 0x82]) + img_size = len(img_data) + print(f" Chunk Size: {img_size} bytes") + + cmd_packet = build_command_packet_header(102) + cmd_packet[8] = (img_size >> 24) & 0xFF + cmd_packet[9] = (img_size >> 16) & 0xFF + cmd_packet[10] = (img_size >> 8) & 0xFF + cmd_packet[11] = img_size & 0xFF + + full_payload = encrypt_command_packet(cmd_packet) + img_data + return write_to_device(dev, full_payload) + + +def delay(dev, rst): + time.sleep(0.05) + print("Sending Delay Command (ID 122)...") + cmd_packet = build_command_packet_header(122) + response = write_to_device(dev, encrypt_command_packet(cmd_packet)) + if response and len(response) > 8 and response[8] > rst: + delay(dev, rst) + + +def extract_h264_from_mp4(mp4_path: str): + input_path = Path(mp4_path) + if not input_path.exists(): + raise FileNotFoundError(f"Input file not found: {input_path}") + + output_path = input_path.with_suffix(".h264") + if output_path.exists(): + print(f"{output_path.name} already exists. Skipping extraction.") + return output_path + + # Prefer ffmpeg when available (fast + robust). Fall back to pure-Python MP4->Annex-B extraction. + ffmpeg = shutil.which("ffmpeg") + if ffmpeg: + cmd = [ffmpeg, "-y", "-i", str(input_path), "-c:v", "copy", "-bsf:v", "h264_mp4toannexb", "-an", "-f", "h264", + str(output_path), ] + print(f"Extracting H.264 from {input_path.name} with ffmpeg...") + subprocess.run(cmd, check=True) + print(f"Done. Saved as {output_path.name}") + return output_path + + print(f"ffmpeg not found; extracting H.264 from {input_path.name} with built-in MP4 parser...") + _mp4_extract_h264_annexb(str(input_path), str(output_path), repeat_headers=True) + print(f"Done. Saved as {output_path.name}") + return output_path + + +def send_video(dev, video_path, loop=False): + output_path = extract_h264_from_mp4(video_path) + + write_to_device(dev, encrypt_command_packet(build_command_packet_header(111))) + write_to_device(dev, encrypt_command_packet(build_command_packet_header(112))) + write_to_device(dev, encrypt_command_packet(build_command_packet_header(13))) + send_brightness_command(dev, 32) # 14 + write_to_device(dev, encrypt_command_packet(build_command_packet_header(41))) + clear_image(dev) # 102 + send_frame_rate_command(dev, 25) # 15 + + # Negotiate chunk size if supported + resp = write_to_device(dev, encrypt_command_packet(build_command_packet_header(CMD_GET_H264_CHUNK_SIZE))) + chunk_size = 202752 + try: + if resp and len(resp) >= 12: + negotiated = int.from_bytes(resp[8:12], byteorder="big", signed=False) + if 0 < negotiated <= 1024 * 1024: + chunk_size = negotiated + except Exception: + pass + + print("Sending Send Video Command (ID 121)...") + try: + while True: + with open(output_path, "rb") as f: + while True: + data = f.read(chunk_size) + if not data: + break + + chunksize = len(data) + is_last = f.tell() == os.path.getsize(output_path) + + cmd_packet = build_command_packet_header(CMD_PLAY_H264_CHUNK) + cmd_packet[8] = (chunksize >> 24) & 0xFF + cmd_packet[9] = (chunksize >> 16) & 0xFF + cmd_packet[10] = (chunksize >> 8) & 0xFF + cmd_packet[11] = chunksize & 0xFF + if is_last: + cmd_packet[12] = 1 + + full_payload = encrypt_command_packet(cmd_packet) + data + response = write_to_device(dev, full_payload) + + # Flow control (queue depth is usually reported in response[8] to cmd 122) + if response is None: + delay(dev, 2) + else: + # Poll stream status when queue is high + st = write_to_device(dev, + encrypt_command_packet(build_command_packet_header(CMD_GET_STREAM_STATUS))) + if st and len(st) > 8 and st[8] > 3: + delay(dev, 2) + + print("Video sent successfully.") + if not loop: + break + except KeyboardInterrupt: + print("\nLoop interrupted by user. Sending reset...") + finally: + write_to_device(dev, encrypt_command_packet(build_command_packet_header(CMD_STOP_STREAM))) + + +def _encode_png(image: Image.Image) -> bytes: + buffer = BytesIO() + image.save(buffer, format="PNG", compress_level=9) + return buffer.getvalue() + + +def upload_file(dev, file_path: str) -> bool: + local_path = Path(file_path) + if not local_path.exists(): + logger.error("Error: File does not exist: %s", file_path) + return False + + ext = local_path.suffix.lower() + if ext == ".png": + device_path = f"/tmp/sdcard/mmcblk0p1/img/{local_path.name}" + logger.info("Uploading PNG: %s → %s", file_path, device_path) + elif ext == ".mp4": + h264_path = extract_h264_from_mp4(file_path) + device_path = f"/tmp/sdcard/mmcblk0p1/video/{h264_path.name}" + local_path = h264_path # Update local path to .h264 + logger.info("Uploading MP4 as H264: %s → %s", local_path, device_path) + else: + logger.error("Error: Unsupported file type. Only .png and .mp4 are allowed.") + return False + + if not _open_file_command(dev, device_path): + logger.error("Failed to open remote file for writing.") + return False + + if not _write_file_command(dev, str(local_path)): + logger.error("Failed to write file data.") + return False + + logger.info("Upload completed successfully.") + return True + + +def _open_file_command(dev, path: str): + logger.info("Opening remote file: %s", path) + + path_bytes = path.encode("ascii") + length = len(path_bytes) + + packet = build_command_packet_header(38) + + packet[8] = (length >> 24) & 0xFF + packet[9] = (length >> 16) & 0xFF + packet[10] = (length >> 8) & 0xFF + packet[11] = length & 0xFF + packet[12:16] = b"\x00\x00\x00\x00" + packet[16: 16 + length] = path_bytes + + return write_to_device(dev, encrypt_command_packet(packet)) + + +def _delete_command(dev, file_path: str): + logger.info("Deleting remote file: %s", file_path) + + path_bytes = file_path.encode("ascii") + length = len(path_bytes) + + packet = build_command_packet_header(40) + packet[8] = (length >> 24) & 0xFF + packet[9] = (length >> 16) & 0xFF + packet[10] = (length >> 8) & 0xFF + packet[11] = length & 0xFF + packet[12:16] = b"\x00\x00\x00\x00" + packet[16: 16 + length] = path_bytes + + return write_to_device(dev, encrypt_command_packet(packet)) + + +def _play_command(dev, file_path: str): + logger.info("Requesting playback for: %s", file_path) + + path_bytes = file_path.encode("ascii") + length = len(path_bytes) + + packet = build_command_packet_header(98) + + packet[8] = (length >> 24) & 0xFF + packet[9] = (length >> 16) & 0xFF + packet[10] = (length >> 8) & 0xFF + packet[11] = length & 0xFF + packet[12:16] = b"\x00\x00\x00\x00" + packet[16: 16 + length] = path_bytes + + return write_to_device(dev, encrypt_command_packet(packet)) + + +def _play2_command(dev, file_path: str): + logger.info("Requesting alternate playback for: %s", file_path) + + path_bytes = file_path.encode("ascii") + length = len(path_bytes) + + packet = build_command_packet_header(110) + + packet[8] = (length >> 24) & 0xFF + packet[9] = (length >> 16) & 0xFF + packet[10] = (length >> 8) & 0xFF + packet[11] = length & 0xFF + packet[12:16] = b"\x00\x00\x00\x00" + packet[16: 16 + length] = path_bytes + + return write_to_device(dev, encrypt_command_packet(packet)) + + +def _play3_command(dev, file_path: str): + logger.info("Requesting image playback for: %s", file_path) + + path_bytes = file_path.encode("ascii") + length = len(path_bytes) + + packet = build_command_packet_header(113) + + packet[8] = (length >> 24) & 0xFF + packet[9] = (length >> 16) & 0xFF + packet[10] = (length >> 8) & 0xFF + packet[11] = length & 0xFF + packet[12:16] = b"\x00\x00\x00\x00" + packet[16: 16 + length] = path_bytes + + return write_to_device(dev, encrypt_command_packet(packet)) + + +def _write_file_command(dev, file_path: str) -> bool: + logger.info("Writing remote file from: %s", file_path) + + try: + total_size = Path(file_path).stat().st_size + sent = 0 + chunk_index = 0 + + preferred_cap = min(1024 * 1024, MAX_CHUNK_BYTES) + + with open(file_path, "rb") as fh: + while True: + data_chunk = fh.read(preferred_cap) + if not data_chunk: + break + + chunk_index += 1 + chunk_len = len(data_chunk) + sent += chunk_len + is_last = sent >= total_size + + # [8..11]=chunk_capacity, [12..15]=chunk_len, [16]=last_flag, payload=chunk + cmd_packet = build_command_packet_header(39) + cap = preferred_cap + cmd_packet[8] = (cap >> 24) & 0xFF + cmd_packet[9] = (cap >> 16) & 0xFF + cmd_packet[10] = (cap >> 8) & 0xFF + cmd_packet[11] = cap & 0xFF + cmd_packet[12] = (chunk_len >> 24) & 0xFF + cmd_packet[13] = (chunk_len >> 16) & 0xFF + cmd_packet[14] = (chunk_len >> 8) & 0xFF + cmd_packet[15] = chunk_len & 0xFF + if is_last: + cmd_packet[16] = 1 + + response = write_to_device(dev, encrypt_command_packet(cmd_packet) + data_chunk) + + # Fallback: legacy layout uses [8..11]=chunk_len only + if response is None or (not _resp_ok(response)): + legacy_packet = build_command_packet_header(39) + legacy_packet[8] = (chunk_len >> 24) & 0xFF + legacy_packet[9] = (chunk_len >> 16) & 0xFF + legacy_packet[10] = (chunk_len >> 8) & 0xFF + legacy_packet[11] = chunk_len & 0xFF + response = write_to_device(dev, encrypt_command_packet(legacy_packet) + data_chunk) + + if response is None: + logger.error("Write command failed at chunk %d", chunk_index) + return False + + logger.info("File write completed successfully (%d chunks).", chunk_index) + return True + except FileNotFoundError: + logger.error("File not found: %s", file_path) + return False + except Exception as exc: + logger.error("Error writing file: %s", exc) + return False + + +# This class is for Turing Smart Screen newer models (4.6" / 5.2" / 8" / 8.8" HW rev 1.x / 9.2" / 12.3") +# These models are not detected as serial ports but as (Win)USB devices +class LcdCommTuringUSB(LcdComm): + def __init__(self, com_port: str = "AUTO", display_width: int = 480, display_height: int = 1920, + update_queue: Optional[queue.Queue] = None): + super().__init__(com_port, display_width, display_height, update_queue) + self.dev, self.dev_pid = find_usb_device() + self.display_width, self.display_height = PRODUCT_ID[self.dev_pid] + # Store the current screen state as an image that will be continuously updated and sent + self.current_state = Image.new("RGBA", (self.get_width(), self.get_height()), (0, 0, 0, 0)) + + def InitializeComm(self): + send_sync_command(self.dev) + + def Reset(self): + # Do not enable the reset command for now on Turing USB models + # send_restart_device_command(self.dev) + pass + + def Clear(self): + clear_image(self.dev) + + def ScreenOff(self): + # Turing USB models do not implement a "screen off" command (that we know of): use SetBrightness(0) instead + self.Clear() + self.SetBrightness(0) + + def ScreenOn(self): + # Turing USB models do not implement a "screen off" command (that we know of): using SetBrightness() instead + self.SetBrightness() + + def SetBrightness(self, level: int = 25): + assert 0 <= level <= 100, 'Brightness level must be [0-100]' + converted = int(level / 100 * 102) + send_brightness_command(self.dev, converted) + + def SetOrientation(self, orientation: Orientation): + self.orientation = orientation + # Recreate new state with correct width/height now that screen orientation has changed + self.current_state = Image.new("RGBA", (self.get_width(), self.get_height()), (0, 0, 0, 0)) + + def DisplayPILImage(self, image: Image.Image, x: int = 0, y: int = 0, image_width: int = 0, image_height: int = 0): + # If the image height/width isn't provided, use the native image size + if not image_height: + image_height = image.size[1] + if not image_width: + image_width = image.size[0] + + if image.size[1] > self.get_height(): + image_height = self.get_height() + if image.size[0] > self.get_width(): + image_width = self.get_width() + + if image_width != image.size[0] or image_height != image.size[1]: + image = image.crop((0, 0, image_width, image_height)) + + # Paste new image over existing screen state + self.current_state.paste(image, (x, y)) + + # Send image data (auto JPEG fallback when payload exceeds device limit) + send_pil_image_auto(self.dev, self.current_state, max_bytes=MAX_IMAGE_PAYLOAD_DEFAULT) diff --git a/selfdrive/carrot/cluster/.vendor/turing-smart-screen-python-main/library/log.py b/selfdrive/carrot/cluster/.vendor/turing-smart-screen-python-main/library/log.py new file mode 100644 index 000000000..7bae6045b --- /dev/null +++ b/selfdrive/carrot/cluster/.vendor/turing-smart-screen-python-main/library/log.py @@ -0,0 +1,38 @@ +# SPDX-License-Identifier: GPL-3.0-or-later +# +# turing-smart-screen-python - a Python system monitor and library for USB-C displays like Turing Smart Screen or XuanFang +# https://github.com/mathoudebine/turing-smart-screen-python/ +# +# Copyright (C) 2021 Matthieu Houdebine (mathoudebine) +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +# Configure logging format +import locale +import logging +from logging.handlers import RotatingFileHandler + +# use current locale for date/time formatting in logs +locale.setlocale(locale.LC_ALL, '') + +logging.basicConfig( # format='%(asctime)s [%(levelname)s] %(message)s in %(pathname)s:%(lineno)d', + format="%(asctime)s [%(levelname)s] %(message)s", + handlers=[ + RotatingFileHandler("log.log", maxBytes=1000000, backupCount=0), # Log in textfile max 1MB + logging.StreamHandler() # Log also in console + ], + datefmt='%x %X') + +logger = logging.getLogger('turing') +logger.setLevel(logging.DEBUG) # Lowest log level : print all messages diff --git a/selfdrive/carrot/cluster/README.md b/selfdrive/carrot/cluster/README.md new file mode 100644 index 000000000..704384655 --- /dev/null +++ b/selfdrive/carrot/cluster/README.md @@ -0,0 +1,51 @@ +# Carrot Cluster + +Standalone raylib cluster UI bundle for openpilot devices. + +Run from the openpilot root: + +```bash +python selfdrive/carrot/cluster_run.py --output usb + +python selfdrive/carrot/cluster_run.py --output usb --profile-render +``` + +Useful options: + +```bash +python selfdrive/carrot/cluster_run.py --output window --width 1920 --height 480 +python selfdrive/carrot/cluster_run.py --output usb --live-no-can +python selfdrive/carrot/cluster_run.py --output usb --usb-codec jpeg --usb-jpeg-quality 68 +python selfdrive/carrot/cluster_run.py --output usb --fps 10 --usb-jpeg-quality 55 --route-overlay off +python selfdrive/carrot/cluster_run.py --output usb --profile-render --profile-interval 2 +``` + +`--usb-jpeg-encoder auto` tries optional `turbojpeg` first and falls back to +Pillow. Route replay defaults to `--route-overlay compact`, which shows the +right-side qcamera/debug panel. Use `--route-overlay off` for performance tests +that should match live rendering cost more closely. + +Manager autostart uses `--fps 20` by default through `CLUSTER_AUTORUN_FPS=20`. +Set `CLUSTER_AUTORUN_FPS=0` only for uncapped performance tests. +Set it to an empty value if autostart should follow `ClusterHudLiveFps` +setting changes while running. + +The launcher defaults to `--input live`, subscribes to openpilot cereal services, +and renders live `carState`, `modelV2`, `radarState`, `liveTracks`, and raw +Hyundai CAN-FD radar points when CAN subscription is enabled. +When `--fps` is omitted for live input, `ClusterHudLiveFps` controls the render +limit and is polled about once per second while running: `0` uncapped, +`1` 10 Hz, `2` 20 Hz, and `3` 30 Hz. Explicit `--fps` remains a fixed +override. + +The bundled TURZX code includes only the Python vendor library. The openpilot +device uses the system `libusb-1.0.so` through `pyusb`. + +The renderer prefers +`/data/openpilot/selfdrive/assets/fonts/KaiGenGothicKR-Bold.ttf` for HUD text. +It falls back to the bundled/addon KaiGen copy, then JetBrainsMono and +system/platform fonts if KaiGen is not present. + +USB frame upload runs in no-ACK mode by default because some TURZX panels accept +image data but never return a frame-upload response. Use `--usb-wait-frame-ack` +only when testing a panel/driver combination known to reply after each frame. diff --git a/selfdrive/carrot/cluster/assets/models/cybertruck/aspalt-road.jpg b/selfdrive/carrot/cluster/assets/models/cybertruck/aspalt-road.jpg new file mode 100644 index 0000000000000000000000000000000000000000..e701f4034d39b2e309104ebf441b57874b49dc5d GIT binary patch literal 2596 zcmb7Gc~leE8ox7HNFb3cpvY2_5EcOuBNP$P009F=QE5a`1O+Vavik%v$Rbe0Bo-lk z>?$HCAl0a-K+&=v3{{j(5SIr+StKrHk#vGs?4R$OGv|DF?mgekcYn(rMZ4k!Ai24? zx&R0Q075RH=mUG4kL}wFz=jRL1OR{o7>EK;NH#kUX#>n`4uBh^^H077GM--pQ|EJJ ztum0x^S7c4H~}0MtAfSgR8&;(c$_LhgGf+QBP^y+)iw0AmwczEt*c98nj6s=X8O9i z#@0*CELK=rS}rlNv0ufqGhb=RQWk;mcsxOkphYBVvFN&V*8d%fYCy(;LdX;aF#t@4 zP-IB)5a=kk0|hDfh%D|Z432qupqPkyCX2ZxqpRSb>3 z-xI=cI2HF>AD!j6d3R7=e(O8xBK;LkTVh1wm9aH1$B{Z(Nd14k0;z+>Vvrd+83Hhb z0kCq@zXSxMSSy2qW2kh7zN4ZO5KzbxGKvh=g8up|B$j#=G>p}(-1e^KpziDNlBSUI zmp81Y@uBBbd(DoumW7<_yd9xqZtHl)o{`7j6+|dfcrEj@0vv54e|WWyexTjyd4P5w4&W|27EcL?XjQt1xdm|2%OHbygZJN< zgz?8n3t~?`X=~cAJCGXP5_8gfWA{C7NWRTGXNz${1Ah$UG%cUl_w06jJ4#j^=@5V9 zyxr04Pd4_&u_3>{ykVz{e}9gs>}^CYuJ8%C(-G7O6-r4wC>+J!SXoBVr+a`ONEz59 znk;7=5cehcRG>o1X|S@nVE0{-VBJpoHjxZ@a!mS z&T;GO{`2-Qcmnf>Aq%tmP4BC<(vp5Q4RoKzc$m;gJca-&2PfYq=HT5{t24vGQYULU z1{H(h&-U7l2fKcl8?U*1=!BhI(s1|iSeN&j_1W$-mojGP-$@>?FiX?|u>l+oT;`ah zzf{OV56O+03a}S;pv5(=#!PuwFDpaeV9JLwo>V)FpL-7Dex+ilel;bZQ5d!X_#Tk zX814F!g_rY0=CtkxCQYIdftAO*G2flomtY3vv!%Hw#siYIAAz@x2?P)D&2lWwKSKq z&aGBOs@(^eo>GnvO|>K0*AjLv{ZEn@2oG`-fiEOGGMRPfn6RG{^8Uyt1OaJYOJe^p zFq;~SUChS70bPGQMvYXbyINcuuREiof)MF+Q28r_NSM&mvmzM{Nkc?pYi`Q6S}dZq zvk@k7R7=am6hgk3T?oqJQ0Rnt4kE;MrPAmx-y(|t1Tp+G&zi@|1Y;h)ey!bK;OnQT6P zN6Ar&lsb<>J#@yidb0(FVS-2@$JOHbcwOqk$a}9#(mM`+%c9m% zxl-r0=C*7rbTxxNjH0iee88-Zm+;v2yhI*~x)hvjEbub;xzDg9SyzeyYc=d5hx@xZu#_76{=VG zy;I%lVCWr7WyIARZeso(Dd2vih34MTPRT4NfmE0hB++_Q>EPy)oNP}}zoB(_!msvh zL}vOQvtR5~Q=QJ8?Tq@o-{Achei1o&`CM>3K(xQO+2ND?9mnLP*~3H6V4*XO7dFinb^ zLsJ6VGcp2Uc-MAzil)edP;yVqErg7wSQpokF?4^I^QQcqOLiwXZ?u%mKe1;YQ1ATRA1bcK`BtODC@8ise;X65MRYDXFH7IN?r zLqoKH6XS``dN52uq1CQFx{rXuE(b16KP1thJXYm|HYzvR-E-UMRe#5Th&E#Bb)LFl?QBH8je)dx~bkCKx-YfQ(PFJ{=w z->In;mBz*UF9}Ca{tJ$Dy}TDMyf4<=`eI}sOY~Y0BO^L;oJ}Cs_lAZb<=Uy_jDvgz z$xu~7f(smf_j!Vo5z}HSgLiCg?`eBwNVV15RQLAB^57kw$41&JIRc5 zo*c~s)*rr}BD`FqZnI{8OaObl|Gf<0v_pRenmyDNQYRf#^q1Nly3CMq&>QFNWqPdmk d7Q)FQEi^d+TIWzT=RUb^_g_GXtw3GT@ize#HVFU# literal 0 HcmV?d00001 diff --git a/selfdrive/carrot/cluster/assets/models/cybertruck/cybertruck_cluster.mtl b/selfdrive/carrot/cluster/assets/models/cybertruck/cybertruck_cluster.mtl new file mode 100644 index 000000000..dca930554 --- /dev/null +++ b/selfdrive/carrot/cluster/assets/models/cybertruck/cybertruck_cluster.mtl @@ -0,0 +1,72 @@ +# Generated for carrotpilot-cluster raylib rendering. +newmtl body +Ka 0.55 0.58 0.60 +Kd 0.62 0.66 0.68 +Ks 0.18 0.18 0.18 +Ns 28 + +newmtl wheel +Ka 0.04 0.04 0.04 +Kd 0.06 0.065 0.07 +Ks 0.05 0.05 0.05 +Ns 16 + +newmtl besi_roda +Ka 0.10 0.10 0.10 +Kd 0.13 0.14 0.15 +Ks 0.10 0.10 0.10 +Ns 18 + +newmtl light +Ka 0.70 0.86 1.00 +Kd 0.74 0.88 1.00 +Ks 0.12 0.12 0.12 +Ns 24 + +newmtl stop_light +Ka 0.80 0.08 0.06 +Kd 0.90 0.10 0.08 +Ks 0.10 0.02 0.02 +Ns 18 + +newmtl riting +Ka 0.90 0.48 0.05 +Kd 1.00 0.58 0.08 +Ks 0.10 0.06 0.02 +Ns 18 + +newmtl Material +Ka 0.45 0.46 0.47 +Kd 0.54 0.56 0.58 +Ks 0.10 0.10 0.10 +Ns 18 + +newmtl Material.002 +Ka 0.22 0.23 0.24 +Kd 0.28 0.30 0.32 +Ks 0.06 0.06 0.06 +Ns 14 + +newmtl Material.003 +Ka 0.04 0.04 0.04 +Kd 0.06 0.065 0.07 +Ks 0.04 0.04 0.04 +Ns 12 + +newmtl Material.004 +Ka 0.04 0.04 0.04 +Kd 0.06 0.065 0.07 +Ks 0.04 0.04 0.04 +Ns 12 + +newmtl Material.005 +Ka 0.04 0.04 0.04 +Kd 0.06 0.065 0.07 +Ks 0.04 0.04 0.04 +Ns 12 + +newmtl Material.006 +Ka 0.04 0.04 0.04 +Kd 0.06 0.065 0.07 +Ks 0.04 0.04 0.04 +Ns 12 diff --git a/selfdrive/carrot/cluster/assets/models/cybertruck/cybertruck_cluster.obj b/selfdrive/carrot/cluster/assets/models/cybertruck/cybertruck_cluster.obj new file mode 100644 index 000000000..f4fe6a19e --- /dev/null +++ b/selfdrive/carrot/cluster/assets/models/cybertruck/cybertruck_cluster.obj @@ -0,0 +1,28990 @@ +# Generated from models/89-cybertruck-final-obj.zip for raylib cluster rendering. +# Local axes: x=vehicle right, y=vehicle forward, z=vehicle up. Bounds are normalized to width=1, length=1, height=1. +mtllib cybertruck_cluster.mtl + +v 0.3688707 -0.3929970 0.3855803 +v 0.3428007 -0.3700061 0.6023453 +v 0.3688702 -0.3575715 0.5369275 +v 0.3428002 -0.2479036 0.6019011 +v 0.3688702 -0.2589750 0.5364638 +v 0.3446910 -0.1904871 0.3672146 +v 0.3494597 -0.2122590 0.3424873 +v 0.4005583 -0.4999808 0.7665878 +v 0.3364173 -0.4765891 0.7666074 +v 0.3199731 -0.1618577 0.9111446 +v 0.3584611 -0.1367577 0.9196818 +v 0.3321508 0.0615070 1.0000000 +v 0.4041300 0.3574903 0.6949048 +v 0.2825337 0.3662113 0.6864572 +v 0.1891337 0.3696372 0.6831386 +v 0.0992582 0.3721290 0.6807247 +v 0.0942350 0.3476005 0.7044848 +v 0.1808794 0.3450049 0.7069987 +v 0.2741324 0.3411117 0.7107702 +v 0.3644485 0.3359206 0.7157981 +v 0.2986728 0.0823007 0.9822758 +v 0.1164225 0.4902614 0.5766122 +v 0.2016458 0.4869796 0.5765796 +v 0.2939884 0.4829143 0.5773848 +v 0.4222108 0.4432685 0.6222426 +v 0.4348929 -0.1598371 0.7115993 +v 0.4440918 0.2272520 0.6558811 +v 0.3839385 -0.1517445 0.8774924 +v 0.4094155 -0.1579108 0.7708893 +v 0.3583587 0.0114989 0.9496191 +v 0.3546876 0.0215034 0.9530475 +v 0.3532189 0.0320490 0.9566607 +v 0.3480786 0.0616029 0.9674363 +v 0.3882755 0.1857225 0.8438141 +v 0.3903900 0.2064880 0.8220896 +v 0.4147090 0.3471449 0.6821758 +v 0.4248598 0.2208377 0.7057570 +v 0.4132766 0.0207096 0.7395353 +v 0.4171376 0.0347606 0.7372568 +v 0.4209992 0.0469248 0.7349771 +v 0.4229295 0.2038769 0.7072559 +v 0.3814052 -0.1402371 0.8825355 +v 0.4108670 -0.1410186 0.7677453 +v 0.4005583 -0.4828216 0.4178053 +v 0.3347045 -0.4557063 0.4221743 +v 0.2969257 0.4859091 0.5530610 +v 0.4348929 -0.1495543 0.3630403 +v 0.4005583 -0.4874434 0.3800544 +v 0.4005583 -0.4849890 0.3154668 +v 0.4080596 -0.4273627 0.2135633 +v 0.4396125 0.0387661 0.6830120 +v 0.4396125 0.0480939 0.3537772 +v 0.4280527 0.0502630 0.2417015 +v 0.2016458 0.4899746 0.5514169 +v 0.1164225 0.4932564 0.5506112 +v 0.4222108 0.4433206 0.5874259 +v 0.3004265 0.4727073 0.2686883 +v 0.2116847 0.4784171 0.2754809 +v 0.1163344 0.4801288 0.2772663 +v 0.3004265 0.4859682 0.3807563 +v 0.2116847 0.4899958 0.3807879 +v 0.1163344 0.4931834 0.3808188 +v 0.3999268 0.4418371 0.3797783 +v 0.4264065 0.4025327 0.5496320 +v 0.4387183 0.2830406 0.5573570 +v 0.4436640 0.2279563 0.3395662 +v 0.4436330 0.2278554 0.2399487 +v 0.4303399 -0.1908125 0.3685444 +v 0.4124723 -0.1900874 0.2434016 +v 0.3472729 -0.1900874 0.2434016 +v 0.4254404 -0.2479036 0.6019011 +v 0.4202625 -0.1455579 0.2424877 +v 0.3472729 -0.1900874 0.2434016 +v 0.3472743 -0.2115235 0.2433065 +v 0.4129610 -0.3700061 0.6023453 +v 0.3688707 -0.3929818 0.2135927 +v 0.3688707 -0.4184551 0.4065356 +v 0.4082386 -0.4184551 0.4065356 +v 0.3688707 -0.4275551 0.2135633 +v 0.3004265 0.4798357 0.3289314 +v 0.2116847 0.4846413 0.3320896 +v 0.1163344 0.4871465 0.3329317 +v 0.4076370 0.4286623 0.2495217 +v 0.3999268 0.4418371 0.3797783 +v 0.4178477 0.4286556 0.3267589 +v 0.3060965 -0.1630735 0.4170746 +v 0.4005583 -0.4980538 0.7424254 +v 0.4002052 0.4419143 0.3800735 +v 0.4264079 0.4025290 0.5911625 +v 0.4385903 0.2830369 0.5988875 +v 0.4435993 0.2286896 0.3434039 +v 0.4435988 0.2286808 0.3424308 +v 0.4082386 -0.4273057 0.3699878 +v 0.3688707 -0.4275688 0.3699889 +v 0.4005583 -0.4828216 0.4178053 +v 0.4005583 -0.4874434 0.3800544 +v 0.3417014 -0.4688301 0.4152996 +v 0.3432476 -0.4691010 0.3771431 +v -0.3694794 -0.3929970 0.3855803 +v -0.3434094 -0.3700061 0.6023453 +v -0.3694794 -0.3575715 0.5369275 +v -0.3434094 -0.2479036 0.6019011 +v -0.3694794 -0.2589750 0.5364638 +v -0.3453002 -0.1904873 0.3672146 +v -0.3500688 -0.2122592 0.3424873 +v -0.0003043 -0.5000000 0.7664530 +v -0.4011670 -0.4999810 0.7665878 +v -0.0003043 -0.4775640 0.7666063 +v -0.3370260 -0.4765891 0.7666074 +v -0.3205823 -0.1618577 0.9111446 +v -0.0003043 -0.1621841 0.9111446 +v -0.3590707 -0.1367577 0.9196818 +v -0.3327604 0.0615070 1.0000000 +v -0.0003048 0.0615070 1.0000000 +v -0.4047401 0.3574903 0.6949048 +v -0.2831438 0.3662111 0.6864572 +v -0.1897433 0.3696372 0.6831386 +v -0.0998679 0.3721290 0.6807247 +v -0.0003048 0.3727520 0.6801213 +v -0.0003048 0.3481194 0.7039819 +v -0.0948446 0.3476005 0.7044848 +v -0.1814891 0.3450049 0.7069987 +v -0.2747425 0.3411117 0.7107702 +v -0.3650586 0.3359206 0.7157981 +v -0.2992824 0.0823007 0.9822758 +v -0.0003048 0.0823007 0.9822758 +v -0.0003048 0.4932197 0.5773832 +v -0.1170326 0.4902614 0.5766122 +v -0.2022555 0.4869796 0.5765796 +v -0.2945985 0.4829143 0.5773848 +v -0.4228210 0.4432685 0.6222426 +v -0.4355021 -0.1598373 0.7115993 +v -0.4447015 0.2272520 0.6558811 +v -0.0003048 -0.1363109 0.9179290 +v -0.3845477 -0.1517445 0.8774924 +v -0.4100246 -0.1579108 0.7708893 +v -0.3589679 0.0114989 0.9496191 +v -0.3552967 0.0215034 0.9530475 +v -0.3538281 0.0320490 0.9566607 +v -0.3486882 0.0616027 0.9674363 +v -0.3888851 0.1857225 0.8438141 +v -0.3909996 0.2064880 0.8220896 +v -0.4153192 0.3471449 0.6821758 +v -0.4254699 0.2208377 0.7057570 +v -0.4138862 0.0207096 0.7395353 +v -0.4177473 0.0347604 0.7372568 +v -0.4216083 0.0469247 0.7349771 +v -0.4235391 0.2038769 0.7072559 +v -0.3820144 -0.1402373 0.8825355 +v -0.4114762 -0.1410186 0.7677453 +v -0.0003043 -0.4828214 0.4178064 +v -0.4011670 -0.4828217 0.4178053 +v -0.0003043 -0.4594364 0.4200268 +v -0.3353132 -0.4557063 0.4221743 +v -0.2975358 0.4859091 0.5530610 +v -0.4355021 -0.1495543 0.3630403 +v -0.4011670 -0.4874434 0.3800544 +v -0.0003043 -0.4850671 0.3154674 +v -0.4011670 -0.4849890 0.3154668 +v -0.0003043 -0.4275551 0.2135758 +v -0.4086683 -0.4273629 0.2135633 +v -0.0003043 -0.3938390 0.2134861 +v -0.4402217 0.0387660 0.6830120 +v -0.4402217 0.0480939 0.3537772 +v -0.4286618 0.0502630 0.2417015 +v -0.0003043 -0.1900876 0.2440605 +v -0.2022555 0.4899746 0.5514169 +v -0.1170326 0.4932564 0.5506112 +v -0.0003048 0.4962147 0.5503480 +v -0.4228210 0.4433204 0.5874259 +v -0.0003048 0.4814040 0.2787370 +v -0.0003048 0.4960863 0.3810108 +v -0.3010366 0.4727073 0.2686883 +v -0.2122948 0.4784171 0.2754809 +v -0.1169445 0.4801288 0.2772663 +v -0.3010366 0.4859682 0.3807563 +v -0.2122948 0.4899958 0.3807879 +v -0.1169445 0.4931834 0.3808188 +v -0.4005369 0.4418369 0.3797783 +v -0.4270161 0.4025327 0.5496320 +v -0.4393279 0.2830406 0.5573570 +v -0.4442736 0.2279563 0.3395662 +v -0.4442427 0.2278554 0.2399487 +v -0.4309490 -0.1908126 0.3685444 +v -0.4130814 -0.1900874 0.2434016 +v -0.3478820 -0.1900876 0.2434016 +v -0.4260495 -0.2479036 0.6019011 +v -0.4208716 -0.1455579 0.2424877 +v -0.3478820 -0.1900876 0.2434016 +v -0.3478830 -0.2115237 0.2433065 +v -0.4135702 -0.3700061 0.6023453 +v -0.3694794 -0.3929818 0.2135927 +v -0.3694794 -0.4184551 0.4065356 +v -0.4088472 -0.4184551 0.4065356 +v -0.3694794 -0.4275551 0.2135633 +v -0.0003048 0.4892966 0.3337152 +v -0.3010366 0.4798357 0.3289314 +v -0.2122948 0.4846413 0.3320896 +v -0.1169445 0.4871465 0.3329317 +v -0.4082471 0.4286623 0.2495217 +v -0.4005369 0.4418369 0.3797783 +v -0.4184578 0.4286554 0.3267589 +v -0.3067057 -0.1630735 0.4170746 +v -0.0003043 -0.1633673 0.4172171 +v -0.0003043 -0.4980284 0.7423928 +v -0.0003043 -0.4685002 0.5933165 +v -0.4011670 -0.4980538 0.7424254 +v -0.4008153 0.4419141 0.3800735 +v -0.4270175 0.4025290 0.5911625 +v -0.4391999 0.2830369 0.5988875 +v -0.4442089 0.2286896 0.3434039 +v -0.4442084 0.2286808 0.3424308 +v -0.4088472 -0.4273057 0.3699878 +v -0.3694794 -0.4275688 0.3699889 +v -0.0003043 -0.4828214 0.4178064 +v -0.4011670 -0.4828217 0.4178053 +v -0.4011670 -0.4874434 0.3800544 +v -0.0003043 -0.4688458 0.4154610 +v -0.3423101 -0.4688301 0.4152996 +v -0.0003043 -0.4691084 0.3772785 +v -0.3438563 -0.4691010 0.3771431 +v -0.0003048 0.0502630 0.2417015 +v -0.0003048 0.2278554 0.2399487 +v 0.3086365 0.2278554 0.2399487 +v -0.3092466 0.2278554 0.2399487 +v 0.3086365 0.4300419 0.2543859 +v -0.3092466 0.4300419 0.2543859 +v 0.3057877 -0.1900874 0.2437311 +v -0.3063963 -0.1900876 0.2437311 +v 0.3057877 -0.4274590 0.2135693 +v -0.3063963 -0.4274590 0.2135693 +v -0.0768980 -0.4691047 0.3772110 +v -0.0761251 -0.4688379 0.4153806 +v -0.1055536 -0.4874434 0.3800544 +v -0.1055536 -0.4874434 0.3800544 +v -0.1055536 -0.4850280 0.3154668 +v 0.1049449 -0.4874434 0.3800544 +v 0.1049449 -0.4874434 0.3800544 +v 0.0755160 -0.4688379 0.4153806 +v 0.0762893 -0.4691047 0.3772110 +v 0.1049449 -0.4850280 0.3154668 +v -0.0003043 -0.4850671 0.3154674 +v 0.1049449 -0.4850280 0.3154668 +v -0.1055536 -0.4874434 0.3800544 +v -0.1055536 -0.4850280 0.3154668 +v 0.1049449 -0.4874434 0.3800544 +v -0.0003043 -0.4850671 0.3154674 +v 0.1049449 -0.4850280 0.3154668 +v -0.1055536 -0.4874434 0.3800544 +v -0.1055536 -0.4850280 0.3154668 +v 0.1049449 -0.4874434 0.3800544 +v -0.0003043 -0.4729105 0.3154674 +v -0.0003043 -0.4752865 0.3800550 +v 0.1049449 -0.4728715 0.3154668 +v -0.1055536 -0.4752867 0.3800544 +v -0.1055536 -0.4728715 0.3154668 +v 0.1049449 -0.4752867 0.3800544 +v 0.3688707 -0.4275549 0.2135633 +v 0.3688707 -0.4275720 0.4066894 +v 0.3688702 -0.3929818 0.2135927 +v 0.3688702 -0.3929970 0.3855803 +v 0.4674124 -0.4142254 0.2135747 +v 0.4674124 -0.4142425 0.4067009 +v 0.4918843 -0.3929818 0.2135927 +v 0.4918843 -0.3929970 0.3855803 +v 0.3688702 -0.3700061 0.6023453 +v 0.3688702 -0.3575714 0.5369275 +v 0.4674124 -0.3700061 0.6023453 +v 0.4918843 -0.3575714 0.5369275 +v 0.3688702 -0.2479036 0.6019011 +v 0.3688702 -0.2589750 0.5364638 +v 0.4674120 -0.2479036 0.6019011 +v 0.4918838 -0.2589750 0.5364638 +v 0.3707610 -0.1904871 0.3672146 +v 0.3707610 -0.2122590 0.3424873 +v 0.4899930 -0.2122590 0.3424873 +v 0.4655212 -0.1904871 0.3672146 +v 0.3734152 -0.1900771 0.2522189 +v 0.3734152 -0.2122435 0.2511201 +v 0.4873393 -0.2122435 0.2511201 +v 0.4659623 -0.1900771 0.2522189 +v 0.3734152 -0.1897356 0.1867222 +v 0.3734152 -0.2119019 0.1856229 +v 0.4873393 -0.2119019 0.1856229 +v 0.4873393 -0.1897356 0.1867222 +v 0.4873389 0.2500632 0.2518932 +v 0.3734152 0.2500632 0.2518932 +v 0.4873389 0.2504047 0.1863966 +v 0.3734152 0.2504047 0.1863966 +v 0.4628670 0.2278543 0.2519101 +v 0.3734152 0.2278543 0.2519101 +v 0.4873389 0.2281959 0.1864129 +v 0.3734152 0.2281959 0.1864129 +v 0.4873389 0.2492402 0.3174425 +v 0.3734152 0.2492402 0.3174425 +v 0.4628670 0.2286896 0.3434039 +v 0.3734152 0.2286896 0.3434039 +v 0.4873389 0.2940705 0.5332403 +v 0.3734152 0.2940705 0.5332403 +v 0.4628670 0.2830369 0.5988875 +v 0.3734152 0.2830369 0.5988875 +v 0.4873389 0.3937050 0.5276851 +v 0.3734147 0.3937050 0.5276851 +v 0.4628670 0.4025290 0.5911625 +v 0.3734147 0.4025290 0.5911625 +v 0.4464566 0.4313298 0.3770643 +v 0.4228490 0.4278642 0.3770615 +v 0.4157223 0.4440169 0.3770218 +v 0.3946270 0.4415717 0.3776732 +v 0.4200378 -0.3929818 0.2135927 +v 0.4200378 -0.3929970 0.3855803 +v 0.4080596 -0.4273627 0.2135633 +v 0.4080596 -0.4273798 0.4066894 +v 0.4200378 -0.3575714 0.5369275 +v 0.4098590 -0.3700061 0.6023453 +v 0.4200378 -0.2589750 0.5364638 +v 0.4098590 -0.2479036 0.6019011 +v 0.4203557 -0.2122590 0.3424873 +v 0.4101769 -0.1904871 0.3672146 +v 0.4208021 -0.2122435 0.2511201 +v 0.4119102 -0.1900771 0.2522189 +v 0.4208021 -0.2119019 0.1856229 +v 0.4208021 -0.1897356 0.1867222 +v 0.4208017 0.2500632 0.2518932 +v 0.4208017 0.2504047 0.1863966 +v 0.4208017 0.2281959 0.1864129 +v 0.4106224 0.2278543 0.2519101 +v 0.4208017 0.2492402 0.3174425 +v 0.4106224 0.2286896 0.3434039 +v 0.4208017 0.2940705 0.5332403 +v 0.4106224 0.2830369 0.5988875 +v 0.4208017 0.3937050 0.5276851 +v 0.4106224 0.4025290 0.5911625 +v 0.4326690 0.4293057 0.3770626 +v 0.4034019 0.4425888 0.3774024 +v 0.3004265 0.4859684 0.3807563 +v 0.2116847 0.4899958 0.3807879 +v 0.1163344 0.4931834 0.3808188 +v 0.3004265 0.4798357 0.3289314 +v 0.2116847 0.4846413 0.3320896 +v 0.1163344 0.4871463 0.3329317 +v 0.4302461 0.4286506 0.3798680 +v 0.4178477 0.4286554 0.3267589 +v 0.1170578 0.4971297 0.3760759 +v 0.2127945 0.4939724 0.3763972 +v 0.3053132 0.4895934 0.3768691 +v 0.3061256 0.4833142 0.3252160 +v 0.2128088 0.4886179 0.3277027 +v 0.1170621 0.4910936 0.3281985 +v 0.4263851 0.4313346 0.3239552 +v 0.4464566 0.4313298 0.3770643 +v -0.0003048 0.4960863 0.3810108 +v -0.3010366 0.4859684 0.3807563 +v -0.2122948 0.4899958 0.3807879 +v -0.1169445 0.4931834 0.3808188 +v -0.0003048 0.4892966 0.3337152 +v -0.3010366 0.4798357 0.3289314 +v -0.2122948 0.4846413 0.3320896 +v -0.1169445 0.4871463 0.3329317 +v -0.4308562 0.4286506 0.3798680 +v -0.4184578 0.4286554 0.3267589 +v -0.0003048 0.5000000 0.3759976 +v -0.1176679 0.4971297 0.3760759 +v -0.2134042 0.4939724 0.3763972 +v -0.3059233 0.4895934 0.3768691 +v -0.3067357 0.4833142 0.3252160 +v -0.2134189 0.4886179 0.3277027 +v -0.1176722 0.4910936 0.3281985 +v -0.0003048 0.4932103 0.3287014 +v -0.4269952 0.4313346 0.3239552 +v -0.4470667 0.4313298 0.3770643 +v -0.3694789 -0.4275551 0.2135633 +v -0.3694789 -0.4275722 0.4066894 +v -0.3694794 -0.3929818 0.2135927 +v -0.3694794 -0.3929970 0.3855803 +v -0.4680211 -0.4142254 0.2135747 +v -0.4680211 -0.4142425 0.4067009 +v -0.4924930 -0.3929818 0.2135927 +v -0.4924930 -0.3929970 0.3855803 +v -0.3694794 -0.3700063 0.6023453 +v -0.3694794 -0.3575715 0.5369275 +v -0.4680211 -0.3700063 0.6023453 +v -0.4924930 -0.3575715 0.5369275 +v -0.3694794 -0.2479036 0.6019011 +v -0.3694794 -0.2589750 0.5364638 +v -0.4680211 -0.2479036 0.6019011 +v -0.4924930 -0.2589750 0.5364638 +v -0.3713702 -0.1904873 0.3672146 +v -0.3713702 -0.2122592 0.3424873 +v -0.4906022 -0.2122592 0.3424873 +v -0.4661303 -0.1904873 0.3672146 +v -0.3740243 -0.1900773 0.2522189 +v -0.3740243 -0.2122435 0.2511201 +v -0.4879480 -0.2122435 0.2511201 +v -0.4665710 -0.1900773 0.2522189 +v -0.3740243 -0.1897358 0.1867222 +v -0.3740243 -0.2119019 0.1856229 +v -0.4879480 -0.2119019 0.1856229 +v -0.4879480 -0.1897358 0.1867222 +v -0.4879485 0.2500630 0.2518937 +v -0.3740243 0.2500630 0.2518937 +v -0.4879485 0.2504045 0.1863966 +v -0.3740243 0.2504045 0.1863966 +v -0.4634766 0.2278542 0.2519101 +v -0.3740243 0.2278543 0.2519101 +v -0.4879485 0.2281959 0.1864134 +v -0.3740243 0.2281959 0.1864134 +v -0.4879485 0.2492401 0.3174425 +v -0.3740243 0.2492401 0.3174425 +v -0.4634766 0.2286894 0.3434045 +v -0.3740243 0.2286894 0.3434045 +v -0.4879485 0.2940703 0.5332403 +v -0.3740243 0.2940703 0.5332403 +v -0.4634766 0.2830367 0.5988875 +v -0.3740243 0.2830367 0.5988875 +v -0.4879485 0.3937048 0.5276856 +v -0.3740248 0.3937048 0.5276856 +v -0.4634766 0.4025290 0.5911625 +v -0.3740248 0.4025290 0.5911625 +v -0.4470663 0.4313296 0.3770648 +v -0.4234592 0.4278640 0.3770615 +v -0.4163319 0.4440167 0.3770218 +v -0.3952371 0.4415715 0.3776732 +v -0.4206470 -0.3929818 0.2135927 +v -0.4206470 -0.3929970 0.3855803 +v -0.4086683 -0.4273629 0.2135633 +v -0.4086683 -0.4273800 0.4066894 +v -0.4206470 -0.3575715 0.5369275 +v -0.4104677 -0.3700063 0.6023453 +v -0.4206470 -0.2589750 0.5364638 +v -0.4104677 -0.2479036 0.6019011 +v -0.4209649 -0.2122592 0.3424873 +v -0.4107856 -0.1904873 0.3672146 +v -0.4214108 -0.2122435 0.2511201 +v -0.4125194 -0.1900773 0.2522189 +v -0.4214108 -0.2119019 0.1856229 +v -0.4214108 -0.1897358 0.1867222 +v -0.4214113 0.2500630 0.2518937 +v -0.4214113 0.2504045 0.1863966 +v -0.4214113 0.2281959 0.1864134 +v -0.4112320 0.2278542 0.2519101 +v -0.4214113 0.2492401 0.3174425 +v -0.4112320 0.2286894 0.3434045 +v -0.4214113 0.2940703 0.5332403 +v -0.4112320 0.2830367 0.5988875 +v -0.4214113 0.3937048 0.5276856 +v -0.4112325 0.4025290 0.5911625 +v -0.4332786 0.4293057 0.3770626 +v -0.4040115 0.4425886 0.3774024 +v -0.3346931 -0.3728761 0.2509200 +v -0.3362036 -0.3791999 0.2509146 +v -0.3403293 -0.3838293 0.2509108 +v -0.4792698 -0.3791999 0.2509146 +v -0.4751436 -0.3838293 0.2509108 +v -0.3346931 -0.3715483 0.2094711 +v -0.3362036 -0.3777503 0.2056621 +v -0.3403293 -0.3822905 0.2028736 +v -0.4792698 -0.3777503 0.2056621 +v -0.4751436 -0.3822905 0.2028736 +v -0.3346931 -0.3676233 0.1696167 +v -0.3362036 -0.3734651 0.1621505 +v -0.3403293 -0.3777416 0.1566844 +v -0.4792698 -0.3734651 0.1621505 +v -0.4751436 -0.3777416 0.1566844 +v -0.3346931 -0.3612521 0.1328896 +v -0.3362036 -0.3665093 0.1220526 +v -0.3403293 -0.3703577 0.1141193 +v -0.4792698 -0.3665093 0.1220526 +v -0.4751436 -0.3703577 0.1141193 +v -0.3346931 -0.3526794 0.1006999 +v -0.3362036 -0.3571498 0.0869091 +v -0.3403293 -0.3604223 0.0768137 +v -0.4792698 -0.3571498 0.0869091 +v -0.4751436 -0.3604223 0.0768137 +v -0.3346931 -0.3422345 0.0742861 +v -0.3362036 -0.3457464 0.0580712 +v -0.3403298 -0.3483173 0.0462012 +v -0.4423348 -0.2688170 0.0265360 +v -0.4792698 -0.3457464 0.0580712 +v -0.4751436 -0.3483173 0.0462012 +v -0.3346931 -0.3303191 0.0546618 +v -0.4116637 -0.2730101 0.0207405 +v -0.3362036 -0.3327375 0.0366462 +v -0.3403298 -0.3345079 0.0234578 +v -0.3809926 -0.2688170 0.0265355 +v -0.4792698 -0.3327375 0.0366462 +v -0.4751436 -0.3345079 0.0234578 +v -0.3346931 -0.3173908 0.0425820 +v -0.4077365 -0.2732524 0.0225428 +v -0.3362036 -0.3186228 0.0234578 +v -0.3403298 -0.3195246 0.0094582 +v -0.4038097 -0.2730101 0.0207405 +v -0.4792698 -0.3186228 0.0234578 +v -0.4751436 -0.3195246 0.0094582 +v -0.3346931 -0.3039467 0.0385109 +v -0.4381682 -0.2690920 0.0282926 +v -0.3362036 -0.3039448 0.0190133 +v -0.3403298 -0.3039435 0.0047397 +v -0.4344808 -0.2688170 0.0265355 +v -0.4792698 -0.3039449 0.0190133 +v -0.4751436 -0.3039435 0.0047397 +v -0.3346931 -0.2905031 0.0426048 +v -0.3773053 -0.2690920 0.0282926 +v -0.3362036 -0.2892678 0.0234828 +v -0.3403298 -0.2883634 0.0094843 +v -0.3731382 -0.2688170 0.0265360 +v -0.4792698 -0.2892678 0.0234828 +v -0.4751436 -0.2883634 0.0094843 +v -0.3346931 -0.2775770 0.0547064 +v -0.4690791 -0.2730103 0.0207405 +v -0.3362036 -0.2751554 0.0366951 +v -0.3403298 -0.2733827 0.0235094 +v -0.3463943 -0.2730103 0.0207405 +v -0.4792698 -0.2751554 0.0366951 +v -0.4751436 -0.2733827 0.0235094 +v -0.3346931 -0.2656650 0.0743503 +v -0.4423348 -0.2552907 0.0519907 +v -0.3362036 -0.2621504 0.0581418 +v -0.3403298 -0.2595773 0.0462757 +v -0.4116637 -0.2590367 0.0437840 +v -0.4792698 -0.2621504 0.0581418 +v -0.4751436 -0.2595773 0.0462757 +v -0.3346931 -0.2552249 0.1007825 +v -0.3809926 -0.2552907 0.0519907 +v -0.3362036 -0.2507519 0.0869994 +v -0.3403298 -0.2474776 0.0769094 +v -0.3773053 -0.2556718 0.0535484 +v -0.4792698 -0.2507521 0.0869994 +v -0.4751436 -0.2474776 0.0769094 +v -0.3346931 -0.2466578 0.1329863 +v -0.3731382 -0.2552907 0.0519907 +v -0.3362036 -0.2413987 0.1221586 +v -0.3403298 -0.2375489 0.1142318 +v -0.4381682 -0.2556718 0.0535484 +v -0.4792698 -0.2413987 0.1221586 +v -0.4751436 -0.2375489 0.1142313 +v -0.3346931 -0.2402930 0.1697244 +v -0.4344808 -0.2552907 0.0519907 +v -0.3362036 -0.2344500 0.1622679 +v -0.3403298 -0.2301724 0.1568095 +v -0.4077365 -0.2593885 0.0454058 +v -0.4792698 -0.2344500 0.1622679 +v -0.4751436 -0.2301724 0.1568095 +v -0.3346931 -0.2363752 0.2095852 +v -0.4038097 -0.2590367 0.0437840 +v -0.3362036 -0.2301726 0.2057866 +v -0.3403298 -0.2256318 0.2030057 +v -0.4690791 -0.2590367 0.0437840 +v -0.4792698 -0.2301726 0.2057866 +v -0.4751436 -0.2256318 0.2030057 +v -0.3346931 -0.2350547 0.2510364 +v -0.3463943 -0.2590367 0.0437840 +v -0.3362036 -0.2287309 0.2510418 +v -0.3403298 -0.2241015 0.2510456 +v -0.4423348 -0.2436352 0.0850922 +v -0.4792698 -0.2287309 0.2510418 +v -0.4751436 -0.2241015 0.2510456 +v -0.3346931 -0.2363826 0.2924859 +v -0.4116637 -0.2467899 0.0747901 +v -0.3362036 -0.2301805 0.2962948 +v -0.3403298 -0.2256403 0.2990833 +v -0.3809926 -0.2436352 0.0850922 +v -0.4792698 -0.2301805 0.2962948 +v -0.4751436 -0.2256403 0.2990833 +v -0.3346931 -0.2403074 0.3323397 +v -0.4381682 -0.2441074 0.0863910 +v -0.3362036 -0.2344657 0.3398059 +v -0.3403298 -0.2301891 0.3452720 +v -0.4344808 -0.2436352 0.0850922 +v -0.4792698 -0.2344657 0.3398065 +v -0.4751436 -0.2301891 0.3452720 +v -0.3346931 -0.2466788 0.3690674 +v -0.4077365 -0.2472375 0.0761694 +v -0.3362036 -0.2414217 0.3799044 +v -0.3403298 -0.2375732 0.3878371 +v -0.4038097 -0.2467899 0.0747901 +v -0.4792698 -0.2414217 0.3799044 +v -0.4751436 -0.2375732 0.3878371 +v -0.3346931 -0.2552517 0.4012565 +v -0.3773053 -0.2441074 0.0863904 +v -0.3362036 -0.2507812 0.4150478 +v -0.3403298 -0.2475086 0.4251427 +v -0.3731382 -0.2436352 0.0850922 +v -0.4792698 -0.2507812 0.4150478 +v -0.4751436 -0.2475086 0.4251427 +v -0.3346931 -0.2656964 0.4276708 +v -0.4690791 -0.2467899 0.0747901 +v -0.3362036 -0.2621846 0.4438858 +v -0.3403298 -0.2596137 0.4557558 +v -0.3463943 -0.2467899 0.0747901 +v -0.4792698 -0.2621846 0.4438858 +v -0.4751436 -0.2596137 0.4557558 +v -0.3346931 -0.2776120 0.4472946 +v -0.4423348 -0.2342979 0.1245687 +v -0.3362036 -0.2751937 0.4653102 +v -0.3403298 -0.2734231 0.4784986 +v -0.4116637 -0.2367402 0.1125671 +v -0.4792698 -0.2751937 0.4653102 +v -0.4751436 -0.2734231 0.4784986 +v -0.3346931 -0.2905402 0.4593744 +v -0.3809926 -0.2342979 0.1245692 +v -0.3362036 -0.2893083 0.4784986 +v -0.3403298 -0.2884064 0.4924987 +v -0.4077365 -0.2372664 0.1136507 +v -0.4792698 -0.2893083 0.4784986 +v -0.4751436 -0.2884064 0.4924987 +v -0.3346931 -0.3039844 0.4634455 +v -0.4038097 -0.2367402 0.1125671 +v -0.3362036 -0.3039862 0.4829431 +v -0.3403298 -0.3039874 0.4972167 +v -0.4381682 -0.2348433 0.1255581 +v -0.4792698 -0.3039862 0.4829431 +v -0.4751436 -0.3039874 0.4972167 +v -0.3346931 -0.3174278 0.4593516 +v -0.4344808 -0.2342979 0.1245692 +v -0.3362036 -0.3186634 0.4784736 +v -0.3403298 -0.3195678 0.4924721 +v -0.3773053 -0.2348433 0.1255581 +v -0.4792698 -0.3186634 0.4784736 +v -0.4751436 -0.3195678 0.4924721 +v -0.3346931 -0.3303540 0.4472500 +v -0.3731382 -0.2342979 0.1245687 +v -0.3362036 -0.3327756 0.4652613 +v -0.3403293 -0.3345484 0.4784470 +v -0.4690791 -0.2367404 0.1125671 +v -0.4792698 -0.3327756 0.4652613 +v -0.4751436 -0.3345484 0.4784470 +v -0.3346931 -0.3422659 0.4276056 +v -0.3463943 -0.2367404 0.1125671 +v -0.3362036 -0.3457808 0.4438146 +v -0.3403293 -0.3483538 0.4556802 +v -0.4423348 -0.2276382 0.1689034 +v -0.4792698 -0.3457808 0.4438146 +v -0.4751436 -0.3483538 0.4556802 +v -0.3346931 -0.3527060 0.4011739 +v -0.4116637 -0.2292740 0.1556634 +v -0.3362036 -0.3571790 0.4149570 +v -0.3403293 -0.3604533 0.4250476 +v -0.3809926 -0.2276382 0.1689034 +v -0.4792698 -0.3571790 0.4149570 +v -0.4751436 -0.3604533 0.4250476 +v -0.3346931 -0.3612731 0.3689701 +v -0.3773053 -0.2282356 0.1695460 +v -0.3362036 -0.3665322 0.3797984 +v -0.3403293 -0.3703821 0.3877246 +v -0.3731382 -0.2276382 0.1689034 +v -0.4792698 -0.3665322 0.3797984 +v -0.4751436 -0.3703821 0.3877246 +v -0.3346931 -0.3676380 0.3322315 +v -0.4381682 -0.2282356 0.1695460 +v -0.3362036 -0.3734809 0.3396885 +v -0.3403293 -0.3777586 0.3451469 +v -0.4344808 -0.2276382 0.1689034 +v -0.4792698 -0.3734809 0.3396885 +v -0.4751436 -0.3777586 0.3451469 +v -0.3346931 -0.3715557 0.2923712 +v -0.4077365 -0.2298587 0.1564093 +v -0.3362036 -0.3777584 0.2961698 +v -0.3403293 -0.3822991 0.2989507 +v -0.4038097 -0.2292740 0.1556634 +v -0.4792698 -0.3777584 0.2961698 +v -0.4751436 -0.3822991 0.2989507 +v -0.4690791 -0.2292742 0.1556634 +v -0.3463943 -0.2292742 0.1556634 +v -0.4423348 -0.2239114 0.2163920 +v -0.4116637 -0.2246782 0.2024224 +v -0.3809926 -0.2239114 0.2163920 +v -0.4077365 -0.2252988 0.2028024 +v -0.4038097 -0.2246782 0.2024224 +v -0.3773053 -0.2245381 0.2166628 +v -0.3731382 -0.2239114 0.2163920 +v -0.4381682 -0.2245381 0.2166628 +v -0.4344808 -0.2239114 0.2163920 +v -0.4690791 -0.2246782 0.2024224 +v -0.3463943 -0.2246782 0.2024224 +v -0.4423348 -0.2232612 0.2652099 +v -0.4116637 -0.2231293 0.2510472 +v -0.3809926 -0.2232612 0.2652099 +v -0.3773053 -0.2238929 0.2650984 +v -0.3731382 -0.2232612 0.2652099 +v -0.4381682 -0.2238929 0.2650984 +v -0.4344808 -0.2232612 0.2652099 +v -0.4077365 -0.2237620 0.2510467 +v -0.4038097 -0.2231293 0.2510472 +v -0.4690791 -0.2231293 0.2510467 +v -0.3463943 -0.2231293 0.2510467 +v -0.4423348 -0.2257124 0.3134803 +v -0.4116637 -0.2246869 0.2996694 +v -0.3809926 -0.2257124 0.3134803 +v -0.4077365 -0.2253074 0.2992883 +v -0.4038097 -0.2246869 0.2996694 +v -0.4381682 -0.2263248 0.3129910 +v -0.4344808 -0.2257124 0.3134803 +v -0.3773053 -0.2263248 0.3129910 +v -0.3731382 -0.2257124 0.3134803 +v -0.4690791 -0.2246869 0.2996694 +v -0.3463943 -0.2246869 0.2996694 +v -0.4423348 -0.2311708 0.3593493 +v -0.4116637 -0.2292911 0.3464202 +v -0.3809926 -0.2311708 0.3593493 +v -0.3773053 -0.2317405 0.3585011 +v -0.3731382 -0.2311708 0.3593493 +v -0.4381682 -0.2317405 0.3585011 +v -0.4344808 -0.2311708 0.3593493 +v -0.4077365 -0.2298756 0.3456732 +v -0.4038097 -0.2292911 0.3464202 +v -0.4690791 -0.2292911 0.3464202 +v -0.3463943 -0.2292911 0.3464202 +v -0.4423348 -0.2394266 0.4010537 +v -0.4116637 -0.2367651 0.3895040 +v -0.3809926 -0.2394266 0.4010537 +v -0.4381682 -0.2399318 0.3998789 +v -0.4344803 -0.2394266 0.4010537 +v -0.4077365 -0.2372911 0.3884194 +v -0.4038097 -0.2367651 0.3895040 +v -0.3773053 -0.2399318 0.3998789 +v -0.3731382 -0.2394266 0.4010537 +v -0.4690791 -0.2367651 0.3895034 +v -0.3463943 -0.2367651 0.3895034 +v -0.4423348 -0.2501628 0.4369904 +v -0.4116637 -0.2468215 0.4272636 +v -0.3809926 -0.2501628 0.4369904 +v -0.4077365 -0.2472687 0.4258838 +v -0.4038092 -0.2468215 0.4272636 +v -0.4381682 -0.2505839 0.4355345 +v -0.4344803 -0.2501628 0.4369904 +v -0.3773053 -0.2505839 0.4355345 +v -0.3731382 -0.2501628 0.4369904 +v -0.4690786 -0.2468215 0.4272636 +v -0.3463943 -0.2468215 0.4272636 +v -0.4423348 -0.2629664 0.4657789 +v -0.4116637 -0.2590739 0.4582490 +v -0.3809926 -0.2629664 0.4657789 +v -0.3773053 -0.2632874 0.4640979 +v -0.3731382 -0.2629664 0.4657789 +v -0.4381682 -0.2632874 0.4640979 +v -0.4344803 -0.2629664 0.4657789 +v -0.4077365 -0.2594253 0.4566267 +v -0.4038092 -0.2590739 0.4582490 +v -0.4690786 -0.2590739 0.4582485 +v -0.3463943 -0.2590739 0.4582485 +v -0.4423348 -0.2773458 0.4863128 +v -0.4116637 -0.2730516 0.4812686 +v -0.3809926 -0.2773458 0.4863128 +v -0.4077365 -0.2732933 0.4794664 +v -0.4038092 -0.2730516 0.4812686 +v -0.3773053 -0.2775540 0.4844708 +v -0.3731382 -0.2773458 0.4863128 +v -0.4381682 -0.2775540 0.4844708 +v -0.4344803 -0.2773458 0.4863128 +v -0.4690786 -0.2730514 0.4812686 +v -0.3463943 -0.2730514 0.4812686 +v -0.4423348 -0.2927480 0.4978033 +v -0.4116637 -0.2882170 0.4954389 +v -0.3809926 -0.2927479 0.4978033 +v -0.3773053 -0.2928357 0.4958711 +v -0.3731382 -0.2927480 0.4978033 +v -0.4381682 -0.2928357 0.4958711 +v -0.4344803 -0.2927479 0.4978033 +v -0.4077365 -0.2883403 0.4935251 +v -0.4038092 -0.2882170 0.4954389 +v -0.4690786 -0.2882170 0.4954389 +v -0.3463943 -0.2882170 0.4954389 +v -0.4423348 -0.3085812 0.4998078 +v -0.4116637 -0.3039880 0.5002145 +v -0.3809926 -0.3085812 0.4998078 +v -0.4077365 -0.3039876 0.4982638 +v -0.4038092 -0.3039880 0.5002145 +v -0.4381682 -0.3085451 0.4978604 +v -0.4344803 -0.3085812 0.4998078 +v -0.3773053 -0.3085451 0.4978604 +v -0.3731382 -0.3085812 0.4998078 +v -0.4690786 -0.3039878 0.5002145 +v -0.3463943 -0.3039878 0.5002145 +v -0.4423348 -0.3242372 0.4922502 +v -0.4116637 -0.3197577 0.4954117 +v -0.3809926 -0.3242372 0.4922502 +v -0.3773053 -0.3240785 0.4903615 +v -0.3731382 -0.3242372 0.4922502 +v -0.4381682 -0.3240785 0.4903615 +v -0.4344803 -0.3242372 0.4922502 +v -0.4077365 -0.3196342 0.4934985 +v -0.4038092 -0.3197577 0.4954117 +v -0.4690786 -0.3197577 0.4954117 +v -0.3463943 -0.3197577 0.4954117 +v -0.4423348 -0.3391142 0.4754209 +v -0.4116637 -0.3349208 0.4812164 +v -0.3809926 -0.3391142 0.4754209 +v -0.4381682 -0.3388389 0.4736638 +v -0.4344803 -0.3391142 0.4754209 +v -0.4077365 -0.3346785 0.4794136 +v -0.4038092 -0.3349208 0.4812164 +v -0.3773053 -0.3388389 0.4736638 +v -0.3731382 -0.3391142 0.4754209 +v -0.4690786 -0.3349208 0.4812159 +v -0.3463943 -0.3349208 0.4812159 +v -0.4423348 -0.3526402 0.4499657 +v -0.4116637 -0.3488942 0.4581724 +v -0.3809926 -0.3526402 0.4499657 +v -0.4077365 -0.3485426 0.4565506 +v -0.4038092 -0.3488942 0.4581724 +v -0.4381682 -0.3522592 0.4484080 +v -0.4344803 -0.3526402 0.4499657 +v -0.3773048 -0.3522592 0.4484080 +v -0.3731382 -0.3526402 0.4499657 +v -0.4690786 -0.3488942 0.4581724 +v -0.3463943 -0.3488942 0.4581724 +v -0.4423348 -0.3642958 0.4168637 +v -0.4116637 -0.3611410 0.4271657 +v -0.3809926 -0.3642958 0.4168642 +v -0.3773048 -0.3638236 0.4155654 +v -0.3731382 -0.3642958 0.4168637 +v -0.4381682 -0.3638236 0.4155654 +v -0.4344803 -0.3642958 0.4168642 +v -0.4077365 -0.3606935 0.4257870 +v -0.4038092 -0.3611410 0.4271657 +v -0.4690786 -0.3611410 0.4271663 +v -0.3463943 -0.3611410 0.4271663 +v -0.4423348 -0.3736329 0.3773872 +v -0.4116637 -0.3711907 0.3893893 +v -0.3809926 -0.3736329 0.3773877 +v -0.4077365 -0.3706645 0.3883057 +v -0.4038092 -0.3711907 0.3893893 +v -0.3773048 -0.3730877 0.3763977 +v -0.3731382 -0.3736329 0.3773872 +v -0.4381682 -0.3730877 0.3763977 +v -0.4344803 -0.3736329 0.3773877 +v -0.4690786 -0.3711905 0.3893893 +v -0.3463943 -0.3711905 0.3893893 +v -0.4423348 -0.3802928 0.3330530 +v -0.4116637 -0.3786570 0.3462930 +v -0.3809926 -0.3802928 0.3330530 +v -0.4077365 -0.3780723 0.3455471 +v -0.4038092 -0.3786570 0.3462930 +v -0.4381682 -0.3796956 0.3324104 +v -0.4344803 -0.3802928 0.3330530 +v -0.3773048 -0.3796956 0.3324104 +v -0.3731382 -0.3802928 0.3330530 +v -0.4690786 -0.3786568 0.3462930 +v -0.3463943 -0.3786568 0.3462930 +v -0.4344803 -0.3840196 0.2855644 +v -0.4038092 -0.3832527 0.2995340 +v -0.3731382 -0.3840196 0.2855644 +v -0.3773048 -0.3833929 0.2852936 +v -0.3809926 -0.3840196 0.2855644 +v -0.4381682 -0.3833929 0.2852936 +v -0.4423348 -0.3840196 0.2855644 +v -0.4077365 -0.3826322 0.2991540 +v -0.4116637 -0.3832527 0.2995340 +v -0.4690786 -0.3832527 0.2995340 +v -0.3463943 -0.3832527 0.2995340 +v -0.4423348 -0.3846697 0.2367471 +v -0.4116637 -0.3848016 0.2509097 +v -0.3809926 -0.3846697 0.2367471 +v -0.4077365 -0.3841689 0.2509102 +v -0.4038092 -0.3848016 0.2509097 +v -0.3773048 -0.3840381 0.2368585 +v -0.3731382 -0.3846697 0.2367471 +v -0.4381682 -0.3840381 0.2368585 +v -0.4344803 -0.3846697 0.2367471 +v -0.4690786 -0.3848014 0.2509097 +v -0.3463943 -0.3848014 0.2509097 +v -0.4344803 -0.3822185 0.1884761 +v -0.4038092 -0.3832441 0.2022870 +v -0.3731382 -0.3822185 0.1884761 +v -0.4381682 -0.3816059 0.1889654 +v -0.4423348 -0.3822185 0.1884761 +v -0.4077365 -0.3826234 0.2026687 +v -0.4116637 -0.3832441 0.2022870 +v -0.3773048 -0.3816059 0.1889654 +v -0.3809926 -0.3822185 0.1884761 +v -0.4690786 -0.3832439 0.2022876 +v -0.3463943 -0.3832439 0.2022876 +v -0.4344803 -0.3767602 0.1426071 +v -0.4038092 -0.3786397 0.1555362 +v -0.3731382 -0.3767602 0.1426071 +v -0.3773048 -0.3761904 0.1434558 +v -0.3809926 -0.3767602 0.1426071 +v -0.4381682 -0.3761904 0.1434558 +v -0.4423348 -0.3767602 0.1426071 +v -0.4077365 -0.3780553 0.1562832 +v -0.4116637 -0.3786397 0.1555362 +v -0.4690786 -0.3786397 0.1555362 +v -0.3463943 -0.3786397 0.1555362 +v -0.4423348 -0.3685041 0.1009032 +v -0.4116637 -0.3711659 0.1124530 +v -0.3809926 -0.3685041 0.1009032 +v -0.4077365 -0.3706399 0.1135370 +v -0.4038092 -0.3711659 0.1124530 +v -0.4381682 -0.3679991 0.1020775 +v -0.4344803 -0.3685041 0.1009032 +v -0.3773048 -0.3679991 0.1020775 +v -0.3731382 -0.3685041 0.1009032 +v -0.4690786 -0.3711659 0.1124530 +v -0.3463943 -0.3711659 0.1124530 +v -0.4423348 -0.3577682 0.0649660 +v -0.4116637 -0.3611095 0.0746934 +v -0.3809926 -0.3577683 0.0649665 +v -0.3773048 -0.3573471 0.0664219 +v -0.3731382 -0.3577682 0.0649660 +v -0.4381682 -0.3573471 0.0664219 +v -0.4344803 -0.3577683 0.0649665 +v -0.4077365 -0.3606623 0.0760726 +v -0.4038092 -0.3611095 0.0746934 +v -0.4690786 -0.3611095 0.0746934 +v -0.3463943 -0.3611095 0.0746934 +v -0.4423348 -0.3449645 0.0361775 +v -0.4116637 -0.3488570 0.0437079 +v -0.3809926 -0.3449645 0.0361775 +v -0.4381682 -0.3446436 0.0378591 +v -0.4344803 -0.3449645 0.0361775 +v -0.4077365 -0.3485056 0.0453302 +v -0.4038092 -0.3488570 0.0437079 +v -0.3773053 -0.3446436 0.0378591 +v -0.3731382 -0.3449645 0.0361775 +v -0.4690786 -0.3488572 0.0437079 +v -0.3463943 -0.3488570 0.0437079 +v -0.4423348 -0.2993497 0.0021491 +v -0.4116637 -0.3039432 0.0017419 +v -0.3809926 -0.2993497 0.0021486 +v -0.4077365 -0.3039433 0.0036932 +v -0.4038092 -0.3039432 0.0017419 +v -0.3773053 -0.2993859 0.0040966 +v -0.3731382 -0.2993497 0.0021491 +v -0.4381682 -0.2993859 0.0040966 +v -0.4344803 -0.2993497 0.0021486 +v -0.4690786 -0.3039432 0.0017419 +v -0.3463943 -0.3039432 0.0017425 +v -0.4423348 -0.3151831 0.0041536 +v -0.4116637 -0.3197140 0.0065175 +v -0.3809926 -0.3151831 0.0041536 +v -0.3773053 -0.3150953 0.0060853 +v -0.3731382 -0.3151831 0.0041536 +v -0.4381682 -0.3150953 0.0060853 +v -0.4344803 -0.3151831 0.0041536 +v -0.4077365 -0.3195907 0.0084313 +v -0.4038092 -0.3197140 0.0065175 +v -0.4690786 -0.3197140 0.0065175 +v -0.3463943 -0.3197140 0.0065175 +v -0.4423348 -0.3305853 0.0156436 +v -0.4116637 -0.3348796 0.0206878 +v -0.3809926 -0.3305853 0.0156436 +v -0.4077365 -0.3346375 0.0224900 +v -0.4038092 -0.3348796 0.0206878 +v -0.4381682 -0.3303769 0.0174856 +v -0.4344803 -0.3305853 0.0156436 +v -0.3773053 -0.3303769 0.0174856 +v -0.3731382 -0.3305853 0.0156436 +v -0.4690786 -0.3348796 0.0206878 +v -0.3463943 -0.3348796 0.0206878 +v -0.3459660 -0.3853666 0.2558441 +v -0.3459660 -0.3853657 0.2459743 +v -0.3445830 -0.3851081 0.2509097 +v -0.4695074 -0.3853657 0.2459743 +v -0.4695074 -0.3853666 0.2558441 +v -0.4708899 -0.3851081 0.2509097 +v -0.3459660 -0.3841104 0.2067875 +v -0.3459660 -0.3834849 0.1971075 +v -0.3445830 -0.3835445 0.2021032 +v -0.4695074 -0.3834849 0.1971075 +v -0.4695074 -0.3841104 0.2067875 +v -0.4708899 -0.3835445 0.2021032 +v -0.3459660 -0.3797742 0.1594283 +v -0.3459660 -0.3785484 0.1503110 +v -0.3445830 -0.3789229 0.1551746 +v -0.4695074 -0.3785484 0.1503110 +v -0.4695074 -0.3797742 0.1594283 +v -0.4708899 -0.3789229 0.1551746 +v -0.3459660 -0.3725249 0.1155883 +v -0.3459660 -0.3707457 0.1073827 +v -0.3445830 -0.3714207 0.1119283 +v -0.4695074 -0.3707457 0.1073827 +v -0.4695074 -0.3725249 0.1155883 +v -0.4708899 -0.3714207 0.1119283 +v -0.3459660 -0.3626407 0.0769507 +v -0.3459660 -0.3603765 0.0699732 +v -0.3445830 -0.3613264 0.0740252 +v -0.4695074 -0.3603765 0.0699732 +v -0.4695074 -0.3626407 0.0769507 +v -0.4708899 -0.3613264 0.0740252 +v -0.3459660 -0.3505017 0.0450008 +v -0.3459660 -0.3478394 0.0395195 +v -0.3445830 -0.3490274 0.0429223 +v -0.4695074 -0.3478394 0.0395200 +v -0.4695074 -0.3505019 0.0450008 +v -0.4708899 -0.3490274 0.0429223 +v -0.3459660 -0.3365745 0.0209667 +v -0.3459660 -0.3336165 0.0171920 +v -0.3445830 -0.3349968 0.0198146 +v -0.4695074 -0.3336165 0.0171920 +v -0.4695074 -0.3365745 0.0209667 +v -0.4708899 -0.3349968 0.0198146 +v -0.3459660 -0.3213939 0.0057716 +v -0.3459660 -0.3182539 0.0038492 +v -0.3445830 -0.3197739 0.0055911 +v -0.4695074 -0.3182541 0.0038492 +v -0.4695074 -0.3213939 0.0057716 +v -0.4708899 -0.3197739 0.0055911 +v -0.3459660 -0.3055436 0.0000000 +v -0.3459660 -0.3023424 0.0000027 +v -0.3445830 -0.3039432 0.0007970 +v -0.4695074 -0.3023424 0.0000027 +v -0.4695074 -0.3055437 0.0000000 +v -0.4708899 -0.3039433 0.0007970 +v -0.3459660 -0.2896328 0.0038731 +v -0.3459660 -0.2864932 0.0058015 +v -0.3445830 -0.2881135 0.0056178 +v -0.4695074 -0.2864932 0.0058015 +v -0.4695074 -0.2896328 0.0038731 +v -0.4708899 -0.2881135 0.0056178 +v -0.3459660 -0.2742727 0.0172425 +v -0.3459660 -0.2713154 0.0210221 +v -0.3445830 -0.2728930 0.0198674 +v -0.4695074 -0.2713154 0.0210221 +v -0.4695074 -0.2742727 0.0172425 +v -0.4708899 -0.2728930 0.0198674 +v -0.3459660 -0.2600536 0.0395939 +v -0.3459660 -0.2573924 0.0450801 +v -0.3445830 -0.2588665 0.0429984 +v -0.4695074 -0.2573924 0.0450801 +v -0.4695074 -0.2600536 0.0395939 +v -0.4708899 -0.2588665 0.0429984 +v -0.3459660 -0.2475221 0.0700689 +v -0.3459660 -0.2452592 0.0770502 +v -0.3445830 -0.2465732 0.0741220 +v -0.4695074 -0.2452592 0.0770502 +v -0.4695074 -0.2475221 0.0700689 +v -0.4708899 -0.2465732 0.0741220 +v -0.3459660 -0.2371597 0.1074963 +v -0.3459660 -0.2353819 0.1157046 +v -0.3445830 -0.2364854 0.1120419 +v -0.4695074 -0.2353819 0.1157046 +v -0.4695074 -0.2371597 0.1074963 +v -0.4708899 -0.2364854 0.1120419 +v -0.3459660 -0.2293646 0.1504376 +v -0.3459660 -0.2281403 0.1595572 +v -0.3445830 -0.2289910 0.1553013 +v -0.4695074 -0.2281403 0.1595572 +v -0.4695074 -0.2293646 0.1504376 +v -0.4708899 -0.2289910 0.1553013 +v -0.3459660 -0.2244363 0.1972423 +v -0.3459660 -0.2238126 0.2069234 +v -0.3445830 -0.2243776 0.2022375 +v -0.4695074 -0.2238126 0.2069234 +v -0.4695074 -0.2244363 0.1972423 +v -0.4708899 -0.2243776 0.2022375 +v -0.3459660 -0.2225644 0.2461123 +v -0.3459660 -0.2225653 0.2559827 +v -0.3445830 -0.2228229 0.2510467 +v -0.4695074 -0.2225653 0.2559827 +v -0.4695074 -0.2225644 0.2461123 +v -0.4708899 -0.2228229 0.2510467 +v -0.3459660 -0.2238206 0.2951694 +v -0.3459660 -0.2244458 0.3048489 +v -0.3445830 -0.2243862 0.2998537 +v -0.4695074 -0.2244458 0.3048489 +v -0.4695074 -0.2238206 0.2951694 +v -0.4708899 -0.2243862 0.2998537 +v -0.3459660 -0.2281567 0.3425281 +v -0.3459660 -0.2293826 0.3516454 +v -0.3445830 -0.2290079 0.3467818 +v -0.4695074 -0.2293826 0.3516460 +v -0.4695074 -0.2281567 0.3425281 +v -0.4708899 -0.2290079 0.3467818 +v -0.3459660 -0.2354061 0.3863686 +v -0.3459660 -0.2371855 0.3945737 +v -0.3445830 -0.2365103 0.3900286 +v -0.4695074 -0.2371855 0.3945737 +v -0.4695074 -0.2354061 0.3863686 +v -0.4708899 -0.2365103 0.3900286 +v -0.3459660 -0.2452902 0.4250063 +v -0.3459660 -0.2475545 0.4319832 +v -0.3445830 -0.2466048 0.4279318 +v -0.4695074 -0.2475545 0.4319832 +v -0.4695074 -0.2452902 0.4250057 +v -0.4708899 -0.2466048 0.4279318 +v -0.3459660 -0.2574293 0.4569556 +v -0.3459660 -0.2600915 0.4624369 +v -0.3445830 -0.2589036 0.4590346 +v -0.4695074 -0.2600915 0.4624369 +v -0.4695074 -0.2574293 0.4569556 +v -0.4708899 -0.2589036 0.4590346 +v -0.3459660 -0.2713567 0.4809897 +v -0.3459660 -0.2743145 0.4847644 +v -0.3445830 -0.2729341 0.4821418 +v -0.4695074 -0.2743145 0.4847644 +v -0.4695074 -0.2713567 0.4809897 +v -0.4708899 -0.2729341 0.4821418 +v -0.3459660 -0.2865371 0.4961848 +v -0.3459660 -0.2896770 0.4981078 +v -0.3445830 -0.2881572 0.4963658 +v -0.4695074 -0.2896770 0.4981078 +v -0.4695074 -0.2865371 0.4961848 +v -0.4708899 -0.2881572 0.4963658 +v -0.3459660 -0.3023874 0.5019564 +v -0.3459660 -0.3055885 0.5019537 +v -0.3445830 -0.3039878 0.5011594 +v -0.4695074 -0.3055885 0.5019537 +v -0.4695074 -0.3023874 0.5019564 +v -0.4708899 -0.3039878 0.5011594 +v -0.3459660 -0.3182984 0.4980833 +v -0.3459660 -0.3214378 0.4961549 +v -0.3445830 -0.3198175 0.4963386 +v -0.4695074 -0.3214378 0.4961549 +v -0.4695074 -0.3182984 0.4980833 +v -0.4708899 -0.3198175 0.4963386 +v -0.3459660 -0.3336585 0.4847139 +v -0.3459660 -0.3366155 0.4809343 +v -0.3445830 -0.3350381 0.4820890 +v -0.4695074 -0.3366155 0.4809343 +v -0.4695074 -0.3336585 0.4847139 +v -0.4708899 -0.3350381 0.4820890 +v -0.3459660 -0.3478775 0.4623619 +v -0.3459660 -0.3505385 0.4568763 +v -0.3445830 -0.3490646 0.4589580 +v -0.4695074 -0.3505385 0.4568763 +v -0.4695074 -0.3478775 0.4623619 +v -0.4708899 -0.3490646 0.4589580 +v -0.3459660 -0.3604089 0.4318870 +v -0.3459660 -0.3626718 0.4249062 +v -0.3445830 -0.3613577 0.4278344 +v -0.4695074 -0.3626718 0.4249062 +v -0.4695074 -0.3604089 0.4318870 +v -0.4708899 -0.3613577 0.4278344 +v -0.3459660 -0.3707712 0.3944601 +v -0.3459660 -0.3725490 0.3862518 +v -0.3445830 -0.3714455 0.3899145 +v -0.4695074 -0.3725490 0.3862518 +v -0.4695074 -0.3707712 0.3944601 +v -0.4708899 -0.3714455 0.3899145 +v -0.3459660 -0.3785665 0.3515188 +v -0.3459660 -0.3797906 0.3423987 +v -0.3445830 -0.3789400 0.3466551 +v -0.4695074 -0.3797906 0.3423987 +v -0.4695074 -0.3785665 0.3515188 +v -0.4708899 -0.3789400 0.3466551 +v -0.3459660 -0.3834946 0.3047136 +v -0.3459660 -0.3841183 0.2950330 +v -0.3445830 -0.3835532 0.2997183 +v -0.4695074 -0.3841183 0.2950330 +v -0.4695074 -0.3834946 0.3047136 +v -0.4708899 -0.3835532 0.2997183 +v -0.3770925 -0.3694096 0.1049758 +v -0.3770925 -0.3674830 0.0970997 +v -0.3770925 -0.3589140 0.0684161 +v -0.3770925 -0.3565259 0.0618497 +v -0.3770925 -0.3463066 0.0388725 +v -0.3770925 -0.3435489 0.0338685 +v -0.3770925 -0.3320720 0.0174790 +v -0.3770925 -0.3290509 0.0142306 +v -0.3770925 -0.3167574 0.0050594 +v -0.3770925 -0.3135885 0.0036904 +v -0.3770925 -0.3009512 0.0020904 +v -0.3770925 -0.2977567 0.0026537 +v -0.3770925 -0.2852606 0.0086857 +v -0.3770925 -0.2821634 0.0111599 +v -0.3770925 -0.2702892 0.0245924 +v -0.3770925 -0.2674077 0.0288820 +v -0.3770925 -0.2566118 0.0491990 +v -0.3770925 -0.2540571 0.0551391 +v -0.3770925 -0.2447540 0.0815599 +v -0.3770925 -0.2426244 0.0889223 +v -0.3770925 -0.2351719 0.1204313 +v -0.3770925 -0.2335490 0.1289338 +v -0.3770925 -0.2282334 0.1643197 +v -0.3770925 -0.2271797 0.1736344 +v -0.3770925 -0.2242051 0.2115381 +v -0.3770925 -0.2237611 0.2213079 +v -0.3770925 -0.2232422 0.2602723 +v -0.3770925 -0.2234249 0.2701214 +v -0.3770925 -0.2253815 0.3086492 +v -0.3770925 -0.2261838 0.3181993 +v -0.3770925 -0.2305406 0.3548102 +v -0.3770925 -0.2319318 0.3636937 +v -0.3770925 -0.2385212 0.3969806 +v -0.3770925 -0.2404480 0.4048573 +v -0.3770925 -0.2490170 0.4335403 +v -0.3770925 -0.2514051 0.4401067 +v -0.3770925 -0.2616246 0.4630845 +v -0.3770925 -0.2643820 0.4680884 +v -0.3770925 -0.2758590 0.4844774 +v -0.3770925 -0.2788802 0.4877258 +v -0.3770925 -0.2911737 0.4968970 +v -0.3770925 -0.2943424 0.4982660 +v -0.3770925 -0.3069800 0.4998660 +v -0.3770925 -0.3101744 0.4993027 +v -0.3770925 -0.3226703 0.4932707 +v -0.3770925 -0.3257678 0.4907965 +v -0.3770925 -0.3376418 0.4773640 +v -0.3770925 -0.3405232 0.4730744 +v -0.3770925 -0.3513193 0.4527574 +v -0.3770925 -0.3538739 0.4468173 +v -0.3770925 -0.3631770 0.4203965 +v -0.3770925 -0.3653065 0.4130341 +v -0.3770925 -0.3727590 0.3815251 +v -0.3770925 -0.3743820 0.3730226 +v -0.3770925 -0.3841696 0.2806485 +v -0.3770925 -0.3837256 0.2904183 +v -0.3770925 -0.3796975 0.3376367 +v -0.3770925 -0.3807513 0.3283214 +v -0.3770925 -0.3759991 0.1382627 +v -0.3770925 -0.3773904 0.1471468 +v -0.3770925 -0.3817470 0.1837571 +v -0.3770925 -0.3825495 0.1933072 +v -0.3770925 -0.3846886 0.2416841 +v -0.3770925 -0.3845059 0.2318350 +v -0.4077365 -0.3719946 0.1166773 +v -0.4077365 -0.3702165 0.1084771 +v -0.4077365 -0.3621897 0.0783381 +v -0.4077365 -0.3599268 0.0713645 +v -0.4077365 -0.3501473 0.0466329 +v -0.4077365 -0.3474864 0.0411548 +v -0.4077365 -0.3363299 0.0227804 +v -0.4077365 -0.3333737 0.0190084 +v -0.4077365 -0.3212690 0.0076978 +v -0.4077365 -0.3181307 0.0057765 +v -0.4077365 -0.3055429 0.0019643 +v -0.4077365 -0.3023435 0.0019670 +v -0.4077365 -0.2897564 0.0058004 +v -0.4077365 -0.2866186 0.0077277 +v -0.4077365 -0.2745158 0.0190584 +v -0.4077365 -0.2715602 0.0228358 +v -0.4077365 -0.2604070 0.0412288 +v -0.4077365 -0.2577472 0.0467117 +v -0.4077365 -0.2479720 0.0714596 +v -0.4077365 -0.2457104 0.0784371 +v -0.4077365 -0.2376891 0.1085896 +v -0.4077365 -0.2359122 0.1167931 +v -0.4077365 -0.2299529 0.1511912 +v -0.4077365 -0.2287293 0.1603063 +v -0.4077365 -0.2250611 0.1976277 +v -0.4077365 -0.2244377 0.2073040 +v -0.4077365 -0.2232013 0.2461145 +v -0.4077365 -0.2232023 0.2559794 +v -0.4077365 -0.2244455 0.2947883 +v -0.4077365 -0.2250706 0.3044629 +v -0.4077365 -0.2287455 0.3417784 +v -0.4077365 -0.2299707 0.3508914 +v -0.4077365 -0.2359362 0.3852791 +v -0.4077365 -0.2377145 0.3934799 +v -0.4077365 -0.2457413 0.4236188 +v -0.4077365 -0.2480041 0.4305919 +v -0.4077365 -0.2577837 0.4553241 +v -0.4077365 -0.2604445 0.4608021 +v -0.4077365 -0.2716011 0.4791760 +v -0.4077365 -0.2745574 0.4829486 +v -0.4077365 -0.2866621 0.4942586 +v -0.4077365 -0.2898003 0.4961804 +v -0.4077365 -0.3023881 0.4999921 +v -0.4077365 -0.3055876 0.4999894 +v -0.4077365 -0.3181747 0.4961565 +v -0.4077365 -0.3213126 0.4942292 +v -0.4077365 -0.3334153 0.4828986 +v -0.4077365 -0.3363708 0.4791206 +v -0.4077365 -0.3475240 0.4607276 +v -0.4077365 -0.3501838 0.4552447 +v -0.4077365 -0.3599589 0.4304968 +v -0.4077365 -0.3622207 0.4235193 +v -0.4077365 -0.3702421 0.3933668 +v -0.4077365 -0.3720188 0.3851628 +v -0.4077365 -0.3834932 0.2946524 +v -0.4077365 -0.3828699 0.3043287 +v -0.4077365 -0.3779781 0.3507647 +v -0.4077365 -0.3792017 0.3416501 +v -0.4077365 -0.3779601 0.1510656 +v -0.4077365 -0.3791854 0.1601780 +v -0.4077365 -0.3828604 0.1974935 +v -0.4077365 -0.3834853 0.2071681 +v -0.4077365 -0.3847295 0.2558419 +v -0.4077365 -0.3847286 0.2459775 +v -0.4383804 -0.3694096 0.1049758 +v -0.4383804 -0.3674830 0.0970997 +v -0.4383804 -0.3589140 0.0684161 +v -0.4383804 -0.3565259 0.0618497 +v -0.4383809 -0.3463066 0.0388725 +v -0.4383809 -0.3435489 0.0338685 +v -0.4383809 -0.3320720 0.0174790 +v -0.4383809 -0.3290509 0.0142306 +v -0.4383809 -0.3167574 0.0050594 +v -0.4383809 -0.3135885 0.0036904 +v -0.4383809 -0.3009512 0.0020904 +v -0.4383809 -0.2977567 0.0026537 +v -0.4383809 -0.2852608 0.0086857 +v -0.4383809 -0.2821634 0.0111599 +v -0.4383809 -0.2702892 0.0245924 +v -0.4383809 -0.2674077 0.0288820 +v -0.4383809 -0.2566118 0.0491990 +v -0.4383809 -0.2540571 0.0551391 +v -0.4383809 -0.2447540 0.0815599 +v -0.4383809 -0.2426244 0.0889223 +v -0.4383809 -0.2351719 0.1204313 +v -0.4383809 -0.2335490 0.1289338 +v -0.4383809 -0.2282334 0.1643197 +v -0.4383809 -0.2271797 0.1736344 +v -0.4383809 -0.2242053 0.2115381 +v -0.4383809 -0.2237613 0.2213079 +v -0.4383809 -0.2232422 0.2602723 +v -0.4383809 -0.2234251 0.2701214 +v -0.4383809 -0.2253815 0.3086492 +v -0.4383809 -0.2261838 0.3181993 +v -0.4383809 -0.2305406 0.3548102 +v -0.4383809 -0.2319318 0.3636937 +v -0.4383809 -0.2385212 0.3969806 +v -0.4383809 -0.2404480 0.4048573 +v -0.4383809 -0.2490170 0.4335403 +v -0.4383809 -0.2514051 0.4401067 +v -0.4383809 -0.2616246 0.4630845 +v -0.4383809 -0.2643820 0.4680884 +v -0.4383809 -0.2758590 0.4844774 +v -0.4383809 -0.2788802 0.4877258 +v -0.4383809 -0.2911737 0.4968970 +v -0.4383809 -0.2943424 0.4982660 +v -0.4383809 -0.3069800 0.4998660 +v -0.4383809 -0.3101744 0.4993027 +v -0.4383809 -0.3226703 0.4932707 +v -0.4383809 -0.3257678 0.4907965 +v -0.4383804 -0.3376418 0.4773640 +v -0.4383804 -0.3405232 0.4730744 +v -0.4383804 -0.3513193 0.4527574 +v -0.4383804 -0.3538739 0.4468173 +v -0.4383804 -0.3631770 0.4203965 +v -0.4383804 -0.3653065 0.4130341 +v -0.4383804 -0.3727590 0.3815251 +v -0.4383804 -0.3743820 0.3730226 +v -0.4383804 -0.3841696 0.2806485 +v -0.4383804 -0.3837256 0.2904183 +v -0.4383804 -0.3796975 0.3376367 +v -0.4383804 -0.3807513 0.3283214 +v -0.4383804 -0.3759991 0.1382627 +v -0.4383804 -0.3773904 0.1471462 +v -0.4383804 -0.3817470 0.1837571 +v -0.4383804 -0.3825495 0.1933072 +v -0.4383804 -0.3846886 0.2416841 +v -0.4383804 -0.3845059 0.2318350 +v -0.3728964 -0.3851419 0.2317219 +v -0.3728964 -0.3853246 0.2415732 +v -0.3808061 -0.3853248 0.2415732 +v -0.3808061 -0.3851421 0.2317219 +v -0.4037821 -0.3853657 0.2459753 +v -0.4037821 -0.3853668 0.2558424 +v -0.4116913 -0.3853668 0.2558424 +v -0.4116913 -0.3853657 0.2459753 +v -0.4346673 -0.3851421 0.2317219 +v -0.4346673 -0.3853248 0.2415732 +v -0.4425765 -0.3853246 0.2415732 +v -0.4425765 -0.3851419 0.2317219 +v -0.4425765 -0.3831663 0.1928163 +v -0.4425765 -0.3823636 0.1832634 +v -0.4346673 -0.3823638 0.1832640 +v -0.4346673 -0.3831663 0.1928157 +v -0.4116913 -0.3841104 0.2067853 +v -0.4116913 -0.3834851 0.1971085 +v -0.4037821 -0.3834851 0.1971085 +v -0.4037821 -0.3841104 0.2067853 +v -0.3808061 -0.3831663 0.1928157 +v -0.3808061 -0.3823638 0.1832640 +v -0.3728964 -0.3823636 0.1832634 +v -0.3728964 -0.3831663 0.1928163 +v -0.3808061 -0.3843565 0.2906918 +v -0.3808061 -0.3848007 0.2809198 +v -0.3728964 -0.3848007 0.2809198 +v -0.3728964 -0.3843565 0.2906923 +v -0.4116913 -0.3834948 0.3047119 +v -0.4116913 -0.3841181 0.2950346 +v -0.4037821 -0.3841181 0.2950346 +v -0.4037821 -0.3834948 0.3047119 +v -0.4425765 -0.3843565 0.2906923 +v -0.4425765 -0.3848007 0.2809198 +v -0.4346673 -0.3848007 0.2809198 +v -0.4346673 -0.3843565 0.2906918 +v -0.4425765 -0.3779643 0.1462932 +v -0.4425765 -0.3765727 0.1374075 +v -0.4346673 -0.3765727 0.1374075 +v -0.4346673 -0.3779643 0.1462932 +v -0.4116913 -0.3797740 0.1594267 +v -0.4116913 -0.3785485 0.1503120 +v -0.4037821 -0.3785485 0.1503120 +v -0.4037821 -0.3797740 0.1594267 +v -0.3808061 -0.3779643 0.1462932 +v -0.3808061 -0.3765727 0.1374075 +v -0.3728964 -0.3765727 0.1374075 +v -0.3728964 -0.3779643 0.1462932 +v -0.4346673 -0.3679915 0.0959161 +v -0.4346673 -0.3699185 0.1037939 +v -0.4425765 -0.3699185 0.1037939 +v -0.4425765 -0.3679914 0.0959156 +v -0.4037821 -0.3707458 0.1073843 +v -0.4037821 -0.3725245 0.1155861 +v -0.4116913 -0.3725245 0.1155861 +v -0.4116913 -0.3707458 0.1073843 +v -0.3728964 -0.3679914 0.0959156 +v -0.3728964 -0.3699185 0.1037939 +v -0.3808061 -0.3699185 0.1037939 +v -0.3808061 -0.3679915 0.0959161 +v -0.4346673 -0.3569498 0.0603834 +v -0.4346673 -0.3593382 0.0669509 +v -0.4425765 -0.3593382 0.0669509 +v -0.4425765 -0.3569496 0.0603834 +v -0.4037821 -0.3603768 0.0699743 +v -0.4037821 -0.3626404 0.0769490 +v -0.4116913 -0.3626404 0.0769490 +v -0.4116913 -0.3603768 0.0699743 +v -0.3728964 -0.3569496 0.0603834 +v -0.3728964 -0.3593382 0.0669509 +v -0.3808061 -0.3593382 0.0669504 +v -0.3808061 -0.3569498 0.0603834 +v -0.4346673 -0.3438718 0.0321750 +v -0.4346673 -0.3466300 0.0371795 +v -0.4425765 -0.3466300 0.0371795 +v -0.4425765 -0.3438718 0.0321750 +v -0.4037821 -0.3478400 0.0395200 +v -0.4037821 -0.3505013 0.0449997 +v -0.4116913 -0.3505013 0.0449997 +v -0.4116913 -0.3478400 0.0395200 +v -0.3728964 -0.3438718 0.0321750 +v -0.3728964 -0.3466300 0.0371795 +v -0.3808061 -0.3466300 0.0371795 +v -0.3808061 -0.3438718 0.0321750 +v -0.4346673 -0.3292604 0.0123750 +v -0.4346673 -0.3322822 0.0156246 +v -0.4425765 -0.3322822 0.0156246 +v -0.4425765 -0.3292602 0.0123750 +v -0.4037821 -0.3336170 0.0171925 +v -0.4037821 -0.3365739 0.0209656 +v -0.4116913 -0.3365739 0.0209656 +v -0.4116913 -0.3336170 0.0171925 +v -0.3728964 -0.3292602 0.0123750 +v -0.3728964 -0.3322822 0.0156246 +v -0.3808061 -0.3322822 0.0156246 +v -0.3808061 -0.3292604 0.0123750 +v -0.4346673 -0.3136769 0.0017452 +v -0.4346673 -0.3168461 0.0031141 +v -0.4425765 -0.3168461 0.0031141 +v -0.4425765 -0.3136767 0.0017446 +v -0.4037821 -0.3182545 0.0038492 +v -0.4037821 -0.3213933 0.0057711 +v -0.4116913 -0.3213933 0.0057711 +v -0.4116913 -0.3182545 0.0038492 +v -0.3728964 -0.3136767 0.0017446 +v -0.3728964 -0.3168461 0.0031141 +v -0.3808061 -0.3168461 0.0031141 +v -0.3808061 -0.3136769 0.0017452 +v -0.4346673 -0.2977201 0.0006926 +v -0.4346673 -0.3009150 0.0001289 +v -0.4425765 -0.3009152 0.0001294 +v -0.4425765 -0.2977199 0.0006926 +v -0.4037821 -0.3023430 0.0000027 +v -0.4037821 -0.3055430 0.0000000 +v -0.4116913 -0.3055430 0.0000000 +v -0.4116913 -0.3023430 0.0000027 +v -0.3728964 -0.2977199 0.0006926 +v -0.3728964 -0.3009152 0.0001289 +v -0.3808061 -0.3009150 0.0001289 +v -0.3808061 -0.2977201 0.0006926 +v -0.4346673 -0.2820032 0.0092582 +v -0.4346673 -0.2851012 0.0067839 +v -0.4425765 -0.2851014 0.0067839 +v -0.4425765 -0.2820032 0.0092587 +v -0.4037821 -0.2864937 0.0058010 +v -0.4037821 -0.2896322 0.0038737 +v -0.4116913 -0.2896322 0.0038737 +v -0.4116913 -0.2864937 0.0058010 +v -0.3728964 -0.2820032 0.0092587 +v -0.3728964 -0.2851014 0.0067839 +v -0.3808061 -0.2851012 0.0067839 +v -0.3808061 -0.2820032 0.0092582 +v -0.4346673 -0.2671305 0.0271134 +v -0.4346673 -0.2700123 0.0228233 +v -0.4425765 -0.2700125 0.0228228 +v -0.4425765 -0.2671303 0.0271134 +v -0.4037821 -0.2713159 0.0210216 +v -0.4037821 -0.2742721 0.0172431 +v -0.4116913 -0.2742721 0.0172431 +v -0.4116913 -0.2713159 0.0210216 +v -0.3728969 -0.2671303 0.0271134 +v -0.3728969 -0.2700125 0.0228228 +v -0.3808061 -0.2700123 0.0228233 +v -0.3808061 -0.2671305 0.0271134 +v -0.4346673 -0.2536732 0.0535712 +v -0.4346673 -0.2562283 0.0476299 +v -0.4425765 -0.2562284 0.0476299 +v -0.4425765 -0.2536730 0.0535717 +v -0.4037821 -0.2573928 0.0450790 +v -0.4037821 -0.2600531 0.0395950 +v -0.4116913 -0.2600531 0.0395950 +v -0.4116913 -0.2573928 0.0450790 +v -0.3728969 -0.2536730 0.0535717 +v -0.3728969 -0.2562284 0.0476299 +v -0.3808061 -0.2562283 0.0476299 +v -0.3808061 -0.2536732 0.0535712 +v -0.4346673 -0.2421487 0.0876159 +v -0.4346673 -0.2442788 0.0802519 +v -0.4425765 -0.2442788 0.0802513 +v -0.4425765 -0.2421487 0.0876159 +v -0.4037821 -0.2452594 0.0770491 +v -0.4037821 -0.2475217 0.0700700 +v -0.4116913 -0.2475217 0.0700700 +v -0.4116913 -0.2452594 0.0770491 +v -0.3728969 -0.2421487 0.0876159 +v -0.3728969 -0.2442788 0.0802513 +v -0.3808061 -0.2442788 0.0802519 +v -0.3808061 -0.2421487 0.0876159 +v -0.4346673 -0.2329999 0.1279378 +v -0.4346673 -0.2346230 0.1194342 +v -0.4425765 -0.2346230 0.1194337 +v -0.4425765 -0.2329999 0.1279383 +v -0.4037821 -0.2353821 0.1157036 +v -0.4037821 -0.2371594 0.1074979 +v -0.4116913 -0.2371594 0.1074979 +v -0.4116913 -0.2353821 0.1157036 +v -0.3728969 -0.2329997 0.1279383 +v -0.3728969 -0.2346230 0.1194337 +v -0.3808061 -0.2346230 0.1194342 +v -0.3808061 -0.2329999 0.1279378 +v -0.4346673 -0.2265780 0.1729886 +v -0.4346673 -0.2276320 0.1636717 +v -0.4425765 -0.2276320 0.1636717 +v -0.4425765 -0.2265780 0.1729886 +v -0.4037821 -0.2281405 0.1595561 +v -0.4037821 -0.2293643 0.1504393 +v -0.4116913 -0.2293643 0.1504393 +v -0.4116913 -0.2281405 0.1595561 +v -0.3728969 -0.2265780 0.1729886 +v -0.3728969 -0.2276320 0.1636717 +v -0.3808061 -0.2276320 0.1636717 +v -0.3808061 -0.2265780 0.1729886 +v -0.4346673 -0.2231302 0.2210361 +v -0.4346673 -0.2235744 0.2112646 +v -0.4425765 -0.2235744 0.2112641 +v -0.4425765 -0.2231302 0.2210366 +v -0.4037821 -0.2238126 0.2069223 +v -0.4037821 -0.2244361 0.1972445 +v -0.4116913 -0.2244361 0.1972445 +v -0.4116913 -0.2238126 0.2069223 +v -0.3728969 -0.2231302 0.2210366 +v -0.3728969 -0.2235744 0.2112641 +v -0.3808061 -0.2235744 0.2112646 +v -0.3808061 -0.2231302 0.2210361 +v -0.4346673 -0.2227888 0.2702345 +v -0.4346673 -0.2226062 0.2603837 +v -0.4425765 -0.2226062 0.2603832 +v -0.4425765 -0.2227888 0.2702350 +v -0.4037821 -0.2225651 0.2559811 +v -0.4037821 -0.2225642 0.2461145 +v -0.4116913 -0.2225642 0.2461145 +v -0.4116913 -0.2225651 0.2559811 +v -0.3728969 -0.2227888 0.2702350 +v -0.3728969 -0.2226062 0.2603832 +v -0.3808061 -0.2226062 0.2603837 +v -0.3808061 -0.2227888 0.2702345 +v -0.4346673 -0.2255671 0.3186930 +v -0.4346673 -0.2247645 0.3091412 +v -0.4425765 -0.2247645 0.3091407 +v -0.4425765 -0.2255671 0.3186930 +v -0.4037821 -0.2244458 0.3048479 +v -0.4037821 -0.2238206 0.2951711 +v -0.4116913 -0.2238206 0.2951711 +v -0.4116913 -0.2244458 0.3048479 +v -0.3728969 -0.2255671 0.3186930 +v -0.3728969 -0.2247645 0.3091407 +v -0.3808061 -0.2247645 0.3091412 +v -0.3808061 -0.2255671 0.3186930 +v -0.4346673 -0.2313581 0.3645489 +v -0.4346673 -0.2299666 0.3556637 +v -0.4425765 -0.2299666 0.3556632 +v -0.4425765 -0.2313582 0.3645495 +v -0.4037821 -0.2293823 0.3516444 +v -0.4037821 -0.2281569 0.3425297 +v -0.4116913 -0.2281569 0.3425297 +v -0.4116913 -0.2293823 0.3516444 +v -0.3728969 -0.2313582 0.3645495 +v -0.3728969 -0.2299666 0.3556632 +v -0.3808061 -0.2299666 0.3556637 +v -0.3808061 -0.2313581 0.3645489 +v -0.4346673 -0.2399394 0.4060408 +v -0.4346673 -0.2380125 0.3981630 +v -0.4425765 -0.2380123 0.3981625 +v -0.4425765 -0.2399394 0.4060408 +v -0.4037821 -0.2371851 0.3945726 +v -0.4037821 -0.2354065 0.3863703 +v -0.4116913 -0.2354065 0.3863703 +v -0.4116913 -0.2371851 0.3945726 +v -0.3728969 -0.2399394 0.4060408 +v -0.3728969 -0.2380123 0.3981625 +v -0.3808061 -0.2380125 0.3981630 +v -0.3808061 -0.2399394 0.4060408 +v -0.4346673 -0.2509812 0.4415736 +v -0.4346673 -0.2485927 0.4350060 +v -0.4425765 -0.2485927 0.4350060 +v -0.4425765 -0.2509813 0.4415736 +v -0.4037821 -0.2475541 0.4319827 +v -0.4037821 -0.2452906 0.4250074 +v -0.4116913 -0.2452906 0.4250074 +v -0.4116913 -0.2475541 0.4319827 +v -0.3728969 -0.2509813 0.4415736 +v -0.3728969 -0.2485927 0.4350060 +v -0.3808061 -0.2485927 0.4350060 +v -0.3808061 -0.2509812 0.4415736 +v -0.4346673 -0.2640592 0.4697814 +v -0.4346673 -0.2613010 0.4647769 +v -0.4425765 -0.2613010 0.4647769 +v -0.4425765 -0.2640592 0.4697819 +v -0.4037821 -0.2600910 0.4624364 +v -0.4037821 -0.2574298 0.4569567 +v -0.4116913 -0.2574298 0.4569567 +v -0.4116913 -0.2600910 0.4624364 +v -0.3728969 -0.2640592 0.4697819 +v -0.3728969 -0.2613010 0.4647769 +v -0.3808061 -0.2613010 0.4647769 +v -0.3808061 -0.2640592 0.4697814 +v -0.4346673 -0.2786706 0.4895814 +v -0.4346673 -0.2756489 0.4863318 +v -0.4425765 -0.2756488 0.4863318 +v -0.4425765 -0.2786707 0.4895814 +v -0.4037821 -0.2743141 0.4847639 +v -0.4037821 -0.2713570 0.4809908 +v -0.4116913 -0.2713570 0.4809908 +v -0.4116913 -0.2743141 0.4847639 +v -0.3728969 -0.2786707 0.4895814 +v -0.3728969 -0.2756488 0.4863318 +v -0.3808061 -0.2756489 0.4863318 +v -0.3808061 -0.2786706 0.4895814 +v -0.4346673 -0.2942543 0.5002118 +v -0.4346673 -0.2910849 0.4988423 +v -0.4425765 -0.2910849 0.4988423 +v -0.4425765 -0.2942544 0.5002118 +v -0.4037821 -0.2896765 0.4981072 +v -0.4037821 -0.2865376 0.4961853 +v -0.4116913 -0.2865376 0.4961853 +v -0.4116913 -0.2896765 0.4981072 +v -0.3728969 -0.2942544 0.5002118 +v -0.3728969 -0.2910849 0.4988423 +v -0.3808061 -0.2910849 0.4988423 +v -0.3808061 -0.2942543 0.5002118 +v -0.4346673 -0.3102111 0.5012643 +v -0.4346673 -0.3070159 0.5018276 +v -0.4425765 -0.3070159 0.5018276 +v -0.4425765 -0.3102112 0.5012643 +v -0.4037821 -0.3055882 0.5019537 +v -0.4037821 -0.3023879 0.5019564 +v -0.4116913 -0.3023879 0.5019564 +v -0.4116913 -0.3055882 0.5019537 +v -0.3728969 -0.3102112 0.5012643 +v -0.3728969 -0.3070159 0.5018276 +v -0.3808061 -0.3070159 0.5018276 +v -0.3808061 -0.3102111 0.5012643 +v -0.4346673 -0.3259277 0.4926982 +v -0.4346673 -0.3228297 0.4951725 +v -0.4425765 -0.3228297 0.4951725 +v -0.4425765 -0.3259279 0.4926982 +v -0.4037821 -0.3214372 0.4961554 +v -0.4037821 -0.3182989 0.4980833 +v -0.4116913 -0.3182989 0.4980833 +v -0.4116913 -0.3214372 0.4961554 +v -0.3728969 -0.3259279 0.4926982 +v -0.3728969 -0.3228297 0.4951725 +v -0.3808061 -0.3228297 0.4951725 +v -0.3808061 -0.3259277 0.4926982 +v -0.4346673 -0.3408006 0.4748430 +v -0.4346673 -0.3379186 0.4791331 +v -0.4425765 -0.3379185 0.4791336 +v -0.4425765 -0.3408008 0.4748430 +v -0.4037821 -0.3366152 0.4809348 +v -0.4037821 -0.3336590 0.4847133 +v -0.4116913 -0.3336590 0.4847133 +v -0.4116913 -0.3366152 0.4809348 +v -0.3728969 -0.3408008 0.4748430 +v -0.3728969 -0.3379185 0.4791336 +v -0.3808061 -0.3379186 0.4791331 +v -0.3808061 -0.3408006 0.4748430 +v -0.4346673 -0.3542577 0.4483847 +v -0.4346673 -0.3517027 0.4543265 +v -0.4425765 -0.3517027 0.4543265 +v -0.4425765 -0.3542577 0.4483847 +v -0.4037821 -0.3505382 0.4568774 +v -0.4037821 -0.3478779 0.4623614 +v -0.4116913 -0.3478779 0.4623614 +v -0.4116913 -0.3505382 0.4568774 +v -0.3728964 -0.3542577 0.4483847 +v -0.3728964 -0.3517027 0.4543265 +v -0.3808056 -0.3517027 0.4543265 +v -0.3808056 -0.3542577 0.4483847 +v -0.4346673 -0.3657823 0.4143405 +v -0.4346673 -0.3636524 0.4217046 +v -0.4425765 -0.3636522 0.4217051 +v -0.4425765 -0.3657823 0.4143405 +v -0.4037821 -0.3626716 0.4249073 +v -0.4037821 -0.3604094 0.4318859 +v -0.4116913 -0.3604094 0.4318859 +v -0.4116913 -0.3626716 0.4249073 +v -0.3728964 -0.3657823 0.4143405 +v -0.3728964 -0.3636522 0.4217051 +v -0.3808056 -0.3636524 0.4217046 +v -0.3808056 -0.3657823 0.4143405 +v -0.4346673 -0.3749311 0.3740186 +v -0.4346673 -0.3733081 0.3825222 +v -0.4425765 -0.3733079 0.3825222 +v -0.4425765 -0.3749313 0.3740181 +v -0.4037821 -0.3725488 0.3862528 +v -0.4037821 -0.3707716 0.3944585 +v -0.4116913 -0.3707716 0.3944585 +v -0.4116913 -0.3725488 0.3862528 +v -0.3728964 -0.3749313 0.3740181 +v -0.3728964 -0.3733079 0.3825222 +v -0.3808056 -0.3733081 0.3825222 +v -0.3808056 -0.3749311 0.3740186 +v -0.4346673 -0.3813529 0.3289678 +v -0.4346673 -0.3802992 0.3382842 +v -0.4425765 -0.3802990 0.3382847 +v -0.4425765 -0.3813529 0.3289673 +v -0.4037821 -0.3797906 0.3424003 +v -0.4037821 -0.3785667 0.3515171 +v -0.4116913 -0.3785667 0.3515171 +v -0.4116913 -0.3797906 0.3424003 +v -0.3728964 -0.3813529 0.3289673 +v -0.3728964 -0.3802990 0.3382847 +v -0.3808056 -0.3802992 0.3382842 +v -0.3808061 -0.3813529 0.3289678 +v -0.3463943 -0.2881733 0.0065447 +v -0.4690786 -0.2881733 0.0065447 +v -0.4038092 -0.2881733 0.0065447 +v -0.4077365 -0.2882969 0.0084579 +v -0.4344803 -0.2836939 0.0097062 +v -0.4381682 -0.2838524 0.0115949 +v -0.3731382 -0.2836937 0.0097062 +v -0.3773053 -0.2838524 0.0115949 +v -0.3809926 -0.2836939 0.0097062 +v -0.4116637 -0.2881733 0.0065447 +v -0.4423348 -0.2836939 0.0097062 +v -0.4807798 -0.3728761 0.2509200 +v -0.4807798 -0.3715483 0.2094711 +v -0.4807798 -0.3676233 0.1696167 +v -0.4807798 -0.3612521 0.1328896 +v -0.4807798 -0.3526794 0.1006999 +v -0.4807798 -0.3422345 0.0742861 +v -0.4807798 -0.3303191 0.0546618 +v -0.4807798 -0.3173908 0.0425820 +v -0.4807798 -0.3039467 0.0385109 +v -0.4807798 -0.2905031 0.0426048 +v -0.4807798 -0.2775770 0.0547064 +v -0.4807798 -0.2656650 0.0743508 +v -0.4807798 -0.2552249 0.1007825 +v -0.4807798 -0.2466578 0.1329863 +v -0.4807798 -0.2402930 0.1697244 +v -0.4807798 -0.2363752 0.2095852 +v -0.4807798 -0.2350547 0.2510364 +v -0.4807798 -0.2363826 0.2924859 +v -0.4807798 -0.2403074 0.3323397 +v -0.4807798 -0.2466788 0.3690674 +v -0.4807798 -0.2552517 0.4012565 +v -0.4807798 -0.2656964 0.4276708 +v -0.4807798 -0.2776120 0.4472946 +v -0.4807798 -0.2905402 0.4593744 +v -0.4807798 -0.3039844 0.4634455 +v -0.4807798 -0.3174278 0.4593516 +v -0.4807798 -0.3303540 0.4472500 +v -0.4807798 -0.3422659 0.4276056 +v -0.4807798 -0.3527060 0.4011739 +v -0.4807798 -0.3612731 0.3689701 +v -0.4807798 -0.3676380 0.3322315 +v -0.4807798 -0.3715557 0.2923712 +v -0.4778087 -0.3625967 0.2149687 +v -0.4778087 -0.3268282 0.0806650 +v -0.4778087 -0.3536824 0.3533412 +v -0.4931830 -0.3671453 0.2750889 +v -0.4931830 -0.3644263 0.3133715 +v -0.4873769 -0.3256572 0.2470774 +v -0.4873769 -0.3229384 0.2853594 +v -0.4999995 -0.3579269 0.2688650 +v -0.4999995 -0.3552078 0.3071470 +v -0.4791941 -0.3644263 0.3133715 +v -0.4791651 -0.3671453 0.2750889 +v -0.4931830 -0.3372872 0.4204508 +v -0.4931830 -0.3258926 0.4378168 +v -0.4873769 -0.3184675 0.3030614 +v -0.4873769 -0.3070729 0.3204268 +v -0.4999995 -0.3331055 0.3943671 +v -0.4999995 -0.3217109 0.4117331 +v -0.4793983 -0.3258926 0.4378168 +v -0.4793426 -0.3372872 0.4204508 +v -0.4931830 -0.2804166 0.4394478 +v -0.4931830 -0.2689764 0.4223700 +v -0.4873769 -0.2989242 0.3215864 +v -0.4873769 -0.2874840 0.3045092 +v -0.4999995 -0.2845288 0.4132592 +v -0.4999995 -0.2730886 0.3961819 +v -0.4797785 -0.2689764 0.4223700 +v -0.4797171 -0.2804166 0.4394478 +v -0.4931835 -0.2415067 0.3156207 +v -0.4931835 -0.2385716 0.2774903 +v -0.4873769 -0.2828301 0.2853839 +v -0.4873769 -0.2798950 0.2472535 +v -0.4999995 -0.2506886 0.3089026 +v -0.4999995 -0.2477536 0.2707722 +v -0.4799113 -0.2385716 0.2774903 +v -0.4798894 -0.2415067 0.3156207 +v -0.4931835 -0.2482115 0.1434205 +v -0.4931835 -0.2560361 0.1125361 +v -0.4873769 -0.2816820 0.2240295 +v -0.4873769 -0.2895063 0.1931457 +v -0.4999995 -0.2556485 0.1613312 +v -0.4999995 -0.2634730 0.1304474 +v -0.4797842 -0.2560361 0.1125361 +v -0.4798099 -0.2482115 0.1434205 +v -0.4931830 -0.2957875 0.0517977 +v -0.4931830 -0.3084978 0.0517238 +v -0.4873769 -0.2958680 0.1827458 +v -0.4873769 -0.3085786 0.1826714 +v -0.4999995 -0.2958053 0.0808939 +v -0.4999995 -0.3085158 0.0808200 +v -0.4795306 -0.3084978 0.0517238 +v -0.4796396 -0.2957875 0.0517977 +v -0.4931830 -0.3495031 0.1114841 +v -0.4931830 -0.3574093 0.1421695 +v -0.4873769 -0.3162480 0.1929353 +v -0.4873769 -0.3241542 0.2236207 +v -0.4999995 -0.3421139 0.1295824 +v -0.4999995 -0.3500201 0.1602677 +v -0.4791855 -0.3571806 0.1412822 +v -0.4792070 -0.3574093 0.1421695 +v -0.4792507 -0.3495031 0.1114841 +v -0.4856151 -0.3681264 0.2950395 +v -0.4856151 -0.3546508 0.1211544 +v -0.4856151 -0.3021557 0.0452226 +v -0.4856151 -0.2501711 0.1244224 +v -0.4856151 -0.2378425 0.2991148 +v -0.4856151 -0.2744534 0.4377532 +v -0.4856151 -0.3324352 0.4359395 +v -0.4783032 -0.2438383 0.2141553 +v -0.4783365 -0.2529185 0.3562047 +v -0.4791180 -0.2450243 0.3263115 +v -0.4783527 -0.2605221 0.3849975 +v -0.4791703 -0.2684426 0.4149913 +v -0.4783936 -0.2919685 0.4372052 +v -0.4779696 -0.3039820 0.4368289 +v -0.4783151 -0.3159486 0.4364549 +v -0.4778163 -0.3462674 0.3813332 +v -0.4786944 -0.3387054 0.4111861 +v -0.4778087 -0.3468978 0.3788442 +v -0.4784017 -0.3608873 0.3236176 +v -0.4778087 -0.3543842 0.3492903 +v -0.4778087 -0.3513171 0.1904584 +v -0.4778087 -0.3594267 0.1827839 +v -0.4778087 -0.3536427 0.2204679 +v -0.4778087 -0.3619518 0.2153650 +v -0.4778087 -0.3327117 0.1182539 +v -0.4778087 -0.3235596 0.1050155 +v -0.4778087 -0.3268007 0.0808705 +v -0.4778087 -0.3280500 0.0826777 +v -0.4778087 -0.3142374 0.0915314 +v -0.4778087 -0.3263500 0.0802187 +v -0.4778087 -0.2839466 0.1020808 +v -0.4778087 -0.2747248 0.1161303 +v -0.4778087 -0.2521437 0.2192419 +v -0.4778087 -0.2543706 0.1876889 +v -0.4778087 -0.2599878 0.3416321 +v -0.4778087 -0.2665384 0.3664377 +v -0.4778087 -0.2936535 0.4110475 +v -0.4778087 -0.3039797 0.4107246 +v -0.4778087 -0.3534692 0.3529024 +v -0.4778087 -0.3464090 0.3383663 +v -0.4778087 -0.3402344 0.3627418 +v -0.4797885 -0.3681264 0.2950395 +v -0.4791498 -0.3647939 0.3081947 +v -0.4795130 -0.3677383 0.2900334 +v -0.4789252 -0.3636204 0.3128273 +v -0.4781209 -0.3647077 0.2509271 +v -0.4778087 -0.3630724 0.2298250 +v -0.4778244 -0.3592372 0.1803352 +v -0.4791165 -0.3668752 0.2788935 +v -0.4779853 -0.3374669 0.0962983 +v -0.4789666 -0.3665491 0.2746866 +v -0.4783498 -0.3159366 0.0651557 +v -0.4778087 -0.3560036 0.2509342 +v -0.4787834 -0.2917013 0.0611500 +v -0.4781276 -0.2806973 0.0779146 +v -0.4778087 -0.3527691 0.3132574 +v -0.4782532 -0.2699790 0.0942449 +v -0.4791870 -0.2586863 0.1114493 +v -0.4778087 -0.3544471 0.3066338 +v -0.4786206 -0.2464219 0.1775456 +v -0.4787677 -0.2412358 0.2510315 +v -0.4778087 -0.3573638 0.2684850 +v -0.4778087 -0.2485481 0.2701905 +v -0.4784874 -0.2477536 0.2707722 +v -0.4782780 -0.2506886 0.3089026 +v -0.4778087 -0.2512384 0.3085002 +v -0.4797857 -0.2491977 0.1382154 +v -0.4797685 -0.2548183 0.1173422 +v -0.4856151 -0.3647939 0.3081947 +v -0.4804676 -0.2501711 0.1244224 +v -0.4794725 -0.2567865 0.1143438 +v -0.4856151 -0.3668752 0.2788935 +v -0.4797319 -0.2490692 0.1400350 +v -0.4856151 -0.3665491 0.2746866 +v -0.4782870 -0.3579269 0.2688650 +v -0.4795939 -0.2487405 0.1446937 +v -0.4856151 -0.3636204 0.3128273 +v -0.4784560 -0.3552078 0.3071470 +v -0.4778087 -0.2650091 0.1309329 +v -0.4778087 -0.2641916 0.1321784 +v -0.4778087 -0.2561461 0.1625300 +v -0.4795001 -0.3288483 0.4360515 +v -0.4793316 -0.3270134 0.4361086 +v -0.4792041 -0.3256258 0.4361521 +v -0.4790770 -0.3369273 0.4182060 +v -0.4856151 -0.2548183 0.1173422 +v -0.4856151 -0.2490692 0.1400350 +v -0.4793250 -0.3357744 0.4227566 +v -0.4800431 -0.3324352 0.4359395 +v -0.4778087 -0.3142655 0.4104027 +v -0.4856151 -0.2487405 0.1446937 +v -0.4783332 -0.2556485 0.1613312 +v -0.4778087 -0.3214618 0.4101776 +v -0.4856151 -0.2567865 0.1143438 +v -0.4778087 -0.3337509 0.3883373 +v -0.4778087 -0.3327636 0.3922349 +v -0.4785664 -0.2634730 0.1304474 +v -0.4856151 -0.3270134 0.4361086 +v -0.4794706 -0.3066576 0.0517341 +v -0.4797976 -0.3039474 0.0478143 +v -0.4792479 -0.3084996 0.0543987 +v -0.4856151 -0.3357744 0.4227566 +v -0.4793097 -0.2957892 0.0549217 +v -0.4856151 -0.3369273 0.4182060 +v -0.4801288 -0.3021557 0.0452226 +v -0.4795744 -0.2978476 0.0517858 +v -0.4778087 -0.3085174 0.0832578 +v -0.4778087 -0.2934139 0.0876572 +v -0.4778087 -0.2958072 0.0840108 +v -0.4784498 -0.3331055 0.3943671 +v -0.4856151 -0.3256258 0.4361521 +v -0.4782761 -0.3217109 0.4117331 +v -0.4856151 -0.3066576 0.0517341 +v -0.4803739 -0.2744534 0.4377532 +v -0.4796738 -0.2789116 0.4376135 +v -0.4797447 -0.2713119 0.4258566 +v -0.4793826 -0.2695039 0.4190101 +v -0.4856151 -0.2978476 0.0517858 +v -0.4856151 -0.2957892 0.0549217 +v -0.4794968 -0.2807135 0.4375569 +v -0.4786449 -0.2958053 0.0808939 +v -0.4796472 -0.2791821 0.4376048 +v -0.4856151 -0.3084996 0.0543987 +v -0.4784679 -0.3085158 0.0808200 +v -0.4788167 -0.3564596 0.1444953 +v -0.4778087 -0.2733621 0.3922773 +v -0.4789909 -0.3487948 0.1126840 +v -0.4790123 -0.3489322 0.1128825 +v -0.4778087 -0.2735751 0.3930841 +v -0.4778087 -0.2848330 0.4113231 +v -0.4791974 -0.3557932 0.1358977 +v -0.4792431 -0.3504167 0.1150300 +v -0.4799013 -0.3546508 0.1211544 +v -0.4856151 -0.2713119 0.4258566 +v -0.4856151 -0.2791821 0.4376048 +v -0.4841317 -0.2759267 0.4327454 +v -0.4856151 -0.2807135 0.4375569 +v -0.4783846 -0.2845288 0.4132592 +v -0.4778087 -0.3491438 0.1624142 +v -0.4778087 -0.3415308 0.1310101 +v -0.4856151 -0.2695039 0.4190101 +v -0.4787415 -0.2730886 0.3961819 +v -0.4798318 -0.2389874 0.2828912 +v -0.4801112 -0.2383976 0.2912485 +v -0.4856151 -0.3557932 0.1358977 +v -0.4796310 -0.2394120 0.2768760 +v -0.4805276 -0.2378425 0.2991148 +v -0.4798642 -0.2412208 0.3119085 +v -0.4796938 -0.2420887 0.3151950 +v -0.4856151 -0.3504167 0.1150300 +v -0.4841483 -0.3526418 0.1236656 +v -0.4778087 -0.2499008 0.2510239 +v -0.4856151 -0.3489322 0.1128825 +v -0.4778087 -0.2531869 0.3158784 +v -0.4784236 -0.3421139 0.1295824 +v -0.4856151 -0.3564596 0.1444953 +v -0.4787439 -0.3500201 0.1602677 +v -0.4856151 -0.2389874 0.2828912 +v -0.4856151 -0.2412208 0.3119085 +v -0.4856151 -0.2420887 0.3151950 +v -0.4856151 -0.2394120 0.2768760 +v -0.4788524 -0.3223764 0.2983309 +v -0.4788524 -0.2835930 0.2994992 +v -0.4788524 -0.2785988 0.2349470 +v -0.4788524 -0.3133768 0.1820113 +v -0.4788524 -0.3120879 0.1820505 +v -0.4788524 -0.3269605 0.2334899 +v -0.4788524 -0.2918537 0.1826599 +v -0.4788524 -0.3030760 0.3277076 +v -0.4778087 -0.2736067 0.3928829 +v -0.4778087 -0.2734004 0.3921011 +v -0.4778087 -0.2936667 0.4108442 +v -0.4778087 -0.2848649 0.4111198 +v -0.4914750 -0.2736067 0.3928829 +v -0.4788524 -0.2874041 0.3050169 +v -0.4844786 -0.2921109 0.3649757 +v -0.4914750 -0.2848649 0.4111198 +v -0.4788524 -0.2989101 0.3216761 +v -0.4778087 -0.2499680 0.2510239 +v -0.4778087 -0.2522082 0.2192816 +v -0.4778087 -0.2486190 0.2701388 +v -0.4778087 -0.2513095 0.3084481 +v -0.4778087 -0.2532504 0.3157974 +v -0.4778087 -0.2600429 0.3415190 +v -0.4914750 -0.2486190 0.2701388 +v -0.4788524 -0.2795693 0.2474916 +v -0.4914750 -0.2513095 0.3084481 +v -0.4778087 -0.3535782 0.2205076 +v -0.4788524 -0.2825187 0.2856117 +v -0.4778087 -0.3512555 0.1905366 +v -0.4778087 -0.2747616 0.1163005 +v -0.4778087 -0.2650581 0.1310840 +v -0.4778087 -0.2642491 0.1323165 +v -0.4778087 -0.2544321 0.1877677 +v -0.4778087 -0.3326747 0.1184241 +v -0.4778087 -0.2562036 0.1626681 +v -0.4778087 -0.3235344 0.1052026 +v -0.4778087 -0.3142242 0.0917358 +v -0.4778087 -0.2839716 0.1022684 +v -0.4914750 -0.2642491 0.1323165 +v -0.4778087 -0.2665851 0.3662936 +v -0.4778087 -0.3039797 0.4105218 +v -0.4778087 -0.3463542 0.3382527 +v -0.4778087 -0.3401875 0.3625977 +v -0.4778087 -0.3559362 0.2509342 +v -0.4778087 -0.3527062 0.3131769 +v -0.4788524 -0.2893134 0.1926809 +v -0.4778087 -0.3543759 0.3065854 +v -0.4914750 -0.2562036 0.1626681 +v -0.4788524 -0.2814859 0.2235576 +v -0.4778087 -0.3085176 0.0834818 +v -0.4778087 -0.3572926 0.2684366 +v -0.4778087 -0.2958074 0.0842364 +v -0.4778087 -0.2934273 0.0878632 +v -0.4914750 -0.3543759 0.3065854 +v -0.4914750 -0.3085176 0.0834818 +v -0.4788524 -0.3232771 0.2855883 +v -0.4788524 -0.3259843 0.2472981 +v -0.4914750 -0.3572926 0.2684366 +v -0.4778087 -0.3142524 0.4102005 +v -0.4788524 -0.3085782 0.1821559 +v -0.4788524 -0.2958679 0.1825392 +v -0.4914750 -0.2958074 0.0842364 +v -0.4778087 -0.3214293 0.4099759 +v -0.4778087 -0.3337124 0.3881600 +v -0.4778087 -0.3327313 0.3920332 +v -0.4778087 -0.3490868 0.1625533 +v -0.4778087 -0.3414735 0.1311509 +v -0.4914750 -0.3214293 0.4099759 +v -0.4788524 -0.3072272 0.3213891 +v -0.4914750 -0.3490868 0.1625533 +v -0.4914750 -0.3327313 0.3920332 +v -0.4788524 -0.3242769 0.2233200 +v -0.4788524 -0.3162548 0.1929185 +v -0.4844239 -0.3283526 0.1632873 +v -0.4914750 -0.3414735 0.1311509 +v -0.4788524 -0.3186246 0.3040411 +v -0.4842683 -0.3131697 0.2761437 +v -0.4842683 -0.3155943 0.2418494 +v -0.4842683 -0.3084098 0.2146224 +v -0.4842683 -0.2970264 0.2149654 +v -0.4842683 -0.2900158 0.2426203 +v -0.4842683 -0.2926572 0.2767618 +v -0.4842683 -0.3029617 0.2916812 +v -0.4893743 -0.3194406 0.2390207 +v -0.4893743 -0.3162852 0.2836518 +v -0.4893743 -0.3100906 0.2035869 +v -0.4893743 -0.2952759 0.2040333 +v -0.4893743 -0.2861523 0.2400232 +v -0.4893743 -0.2895901 0.2844558 +v -0.4893743 -0.3030005 0.3038725 +v -0.4893743 -0.3181647 0.2399591 +v -0.4893743 -0.3152517 0.2811612 +v -0.4893743 -0.3095331 0.2072475 +v -0.4893743 -0.2958566 0.2076601 +v -0.4893743 -0.2874339 0.2408849 +v -0.4893743 -0.2906075 0.2819038 +v -0.4893743 -0.3029876 0.2998287 +v -0.4747910 -0.3085782 0.1821559 +v -0.4754920 -0.3256572 0.2470774 +v -0.4751412 -0.3085786 0.1826714 +v -0.4749318 -0.2958680 0.1827458 +v -0.4755172 -0.3229384 0.2853594 +v -0.4747910 -0.2958679 0.1825392 +v -0.4755334 -0.3184675 0.3030614 +v -0.4747910 -0.3242769 0.2233200 +v -0.4755201 -0.3070729 0.3204268 +v -0.4751198 -0.3241542 0.2236207 +v -0.4748585 -0.2989242 0.3215864 +v -0.4748095 -0.3162480 0.1929353 +v -0.4751741 -0.2874840 0.3045092 +v -0.4747910 -0.3162548 0.1929185 +v -0.4754611 -0.2828301 0.2853839 +v -0.4754920 -0.2798950 0.2472535 +v -0.4747910 -0.3223762 0.2983303 +v -0.4747910 -0.3223764 0.2983309 +v -0.4747910 -0.3232771 0.2855883 +v -0.4753116 -0.2816820 0.2240295 +v -0.4747910 -0.3259843 0.2472981 +v -0.4753040 -0.2895063 0.1931457 +v -0.4747910 -0.3269605 0.2334899 +v -0.4747910 -0.3269605 0.2334899 +v -0.4747910 -0.3133768 0.1820113 +v -0.4747910 -0.2918537 0.1826599 +v -0.4747910 -0.2918537 0.1826599 +v -0.4747910 -0.3072272 0.3213891 +v -0.4747910 -0.3133768 0.1820113 +v -0.4747910 -0.2814859 0.2235576 +v -0.4747910 -0.3186246 0.3040411 +v -0.4747910 -0.2874041 0.3050169 +v -0.4747910 -0.2785988 0.2349470 +v -0.4747910 -0.2785988 0.2349470 +v -0.4747910 -0.2893134 0.1926809 +v -0.4747910 -0.2825187 0.2856117 +v -0.4747910 -0.2989101 0.3216761 +v -0.4747910 -0.2795693 0.2474916 +v -0.4747910 -0.2835930 0.2994992 +v -0.4747910 -0.2835930 0.2994992 +v -0.4747910 -0.3030760 0.3277076 +v -0.4747910 -0.3030760 0.3277076 +v -0.3346936 0.2707749 0.2514642 +v -0.3362036 0.2644512 0.2514588 +v -0.3403298 0.2598217 0.2514550 +v -0.4792698 0.2644510 0.2514588 +v -0.4751441 0.2598217 0.2514550 +v -0.3346936 0.2721027 0.2100153 +v -0.3362036 0.2659008 0.2062058 +v -0.3403298 0.2613606 0.2034178 +v -0.4792698 0.2659008 0.2062058 +v -0.4751441 0.2613606 0.2034178 +v -0.3346936 0.2760277 0.1701609 +v -0.3362036 0.2701858 0.1626947 +v -0.3403298 0.2659094 0.1572286 +v -0.4792698 0.2701858 0.1626947 +v -0.4751441 0.2659094 0.1572286 +v -0.3346936 0.2823989 0.1334338 +v -0.3362036 0.2771418 0.1225968 +v -0.3403298 0.2732933 0.1146635 +v -0.4792702 0.2771418 0.1225968 +v -0.4751441 0.2732933 0.1146635 +v -0.3346936 0.2909718 0.1012441 +v -0.3362036 0.2865013 0.0874533 +v -0.3403298 0.2832287 0.0773579 +v -0.4792702 0.2865013 0.0874533 +v -0.4751441 0.2832287 0.0773579 +v -0.3346936 0.3014165 0.0748304 +v -0.3362036 0.2979047 0.0586154 +v -0.3403298 0.2953338 0.0467454 +v -0.4423352 0.3748341 0.0270803 +v -0.4792702 0.2979047 0.0586154 +v -0.4751441 0.2953338 0.0467454 +v -0.3346936 0.3133320 0.0552060 +v -0.4116642 0.3706409 0.0212847 +v -0.3362036 0.3109136 0.0371904 +v -0.3403298 0.3091432 0.0240020 +v -0.3809931 0.3748341 0.0270803 +v -0.4792702 0.3109136 0.0371904 +v -0.4751441 0.3091432 0.0240020 +v -0.3346936 0.3262603 0.0431262 +v -0.4077369 0.3703986 0.0230870 +v -0.3362036 0.3250282 0.0240020 +v -0.3403298 0.3241263 0.0100025 +v -0.4038097 0.3706409 0.0212847 +v -0.4792702 0.3250282 0.0240020 +v -0.4751441 0.3241263 0.0100025 +v -0.3346936 0.3397045 0.0390552 +v -0.4381686 0.3745590 0.0288369 +v -0.3362036 0.3397061 0.0195575 +v -0.3403298 0.3397075 0.0052839 +v -0.4344808 0.3748341 0.0270803 +v -0.4792702 0.3397061 0.0195575 +v -0.4751441 0.3397075 0.0052839 +v -0.3346936 0.3531479 0.0431490 +v -0.3773053 0.3745590 0.0288369 +v -0.3362036 0.3543833 0.0240270 +v -0.3403298 0.3552879 0.0100286 +v -0.3731387 0.3748341 0.0270803 +v -0.4792702 0.3543833 0.0240270 +v -0.4751441 0.3552879 0.0100286 +v -0.3346936 0.3660741 0.0552506 +v -0.4690791 0.3706409 0.0212847 +v -0.3362036 0.3684957 0.0372393 +v -0.3403298 0.3702683 0.0240536 +v -0.3463948 0.3706409 0.0212847 +v -0.4792702 0.3684957 0.0372393 +v -0.4751441 0.3702683 0.0240536 +v -0.3346936 0.3779860 0.0748951 +v -0.4423352 0.3883603 0.0525349 +v -0.3362041 0.3815009 0.0586860 +v -0.3403298 0.3840739 0.0468204 +v -0.4116642 0.3846143 0.0443288 +v -0.4792702 0.3815009 0.0586860 +v -0.4751441 0.3840739 0.0468204 +v -0.3346936 0.3884263 0.1013267 +v -0.3809931 0.3883603 0.0525349 +v -0.3362041 0.3928990 0.0875436 +v -0.3403298 0.3961734 0.0774536 +v -0.3773057 0.3879793 0.0540926 +v -0.4792702 0.3928990 0.0875436 +v -0.4751441 0.3961734 0.0774536 +v -0.3346936 0.3969932 0.1335305 +v -0.3731387 0.3883603 0.0525349 +v -0.3362041 0.4022523 0.1227028 +v -0.3403298 0.4061022 0.1147761 +v -0.4381686 0.3879793 0.0540926 +v -0.4792702 0.4022523 0.1227028 +v -0.4751441 0.4061022 0.1147761 +v -0.3346936 0.4033581 0.1702686 +v -0.4344808 0.3883603 0.0525349 +v -0.3362041 0.4092012 0.1628121 +v -0.3403298 0.4134787 0.1573537 +v -0.4077369 0.3842627 0.0459500 +v -0.4792702 0.4092012 0.1628121 +v -0.4751441 0.4134787 0.1573537 +v -0.3346936 0.4072758 0.2101295 +v -0.4038097 0.3846143 0.0443288 +v -0.3362041 0.4134787 0.2063308 +v -0.3403298 0.4180192 0.2035500 +v -0.4690791 0.3846142 0.0443282 +v -0.4792702 0.4134787 0.2063308 +v -0.4751441 0.4180192 0.2035500 +v -0.3346936 0.4085964 0.2515811 +v -0.3463948 0.3846142 0.0443282 +v -0.3362041 0.4149202 0.2515860 +v -0.3403298 0.4195496 0.2515904 +v -0.4423352 0.4000159 0.0856369 +v -0.4792702 0.4149202 0.2515860 +v -0.4751441 0.4195496 0.2515904 +v -0.3346936 0.4072686 0.2930301 +v -0.4116642 0.3968611 0.0753343 +v -0.3362041 0.4134705 0.2968390 +v -0.3403298 0.4180107 0.2996275 +v -0.3809931 0.4000159 0.0856364 +v -0.4792702 0.4134705 0.2968390 +v -0.4751441 0.4180107 0.2996275 +v -0.3346936 0.4033436 0.3328839 +v -0.4381686 0.3995438 0.0869352 +v -0.3362041 0.4091853 0.3403507 +v -0.3403298 0.4134619 0.3458162 +v -0.4344808 0.4000159 0.0856364 +v -0.4792702 0.4091853 0.3403507 +v -0.4751441 0.4134619 0.3458162 +v -0.3346936 0.3969722 0.3696116 +v -0.4077369 0.3964138 0.0767136 +v -0.3362041 0.4022294 0.3804486 +v -0.3403298 0.4060778 0.3883813 +v -0.4038097 0.3968611 0.0753343 +v -0.4792702 0.4022294 0.3804481 +v -0.4751441 0.4060778 0.3883813 +v -0.3346936 0.3883995 0.4018007 +v -0.3773057 0.3995438 0.0869352 +v -0.3362041 0.3928699 0.4155915 +v -0.3403298 0.3961424 0.4256869 +v -0.3731387 0.4000159 0.0856369 +v -0.4792702 0.3928699 0.4155915 +v -0.4751441 0.3961424 0.4256875 +v -0.3346936 0.3779546 0.4282150 +v -0.4690791 0.3968611 0.0753349 +v -0.3362036 0.3814665 0.4444300 +v -0.3403298 0.3840374 0.4563000 +v -0.3463948 0.3968611 0.0753349 +v -0.4792702 0.3814665 0.4444300 +v -0.4751441 0.3840374 0.4563000 +v -0.3346936 0.3660390 0.4478388 +v -0.4423352 0.4093532 0.1251129 +v -0.3362036 0.3684576 0.4658545 +v -0.3403298 0.3702279 0.4790434 +v -0.4116642 0.4069108 0.1131113 +v -0.4792702 0.3684576 0.4658545 +v -0.4751441 0.3702279 0.4790434 +v -0.3346936 0.3531109 0.4599187 +v -0.3809931 0.4093532 0.1251134 +v -0.3362036 0.3543427 0.4790428 +v -0.3403298 0.3552448 0.4930429 +v -0.4077369 0.4063846 0.1141949 +v -0.4792702 0.3543427 0.4790428 +v -0.4751441 0.3552448 0.4930429 +v -0.3346936 0.3396666 0.4639897 +v -0.4038097 0.4069108 0.1131113 +v -0.3362036 0.3396650 0.4834873 +v -0.3403298 0.3396636 0.4977609 +v -0.4381686 0.4088078 0.1261024 +v -0.4792702 0.3396650 0.4834873 +v -0.4751441 0.3396636 0.4977609 +v -0.3346936 0.3262232 0.4598958 +v -0.4344808 0.4093532 0.1251134 +v -0.3362036 0.3249879 0.4790178 +v -0.3403298 0.3240835 0.4930163 +v -0.3773057 0.4088078 0.1261024 +v -0.4792702 0.3249879 0.4790178 +v -0.4751441 0.3240835 0.4930163 +v -0.3346936 0.3132972 0.4477942 +v -0.3731387 0.4093532 0.1251134 +v -0.3362036 0.3108755 0.4658061 +v -0.3403298 0.3091028 0.4789912 +v -0.4690791 0.4069108 0.1131113 +v -0.4792698 0.3108755 0.4658061 +v -0.4751441 0.3091028 0.4789912 +v -0.3346936 0.3013851 0.4281498 +v -0.3463948 0.4069108 0.1131113 +v -0.3362036 0.2978703 0.4443588 +v -0.3403298 0.2952973 0.4562244 +v -0.4423352 0.4160129 0.1694476 +v -0.4792698 0.2978703 0.4443588 +v -0.4751441 0.2952973 0.4562244 +v -0.3346936 0.2909450 0.4017181 +v -0.4116642 0.4143771 0.1562076 +v -0.3362036 0.2864720 0.4155013 +v -0.3403298 0.2831977 0.4255913 +v -0.3809931 0.4160129 0.1694476 +v -0.4792698 0.2864720 0.4155013 +v -0.4751441 0.2831977 0.4255913 +v -0.3346936 0.2823779 0.3695143 +v -0.3773057 0.4154155 0.1700903 +v -0.3362036 0.2771188 0.3803426 +v -0.3403298 0.2732690 0.3882688 +v -0.3731387 0.4160129 0.1694476 +v -0.4792698 0.2771188 0.3803420 +v -0.4751441 0.2732690 0.3882688 +v -0.3346936 0.2760132 0.3327763 +v -0.4381686 0.4154155 0.1700903 +v -0.3362036 0.2701700 0.3402327 +v -0.3403298 0.2658925 0.3456912 +v -0.4344808 0.4160129 0.1694476 +v -0.4792698 0.2701700 0.3402327 +v -0.4751441 0.2658925 0.3456912 +v -0.3346936 0.2720953 0.2929154 +v -0.4077369 0.4137925 0.1569535 +v -0.3362036 0.2658927 0.2967140 +v -0.3403298 0.2613519 0.2994949 +v -0.4038097 0.4143771 0.1562076 +v -0.4792698 0.2658927 0.2967140 +v -0.4751441 0.2613519 0.2994949 +v -0.4690791 0.4143771 0.1562076 +v -0.3463948 0.4143771 0.1562076 +v -0.4423352 0.4197397 0.2169362 +v -0.4116642 0.4189730 0.2029666 +v -0.3809931 0.4197397 0.2169362 +v -0.4077369 0.4183523 0.2033466 +v -0.4038097 0.4189730 0.2029666 +v -0.3773053 0.4191130 0.2172070 +v -0.3731387 0.4197397 0.2169362 +v -0.4381686 0.4191130 0.2172070 +v -0.4344808 0.4197397 0.2169362 +v -0.4690791 0.4189728 0.2029666 +v -0.3463948 0.4189728 0.2029666 +v -0.4423352 0.4203900 0.2657541 +v -0.4116642 0.4205219 0.2515915 +v -0.3809931 0.4203900 0.2657541 +v -0.3773053 0.4197582 0.2656426 +v -0.3731387 0.4203900 0.2657541 +v -0.4381686 0.4197582 0.2656426 +v -0.4344808 0.4203900 0.2657541 +v -0.4077369 0.4198890 0.2515909 +v -0.4038097 0.4205219 0.2515915 +v -0.4690791 0.4205217 0.2515915 +v -0.3463948 0.4205217 0.2515915 +v -0.4423352 0.4179388 0.3140250 +v -0.4116642 0.4189642 0.3002136 +v -0.3809931 0.4179386 0.3140245 +v -0.4077369 0.4183437 0.2998325 +v -0.4038097 0.4189642 0.3002136 +v -0.4381686 0.4173262 0.3135352 +v -0.4344808 0.4179386 0.3140245 +v -0.3773053 0.4173262 0.3135352 +v -0.3731387 0.4179388 0.3140250 +v -0.4690791 0.4189640 0.3002136 +v -0.3463948 0.4189640 0.3002136 +v -0.4423352 0.4124804 0.3598935 +v -0.4116642 0.4143600 0.3469650 +v -0.3809931 0.4124804 0.3598935 +v -0.3773053 0.4119105 0.3590454 +v -0.3731387 0.4124804 0.3598935 +v -0.4381686 0.4119105 0.3590454 +v -0.4344808 0.4124804 0.3598935 +v -0.4077369 0.4137754 0.3462180 +v -0.4038097 0.4143600 0.3469650 +v -0.4690791 0.4143600 0.3469644 +v -0.3463948 0.4143600 0.3469644 +v -0.4423352 0.4042244 0.4015980 +v -0.4116642 0.4068861 0.3900482 +v -0.3809931 0.4042244 0.4015980 +v -0.4381686 0.4037192 0.4004231 +v -0.4344808 0.4042244 0.4015980 +v -0.4077369 0.4063601 0.3889641 +v -0.4038097 0.4068861 0.3900482 +v -0.3773053 0.4037192 0.4004231 +v -0.3731387 0.4042244 0.4015980 +v -0.4690791 0.4068860 0.3900477 +v -0.3463948 0.4068860 0.3900477 +v -0.4423352 0.3934884 0.4375346 +v -0.4116642 0.3968297 0.4278078 +v -0.3809931 0.3934884 0.4375346 +v -0.4077369 0.3963824 0.4264280 +v -0.4038097 0.3968297 0.4278078 +v -0.4381686 0.3930672 0.4360792 +v -0.4344808 0.3934884 0.4375346 +v -0.3773053 0.3930672 0.4360792 +v -0.3731387 0.3934884 0.4375346 +v -0.4690791 0.3968296 0.4278073 +v -0.3463948 0.3968296 0.4278073 +v -0.4423352 0.3806846 0.4663236 +v -0.4116642 0.3845771 0.4587933 +v -0.3809931 0.3806846 0.4663236 +v -0.3773053 0.3803639 0.4646421 +v -0.3731387 0.3806846 0.4663236 +v -0.4381686 0.3803639 0.4646421 +v -0.4344808 0.3806846 0.4663236 +v -0.4077369 0.3842259 0.4571709 +v -0.4038097 0.3845771 0.4587933 +v -0.4690791 0.3845771 0.4587927 +v -0.3463948 0.3845771 0.4587927 +v -0.4423352 0.3663053 0.4868570 +v -0.4116642 0.3705997 0.4818134 +v -0.3809931 0.3663054 0.4868570 +v -0.4077369 0.3703577 0.4800106 +v -0.4038097 0.3705997 0.4818134 +v -0.3773053 0.3660970 0.4850151 +v -0.3731387 0.3663053 0.4868570 +v -0.4381686 0.3660970 0.4850151 +v -0.4344808 0.3663054 0.4868570 +v -0.4690791 0.3705997 0.4818128 +v -0.3463948 0.3705997 0.4818128 +v -0.4423352 0.3509030 0.4983470 +v -0.4116642 0.3554340 0.4959831 +v -0.3809931 0.3509032 0.4983475 +v -0.3773053 0.3508154 0.4964153 +v -0.3731387 0.3509030 0.4983470 +v -0.4381686 0.3508154 0.4964153 +v -0.4344808 0.3509032 0.4983475 +v -0.4077369 0.3553108 0.4940699 +v -0.4038097 0.3554340 0.4959831 +v -0.4690791 0.3554340 0.4959831 +v -0.3463948 0.3554340 0.4959831 +v -0.4423352 0.3350698 0.5003520 +v -0.4116642 0.3396633 0.5007587 +v -0.3809931 0.3350698 0.5003520 +v -0.4077369 0.3396634 0.4988080 +v -0.4038097 0.3396633 0.5007587 +v -0.4381686 0.3351060 0.4984046 +v -0.4344808 0.3350698 0.5003520 +v -0.3773053 0.3351060 0.4984046 +v -0.3731387 0.3350698 0.5003520 +v -0.4690791 0.3396633 0.5007587 +v -0.3463948 0.3396633 0.5007587 +v -0.4423352 0.3194138 0.4927945 +v -0.4116642 0.3238934 0.4959564 +v -0.3809931 0.3194138 0.4927945 +v -0.3773053 0.3195725 0.4909057 +v -0.3731387 0.3194138 0.4927945 +v -0.4381686 0.3195725 0.4909057 +v -0.4344808 0.3194138 0.4927945 +v -0.4077369 0.3240170 0.4940433 +v -0.4038097 0.3238934 0.4959564 +v -0.4690791 0.3238934 0.4959559 +v -0.3463948 0.3238934 0.4959559 +v -0.4423352 0.3045369 0.4759646 +v -0.4116642 0.3087302 0.4817601 +v -0.3809931 0.3045369 0.4759646 +v -0.4381686 0.3048121 0.4742080 +v -0.4344808 0.3045369 0.4759646 +v -0.4077369 0.3089725 0.4799584 +v -0.4038097 0.3087302 0.4817601 +v -0.3773053 0.3048121 0.4742080 +v -0.3731387 0.3045369 0.4759646 +v -0.4690791 0.3087302 0.4817601 +v -0.3463948 0.3087304 0.4817601 +v -0.4423352 0.2910108 0.4505099 +v -0.4116642 0.2947568 0.4587166 +v -0.3809931 0.2910108 0.4505099 +v -0.4077369 0.2951084 0.4570948 +v -0.4038097 0.2947568 0.4587166 +v -0.4381686 0.2913919 0.4489523 +v -0.4344808 0.2910108 0.4505099 +v -0.3773053 0.2913919 0.4489523 +v -0.3731387 0.2910108 0.4505099 +v -0.4690791 0.2947568 0.4587166 +v -0.3463948 0.2947570 0.4587161 +v -0.4423352 0.2793551 0.4174079 +v -0.4116642 0.2825100 0.4277105 +v -0.3809931 0.2793551 0.4174085 +v -0.3773053 0.2798275 0.4161096 +v -0.3731387 0.2793551 0.4174079 +v -0.4381686 0.2798275 0.4161102 +v -0.4344808 0.2793551 0.4174085 +v -0.4077369 0.2829575 0.4263312 +v -0.4038097 0.2825100 0.4277105 +v -0.4690791 0.2825100 0.4277105 +v -0.3463948 0.2825100 0.4277105 +v -0.4423352 0.2700181 0.3779314 +v -0.4116642 0.2724603 0.3899335 +v -0.3809931 0.2700181 0.3779320 +v -0.4077369 0.2729865 0.3888500 +v -0.4038097 0.2724603 0.3899335 +v -0.3773053 0.2705634 0.3769425 +v -0.3731387 0.2700181 0.3779314 +v -0.4381686 0.2705634 0.3769425 +v -0.4344808 0.2700181 0.3779314 +v -0.4690791 0.2724603 0.3899335 +v -0.3463948 0.2724603 0.3899329 +v -0.4423352 0.2633581 0.3335972 +v -0.4116642 0.2649943 0.3468372 +v -0.3809931 0.2633581 0.3335972 +v -0.4077369 0.2655788 0.3460913 +v -0.4038097 0.2649943 0.3468372 +v -0.4381686 0.2639555 0.3329546 +v -0.4344808 0.2633581 0.3335972 +v -0.3773053 0.2639557 0.3329546 +v -0.3731387 0.2633582 0.3335972 +v -0.4690791 0.2649943 0.3468372 +v -0.3463948 0.2649943 0.3468372 +v -0.4344808 0.2596315 0.2861086 +v -0.4038097 0.2603983 0.3000782 +v -0.3731387 0.2596315 0.2861086 +v -0.3773053 0.2602582 0.2858379 +v -0.3809931 0.2596315 0.2861086 +v -0.4381686 0.2602582 0.2858379 +v -0.4423352 0.2596315 0.2861086 +v -0.4077369 0.2610189 0.2996982 +v -0.4116642 0.2603983 0.3000782 +v -0.4690791 0.2603983 0.3000782 +v -0.3463948 0.2603983 0.3000782 +v -0.4423352 0.2589813 0.2372913 +v -0.4116642 0.2588494 0.2514539 +v -0.3809931 0.2589813 0.2372913 +v -0.4077369 0.2594821 0.2514545 +v -0.4038097 0.2588494 0.2514539 +v -0.3773053 0.2596131 0.2374027 +v -0.3731387 0.2589813 0.2372913 +v -0.4381686 0.2596131 0.2374027 +v -0.4344808 0.2589813 0.2372913 +v -0.4690791 0.2588494 0.2514539 +v -0.3463948 0.2588494 0.2514539 +v -0.4344808 0.2614325 0.1890203 +v -0.4038097 0.2604070 0.2028318 +v -0.3731387 0.2614325 0.1890203 +v -0.4381686 0.2620451 0.1895096 +v -0.4423352 0.2614325 0.1890203 +v -0.4077369 0.2610275 0.2032129 +v -0.4116642 0.2604070 0.2028318 +v -0.3773053 0.2620451 0.1895096 +v -0.3809931 0.2614325 0.1890203 +v -0.4690791 0.2604070 0.2028318 +v -0.3463948 0.2604072 0.2028318 +v -0.4344808 0.2668909 0.1431513 +v -0.4038097 0.2650112 0.1560804 +v -0.3731387 0.2668911 0.1431513 +v -0.3773053 0.2674606 0.1440000 +v -0.3809931 0.2668909 0.1431513 +v -0.4381686 0.2674606 0.1440000 +v -0.4423352 0.2668909 0.1431513 +v -0.4077369 0.2655957 0.1568274 +v -0.4116642 0.2650112 0.1560804 +v -0.4690791 0.2650112 0.1560804 +v -0.3463948 0.2650114 0.1560804 +v -0.4423352 0.2751467 0.1014474 +v -0.4116642 0.2724852 0.1129972 +v -0.3809931 0.2751467 0.1014474 +v -0.4077369 0.2730112 0.1140812 +v -0.4038097 0.2724852 0.1129972 +v -0.4381686 0.2756519 0.1026223 +v -0.4344808 0.2751467 0.1014474 +v -0.3773053 0.2756519 0.1026223 +v -0.3731387 0.2751467 0.1014474 +v -0.4690791 0.2724852 0.1129972 +v -0.3463948 0.2724852 0.1129972 +v -0.4423352 0.2858829 0.0655102 +v -0.4116642 0.2825416 0.0752376 +v -0.3809931 0.2858829 0.0655102 +v -0.3773053 0.2863040 0.0669667 +v -0.3731387 0.2858829 0.0655102 +v -0.4381686 0.2863040 0.0669667 +v -0.4344808 0.2858829 0.0655102 +v -0.4077369 0.2829888 0.0766174 +v -0.4038097 0.2825416 0.0752376 +v -0.4690791 0.2825416 0.0752376 +v -0.3463948 0.2825416 0.0752376 +v -0.4423352 0.2986865 0.0367217 +v -0.4116642 0.2947940 0.0442521 +v -0.3809931 0.2986865 0.0367217 +v -0.4381686 0.2990075 0.0384033 +v -0.4344808 0.2986865 0.0367217 +v -0.4077369 0.2951454 0.0458744 +v -0.4038097 0.2947940 0.0442521 +v -0.3773053 0.2990075 0.0384033 +v -0.3731387 0.2986865 0.0367217 +v -0.4690791 0.2947940 0.0442521 +v -0.3463948 0.2947940 0.0442521 +v -0.4423352 0.3443013 0.0026933 +v -0.4116642 0.3397079 0.0022861 +v -0.3809931 0.3443013 0.0026933 +v -0.4077369 0.3397077 0.0042368 +v -0.4038097 0.3397079 0.0022861 +v -0.3773053 0.3442652 0.0046408 +v -0.3731387 0.3443013 0.0026933 +v -0.4381686 0.3442652 0.0046408 +v -0.4344808 0.3443013 0.0026933 +v -0.4690791 0.3397079 0.0022861 +v -0.3463948 0.3397079 0.0022861 +v -0.4423352 0.3284680 0.0046979 +v -0.4116642 0.3239371 0.0070623 +v -0.3809931 0.3284680 0.0046979 +v -0.3773053 0.3285558 0.0066295 +v -0.3731387 0.3284680 0.0046979 +v -0.4381686 0.3285558 0.0066295 +v -0.4344808 0.3284680 0.0046979 +v -0.4077369 0.3240604 0.0089755 +v -0.4038097 0.3239371 0.0070623 +v -0.4690791 0.3239371 0.0070623 +v -0.3463948 0.3239371 0.0070623 +v -0.4423352 0.3130657 0.0161878 +v -0.4116642 0.3087715 0.0212320 +v -0.3809931 0.3130657 0.0161878 +v -0.4077369 0.3090136 0.0230348 +v -0.4038097 0.3087715 0.0212320 +v -0.4381686 0.3132741 0.0180298 +v -0.4344808 0.3130657 0.0161878 +v -0.3773053 0.3132741 0.0180298 +v -0.3731387 0.3130657 0.0161878 +v -0.4690791 0.3087715 0.0212320 +v -0.3463948 0.3087715 0.0212320 +v -0.3459660 0.2582845 0.2563883 +v -0.3459660 0.2582854 0.2465185 +v -0.3445835 0.2585430 0.2514539 +v -0.4695074 0.2582854 0.2465185 +v -0.4695074 0.2582845 0.2563883 +v -0.4708904 0.2585430 0.2514539 +v -0.3459660 0.2595407 0.2073317 +v -0.3459660 0.2601661 0.1976517 +v -0.3445835 0.2601065 0.2026475 +v -0.4695074 0.2601661 0.1976517 +v -0.4695074 0.2595407 0.2073317 +v -0.4708904 0.2601065 0.2026475 +v -0.3459660 0.2638768 0.1599731 +v -0.3459660 0.2651027 0.1508552 +v -0.3445835 0.2647282 0.1557189 +v -0.4695074 0.2651027 0.1508552 +v -0.4695074 0.2638768 0.1599731 +v -0.4708904 0.2647282 0.1557189 +v -0.3459660 0.2711262 0.1161325 +v -0.3459660 0.2729054 0.1079274 +v -0.3445835 0.2722302 0.1124725 +v -0.4695074 0.2729054 0.1079274 +v -0.4695074 0.2711262 0.1161325 +v -0.4708904 0.2722302 0.1124725 +v -0.3459660 0.2810103 0.0774949 +v -0.3459660 0.2832746 0.0705174 +v -0.3445835 0.2823249 0.0745694 +v -0.4695074 0.2832746 0.0705174 +v -0.4695074 0.2810103 0.0774949 +v -0.4708904 0.2823249 0.0745694 +v -0.3459660 0.2931494 0.0455450 +v -0.3459660 0.2958116 0.0400637 +v -0.3445835 0.2946237 0.0434665 +v -0.4695074 0.2958116 0.0400637 +v -0.4695074 0.2931494 0.0455450 +v -0.4708904 0.2946237 0.0434665 +v -0.3459660 0.3070766 0.0215109 +v -0.3459660 0.3100346 0.0177367 +v -0.3445835 0.3086542 0.0203594 +v -0.4695074 0.3100346 0.0177367 +v -0.4695074 0.3070766 0.0215109 +v -0.4708904 0.3086542 0.0203594 +v -0.3459660 0.3222572 0.0063164 +v -0.3459660 0.3253970 0.0043934 +v -0.3445835 0.3238773 0.0061353 +v -0.4695074 0.3253970 0.0043934 +v -0.4695074 0.3222572 0.0063164 +v -0.4708904 0.3238773 0.0061353 +v -0.3459660 0.3381075 0.0005442 +v -0.3459660 0.3413086 0.0005469 +v -0.3445835 0.3397079 0.0013418 +v -0.4695074 0.3413086 0.0005469 +v -0.4695074 0.3381073 0.0005442 +v -0.4708904 0.3397079 0.0013418 +v -0.3459660 0.3540183 0.0044173 +v -0.3459660 0.3571579 0.0063463 +v -0.3445835 0.3555376 0.0061620 +v -0.4695079 0.3571579 0.0063457 +v -0.4695074 0.3540183 0.0044173 +v -0.4708904 0.3555376 0.0061620 +v -0.3459660 0.3693784 0.0177867 +v -0.3459660 0.3723356 0.0215663 +v -0.3445835 0.3707582 0.0204116 +v -0.4695079 0.3723356 0.0215663 +v -0.4695079 0.3693784 0.0177867 +v -0.4708904 0.3707582 0.0204116 +v -0.3459665 0.3835974 0.0401382 +v -0.3459665 0.3862586 0.0456243 +v -0.3445835 0.3847845 0.0435426 +v -0.4695079 0.3862586 0.0456243 +v -0.4695079 0.3835974 0.0401382 +v -0.4708904 0.3847845 0.0435426 +v -0.3459665 0.3961290 0.0706131 +v -0.3459665 0.3983920 0.0775944 +v -0.3445835 0.3970778 0.0746662 +v -0.4695079 0.3983920 0.0775944 +v -0.4695079 0.3961290 0.0706131 +v -0.4708904 0.3970778 0.0746662 +v -0.3459665 0.4064913 0.1080411 +v -0.3459665 0.4082693 0.1162489 +v -0.3445835 0.4071656 0.1125867 +v -0.4695079 0.4082693 0.1162489 +v -0.4695079 0.4064913 0.1080411 +v -0.4708904 0.4071656 0.1125867 +v -0.3459665 0.4142866 0.1509818 +v -0.3459665 0.4155107 0.1601019 +v -0.3445835 0.4146601 0.1558461 +v -0.4695079 0.4155107 0.1601019 +v -0.4695079 0.4142866 0.1509818 +v -0.4708904 0.4146601 0.1558461 +v -0.3459665 0.4192147 0.1977865 +v -0.3459665 0.4198384 0.2074677 +v -0.3445835 0.4192735 0.2027817 +v -0.4695079 0.4198384 0.2074677 +v -0.4695079 0.4192147 0.1977865 +v -0.4708904 0.4192735 0.2027817 +v -0.3459665 0.4210869 0.2466566 +v -0.3459665 0.4210860 0.2565269 +v -0.3445835 0.4208284 0.2515909 +v -0.4695079 0.4210860 0.2565269 +v -0.4695079 0.4210869 0.2466566 +v -0.4708904 0.4208284 0.2515909 +v -0.3459665 0.4198305 0.2957136 +v -0.3459665 0.4192052 0.3053937 +v -0.3445835 0.4192648 0.3003979 +v -0.4695079 0.4192052 0.3053937 +v -0.4695079 0.4198305 0.2957136 +v -0.4708904 0.4192648 0.3003979 +v -0.3459665 0.4154945 0.3430723 +v -0.3459665 0.4142684 0.3521902 +v -0.3445835 0.4146432 0.3473260 +v -0.4695079 0.4142684 0.3521902 +v -0.4695079 0.4154945 0.3430723 +v -0.4708904 0.4146432 0.3473260 +v -0.3459665 0.4082449 0.3869129 +v -0.3459665 0.4064658 0.3951179 +v -0.3445835 0.4071409 0.3905729 +v -0.4695079 0.4064658 0.3951179 +v -0.4695079 0.4082449 0.3869129 +v -0.4708904 0.4071409 0.3905729 +v -0.3459665 0.3983608 0.4255505 +v -0.3459665 0.3960966 0.4325274 +v -0.3445835 0.3970463 0.4284760 +v -0.4695079 0.3960966 0.4325274 +v -0.4695079 0.3983608 0.4255505 +v -0.4708904 0.3970463 0.4284760 +v -0.3459665 0.3862218 0.4574999 +v -0.3459665 0.3835597 0.4629812 +v -0.3445835 0.3847475 0.4595789 +v -0.4695074 0.3835597 0.4629812 +v -0.4695074 0.3862218 0.4574999 +v -0.4708904 0.3847475 0.4595789 +v -0.3459665 0.3722946 0.4815339 +v -0.3459665 0.3693366 0.4853086 +v -0.3445835 0.3707171 0.4826860 +v -0.4695074 0.3693366 0.4853086 +v -0.4695074 0.3722946 0.4815339 +v -0.4708904 0.3707171 0.4826860 +v -0.3459665 0.3571140 0.4967290 +v -0.3459665 0.3539740 0.4986520 +v -0.3445835 0.3554938 0.4969100 +v -0.4695074 0.3539740 0.4986520 +v -0.4695074 0.3571140 0.4967290 +v -0.4708904 0.3554938 0.4969100 +v -0.3459665 0.3412638 0.5025006 +v -0.3459665 0.3380625 0.5024979 +v -0.3445835 0.3396633 0.5017036 +v -0.4695074 0.3380625 0.5024979 +v -0.4695074 0.3412637 0.5025006 +v -0.4708904 0.3396633 0.5017036 +v -0.3459665 0.3253529 0.4986275 +v -0.3459665 0.3222133 0.4966991 +v -0.3445835 0.3238336 0.4968829 +v -0.4695074 0.3222133 0.4966991 +v -0.4695074 0.3253529 0.4986275 +v -0.4708904 0.3238336 0.4968829 +v -0.3459660 0.3099926 0.4852581 +v -0.3459660 0.3070355 0.4814785 +v -0.3445835 0.3086130 0.4826332 +v -0.4695074 0.3070355 0.4814785 +v -0.4695074 0.3099926 0.4852581 +v -0.4708904 0.3086130 0.4826332 +v -0.3459660 0.2957737 0.4629067 +v -0.3459660 0.2931125 0.4574205 +v -0.3445835 0.2945866 0.4595022 +v -0.4695074 0.2931125 0.4574205 +v -0.4695074 0.2957737 0.4629067 +v -0.4708904 0.2945866 0.4595022 +v -0.3459660 0.2832421 0.4324312 +v -0.3459660 0.2809793 0.4254499 +v -0.3445835 0.2822933 0.4283787 +v -0.4695074 0.2809793 0.4254504 +v -0.4695074 0.2832421 0.4324312 +v -0.4708904 0.2822933 0.4283787 +v -0.3459660 0.2728798 0.3950043 +v -0.3459660 0.2711020 0.3867960 +v -0.3445835 0.2722055 0.3904581 +v -0.4695074 0.2711020 0.3867960 +v -0.4695074 0.2728798 0.3950043 +v -0.4708904 0.2722055 0.3904581 +v -0.3459660 0.2650845 0.3520630 +v -0.3459660 0.2638604 0.3429429 +v -0.3445835 0.2647111 0.3471988 +v -0.4695074 0.2638604 0.3429429 +v -0.4695074 0.2650845 0.3520630 +v -0.4708904 0.2647111 0.3471993 +v -0.3459660 0.2601564 0.3052578 +v -0.3459660 0.2595327 0.2955772 +v -0.3445835 0.2600977 0.3002625 +v -0.4695074 0.2595327 0.2955772 +v -0.4695074 0.2601564 0.3052578 +v -0.4708904 0.2600977 0.3002625 +v -0.3770930 0.2742415 0.1055201 +v -0.3770930 0.2761681 0.0976439 +v -0.3770930 0.2847371 0.0689603 +v -0.3770930 0.2871252 0.0623944 +v -0.3770930 0.2973445 0.0394167 +v -0.3770930 0.3001021 0.0344128 +v -0.3770930 0.3115791 0.0180232 +v -0.3770930 0.3146003 0.0147748 +v -0.3770930 0.3268938 0.0056042 +v -0.3770930 0.3300625 0.0042347 +v -0.3770930 0.3426999 0.0026346 +v -0.3770930 0.3458945 0.0031979 +v -0.3770930 0.3583904 0.0092299 +v -0.3770930 0.3614879 0.0117042 +v -0.3770930 0.3733619 0.0251366 +v -0.3770930 0.3762433 0.0294262 +v -0.3770930 0.3870394 0.0497432 +v -0.3770930 0.3895940 0.0556839 +v -0.3770930 0.3988971 0.0821041 +v -0.3770930 0.4010266 0.0894665 +v -0.3770930 0.4084791 0.1209755 +v -0.3770930 0.4101021 0.1294780 +v -0.3770930 0.4154176 0.1648639 +v -0.3770930 0.4164714 0.1741787 +v -0.3770930 0.4194459 0.2120823 +v -0.3770930 0.4198899 0.2218521 +v -0.3770930 0.4204089 0.2608165 +v -0.3770930 0.4202262 0.2706656 +v -0.3770930 0.4182696 0.3091934 +v -0.3770930 0.4174673 0.3187436 +v -0.3770930 0.4131105 0.3553544 +v -0.3770930 0.4117194 0.3642385 +v -0.3770930 0.4051299 0.3975248 +v -0.3770930 0.4032033 0.4054015 +v -0.3770930 0.3946341 0.4340850 +v -0.3770930 0.3922460 0.4406509 +v -0.3770930 0.3820267 0.4636287 +v -0.3770930 0.3792690 0.4686321 +v -0.3770930 0.3677921 0.4850216 +v -0.3770930 0.3647710 0.4882706 +v -0.3770930 0.3524775 0.4974412 +v -0.3770930 0.3493088 0.4988102 +v -0.3770930 0.3366713 0.5004102 +v -0.3770930 0.3334768 0.4998470 +v -0.3770930 0.3209807 0.4938149 +v -0.3770930 0.3178833 0.4913412 +v -0.3770930 0.3060093 0.4779082 +v -0.3770930 0.3031278 0.4736186 +v -0.3770930 0.2923319 0.4533016 +v -0.3770930 0.2897772 0.4473615 +v -0.3770930 0.2804743 0.4209407 +v -0.3770930 0.2783445 0.4135783 +v -0.3770930 0.2708920 0.3820693 +v -0.3770930 0.2692691 0.3735668 +v -0.3770930 0.2594814 0.2811927 +v -0.3770930 0.2599252 0.2909625 +v -0.3770930 0.2639535 0.3381809 +v -0.3770930 0.2628998 0.3288662 +v -0.3770930 0.2676519 0.1388069 +v -0.3770930 0.2662607 0.1476910 +v -0.3770930 0.2619039 0.1843013 +v -0.3770930 0.2611016 0.1938514 +v -0.3770930 0.2589625 0.2422284 +v -0.3770930 0.2591451 0.2323792 +v -0.4077369 0.2716563 0.1172220 +v -0.4077369 0.2734346 0.1090213 +v -0.4077369 0.2814614 0.0788823 +v -0.4077369 0.2837244 0.0719087 +v -0.4077369 0.2935040 0.0471771 +v -0.4077369 0.2961646 0.0416990 +v -0.4077369 0.3073212 0.0233246 +v -0.4077369 0.3102774 0.0195520 +v -0.4077369 0.3223822 0.0082421 +v -0.4077369 0.3255204 0.0063202 +v -0.4077369 0.3381082 0.0025085 +v -0.4077369 0.3413076 0.0025112 +v -0.4077369 0.3538948 0.0063446 +v -0.4077369 0.3570327 0.0082720 +v -0.4077369 0.3691354 0.0196026 +v -0.4077369 0.3720909 0.0233800 +v -0.4077369 0.3832442 0.0417730 +v -0.4077369 0.3859039 0.0472559 +v -0.4077369 0.3956790 0.0720038 +v -0.4077369 0.3979408 0.0789813 +v -0.4077369 0.4059622 0.1091338 +v -0.4077369 0.4077389 0.1173378 +v -0.4077369 0.4136982 0.1517354 +v -0.4077369 0.4149218 0.1608506 +v -0.4077369 0.4185902 0.1981720 +v -0.4077369 0.4192135 0.2078482 +v -0.4077369 0.4204498 0.2466587 +v -0.4077369 0.4204487 0.2565236 +v -0.4077369 0.4192056 0.2953325 +v -0.4077369 0.4185805 0.3050072 +v -0.4077369 0.4149055 0.3423226 +v -0.4077369 0.4136804 0.3514356 +v -0.4077369 0.4077149 0.3858233 +v -0.4077369 0.4059366 0.3940241 +v -0.4077369 0.3979100 0.4241630 +v -0.4077369 0.3956467 0.4311367 +v -0.4077369 0.3858672 0.4558683 +v -0.4077369 0.3832065 0.4613463 +v -0.4077369 0.3720500 0.4797202 +v -0.4077369 0.3690938 0.4834928 +v -0.4077369 0.3569889 0.4948028 +v -0.4077369 0.3538508 0.4967247 +v -0.4077369 0.3412631 0.5005363 +v -0.4077369 0.3380634 0.5005336 +v -0.4077369 0.3254763 0.4967007 +v -0.4077369 0.3223385 0.4947734 +v -0.4077369 0.3102358 0.4834428 +v -0.4077369 0.3072803 0.4796648 +v -0.4077369 0.2961269 0.4612719 +v -0.4077369 0.2934671 0.4557889 +v -0.4077369 0.2836921 0.4310410 +v -0.4077369 0.2814303 0.4240635 +v -0.4077369 0.2734090 0.3939110 +v -0.4077369 0.2716323 0.3857070 +v -0.4077369 0.2601578 0.2951966 +v -0.4077369 0.2607810 0.3048723 +v -0.4077369 0.2656730 0.3513089 +v -0.4077369 0.2644494 0.3421943 +v -0.4077369 0.2656909 0.1516098 +v -0.4077369 0.2644656 0.1607223 +v -0.4077369 0.2607907 0.1980377 +v -0.4077369 0.2601656 0.2077128 +v -0.4077369 0.2589216 0.2563861 +v -0.4077369 0.2589224 0.2465212 +v -0.4383809 0.2742415 0.1055201 +v -0.4383809 0.2761681 0.0976439 +v -0.4383809 0.2847371 0.0689603 +v -0.4383809 0.2871252 0.0623944 +v -0.4383809 0.2973445 0.0394167 +v -0.4383809 0.3001021 0.0344128 +v -0.4383809 0.3115791 0.0180232 +v -0.4383809 0.3146003 0.0147748 +v -0.4383809 0.3268938 0.0056042 +v -0.4383809 0.3300625 0.0042347 +v -0.4383809 0.3426999 0.0026346 +v -0.4383809 0.3458945 0.0031979 +v -0.4383809 0.3583904 0.0092299 +v -0.4383809 0.3614879 0.0117042 +v -0.4383809 0.3733619 0.0251366 +v -0.4383809 0.3762433 0.0294262 +v -0.4383809 0.3870394 0.0497432 +v -0.4383809 0.3895940 0.0556839 +v -0.4383809 0.3988971 0.0821041 +v -0.4383809 0.4010266 0.0894665 +v -0.4383809 0.4084791 0.1209755 +v -0.4383809 0.4101021 0.1294780 +v -0.4383809 0.4154176 0.1648639 +v -0.4383809 0.4164714 0.1741787 +v -0.4383809 0.4194459 0.2120823 +v -0.4383809 0.4198899 0.2218521 +v -0.4383809 0.4204089 0.2608165 +v -0.4383809 0.4202262 0.2706656 +v -0.4383809 0.4182696 0.3091934 +v -0.4383809 0.4174673 0.3187436 +v -0.4383809 0.4131105 0.3553544 +v -0.4383809 0.4117194 0.3642385 +v -0.4383809 0.4051299 0.3975248 +v -0.4383809 0.4032033 0.4054015 +v -0.4383809 0.3946341 0.4340850 +v -0.4383809 0.3922460 0.4406509 +v -0.4383809 0.3820267 0.4636287 +v -0.4383809 0.3792690 0.4686321 +v -0.4383809 0.3677921 0.4850216 +v -0.4383809 0.3647710 0.4882706 +v -0.4383809 0.3524775 0.4974412 +v -0.4383809 0.3493088 0.4988102 +v -0.4383809 0.3366713 0.5004107 +v -0.4383809 0.3334768 0.4998470 +v -0.4383809 0.3209807 0.4938149 +v -0.4383809 0.3178833 0.4913412 +v -0.4383809 0.3060093 0.4779082 +v -0.4383809 0.3031278 0.4736186 +v -0.4383809 0.2923319 0.4533016 +v -0.4383809 0.2897772 0.4473615 +v -0.4383809 0.2804741 0.4209407 +v -0.4383809 0.2783445 0.4135783 +v -0.4383809 0.2708919 0.3820693 +v -0.4383809 0.2692691 0.3735668 +v -0.4383809 0.2594814 0.2811927 +v -0.4383809 0.2599252 0.2909625 +v -0.4383809 0.2639535 0.3381809 +v -0.4383809 0.2628998 0.3288662 +v -0.4383809 0.2676519 0.1388069 +v -0.4383809 0.2662607 0.1476910 +v -0.4383809 0.2619039 0.1843013 +v -0.4383809 0.2611016 0.1938514 +v -0.4383809 0.2589625 0.2422284 +v -0.4383809 0.2591451 0.2323792 +v -0.3728969 0.2585089 0.2322661 +v -0.3728969 0.2583263 0.2421174 +v -0.3808061 0.2583263 0.2421174 +v -0.3808061 0.2585089 0.2322667 +v -0.4037821 0.2582852 0.2465196 +v -0.4037821 0.2582845 0.2563866 +v -0.4116913 0.2582845 0.2563866 +v -0.4116913 0.2582852 0.2465196 +v -0.4346678 0.2585089 0.2322667 +v -0.4346678 0.2583263 0.2421174 +v -0.4425765 0.2583263 0.2421174 +v -0.4425765 0.2585089 0.2322661 +v -0.4425765 0.2604846 0.1933599 +v -0.4425765 0.2612872 0.1838076 +v -0.4346678 0.2612872 0.1838082 +v -0.4346678 0.2604847 0.1933599 +v -0.4116913 0.2595407 0.2073296 +v -0.4116913 0.2601659 0.1976528 +v -0.4037821 0.2601659 0.1976528 +v -0.4037821 0.2595407 0.2073296 +v -0.3808061 0.2604847 0.1933599 +v -0.3808061 0.2612872 0.1838082 +v -0.3728969 0.2612872 0.1838076 +v -0.3728969 0.2604846 0.1933599 +v -0.3808061 0.2592945 0.2912360 +v -0.3808061 0.2588503 0.2814646 +v -0.3728969 0.2588503 0.2814640 +v -0.3728969 0.2592945 0.2912360 +v -0.4116913 0.2601562 0.3052562 +v -0.4116913 0.2595327 0.2955783 +v -0.4037821 0.2595327 0.2955783 +v -0.4037821 0.2601562 0.3052562 +v -0.4425765 0.2592945 0.2912360 +v -0.4425765 0.2588503 0.2814640 +v -0.4346678 0.2588503 0.2814646 +v -0.4346678 0.2592945 0.2912360 +v -0.4425765 0.2656867 0.1468374 +v -0.4425765 0.2670783 0.1379517 +v -0.4346678 0.2670783 0.1379517 +v -0.4346678 0.2656867 0.1468374 +v -0.4116913 0.2638768 0.1599714 +v -0.4116913 0.2651023 0.1508568 +v -0.4037821 0.2651023 0.1508568 +v -0.4037821 0.2638768 0.1599714 +v -0.3808061 0.2656867 0.1468374 +v -0.3808061 0.2670783 0.1379522 +v -0.3728969 0.2670783 0.1379517 +v -0.3728969 0.2656867 0.1468374 +v -0.4346678 0.2756595 0.0964603 +v -0.4346678 0.2737326 0.1043381 +v -0.4425770 0.2737324 0.1043381 +v -0.4425770 0.2756597 0.0964598 +v -0.4037821 0.2729052 0.1079280 +v -0.4037821 0.2711266 0.1161309 +v -0.4116913 0.2711266 0.1161309 +v -0.4116913 0.2729052 0.1079280 +v -0.3728969 0.2756597 0.0964598 +v -0.3728969 0.2737324 0.1043381 +v -0.3808061 0.2737326 0.1043381 +v -0.3808061 0.2756595 0.0964603 +v -0.4346678 0.2867013 0.0609276 +v -0.4346678 0.2843128 0.0674951 +v -0.4425770 0.2843128 0.0674951 +v -0.4425770 0.2867014 0.0609271 +v -0.4037821 0.2832742 0.0705185 +v -0.4037821 0.2810107 0.0774933 +v -0.4116913 0.2810107 0.0774933 +v -0.4116913 0.2832742 0.0705185 +v -0.3728969 0.2867014 0.0609271 +v -0.3728969 0.2843128 0.0674951 +v -0.3808061 0.2843128 0.0674946 +v -0.3808061 0.2867013 0.0609276 +v -0.4346678 0.2997793 0.0327192 +v -0.4346678 0.2970211 0.0377237 +v -0.4425770 0.2970211 0.0377243 +v -0.4425770 0.2997793 0.0327192 +v -0.4037821 0.2958111 0.0400648 +v -0.4037821 0.2931497 0.0455439 +v -0.4116913 0.2931497 0.0455439 +v -0.4116913 0.2958111 0.0400648 +v -0.3728969 0.2997793 0.0327192 +v -0.3728969 0.2970211 0.0377243 +v -0.3808061 0.2970211 0.0377237 +v -0.3808061 0.2997793 0.0327192 +v -0.4346678 0.3143907 0.0129193 +v -0.4346678 0.3113690 0.0161688 +v -0.4425770 0.3113689 0.0161688 +v -0.4425770 0.3143908 0.0129193 +v -0.4037821 0.3100342 0.0177367 +v -0.4037821 0.3070771 0.0215104 +v -0.4116913 0.3070771 0.0215104 +v -0.4116913 0.3100342 0.0177367 +v -0.3728969 0.3143908 0.0129193 +v -0.3728969 0.3113689 0.0161688 +v -0.3808061 0.3113690 0.0161688 +v -0.3808061 0.3143907 0.0129193 +v -0.4346678 0.3299742 0.0022894 +v -0.4346678 0.3268050 0.0036584 +v -0.4425770 0.3268048 0.0036584 +v -0.4425770 0.3299744 0.0022894 +v -0.4037821 0.3253966 0.0043934 +v -0.4037821 0.3222577 0.0063153 +v -0.4116913 0.3222577 0.0063153 +v -0.4116913 0.3253966 0.0043934 +v -0.3728969 0.3299744 0.0022894 +v -0.3728969 0.3268048 0.0036584 +v -0.3808061 0.3268050 0.0036584 +v -0.3808061 0.3299742 0.0022894 +v -0.4346678 0.3459310 0.0012369 +v -0.4346678 0.3427362 0.0006731 +v -0.4425770 0.3427360 0.0006736 +v -0.4425770 0.3459312 0.0012369 +v -0.4037821 0.3413083 0.0005469 +v -0.4037821 0.3381080 0.0005442 +v -0.4116913 0.3381080 0.0005442 +v -0.4116913 0.3413083 0.0005469 +v -0.3728969 0.3459312 0.0012369 +v -0.3728969 0.3427360 0.0006736 +v -0.3808061 0.3427362 0.0006731 +v -0.3808061 0.3459310 0.0012369 +v -0.4346678 0.3616478 0.0098029 +v -0.4346678 0.3585498 0.0073281 +v -0.4425770 0.3585497 0.0073281 +v -0.4425770 0.3616478 0.0098029 +v -0.4037826 0.3571573 0.0063452 +v -0.4037821 0.3540190 0.0044173 +v -0.4116913 0.3540190 0.0044173 +v -0.4116913 0.3571573 0.0063452 +v -0.3728969 0.3616478 0.0098029 +v -0.3728969 0.3585497 0.0073281 +v -0.3808061 0.3585498 0.0073281 +v -0.3808061 0.3616478 0.0098029 +v -0.4346678 0.3765207 0.0276576 +v -0.4346678 0.3736387 0.0233675 +v -0.4425770 0.3736386 0.0233670 +v -0.4425770 0.3765207 0.0276576 +v -0.4037826 0.3723353 0.0215658 +v -0.4037826 0.3693791 0.0177873 +v -0.4116913 0.3693791 0.0177873 +v -0.4116913 0.3723353 0.0215658 +v -0.3728969 0.3765207 0.0276576 +v -0.3728969 0.3736386 0.0233670 +v -0.3808061 0.3736387 0.0233675 +v -0.3808061 0.3765207 0.0276576 +v -0.4346678 0.3899778 0.0541159 +v -0.4346678 0.3874228 0.0481747 +v -0.4425770 0.3874226 0.0481742 +v -0.4425770 0.3899780 0.0541159 +v -0.4037826 0.3862583 0.0456233 +v -0.4037826 0.3835980 0.0401392 +v -0.4116918 0.3835980 0.0401392 +v -0.4116918 0.3862583 0.0456233 +v -0.3728969 0.3899780 0.0541159 +v -0.3728969 0.3874226 0.0481742 +v -0.3808061 0.3874228 0.0481747 +v -0.3808061 0.3899778 0.0541159 +v -0.4346678 0.4015024 0.0881601 +v -0.4346678 0.3993725 0.0807961 +v -0.4425770 0.3993723 0.0807955 +v -0.4425770 0.4015025 0.0881601 +v -0.4037826 0.3983917 0.0775938 +v -0.4037826 0.3961294 0.0706142 +v -0.4116918 0.3961294 0.0706142 +v -0.4116918 0.3983917 0.0775938 +v -0.3728969 0.4015025 0.0881601 +v -0.3728969 0.3993723 0.0807955 +v -0.3808061 0.3993725 0.0807961 +v -0.3808061 0.4015024 0.0881601 +v -0.4346678 0.4106514 0.1284820 +v -0.4346678 0.4090282 0.1199784 +v -0.4425770 0.4090282 0.1199784 +v -0.4425770 0.4106514 0.1284826 +v -0.4037826 0.4082691 0.1162478 +v -0.4037826 0.4064919 0.1080421 +v -0.4116918 0.4064919 0.1080421 +v -0.4116918 0.4082691 0.1162478 +v -0.3728969 0.4106514 0.1284826 +v -0.3728969 0.4090282 0.1199784 +v -0.3808061 0.4090282 0.1199784 +v -0.3808061 0.4106514 0.1284820 +v -0.4346678 0.4170730 0.1735328 +v -0.4346678 0.4160192 0.1642159 +v -0.4425770 0.4160191 0.1642159 +v -0.4425770 0.4170730 0.1735333 +v -0.4037826 0.4155107 0.1601003 +v -0.4037826 0.4142868 0.1509835 +v -0.4116918 0.4142868 0.1509835 +v -0.4116918 0.4155107 0.1601003 +v -0.3728969 0.4170730 0.1735333 +v -0.3728969 0.4160191 0.1642159 +v -0.3808061 0.4160192 0.1642159 +v -0.3808061 0.4170730 0.1735328 +v -0.4346678 0.4205210 0.2215803 +v -0.4346678 0.4200768 0.2118089 +v -0.4425770 0.4200766 0.2118083 +v -0.4425770 0.4205208 0.2215808 +v -0.4037826 0.4198384 0.2074666 +v -0.4037826 0.4192149 0.1977881 +v -0.4116918 0.4192149 0.1977881 +v -0.4116918 0.4198384 0.2074666 +v -0.3728969 0.4205208 0.2215808 +v -0.3728969 0.4200766 0.2118083 +v -0.3808061 0.4200768 0.2118089 +v -0.3808061 0.4205210 0.2215803 +v -0.4346678 0.4208624 0.2707787 +v -0.4346678 0.4210449 0.2609279 +v -0.4425770 0.4210449 0.2609274 +v -0.4425770 0.4208622 0.2707792 +v -0.4037826 0.4210860 0.2565253 +v -0.4037826 0.4210869 0.2466587 +v -0.4116918 0.4210869 0.2466587 +v -0.4116918 0.4210860 0.2565253 +v -0.3728969 0.4208622 0.2707792 +v -0.3728969 0.4210449 0.2609274 +v -0.3808061 0.4210449 0.2609279 +v -0.3808061 0.4208624 0.2707787 +v -0.4346678 0.4180841 0.3192372 +v -0.4346678 0.4188866 0.3096854 +v -0.4425770 0.4188866 0.3096849 +v -0.4425770 0.4180839 0.3192372 +v -0.4037826 0.4192052 0.3053926 +v -0.4037826 0.4198305 0.2957153 +v -0.4116918 0.4198305 0.2957153 +v -0.4116918 0.4192052 0.3053926 +v -0.3728969 0.4180839 0.3192372 +v -0.3728969 0.4188866 0.3096849 +v -0.3808061 0.4188866 0.3096854 +v -0.3808061 0.4180841 0.3192372 +v -0.4346678 0.4122930 0.3650932 +v -0.4346678 0.4136844 0.3562079 +v -0.4425770 0.4136844 0.3562074 +v -0.4425770 0.4122928 0.3650937 +v -0.4037826 0.4142688 0.3521886 +v -0.4037826 0.4154943 0.3430739 +v -0.4116918 0.4154943 0.3430739 +v -0.4116918 0.4142688 0.3521886 +v -0.3728969 0.4122928 0.3650937 +v -0.3728969 0.4136844 0.3562074 +v -0.3808061 0.4136844 0.3562079 +v -0.3808061 0.4122930 0.3650932 +v -0.4346678 0.4037116 0.4065851 +v -0.4346678 0.4056386 0.3987073 +v -0.4425770 0.4056388 0.3987067 +v -0.4425770 0.4037116 0.4065851 +v -0.4037826 0.4064659 0.3951169 +v -0.4037826 0.4082448 0.3869145 +v -0.4116918 0.4082448 0.3869145 +v -0.4116918 0.4064659 0.3951169 +v -0.3728969 0.4037116 0.4065851 +v -0.3728969 0.4056388 0.3987067 +v -0.3808061 0.4056386 0.3987073 +v -0.3808061 0.4037116 0.4065851 +v -0.4346678 0.3926699 0.4421178 +v -0.4346678 0.3950583 0.4355502 +v -0.4425770 0.3950583 0.4355502 +v -0.4425770 0.3926697 0.4421178 +v -0.4037826 0.3960969 0.4325269 +v -0.4037826 0.3983605 0.4255516 +v -0.4116918 0.3983605 0.4255516 +v -0.4116918 0.3960969 0.4325269 +v -0.3728969 0.3926697 0.4421178 +v -0.3728969 0.3950583 0.4355502 +v -0.3808061 0.3950583 0.4355502 +v -0.3808061 0.3926699 0.4421178 +v -0.4346678 0.3795921 0.4703256 +v -0.4346678 0.3823501 0.4653211 +v -0.4425770 0.3823501 0.4653211 +v -0.4425770 0.3795919 0.4703262 +v -0.4037821 0.3835601 0.4629806 +v -0.4037821 0.3862214 0.4575010 +v -0.4116918 0.3862214 0.4575010 +v -0.4116918 0.3835601 0.4629806 +v -0.3728969 0.3795919 0.4703262 +v -0.3728969 0.3823501 0.4653211 +v -0.3808061 0.3823501 0.4653211 +v -0.3808061 0.3795921 0.4703256 +v -0.4346678 0.3649805 0.4901256 +v -0.4346678 0.3680021 0.4868760 +v -0.4425770 0.3680023 0.4868760 +v -0.4425770 0.3649803 0.4901256 +v -0.4037821 0.3693371 0.4853081 +v -0.4037821 0.3722940 0.4815350 +v -0.4116918 0.3722940 0.4815350 +v -0.4116918 0.3693371 0.4853081 +v -0.3728969 0.3649803 0.4901256 +v -0.3728969 0.3680023 0.4868760 +v -0.3808061 0.3680021 0.4868760 +v -0.3808061 0.3649805 0.4901256 +v -0.4346678 0.3493968 0.5007560 +v -0.4346678 0.3525662 0.4993865 +v -0.4425770 0.3525662 0.4993865 +v -0.4425770 0.3493968 0.5007560 +v -0.4037821 0.3539745 0.4986514 +v -0.4037821 0.3571134 0.4967295 +v -0.4116918 0.3571134 0.4967295 +v -0.4116918 0.3539745 0.4986514 +v -0.3728969 0.3493968 0.5007560 +v -0.3728969 0.3525662 0.4993865 +v -0.3808061 0.3525662 0.4993865 +v -0.3808061 0.3493968 0.5007560 +v -0.4346678 0.3334400 0.5018085 +v -0.4346678 0.3366351 0.5023718 +v -0.4425770 0.3366351 0.5023718 +v -0.4425770 0.3334400 0.5018080 +v -0.4037821 0.3380631 0.5024984 +v -0.4037821 0.3412631 0.5025006 +v -0.4116918 0.3412631 0.5025006 +v -0.4116918 0.3380631 0.5024984 +v -0.3728969 0.3334400 0.5018080 +v -0.3728969 0.3366351 0.5023718 +v -0.3808061 0.3366351 0.5023718 +v -0.3808061 0.3334400 0.5018085 +v -0.4346678 0.3177233 0.4932424 +v -0.4346678 0.3208213 0.4957167 +v -0.4425770 0.3208213 0.4957167 +v -0.4425770 0.3177232 0.4932424 +v -0.4037821 0.3222136 0.4966996 +v -0.4037821 0.3253522 0.4986275 +v -0.4116918 0.3253522 0.4986275 +v -0.4116918 0.3222136 0.4966996 +v -0.3728969 0.3177232 0.4932424 +v -0.3728969 0.3208213 0.4957167 +v -0.3808061 0.3208213 0.4957167 +v -0.3808061 0.3177233 0.4932424 +v -0.4346678 0.3028504 0.4753872 +v -0.4346678 0.3057324 0.4796778 +v -0.4425765 0.3057326 0.4796778 +v -0.4425765 0.3028504 0.4753872 +v -0.4037821 0.3070359 0.4814790 +v -0.4037821 0.3099922 0.4852575 +v -0.4116913 0.3099922 0.4852575 +v -0.4116913 0.3070359 0.4814790 +v -0.3728969 0.3028504 0.4753872 +v -0.3728969 0.3057326 0.4796778 +v -0.3808061 0.3057324 0.4796778 +v -0.3808061 0.3028504 0.4753872 +v -0.4346678 0.2893933 0.4489294 +v -0.4346678 0.2919484 0.4548707 +v -0.4425765 0.2919484 0.4548707 +v -0.4425765 0.2893931 0.4489289 +v -0.4037821 0.2931129 0.4574216 +v -0.4037821 0.2957732 0.4629056 +v -0.4116913 0.2957732 0.4629056 +v -0.4116913 0.2931129 0.4574216 +v -0.3728969 0.2893931 0.4489289 +v -0.3728969 0.2919485 0.4548707 +v -0.3808061 0.2919484 0.4548707 +v -0.3808061 0.2893933 0.4489294 +v -0.4346678 0.2778688 0.4148847 +v -0.4346678 0.2799989 0.4222488 +v -0.4425765 0.2799989 0.4222493 +v -0.4425765 0.2778688 0.4148847 +v -0.4037821 0.2809795 0.4254515 +v -0.4037821 0.2832416 0.4324301 +v -0.4116913 0.2832416 0.4324301 +v -0.4116913 0.2809795 0.4254515 +v -0.3728969 0.2778688 0.4148847 +v -0.3728969 0.2799989 0.4222493 +v -0.3808061 0.2799989 0.4222488 +v -0.3808061 0.2778688 0.4148847 +v -0.4346678 0.2687198 0.3745628 +v -0.4346678 0.2703431 0.3830664 +v -0.4425765 0.2703431 0.3830669 +v -0.4425765 0.2687198 0.3745623 +v -0.4037821 0.2711022 0.3867971 +v -0.4037821 0.2728793 0.3950027 +v -0.4116913 0.2728793 0.3950027 +v -0.4116913 0.2711022 0.3867971 +v -0.3728969 0.2687198 0.3745623 +v -0.3728969 0.2703431 0.3830669 +v -0.3808061 0.2703431 0.3830664 +v -0.3808061 0.2687198 0.3745628 +v -0.4346678 0.2622981 0.3295120 +v -0.4346678 0.2633521 0.3388289 +v -0.4425765 0.2633521 0.3388289 +v -0.4425765 0.2622981 0.3295115 +v -0.4037821 0.2638604 0.3429445 +v -0.4037821 0.2650844 0.3520614 +v -0.4116913 0.2650844 0.3520614 +v -0.4116913 0.2638604 0.3429445 +v -0.3728969 0.2622981 0.3295115 +v -0.3728969 0.2633521 0.3388289 +v -0.3808061 0.2633521 0.3388289 +v -0.3808061 0.2622981 0.3295120 +v -0.3463948 0.3554778 0.0070889 +v -0.4690791 0.3554778 0.0070889 +v -0.4038097 0.3554780 0.0070889 +v -0.4077369 0.3553542 0.0090021 +v -0.4344808 0.3599573 0.0102509 +v -0.4381686 0.3597984 0.0121391 +v -0.3731387 0.3599573 0.0102509 +v -0.3773053 0.3597984 0.0121391 +v -0.3809931 0.3599573 0.0102509 +v -0.4116642 0.3554780 0.0070889 +v -0.4423352 0.3599573 0.0102509 +v -0.4807803 0.2707749 0.2514642 +v -0.4807803 0.2721027 0.2100153 +v -0.4807803 0.2760277 0.1701609 +v -0.4807803 0.2823989 0.1334338 +v -0.4807803 0.2909718 0.1012441 +v -0.4807803 0.3014165 0.0748304 +v -0.4807803 0.3133320 0.0552060 +v -0.4807803 0.3262603 0.0431262 +v -0.4807803 0.3397045 0.0390552 +v -0.4807803 0.3531479 0.0431490 +v -0.4807803 0.3660741 0.0552506 +v -0.4807803 0.3779860 0.0748951 +v -0.4807803 0.3884263 0.1013267 +v -0.4807803 0.3969932 0.1335305 +v -0.4807803 0.4033581 0.1702686 +v -0.4807803 0.4072758 0.2101295 +v -0.4807803 0.4085964 0.2515811 +v -0.4807803 0.4072686 0.2930301 +v -0.4807803 0.4033436 0.3328839 +v -0.4807803 0.3969722 0.3696116 +v -0.4807803 0.3883995 0.4018007 +v -0.4807803 0.3779546 0.4282150 +v -0.4807803 0.3660390 0.4478388 +v -0.4807803 0.3531109 0.4599187 +v -0.4807803 0.3396666 0.4639897 +v -0.4807803 0.3262232 0.4598958 +v -0.4807803 0.3132971 0.4477942 +v -0.4807803 0.3013851 0.4281503 +v -0.4807803 0.2909450 0.4017181 +v -0.4807803 0.2823779 0.3695143 +v -0.4807803 0.2760132 0.3327763 +v -0.4807803 0.2720953 0.2929154 +v -0.4778087 0.2810546 0.2155129 +v -0.4778087 0.3168228 0.0812098 +v -0.4778087 0.2899687 0.3538854 +v -0.4931835 0.2765057 0.2756331 +v -0.4931835 0.2792248 0.3139158 +v -0.4873774 0.3179938 0.2476216 +v -0.4873774 0.3207129 0.2859036 +v -0.4999995 0.2857242 0.2694092 +v -0.4999995 0.2884432 0.3076918 +v -0.4791946 0.2792248 0.3139158 +v -0.4791651 0.2765057 0.2756331 +v -0.4931835 0.3063639 0.4209956 +v -0.4931835 0.3177584 0.4383610 +v -0.4873774 0.3251838 0.3036056 +v -0.4873774 0.3365782 0.3209710 +v -0.4999995 0.3105456 0.3949119 +v -0.4999995 0.3219401 0.4122773 +v -0.4793987 0.3177584 0.4383610 +v -0.4793426 0.3063639 0.4209956 +v -0.4931835 0.3632344 0.4399920 +v -0.4931835 0.3746747 0.4229148 +v -0.4873774 0.3447270 0.3221312 +v -0.4873774 0.3561672 0.3050534 +v -0.5000000 0.3591222 0.4138034 +v -0.5000000 0.3705625 0.3967261 +v -0.4797785 0.3746747 0.4229148 +v -0.4797176 0.3632344 0.4399920 +v -0.4931835 0.4021444 0.3161655 +v -0.4931835 0.4050794 0.2780351 +v -0.4873774 0.3608210 0.2859281 +v -0.4873774 0.3637560 0.2477977 +v -0.5000000 0.3929626 0.3094468 +v -0.5000000 0.3958975 0.2713164 +v -0.4799113 0.4050794 0.2780351 +v -0.4798899 0.4021444 0.3161655 +v -0.4931835 0.3954395 0.1439647 +v -0.4931835 0.3876152 0.1130803 +v -0.4873774 0.3619691 0.2245737 +v -0.4873774 0.3541447 0.1936899 +v -0.5000000 0.3880026 0.1618759 +v -0.5000000 0.3801782 0.1309916 +v -0.4797842 0.3876152 0.1130803 +v -0.4798104 0.3954395 0.1439647 +v -0.4931835 0.3478638 0.0523419 +v -0.4931835 0.3351530 0.0522680 +v -0.4873774 0.3477830 0.1832900 +v -0.4873774 0.3350725 0.1832156 +v -0.5000000 0.3478458 0.0814381 +v -0.5000000 0.3351352 0.0813642 +v -0.4795306 0.3351530 0.0522680 +v -0.4796396 0.3478638 0.0523419 +v -0.4931835 0.2941479 0.1120283 +v -0.4931835 0.2862417 0.1427137 +v -0.4873774 0.3274031 0.1934795 +v -0.4873774 0.3194971 0.2241654 +v -0.4999995 0.3015371 0.1301261 +v -0.4999995 0.2936311 0.1608120 +v -0.4791860 0.2864704 0.1418264 +v -0.4792074 0.2862417 0.1427137 +v -0.4792512 0.2941479 0.1120283 +v -0.4856156 0.2755246 0.2955837 +v -0.4856156 0.2890003 0.1216986 +v -0.4856156 0.3414955 0.0457668 +v -0.4856156 0.3934800 0.1249666 +v -0.4856156 0.4058087 0.2996591 +v -0.4856156 0.3691976 0.4382969 +v -0.4856156 0.3112158 0.4364832 +v -0.4783032 0.3998128 0.2147001 +v -0.4783370 0.3907325 0.3567489 +v -0.4791180 0.3986267 0.3268557 +v -0.4783532 0.3831291 0.3855423 +v -0.4791703 0.3752084 0.4155355 +v -0.4783941 0.3516826 0.4377494 +v -0.4779701 0.3396691 0.4373732 +v -0.4783151 0.3277025 0.4369991 +v -0.4778168 0.2973836 0.3818774 +v -0.4786949 0.3049456 0.4117304 +v -0.4778087 0.2967532 0.3793884 +v -0.4784017 0.2827638 0.3241618 +v -0.4778087 0.2892669 0.3498345 +v -0.4778087 0.2923342 0.1910026 +v -0.4778087 0.2842243 0.1833276 +v -0.4778087 0.2900084 0.2210121 +v -0.4778087 0.2816992 0.2159092 +v -0.4778087 0.3109393 0.1187981 +v -0.4778087 0.3200915 0.1055597 +v -0.4778087 0.3168503 0.0814148 +v -0.4778087 0.3156010 0.0832219 +v -0.4778087 0.3294138 0.0920756 +v -0.4778087 0.3173010 0.0807629 +v -0.4778087 0.3597046 0.1026250 +v -0.4778087 0.3689263 0.1166746 +v -0.4778087 0.3915073 0.2197862 +v -0.4778087 0.3892806 0.1882331 +v -0.4778087 0.3836632 0.3421763 +v -0.4778087 0.3771127 0.3669819 +v -0.4778087 0.3499976 0.4115917 +v -0.4778087 0.3396714 0.4112688 +v -0.4778087 0.2901819 0.3534466 +v -0.4778087 0.2972420 0.3389100 +v -0.4778087 0.3034166 0.3632860 +v -0.4797885 0.2755246 0.2955837 +v -0.4791503 0.2788571 0.3087395 +v -0.4795134 0.2759127 0.2905776 +v -0.4789257 0.2800304 0.3133715 +v -0.4781209 0.2789432 0.2514713 +v -0.4778087 0.2805785 0.2303698 +v -0.4778249 0.2844139 0.1808794 +v -0.4791165 0.2767759 0.2794378 +v -0.4779853 0.3061842 0.0968431 +v -0.4789671 0.2771019 0.2752308 +v -0.4783503 0.3277145 0.0656999 +v -0.4778087 0.2876473 0.2514784 +v -0.4787839 0.3519497 0.0616942 +v -0.4781276 0.3629537 0.0784588 +v -0.4778087 0.2908819 0.3138021 +v -0.4782537 0.3736721 0.0947891 +v -0.4791870 0.3849647 0.1119935 +v -0.4778087 0.2892041 0.3071780 +v -0.4786211 0.3972291 0.1780898 +v -0.4787682 0.4024152 0.2515757 +v -0.4778087 0.2862872 0.2690292 +v -0.4778087 0.3951029 0.2707347 +v -0.4784878 0.3958975 0.2713164 +v -0.4782780 0.3929626 0.3094468 +v -0.4778087 0.3924126 0.3090439 +v -0.4797861 0.3944535 0.1387601 +v -0.4797690 0.3888327 0.1178864 +v -0.4856156 0.2788571 0.3087395 +v -0.4804681 0.3934800 0.1249666 +v -0.4794730 0.3868647 0.1148875 +v -0.4856156 0.2767759 0.2794378 +v -0.4797324 0.3945819 0.1405792 +v -0.4856156 0.2771019 0.2752308 +v -0.4782875 0.2857242 0.2694092 +v -0.4795943 0.3949107 0.1452380 +v -0.4856156 0.2800304 0.3133715 +v -0.4784564 0.2884432 0.3076918 +v -0.4778087 0.3786420 0.1314771 +v -0.4778087 0.3794595 0.1327221 +v -0.4778087 0.3875050 0.1630742 +v -0.4795001 0.3148028 0.4365957 +v -0.4793316 0.3166377 0.4366528 +v -0.4792041 0.3180252 0.4366963 +v -0.4790770 0.3067239 0.4187502 +v -0.4856156 0.3888327 0.1178864 +v -0.4856156 0.3945819 0.1405792 +v -0.4793250 0.3078766 0.4233008 +v -0.4800431 0.3112158 0.4364832 +v -0.4778087 0.3293858 0.4109469 +v -0.4856156 0.3949107 0.1452380 +v -0.4783337 0.3880026 0.1618759 +v -0.4778087 0.3221895 0.4107218 +v -0.4856156 0.3868647 0.1148875 +v -0.4778087 0.3099002 0.3888815 +v -0.4778087 0.3108875 0.3927791 +v -0.4785664 0.3801782 0.1309916 +v -0.4856156 0.3166377 0.4366528 +v -0.4794706 0.3369934 0.0522783 +v -0.4797980 0.3397036 0.0483585 +v -0.4792484 0.3351516 0.0549429 +v -0.4856156 0.3078766 0.4233008 +v -0.4793097 0.3478618 0.0554659 +v -0.4856156 0.3067239 0.4187502 +v -0.4801293 0.3414955 0.0457668 +v -0.4795748 0.3458035 0.0523300 +v -0.4778087 0.3351338 0.0838020 +v -0.4778087 0.3502372 0.0882014 +v -0.4778087 0.3478438 0.0845550 +v -0.4784498 0.3105456 0.3949119 +v -0.4856156 0.3180252 0.4366963 +v -0.4782765 0.3219401 0.4122773 +v -0.4856156 0.3369934 0.0522783 +v -0.4803744 0.3691976 0.4382969 +v -0.4796738 0.3647394 0.4381577 +v -0.4797452 0.3723392 0.4264008 +v -0.4793830 0.3741471 0.4195543 +v -0.4856156 0.3458035 0.0523300 +v -0.4856156 0.3478618 0.0554659 +v -0.4794973 0.3629377 0.4381011 +v -0.4786454 0.3478458 0.0814381 +v -0.4796476 0.3644689 0.4381490 +v -0.4856156 0.3351516 0.0549429 +v -0.4784683 0.3351352 0.0813642 +v -0.4788172 0.2871915 0.1450395 +v -0.4778087 0.3702890 0.3928220 +v -0.4789914 0.2948563 0.1132282 +v -0.4790128 0.2947191 0.1134267 +v -0.4778087 0.3700760 0.3936283 +v -0.4778087 0.3588180 0.4118674 +v -0.4791979 0.2878578 0.1364419 +v -0.4792436 0.2932344 0.1155742 +v -0.4799013 0.2890003 0.1216986 +v -0.4856156 0.3723392 0.4264008 +v -0.4856156 0.3644689 0.4381490 +v -0.4841317 0.3677244 0.4332896 +v -0.4856156 0.3629377 0.4381011 +v -0.4783851 0.3591222 0.4138034 +v -0.4778087 0.2945075 0.1629584 +v -0.4778087 0.3021203 0.1315543 +v -0.4856156 0.3741471 0.4195543 +v -0.4787415 0.3705625 0.3967261 +v -0.4798323 0.4046636 0.2834359 +v -0.4801117 0.4052535 0.2917927 +v -0.4856156 0.2878578 0.1364419 +v -0.4796315 0.4042392 0.2774202 +v -0.4805276 0.4058087 0.2996591 +v -0.4798647 0.4024302 0.3124527 +v -0.4796943 0.4015623 0.3157398 +v -0.4856156 0.2932344 0.1155742 +v -0.4841488 0.2910092 0.1242098 +v -0.4778087 0.3937503 0.2515681 +v -0.4856156 0.2947191 0.1134267 +v -0.4778087 0.3904642 0.3164226 +v -0.4784236 0.3015371 0.1301261 +v -0.4856156 0.2871915 0.1450395 +v -0.4787439 0.2936311 0.1608120 +v -0.4856156 0.4046636 0.2834359 +v -0.4856156 0.4024302 0.3124527 +v -0.4856156 0.4015623 0.3157398 +v -0.4856156 0.4042392 0.2774202 +v -0.4788529 0.3212748 0.2988751 +v -0.4788529 0.3600580 0.3000434 +v -0.4788529 0.3650524 0.2354912 +v -0.4788529 0.3302745 0.1825555 +v -0.4788529 0.3315631 0.1825947 +v -0.4788529 0.3166906 0.2340341 +v -0.4788529 0.3517976 0.1832041 +v -0.4788529 0.3405751 0.3282518 +v -0.4778087 0.3700444 0.3934271 +v -0.4778087 0.3702507 0.3926453 +v -0.4778087 0.3499843 0.4113889 +v -0.4778087 0.3587861 0.4116640 +v -0.4914755 0.3700444 0.3934271 +v -0.4788529 0.3562469 0.3055612 +v -0.4844791 0.3515403 0.3655199 +v -0.4914755 0.3587861 0.4116640 +v -0.4788529 0.3447409 0.3222203 +v -0.4778087 0.3936831 0.2515681 +v -0.4778087 0.3914430 0.2198258 +v -0.4778087 0.3950320 0.2706830 +v -0.4778087 0.3923416 0.3089923 +v -0.4778087 0.3904009 0.3163416 +v -0.4778087 0.3836084 0.3420638 +v -0.4914755 0.3950320 0.2706830 +v -0.4788529 0.3640817 0.2480359 +v -0.4914755 0.3923416 0.3089923 +v -0.4778087 0.2900729 0.2210518 +v -0.4788529 0.3611324 0.2861559 +v -0.4778087 0.2923955 0.1910809 +v -0.4778087 0.3688896 0.1168447 +v -0.4778087 0.3785928 0.1316282 +v -0.4778087 0.3794020 0.1328607 +v -0.4778087 0.3892189 0.1883119 +v -0.4778087 0.3109763 0.1189683 +v -0.4778087 0.3874475 0.1632123 +v -0.4778087 0.3201167 0.1057473 +v -0.4778087 0.3294268 0.0922806 +v -0.4778087 0.3596794 0.1028131 +v -0.4914755 0.3794020 0.1328607 +v -0.4778087 0.3770659 0.3668378 +v -0.4778087 0.3396714 0.4110660 +v -0.4778087 0.2972969 0.3387974 +v -0.4778087 0.3034635 0.3631419 +v -0.4778087 0.2877148 0.2514784 +v -0.4778087 0.2909450 0.3137217 +v -0.4788529 0.3543378 0.1932251 +v -0.4778087 0.2892753 0.3071296 +v -0.4914755 0.3874475 0.1632123 +v -0.4788529 0.3621652 0.2241018 +v -0.4778087 0.3351337 0.0840260 +v -0.4778087 0.2863585 0.2689813 +v -0.4778087 0.3478437 0.0847806 +v -0.4778087 0.3502240 0.0884069 +v -0.4914755 0.2892753 0.3071296 +v -0.4914755 0.3351337 0.0840260 +v -0.4788529 0.3203740 0.2861325 +v -0.4788529 0.3176667 0.2478423 +v -0.4914755 0.2863585 0.2689813 +v -0.4778087 0.3293986 0.4107447 +v -0.4788529 0.3350728 0.1827002 +v -0.4788529 0.3477832 0.1830835 +v -0.4914755 0.3478437 0.0847806 +v -0.4778087 0.3222219 0.4105201 +v -0.4778087 0.3099388 0.3887043 +v -0.4778087 0.3109199 0.3925774 +v -0.4778087 0.2945642 0.1630976 +v -0.4778087 0.3021776 0.1316951 +v -0.4914755 0.3222219 0.4105201 +v -0.4788529 0.3364241 0.3219333 +v -0.4914755 0.2945642 0.1630976 +v -0.4914755 0.3109199 0.3925774 +v -0.4788529 0.3193742 0.2238642 +v -0.4788529 0.3273962 0.1934627 +v -0.4844239 0.3152984 0.1638315 +v -0.4914755 0.3021776 0.1316951 +v -0.4788529 0.3250265 0.3045853 +v -0.4842683 0.3304813 0.2766879 +v -0.4842683 0.3280567 0.2423936 +v -0.4842683 0.3352412 0.2151666 +v -0.4842683 0.3466249 0.2155096 +v -0.4842683 0.3536353 0.2431646 +v -0.4842683 0.3509938 0.2773060 +v -0.4842683 0.3406893 0.2922254 +v -0.4893748 0.3242104 0.2395649 +v -0.4893748 0.3273659 0.2841960 +v -0.4893748 0.3335604 0.2041317 +v -0.4893748 0.3483751 0.2045780 +v -0.4893748 0.3574987 0.2405680 +v -0.4893748 0.3540610 0.2850001 +v -0.4893748 0.3406507 0.3044167 +v -0.4893748 0.3254864 0.2405033 +v -0.4893748 0.3283994 0.2817054 +v -0.4893748 0.3341180 0.2077922 +v -0.4893748 0.3477945 0.2082038 +v -0.4893748 0.3562171 0.2414292 +v -0.4893748 0.3530437 0.2824481 +v -0.4893748 0.3406636 0.3003729 +v -0.4747914 0.3350728 0.1827002 +v -0.4754925 0.3179938 0.2476216 +v -0.4751412 0.3350725 0.1832156 +v -0.4749318 0.3477830 0.1832900 +v -0.4755177 0.3207129 0.2859036 +v -0.4747914 0.3477832 0.1830835 +v -0.4755339 0.3251838 0.3036056 +v -0.4747914 0.3193742 0.2238642 +v -0.4755201 0.3365782 0.3209710 +v -0.4751203 0.3194971 0.2241654 +v -0.4748590 0.3447270 0.3221312 +v -0.4748095 0.3274031 0.1934795 +v -0.4751746 0.3561672 0.3050534 +v -0.4747914 0.3273962 0.1934627 +v -0.4754615 0.3608210 0.2859281 +v -0.4754925 0.3637560 0.2477977 +v -0.4747914 0.3212747 0.2988745 +v -0.4747914 0.3212748 0.2988751 +v -0.4747914 0.3203740 0.2861325 +v -0.4753121 0.3619691 0.2245737 +v -0.4747914 0.3176667 0.2478423 +v -0.4753040 0.3541447 0.1936899 +v -0.4747914 0.3166906 0.2340341 +v -0.4747914 0.3166906 0.2340341 +v -0.4747914 0.3302745 0.1825555 +v -0.4747914 0.3517976 0.1832041 +v -0.4747914 0.3517976 0.1832041 +v -0.4747914 0.3364241 0.3219333 +v -0.4747914 0.3302745 0.1825555 +v -0.4747914 0.3621652 0.2241018 +v -0.4747914 0.3250265 0.3045853 +v -0.4747914 0.3562469 0.3055612 +v -0.4747914 0.3650524 0.2354912 +v -0.4747914 0.3650524 0.2354912 +v -0.4747914 0.3543378 0.1932251 +v -0.4747914 0.3611324 0.2861559 +v -0.4747914 0.3447409 0.3222203 +v -0.4747914 0.3640817 0.2480359 +v -0.4747914 0.3600580 0.3000434 +v -0.4747914 0.3600580 0.3000434 +v -0.4747914 0.3405751 0.3282518 +v -0.4747914 0.3405751 0.3282518 +v 0.3346936 -0.3728763 0.2509206 +v 0.3362036 -0.3792001 0.2509151 +v 0.3403298 -0.3838295 0.2509113 +v 0.4792698 -0.3792001 0.2509151 +v 0.4751436 -0.3838295 0.2509113 +v 0.3346936 -0.3715483 0.2094711 +v 0.3362036 -0.3777504 0.2056621 +v 0.3403298 -0.3822906 0.2028736 +v 0.4792698 -0.3777504 0.2056621 +v 0.4751436 -0.3822906 0.2028736 +v 0.3346936 -0.3676235 0.1696173 +v 0.3362036 -0.3734652 0.1621510 +v 0.3403298 -0.3777416 0.1566850 +v 0.4792698 -0.3734652 0.1621510 +v 0.4751436 -0.3777416 0.1566850 +v 0.3346936 -0.3612521 0.1328896 +v 0.3362036 -0.3665093 0.1220531 +v 0.3403298 -0.3703577 0.1141198 +v 0.4792698 -0.3665093 0.1220531 +v 0.4751436 -0.3703577 0.1141198 +v 0.3346936 -0.3526794 0.1007004 +v 0.3362036 -0.3571498 0.0869096 +v 0.3403298 -0.3604223 0.0768142 +v 0.4792698 -0.3571498 0.0869096 +v 0.4751436 -0.3604223 0.0768142 +v 0.3346936 -0.3422345 0.0742867 +v 0.3362036 -0.3457465 0.0580717 +v 0.3403298 -0.3483173 0.0462012 +v 0.4423352 -0.2688170 0.0265366 +v 0.4792698 -0.3457464 0.0580712 +v 0.4751436 -0.3483173 0.0462012 +v 0.3346936 -0.3303191 0.0546623 +v 0.4116642 -0.2730103 0.0207405 +v 0.3362036 -0.3327375 0.0366467 +v 0.3403298 -0.3345080 0.0234583 +v 0.3809931 -0.2688170 0.0265360 +v 0.4792698 -0.3327375 0.0366467 +v 0.4751436 -0.3345079 0.0234583 +v 0.3346936 -0.3173908 0.0425825 +v 0.4077369 -0.2732526 0.0225428 +v 0.3362036 -0.3186228 0.0234583 +v 0.3403298 -0.3195247 0.0094588 +v 0.4038097 -0.2730103 0.0207405 +v 0.4792698 -0.3186228 0.0234583 +v 0.4751436 -0.3195247 0.0094588 +v 0.3346936 -0.3039467 0.0385115 +v 0.4381682 -0.2690922 0.0282926 +v 0.3362036 -0.3039449 0.0190138 +v 0.3403298 -0.3039437 0.0047403 +v 0.4344808 -0.2688170 0.0265360 +v 0.4792698 -0.3039449 0.0190138 +v 0.4751436 -0.3039437 0.0047403 +v 0.3346936 -0.2905033 0.0426053 +v 0.3773053 -0.2690922 0.0282926 +v 0.3362036 -0.2892678 0.0234833 +v 0.3403298 -0.2883634 0.0094849 +v 0.3731387 -0.2688170 0.0265366 +v 0.4792698 -0.2892678 0.0234833 +v 0.4751436 -0.2883634 0.0094849 +v 0.3346936 -0.2775771 0.0547069 +v 0.4690791 -0.2730103 0.0207405 +v 0.3362036 -0.2751554 0.0366951 +v 0.3403298 -0.2733827 0.0235100 +v 0.3463948 -0.2730103 0.0207411 +v 0.4792698 -0.2751554 0.0366951 +v 0.4751436 -0.2733827 0.0235100 +v 0.3346936 -0.2656652 0.0743508 +v 0.4423352 -0.2552909 0.0519907 +v 0.3362036 -0.2621504 0.0581418 +v 0.3403298 -0.2595773 0.0462762 +v 0.4116642 -0.2590369 0.0437846 +v 0.4792698 -0.2621504 0.0581418 +v 0.4751436 -0.2595773 0.0462762 +v 0.3346936 -0.2552249 0.1007825 +v 0.3809931 -0.2552909 0.0519907 +v 0.3362036 -0.2507521 0.0869994 +v 0.3403298 -0.2474778 0.0769094 +v 0.3773053 -0.2556718 0.0535484 +v 0.4792698 -0.2507521 0.0869994 +v 0.4751436 -0.2474778 0.0769094 +v 0.3346936 -0.2466578 0.1329863 +v 0.3731387 -0.2552909 0.0519907 +v 0.3362036 -0.2413989 0.1221586 +v 0.3403298 -0.2375489 0.1142318 +v 0.4381682 -0.2556718 0.0535484 +v 0.4792698 -0.2413989 0.1221586 +v 0.4751436 -0.2375489 0.1142318 +v 0.3346936 -0.2402931 0.1697249 +v 0.4344808 -0.2552909 0.0519907 +v 0.3362036 -0.2344500 0.1622685 +v 0.3403298 -0.2301726 0.1568095 +v 0.4077369 -0.2593885 0.0454063 +v 0.4792698 -0.2344500 0.1622685 +v 0.4751436 -0.2301726 0.1568095 +v 0.3346936 -0.2363752 0.2095858 +v 0.4038097 -0.2590369 0.0437846 +v 0.3362036 -0.2301726 0.2057866 +v 0.3403298 -0.2256320 0.2030063 +v 0.4690791 -0.2590369 0.0437846 +v 0.4792698 -0.2301726 0.2057866 +v 0.4751436 -0.2256320 0.2030063 +v 0.3346936 -0.2350549 0.2510369 +v 0.3463948 -0.2590369 0.0437846 +v 0.3362036 -0.2287311 0.2510424 +v 0.3403298 -0.2241016 0.2510462 +v 0.4423352 -0.2436352 0.0850927 +v 0.4792698 -0.2287311 0.2510424 +v 0.4751436 -0.2241016 0.2510462 +v 0.3346936 -0.2363826 0.2924859 +v 0.4116642 -0.2467899 0.0747907 +v 0.3362036 -0.2301807 0.2962954 +v 0.3403298 -0.2256405 0.2990839 +v 0.3809931 -0.2436352 0.0850927 +v 0.4792698 -0.2301807 0.2962954 +v 0.4751436 -0.2256405 0.2990833 +v 0.3346936 -0.2403076 0.3323402 +v 0.4381682 -0.2441074 0.0863910 +v 0.3362036 -0.2344657 0.3398065 +v 0.3403298 -0.2301893 0.3452725 +v 0.4344808 -0.2436352 0.0850927 +v 0.4792698 -0.2344657 0.3398065 +v 0.4751436 -0.2301893 0.3452725 +v 0.3346936 -0.2466788 0.3690674 +v 0.4077369 -0.2472375 0.0761700 +v 0.3362036 -0.2414218 0.3799044 +v 0.3403298 -0.2375732 0.3878376 +v 0.4038097 -0.2467899 0.0747907 +v 0.4792698 -0.2414217 0.3799044 +v 0.4751436 -0.2375732 0.3878376 +v 0.3346936 -0.2552517 0.4012565 +v 0.3773053 -0.2441074 0.0863910 +v 0.3362036 -0.2507812 0.4150478 +v 0.3403298 -0.2475086 0.4251433 +v 0.3731387 -0.2436352 0.0850927 +v 0.4792698 -0.2507812 0.4150478 +v 0.4751436 -0.2475086 0.4251433 +v 0.3346936 -0.2656966 0.4276713 +v 0.4690791 -0.2467899 0.0747907 +v 0.3362036 -0.2621846 0.4438858 +v 0.3403298 -0.2596137 0.4557558 +v 0.3463948 -0.2467899 0.0747907 +v 0.4792698 -0.2621846 0.4438858 +v 0.4751436 -0.2596137 0.4557558 +v 0.3346936 -0.2776120 0.4472952 +v 0.4423352 -0.2342980 0.1245692 +v 0.3362036 -0.2751937 0.4653108 +v 0.3403298 -0.2734231 0.4784992 +v 0.4116642 -0.2367404 0.1125677 +v 0.4792698 -0.2751937 0.4653108 +v 0.4751436 -0.2734231 0.4784992 +v 0.3346936 -0.2905404 0.4593744 +v 0.3809931 -0.2342980 0.1245692 +v 0.3362036 -0.2893083 0.4784992 +v 0.3403298 -0.2884064 0.4924987 +v 0.4077369 -0.2372664 0.1136512 +v 0.4792698 -0.2893083 0.4784992 +v 0.4751436 -0.2884064 0.4924987 +v 0.3346936 -0.3039844 0.4634460 +v 0.4038097 -0.2367404 0.1125677 +v 0.3362036 -0.3039862 0.4829437 +v 0.3403298 -0.3039874 0.4972172 +v 0.4381682 -0.2348433 0.1255587 +v 0.4792698 -0.3039862 0.4829437 +v 0.4751436 -0.3039874 0.4972172 +v 0.3346936 -0.3174280 0.4593516 +v 0.4344808 -0.2342980 0.1245692 +v 0.3362036 -0.3186634 0.4784742 +v 0.3403298 -0.3195678 0.4924726 +v 0.3773053 -0.2348433 0.1255587 +v 0.4792698 -0.3186634 0.4784742 +v 0.4751436 -0.3195678 0.4924726 +v 0.3346936 -0.3303540 0.4472506 +v 0.3731387 -0.2342980 0.1245692 +v 0.3362036 -0.3327756 0.4652619 +v 0.3403298 -0.3345484 0.4784475 +v 0.4690791 -0.2367404 0.1125677 +v 0.4792698 -0.3327756 0.4652619 +v 0.4751441 -0.3345484 0.4784475 +v 0.3346936 -0.3422659 0.4276061 +v 0.3463948 -0.2367404 0.1125677 +v 0.3362036 -0.3457808 0.4438151 +v 0.3403298 -0.3483538 0.4556807 +v 0.4423352 -0.2276382 0.1689040 +v 0.4792698 -0.3457808 0.4438151 +v 0.4751441 -0.3483538 0.4556807 +v 0.3346936 -0.3527062 0.4011739 +v 0.4116642 -0.2292742 0.1556639 +v 0.3362036 -0.3571790 0.4149576 +v 0.3403298 -0.3604533 0.4250476 +v 0.3809931 -0.2276382 0.1689040 +v 0.4792698 -0.3571790 0.4149576 +v 0.4751441 -0.3604533 0.4250476 +v 0.3346936 -0.3612733 0.3689701 +v 0.3773053 -0.2282356 0.1695460 +v 0.3362036 -0.3665322 0.3797984 +v 0.3403298 -0.3703821 0.3877251 +v 0.3731387 -0.2276382 0.1689040 +v 0.4792698 -0.3665322 0.3797984 +v 0.4751441 -0.3703821 0.3877251 +v 0.3346936 -0.3676380 0.3322320 +v 0.4381682 -0.2282356 0.1695460 +v 0.3362036 -0.3734809 0.3396890 +v 0.3403298 -0.3777586 0.3451475 +v 0.4344808 -0.2276382 0.1689040 +v 0.4792698 -0.3734809 0.3396890 +v 0.4751441 -0.3777586 0.3451475 +v 0.3346936 -0.3715557 0.2923717 +v 0.4077369 -0.2298587 0.1564099 +v 0.3362036 -0.3777584 0.2961703 +v 0.3403298 -0.3822991 0.2989507 +v 0.4038097 -0.2292742 0.1556639 +v 0.4792698 -0.3777584 0.2961703 +v 0.4751436 -0.3822991 0.2989507 +v 0.4690791 -0.2292742 0.1556634 +v 0.3463948 -0.2292742 0.1556639 +v 0.4423352 -0.2239114 0.2163920 +v 0.4116642 -0.2246782 0.2024224 +v 0.3809931 -0.2239114 0.2163920 +v 0.4077369 -0.2252989 0.2028024 +v 0.4038097 -0.2246782 0.2024224 +v 0.3773053 -0.2245381 0.2166628 +v 0.3731387 -0.2239114 0.2163926 +v 0.4381682 -0.2245381 0.2166628 +v 0.4344808 -0.2239114 0.2163920 +v 0.4690791 -0.2246782 0.2024224 +v 0.3463948 -0.2246782 0.2024224 +v 0.4423352 -0.2232612 0.2652099 +v 0.4116642 -0.2231293 0.2510472 +v 0.3809931 -0.2232612 0.2652099 +v 0.3773053 -0.2238930 0.2650984 +v 0.3731387 -0.2232612 0.2652099 +v 0.4381682 -0.2238930 0.2650984 +v 0.4344808 -0.2232612 0.2652099 +v 0.4077369 -0.2237620 0.2510467 +v 0.4038097 -0.2231293 0.2510472 +v 0.4690791 -0.2231293 0.2510472 +v 0.3463948 -0.2231293 0.2510472 +v 0.4423352 -0.2257124 0.3134808 +v 0.4116642 -0.2246869 0.2996699 +v 0.3809931 -0.2257124 0.3134808 +v 0.4077369 -0.2253074 0.2992888 +v 0.4038097 -0.2246869 0.2996699 +v 0.4381682 -0.2263250 0.3129915 +v 0.4344808 -0.2257124 0.3134808 +v 0.3773053 -0.2263250 0.3129915 +v 0.3731387 -0.2257124 0.3134808 +v 0.4690791 -0.2246871 0.2996694 +v 0.3463948 -0.2246871 0.2996694 +v 0.4423352 -0.2311710 0.3593498 +v 0.4116642 -0.2292913 0.3464208 +v 0.3809931 -0.2311708 0.3593498 +v 0.3773053 -0.2317407 0.3585017 +v 0.3731387 -0.2311710 0.3593498 +v 0.4381682 -0.2317407 0.3585017 +v 0.4344808 -0.2311708 0.3593498 +v 0.4077369 -0.2298756 0.3456738 +v 0.4038097 -0.2292913 0.3464208 +v 0.4690791 -0.2292911 0.3464208 +v 0.3463948 -0.2292913 0.3464208 +v 0.4423352 -0.2394266 0.4010537 +v 0.4116642 -0.2367651 0.3895040 +v 0.3809931 -0.2394266 0.4010537 +v 0.4381682 -0.2399318 0.3998794 +v 0.4344808 -0.2394266 0.4010537 +v 0.4077369 -0.2372911 0.3884199 +v 0.4038097 -0.2367651 0.3895040 +v 0.3773053 -0.2399318 0.3998794 +v 0.3731387 -0.2394268 0.4010537 +v 0.4690791 -0.2367651 0.3895040 +v 0.3463948 -0.2367651 0.3895040 +v 0.4423352 -0.2501628 0.4369904 +v 0.4116642 -0.2468215 0.4272641 +v 0.3809931 -0.2501628 0.4369910 +v 0.4077369 -0.2472688 0.4258843 +v 0.4038097 -0.2468215 0.4272641 +v 0.4381682 -0.2505839 0.4355350 +v 0.4344808 -0.2501628 0.4369910 +v 0.3773053 -0.2505839 0.4355350 +v 0.3731387 -0.2501628 0.4369904 +v 0.4690791 -0.2468215 0.4272636 +v 0.3463948 -0.2468215 0.4272636 +v 0.4423352 -0.2629664 0.4657794 +v 0.4116642 -0.2590739 0.4582490 +v 0.3809931 -0.2629664 0.4657794 +v 0.3773053 -0.2632874 0.4640979 +v 0.3731387 -0.2629664 0.4657794 +v 0.4381682 -0.2632874 0.4640979 +v 0.4344808 -0.2629664 0.4657794 +v 0.4077369 -0.2594253 0.4566267 +v 0.4038097 -0.2590739 0.4582490 +v 0.4690791 -0.2590739 0.4582490 +v 0.3463948 -0.2590739 0.4582490 +v 0.4423352 -0.2773458 0.4863133 +v 0.4116642 -0.2730516 0.4812692 +v 0.3809931 -0.2773458 0.4863133 +v 0.4077369 -0.2732935 0.4794669 +v 0.4038097 -0.2730516 0.4812692 +v 0.3773053 -0.2775540 0.4844714 +v 0.3731387 -0.2773458 0.4863133 +v 0.4381682 -0.2775540 0.4844714 +v 0.4344808 -0.2773458 0.4863133 +v 0.4690791 -0.2730516 0.4812692 +v 0.3463948 -0.2730516 0.4812692 +v 0.4423352 -0.2927480 0.4978033 +v 0.4116642 -0.2882172 0.4954394 +v 0.3809931 -0.2927480 0.4978033 +v 0.3773053 -0.2928358 0.4958711 +v 0.3731387 -0.2927480 0.4978033 +v 0.4381682 -0.2928358 0.4958711 +v 0.4344808 -0.2927480 0.4978033 +v 0.4077369 -0.2883404 0.4935257 +v 0.4038097 -0.2882172 0.4954394 +v 0.4690791 -0.2882172 0.4954389 +v 0.3463948 -0.2882172 0.4954389 +v 0.4423352 -0.3085812 0.4998078 +v 0.4116642 -0.3039880 0.5002145 +v 0.3809931 -0.3085812 0.4998078 +v 0.4077369 -0.3039878 0.4982638 +v 0.4038097 -0.3039880 0.5002145 +v 0.4381682 -0.3085453 0.4978604 +v 0.4344808 -0.3085812 0.4998078 +v 0.3773053 -0.3085453 0.4978604 +v 0.3731387 -0.3085812 0.4998078 +v 0.4690791 -0.3039878 0.5002145 +v 0.3463948 -0.3039878 0.5002145 +v 0.4423352 -0.3242372 0.4922502 +v 0.4116642 -0.3197579 0.4954122 +v 0.3809931 -0.3242372 0.4922502 +v 0.3773053 -0.3240785 0.4903621 +v 0.3731387 -0.3242372 0.4922502 +v 0.4381682 -0.3240785 0.4903621 +v 0.4344808 -0.3242372 0.4922502 +v 0.4077369 -0.3196342 0.4934991 +v 0.4038097 -0.3197579 0.4954122 +v 0.4690791 -0.3197577 0.4954122 +v 0.3463948 -0.3197577 0.4954122 +v 0.4423352 -0.3391142 0.4754209 +v 0.4116642 -0.3349208 0.4812164 +v 0.3809931 -0.3391142 0.4754209 +v 0.4381686 -0.3388391 0.4736643 +v 0.4344808 -0.3391142 0.4754209 +v 0.4077369 -0.3346785 0.4794142 +v 0.4038097 -0.3349208 0.4812164 +v 0.3773053 -0.3388391 0.4736643 +v 0.3731387 -0.3391142 0.4754209 +v 0.4690791 -0.3349208 0.4812164 +v 0.3463948 -0.3349208 0.4812164 +v 0.4423352 -0.3526402 0.4499662 +v 0.4116642 -0.3488942 0.4581724 +v 0.3809931 -0.3526402 0.4499662 +v 0.4077369 -0.3485426 0.4565506 +v 0.4038097 -0.3488942 0.4581724 +v 0.4381686 -0.3522594 0.4484086 +v 0.4344808 -0.3526402 0.4499662 +v 0.3773053 -0.3522594 0.4484086 +v 0.3731387 -0.3526402 0.4499662 +v 0.4690791 -0.3488942 0.4581724 +v 0.3463948 -0.3488942 0.4581724 +v 0.4423352 -0.3642958 0.4168642 +v 0.4116642 -0.3611410 0.4271663 +v 0.3809931 -0.3642960 0.4168642 +v 0.3773053 -0.3638237 0.4155660 +v 0.3731387 -0.3642958 0.4168642 +v 0.4381686 -0.3638237 0.4155660 +v 0.4344808 -0.3642960 0.4168642 +v 0.4077369 -0.3606937 0.4257870 +v 0.4038097 -0.3611410 0.4271663 +v 0.4690791 -0.3611410 0.4271663 +v 0.3463948 -0.3611410 0.4271663 +v 0.4423352 -0.3736331 0.3773877 +v 0.4116642 -0.3711907 0.3893893 +v 0.3809931 -0.3736331 0.3773877 +v 0.4077369 -0.3706645 0.3883057 +v 0.4038097 -0.3711907 0.3893893 +v 0.3773053 -0.3730877 0.3763983 +v 0.3731387 -0.3736331 0.3773877 +v 0.4381686 -0.3730877 0.3763983 +v 0.4344808 -0.3736331 0.3773877 +v 0.4690791 -0.3711907 0.3893893 +v 0.3463948 -0.3711907 0.3893893 +v 0.4423352 -0.3802928 0.3330530 +v 0.4116642 -0.3786570 0.3462935 +v 0.3809931 -0.3802930 0.3330535 +v 0.4077369 -0.3780723 0.3455471 +v 0.4038097 -0.3786570 0.3462935 +v 0.4381682 -0.3796956 0.3324109 +v 0.4344808 -0.3802930 0.3330535 +v 0.3773053 -0.3796956 0.3324109 +v 0.3731387 -0.3802928 0.3330530 +v 0.4690791 -0.3786570 0.3462930 +v 0.3463948 -0.3786570 0.3462930 +v 0.4344808 -0.3840196 0.2855644 +v 0.4038097 -0.3832529 0.2995340 +v 0.3731387 -0.3840196 0.2855644 +v 0.3773053 -0.3833929 0.2852942 +v 0.3809931 -0.3840196 0.2855644 +v 0.4381682 -0.3833929 0.2852942 +v 0.4423352 -0.3840196 0.2855644 +v 0.4077369 -0.3826322 0.2991545 +v 0.4116642 -0.3832529 0.2995340 +v 0.4690791 -0.3832527 0.2995346 +v 0.3463948 -0.3832527 0.2995346 +v 0.4423352 -0.3846697 0.2367471 +v 0.4116642 -0.3848016 0.2509097 +v 0.3809931 -0.3846697 0.2367471 +v 0.4077369 -0.3841689 0.2509102 +v 0.4038097 -0.3848016 0.2509097 +v 0.3773053 -0.3840381 0.2368585 +v 0.3731387 -0.3846697 0.2367471 +v 0.4381682 -0.3840381 0.2368585 +v 0.4344808 -0.3846697 0.2367471 +v 0.4690791 -0.3848016 0.2509102 +v 0.3463948 -0.3848016 0.2509102 +v 0.4344808 -0.3822185 0.1884767 +v 0.4038097 -0.3832441 0.2022876 +v 0.3731387 -0.3822185 0.1884767 +v 0.4381682 -0.3816061 0.1889660 +v 0.4423352 -0.3822185 0.1884767 +v 0.4077369 -0.3826236 0.2026687 +v 0.4116642 -0.3832441 0.2022876 +v 0.3773053 -0.3816061 0.1889660 +v 0.3809931 -0.3822185 0.1884767 +v 0.4690791 -0.3832441 0.2022876 +v 0.3463948 -0.3832441 0.2022876 +v 0.4344808 -0.3767602 0.1426077 +v 0.4038097 -0.3786399 0.1555367 +v 0.3731387 -0.3767602 0.1426077 +v 0.3773053 -0.3761904 0.1434558 +v 0.3809931 -0.3767602 0.1426077 +v 0.4381682 -0.3761904 0.1434558 +v 0.4423352 -0.3767602 0.1426077 +v 0.4077369 -0.3780553 0.1562837 +v 0.4116642 -0.3786399 0.1555367 +v 0.4690791 -0.3786399 0.1555367 +v 0.3463948 -0.3786399 0.1555367 +v 0.4423352 -0.3685043 0.1009037 +v 0.4116642 -0.3711659 0.1124535 +v 0.3809931 -0.3685043 0.1009037 +v 0.4077369 -0.3706399 0.1135376 +v 0.4038097 -0.3711659 0.1124535 +v 0.4381682 -0.3679991 0.1020781 +v 0.4344808 -0.3685043 0.1009037 +v 0.3773053 -0.3679991 0.1020781 +v 0.3731387 -0.3685043 0.1009037 +v 0.4690791 -0.3711659 0.1124535 +v 0.3463948 -0.3711659 0.1124535 +v 0.4423352 -0.3577683 0.0649665 +v 0.4116642 -0.3611096 0.0746934 +v 0.3809931 -0.3577683 0.0649665 +v 0.3773053 -0.3573473 0.0664225 +v 0.3731387 -0.3577683 0.0649665 +v 0.4381682 -0.3573473 0.0664225 +v 0.4344808 -0.3577683 0.0649665 +v 0.4077369 -0.3606623 0.0760732 +v 0.4038097 -0.3611096 0.0746934 +v 0.4690791 -0.3611095 0.0746939 +v 0.3463948 -0.3611095 0.0746939 +v 0.4423352 -0.3449647 0.0361781 +v 0.4116642 -0.3488570 0.0437079 +v 0.3809931 -0.3449645 0.0361781 +v 0.4381682 -0.3446438 0.0378591 +v 0.4344808 -0.3449645 0.0361781 +v 0.4077369 -0.3485058 0.0453308 +v 0.4038097 -0.3488570 0.0437079 +v 0.3773053 -0.3446438 0.0378591 +v 0.3731387 -0.3449647 0.0361781 +v 0.4690791 -0.3488572 0.0437084 +v 0.3463948 -0.3488572 0.0437084 +v 0.4423352 -0.2993499 0.0021491 +v 0.4116642 -0.3039432 0.0017425 +v 0.3809931 -0.2993499 0.0021491 +v 0.4077369 -0.3039433 0.0036932 +v 0.4038097 -0.3039432 0.0017425 +v 0.3773053 -0.2993860 0.0040966 +v 0.3731387 -0.2993499 0.0021491 +v 0.4381682 -0.2993860 0.0040966 +v 0.4344808 -0.2993499 0.0021491 +v 0.4690791 -0.3039432 0.0017425 +v 0.3463948 -0.3039432 0.0017430 +v 0.4423352 -0.3151831 0.0041536 +v 0.4116642 -0.3197140 0.0065181 +v 0.3809931 -0.3151831 0.0041536 +v 0.3773053 -0.3150953 0.0060859 +v 0.3731387 -0.3151831 0.0041536 +v 0.4381682 -0.3150953 0.0060859 +v 0.4344808 -0.3151831 0.0041536 +v 0.4077369 -0.3195907 0.0084313 +v 0.4038097 -0.3197140 0.0065181 +v 0.4690791 -0.3197140 0.0065181 +v 0.3463948 -0.3197140 0.0065181 +v 0.4423352 -0.3305853 0.0156441 +v 0.4116642 -0.3348796 0.0206883 +v 0.3809931 -0.3305853 0.0156441 +v 0.4077369 -0.3346376 0.0224906 +v 0.4038097 -0.3348796 0.0206883 +v 0.4381682 -0.3303769 0.0174861 +v 0.4344808 -0.3305853 0.0156441 +v 0.3773053 -0.3303769 0.0174861 +v 0.3731387 -0.3305853 0.0156441 +v 0.4690791 -0.3348796 0.0206883 +v 0.3463948 -0.3348796 0.0206883 +v 0.3459660 -0.3853668 0.2558446 +v 0.3459660 -0.3853657 0.2459743 +v 0.3445835 -0.3851081 0.2509097 +v 0.4695074 -0.3853657 0.2459743 +v 0.4695074 -0.3853668 0.2558446 +v 0.4708904 -0.3851081 0.2509097 +v 0.3459660 -0.3841104 0.2067875 +v 0.3459660 -0.3834851 0.1971080 +v 0.3445835 -0.3835447 0.2021032 +v 0.4695074 -0.3834851 0.1971080 +v 0.4695074 -0.3841104 0.2067875 +v 0.4708904 -0.3835447 0.2021032 +v 0.3459660 -0.3797742 0.1594289 +v 0.3459660 -0.3785485 0.1503115 +v 0.3445835 -0.3789231 0.1551752 +v 0.4695074 -0.3785485 0.1503115 +v 0.4695074 -0.3797742 0.1594289 +v 0.4708904 -0.3789231 0.1551752 +v 0.3459660 -0.3725249 0.1155883 +v 0.3459660 -0.3707457 0.1073832 +v 0.3445835 -0.3714208 0.1119283 +v 0.4695074 -0.3707457 0.1073832 +v 0.4695074 -0.3725249 0.1155883 +v 0.4708904 -0.3714208 0.1119283 +v 0.3459660 -0.3626407 0.0769512 +v 0.3459660 -0.3603766 0.0699737 +v 0.3445835 -0.3613264 0.0740252 +v 0.4695074 -0.3603766 0.0699737 +v 0.4695074 -0.3626407 0.0769512 +v 0.4708904 -0.3613264 0.0740252 +v 0.3459660 -0.3505019 0.0450013 +v 0.3459660 -0.3478396 0.0395200 +v 0.3445835 -0.3490274 0.0429223 +v 0.4695074 -0.3478396 0.0395200 +v 0.4695074 -0.3505019 0.0450013 +v 0.4708904 -0.3490274 0.0429223 +v 0.3459660 -0.3365745 0.0209672 +v 0.3459660 -0.3336165 0.0171925 +v 0.3445835 -0.3349970 0.0198152 +v 0.4695074 -0.3336165 0.0171925 +v 0.4695074 -0.3365745 0.0209672 +v 0.4708904 -0.3349970 0.0198152 +v 0.3459660 -0.3213940 0.0057722 +v 0.3459660 -0.3182541 0.0038492 +v 0.3445835 -0.3197739 0.0055911 +v 0.4695074 -0.3182541 0.0038492 +v 0.4695074 -0.3213939 0.0057722 +v 0.4708904 -0.3197739 0.0055911 +v 0.3459660 -0.3055437 0.0000005 +v 0.3459660 -0.3023424 0.0000033 +v 0.3445835 -0.3039433 0.0007976 +v 0.4695074 -0.3023424 0.0000033 +v 0.4695074 -0.3055437 0.0000005 +v 0.4708904 -0.3039433 0.0007976 +v 0.3459660 -0.2896328 0.0038737 +v 0.3459660 -0.2864934 0.0058021 +v 0.3445835 -0.2881137 0.0056183 +v 0.4695074 -0.2864932 0.0058021 +v 0.4695074 -0.2896328 0.0038737 +v 0.4708904 -0.2881137 0.0056183 +v 0.3459660 -0.2742727 0.0172431 +v 0.3459660 -0.2713156 0.0210227 +v 0.3445835 -0.2728930 0.0198679 +v 0.4695074 -0.2713156 0.0210227 +v 0.4695074 -0.2742727 0.0172431 +v 0.4708904 -0.2728930 0.0198679 +v 0.3459660 -0.2600536 0.0395945 +v 0.3459660 -0.2573926 0.0450801 +v 0.3445835 -0.2588667 0.0429990 +v 0.4695074 -0.2573924 0.0450801 +v 0.4695074 -0.2600536 0.0395945 +v 0.4708904 -0.2588665 0.0429990 +v 0.3459660 -0.2475222 0.0700694 +v 0.3459660 -0.2452592 0.0770507 +v 0.3445835 -0.2465732 0.0741225 +v 0.4695074 -0.2452592 0.0770507 +v 0.4695074 -0.2475221 0.0700694 +v 0.4708904 -0.2465732 0.0741225 +v 0.3459660 -0.2371597 0.1074968 +v 0.3459660 -0.2353819 0.1157052 +v 0.3445835 -0.2364856 0.1120425 +v 0.4695074 -0.2353819 0.1157046 +v 0.4695074 -0.2371597 0.1074968 +v 0.4708904 -0.2364856 0.1120425 +v 0.3459660 -0.2293646 0.1504382 +v 0.3459660 -0.2281403 0.1595577 +v 0.3445835 -0.2289910 0.1553019 +v 0.4695074 -0.2281403 0.1595577 +v 0.4695074 -0.2293646 0.1504382 +v 0.4708904 -0.2289910 0.1553019 +v 0.3459660 -0.2244363 0.1972428 +v 0.3459660 -0.2238128 0.2069240 +v 0.3445835 -0.2243778 0.2022381 +v 0.4695074 -0.2238126 0.2069240 +v 0.4695074 -0.2244363 0.1972428 +v 0.4708904 -0.2243776 0.2022381 +v 0.3459660 -0.2225644 0.2461129 +v 0.3459660 -0.2225653 0.2559827 +v 0.3445835 -0.2228229 0.2510472 +v 0.4695074 -0.2225653 0.2559827 +v 0.4695074 -0.2225644 0.2461129 +v 0.4708904 -0.2228229 0.2510472 +v 0.3459660 -0.2238206 0.2951700 +v 0.3459660 -0.2244460 0.3048495 +v 0.3445835 -0.2243864 0.2998537 +v 0.4695074 -0.2244460 0.3048495 +v 0.4695074 -0.2238206 0.2951694 +v 0.4708904 -0.2243864 0.2998537 +v 0.3459660 -0.2281567 0.3425286 +v 0.3459660 -0.2293826 0.3516460 +v 0.3445835 -0.2290081 0.3467823 +v 0.4695074 -0.2293826 0.3516460 +v 0.4695074 -0.2281567 0.3425281 +v 0.4708904 -0.2290081 0.3467823 +v 0.3459660 -0.2354061 0.3863686 +v 0.3459660 -0.2371855 0.3945737 +v 0.3445835 -0.2365103 0.3900292 +v 0.4695074 -0.2371855 0.3945737 +v 0.4695074 -0.2354061 0.3863686 +v 0.4708904 -0.2365103 0.3900286 +v 0.3459660 -0.2452902 0.4250063 +v 0.3459660 -0.2475545 0.4319837 +v 0.3445835 -0.2466048 0.4279318 +v 0.4695074 -0.2475545 0.4319837 +v 0.4695074 -0.2452904 0.4250063 +v 0.4708904 -0.2466048 0.4279318 +v 0.3459660 -0.2574293 0.4569562 +v 0.3459660 -0.2600915 0.4624375 +v 0.3445835 -0.2589036 0.4590346 +v 0.4695074 -0.2600915 0.4624375 +v 0.4695074 -0.2574293 0.4569562 +v 0.4708904 -0.2589036 0.4590346 +v 0.3459660 -0.2713567 0.4809903 +v 0.3459660 -0.2743145 0.4847650 +v 0.3445835 -0.2729341 0.4821418 +v 0.4695074 -0.2743145 0.4847650 +v 0.4695074 -0.2713567 0.4809903 +v 0.4708904 -0.2729341 0.4821418 +v 0.3459660 -0.2865371 0.4961848 +v 0.3459660 -0.2896770 0.4981078 +v 0.3445835 -0.2881572 0.4963658 +v 0.4695074 -0.2896770 0.4981078 +v 0.4695074 -0.2865371 0.4961848 +v 0.4708904 -0.2881572 0.4963658 +v 0.3459660 -0.3023874 0.5019564 +v 0.3459660 -0.3055887 0.5019542 +v 0.3445835 -0.3039878 0.5011594 +v 0.4695074 -0.3055887 0.5019542 +v 0.4695074 -0.3023874 0.5019569 +v 0.4708904 -0.3039878 0.5011594 +v 0.3459660 -0.3182984 0.4980833 +v 0.3459660 -0.3214378 0.4961549 +v 0.3445835 -0.3198175 0.4963392 +v 0.4695074 -0.3214378 0.4961549 +v 0.4695074 -0.3182984 0.4980833 +v 0.4708904 -0.3198175 0.4963392 +v 0.3459660 -0.3336585 0.4847139 +v 0.3459660 -0.3366155 0.4809348 +v 0.3445835 -0.3350381 0.4820896 +v 0.4695074 -0.3366155 0.4809348 +v 0.4695074 -0.3336585 0.4847139 +v 0.4708904 -0.3350381 0.4820896 +v 0.3459660 -0.3478775 0.4623625 +v 0.3459660 -0.3505387 0.4568768 +v 0.3445835 -0.3490646 0.4589580 +v 0.4695074 -0.3505387 0.4568768 +v 0.4695074 -0.3478775 0.4623625 +v 0.4708904 -0.3490646 0.4589580 +v 0.3459660 -0.3604089 0.4318875 +v 0.3459660 -0.3626719 0.4249062 +v 0.3445835 -0.3613577 0.4278344 +v 0.4695074 -0.3626719 0.4249062 +v 0.4695074 -0.3604089 0.4318875 +v 0.4708904 -0.3613577 0.4278344 +v 0.3459660 -0.3707714 0.3944601 +v 0.3459660 -0.3725492 0.3862518 +v 0.3445835 -0.3714455 0.3899145 +v 0.4695074 -0.3725492 0.3862518 +v 0.4695074 -0.3707714 0.3944601 +v 0.4708904 -0.3714455 0.3899145 +v 0.3459660 -0.3785665 0.3515188 +v 0.3459660 -0.3797906 0.3423992 +v 0.3445835 -0.3789402 0.3466551 +v 0.4695074 -0.3797906 0.3423992 +v 0.4695074 -0.3785665 0.3515188 +v 0.4708904 -0.3789402 0.3466551 +v 0.3459660 -0.3834946 0.3047141 +v 0.3459660 -0.3841183 0.2950330 +v 0.3445835 -0.3835534 0.2997189 +v 0.4695074 -0.3841183 0.2950330 +v 0.4695074 -0.3834946 0.3047141 +v 0.4708904 -0.3835534 0.2997189 +v 0.3770925 -0.3694098 0.1049764 +v 0.3770925 -0.3674830 0.0971002 +v 0.3770925 -0.3589140 0.0684167 +v 0.3770925 -0.3565259 0.0618502 +v 0.3770925 -0.3463066 0.0388725 +v 0.3770925 -0.3435491 0.0338691 +v 0.3770925 -0.3320722 0.0174796 +v 0.3770925 -0.3290509 0.0142311 +v 0.3770925 -0.3167574 0.0050599 +v 0.3770925 -0.3135887 0.0036910 +v 0.3770925 -0.3009512 0.0020910 +v 0.3770925 -0.2977567 0.0026542 +v 0.3770925 -0.2852608 0.0086862 +v 0.3770925 -0.2821634 0.0111599 +v 0.3770925 -0.2702893 0.0245930 +v 0.3770925 -0.2674079 0.0288825 +v 0.3770925 -0.2566118 0.0491995 +v 0.3770925 -0.2540571 0.0551397 +v 0.3770925 -0.2447542 0.0815599 +v 0.3770925 -0.2426244 0.0889229 +v 0.3770925 -0.2351719 0.1204313 +v 0.3770925 -0.2335492 0.1289338 +v 0.3770925 -0.2282334 0.1643197 +v 0.3770925 -0.2271797 0.1736350 +v 0.3770925 -0.2242053 0.2115381 +v 0.3770925 -0.2237613 0.2213084 +v 0.3770925 -0.2232424 0.2602728 +v 0.3770925 -0.2234251 0.2701220 +v 0.3770925 -0.2253815 0.3086498 +v 0.3770925 -0.2261838 0.3181999 +v 0.3770925 -0.2305406 0.3548102 +v 0.3770925 -0.2319318 0.3636943 +v 0.3770925 -0.2385214 0.3969811 +v 0.3770925 -0.2404480 0.4048573 +v 0.3770925 -0.2490170 0.4335408 +v 0.3770925 -0.2514051 0.4401073 +v 0.3770925 -0.2616244 0.4630850 +v 0.3770925 -0.2643820 0.4680884 +v 0.3770925 -0.2758590 0.4844774 +v 0.3770925 -0.2788802 0.4877264 +v 0.3770925 -0.2911737 0.4968970 +v 0.3770925 -0.2943424 0.4982665 +v 0.3770925 -0.3069800 0.4998665 +v 0.3770925 -0.3101744 0.4993033 +v 0.3770925 -0.3226703 0.4932707 +v 0.3770925 -0.3257678 0.4907970 +v 0.3770930 -0.3376418 0.4773645 +v 0.3770930 -0.3405232 0.4730744 +v 0.3770930 -0.3513193 0.4527580 +v 0.3770930 -0.3538739 0.4468173 +v 0.3770930 -0.3631770 0.4203970 +v 0.3770930 -0.3653065 0.4130341 +v 0.3770930 -0.3727592 0.3815256 +v 0.3770930 -0.3743820 0.3730231 +v 0.3770925 -0.3841696 0.2806485 +v 0.3770925 -0.3837256 0.2904183 +v 0.3770930 -0.3796975 0.3376372 +v 0.3770925 -0.3807513 0.3283220 +v 0.3770925 -0.3759993 0.1382632 +v 0.3770925 -0.3773906 0.1471468 +v 0.3770925 -0.3817472 0.1837576 +v 0.3770925 -0.3825495 0.1933077 +v 0.3770925 -0.3846886 0.2416847 +v 0.3770925 -0.3845061 0.2318355 +v 0.4077369 -0.3719948 0.1166778 +v 0.4077369 -0.3702165 0.1084771 +v 0.4077369 -0.3621899 0.0783381 +v 0.4077369 -0.3599266 0.0713650 +v 0.4077369 -0.3501473 0.0466334 +v 0.4077369 -0.3474864 0.0411548 +v 0.4077369 -0.3363299 0.0227809 +v 0.4077369 -0.3333737 0.0190084 +v 0.4077369 -0.3212690 0.0076984 +v 0.4077369 -0.3181308 0.0057765 +v 0.4077369 -0.3055430 0.0019648 +v 0.4077369 -0.3023435 0.0019675 +v 0.4077369 -0.2897564 0.0058004 +v 0.4077369 -0.2866186 0.0077277 +v 0.4077369 -0.2745158 0.0190584 +v 0.4077369 -0.2715603 0.0228364 +v 0.4077369 -0.2604070 0.0412288 +v 0.4077369 -0.2577472 0.0467117 +v 0.4077369 -0.2479720 0.0714601 +v 0.4077369 -0.2457104 0.0784376 +v 0.4077369 -0.2376891 0.1085896 +v 0.4077369 -0.2359122 0.1167936 +v 0.4077369 -0.2299529 0.1511917 +v 0.4077369 -0.2287293 0.1603069 +v 0.4077369 -0.2250611 0.1976283 +v 0.4077369 -0.2244377 0.2073040 +v 0.4077369 -0.2232015 0.2461151 +v 0.4077369 -0.2232023 0.2559800 +v 0.4077369 -0.2244455 0.2947883 +v 0.4077369 -0.2250706 0.3044635 +v 0.4077369 -0.2287455 0.3417789 +v 0.4077369 -0.2299708 0.3508914 +v 0.4077369 -0.2359363 0.3852797 +v 0.4077369 -0.2377145 0.3934804 +v 0.4077369 -0.2457413 0.4236188 +v 0.4077369 -0.2480043 0.4305925 +v 0.4077369 -0.2577839 0.4553241 +v 0.4077369 -0.2604447 0.4608021 +v 0.4077369 -0.2716011 0.4791766 +v 0.4077369 -0.2745574 0.4829486 +v 0.4077369 -0.2866621 0.4942591 +v 0.4077369 -0.2898003 0.4961804 +v 0.4077369 -0.3023881 0.4999927 +v 0.4077369 -0.3055876 0.4999899 +v 0.4077369 -0.3181747 0.4961565 +v 0.4077369 -0.3213126 0.4942292 +v 0.4077369 -0.3334153 0.4828986 +v 0.4077369 -0.3363708 0.4791206 +v 0.4077369 -0.3475241 0.4607282 +v 0.4077369 -0.3501838 0.4552453 +v 0.4077369 -0.3599589 0.4304968 +v 0.4077369 -0.3622207 0.4235193 +v 0.4077369 -0.3702421 0.3933668 +v 0.4077369 -0.3720188 0.3851633 +v 0.4077369 -0.3834934 0.2946529 +v 0.4077369 -0.3828701 0.3043287 +v 0.4077369 -0.3779781 0.3507652 +v 0.4077369 -0.3792017 0.3416506 +v 0.4077369 -0.3779603 0.1510656 +v 0.4077369 -0.3791854 0.1601786 +v 0.4077369 -0.3828604 0.1974940 +v 0.4077369 -0.3834855 0.2071686 +v 0.4077369 -0.3847295 0.2558424 +v 0.4077369 -0.3847286 0.2459775 +v 0.4383809 -0.3694098 0.1049764 +v 0.4383809 -0.3674830 0.0971002 +v 0.4383809 -0.3589140 0.0684167 +v 0.4383809 -0.3565259 0.0618502 +v 0.4383809 -0.3463066 0.0388725 +v 0.4383809 -0.3435491 0.0338691 +v 0.4383809 -0.3320722 0.0174796 +v 0.4383809 -0.3290509 0.0142311 +v 0.4383809 -0.3167574 0.0050599 +v 0.4383809 -0.3135887 0.0036910 +v 0.4383809 -0.3009512 0.0020910 +v 0.4383809 -0.2977567 0.0026542 +v 0.4383809 -0.2852608 0.0086862 +v 0.4383809 -0.2821634 0.0111599 +v 0.4383809 -0.2702892 0.0245930 +v 0.4383809 -0.2674079 0.0288825 +v 0.4383809 -0.2566118 0.0491995 +v 0.4383809 -0.2540571 0.0551397 +v 0.4383809 -0.2447542 0.0815599 +v 0.4383809 -0.2426244 0.0889229 +v 0.4383809 -0.2351719 0.1204313 +v 0.4383809 -0.2335492 0.1289338 +v 0.4383809 -0.2282334 0.1643197 +v 0.4383809 -0.2271797 0.1736350 +v 0.4383809 -0.2242053 0.2115381 +v 0.4383809 -0.2237613 0.2213084 +v 0.4383809 -0.2232424 0.2602728 +v 0.4383809 -0.2234251 0.2701220 +v 0.4383809 -0.2253815 0.3086498 +v 0.4383809 -0.2261838 0.3181999 +v 0.4383809 -0.2305406 0.3548102 +v 0.4383809 -0.2319318 0.3636943 +v 0.4383809 -0.2385214 0.3969811 +v 0.4383809 -0.2404480 0.4048573 +v 0.4383809 -0.2490170 0.4335408 +v 0.4383809 -0.2514051 0.4401073 +v 0.4383809 -0.2616244 0.4630850 +v 0.4383809 -0.2643820 0.4680884 +v 0.4383809 -0.2758590 0.4844774 +v 0.4383809 -0.2788802 0.4877264 +v 0.4383809 -0.2911737 0.4968970 +v 0.4383809 -0.2943424 0.4982665 +v 0.4383809 -0.3069800 0.4998665 +v 0.4383809 -0.3101744 0.4993033 +v 0.4383809 -0.3226703 0.4932707 +v 0.4383809 -0.3257678 0.4907970 +v 0.4383809 -0.3376418 0.4773645 +v 0.4383809 -0.3405232 0.4730744 +v 0.4383809 -0.3513193 0.4527580 +v 0.4383809 -0.3538739 0.4468173 +v 0.4383809 -0.3631770 0.4203970 +v 0.4383809 -0.3653065 0.4130341 +v 0.4383809 -0.3727592 0.3815256 +v 0.4383809 -0.3743820 0.3730231 +v 0.4383809 -0.3841696 0.2806485 +v 0.4383809 -0.3837256 0.2904183 +v 0.4383809 -0.3796975 0.3376372 +v 0.4383809 -0.3807513 0.3283220 +v 0.4383809 -0.3759993 0.1382632 +v 0.4383809 -0.3773906 0.1471468 +v 0.4383809 -0.3817472 0.1837576 +v 0.4383809 -0.3825495 0.1933077 +v 0.4383809 -0.3846886 0.2416847 +v 0.4383809 -0.3845061 0.2318355 +v 0.3728969 -0.3851421 0.2317219 +v 0.3728969 -0.3853248 0.2415738 +v 0.3808061 -0.3853248 0.2415732 +v 0.3808061 -0.3851421 0.2317230 +v 0.4037821 -0.3853659 0.2459759 +v 0.4037821 -0.3853668 0.2558430 +v 0.4116913 -0.3853668 0.2558430 +v 0.4116913 -0.3853659 0.2459759 +v 0.4346673 -0.3851421 0.2317230 +v 0.4346673 -0.3853248 0.2415732 +v 0.4425770 -0.3853248 0.2415738 +v 0.4425770 -0.3851421 0.2317219 +v 0.4425770 -0.3831663 0.1928163 +v 0.4425770 -0.3823638 0.1832640 +v 0.4346673 -0.3823638 0.1832640 +v 0.4346673 -0.3831663 0.1928163 +v 0.4116913 -0.3841104 0.2067859 +v 0.4116913 -0.3834851 0.1971091 +v 0.4037821 -0.3834851 0.1971091 +v 0.4037821 -0.3841104 0.2067859 +v 0.3808061 -0.3831663 0.1928163 +v 0.3808061 -0.3823638 0.1832640 +v 0.3728969 -0.3823638 0.1832640 +v 0.3728969 -0.3831663 0.1928163 +v 0.3808061 -0.3843565 0.2906918 +v 0.3808061 -0.3848007 0.2809203 +v 0.3728969 -0.3848007 0.2809203 +v 0.3728969 -0.3843565 0.2906923 +v 0.4116913 -0.3834948 0.3047125 +v 0.4116913 -0.3841183 0.2950346 +v 0.4037821 -0.3841183 0.2950346 +v 0.4037821 -0.3834948 0.3047125 +v 0.4425770 -0.3843565 0.2906923 +v 0.4425770 -0.3848007 0.2809203 +v 0.4346673 -0.3848007 0.2809203 +v 0.4346673 -0.3843565 0.2906918 +v 0.4425770 -0.3779643 0.1462938 +v 0.4425770 -0.3765727 0.1374075 +v 0.4346673 -0.3765729 0.1374080 +v 0.4346673 -0.3779643 0.1462932 +v 0.4116913 -0.3797742 0.1594272 +v 0.4116913 -0.3785487 0.1503126 +v 0.4037821 -0.3785487 0.1503126 +v 0.4037821 -0.3797742 0.1594272 +v 0.3808061 -0.3779643 0.1462932 +v 0.3808061 -0.3765729 0.1374080 +v 0.3728969 -0.3765727 0.1374075 +v 0.3728969 -0.3779643 0.1462938 +v 0.4346673 -0.3679915 0.0959166 +v 0.4346673 -0.3699185 0.1037939 +v 0.4425770 -0.3699187 0.1037944 +v 0.4425770 -0.3679915 0.0959161 +v 0.4037821 -0.3707458 0.1073843 +v 0.4037821 -0.3725247 0.1155867 +v 0.4116913 -0.3725247 0.1155867 +v 0.4116913 -0.3707458 0.1073843 +v 0.3728969 -0.3679915 0.0959161 +v 0.3728969 -0.3699187 0.1037944 +v 0.3808061 -0.3699185 0.1037939 +v 0.3808061 -0.3679915 0.0959166 +v 0.4346673 -0.3569498 0.0603839 +v 0.4346673 -0.3593382 0.0669509 +v 0.4425770 -0.3593384 0.0669515 +v 0.4425770 -0.3569498 0.0603834 +v 0.4037821 -0.3603768 0.0699748 +v 0.4037821 -0.3626404 0.0769496 +v 0.4116913 -0.3626404 0.0769496 +v 0.4116913 -0.3603768 0.0699748 +v 0.3728969 -0.3569498 0.0603834 +v 0.3728969 -0.3593384 0.0669515 +v 0.3808061 -0.3593382 0.0669509 +v 0.3808061 -0.3569498 0.0603839 +v 0.4346673 -0.3438720 0.0321755 +v 0.4346673 -0.3466300 0.0371800 +v 0.4425770 -0.3466301 0.0371800 +v 0.4425770 -0.3438718 0.0321755 +v 0.4037821 -0.3478400 0.0395205 +v 0.4037821 -0.3505013 0.0450002 +v 0.4116913 -0.3505013 0.0450002 +v 0.4116913 -0.3478400 0.0395205 +v 0.3728969 -0.3438718 0.0321755 +v 0.3728969 -0.3466301 0.0371800 +v 0.3808061 -0.3466300 0.0371800 +v 0.3808061 -0.3438720 0.0321755 +v 0.4346673 -0.3292604 0.0123756 +v 0.4346673 -0.3322822 0.0156251 +v 0.4425770 -0.3322822 0.0156251 +v 0.4425770 -0.3292602 0.0123756 +v 0.4037821 -0.3336170 0.0171931 +v 0.4037821 -0.3365739 0.0209661 +v 0.4116913 -0.3365739 0.0209661 +v 0.4116913 -0.3336170 0.0171931 +v 0.3728969 -0.3292602 0.0123756 +v 0.3728969 -0.3322822 0.0156251 +v 0.3808061 -0.3322822 0.0156251 +v 0.3808061 -0.3292604 0.0123756 +v 0.4346673 -0.3136769 0.0017452 +v 0.4346673 -0.3168461 0.0031147 +v 0.4425770 -0.3168463 0.0031147 +v 0.4425770 -0.3136767 0.0017452 +v 0.4037821 -0.3182546 0.0038497 +v 0.4037821 -0.3213935 0.0057716 +v 0.4116913 -0.3213935 0.0057716 +v 0.4116913 -0.3182546 0.0038497 +v 0.3728969 -0.3136767 0.0017452 +v 0.3728969 -0.3168463 0.0031147 +v 0.3808061 -0.3168461 0.0031147 +v 0.3808061 -0.3136769 0.0017452 +v 0.4346673 -0.2977201 0.0006926 +v 0.4346673 -0.3009150 0.0001294 +v 0.4425770 -0.3009152 0.0001294 +v 0.4425770 -0.2977201 0.0006926 +v 0.4037821 -0.3023430 0.0000033 +v 0.4037821 -0.3055432 0.0000000 +v 0.4116913 -0.3055432 0.0000000 +v 0.4116913 -0.3023430 0.0000033 +v 0.3728969 -0.2977201 0.0006926 +v 0.3728969 -0.3009152 0.0001294 +v 0.3808061 -0.3009150 0.0001294 +v 0.3808061 -0.2977201 0.0006926 +v 0.4346673 -0.2820034 0.0092587 +v 0.4346673 -0.2851012 0.0067845 +v 0.4425770 -0.2851014 0.0067845 +v 0.4425770 -0.2820032 0.0092587 +v 0.4037821 -0.2864937 0.0058015 +v 0.4037821 -0.2896322 0.0038737 +v 0.4116913 -0.2896322 0.0038737 +v 0.4116913 -0.2864937 0.0058015 +v 0.3728969 -0.2820032 0.0092587 +v 0.3728969 -0.2851014 0.0067845 +v 0.3808061 -0.2851012 0.0067845 +v 0.3808061 -0.2820034 0.0092587 +v 0.4346673 -0.2671305 0.0271140 +v 0.4346673 -0.2700125 0.0228233 +v 0.4425770 -0.2700125 0.0228233 +v 0.4425770 -0.2671305 0.0271140 +v 0.4037821 -0.2713159 0.0210216 +v 0.4037821 -0.2742721 0.0172431 +v 0.4116913 -0.2742721 0.0172431 +v 0.4116913 -0.2713159 0.0210216 +v 0.3728969 -0.2671305 0.0271140 +v 0.3728969 -0.2700125 0.0228233 +v 0.3808061 -0.2700125 0.0228233 +v 0.3808061 -0.2671305 0.0271140 +v 0.4346673 -0.2536734 0.0535717 +v 0.4346673 -0.2562284 0.0476305 +v 0.4425770 -0.2562284 0.0476299 +v 0.4425770 -0.2536732 0.0535723 +v 0.4037821 -0.2573928 0.0450796 +v 0.4037821 -0.2600533 0.0395956 +v 0.4116913 -0.2600533 0.0395956 +v 0.4116913 -0.2573928 0.0450796 +v 0.3728969 -0.2536732 0.0535723 +v 0.3728969 -0.2562284 0.0476299 +v 0.3808061 -0.2562284 0.0476305 +v 0.3808061 -0.2536734 0.0535717 +v 0.4346673 -0.2421487 0.0876159 +v 0.4346673 -0.2442788 0.0802519 +v 0.4425770 -0.2442790 0.0802519 +v 0.4425770 -0.2421487 0.0876164 +v 0.4037821 -0.2452595 0.0770496 +v 0.4037821 -0.2475217 0.0700705 +v 0.4116913 -0.2475217 0.0700705 +v 0.4116913 -0.2452595 0.0770496 +v 0.3728969 -0.2421487 0.0876164 +v 0.3728969 -0.2442790 0.0802519 +v 0.3808061 -0.2442788 0.0802519 +v 0.3808061 -0.2421487 0.0876159 +v 0.4346673 -0.2329999 0.1279383 +v 0.4346673 -0.2346230 0.1194342 +v 0.4425770 -0.2346230 0.1194342 +v 0.4425770 -0.2329999 0.1279383 +v 0.4037821 -0.2353821 0.1157036 +v 0.4037821 -0.2371594 0.1074979 +v 0.4116913 -0.2371594 0.1074979 +v 0.4116913 -0.2353821 0.1157036 +v 0.3728969 -0.2329999 0.1279383 +v 0.3728969 -0.2346232 0.1194342 +v 0.3808061 -0.2346230 0.1194342 +v 0.3808061 -0.2329999 0.1279383 +v 0.4346673 -0.2265780 0.1729886 +v 0.4346673 -0.2276320 0.1636722 +v 0.4425770 -0.2276320 0.1636717 +v 0.4425770 -0.2265780 0.1729891 +v 0.4037821 -0.2281405 0.1595561 +v 0.4037821 -0.2293644 0.1504393 +v 0.4116913 -0.2293644 0.1504393 +v 0.4116913 -0.2281405 0.1595561 +v 0.3728969 -0.2265780 0.1729891 +v 0.3728969 -0.2276320 0.1636717 +v 0.3808061 -0.2276320 0.1636722 +v 0.3808061 -0.2265780 0.1729886 +v 0.4346673 -0.2231302 0.2210366 +v 0.4346673 -0.2235744 0.2112652 +v 0.4425770 -0.2235744 0.2112646 +v 0.4425770 -0.2231302 0.2210366 +v 0.4037821 -0.2238128 0.2069223 +v 0.4037821 -0.2244361 0.1972445 +v 0.4116913 -0.2244361 0.1972445 +v 0.4116913 -0.2238128 0.2069223 +v 0.3728969 -0.2231302 0.2210366 +v 0.3728969 -0.2235744 0.2112646 +v 0.3808061 -0.2235744 0.2112652 +v 0.3808061 -0.2231302 0.2210366 +v 0.4346673 -0.2227888 0.2702350 +v 0.4346673 -0.2226062 0.2603837 +v 0.4425770 -0.2226062 0.2603837 +v 0.4425770 -0.2227890 0.2702350 +v 0.4037821 -0.2225653 0.2559816 +v 0.4037821 -0.2225642 0.2461145 +v 0.4116913 -0.2225642 0.2461145 +v 0.4116913 -0.2225653 0.2559816 +v 0.3728969 -0.2227890 0.2702350 +v 0.3728969 -0.2226062 0.2603837 +v 0.3808061 -0.2226062 0.2603837 +v 0.3808061 -0.2227888 0.2702350 +v 0.4346673 -0.2255671 0.3186930 +v 0.4346673 -0.2247646 0.3091412 +v 0.4425770 -0.2247646 0.3091412 +v 0.4425770 -0.2255671 0.3186935 +v 0.4037821 -0.2244458 0.3048479 +v 0.4037821 -0.2238206 0.2951716 +v 0.4116913 -0.2238206 0.2951716 +v 0.4116913 -0.2244458 0.3048479 +v 0.3728969 -0.2255671 0.3186935 +v 0.3728969 -0.2247646 0.3091412 +v 0.3808061 -0.2247646 0.3091412 +v 0.3808061 -0.2255671 0.3186930 +v 0.4346673 -0.2313582 0.3645489 +v 0.4346673 -0.2299666 0.3556637 +v 0.4425770 -0.2299666 0.3556637 +v 0.4425770 -0.2313582 0.3645495 +v 0.4037821 -0.2293824 0.3516449 +v 0.4037821 -0.2281569 0.3425297 +v 0.4116913 -0.2281569 0.3425297 +v 0.4116913 -0.2293824 0.3516449 +v 0.3728969 -0.2313582 0.3645495 +v 0.3728969 -0.2299666 0.3556637 +v 0.3808061 -0.2299666 0.3556637 +v 0.3808061 -0.2313582 0.3645489 +v 0.4346673 -0.2399394 0.4060408 +v 0.4346673 -0.2380125 0.3981630 +v 0.4425770 -0.2380125 0.3981630 +v 0.4425770 -0.2399396 0.4060414 +v 0.4037821 -0.2371851 0.3945726 +v 0.4037821 -0.2354065 0.3863703 +v 0.4116913 -0.2354065 0.3863703 +v 0.4116913 -0.2371851 0.3945726 +v 0.3728969 -0.2399396 0.4060414 +v 0.3728969 -0.2380125 0.3981630 +v 0.3808061 -0.2380125 0.3981630 +v 0.3808061 -0.2399394 0.4060408 +v 0.4346673 -0.2509812 0.4415736 +v 0.4346673 -0.2485927 0.4350066 +v 0.4425770 -0.2485927 0.4350060 +v 0.4425770 -0.2509813 0.4415741 +v 0.4037821 -0.2475541 0.4319827 +v 0.4037821 -0.2452906 0.4250079 +v 0.4116913 -0.2452906 0.4250079 +v 0.4116913 -0.2475541 0.4319827 +v 0.3728969 -0.2509813 0.4415741 +v 0.3728969 -0.2485927 0.4350060 +v 0.3808061 -0.2485927 0.4350066 +v 0.3808061 -0.2509812 0.4415736 +v 0.4346673 -0.2640592 0.4697819 +v 0.4346673 -0.2613010 0.4647774 +v 0.4425770 -0.2613010 0.4647774 +v 0.4425770 -0.2640593 0.4697819 +v 0.4037821 -0.2600910 0.4624364 +v 0.4037821 -0.2574298 0.4569573 +v 0.4116913 -0.2574298 0.4569573 +v 0.4116913 -0.2600910 0.4624364 +v 0.3728969 -0.2640593 0.4697819 +v 0.3728969 -0.2613010 0.4647774 +v 0.3808061 -0.2613010 0.4647774 +v 0.3808061 -0.2640592 0.4697819 +v 0.4346673 -0.2786706 0.4895814 +v 0.4346673 -0.2756489 0.4863324 +v 0.4425770 -0.2756488 0.4863324 +v 0.4425770 -0.2786707 0.4895819 +v 0.4037821 -0.2743141 0.4847644 +v 0.4037821 -0.2713572 0.4809908 +v 0.4116913 -0.2713572 0.4809908 +v 0.4116913 -0.2743141 0.4847644 +v 0.3728969 -0.2786707 0.4895819 +v 0.3728969 -0.2756488 0.4863324 +v 0.3808061 -0.2756489 0.4863324 +v 0.3808061 -0.2786706 0.4895814 +v 0.4346673 -0.2942543 0.5002118 +v 0.4346673 -0.2910849 0.4988428 +v 0.4425770 -0.2910849 0.4988423 +v 0.4425770 -0.2942544 0.5002118 +v 0.4037821 -0.2896765 0.4981078 +v 0.4037821 -0.2865376 0.4961853 +v 0.4116913 -0.2865376 0.4961853 +v 0.4116913 -0.2896765 0.4981078 +v 0.3728969 -0.2942544 0.5002118 +v 0.3728969 -0.2910849 0.4988423 +v 0.3808061 -0.2910849 0.4988428 +v 0.3808061 -0.2942543 0.5002118 +v 0.4346673 -0.3102111 0.5012643 +v 0.4346673 -0.3070159 0.5018276 +v 0.4425770 -0.3070159 0.5018281 +v 0.4425770 -0.3102111 0.5012643 +v 0.4037821 -0.3055882 0.5019542 +v 0.4037821 -0.3023879 0.5019569 +v 0.4116913 -0.3023879 0.5019569 +v 0.4116913 -0.3055882 0.5019542 +v 0.3728969 -0.3102111 0.5012643 +v 0.3728969 -0.3070159 0.5018281 +v 0.3808061 -0.3070159 0.5018276 +v 0.3808061 -0.3102111 0.5012643 +v 0.4346678 -0.3259277 0.4926982 +v 0.4346673 -0.3228299 0.4951730 +v 0.4425770 -0.3228297 0.4951730 +v 0.4425770 -0.3259279 0.4926982 +v 0.4037821 -0.3214374 0.4961560 +v 0.4037821 -0.3182989 0.4980833 +v 0.4116913 -0.3182989 0.4980833 +v 0.4116913 -0.3214374 0.4961560 +v 0.3728969 -0.3259279 0.4926982 +v 0.3728969 -0.3228297 0.4951730 +v 0.3808061 -0.3228299 0.4951730 +v 0.3808061 -0.3259277 0.4926982 +v 0.4346678 -0.3408006 0.4748435 +v 0.4346678 -0.3379186 0.4791336 +v 0.4425770 -0.3379185 0.4791336 +v 0.4425770 -0.3408006 0.4748430 +v 0.4037821 -0.3366152 0.4809354 +v 0.4037821 -0.3336590 0.4847139 +v 0.4116913 -0.3336590 0.4847139 +v 0.4116913 -0.3366152 0.4809354 +v 0.3728969 -0.3408006 0.4748430 +v 0.3728969 -0.3379185 0.4791336 +v 0.3808061 -0.3379186 0.4791336 +v 0.3808061 -0.3408006 0.4748435 +v 0.4346678 -0.3542577 0.4483852 +v 0.4346678 -0.3517027 0.4543265 +v 0.4425770 -0.3517027 0.4543270 +v 0.4425770 -0.3542579 0.4483852 +v 0.4037821 -0.3505384 0.4568774 +v 0.4037821 -0.3478779 0.4623614 +v 0.4116913 -0.3478779 0.4623614 +v 0.4116913 -0.3505384 0.4568774 +v 0.3728969 -0.3542579 0.4483852 +v 0.3728969 -0.3517027 0.4543270 +v 0.3808061 -0.3517027 0.4543265 +v 0.3808061 -0.3542577 0.4483852 +v 0.4346678 -0.3657823 0.4143411 +v 0.4346678 -0.3636524 0.4217051 +v 0.4425770 -0.3636522 0.4217051 +v 0.4425770 -0.3657824 0.4143405 +v 0.4037821 -0.3626716 0.4249073 +v 0.4037821 -0.3604094 0.4318864 +v 0.4116913 -0.3604094 0.4318864 +v 0.4116913 -0.3626716 0.4249073 +v 0.3728969 -0.3657824 0.4143405 +v 0.3728969 -0.3636522 0.4217051 +v 0.3808061 -0.3636524 0.4217051 +v 0.3808061 -0.3657823 0.4143411 +v 0.4346678 -0.3749313 0.3740186 +v 0.4346678 -0.3733081 0.3825227 +v 0.4425770 -0.3733081 0.3825227 +v 0.4425770 -0.3749313 0.3740181 +v 0.4037821 -0.3725488 0.3862534 +v 0.4037821 -0.3707718 0.3944590 +v 0.4116913 -0.3707718 0.3944590 +v 0.4116913 -0.3725488 0.3862534 +v 0.3728969 -0.3749313 0.3740181 +v 0.3728969 -0.3733081 0.3825227 +v 0.3808061 -0.3733081 0.3825227 +v 0.3808061 -0.3749313 0.3740186 +v 0.4346673 -0.3813529 0.3289684 +v 0.4346678 -0.3802992 0.3382847 +v 0.4425770 -0.3802990 0.3382853 +v 0.4425770 -0.3813529 0.3289678 +v 0.4037821 -0.3797904 0.3424009 +v 0.4037821 -0.3785667 0.3515177 +v 0.4116913 -0.3785667 0.3515177 +v 0.4116913 -0.3797904 0.3424009 +v 0.3728969 -0.3813529 0.3289678 +v 0.3728969 -0.3802990 0.3382853 +v 0.3808061 -0.3802992 0.3382853 +v 0.3808061 -0.3813529 0.3289684 +v 0.3463948 -0.2881734 0.0065447 +v 0.4690791 -0.2881734 0.0065447 +v 0.4038097 -0.2881733 0.0065447 +v 0.4077369 -0.2882969 0.0084579 +v 0.4344808 -0.2836939 0.0097067 +v 0.4381682 -0.2838526 0.0115954 +v 0.3731387 -0.2836939 0.0097067 +v 0.3773053 -0.2838526 0.0115954 +v 0.3809931 -0.2836939 0.0097067 +v 0.4116642 -0.2881733 0.0065447 +v 0.4423352 -0.2836939 0.0097067 +v 0.4807803 -0.3728763 0.2509206 +v 0.4807803 -0.3715483 0.2094711 +v 0.4807803 -0.3676235 0.1696173 +v 0.4807803 -0.3612521 0.1328896 +v 0.4807803 -0.3526794 0.1007004 +v 0.4807803 -0.3422345 0.0742861 +v 0.4807803 -0.3303191 0.0546623 +v 0.4807803 -0.3173908 0.0425825 +v 0.4807803 -0.3039467 0.0385115 +v 0.4807803 -0.2905033 0.0426053 +v 0.4807803 -0.2775771 0.0547069 +v 0.4807803 -0.2656652 0.0743508 +v 0.4807803 -0.2552249 0.1007825 +v 0.4807803 -0.2466578 0.1329863 +v 0.4807803 -0.2402931 0.1697249 +v 0.4807803 -0.2363752 0.2095852 +v 0.4807803 -0.2350549 0.2510369 +v 0.4807803 -0.2363826 0.2924859 +v 0.4807803 -0.2403076 0.3323402 +v 0.4807803 -0.2466788 0.3690674 +v 0.4807803 -0.2552517 0.4012565 +v 0.4807803 -0.2656966 0.4276713 +v 0.4807803 -0.2776120 0.4472952 +v 0.4807803 -0.2905404 0.4593744 +v 0.4807803 -0.3039844 0.4634460 +v 0.4807803 -0.3174280 0.4593516 +v 0.4807803 -0.3303540 0.4472506 +v 0.4807803 -0.3422659 0.4276061 +v 0.4807803 -0.3527062 0.4011739 +v 0.4807803 -0.3612733 0.3689701 +v 0.4807803 -0.3676380 0.3322320 +v 0.4807803 -0.3715557 0.2923717 +v 0.4778087 -0.3625965 0.2149692 +v 0.4778087 -0.3268282 0.0806656 +v 0.4778087 -0.3536824 0.3533417 +v 0.4931835 -0.3671453 0.2750895 +v 0.4931835 -0.3644263 0.3133721 +v 0.4873769 -0.3256574 0.2470774 +v 0.4873769 -0.3229384 0.2853600 +v 0.5000000 -0.3579269 0.2688655 +v 0.5000000 -0.3552078 0.3071476 +v 0.4791946 -0.3644263 0.3133721 +v 0.4791651 -0.3671453 0.2750895 +v 0.4931835 -0.3372872 0.4204514 +v 0.4931835 -0.3258928 0.4378173 +v 0.4873769 -0.3184675 0.3030614 +v 0.4873769 -0.3070729 0.3204273 +v 0.5000000 -0.3331055 0.3943677 +v 0.5000000 -0.3217111 0.4117336 +v 0.4793987 -0.3258928 0.4378173 +v 0.4793431 -0.3372872 0.4204514 +v 0.4931835 -0.2804166 0.4394478 +v 0.4931835 -0.2689764 0.4223705 +v 0.4873769 -0.2989242 0.3215870 +v 0.4873769 -0.2874840 0.3045097 +v 0.5000000 -0.2845290 0.4132597 +v 0.5000000 -0.2730888 0.3961819 +v 0.4797785 -0.2689764 0.4223705 +v 0.4797176 -0.2804166 0.4394478 +v 0.4931835 -0.2415067 0.3156213 +v 0.4931835 -0.2385716 0.2774909 +v 0.4873774 -0.2828301 0.2853839 +v 0.4873774 -0.2798950 0.2472541 +v 0.5000000 -0.2506886 0.3089026 +v 0.5000000 -0.2477536 0.2707722 +v 0.4799113 -0.2385716 0.2774909 +v 0.4798894 -0.2415067 0.3156213 +v 0.4931835 -0.2482115 0.1434205 +v 0.4931835 -0.2560361 0.1125367 +v 0.4873774 -0.2816820 0.2240300 +v 0.4873774 -0.2895063 0.1931457 +v 0.4999995 -0.2556487 0.1613317 +v 0.4999995 -0.2634730 0.1304474 +v 0.4797842 -0.2560361 0.1125367 +v 0.4798104 -0.2482115 0.1434205 +v 0.4931835 -0.2957875 0.0517983 +v 0.4931835 -0.3084980 0.0517238 +v 0.4873769 -0.2958680 0.1827464 +v 0.4873769 -0.3085786 0.1826719 +v 0.5000000 -0.2958055 0.0808945 +v 0.5000000 -0.3085160 0.0808200 +v 0.4795306 -0.3084980 0.0517238 +v 0.4796396 -0.2957875 0.0517983 +v 0.4931835 -0.3495031 0.1114841 +v 0.4931835 -0.3574093 0.1421700 +v 0.4873769 -0.3162480 0.1929359 +v 0.4873769 -0.3241542 0.2236212 +v 0.5000000 -0.3421139 0.1295824 +v 0.5000000 -0.3500201 0.1602683 +v 0.4791860 -0.3571806 0.1412827 +v 0.4792074 -0.3574093 0.1421700 +v 0.4792512 -0.3495031 0.1114841 +v 0.4856156 -0.3681264 0.2950400 +v 0.4856156 -0.3546508 0.1211544 +v 0.4856156 -0.3021557 0.0452226 +v 0.4856156 -0.2501711 0.1244230 +v 0.4856156 -0.2378425 0.2991154 +v 0.4856156 -0.2744534 0.4377532 +v 0.4856156 -0.3324352 0.4359395 +v 0.4783032 -0.2438383 0.2141559 +v 0.4783370 -0.2529187 0.3562052 +v 0.4791180 -0.2450243 0.3263115 +v 0.4783532 -0.2605221 0.3849980 +v 0.4791703 -0.2684426 0.4149913 +v 0.4783936 -0.2919685 0.4372052 +v 0.4779701 -0.3039821 0.4368295 +v 0.4783151 -0.3159486 0.4364549 +v 0.4778168 -0.3462674 0.3813332 +v 0.4786949 -0.3387054 0.4111861 +v 0.4778087 -0.3468980 0.3788442 +v 0.4784017 -0.3608875 0.3236176 +v 0.4778087 -0.3543842 0.3492908 +v 0.4778087 -0.3513171 0.1904584 +v 0.4778087 -0.3594269 0.1827839 +v 0.4778087 -0.3536427 0.2204685 +v 0.4778087 -0.3619518 0.2153650 +v 0.4778087 -0.3327117 0.1182539 +v 0.4778087 -0.3235596 0.1050161 +v 0.4778087 -0.3268007 0.0808705 +v 0.4778087 -0.3280502 0.0826783 +v 0.4778087 -0.3142373 0.0915319 +v 0.4778087 -0.3263500 0.0802187 +v 0.4778087 -0.2839466 0.1020813 +v 0.4778087 -0.2747248 0.1161309 +v 0.4778087 -0.2521437 0.2192425 +v 0.4778087 -0.2543706 0.1876894 +v 0.4778087 -0.2599880 0.3416327 +v 0.4778087 -0.2665386 0.3664382 +v 0.4778087 -0.2936535 0.4110475 +v 0.4778087 -0.3039797 0.4107246 +v 0.4778087 -0.3534692 0.3529024 +v 0.4778087 -0.3464090 0.3383663 +v 0.4778087 -0.3402344 0.3627423 +v 0.4797885 -0.3681264 0.2950400 +v 0.4791503 -0.3647939 0.3081952 +v 0.4795134 -0.3677385 0.2900339 +v 0.4789257 -0.3636206 0.3128279 +v 0.4781209 -0.3647079 0.2509271 +v 0.4778087 -0.3630724 0.2298256 +v 0.4778249 -0.3592372 0.1803357 +v 0.4791165 -0.3668752 0.2788935 +v 0.4779853 -0.3374669 0.0962988 +v 0.4789671 -0.3665491 0.2746872 +v 0.4783503 -0.3159366 0.0651563 +v 0.4778087 -0.3560038 0.2509347 +v 0.4787839 -0.2917013 0.0611505 +v 0.4781276 -0.2806975 0.0779152 +v 0.4778087 -0.3527691 0.3132579 +v 0.4782537 -0.2699790 0.0942449 +v 0.4791870 -0.2586865 0.1114493 +v 0.4778087 -0.3544471 0.3066338 +v 0.4786206 -0.2464221 0.1775462 +v 0.4787682 -0.2412358 0.2510315 +v 0.4778087 -0.3573638 0.2684850 +v 0.4778087 -0.2485481 0.2701910 +v 0.4784878 -0.2477536 0.2707722 +v 0.4782780 -0.2506886 0.3089026 +v 0.4778087 -0.2512384 0.3085002 +v 0.4797861 -0.2491977 0.1382159 +v 0.4797690 -0.2548185 0.1173422 +v 0.4856156 -0.3647939 0.3081952 +v 0.4804676 -0.2501711 0.1244230 +v 0.4794730 -0.2567865 0.1143438 +v 0.4856156 -0.3668752 0.2788935 +v 0.4797319 -0.2490692 0.1400350 +v 0.4856156 -0.3665491 0.2746872 +v 0.4782870 -0.3579269 0.2688655 +v 0.4795939 -0.2487405 0.1446943 +v 0.4856156 -0.3636206 0.3128279 +v 0.4784564 -0.3552078 0.3071476 +v 0.4778087 -0.2650091 0.1309329 +v 0.4778087 -0.2641918 0.1321784 +v 0.4778087 -0.2561461 0.1625300 +v 0.4795001 -0.3288483 0.4360515 +v 0.4793316 -0.3270134 0.4361091 +v 0.4792041 -0.3256258 0.4361526 +v 0.4790770 -0.3369273 0.4182060 +v 0.4856156 -0.2548185 0.1173422 +v 0.4856156 -0.2490692 0.1400350 +v 0.4793250 -0.3357744 0.4227571 +v 0.4800431 -0.3324352 0.4359395 +v 0.4778087 -0.3142655 0.4104033 +v 0.4856156 -0.2487405 0.1446943 +v 0.4783332 -0.2556487 0.1613317 +v 0.4778087 -0.3214618 0.4101782 +v 0.4856156 -0.2567865 0.1143438 +v 0.4778087 -0.3337509 0.3883373 +v 0.4778087 -0.3327636 0.3922349 +v 0.4785664 -0.2634730 0.1304474 +v 0.4856156 -0.3270134 0.4361091 +v 0.4794706 -0.3066576 0.0517347 +v 0.4797980 -0.3039476 0.0478148 +v 0.4792484 -0.3084996 0.0543992 +v 0.4856156 -0.3357744 0.4227571 +v 0.4793097 -0.2957894 0.0549222 +v 0.4856156 -0.3369273 0.4182060 +v 0.4801293 -0.3021557 0.0452226 +v 0.4795748 -0.2978477 0.0517863 +v 0.4778087 -0.3085174 0.0832578 +v 0.4778087 -0.2934139 0.0876577 +v 0.4778087 -0.2958072 0.0840113 +v 0.4784498 -0.3331055 0.3943677 +v 0.4856156 -0.3256258 0.4361526 +v 0.4782765 -0.3217111 0.4117336 +v 0.4856156 -0.3066576 0.0517347 +v 0.4803739 -0.2744534 0.4377532 +v 0.4796738 -0.2789116 0.4376135 +v 0.4797447 -0.2713119 0.4258566 +v 0.4793830 -0.2695039 0.4190107 +v 0.4856156 -0.2978477 0.0517863 +v 0.4856156 -0.2957894 0.0549222 +v 0.4794973 -0.2807135 0.4375575 +v 0.4786454 -0.2958055 0.0808945 +v 0.4796472 -0.2791821 0.4376053 +v 0.4856156 -0.3084996 0.0543992 +v 0.4784683 -0.3085160 0.0808200 +v 0.4788172 -0.3564596 0.1444958 +v 0.4778087 -0.2733621 0.3922778 +v 0.4789914 -0.3487948 0.1126840 +v 0.4790128 -0.3489322 0.1128830 +v 0.4778087 -0.2735751 0.3930841 +v 0.4778087 -0.2848328 0.4113237 +v 0.4791979 -0.3557934 0.1358977 +v 0.4792436 -0.3504169 0.1150305 +v 0.4799013 -0.3546508 0.1211544 +v 0.4856156 -0.2713119 0.4258566 +v 0.4856156 -0.2791821 0.4376053 +v 0.4841317 -0.2759268 0.4327460 +v 0.4856156 -0.2807135 0.4375575 +v 0.4783851 -0.2845290 0.4132597 +v 0.4778087 -0.3491436 0.1624147 +v 0.4778087 -0.3415310 0.1310106 +v 0.4856156 -0.2695039 0.4190107 +v 0.4787415 -0.2730888 0.3961819 +v 0.4798323 -0.2389874 0.2828917 +v 0.4801112 -0.2383978 0.2912485 +v 0.4856156 -0.3557934 0.1358977 +v 0.4796315 -0.2394120 0.2768760 +v 0.4805276 -0.2378425 0.2991154 +v 0.4798647 -0.2412210 0.3119085 +v 0.4796943 -0.2420887 0.3151956 +v 0.4856156 -0.3504169 0.1150305 +v 0.4841488 -0.3526418 0.1236662 +v 0.4778087 -0.2499008 0.2510244 +v 0.4856156 -0.3489322 0.1128830 +v 0.4778087 -0.2531871 0.3158790 +v 0.4784236 -0.3421139 0.1295824 +v 0.4856156 -0.3564596 0.1444958 +v 0.4787439 -0.3500201 0.1602683 +v 0.4856156 -0.2389874 0.2828917 +v 0.4856156 -0.2412210 0.3119085 +v 0.4856156 -0.2420887 0.3151956 +v 0.4856156 -0.2394120 0.2768760 +v 0.4788529 -0.3223762 0.2983309 +v 0.4788529 -0.2835930 0.2994992 +v 0.4788529 -0.2785988 0.2349470 +v 0.4788529 -0.3133768 0.1820119 +v 0.4788529 -0.3120879 0.1820505 +v 0.4788529 -0.3269607 0.2334899 +v 0.4788529 -0.2918539 0.1826599 +v 0.4788529 -0.3030760 0.3277081 +v 0.4778087 -0.2736067 0.3928829 +v 0.4778087 -0.2734004 0.3921011 +v 0.4778087 -0.2936667 0.4108447 +v 0.4778087 -0.2848649 0.4111198 +v 0.4914755 -0.2736067 0.3928829 +v 0.4788529 -0.2874041 0.3050175 +v 0.4844791 -0.2921108 0.3649763 +v 0.4914755 -0.2848649 0.4111198 +v 0.4788529 -0.2989101 0.3216761 +v 0.4778087 -0.2499681 0.2510244 +v 0.4778087 -0.2522082 0.2192816 +v 0.4778087 -0.2486190 0.2701388 +v 0.4778087 -0.2513095 0.3084481 +v 0.4778087 -0.2532504 0.3157979 +v 0.4778087 -0.2600429 0.3415196 +v 0.4914755 -0.2486190 0.2701388 +v 0.4788529 -0.2795693 0.2474922 +v 0.4914755 -0.2513095 0.3084481 +v 0.4778087 -0.3535782 0.2205081 +v 0.4788529 -0.2825187 0.2856117 +v 0.4778087 -0.3512555 0.1905372 +v 0.4778087 -0.2747616 0.1163005 +v 0.4778087 -0.2650583 0.1310840 +v 0.4778087 -0.2642491 0.1323171 +v 0.4778087 -0.2544323 0.1877677 +v 0.4778087 -0.3326749 0.1184246 +v 0.4778087 -0.2562038 0.1626686 +v 0.4778087 -0.3235344 0.1052031 +v 0.4778087 -0.3142242 0.0917364 +v 0.4778087 -0.2839718 0.1022689 +v 0.4914755 -0.2642491 0.1323171 +v 0.4778087 -0.2665853 0.3662941 +v 0.4778087 -0.3039797 0.4105223 +v 0.4778087 -0.3463542 0.3382532 +v 0.4778087 -0.3401875 0.3625977 +v 0.4778087 -0.3559362 0.2509347 +v 0.4778087 -0.3527062 0.3131774 +v 0.4788529 -0.2893134 0.1926814 +v 0.4778087 -0.3543759 0.3065860 +v 0.4914755 -0.2562038 0.1626686 +v 0.4788529 -0.2814861 0.2235581 +v 0.4778087 -0.3085176 0.0834818 +v 0.4778087 -0.3572926 0.2684371 +v 0.4778087 -0.2958074 0.0842370 +v 0.4778087 -0.2934273 0.0878632 +v 0.4914755 -0.3543759 0.3065860 +v 0.4914755 -0.3085176 0.0834818 +v 0.4788529 -0.3232773 0.2855883 +v 0.4788529 -0.3259843 0.2472981 +v 0.4914755 -0.3572926 0.2684371 +v 0.4778087 -0.3142524 0.4102005 +v 0.4788529 -0.3085782 0.1821565 +v 0.4788529 -0.2958679 0.1825392 +v 0.4914755 -0.2958074 0.0842370 +v 0.4778087 -0.3214293 0.4099765 +v 0.4778087 -0.3337124 0.3881600 +v 0.4778087 -0.3327313 0.3920332 +v 0.4778087 -0.3490870 0.1625539 +v 0.4778087 -0.3414735 0.1311514 +v 0.4914755 -0.3214293 0.4099765 +v 0.4788529 -0.3072272 0.3213896 +v 0.4914755 -0.3490870 0.1625539 +v 0.4914755 -0.3327313 0.3920332 +v 0.4788529 -0.3242771 0.2233206 +v 0.4788529 -0.3162548 0.1929190 +v 0.4844239 -0.3283526 0.1632878 +v 0.4914755 -0.3414735 0.1311514 +v 0.4788529 -0.3186246 0.3040411 +v 0.4842683 -0.3131697 0.2761442 +v 0.4842683 -0.3155945 0.2418500 +v 0.4842683 -0.3084098 0.2146229 +v 0.4842683 -0.2970264 0.2149660 +v 0.4842683 -0.2900158 0.2426203 +v 0.4842683 -0.2926572 0.2767624 +v 0.4842683 -0.3029617 0.2916818 +v 0.4893748 -0.3194406 0.2390207 +v 0.4893748 -0.3162852 0.2836518 +v 0.4893748 -0.3100906 0.2035875 +v 0.4893748 -0.2952759 0.2040338 +v 0.4893748 -0.2861523 0.2400238 +v 0.4893748 -0.2895901 0.2844564 +v 0.4893748 -0.3030005 0.3038725 +v 0.4893748 -0.3181649 0.2399591 +v 0.4893748 -0.3152517 0.2811617 +v 0.4893748 -0.3095331 0.2072480 +v 0.4893748 -0.2958566 0.2076601 +v 0.4893748 -0.2874339 0.2408849 +v 0.4893748 -0.2906075 0.2819038 +v 0.4893748 -0.3029876 0.2998287 +v 0.4747914 -0.3085782 0.1821565 +v 0.4754925 -0.3256574 0.2470774 +v 0.4751412 -0.3085786 0.1826719 +v 0.4749318 -0.2958680 0.1827464 +v 0.4755177 -0.3229384 0.2853600 +v 0.4747914 -0.2958679 0.1825392 +v 0.4755339 -0.3184675 0.3030614 +v 0.4747914 -0.3242771 0.2233206 +v 0.4755201 -0.3070729 0.3204273 +v 0.4751203 -0.3241542 0.2236212 +v 0.4748585 -0.2989242 0.3215870 +v 0.4748095 -0.3162480 0.1929359 +v 0.4751746 -0.2874840 0.3045097 +v 0.4747914 -0.3162548 0.1929190 +v 0.4754615 -0.2828301 0.2853839 +v 0.4754920 -0.2798950 0.2472541 +v 0.4747914 -0.3223762 0.2983309 +v 0.4747914 -0.3223762 0.2983309 +v 0.4747914 -0.3232773 0.2855883 +v 0.4753121 -0.2816820 0.2240300 +v 0.4747914 -0.3259843 0.2472981 +v 0.4753040 -0.2895063 0.1931457 +v 0.4747914 -0.3269607 0.2334899 +v 0.4747914 -0.3269605 0.2334899 +v 0.4747914 -0.3133768 0.1820119 +v 0.4747914 -0.2918539 0.1826599 +v 0.4747914 -0.2918539 0.1826599 +v 0.4747914 -0.3072272 0.3213896 +v 0.4747914 -0.3133768 0.1820119 +v 0.4747914 -0.2814861 0.2235581 +v 0.4747914 -0.3186246 0.3040411 +v 0.4747914 -0.2874041 0.3050175 +v 0.4747914 -0.2785988 0.2349470 +v 0.4747914 -0.2785988 0.2349470 +v 0.4747914 -0.2893134 0.1926814 +v 0.4747914 -0.2825187 0.2856117 +v 0.4747914 -0.2989101 0.3216761 +v 0.4747914 -0.2795693 0.2474922 +v 0.4747914 -0.2835930 0.2994992 +v 0.4747914 -0.2835930 0.2994992 +v 0.4747914 -0.3030760 0.3277081 +v 0.4747914 -0.3030760 0.3277081 +v 0.3346936 0.2707749 0.2514637 +v 0.3362036 0.2644510 0.2514588 +v 0.3403298 0.2598216 0.2514545 +v 0.4792702 0.2644510 0.2514583 +v 0.4751441 0.2598216 0.2514545 +v 0.3346936 0.2721026 0.2100147 +v 0.3362036 0.2659006 0.2062058 +v 0.3403298 0.2613604 0.2034173 +v 0.4792702 0.2659006 0.2062058 +v 0.4751441 0.2613604 0.2034173 +v 0.3346936 0.2760277 0.1701609 +v 0.3362036 0.2701858 0.1626942 +v 0.3403298 0.2659094 0.1572286 +v 0.4792702 0.2701858 0.1626942 +v 0.4751441 0.2659094 0.1572286 +v 0.3346936 0.2823988 0.1334332 +v 0.3362036 0.2771418 0.1225962 +v 0.3403298 0.2732933 0.1146635 +v 0.4792698 0.2771418 0.1225962 +v 0.4751441 0.2732933 0.1146635 +v 0.3346936 0.2909717 0.1012435 +v 0.3362036 0.2865013 0.0874533 +v 0.3403298 0.2832287 0.0773573 +v 0.4792698 0.2865013 0.0874533 +v 0.4751441 0.2832287 0.0773573 +v 0.3346936 0.3014165 0.0748298 +v 0.3362036 0.2979045 0.0586148 +v 0.3403298 0.2953338 0.0467449 +v 0.4423352 0.3748341 0.0270797 +v 0.4792698 0.2979045 0.0586148 +v 0.4751441 0.2953338 0.0467449 +v 0.3346936 0.3133320 0.0552055 +v 0.4116642 0.3706407 0.0212842 +v 0.3362036 0.3109136 0.0371898 +v 0.3403298 0.3091432 0.0240015 +v 0.3809931 0.3748339 0.0270792 +v 0.4792698 0.3109136 0.0371898 +v 0.4751441 0.3091432 0.0240015 +v 0.3346936 0.3262603 0.0431262 +v 0.4077369 0.3703985 0.0230865 +v 0.3362036 0.3250282 0.0240015 +v 0.3403298 0.3241263 0.0100019 +v 0.4038097 0.3706407 0.0212842 +v 0.4792698 0.3250282 0.0240015 +v 0.4751441 0.3241263 0.0100019 +v 0.3346936 0.3397044 0.0390546 +v 0.4381682 0.3745590 0.0288363 +v 0.3362036 0.3397061 0.0195569 +v 0.3403298 0.3397074 0.0052834 +v 0.4344808 0.3748339 0.0270792 +v 0.4792698 0.3397061 0.0195569 +v 0.4751441 0.3397074 0.0052834 +v 0.3346936 0.3531479 0.0431485 +v 0.3773053 0.3745590 0.0288363 +v 0.3362036 0.3543833 0.0240265 +v 0.3403298 0.3552877 0.0100280 +v 0.3731387 0.3748341 0.0270797 +v 0.4792698 0.3543833 0.0240265 +v 0.4751441 0.3552877 0.0100280 +v 0.3346936 0.3660739 0.0552500 +v 0.4690791 0.3706407 0.0212842 +v 0.3362036 0.3684957 0.0372388 +v 0.3403298 0.3702683 0.0240531 +v 0.3463948 0.3706407 0.0212842 +v 0.4792698 0.3684957 0.0372388 +v 0.4751436 0.3702683 0.0240531 +v 0.3346936 0.3779859 0.0748945 +v 0.4423352 0.3883603 0.0525344 +v 0.3362036 0.3815007 0.0586855 +v 0.3403298 0.3840737 0.0468199 +v 0.4116642 0.3846142 0.0443277 +v 0.4792698 0.3815007 0.0586855 +v 0.4751436 0.3840737 0.0468199 +v 0.3346936 0.3884261 0.1013262 +v 0.3809931 0.3883602 0.0525344 +v 0.3362036 0.3928990 0.0875430 +v 0.3403298 0.3961733 0.0774530 +v 0.3773053 0.3879793 0.0540920 +v 0.4792698 0.3928990 0.0875430 +v 0.4751436 0.3961733 0.0774530 +v 0.3346936 0.3969932 0.1335300 +v 0.3731387 0.3883603 0.0525344 +v 0.3362036 0.4022521 0.1227022 +v 0.3403298 0.4061022 0.1147755 +v 0.4381682 0.3879793 0.0540920 +v 0.4792698 0.4022521 0.1227022 +v 0.4751436 0.4061022 0.1147755 +v 0.3346936 0.4033579 0.1702680 +v 0.4344808 0.3883602 0.0525344 +v 0.3362036 0.4092010 0.1628116 +v 0.3403298 0.4134787 0.1573531 +v 0.4077369 0.3842626 0.0459495 +v 0.4792698 0.4092010 0.1628116 +v 0.4751436 0.4134787 0.1573531 +v 0.3346936 0.4072757 0.2101289 +v 0.4038097 0.3846142 0.0443277 +v 0.3362036 0.4134785 0.2063303 +v 0.3403298 0.4180192 0.2035494 +v 0.4690791 0.3846142 0.0443277 +v 0.4792698 0.4134785 0.2063303 +v 0.4751441 0.4180192 0.2035494 +v 0.3346936 0.4085962 0.2515800 +v 0.3463948 0.3846142 0.0443282 +v 0.3362036 0.4149200 0.2515855 +v 0.3403298 0.4195494 0.2515898 +v 0.4423352 0.4000159 0.0856364 +v 0.4792698 0.4149200 0.2515855 +v 0.4751441 0.4195494 0.2515898 +v 0.3346936 0.4072684 0.2930295 +v 0.4116642 0.3968611 0.0753338 +v 0.3362036 0.4134704 0.2968385 +v 0.3403298 0.4180106 0.2996270 +v 0.3809931 0.4000159 0.0856364 +v 0.4792698 0.4134704 0.2968385 +v 0.4751441 0.4180106 0.2996270 +v 0.3346936 0.4033434 0.3328834 +v 0.4381682 0.3995435 0.0869347 +v 0.3362036 0.4091852 0.3403501 +v 0.3403298 0.4134617 0.3458157 +v 0.4344808 0.4000159 0.0856364 +v 0.4792698 0.4091852 0.3403501 +v 0.4751441 0.4134617 0.3458157 +v 0.3346936 0.3969722 0.3696111 +v 0.4077369 0.3964136 0.0767131 +v 0.3362036 0.4022294 0.3804475 +v 0.3403298 0.4060778 0.3883808 +v 0.4038097 0.3968611 0.0753338 +v 0.4792698 0.4022294 0.3804475 +v 0.4751441 0.4060778 0.3883808 +v 0.3346936 0.3883993 0.4018002 +v 0.3773053 0.3995435 0.0869347 +v 0.3362036 0.3928697 0.4155910 +v 0.3403298 0.3961422 0.4256869 +v 0.3731387 0.4000159 0.0856364 +v 0.4792698 0.3928697 0.4155910 +v 0.4751441 0.3961422 0.4256869 +v 0.3346936 0.3779545 0.4282145 +v 0.4690791 0.3968610 0.0753343 +v 0.3362036 0.3814665 0.4444289 +v 0.3403298 0.3840372 0.4562994 +v 0.3463948 0.3968610 0.0753343 +v 0.4792702 0.3814665 0.4444289 +v 0.4751441 0.3840372 0.4562994 +v 0.3346936 0.3660390 0.4478383 +v 0.4423352 0.4093530 0.1251123 +v 0.3362036 0.3684574 0.4658539 +v 0.3403298 0.3702278 0.4790423 +v 0.4116642 0.4069106 0.1131108 +v 0.4792702 0.3684574 0.4658539 +v 0.4751441 0.3702278 0.4790423 +v 0.3346936 0.3531107 0.4599181 +v 0.3809931 0.4093530 0.1251123 +v 0.3362036 0.3543427 0.4790423 +v 0.3403298 0.3552447 0.4930424 +v 0.4077369 0.4063845 0.1141943 +v 0.4792702 0.3543427 0.4790423 +v 0.4751441 0.3552447 0.4930424 +v 0.3346936 0.3396666 0.4639891 +v 0.4038097 0.4069106 0.1131108 +v 0.3362036 0.3396649 0.4834868 +v 0.3403298 0.3396636 0.4977603 +v 0.4381682 0.4088076 0.1261018 +v 0.4792702 0.3396649 0.4834868 +v 0.4751441 0.3396636 0.4977603 +v 0.3346936 0.3262231 0.4598953 +v 0.4344808 0.4093530 0.1251123 +v 0.3362036 0.3249877 0.4790173 +v 0.3403298 0.3240833 0.4930157 +v 0.3773053 0.4088076 0.1261024 +v 0.4792702 0.3249877 0.4790173 +v 0.4751441 0.3240833 0.4930157 +v 0.3346936 0.3132971 0.4477937 +v 0.3731387 0.4093530 0.1251123 +v 0.3362036 0.3108755 0.4658055 +v 0.3403298 0.3091026 0.4789906 +v 0.4690791 0.4069106 0.1131108 +v 0.4792702 0.3108755 0.4658055 +v 0.4751441 0.3091026 0.4789906 +v 0.3346936 0.3013851 0.4281498 +v 0.3463948 0.4069106 0.1131108 +v 0.3362036 0.2978703 0.4443582 +v 0.3403298 0.2952973 0.4562239 +v 0.4423352 0.4160129 0.1694471 +v 0.4792702 0.2978703 0.4443582 +v 0.4751441 0.2952973 0.4562239 +v 0.3346936 0.2909449 0.4017176 +v 0.4116642 0.4143769 0.1562071 +v 0.3362036 0.2864720 0.4155007 +v 0.3403298 0.2831977 0.4255907 +v 0.3809931 0.4160129 0.1694471 +v 0.4792702 0.2864720 0.4155007 +v 0.4751441 0.2831977 0.4255907 +v 0.3346936 0.2823778 0.3695137 +v 0.3773053 0.4154155 0.1700897 +v 0.3362036 0.2771188 0.3803420 +v 0.3403298 0.2732690 0.3882682 +v 0.3731387 0.4160129 0.1694471 +v 0.4792702 0.2771188 0.3803420 +v 0.4751441 0.2732690 0.3882682 +v 0.3346936 0.2760131 0.3327757 +v 0.4381682 0.4154155 0.1700897 +v 0.3362036 0.2701700 0.3402322 +v 0.3403298 0.2658925 0.3456906 +v 0.4344808 0.4160129 0.1694471 +v 0.4792702 0.2701700 0.3402322 +v 0.4751441 0.2658925 0.3456906 +v 0.3346936 0.2720951 0.2929148 +v 0.4077369 0.4137924 0.1569530 +v 0.3362036 0.2658927 0.2967135 +v 0.3403298 0.2613519 0.2994943 +v 0.4038097 0.4143769 0.1562071 +v 0.4792702 0.2658927 0.2967135 +v 0.4751441 0.2613519 0.2994943 +v 0.4690791 0.4143769 0.1562071 +v 0.3463948 0.4143769 0.1562071 +v 0.4423352 0.4197397 0.2169357 +v 0.4116642 0.4189728 0.2029661 +v 0.3809931 0.4197397 0.2169357 +v 0.4077369 0.4183521 0.2033461 +v 0.4038097 0.4189728 0.2029661 +v 0.3773053 0.4191130 0.2172064 +v 0.3731387 0.4197397 0.2169357 +v 0.4381686 0.4191130 0.2172064 +v 0.4344808 0.4197397 0.2169357 +v 0.4690791 0.4189728 0.2029661 +v 0.3463948 0.4189728 0.2029661 +v 0.4423352 0.4203898 0.2657530 +v 0.4116642 0.4205217 0.2515909 +v 0.3809931 0.4203898 0.2657530 +v 0.3773053 0.4197582 0.2656421 +v 0.3731387 0.4203898 0.2657530 +v 0.4381686 0.4197582 0.2656421 +v 0.4344808 0.4203898 0.2657530 +v 0.4077369 0.4198889 0.2515904 +v 0.4038097 0.4205217 0.2515909 +v 0.4690791 0.4205217 0.2515909 +v 0.3463948 0.4205217 0.2515909 +v 0.4423352 0.4179386 0.3140239 +v 0.4116642 0.4189640 0.3002131 +v 0.3809931 0.4179386 0.3140239 +v 0.4077369 0.4183435 0.2998320 +v 0.4038097 0.4189640 0.3002131 +v 0.4381686 0.4173262 0.3135352 +v 0.4344808 0.4179386 0.3140239 +v 0.3773053 0.4173262 0.3135352 +v 0.3731387 0.4179386 0.3140239 +v 0.4690791 0.4189640 0.3002131 +v 0.3463948 0.4189640 0.3002131 +v 0.4423352 0.4124803 0.3598929 +v 0.4116642 0.4143600 0.3469644 +v 0.3809931 0.4124803 0.3598929 +v 0.3773053 0.4119104 0.3590448 +v 0.3731387 0.4124803 0.3598929 +v 0.4381686 0.4119104 0.3590448 +v 0.4344808 0.4124803 0.3598929 +v 0.4077369 0.4137752 0.3462174 +v 0.4038097 0.4143600 0.3469644 +v 0.4690791 0.4143598 0.3469639 +v 0.3463948 0.4143598 0.3469639 +v 0.4423352 0.4042242 0.4015974 +v 0.4116642 0.4068860 0.3900477 +v 0.3809931 0.4042242 0.4015974 +v 0.4381686 0.4037192 0.4004225 +v 0.4344808 0.4042242 0.4015974 +v 0.4077369 0.4063600 0.3889630 +v 0.4038097 0.4068860 0.3900477 +v 0.3773053 0.4037192 0.4004225 +v 0.3731387 0.4042242 0.4015974 +v 0.4690791 0.4068860 0.3900477 +v 0.3463948 0.4068860 0.3900477 +v 0.4423352 0.3934883 0.4375341 +v 0.4116642 0.3968296 0.4278073 +v 0.3809931 0.3934883 0.4375341 +v 0.4077369 0.3963822 0.4264274 +v 0.4038097 0.3968296 0.4278073 +v 0.4381686 0.3930672 0.4360781 +v 0.4344808 0.3934883 0.4375341 +v 0.3773053 0.3930672 0.4360781 +v 0.3731387 0.3934883 0.4375341 +v 0.4690791 0.3968296 0.4278073 +v 0.3463948 0.3968296 0.4278073 +v 0.4423352 0.3806846 0.4663226 +v 0.4116642 0.3845771 0.4587927 +v 0.3809931 0.3806846 0.4663226 +v 0.3773053 0.3803637 0.4646415 +v 0.3731387 0.3806846 0.4663226 +v 0.4381686 0.3803637 0.4646415 +v 0.4344808 0.3806846 0.4663226 +v 0.4077369 0.3842257 0.4571704 +v 0.4038097 0.3845771 0.4587927 +v 0.4690791 0.3845771 0.4587922 +v 0.3463948 0.3845771 0.4587927 +v 0.4423352 0.3663053 0.4868565 +v 0.4116642 0.3705995 0.4818128 +v 0.3809931 0.3663053 0.4868565 +v 0.4077369 0.3703576 0.4800100 +v 0.4038097 0.3705995 0.4818128 +v 0.3773053 0.3660970 0.4850145 +v 0.3731387 0.3663053 0.4868565 +v 0.4381686 0.3660970 0.4850145 +v 0.4344808 0.3663053 0.4868565 +v 0.4690791 0.3705995 0.4818123 +v 0.3463948 0.3705995 0.4818123 +v 0.4423352 0.3509030 0.4983464 +v 0.4116642 0.3554339 0.4959825 +v 0.3809931 0.3509030 0.4983464 +v 0.3773053 0.3508152 0.4964148 +v 0.3731387 0.3509030 0.4983464 +v 0.4381686 0.3508154 0.4964148 +v 0.4344808 0.3509030 0.4983464 +v 0.4077369 0.3553106 0.4940694 +v 0.4038097 0.3554339 0.4959825 +v 0.4690791 0.3554340 0.4959825 +v 0.3463948 0.3554340 0.4959825 +v 0.4423352 0.3350698 0.5003515 +v 0.4116642 0.3396631 0.5007581 +v 0.3809931 0.3350698 0.5003515 +v 0.4077369 0.3396633 0.4988069 +v 0.4038097 0.3396631 0.5007581 +v 0.4381686 0.3351058 0.4984041 +v 0.4344808 0.3350698 0.5003515 +v 0.3773053 0.3351058 0.4984041 +v 0.3731387 0.3350698 0.5003515 +v 0.4690791 0.3396633 0.5007581 +v 0.3463948 0.3396631 0.5007581 +v 0.4423352 0.3194138 0.4927939 +v 0.4116642 0.3238932 0.4959554 +v 0.3809931 0.3194138 0.4927939 +v 0.3773053 0.3195725 0.4909052 +v 0.3731387 0.3194138 0.4927939 +v 0.4381686 0.3195725 0.4909052 +v 0.4344808 0.3194138 0.4927939 +v 0.4077369 0.3240168 0.4940427 +v 0.4038097 0.3238932 0.4959554 +v 0.4690791 0.3238934 0.4959554 +v 0.3463948 0.3238934 0.4959559 +v 0.4423352 0.3045369 0.4759640 +v 0.4116642 0.3087302 0.4817596 +v 0.3809931 0.3045369 0.4759640 +v 0.4381686 0.3048120 0.4742074 +v 0.4344808 0.3045369 0.4759640 +v 0.4077369 0.3089725 0.4799573 +v 0.4038097 0.3087302 0.4817596 +v 0.3773053 0.3048120 0.4742074 +v 0.3731387 0.3045369 0.4759646 +v 0.4690791 0.3087302 0.4817596 +v 0.3463948 0.3087302 0.4817596 +v 0.4423352 0.2910108 0.4505093 +v 0.4116642 0.2947568 0.4587161 +v 0.3809931 0.2910108 0.4505093 +v 0.4077369 0.2951084 0.4570943 +v 0.4038097 0.2947568 0.4587161 +v 0.4381686 0.2913917 0.4489523 +v 0.4344808 0.2910108 0.4505093 +v 0.3773053 0.2913917 0.4489523 +v 0.3731387 0.2910108 0.4505093 +v 0.4690791 0.2947568 0.4587155 +v 0.3463948 0.2947568 0.4587161 +v 0.4423352 0.2793551 0.4174079 +v 0.4116642 0.2825098 0.4277099 +v 0.3809931 0.2793551 0.4174079 +v 0.3773053 0.2798273 0.4161096 +v 0.3731387 0.2793551 0.4174079 +v 0.4381686 0.2798273 0.4161096 +v 0.4344808 0.2793551 0.4174079 +v 0.4077369 0.2829574 0.4263306 +v 0.4038097 0.2825098 0.4277099 +v 0.4690791 0.2825098 0.4277099 +v 0.3463948 0.2825098 0.4277099 +v 0.4423352 0.2700180 0.3779309 +v 0.4116642 0.2724603 0.3899329 +v 0.3809931 0.2700180 0.3779314 +v 0.4077369 0.2729865 0.3888494 +v 0.4038097 0.2724603 0.3899329 +v 0.3773053 0.2705632 0.3769414 +v 0.3731387 0.2700180 0.3779309 +v 0.4381686 0.2705632 0.3769414 +v 0.4344808 0.2700180 0.3779314 +v 0.4690791 0.2724603 0.3899329 +v 0.3463948 0.2724603 0.3899329 +v 0.4423352 0.2633581 0.3335967 +v 0.4116642 0.2649941 0.3468367 +v 0.3809931 0.2633581 0.3335967 +v 0.4077369 0.2655788 0.3460908 +v 0.4038097 0.2649941 0.3468367 +v 0.4381686 0.2639555 0.3329540 +v 0.4344808 0.2633581 0.3335967 +v 0.3773053 0.2639555 0.3329540 +v 0.3731387 0.2633581 0.3335967 +v 0.4690791 0.2649941 0.3468367 +v 0.3463948 0.2649941 0.3468367 +v 0.4344808 0.2596315 0.2861081 +v 0.4038097 0.2603982 0.3000777 +v 0.3731387 0.2596315 0.2861081 +v 0.3773053 0.2602580 0.2858373 +v 0.3809931 0.2596315 0.2861081 +v 0.4381686 0.2602580 0.2858373 +v 0.4423352 0.2596315 0.2861081 +v 0.4077369 0.2610189 0.2996977 +v 0.4116642 0.2603982 0.3000777 +v 0.4690791 0.2603983 0.3000777 +v 0.3463948 0.2603983 0.3000777 +v 0.4423352 0.2589813 0.2372907 +v 0.4116642 0.2588493 0.2514534 +v 0.3809931 0.2589813 0.2372907 +v 0.4077369 0.2594821 0.2514539 +v 0.4038097 0.2588493 0.2514534 +v 0.3773053 0.2596130 0.2374022 +v 0.3731387 0.2589813 0.2372907 +v 0.4381686 0.2596130 0.2374022 +v 0.4344808 0.2589813 0.2372907 +v 0.4690791 0.2588494 0.2514534 +v 0.3463948 0.2588494 0.2514534 +v 0.4344808 0.2614325 0.1890203 +v 0.4038097 0.2604070 0.2028312 +v 0.3731387 0.2614324 0.1890198 +v 0.4381686 0.2620449 0.1895091 +v 0.4423352 0.2614324 0.1890198 +v 0.4077369 0.2610275 0.2032123 +v 0.4116642 0.2604070 0.2028312 +v 0.3773053 0.2620449 0.1895091 +v 0.3809931 0.2614325 0.1890203 +v 0.4690791 0.2604070 0.2028312 +v 0.3463948 0.2604070 0.2028312 +v 0.4344808 0.2668909 0.1431513 +v 0.4038097 0.2650112 0.1560798 +v 0.3731387 0.2668909 0.1431513 +v 0.3773053 0.2674606 0.1439995 +v 0.3809931 0.2668909 0.1431513 +v 0.4381686 0.2674606 0.1439995 +v 0.4423352 0.2668909 0.1431513 +v 0.4077369 0.2655957 0.1568269 +v 0.4116642 0.2650112 0.1560798 +v 0.4690791 0.2650112 0.1560798 +v 0.3463948 0.2650112 0.1560804 +v 0.4423352 0.2751467 0.1014469 +v 0.4116642 0.2724852 0.1129966 +v 0.3809931 0.2751467 0.1014469 +v 0.4077369 0.2730112 0.1140807 +v 0.4038097 0.2724852 0.1129966 +v 0.4381686 0.2756519 0.1026217 +v 0.4344808 0.2751467 0.1014469 +v 0.3773053 0.2756519 0.1026217 +v 0.3731387 0.2751467 0.1014469 +v 0.4690791 0.2724852 0.1129966 +v 0.3463948 0.2724852 0.1129966 +v 0.4423352 0.2858829 0.0655102 +v 0.4116642 0.2825416 0.0752370 +v 0.3809931 0.2858829 0.0655102 +v 0.3773053 0.2863040 0.0669662 +v 0.3731387 0.2858829 0.0655102 +v 0.4381686 0.2863040 0.0669662 +v 0.4344808 0.2858829 0.0655102 +v 0.4077369 0.2829888 0.0766169 +v 0.4038097 0.2825416 0.0752370 +v 0.4690791 0.2825416 0.0752370 +v 0.3463948 0.2825416 0.0752370 +v 0.4423352 0.2986865 0.0367212 +v 0.4116642 0.2947938 0.0442516 +v 0.3809931 0.2986865 0.0367212 +v 0.4381686 0.2990073 0.0384028 +v 0.4344808 0.2986865 0.0367212 +v 0.4077369 0.2951453 0.0458739 +v 0.4038097 0.2947938 0.0442516 +v 0.3773053 0.2990073 0.0384028 +v 0.3731387 0.2986865 0.0367212 +v 0.4690791 0.2947938 0.0442516 +v 0.3463948 0.2947938 0.0442516 +v 0.4423352 0.3443013 0.0026928 +v 0.4116642 0.3397079 0.0022861 +v 0.3809931 0.3443013 0.0026928 +v 0.4077369 0.3397077 0.0042363 +v 0.4038097 0.3397079 0.0022861 +v 0.3773053 0.3442652 0.0046402 +v 0.3731387 0.3443013 0.0026928 +v 0.4381686 0.3442652 0.0046402 +v 0.4344808 0.3443013 0.0026928 +v 0.4690791 0.3397077 0.0022861 +v 0.3463948 0.3397077 0.0022861 +v 0.4423352 0.3284680 0.0046973 +v 0.4116642 0.3239371 0.0070612 +v 0.3809931 0.3284680 0.0046973 +v 0.3773053 0.3285558 0.0066295 +v 0.3731387 0.3284680 0.0046973 +v 0.4381686 0.3285558 0.0066295 +v 0.4344808 0.3284680 0.0046973 +v 0.4077369 0.3240604 0.0089749 +v 0.4038097 0.3239371 0.0070612 +v 0.4690791 0.3239371 0.0070617 +v 0.3463948 0.3239371 0.0070617 +v 0.4423352 0.3130657 0.0161873 +v 0.4116642 0.3087715 0.0212314 +v 0.3809931 0.3130657 0.0161873 +v 0.4077369 0.3090134 0.0230343 +v 0.4038097 0.3087715 0.0212314 +v 0.4381686 0.3132740 0.0180292 +v 0.4344808 0.3130657 0.0161873 +v 0.3773053 0.3132740 0.0180292 +v 0.3731387 0.3130657 0.0161873 +v 0.4690791 0.3087715 0.0212314 +v 0.3463948 0.3087715 0.0212314 +v 0.3459665 0.2582843 0.2563877 +v 0.3459665 0.2582852 0.2465179 +v 0.3445835 0.2585428 0.2514534 +v 0.4695074 0.2582852 0.2465179 +v 0.4695074 0.2582845 0.2563877 +v 0.4708904 0.2585428 0.2514534 +v 0.3459665 0.2595405 0.2073312 +v 0.3459665 0.2601659 0.1976511 +v 0.3445835 0.2601063 0.2026469 +v 0.4695074 0.2601659 0.1976511 +v 0.4695074 0.2595405 0.2073312 +v 0.4708904 0.2601063 0.2026469 +v 0.3459665 0.2638767 0.1599725 +v 0.3459665 0.2651025 0.1508546 +v 0.3445835 0.2647280 0.1557183 +v 0.4695074 0.2651025 0.1508546 +v 0.4695074 0.2638767 0.1599725 +v 0.4708904 0.2647280 0.1557183 +v 0.3459665 0.2711260 0.1161320 +v 0.3459660 0.2729054 0.1079269 +v 0.3445835 0.2722302 0.1124720 +v 0.4695074 0.2729054 0.1079269 +v 0.4695074 0.2711260 0.1161320 +v 0.4708904 0.2722302 0.1124720 +v 0.3459660 0.2810103 0.0774943 +v 0.3459660 0.2832744 0.0705169 +v 0.3445835 0.2823247 0.0745689 +v 0.4695074 0.2832744 0.0705169 +v 0.4695074 0.2810103 0.0774943 +v 0.4708904 0.2823247 0.0745689 +v 0.3459660 0.2931492 0.0455444 +v 0.3459660 0.2958114 0.0400631 +v 0.3445835 0.2946235 0.0434660 +v 0.4695074 0.2958114 0.0400631 +v 0.4695074 0.2931492 0.0455444 +v 0.4708904 0.2946235 0.0434660 +v 0.3459660 0.3070766 0.0215104 +v 0.3459660 0.3100344 0.0177362 +v 0.3445835 0.3086541 0.0203589 +v 0.4695074 0.3100344 0.0177362 +v 0.4695074 0.3070766 0.0215104 +v 0.4708904 0.3086541 0.0203589 +v 0.3459660 0.3222570 0.0063158 +v 0.3459660 0.3253970 0.0043929 +v 0.3445835 0.3238771 0.0061348 +v 0.4695074 0.3253970 0.0043929 +v 0.4695074 0.3222570 0.0063158 +v 0.4708904 0.3238771 0.0061348 +v 0.3459660 0.3381073 0.0005437 +v 0.3459660 0.3413086 0.0005464 +v 0.3445835 0.3397077 0.0013412 +v 0.4695074 0.3413086 0.0005464 +v 0.4695074 0.3381073 0.0005437 +v 0.4708904 0.3397077 0.0013412 +v 0.3459660 0.3540183 0.0044168 +v 0.3459660 0.3571577 0.0063457 +v 0.3445835 0.3555374 0.0061614 +v 0.4695074 0.3571577 0.0063457 +v 0.4695074 0.3540183 0.0044168 +v 0.4708904 0.3555374 0.0061614 +v 0.3459660 0.3693784 0.0177862 +v 0.3459660 0.3723355 0.0215663 +v 0.3445835 0.3707580 0.0204110 +v 0.4695074 0.3723355 0.0215658 +v 0.4695074 0.3693784 0.0177862 +v 0.4708904 0.3707580 0.0204110 +v 0.3459660 0.3835974 0.0401376 +v 0.3459660 0.3862586 0.0456238 +v 0.3445835 0.3847845 0.0435421 +v 0.4695074 0.3862586 0.0456238 +v 0.4695074 0.3835974 0.0401376 +v 0.4708904 0.3847845 0.0435421 +v 0.3459660 0.3961290 0.0706131 +v 0.3459660 0.3983919 0.0775944 +v 0.3445835 0.3970778 0.0746656 +v 0.4695074 0.3983919 0.0775938 +v 0.4695074 0.3961290 0.0706131 +v 0.4708904 0.3970778 0.0746656 +v 0.3459660 0.4064913 0.1080400 +v 0.3459660 0.4082691 0.1162483 +v 0.3445835 0.4071654 0.1125862 +v 0.4695074 0.4082691 0.1162483 +v 0.4695074 0.4064913 0.1080400 +v 0.4708904 0.4071654 0.1125862 +v 0.3459660 0.4142864 0.1509813 +v 0.3459660 0.4155107 0.1601014 +v 0.3445835 0.4146601 0.1558455 +v 0.4695074 0.4155107 0.1601014 +v 0.4695074 0.4142864 0.1509813 +v 0.4708904 0.4146601 0.1558455 +v 0.3459660 0.4192146 0.1977860 +v 0.3459660 0.4198384 0.2074671 +v 0.3445835 0.4192735 0.2027812 +v 0.4695074 0.4198384 0.2074671 +v 0.4695074 0.4192146 0.1977860 +v 0.4708904 0.4192735 0.2027812 +v 0.3459660 0.4210867 0.2466560 +v 0.3459660 0.4210858 0.2565264 +v 0.3445835 0.4208282 0.2515904 +v 0.4695074 0.4210858 0.2565264 +v 0.4695074 0.4210867 0.2466560 +v 0.4708904 0.4208282 0.2515904 +v 0.3459660 0.4198305 0.2957131 +v 0.3459660 0.4192050 0.3053932 +v 0.3445835 0.4192646 0.3003968 +v 0.4695074 0.4192050 0.3053932 +v 0.4695074 0.4198305 0.2957131 +v 0.4708904 0.4192646 0.3003968 +v 0.3459660 0.4154943 0.3430718 +v 0.3459660 0.4142684 0.3521897 +v 0.3445835 0.4146430 0.3473254 +v 0.4695074 0.4142684 0.3521897 +v 0.4695074 0.4154943 0.3430718 +v 0.4708904 0.4146430 0.3473254 +v 0.3459660 0.4082449 0.3869123 +v 0.3459660 0.4064658 0.3951174 +v 0.3445835 0.4071408 0.3905723 +v 0.4695074 0.4064658 0.3951174 +v 0.4695074 0.4082449 0.3869123 +v 0.4708904 0.4071408 0.3905723 +v 0.3459660 0.3983608 0.4255499 +v 0.3459660 0.3960966 0.4325269 +v 0.3445835 0.3970463 0.4284754 +v 0.4695074 0.3960966 0.4325269 +v 0.4695074 0.3983608 0.4255499 +v 0.4708904 0.3970463 0.4284754 +v 0.3459665 0.3862218 0.4574993 +v 0.3459665 0.3835595 0.4629806 +v 0.3445835 0.3847475 0.4595783 +v 0.4695074 0.3835595 0.4629806 +v 0.4695074 0.3862218 0.4574993 +v 0.4708904 0.3847475 0.4595783 +v 0.3459665 0.3722944 0.4815334 +v 0.3459665 0.3693366 0.4853081 +v 0.3445835 0.3707169 0.4826854 +v 0.4695074 0.3693366 0.4853081 +v 0.4695074 0.3722944 0.4815334 +v 0.4708904 0.3707169 0.4826854 +v 0.3459665 0.3571140 0.4967285 +v 0.3459665 0.3539740 0.4986514 +v 0.3445835 0.3554938 0.4969095 +v 0.4695074 0.3539740 0.4986514 +v 0.4695074 0.3571140 0.4967285 +v 0.4708904 0.3554938 0.4969095 +v 0.3459665 0.3412637 0.5025001 +v 0.3459665 0.3380624 0.5024974 +v 0.3445835 0.3396633 0.5017031 +v 0.4695074 0.3380624 0.5024974 +v 0.4695074 0.3412637 0.5025001 +v 0.4708904 0.3396633 0.5017031 +v 0.3459665 0.3253529 0.4986270 +v 0.3459665 0.3222131 0.4966986 +v 0.3445835 0.3238336 0.4968823 +v 0.4695074 0.3222133 0.4966986 +v 0.4695074 0.3253529 0.4986270 +v 0.4708904 0.3238336 0.4968823 +v 0.3459665 0.3099926 0.4852575 +v 0.3459665 0.3070355 0.4814779 +v 0.3445835 0.3086130 0.4826332 +v 0.4695074 0.3070355 0.4814779 +v 0.4695074 0.3099926 0.4852575 +v 0.4708904 0.3086130 0.4826327 +v 0.3459665 0.2957735 0.4629061 +v 0.3459665 0.2931123 0.4574199 +v 0.3445835 0.2945866 0.4595017 +v 0.4695074 0.2931123 0.4574199 +v 0.4695074 0.2957735 0.4629061 +v 0.4708904 0.2945866 0.4595017 +v 0.3459665 0.2832421 0.4324312 +v 0.3459665 0.2809791 0.4254499 +v 0.3445835 0.2822933 0.4283781 +v 0.4695074 0.2809791 0.4254499 +v 0.4695074 0.2832421 0.4324306 +v 0.4708904 0.2822933 0.4283781 +v 0.3459665 0.2728796 0.3950038 +v 0.3459665 0.2711019 0.3867954 +v 0.3445835 0.2722055 0.3904581 +v 0.4695074 0.2711020 0.3867954 +v 0.4695074 0.2728796 0.3950038 +v 0.4708904 0.2722055 0.3904576 +v 0.3459665 0.2650845 0.3520624 +v 0.3459665 0.2638603 0.3429424 +v 0.3445835 0.2647111 0.3471988 +v 0.4695074 0.2638603 0.3429424 +v 0.4695074 0.2650845 0.3520624 +v 0.4708904 0.2647111 0.3471988 +v 0.3459665 0.2601562 0.3052572 +v 0.3459665 0.2595327 0.2955766 +v 0.3445835 0.2600977 0.3002625 +v 0.4695074 0.2595327 0.2955766 +v 0.4695074 0.2601562 0.3052572 +v 0.4708904 0.2600977 0.3002625 +v 0.3770925 0.2742413 0.1055195 +v 0.3770925 0.2761679 0.0976433 +v 0.3770925 0.2847371 0.0689598 +v 0.3770925 0.2871252 0.0623939 +v 0.3770925 0.2973445 0.0394156 +v 0.3770925 0.3001021 0.0344122 +v 0.3770925 0.3115789 0.0180232 +v 0.3770925 0.3146001 0.0147743 +v 0.3770925 0.3268937 0.0056031 +v 0.3770925 0.3300623 0.0042341 +v 0.3770925 0.3426999 0.0026341 +v 0.3770925 0.3458943 0.0031973 +v 0.3770925 0.3583903 0.0092294 +v 0.3770925 0.3614877 0.0117036 +v 0.3770925 0.3733617 0.0251361 +v 0.3770925 0.3762432 0.0294257 +v 0.3770925 0.3870393 0.0497427 +v 0.3770925 0.3895938 0.0556833 +v 0.3770925 0.3988969 0.0821036 +v 0.3770925 0.4010266 0.0894665 +v 0.3770925 0.4084791 0.1209750 +v 0.3770925 0.4101019 0.1294775 +v 0.3770925 0.4154176 0.1648629 +v 0.3770925 0.4164714 0.1741781 +v 0.3770925 0.4194457 0.2120818 +v 0.3770925 0.4198897 0.2218516 +v 0.3770925 0.4204087 0.2608159 +v 0.3770925 0.4202260 0.2706651 +v 0.3770925 0.4182696 0.3091929 +v 0.3770925 0.4174671 0.3187430 +v 0.3770925 0.4131105 0.3553538 +v 0.3770925 0.4117192 0.3642380 +v 0.3770925 0.4051297 0.3975242 +v 0.3770925 0.4032031 0.4054009 +v 0.3770925 0.3946339 0.4340845 +v 0.3770925 0.3922460 0.4406504 +v 0.3770930 0.3820265 0.4636281 +v 0.3770930 0.3792690 0.4686315 +v 0.3770930 0.3677921 0.4850210 +v 0.3770930 0.3647708 0.4882695 +v 0.3770930 0.3524773 0.4974407 +v 0.3770930 0.3493086 0.4988096 +v 0.3770930 0.3366711 0.5004097 +v 0.3770930 0.3334767 0.4998464 +v 0.3770930 0.3209807 0.4938144 +v 0.3770930 0.3178833 0.4913401 +v 0.3770930 0.3060091 0.4779076 +v 0.3770930 0.3031278 0.4736181 +v 0.3770930 0.2923317 0.4533011 +v 0.3770930 0.2897770 0.4473609 +v 0.3770930 0.2804741 0.4209401 +v 0.3770930 0.2783444 0.4135778 +v 0.3770930 0.2708919 0.3820687 +v 0.3770930 0.2692691 0.3735668 +v 0.3770930 0.2594812 0.2811922 +v 0.3770930 0.2599252 0.2909620 +v 0.3770930 0.2639534 0.3381803 +v 0.3770930 0.2628998 0.3288656 +v 0.3770930 0.2676518 0.1388063 +v 0.3770930 0.2662605 0.1476905 +v 0.3770930 0.2619039 0.1843013 +v 0.3770930 0.2611014 0.1938514 +v 0.3770930 0.2589623 0.2422284 +v 0.3770930 0.2591450 0.2323792 +v 0.4077369 0.2716563 0.1172215 +v 0.4077369 0.2734346 0.1090208 +v 0.4077369 0.2814612 0.0788818 +v 0.4077369 0.2837242 0.0719081 +v 0.4077369 0.2935038 0.0471765 +v 0.4077369 0.2961646 0.0416985 +v 0.4077369 0.3073210 0.0233246 +v 0.4077369 0.3102774 0.0195520 +v 0.4077369 0.3223820 0.0082415 +v 0.4077369 0.3255202 0.0063202 +v 0.4077369 0.3381080 0.0025080 +v 0.4077369 0.3413076 0.0025107 +v 0.4077369 0.3538947 0.0063441 +v 0.4077369 0.3570325 0.0082709 +v 0.4077369 0.3691352 0.0196015 +v 0.4077369 0.3720909 0.0233795 +v 0.4077369 0.3832441 0.0417724 +v 0.4077369 0.3859039 0.0472554 +v 0.4077369 0.3956790 0.0720033 +v 0.4077369 0.3979406 0.0789807 +v 0.4077369 0.4059620 0.1091333 +v 0.4077369 0.4077389 0.1173373 +v 0.4077369 0.4136982 0.1517348 +v 0.4077369 0.4149218 0.1608500 +v 0.4077369 0.4185900 0.1981714 +v 0.4077369 0.4192133 0.2078477 +v 0.4077369 0.4204496 0.2466582 +v 0.4077369 0.4204487 0.2565231 +v 0.4077369 0.4192056 0.2953320 +v 0.4077369 0.4185805 0.3050072 +v 0.4077369 0.4149055 0.3423220 +v 0.4077369 0.4136802 0.3514350 +v 0.4077369 0.4077147 0.3858228 +v 0.4077369 0.4059364 0.3940235 +v 0.4077369 0.3979098 0.4241625 +v 0.4077369 0.3956467 0.4311362 +v 0.4077369 0.3858672 0.4558672 +v 0.4077369 0.3832063 0.4613458 +v 0.4077369 0.3720500 0.4797197 +v 0.4077369 0.3690936 0.4834922 +v 0.4077369 0.3569889 0.4948022 +v 0.4077369 0.3538508 0.4967241 +v 0.4077369 0.3412630 0.5005358 +v 0.4077369 0.3380634 0.5005331 +v 0.4077369 0.3254763 0.4967002 +v 0.4077369 0.3223385 0.4947729 +v 0.4077369 0.3102358 0.4834417 +v 0.4077369 0.3072803 0.4796643 +v 0.4077369 0.2961269 0.4612713 +v 0.4077369 0.2934671 0.4557884 +v 0.4077369 0.2836921 0.4310405 +v 0.4077369 0.2814303 0.4240630 +v 0.4077369 0.2734090 0.3939104 +v 0.4077369 0.2716321 0.3857064 +v 0.4077369 0.2601576 0.2951961 +v 0.4077369 0.2607810 0.3048723 +v 0.4077369 0.2656730 0.3513089 +v 0.4077369 0.2644494 0.3421937 +v 0.4077369 0.2656908 0.1516092 +v 0.4077369 0.2644656 0.1607217 +v 0.4077369 0.2607907 0.1980371 +v 0.4077369 0.2601656 0.2077123 +v 0.4077369 0.2589216 0.2563856 +v 0.4077369 0.2589223 0.2465206 +v 0.4383809 0.2742413 0.1055195 +v 0.4383809 0.2761679 0.0976433 +v 0.4383809 0.2847371 0.0689598 +v 0.4383809 0.2871252 0.0623939 +v 0.4383809 0.2973445 0.0394156 +v 0.4383809 0.3001021 0.0344122 +v 0.4383809 0.3115789 0.0180232 +v 0.4383809 0.3146001 0.0147743 +v 0.4383809 0.3268937 0.0056031 +v 0.4383809 0.3300623 0.0042341 +v 0.4383809 0.3426999 0.0026341 +v 0.4383809 0.3458943 0.0031973 +v 0.4383809 0.3583903 0.0092294 +v 0.4383809 0.3614877 0.0117036 +v 0.4383809 0.3733617 0.0251361 +v 0.4383809 0.3762432 0.0294257 +v 0.4383809 0.3870393 0.0497427 +v 0.4383809 0.3895938 0.0556833 +v 0.4383809 0.3988969 0.0821036 +v 0.4383809 0.4010266 0.0894665 +v 0.4383809 0.4084791 0.1209750 +v 0.4383809 0.4101019 0.1294775 +v 0.4383809 0.4154176 0.1648629 +v 0.4383809 0.4164714 0.1741781 +v 0.4383809 0.4194457 0.2120818 +v 0.4383809 0.4198897 0.2218516 +v 0.4383809 0.4204087 0.2608159 +v 0.4383809 0.4202260 0.2706651 +v 0.4383809 0.4182696 0.3091929 +v 0.4383809 0.4174671 0.3187430 +v 0.4383809 0.4131105 0.3553538 +v 0.4383809 0.4117192 0.3642380 +v 0.4383809 0.4051297 0.3975242 +v 0.4383809 0.4032031 0.4054009 +v 0.4383809 0.3946339 0.4340845 +v 0.4383809 0.3922460 0.4406504 +v 0.4383809 0.3820265 0.4636281 +v 0.4383809 0.3792690 0.4686315 +v 0.4383809 0.3677921 0.4850210 +v 0.4383809 0.3647708 0.4882695 +v 0.4383809 0.3524773 0.4974407 +v 0.4383809 0.3493086 0.4988096 +v 0.4383809 0.3366711 0.5004097 +v 0.4383809 0.3334767 0.4998464 +v 0.4383809 0.3209807 0.4938144 +v 0.4383809 0.3178833 0.4913401 +v 0.4383809 0.3060091 0.4779076 +v 0.4383809 0.3031278 0.4736181 +v 0.4383809 0.2923317 0.4533011 +v 0.4383809 0.2897770 0.4473609 +v 0.4383809 0.2804741 0.4209401 +v 0.4383809 0.2783444 0.4135772 +v 0.4383809 0.2708919 0.3820687 +v 0.4383809 0.2692691 0.3735668 +v 0.4383809 0.2594812 0.2811922 +v 0.4383809 0.2599252 0.2909620 +v 0.4383809 0.2639534 0.3381803 +v 0.4383809 0.2628998 0.3288656 +v 0.4383809 0.2676518 0.1388063 +v 0.4383809 0.2662605 0.1476905 +v 0.4383809 0.2619039 0.1843013 +v 0.4383809 0.2611014 0.1938509 +v 0.4383809 0.2589623 0.2422284 +v 0.4383809 0.2591450 0.2323787 +v 0.3728969 0.2585089 0.2322656 +v 0.3728969 0.2583263 0.2421174 +v 0.3808061 0.2583263 0.2421169 +v 0.3808061 0.2585089 0.2322661 +v 0.4037821 0.2582852 0.2465196 +v 0.4037821 0.2582843 0.2563861 +v 0.4116918 0.2582843 0.2563861 +v 0.4116918 0.2582852 0.2465196 +v 0.4346678 0.2585089 0.2322661 +v 0.4346678 0.2583263 0.2421169 +v 0.4425770 0.2583263 0.2421169 +v 0.4425770 0.2585089 0.2322656 +v 0.4425770 0.2604846 0.1933599 +v 0.4425770 0.2612872 0.1838071 +v 0.4346678 0.2612872 0.1838076 +v 0.4346678 0.2604846 0.1933594 +v 0.4116918 0.2595407 0.2073290 +v 0.4116918 0.2601658 0.1976522 +v 0.4037821 0.2601658 0.1976522 +v 0.4037821 0.2595407 0.2073290 +v 0.3808061 0.2604846 0.1933594 +v 0.3808061 0.2612872 0.1838076 +v 0.3728969 0.2612872 0.1838071 +v 0.3728969 0.2604846 0.1933599 +v 0.3808061 0.2592943 0.2912354 +v 0.3808061 0.2588503 0.2814640 +v 0.3728969 0.2588503 0.2814635 +v 0.3728969 0.2592943 0.2912360 +v 0.4116918 0.2601562 0.3052556 +v 0.4116918 0.2595327 0.2955777 +v 0.4037821 0.2595327 0.2955777 +v 0.4037821 0.2601562 0.3052556 +v 0.4425770 0.2592943 0.2912354 +v 0.4425770 0.2588503 0.2814635 +v 0.4346678 0.2588503 0.2814640 +v 0.4346678 0.2592943 0.2912354 +v 0.4425770 0.2656865 0.1468374 +v 0.4425770 0.2670783 0.1379511 +v 0.4346678 0.2670781 0.1379517 +v 0.4346678 0.2656867 0.1468369 +v 0.4116918 0.2638768 0.1599704 +v 0.4116918 0.2651023 0.1508563 +v 0.4037821 0.2651023 0.1508563 +v 0.4037821 0.2638768 0.1599704 +v 0.3808061 0.2656867 0.1468369 +v 0.3808061 0.2670781 0.1379517 +v 0.3728969 0.2670781 0.1379511 +v 0.3728969 0.2656865 0.1468374 +v 0.4346678 0.2756595 0.0964598 +v 0.4346678 0.2737324 0.1043376 +v 0.4425770 0.2737324 0.1043376 +v 0.4425770 0.2756595 0.0964598 +v 0.4037821 0.2729050 0.1079274 +v 0.4037821 0.2711264 0.1161303 +v 0.4116918 0.2711264 0.1161303 +v 0.4116913 0.2729050 0.1079274 +v 0.3728969 0.2756595 0.0964598 +v 0.3728969 0.2737324 0.1043376 +v 0.3808061 0.2737324 0.1043376 +v 0.3808061 0.2756595 0.0964598 +v 0.4346678 0.2867013 0.0609271 +v 0.4346678 0.2843128 0.0674946 +v 0.4425770 0.2843127 0.0674946 +v 0.4425770 0.2867013 0.0609271 +v 0.4037821 0.2832741 0.0705180 +v 0.4037821 0.2810105 0.0774933 +v 0.4116913 0.2810105 0.0774933 +v 0.4116913 0.2832741 0.0705180 +v 0.3728969 0.2867013 0.0609271 +v 0.3728969 0.2843127 0.0674946 +v 0.3808061 0.2843128 0.0674946 +v 0.3808061 0.2867013 0.0609271 +v 0.4346678 0.2997791 0.0327187 +v 0.4346678 0.2970211 0.0377237 +v 0.4425770 0.2970209 0.0377237 +v 0.4425770 0.2997793 0.0327187 +v 0.4037821 0.2958111 0.0400642 +v 0.4037821 0.2931497 0.0455433 +v 0.4116913 0.2931497 0.0455433 +v 0.4116913 0.2958111 0.0400642 +v 0.3728969 0.2997793 0.0327187 +v 0.3728969 0.2970209 0.0377237 +v 0.3808061 0.2970211 0.0377237 +v 0.3808061 0.2997791 0.0327187 +v 0.4346678 0.3143907 0.0129193 +v 0.4346678 0.3113689 0.0161682 +v 0.4425770 0.3113687 0.0161682 +v 0.4425770 0.3143907 0.0129193 +v 0.4037821 0.3100340 0.0177367 +v 0.4037821 0.3070771 0.0215098 +v 0.4116913 0.3070771 0.0215098 +v 0.4116913 0.3100340 0.0177367 +v 0.3728969 0.3143907 0.0129193 +v 0.3728969 0.3113687 0.0161682 +v 0.3808061 0.3113689 0.0161682 +v 0.3808061 0.3143907 0.0129193 +v 0.4346678 0.3299742 0.0022889 +v 0.4346678 0.3268050 0.0036578 +v 0.4425770 0.3268048 0.0036578 +v 0.4425770 0.3299744 0.0022889 +v 0.4037821 0.3253964 0.0043929 +v 0.4037821 0.3222575 0.0063153 +v 0.4116913 0.3222575 0.0063153 +v 0.4116913 0.3253964 0.0043929 +v 0.3728969 0.3299744 0.0022889 +v 0.3728969 0.3268048 0.0036578 +v 0.3808061 0.3268050 0.0036578 +v 0.3808061 0.3299742 0.0022889 +v 0.4346678 0.3459310 0.0012363 +v 0.4346678 0.3427359 0.0006725 +v 0.4425770 0.3427359 0.0006731 +v 0.4425770 0.3459310 0.0012363 +v 0.4037821 0.3413081 0.0005464 +v 0.4037821 0.3381078 0.0005437 +v 0.4116913 0.3381078 0.0005437 +v 0.4116913 0.3413081 0.0005464 +v 0.3728969 0.3459310 0.0012363 +v 0.3728969 0.3427359 0.0006731 +v 0.3808061 0.3427359 0.0006725 +v 0.3808061 0.3459310 0.0012363 +v 0.4346678 0.3616476 0.0098018 +v 0.4346678 0.3585497 0.0073276 +v 0.4425770 0.3585497 0.0073276 +v 0.4425770 0.3616478 0.0098024 +v 0.4037821 0.3571573 0.0063446 +v 0.4037821 0.3540188 0.0044173 +v 0.4116913 0.3540188 0.0044173 +v 0.4116913 0.3571573 0.0063446 +v 0.3728969 0.3616478 0.0098024 +v 0.3728969 0.3585497 0.0073276 +v 0.3808061 0.3585497 0.0073276 +v 0.3808061 0.3616476 0.0098018 +v 0.4346678 0.3765205 0.0276571 +v 0.4346678 0.3736386 0.0233670 +v 0.4425770 0.3736386 0.0233664 +v 0.4425770 0.3765205 0.0276571 +v 0.4037821 0.3723351 0.0215653 +v 0.4037821 0.3693789 0.0177867 +v 0.4116913 0.3693789 0.0177867 +v 0.4116913 0.3723351 0.0215653 +v 0.3728969 0.3765205 0.0276571 +v 0.3728969 0.3736386 0.0233664 +v 0.3808061 0.3736386 0.0233670 +v 0.3808061 0.3765205 0.0276571 +v 0.4346678 0.3899778 0.0541154 +v 0.4346678 0.3874226 0.0481736 +v 0.4425770 0.3874226 0.0481736 +v 0.4425770 0.3899778 0.0541154 +v 0.4037821 0.3862583 0.0456227 +v 0.4037821 0.3835978 0.0401387 +v 0.4116913 0.3835978 0.0401387 +v 0.4116913 0.3862583 0.0456227 +v 0.3728969 0.3899778 0.0541154 +v 0.3728969 0.3874226 0.0481736 +v 0.3808061 0.3874226 0.0481736 +v 0.3808061 0.3899778 0.0541154 +v 0.4346678 0.4015022 0.0881595 +v 0.4346678 0.3993723 0.0807955 +v 0.4425770 0.3993721 0.0807950 +v 0.4425770 0.4015024 0.0881595 +v 0.4037821 0.3983915 0.0775928 +v 0.4037821 0.3961294 0.0706142 +v 0.4116913 0.3961294 0.0706142 +v 0.4116913 0.3983915 0.0775928 +v 0.3728969 0.4015024 0.0881595 +v 0.3728969 0.3993721 0.0807950 +v 0.3808061 0.3993723 0.0807955 +v 0.3808061 0.4015022 0.0881595 +v 0.4346678 0.4106512 0.1284815 +v 0.4346678 0.4090280 0.1199779 +v 0.4425770 0.4090280 0.1199779 +v 0.4425770 0.4106512 0.1284820 +v 0.4037821 0.4082689 0.1162472 +v 0.4037821 0.4064917 0.1080416 +v 0.4116913 0.4064917 0.1080416 +v 0.4116913 0.4082689 0.1162472 +v 0.3728969 0.4106512 0.1284820 +v 0.3728969 0.4090280 0.1199779 +v 0.3808061 0.4090280 0.1199779 +v 0.3808061 0.4106512 0.1284815 +v 0.4346678 0.4170730 0.1735322 +v 0.4346678 0.4160191 0.1642153 +v 0.4425770 0.4160191 0.1642153 +v 0.4425770 0.4170730 0.1735322 +v 0.4037821 0.4155105 0.1600998 +v 0.4037821 0.4142868 0.1509829 +v 0.4116913 0.4142868 0.1509829 +v 0.4116913 0.4155105 0.1600998 +v 0.3728969 0.4170730 0.1735322 +v 0.3728969 0.4160191 0.1642153 +v 0.3808061 0.4160191 0.1642153 +v 0.3808061 0.4170730 0.1735322 +v 0.4346678 0.4205208 0.2215797 +v 0.4346678 0.4200766 0.2118083 +v 0.4425770 0.4200766 0.2118078 +v 0.4425770 0.4205208 0.2215803 +v 0.4037821 0.4198384 0.2074660 +v 0.4037821 0.4192149 0.1977881 +v 0.4116913 0.4192149 0.1977881 +v 0.4116913 0.4198384 0.2074660 +v 0.3728969 0.4205208 0.2215803 +v 0.3728969 0.4200766 0.2118078 +v 0.3808061 0.4200766 0.2118083 +v 0.3808061 0.4205208 0.2215797 +v 0.4346678 0.4208622 0.2707782 +v 0.4346678 0.4210449 0.2609274 +v 0.4425770 0.4210447 0.2609268 +v 0.4425770 0.4208622 0.2707787 +v 0.4037821 0.4210858 0.2565247 +v 0.4037821 0.4210867 0.2466582 +v 0.4116913 0.4210867 0.2466582 +v 0.4116913 0.4210858 0.2565247 +v 0.3728969 0.4208622 0.2707787 +v 0.3728969 0.4210447 0.2609268 +v 0.3808061 0.4210449 0.2609274 +v 0.3808061 0.4208622 0.2707782 +v 0.4346678 0.4180839 0.3192367 +v 0.4346678 0.4188864 0.3096849 +v 0.4425770 0.4188864 0.3096844 +v 0.4425770 0.4180837 0.3192372 +v 0.4037821 0.4192052 0.3053915 +v 0.4037821 0.4198305 0.2957147 +v 0.4116913 0.4198305 0.2957147 +v 0.4116913 0.4192052 0.3053915 +v 0.3728969 0.4180837 0.3192372 +v 0.3728969 0.4188864 0.3096844 +v 0.3808061 0.4188864 0.3096849 +v 0.3808061 0.4180839 0.3192367 +v 0.4346678 0.4122930 0.3650926 +v 0.4346678 0.4136843 0.3562074 +v 0.4425770 0.4136844 0.3562068 +v 0.4425770 0.4122928 0.3650932 +v 0.4037821 0.4142686 0.3521880 +v 0.4037821 0.4154941 0.3430734 +v 0.4116913 0.4154941 0.3430734 +v 0.4116913 0.4142686 0.3521880 +v 0.3728969 0.4122928 0.3650932 +v 0.3728969 0.4136844 0.3562068 +v 0.3808061 0.4136843 0.3562074 +v 0.3808061 0.4122930 0.3650926 +v 0.4346678 0.4037116 0.4065845 +v 0.4346678 0.4056386 0.3987067 +v 0.4425770 0.4056386 0.3987062 +v 0.4425770 0.4037115 0.4065845 +v 0.4037821 0.4064659 0.3951163 +v 0.4037821 0.4082446 0.3869139 +v 0.4116913 0.4082446 0.3869139 +v 0.4116913 0.4064659 0.3951163 +v 0.3728969 0.4037115 0.4065845 +v 0.3728969 0.4056386 0.3987062 +v 0.3808061 0.4056386 0.3987067 +v 0.3808061 0.4037116 0.4065845 +v 0.4346678 0.3926699 0.4421167 +v 0.4346678 0.3950583 0.4355497 +v 0.4425770 0.3950583 0.4355497 +v 0.4425770 0.3926697 0.4421172 +v 0.4037821 0.3960969 0.4325258 +v 0.4037821 0.3983603 0.4255510 +v 0.4116913 0.3983603 0.4255510 +v 0.4116913 0.3960969 0.4325258 +v 0.3728969 0.3926697 0.4421172 +v 0.3728969 0.3950583 0.4355497 +v 0.3808061 0.3950583 0.4355497 +v 0.3808061 0.3926699 0.4421167 +v 0.4346678 0.3795919 0.4703251 +v 0.4346678 0.3823499 0.4653206 +v 0.4425770 0.3823501 0.4653206 +v 0.4425770 0.3795919 0.4703256 +v 0.4037821 0.3835601 0.4629801 +v 0.4037821 0.3862213 0.4575004 +v 0.4116918 0.3862213 0.4575004 +v 0.4116918 0.3835601 0.4629801 +v 0.3728969 0.3795919 0.4703256 +v 0.3728969 0.3823501 0.4653206 +v 0.3808061 0.3823499 0.4653206 +v 0.3808061 0.3795919 0.4703251 +v 0.4346678 0.3649803 0.4901250 +v 0.4346678 0.3680021 0.4868755 +v 0.4425770 0.3680021 0.4868755 +v 0.4425770 0.3649801 0.4901250 +v 0.4037821 0.3693371 0.4853076 +v 0.4037821 0.3722939 0.4815345 +v 0.4116918 0.3722939 0.4815345 +v 0.4116918 0.3693371 0.4853076 +v 0.3728969 0.3649801 0.4901250 +v 0.3728969 0.3680021 0.4868755 +v 0.3808061 0.3680021 0.4868755 +v 0.3808061 0.3649803 0.4901250 +v 0.4346678 0.3493968 0.5007554 +v 0.4346678 0.3525660 0.4993859 +v 0.4425770 0.3525662 0.4993859 +v 0.4425770 0.3493966 0.5007554 +v 0.4037821 0.3539745 0.4986509 +v 0.4037821 0.3571134 0.4967290 +v 0.4116918 0.3571134 0.4967290 +v 0.4116918 0.3539745 0.4986509 +v 0.3728969 0.3493966 0.5007554 +v 0.3728969 0.3525662 0.4993859 +v 0.3808061 0.3525660 0.4993859 +v 0.3808061 0.3493968 0.5007554 +v 0.4346678 0.3334400 0.5018080 +v 0.4346678 0.3366349 0.5023712 +v 0.4425770 0.3366351 0.5023712 +v 0.4425770 0.3334400 0.5018080 +v 0.4037821 0.3380629 0.5024974 +v 0.4037821 0.3412631 0.5025001 +v 0.4116918 0.3412631 0.5025001 +v 0.4116918 0.3380629 0.5024974 +v 0.3728969 0.3334400 0.5018080 +v 0.3728969 0.3366351 0.5023712 +v 0.3808061 0.3366349 0.5023712 +v 0.3808061 0.3334400 0.5018080 +v 0.4346678 0.3177232 0.4932419 +v 0.4346678 0.3208211 0.4957161 +v 0.4425770 0.3208213 0.4957161 +v 0.4425770 0.3177232 0.4932419 +v 0.4037821 0.3222136 0.4966991 +v 0.4037821 0.3253522 0.4986270 +v 0.4116918 0.3253522 0.4986270 +v 0.4116918 0.3222136 0.4966991 +v 0.3728969 0.3177232 0.4932419 +v 0.3728969 0.3208213 0.4957161 +v 0.3808061 0.3208211 0.4957161 +v 0.3808061 0.3177232 0.4932419 +v 0.4346678 0.3028504 0.4753866 +v 0.4346678 0.3057324 0.4796768 +v 0.4425770 0.3057326 0.4796773 +v 0.4425770 0.3028503 0.4753866 +v 0.4037821 0.3070359 0.4814785 +v 0.4037821 0.3099921 0.4852570 +v 0.4116918 0.3099921 0.4852570 +v 0.4116918 0.3070359 0.4814785 +v 0.3728969 0.3028503 0.4753866 +v 0.3728969 0.3057326 0.4796773 +v 0.3808061 0.3057324 0.4796768 +v 0.3808061 0.3028504 0.4753866 +v 0.4346678 0.2893933 0.4489289 +v 0.4346678 0.2919484 0.4548701 +v 0.4425770 0.2919484 0.4548701 +v 0.4425770 0.2893931 0.4489283 +v 0.4037821 0.2931127 0.4574210 +v 0.4037821 0.2957732 0.4629050 +v 0.4116918 0.2957732 0.4629050 +v 0.4116918 0.2931127 0.4574210 +v 0.3728969 0.2893931 0.4489283 +v 0.3728969 0.2919484 0.4548701 +v 0.3808061 0.2919484 0.4548701 +v 0.3808061 0.2893933 0.4489289 +v 0.4346678 0.2778688 0.4148847 +v 0.4346678 0.2799989 0.4222488 +v 0.4425770 0.2799989 0.4222488 +v 0.4425770 0.2778686 0.4148842 +v 0.4037821 0.2809795 0.4254510 +v 0.4037821 0.2832416 0.4324296 +v 0.4116918 0.2832416 0.4324296 +v 0.4116918 0.2809795 0.4254510 +v 0.3728969 0.2778686 0.4148842 +v 0.3728969 0.2799989 0.4222488 +v 0.3808061 0.2799989 0.4222488 +v 0.3808061 0.2778688 0.4148847 +v 0.4346678 0.2687198 0.3745623 +v 0.4346678 0.2703429 0.3830658 +v 0.4425770 0.2703429 0.3830664 +v 0.4425770 0.2687198 0.3745617 +v 0.4037821 0.2711022 0.3867965 +v 0.4037821 0.2728793 0.3950021 +v 0.4116918 0.2728793 0.3950021 +v 0.4116918 0.2711022 0.3867965 +v 0.3728969 0.2687198 0.3745617 +v 0.3728969 0.2703429 0.3830664 +v 0.3808061 0.2703429 0.3830658 +v 0.3808061 0.2687198 0.3745623 +v 0.4346678 0.2622980 0.3295115 +v 0.4346678 0.2633521 0.3388284 +v 0.4425770 0.2633521 0.3388284 +v 0.4425770 0.2622980 0.3295110 +v 0.4037821 0.2638604 0.3429440 +v 0.4037821 0.2650842 0.3520608 +v 0.4116918 0.2650842 0.3520608 +v 0.4116918 0.2638604 0.3429440 +v 0.3728969 0.2622980 0.3295115 +v 0.3728969 0.2633521 0.3388284 +v 0.3808061 0.2633521 0.3388284 +v 0.3808061 0.2622980 0.3295115 +v 0.3463948 0.3554778 0.0070884 +v 0.4690791 0.3554778 0.0070884 +v 0.4038097 0.3554778 0.0070884 +v 0.4077369 0.3553542 0.0090016 +v 0.4344808 0.3599571 0.0102498 +v 0.4381682 0.3597984 0.0121385 +v 0.3731387 0.3599571 0.0102498 +v 0.3773053 0.3597984 0.0121385 +v 0.3809931 0.3599571 0.0102498 +v 0.4116642 0.3554778 0.0070884 +v 0.4423352 0.3599571 0.0102498 +v 0.4807803 0.2707749 0.2514637 +v 0.4807803 0.2721026 0.2100147 +v 0.4807803 0.2760277 0.1701604 +v 0.4807803 0.2823988 0.1334332 +v 0.4807803 0.2909717 0.1012435 +v 0.4807803 0.3014165 0.0748298 +v 0.4807803 0.3133320 0.0552055 +v 0.4807803 0.3262603 0.0431262 +v 0.4807803 0.3397044 0.0390546 +v 0.4807803 0.3531479 0.0431485 +v 0.4807803 0.3660739 0.0552500 +v 0.4807803 0.3779859 0.0748945 +v 0.4807803 0.3884261 0.1013262 +v 0.4807803 0.3969932 0.1335300 +v 0.4807803 0.4033579 0.1702680 +v 0.4807803 0.4072757 0.2101289 +v 0.4807803 0.4085962 0.2515800 +v 0.4807803 0.4072684 0.2930295 +v 0.4807803 0.4033434 0.3328834 +v 0.4807803 0.3969722 0.3696111 +v 0.4807803 0.3883993 0.4018002 +v 0.4807803 0.3779545 0.4282145 +v 0.4807803 0.3660390 0.4478383 +v 0.4807803 0.3531107 0.4599181 +v 0.4807803 0.3396666 0.4639891 +v 0.4807803 0.3262231 0.4598953 +v 0.4807803 0.3132971 0.4477937 +v 0.4807803 0.3013851 0.4281498 +v 0.4807803 0.2909449 0.4017176 +v 0.4807803 0.2823778 0.3695137 +v 0.4807803 0.2760131 0.3327757 +v 0.4807803 0.2720951 0.2929148 +v 0.4778087 0.2810544 0.2155124 +v 0.4778087 0.3168226 0.0812093 +v 0.4778087 0.2899687 0.3538848 +v 0.4931835 0.2765057 0.2756331 +v 0.4931835 0.2792246 0.3139152 +v 0.4873774 0.3179937 0.2476210 +v 0.4873774 0.3207127 0.2859031 +v 0.4999995 0.2857242 0.2694087 +v 0.4999995 0.2884432 0.3076913 +v 0.4791946 0.2792246 0.3139152 +v 0.4791651 0.2765057 0.2756331 +v 0.4931835 0.3063639 0.4209951 +v 0.4931835 0.3177584 0.4383605 +v 0.4873774 0.3251836 0.3036045 +v 0.4873774 0.3365782 0.3209704 +v 0.4999995 0.3105456 0.3949113 +v 0.4999995 0.3219400 0.4122767 +v 0.4793987 0.3177584 0.4383605 +v 0.4793431 0.3063639 0.4209951 +v 0.4931835 0.3632344 0.4399915 +v 0.4931835 0.3746747 0.4229137 +v 0.4873774 0.3447268 0.3221301 +v 0.4873774 0.3561671 0.3050528 +v 0.5000000 0.3591220 0.4138028 +v 0.5000000 0.3705623 0.3967256 +v 0.4797790 0.3746747 0.4229137 +v 0.4797176 0.3632344 0.4399915 +v 0.4931835 0.4021444 0.3161649 +v 0.4931835 0.4050793 0.2780345 +v 0.4873774 0.3608210 0.2859276 +v 0.4873774 0.3637560 0.2477972 +v 0.5000000 0.3929624 0.3094462 +v 0.5000000 0.3958975 0.2713159 +v 0.4799113 0.4050793 0.2780345 +v 0.4798894 0.4021444 0.3161649 +v 0.4931835 0.3954395 0.1439641 +v 0.4931835 0.3876150 0.1130798 +v 0.4873774 0.3619691 0.2245732 +v 0.4873774 0.3541447 0.1936894 +v 0.4999995 0.3880024 0.1618748 +v 0.4999995 0.3801780 0.1309911 +v 0.4797842 0.3876150 0.1130798 +v 0.4798104 0.3954395 0.1439641 +v 0.4931835 0.3478636 0.0523419 +v 0.4931835 0.3351530 0.0522675 +v 0.4873774 0.3477830 0.1832895 +v 0.4873774 0.3350725 0.1832150 +v 0.5000000 0.3478458 0.0814376 +v 0.5000000 0.3351352 0.0813637 +v 0.4795306 0.3351530 0.0522675 +v 0.4796396 0.3478636 0.0523419 +v 0.4931835 0.2941478 0.1120278 +v 0.4931835 0.2862417 0.1427131 +v 0.4873774 0.3274031 0.1934790 +v 0.4873774 0.3194971 0.2241649 +v 0.5000000 0.3015371 0.1301261 +v 0.5000000 0.2936309 0.1608114 +v 0.4791860 0.2864703 0.1418259 +v 0.4792074 0.2862417 0.1427131 +v 0.4792512 0.2941478 0.1120278 +v 0.4856156 0.2755246 0.2955832 +v 0.4856156 0.2890003 0.1216981 +v 0.4856156 0.3414954 0.0457662 +v 0.4856156 0.3934800 0.1249661 +v 0.4856156 0.4058086 0.2996585 +v 0.4856156 0.3691976 0.4382969 +v 0.4856156 0.3112158 0.4364826 +v 0.4783032 0.3998128 0.2146996 +v 0.4783370 0.3907325 0.3567489 +v 0.4791180 0.3986267 0.3268546 +v 0.4783532 0.3831289 0.3855412 +v 0.4791703 0.3752084 0.4155350 +v 0.4783936 0.3516826 0.4377488 +v 0.4779701 0.3396689 0.4373726 +v 0.4783151 0.3277025 0.4369986 +v 0.4778168 0.2973834 0.3818768 +v 0.4786949 0.3049456 0.4117293 +v 0.4778087 0.2967531 0.3793879 +v 0.4784022 0.2827636 0.3241612 +v 0.4778087 0.2892669 0.3498339 +v 0.4778087 0.2923340 0.1910020 +v 0.4778087 0.2842241 0.1833270 +v 0.4778087 0.2900084 0.2210116 +v 0.4778087 0.2816992 0.2159087 +v 0.4778087 0.3109393 0.1187976 +v 0.4778087 0.3200913 0.1055592 +v 0.4778087 0.3168501 0.0814142 +v 0.4778087 0.3156008 0.0832214 +v 0.4778087 0.3294136 0.0920751 +v 0.4778087 0.3173010 0.0807624 +v 0.4778087 0.3597045 0.1026245 +v 0.4778087 0.3689263 0.1166740 +v 0.4778087 0.3915073 0.2197856 +v 0.4778087 0.3892804 0.1882326 +v 0.4778087 0.3836632 0.3421758 +v 0.4778087 0.3771125 0.3669813 +v 0.4778087 0.3499974 0.4115912 +v 0.4778087 0.3396714 0.4112682 +v 0.4778087 0.2901817 0.3534461 +v 0.4778087 0.2972420 0.3389100 +v 0.4778087 0.3034166 0.3632854 +v 0.4797885 0.2755246 0.2955832 +v 0.4791503 0.2788569 0.3087389 +v 0.4795134 0.2759126 0.2905770 +v 0.4789257 0.2800304 0.3133710 +v 0.4781214 0.2789432 0.2514708 +v 0.4778087 0.2805785 0.2303693 +v 0.4778249 0.2844139 0.1808789 +v 0.4791165 0.2767759 0.2794372 +v 0.4779858 0.3061842 0.0968420 +v 0.4789671 0.2771019 0.2752303 +v 0.4783503 0.3277145 0.0656994 +v 0.4778087 0.2876473 0.2514778 +v 0.4787839 0.3519497 0.0616936 +v 0.4781276 0.3629537 0.0784583 +v 0.4778087 0.2908819 0.3138010 +v 0.4782537 0.3736721 0.0947885 +v 0.4791870 0.3849645 0.1119930 +v 0.4778087 0.2892039 0.3071775 +v 0.4786211 0.3972291 0.1780893 +v 0.4787682 0.4024151 0.2515752 +v 0.4778087 0.2862870 0.2690286 +v 0.4778087 0.3951029 0.2707341 +v 0.4784878 0.3958975 0.2713159 +v 0.4782780 0.3929624 0.3094462 +v 0.4778087 0.3924125 0.3090434 +v 0.4797861 0.3944533 0.1387596 +v 0.4797690 0.3888327 0.1178859 +v 0.4856156 0.2788569 0.3087389 +v 0.4804681 0.3934800 0.1249661 +v 0.4794730 0.3868645 0.1148875 +v 0.4856156 0.2767759 0.2794372 +v 0.4797319 0.3945817 0.1405787 +v 0.4856156 0.2771019 0.2752303 +v 0.4782875 0.2857242 0.2694087 +v 0.4795939 0.3949105 0.1452380 +v 0.4856156 0.2800304 0.3133710 +v 0.4784564 0.2884432 0.3076913 +v 0.4778087 0.3786418 0.1314766 +v 0.4778087 0.3794593 0.1327221 +v 0.4778087 0.3875048 0.1630736 +v 0.4795001 0.3148028 0.4365952 +v 0.4793316 0.3166375 0.4366522 +v 0.4792046 0.3180252 0.4366957 +v 0.4790770 0.3067238 0.4187497 +v 0.4856156 0.3888327 0.1178859 +v 0.4856156 0.3945817 0.1405787 +v 0.4793250 0.3078764 0.4233002 +v 0.4800431 0.3112158 0.4364826 +v 0.4778087 0.3293856 0.4109464 +v 0.4856156 0.3949105 0.1452380 +v 0.4783332 0.3880024 0.1618748 +v 0.4778087 0.3221893 0.4107213 +v 0.4856156 0.3868645 0.1148875 +v 0.4778087 0.3099002 0.3888809 +v 0.4778087 0.3108873 0.3927785 +v 0.4785664 0.3801780 0.1309911 +v 0.4856156 0.3166375 0.4366522 +v 0.4794706 0.3369934 0.0522778 +v 0.4797980 0.3397035 0.0483579 +v 0.4792484 0.3351515 0.0549423 +v 0.4856156 0.3078764 0.4233002 +v 0.4793097 0.3478616 0.0554653 +v 0.4856156 0.3067238 0.4187497 +v 0.4801293 0.3414954 0.0457662 +v 0.4795748 0.3458033 0.0523300 +v 0.4778087 0.3351337 0.0838015 +v 0.4778087 0.3502372 0.0882009 +v 0.4778087 0.3478438 0.0845545 +v 0.4784503 0.3105456 0.3949113 +v 0.4856156 0.3180252 0.4366957 +v 0.4782765 0.3219400 0.4122767 +v 0.4856156 0.3369934 0.0522778 +v 0.4803739 0.3691976 0.4382969 +v 0.4796738 0.3647394 0.4381571 +v 0.4797452 0.3723392 0.4264002 +v 0.4793830 0.3741471 0.4195538 +v 0.4856156 0.3458033 0.0523300 +v 0.4856156 0.3478616 0.0554653 +v 0.4794973 0.3629375 0.4381006 +v 0.4786454 0.3478458 0.0814376 +v 0.4796476 0.3644688 0.4381484 +v 0.4856156 0.3351515 0.0549423 +v 0.4784683 0.3351352 0.0813637 +v 0.4788172 0.2871915 0.1450395 +v 0.4778087 0.3702890 0.3928209 +v 0.4789914 0.2948563 0.1132277 +v 0.4790128 0.2947189 0.1134261 +v 0.4778087 0.3700760 0.3936277 +v 0.4778087 0.3588180 0.4118668 +v 0.4791979 0.2878578 0.1364414 +v 0.4792436 0.2932342 0.1155736 +v 0.4799013 0.2890003 0.1216981 +v 0.4856156 0.3723392 0.4264002 +v 0.4856156 0.3644688 0.4381484 +v 0.4841317 0.3677242 0.4332891 +v 0.4856156 0.3629375 0.4381006 +v 0.4783851 0.3591220 0.4138028 +v 0.4778087 0.2945073 0.1629584 +v 0.4778087 0.3021201 0.1315543 +v 0.4856156 0.3741471 0.4195538 +v 0.4787415 0.3705623 0.3967256 +v 0.4798323 0.4046636 0.2834354 +v 0.4801112 0.4052533 0.2917921 +v 0.4856156 0.2878578 0.1364414 +v 0.4796315 0.4042390 0.2774196 +v 0.4805276 0.4058086 0.2996585 +v 0.4798647 0.4024302 0.3124522 +v 0.4796943 0.4015621 0.3157387 +v 0.4856156 0.2932342 0.1155736 +v 0.4841488 0.2910092 0.1242098 +v 0.4778087 0.3937503 0.2515675 +v 0.4856156 0.2947189 0.1134261 +v 0.4778087 0.3904640 0.3164221 +v 0.4784236 0.3015371 0.1301261 +v 0.4856156 0.2871915 0.1450395 +v 0.4787439 0.2936309 0.1608114 +v 0.4856156 0.4046636 0.2834354 +v 0.4856156 0.4024302 0.3124522 +v 0.4856156 0.4015621 0.3157387 +v 0.4856156 0.4042390 0.2774196 +v 0.4788529 0.3212747 0.2988745 +v 0.4788529 0.3600578 0.3000429 +v 0.4788529 0.3650523 0.2354906 +v 0.4788529 0.3302743 0.1825550 +v 0.4788529 0.3315631 0.1825941 +v 0.4788529 0.3166904 0.2340336 +v 0.4788529 0.3517974 0.1832036 +v 0.4788529 0.3405751 0.3282513 +v 0.4778087 0.3700442 0.3934266 +v 0.4778087 0.3702507 0.3926448 +v 0.4778087 0.3499843 0.4113884 +v 0.4778087 0.3587861 0.4116635 +v 0.4914755 0.3700442 0.3934266 +v 0.4788529 0.3562468 0.3055606 +v 0.4844791 0.3515401 0.3655194 +v 0.4914755 0.3587861 0.4116635 +v 0.4788529 0.3447409 0.3222198 +v 0.4778087 0.3936829 0.2515675 +v 0.4778087 0.3914428 0.2198253 +v 0.4778087 0.3950320 0.2706825 +v 0.4778087 0.3923414 0.3089917 +v 0.4778087 0.3904007 0.3163411 +v 0.4778087 0.3836082 0.3420627 +v 0.4914755 0.3950320 0.2706825 +v 0.4788529 0.3640817 0.2480353 +v 0.4914755 0.3923414 0.3089917 +v 0.4778087 0.2900727 0.2210513 +v 0.4788529 0.3611324 0.2861554 +v 0.4778087 0.2923955 0.1910803 +v 0.4778087 0.3688894 0.1168442 +v 0.4778087 0.3785928 0.1316277 +v 0.4778087 0.3794020 0.1328602 +v 0.4778087 0.3892187 0.1883114 +v 0.4778087 0.3109762 0.1189678 +v 0.4778087 0.3874475 0.1632117 +v 0.4778087 0.3201165 0.1057468 +v 0.4778087 0.3294268 0.0922800 +v 0.4778087 0.3596792 0.1028126 +v 0.4914755 0.3794020 0.1328602 +v 0.4778087 0.3770659 0.3668373 +v 0.4778087 0.3396714 0.4110654 +v 0.4778087 0.2972969 0.3387969 +v 0.4778087 0.3034635 0.3631414 +v 0.4778087 0.2877148 0.2514778 +v 0.4778087 0.2909449 0.3137211 +v 0.4788529 0.3543376 0.1932246 +v 0.4778087 0.2892752 0.3071291 +v 0.4914755 0.3874475 0.1632117 +v 0.4788529 0.3621650 0.2241013 +v 0.4778087 0.3351335 0.0840255 +v 0.4778087 0.2863585 0.2689808 +v 0.4778087 0.3478437 0.0847806 +v 0.4778087 0.3502240 0.0884069 +v 0.4914755 0.2892752 0.3071291 +v 0.4914755 0.3351335 0.0840255 +v 0.4788529 0.3203738 0.2861320 +v 0.4788529 0.3176667 0.2478418 +v 0.4914755 0.2863585 0.2689808 +v 0.4778087 0.3293986 0.4107441 +v 0.4788529 0.3350728 0.1826996 +v 0.4788529 0.3477830 0.1830829 +v 0.4914755 0.3478437 0.0847806 +v 0.4778087 0.3222217 0.4105196 +v 0.4778087 0.3099386 0.3887037 +v 0.4778087 0.3109197 0.3925768 +v 0.4778087 0.2945641 0.1630970 +v 0.4778087 0.3021776 0.1316946 +v 0.4914755 0.3222217 0.4105196 +v 0.4788529 0.3364239 0.3219327 +v 0.4914755 0.2945641 0.1630970 +v 0.4914755 0.3109197 0.3925768 +v 0.4788529 0.3193740 0.2238637 +v 0.4788529 0.3273962 0.1934621 +v 0.4844239 0.3152982 0.1638310 +v 0.4914755 0.3021776 0.1316946 +v 0.4788529 0.3250265 0.3045847 +v 0.4842687 0.3304813 0.2766873 +v 0.4842687 0.3280566 0.2423931 +v 0.4842687 0.3352410 0.2151660 +v 0.4842687 0.3466247 0.2155091 +v 0.4842687 0.3536353 0.2431640 +v 0.4842687 0.3509937 0.2773055 +v 0.4842687 0.3406893 0.2922249 +v 0.4893748 0.3242104 0.2395644 +v 0.4893748 0.3273659 0.2841954 +v 0.4893748 0.3335604 0.2041311 +v 0.4893748 0.3483751 0.2045775 +v 0.4893748 0.3574987 0.2405674 +v 0.4893748 0.3540610 0.2849995 +v 0.4893748 0.3406506 0.3044162 +v 0.4893748 0.3254862 0.2405027 +v 0.4893748 0.3283994 0.2817049 +v 0.4893748 0.3341178 0.2077917 +v 0.4893748 0.3477945 0.2082038 +v 0.4893748 0.3562171 0.2414286 +v 0.4893748 0.3530435 0.2824475 +v 0.4893748 0.3406634 0.3003724 +v 0.4747914 0.3350728 0.1826996 +v 0.4754925 0.3179937 0.2476210 +v 0.4751412 0.3350725 0.1832150 +v 0.4749318 0.3477830 0.1832895 +v 0.4755177 0.3207127 0.2859031 +v 0.4747914 0.3477830 0.1830829 +v 0.4755339 0.3251836 0.3036045 +v 0.4747914 0.3193740 0.2238637 +v 0.4755201 0.3365782 0.3209704 +v 0.4751203 0.3194971 0.2241649 +v 0.4748590 0.3447268 0.3221301 +v 0.4748100 0.3274031 0.1934790 +v 0.4751746 0.3561671 0.3050528 +v 0.4747914 0.3273962 0.1934621 +v 0.4754615 0.3608210 0.2859276 +v 0.4754925 0.3637560 0.2477972 +v 0.4747914 0.3212747 0.2988745 +v 0.4747914 0.3212747 0.2988745 +v 0.4747914 0.3203738 0.2861320 +v 0.4753121 0.3619691 0.2245732 +v 0.4747914 0.3176667 0.2478418 +v 0.4753040 0.3541447 0.1936894 +v 0.4747914 0.3166904 0.2340336 +v 0.4747914 0.3166904 0.2340336 +v 0.4747914 0.3302743 0.1825550 +v 0.4747914 0.3517974 0.1832036 +v 0.4747914 0.3517974 0.1832036 +v 0.4747914 0.3364239 0.3219327 +v 0.4747914 0.3302743 0.1825550 +v 0.4747914 0.3621650 0.2241013 +v 0.4747914 0.3250265 0.3045847 +v 0.4747914 0.3562468 0.3055606 +v 0.4747914 0.3650523 0.2354906 +v 0.4747914 0.3650523 0.2354906 +v 0.4747914 0.3543376 0.1932246 +v 0.4747914 0.3611324 0.2861554 +v 0.4747914 0.3447409 0.3222198 +v 0.4747914 0.3640817 0.2480353 +v 0.4747914 0.3600578 0.3000429 +v 0.4747914 0.3600578 0.3000429 +v 0.4747914 0.3405751 0.3282513 +v 0.4747914 0.3405751 0.3282513 +vt 0.625000 0.250000 +vt 0.625000 0.250000 +vt 0.625000 0.000000 +vt 0.625000 0.000000 +vt 0.624771 0.000000 +vt 0.625000 0.250000 +vt 0.625000 0.250000 +vt 0.625000 0.000000 +vt 0.625000 1.000000 +vt 0.625000 1.000000 +vt 0.625000 0.832051 +vt 0.625000 0.857413 +vt 0.625000 0.250000 +vt 0.625000 0.242972 +vt 0.625000 0.000000 +vt 0.625000 1.000000 +vt 0.625000 1.000000 +vt 0.625000 0.857094 +vt 0.625000 0.820979 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.625000 0.819858 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.501892 0.875440 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.625000 0.250000 +vt 0.625000 0.000000 +vt 0.625000 0.000000 +vt 0.625000 0.250000 +vt 0.625000 0.250000 +vt 0.624771 0.000000 +vt 0.625000 0.250000 +vt 0.625000 0.000000 +vt 0.625000 1.000000 +vt 0.625000 0.857413 +vt 0.625000 0.832051 +vt 0.625000 1.000000 +vt 0.625000 0.000000 +vt 0.625000 0.242972 +vt 0.625000 0.250000 +vt 0.625000 1.000000 +vt 0.625000 0.820979 +vt 0.625000 0.857094 +vt 0.625000 1.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.625000 0.819858 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.501892 0.875440 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.312500 0.121486 +vt 0.000000 0.000000 +vt 0.312500 0.121486 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.125000 0.500000 +vt 0.125000 0.750000 +vt 0.625000 0.000000 +vt 0.625000 0.250000 +vt 0.625000 0.896012 +vt 0.625000 1.000000 +vt 0.228988 0.750000 +vt 0.228988 0.500000 +vt 0.375000 0.500000 +vt 0.375000 0.750000 +vt 0.625000 0.750000 +vt 0.625000 0.500000 +vt 0.625000 0.500000 +vt 0.625000 0.750000 +vt 0.625000 0.250000 +vt 0.625000 0.000000 +vt 0.625000 0.000000 +vt 0.625000 0.250000 +vt 0.625000 0.896012 +vt 0.625000 0.353988 +vt 0.625000 0.353988 +vt 0.625000 0.896012 +vt 0.625000 0.750000 +vt 0.625000 0.750000 +vt 0.625000 0.896012 +vt 0.625000 0.353988 +vt 0.625000 0.500000 +vt 0.625000 0.500000 +vt 0.625000 0.500000 +vt 0.625000 0.750000 +vt 0.625000 0.250000 +vt 0.625000 0.353988 +vt 0.625000 0.000000 +vt 0.625000 0.750000 +vt 0.625000 0.750000 +vt 0.625000 0.750000 +vt 0.625000 0.750000 +vt 0.625000 0.000000 +vt 0.625000 0.250000 +vt 0.625000 0.896012 +vt 0.625000 0.353988 +vt 0.771012 0.500000 +vt 0.875000 0.500000 +vt 0.875000 0.750000 +vt 0.771012 0.750000 +vt 0.625000 0.250000 +vt 0.625000 0.353988 +vt 0.625000 0.500000 +vt 0.625000 0.750000 +vt 0.625000 0.000000 +vt 0.625000 0.896012 +vt 0.625000 0.750000 +vt 0.625000 0.896012 +vt 0.625000 0.750000 +vt 0.625000 0.000000 +vt 0.625000 0.000000 +vt 0.625000 0.000000 +vt 0.625000 0.000000 +vt 0.771012 0.750000 +vt 0.875000 0.750000 +vt 0.875000 0.750000 +vt 0.771012 0.750000 +vt 0.625000 0.896012 +vt 0.625000 0.000000 +vt 0.625000 0.000000 +vt 0.625000 0.000000 +vt 0.625000 0.000000 +vt 0.625000 0.896012 +vt 0.625000 1.000000 +vt 0.625000 1.000000 +vt 0.625000 0.896012 +vt 0.625000 0.000000 +vt 0.625000 0.000000 +vt 0.625000 1.000000 +vt 0.625000 0.896012 +vt 0.625000 0.750000 +vt 0.625000 0.896012 +vt 0.625000 0.750000 +vt 0.625000 0.896012 +vt 0.625000 0.750000 +vt 0.625000 0.750000 +vt 0.625000 0.896012 +vt 0.625000 1.000000 +vt 0.625000 0.896012 +vt 0.625000 0.750000 +vt 0.625000 0.750000 +vt 0.625000 0.000000 +vt 0.625000 0.000000 +vt 0.625000 1.000000 +vt 0.625000 0.896012 +vt 0.625000 0.317551 +vt 0.625000 1.000000 +vt 0.625000 1.000000 +vt 0.625000 1.000000 +vt 0.625000 1.000000 +vt 0.625000 1.000000 +vt 0.625000 1.000000 +vt 0.625000 1.000000 +vt 0.625000 1.000000 +vt 0.625000 1.000000 +vt 0.625000 1.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.125000 0.500000 +vt 0.625000 0.250000 +vt 0.625000 0.000000 +vt 0.125000 0.750000 +vt 0.625000 0.896012 +vt 0.228988 0.750000 +vt 0.625000 1.000000 +vt 0.228988 0.500000 +vt 0.375000 0.750000 +vt 0.375000 0.500000 +vt 0.625000 0.750000 +vt 0.625000 0.750000 +vt 0.625000 0.500000 +vt 0.625000 0.500000 +vt 0.625000 0.250000 +vt 0.625000 0.250000 +vt 0.625000 0.000000 +vt 0.625000 0.000000 +vt 0.625000 0.896012 +vt 0.625000 0.353988 +vt 0.625000 0.353988 +vt 0.625000 0.896012 +vt 0.625000 0.896012 +vt 0.625000 0.750000 +vt 0.625000 0.750000 +vt 0.625000 0.353988 +vt 0.625000 0.500000 +vt 0.625000 0.750000 +vt 0.625000 0.500000 +vt 0.625000 0.500000 +vt 0.625000 0.353988 +vt 0.625000 0.250000 +vt 0.625000 0.000000 +vt 0.625000 0.750000 +vt 0.625000 0.750000 +vt 0.625000 0.750000 +vt 0.625000 0.750000 +vt 0.625000 0.250000 +vt 0.625000 0.000000 +vt 0.625000 0.896012 +vt 0.625000 0.353988 +vt 0.771012 0.500000 +vt 0.771012 0.750000 +vt 0.875000 0.750000 +vt 0.875000 0.500000 +vt 0.625000 0.353988 +vt 0.625000 0.250000 +vt 0.625000 0.750000 +vt 0.625000 0.500000 +vt 0.625000 0.000000 +vt 0.625000 0.896012 +vt 0.625000 0.896012 +vt 0.625000 0.750000 +vt 0.625000 0.750000 +vt 0.625000 0.000000 +vt 0.625000 0.000000 +vt 0.625000 0.000000 +vt 0.625000 0.000000 +vt 0.771012 0.750000 +vt 0.771012 0.750000 +vt 0.875000 0.750000 +vt 0.875000 0.750000 +vt 0.625000 0.896012 +vt 0.625000 0.000000 +vt 0.625000 0.000000 +vt 0.625000 0.000000 +vt 0.625000 0.000000 +vt 0.625000 0.896012 +vt 0.625000 0.896012 +vt 0.625000 1.000000 +vt 0.625000 1.000000 +vt 0.625000 0.000000 +vt 0.625000 0.000000 +vt 0.625000 0.896012 +vt 0.625000 1.000000 +vt 0.625000 0.896012 +vt 0.625000 0.750000 +vt 0.625000 0.750000 +vt 0.625000 0.896012 +vt 0.625000 0.896012 +vt 0.625000 0.750000 +vt 0.625000 0.750000 +vt 0.625000 0.896012 +vt 0.625000 1.000000 +vt 0.625000 0.750000 +vt 0.625000 0.750000 +vt 0.625000 0.000000 +vt 0.625000 0.000000 +vt 0.625000 0.896012 +vt 0.625000 1.000000 +vt 0.625000 0.317551 +vt 0.625000 1.000000 +vt 0.625000 1.000000 +vt 0.625000 1.000000 +vt 0.625000 1.000000 +vt 0.625000 1.000000 +vt 0.625000 1.000000 +vt 0.625000 1.000000 +vt 0.625000 1.000000 +vt 0.625000 1.000000 +vt 0.625000 1.000000 +vt 0.750000 0.452782 +vt 0.789561 0.448886 +vt 0.827601 0.437346 +vt 0.862660 0.418607 +vt 0.893388 0.393388 +vt 0.918607 0.362660 +vt 0.937346 0.327601 +vt 0.948886 0.289561 +vt 0.952782 0.250000 +vt 0.948886 0.210439 +vt 0.937346 0.172399 +vt 0.918607 0.137340 +vt 0.893388 0.106612 +vt 0.862660 0.081393 +vt 0.827601 0.062654 +vt 0.789561 0.051114 +vt 0.750000 0.047218 +vt 0.710439 0.051114 +vt 0.672399 0.062654 +vt 0.637340 0.081393 +vt 0.606611 0.106612 +vt 0.581393 0.137341 +vt 0.562654 0.172399 +vt 0.551114 0.210439 +vt 0.547218 0.250000 +vt 0.551114 0.289561 +vt 0.562654 0.327601 +vt 0.581393 0.362660 +vt 0.606612 0.393389 +vt 0.637341 0.418607 +vt 0.672399 0.437346 +vt 0.710439 0.448886 +vt 0.375000 0.055549 +vt 0.625000 0.055549 +vt 0.625000 0.250000 +vt 0.375000 0.250000 +vt 0.375000 0.000000 +vt 0.625000 0.000000 +vt 0.375000 0.055549 +vt 0.625000 0.055549 +vt 0.625000 0.250000 +vt 0.375000 0.250000 +vt 0.375000 0.000000 +vt 0.625000 0.000000 +vt 0.375000 0.055549 +vt 0.625000 0.055549 +vt 0.625000 0.250000 +vt 0.375000 0.250000 +vt 0.375000 0.000000 +vt 0.625000 0.000000 +vt 0.375000 0.055549 +vt 0.625000 0.055549 +vt 0.625000 0.250000 +vt 0.375000 0.250000 +vt 0.375000 0.000000 +vt 0.625000 0.000000 +vt 0.375000 0.055549 +vt 0.625000 0.055549 +vt 0.625000 0.250000 +vt 0.375000 0.250000 +vt 0.375000 0.000000 +vt 0.625000 0.000000 +vt 0.375000 0.055549 +vt 0.625000 0.055549 +vt 0.625000 0.250000 +vt 0.375000 0.250000 +vt 0.375000 0.000000 +vt 0.625000 0.000000 +vt 0.375000 0.055549 +vt 0.625000 0.055549 +vt 0.625000 0.250000 +vt 0.375000 0.250000 +vt 0.375000 0.000000 +vt 0.625000 0.000000 +vt 0.412335 0.317241 +vt 0.412531 0.317322 +vt 0.410609 0.320917 +vt 0.412958 0.315915 +vt 0.152263 0.396274 +vt 0.127928 0.376303 +vt 0.152682 0.395647 +vt 0.156129 0.398340 +vt 0.591195 0.984481 +vt 0.591195 0.971224 +vt 0.625000 0.971315 +vt 0.625000 1.000000 +vt 0.375000 1.000000 +vt 0.375000 0.971255 +vt 0.399843 0.971155 +vt 0.399843 0.984481 +vt 0.153745 0.750000 +vt 0.125000 0.750000 +vt 0.125000 0.694451 +vt 0.167165 0.694451 +vt 0.141327 0.746407 +vt 0.154903 0.746407 +vt 0.833163 0.694451 +vt 0.875000 0.694451 +vt 0.875000 0.750000 +vt 0.846315 0.750000 +vt 0.844748 0.745144 +vt 0.858389 0.745144 +vt 0.600410 0.984481 +vt 0.600410 0.971596 +vt 0.625000 0.971733 +vt 0.625000 1.000000 +vt 0.375000 1.000000 +vt 0.375000 0.971619 +vt 0.408190 0.971582 +vt 0.408190 0.984481 +vt 0.153381 0.750000 +vt 0.125000 0.750000 +vt 0.125000 0.694451 +vt 0.166849 0.694451 +vt 0.141595 0.745218 +vt 0.154928 0.745218 +vt 0.832813 0.694451 +vt 0.875000 0.694451 +vt 0.875000 0.750000 +vt 0.846733 0.750000 +vt 0.845591 0.746455 +vt 0.858683 0.746455 +vt 0.573964 0.984481 +vt 0.573964 0.972443 +vt 0.625000 0.972512 +vt 0.625000 1.000000 +vt 0.375000 1.000000 +vt 0.375000 0.972387 +vt 0.401976 0.972243 +vt 0.401976 0.984481 +vt 0.473116 0.981439 +vt 0.152613 0.750000 +vt 0.125000 0.750000 +vt 0.125000 0.694451 +vt 0.166976 0.694451 +vt 0.141422 0.745990 +vt 0.153908 0.745990 +vt 0.833717 0.694451 +vt 0.875000 0.694451 +vt 0.875000 0.750000 +vt 0.847513 0.750000 +vt 0.845202 0.742873 +vt 0.857878 0.742873 +vt 0.589589 0.984481 +vt 0.589589 0.972622 +vt 0.625000 0.972784 +vt 0.625000 1.000000 +vt 0.375000 1.000000 +vt 0.375000 0.972740 +vt 0.399342 0.972688 +vt 0.399342 0.984481 +vt 0.152260 0.750000 +vt 0.125000 0.750000 +vt 0.125000 0.694451 +vt 0.167183 0.694451 +vt 0.141312 0.746478 +vt 0.153402 0.746478 +vt 0.833224 0.694451 +vt 0.875000 0.694451 +vt 0.875000 0.750000 +vt 0.847784 0.750000 +vt 0.846141 0.744916 +vt 0.858337 0.744916 +vt 0.586096 0.984481 +vt 0.586097 0.972492 +vt 0.625000 0.972524 +vt 0.625000 1.000000 +vt 0.375000 1.000000 +vt 0.375000 0.972577 +vt 0.402404 0.972417 +vt 0.402404 0.984481 +vt 0.152423 0.750000 +vt 0.125000 0.750000 +vt 0.125000 0.694451 +vt 0.167076 0.694451 +vt 0.141408 0.746050 +vt 0.153697 0.746050 +vt 0.833377 0.694451 +vt 0.875000 0.694451 +vt 0.875000 0.750000 +vt 0.847524 0.750000 +vt 0.845706 0.744394 +vt 0.858220 0.744394 +vt 0.588803 0.984481 +vt 0.588803 0.971881 +vt 0.625000 0.972004 +vt 0.625000 1.000000 +vt 0.375000 1.000000 +vt 0.375000 0.972228 +vt 0.415522 0.972094 +vt 0.415522 0.984481 +vt 0.152772 0.750000 +vt 0.125000 0.750000 +vt 0.125000 0.694451 +vt 0.166470 0.694451 +vt 0.141861 0.744036 +vt 0.154703 0.744036 +vt 0.833186 0.694451 +vt 0.875000 0.694451 +vt 0.875000 0.750000 +vt 0.847004 0.750000 +vt 0.845352 0.744893 +vt 0.858332 0.744893 +vt 0.573901 0.984481 +vt 0.573901 0.971321 +vt 0.617771 0.971297 +vt 0.625000 0.971341 +vt 0.625000 1.000000 +vt 0.375000 1.000000 +vt 0.375000 0.971431 +vt 0.403890 0.971415 +vt 0.403890 0.984481 +vt 0.474247 0.981473 +vt 0.153569 0.750000 +vt 0.125000 0.750000 +vt 0.125000 0.694451 +vt 0.166900 0.694451 +vt 0.141484 0.745707 +vt 0.154943 0.745707 +vt 0.833722 0.694451 +vt 0.875000 0.694451 +vt 0.875000 0.750000 +vt 0.846341 0.750000 +vt 0.844047 0.742861 +vt 0.857876 0.742861 +vt 1.000000 1.000000 +vt 0.986735 1.000000 +vt 0.986735 0.975180 +vt 0.995887 0.976695 +vt 1.000000 0.977747 +vt 0.907775 0.970185 +vt 0.934543 0.970185 +vt 0.946423 0.970185 +vt 0.963759 0.971378 +vt 0.983279 0.974608 +vt 0.983279 1.000000 +vt 0.876319 1.000000 +vt 0.876319 0.974036 +vt 0.905764 0.970247 +vt 0.869255 1.000000 +vt 0.857143 1.000000 +vt 0.857143 0.978177 +vt 0.869255 0.975489 +vt 0.719162 0.977782 +vt 0.726537 0.976532 +vt 0.726537 1.000000 +vt 0.714286 1.000000 +vt 0.714286 0.979047 +vt 0.845621 1.000000 +vt 0.845621 0.975664 +vt 0.841207 0.974701 +vt 0.841581 0.974783 +vt 0.841581 1.000000 +vt 0.731550 1.000000 +vt 0.731550 0.975683 +vt 0.751788 0.972253 +vt 0.780127 0.970185 +vt 0.781354 0.970185 +vt 0.784754 0.970185 +vt 0.810380 0.970860 +vt 0.589608 1.000000 +vt 0.589608 0.976540 +vt 0.594829 0.975449 +vt 0.625862 0.971884 +vt 0.655317 0.971403 +vt 0.685556 0.973908 +vt 0.696791 0.975918 +vt 0.696791 1.000000 +vt 0.571429 1.000000 +vt 0.571429 0.980340 +vt 0.584200 0.977671 +vt 0.584200 1.000000 +vt 0.702447 1.000000 +vt 0.702447 0.976930 +vt 0.446758 1.000000 +vt 0.446758 0.977145 +vt 0.467892 0.973849 +vt 0.498048 0.972073 +vt 0.527986 0.973287 +vt 0.554851 0.977003 +vt 0.554851 1.000000 +vt 0.428571 1.000000 +vt 0.428571 0.980569 +vt 0.435005 0.978979 +vt 0.441838 0.977913 +vt 0.441838 1.000000 +vt 0.558661 0.977531 +vt 0.560149 0.977736 +vt 0.558661 1.000000 +vt 0.415389 1.000000 +vt 0.415389 0.978036 +vt 0.309169 0.975385 +vt 0.340075 0.972264 +vt 0.369744 0.972202 +vt 0.400548 0.975185 +vt 0.412002 0.977386 +vt 0.412002 1.000000 +vt 0.305027 1.000000 +vt 0.305027 0.976197 +vt 0.297973 1.000000 +vt 0.285714 1.000000 +vt 0.285714 0.979982 +vt 0.297973 0.977580 +vt 0.416059 0.357087 +vt 0.423064 0.325372 +vt 0.430581 0.291701 +vt 0.438297 0.257223 +vt 0.443039 0.236044 +vt 0.445992 0.234885 +vt 0.478382 0.221132 +vt 0.442688 0.377519 +vt 0.418109 0.358843 +vt 0.437640 0.399638 +vt 0.433246 0.393209 +vt 0.441377 0.383261 +vt 0.184488 0.071792 +vt 0.183417 0.068541 +vt 0.172381 0.033767 +vt 0.329965 0.033767 +vt 0.313923 0.069442 +vt 0.312784 0.071960 +vt 0.283013 0.071276 +vt 0.245500 0.070956 +vt 0.207513 0.071256 +vt 0.335519 0.033767 +vt 0.354132 0.033767 +vt 0.365740 0.048324 +vt 0.432525 0.191471 +vt 0.426641 0.183685 +vt 0.403170 0.153489 +vt 0.380082 0.124766 +vt 0.355564 0.095101 +vt 0.353492 0.092633 +vt 0.355136 0.088999 +vt 0.370656 0.054488 +vt 0.468080 0.176654 +vt 0.436311 0.189957 +vt 0.473222 0.183101 +vt 0.483983 0.196595 +vt 0.480008 0.214008 +vt 0.022842 0.200525 +vt 0.016017 0.196595 +vt 0.027160 0.182623 +vt 0.136101 0.099156 +vt 0.112362 0.128229 +vt 0.089426 0.156450 +vt 0.065503 0.185941 +vt 0.064758 0.186857 +vt 0.061005 0.185471 +vt 0.033572 0.174582 +vt 0.130807 0.052653 +vt 0.142141 0.088637 +vt 0.142886 0.090878 +vt 0.145868 0.033767 +vt 0.165209 0.033767 +vt 0.133885 0.048793 +vt 0.274063 0.977207 +vt 0.274730 0.977308 +vt 0.274063 1.000000 +vt 0.183477 0.972119 +vt 0.212961 0.970801 +vt 0.242560 0.972419 +vt 0.270291 0.976634 +vt 0.270291 1.000000 +vt 0.159634 1.000000 +vt 0.159634 0.975514 +vt 0.156216 1.000000 +vt 0.142857 1.000000 +vt 0.142857 0.978718 +vt 0.151695 0.976645 +vt 0.156216 0.976001 +vt 0.129491 1.000000 +vt 0.129492 0.975976 +vt 0.000000 0.977747 +vt 0.013338 0.975309 +vt 0.013338 1.000000 +vt 0.000000 1.000000 +vt 0.018035 0.974450 +vt 0.028975 0.972450 +vt 0.055005 0.970185 +vt 0.058667 0.970185 +vt 0.084969 0.970185 +vt 0.087492 0.970216 +vt 0.117760 0.973569 +vt 0.124878 0.975029 +vt 0.124878 1.000000 +vt 0.018035 1.000000 +vt 0.019797 0.213154 +vt 0.051909 0.224916 +vt 0.054327 0.225559 +vt 0.062090 0.254257 +vt 0.070975 0.288475 +vt 0.079806 0.322620 +vt 0.086020 0.346400 +vt 0.084307 0.348069 +vt 0.056918 0.375792 +vt 0.021021 0.218517 +vt 0.250000 0.490000 +vt 0.232480 0.481563 +vt 0.267423 0.481609 +vt 0.274590 0.439780 +vt 0.274738 0.437263 +vt 0.293364 0.429104 +vt 0.325828 0.414536 +vt 0.357919 0.399840 +vt 0.387945 0.385993 +vt 0.390902 0.389016 +vt 0.412452 0.411767 +vt 0.271963 0.479423 +vt 0.062360 0.399638 +vt 0.058027 0.380651 +vt 0.079916 0.408092 +vt 0.112684 0.384040 +vt 0.115045 0.381715 +vt 0.120154 0.384464 +vt 0.153938 0.401805 +vt 0.186405 0.417424 +vt 0.220119 0.432677 +vt 0.229066 0.436538 +vt 0.228861 0.439953 +vt 0.226311 0.478592 +vt 0.085976 0.411010 +vt 0.421730 0.407299 +vt 0.307648 0.389175 +vt 0.307723 0.389356 +vt 0.279079 0.396192 +vt 0.279042 0.396002 +vt 0.389114 0.307623 +vt 0.389293 0.307697 +vt 0.376651 0.334626 +vt 0.376489 0.334517 +vt 0.401975 0.280230 +vt 0.402170 0.280269 +vt 0.378724 0.163989 +vt 0.392126 0.191130 +vt 0.391947 0.191204 +vt 0.378562 0.164098 +vt 0.280294 0.097703 +vt 0.280331 0.097514 +vt 0.310444 0.104075 +vt 0.310369 0.104256 +vt 0.139971 0.139972 +vt 0.139834 0.139834 +vt 0.163514 0.120565 +vt 0.163622 0.120726 +vt 0.097536 0.250000 +vt 0.097236 0.219613 +vt 0.097430 0.219652 +vt 0.097729 0.250000 +vt 0.166562 0.374875 +vt 0.143302 0.356698 +vt 0.143440 0.356561 +vt 0.166669 0.374714 +vt 0.250000 0.403132 +vt 0.250000 0.402933 +vt 0.190597 0.393412 +vt 0.190520 0.393597 +vt 0.196887 0.398327 +vt 0.196841 0.398536 +vt 0.233248 0.407130 +vt 0.233294 0.406920 +vt 0.098028 0.280229 +vt 0.097835 0.280268 +vt 0.098236 0.301349 +vt 0.098044 0.301444 +vt 0.119048 0.337500 +vt 0.118879 0.337613 +vt 0.115160 0.334707 +vt 0.115352 0.334612 +vt 0.115335 0.160020 +vt 0.115167 0.159907 +vt 0.114589 0.160627 +vt 0.114397 0.160534 +vt 0.096980 0.193657 +vt 0.097174 0.193751 +vt 0.250000 0.091103 +vt 0.250000 0.090905 +vt 0.231758 0.087128 +vt 0.231708 0.086920 +vt 0.188176 0.100745 +vt 0.188099 0.100558 +vt 0.195143 0.094826 +vt 0.195193 0.095035 +vt 0.364605 0.135395 +vt 0.364460 0.135540 +vt 0.363417 0.132989 +vt 0.363285 0.133159 +vt 0.334455 0.109306 +vt 0.334323 0.109475 +vt 0.409858 0.263439 +vt 0.410071 0.263439 +vt 0.405885 0.218993 +vt 0.409363 0.226037 +vt 0.409147 0.226037 +vt 0.405688 0.219032 +vt 0.334358 0.382801 +vt 0.334490 0.382968 +vt 0.364469 0.360574 +vt 0.364335 0.360405 +vt 0.879125 0.952094 +vt 0.905911 0.952094 +vt 0.934599 0.952094 +vt 0.963724 0.952094 +vt 0.980478 0.952094 +vt 0.980478 1.000000 +vt 0.879125 1.000000 +vt 0.734152 0.952094 +vt 0.752247 0.952094 +vt 0.781767 0.952094 +vt 0.810748 0.952094 +vt 0.838646 0.952094 +vt 0.838646 1.000000 +vt 0.734153 1.000000 +vt 0.592608 0.952094 +vt 0.595198 0.952094 +vt 0.626267 0.952094 +vt 0.655756 0.952094 +vt 0.686031 0.952094 +vt 0.693652 0.952094 +vt 0.693652 1.000000 +vt 0.592608 1.000000 +vt 0.449715 0.952094 +vt 0.467927 0.952094 +vt 0.498171 0.952094 +vt 0.528197 0.952094 +vt 0.552112 0.952094 +vt 0.552112 1.000000 +vt 0.449715 1.000000 +vt 0.307849 0.952094 +vt 0.308788 0.952094 +vt 0.339771 0.952094 +vt 0.369515 0.952094 +vt 0.400396 0.952094 +vt 0.409220 0.952094 +vt 0.409220 1.000000 +vt 0.307849 1.000000 +vt 0.389345 0.328970 +vt 0.351188 0.273135 +vt 0.349989 0.267876 +vt 0.346726 0.253555 +vt 0.477538 0.224832 +vt 0.443640 0.373348 +vt 0.334909 0.201692 +vt 0.331177 0.185313 +vt 0.315627 0.177817 +vt 0.373383 0.057907 +vt 0.465228 0.173077 +vt 0.148795 0.273060 +vt 0.089612 0.238977 +vt 0.153088 0.254285 +vt 0.186333 0.176851 +vt 0.168871 0.185252 +vt 0.164944 0.202428 +vt 0.036137 0.171366 +vt 0.128278 0.055824 +vt 0.267712 0.154721 +vt 0.250039 0.146201 +vt 0.234265 0.153790 +vt 0.176691 0.033767 +vt 0.325971 0.033767 +vt 0.162409 0.952094 +vt 0.183011 0.952094 +vt 0.212500 0.952094 +vt 0.242106 0.952094 +vt 0.267372 0.952094 +vt 0.267372 1.000000 +vt 0.162409 1.000000 +vt 0.028760 0.952094 +vt 0.058382 0.952094 +vt 0.087140 0.952094 +vt 0.117337 0.952094 +vt 0.121913 0.952094 +vt 0.121913 1.000000 +vt 0.020973 1.000000 +vt 0.020973 0.952094 +vt 0.056018 0.371849 +vt 0.021967 0.222664 +vt 0.160868 0.288211 +vt 0.194017 0.329809 +vt 0.204928 0.343503 +vt 0.222629 0.343509 +vt 0.222452 0.476734 +vt 0.089871 0.412886 +vt 0.275820 0.343529 +vt 0.295002 0.343536 +vt 0.306102 0.329628 +vt 0.408767 0.413542 +vt 0.275642 0.477652 +vt 0.339283 0.288052 +vt 0.348645 0.328667 +vt 0.250000 0.376172 +vt 0.151355 0.328667 +vt 0.126992 0.221924 +vt 0.195256 0.136323 +vt 0.304744 0.136323 +vt 0.373008 0.221924 +vt 0.250000 0.401586 +vt 0.368515 0.344513 +vt 0.378377 0.352378 +vt 0.250000 0.414201 +vt 0.397786 0.216269 +vt 0.410084 0.213462 +vt 0.315771 0.113425 +vt 0.321244 0.102060 +vt 0.184229 0.113425 +vt 0.178756 0.102060 +vt 0.102214 0.216269 +vt 0.089916 0.213462 +vt 0.131485 0.344513 +vt 0.121623 0.352378 +vt 0.375000 0.275590 +vt 0.625000 0.275535 +vt 0.375000 0.275500 +vt 0.625000 0.275529 +vt 0.375000 0.276953 +vt 0.625000 0.276274 +vt 0.375000 0.275656 +vt 0.625000 0.275590 +vt 0.375000 0.275978 +vt 0.625000 0.275995 +vt 0.375000 0.276796 +vt 0.625000 0.276345 +vt 0.375000 0.277059 +vt 0.625000 0.276391 +vt 0.856398 0.502042 +vt 0.847674 0.502042 +vt 0.849465 0.500000 +vt 0.875000 0.500000 +vt 0.832412 0.689867 +vt 0.832459 0.689438 +vt 0.859050 0.689438 +vt 0.167652 0.690629 +vt 0.167701 0.691059 +vt 0.125000 0.500000 +vt 0.150590 0.500000 +vt 0.152318 0.501971 +vt 0.143593 0.501971 +vt 0.141088 0.690629 +vt 0.856398 0.502049 +vt 0.847676 0.502049 +vt 0.849471 0.500000 +vt 0.875000 0.500000 +vt 0.832290 0.691138 +vt 0.832340 0.690709 +vt 0.858902 0.690709 +vt 0.167557 0.689479 +vt 0.167604 0.689909 +vt 0.125000 0.500000 +vt 0.150500 0.500000 +vt 0.152330 0.502087 +vt 0.143607 0.502087 +vt 0.140957 0.689479 +vt 0.848726 0.500000 +vt 0.875000 0.500000 +vt 0.832534 0.687880 +vt 0.832575 0.687453 +vt 0.859288 0.687453 +vt 0.856517 0.501077 +vt 0.847785 0.501077 +vt 0.167566 0.689913 +vt 0.167616 0.690344 +vt 0.125000 0.500000 +vt 0.151953 0.500000 +vt 0.152119 0.500190 +vt 0.143377 0.500190 +vt 0.142774 0.592035 +vt 0.141000 0.689913 +vt 0.849410 0.500000 +vt 0.875000 0.500000 +vt 0.832463 0.689644 +vt 0.832513 0.689215 +vt 0.859085 0.689215 +vt 0.856410 0.501970 +vt 0.847690 0.501970 +vt 0.167672 0.690694 +vt 0.167720 0.691124 +vt 0.125000 0.500000 +vt 0.150656 0.500000 +vt 0.152302 0.501884 +vt 0.143580 0.501884 +vt 0.141100 0.690694 +vt 0.849005 0.500000 +vt 0.875000 0.500000 +vt 0.832460 0.689083 +vt 0.832504 0.688653 +vt 0.859141 0.688654 +vt 0.856473 0.501441 +vt 0.847746 0.501441 +vt 0.167612 0.690305 +vt 0.167662 0.690735 +vt 0.125000 0.500000 +vt 0.150978 0.500000 +vt 0.152256 0.501464 +vt 0.143529 0.501464 +vt 0.141048 0.690305 +vt 0.856527 0.500984 +vt 0.847793 0.500984 +vt 0.848655 0.500000 +vt 0.875000 0.500000 +vt 0.832447 0.689797 +vt 0.832497 0.689369 +vt 0.859066 0.689369 +vt 0.167396 0.688069 +vt 0.167443 0.688500 +vt 0.125000 0.500000 +vt 0.151796 0.500000 +vt 0.152141 0.500395 +vt 0.143402 0.500395 +vt 0.140785 0.688069 +vt 0.856534 0.500924 +vt 0.847799 0.500924 +vt 0.848609 0.500000 +vt 0.875000 0.500000 +vt 0.832672 0.687862 +vt 0.832721 0.687435 +vt 0.859303 0.687435 +vt 0.167534 0.689636 +vt 0.167585 0.690068 +vt 0.125000 0.500000 +vt 0.152059 0.500000 +vt 0.152104 0.500052 +vt 0.143360 0.500052 +vt 0.142767 0.590999 +vt 0.140966 0.689636 +vt 0.971926 0.953202 +vt 0.971926 0.970060 +vt 1.000000 0.970060 +vt 1.000000 0.953202 +vt 1.000000 0.953202 +vt 0.857143 0.953202 +vt 0.857143 0.970060 +vt 0.887565 0.970060 +vt 0.887565 0.953202 +vt 0.828921 0.953202 +vt 0.828921 0.970060 +vt 0.857143 0.953202 +vt 0.714286 0.953202 +vt 0.714286 0.970060 +vt 0.744554 0.970060 +vt 0.744554 0.953202 +vt 0.571429 0.970060 +vt 0.598072 0.970059 +vt 0.598072 0.953202 +vt 0.571429 0.953202 +vt 0.571429 0.953202 +vt 0.682436 0.953202 +vt 0.682436 0.970060 +vt 0.705731 0.970059 +vt 0.714286 0.953202 +vt 0.428571 0.970060 +vt 0.459688 0.970060 +vt 0.459688 0.953202 +vt 0.428572 0.953202 +vt 0.428571 0.953202 +vt 0.544050 0.953202 +vt 0.544050 0.970060 +vt 0.285714 0.953202 +vt 0.285714 0.970060 +vt 0.316448 0.970060 +vt 0.316448 0.953202 +vt 0.285714 0.953202 +vt 0.400809 0.953202 +vt 0.400809 0.970060 +vt 0.257770 0.953202 +vt 0.257770 0.970060 +vt 0.142857 0.953202 +vt 0.142857 0.970060 +vt 0.173403 0.970060 +vt 0.173403 0.953202 +vt 0.112131 0.953202 +vt 0.112131 0.970060 +vt 0.142857 0.953202 +vt 0.000000 0.953202 +vt 0.000000 0.970060 +vt 0.027770 0.970060 +vt 0.027770 0.953202 +vt 0.436509 0.398736 +vt 0.436509 0.398736 +vt 0.396791 0.417863 +vt 0.395397 0.414961 +vt 0.285207 0.467896 +vt 0.286652 0.470904 +vt 0.250000 0.488554 +vt 0.472813 0.239678 +vt 0.472731 0.239658 +vt 0.444141 0.358513 +vt 0.445609 0.358866 +vt 0.482573 0.196917 +vt 0.482573 0.196917 +vt 0.377577 0.065256 +vt 0.377069 0.065654 +vt 0.452533 0.161826 +vt 0.453798 0.160833 +vt 0.353505 0.035070 +vt 0.353505 0.035070 +vt 0.146495 0.035070 +vt 0.191586 0.035070 +vt 0.191586 0.037462 +vt 0.313831 0.037425 +vt 0.313830 0.035070 +vt 0.146495 0.035070 +vt 0.017427 0.196917 +vt 0.045194 0.162098 +vt 0.047598 0.164020 +vt 0.123927 0.068533 +vt 0.121412 0.066523 +vt 0.017427 0.196917 +vt 0.063491 0.398736 +vt 0.063491 0.398736 +vt 0.053641 0.355583 +vt 0.053944 0.355518 +vt 0.028158 0.236023 +vt 0.026437 0.236395 +vt 0.213745 0.471095 +vt 0.215223 0.468022 +vt 0.105057 0.415037 +vt 0.103606 0.418055 +vt 0.250000 0.488554 +vt 0.937420 0.533849 +vt 0.934356 0.538582 +vt 0.909393 0.538582 +vt 0.906330 0.533849 +vt 0.906575 0.519291 +vt 0.937175 0.519291 +vt 0.934358 0.657826 +vt 0.934357 0.736465 +vt 0.909392 0.736465 +vt 0.909393 0.657826 +vt 0.903108 0.657826 +vt 0.903107 0.736465 +vt 0.878142 0.736465 +vt 0.878143 0.657826 +vt 0.871858 0.657826 +vt 0.871857 0.736465 +vt 0.846892 0.736465 +vt 0.846893 0.657826 +vt 0.840608 0.657826 +vt 0.840607 0.736465 +vt 0.815642 0.736465 +vt 0.815643 0.657826 +vt 0.809358 0.657826 +vt 0.809357 0.736465 +vt 0.784392 0.736465 +vt 0.784393 0.657826 +vt 0.778108 0.657826 +vt 0.778107 0.736465 +vt 0.753142 0.736465 +vt 0.753143 0.657826 +vt 0.746858 0.657826 +vt 0.746857 0.736465 +vt 0.721892 0.736465 +vt 0.721893 0.657826 +vt 0.715608 0.657826 +vt 0.715607 0.736465 +vt 0.690642 0.736465 +vt 0.690643 0.657826 +vt 0.684358 0.657826 +vt 0.684357 0.736465 +vt 0.659392 0.736465 +vt 0.659393 0.657826 +vt 0.653108 0.657826 +vt 0.653107 0.736465 +vt 0.628142 0.736465 +vt 0.628143 0.657826 +vt 0.621858 0.657826 +vt 0.621857 0.736465 +vt 0.596892 0.736465 +vt 0.596893 0.657826 +vt 0.590608 0.657826 +vt 0.590607 0.736465 +vt 0.565642 0.736465 +vt 0.565643 0.657826 +vt 0.559358 0.657826 +vt 0.559357 0.736465 +vt 0.534392 0.736465 +vt 0.534393 0.657826 +vt 0.528108 0.657826 +vt 0.528107 0.736465 +vt 0.503142 0.736465 +vt 0.503143 0.657826 +vt 0.496858 0.657826 +vt 0.496857 0.736465 +vt 0.471892 0.736465 +vt 0.471893 0.657826 +vt 0.465608 0.657826 +vt 0.465607 0.736465 +vt 0.440642 0.736465 +vt 0.440643 0.657826 +vt 0.434358 0.657826 +vt 0.434357 0.736465 +vt 0.409392 0.736465 +vt 0.409393 0.657826 +vt 0.403108 0.657826 +vt 0.403107 0.736465 +vt 0.378142 0.736465 +vt 0.378143 0.657826 +vt 0.371858 0.657826 +vt 0.371857 0.736465 +vt 0.346892 0.736465 +vt 0.346893 0.657826 +vt 0.340608 0.657826 +vt 0.340607 0.736465 +vt 0.315642 0.736465 +vt 0.315643 0.657826 +vt 0.309358 0.657826 +vt 0.309357 0.736465 +vt 0.284392 0.736465 +vt 0.284393 0.657826 +vt 0.278108 0.657826 +vt 0.278107 0.736465 +vt 0.253142 0.736465 +vt 0.253143 0.657826 +vt 0.246858 0.657826 +vt 0.246857 0.736465 +vt 0.221892 0.736465 +vt 0.221893 0.657826 +vt 0.215608 0.657826 +vt 0.215607 0.736465 +vt 0.190642 0.736465 +vt 0.190643 0.657826 +vt 0.184358 0.657826 +vt 0.184357 0.736465 +vt 0.159392 0.736465 +vt 0.159393 0.657826 +vt 0.153108 0.657826 +vt 0.153107 0.736465 +vt 0.128142 0.736465 +vt 0.128143 0.657826 +vt 0.121858 0.657826 +vt 0.121857 0.736465 +vt 0.096892 0.736465 +vt 0.096893 0.657826 +vt 0.090608 0.657826 +vt 0.090607 0.736465 +vt 0.065642 0.736465 +vt 0.065643 0.657826 +vt 0.906170 0.533849 +vt 0.903106 0.538582 +vt 0.878143 0.538582 +vt 0.875080 0.533849 +vt 0.875325 0.519291 +vt 0.905925 0.519291 +vt 0.965608 0.657826 +vt 0.965607 0.736465 +vt 0.940642 0.736465 +vt 0.940643 0.657826 +vt 0.968670 0.533849 +vt 0.965606 0.538582 +vt 0.940643 0.538582 +vt 0.937580 0.533849 +vt 0.937825 0.519291 +vt 0.968425 0.519291 +vt 0.028106 0.538582 +vt 0.028107 0.630756 +vt 0.003143 0.630756 +vt 0.003143 0.538582 +vt 0.999675 0.519291 +vt 0.969075 0.519291 +vt 0.969962 0.500000 +vt 0.998788 0.500000 +vt 0.750000 0.471391 +vt 0.793191 0.467137 +vt 0.000080 0.966151 +vt 0.003143 0.961418 +vt 0.028106 0.961418 +vt 0.031170 0.966151 +vt 0.030925 0.980709 +vt 0.000325 0.980709 +vt 0.969075 0.980709 +vt 0.999675 0.980709 +vt 0.998788 1.000000 +vt 0.969962 1.000000 +vt 0.293191 0.467137 +vt 0.250000 0.471391 +vt 0.250000 0.452782 +vt 0.289561 0.448886 +vt 0.965607 0.630756 +vt 0.940643 0.630756 +vt 0.938712 0.500000 +vt 0.967538 0.500000 +vt 0.834722 0.454539 +vt 0.965607 0.869244 +vt 0.965606 0.961418 +vt 0.940643 0.961418 +vt 0.940643 0.869244 +vt 0.937825 0.980709 +vt 0.968425 0.980709 +vt 0.967538 1.000000 +vt 0.938712 1.000000 +vt 0.334723 0.454539 +vt 0.327601 0.437346 +vt 0.934357 0.630756 +vt 0.909393 0.630756 +vt 0.907461 0.500000 +vt 0.936288 0.500000 +vt 0.872998 0.434080 +vt 0.934357 0.869244 +vt 0.934356 0.961418 +vt 0.909393 0.961418 +vt 0.909393 0.869244 +vt 0.906575 0.980709 +vt 0.937175 0.980709 +vt 0.936288 1.000000 +vt 0.907462 1.000000 +vt 0.372998 0.434080 +vt 0.362660 0.418607 +vt 0.903107 0.630756 +vt 0.878143 0.630756 +vt 0.876212 0.500000 +vt 0.905038 0.500000 +vt 0.906547 0.406547 +vt 0.903107 0.869244 +vt 0.903106 0.961418 +vt 0.878143 0.961418 +vt 0.878143 0.869244 +vt 0.875325 0.980709 +vt 0.905925 0.980709 +vt 0.905038 1.000000 +vt 0.876212 1.000000 +vt 0.406547 0.406547 +vt 0.393388 0.393388 +vt 0.871856 0.538582 +vt 0.871857 0.630756 +vt 0.846893 0.630756 +vt 0.846893 0.538582 +vt 0.874675 0.519291 +vt 0.844075 0.519291 +vt 0.844962 0.500000 +vt 0.873788 0.500000 +vt 0.934080 0.372998 +vt 0.871857 0.869244 +vt 0.871856 0.961418 +vt 0.846893 0.961418 +vt 0.846893 0.869244 +vt 0.844075 0.980709 +vt 0.874675 0.980709 +vt 0.873788 1.000000 +vt 0.844962 1.000000 +vt 0.434080 0.372998 +vt 0.418607 0.362660 +vt 0.840606 0.538582 +vt 0.840607 0.630756 +vt 0.815643 0.630756 +vt 0.815643 0.538582 +vt 0.843425 0.519291 +vt 0.812825 0.519291 +vt 0.813712 0.500000 +vt 0.842538 0.500000 +vt 0.954539 0.334723 +vt 0.840607 0.869244 +vt 0.840606 0.961418 +vt 0.815643 0.961418 +vt 0.815643 0.869244 +vt 0.812825 0.980709 +vt 0.843425 0.980709 +vt 0.842538 1.000000 +vt 0.813712 1.000000 +vt 0.454539 0.334723 +vt 0.437346 0.327601 +vt 0.809356 0.538582 +vt 0.809357 0.630756 +vt 0.784393 0.630756 +vt 0.784393 0.538582 +vt 0.812175 0.519291 +vt 0.781575 0.519291 +vt 0.782462 0.500000 +vt 0.811288 0.500000 +vt 0.967137 0.293191 +vt 0.809357 0.869244 +vt 0.809356 0.961418 +vt 0.784393 0.961418 +vt 0.784393 0.869244 +vt 0.781575 0.980709 +vt 0.812175 0.980709 +vt 0.811288 1.000000 +vt 0.782462 1.000000 +vt 0.467137 0.293191 +vt 0.448886 0.289561 +vt 0.778106 0.538582 +vt 0.778107 0.630756 +vt 0.753143 0.630756 +vt 0.753143 0.538582 +vt 0.780925 0.519291 +vt 0.750325 0.519291 +vt 0.751211 0.500000 +vt 0.780038 0.500000 +vt 0.971391 0.250000 +vt 0.778107 0.869244 +vt 0.778106 0.961418 +vt 0.753143 0.961418 +vt 0.753143 0.869244 +vt 0.750325 0.980709 +vt 0.780925 0.980709 +vt 0.780038 1.000000 +vt 0.751212 1.000000 +vt 0.471391 0.250000 +vt 0.452782 0.250000 +vt 0.746856 0.538582 +vt 0.746857 0.630756 +vt 0.721893 0.630756 +vt 0.721893 0.538582 +vt 0.749675 0.519291 +vt 0.719075 0.519291 +vt 0.719962 0.500000 +vt 0.748788 0.500000 +vt 0.967137 0.206809 +vt 0.746857 0.869244 +vt 0.746856 0.961418 +vt 0.721893 0.961418 +vt 0.721893 0.869244 +vt 0.719075 0.980709 +vt 0.749675 0.980709 +vt 0.748788 1.000000 +vt 0.719962 1.000000 +vt 0.467137 0.206809 +vt 0.448886 0.210439 +vt 0.715606 0.538582 +vt 0.715607 0.630756 +vt 0.690643 0.630756 +vt 0.690643 0.538582 +vt 0.718425 0.519291 +vt 0.687825 0.519291 +vt 0.688712 0.500000 +vt 0.717538 0.500000 +vt 0.954539 0.165277 +vt 0.715607 0.869244 +vt 0.715606 0.961418 +vt 0.690643 0.961418 +vt 0.690643 0.869244 +vt 0.687825 0.980709 +vt 0.718425 0.980709 +vt 0.717538 1.000000 +vt 0.688712 1.000000 +vt 0.454539 0.165277 +vt 0.437346 0.172399 +vt 0.684356 0.538582 +vt 0.684357 0.630756 +vt 0.659393 0.630756 +vt 0.659393 0.538582 +vt 0.687175 0.519291 +vt 0.656575 0.519291 +vt 0.657462 0.500000 +vt 0.686288 0.500000 +vt 0.934080 0.127002 +vt 0.684357 0.869244 +vt 0.684356 0.961418 +vt 0.659393 0.961418 +vt 0.659393 0.869244 +vt 0.656575 0.980709 +vt 0.687175 0.980709 +vt 0.686288 1.000000 +vt 0.657462 1.000000 +vt 0.434080 0.127002 +vt 0.418607 0.137340 +vt 0.653106 0.538582 +vt 0.653107 0.630756 +vt 0.628143 0.630756 +vt 0.628143 0.538582 +vt 0.655925 0.519291 +vt 0.625325 0.519291 +vt 0.626212 0.500000 +vt 0.655039 0.500000 +vt 0.906547 0.093453 +vt 0.653107 0.869244 +vt 0.653106 0.961418 +vt 0.628143 0.961418 +vt 0.628143 0.869244 +vt 0.625325 0.980709 +vt 0.655925 0.980709 +vt 0.655038 1.000000 +vt 0.626212 1.000000 +vt 0.406547 0.093453 +vt 0.393389 0.106612 +vt 0.621856 0.538582 +vt 0.621857 0.630756 +vt 0.596893 0.630756 +vt 0.596893 0.538582 +vt 0.624675 0.519291 +vt 0.594075 0.519291 +vt 0.594962 0.500000 +vt 0.623788 0.500000 +vt 0.872998 0.065920 +vt 0.621857 0.869244 +vt 0.621856 0.961418 +vt 0.596893 0.961418 +vt 0.596893 0.869244 +vt 0.594075 0.980709 +vt 0.624675 0.980709 +vt 0.623788 1.000000 +vt 0.594962 1.000000 +vt 0.372998 0.065920 +vt 0.362660 0.081393 +vt 0.590606 0.538582 +vt 0.590607 0.630756 +vt 0.565643 0.630756 +vt 0.565643 0.538582 +vt 0.593425 0.519291 +vt 0.562825 0.519291 +vt 0.563712 0.500000 +vt 0.592538 0.500000 +vt 0.834723 0.045461 +vt 0.590607 0.869244 +vt 0.590606 0.961418 +vt 0.565643 0.961418 +vt 0.565643 0.869244 +vt 0.562825 0.980709 +vt 0.593425 0.980709 +vt 0.592538 1.000000 +vt 0.563712 1.000000 +vt 0.334723 0.045461 +vt 0.327601 0.062654 +vt 0.559356 0.538582 +vt 0.559357 0.630756 +vt 0.534393 0.630756 +vt 0.534393 0.538582 +vt 0.562175 0.519291 +vt 0.531575 0.519291 +vt 0.532462 0.500000 +vt 0.561288 0.500000 +vt 0.793191 0.032863 +vt 0.559357 0.869244 +vt 0.559356 0.961418 +vt 0.534393 0.961418 +vt 0.534393 0.869244 +vt 0.531575 0.980709 +vt 0.562175 0.980709 +vt 0.561289 1.000000 +vt 0.532462 1.000000 +vt 0.293191 0.032863 +vt 0.289561 0.051114 +vt 0.528106 0.538582 +vt 0.528107 0.630756 +vt 0.503143 0.630756 +vt 0.503143 0.538582 +vt 0.530925 0.519291 +vt 0.500325 0.519291 +vt 0.501212 0.500000 +vt 0.530038 0.500000 +vt 0.750000 0.028609 +vt 0.528107 0.869244 +vt 0.528106 0.961418 +vt 0.503143 0.961418 +vt 0.503143 0.869244 +vt 0.500325 0.980709 +vt 0.530925 0.980709 +vt 0.530038 1.000000 +vt 0.501212 1.000000 +vt 0.250000 0.028609 +vt 0.250000 0.047218 +vt 0.496856 0.538582 +vt 0.496857 0.630756 +vt 0.471893 0.630756 +vt 0.471893 0.538582 +vt 0.499675 0.519291 +vt 0.469075 0.519291 +vt 0.469962 0.500000 +vt 0.498788 0.500000 +vt 0.706809 0.032863 +vt 0.496857 0.869244 +vt 0.496856 0.961418 +vt 0.471893 0.961418 +vt 0.471893 0.869244 +vt 0.469075 0.980709 +vt 0.499675 0.980709 +vt 0.498789 1.000000 +vt 0.469962 1.000000 +vt 0.206809 0.032863 +vt 0.210439 0.051114 +vt 0.465606 0.538582 +vt 0.465607 0.630756 +vt 0.440643 0.630756 +vt 0.440643 0.538582 +vt 0.468425 0.519291 +vt 0.437825 0.519291 +vt 0.438712 0.500000 +vt 0.467538 0.500000 +vt 0.665277 0.045461 +vt 0.465607 0.869244 +vt 0.465606 0.961418 +vt 0.440643 0.961418 +vt 0.440643 0.869244 +vt 0.437825 0.980709 +vt 0.468425 0.980709 +vt 0.467538 1.000000 +vt 0.438712 1.000000 +vt 0.165277 0.045461 +vt 0.172399 0.062654 +vt 0.434356 0.538582 +vt 0.434357 0.630756 +vt 0.409393 0.630756 +vt 0.409393 0.538582 +vt 0.437175 0.519291 +vt 0.406575 0.519291 +vt 0.407461 0.500000 +vt 0.436288 0.500000 +vt 0.627002 0.065920 +vt 0.434357 0.869244 +vt 0.434356 0.961418 +vt 0.409393 0.961418 +vt 0.409393 0.869244 +vt 0.406575 0.980709 +vt 0.437175 0.980709 +vt 0.436289 1.000000 +vt 0.407462 1.000000 +vt 0.127002 0.065920 +vt 0.137340 0.081393 +vt 0.403106 0.538582 +vt 0.403107 0.630756 +vt 0.378143 0.630756 +vt 0.378143 0.538582 +vt 0.405925 0.519291 +vt 0.375325 0.519291 +vt 0.376212 0.500000 +vt 0.405038 0.500000 +vt 0.593453 0.093453 +vt 0.403107 0.869244 +vt 0.403106 0.961418 +vt 0.378143 0.961418 +vt 0.378143 0.869244 +vt 0.375325 0.980709 +vt 0.405925 0.980709 +vt 0.405038 1.000000 +vt 0.376212 1.000000 +vt 0.093453 0.093453 +vt 0.106611 0.106612 +vt 0.371856 0.538582 +vt 0.371857 0.630756 +vt 0.346893 0.630756 +vt 0.346893 0.538582 +vt 0.374675 0.519291 +vt 0.344075 0.519291 +vt 0.344962 0.500000 +vt 0.373788 0.500000 +vt 0.565920 0.127002 +vt 0.371857 0.869244 +vt 0.371856 0.961418 +vt 0.346893 0.961418 +vt 0.346893 0.869244 +vt 0.344075 0.980709 +vt 0.374675 0.980709 +vt 0.373788 1.000000 +vt 0.344962 1.000000 +vt 0.065920 0.127002 +vt 0.081393 0.137341 +vt 0.340606 0.538582 +vt 0.340607 0.630756 +vt 0.315643 0.630756 +vt 0.315643 0.538582 +vt 0.343425 0.519291 +vt 0.312825 0.519291 +vt 0.313711 0.500000 +vt 0.342539 0.500000 +vt 0.545461 0.165278 +vt 0.340607 0.869244 +vt 0.340606 0.961418 +vt 0.315643 0.961418 +vt 0.315643 0.869244 +vt 0.312825 0.980709 +vt 0.343425 0.980709 +vt 0.342539 1.000000 +vt 0.313712 1.000000 +vt 0.045461 0.165278 +vt 0.062654 0.172399 +vt 0.309356 0.538582 +vt 0.309357 0.630756 +vt 0.284393 0.630756 +vt 0.284393 0.538582 +vt 0.312175 0.519291 +vt 0.281575 0.519291 +vt 0.282462 0.500000 +vt 0.311288 0.500000 +vt 0.532863 0.206809 +vt 0.309357 0.869244 +vt 0.309356 0.961418 +vt 0.284393 0.961418 +vt 0.284393 0.869244 +vt 0.281575 0.980709 +vt 0.312175 0.980709 +vt 0.311288 1.000000 +vt 0.282462 1.000000 +vt 0.032863 0.206809 +vt 0.051114 0.210439 +vt 0.278106 0.538582 +vt 0.278107 0.630756 +vt 0.253143 0.630756 +vt 0.253143 0.538582 +vt 0.280925 0.519291 +vt 0.250325 0.519291 +vt 0.251212 0.500000 +vt 0.280038 0.500000 +vt 0.528609 0.250000 +vt 0.278107 0.869244 +vt 0.278106 0.961418 +vt 0.253143 0.961418 +vt 0.253143 0.869244 +vt 0.250325 0.980709 +vt 0.280925 0.980709 +vt 0.280038 1.000000 +vt 0.251212 1.000000 +vt 0.028609 0.250000 +vt 0.047218 0.250000 +vt 0.246856 0.538582 +vt 0.246857 0.630756 +vt 0.221893 0.630756 +vt 0.221893 0.538582 +vt 0.249675 0.519291 +vt 0.219075 0.519291 +vt 0.219962 0.500000 +vt 0.248788 0.500000 +vt 0.532863 0.293191 +vt 0.246857 0.869244 +vt 0.246856 0.961418 +vt 0.221893 0.961418 +vt 0.221893 0.869244 +vt 0.219075 0.980709 +vt 0.249675 0.980709 +vt 0.248788 1.000000 +vt 0.219962 1.000000 +vt 0.032863 0.293191 +vt 0.051115 0.289561 +vt 0.215606 0.538582 +vt 0.215607 0.630756 +vt 0.190643 0.630756 +vt 0.190643 0.538582 +vt 0.218425 0.519291 +vt 0.187825 0.519291 +vt 0.188712 0.500000 +vt 0.217538 0.500000 +vt 0.545462 0.334723 +vt 0.215607 0.869244 +vt 0.215606 0.961418 +vt 0.190643 0.961418 +vt 0.190643 0.869244 +vt 0.187825 0.980709 +vt 0.218425 0.980709 +vt 0.217538 1.000000 +vt 0.188712 1.000000 +vt 0.045462 0.334723 +vt 0.062654 0.327601 +vt 0.184356 0.538582 +vt 0.184357 0.630756 +vt 0.159393 0.630756 +vt 0.159393 0.538582 +vt 0.187175 0.519291 +vt 0.156575 0.519291 +vt 0.157462 0.500000 +vt 0.186288 0.500000 +vt 0.565920 0.372998 +vt 0.184357 0.869244 +vt 0.184356 0.961418 +vt 0.159393 0.961418 +vt 0.159393 0.869244 +vt 0.156575 0.980709 +vt 0.187175 0.980709 +vt 0.186288 1.000000 +vt 0.157462 1.000000 +vt 0.065920 0.372998 +vt 0.081393 0.362660 +vt 0.153106 0.538582 +vt 0.153107 0.630756 +vt 0.128143 0.630756 +vt 0.128143 0.538582 +vt 0.155925 0.519291 +vt 0.125325 0.519291 +vt 0.126212 0.500000 +vt 0.155038 0.500000 +vt 0.593453 0.406547 +vt 0.153107 0.869244 +vt 0.153106 0.961418 +vt 0.128143 0.961418 +vt 0.128143 0.869244 +vt 0.125325 0.980709 +vt 0.155925 0.980709 +vt 0.155038 1.000000 +vt 0.126212 1.000000 +vt 0.093453 0.406547 +vt 0.106612 0.393389 +vt 0.121856 0.538582 +vt 0.121857 0.630756 +vt 0.096893 0.630756 +vt 0.096893 0.538582 +vt 0.124675 0.519291 +vt 0.094075 0.519291 +vt 0.094962 0.500000 +vt 0.123788 0.500000 +vt 0.627002 0.434080 +vt 0.121857 0.869244 +vt 0.121856 0.961418 +vt 0.096893 0.961418 +vt 0.096893 0.869244 +vt 0.094075 0.980709 +vt 0.124675 0.980709 +vt 0.123788 1.000000 +vt 0.094962 1.000000 +vt 0.127002 0.434080 +vt 0.137341 0.418607 +vt 0.090606 0.538582 +vt 0.090607 0.630756 +vt 0.065643 0.630756 +vt 0.065643 0.538582 +vt 0.093425 0.519291 +vt 0.062825 0.519291 +vt 0.063712 0.500000 +vt 0.092538 0.500000 +vt 0.665278 0.454539 +vt 0.090607 0.869244 +vt 0.090606 0.961418 +vt 0.065643 0.961418 +vt 0.065643 0.869244 +vt 0.062825 0.980709 +vt 0.093425 0.980709 +vt 0.092538 1.000000 +vt 0.063712 1.000000 +vt 0.165278 0.454539 +vt 0.172399 0.437346 +vt 0.059356 0.538582 +vt 0.059357 0.630756 +vt 0.034393 0.630756 +vt 0.034393 0.538582 +vt 0.062175 0.519291 +vt 0.031575 0.519291 +vt 0.032462 0.500000 +vt 0.061288 0.500000 +vt 0.706809 0.467137 +vt 0.059357 0.869244 +vt 0.059356 0.961418 +vt 0.034393 0.961418 +vt 0.034393 0.869244 +vt 0.031575 0.980709 +vt 0.062175 0.980709 +vt 0.061288 1.000000 +vt 0.032462 1.000000 +vt 0.206809 0.467137 +vt 0.210440 0.448886 +vt 0.999920 0.533849 +vt 0.996856 0.538582 +vt 0.971893 0.538582 +vt 0.968830 0.533849 +vt 0.030925 0.519291 +vt 0.000325 0.519291 +vt 0.001212 0.500000 +vt 0.030038 0.500000 +vt 0.028107 0.869244 +vt 0.003143 0.869244 +vt 0.030038 1.000000 +vt 0.001212 1.000000 +vt 0.996857 0.763535 +vt 0.996858 0.842174 +vt 0.971893 0.842174 +vt 0.971892 0.763535 +vt 0.996857 0.869244 +vt 0.996856 0.961418 +vt 0.971893 0.961418 +vt 0.971893 0.869244 +vt 0.968830 0.966151 +vt 0.999920 0.966151 +vt 0.031330 0.966151 +vt 0.062420 0.966151 +vt 0.937580 0.966151 +vt 0.968670 0.966151 +vt 0.059358 0.657826 +vt 0.059357 0.736465 +vt 0.034392 0.736465 +vt 0.034393 0.657826 +vt 0.059357 0.763535 +vt 0.059358 0.842174 +vt 0.034393 0.842174 +vt 0.034392 0.763535 +vt 0.934357 0.763535 +vt 0.934358 0.842174 +vt 0.909393 0.842174 +vt 0.909392 0.763535 +vt 0.934333 0.644291 +vt 0.909417 0.644291 +vt 0.028083 0.855709 +vt 0.003167 0.855709 +vt 0.003143 0.842174 +vt 0.028108 0.842174 +vt 0.062580 0.966151 +vt 0.093670 0.966151 +vt 0.812500 0.538582 +vt 0.812500 0.630756 +vt 0.062420 0.533849 +vt 0.031330 0.533849 +vt 0.093830 0.966151 +vt 0.124920 0.966151 +vt 0.090607 0.763535 +vt 0.090608 0.842174 +vt 0.065643 0.842174 +vt 0.065642 0.763535 +vt 0.093670 0.533849 +vt 0.062580 0.533849 +vt 0.125080 0.966151 +vt 0.156170 0.966151 +vt 0.121857 0.763535 +vt 0.121858 0.842174 +vt 0.096893 0.842174 +vt 0.096892 0.763535 +vt 0.124920 0.533849 +vt 0.093830 0.533849 +vt 0.156330 0.966151 +vt 0.187420 0.966151 +vt 0.153107 0.763535 +vt 0.153108 0.842174 +vt 0.128143 0.842174 +vt 0.128142 0.763535 +vt 0.156170 0.533849 +vt 0.125080 0.533849 +vt 0.187580 0.966151 +vt 0.218670 0.966151 +vt 0.184357 0.763535 +vt 0.184358 0.842174 +vt 0.159393 0.842174 +vt 0.159392 0.763535 +vt 0.187420 0.533849 +vt 0.156330 0.533849 +vt 0.218830 0.966151 +vt 0.249920 0.966151 +vt 0.215607 0.763535 +vt 0.215608 0.842174 +vt 0.190643 0.842174 +vt 0.190642 0.763535 +vt 0.218670 0.533849 +vt 0.187580 0.533849 +vt 0.250080 0.966151 +vt 0.281170 0.966151 +vt 0.246857 0.763535 +vt 0.246858 0.842174 +vt 0.221893 0.842174 +vt 0.221892 0.763535 +vt 0.249920 0.533849 +vt 0.218830 0.533849 +vt 0.281330 0.966151 +vt 0.312420 0.966151 +vt 0.278107 0.763535 +vt 0.278108 0.842174 +vt 0.253143 0.842174 +vt 0.253142 0.763535 +vt 0.281170 0.533849 +vt 0.250080 0.533849 +vt 0.312580 0.966151 +vt 0.343670 0.966151 +vt 0.309357 0.763535 +vt 0.309358 0.842174 +vt 0.284393 0.842174 +vt 0.284392 0.763535 +vt 0.312420 0.533849 +vt 0.281330 0.533849 +vt 0.343830 0.966151 +vt 0.374920 0.966151 +vt 0.340607 0.763535 +vt 0.340608 0.842174 +vt 0.315643 0.842174 +vt 0.315642 0.763535 +vt 0.343670 0.533849 +vt 0.312580 0.533849 +vt 0.375080 0.966151 +vt 0.406170 0.966151 +vt 0.371857 0.763535 +vt 0.371858 0.842174 +vt 0.346893 0.842174 +vt 0.346892 0.763535 +vt 0.374920 0.533849 +vt 0.343830 0.533849 +vt 0.406330 0.966151 +vt 0.437420 0.966151 +vt 0.403107 0.763535 +vt 0.403108 0.842174 +vt 0.378143 0.842174 +vt 0.378142 0.763535 +vt 0.406170 0.533849 +vt 0.375080 0.533849 +vt 0.437580 0.966151 +vt 0.468670 0.966151 +vt 0.434357 0.763535 +vt 0.434358 0.842174 +vt 0.409393 0.842174 +vt 0.409392 0.763535 +vt 0.437420 0.533849 +vt 0.406330 0.533849 +vt 0.468830 0.966151 +vt 0.499920 0.966151 +vt 0.465607 0.763535 +vt 0.465608 0.842174 +vt 0.440643 0.842174 +vt 0.440642 0.763535 +vt 0.468670 0.533849 +vt 0.437580 0.533849 +vt 0.500080 0.966151 +vt 0.531170 0.966151 +vt 0.496857 0.763535 +vt 0.496858 0.842174 +vt 0.471893 0.842174 +vt 0.471892 0.763535 +vt 0.499920 0.533849 +vt 0.468830 0.533849 +vt 0.531330 0.966151 +vt 0.562420 0.966151 +vt 0.528107 0.763535 +vt 0.528108 0.842174 +vt 0.503143 0.842174 +vt 0.503142 0.763535 +vt 0.531170 0.533849 +vt 0.500080 0.533849 +vt 0.562580 0.966151 +vt 0.593670 0.966151 +vt 0.559357 0.763535 +vt 0.559358 0.842174 +vt 0.534393 0.842174 +vt 0.534392 0.763535 +vt 0.562420 0.533849 +vt 0.531330 0.533849 +vt 0.593830 0.966151 +vt 0.624920 0.966151 +vt 0.590607 0.763535 +vt 0.590608 0.842174 +vt 0.565643 0.842174 +vt 0.565642 0.763535 +vt 0.593670 0.533849 +vt 0.562580 0.533849 +vt 0.625080 0.966151 +vt 0.656170 0.966151 +vt 0.621857 0.763535 +vt 0.621858 0.842174 +vt 0.596893 0.842174 +vt 0.596892 0.763535 +vt 0.624920 0.533849 +vt 0.593830 0.533849 +vt 0.656330 0.966151 +vt 0.687420 0.966151 +vt 0.653107 0.763535 +vt 0.653108 0.842174 +vt 0.628143 0.842174 +vt 0.628142 0.763535 +vt 0.656170 0.533849 +vt 0.625080 0.533849 +vt 0.687580 0.966151 +vt 0.718670 0.966151 +vt 0.684357 0.763535 +vt 0.684358 0.842174 +vt 0.659393 0.842174 +vt 0.659392 0.763535 +vt 0.687420 0.533849 +vt 0.656330 0.533849 +vt 0.718830 0.966151 +vt 0.749920 0.966151 +vt 0.715607 0.763535 +vt 0.715608 0.842174 +vt 0.690643 0.842174 +vt 0.690642 0.763535 +vt 0.718670 0.533849 +vt 0.687580 0.533849 +vt 0.750080 0.966151 +vt 0.781170 0.966151 +vt 0.746857 0.763535 +vt 0.746858 0.842174 +vt 0.721893 0.842174 +vt 0.721892 0.763535 +vt 0.749920 0.533849 +vt 0.718830 0.533849 +vt 0.781330 0.966151 +vt 0.812420 0.966151 +vt 0.778107 0.763535 +vt 0.778108 0.842174 +vt 0.753143 0.842174 +vt 0.753142 0.763535 +vt 0.781170 0.533849 +vt 0.750080 0.533849 +vt 0.812580 0.966151 +vt 0.843670 0.966151 +vt 0.809357 0.763535 +vt 0.809358 0.842174 +vt 0.784393 0.842174 +vt 0.784392 0.763535 +vt 0.812420 0.533849 +vt 0.781330 0.533849 +vt 0.843830 0.966151 +vt 0.874920 0.966151 +vt 0.840607 0.763535 +vt 0.840608 0.842174 +vt 0.815643 0.842174 +vt 0.815642 0.763535 +vt 0.843670 0.533849 +vt 0.812580 0.533849 +vt 0.875080 0.966151 +vt 0.906170 0.966151 +vt 0.871857 0.763535 +vt 0.871858 0.842174 +vt 0.846893 0.842174 +vt 0.846892 0.763535 +vt 0.874920 0.533849 +vt 0.843830 0.533849 +vt 0.906330 0.966151 +vt 0.937420 0.966151 +vt 0.903107 0.763535 +vt 0.903108 0.842174 +vt 0.878143 0.842174 +vt 0.878142 0.763535 +vt 0.028108 0.657826 +vt 0.028107 0.736465 +vt 0.003142 0.736465 +vt 0.003143 0.657826 +vt 0.965607 0.763535 +vt 0.965608 0.842174 +vt 0.940643 0.842174 +vt 0.940642 0.763535 +vt 0.028107 0.763535 +vt 0.003142 0.763535 +vt 0.878166 0.750000 +vt 0.903083 0.750000 +vt 0.909417 0.855709 +vt 0.934333 0.855709 +vt 0.996858 0.657826 +vt 0.996857 0.736465 +vt 0.971892 0.736465 +vt 0.971893 0.657826 +vt 0.971917 0.644291 +vt 0.996833 0.644291 +vt 0.971916 0.750000 +vt 0.996833 0.750000 +vt 0.971917 0.855709 +vt 0.996833 0.855709 +vt 0.940667 0.644291 +vt 0.965583 0.644291 +vt 0.028083 0.750000 +vt 0.003166 0.750000 +vt 0.940667 0.855709 +vt 0.965583 0.855709 +vt 0.065667 0.644291 +vt 0.090583 0.644291 +vt 0.065667 0.855709 +vt 0.090583 0.855709 +vt 0.096916 0.750000 +vt 0.121833 0.750000 +vt 0.128167 0.644291 +vt 0.153083 0.644291 +vt 0.096917 0.855709 +vt 0.121833 0.855709 +vt 0.128166 0.750000 +vt 0.153083 0.750000 +vt 0.159417 0.855709 +vt 0.184333 0.855709 +vt 0.159417 0.644291 +vt 0.184333 0.644291 +vt 0.190666 0.750000 +vt 0.215583 0.750000 +vt 0.221917 0.644291 +vt 0.246833 0.644291 +vt 0.221917 0.855709 +vt 0.246833 0.855709 +vt 0.253166 0.750000 +vt 0.278083 0.750000 +vt 0.284417 0.644291 +vt 0.309333 0.644291 +vt 0.284417 0.855709 +vt 0.309333 0.855709 +vt 0.315666 0.750000 +vt 0.340583 0.750000 +vt 0.346917 0.644291 +vt 0.371833 0.644291 +vt 0.315667 0.855709 +vt 0.340583 0.855709 +vt 0.346916 0.750000 +vt 0.371833 0.750000 +vt 0.378167 0.855709 +vt 0.403083 0.855709 +vt 0.378167 0.644291 +vt 0.403083 0.644291 +vt 0.409416 0.750000 +vt 0.434333 0.750000 +vt 0.440667 0.644291 +vt 0.465583 0.644291 +vt 0.440667 0.855709 +vt 0.465583 0.855709 +vt 0.471916 0.750000 +vt 0.496833 0.750000 +vt 0.503167 0.644291 +vt 0.528083 0.644291 +vt 0.503167 0.855709 +vt 0.528083 0.855709 +vt 0.534416 0.750000 +vt 0.559333 0.750000 +vt 0.565667 0.644291 +vt 0.590583 0.644291 +vt 0.534417 0.855709 +vt 0.559333 0.855709 +vt 0.565666 0.750000 +vt 0.590583 0.750000 +vt 0.596917 0.855709 +vt 0.621833 0.855709 +vt 0.596917 0.644291 +vt 0.621833 0.644291 +vt 0.628166 0.750000 +vt 0.653083 0.750000 +vt 0.659417 0.644291 +vt 0.684333 0.644291 +vt 0.659417 0.855709 +vt 0.684333 0.855709 +vt 0.690666 0.750000 +vt 0.715583 0.750000 +vt 0.721917 0.644291 +vt 0.746833 0.644291 +vt 0.721917 0.855709 +vt 0.746833 0.855709 +vt 0.753166 0.750000 +vt 0.778083 0.750000 +vt 0.784417 0.644291 +vt 0.809333 0.644291 +vt 0.753167 0.855709 +vt 0.778083 0.855709 +vt 0.784416 0.750000 +vt 0.809333 0.750000 +vt 0.815667 0.855709 +vt 0.840583 0.855709 +vt 0.815667 0.644291 +vt 0.840583 0.644291 +vt 0.846916 0.750000 +vt 0.871833 0.750000 +vt 0.878167 0.644291 +vt 0.903083 0.644291 +vt 0.934333 0.750000 +vt 0.909416 0.750000 +vt 0.878167 0.855709 +vt 0.903083 0.855709 +vt 0.059333 0.644291 +vt 0.034417 0.644291 +vt 0.940666 0.750000 +vt 0.965583 0.750000 +vt 0.059333 0.855709 +vt 0.034417 0.855709 +vt 0.996857 0.630756 +vt 0.971893 0.630756 +vt 0.846917 0.855709 +vt 0.871833 0.855709 +vt 0.784417 0.855709 +vt 0.809333 0.855709 +vt 0.690667 0.855709 +vt 0.715583 0.855709 +vt 0.628167 0.855709 +vt 0.653083 0.855709 +vt 0.565667 0.855709 +vt 0.590583 0.855709 +vt 0.471917 0.855709 +vt 0.496833 0.855709 +vt 0.409417 0.855709 +vt 0.434333 0.855709 +vt 0.346917 0.855709 +vt 0.371833 0.855709 +vt 0.253167 0.855709 +vt 0.278083 0.855709 +vt 0.190667 0.855709 +vt 0.215583 0.855709 +vt 0.128167 0.855709 +vt 0.153083 0.855709 +vt 0.034416 0.750000 +vt 0.059333 0.750000 +vt 0.815666 0.750000 +vt 0.840583 0.750000 +vt 0.721916 0.750000 +vt 0.746833 0.750000 +vt 0.659416 0.750000 +vt 0.684333 0.750000 +vt 0.596916 0.750000 +vt 0.621833 0.750000 +vt 0.503166 0.750000 +vt 0.528083 0.750000 +vt 0.440666 0.750000 +vt 0.465583 0.750000 +vt 0.378166 0.750000 +vt 0.403083 0.750000 +vt 0.284416 0.750000 +vt 0.309333 0.750000 +vt 0.221916 0.750000 +vt 0.246833 0.750000 +vt 0.159416 0.750000 +vt 0.184333 0.750000 +vt 0.065666 0.750000 +vt 0.090583 0.750000 +vt 0.028083 0.644291 +vt 0.003167 0.644291 +vt 0.846917 0.644291 +vt 0.871833 0.644291 +vt 0.753167 0.644291 +vt 0.778083 0.644291 +vt 0.690667 0.644291 +vt 0.715583 0.644291 +vt 0.628167 0.644291 +vt 0.653083 0.644291 +vt 0.534417 0.644291 +vt 0.559333 0.644291 +vt 0.471917 0.644291 +vt 0.496833 0.644291 +vt 0.409417 0.644291 +vt 0.434333 0.644291 +vt 0.315667 0.644291 +vt 0.340583 0.644291 +vt 0.253167 0.644291 +vt 0.278083 0.644291 +vt 0.190667 0.644291 +vt 0.215583 0.644291 +vt 0.096917 0.644291 +vt 0.121833 0.644291 +vt 0.001573 0.538522 +vt 0.000002 0.538461 +vt 0.000080 0.533849 +vt -0.003083 0.961658 +vt 0.000030 0.961538 +vt 0.968771 0.538582 +vt 0.968711 0.961418 +vt 0.971816 0.961418 +vt 0.937521 0.538582 +vt 0.937461 0.961418 +vt 0.906271 0.538582 +vt 0.906211 0.961418 +vt 0.909316 0.961418 +vt 0.875021 0.538582 +vt 0.874961 0.961418 +vt 0.843771 0.538582 +vt 0.843711 0.961418 +vt 0.846816 0.961418 +vt 0.812461 0.961418 +vt 0.781271 0.538582 +vt 0.781211 0.961418 +vt 0.784316 0.961418 +vt 0.750021 0.538582 +vt 0.749961 0.961418 +vt 0.718771 0.538582 +vt 0.718711 0.961418 +vt 0.721816 0.961418 +vt 0.687521 0.538582 +vt 0.687461 0.961418 +vt 0.656271 0.538582 +vt 0.656211 0.961418 +vt 0.659316 0.961418 +vt 0.625021 0.538582 +vt 0.624961 0.961418 +vt 0.593771 0.538582 +vt 0.593711 0.961418 +vt 0.596816 0.961418 +vt 0.562521 0.538582 +vt 0.562461 0.961418 +vt 0.531271 0.538582 +vt 0.531211 0.961418 +vt 0.534316 0.961418 +vt 0.500011 0.538582 +vt 0.499980 0.961418 +vt 0.468771 0.538582 +vt 0.468711 0.961418 +vt 0.471816 0.961418 +vt 0.437521 0.538582 +vt 0.437461 0.961418 +vt 0.406271 0.538582 +vt 0.406211 0.961418 +vt 0.409316 0.961418 +vt 0.375021 0.538582 +vt 0.374961 0.961418 +vt 0.343771 0.538582 +vt 0.343711 0.961418 +vt 0.346816 0.961418 +vt 0.312521 0.538582 +vt 0.312461 0.961418 +vt 0.281271 0.538582 +vt 0.281211 0.961418 +vt 0.284316 0.961418 +vt 0.250021 0.538582 +vt 0.249961 0.961418 +vt 0.218771 0.538582 +vt 0.218711 0.961418 +vt 0.221816 0.961418 +vt 0.187521 0.538582 +vt 0.187461 0.961418 +vt 0.156271 0.538582 +vt 0.156211 0.961418 +vt 0.159316 0.961418 +vt 0.125021 0.538582 +vt 0.124961 0.961418 +vt 0.093771 0.538582 +vt 0.093711 0.961418 +vt 0.096816 0.961418 +vt 0.062521 0.538582 +vt 0.062461 0.961418 +vt 0.031271 0.538582 +vt 0.031170 0.533849 +vt 0.031211 0.961418 +vt 0.034316 0.961418 +vt 0.906250 0.630756 +vt 0.906250 0.644291 +vt 0.687500 0.630756 +vt 0.687500 0.644291 +vt 0.468750 0.630756 +vt 0.468750 0.644291 +vt 0.250000 0.630756 +vt 0.250000 0.644291 +vt 0.062500 0.630756 +vt 0.062500 0.644291 +vt 0.718750 0.736465 +vt 0.718750 0.750000 +vt 0.500000 0.736465 +vt 0.500000 0.750000 +vt 0.281250 0.736465 +vt 0.281250 0.750000 +vt 0.031250 0.763535 +vt 0.031250 0.750000 +vt 0.750000 0.842174 +vt 0.750000 0.855709 +vt 0.531250 0.842174 +vt 0.531250 0.855709 +vt 0.312500 0.842174 +vt 0.312500 0.855709 +vt 0.093750 0.842174 +vt 0.093750 0.855709 +vt 0.001571 0.842212 +vt 0.001584 0.855709 +vt 0.000000 0.855709 +vt 0.000000 0.842251 +vt 0.843750 0.630756 +vt 0.843750 0.644291 +vt 0.812500 0.644291 +vt 0.750000 0.630756 +vt 0.750000 0.644291 +vt 0.625000 0.630756 +vt 0.625000 0.644291 +vt 0.593750 0.630756 +vt 0.593750 0.644291 +vt 0.531250 0.630756 +vt 0.531250 0.644291 +vt 0.406250 0.630756 +vt 0.406250 0.644291 +vt 0.375000 0.630756 +vt 0.375000 0.644291 +vt 0.312500 0.630756 +vt 0.312500 0.644291 +vt 0.187500 0.630756 +vt 0.187500 0.644291 +vt 0.156250 0.630756 +vt 0.156250 0.644291 +vt 0.093750 0.630756 +vt 0.093750 0.644291 +vt 0.968750 0.657826 +vt 0.968750 0.644291 +vt 0.001572 0.630786 +vt 0.001584 0.644291 +vt 0.000000 0.644291 +vt 0.000000 0.630817 +vt 0.875000 0.736465 +vt 0.875000 0.750000 +vt 0.843750 0.736465 +vt 0.843750 0.750000 +vt 0.781250 0.736465 +vt 0.781250 0.750000 +vt 0.656250 0.736465 +vt 0.656250 0.750000 +vt 0.625000 0.736465 +vt 0.625000 0.750000 +vt 0.562500 0.736465 +vt 0.562500 0.750000 +vt 0.437500 0.736465 +vt 0.437500 0.750000 +vt 0.406250 0.736465 +vt 0.406250 0.750000 +vt 0.343750 0.736465 +vt 0.343750 0.750000 +vt 0.218750 0.736465 +vt 0.218750 0.750000 +vt 0.187500 0.736465 +vt 0.187500 0.750000 +vt 0.125000 0.736465 +vt 0.125000 0.750000 +vt 0.937500 0.763535 +vt 0.937500 0.750000 +vt 0.968750 0.763535 +vt 0.968750 0.750000 +vt 0.906250 0.842174 +vt 0.906250 0.855709 +vt 0.875000 0.842174 +vt 0.875000 0.855709 +vt 0.812500 0.842174 +vt 0.812500 0.855709 +vt 0.687500 0.842174 +vt 0.687500 0.855709 +vt 0.656250 0.842174 +vt 0.656250 0.855709 +vt 0.593750 0.842174 +vt 0.593750 0.855709 +vt 0.468750 0.842174 +vt 0.468750 0.855709 +vt 0.437500 0.842174 +vt 0.437500 0.855709 +vt 0.375000 0.842174 +vt 0.375000 0.855709 +vt 0.250000 0.842174 +vt 0.250000 0.855709 +vt 0.218750 0.842174 +vt 0.218750 0.855709 +vt 0.156250 0.842174 +vt 0.156250 0.855709 +vt 0.062500 0.842174 +vt 0.062500 0.855709 +vt 0.937500 0.869244 +vt 0.937500 0.855709 +vt 0.968750 0.869244 +vt 0.968750 0.855709 +vt 0.031250 0.869244 +vt 0.031250 0.855709 +vt 0.125000 0.842174 +vt 0.125000 0.855709 +vt 0.187500 0.842174 +vt 0.187500 0.855709 +vt 0.281250 0.842174 +vt 0.281250 0.855709 +vt 0.343750 0.842174 +vt 0.343750 0.855709 +vt 0.406250 0.842174 +vt 0.406250 0.855709 +vt 0.500000 0.842174 +vt 0.500000 0.855709 +vt 0.562500 0.842174 +vt 0.562500 0.855709 +vt 0.625000 0.842174 +vt 0.625000 0.855709 +vt 0.718750 0.842174 +vt 0.718750 0.855709 +vt 0.781250 0.842174 +vt 0.781250 0.855709 +vt 0.843750 0.842174 +vt 0.843750 0.855709 +vt 0.001571 0.736499 +vt 0.001583 0.750000 +vt 0.000000 0.750000 +vt 0.000000 0.736533 +vt 0.062500 0.736465 +vt 0.062500 0.750000 +vt 0.093750 0.736465 +vt 0.093750 0.750000 +vt 0.156250 0.736465 +vt 0.156250 0.750000 +vt 0.250000 0.736465 +vt 0.250000 0.750000 +vt 0.312500 0.736465 +vt 0.312500 0.750000 +vt 0.375000 0.736465 +vt 0.375000 0.750000 +vt 0.468750 0.736465 +vt 0.468750 0.750000 +vt 0.531250 0.736465 +vt 0.531250 0.750000 +vt 0.593750 0.736465 +vt 0.593750 0.750000 +vt 0.687500 0.736465 +vt 0.687500 0.750000 +vt 0.750000 0.736465 +vt 0.750000 0.750000 +vt 0.812500 0.736465 +vt 0.812500 0.750000 +vt 0.906250 0.736465 +vt 0.906250 0.750000 +vt 0.937500 0.657826 +vt 0.937500 0.644291 +vt 0.031250 0.657826 +vt 0.031250 0.644291 +vt 0.125000 0.630756 +vt 0.125000 0.644291 +vt 0.218750 0.630756 +vt 0.218750 0.644291 +vt 0.281250 0.630756 +vt 0.281250 0.644291 +vt 0.343750 0.630756 +vt 0.343750 0.644291 +vt 0.437500 0.630756 +vt 0.437500 0.644291 +vt 0.500000 0.630756 +vt 0.500000 0.644291 +vt 0.562500 0.630756 +vt 0.562500 0.644291 +vt 0.656250 0.630756 +vt 0.656250 0.644291 +vt 0.718750 0.630756 +vt 0.718750 0.644291 +vt 0.781250 0.630756 +vt 0.781250 0.644291 +vt 0.875000 0.630756 +vt 0.875000 0.644291 +vt 0.001571 0.657788 +vt 0.000000 0.657749 +vt 0.968750 0.630756 +vt 0.001571 0.763501 +vt 0.000000 0.763467 +vt 0.968750 0.736465 +vt 0.001572 0.869214 +vt 0.000000 0.869183 +vt 0.968750 0.842174 +vt 0.937500 0.630756 +vt 0.937500 0.736465 +vt 0.937500 0.842174 +vt 0.062500 0.657826 +vt 0.031250 0.630756 +vt 0.062500 0.763535 +vt 0.031250 0.736465 +vt 0.062500 0.869244 +vt 0.031250 0.842174 +vt 0.093750 0.657826 +vt 0.093750 0.763535 +vt 0.093750 0.869244 +vt 0.125000 0.657826 +vt 0.125000 0.763535 +vt 0.125000 0.869244 +vt 0.156250 0.657826 +vt 0.156250 0.763535 +vt 0.156250 0.869244 +vt 0.187500 0.657826 +vt 0.187500 0.763535 +vt 0.187500 0.869244 +vt 0.218750 0.657826 +vt 0.218750 0.763535 +vt 0.218750 0.869244 +vt 0.250000 0.657826 +vt 0.250000 0.763535 +vt 0.250000 0.869244 +vt 0.281250 0.657826 +vt 0.281250 0.763535 +vt 0.281250 0.869244 +vt 0.312500 0.657826 +vt 0.312500 0.763535 +vt 0.312500 0.869244 +vt 0.343750 0.657826 +vt 0.343750 0.763535 +vt 0.343750 0.869244 +vt 0.375000 0.657826 +vt 0.375000 0.763535 +vt 0.375000 0.869244 +vt 0.406250 0.657826 +vt 0.406250 0.763535 +vt 0.406250 0.869244 +vt 0.437500 0.657826 +vt 0.437500 0.763535 +vt 0.437500 0.869244 +vt 0.468750 0.657826 +vt 0.468750 0.763535 +vt 0.468750 0.869244 +vt 0.500000 0.657826 +vt 0.500000 0.763535 +vt 0.500000 0.869244 +vt 0.531250 0.657826 +vt 0.531250 0.763535 +vt 0.531250 0.869244 +vt 0.562500 0.657826 +vt 0.562500 0.763535 +vt 0.562500 0.869244 +vt 0.593750 0.657826 +vt 0.593750 0.763535 +vt 0.593750 0.869244 +vt 0.625000 0.657826 +vt 0.625000 0.763535 +vt 0.625000 0.869244 +vt 0.656250 0.657826 +vt 0.656250 0.763535 +vt 0.656250 0.869244 +vt 0.687500 0.657826 +vt 0.687500 0.763535 +vt 0.687500 0.869244 +vt 0.718750 0.657826 +vt 0.718750 0.763535 +vt 0.718750 0.869244 +vt 0.750000 0.657826 +vt 0.750000 0.763535 +vt 0.750000 0.869244 +vt 0.781250 0.657826 +vt 0.781250 0.763535 +vt 0.781250 0.869244 +vt 0.812500 0.657826 +vt 0.812500 0.763535 +vt 0.812500 0.869244 +vt 0.843750 0.657826 +vt 0.843750 0.763535 +vt 0.843750 0.869244 +vt 0.875000 0.657826 +vt 0.875000 0.763535 +vt 0.875000 0.869244 +vt 0.906250 0.657826 +vt 0.906250 0.763535 +vt 0.906250 0.869244 +vt 0.031250 0.538582 +vt 0.001572 0.538953 +vt 0.001571 0.736035 +vt 0.000000 0.735604 +vt 0.000000 0.657826 +vt 0.968750 0.538582 +vt 0.001571 0.763965 +vt 0.001572 0.961047 +vt 0.000000 0.960677 +vt 0.906250 0.538582 +vt 0.843750 0.538582 +vt 0.781250 0.538582 +vt 0.718750 0.538582 +vt 0.656250 0.538582 +vt 0.593750 0.538582 +vt 0.531250 0.538582 +vt 0.468750 0.538582 +vt 0.406250 0.538582 +vt 0.343750 0.538582 +vt 0.281250 0.538582 +vt 0.218750 0.538582 +vt 0.156250 0.538582 +vt 0.093750 0.538582 +vt 0.000000 0.842174 +vt 0.000000 0.764396 +vt 0.000000 0.539323 +vt 0.270141 0.423938 +vt 0.284321 0.422542 +vt 0.250000 0.428745 +vt 0.317378 0.412665 +vt 0.315041 0.413223 +vt 0.397602 0.348624 +vt 0.427342 0.285275 +vt 0.431185 0.213960 +vt 0.415193 0.181575 +vt 0.399616 0.150030 +vt 0.383205 0.116795 +vt 0.285193 0.073075 +vt 0.320132 0.080687 +vt 0.250000 0.065407 +vt 0.149611 0.099758 +vt 0.178149 0.076536 +vt 0.122125 0.122125 +vt 0.093492 0.145425 +vt 0.072621 0.250000 +vt 0.072272 0.214648 +vt 0.072969 0.285214 +vt 0.125553 0.374447 +vt 0.097067 0.352187 +vt 0.180626 0.417484 +vt 0.283943 0.420644 +vt 0.190922 0.425529 +vt 0.190402 0.427900 +vt 0.195343 0.428984 +vt 0.207896 0.438793 +vt 0.212674 0.437653 +vt 0.223307 0.435116 +vt 0.226937 0.435912 +vt 0.227322 0.434157 +vt 0.073250 0.313691 +vt 0.071661 0.314476 +vt 0.073290 0.317774 +vt 0.073343 0.323174 +vt 0.086027 0.343559 +vt 0.088226 0.348011 +vt 0.090369 0.346952 +vt 0.073448 0.333729 +vt 0.089655 0.148547 +vt 0.086449 0.146994 +vt 0.083120 0.153865 +vt 0.071763 0.163107 +vt 0.071893 0.176226 +vt 0.071901 0.177022 +vt 0.070141 0.180654 +vt 0.071945 0.181528 +vt 0.225335 0.060033 +vt 0.224749 0.057560 +vt 0.219594 0.058782 +vt 0.211619 0.057044 +vt 0.191898 0.065347 +vt 0.188354 0.066187 +vt 0.188761 0.067900 +vt 0.204111 0.055409 +vt 0.380444 0.111203 +vt 0.382170 0.108995 +vt 0.377584 0.105411 +vt 0.370830 0.091733 +vt 0.357667 0.088865 +vt 0.355930 0.088487 +vt 0.352700 0.085962 +vt 0.351484 0.087518 +vt 0.437615 0.263394 +vt 0.440168 0.263390 +vt 0.440159 0.257974 +vt 0.443903 0.250000 +vt 0.440117 0.232049 +vt 0.440107 0.225987 +vt 0.437126 0.225992 +vt 0.446378 0.244728 +vt 0.353806 0.407296 +vt 0.354653 0.406624 +vt 0.351586 0.404501 +vt 0.379714 0.386727 +vt 0.383099 0.384039 +vt 0.381764 0.382359 +vt 0.381954 0.381954 +vt 0.359793 0.402543 +vt 0.373865 0.399184 +vt 0.750000 0.452782 +vt 0.789561 0.448886 +vt 0.827601 0.437346 +vt 0.862660 0.418607 +vt 0.893388 0.393388 +vt 0.918607 0.362660 +vt 0.937346 0.327601 +vt 0.948886 0.289561 +vt 0.952782 0.250000 +vt 0.948886 0.210439 +vt 0.937346 0.172399 +vt 0.918607 0.137340 +vt 0.893388 0.106612 +vt 0.862660 0.081393 +vt 0.827601 0.062654 +vt 0.789561 0.051114 +vt 0.750000 0.047218 +vt 0.710439 0.051114 +vt 0.672399 0.062654 +vt 0.637340 0.081393 +vt 0.606611 0.106612 +vt 0.581393 0.137341 +vt 0.562654 0.172399 +vt 0.551114 0.210439 +vt 0.547218 0.250000 +vt 0.551114 0.289561 +vt 0.562654 0.327601 +vt 0.581393 0.362660 +vt 0.606612 0.393389 +vt 0.637341 0.418607 +vt 0.672399 0.437346 +vt 0.710439 0.448886 +vt 0.375000 0.055549 +vt 0.625000 0.055549 +vt 0.625000 0.250000 +vt 0.375000 0.250000 +vt 0.375000 0.000000 +vt 0.625000 0.000000 +vt 0.375000 0.055549 +vt 0.625000 0.055549 +vt 0.625000 0.250000 +vt 0.375000 0.250000 +vt 0.375000 0.000000 +vt 0.625000 0.000000 +vt 0.375000 0.055549 +vt 0.625000 0.055549 +vt 0.625000 0.250000 +vt 0.375000 0.250000 +vt 0.375000 0.000000 +vt 0.625000 0.000000 +vt 0.375000 0.055549 +vt 0.625000 0.055549 +vt 0.625000 0.250000 +vt 0.375000 0.250000 +vt 0.375000 0.000000 +vt 0.625000 0.000000 +vt 0.375000 0.055549 +vt 0.625000 0.055549 +vt 0.625000 0.250000 +vt 0.375000 0.250000 +vt 0.375000 0.000000 +vt 0.625000 0.000000 +vt 0.375000 0.055549 +vt 0.625000 0.055549 +vt 0.625000 0.250000 +vt 0.375000 0.250000 +vt 0.375000 0.000000 +vt 0.625000 0.000000 +vt 0.375000 0.055549 +vt 0.625000 0.055549 +vt 0.625000 0.250000 +vt 0.375000 0.250000 +vt 0.375000 0.000000 +vt 0.625000 0.000000 +vt 0.412335 0.317241 +vt 0.412531 0.317322 +vt 0.410609 0.320917 +vt 0.412958 0.315915 +vt 0.152263 0.396274 +vt 0.127928 0.376303 +vt 0.152682 0.395647 +vt 0.156129 0.398340 +vt 0.591195 0.984481 +vt 0.591195 0.971224 +vt 0.625000 0.971315 +vt 0.625000 1.000000 +vt 0.375000 1.000000 +vt 0.375000 0.971255 +vt 0.399843 0.971155 +vt 0.399843 0.984481 +vt 0.153745 0.750000 +vt 0.125000 0.750000 +vt 0.125000 0.694451 +vt 0.167165 0.694451 +vt 0.141327 0.746407 +vt 0.154903 0.746407 +vt 0.833163 0.694451 +vt 0.875000 0.694451 +vt 0.875000 0.750000 +vt 0.846315 0.750000 +vt 0.844748 0.745144 +vt 0.858389 0.745144 +vt 0.600410 0.984481 +vt 0.600410 0.971596 +vt 0.625000 0.971733 +vt 0.625000 1.000000 +vt 0.375000 1.000000 +vt 0.375000 0.971619 +vt 0.408190 0.971582 +vt 0.408190 0.984481 +vt 0.153381 0.750000 +vt 0.125000 0.750000 +vt 0.125000 0.694451 +vt 0.166849 0.694451 +vt 0.141595 0.745218 +vt 0.154928 0.745218 +vt 0.832813 0.694451 +vt 0.875000 0.694451 +vt 0.875000 0.750000 +vt 0.846733 0.750000 +vt 0.845591 0.746455 +vt 0.858683 0.746455 +vt 0.573964 0.984481 +vt 0.573964 0.972443 +vt 0.625000 0.972512 +vt 0.625000 1.000000 +vt 0.375000 1.000000 +vt 0.375000 0.972387 +vt 0.401976 0.972243 +vt 0.401976 0.984481 +vt 0.473116 0.981439 +vt 0.152613 0.750000 +vt 0.125000 0.750000 +vt 0.125000 0.694451 +vt 0.166976 0.694451 +vt 0.141422 0.745990 +vt 0.153908 0.745990 +vt 0.833717 0.694451 +vt 0.875000 0.694451 +vt 0.875000 0.750000 +vt 0.847513 0.750000 +vt 0.845202 0.742873 +vt 0.857878 0.742873 +vt 0.589589 0.984481 +vt 0.589589 0.972622 +vt 0.625000 0.972784 +vt 0.625000 1.000000 +vt 0.375000 1.000000 +vt 0.375000 0.972740 +vt 0.399342 0.972688 +vt 0.399342 0.984481 +vt 0.152260 0.750000 +vt 0.125000 0.750000 +vt 0.125000 0.694451 +vt 0.167183 0.694451 +vt 0.141312 0.746478 +vt 0.153402 0.746478 +vt 0.833224 0.694451 +vt 0.875000 0.694451 +vt 0.875000 0.750000 +vt 0.847784 0.750000 +vt 0.846141 0.744916 +vt 0.858337 0.744916 +vt 0.586096 0.984481 +vt 0.586097 0.972492 +vt 0.625000 0.972524 +vt 0.625000 1.000000 +vt 0.375000 1.000000 +vt 0.375000 0.972577 +vt 0.402404 0.972417 +vt 0.402404 0.984481 +vt 0.152423 0.750000 +vt 0.125000 0.750000 +vt 0.125000 0.694451 +vt 0.167076 0.694451 +vt 0.141408 0.746050 +vt 0.153697 0.746050 +vt 0.833377 0.694451 +vt 0.875000 0.694451 +vt 0.875000 0.750000 +vt 0.847524 0.750000 +vt 0.845706 0.744394 +vt 0.858220 0.744394 +vt 0.588803 0.984481 +vt 0.588803 0.971881 +vt 0.625000 0.972004 +vt 0.625000 1.000000 +vt 0.375000 1.000000 +vt 0.375000 0.972228 +vt 0.415522 0.972094 +vt 0.415522 0.984481 +vt 0.152772 0.750000 +vt 0.125000 0.750000 +vt 0.125000 0.694451 +vt 0.166470 0.694451 +vt 0.141861 0.744036 +vt 0.154703 0.744036 +vt 0.833186 0.694451 +vt 0.875000 0.694451 +vt 0.875000 0.750000 +vt 0.847004 0.750000 +vt 0.845352 0.744893 +vt 0.858332 0.744893 +vt 0.573901 0.984481 +vt 0.573901 0.971321 +vt 0.617771 0.971297 +vt 0.625000 0.971341 +vt 0.625000 1.000000 +vt 0.375000 1.000000 +vt 0.375000 0.971431 +vt 0.403890 0.971415 +vt 0.403890 0.984481 +vt 0.474247 0.981473 +vt 0.153569 0.750000 +vt 0.125000 0.750000 +vt 0.125000 0.694451 +vt 0.166900 0.694451 +vt 0.141484 0.745707 +vt 0.154943 0.745707 +vt 0.833722 0.694451 +vt 0.875000 0.694451 +vt 0.875000 0.750000 +vt 0.846341 0.750000 +vt 0.844047 0.742861 +vt 0.857876 0.742861 +vt 1.000000 1.000000 +vt 0.986735 1.000000 +vt 0.986735 0.975180 +vt 0.995887 0.976695 +vt 1.000000 0.977747 +vt 0.907775 0.970185 +vt 0.934543 0.970185 +vt 0.946423 0.970185 +vt 0.963759 0.971378 +vt 0.983279 0.974608 +vt 0.983279 1.000000 +vt 0.876319 1.000000 +vt 0.876319 0.974036 +vt 0.905764 0.970247 +vt 0.869255 1.000000 +vt 0.857143 1.000000 +vt 0.857143 0.978177 +vt 0.869255 0.975489 +vt 0.719162 0.977782 +vt 0.726537 0.976532 +vt 0.726537 1.000000 +vt 0.714286 1.000000 +vt 0.714286 0.979047 +vt 0.845621 1.000000 +vt 0.845621 0.975664 +vt 0.841207 0.974701 +vt 0.841581 0.974783 +vt 0.841581 1.000000 +vt 0.731550 1.000000 +vt 0.731550 0.975683 +vt 0.751788 0.972253 +vt 0.780127 0.970185 +vt 0.781354 0.970185 +vt 0.784754 0.970185 +vt 0.810380 0.970860 +vt 0.589608 1.000000 +vt 0.589608 0.976540 +vt 0.594829 0.975449 +vt 0.625862 0.971884 +vt 0.655317 0.971403 +vt 0.685556 0.973908 +vt 0.696791 0.975918 +vt 0.696791 1.000000 +vt 0.571429 1.000000 +vt 0.571429 0.980340 +vt 0.584200 0.977671 +vt 0.584200 1.000000 +vt 0.702447 1.000000 +vt 0.702447 0.976930 +vt 0.446758 1.000000 +vt 0.446758 0.977145 +vt 0.467892 0.973849 +vt 0.498048 0.972073 +vt 0.527986 0.973287 +vt 0.554851 0.977003 +vt 0.554851 1.000000 +vt 0.428571 1.000000 +vt 0.428571 0.980569 +vt 0.435005 0.978979 +vt 0.441838 0.977913 +vt 0.441838 1.000000 +vt 0.558661 0.977531 +vt 0.560149 0.977736 +vt 0.558661 1.000000 +vt 0.415389 1.000000 +vt 0.415389 0.978036 +vt 0.309169 0.975385 +vt 0.340075 0.972264 +vt 0.369744 0.972202 +vt 0.400548 0.975185 +vt 0.412002 0.977386 +vt 0.412002 1.000000 +vt 0.305027 1.000000 +vt 0.305027 0.976197 +vt 0.297973 1.000000 +vt 0.285714 1.000000 +vt 0.285714 0.979982 +vt 0.297973 0.977580 +vt 0.416059 0.357087 +vt 0.423064 0.325372 +vt 0.430581 0.291701 +vt 0.438297 0.257223 +vt 0.443039 0.236044 +vt 0.445992 0.234885 +vt 0.478382 0.221132 +vt 0.442688 0.377519 +vt 0.418109 0.358843 +vt 0.437640 0.399638 +vt 0.433246 0.393209 +vt 0.441377 0.383261 +vt 0.184488 0.071792 +vt 0.183417 0.068541 +vt 0.172381 0.033767 +vt 0.329965 0.033767 +vt 0.313923 0.069442 +vt 0.312784 0.071960 +vt 0.283013 0.071276 +vt 0.245500 0.070956 +vt 0.207513 0.071256 +vt 0.335519 0.033767 +vt 0.354132 0.033767 +vt 0.365740 0.048324 +vt 0.432525 0.191471 +vt 0.426641 0.183685 +vt 0.403170 0.153489 +vt 0.380082 0.124766 +vt 0.355564 0.095101 +vt 0.353492 0.092633 +vt 0.355136 0.088999 +vt 0.370656 0.054488 +vt 0.468080 0.176654 +vt 0.436311 0.189957 +vt 0.473222 0.183101 +vt 0.483983 0.196595 +vt 0.480008 0.214008 +vt 0.022842 0.200525 +vt 0.016017 0.196595 +vt 0.027160 0.182623 +vt 0.136101 0.099156 +vt 0.112362 0.128229 +vt 0.089426 0.156450 +vt 0.065503 0.185941 +vt 0.064758 0.186857 +vt 0.061005 0.185471 +vt 0.033572 0.174582 +vt 0.130807 0.052653 +vt 0.142141 0.088637 +vt 0.142886 0.090878 +vt 0.145868 0.033767 +vt 0.165209 0.033767 +vt 0.133885 0.048793 +vt 0.274063 0.977207 +vt 0.274730 0.977308 +vt 0.274063 1.000000 +vt 0.183477 0.972119 +vt 0.212961 0.970801 +vt 0.242560 0.972419 +vt 0.270291 0.976634 +vt 0.270291 1.000000 +vt 0.159634 1.000000 +vt 0.159634 0.975514 +vt 0.156216 1.000000 +vt 0.142857 1.000000 +vt 0.142857 0.978718 +vt 0.151695 0.976645 +vt 0.156216 0.976001 +vt 0.129491 1.000000 +vt 0.129492 0.975976 +vt 0.000000 0.977747 +vt 0.013338 0.975309 +vt 0.013338 1.000000 +vt 0.000000 1.000000 +vt 0.018035 0.974450 +vt 0.028975 0.972450 +vt 0.055005 0.970185 +vt 0.058667 0.970185 +vt 0.084969 0.970185 +vt 0.087492 0.970216 +vt 0.117760 0.973569 +vt 0.124878 0.975029 +vt 0.124878 1.000000 +vt 0.018035 1.000000 +vt 0.019797 0.213154 +vt 0.051909 0.224916 +vt 0.054327 0.225559 +vt 0.062090 0.254257 +vt 0.070975 0.288475 +vt 0.079806 0.322620 +vt 0.086020 0.346400 +vt 0.084307 0.348069 +vt 0.056918 0.375792 +vt 0.021021 0.218517 +vt 0.250000 0.490000 +vt 0.232480 0.481563 +vt 0.267423 0.481609 +vt 0.274590 0.439780 +vt 0.274738 0.437263 +vt 0.293364 0.429104 +vt 0.325828 0.414536 +vt 0.357919 0.399840 +vt 0.387945 0.385993 +vt 0.390902 0.389016 +vt 0.412452 0.411767 +vt 0.271963 0.479423 +vt 0.062360 0.399638 +vt 0.058027 0.380651 +vt 0.079916 0.408092 +vt 0.112684 0.384040 +vt 0.115045 0.381715 +vt 0.120154 0.384464 +vt 0.153938 0.401805 +vt 0.186405 0.417424 +vt 0.220119 0.432677 +vt 0.229066 0.436538 +vt 0.228861 0.439953 +vt 0.226311 0.478592 +vt 0.085976 0.411010 +vt 0.421730 0.407299 +vt 0.307648 0.389175 +vt 0.307723 0.389356 +vt 0.279079 0.396192 +vt 0.279042 0.396002 +vt 0.389114 0.307623 +vt 0.389293 0.307697 +vt 0.376651 0.334626 +vt 0.376489 0.334517 +vt 0.401975 0.280230 +vt 0.402170 0.280269 +vt 0.378724 0.163989 +vt 0.392126 0.191130 +vt 0.391947 0.191204 +vt 0.378562 0.164098 +vt 0.280294 0.097703 +vt 0.280331 0.097514 +vt 0.310444 0.104075 +vt 0.310369 0.104256 +vt 0.139971 0.139972 +vt 0.139834 0.139834 +vt 0.163514 0.120565 +vt 0.163622 0.120726 +vt 0.097536 0.250000 +vt 0.097236 0.219613 +vt 0.097430 0.219652 +vt 0.097729 0.250000 +vt 0.166562 0.374875 +vt 0.143302 0.356698 +vt 0.143440 0.356561 +vt 0.166669 0.374714 +vt 0.250000 0.403132 +vt 0.250000 0.402933 +vt 0.190597 0.393412 +vt 0.190520 0.393597 +vt 0.196887 0.398327 +vt 0.196841 0.398536 +vt 0.233248 0.407130 +vt 0.233294 0.406920 +vt 0.098028 0.280229 +vt 0.097835 0.280268 +vt 0.098236 0.301349 +vt 0.098044 0.301444 +vt 0.119048 0.337500 +vt 0.118879 0.337613 +vt 0.115160 0.334707 +vt 0.115352 0.334612 +vt 0.115335 0.160020 +vt 0.115167 0.159907 +vt 0.114589 0.160627 +vt 0.114397 0.160534 +vt 0.096980 0.193657 +vt 0.097174 0.193751 +vt 0.250000 0.091103 +vt 0.250000 0.090905 +vt 0.231758 0.087128 +vt 0.231708 0.086920 +vt 0.188176 0.100745 +vt 0.188099 0.100558 +vt 0.195143 0.094826 +vt 0.195193 0.095035 +vt 0.364605 0.135395 +vt 0.364460 0.135540 +vt 0.363417 0.132989 +vt 0.363285 0.133159 +vt 0.334455 0.109306 +vt 0.334323 0.109475 +vt 0.409858 0.263439 +vt 0.410071 0.263439 +vt 0.405885 0.218993 +vt 0.409363 0.226037 +vt 0.409147 0.226037 +vt 0.405688 0.219032 +vt 0.334358 0.382801 +vt 0.334490 0.382968 +vt 0.364469 0.360574 +vt 0.364335 0.360405 +vt 0.879125 0.952094 +vt 0.905911 0.952094 +vt 0.934599 0.952094 +vt 0.963724 0.952094 +vt 0.980478 0.952094 +vt 0.980478 1.000000 +vt 0.879125 1.000000 +vt 0.734152 0.952094 +vt 0.752247 0.952094 +vt 0.781767 0.952094 +vt 0.810748 0.952094 +vt 0.838646 0.952094 +vt 0.838646 1.000000 +vt 0.734153 1.000000 +vt 0.592608 0.952094 +vt 0.595198 0.952094 +vt 0.626267 0.952094 +vt 0.655756 0.952094 +vt 0.686031 0.952094 +vt 0.693652 0.952094 +vt 0.693652 1.000000 +vt 0.592608 1.000000 +vt 0.449715 0.952094 +vt 0.467927 0.952094 +vt 0.498171 0.952094 +vt 0.528197 0.952094 +vt 0.552112 0.952094 +vt 0.552112 1.000000 +vt 0.449715 1.000000 +vt 0.307849 0.952094 +vt 0.308788 0.952094 +vt 0.339771 0.952094 +vt 0.369515 0.952094 +vt 0.400396 0.952094 +vt 0.409220 0.952094 +vt 0.409220 1.000000 +vt 0.307849 1.000000 +vt 0.389345 0.328970 +vt 0.351188 0.273135 +vt 0.349989 0.267876 +vt 0.346726 0.253555 +vt 0.477538 0.224832 +vt 0.443640 0.373348 +vt 0.334909 0.201692 +vt 0.331177 0.185313 +vt 0.315627 0.177817 +vt 0.373383 0.057907 +vt 0.465228 0.173077 +vt 0.148795 0.273060 +vt 0.089612 0.238977 +vt 0.153088 0.254285 +vt 0.186333 0.176851 +vt 0.168871 0.185252 +vt 0.164944 0.202428 +vt 0.036137 0.171366 +vt 0.128278 0.055824 +vt 0.267712 0.154721 +vt 0.250039 0.146201 +vt 0.234265 0.153790 +vt 0.176691 0.033767 +vt 0.325971 0.033767 +vt 0.162409 0.952094 +vt 0.183011 0.952094 +vt 0.212500 0.952094 +vt 0.242106 0.952094 +vt 0.267372 0.952094 +vt 0.267372 1.000000 +vt 0.162409 1.000000 +vt 0.028760 0.952094 +vt 0.058382 0.952094 +vt 0.087140 0.952094 +vt 0.117337 0.952094 +vt 0.121913 0.952094 +vt 0.121913 1.000000 +vt 0.020973 1.000000 +vt 0.020973 0.952094 +vt 0.056018 0.371849 +vt 0.021967 0.222664 +vt 0.160868 0.288211 +vt 0.194017 0.329809 +vt 0.204928 0.343503 +vt 0.222629 0.343509 +vt 0.222452 0.476734 +vt 0.089871 0.412886 +vt 0.275820 0.343529 +vt 0.295002 0.343536 +vt 0.306102 0.329628 +vt 0.408767 0.413542 +vt 0.275642 0.477652 +vt 0.339283 0.288052 +vt 0.348645 0.328667 +vt 0.250000 0.376172 +vt 0.151355 0.328667 +vt 0.126992 0.221924 +vt 0.195256 0.136323 +vt 0.304744 0.136323 +vt 0.373008 0.221924 +vt 0.250000 0.401586 +vt 0.368515 0.344513 +vt 0.378377 0.352378 +vt 0.250000 0.414201 +vt 0.397786 0.216269 +vt 0.410084 0.213462 +vt 0.315771 0.113425 +vt 0.321244 0.102060 +vt 0.184229 0.113425 +vt 0.178756 0.102060 +vt 0.102214 0.216269 +vt 0.089916 0.213462 +vt 0.131485 0.344513 +vt 0.121623 0.352378 +vt 0.375000 0.275590 +vt 0.625000 0.275535 +vt 0.375000 0.275500 +vt 0.625000 0.275529 +vt 0.375000 0.276953 +vt 0.625000 0.276274 +vt 0.375000 0.275656 +vt 0.625000 0.275590 +vt 0.375000 0.275978 +vt 0.625000 0.275995 +vt 0.375000 0.276796 +vt 0.625000 0.276345 +vt 0.375000 0.277059 +vt 0.625000 0.276391 +vt 0.856398 0.502042 +vt 0.847674 0.502042 +vt 0.849465 0.500000 +vt 0.875000 0.500000 +vt 0.832412 0.689867 +vt 0.832459 0.689438 +vt 0.859050 0.689438 +vt 0.167652 0.690629 +vt 0.167701 0.691059 +vt 0.125000 0.500000 +vt 0.150590 0.500000 +vt 0.152318 0.501971 +vt 0.143593 0.501971 +vt 0.141088 0.690629 +vt 0.856398 0.502049 +vt 0.847676 0.502049 +vt 0.849471 0.500000 +vt 0.875000 0.500000 +vt 0.832290 0.691138 +vt 0.832340 0.690709 +vt 0.858902 0.690709 +vt 0.167557 0.689479 +vt 0.167604 0.689909 +vt 0.125000 0.500000 +vt 0.150500 0.500000 +vt 0.152330 0.502087 +vt 0.143607 0.502087 +vt 0.140957 0.689479 +vt 0.848726 0.500000 +vt 0.875000 0.500000 +vt 0.832534 0.687880 +vt 0.832575 0.687453 +vt 0.859288 0.687453 +vt 0.856517 0.501077 +vt 0.847785 0.501077 +vt 0.167566 0.689913 +vt 0.167616 0.690344 +vt 0.125000 0.500000 +vt 0.151953 0.500000 +vt 0.152119 0.500190 +vt 0.143377 0.500190 +vt 0.142774 0.592035 +vt 0.141000 0.689913 +vt 0.849410 0.500000 +vt 0.875000 0.500000 +vt 0.832463 0.689644 +vt 0.832513 0.689215 +vt 0.859085 0.689215 +vt 0.856410 0.501970 +vt 0.847690 0.501970 +vt 0.167672 0.690694 +vt 0.167720 0.691124 +vt 0.125000 0.500000 +vt 0.150656 0.500000 +vt 0.152302 0.501884 +vt 0.143580 0.501884 +vt 0.141100 0.690694 +vt 0.849005 0.500000 +vt 0.875000 0.500000 +vt 0.832460 0.689083 +vt 0.832504 0.688653 +vt 0.859141 0.688654 +vt 0.856473 0.501441 +vt 0.847746 0.501441 +vt 0.167612 0.690305 +vt 0.167662 0.690735 +vt 0.125000 0.500000 +vt 0.150978 0.500000 +vt 0.152256 0.501464 +vt 0.143529 0.501464 +vt 0.141048 0.690305 +vt 0.856527 0.500984 +vt 0.847793 0.500984 +vt 0.848655 0.500000 +vt 0.875000 0.500000 +vt 0.832447 0.689797 +vt 0.832497 0.689369 +vt 0.859066 0.689369 +vt 0.167396 0.688069 +vt 0.167443 0.688500 +vt 0.125000 0.500000 +vt 0.151796 0.500000 +vt 0.152141 0.500395 +vt 0.143402 0.500395 +vt 0.140785 0.688069 +vt 0.856534 0.500924 +vt 0.847799 0.500924 +vt 0.848609 0.500000 +vt 0.875000 0.500000 +vt 0.832672 0.687862 +vt 0.832721 0.687435 +vt 0.859303 0.687435 +vt 0.167534 0.689636 +vt 0.167585 0.690068 +vt 0.125000 0.500000 +vt 0.152059 0.500000 +vt 0.152104 0.500052 +vt 0.143360 0.500052 +vt 0.142767 0.590999 +vt 0.140966 0.689636 +vt 0.971926 0.953202 +vt 0.971926 0.970060 +vt 1.000000 0.970060 +vt 1.000000 0.953202 +vt 1.000000 0.953202 +vt 0.857143 0.953202 +vt 0.857143 0.970060 +vt 0.887565 0.970060 +vt 0.887565 0.953202 +vt 0.828921 0.953202 +vt 0.828921 0.970060 +vt 0.857143 0.953202 +vt 0.714286 0.953202 +vt 0.714286 0.970060 +vt 0.744554 0.970060 +vt 0.744554 0.953202 +vt 0.571429 0.970060 +vt 0.598072 0.970059 +vt 0.598072 0.953202 +vt 0.571429 0.953202 +vt 0.571429 0.953202 +vt 0.682436 0.953202 +vt 0.682436 0.970060 +vt 0.705731 0.970059 +vt 0.714286 0.953202 +vt 0.428571 0.970060 +vt 0.459688 0.970060 +vt 0.459688 0.953202 +vt 0.428572 0.953202 +vt 0.428571 0.953202 +vt 0.544050 0.953202 +vt 0.544050 0.970060 +vt 0.285714 0.953202 +vt 0.285714 0.970060 +vt 0.316448 0.970060 +vt 0.316448 0.953202 +vt 0.285714 0.953202 +vt 0.400809 0.953202 +vt 0.400809 0.970060 +vt 0.257770 0.953202 +vt 0.257770 0.970060 +vt 0.142857 0.953202 +vt 0.142857 0.970060 +vt 0.173403 0.970060 +vt 0.173403 0.953202 +vt 0.112131 0.953202 +vt 0.112131 0.970060 +vt 0.142857 0.953202 +vt 0.000000 0.953202 +vt 0.000000 0.970060 +vt 0.027770 0.970060 +vt 0.027770 0.953202 +vt 0.436509 0.398736 +vt 0.436509 0.398736 +vt 0.396791 0.417863 +vt 0.395397 0.414961 +vt 0.285207 0.467896 +vt 0.286652 0.470904 +vt 0.250000 0.488554 +vt 0.472813 0.239678 +vt 0.472731 0.239658 +vt 0.444141 0.358513 +vt 0.445609 0.358866 +vt 0.482573 0.196917 +vt 0.482573 0.196917 +vt 0.377577 0.065256 +vt 0.377069 0.065654 +vt 0.452533 0.161826 +vt 0.453798 0.160833 +vt 0.353505 0.035070 +vt 0.353505 0.035070 +vt 0.146495 0.035070 +vt 0.191586 0.035070 +vt 0.191586 0.037462 +vt 0.313831 0.037425 +vt 0.313830 0.035070 +vt 0.146495 0.035070 +vt 0.017427 0.196917 +vt 0.045194 0.162098 +vt 0.047598 0.164020 +vt 0.123927 0.068533 +vt 0.121412 0.066523 +vt 0.017427 0.196917 +vt 0.063491 0.398736 +vt 0.063491 0.398736 +vt 0.053641 0.355583 +vt 0.053944 0.355518 +vt 0.028158 0.236023 +vt 0.026437 0.236395 +vt 0.213745 0.471095 +vt 0.215223 0.468022 +vt 0.105057 0.415037 +vt 0.103606 0.418055 +vt 0.250000 0.488554 +vt 0.937420 0.533849 +vt 0.934356 0.538582 +vt 0.909393 0.538582 +vt 0.906330 0.533849 +vt 0.906575 0.519291 +vt 0.937175 0.519291 +vt 0.934358 0.657826 +vt 0.934357 0.736465 +vt 0.909392 0.736465 +vt 0.909393 0.657826 +vt 0.903108 0.657826 +vt 0.903107 0.736465 +vt 0.878142 0.736465 +vt 0.878143 0.657826 +vt 0.871858 0.657826 +vt 0.871857 0.736465 +vt 0.846892 0.736465 +vt 0.846893 0.657826 +vt 0.840608 0.657826 +vt 0.840607 0.736465 +vt 0.815642 0.736465 +vt 0.815643 0.657826 +vt 0.809358 0.657826 +vt 0.809357 0.736465 +vt 0.784392 0.736465 +vt 0.784393 0.657826 +vt 0.778108 0.657826 +vt 0.778107 0.736465 +vt 0.753142 0.736465 +vt 0.753143 0.657826 +vt 0.746858 0.657826 +vt 0.746857 0.736465 +vt 0.721892 0.736465 +vt 0.721893 0.657826 +vt 0.715608 0.657826 +vt 0.715607 0.736465 +vt 0.690642 0.736465 +vt 0.690643 0.657826 +vt 0.684358 0.657826 +vt 0.684357 0.736465 +vt 0.659392 0.736465 +vt 0.659393 0.657826 +vt 0.653108 0.657826 +vt 0.653107 0.736465 +vt 0.628142 0.736465 +vt 0.628143 0.657826 +vt 0.621858 0.657826 +vt 0.621857 0.736465 +vt 0.596892 0.736465 +vt 0.596893 0.657826 +vt 0.590608 0.657826 +vt 0.590607 0.736465 +vt 0.565642 0.736465 +vt 0.565643 0.657826 +vt 0.559358 0.657826 +vt 0.559357 0.736465 +vt 0.534392 0.736465 +vt 0.534393 0.657826 +vt 0.528108 0.657826 +vt 0.528107 0.736465 +vt 0.503142 0.736465 +vt 0.503143 0.657826 +vt 0.496858 0.657826 +vt 0.496857 0.736465 +vt 0.471892 0.736465 +vt 0.471893 0.657826 +vt 0.465608 0.657826 +vt 0.465607 0.736465 +vt 0.440642 0.736465 +vt 0.440643 0.657826 +vt 0.434358 0.657826 +vt 0.434357 0.736465 +vt 0.409392 0.736465 +vt 0.409393 0.657826 +vt 0.403108 0.657826 +vt 0.403107 0.736465 +vt 0.378142 0.736465 +vt 0.378143 0.657826 +vt 0.371858 0.657826 +vt 0.371857 0.736465 +vt 0.346892 0.736465 +vt 0.346893 0.657826 +vt 0.340608 0.657826 +vt 0.340607 0.736465 +vt 0.315642 0.736465 +vt 0.315643 0.657826 +vt 0.309358 0.657826 +vt 0.309357 0.736465 +vt 0.284392 0.736465 +vt 0.284393 0.657826 +vt 0.278108 0.657826 +vt 0.278107 0.736465 +vt 0.253142 0.736465 +vt 0.253143 0.657826 +vt 0.246858 0.657826 +vt 0.246857 0.736465 +vt 0.221892 0.736465 +vt 0.221893 0.657826 +vt 0.215608 0.657826 +vt 0.215607 0.736465 +vt 0.190642 0.736465 +vt 0.190643 0.657826 +vt 0.184358 0.657826 +vt 0.184357 0.736465 +vt 0.159392 0.736465 +vt 0.159393 0.657826 +vt 0.153108 0.657826 +vt 0.153107 0.736465 +vt 0.128142 0.736465 +vt 0.128143 0.657826 +vt 0.121858 0.657826 +vt 0.121857 0.736465 +vt 0.096892 0.736465 +vt 0.096893 0.657826 +vt 0.090608 0.657826 +vt 0.090607 0.736465 +vt 0.065642 0.736465 +vt 0.065643 0.657826 +vt 0.906170 0.533849 +vt 0.903106 0.538582 +vt 0.878143 0.538582 +vt 0.875080 0.533849 +vt 0.875325 0.519291 +vt 0.905925 0.519291 +vt 0.965608 0.657826 +vt 0.965607 0.736465 +vt 0.940642 0.736465 +vt 0.940643 0.657826 +vt 0.968670 0.533849 +vt 0.965606 0.538582 +vt 0.940643 0.538582 +vt 0.937580 0.533849 +vt 0.937825 0.519291 +vt 0.968425 0.519291 +vt 0.028106 0.538582 +vt 0.028107 0.630756 +vt 0.003143 0.630756 +vt 0.003143 0.538582 +vt 0.999675 0.519291 +vt 0.969075 0.519291 +vt 0.969962 0.500000 +vt 0.998788 0.500000 +vt 0.750000 0.471391 +vt 0.793191 0.467137 +vt 0.000080 0.966151 +vt 0.003143 0.961418 +vt 0.028106 0.961418 +vt 0.031170 0.966151 +vt 0.030925 0.980709 +vt 0.000325 0.980709 +vt 0.969075 0.980709 +vt 0.999675 0.980709 +vt 0.998788 1.000000 +vt 0.969962 1.000000 +vt 0.293191 0.467137 +vt 0.250000 0.471391 +vt 0.250000 0.452782 +vt 0.289561 0.448886 +vt 0.965607 0.630756 +vt 0.940643 0.630756 +vt 0.938712 0.500000 +vt 0.967538 0.500000 +vt 0.834722 0.454539 +vt 0.965607 0.869244 +vt 0.965606 0.961418 +vt 0.940643 0.961418 +vt 0.940643 0.869244 +vt 0.937825 0.980709 +vt 0.968425 0.980709 +vt 0.967538 1.000000 +vt 0.938712 1.000000 +vt 0.334723 0.454539 +vt 0.327601 0.437346 +vt 0.934357 0.630756 +vt 0.909393 0.630756 +vt 0.907461 0.500000 +vt 0.936288 0.500000 +vt 0.872998 0.434080 +vt 0.934357 0.869244 +vt 0.934356 0.961418 +vt 0.909393 0.961418 +vt 0.909393 0.869244 +vt 0.906575 0.980709 +vt 0.937175 0.980709 +vt 0.936288 1.000000 +vt 0.907462 1.000000 +vt 0.372998 0.434080 +vt 0.362660 0.418607 +vt 0.903107 0.630756 +vt 0.878143 0.630756 +vt 0.876212 0.500000 +vt 0.905038 0.500000 +vt 0.906547 0.406547 +vt 0.903107 0.869244 +vt 0.903106 0.961418 +vt 0.878143 0.961418 +vt 0.878143 0.869244 +vt 0.875325 0.980709 +vt 0.905925 0.980709 +vt 0.905038 1.000000 +vt 0.876212 1.000000 +vt 0.406547 0.406547 +vt 0.393388 0.393388 +vt 0.871856 0.538582 +vt 0.871857 0.630756 +vt 0.846893 0.630756 +vt 0.846893 0.538582 +vt 0.874675 0.519291 +vt 0.844075 0.519291 +vt 0.844962 0.500000 +vt 0.873788 0.500000 +vt 0.934080 0.372998 +vt 0.871857 0.869244 +vt 0.871856 0.961418 +vt 0.846893 0.961418 +vt 0.846893 0.869244 +vt 0.844075 0.980709 +vt 0.874675 0.980709 +vt 0.873788 1.000000 +vt 0.844962 1.000000 +vt 0.434080 0.372998 +vt 0.418607 0.362660 +vt 0.840606 0.538582 +vt 0.840607 0.630756 +vt 0.815643 0.630756 +vt 0.815643 0.538582 +vt 0.843425 0.519291 +vt 0.812825 0.519291 +vt 0.813712 0.500000 +vt 0.842538 0.500000 +vt 0.954539 0.334723 +vt 0.840607 0.869244 +vt 0.840606 0.961418 +vt 0.815643 0.961418 +vt 0.815643 0.869244 +vt 0.812825 0.980709 +vt 0.843425 0.980709 +vt 0.842538 1.000000 +vt 0.813712 1.000000 +vt 0.454539 0.334723 +vt 0.437346 0.327601 +vt 0.809356 0.538582 +vt 0.809357 0.630756 +vt 0.784393 0.630756 +vt 0.784393 0.538582 +vt 0.812175 0.519291 +vt 0.781575 0.519291 +vt 0.782462 0.500000 +vt 0.811288 0.500000 +vt 0.967137 0.293191 +vt 0.809357 0.869244 +vt 0.809356 0.961418 +vt 0.784393 0.961418 +vt 0.784393 0.869244 +vt 0.781575 0.980709 +vt 0.812175 0.980709 +vt 0.811288 1.000000 +vt 0.782462 1.000000 +vt 0.467137 0.293191 +vt 0.448886 0.289561 +vt 0.778106 0.538582 +vt 0.778107 0.630756 +vt 0.753143 0.630756 +vt 0.753143 0.538582 +vt 0.780925 0.519291 +vt 0.750325 0.519291 +vt 0.751211 0.500000 +vt 0.780038 0.500000 +vt 0.971391 0.250000 +vt 0.778107 0.869244 +vt 0.778106 0.961418 +vt 0.753143 0.961418 +vt 0.753143 0.869244 +vt 0.750325 0.980709 +vt 0.780925 0.980709 +vt 0.780038 1.000000 +vt 0.751212 1.000000 +vt 0.471391 0.250000 +vt 0.452782 0.250000 +vt 0.746856 0.538582 +vt 0.746857 0.630756 +vt 0.721893 0.630756 +vt 0.721893 0.538582 +vt 0.749675 0.519291 +vt 0.719075 0.519291 +vt 0.719962 0.500000 +vt 0.748788 0.500000 +vt 0.967137 0.206809 +vt 0.746857 0.869244 +vt 0.746856 0.961418 +vt 0.721893 0.961418 +vt 0.721893 0.869244 +vt 0.719075 0.980709 +vt 0.749675 0.980709 +vt 0.748788 1.000000 +vt 0.719962 1.000000 +vt 0.467137 0.206809 +vt 0.448886 0.210439 +vt 0.715606 0.538582 +vt 0.715607 0.630756 +vt 0.690643 0.630756 +vt 0.690643 0.538582 +vt 0.718425 0.519291 +vt 0.687825 0.519291 +vt 0.688712 0.500000 +vt 0.717538 0.500000 +vt 0.954539 0.165277 +vt 0.715607 0.869244 +vt 0.715606 0.961418 +vt 0.690643 0.961418 +vt 0.690643 0.869244 +vt 0.687825 0.980709 +vt 0.718425 0.980709 +vt 0.717538 1.000000 +vt 0.688712 1.000000 +vt 0.454539 0.165277 +vt 0.437346 0.172399 +vt 0.684356 0.538582 +vt 0.684357 0.630756 +vt 0.659393 0.630756 +vt 0.659393 0.538582 +vt 0.687175 0.519291 +vt 0.656575 0.519291 +vt 0.657462 0.500000 +vt 0.686288 0.500000 +vt 0.934080 0.127002 +vt 0.684357 0.869244 +vt 0.684356 0.961418 +vt 0.659393 0.961418 +vt 0.659393 0.869244 +vt 0.656575 0.980709 +vt 0.687175 0.980709 +vt 0.686288 1.000000 +vt 0.657462 1.000000 +vt 0.434080 0.127002 +vt 0.418607 0.137340 +vt 0.653106 0.538582 +vt 0.653107 0.630756 +vt 0.628143 0.630756 +vt 0.628143 0.538582 +vt 0.655925 0.519291 +vt 0.625325 0.519291 +vt 0.626212 0.500000 +vt 0.655039 0.500000 +vt 0.906547 0.093453 +vt 0.653107 0.869244 +vt 0.653106 0.961418 +vt 0.628143 0.961418 +vt 0.628143 0.869244 +vt 0.625325 0.980709 +vt 0.655925 0.980709 +vt 0.655038 1.000000 +vt 0.626212 1.000000 +vt 0.406547 0.093453 +vt 0.393389 0.106612 +vt 0.621856 0.538582 +vt 0.621857 0.630756 +vt 0.596893 0.630756 +vt 0.596893 0.538582 +vt 0.624675 0.519291 +vt 0.594075 0.519291 +vt 0.594962 0.500000 +vt 0.623788 0.500000 +vt 0.872998 0.065920 +vt 0.621857 0.869244 +vt 0.621856 0.961418 +vt 0.596893 0.961418 +vt 0.596893 0.869244 +vt 0.594075 0.980709 +vt 0.624675 0.980709 +vt 0.623788 1.000000 +vt 0.594962 1.000000 +vt 0.372998 0.065920 +vt 0.362660 0.081393 +vt 0.590606 0.538582 +vt 0.590607 0.630756 +vt 0.565643 0.630756 +vt 0.565643 0.538582 +vt 0.593425 0.519291 +vt 0.562825 0.519291 +vt 0.563712 0.500000 +vt 0.592538 0.500000 +vt 0.834723 0.045461 +vt 0.590607 0.869244 +vt 0.590606 0.961418 +vt 0.565643 0.961418 +vt 0.565643 0.869244 +vt 0.562825 0.980709 +vt 0.593425 0.980709 +vt 0.592538 1.000000 +vt 0.563712 1.000000 +vt 0.334723 0.045461 +vt 0.327601 0.062654 +vt 0.559356 0.538582 +vt 0.559357 0.630756 +vt 0.534393 0.630756 +vt 0.534393 0.538582 +vt 0.562175 0.519291 +vt 0.531575 0.519291 +vt 0.532462 0.500000 +vt 0.561288 0.500000 +vt 0.793191 0.032863 +vt 0.559357 0.869244 +vt 0.559356 0.961418 +vt 0.534393 0.961418 +vt 0.534393 0.869244 +vt 0.531575 0.980709 +vt 0.562175 0.980709 +vt 0.561289 1.000000 +vt 0.532462 1.000000 +vt 0.293191 0.032863 +vt 0.289561 0.051114 +vt 0.528106 0.538582 +vt 0.528107 0.630756 +vt 0.503143 0.630756 +vt 0.503143 0.538582 +vt 0.530925 0.519291 +vt 0.500325 0.519291 +vt 0.501212 0.500000 +vt 0.530038 0.500000 +vt 0.750000 0.028609 +vt 0.528107 0.869244 +vt 0.528106 0.961418 +vt 0.503143 0.961418 +vt 0.503143 0.869244 +vt 0.500325 0.980709 +vt 0.530925 0.980709 +vt 0.530038 1.000000 +vt 0.501212 1.000000 +vt 0.250000 0.028609 +vt 0.250000 0.047218 +vt 0.496856 0.538582 +vt 0.496857 0.630756 +vt 0.471893 0.630756 +vt 0.471893 0.538582 +vt 0.499675 0.519291 +vt 0.469075 0.519291 +vt 0.469962 0.500000 +vt 0.498788 0.500000 +vt 0.706809 0.032863 +vt 0.496857 0.869244 +vt 0.496856 0.961418 +vt 0.471893 0.961418 +vt 0.471893 0.869244 +vt 0.469075 0.980709 +vt 0.499675 0.980709 +vt 0.498789 1.000000 +vt 0.469962 1.000000 +vt 0.206809 0.032863 +vt 0.210439 0.051114 +vt 0.465606 0.538582 +vt 0.465607 0.630756 +vt 0.440643 0.630756 +vt 0.440643 0.538582 +vt 0.468425 0.519291 +vt 0.437825 0.519291 +vt 0.438712 0.500000 +vt 0.467538 0.500000 +vt 0.665277 0.045461 +vt 0.465607 0.869244 +vt 0.465606 0.961418 +vt 0.440643 0.961418 +vt 0.440643 0.869244 +vt 0.437825 0.980709 +vt 0.468425 0.980709 +vt 0.467538 1.000000 +vt 0.438712 1.000000 +vt 0.165277 0.045461 +vt 0.172399 0.062654 +vt 0.434356 0.538582 +vt 0.434357 0.630756 +vt 0.409393 0.630756 +vt 0.409393 0.538582 +vt 0.437175 0.519291 +vt 0.406575 0.519291 +vt 0.407461 0.500000 +vt 0.436288 0.500000 +vt 0.627002 0.065920 +vt 0.434357 0.869244 +vt 0.434356 0.961418 +vt 0.409393 0.961418 +vt 0.409393 0.869244 +vt 0.406575 0.980709 +vt 0.437175 0.980709 +vt 0.436289 1.000000 +vt 0.407462 1.000000 +vt 0.127002 0.065920 +vt 0.137340 0.081393 +vt 0.403106 0.538582 +vt 0.403107 0.630756 +vt 0.378143 0.630756 +vt 0.378143 0.538582 +vt 0.405925 0.519291 +vt 0.375325 0.519291 +vt 0.376212 0.500000 +vt 0.405038 0.500000 +vt 0.593453 0.093453 +vt 0.403107 0.869244 +vt 0.403106 0.961418 +vt 0.378143 0.961418 +vt 0.378143 0.869244 +vt 0.375325 0.980709 +vt 0.405925 0.980709 +vt 0.405038 1.000000 +vt 0.376212 1.000000 +vt 0.093453 0.093453 +vt 0.106611 0.106612 +vt 0.371856 0.538582 +vt 0.371857 0.630756 +vt 0.346893 0.630756 +vt 0.346893 0.538582 +vt 0.374675 0.519291 +vt 0.344075 0.519291 +vt 0.344962 0.500000 +vt 0.373788 0.500000 +vt 0.565920 0.127002 +vt 0.371857 0.869244 +vt 0.371856 0.961418 +vt 0.346893 0.961418 +vt 0.346893 0.869244 +vt 0.344075 0.980709 +vt 0.374675 0.980709 +vt 0.373788 1.000000 +vt 0.344962 1.000000 +vt 0.065920 0.127002 +vt 0.081393 0.137341 +vt 0.340606 0.538582 +vt 0.340607 0.630756 +vt 0.315643 0.630756 +vt 0.315643 0.538582 +vt 0.343425 0.519291 +vt 0.312825 0.519291 +vt 0.313711 0.500000 +vt 0.342539 0.500000 +vt 0.545461 0.165278 +vt 0.340607 0.869244 +vt 0.340606 0.961418 +vt 0.315643 0.961418 +vt 0.315643 0.869244 +vt 0.312825 0.980709 +vt 0.343425 0.980709 +vt 0.342539 1.000000 +vt 0.313712 1.000000 +vt 0.045461 0.165278 +vt 0.062654 0.172399 +vt 0.309356 0.538582 +vt 0.309357 0.630756 +vt 0.284393 0.630756 +vt 0.284393 0.538582 +vt 0.312175 0.519291 +vt 0.281575 0.519291 +vt 0.282462 0.500000 +vt 0.311288 0.500000 +vt 0.532863 0.206809 +vt 0.309357 0.869244 +vt 0.309356 0.961418 +vt 0.284393 0.961418 +vt 0.284393 0.869244 +vt 0.281575 0.980709 +vt 0.312175 0.980709 +vt 0.311288 1.000000 +vt 0.282462 1.000000 +vt 0.032863 0.206809 +vt 0.051114 0.210439 +vt 0.278106 0.538582 +vt 0.278107 0.630756 +vt 0.253143 0.630756 +vt 0.253143 0.538582 +vt 0.280925 0.519291 +vt 0.250325 0.519291 +vt 0.251212 0.500000 +vt 0.280038 0.500000 +vt 0.528609 0.250000 +vt 0.278107 0.869244 +vt 0.278106 0.961418 +vt 0.253143 0.961418 +vt 0.253143 0.869244 +vt 0.250325 0.980709 +vt 0.280925 0.980709 +vt 0.280038 1.000000 +vt 0.251212 1.000000 +vt 0.028609 0.250000 +vt 0.047218 0.250000 +vt 0.246856 0.538582 +vt 0.246857 0.630756 +vt 0.221893 0.630756 +vt 0.221893 0.538582 +vt 0.249675 0.519291 +vt 0.219075 0.519291 +vt 0.219962 0.500000 +vt 0.248788 0.500000 +vt 0.532863 0.293191 +vt 0.246857 0.869244 +vt 0.246856 0.961418 +vt 0.221893 0.961418 +vt 0.221893 0.869244 +vt 0.219075 0.980709 +vt 0.249675 0.980709 +vt 0.248788 1.000000 +vt 0.219962 1.000000 +vt 0.032863 0.293191 +vt 0.051115 0.289561 +vt 0.215606 0.538582 +vt 0.215607 0.630756 +vt 0.190643 0.630756 +vt 0.190643 0.538582 +vt 0.218425 0.519291 +vt 0.187825 0.519291 +vt 0.188712 0.500000 +vt 0.217538 0.500000 +vt 0.545462 0.334723 +vt 0.215607 0.869244 +vt 0.215606 0.961418 +vt 0.190643 0.961418 +vt 0.190643 0.869244 +vt 0.187825 0.980709 +vt 0.218425 0.980709 +vt 0.217538 1.000000 +vt 0.188712 1.000000 +vt 0.045462 0.334723 +vt 0.062654 0.327601 +vt 0.184356 0.538582 +vt 0.184357 0.630756 +vt 0.159393 0.630756 +vt 0.159393 0.538582 +vt 0.187175 0.519291 +vt 0.156575 0.519291 +vt 0.157462 0.500000 +vt 0.186288 0.500000 +vt 0.565920 0.372998 +vt 0.184357 0.869244 +vt 0.184356 0.961418 +vt 0.159393 0.961418 +vt 0.159393 0.869244 +vt 0.156575 0.980709 +vt 0.187175 0.980709 +vt 0.186288 1.000000 +vt 0.157462 1.000000 +vt 0.065920 0.372998 +vt 0.081393 0.362660 +vt 0.153106 0.538582 +vt 0.153107 0.630756 +vt 0.128143 0.630756 +vt 0.128143 0.538582 +vt 0.155925 0.519291 +vt 0.125325 0.519291 +vt 0.126212 0.500000 +vt 0.155038 0.500000 +vt 0.593453 0.406547 +vt 0.153107 0.869244 +vt 0.153106 0.961418 +vt 0.128143 0.961418 +vt 0.128143 0.869244 +vt 0.125325 0.980709 +vt 0.155925 0.980709 +vt 0.155038 1.000000 +vt 0.126212 1.000000 +vt 0.093453 0.406547 +vt 0.106612 0.393389 +vt 0.121856 0.538582 +vt 0.121857 0.630756 +vt 0.096893 0.630756 +vt 0.096893 0.538582 +vt 0.124675 0.519291 +vt 0.094075 0.519291 +vt 0.094962 0.500000 +vt 0.123788 0.500000 +vt 0.627002 0.434080 +vt 0.121857 0.869244 +vt 0.121856 0.961418 +vt 0.096893 0.961418 +vt 0.096893 0.869244 +vt 0.094075 0.980709 +vt 0.124675 0.980709 +vt 0.123788 1.000000 +vt 0.094962 1.000000 +vt 0.127002 0.434080 +vt 0.137341 0.418607 +vt 0.090606 0.538582 +vt 0.090607 0.630756 +vt 0.065643 0.630756 +vt 0.065643 0.538582 +vt 0.093425 0.519291 +vt 0.062825 0.519291 +vt 0.063712 0.500000 +vt 0.092538 0.500000 +vt 0.665278 0.454539 +vt 0.090607 0.869244 +vt 0.090606 0.961418 +vt 0.065643 0.961418 +vt 0.065643 0.869244 +vt 0.062825 0.980709 +vt 0.093425 0.980709 +vt 0.092538 1.000000 +vt 0.063712 1.000000 +vt 0.165278 0.454539 +vt 0.172399 0.437346 +vt 0.059356 0.538582 +vt 0.059357 0.630756 +vt 0.034393 0.630756 +vt 0.034393 0.538582 +vt 0.062175 0.519291 +vt 0.031575 0.519291 +vt 0.032462 0.500000 +vt 0.061288 0.500000 +vt 0.706809 0.467137 +vt 0.059357 0.869244 +vt 0.059356 0.961418 +vt 0.034393 0.961418 +vt 0.034393 0.869244 +vt 0.031575 0.980709 +vt 0.062175 0.980709 +vt 0.061288 1.000000 +vt 0.032462 1.000000 +vt 0.206809 0.467137 +vt 0.210440 0.448886 +vt 0.999920 0.533849 +vt 0.996856 0.538582 +vt 0.971893 0.538582 +vt 0.968830 0.533849 +vt 0.030925 0.519291 +vt 0.000325 0.519291 +vt 0.001212 0.500000 +vt 0.030038 0.500000 +vt 0.028107 0.869244 +vt 0.003143 0.869244 +vt 0.030038 1.000000 +vt 0.001212 1.000000 +vt 0.996857 0.763535 +vt 0.996858 0.842174 +vt 0.971893 0.842174 +vt 0.971892 0.763535 +vt 0.996857 0.869244 +vt 0.996856 0.961418 +vt 0.971893 0.961418 +vt 0.971893 0.869244 +vt 0.968830 0.966151 +vt 0.999920 0.966151 +vt 0.031330 0.966151 +vt 0.062420 0.966151 +vt 0.937580 0.966151 +vt 0.968670 0.966151 +vt 0.059358 0.657826 +vt 0.059357 0.736465 +vt 0.034392 0.736465 +vt 0.034393 0.657826 +vt 0.059357 0.763535 +vt 0.059358 0.842174 +vt 0.034393 0.842174 +vt 0.034392 0.763535 +vt 0.934357 0.763535 +vt 0.934358 0.842174 +vt 0.909393 0.842174 +vt 0.909392 0.763535 +vt 0.934333 0.644291 +vt 0.909417 0.644291 +vt 0.028083 0.855709 +vt 0.003167 0.855709 +vt 0.003143 0.842174 +vt 0.028108 0.842174 +vt 0.062580 0.966151 +vt 0.093670 0.966151 +vt 0.812500 0.538582 +vt 0.812500 0.630756 +vt 0.062420 0.533849 +vt 0.031330 0.533849 +vt 0.093830 0.966151 +vt 0.124920 0.966151 +vt 0.090607 0.763535 +vt 0.090608 0.842174 +vt 0.065643 0.842174 +vt 0.065642 0.763535 +vt 0.093670 0.533849 +vt 0.062580 0.533849 +vt 0.125080 0.966151 +vt 0.156170 0.966151 +vt 0.121857 0.763535 +vt 0.121858 0.842174 +vt 0.096893 0.842174 +vt 0.096892 0.763535 +vt 0.124920 0.533849 +vt 0.093830 0.533849 +vt 0.156330 0.966151 +vt 0.187420 0.966151 +vt 0.153107 0.763535 +vt 0.153108 0.842174 +vt 0.128143 0.842174 +vt 0.128142 0.763535 +vt 0.156170 0.533849 +vt 0.125080 0.533849 +vt 0.187580 0.966151 +vt 0.218670 0.966151 +vt 0.184357 0.763535 +vt 0.184358 0.842174 +vt 0.159393 0.842174 +vt 0.159392 0.763535 +vt 0.187420 0.533849 +vt 0.156330 0.533849 +vt 0.218830 0.966151 +vt 0.249920 0.966151 +vt 0.215607 0.763535 +vt 0.215608 0.842174 +vt 0.190643 0.842174 +vt 0.190642 0.763535 +vt 0.218670 0.533849 +vt 0.187580 0.533849 +vt 0.250080 0.966151 +vt 0.281170 0.966151 +vt 0.246857 0.763535 +vt 0.246858 0.842174 +vt 0.221893 0.842174 +vt 0.221892 0.763535 +vt 0.249920 0.533849 +vt 0.218830 0.533849 +vt 0.281330 0.966151 +vt 0.312420 0.966151 +vt 0.278107 0.763535 +vt 0.278108 0.842174 +vt 0.253143 0.842174 +vt 0.253142 0.763535 +vt 0.281170 0.533849 +vt 0.250080 0.533849 +vt 0.312580 0.966151 +vt 0.343670 0.966151 +vt 0.309357 0.763535 +vt 0.309358 0.842174 +vt 0.284393 0.842174 +vt 0.284392 0.763535 +vt 0.312420 0.533849 +vt 0.281330 0.533849 +vt 0.343830 0.966151 +vt 0.374920 0.966151 +vt 0.340607 0.763535 +vt 0.340608 0.842174 +vt 0.315643 0.842174 +vt 0.315642 0.763535 +vt 0.343670 0.533849 +vt 0.312580 0.533849 +vt 0.375080 0.966151 +vt 0.406170 0.966151 +vt 0.371857 0.763535 +vt 0.371858 0.842174 +vt 0.346893 0.842174 +vt 0.346892 0.763535 +vt 0.374920 0.533849 +vt 0.343830 0.533849 +vt 0.406330 0.966151 +vt 0.437420 0.966151 +vt 0.403107 0.763535 +vt 0.403108 0.842174 +vt 0.378143 0.842174 +vt 0.378142 0.763535 +vt 0.406170 0.533849 +vt 0.375080 0.533849 +vt 0.437580 0.966151 +vt 0.468670 0.966151 +vt 0.434357 0.763535 +vt 0.434358 0.842174 +vt 0.409393 0.842174 +vt 0.409392 0.763535 +vt 0.437420 0.533849 +vt 0.406330 0.533849 +vt 0.468830 0.966151 +vt 0.499920 0.966151 +vt 0.465607 0.763535 +vt 0.465608 0.842174 +vt 0.440643 0.842174 +vt 0.440642 0.763535 +vt 0.468670 0.533849 +vt 0.437580 0.533849 +vt 0.500080 0.966151 +vt 0.531170 0.966151 +vt 0.496857 0.763535 +vt 0.496858 0.842174 +vt 0.471893 0.842174 +vt 0.471892 0.763535 +vt 0.499920 0.533849 +vt 0.468830 0.533849 +vt 0.531330 0.966151 +vt 0.562420 0.966151 +vt 0.528107 0.763535 +vt 0.528108 0.842174 +vt 0.503143 0.842174 +vt 0.503142 0.763535 +vt 0.531170 0.533849 +vt 0.500080 0.533849 +vt 0.562580 0.966151 +vt 0.593670 0.966151 +vt 0.559357 0.763535 +vt 0.559358 0.842174 +vt 0.534393 0.842174 +vt 0.534392 0.763535 +vt 0.562420 0.533849 +vt 0.531330 0.533849 +vt 0.593830 0.966151 +vt 0.624920 0.966151 +vt 0.590607 0.763535 +vt 0.590608 0.842174 +vt 0.565643 0.842174 +vt 0.565642 0.763535 +vt 0.593670 0.533849 +vt 0.562580 0.533849 +vt 0.625080 0.966151 +vt 0.656170 0.966151 +vt 0.621857 0.763535 +vt 0.621858 0.842174 +vt 0.596893 0.842174 +vt 0.596892 0.763535 +vt 0.624920 0.533849 +vt 0.593830 0.533849 +vt 0.656330 0.966151 +vt 0.687420 0.966151 +vt 0.653107 0.763535 +vt 0.653108 0.842174 +vt 0.628143 0.842174 +vt 0.628142 0.763535 +vt 0.656170 0.533849 +vt 0.625080 0.533849 +vt 0.687580 0.966151 +vt 0.718670 0.966151 +vt 0.684357 0.763535 +vt 0.684358 0.842174 +vt 0.659393 0.842174 +vt 0.659392 0.763535 +vt 0.687420 0.533849 +vt 0.656330 0.533849 +vt 0.718830 0.966151 +vt 0.749920 0.966151 +vt 0.715607 0.763535 +vt 0.715608 0.842174 +vt 0.690643 0.842174 +vt 0.690642 0.763535 +vt 0.718670 0.533849 +vt 0.687580 0.533849 +vt 0.750080 0.966151 +vt 0.781170 0.966151 +vt 0.746857 0.763535 +vt 0.746858 0.842174 +vt 0.721893 0.842174 +vt 0.721892 0.763535 +vt 0.749920 0.533849 +vt 0.718830 0.533849 +vt 0.781330 0.966151 +vt 0.812420 0.966151 +vt 0.778107 0.763535 +vt 0.778108 0.842174 +vt 0.753143 0.842174 +vt 0.753142 0.763535 +vt 0.781170 0.533849 +vt 0.750080 0.533849 +vt 0.812580 0.966151 +vt 0.843670 0.966151 +vt 0.809357 0.763535 +vt 0.809358 0.842174 +vt 0.784393 0.842174 +vt 0.784392 0.763535 +vt 0.812420 0.533849 +vt 0.781330 0.533849 +vt 0.843830 0.966151 +vt 0.874920 0.966151 +vt 0.840607 0.763535 +vt 0.840608 0.842174 +vt 0.815643 0.842174 +vt 0.815642 0.763535 +vt 0.843670 0.533849 +vt 0.812580 0.533849 +vt 0.875080 0.966151 +vt 0.906170 0.966151 +vt 0.871857 0.763535 +vt 0.871858 0.842174 +vt 0.846893 0.842174 +vt 0.846892 0.763535 +vt 0.874920 0.533849 +vt 0.843830 0.533849 +vt 0.906330 0.966151 +vt 0.937420 0.966151 +vt 0.903107 0.763535 +vt 0.903108 0.842174 +vt 0.878143 0.842174 +vt 0.878142 0.763535 +vt 0.028108 0.657826 +vt 0.028107 0.736465 +vt 0.003142 0.736465 +vt 0.003143 0.657826 +vt 0.965607 0.763535 +vt 0.965608 0.842174 +vt 0.940643 0.842174 +vt 0.940642 0.763535 +vt 0.028107 0.763535 +vt 0.003142 0.763535 +vt 0.878166 0.750000 +vt 0.903083 0.750000 +vt 0.909417 0.855709 +vt 0.934333 0.855709 +vt 0.996858 0.657826 +vt 0.996857 0.736465 +vt 0.971892 0.736465 +vt 0.971893 0.657826 +vt 0.971917 0.644291 +vt 0.996833 0.644291 +vt 0.971916 0.750000 +vt 0.996833 0.750000 +vt 0.971917 0.855709 +vt 0.996833 0.855709 +vt 0.940667 0.644291 +vt 0.965583 0.644291 +vt 0.028083 0.750000 +vt 0.003166 0.750000 +vt 0.940667 0.855709 +vt 0.965583 0.855709 +vt 0.065667 0.644291 +vt 0.090583 0.644291 +vt 0.065667 0.855709 +vt 0.090583 0.855709 +vt 0.096916 0.750000 +vt 0.121833 0.750000 +vt 0.128167 0.644291 +vt 0.153083 0.644291 +vt 0.096917 0.855709 +vt 0.121833 0.855709 +vt 0.128166 0.750000 +vt 0.153083 0.750000 +vt 0.159417 0.855709 +vt 0.184333 0.855709 +vt 0.159417 0.644291 +vt 0.184333 0.644291 +vt 0.190666 0.750000 +vt 0.215583 0.750000 +vt 0.221917 0.644291 +vt 0.246833 0.644291 +vt 0.221917 0.855709 +vt 0.246833 0.855709 +vt 0.253166 0.750000 +vt 0.278083 0.750000 +vt 0.284417 0.644291 +vt 0.309333 0.644291 +vt 0.284417 0.855709 +vt 0.309333 0.855709 +vt 0.315666 0.750000 +vt 0.340583 0.750000 +vt 0.346917 0.644291 +vt 0.371833 0.644291 +vt 0.315667 0.855709 +vt 0.340583 0.855709 +vt 0.346916 0.750000 +vt 0.371833 0.750000 +vt 0.378167 0.855709 +vt 0.403083 0.855709 +vt 0.378167 0.644291 +vt 0.403083 0.644291 +vt 0.409416 0.750000 +vt 0.434333 0.750000 +vt 0.440667 0.644291 +vt 0.465583 0.644291 +vt 0.440667 0.855709 +vt 0.465583 0.855709 +vt 0.471916 0.750000 +vt 0.496833 0.750000 +vt 0.503167 0.644291 +vt 0.528083 0.644291 +vt 0.503167 0.855709 +vt 0.528083 0.855709 +vt 0.534416 0.750000 +vt 0.559333 0.750000 +vt 0.565667 0.644291 +vt 0.590583 0.644291 +vt 0.534417 0.855709 +vt 0.559333 0.855709 +vt 0.565666 0.750000 +vt 0.590583 0.750000 +vt 0.596917 0.855709 +vt 0.621833 0.855709 +vt 0.596917 0.644291 +vt 0.621833 0.644291 +vt 0.628166 0.750000 +vt 0.653083 0.750000 +vt 0.659417 0.644291 +vt 0.684333 0.644291 +vt 0.659417 0.855709 +vt 0.684333 0.855709 +vt 0.690666 0.750000 +vt 0.715583 0.750000 +vt 0.721917 0.644291 +vt 0.746833 0.644291 +vt 0.721917 0.855709 +vt 0.746833 0.855709 +vt 0.753166 0.750000 +vt 0.778083 0.750000 +vt 0.784417 0.644291 +vt 0.809333 0.644291 +vt 0.753167 0.855709 +vt 0.778083 0.855709 +vt 0.784416 0.750000 +vt 0.809333 0.750000 +vt 0.815667 0.855709 +vt 0.840583 0.855709 +vt 0.815667 0.644291 +vt 0.840583 0.644291 +vt 0.846916 0.750000 +vt 0.871833 0.750000 +vt 0.878167 0.644291 +vt 0.903083 0.644291 +vt 0.934333 0.750000 +vt 0.909416 0.750000 +vt 0.878167 0.855709 +vt 0.903083 0.855709 +vt 0.059333 0.644291 +vt 0.034417 0.644291 +vt 0.940666 0.750000 +vt 0.965583 0.750000 +vt 0.059333 0.855709 +vt 0.034417 0.855709 +vt 0.996857 0.630756 +vt 0.971893 0.630756 +vt 0.846917 0.855709 +vt 0.871833 0.855709 +vt 0.784417 0.855709 +vt 0.809333 0.855709 +vt 0.690667 0.855709 +vt 0.715583 0.855709 +vt 0.628167 0.855709 +vt 0.653083 0.855709 +vt 0.565667 0.855709 +vt 0.590583 0.855709 +vt 0.471917 0.855709 +vt 0.496833 0.855709 +vt 0.409417 0.855709 +vt 0.434333 0.855709 +vt 0.346917 0.855709 +vt 0.371833 0.855709 +vt 0.253167 0.855709 +vt 0.278083 0.855709 +vt 0.190667 0.855709 +vt 0.215583 0.855709 +vt 0.128167 0.855709 +vt 0.153083 0.855709 +vt 0.034416 0.750000 +vt 0.059333 0.750000 +vt 0.815666 0.750000 +vt 0.840583 0.750000 +vt 0.721916 0.750000 +vt 0.746833 0.750000 +vt 0.659416 0.750000 +vt 0.684333 0.750000 +vt 0.596916 0.750000 +vt 0.621833 0.750000 +vt 0.503166 0.750000 +vt 0.528083 0.750000 +vt 0.440666 0.750000 +vt 0.465583 0.750000 +vt 0.378166 0.750000 +vt 0.403083 0.750000 +vt 0.284416 0.750000 +vt 0.309333 0.750000 +vt 0.221916 0.750000 +vt 0.246833 0.750000 +vt 0.159416 0.750000 +vt 0.184333 0.750000 +vt 0.065666 0.750000 +vt 0.090583 0.750000 +vt 0.028083 0.644291 +vt 0.003167 0.644291 +vt 0.846917 0.644291 +vt 0.871833 0.644291 +vt 0.753167 0.644291 +vt 0.778083 0.644291 +vt 0.690667 0.644291 +vt 0.715583 0.644291 +vt 0.628167 0.644291 +vt 0.653083 0.644291 +vt 0.534417 0.644291 +vt 0.559333 0.644291 +vt 0.471917 0.644291 +vt 0.496833 0.644291 +vt 0.409417 0.644291 +vt 0.434333 0.644291 +vt 0.315667 0.644291 +vt 0.340583 0.644291 +vt 0.253167 0.644291 +vt 0.278083 0.644291 +vt 0.190667 0.644291 +vt 0.215583 0.644291 +vt 0.096917 0.644291 +vt 0.121833 0.644291 +vt 0.001573 0.538522 +vt 0.000002 0.538461 +vt 0.000080 0.533849 +vt -0.003083 0.961658 +vt 0.000030 0.961538 +vt 0.968771 0.538582 +vt 0.968711 0.961418 +vt 0.971816 0.961418 +vt 0.937521 0.538582 +vt 0.937461 0.961418 +vt 0.906271 0.538582 +vt 0.906211 0.961418 +vt 0.909316 0.961418 +vt 0.875021 0.538582 +vt 0.874961 0.961418 +vt 0.843771 0.538582 +vt 0.843711 0.961418 +vt 0.846816 0.961418 +vt 0.812461 0.961418 +vt 0.781271 0.538582 +vt 0.781211 0.961418 +vt 0.784316 0.961418 +vt 0.750021 0.538582 +vt 0.749961 0.961418 +vt 0.718771 0.538582 +vt 0.718711 0.961418 +vt 0.721816 0.961418 +vt 0.687521 0.538582 +vt 0.687461 0.961418 +vt 0.656271 0.538582 +vt 0.656211 0.961418 +vt 0.659316 0.961418 +vt 0.625021 0.538582 +vt 0.624961 0.961418 +vt 0.593771 0.538582 +vt 0.593711 0.961418 +vt 0.596816 0.961418 +vt 0.562521 0.538582 +vt 0.562461 0.961418 +vt 0.531271 0.538582 +vt 0.531211 0.961418 +vt 0.534316 0.961418 +vt 0.500011 0.538582 +vt 0.499980 0.961418 +vt 0.468771 0.538582 +vt 0.468711 0.961418 +vt 0.471816 0.961418 +vt 0.437521 0.538582 +vt 0.437461 0.961418 +vt 0.406271 0.538582 +vt 0.406211 0.961418 +vt 0.409316 0.961418 +vt 0.375021 0.538582 +vt 0.374961 0.961418 +vt 0.343771 0.538582 +vt 0.343711 0.961418 +vt 0.346816 0.961418 +vt 0.312521 0.538582 +vt 0.312461 0.961418 +vt 0.281271 0.538582 +vt 0.281211 0.961418 +vt 0.284316 0.961418 +vt 0.250021 0.538582 +vt 0.249961 0.961418 +vt 0.218771 0.538582 +vt 0.218711 0.961418 +vt 0.221816 0.961418 +vt 0.187521 0.538582 +vt 0.187461 0.961418 +vt 0.156271 0.538582 +vt 0.156211 0.961418 +vt 0.159316 0.961418 +vt 0.125021 0.538582 +vt 0.124961 0.961418 +vt 0.093771 0.538582 +vt 0.093711 0.961418 +vt 0.096816 0.961418 +vt 0.062521 0.538582 +vt 0.062461 0.961418 +vt 0.031271 0.538582 +vt 0.031170 0.533849 +vt 0.031211 0.961418 +vt 0.034316 0.961418 +vt 0.906250 0.630756 +vt 0.906250 0.644291 +vt 0.687500 0.630756 +vt 0.687500 0.644291 +vt 0.468750 0.630756 +vt 0.468750 0.644291 +vt 0.250000 0.630756 +vt 0.250000 0.644291 +vt 0.062500 0.630756 +vt 0.062500 0.644291 +vt 0.718750 0.736465 +vt 0.718750 0.750000 +vt 0.500000 0.736465 +vt 0.500000 0.750000 +vt 0.281250 0.736465 +vt 0.281250 0.750000 +vt 0.031250 0.763535 +vt 0.031250 0.750000 +vt 0.750000 0.842174 +vt 0.750000 0.855709 +vt 0.531250 0.842174 +vt 0.531250 0.855709 +vt 0.312500 0.842174 +vt 0.312500 0.855709 +vt 0.093750 0.842174 +vt 0.093750 0.855709 +vt 0.001571 0.842212 +vt 0.001584 0.855709 +vt 0.000000 0.855709 +vt 0.000000 0.842251 +vt 0.843750 0.630756 +vt 0.843750 0.644291 +vt 0.812500 0.644291 +vt 0.750000 0.630756 +vt 0.750000 0.644291 +vt 0.625000 0.630756 +vt 0.625000 0.644291 +vt 0.593750 0.630756 +vt 0.593750 0.644291 +vt 0.531250 0.630756 +vt 0.531250 0.644291 +vt 0.406250 0.630756 +vt 0.406250 0.644291 +vt 0.375000 0.630756 +vt 0.375000 0.644291 +vt 0.312500 0.630756 +vt 0.312500 0.644291 +vt 0.187500 0.630756 +vt 0.187500 0.644291 +vt 0.156250 0.630756 +vt 0.156250 0.644291 +vt 0.093750 0.630756 +vt 0.093750 0.644291 +vt 0.968750 0.657826 +vt 0.968750 0.644291 +vt 0.001572 0.630786 +vt 0.001584 0.644291 +vt 0.000000 0.644291 +vt 0.000000 0.630817 +vt 0.875000 0.736465 +vt 0.875000 0.750000 +vt 0.843750 0.736465 +vt 0.843750 0.750000 +vt 0.781250 0.736465 +vt 0.781250 0.750000 +vt 0.656250 0.736465 +vt 0.656250 0.750000 +vt 0.625000 0.736465 +vt 0.625000 0.750000 +vt 0.562500 0.736465 +vt 0.562500 0.750000 +vt 0.437500 0.736465 +vt 0.437500 0.750000 +vt 0.406250 0.736465 +vt 0.406250 0.750000 +vt 0.343750 0.736465 +vt 0.343750 0.750000 +vt 0.218750 0.736465 +vt 0.218750 0.750000 +vt 0.187500 0.736465 +vt 0.187500 0.750000 +vt 0.125000 0.736465 +vt 0.125000 0.750000 +vt 0.937500 0.763535 +vt 0.937500 0.750000 +vt 0.968750 0.763535 +vt 0.968750 0.750000 +vt 0.906250 0.842174 +vt 0.906250 0.855709 +vt 0.875000 0.842174 +vt 0.875000 0.855709 +vt 0.812500 0.842174 +vt 0.812500 0.855709 +vt 0.687500 0.842174 +vt 0.687500 0.855709 +vt 0.656250 0.842174 +vt 0.656250 0.855709 +vt 0.593750 0.842174 +vt 0.593750 0.855709 +vt 0.468750 0.842174 +vt 0.468750 0.855709 +vt 0.437500 0.842174 +vt 0.437500 0.855709 +vt 0.375000 0.842174 +vt 0.375000 0.855709 +vt 0.250000 0.842174 +vt 0.250000 0.855709 +vt 0.218750 0.842174 +vt 0.218750 0.855709 +vt 0.156250 0.842174 +vt 0.156250 0.855709 +vt 0.062500 0.842174 +vt 0.062500 0.855709 +vt 0.937500 0.869244 +vt 0.937500 0.855709 +vt 0.968750 0.869244 +vt 0.968750 0.855709 +vt 0.031250 0.869244 +vt 0.031250 0.855709 +vt 0.125000 0.842174 +vt 0.125000 0.855709 +vt 0.187500 0.842174 +vt 0.187500 0.855709 +vt 0.281250 0.842174 +vt 0.281250 0.855709 +vt 0.343750 0.842174 +vt 0.343750 0.855709 +vt 0.406250 0.842174 +vt 0.406250 0.855709 +vt 0.500000 0.842174 +vt 0.500000 0.855709 +vt 0.562500 0.842174 +vt 0.562500 0.855709 +vt 0.625000 0.842174 +vt 0.625000 0.855709 +vt 0.718750 0.842174 +vt 0.718750 0.855709 +vt 0.781250 0.842174 +vt 0.781250 0.855709 +vt 0.843750 0.842174 +vt 0.843750 0.855709 +vt 0.001571 0.736499 +vt 0.001583 0.750000 +vt 0.000000 0.750000 +vt 0.000000 0.736533 +vt 0.062500 0.736465 +vt 0.062500 0.750000 +vt 0.093750 0.736465 +vt 0.093750 0.750000 +vt 0.156250 0.736465 +vt 0.156250 0.750000 +vt 0.250000 0.736465 +vt 0.250000 0.750000 +vt 0.312500 0.736465 +vt 0.312500 0.750000 +vt 0.375000 0.736465 +vt 0.375000 0.750000 +vt 0.468750 0.736465 +vt 0.468750 0.750000 +vt 0.531250 0.736465 +vt 0.531250 0.750000 +vt 0.593750 0.736465 +vt 0.593750 0.750000 +vt 0.687500 0.736465 +vt 0.687500 0.750000 +vt 0.750000 0.736465 +vt 0.750000 0.750000 +vt 0.812500 0.736465 +vt 0.812500 0.750000 +vt 0.906250 0.736465 +vt 0.906250 0.750000 +vt 0.937500 0.657826 +vt 0.937500 0.644291 +vt 0.031250 0.657826 +vt 0.031250 0.644291 +vt 0.125000 0.630756 +vt 0.125000 0.644291 +vt 0.218750 0.630756 +vt 0.218750 0.644291 +vt 0.281250 0.630756 +vt 0.281250 0.644291 +vt 0.343750 0.630756 +vt 0.343750 0.644291 +vt 0.437500 0.630756 +vt 0.437500 0.644291 +vt 0.500000 0.630756 +vt 0.500000 0.644291 +vt 0.562500 0.630756 +vt 0.562500 0.644291 +vt 0.656250 0.630756 +vt 0.656250 0.644291 +vt 0.718750 0.630756 +vt 0.718750 0.644291 +vt 0.781250 0.630756 +vt 0.781250 0.644291 +vt 0.875000 0.630756 +vt 0.875000 0.644291 +vt 0.001571 0.657788 +vt 0.000000 0.657749 +vt 0.968750 0.630756 +vt 0.001571 0.763501 +vt 0.000000 0.763467 +vt 0.968750 0.736465 +vt 0.001572 0.869214 +vt 0.000000 0.869183 +vt 0.968750 0.842174 +vt 0.937500 0.630756 +vt 0.937500 0.736465 +vt 0.937500 0.842174 +vt 0.062500 0.657826 +vt 0.031250 0.630756 +vt 0.062500 0.763535 +vt 0.031250 0.736465 +vt 0.062500 0.869244 +vt 0.031250 0.842174 +vt 0.093750 0.657826 +vt 0.093750 0.763535 +vt 0.093750 0.869244 +vt 0.125000 0.657826 +vt 0.125000 0.763535 +vt 0.125000 0.869244 +vt 0.156250 0.657826 +vt 0.156250 0.763535 +vt 0.156250 0.869244 +vt 0.187500 0.657826 +vt 0.187500 0.763535 +vt 0.187500 0.869244 +vt 0.218750 0.657826 +vt 0.218750 0.763535 +vt 0.218750 0.869244 +vt 0.250000 0.657826 +vt 0.250000 0.763535 +vt 0.250000 0.869244 +vt 0.281250 0.657826 +vt 0.281250 0.763535 +vt 0.281250 0.869244 +vt 0.312500 0.657826 +vt 0.312500 0.763535 +vt 0.312500 0.869244 +vt 0.343750 0.657826 +vt 0.343750 0.763535 +vt 0.343750 0.869244 +vt 0.375000 0.657826 +vt 0.375000 0.763535 +vt 0.375000 0.869244 +vt 0.406250 0.657826 +vt 0.406250 0.763535 +vt 0.406250 0.869244 +vt 0.437500 0.657826 +vt 0.437500 0.763535 +vt 0.437500 0.869244 +vt 0.468750 0.657826 +vt 0.468750 0.763535 +vt 0.468750 0.869244 +vt 0.500000 0.657826 +vt 0.500000 0.763535 +vt 0.500000 0.869244 +vt 0.531250 0.657826 +vt 0.531250 0.763535 +vt 0.531250 0.869244 +vt 0.562500 0.657826 +vt 0.562500 0.763535 +vt 0.562500 0.869244 +vt 0.593750 0.657826 +vt 0.593750 0.763535 +vt 0.593750 0.869244 +vt 0.625000 0.657826 +vt 0.625000 0.763535 +vt 0.625000 0.869244 +vt 0.656250 0.657826 +vt 0.656250 0.763535 +vt 0.656250 0.869244 +vt 0.687500 0.657826 +vt 0.687500 0.763535 +vt 0.687500 0.869244 +vt 0.718750 0.657826 +vt 0.718750 0.763535 +vt 0.718750 0.869244 +vt 0.750000 0.657826 +vt 0.750000 0.763535 +vt 0.750000 0.869244 +vt 0.781250 0.657826 +vt 0.781250 0.763535 +vt 0.781250 0.869244 +vt 0.812500 0.657826 +vt 0.812500 0.763535 +vt 0.812500 0.869244 +vt 0.843750 0.657826 +vt 0.843750 0.763535 +vt 0.843750 0.869244 +vt 0.875000 0.657826 +vt 0.875000 0.763535 +vt 0.875000 0.869244 +vt 0.906250 0.657826 +vt 0.906250 0.763535 +vt 0.906250 0.869244 +vt 0.031250 0.538582 +vt 0.001572 0.538953 +vt 0.001571 0.736035 +vt 0.000000 0.735604 +vt 0.000000 0.657826 +vt 0.968750 0.538582 +vt 0.001571 0.763965 +vt 0.001572 0.961047 +vt 0.000000 0.960677 +vt 0.906250 0.538582 +vt 0.843750 0.538582 +vt 0.781250 0.538582 +vt 0.718750 0.538582 +vt 0.656250 0.538582 +vt 0.593750 0.538582 +vt 0.531250 0.538582 +vt 0.468750 0.538582 +vt 0.406250 0.538582 +vt 0.343750 0.538582 +vt 0.281250 0.538582 +vt 0.218750 0.538582 +vt 0.156250 0.538582 +vt 0.093750 0.538582 +vt 0.000000 0.842174 +vt 0.000000 0.764396 +vt 0.000000 0.539323 +vt 0.270141 0.423938 +vt 0.284321 0.422542 +vt 0.250000 0.428745 +vt 0.317378 0.412665 +vt 0.315041 0.413223 +vt 0.397602 0.348624 +vt 0.427342 0.285275 +vt 0.431185 0.213960 +vt 0.415193 0.181575 +vt 0.399616 0.150030 +vt 0.383205 0.116795 +vt 0.285193 0.073075 +vt 0.320132 0.080687 +vt 0.250000 0.065407 +vt 0.149611 0.099758 +vt 0.178149 0.076536 +vt 0.122125 0.122125 +vt 0.093492 0.145425 +vt 0.072621 0.250000 +vt 0.072272 0.214648 +vt 0.072969 0.285214 +vt 0.125553 0.374447 +vt 0.097067 0.352187 +vt 0.180626 0.417484 +vt 0.283943 0.420644 +vt 0.190922 0.425529 +vt 0.190402 0.427900 +vt 0.195343 0.428984 +vt 0.207896 0.438793 +vt 0.212674 0.437653 +vt 0.223307 0.435116 +vt 0.226937 0.435912 +vt 0.227322 0.434157 +vt 0.073250 0.313691 +vt 0.071661 0.314476 +vt 0.073290 0.317774 +vt 0.073343 0.323174 +vt 0.086027 0.343559 +vt 0.088226 0.348011 +vt 0.090369 0.346952 +vt 0.073448 0.333729 +vt 0.089655 0.148547 +vt 0.086449 0.146994 +vt 0.083120 0.153865 +vt 0.071763 0.163107 +vt 0.071893 0.176226 +vt 0.071901 0.177022 +vt 0.070141 0.180654 +vt 0.071945 0.181528 +vt 0.225335 0.060033 +vt 0.224749 0.057560 +vt 0.219594 0.058782 +vt 0.211619 0.057044 +vt 0.191898 0.065347 +vt 0.188354 0.066187 +vt 0.188761 0.067900 +vt 0.204111 0.055409 +vt 0.380444 0.111203 +vt 0.382170 0.108995 +vt 0.377584 0.105411 +vt 0.370830 0.091733 +vt 0.357667 0.088865 +vt 0.355930 0.088487 +vt 0.352700 0.085962 +vt 0.351484 0.087518 +vt 0.437615 0.263394 +vt 0.440168 0.263390 +vt 0.440159 0.257974 +vt 0.443903 0.250000 +vt 0.440117 0.232049 +vt 0.440107 0.225987 +vt 0.437126 0.225992 +vt 0.446378 0.244728 +vt 0.353806 0.407296 +vt 0.354653 0.406624 +vt 0.351586 0.404501 +vt 0.379714 0.386727 +vt 0.383099 0.384039 +vt 0.381764 0.382359 +vt 0.381954 0.381954 +vt 0.359793 0.402543 +vt 0.373865 0.399184 +vt 0.750000 0.452782 +vt 0.710439 0.448886 +vt 0.672399 0.437346 +vt 0.637341 0.418607 +vt 0.606612 0.393389 +vt 0.581393 0.362660 +vt 0.562654 0.327601 +vt 0.551114 0.289561 +vt 0.547218 0.250000 +vt 0.551114 0.210439 +vt 0.562654 0.172399 +vt 0.581393 0.137341 +vt 0.606611 0.106612 +vt 0.637340 0.081393 +vt 0.672399 0.062654 +vt 0.710439 0.051114 +vt 0.750000 0.047218 +vt 0.789561 0.051114 +vt 0.827601 0.062654 +vt 0.862660 0.081393 +vt 0.893388 0.106612 +vt 0.918607 0.137340 +vt 0.937346 0.172399 +vt 0.948886 0.210439 +vt 0.952782 0.250000 +vt 0.948886 0.289561 +vt 0.937346 0.327601 +vt 0.918607 0.362660 +vt 0.893388 0.393388 +vt 0.862660 0.418607 +vt 0.827601 0.437346 +vt 0.789561 0.448886 +vt 0.375000 0.055549 +vt 0.375000 0.250000 +vt 0.625000 0.250000 +vt 0.625000 0.055549 +vt 0.375000 0.000000 +vt 0.625000 0.000000 +vt 0.375000 0.055549 +vt 0.375000 0.250000 +vt 0.625000 0.250000 +vt 0.625000 0.055549 +vt 0.375000 0.000000 +vt 0.625000 0.000000 +vt 0.375000 0.055549 +vt 0.375000 0.250000 +vt 0.625000 0.250000 +vt 0.625000 0.055549 +vt 0.375000 0.000000 +vt 0.625000 0.000000 +vt 0.375000 0.055549 +vt 0.375000 0.250000 +vt 0.625000 0.250000 +vt 0.625000 0.055549 +vt 0.375000 0.000000 +vt 0.625000 0.000000 +vt 0.375000 0.055549 +vt 0.375000 0.250000 +vt 0.625000 0.250000 +vt 0.625000 0.055549 +vt 0.375000 0.000000 +vt 0.625000 0.000000 +vt 0.375000 0.055549 +vt 0.375000 0.250000 +vt 0.625000 0.250000 +vt 0.625000 0.055549 +vt 0.375000 0.000000 +vt 0.625000 0.000000 +vt 0.375000 0.055549 +vt 0.375000 0.250000 +vt 0.625000 0.250000 +vt 0.625000 0.055549 +vt 0.375000 0.000000 +vt 0.625000 0.000000 +vt 0.412335 0.317241 +vt 0.410609 0.320917 +vt 0.412531 0.317322 +vt 0.412958 0.315915 +vt 0.152263 0.396274 +vt 0.152682 0.395647 +vt 0.127928 0.376303 +vt 0.156129 0.398340 +vt 0.591195 0.984481 +vt 0.399843 0.984481 +vt 0.399843 0.971155 +vt 0.375000 0.971255 +vt 0.375000 1.000000 +vt 0.625000 1.000000 +vt 0.625000 0.971315 +vt 0.591195 0.971224 +vt 0.153745 0.750000 +vt 0.154903 0.746407 +vt 0.141327 0.746407 +vt 0.167165 0.694451 +vt 0.125000 0.694451 +vt 0.125000 0.750000 +vt 0.833163 0.694451 +vt 0.858389 0.745144 +vt 0.844748 0.745144 +vt 0.846315 0.750000 +vt 0.875000 0.750000 +vt 0.875000 0.694451 +vt 0.600410 0.984481 +vt 0.408190 0.984481 +vt 0.408190 0.971582 +vt 0.375000 0.971619 +vt 0.375000 1.000000 +vt 0.625000 1.000000 +vt 0.625000 0.971733 +vt 0.600410 0.971596 +vt 0.153381 0.750000 +vt 0.154928 0.745218 +vt 0.141595 0.745218 +vt 0.166849 0.694451 +vt 0.125000 0.694451 +vt 0.125000 0.750000 +vt 0.832813 0.694451 +vt 0.858683 0.746455 +vt 0.845591 0.746455 +vt 0.846733 0.750000 +vt 0.875000 0.750000 +vt 0.875000 0.694451 +vt 0.573964 0.984481 +vt 0.473116 0.981439 +vt 0.401976 0.984481 +vt 0.401976 0.972243 +vt 0.375000 0.972387 +vt 0.375000 1.000000 +vt 0.625000 1.000000 +vt 0.625000 0.972512 +vt 0.573964 0.972443 +vt 0.152613 0.750000 +vt 0.153908 0.745990 +vt 0.141422 0.745990 +vt 0.166976 0.694451 +vt 0.125000 0.694451 +vt 0.125000 0.750000 +vt 0.833717 0.694451 +vt 0.857878 0.742873 +vt 0.845202 0.742873 +vt 0.847513 0.750000 +vt 0.875000 0.750000 +vt 0.875000 0.694451 +vt 0.589589 0.984481 +vt 0.399342 0.984481 +vt 0.399342 0.972688 +vt 0.375000 0.972740 +vt 0.375000 1.000000 +vt 0.625000 1.000000 +vt 0.625000 0.972784 +vt 0.589589 0.972622 +vt 0.152260 0.750000 +vt 0.153402 0.746478 +vt 0.141312 0.746478 +vt 0.167183 0.694451 +vt 0.125000 0.694451 +vt 0.125000 0.750000 +vt 0.833224 0.694451 +vt 0.858337 0.744916 +vt 0.846141 0.744916 +vt 0.847784 0.750000 +vt 0.875000 0.750000 +vt 0.875000 0.694451 +vt 0.380444 0.111203 +vt 0.383205 0.116795 +vt 0.393389 0.106612 +vt 0.362660 0.081393 +vt 0.357667 0.088865 +vt 0.370830 0.091733 +vt 0.377584 0.105411 +vt 0.382170 0.108995 +vt 0.586096 0.984481 +vt 0.402404 0.984481 +vt 0.402404 0.972417 +vt 0.375000 0.972577 +vt 0.375000 1.000000 +vt 0.625000 1.000000 +vt 0.625000 0.972524 +vt 0.586097 0.972492 +vt 0.152423 0.750000 +vt 0.153697 0.746050 +vt 0.141408 0.746050 +vt 0.167076 0.694451 +vt 0.125000 0.694451 +vt 0.125000 0.750000 +vt 0.833377 0.694451 +vt 0.858220 0.744394 +vt 0.845706 0.744394 +vt 0.847524 0.750000 +vt 0.875000 0.750000 +vt 0.875000 0.694451 +vt 0.588803 0.984481 +vt 0.415522 0.984481 +vt 0.415522 0.972094 +vt 0.375000 0.972228 +vt 0.375000 1.000000 +vt 0.625000 1.000000 +vt 0.625000 0.972004 +vt 0.588803 0.971881 +vt 0.152772 0.750000 +vt 0.154703 0.744036 +vt 0.141861 0.744036 +vt 0.166470 0.694451 +vt 0.125000 0.694451 +vt 0.125000 0.750000 +vt 0.833186 0.694451 +vt 0.858332 0.744893 +vt 0.845352 0.744893 +vt 0.847004 0.750000 +vt 0.875000 0.750000 +vt 0.875000 0.694451 +vt 0.573901 0.984481 +vt 0.474247 0.981473 +vt 0.403890 0.984481 +vt 0.403890 0.971415 +vt 0.375000 0.971431 +vt 0.375000 1.000000 +vt 0.625000 1.000000 +vt 0.625000 0.971341 +vt 0.617771 0.971297 +vt 0.573901 0.971321 +vt 0.153569 0.750000 +vt 0.154943 0.745707 +vt 0.141484 0.745707 +vt 0.166900 0.694451 +vt 0.125000 0.694451 +vt 0.125000 0.750000 +vt 0.833722 0.694451 +vt 0.857876 0.742861 +vt 0.844047 0.742861 +vt 0.846341 0.750000 +vt 0.875000 0.750000 +vt 0.875000 0.694451 +vt 1.000000 1.000000 +vt 1.000000 0.977747 +vt 0.995887 0.976695 +vt 0.986735 0.975180 +vt 0.986735 1.000000 +vt 0.869255 1.000000 +vt 0.869255 0.975489 +vt 0.857143 0.978177 +vt 0.857143 1.000000 +vt 0.719162 0.977782 +vt 0.714286 0.979047 +vt 0.714286 1.000000 +vt 0.726537 1.000000 +vt 0.726537 0.976532 +vt 0.845621 1.000000 +vt 0.845621 0.975664 +vt 0.841207 0.974701 +vt 0.810380 0.970860 +vt 0.784754 0.970185 +vt 0.781354 0.970185 +vt 0.780127 0.970185 +vt 0.751788 0.972253 +vt 0.731550 0.975683 +vt 0.731550 1.000000 +vt 0.841581 1.000000 +vt 0.841581 0.974783 +vt 0.589608 1.000000 +vt 0.696791 1.000000 +vt 0.696791 0.975918 +vt 0.685556 0.973908 +vt 0.655317 0.971403 +vt 0.625862 0.971884 +vt 0.594829 0.975449 +vt 0.589608 0.976540 +vt 0.571429 1.000000 +vt 0.584200 1.000000 +vt 0.584200 0.977671 +vt 0.571429 0.980340 +vt 0.702447 0.976930 +vt 0.702447 1.000000 +vt 0.446758 1.000000 +vt 0.554851 1.000000 +vt 0.554851 0.977003 +vt 0.527986 0.973287 +vt 0.498048 0.972073 +vt 0.467892 0.973849 +vt 0.446758 0.977145 +vt 0.428571 1.000000 +vt 0.441838 1.000000 +vt 0.441838 0.977913 +vt 0.435005 0.978979 +vt 0.428571 0.980569 +vt 0.558661 0.977531 +vt 0.558661 1.000000 +vt 0.560149 0.977736 +vt 0.415389 0.978036 +vt 0.415389 1.000000 +vt 0.309169 0.975385 +vt 0.305027 0.976197 +vt 0.305027 1.000000 +vt 0.412002 1.000000 +vt 0.412002 0.977386 +vt 0.400548 0.975185 +vt 0.369744 0.972202 +vt 0.340075 0.972264 +vt 0.297973 1.000000 +vt 0.297973 0.977580 +vt 0.285714 0.979982 +vt 0.285714 1.000000 +vt 0.416059 0.357087 +vt 0.418109 0.358843 +vt 0.442688 0.377519 +vt 0.478382 0.221132 +vt 0.445992 0.234885 +vt 0.443039 0.236044 +vt 0.438297 0.257223 +vt 0.430581 0.291701 +vt 0.423064 0.325372 +vt 0.437640 0.399638 +vt 0.441377 0.383261 +vt 0.433246 0.393209 +vt 0.184488 0.071792 +vt 0.207513 0.071256 +vt 0.245500 0.070956 +vt 0.283013 0.071276 +vt 0.312784 0.071960 +vt 0.313923 0.069442 +vt 0.329965 0.033767 +vt 0.172381 0.033767 +vt 0.183417 0.068541 +vt 0.335519 0.033767 +vt 0.365740 0.048324 +vt 0.354132 0.033767 +vt 0.432525 0.191471 +vt 0.436311 0.189957 +vt 0.468080 0.176654 +vt 0.370656 0.054488 +vt 0.355136 0.088999 +vt 0.353492 0.092633 +vt 0.355564 0.095101 +vt 0.380082 0.124766 +vt 0.403170 0.153489 +vt 0.426641 0.183685 +vt 0.473222 0.183101 +vt 0.480008 0.214008 +vt 0.483983 0.196595 +vt 0.022842 0.200525 +vt 0.027160 0.182623 +vt 0.016017 0.196595 +vt 0.136101 0.099156 +vt 0.142886 0.090878 +vt 0.142141 0.088637 +vt 0.130807 0.052653 +vt 0.033572 0.174582 +vt 0.061005 0.185471 +vt 0.064758 0.186857 +vt 0.065503 0.185941 +vt 0.089426 0.156450 +vt 0.112362 0.128229 +vt 0.145868 0.033767 +vt 0.133885 0.048793 +vt 0.165209 0.033767 +vt 0.274063 0.977207 +vt 0.274063 1.000000 +vt 0.274730 0.977308 +vt 0.183477 0.972119 +vt 0.159634 0.975514 +vt 0.159634 1.000000 +vt 0.270291 1.000000 +vt 0.270291 0.976634 +vt 0.242560 0.972419 +vt 0.212961 0.970801 +vt 0.156216 1.000000 +vt 0.156216 0.976001 +vt 0.151695 0.976645 +vt 0.142857 0.978718 +vt 0.142857 1.000000 +vt 0.129492 0.975976 +vt 0.129491 1.000000 +vt 0.000000 0.977747 +vt 0.000000 1.000000 +vt 0.013338 1.000000 +vt 0.013338 0.975309 +vt 0.018035 0.974450 +vt 0.018035 1.000000 +vt 0.124878 1.000000 +vt 0.124878 0.975029 +vt 0.117760 0.973569 +vt 0.087492 0.970216 +vt 0.084969 0.970185 +vt 0.058667 0.970185 +vt 0.055005 0.970185 +vt 0.028975 0.972450 +vt 0.019797 0.213154 +vt 0.051909 0.224916 +vt 0.021021 0.218517 +vt 0.056918 0.375792 +vt 0.084307 0.348069 +vt 0.086020 0.346400 +vt 0.079806 0.322620 +vt 0.070975 0.288475 +vt 0.062090 0.254257 +vt 0.054327 0.225559 +vt 0.250000 0.490000 +vt 0.267423 0.481609 +vt 0.232480 0.481563 +vt 0.274590 0.439780 +vt 0.271963 0.479423 +vt 0.412452 0.411767 +vt 0.390902 0.389016 +vt 0.387945 0.385993 +vt 0.357919 0.399840 +vt 0.325828 0.414536 +vt 0.293364 0.429104 +vt 0.274738 0.437263 +vt 0.062360 0.399638 +vt 0.079916 0.408092 +vt 0.058027 0.380651 +vt 0.112684 0.384040 +vt 0.085976 0.411010 +vt 0.226311 0.478592 +vt 0.228861 0.439953 +vt 0.229066 0.436538 +vt 0.220119 0.432677 +vt 0.186405 0.417424 +vt 0.153938 0.401805 +vt 0.120154 0.384464 +vt 0.115045 0.381715 +vt 0.421730 0.407299 +vt 0.307648 0.389175 +vt 0.279042 0.396002 +vt 0.279079 0.396192 +vt 0.307723 0.389356 +vt 0.389114 0.307623 +vt 0.376489 0.334517 +vt 0.376651 0.334626 +vt 0.389293 0.307697 +vt 0.402170 0.280269 +vt 0.401975 0.280230 +vt 0.378724 0.163989 +vt 0.378562 0.164098 +vt 0.391947 0.191204 +vt 0.392126 0.191130 +vt 0.280294 0.097703 +vt 0.310369 0.104256 +vt 0.310444 0.104075 +vt 0.280331 0.097514 +vt 0.139971 0.139972 +vt 0.163622 0.120726 +vt 0.163514 0.120565 +vt 0.139834 0.139834 +vt 0.097536 0.250000 +vt 0.097729 0.250000 +vt 0.097430 0.219652 +vt 0.097236 0.219613 +vt 0.166562 0.374875 +vt 0.166669 0.374714 +vt 0.143440 0.356561 +vt 0.143302 0.356698 +vt 0.250000 0.402933 +vt 0.250000 0.403132 +vt 0.190597 0.393412 +vt 0.190520 0.393597 +vt 0.196887 0.398327 +vt 0.196841 0.398536 +vt 0.233294 0.406920 +vt 0.233248 0.407130 +vt 0.098028 0.280229 +vt 0.097835 0.280268 +vt 0.098236 0.301349 +vt 0.098044 0.301444 +vt 0.119048 0.337500 +vt 0.115352 0.334612 +vt 0.115160 0.334707 +vt 0.118879 0.337613 +vt 0.115335 0.160020 +vt 0.115167 0.159907 +vt 0.114589 0.160627 +vt 0.114397 0.160534 +vt 0.097174 0.193751 +vt 0.096980 0.193657 +vt 0.250000 0.091103 +vt 0.250000 0.090905 +vt 0.231758 0.087128 +vt 0.231708 0.086920 +vt 0.188176 0.100745 +vt 0.195193 0.095035 +vt 0.195143 0.094826 +vt 0.188099 0.100558 +vt 0.364605 0.135395 +vt 0.364460 0.135540 +vt 0.363417 0.132989 +vt 0.363285 0.133159 +vt 0.334323 0.109475 +vt 0.334455 0.109306 +vt 0.410071 0.263439 +vt 0.409858 0.263439 +vt 0.405885 0.218993 +vt 0.405688 0.219032 +vt 0.409147 0.226037 +vt 0.409363 0.226037 +vt 0.334490 0.382968 +vt 0.334358 0.382801 +vt 0.364335 0.360405 +vt 0.364469 0.360574 +vt 0.879125 0.952094 +vt 0.879125 1.000000 +vt 0.980478 1.000000 +vt 0.980478 0.952094 +vt 0.963724 0.952094 +vt 0.934599 0.952094 +vt 0.905911 0.952094 +vt 0.734152 0.952094 +vt 0.734153 1.000000 +vt 0.838646 1.000000 +vt 0.838646 0.952094 +vt 0.810748 0.952094 +vt 0.781767 0.952094 +vt 0.752247 0.952094 +vt 0.592608 0.952094 +vt 0.592608 1.000000 +vt 0.693652 1.000000 +vt 0.693652 0.952094 +vt 0.686031 0.952094 +vt 0.655756 0.952094 +vt 0.626267 0.952094 +vt 0.595198 0.952094 +vt 0.449715 0.952094 +vt 0.449715 1.000000 +vt 0.552112 1.000000 +vt 0.552112 0.952094 +vt 0.528197 0.952094 +vt 0.498171 0.952094 +vt 0.467927 0.952094 +vt 0.307849 0.952094 +vt 0.307849 1.000000 +vt 0.409220 1.000000 +vt 0.409220 0.952094 +vt 0.400396 0.952094 +vt 0.369515 0.952094 +vt 0.339771 0.952094 +vt 0.308788 0.952094 +vt 0.389345 0.328970 +vt 0.443640 0.373348 +vt 0.477538 0.224832 +vt 0.346726 0.253555 +vt 0.349989 0.267876 +vt 0.351188 0.273135 +vt 0.334909 0.201692 +vt 0.465228 0.173077 +vt 0.373383 0.057907 +vt 0.315627 0.177817 +vt 0.331177 0.185313 +vt 0.148795 0.273060 +vt 0.153088 0.254285 +vt 0.089612 0.238977 +vt 0.186333 0.176851 +vt 0.128278 0.055824 +vt 0.036137 0.171366 +vt 0.164944 0.202428 +vt 0.168871 0.185252 +vt 0.267712 0.154721 +vt 0.325971 0.033767 +vt 0.176691 0.033767 +vt 0.234265 0.153790 +vt 0.250039 0.146201 +vt 0.162409 0.952094 +vt 0.162409 1.000000 +vt 0.267372 1.000000 +vt 0.267372 0.952094 +vt 0.242106 0.952094 +vt 0.212500 0.952094 +vt 0.183011 0.952094 +vt 0.028760 0.952094 +vt 0.020973 0.952094 +vt 0.020973 1.000000 +vt 0.121913 1.000000 +vt 0.121913 0.952094 +vt 0.117337 0.952094 +vt 0.087140 0.952094 +vt 0.058382 0.952094 +vt 0.056018 0.371849 +vt 0.160868 0.288211 +vt 0.021967 0.222664 +vt 0.194017 0.329809 +vt 0.089871 0.412886 +vt 0.222452 0.476734 +vt 0.222629 0.343509 +vt 0.204928 0.343503 +vt 0.275820 0.343529 +vt 0.275642 0.477652 +vt 0.408767 0.413542 +vt 0.306102 0.329628 +vt 0.295002 0.343536 +vt 0.339283 0.288052 +vt 0.348645 0.328667 +vt 0.373008 0.221924 +vt 0.304744 0.136323 +vt 0.195256 0.136323 +vt 0.126992 0.221924 +vt 0.151355 0.328667 +vt 0.250000 0.376172 +vt 0.250000 0.401586 +vt 0.250000 0.414201 +vt 0.378377 0.352378 +vt 0.368515 0.344513 +vt 0.410084 0.213462 +vt 0.397786 0.216269 +vt 0.321244 0.102060 +vt 0.315771 0.113425 +vt 0.178756 0.102060 +vt 0.184229 0.113425 +vt 0.089916 0.213462 +vt 0.102214 0.216269 +vt 0.121623 0.352378 +vt 0.131485 0.344513 +vt 0.375000 0.275590 +vt 0.625000 0.275535 +vt 0.375000 0.275500 +vt 0.625000 0.275529 +vt 0.375000 0.276953 +vt 0.625000 0.276274 +vt 0.375000 0.275656 +vt 0.625000 0.275590 +vt 0.375000 0.275978 +vt 0.625000 0.275995 +vt 0.375000 0.276796 +vt 0.625000 0.276345 +vt 0.375000 0.277059 +vt 0.625000 0.276391 +vt 0.856398 0.502042 +vt 0.859050 0.689438 +vt 0.832459 0.689438 +vt 0.832412 0.689867 +vt 0.875000 0.500000 +vt 0.849465 0.500000 +vt 0.847674 0.502042 +vt 0.167652 0.690629 +vt 0.141088 0.690629 +vt 0.143593 0.501971 +vt 0.152318 0.501971 +vt 0.150590 0.500000 +vt 0.125000 0.500000 +vt 0.167701 0.691059 +vt 0.856398 0.502049 +vt 0.858902 0.690709 +vt 0.832340 0.690709 +vt 0.832290 0.691138 +vt 0.875000 0.500000 +vt 0.849471 0.500000 +vt 0.847676 0.502049 +vt 0.167557 0.689479 +vt 0.140957 0.689479 +vt 0.143607 0.502087 +vt 0.152330 0.502087 +vt 0.150500 0.500000 +vt 0.125000 0.500000 +vt 0.167604 0.689909 +vt 0.848726 0.500000 +vt 0.847785 0.501077 +vt 0.856517 0.501077 +vt 0.859288 0.687453 +vt 0.832575 0.687453 +vt 0.832534 0.687880 +vt 0.875000 0.500000 +vt 0.167566 0.689913 +vt 0.141000 0.689913 +vt 0.142774 0.592035 +vt 0.143377 0.500190 +vt 0.152119 0.500190 +vt 0.151953 0.500000 +vt 0.125000 0.500000 +vt 0.167616 0.690344 +vt 0.849410 0.500000 +vt 0.847690 0.501970 +vt 0.856410 0.501970 +vt 0.859085 0.689215 +vt 0.832513 0.689215 +vt 0.832463 0.689644 +vt 0.875000 0.500000 +vt 0.167672 0.690694 +vt 0.141100 0.690694 +vt 0.143580 0.501884 +vt 0.152302 0.501884 +vt 0.150656 0.500000 +vt 0.125000 0.500000 +vt 0.167720 0.691124 +vt 0.849005 0.500000 +vt 0.847746 0.501441 +vt 0.856473 0.501441 +vt 0.859141 0.688654 +vt 0.832504 0.688653 +vt 0.832460 0.689083 +vt 0.875000 0.500000 +vt 0.167612 0.690305 +vt 0.141048 0.690305 +vt 0.143529 0.501464 +vt 0.152256 0.501464 +vt 0.150978 0.500000 +vt 0.125000 0.500000 +vt 0.167662 0.690735 +vt 0.856527 0.500984 +vt 0.859066 0.689369 +vt 0.832497 0.689369 +vt 0.832447 0.689797 +vt 0.875000 0.500000 +vt 0.848655 0.500000 +vt 0.847793 0.500984 +vt 0.167396 0.688069 +vt 0.140785 0.688069 +vt 0.143402 0.500395 +vt 0.152141 0.500395 +vt 0.151796 0.500000 +vt 0.125000 0.500000 +vt 0.167443 0.688500 +vt 0.856534 0.500924 +vt 0.859303 0.687435 +vt 0.832721 0.687435 +vt 0.832672 0.687862 +vt 0.875000 0.500000 +vt 0.848609 0.500000 +vt 0.847799 0.500924 +vt 0.167534 0.689636 +vt 0.140966 0.689636 +vt 0.142767 0.590999 +vt 0.143360 0.500052 +vt 0.152104 0.500052 +vt 0.152059 0.500000 +vt 0.125000 0.500000 +vt 0.167585 0.690068 +vt 0.971926 0.953202 +vt 1.000000 0.953202 +vt 1.000000 0.953202 +vt 1.000000 0.970060 +vt 0.971926 0.970060 +vt 0.857143 0.953202 +vt 0.887565 0.953202 +vt 0.887565 0.970060 +vt 0.857143 0.970060 +vt 0.828921 0.953202 +vt 0.857143 0.953202 +vt 0.828921 0.970060 +vt 0.714286 0.953202 +vt 0.744554 0.953202 +vt 0.744554 0.970060 +vt 0.714286 0.970060 +vt 0.571429 0.970060 +vt 0.571429 0.953202 +vt 0.571429 0.953202 +vt 0.598072 0.953202 +vt 0.598072 0.970059 +vt 0.682436 0.953202 +vt 0.714286 0.953202 +vt 0.705731 0.970059 +vt 0.682436 0.970060 +vt 0.428571 0.970060 +vt 0.428571 0.953202 +vt 0.428572 0.953202 +vt 0.459688 0.953202 +vt 0.459688 0.970060 +vt 0.544050 0.953202 +vt 0.544050 0.970060 +vt 0.285714 0.953202 +vt 0.285714 0.953202 +vt 0.316448 0.953202 +vt 0.316448 0.970060 +vt 0.285714 0.970060 +vt 0.400809 0.953202 +vt 0.400809 0.970060 +vt 0.257770 0.953202 +vt 0.257770 0.970060 +vt 0.142857 0.953202 +vt 0.173403 0.953202 +vt 0.173403 0.970060 +vt 0.142857 0.970060 +vt 0.112131 0.953202 +vt 0.142857 0.953202 +vt 0.112131 0.970060 +vt 0.000000 0.953202 +vt 0.027770 0.953202 +vt 0.027770 0.970060 +vt 0.000000 0.970060 +vt 0.436509 0.398736 +vt 0.250000 0.488554 +vt 0.286652 0.470904 +vt 0.285207 0.467896 +vt 0.395397 0.414961 +vt 0.396791 0.417863 +vt 0.436509 0.398736 +vt 0.472813 0.239678 +vt 0.482573 0.196917 +vt 0.482573 0.196917 +vt 0.445609 0.358866 +vt 0.444141 0.358513 +vt 0.472731 0.239658 +vt 0.377577 0.065256 +vt 0.353505 0.035070 +vt 0.453798 0.160833 +vt 0.452533 0.161826 +vt 0.377069 0.065654 +vt 0.353505 0.035070 +vt 0.313830 0.035070 +vt 0.313831 0.037425 +vt 0.191586 0.037462 +vt 0.191586 0.035070 +vt 0.146495 0.035070 +vt 0.146495 0.035070 +vt 0.121412 0.066523 +vt 0.123927 0.068533 +vt 0.047598 0.164020 +vt 0.045194 0.162098 +vt 0.017427 0.196917 +vt 0.017427 0.196917 +vt 0.026437 0.236395 +vt 0.028158 0.236023 +vt 0.053944 0.355518 +vt 0.053641 0.355583 +vt 0.063491 0.398736 +vt 0.063491 0.398736 +vt 0.213745 0.471095 +vt 0.250000 0.488554 +vt 0.103606 0.418055 +vt 0.105057 0.415037 +vt 0.215223 0.468022 +vt 0.937420 0.533849 +vt 0.937175 0.519291 +vt 0.906575 0.519291 +vt 0.906330 0.533849 +vt 0.909393 0.538582 +vt 0.934356 0.538582 +vt 0.934358 0.657826 +vt 0.909393 0.657826 +vt 0.909392 0.736465 +vt 0.934357 0.736465 +vt 0.903108 0.657826 +vt 0.878143 0.657826 +vt 0.878142 0.736465 +vt 0.903107 0.736465 +vt 0.871858 0.657826 +vt 0.846893 0.657826 +vt 0.846892 0.736465 +vt 0.871857 0.736465 +vt 0.840608 0.657826 +vt 0.815643 0.657826 +vt 0.815642 0.736465 +vt 0.840607 0.736465 +vt 0.809358 0.657826 +vt 0.784393 0.657826 +vt 0.784392 0.736465 +vt 0.809357 0.736465 +vt 0.778108 0.657826 +vt 0.753143 0.657826 +vt 0.753142 0.736465 +vt 0.778107 0.736465 +vt 0.746858 0.657826 +vt 0.721893 0.657826 +vt 0.721892 0.736465 +vt 0.746857 0.736465 +vt 0.715608 0.657826 +vt 0.690643 0.657826 +vt 0.690642 0.736465 +vt 0.715607 0.736465 +vt 0.684358 0.657826 +vt 0.659393 0.657826 +vt 0.659392 0.736465 +vt 0.684357 0.736465 +vt 0.653108 0.657826 +vt 0.628143 0.657826 +vt 0.628142 0.736465 +vt 0.653107 0.736465 +vt 0.621858 0.657826 +vt 0.596893 0.657826 +vt 0.596892 0.736465 +vt 0.621857 0.736465 +vt 0.590608 0.657826 +vt 0.565643 0.657826 +vt 0.565642 0.736465 +vt 0.590607 0.736465 +vt 0.559358 0.657826 +vt 0.534393 0.657826 +vt 0.534392 0.736465 +vt 0.559357 0.736465 +vt 0.528108 0.657826 +vt 0.503143 0.657826 +vt 0.503142 0.736465 +vt 0.528107 0.736465 +vt 0.496858 0.657826 +vt 0.471893 0.657826 +vt 0.471892 0.736465 +vt 0.496857 0.736465 +vt 0.465608 0.657826 +vt 0.440643 0.657826 +vt 0.440642 0.736465 +vt 0.465607 0.736465 +vt 0.434358 0.657826 +vt 0.409393 0.657826 +vt 0.409392 0.736465 +vt 0.434357 0.736465 +vt 0.403108 0.657826 +vt 0.378143 0.657826 +vt 0.378142 0.736465 +vt 0.403107 0.736465 +vt 0.371858 0.657826 +vt 0.346893 0.657826 +vt 0.346892 0.736465 +vt 0.371857 0.736465 +vt 0.340608 0.657826 +vt 0.315643 0.657826 +vt 0.315642 0.736465 +vt 0.340607 0.736465 +vt 0.309358 0.657826 +vt 0.284393 0.657826 +vt 0.284392 0.736465 +vt 0.309357 0.736465 +vt 0.278108 0.657826 +vt 0.253143 0.657826 +vt 0.253142 0.736465 +vt 0.278107 0.736465 +vt 0.246858 0.657826 +vt 0.221893 0.657826 +vt 0.221892 0.736465 +vt 0.246857 0.736465 +vt 0.215608 0.657826 +vt 0.190643 0.657826 +vt 0.190642 0.736465 +vt 0.215607 0.736465 +vt 0.184358 0.657826 +vt 0.159393 0.657826 +vt 0.159392 0.736465 +vt 0.184357 0.736465 +vt 0.153108 0.657826 +vt 0.128143 0.657826 +vt 0.128142 0.736465 +vt 0.153107 0.736465 +vt 0.121858 0.657826 +vt 0.096893 0.657826 +vt 0.096892 0.736465 +vt 0.121857 0.736465 +vt 0.090608 0.657826 +vt 0.065643 0.657826 +vt 0.065642 0.736465 +vt 0.090607 0.736465 +vt 0.906170 0.533849 +vt 0.905925 0.519291 +vt 0.875325 0.519291 +vt 0.875080 0.533849 +vt 0.878143 0.538582 +vt 0.903106 0.538582 +vt 0.965608 0.657826 +vt 0.940643 0.657826 +vt 0.940642 0.736465 +vt 0.965607 0.736465 +vt 0.968670 0.533849 +vt 0.968425 0.519291 +vt 0.937825 0.519291 +vt 0.937580 0.533849 +vt 0.940643 0.538582 +vt 0.965606 0.538582 +vt 0.028106 0.538582 +vt 0.003143 0.538582 +vt 0.003143 0.630756 +vt 0.028107 0.630756 +vt 0.999675 0.519291 +vt 0.998788 0.500000 +vt 0.969962 0.500000 +vt 0.969075 0.519291 +vt 0.750000 0.471391 +vt 0.793191 0.467137 +vt 0.000080 0.966151 +vt 0.000325 0.980709 +vt 0.030925 0.980709 +vt 0.031170 0.966151 +vt 0.028106 0.961418 +vt 0.003143 0.961418 +vt 0.969075 0.980709 +vt 0.969962 1.000000 +vt 0.998788 1.000000 +vt 0.999675 0.980709 +vt 0.293191 0.467137 +vt 0.289561 0.448886 +vt 0.250000 0.452782 +vt 0.250000 0.471391 +vt 0.940643 0.630756 +vt 0.965607 0.630756 +vt 0.967538 0.500000 +vt 0.938712 0.500000 +vt 0.834722 0.454539 +vt 0.965607 0.869244 +vt 0.940643 0.869244 +vt 0.940643 0.961418 +vt 0.965606 0.961418 +vt 0.937825 0.980709 +vt 0.938712 1.000000 +vt 0.967538 1.000000 +vt 0.968425 0.980709 +vt 0.334723 0.454539 +vt 0.327601 0.437346 +vt 0.909393 0.630756 +vt 0.934357 0.630756 +vt 0.936288 0.500000 +vt 0.907461 0.500000 +vt 0.872998 0.434080 +vt 0.934357 0.869244 +vt 0.909393 0.869244 +vt 0.909393 0.961418 +vt 0.934356 0.961418 +vt 0.906575 0.980709 +vt 0.907462 1.000000 +vt 0.936288 1.000000 +vt 0.937175 0.980709 +vt 0.372998 0.434080 +vt 0.362660 0.418607 +vt 0.878143 0.630756 +vt 0.903107 0.630756 +vt 0.905038 0.500000 +vt 0.876212 0.500000 +vt 0.906547 0.406547 +vt 0.903107 0.869244 +vt 0.878143 0.869244 +vt 0.878143 0.961418 +vt 0.903106 0.961418 +vt 0.875325 0.980709 +vt 0.876212 1.000000 +vt 0.905038 1.000000 +vt 0.905925 0.980709 +vt 0.406547 0.406547 +vt 0.393388 0.393388 +vt 0.871856 0.538582 +vt 0.846893 0.538582 +vt 0.846893 0.630756 +vt 0.871857 0.630756 +vt 0.874675 0.519291 +vt 0.873788 0.500000 +vt 0.844962 0.500000 +vt 0.844075 0.519291 +vt 0.934080 0.372998 +vt 0.871857 0.869244 +vt 0.846893 0.869244 +vt 0.846893 0.961418 +vt 0.871856 0.961418 +vt 0.844075 0.980709 +vt 0.844962 1.000000 +vt 0.873788 1.000000 +vt 0.874675 0.980709 +vt 0.434080 0.372998 +vt 0.418607 0.362660 +vt 0.840606 0.538582 +vt 0.815643 0.538582 +vt 0.815643 0.630756 +vt 0.840607 0.630756 +vt 0.843425 0.519291 +vt 0.842538 0.500000 +vt 0.813712 0.500000 +vt 0.812825 0.519291 +vt 0.954539 0.334723 +vt 0.840607 0.869244 +vt 0.815643 0.869244 +vt 0.815643 0.961418 +vt 0.840606 0.961418 +vt 0.812825 0.980709 +vt 0.813712 1.000000 +vt 0.842538 1.000000 +vt 0.843425 0.980709 +vt 0.454539 0.334723 +vt 0.437346 0.327601 +vt 0.809356 0.538582 +vt 0.784393 0.538582 +vt 0.784393 0.630756 +vt 0.809357 0.630756 +vt 0.812175 0.519291 +vt 0.811288 0.500000 +vt 0.782462 0.500000 +vt 0.781575 0.519291 +vt 0.967137 0.293191 +vt 0.809357 0.869244 +vt 0.784393 0.869244 +vt 0.784393 0.961418 +vt 0.809356 0.961418 +vt 0.781575 0.980709 +vt 0.782462 1.000000 +vt 0.811288 1.000000 +vt 0.812175 0.980709 +vt 0.467137 0.293191 +vt 0.448886 0.289561 +vt 0.778106 0.538582 +vt 0.753143 0.538582 +vt 0.753143 0.630756 +vt 0.778107 0.630756 +vt 0.780925 0.519291 +vt 0.780038 0.500000 +vt 0.751211 0.500000 +vt 0.750325 0.519291 +vt 0.971391 0.250000 +vt 0.778107 0.869244 +vt 0.753143 0.869244 +vt 0.753143 0.961418 +vt 0.778106 0.961418 +vt 0.750325 0.980709 +vt 0.751212 1.000000 +vt 0.780038 1.000000 +vt 0.780925 0.980709 +vt 0.471391 0.250000 +vt 0.452782 0.250000 +vt 0.746856 0.538582 +vt 0.721893 0.538582 +vt 0.721893 0.630756 +vt 0.746857 0.630756 +vt 0.749675 0.519291 +vt 0.748788 0.500000 +vt 0.719962 0.500000 +vt 0.719075 0.519291 +vt 0.967137 0.206809 +vt 0.746857 0.869244 +vt 0.721893 0.869244 +vt 0.721893 0.961418 +vt 0.746856 0.961418 +vt 0.719075 0.980709 +vt 0.719962 1.000000 +vt 0.748788 1.000000 +vt 0.749675 0.980709 +vt 0.467137 0.206809 +vt 0.448886 0.210439 +vt 0.715606 0.538582 +vt 0.690643 0.538582 +vt 0.690643 0.630756 +vt 0.715607 0.630756 +vt 0.718425 0.519291 +vt 0.717538 0.500000 +vt 0.688712 0.500000 +vt 0.687825 0.519291 +vt 0.954539 0.165277 +vt 0.715607 0.869244 +vt 0.690643 0.869244 +vt 0.690643 0.961418 +vt 0.715606 0.961418 +vt 0.687825 0.980709 +vt 0.688712 1.000000 +vt 0.717538 1.000000 +vt 0.718425 0.980709 +vt 0.454539 0.165277 +vt 0.437346 0.172399 +vt 0.684356 0.538582 +vt 0.659393 0.538582 +vt 0.659393 0.630756 +vt 0.684357 0.630756 +vt 0.687175 0.519291 +vt 0.686288 0.500000 +vt 0.657462 0.500000 +vt 0.656575 0.519291 +vt 0.934080 0.127002 +vt 0.684357 0.869244 +vt 0.659393 0.869244 +vt 0.659393 0.961418 +vt 0.684356 0.961418 +vt 0.656575 0.980709 +vt 0.657462 1.000000 +vt 0.686288 1.000000 +vt 0.687175 0.980709 +vt 0.434080 0.127002 +vt 0.418607 0.137340 +vt 0.653106 0.538582 +vt 0.628143 0.538582 +vt 0.628143 0.630756 +vt 0.653107 0.630756 +vt 0.655925 0.519291 +vt 0.655039 0.500000 +vt 0.626212 0.500000 +vt 0.625325 0.519291 +vt 0.906547 0.093453 +vt 0.653107 0.869244 +vt 0.628143 0.869244 +vt 0.628143 0.961418 +vt 0.653106 0.961418 +vt 0.625325 0.980709 +vt 0.626212 1.000000 +vt 0.655038 1.000000 +vt 0.655925 0.980709 +vt 0.406547 0.093453 +vt 0.621856 0.538582 +vt 0.596893 0.538582 +vt 0.596893 0.630756 +vt 0.621857 0.630756 +vt 0.624675 0.519291 +vt 0.623788 0.500000 +vt 0.594962 0.500000 +vt 0.594075 0.519291 +vt 0.872998 0.065920 +vt 0.621857 0.869244 +vt 0.596893 0.869244 +vt 0.596893 0.961418 +vt 0.621856 0.961418 +vt 0.594075 0.980709 +vt 0.594962 1.000000 +vt 0.623788 1.000000 +vt 0.624675 0.980709 +vt 0.372998 0.065920 +vt 0.590606 0.538582 +vt 0.565643 0.538582 +vt 0.565643 0.630756 +vt 0.590607 0.630756 +vt 0.593425 0.519291 +vt 0.592538 0.500000 +vt 0.563712 0.500000 +vt 0.562825 0.519291 +vt 0.834723 0.045461 +vt 0.590607 0.869244 +vt 0.565643 0.869244 +vt 0.565643 0.961418 +vt 0.590606 0.961418 +vt 0.562825 0.980709 +vt 0.563712 1.000000 +vt 0.592538 1.000000 +vt 0.593425 0.980709 +vt 0.334723 0.045461 +vt 0.327601 0.062654 +vt 0.559356 0.538582 +vt 0.534393 0.538582 +vt 0.534393 0.630756 +vt 0.559357 0.630756 +vt 0.562175 0.519291 +vt 0.561288 0.500000 +vt 0.532462 0.500000 +vt 0.531575 0.519291 +vt 0.793191 0.032863 +vt 0.559357 0.869244 +vt 0.534393 0.869244 +vt 0.534393 0.961418 +vt 0.559356 0.961418 +vt 0.531575 0.980709 +vt 0.532462 1.000000 +vt 0.561289 1.000000 +vt 0.562175 0.980709 +vt 0.293191 0.032863 +vt 0.289561 0.051114 +vt 0.528106 0.538582 +vt 0.503143 0.538582 +vt 0.503143 0.630756 +vt 0.528107 0.630756 +vt 0.530925 0.519291 +vt 0.530038 0.500000 +vt 0.501212 0.500000 +vt 0.500325 0.519291 +vt 0.750000 0.028609 +vt 0.528107 0.869244 +vt 0.503143 0.869244 +vt 0.503143 0.961418 +vt 0.528106 0.961418 +vt 0.500325 0.980709 +vt 0.501212 1.000000 +vt 0.530038 1.000000 +vt 0.530925 0.980709 +vt 0.250000 0.028609 +vt 0.250000 0.047218 +vt 0.496856 0.538582 +vt 0.471893 0.538582 +vt 0.471893 0.630756 +vt 0.496857 0.630756 +vt 0.499675 0.519291 +vt 0.498788 0.500000 +vt 0.469962 0.500000 +vt 0.469075 0.519291 +vt 0.706809 0.032863 +vt 0.496857 0.869244 +vt 0.471893 0.869244 +vt 0.471893 0.961418 +vt 0.496856 0.961418 +vt 0.469075 0.980709 +vt 0.469962 1.000000 +vt 0.498789 1.000000 +vt 0.499675 0.980709 +vt 0.206809 0.032863 +vt 0.210439 0.051114 +vt 0.465606 0.538582 +vt 0.440643 0.538582 +vt 0.440643 0.630756 +vt 0.465607 0.630756 +vt 0.468425 0.519291 +vt 0.467538 0.500000 +vt 0.438712 0.500000 +vt 0.437825 0.519291 +vt 0.665277 0.045461 +vt 0.465607 0.869244 +vt 0.440643 0.869244 +vt 0.440643 0.961418 +vt 0.465606 0.961418 +vt 0.437825 0.980709 +vt 0.438712 1.000000 +vt 0.467538 1.000000 +vt 0.468425 0.980709 +vt 0.165277 0.045461 +vt 0.172399 0.062654 +vt 0.434356 0.538582 +vt 0.409393 0.538582 +vt 0.409393 0.630756 +vt 0.434357 0.630756 +vt 0.437175 0.519291 +vt 0.436288 0.500000 +vt 0.407461 0.500000 +vt 0.406575 0.519291 +vt 0.627002 0.065920 +vt 0.434357 0.869244 +vt 0.409393 0.869244 +vt 0.409393 0.961418 +vt 0.434356 0.961418 +vt 0.406575 0.980709 +vt 0.407462 1.000000 +vt 0.436289 1.000000 +vt 0.437175 0.980709 +vt 0.127002 0.065920 +vt 0.137340 0.081393 +vt 0.403106 0.538582 +vt 0.378143 0.538582 +vt 0.378143 0.630756 +vt 0.403107 0.630756 +vt 0.405925 0.519291 +vt 0.405038 0.500000 +vt 0.376212 0.500000 +vt 0.375325 0.519291 +vt 0.593453 0.093453 +vt 0.403107 0.869244 +vt 0.378143 0.869244 +vt 0.378143 0.961418 +vt 0.403106 0.961418 +vt 0.375325 0.980709 +vt 0.376212 1.000000 +vt 0.405038 1.000000 +vt 0.405925 0.980709 +vt 0.093453 0.093453 +vt 0.106611 0.106612 +vt 0.371856 0.538582 +vt 0.346893 0.538582 +vt 0.346893 0.630756 +vt 0.371857 0.630756 +vt 0.374675 0.519291 +vt 0.373788 0.500000 +vt 0.344962 0.500000 +vt 0.344075 0.519291 +vt 0.565920 0.127002 +vt 0.371857 0.869244 +vt 0.346893 0.869244 +vt 0.346893 0.961418 +vt 0.371856 0.961418 +vt 0.344075 0.980709 +vt 0.344962 1.000000 +vt 0.373788 1.000000 +vt 0.374675 0.980709 +vt 0.065920 0.127002 +vt 0.081393 0.137341 +vt 0.340606 0.538582 +vt 0.315643 0.538582 +vt 0.315643 0.630756 +vt 0.340607 0.630756 +vt 0.343425 0.519291 +vt 0.342539 0.500000 +vt 0.313711 0.500000 +vt 0.312825 0.519291 +vt 0.545461 0.165278 +vt 0.340607 0.869244 +vt 0.315643 0.869244 +vt 0.315643 0.961418 +vt 0.340606 0.961418 +vt 0.312825 0.980709 +vt 0.313712 1.000000 +vt 0.342539 1.000000 +vt 0.343425 0.980709 +vt 0.045461 0.165278 +vt 0.062654 0.172399 +vt 0.309356 0.538582 +vt 0.284393 0.538582 +vt 0.284393 0.630756 +vt 0.309357 0.630756 +vt 0.312175 0.519291 +vt 0.311288 0.500000 +vt 0.282462 0.500000 +vt 0.281575 0.519291 +vt 0.532863 0.206809 +vt 0.309357 0.869244 +vt 0.284393 0.869244 +vt 0.284393 0.961418 +vt 0.309356 0.961418 +vt 0.281575 0.980709 +vt 0.282462 1.000000 +vt 0.311288 1.000000 +vt 0.312175 0.980709 +vt 0.032863 0.206809 +vt 0.051114 0.210439 +vt 0.278106 0.538582 +vt 0.253143 0.538582 +vt 0.253143 0.630756 +vt 0.278107 0.630756 +vt 0.280925 0.519291 +vt 0.280038 0.500000 +vt 0.251212 0.500000 +vt 0.250325 0.519291 +vt 0.528609 0.250000 +vt 0.278107 0.869244 +vt 0.253143 0.869244 +vt 0.253143 0.961418 +vt 0.278106 0.961418 +vt 0.250325 0.980709 +vt 0.251212 1.000000 +vt 0.280038 1.000000 +vt 0.280925 0.980709 +vt 0.028609 0.250000 +vt 0.047218 0.250000 +vt 0.246856 0.538582 +vt 0.221893 0.538582 +vt 0.221893 0.630756 +vt 0.246857 0.630756 +vt 0.249675 0.519291 +vt 0.248788 0.500000 +vt 0.219962 0.500000 +vt 0.219075 0.519291 +vt 0.532863 0.293191 +vt 0.246857 0.869244 +vt 0.221893 0.869244 +vt 0.221893 0.961418 +vt 0.246856 0.961418 +vt 0.219075 0.980709 +vt 0.219962 1.000000 +vt 0.248788 1.000000 +vt 0.249675 0.980709 +vt 0.032863 0.293191 +vt 0.051115 0.289561 +vt 0.215606 0.538582 +vt 0.190643 0.538582 +vt 0.190643 0.630756 +vt 0.215607 0.630756 +vt 0.218425 0.519291 +vt 0.217538 0.500000 +vt 0.188712 0.500000 +vt 0.187825 0.519291 +vt 0.545462 0.334723 +vt 0.215607 0.869244 +vt 0.190643 0.869244 +vt 0.190643 0.961418 +vt 0.215606 0.961418 +vt 0.187825 0.980709 +vt 0.188712 1.000000 +vt 0.217538 1.000000 +vt 0.218425 0.980709 +vt 0.045462 0.334723 +vt 0.062654 0.327601 +vt 0.184356 0.538582 +vt 0.159393 0.538582 +vt 0.159393 0.630756 +vt 0.184357 0.630756 +vt 0.187175 0.519291 +vt 0.186288 0.500000 +vt 0.157462 0.500000 +vt 0.156575 0.519291 +vt 0.565920 0.372998 +vt 0.184357 0.869244 +vt 0.159393 0.869244 +vt 0.159393 0.961418 +vt 0.184356 0.961418 +vt 0.156575 0.980709 +vt 0.157462 1.000000 +vt 0.186288 1.000000 +vt 0.187175 0.980709 +vt 0.065920 0.372998 +vt 0.081393 0.362660 +vt 0.153106 0.538582 +vt 0.128143 0.538582 +vt 0.128143 0.630756 +vt 0.153107 0.630756 +vt 0.155925 0.519291 +vt 0.155038 0.500000 +vt 0.126212 0.500000 +vt 0.125325 0.519291 +vt 0.593453 0.406547 +vt 0.153107 0.869244 +vt 0.128143 0.869244 +vt 0.128143 0.961418 +vt 0.153106 0.961418 +vt 0.125325 0.980709 +vt 0.126212 1.000000 +vt 0.155038 1.000000 +vt 0.155925 0.980709 +vt 0.093453 0.406547 +vt 0.106612 0.393389 +vt 0.121856 0.538582 +vt 0.096893 0.538582 +vt 0.096893 0.630756 +vt 0.121857 0.630756 +vt 0.124675 0.519291 +vt 0.123788 0.500000 +vt 0.094962 0.500000 +vt 0.094075 0.519291 +vt 0.627002 0.434080 +vt 0.121857 0.869244 +vt 0.096893 0.869244 +vt 0.096893 0.961418 +vt 0.121856 0.961418 +vt 0.094075 0.980709 +vt 0.094962 1.000000 +vt 0.123788 1.000000 +vt 0.124675 0.980709 +vt 0.127002 0.434080 +vt 0.137341 0.418607 +vt 0.090606 0.538582 +vt 0.065643 0.538582 +vt 0.065643 0.630756 +vt 0.090607 0.630756 +vt 0.093425 0.519291 +vt 0.092538 0.500000 +vt 0.063712 0.500000 +vt 0.062825 0.519291 +vt 0.665278 0.454539 +vt 0.090607 0.869244 +vt 0.065643 0.869244 +vt 0.065643 0.961418 +vt 0.090606 0.961418 +vt 0.062825 0.980709 +vt 0.063712 1.000000 +vt 0.092538 1.000000 +vt 0.093425 0.980709 +vt 0.165278 0.454539 +vt 0.172399 0.437346 +vt 0.059356 0.538582 +vt 0.034393 0.538582 +vt 0.034393 0.630756 +vt 0.059357 0.630756 +vt 0.062175 0.519291 +vt 0.061288 0.500000 +vt 0.032462 0.500000 +vt 0.031575 0.519291 +vt 0.706809 0.467137 +vt 0.059357 0.869244 +vt 0.034393 0.869244 +vt 0.034393 0.961418 +vt 0.059356 0.961418 +vt 0.031575 0.980709 +vt 0.032462 1.000000 +vt 0.061288 1.000000 +vt 0.062175 0.980709 +vt 0.206809 0.467137 +vt 0.210440 0.448886 +vt 0.999920 0.533849 +vt 0.968830 0.533849 +vt 0.971893 0.538582 +vt 0.996856 0.538582 +vt 0.030925 0.519291 +vt 0.030038 0.500000 +vt 0.001212 0.500000 +vt 0.000325 0.519291 +vt 0.028107 0.869244 +vt 0.003143 0.869244 +vt 0.001212 1.000000 +vt 0.030038 1.000000 +vt 0.996857 0.763535 +vt 0.971892 0.763535 +vt 0.971893 0.842174 +vt 0.996858 0.842174 +vt 0.996857 0.869244 +vt 0.971893 0.869244 +vt 0.971893 0.961418 +vt 0.996856 0.961418 +vt 0.968830 0.966151 +vt 0.999920 0.966151 +vt 0.031330 0.966151 +vt 0.062420 0.966151 +vt 0.937580 0.966151 +vt 0.968670 0.966151 +vt 0.059358 0.657826 +vt 0.034393 0.657826 +vt 0.034392 0.736465 +vt 0.059357 0.736465 +vt 0.059357 0.763535 +vt 0.034392 0.763535 +vt 0.034393 0.842174 +vt 0.059358 0.842174 +vt 0.934357 0.763535 +vt 0.909392 0.763535 +vt 0.909393 0.842174 +vt 0.934358 0.842174 +vt 0.934333 0.644291 +vt 0.909417 0.644291 +vt 0.028083 0.855709 +vt 0.028108 0.842174 +vt 0.003143 0.842174 +vt 0.003167 0.855709 +vt 0.062580 0.966151 +vt 0.093670 0.966151 +vt 0.812500 0.630756 +vt 0.812500 0.538582 +vt 0.062420 0.533849 +vt 0.031330 0.533849 +vt 0.093830 0.966151 +vt 0.124920 0.966151 +vt 0.090607 0.763535 +vt 0.065642 0.763535 +vt 0.065643 0.842174 +vt 0.090608 0.842174 +vt 0.093670 0.533849 +vt 0.062580 0.533849 +vt 0.125080 0.966151 +vt 0.156170 0.966151 +vt 0.121857 0.763535 +vt 0.096892 0.763535 +vt 0.096893 0.842174 +vt 0.121858 0.842174 +vt 0.124920 0.533849 +vt 0.093830 0.533849 +vt 0.156330 0.966151 +vt 0.187420 0.966151 +vt 0.153107 0.763535 +vt 0.128142 0.763535 +vt 0.128143 0.842174 +vt 0.153108 0.842174 +vt 0.156170 0.533849 +vt 0.125080 0.533849 +vt 0.187580 0.966151 +vt 0.218670 0.966151 +vt 0.184357 0.763535 +vt 0.159392 0.763535 +vt 0.159393 0.842174 +vt 0.184358 0.842174 +vt 0.187420 0.533849 +vt 0.156330 0.533849 +vt 0.218830 0.966151 +vt 0.249920 0.966151 +vt 0.215607 0.763535 +vt 0.190642 0.763535 +vt 0.190643 0.842174 +vt 0.215608 0.842174 +vt 0.218670 0.533849 +vt 0.187580 0.533849 +vt 0.250080 0.966151 +vt 0.281170 0.966151 +vt 0.246857 0.763535 +vt 0.221892 0.763535 +vt 0.221893 0.842174 +vt 0.246858 0.842174 +vt 0.249920 0.533849 +vt 0.218830 0.533849 +vt 0.281330 0.966151 +vt 0.312420 0.966151 +vt 0.278107 0.763535 +vt 0.253142 0.763535 +vt 0.253143 0.842174 +vt 0.278108 0.842174 +vt 0.281170 0.533849 +vt 0.250080 0.533849 +vt 0.312580 0.966151 +vt 0.343670 0.966151 +vt 0.309357 0.763535 +vt 0.284392 0.763535 +vt 0.284393 0.842174 +vt 0.309358 0.842174 +vt 0.312420 0.533849 +vt 0.281330 0.533849 +vt 0.343830 0.966151 +vt 0.374920 0.966151 +vt 0.340607 0.763535 +vt 0.315642 0.763535 +vt 0.315643 0.842174 +vt 0.340608 0.842174 +vt 0.343670 0.533849 +vt 0.312580 0.533849 +vt 0.375080 0.966151 +vt 0.406170 0.966151 +vt 0.371857 0.763535 +vt 0.346892 0.763535 +vt 0.346893 0.842174 +vt 0.371858 0.842174 +vt 0.374920 0.533849 +vt 0.343830 0.533849 +vt 0.406330 0.966151 +vt 0.437420 0.966151 +vt 0.403107 0.763535 +vt 0.378142 0.763535 +vt 0.378143 0.842174 +vt 0.403108 0.842174 +vt 0.406170 0.533849 +vt 0.375080 0.533849 +vt 0.437580 0.966151 +vt 0.468670 0.966151 +vt 0.434357 0.763535 +vt 0.409392 0.763535 +vt 0.409393 0.842174 +vt 0.434358 0.842174 +vt 0.437420 0.533849 +vt 0.406330 0.533849 +vt 0.468830 0.966151 +vt 0.499920 0.966151 +vt 0.465607 0.763535 +vt 0.440642 0.763535 +vt 0.440643 0.842174 +vt 0.465608 0.842174 +vt 0.468670 0.533849 +vt 0.437580 0.533849 +vt 0.500080 0.966151 +vt 0.531170 0.966151 +vt 0.496857 0.763535 +vt 0.471892 0.763535 +vt 0.471893 0.842174 +vt 0.496858 0.842174 +vt 0.499920 0.533849 +vt 0.468830 0.533849 +vt 0.531330 0.966151 +vt 0.562420 0.966151 +vt 0.528107 0.763535 +vt 0.503142 0.763535 +vt 0.503143 0.842174 +vt 0.528108 0.842174 +vt 0.531170 0.533849 +vt 0.500080 0.533849 +vt 0.562580 0.966151 +vt 0.593670 0.966151 +vt 0.559357 0.763535 +vt 0.534392 0.763535 +vt 0.534393 0.842174 +vt 0.559358 0.842174 +vt 0.562420 0.533849 +vt 0.531330 0.533849 +vt 0.593830 0.966151 +vt 0.624920 0.966151 +vt 0.590607 0.763535 +vt 0.565642 0.763535 +vt 0.565643 0.842174 +vt 0.590608 0.842174 +vt 0.593670 0.533849 +vt 0.562580 0.533849 +vt 0.625080 0.966151 +vt 0.656170 0.966151 +vt 0.621857 0.763535 +vt 0.596892 0.763535 +vt 0.596893 0.842174 +vt 0.621858 0.842174 +vt 0.624920 0.533849 +vt 0.593830 0.533849 +vt 0.656330 0.966151 +vt 0.687420 0.966151 +vt 0.653107 0.763535 +vt 0.628142 0.763535 +vt 0.628143 0.842174 +vt 0.653108 0.842174 +vt 0.656170 0.533849 +vt 0.625080 0.533849 +vt 0.687580 0.966151 +vt 0.718670 0.966151 +vt 0.684357 0.763535 +vt 0.659392 0.763535 +vt 0.659393 0.842174 +vt 0.684358 0.842174 +vt 0.687420 0.533849 +vt 0.656330 0.533849 +vt 0.718830 0.966151 +vt 0.749920 0.966151 +vt 0.715607 0.763535 +vt 0.690642 0.763535 +vt 0.690643 0.842174 +vt 0.715608 0.842174 +vt 0.718670 0.533849 +vt 0.687580 0.533849 +vt 0.750080 0.966151 +vt 0.781170 0.966151 +vt 0.746857 0.763535 +vt 0.721892 0.763535 +vt 0.721893 0.842174 +vt 0.746858 0.842174 +vt 0.749920 0.533849 +vt 0.718830 0.533849 +vt 0.781330 0.966151 +vt 0.812420 0.966151 +vt 0.778107 0.763535 +vt 0.753142 0.763535 +vt 0.753143 0.842174 +vt 0.778108 0.842174 +vt 0.781170 0.533849 +vt 0.750080 0.533849 +vt 0.812580 0.966151 +vt 0.843670 0.966151 +vt 0.809357 0.763535 +vt 0.784392 0.763535 +vt 0.784393 0.842174 +vt 0.809358 0.842174 +vt 0.812420 0.533849 +vt 0.781330 0.533849 +vt 0.843830 0.966151 +vt 0.874920 0.966151 +vt 0.840607 0.763535 +vt 0.815642 0.763535 +vt 0.815643 0.842174 +vt 0.840608 0.842174 +vt 0.843670 0.533849 +vt 0.812580 0.533849 +vt 0.875080 0.966151 +vt 0.906170 0.966151 +vt 0.871857 0.763535 +vt 0.846892 0.763535 +vt 0.846893 0.842174 +vt 0.871858 0.842174 +vt 0.874920 0.533849 +vt 0.843830 0.533849 +vt 0.906330 0.966151 +vt 0.937420 0.966151 +vt 0.903107 0.763535 +vt 0.878142 0.763535 +vt 0.878143 0.842174 +vt 0.903108 0.842174 +vt 0.028108 0.657826 +vt 0.003143 0.657826 +vt 0.003142 0.736465 +vt 0.028107 0.736465 +vt 0.965607 0.763535 +vt 0.940642 0.763535 +vt 0.940643 0.842174 +vt 0.965608 0.842174 +vt 0.028107 0.763535 +vt 0.003142 0.763535 +vt 0.903083 0.750000 +vt 0.878166 0.750000 +vt 0.934333 0.855709 +vt 0.909417 0.855709 +vt 0.996858 0.657826 +vt 0.971893 0.657826 +vt 0.971892 0.736465 +vt 0.996857 0.736465 +vt 0.996833 0.644291 +vt 0.971917 0.644291 +vt 0.996833 0.750000 +vt 0.971916 0.750000 +vt 0.996833 0.855709 +vt 0.971917 0.855709 +vt 0.965583 0.644291 +vt 0.940667 0.644291 +vt 0.028083 0.750000 +vt 0.003166 0.750000 +vt 0.965583 0.855709 +vt 0.940667 0.855709 +vt 0.090583 0.644291 +vt 0.065667 0.644291 +vt 0.090583 0.855709 +vt 0.065667 0.855709 +vt 0.121833 0.750000 +vt 0.096916 0.750000 +vt 0.153083 0.644291 +vt 0.128167 0.644291 +vt 0.121833 0.855709 +vt 0.096917 0.855709 +vt 0.153083 0.750000 +vt 0.128166 0.750000 +vt 0.184333 0.855709 +vt 0.159417 0.855709 +vt 0.184333 0.644291 +vt 0.159417 0.644291 +vt 0.215583 0.750000 +vt 0.190666 0.750000 +vt 0.246833 0.644291 +vt 0.221917 0.644291 +vt 0.246833 0.855709 +vt 0.221917 0.855709 +vt 0.278083 0.750000 +vt 0.253166 0.750000 +vt 0.309333 0.644291 +vt 0.284417 0.644291 +vt 0.309333 0.855709 +vt 0.284417 0.855709 +vt 0.340583 0.750000 +vt 0.315666 0.750000 +vt 0.371833 0.644291 +vt 0.346917 0.644291 +vt 0.340583 0.855709 +vt 0.315667 0.855709 +vt 0.371833 0.750000 +vt 0.346916 0.750000 +vt 0.403083 0.855709 +vt 0.378167 0.855709 +vt 0.403083 0.644291 +vt 0.378167 0.644291 +vt 0.434333 0.750000 +vt 0.409416 0.750000 +vt 0.465583 0.644291 +vt 0.440667 0.644291 +vt 0.465583 0.855709 +vt 0.440667 0.855709 +vt 0.496833 0.750000 +vt 0.471916 0.750000 +vt 0.528083 0.644291 +vt 0.503167 0.644291 +vt 0.528083 0.855709 +vt 0.503167 0.855709 +vt 0.559333 0.750000 +vt 0.534416 0.750000 +vt 0.590583 0.644291 +vt 0.565667 0.644291 +vt 0.559333 0.855709 +vt 0.534417 0.855709 +vt 0.590583 0.750000 +vt 0.565666 0.750000 +vt 0.621833 0.855709 +vt 0.596917 0.855709 +vt 0.621833 0.644291 +vt 0.596917 0.644291 +vt 0.653083 0.750000 +vt 0.628166 0.750000 +vt 0.684333 0.644291 +vt 0.659417 0.644291 +vt 0.684333 0.855709 +vt 0.659417 0.855709 +vt 0.715583 0.750000 +vt 0.690666 0.750000 +vt 0.746833 0.644291 +vt 0.721917 0.644291 +vt 0.746833 0.855709 +vt 0.721917 0.855709 +vt 0.778083 0.750000 +vt 0.753166 0.750000 +vt 0.809333 0.644291 +vt 0.784417 0.644291 +vt 0.778083 0.855709 +vt 0.753167 0.855709 +vt 0.809333 0.750000 +vt 0.784416 0.750000 +vt 0.840583 0.855709 +vt 0.815667 0.855709 +vt 0.840583 0.644291 +vt 0.815667 0.644291 +vt 0.871833 0.750000 +vt 0.846916 0.750000 +vt 0.903083 0.644291 +vt 0.878167 0.644291 +vt 0.934333 0.750000 +vt 0.909416 0.750000 +vt 0.903083 0.855709 +vt 0.878167 0.855709 +vt 0.059333 0.644291 +vt 0.034417 0.644291 +vt 0.965583 0.750000 +vt 0.940666 0.750000 +vt 0.059333 0.855709 +vt 0.034417 0.855709 +vt 0.971893 0.630756 +vt 0.996857 0.630756 +vt 0.871833 0.855709 +vt 0.846917 0.855709 +vt 0.809333 0.855709 +vt 0.784417 0.855709 +vt 0.715583 0.855709 +vt 0.690667 0.855709 +vt 0.653083 0.855709 +vt 0.628167 0.855709 +vt 0.590583 0.855709 +vt 0.565667 0.855709 +vt 0.496833 0.855709 +vt 0.471917 0.855709 +vt 0.434333 0.855709 +vt 0.409417 0.855709 +vt 0.371833 0.855709 +vt 0.346917 0.855709 +vt 0.278083 0.855709 +vt 0.253167 0.855709 +vt 0.215583 0.855709 +vt 0.190667 0.855709 +vt 0.153083 0.855709 +vt 0.128167 0.855709 +vt 0.059333 0.750000 +vt 0.034416 0.750000 +vt 0.840583 0.750000 +vt 0.815666 0.750000 +vt 0.746833 0.750000 +vt 0.721916 0.750000 +vt 0.684333 0.750000 +vt 0.659416 0.750000 +vt 0.621833 0.750000 +vt 0.596916 0.750000 +vt 0.528083 0.750000 +vt 0.503166 0.750000 +vt 0.465583 0.750000 +vt 0.440666 0.750000 +vt 0.403083 0.750000 +vt 0.378166 0.750000 +vt 0.309333 0.750000 +vt 0.284416 0.750000 +vt 0.246833 0.750000 +vt 0.221916 0.750000 +vt 0.184333 0.750000 +vt 0.159416 0.750000 +vt 0.090583 0.750000 +vt 0.065666 0.750000 +vt 0.028083 0.644291 +vt 0.003167 0.644291 +vt 0.871833 0.644291 +vt 0.846917 0.644291 +vt 0.778083 0.644291 +vt 0.753167 0.644291 +vt 0.715583 0.644291 +vt 0.690667 0.644291 +vt 0.653083 0.644291 +vt 0.628167 0.644291 +vt 0.559333 0.644291 +vt 0.534417 0.644291 +vt 0.496833 0.644291 +vt 0.471917 0.644291 +vt 0.434333 0.644291 +vt 0.409417 0.644291 +vt 0.340583 0.644291 +vt 0.315667 0.644291 +vt 0.278083 0.644291 +vt 0.253167 0.644291 +vt 0.215583 0.644291 +vt 0.190667 0.644291 +vt 0.121833 0.644291 +vt 0.096917 0.644291 +vt 0.000080 0.533849 +vt 0.000002 0.538461 +vt 0.001573 0.538522 +vt -0.003083 0.961658 +vt 0.000030 0.961538 +vt 0.968771 0.538582 +vt 0.971816 0.961418 +vt 0.968711 0.961418 +vt 0.937521 0.538582 +vt 0.937461 0.961418 +vt 0.906271 0.538582 +vt 0.909316 0.961418 +vt 0.906211 0.961418 +vt 0.875021 0.538582 +vt 0.874961 0.961418 +vt 0.843771 0.538582 +vt 0.846816 0.961418 +vt 0.843711 0.961418 +vt 0.812461 0.961418 +vt 0.781271 0.538582 +vt 0.784316 0.961418 +vt 0.781211 0.961418 +vt 0.750021 0.538582 +vt 0.749961 0.961418 +vt 0.718771 0.538582 +vt 0.721816 0.961418 +vt 0.718711 0.961418 +vt 0.687521 0.538582 +vt 0.687461 0.961418 +vt 0.656271 0.538582 +vt 0.659316 0.961418 +vt 0.656211 0.961418 +vt 0.625021 0.538582 +vt 0.624961 0.961418 +vt 0.593771 0.538582 +vt 0.596816 0.961418 +vt 0.593711 0.961418 +vt 0.562521 0.538582 +vt 0.562461 0.961418 +vt 0.531271 0.538582 +vt 0.534316 0.961418 +vt 0.531211 0.961418 +vt 0.500011 0.538582 +vt 0.499980 0.961418 +vt 0.468771 0.538582 +vt 0.471816 0.961418 +vt 0.468711 0.961418 +vt 0.437521 0.538582 +vt 0.437461 0.961418 +vt 0.406271 0.538582 +vt 0.409316 0.961418 +vt 0.406211 0.961418 +vt 0.375021 0.538582 +vt 0.374961 0.961418 +vt 0.343771 0.538582 +vt 0.346816 0.961418 +vt 0.343711 0.961418 +vt 0.312521 0.538582 +vt 0.312461 0.961418 +vt 0.281271 0.538582 +vt 0.284316 0.961418 +vt 0.281211 0.961418 +vt 0.250021 0.538582 +vt 0.249961 0.961418 +vt 0.218771 0.538582 +vt 0.221816 0.961418 +vt 0.218711 0.961418 +vt 0.187521 0.538582 +vt 0.187461 0.961418 +vt 0.156271 0.538582 +vt 0.159316 0.961418 +vt 0.156211 0.961418 +vt 0.125021 0.538582 +vt 0.124961 0.961418 +vt 0.093771 0.538582 +vt 0.096816 0.961418 +vt 0.093711 0.961418 +vt 0.062521 0.538582 +vt 0.062461 0.961418 +vt 0.031170 0.533849 +vt 0.031271 0.538582 +vt 0.034316 0.961418 +vt 0.031211 0.961418 +vt 0.906250 0.630756 +vt 0.906250 0.644291 +vt 0.687500 0.630756 +vt 0.687500 0.644291 +vt 0.468750 0.630756 +vt 0.468750 0.644291 +vt 0.250000 0.630756 +vt 0.250000 0.644291 +vt 0.062500 0.630756 +vt 0.062500 0.644291 +vt 0.718750 0.736465 +vt 0.718750 0.750000 +vt 0.500000 0.736465 +vt 0.500000 0.750000 +vt 0.281250 0.736465 +vt 0.281250 0.750000 +vt 0.031250 0.763535 +vt 0.031250 0.750000 +vt 0.750000 0.842174 +vt 0.750000 0.855709 +vt 0.531250 0.842174 +vt 0.531250 0.855709 +vt 0.312500 0.842174 +vt 0.312500 0.855709 +vt 0.093750 0.842174 +vt 0.093750 0.855709 +vt 0.001571 0.842212 +vt 0.000000 0.842251 +vt 0.000000 0.855709 +vt 0.001584 0.855709 +vt 0.843750 0.630756 +vt 0.843750 0.644291 +vt 0.812500 0.644291 +vt 0.750000 0.630756 +vt 0.750000 0.644291 +vt 0.625000 0.630756 +vt 0.625000 0.644291 +vt 0.593750 0.630756 +vt 0.593750 0.644291 +vt 0.531250 0.630756 +vt 0.531250 0.644291 +vt 0.406250 0.630756 +vt 0.406250 0.644291 +vt 0.375000 0.630756 +vt 0.375000 0.644291 +vt 0.312500 0.630756 +vt 0.312500 0.644291 +vt 0.187500 0.630756 +vt 0.187500 0.644291 +vt 0.156250 0.630756 +vt 0.156250 0.644291 +vt 0.093750 0.630756 +vt 0.093750 0.644291 +vt 0.968750 0.657826 +vt 0.968750 0.644291 +vt 0.001572 0.630786 +vt 0.000000 0.630817 +vt 0.000000 0.644291 +vt 0.001584 0.644291 +vt 0.875000 0.736465 +vt 0.875000 0.750000 +vt 0.843750 0.736465 +vt 0.843750 0.750000 +vt 0.781250 0.736465 +vt 0.781250 0.750000 +vt 0.656250 0.736465 +vt 0.656250 0.750000 +vt 0.625000 0.736465 +vt 0.625000 0.750000 +vt 0.562500 0.736465 +vt 0.562500 0.750000 +vt 0.437500 0.736465 +vt 0.437500 0.750000 +vt 0.406250 0.736465 +vt 0.406250 0.750000 +vt 0.343750 0.736465 +vt 0.343750 0.750000 +vt 0.218750 0.736465 +vt 0.218750 0.750000 +vt 0.187500 0.736465 +vt 0.187500 0.750000 +vt 0.125000 0.736465 +vt 0.125000 0.750000 +vt 0.937500 0.763535 +vt 0.937500 0.750000 +vt 0.968750 0.763535 +vt 0.968750 0.750000 +vt 0.906250 0.842174 +vt 0.906250 0.855709 +vt 0.875000 0.842174 +vt 0.875000 0.855709 +vt 0.812500 0.842174 +vt 0.812500 0.855709 +vt 0.687500 0.842174 +vt 0.687500 0.855709 +vt 0.656250 0.842174 +vt 0.656250 0.855709 +vt 0.593750 0.842174 +vt 0.593750 0.855709 +vt 0.468750 0.842174 +vt 0.468750 0.855709 +vt 0.437500 0.842174 +vt 0.437500 0.855709 +vt 0.375000 0.842174 +vt 0.375000 0.855709 +vt 0.250000 0.842174 +vt 0.250000 0.855709 +vt 0.218750 0.842174 +vt 0.218750 0.855709 +vt 0.156250 0.842174 +vt 0.156250 0.855709 +vt 0.062500 0.842174 +vt 0.062500 0.855709 +vt 0.937500 0.869244 +vt 0.937500 0.855709 +vt 0.968750 0.869244 +vt 0.968750 0.855709 +vt 0.031250 0.869244 +vt 0.031250 0.855709 +vt 0.125000 0.842174 +vt 0.125000 0.855709 +vt 0.187500 0.842174 +vt 0.187500 0.855709 +vt 0.281250 0.842174 +vt 0.281250 0.855709 +vt 0.343750 0.842174 +vt 0.343750 0.855709 +vt 0.406250 0.842174 +vt 0.406250 0.855709 +vt 0.500000 0.842174 +vt 0.500000 0.855709 +vt 0.562500 0.842174 +vt 0.562500 0.855709 +vt 0.625000 0.842174 +vt 0.625000 0.855709 +vt 0.718750 0.842174 +vt 0.718750 0.855709 +vt 0.781250 0.842174 +vt 0.781250 0.855709 +vt 0.843750 0.842174 +vt 0.843750 0.855709 +vt 0.001571 0.736499 +vt 0.000000 0.736533 +vt 0.000000 0.750000 +vt 0.001583 0.750000 +vt 0.062500 0.736465 +vt 0.062500 0.750000 +vt 0.093750 0.736465 +vt 0.093750 0.750000 +vt 0.156250 0.736465 +vt 0.156250 0.750000 +vt 0.250000 0.736465 +vt 0.250000 0.750000 +vt 0.312500 0.736465 +vt 0.312500 0.750000 +vt 0.375000 0.736465 +vt 0.375000 0.750000 +vt 0.468750 0.736465 +vt 0.468750 0.750000 +vt 0.531250 0.736465 +vt 0.531250 0.750000 +vt 0.593750 0.736465 +vt 0.593750 0.750000 +vt 0.687500 0.736465 +vt 0.687500 0.750000 +vt 0.750000 0.736465 +vt 0.750000 0.750000 +vt 0.812500 0.736465 +vt 0.812500 0.750000 +vt 0.906250 0.736465 +vt 0.906250 0.750000 +vt 0.937500 0.657826 +vt 0.937500 0.644291 +vt 0.031250 0.657826 +vt 0.031250 0.644291 +vt 0.125000 0.630756 +vt 0.125000 0.644291 +vt 0.218750 0.630756 +vt 0.218750 0.644291 +vt 0.281250 0.630756 +vt 0.281250 0.644291 +vt 0.343750 0.630756 +vt 0.343750 0.644291 +vt 0.437500 0.630756 +vt 0.437500 0.644291 +vt 0.500000 0.630756 +vt 0.500000 0.644291 +vt 0.562500 0.630756 +vt 0.562500 0.644291 +vt 0.656250 0.630756 +vt 0.656250 0.644291 +vt 0.718750 0.630756 +vt 0.718750 0.644291 +vt 0.781250 0.630756 +vt 0.781250 0.644291 +vt 0.875000 0.630756 +vt 0.875000 0.644291 +vt 0.000000 0.657749 +vt 0.001571 0.657788 +vt 0.968750 0.630756 +vt 0.000000 0.763467 +vt 0.001571 0.763501 +vt 0.968750 0.736465 +vt 0.000000 0.869183 +vt 0.001572 0.869214 +vt 0.968750 0.842174 +vt 0.937500 0.630756 +vt 0.937500 0.736465 +vt 0.937500 0.842174 +vt 0.062500 0.657826 +vt 0.031250 0.630756 +vt 0.062500 0.763535 +vt 0.031250 0.736465 +vt 0.062500 0.869244 +vt 0.031250 0.842174 +vt 0.093750 0.657826 +vt 0.093750 0.763535 +vt 0.093750 0.869244 +vt 0.125000 0.657826 +vt 0.125000 0.763535 +vt 0.125000 0.869244 +vt 0.156250 0.657826 +vt 0.156250 0.763535 +vt 0.156250 0.869244 +vt 0.187500 0.657826 +vt 0.187500 0.763535 +vt 0.187500 0.869244 +vt 0.218750 0.657826 +vt 0.218750 0.763535 +vt 0.218750 0.869244 +vt 0.250000 0.657826 +vt 0.250000 0.763535 +vt 0.250000 0.869244 +vt 0.281250 0.657826 +vt 0.281250 0.763535 +vt 0.281250 0.869244 +vt 0.312500 0.657826 +vt 0.312500 0.763535 +vt 0.312500 0.869244 +vt 0.343750 0.657826 +vt 0.343750 0.763535 +vt 0.343750 0.869244 +vt 0.375000 0.657826 +vt 0.375000 0.763535 +vt 0.375000 0.869244 +vt 0.406250 0.657826 +vt 0.406250 0.763535 +vt 0.406250 0.869244 +vt 0.437500 0.657826 +vt 0.437500 0.763535 +vt 0.437500 0.869244 +vt 0.468750 0.657826 +vt 0.468750 0.763535 +vt 0.468750 0.869244 +vt 0.500000 0.657826 +vt 0.500000 0.763535 +vt 0.500000 0.869244 +vt 0.531250 0.657826 +vt 0.531250 0.763535 +vt 0.531250 0.869244 +vt 0.562500 0.657826 +vt 0.562500 0.763535 +vt 0.562500 0.869244 +vt 0.593750 0.657826 +vt 0.593750 0.763535 +vt 0.593750 0.869244 +vt 0.625000 0.657826 +vt 0.625000 0.763535 +vt 0.625000 0.869244 +vt 0.656250 0.657826 +vt 0.656250 0.763535 +vt 0.656250 0.869244 +vt 0.687500 0.657826 +vt 0.687500 0.763535 +vt 0.687500 0.869244 +vt 0.718750 0.657826 +vt 0.718750 0.763535 +vt 0.718750 0.869244 +vt 0.750000 0.657826 +vt 0.750000 0.763535 +vt 0.750000 0.869244 +vt 0.781250 0.657826 +vt 0.781250 0.763535 +vt 0.781250 0.869244 +vt 0.812500 0.657826 +vt 0.812500 0.763535 +vt 0.812500 0.869244 +vt 0.843750 0.657826 +vt 0.843750 0.763535 +vt 0.843750 0.869244 +vt 0.875000 0.657826 +vt 0.875000 0.763535 +vt 0.875000 0.869244 +vt 0.906250 0.657826 +vt 0.906250 0.763535 +vt 0.906250 0.869244 +vt 0.031250 0.538582 +vt 0.001572 0.538953 +vt 0.000000 0.657826 +vt 0.000000 0.735604 +vt 0.001571 0.736035 +vt 0.968750 0.538582 +vt 0.001571 0.763965 +vt 0.000000 0.960677 +vt 0.001572 0.961047 +vt 0.906250 0.538582 +vt 0.843750 0.538582 +vt 0.781250 0.538582 +vt 0.718750 0.538582 +vt 0.656250 0.538582 +vt 0.593750 0.538582 +vt 0.531250 0.538582 +vt 0.468750 0.538582 +vt 0.406250 0.538582 +vt 0.343750 0.538582 +vt 0.281250 0.538582 +vt 0.218750 0.538582 +vt 0.156250 0.538582 +vt 0.093750 0.538582 +vt 0.000000 0.842174 +vt 0.000000 0.764396 +vt 0.000000 0.539323 +vt 0.270141 0.423938 +vt 0.250000 0.428745 +vt 0.284321 0.422542 +vt 0.317378 0.412665 +vt 0.315041 0.413223 +vt 0.397602 0.348624 +vt 0.427342 0.285275 +vt 0.415193 0.181575 +vt 0.431185 0.213960 +vt 0.399616 0.150030 +vt 0.285193 0.073075 +vt 0.320132 0.080687 +vt 0.250000 0.065407 +vt 0.149611 0.099758 +vt 0.178149 0.076536 +vt 0.122125 0.122125 +vt 0.093492 0.145425 +vt 0.072621 0.250000 +vt 0.072272 0.214648 +vt 0.072969 0.285214 +vt 0.125553 0.374447 +vt 0.097067 0.352187 +vt 0.180626 0.417484 +vt 0.283943 0.420644 +vt 0.190922 0.425529 +vt 0.212674 0.437653 +vt 0.207896 0.438793 +vt 0.195343 0.428984 +vt 0.190402 0.427900 +vt 0.227322 0.434157 +vt 0.226937 0.435912 +vt 0.223307 0.435116 +vt 0.073250 0.313691 +vt 0.073343 0.323174 +vt 0.073290 0.317774 +vt 0.071661 0.314476 +vt 0.086027 0.343559 +vt 0.073448 0.333729 +vt 0.090369 0.346952 +vt 0.088226 0.348011 +vt 0.089655 0.148547 +vt 0.071893 0.176226 +vt 0.071763 0.163107 +vt 0.083120 0.153865 +vt 0.086449 0.146994 +vt 0.071945 0.181528 +vt 0.070141 0.180654 +vt 0.071901 0.177022 +vt 0.225335 0.060033 +vt 0.211619 0.057044 +vt 0.219594 0.058782 +vt 0.224749 0.057560 +vt 0.191898 0.065347 +vt 0.204111 0.055409 +vt 0.188761 0.067900 +vt 0.188354 0.066187 +vt 0.351484 0.087518 +vt 0.352700 0.085962 +vt 0.355930 0.088487 +vt 0.437615 0.263394 +vt 0.443903 0.250000 +vt 0.440159 0.257974 +vt 0.440168 0.263390 +vt 0.440117 0.232049 +vt 0.446378 0.244728 +vt 0.437126 0.225992 +vt 0.440107 0.225987 +vt 0.353806 0.407296 +vt 0.351586 0.404501 +vt 0.354653 0.406624 +vt 0.379714 0.386727 +vt 0.373865 0.399184 +vt 0.359793 0.402543 +vt 0.381954 0.381954 +vt 0.381764 0.382359 +vt 0.383099 0.384039 +vt 0.907775 0.970185 +vt 0.905764 0.970247 +vt 0.876319 0.974036 +vt 0.876319 1.000000 +vt 0.983279 1.000000 +vt 0.983279 0.974608 +vt 0.963759 0.971378 +vt 0.946423 0.970185 +vt 0.934543 0.970185 +vt 0.750000 0.452782 +vt 0.710439 0.448886 +vt 0.672399 0.437346 +vt 0.637341 0.418607 +vt 0.606612 0.393389 +vt 0.581393 0.362660 +vt 0.562654 0.327601 +vt 0.551114 0.289561 +vt 0.547218 0.250000 +vt 0.551114 0.210439 +vt 0.562654 0.172399 +vt 0.581393 0.137341 +vt 0.606611 0.106612 +vt 0.637340 0.081393 +vt 0.672399 0.062654 +vt 0.710439 0.051114 +vt 0.750000 0.047218 +vt 0.789561 0.051114 +vt 0.827601 0.062654 +vt 0.862660 0.081393 +vt 0.893388 0.106612 +vt 0.918607 0.137340 +vt 0.937346 0.172399 +vt 0.948886 0.210439 +vt 0.952782 0.250000 +vt 0.948886 0.289561 +vt 0.937346 0.327601 +vt 0.918607 0.362660 +vt 0.893388 0.393388 +vt 0.862660 0.418607 +vt 0.827601 0.437346 +vt 0.789561 0.448886 +vt 0.375000 0.055549 +vt 0.375000 0.250000 +vt 0.625000 0.250000 +vt 0.625000 0.055549 +vt 0.375000 0.000000 +vt 0.625000 0.000000 +vt 0.375000 0.055549 +vt 0.375000 0.250000 +vt 0.625000 0.250000 +vt 0.625000 0.055549 +vt 0.375000 0.000000 +vt 0.625000 0.000000 +vt 0.375000 0.055549 +vt 0.375000 0.250000 +vt 0.625000 0.250000 +vt 0.625000 0.055549 +vt 0.375000 0.000000 +vt 0.625000 0.000000 +vt 0.375000 0.055549 +vt 0.375000 0.250000 +vt 0.625000 0.250000 +vt 0.625000 0.055549 +vt 0.375000 0.000000 +vt 0.625000 0.000000 +vt 0.375000 0.055549 +vt 0.375000 0.250000 +vt 0.625000 0.250000 +vt 0.625000 0.055549 +vt 0.375000 0.000000 +vt 0.625000 0.000000 +vt 0.375000 0.055549 +vt 0.375000 0.250000 +vt 0.625000 0.250000 +vt 0.625000 0.055549 +vt 0.375000 0.000000 +vt 0.625000 0.000000 +vt 0.375000 0.055549 +vt 0.375000 0.250000 +vt 0.625000 0.250000 +vt 0.625000 0.055549 +vt 0.375000 0.000000 +vt 0.625000 0.000000 +vt 0.412335 0.317241 +vt 0.410609 0.320917 +vt 0.412531 0.317322 +vt 0.412958 0.315915 +vt 0.591195 0.984481 +vt 0.399843 0.984481 +vt 0.399843 0.971155 +vt 0.375000 0.971255 +vt 0.375000 1.000000 +vt 0.625000 1.000000 +vt 0.625000 0.971315 +vt 0.591195 0.971224 +vt 0.153745 0.750000 +vt 0.154903 0.746407 +vt 0.141327 0.746407 +vt 0.167165 0.694451 +vt 0.125000 0.694451 +vt 0.125000 0.750000 +vt 0.833163 0.694451 +vt 0.858389 0.745144 +vt 0.844748 0.745144 +vt 0.846315 0.750000 +vt 0.875000 0.750000 +vt 0.875000 0.694451 +vt 0.600410 0.984481 +vt 0.408190 0.984481 +vt 0.408190 0.971582 +vt 0.375000 0.971619 +vt 0.375000 1.000000 +vt 0.625000 1.000000 +vt 0.625000 0.971733 +vt 0.600410 0.971596 +vt 0.153381 0.750000 +vt 0.154928 0.745218 +vt 0.141595 0.745218 +vt 0.166849 0.694451 +vt 0.125000 0.694451 +vt 0.125000 0.750000 +vt 0.832813 0.694451 +vt 0.858683 0.746455 +vt 0.845591 0.746455 +vt 0.846733 0.750000 +vt 0.875000 0.750000 +vt 0.875000 0.694451 +vt 0.573964 0.984481 +vt 0.473116 0.981439 +vt 0.401976 0.984481 +vt 0.401976 0.972243 +vt 0.375000 0.972387 +vt 0.375000 1.000000 +vt 0.625000 1.000000 +vt 0.625000 0.972512 +vt 0.573964 0.972443 +vt 0.152613 0.750000 +vt 0.153908 0.745990 +vt 0.141422 0.745990 +vt 0.166976 0.694451 +vt 0.125000 0.694451 +vt 0.125000 0.750000 +vt 0.833717 0.694451 +vt 0.857878 0.742873 +vt 0.845202 0.742873 +vt 0.847513 0.750000 +vt 0.875000 0.750000 +vt 0.875000 0.694451 +vt 0.589589 0.984481 +vt 0.399342 0.984481 +vt 0.399342 0.972688 +vt 0.375000 0.972740 +vt 0.375000 1.000000 +vt 0.625000 1.000000 +vt 0.625000 0.972784 +vt 0.589589 0.972622 +vt 0.152260 0.750000 +vt 0.153402 0.746478 +vt 0.141312 0.746478 +vt 0.167183 0.694451 +vt 0.125000 0.694451 +vt 0.125000 0.750000 +vt 0.833224 0.694451 +vt 0.858337 0.744916 +vt 0.846141 0.744916 +vt 0.847784 0.750000 +vt 0.875000 0.750000 +vt 0.875000 0.694451 +vt 0.586096 0.984481 +vt 0.402404 0.984481 +vt 0.402404 0.972417 +vt 0.375000 0.972577 +vt 0.375000 1.000000 +vt 0.625000 1.000000 +vt 0.625000 0.972524 +vt 0.586097 0.972492 +vt 0.152423 0.750000 +vt 0.153697 0.746050 +vt 0.141408 0.746050 +vt 0.167076 0.694451 +vt 0.125000 0.694451 +vt 0.125000 0.750000 +vt 0.833377 0.694451 +vt 0.858220 0.744394 +vt 0.845706 0.744394 +vt 0.847524 0.750000 +vt 0.875000 0.750000 +vt 0.875000 0.694451 +vt 0.588803 0.984481 +vt 0.415522 0.984481 +vt 0.415522 0.972094 +vt 0.375000 0.972228 +vt 0.375000 1.000000 +vt 0.625000 1.000000 +vt 0.625000 0.972004 +vt 0.588803 0.971881 +vt 0.152772 0.750000 +vt 0.154703 0.744036 +vt 0.141861 0.744036 +vt 0.166470 0.694451 +vt 0.125000 0.694451 +vt 0.125000 0.750000 +vt 0.833186 0.694451 +vt 0.858332 0.744893 +vt 0.845352 0.744893 +vt 0.847004 0.750000 +vt 0.875000 0.750000 +vt 0.875000 0.694451 +vt 0.573901 0.984481 +vt 0.474247 0.981473 +vt 0.403890 0.984481 +vt 0.403890 0.971415 +vt 0.375000 0.971431 +vt 0.375000 1.000000 +vt 0.625000 1.000000 +vt 0.625000 0.971341 +vt 0.617771 0.971297 +vt 0.573901 0.971321 +vt 0.153569 0.750000 +vt 0.154943 0.745707 +vt 0.141484 0.745707 +vt 0.166900 0.694451 +vt 0.125000 0.694451 +vt 0.125000 0.750000 +vt 0.833722 0.694451 +vt 0.857876 0.742861 +vt 0.844047 0.742861 +vt 0.846341 0.750000 +vt 0.875000 0.750000 +vt 0.875000 0.694451 +vt 1.000000 1.000000 +vt 1.000000 0.977747 +vt 0.995887 0.976695 +vt 0.986735 0.975180 +vt 0.986735 1.000000 +vt 0.907775 0.970185 +vt 0.905764 0.970247 +vt 0.876319 0.974036 +vt 0.876319 1.000000 +vt 0.983279 1.000000 +vt 0.983279 0.974608 +vt 0.963759 0.971378 +vt 0.946423 0.970185 +vt 0.934543 0.970185 +vt 0.869255 1.000000 +vt 0.869255 0.975489 +vt 0.857143 0.978177 +vt 0.857143 1.000000 +vt 0.719162 0.977782 +vt 0.714286 0.979047 +vt 0.714286 1.000000 +vt 0.726537 1.000000 +vt 0.726537 0.976532 +vt 0.845621 1.000000 +vt 0.845621 0.975664 +vt 0.841207 0.974701 +vt 0.810380 0.970860 +vt 0.784754 0.970185 +vt 0.781354 0.970185 +vt 0.780127 0.970185 +vt 0.751788 0.972253 +vt 0.731550 0.975683 +vt 0.731550 1.000000 +vt 0.841581 1.000000 +vt 0.841581 0.974783 +vt 0.589608 1.000000 +vt 0.696791 1.000000 +vt 0.696791 0.975918 +vt 0.685556 0.973908 +vt 0.655317 0.971403 +vt 0.625862 0.971884 +vt 0.594829 0.975449 +vt 0.589608 0.976540 +vt 0.571429 1.000000 +vt 0.584200 1.000000 +vt 0.584200 0.977671 +vt 0.571429 0.980340 +vt 0.702447 0.976930 +vt 0.702447 1.000000 +vt 0.446758 1.000000 +vt 0.554851 1.000000 +vt 0.554851 0.977003 +vt 0.527986 0.973287 +vt 0.498048 0.972073 +vt 0.467892 0.973849 +vt 0.446758 0.977145 +vt 0.428571 1.000000 +vt 0.441838 1.000000 +vt 0.441838 0.977913 +vt 0.435005 0.978979 +vt 0.428571 0.980569 +vt 0.558661 0.977531 +vt 0.558661 1.000000 +vt 0.560149 0.977736 +vt 0.415389 0.978036 +vt 0.415389 1.000000 +vt 0.309169 0.975385 +vt 0.305027 0.976197 +vt 0.305027 1.000000 +vt 0.412002 1.000000 +vt 0.412002 0.977386 +vt 0.400548 0.975185 +vt 0.369744 0.972202 +vt 0.340075 0.972264 +vt 0.297973 1.000000 +vt 0.297973 0.977580 +vt 0.285714 0.979982 +vt 0.285714 1.000000 +vt 0.416059 0.357087 +vt 0.418109 0.358843 +vt 0.442688 0.377519 +vt 0.478382 0.221132 +vt 0.445992 0.234885 +vt 0.443039 0.236044 +vt 0.438297 0.257223 +vt 0.430581 0.291701 +vt 0.423064 0.325372 +vt 0.437640 0.399638 +vt 0.441377 0.383261 +vt 0.433246 0.393209 +vt 0.184488 0.071792 +vt 0.207513 0.071256 +vt 0.245500 0.070956 +vt 0.283013 0.071276 +vt 0.312784 0.071960 +vt 0.313923 0.069442 +vt 0.329965 0.033767 +vt 0.172381 0.033767 +vt 0.183417 0.068541 +vt 0.335519 0.033767 +vt 0.365740 0.048324 +vt 0.354132 0.033767 +vt 0.432525 0.191471 +vt 0.436311 0.189957 +vt 0.468080 0.176654 +vt 0.370656 0.054488 +vt 0.355136 0.088999 +vt 0.353492 0.092633 +vt 0.355564 0.095101 +vt 0.380082 0.124766 +vt 0.403170 0.153489 +vt 0.426641 0.183685 +vt 0.473222 0.183101 +vt 0.480008 0.214008 +vt 0.483983 0.196595 +vt 0.022842 0.200525 +vt 0.027160 0.182623 +vt 0.016017 0.196595 +vt 0.136101 0.099156 +vt 0.142886 0.090878 +vt 0.142141 0.088637 +vt 0.130807 0.052653 +vt 0.033572 0.174582 +vt 0.061005 0.185471 +vt 0.064758 0.186857 +vt 0.065503 0.185941 +vt 0.089426 0.156450 +vt 0.112362 0.128229 +vt 0.145868 0.033767 +vt 0.133885 0.048793 +vt 0.165209 0.033767 +vt 0.274063 0.977207 +vt 0.274063 1.000000 +vt 0.274730 0.977308 +vt 0.183477 0.972119 +vt 0.159634 0.975514 +vt 0.159634 1.000000 +vt 0.270291 1.000000 +vt 0.270291 0.976634 +vt 0.242560 0.972419 +vt 0.212961 0.970801 +vt 0.156216 1.000000 +vt 0.156216 0.976001 +vt 0.151695 0.976645 +vt 0.142857 0.978718 +vt 0.142857 1.000000 +vt 0.129492 0.975976 +vt 0.129491 1.000000 +vt 0.000000 0.977747 +vt 0.000000 1.000000 +vt 0.013338 1.000000 +vt 0.013338 0.975309 +vt 0.018035 0.974450 +vt 0.018035 1.000000 +vt 0.124878 1.000000 +vt 0.124878 0.975029 +vt 0.117760 0.973569 +vt 0.087492 0.970216 +vt 0.084969 0.970185 +vt 0.058667 0.970185 +vt 0.055005 0.970185 +vt 0.028975 0.972450 +vt 0.019797 0.213154 +vt 0.051909 0.224916 +vt 0.021021 0.218517 +vt 0.056918 0.375792 +vt 0.084307 0.348069 +vt 0.086020 0.346400 +vt 0.079806 0.322620 +vt 0.070975 0.288475 +vt 0.062090 0.254257 +vt 0.054327 0.225559 +vt 0.250000 0.490000 +vt 0.267423 0.481609 +vt 0.232480 0.481563 +vt 0.274590 0.439780 +vt 0.271963 0.479423 +vt 0.412452 0.411767 +vt 0.390902 0.389016 +vt 0.387945 0.385993 +vt 0.357919 0.399840 +vt 0.325828 0.414536 +vt 0.293364 0.429104 +vt 0.274738 0.437263 +vt 0.062360 0.399638 +vt 0.079916 0.408092 +vt 0.058027 0.380651 +vt 0.112684 0.384040 +vt 0.085976 0.411010 +vt 0.226311 0.478592 +vt 0.228861 0.439953 +vt 0.229066 0.436538 +vt 0.220119 0.432677 +vt 0.186405 0.417424 +vt 0.153938 0.401805 +vt 0.120154 0.384464 +vt 0.115045 0.381715 +vt 0.421730 0.407299 +vt 0.307648 0.389175 +vt 0.279042 0.396002 +vt 0.279079 0.396192 +vt 0.307723 0.389356 +vt 0.389114 0.307623 +vt 0.376489 0.334517 +vt 0.376651 0.334626 +vt 0.389293 0.307697 +vt 0.402170 0.280269 +vt 0.401975 0.280230 +vt 0.378724 0.163989 +vt 0.378562 0.164098 +vt 0.391947 0.191204 +vt 0.392126 0.191130 +vt 0.280294 0.097703 +vt 0.310369 0.104256 +vt 0.310444 0.104075 +vt 0.280331 0.097514 +vt 0.139971 0.139972 +vt 0.163622 0.120726 +vt 0.163514 0.120565 +vt 0.139834 0.139834 +vt 0.097536 0.250000 +vt 0.097729 0.250000 +vt 0.097430 0.219652 +vt 0.097236 0.219613 +vt 0.166562 0.374875 +vt 0.166669 0.374714 +vt 0.143440 0.356561 +vt 0.143302 0.356698 +vt 0.250000 0.402933 +vt 0.250000 0.403132 +vt 0.190597 0.393412 +vt 0.190520 0.393597 +vt 0.196887 0.398327 +vt 0.196841 0.398536 +vt 0.233294 0.406920 +vt 0.233248 0.407130 +vt 0.098028 0.280229 +vt 0.097835 0.280268 +vt 0.098236 0.301349 +vt 0.098044 0.301444 +vt 0.119048 0.337500 +vt 0.115352 0.334612 +vt 0.115160 0.334707 +vt 0.118879 0.337613 +vt 0.115335 0.160020 +vt 0.115167 0.159907 +vt 0.114589 0.160627 +vt 0.114397 0.160534 +vt 0.097174 0.193751 +vt 0.096980 0.193657 +vt 0.250000 0.091103 +vt 0.250000 0.090905 +vt 0.231758 0.087128 +vt 0.231708 0.086920 +vt 0.188176 0.100745 +vt 0.195193 0.095035 +vt 0.195143 0.094826 +vt 0.188099 0.100558 +vt 0.364605 0.135395 +vt 0.364460 0.135540 +vt 0.363417 0.132989 +vt 0.363285 0.133159 +vt 0.334323 0.109475 +vt 0.334455 0.109306 +vt 0.410071 0.263439 +vt 0.409858 0.263439 +vt 0.405885 0.218993 +vt 0.405688 0.219032 +vt 0.409147 0.226037 +vt 0.409363 0.226037 +vt 0.334490 0.382968 +vt 0.334358 0.382801 +vt 0.364335 0.360405 +vt 0.364469 0.360574 +vt 0.879125 0.952094 +vt 0.879125 1.000000 +vt 0.980478 1.000000 +vt 0.980478 0.952094 +vt 0.963724 0.952094 +vt 0.934599 0.952094 +vt 0.905911 0.952094 +vt 0.734152 0.952094 +vt 0.734153 1.000000 +vt 0.838646 1.000000 +vt 0.838646 0.952094 +vt 0.810748 0.952094 +vt 0.781767 0.952094 +vt 0.752247 0.952094 +vt 0.592608 0.952094 +vt 0.592608 1.000000 +vt 0.693652 1.000000 +vt 0.693652 0.952094 +vt 0.686031 0.952094 +vt 0.655756 0.952094 +vt 0.626267 0.952094 +vt 0.595198 0.952094 +vt 0.449715 0.952094 +vt 0.449715 1.000000 +vt 0.552112 1.000000 +vt 0.552112 0.952094 +vt 0.528197 0.952094 +vt 0.498171 0.952094 +vt 0.467927 0.952094 +vt 0.307849 0.952094 +vt 0.307849 1.000000 +vt 0.409220 1.000000 +vt 0.409220 0.952094 +vt 0.400396 0.952094 +vt 0.369515 0.952094 +vt 0.339771 0.952094 +vt 0.308788 0.952094 +vt 0.389345 0.328970 +vt 0.443640 0.373348 +vt 0.477538 0.224832 +vt 0.346726 0.253555 +vt 0.349989 0.267876 +vt 0.351188 0.273135 +vt 0.334909 0.201692 +vt 0.465228 0.173077 +vt 0.373383 0.057907 +vt 0.315627 0.177817 +vt 0.331177 0.185313 +vt 0.148795 0.273060 +vt 0.153088 0.254285 +vt 0.089612 0.238977 +vt 0.186333 0.176851 +vt 0.128278 0.055824 +vt 0.036137 0.171366 +vt 0.164944 0.202428 +vt 0.168871 0.185252 +vt 0.267712 0.154721 +vt 0.325971 0.033767 +vt 0.176691 0.033767 +vt 0.234265 0.153790 +vt 0.250039 0.146201 +vt 0.162409 0.952094 +vt 0.162409 1.000000 +vt 0.267372 1.000000 +vt 0.267372 0.952094 +vt 0.242106 0.952094 +vt 0.212500 0.952094 +vt 0.183011 0.952094 +vt 0.028760 0.952094 +vt 0.020973 0.952094 +vt 0.020973 1.000000 +vt 0.121913 1.000000 +vt 0.121913 0.952094 +vt 0.117337 0.952094 +vt 0.087140 0.952094 +vt 0.058382 0.952094 +vt 0.056018 0.371849 +vt 0.160868 0.288211 +vt 0.021967 0.222664 +vt 0.194017 0.329809 +vt 0.089871 0.412886 +vt 0.222452 0.476734 +vt 0.222629 0.343509 +vt 0.204928 0.343503 +vt 0.275820 0.343529 +vt 0.275642 0.477652 +vt 0.408767 0.413542 +vt 0.306102 0.329628 +vt 0.295002 0.343536 +vt 0.339283 0.288052 +vt 0.348645 0.328667 +vt 0.373008 0.221924 +vt 0.304744 0.136323 +vt 0.195256 0.136323 +vt 0.126992 0.221924 +vt 0.151355 0.328667 +vt 0.250000 0.376172 +vt 0.250000 0.401586 +vt 0.250000 0.414201 +vt 0.378377 0.352378 +vt 0.368515 0.344513 +vt 0.410084 0.213462 +vt 0.397786 0.216269 +vt 0.321244 0.102060 +vt 0.315771 0.113425 +vt 0.178756 0.102060 +vt 0.184229 0.113425 +vt 0.089916 0.213462 +vt 0.102214 0.216269 +vt 0.121623 0.352378 +vt 0.131485 0.344513 +vt 0.375000 0.275590 +vt 0.625000 0.275535 +vt 0.375000 0.275500 +vt 0.625000 0.275529 +vt 0.375000 0.276953 +vt 0.625000 0.276274 +vt 0.375000 0.275656 +vt 0.625000 0.275590 +vt 0.375000 0.275978 +vt 0.625000 0.275995 +vt 0.375000 0.276796 +vt 0.625000 0.276345 +vt 0.375000 0.277059 +vt 0.625000 0.276391 +vt 0.856398 0.502042 +vt 0.859050 0.689438 +vt 0.832459 0.689438 +vt 0.832412 0.689867 +vt 0.875000 0.500000 +vt 0.849465 0.500000 +vt 0.847674 0.502042 +vt 0.167652 0.690629 +vt 0.141088 0.690629 +vt 0.143593 0.501971 +vt 0.152318 0.501971 +vt 0.150590 0.500000 +vt 0.125000 0.500000 +vt 0.167701 0.691059 +vt 0.856398 0.502049 +vt 0.858902 0.690709 +vt 0.832340 0.690709 +vt 0.832290 0.691138 +vt 0.875000 0.500000 +vt 0.849471 0.500000 +vt 0.847676 0.502049 +vt 0.167557 0.689479 +vt 0.140957 0.689479 +vt 0.143607 0.502087 +vt 0.152330 0.502087 +vt 0.150500 0.500000 +vt 0.125000 0.500000 +vt 0.167604 0.689909 +vt 0.848726 0.500000 +vt 0.847785 0.501077 +vt 0.856517 0.501077 +vt 0.859288 0.687453 +vt 0.832575 0.687453 +vt 0.832534 0.687880 +vt 0.875000 0.500000 +vt 0.167566 0.689913 +vt 0.141000 0.689913 +vt 0.142774 0.592035 +vt 0.143377 0.500190 +vt 0.152119 0.500190 +vt 0.151953 0.500000 +vt 0.125000 0.500000 +vt 0.167616 0.690344 +vt 0.849410 0.500000 +vt 0.847690 0.501970 +vt 0.856410 0.501970 +vt 0.859085 0.689215 +vt 0.832513 0.689215 +vt 0.832463 0.689644 +vt 0.875000 0.500000 +vt 0.167672 0.690694 +vt 0.141100 0.690694 +vt 0.143580 0.501884 +vt 0.152302 0.501884 +vt 0.150656 0.500000 +vt 0.125000 0.500000 +vt 0.167720 0.691124 +vt 0.849005 0.500000 +vt 0.847746 0.501441 +vt 0.856473 0.501441 +vt 0.859141 0.688654 +vt 0.832504 0.688653 +vt 0.832460 0.689083 +vt 0.875000 0.500000 +vt 0.167612 0.690305 +vt 0.141048 0.690305 +vt 0.143529 0.501464 +vt 0.152256 0.501464 +vt 0.150978 0.500000 +vt 0.125000 0.500000 +vt 0.167662 0.690735 +vt 0.856527 0.500984 +vt 0.859066 0.689369 +vt 0.832497 0.689369 +vt 0.832447 0.689797 +vt 0.875000 0.500000 +vt 0.848655 0.500000 +vt 0.847793 0.500984 +vt 0.167396 0.688069 +vt 0.140785 0.688069 +vt 0.143402 0.500395 +vt 0.152141 0.500395 +vt 0.151796 0.500000 +vt 0.125000 0.500000 +vt 0.167443 0.688500 +vt 0.856534 0.500924 +vt 0.859303 0.687435 +vt 0.832721 0.687435 +vt 0.832672 0.687862 +vt 0.875000 0.500000 +vt 0.848609 0.500000 +vt 0.847799 0.500924 +vt 0.167534 0.689636 +vt 0.140966 0.689636 +vt 0.142767 0.590999 +vt 0.143360 0.500052 +vt 0.152104 0.500052 +vt 0.152059 0.500000 +vt 0.125000 0.500000 +vt 0.167585 0.690068 +vt 0.971926 0.953202 +vt 1.000000 0.953202 +vt 1.000000 0.953202 +vt 1.000000 0.970060 +vt 0.971926 0.970060 +vt 0.857143 0.953202 +vt 0.887565 0.953202 +vt 0.887565 0.970060 +vt 0.857143 0.970060 +vt 0.828921 0.953202 +vt 0.857143 0.953202 +vt 0.828921 0.970060 +vt 0.714286 0.953202 +vt 0.744554 0.953202 +vt 0.744554 0.970060 +vt 0.714286 0.970060 +vt 0.571429 0.970060 +vt 0.571429 0.953202 +vt 0.571429 0.953202 +vt 0.598072 0.953202 +vt 0.598072 0.970059 +vt 0.682436 0.953202 +vt 0.714286 0.953202 +vt 0.705731 0.970059 +vt 0.682436 0.970060 +vt 0.428571 0.970060 +vt 0.428571 0.953202 +vt 0.428572 0.953202 +vt 0.459688 0.953202 +vt 0.459688 0.970060 +vt 0.544050 0.953202 +vt 0.544050 0.970060 +vt 0.285714 0.953202 +vt 0.285714 0.953202 +vt 0.316448 0.953202 +vt 0.316448 0.970060 +vt 0.285714 0.970060 +vt 0.400809 0.953202 +vt 0.400809 0.970060 +vt 0.257770 0.953202 +vt 0.257770 0.970060 +vt 0.142857 0.953202 +vt 0.173403 0.953202 +vt 0.173403 0.970060 +vt 0.142857 0.970060 +vt 0.112131 0.953202 +vt 0.142857 0.953202 +vt 0.112131 0.970060 +vt 0.000000 0.953202 +vt 0.027770 0.953202 +vt 0.027770 0.970060 +vt 0.000000 0.970060 +vt 0.436509 0.398736 +vt 0.250000 0.488554 +vt 0.286652 0.470904 +vt 0.285207 0.467896 +vt 0.395397 0.414961 +vt 0.396791 0.417863 +vt 0.436509 0.398736 +vt 0.472813 0.239678 +vt 0.482573 0.196917 +vt 0.482573 0.196917 +vt 0.445609 0.358866 +vt 0.444141 0.358513 +vt 0.472731 0.239658 +vt 0.377577 0.065256 +vt 0.353505 0.035070 +vt 0.453798 0.160833 +vt 0.452533 0.161826 +vt 0.377069 0.065654 +vt 0.353505 0.035070 +vt 0.313830 0.035070 +vt 0.313831 0.037425 +vt 0.191586 0.037462 +vt 0.191586 0.035070 +vt 0.146495 0.035070 +vt 0.146495 0.035070 +vt 0.121412 0.066523 +vt 0.123927 0.068533 +vt 0.047598 0.164020 +vt 0.045194 0.162098 +vt 0.017427 0.196917 +vt 0.017427 0.196917 +vt 0.026437 0.236395 +vt 0.028158 0.236023 +vt 0.053944 0.355518 +vt 0.053641 0.355583 +vt 0.063491 0.398736 +vt 0.063491 0.398736 +vt 0.213745 0.471095 +vt 0.250000 0.488554 +vt 0.103606 0.418055 +vt 0.105057 0.415037 +vt 0.215223 0.468022 +vt 0.937420 0.533849 +vt 0.937175 0.519291 +vt 0.906575 0.519291 +vt 0.906330 0.533849 +vt 0.909393 0.538582 +vt 0.934356 0.538582 +vt 0.934358 0.657826 +vt 0.909393 0.657826 +vt 0.909392 0.736465 +vt 0.934357 0.736465 +vt 0.903108 0.657826 +vt 0.878143 0.657826 +vt 0.878142 0.736465 +vt 0.903107 0.736465 +vt 0.871858 0.657826 +vt 0.846893 0.657826 +vt 0.846892 0.736465 +vt 0.871857 0.736465 +vt 0.840608 0.657826 +vt 0.815643 0.657826 +vt 0.815642 0.736465 +vt 0.840607 0.736465 +vt 0.809358 0.657826 +vt 0.784393 0.657826 +vt 0.784392 0.736465 +vt 0.809357 0.736465 +vt 0.778108 0.657826 +vt 0.753143 0.657826 +vt 0.753142 0.736465 +vt 0.778107 0.736465 +vt 0.746858 0.657826 +vt 0.721893 0.657826 +vt 0.721892 0.736465 +vt 0.746857 0.736465 +vt 0.715608 0.657826 +vt 0.690643 0.657826 +vt 0.690642 0.736465 +vt 0.715607 0.736465 +vt 0.684358 0.657826 +vt 0.659393 0.657826 +vt 0.659392 0.736465 +vt 0.684357 0.736465 +vt 0.653108 0.657826 +vt 0.628143 0.657826 +vt 0.628142 0.736465 +vt 0.653107 0.736465 +vt 0.621858 0.657826 +vt 0.596893 0.657826 +vt 0.596892 0.736465 +vt 0.621857 0.736465 +vt 0.590608 0.657826 +vt 0.565643 0.657826 +vt 0.565642 0.736465 +vt 0.590607 0.736465 +vt 0.559358 0.657826 +vt 0.534393 0.657826 +vt 0.534392 0.736465 +vt 0.559357 0.736465 +vt 0.528108 0.657826 +vt 0.503143 0.657826 +vt 0.503142 0.736465 +vt 0.528107 0.736465 +vt 0.496858 0.657826 +vt 0.471893 0.657826 +vt 0.471892 0.736465 +vt 0.496857 0.736465 +vt 0.465608 0.657826 +vt 0.440643 0.657826 +vt 0.440642 0.736465 +vt 0.465607 0.736465 +vt 0.434358 0.657826 +vt 0.409393 0.657826 +vt 0.409392 0.736465 +vt 0.434357 0.736465 +vt 0.403108 0.657826 +vt 0.378143 0.657826 +vt 0.378142 0.736465 +vt 0.403107 0.736465 +vt 0.371858 0.657826 +vt 0.346893 0.657826 +vt 0.346892 0.736465 +vt 0.371857 0.736465 +vt 0.340608 0.657826 +vt 0.315643 0.657826 +vt 0.315642 0.736465 +vt 0.340607 0.736465 +vt 0.309358 0.657826 +vt 0.284393 0.657826 +vt 0.284392 0.736465 +vt 0.309357 0.736465 +vt 0.278108 0.657826 +vt 0.253143 0.657826 +vt 0.253142 0.736465 +vt 0.278107 0.736465 +vt 0.246858 0.657826 +vt 0.221893 0.657826 +vt 0.221892 0.736465 +vt 0.246857 0.736465 +vt 0.215608 0.657826 +vt 0.190643 0.657826 +vt 0.190642 0.736465 +vt 0.215607 0.736465 +vt 0.184358 0.657826 +vt 0.159393 0.657826 +vt 0.159392 0.736465 +vt 0.184357 0.736465 +vt 0.153108 0.657826 +vt 0.128143 0.657826 +vt 0.128142 0.736465 +vt 0.153107 0.736465 +vt 0.121858 0.657826 +vt 0.096893 0.657826 +vt 0.096892 0.736465 +vt 0.121857 0.736465 +vt 0.090608 0.657826 +vt 0.065643 0.657826 +vt 0.065642 0.736465 +vt 0.090607 0.736465 +vt 0.906170 0.533849 +vt 0.905925 0.519291 +vt 0.875325 0.519291 +vt 0.875080 0.533849 +vt 0.878143 0.538582 +vt 0.903106 0.538582 +vt 0.965608 0.657826 +vt 0.940643 0.657826 +vt 0.940642 0.736465 +vt 0.965607 0.736465 +vt 0.968670 0.533849 +vt 0.968425 0.519291 +vt 0.937825 0.519291 +vt 0.937580 0.533849 +vt 0.940643 0.538582 +vt 0.965606 0.538582 +vt 0.028106 0.538582 +vt 0.003143 0.538582 +vt 0.003143 0.630756 +vt 0.028107 0.630756 +vt 0.999675 0.519291 +vt 0.998788 0.500000 +vt 0.969962 0.500000 +vt 0.969075 0.519291 +vt 0.750000 0.471391 +vt 0.793191 0.467137 +vt 0.000080 0.966151 +vt 0.000325 0.980709 +vt 0.030925 0.980709 +vt 0.031170 0.966151 +vt 0.028106 0.961418 +vt 0.003143 0.961418 +vt 0.969075 0.980709 +vt 0.969962 1.000000 +vt 0.998788 1.000000 +vt 0.999675 0.980709 +vt 0.293191 0.467137 +vt 0.289561 0.448886 +vt 0.250000 0.452782 +vt 0.250000 0.471391 +vt 0.940643 0.630756 +vt 0.965607 0.630756 +vt 0.967538 0.500000 +vt 0.938712 0.500000 +vt 0.834722 0.454539 +vt 0.965607 0.869244 +vt 0.940643 0.869244 +vt 0.940643 0.961418 +vt 0.965606 0.961418 +vt 0.937825 0.980709 +vt 0.938712 1.000000 +vt 0.967538 1.000000 +vt 0.968425 0.980709 +vt 0.334723 0.454539 +vt 0.327601 0.437346 +vt 0.909393 0.630756 +vt 0.934357 0.630756 +vt 0.936288 0.500000 +vt 0.907461 0.500000 +vt 0.872998 0.434080 +vt 0.934357 0.869244 +vt 0.909393 0.869244 +vt 0.909393 0.961418 +vt 0.934356 0.961418 +vt 0.906575 0.980709 +vt 0.907462 1.000000 +vt 0.936288 1.000000 +vt 0.937175 0.980709 +vt 0.372998 0.434080 +vt 0.362660 0.418607 +vt 0.878143 0.630756 +vt 0.903107 0.630756 +vt 0.905038 0.500000 +vt 0.876212 0.500000 +vt 0.906547 0.406547 +vt 0.903107 0.869244 +vt 0.878143 0.869244 +vt 0.878143 0.961418 +vt 0.903106 0.961418 +vt 0.875325 0.980709 +vt 0.876212 1.000000 +vt 0.905038 1.000000 +vt 0.905925 0.980709 +vt 0.406547 0.406547 +vt 0.393388 0.393388 +vt 0.871856 0.538582 +vt 0.846893 0.538582 +vt 0.846893 0.630756 +vt 0.871857 0.630756 +vt 0.874675 0.519291 +vt 0.873788 0.500000 +vt 0.844962 0.500000 +vt 0.844075 0.519291 +vt 0.934080 0.372998 +vt 0.871857 0.869244 +vt 0.846893 0.869244 +vt 0.846893 0.961418 +vt 0.871856 0.961418 +vt 0.844075 0.980709 +vt 0.844962 1.000000 +vt 0.873788 1.000000 +vt 0.874675 0.980709 +vt 0.434080 0.372998 +vt 0.418607 0.362660 +vt 0.840606 0.538582 +vt 0.815643 0.538582 +vt 0.815643 0.630756 +vt 0.840607 0.630756 +vt 0.843425 0.519291 +vt 0.842538 0.500000 +vt 0.813712 0.500000 +vt 0.812825 0.519291 +vt 0.954539 0.334723 +vt 0.840607 0.869244 +vt 0.815643 0.869244 +vt 0.815643 0.961418 +vt 0.840606 0.961418 +vt 0.812825 0.980709 +vt 0.813712 1.000000 +vt 0.842538 1.000000 +vt 0.843425 0.980709 +vt 0.454539 0.334723 +vt 0.437346 0.327601 +vt 0.809356 0.538582 +vt 0.784393 0.538582 +vt 0.784393 0.630756 +vt 0.809357 0.630756 +vt 0.812175 0.519291 +vt 0.811288 0.500000 +vt 0.782462 0.500000 +vt 0.781575 0.519291 +vt 0.967137 0.293191 +vt 0.809357 0.869244 +vt 0.784393 0.869244 +vt 0.784393 0.961418 +vt 0.809356 0.961418 +vt 0.781575 0.980709 +vt 0.782462 1.000000 +vt 0.811288 1.000000 +vt 0.812175 0.980709 +vt 0.467137 0.293191 +vt 0.448886 0.289561 +vt 0.778106 0.538582 +vt 0.753143 0.538582 +vt 0.753143 0.630756 +vt 0.778107 0.630756 +vt 0.780925 0.519291 +vt 0.780038 0.500000 +vt 0.751211 0.500000 +vt 0.750325 0.519291 +vt 0.971391 0.250000 +vt 0.778107 0.869244 +vt 0.753143 0.869244 +vt 0.753143 0.961418 +vt 0.778106 0.961418 +vt 0.750325 0.980709 +vt 0.751212 1.000000 +vt 0.780038 1.000000 +vt 0.780925 0.980709 +vt 0.471391 0.250000 +vt 0.452782 0.250000 +vt 0.746856 0.538582 +vt 0.721893 0.538582 +vt 0.721893 0.630756 +vt 0.746857 0.630756 +vt 0.749675 0.519291 +vt 0.748788 0.500000 +vt 0.719962 0.500000 +vt 0.719075 0.519291 +vt 0.967137 0.206809 +vt 0.746857 0.869244 +vt 0.721893 0.869244 +vt 0.721893 0.961418 +vt 0.746856 0.961418 +vt 0.719075 0.980709 +vt 0.719962 1.000000 +vt 0.748788 1.000000 +vt 0.749675 0.980709 +vt 0.467137 0.206809 +vt 0.448886 0.210439 +vt 0.715606 0.538582 +vt 0.690643 0.538582 +vt 0.690643 0.630756 +vt 0.715607 0.630756 +vt 0.718425 0.519291 +vt 0.717538 0.500000 +vt 0.688712 0.500000 +vt 0.687825 0.519291 +vt 0.954539 0.165277 +vt 0.715607 0.869244 +vt 0.690643 0.869244 +vt 0.690643 0.961418 +vt 0.715606 0.961418 +vt 0.687825 0.980709 +vt 0.688712 1.000000 +vt 0.717538 1.000000 +vt 0.718425 0.980709 +vt 0.454539 0.165277 +vt 0.437346 0.172399 +vt 0.684356 0.538582 +vt 0.659393 0.538582 +vt 0.659393 0.630756 +vt 0.684357 0.630756 +vt 0.687175 0.519291 +vt 0.686288 0.500000 +vt 0.657462 0.500000 +vt 0.656575 0.519291 +vt 0.934080 0.127002 +vt 0.684357 0.869244 +vt 0.659393 0.869244 +vt 0.659393 0.961418 +vt 0.684356 0.961418 +vt 0.656575 0.980709 +vt 0.657462 1.000000 +vt 0.686288 1.000000 +vt 0.687175 0.980709 +vt 0.434080 0.127002 +vt 0.418607 0.137340 +vt 0.653106 0.538582 +vt 0.628143 0.538582 +vt 0.628143 0.630756 +vt 0.653107 0.630756 +vt 0.655925 0.519291 +vt 0.655039 0.500000 +vt 0.626212 0.500000 +vt 0.625325 0.519291 +vt 0.906547 0.093453 +vt 0.653107 0.869244 +vt 0.628143 0.869244 +vt 0.628143 0.961418 +vt 0.653106 0.961418 +vt 0.625325 0.980709 +vt 0.626212 1.000000 +vt 0.655038 1.000000 +vt 0.655925 0.980709 +vt 0.406547 0.093453 +vt 0.393389 0.106612 +vt 0.621856 0.538582 +vt 0.596893 0.538582 +vt 0.596893 0.630756 +vt 0.621857 0.630756 +vt 0.624675 0.519291 +vt 0.623788 0.500000 +vt 0.594962 0.500000 +vt 0.594075 0.519291 +vt 0.872998 0.065920 +vt 0.621857 0.869244 +vt 0.596893 0.869244 +vt 0.596893 0.961418 +vt 0.621856 0.961418 +vt 0.594075 0.980709 +vt 0.594962 1.000000 +vt 0.623788 1.000000 +vt 0.624675 0.980709 +vt 0.372998 0.065920 +vt 0.362660 0.081393 +vt 0.590606 0.538582 +vt 0.565643 0.538582 +vt 0.565643 0.630756 +vt 0.590607 0.630756 +vt 0.593425 0.519291 +vt 0.592538 0.500000 +vt 0.563712 0.500000 +vt 0.562825 0.519291 +vt 0.834723 0.045461 +vt 0.590607 0.869244 +vt 0.565643 0.869244 +vt 0.565643 0.961418 +vt 0.590606 0.961418 +vt 0.562825 0.980709 +vt 0.563712 1.000000 +vt 0.592538 1.000000 +vt 0.593425 0.980709 +vt 0.334723 0.045461 +vt 0.327601 0.062654 +vt 0.559356 0.538582 +vt 0.534393 0.538582 +vt 0.534393 0.630756 +vt 0.559357 0.630756 +vt 0.562175 0.519291 +vt 0.561288 0.500000 +vt 0.532462 0.500000 +vt 0.531575 0.519291 +vt 0.793191 0.032863 +vt 0.559357 0.869244 +vt 0.534393 0.869244 +vt 0.534393 0.961418 +vt 0.559356 0.961418 +vt 0.531575 0.980709 +vt 0.532462 1.000000 +vt 0.561289 1.000000 +vt 0.562175 0.980709 +vt 0.293191 0.032863 +vt 0.289561 0.051114 +vt 0.528106 0.538582 +vt 0.503143 0.538582 +vt 0.503143 0.630756 +vt 0.528107 0.630756 +vt 0.530925 0.519291 +vt 0.530038 0.500000 +vt 0.501212 0.500000 +vt 0.500325 0.519291 +vt 0.750000 0.028609 +vt 0.528107 0.869244 +vt 0.503143 0.869244 +vt 0.503143 0.961418 +vt 0.528106 0.961418 +vt 0.500325 0.980709 +vt 0.501212 1.000000 +vt 0.530038 1.000000 +vt 0.530925 0.980709 +vt 0.250000 0.028609 +vt 0.250000 0.047218 +vt 0.496856 0.538582 +vt 0.471893 0.538582 +vt 0.471893 0.630756 +vt 0.496857 0.630756 +vt 0.499675 0.519291 +vt 0.498788 0.500000 +vt 0.469962 0.500000 +vt 0.469075 0.519291 +vt 0.706809 0.032863 +vt 0.496857 0.869244 +vt 0.471893 0.869244 +vt 0.471893 0.961418 +vt 0.496856 0.961418 +vt 0.469075 0.980709 +vt 0.469962 1.000000 +vt 0.498789 1.000000 +vt 0.499675 0.980709 +vt 0.206809 0.032863 +vt 0.210439 0.051114 +vt 0.465606 0.538582 +vt 0.440643 0.538582 +vt 0.440643 0.630756 +vt 0.465607 0.630756 +vt 0.468425 0.519291 +vt 0.467538 0.500000 +vt 0.438712 0.500000 +vt 0.437825 0.519291 +vt 0.665277 0.045461 +vt 0.465607 0.869244 +vt 0.440643 0.869244 +vt 0.440643 0.961418 +vt 0.465606 0.961418 +vt 0.437825 0.980709 +vt 0.438712 1.000000 +vt 0.467538 1.000000 +vt 0.468425 0.980709 +vt 0.165277 0.045461 +vt 0.172399 0.062654 +vt 0.434356 0.538582 +vt 0.409393 0.538582 +vt 0.409393 0.630756 +vt 0.434357 0.630756 +vt 0.437175 0.519291 +vt 0.436288 0.500000 +vt 0.407461 0.500000 +vt 0.406575 0.519291 +vt 0.627002 0.065920 +vt 0.434357 0.869244 +vt 0.409393 0.869244 +vt 0.409393 0.961418 +vt 0.434356 0.961418 +vt 0.406575 0.980709 +vt 0.407462 1.000000 +vt 0.436289 1.000000 +vt 0.437175 0.980709 +vt 0.127002 0.065920 +vt 0.137340 0.081393 +vt 0.403106 0.538582 +vt 0.378143 0.538582 +vt 0.378143 0.630756 +vt 0.403107 0.630756 +vt 0.405925 0.519291 +vt 0.405038 0.500000 +vt 0.376212 0.500000 +vt 0.375325 0.519291 +vt 0.593453 0.093453 +vt 0.403107 0.869244 +vt 0.378143 0.869244 +vt 0.378143 0.961418 +vt 0.403106 0.961418 +vt 0.375325 0.980709 +vt 0.376212 1.000000 +vt 0.405038 1.000000 +vt 0.405925 0.980709 +vt 0.093453 0.093453 +vt 0.106611 0.106612 +vt 0.371856 0.538582 +vt 0.346893 0.538582 +vt 0.346893 0.630756 +vt 0.371857 0.630756 +vt 0.374675 0.519291 +vt 0.373788 0.500000 +vt 0.344962 0.500000 +vt 0.344075 0.519291 +vt 0.565920 0.127002 +vt 0.371857 0.869244 +vt 0.346893 0.869244 +vt 0.346893 0.961418 +vt 0.371856 0.961418 +vt 0.344075 0.980709 +vt 0.344962 1.000000 +vt 0.373788 1.000000 +vt 0.374675 0.980709 +vt 0.065920 0.127002 +vt 0.081393 0.137341 +vt 0.340606 0.538582 +vt 0.315643 0.538582 +vt 0.315643 0.630756 +vt 0.340607 0.630756 +vt 0.343425 0.519291 +vt 0.342539 0.500000 +vt 0.313711 0.500000 +vt 0.312825 0.519291 +vt 0.545461 0.165278 +vt 0.340607 0.869244 +vt 0.315643 0.869244 +vt 0.315643 0.961418 +vt 0.340606 0.961418 +vt 0.312825 0.980709 +vt 0.313712 1.000000 +vt 0.342539 1.000000 +vt 0.343425 0.980709 +vt 0.045461 0.165278 +vt 0.062654 0.172399 +vt 0.309356 0.538582 +vt 0.284393 0.538582 +vt 0.284393 0.630756 +vt 0.309357 0.630756 +vt 0.312175 0.519291 +vt 0.311288 0.500000 +vt 0.282462 0.500000 +vt 0.281575 0.519291 +vt 0.532863 0.206809 +vt 0.309357 0.869244 +vt 0.284393 0.869244 +vt 0.284393 0.961418 +vt 0.309356 0.961418 +vt 0.281575 0.980709 +vt 0.282462 1.000000 +vt 0.311288 1.000000 +vt 0.312175 0.980709 +vt 0.032863 0.206809 +vt 0.051114 0.210439 +vt 0.278106 0.538582 +vt 0.253143 0.538582 +vt 0.253143 0.630756 +vt 0.278107 0.630756 +vt 0.280925 0.519291 +vt 0.280038 0.500000 +vt 0.251212 0.500000 +vt 0.250325 0.519291 +vt 0.528609 0.250000 +vt 0.278107 0.869244 +vt 0.253143 0.869244 +vt 0.253143 0.961418 +vt 0.278106 0.961418 +vt 0.250325 0.980709 +vt 0.251212 1.000000 +vt 0.280038 1.000000 +vt 0.280925 0.980709 +vt 0.028609 0.250000 +vt 0.047218 0.250000 +vt 0.246856 0.538582 +vt 0.221893 0.538582 +vt 0.221893 0.630756 +vt 0.246857 0.630756 +vt 0.249675 0.519291 +vt 0.248788 0.500000 +vt 0.219962 0.500000 +vt 0.219075 0.519291 +vt 0.532863 0.293191 +vt 0.246857 0.869244 +vt 0.221893 0.869244 +vt 0.221893 0.961418 +vt 0.246856 0.961418 +vt 0.219075 0.980709 +vt 0.219962 1.000000 +vt 0.248788 1.000000 +vt 0.249675 0.980709 +vt 0.032863 0.293191 +vt 0.051115 0.289561 +vt 0.215606 0.538582 +vt 0.190643 0.538582 +vt 0.190643 0.630756 +vt 0.215607 0.630756 +vt 0.218425 0.519291 +vt 0.217538 0.500000 +vt 0.188712 0.500000 +vt 0.187825 0.519291 +vt 0.545462 0.334723 +vt 0.215607 0.869244 +vt 0.190643 0.869244 +vt 0.190643 0.961418 +vt 0.215606 0.961418 +vt 0.187825 0.980709 +vt 0.188712 1.000000 +vt 0.217538 1.000000 +vt 0.218425 0.980709 +vt 0.045462 0.334723 +vt 0.062654 0.327601 +vt 0.184356 0.538582 +vt 0.159393 0.538582 +vt 0.159393 0.630756 +vt 0.184357 0.630756 +vt 0.187175 0.519291 +vt 0.186288 0.500000 +vt 0.157462 0.500000 +vt 0.156575 0.519291 +vt 0.565920 0.372998 +vt 0.184357 0.869244 +vt 0.159393 0.869244 +vt 0.159393 0.961418 +vt 0.184356 0.961418 +vt 0.156575 0.980709 +vt 0.157462 1.000000 +vt 0.186288 1.000000 +vt 0.187175 0.980709 +vt 0.065920 0.372998 +vt 0.081393 0.362660 +vt 0.153106 0.538582 +vt 0.128143 0.538582 +vt 0.128143 0.630756 +vt 0.153107 0.630756 +vt 0.155925 0.519291 +vt 0.155038 0.500000 +vt 0.126212 0.500000 +vt 0.125325 0.519291 +vt 0.593453 0.406547 +vt 0.153107 0.869244 +vt 0.128143 0.869244 +vt 0.128143 0.961418 +vt 0.153106 0.961418 +vt 0.125325 0.980709 +vt 0.126212 1.000000 +vt 0.155038 1.000000 +vt 0.155925 0.980709 +vt 0.093453 0.406547 +vt 0.106612 0.393389 +vt 0.121856 0.538582 +vt 0.096893 0.538582 +vt 0.096893 0.630756 +vt 0.121857 0.630756 +vt 0.124675 0.519291 +vt 0.123788 0.500000 +vt 0.094962 0.500000 +vt 0.094075 0.519291 +vt 0.627002 0.434080 +vt 0.121857 0.869244 +vt 0.096893 0.869244 +vt 0.096893 0.961418 +vt 0.121856 0.961418 +vt 0.094075 0.980709 +vt 0.094962 1.000000 +vt 0.123788 1.000000 +vt 0.124675 0.980709 +vt 0.127002 0.434080 +vt 0.137341 0.418607 +vt 0.090606 0.538582 +vt 0.065643 0.538582 +vt 0.065643 0.630756 +vt 0.090607 0.630756 +vt 0.093425 0.519291 +vt 0.092538 0.500000 +vt 0.063712 0.500000 +vt 0.062825 0.519291 +vt 0.665278 0.454539 +vt 0.090607 0.869244 +vt 0.065643 0.869244 +vt 0.065643 0.961418 +vt 0.090606 0.961418 +vt 0.062825 0.980709 +vt 0.063712 1.000000 +vt 0.092538 1.000000 +vt 0.093425 0.980709 +vt 0.165278 0.454539 +vt 0.172399 0.437346 +vt 0.059356 0.538582 +vt 0.034393 0.538582 +vt 0.034393 0.630756 +vt 0.059357 0.630756 +vt 0.062175 0.519291 +vt 0.061288 0.500000 +vt 0.032462 0.500000 +vt 0.031575 0.519291 +vt 0.706809 0.467137 +vt 0.059357 0.869244 +vt 0.034393 0.869244 +vt 0.034393 0.961418 +vt 0.059356 0.961418 +vt 0.031575 0.980709 +vt 0.032462 1.000000 +vt 0.061288 1.000000 +vt 0.062175 0.980709 +vt 0.206809 0.467137 +vt 0.210440 0.448886 +vt 0.999920 0.533849 +vt 0.968830 0.533849 +vt 0.971893 0.538582 +vt 0.996856 0.538582 +vt 0.030925 0.519291 +vt 0.030038 0.500000 +vt 0.001212 0.500000 +vt 0.000325 0.519291 +vt 0.028107 0.869244 +vt 0.003143 0.869244 +vt 0.001212 1.000000 +vt 0.030038 1.000000 +vt 0.996857 0.763535 +vt 0.971892 0.763535 +vt 0.971893 0.842174 +vt 0.996858 0.842174 +vt 0.996857 0.869244 +vt 0.971893 0.869244 +vt 0.971893 0.961418 +vt 0.996856 0.961418 +vt 0.968830 0.966151 +vt 0.999920 0.966151 +vt 0.031330 0.966151 +vt 0.062420 0.966151 +vt 0.937580 0.966151 +vt 0.968670 0.966151 +vt 0.059358 0.657826 +vt 0.034393 0.657826 +vt 0.034392 0.736465 +vt 0.059357 0.736465 +vt 0.059357 0.763535 +vt 0.034392 0.763535 +vt 0.034393 0.842174 +vt 0.059358 0.842174 +vt 0.934357 0.763535 +vt 0.909392 0.763535 +vt 0.909393 0.842174 +vt 0.934358 0.842174 +vt 0.934333 0.644291 +vt 0.909417 0.644291 +vt 0.028083 0.855709 +vt 0.028108 0.842174 +vt 0.003143 0.842174 +vt 0.003167 0.855709 +vt 0.062580 0.966151 +vt 0.093670 0.966151 +vt 0.812500 0.630756 +vt 0.812500 0.538582 +vt 0.062420 0.533849 +vt 0.031330 0.533849 +vt 0.093830 0.966151 +vt 0.124920 0.966151 +vt 0.090607 0.763535 +vt 0.065642 0.763535 +vt 0.065643 0.842174 +vt 0.090608 0.842174 +vt 0.093670 0.533849 +vt 0.062580 0.533849 +vt 0.125080 0.966151 +vt 0.156170 0.966151 +vt 0.121857 0.763535 +vt 0.096892 0.763535 +vt 0.096893 0.842174 +vt 0.121858 0.842174 +vt 0.124920 0.533849 +vt 0.093830 0.533849 +vt 0.156330 0.966151 +vt 0.187420 0.966151 +vt 0.153107 0.763535 +vt 0.128142 0.763535 +vt 0.128143 0.842174 +vt 0.153108 0.842174 +vt 0.156170 0.533849 +vt 0.125080 0.533849 +vt 0.187580 0.966151 +vt 0.218670 0.966151 +vt 0.184357 0.763535 +vt 0.159392 0.763535 +vt 0.159393 0.842174 +vt 0.184358 0.842174 +vt 0.187420 0.533849 +vt 0.156330 0.533849 +vt 0.218830 0.966151 +vt 0.249920 0.966151 +vt 0.215607 0.763535 +vt 0.190642 0.763535 +vt 0.190643 0.842174 +vt 0.215608 0.842174 +vt 0.218670 0.533849 +vt 0.187580 0.533849 +vt 0.250080 0.966151 +vt 0.281170 0.966151 +vt 0.246857 0.763535 +vt 0.221892 0.763535 +vt 0.221893 0.842174 +vt 0.246858 0.842174 +vt 0.249920 0.533849 +vt 0.218830 0.533849 +vt 0.281330 0.966151 +vt 0.312420 0.966151 +vt 0.278107 0.763535 +vt 0.253142 0.763535 +vt 0.253143 0.842174 +vt 0.278108 0.842174 +vt 0.281170 0.533849 +vt 0.250080 0.533849 +vt 0.312580 0.966151 +vt 0.343670 0.966151 +vt 0.309357 0.763535 +vt 0.284392 0.763535 +vt 0.284393 0.842174 +vt 0.309358 0.842174 +vt 0.312420 0.533849 +vt 0.281330 0.533849 +vt 0.343830 0.966151 +vt 0.374920 0.966151 +vt 0.340607 0.763535 +vt 0.315642 0.763535 +vt 0.315643 0.842174 +vt 0.340608 0.842174 +vt 0.343670 0.533849 +vt 0.312580 0.533849 +vt 0.375080 0.966151 +vt 0.406170 0.966151 +vt 0.371857 0.763535 +vt 0.346892 0.763535 +vt 0.346893 0.842174 +vt 0.371858 0.842174 +vt 0.374920 0.533849 +vt 0.343830 0.533849 +vt 0.406330 0.966151 +vt 0.437420 0.966151 +vt 0.403107 0.763535 +vt 0.378142 0.763535 +vt 0.378143 0.842174 +vt 0.403108 0.842174 +vt 0.406170 0.533849 +vt 0.375080 0.533849 +vt 0.437580 0.966151 +vt 0.468670 0.966151 +vt 0.434357 0.763535 +vt 0.409392 0.763535 +vt 0.409393 0.842174 +vt 0.434358 0.842174 +vt 0.437420 0.533849 +vt 0.406330 0.533849 +vt 0.468830 0.966151 +vt 0.499920 0.966151 +vt 0.465607 0.763535 +vt 0.440642 0.763535 +vt 0.440643 0.842174 +vt 0.465608 0.842174 +vt 0.468670 0.533849 +vt 0.437580 0.533849 +vt 0.500080 0.966151 +vt 0.531170 0.966151 +vt 0.496857 0.763535 +vt 0.471892 0.763535 +vt 0.471893 0.842174 +vt 0.496858 0.842174 +vt 0.499920 0.533849 +vt 0.468830 0.533849 +vt 0.531330 0.966151 +vt 0.562420 0.966151 +vt 0.528107 0.763535 +vt 0.503142 0.763535 +vt 0.503143 0.842174 +vt 0.528108 0.842174 +vt 0.531170 0.533849 +vt 0.500080 0.533849 +vt 0.562580 0.966151 +vt 0.593670 0.966151 +vt 0.559357 0.763535 +vt 0.534392 0.763535 +vt 0.534393 0.842174 +vt 0.559358 0.842174 +vt 0.562420 0.533849 +vt 0.531330 0.533849 +vt 0.593830 0.966151 +vt 0.624920 0.966151 +vt 0.590607 0.763535 +vt 0.565642 0.763535 +vt 0.565643 0.842174 +vt 0.590608 0.842174 +vt 0.593670 0.533849 +vt 0.562580 0.533849 +vt 0.625080 0.966151 +vt 0.656170 0.966151 +vt 0.621857 0.763535 +vt 0.596892 0.763535 +vt 0.596893 0.842174 +vt 0.621858 0.842174 +vt 0.624920 0.533849 +vt 0.593830 0.533849 +vt 0.656330 0.966151 +vt 0.687420 0.966151 +vt 0.653107 0.763535 +vt 0.628142 0.763535 +vt 0.628143 0.842174 +vt 0.653108 0.842174 +vt 0.656170 0.533849 +vt 0.625080 0.533849 +vt 0.687580 0.966151 +vt 0.718670 0.966151 +vt 0.684357 0.763535 +vt 0.659392 0.763535 +vt 0.659393 0.842174 +vt 0.684358 0.842174 +vt 0.687420 0.533849 +vt 0.656330 0.533849 +vt 0.718830 0.966151 +vt 0.749920 0.966151 +vt 0.715607 0.763535 +vt 0.690642 0.763535 +vt 0.690643 0.842174 +vt 0.715608 0.842174 +vt 0.718670 0.533849 +vt 0.687580 0.533849 +vt 0.750080 0.966151 +vt 0.781170 0.966151 +vt 0.746857 0.763535 +vt 0.721892 0.763535 +vt 0.721893 0.842174 +vt 0.746858 0.842174 +vt 0.749920 0.533849 +vt 0.718830 0.533849 +vt 0.781330 0.966151 +vt 0.812420 0.966151 +vt 0.778107 0.763535 +vt 0.753142 0.763535 +vt 0.753143 0.842174 +vt 0.778108 0.842174 +vt 0.781170 0.533849 +vt 0.750080 0.533849 +vt 0.812580 0.966151 +vt 0.843670 0.966151 +vt 0.809357 0.763535 +vt 0.784392 0.763535 +vt 0.784393 0.842174 +vt 0.809358 0.842174 +vt 0.812420 0.533849 +vt 0.781330 0.533849 +vt 0.843830 0.966151 +vt 0.874920 0.966151 +vt 0.840607 0.763535 +vt 0.815642 0.763535 +vt 0.815643 0.842174 +vt 0.840608 0.842174 +vt 0.843670 0.533849 +vt 0.812580 0.533849 +vt 0.875080 0.966151 +vt 0.906170 0.966151 +vt 0.871857 0.763535 +vt 0.846892 0.763535 +vt 0.846893 0.842174 +vt 0.871858 0.842174 +vt 0.874920 0.533849 +vt 0.843830 0.533849 +vt 0.906330 0.966151 +vt 0.937420 0.966151 +vt 0.903107 0.763535 +vt 0.878142 0.763535 +vt 0.878143 0.842174 +vt 0.903108 0.842174 +vt 0.028108 0.657826 +vt 0.003143 0.657826 +vt 0.003142 0.736465 +vt 0.028107 0.736465 +vt 0.965607 0.763535 +vt 0.940642 0.763535 +vt 0.940643 0.842174 +vt 0.965608 0.842174 +vt 0.028107 0.763535 +vt 0.003142 0.763535 +vt 0.903083 0.750000 +vt 0.878166 0.750000 +vt 0.934333 0.855709 +vt 0.909417 0.855709 +vt 0.996858 0.657826 +vt 0.971893 0.657826 +vt 0.971892 0.736465 +vt 0.996857 0.736465 +vt 0.996833 0.644291 +vt 0.971917 0.644291 +vt 0.996833 0.750000 +vt 0.971916 0.750000 +vt 0.996833 0.855709 +vt 0.971917 0.855709 +vt 0.965583 0.644291 +vt 0.940667 0.644291 +vt 0.028083 0.750000 +vt 0.003166 0.750000 +vt 0.965583 0.855709 +vt 0.940667 0.855709 +vt 0.090583 0.644291 +vt 0.065667 0.644291 +vt 0.090583 0.855709 +vt 0.065667 0.855709 +vt 0.121833 0.750000 +vt 0.096916 0.750000 +vt 0.153083 0.644291 +vt 0.128167 0.644291 +vt 0.121833 0.855709 +vt 0.096917 0.855709 +vt 0.153083 0.750000 +vt 0.128166 0.750000 +vt 0.184333 0.855709 +vt 0.159417 0.855709 +vt 0.184333 0.644291 +vt 0.159417 0.644291 +vt 0.215583 0.750000 +vt 0.190666 0.750000 +vt 0.246833 0.644291 +vt 0.221917 0.644291 +vt 0.246833 0.855709 +vt 0.221917 0.855709 +vt 0.278083 0.750000 +vt 0.253166 0.750000 +vt 0.309333 0.644291 +vt 0.284417 0.644291 +vt 0.309333 0.855709 +vt 0.284417 0.855709 +vt 0.340583 0.750000 +vt 0.315666 0.750000 +vt 0.371833 0.644291 +vt 0.346917 0.644291 +vt 0.340583 0.855709 +vt 0.315667 0.855709 +vt 0.371833 0.750000 +vt 0.346916 0.750000 +vt 0.403083 0.855709 +vt 0.378167 0.855709 +vt 0.403083 0.644291 +vt 0.378167 0.644291 +vt 0.434333 0.750000 +vt 0.409416 0.750000 +vt 0.465583 0.644291 +vt 0.440667 0.644291 +vt 0.465583 0.855709 +vt 0.440667 0.855709 +vt 0.496833 0.750000 +vt 0.471916 0.750000 +vt 0.528083 0.644291 +vt 0.503167 0.644291 +vt 0.528083 0.855709 +vt 0.503167 0.855709 +vt 0.559333 0.750000 +vt 0.534416 0.750000 +vt 0.590583 0.644291 +vt 0.565667 0.644291 +vt 0.559333 0.855709 +vt 0.534417 0.855709 +vt 0.590583 0.750000 +vt 0.565666 0.750000 +vt 0.621833 0.855709 +vt 0.596917 0.855709 +vt 0.621833 0.644291 +vt 0.596917 0.644291 +vt 0.653083 0.750000 +vt 0.628166 0.750000 +vt 0.684333 0.644291 +vt 0.659417 0.644291 +vt 0.684333 0.855709 +vt 0.659417 0.855709 +vt 0.715583 0.750000 +vt 0.690666 0.750000 +vt 0.746833 0.644291 +vt 0.721917 0.644291 +vt 0.746833 0.855709 +vt 0.721917 0.855709 +vt 0.778083 0.750000 +vt 0.753166 0.750000 +vt 0.809333 0.644291 +vt 0.784417 0.644291 +vt 0.778083 0.855709 +vt 0.753167 0.855709 +vt 0.809333 0.750000 +vt 0.784416 0.750000 +vt 0.840583 0.855709 +vt 0.815667 0.855709 +vt 0.840583 0.644291 +vt 0.815667 0.644291 +vt 0.871833 0.750000 +vt 0.846916 0.750000 +vt 0.903083 0.644291 +vt 0.878167 0.644291 +vt 0.934333 0.750000 +vt 0.909416 0.750000 +vt 0.903083 0.855709 +vt 0.878167 0.855709 +vt 0.059333 0.644291 +vt 0.034417 0.644291 +vt 0.965583 0.750000 +vt 0.940666 0.750000 +vt 0.059333 0.855709 +vt 0.034417 0.855709 +vt 0.971893 0.630756 +vt 0.996857 0.630756 +vt 0.871833 0.855709 +vt 0.846917 0.855709 +vt 0.809333 0.855709 +vt 0.784417 0.855709 +vt 0.715583 0.855709 +vt 0.690667 0.855709 +vt 0.653083 0.855709 +vt 0.628167 0.855709 +vt 0.590583 0.855709 +vt 0.565667 0.855709 +vt 0.496833 0.855709 +vt 0.471917 0.855709 +vt 0.434333 0.855709 +vt 0.409417 0.855709 +vt 0.371833 0.855709 +vt 0.346917 0.855709 +vt 0.278083 0.855709 +vt 0.253167 0.855709 +vt 0.215583 0.855709 +vt 0.190667 0.855709 +vt 0.153083 0.855709 +vt 0.128167 0.855709 +vt 0.059333 0.750000 +vt 0.034416 0.750000 +vt 0.840583 0.750000 +vt 0.815666 0.750000 +vt 0.746833 0.750000 +vt 0.721916 0.750000 +vt 0.684333 0.750000 +vt 0.659416 0.750000 +vt 0.621833 0.750000 +vt 0.596916 0.750000 +vt 0.528083 0.750000 +vt 0.503166 0.750000 +vt 0.465583 0.750000 +vt 0.440666 0.750000 +vt 0.403083 0.750000 +vt 0.378166 0.750000 +vt 0.309333 0.750000 +vt 0.284416 0.750000 +vt 0.246833 0.750000 +vt 0.221916 0.750000 +vt 0.184333 0.750000 +vt 0.159416 0.750000 +vt 0.090583 0.750000 +vt 0.065666 0.750000 +vt 0.028083 0.644291 +vt 0.003167 0.644291 +vt 0.871833 0.644291 +vt 0.846917 0.644291 +vt 0.778083 0.644291 +vt 0.753167 0.644291 +vt 0.715583 0.644291 +vt 0.690667 0.644291 +vt 0.653083 0.644291 +vt 0.628167 0.644291 +vt 0.559333 0.644291 +vt 0.534417 0.644291 +vt 0.496833 0.644291 +vt 0.471917 0.644291 +vt 0.434333 0.644291 +vt 0.409417 0.644291 +vt 0.340583 0.644291 +vt 0.315667 0.644291 +vt 0.278083 0.644291 +vt 0.253167 0.644291 +vt 0.215583 0.644291 +vt 0.190667 0.644291 +vt 0.121833 0.644291 +vt 0.096917 0.644291 +vt 0.000080 0.533849 +vt 0.000002 0.538461 +vt 0.001573 0.538522 +vt -0.003083 0.961658 +vt 0.000030 0.961538 +vt 0.968771 0.538582 +vt 0.971816 0.961418 +vt 0.968711 0.961418 +vt 0.937521 0.538582 +vt 0.937461 0.961418 +vt 0.906271 0.538582 +vt 0.909316 0.961418 +vt 0.906211 0.961418 +vt 0.875021 0.538582 +vt 0.874961 0.961418 +vt 0.843771 0.538582 +vt 0.846816 0.961418 +vt 0.843711 0.961418 +vt 0.812461 0.961418 +vt 0.781271 0.538582 +vt 0.784316 0.961418 +vt 0.781211 0.961418 +vt 0.750021 0.538582 +vt 0.749961 0.961418 +vt 0.718771 0.538582 +vt 0.721816 0.961418 +vt 0.718711 0.961418 +vt 0.687521 0.538582 +vt 0.687461 0.961418 +vt 0.656271 0.538582 +vt 0.659316 0.961418 +vt 0.656211 0.961418 +vt 0.625021 0.538582 +vt 0.624961 0.961418 +vt 0.593771 0.538582 +vt 0.596816 0.961418 +vt 0.593711 0.961418 +vt 0.562521 0.538582 +vt 0.562461 0.961418 +vt 0.531271 0.538582 +vt 0.534316 0.961418 +vt 0.531211 0.961418 +vt 0.500011 0.538582 +vt 0.499980 0.961418 +vt 0.468771 0.538582 +vt 0.471816 0.961418 +vt 0.468711 0.961418 +vt 0.437521 0.538582 +vt 0.437461 0.961418 +vt 0.406271 0.538582 +vt 0.409316 0.961418 +vt 0.406211 0.961418 +vt 0.375021 0.538582 +vt 0.374961 0.961418 +vt 0.343771 0.538582 +vt 0.346816 0.961418 +vt 0.343711 0.961418 +vt 0.312521 0.538582 +vt 0.312461 0.961418 +vt 0.281271 0.538582 +vt 0.284316 0.961418 +vt 0.281211 0.961418 +vt 0.250021 0.538582 +vt 0.249961 0.961418 +vt 0.218771 0.538582 +vt 0.221816 0.961418 +vt 0.218711 0.961418 +vt 0.187521 0.538582 +vt 0.187461 0.961418 +vt 0.156271 0.538582 +vt 0.159316 0.961418 +vt 0.156211 0.961418 +vt 0.125021 0.538582 +vt 0.124961 0.961418 +vt 0.093771 0.538582 +vt 0.096816 0.961418 +vt 0.093711 0.961418 +vt 0.062521 0.538582 +vt 0.062461 0.961418 +vt 0.031170 0.533849 +vt 0.031271 0.538582 +vt 0.034316 0.961418 +vt 0.031211 0.961418 +vt 0.906250 0.630756 +vt 0.906250 0.644291 +vt 0.687500 0.630756 +vt 0.687500 0.644291 +vt 0.468750 0.630756 +vt 0.468750 0.644291 +vt 0.250000 0.630756 +vt 0.250000 0.644291 +vt 0.062500 0.630756 +vt 0.062500 0.644291 +vt 0.718750 0.736465 +vt 0.718750 0.750000 +vt 0.500000 0.736465 +vt 0.500000 0.750000 +vt 0.281250 0.736465 +vt 0.281250 0.750000 +vt 0.031250 0.763535 +vt 0.031250 0.750000 +vt 0.750000 0.842174 +vt 0.750000 0.855709 +vt 0.531250 0.842174 +vt 0.531250 0.855709 +vt 0.312500 0.842174 +vt 0.312500 0.855709 +vt 0.093750 0.842174 +vt 0.093750 0.855709 +vt 0.001571 0.842212 +vt 0.000000 0.842251 +vt 0.000000 0.855709 +vt 0.001584 0.855709 +vt 0.843750 0.630756 +vt 0.843750 0.644291 +vt 0.812500 0.644291 +vt 0.750000 0.630756 +vt 0.750000 0.644291 +vt 0.625000 0.630756 +vt 0.625000 0.644291 +vt 0.593750 0.630756 +vt 0.593750 0.644291 +vt 0.531250 0.630756 +vt 0.531250 0.644291 +vt 0.406250 0.630756 +vt 0.406250 0.644291 +vt 0.375000 0.630756 +vt 0.375000 0.644291 +vt 0.312500 0.630756 +vt 0.312500 0.644291 +vt 0.187500 0.630756 +vt 0.187500 0.644291 +vt 0.156250 0.630756 +vt 0.156250 0.644291 +vt 0.093750 0.630756 +vt 0.093750 0.644291 +vt 0.968750 0.657826 +vt 0.968750 0.644291 +vt 0.001572 0.630786 +vt 0.000000 0.630817 +vt 0.000000 0.644291 +vt 0.001584 0.644291 +vt 0.875000 0.736465 +vt 0.875000 0.750000 +vt 0.843750 0.736465 +vt 0.843750 0.750000 +vt 0.781250 0.736465 +vt 0.781250 0.750000 +vt 0.656250 0.736465 +vt 0.656250 0.750000 +vt 0.625000 0.736465 +vt 0.625000 0.750000 +vt 0.562500 0.736465 +vt 0.562500 0.750000 +vt 0.437500 0.736465 +vt 0.437500 0.750000 +vt 0.406250 0.736465 +vt 0.406250 0.750000 +vt 0.343750 0.736465 +vt 0.343750 0.750000 +vt 0.218750 0.736465 +vt 0.218750 0.750000 +vt 0.187500 0.736465 +vt 0.187500 0.750000 +vt 0.125000 0.736465 +vt 0.125000 0.750000 +vt 0.937500 0.763535 +vt 0.937500 0.750000 +vt 0.968750 0.763535 +vt 0.968750 0.750000 +vt 0.906250 0.842174 +vt 0.906250 0.855709 +vt 0.875000 0.842174 +vt 0.875000 0.855709 +vt 0.812500 0.842174 +vt 0.812500 0.855709 +vt 0.687500 0.842174 +vt 0.687500 0.855709 +vt 0.656250 0.842174 +vt 0.656250 0.855709 +vt 0.593750 0.842174 +vt 0.593750 0.855709 +vt 0.468750 0.842174 +vt 0.468750 0.855709 +vt 0.437500 0.842174 +vt 0.437500 0.855709 +vt 0.375000 0.842174 +vt 0.375000 0.855709 +vt 0.250000 0.842174 +vt 0.250000 0.855709 +vt 0.218750 0.842174 +vt 0.218750 0.855709 +vt 0.156250 0.842174 +vt 0.156250 0.855709 +vt 0.062500 0.842174 +vt 0.062500 0.855709 +vt 0.937500 0.869244 +vt 0.937500 0.855709 +vt 0.968750 0.869244 +vt 0.968750 0.855709 +vt 0.031250 0.869244 +vt 0.031250 0.855709 +vt 0.125000 0.842174 +vt 0.125000 0.855709 +vt 0.187500 0.842174 +vt 0.187500 0.855709 +vt 0.281250 0.842174 +vt 0.281250 0.855709 +vt 0.343750 0.842174 +vt 0.343750 0.855709 +vt 0.406250 0.842174 +vt 0.406250 0.855709 +vt 0.500000 0.842174 +vt 0.500000 0.855709 +vt 0.562500 0.842174 +vt 0.562500 0.855709 +vt 0.625000 0.842174 +vt 0.625000 0.855709 +vt 0.718750 0.842174 +vt 0.718750 0.855709 +vt 0.781250 0.842174 +vt 0.781250 0.855709 +vt 0.843750 0.842174 +vt 0.843750 0.855709 +vt 0.001571 0.736499 +vt 0.000000 0.736533 +vt 0.000000 0.750000 +vt 0.001583 0.750000 +vt 0.062500 0.736465 +vt 0.062500 0.750000 +vt 0.093750 0.736465 +vt 0.093750 0.750000 +vt 0.156250 0.736465 +vt 0.156250 0.750000 +vt 0.250000 0.736465 +vt 0.250000 0.750000 +vt 0.312500 0.736465 +vt 0.312500 0.750000 +vt 0.375000 0.736465 +vt 0.375000 0.750000 +vt 0.468750 0.736465 +vt 0.468750 0.750000 +vt 0.531250 0.736465 +vt 0.531250 0.750000 +vt 0.593750 0.736465 +vt 0.593750 0.750000 +vt 0.687500 0.736465 +vt 0.687500 0.750000 +vt 0.750000 0.736465 +vt 0.750000 0.750000 +vt 0.812500 0.736465 +vt 0.812500 0.750000 +vt 0.906250 0.736465 +vt 0.906250 0.750000 +vt 0.937500 0.657826 +vt 0.937500 0.644291 +vt 0.031250 0.657826 +vt 0.031250 0.644291 +vt 0.125000 0.630756 +vt 0.125000 0.644291 +vt 0.218750 0.630756 +vt 0.218750 0.644291 +vt 0.281250 0.630756 +vt 0.281250 0.644291 +vt 0.343750 0.630756 +vt 0.343750 0.644291 +vt 0.437500 0.630756 +vt 0.437500 0.644291 +vt 0.500000 0.630756 +vt 0.500000 0.644291 +vt 0.562500 0.630756 +vt 0.562500 0.644291 +vt 0.656250 0.630756 +vt 0.656250 0.644291 +vt 0.718750 0.630756 +vt 0.718750 0.644291 +vt 0.781250 0.630756 +vt 0.781250 0.644291 +vt 0.875000 0.630756 +vt 0.875000 0.644291 +vt 0.000000 0.657749 +vt 0.001571 0.657788 +vt 0.968750 0.630756 +vt 0.000000 0.763467 +vt 0.001571 0.763501 +vt 0.968750 0.736465 +vt 0.000000 0.869183 +vt 0.001572 0.869214 +vt 0.968750 0.842174 +vt 0.937500 0.630756 +vt 0.937500 0.736465 +vt 0.937500 0.842174 +vt 0.062500 0.657826 +vt 0.031250 0.630756 +vt 0.062500 0.763535 +vt 0.031250 0.736465 +vt 0.062500 0.869244 +vt 0.031250 0.842174 +vt 0.093750 0.657826 +vt 0.093750 0.763535 +vt 0.093750 0.869244 +vt 0.125000 0.657826 +vt 0.125000 0.763535 +vt 0.125000 0.869244 +vt 0.156250 0.657826 +vt 0.156250 0.763535 +vt 0.156250 0.869244 +vt 0.187500 0.657826 +vt 0.187500 0.763535 +vt 0.187500 0.869244 +vt 0.218750 0.657826 +vt 0.218750 0.763535 +vt 0.218750 0.869244 +vt 0.250000 0.657826 +vt 0.250000 0.763535 +vt 0.250000 0.869244 +vt 0.281250 0.657826 +vt 0.281250 0.763535 +vt 0.281250 0.869244 +vt 0.312500 0.657826 +vt 0.312500 0.763535 +vt 0.312500 0.869244 +vt 0.343750 0.657826 +vt 0.343750 0.763535 +vt 0.343750 0.869244 +vt 0.375000 0.657826 +vt 0.375000 0.763535 +vt 0.375000 0.869244 +vt 0.406250 0.657826 +vt 0.406250 0.763535 +vt 0.406250 0.869244 +vt 0.437500 0.657826 +vt 0.437500 0.763535 +vt 0.437500 0.869244 +vt 0.468750 0.657826 +vt 0.468750 0.763535 +vt 0.468750 0.869244 +vt 0.500000 0.657826 +vt 0.500000 0.763535 +vt 0.500000 0.869244 +vt 0.531250 0.657826 +vt 0.531250 0.763535 +vt 0.531250 0.869244 +vt 0.562500 0.657826 +vt 0.562500 0.763535 +vt 0.562500 0.869244 +vt 0.593750 0.657826 +vt 0.593750 0.763535 +vt 0.593750 0.869244 +vt 0.625000 0.657826 +vt 0.625000 0.763535 +vt 0.625000 0.869244 +vt 0.656250 0.657826 +vt 0.656250 0.763535 +vt 0.656250 0.869244 +vt 0.687500 0.657826 +vt 0.687500 0.763535 +vt 0.687500 0.869244 +vt 0.718750 0.657826 +vt 0.718750 0.763535 +vt 0.718750 0.869244 +vt 0.750000 0.657826 +vt 0.750000 0.763535 +vt 0.750000 0.869244 +vt 0.781250 0.657826 +vt 0.781250 0.763535 +vt 0.781250 0.869244 +vt 0.812500 0.657826 +vt 0.812500 0.763535 +vt 0.812500 0.869244 +vt 0.843750 0.657826 +vt 0.843750 0.763535 +vt 0.843750 0.869244 +vt 0.875000 0.657826 +vt 0.875000 0.763535 +vt 0.875000 0.869244 +vt 0.906250 0.657826 +vt 0.906250 0.763535 +vt 0.906250 0.869244 +vt 0.031250 0.538582 +vt 0.001572 0.538953 +vt 0.000000 0.657826 +vt 0.000000 0.735604 +vt 0.001571 0.736035 +vt 0.968750 0.538582 +vt 0.001571 0.763965 +vt 0.000000 0.960677 +vt 0.001572 0.961047 +vt 0.906250 0.538582 +vt 0.843750 0.538582 +vt 0.781250 0.538582 +vt 0.718750 0.538582 +vt 0.656250 0.538582 +vt 0.593750 0.538582 +vt 0.531250 0.538582 +vt 0.468750 0.538582 +vt 0.406250 0.538582 +vt 0.343750 0.538582 +vt 0.281250 0.538582 +vt 0.218750 0.538582 +vt 0.156250 0.538582 +vt 0.093750 0.538582 +vt 0.000000 0.842174 +vt 0.000000 0.764396 +vt 0.000000 0.539323 +vt 0.270141 0.423938 +vt 0.250000 0.428745 +vt 0.284321 0.422542 +vt 0.317378 0.412665 +vt 0.315041 0.413223 +vt 0.397602 0.348624 +vt 0.427342 0.285275 +vt 0.415193 0.181575 +vt 0.431185 0.213960 +vt 0.399616 0.150030 +vt 0.383205 0.116795 +vt 0.285193 0.073075 +vt 0.320132 0.080687 +vt 0.250000 0.065407 +vt 0.149611 0.099758 +vt 0.178149 0.076536 +vt 0.122125 0.122125 +vt 0.093492 0.145425 +vt 0.072621 0.250000 +vt 0.072272 0.214648 +vt 0.072969 0.285214 +vt 0.125553 0.374447 +vt 0.097067 0.352187 +vt 0.152263 0.396274 +vt 0.127928 0.376303 +vt 0.180626 0.417484 +vt 0.156129 0.398340 +vt 0.283943 0.420644 +vt 0.152682 0.395647 +vt 0.190922 0.425529 +vt 0.212674 0.437653 +vt 0.207896 0.438793 +vt 0.195343 0.428984 +vt 0.190402 0.427900 +vt 0.227322 0.434157 +vt 0.226937 0.435912 +vt 0.223307 0.435116 +vt 0.073250 0.313691 +vt 0.073343 0.323174 +vt 0.073290 0.317774 +vt 0.071661 0.314476 +vt 0.086027 0.343559 +vt 0.073448 0.333729 +vt 0.090369 0.346952 +vt 0.088226 0.348011 +vt 0.089655 0.148547 +vt 0.071893 0.176226 +vt 0.071763 0.163107 +vt 0.083120 0.153865 +vt 0.086449 0.146994 +vt 0.071945 0.181528 +vt 0.070141 0.180654 +vt 0.071901 0.177022 +vt 0.225335 0.060033 +vt 0.211619 0.057044 +vt 0.219594 0.058782 +vt 0.224749 0.057560 +vt 0.191898 0.065347 +vt 0.204111 0.055409 +vt 0.188761 0.067900 +vt 0.188354 0.066187 +vt 0.380444 0.111203 +vt 0.357667 0.088865 +vt 0.370830 0.091733 +vt 0.377584 0.105411 +vt 0.382170 0.108995 +vt 0.351484 0.087518 +vt 0.352700 0.085962 +vt 0.355930 0.088487 +vt 0.437615 0.263394 +vt 0.443903 0.250000 +vt 0.440159 0.257974 +vt 0.440168 0.263390 +vt 0.440117 0.232049 +vt 0.446378 0.244728 +vt 0.437126 0.225992 +vt 0.440107 0.225987 +vt 0.353806 0.407296 +vt 0.351586 0.404501 +vt 0.354653 0.406624 +vt 0.379714 0.386727 +vt 0.373865 0.399184 +vt 0.359793 0.402543 +vt 0.381954 0.381954 +vt 0.381764 0.382359 +vt 0.383099 0.384039 +vn 0.9289588 0.0016529 0.3701793 +vn 0.9385162 -0.3128037 0.1460862 +vn 0.8420409 0.5310559 0.0945873 +vn 0.0000000 -0.0036998 -0.9999932 +vn 0.9940958 0.1084807 0.0023514 +vn -0.0021121 -0.9999882 -0.0043789 +vn 0.0025295 0.2861393 -0.9581847 +vn 0.0025588 0.3795473 -0.9251688 +vn 0.0000000 -0.6487705 -0.7609841 +vn -0.0225521 -0.7179604 -0.6957185 +vn -0.0000000 -0.6957389 -0.7182947 +vn -0.0113933 -0.6544645 -0.7560069 +vn -0.0117997 -0.6659070 -0.7459414 +vn -0.0109670 -0.6769950 -0.7359059 +vn 0.0285357 -0.6700184 -0.7417958 +vn 0.9209789 0.1464730 0.3610312 +vn 0.9216649 0.0314493 0.3867102 +vn 0.9352469 -0.0510769 0.3502919 +vn -0.0688331 -0.4059786 0.9112867 +vn -0.8483151 0.0887601 -0.5219992 +vn -0.7702430 -0.3501725 -0.5330149 +vn -0.9605415 -0.0637489 -0.2707325 +vn -0.9539094 0.1167291 -0.2764618 +vn -0.9641369 0.0201802 -0.2646371 +vn 0.9705139 0.0209593 0.2401320 +vn -0.3585558 -0.9321537 -0.0502715 +vn 0.0002285 0.0040082 -0.9999919 +vn -0.0000000 0.9707329 -0.2401616 +vn 0.9997114 -0.0240137 -0.0007001 +vn 1.0000000 0.0000000 0.0000000 +vn 0.9941300 -0.0569439 -0.0919945 +vn -0.0250966 -0.9996849 0.0005850 +vn -0.0439118 -0.9990335 -0.0019578 +vn 0.9946016 -0.1037001 -0.0037468 +vn 0.9871790 0.1596154 0.0006926 +vn -0.0000000 -0.9713499 -0.2376540 +vn 0.9958598 0.0909014 -0.0004361 +vn -0.0203445 -0.9929101 0.1171134 +vn -0.0524207 -0.9921703 0.1133585 +vn -0.0132479 -0.9909529 0.1335545 +vn -0.3830220 -0.9205962 0.0761369 +vn 0.9999451 0.0083663 -0.0063023 +vn -0.0357852 -0.9993591 -0.0008792 +vn -0.3619312 -0.9319603 0.0213495 +vn -0.3990388 -0.9114961 0.0997145 +vn -0.0473622 -0.9924186 0.1134115 +vn -0.0290809 -0.9926967 0.1170789 +vn -0.0208995 -0.9908239 0.1335339 +vn -0.9915188 0.1299449 0.0021725 +vn -0.0057805 0.9999833 -0.0001297 +vn -0.0014665 -0.1665466 -0.9860325 +vn 0.0005636 -0.1721798 -0.9850654 +vn 0.0002254 0.1727701 0.9849622 +vn 0.8702219 -0.4862760 0.0790538 +vn -0.0000371 0.9999752 -0.0070393 +vn -0.9289588 0.0016529 0.3701793 +vn -0.9385162 -0.3128037 0.1460862 +vn -0.8420409 0.5310559 0.0945873 +vn -0.9940958 0.1084807 0.0023514 +vn 0.0021121 -0.9999882 -0.0043789 +vn -0.0025295 0.2861393 -0.9581847 +vn -0.0025588 0.3795473 -0.9251688 +vn 0.0225521 -0.7179604 -0.6957185 +vn 0.0113933 -0.6544645 -0.7560069 +vn 0.0117997 -0.6659070 -0.7459414 +vn 0.0109670 -0.6769950 -0.7359059 +vn -0.0285357 -0.6700184 -0.7417958 +vn -0.9209789 0.1464730 0.3610312 +vn -0.9216649 0.0314493 0.3867102 +vn -0.9352469 -0.0510769 0.3502919 +vn 0.0688331 -0.4059786 0.9112867 +vn 0.8483151 0.0887601 -0.5219992 +vn 0.7702430 -0.3501725 -0.5330149 +vn 0.9605415 -0.0637489 -0.2707325 +vn 0.9539094 0.1167291 -0.2764618 +vn 0.9641369 0.0201802 -0.2646371 +vn -0.9705139 0.0209593 0.2401320 +vn 0.3585558 -0.9321537 -0.0502715 +vn -0.0002285 0.0040082 -0.9999919 +vn -0.9997114 -0.0240137 -0.0007001 +vn 0.0000745 0.9992896 0.0376867 +vn -0.9941300 -0.0569439 -0.0919945 +vn 0.0250966 -0.9996849 0.0005850 +vn 0.0439118 -0.9990335 -0.0019578 +vn -0.9946016 -0.1037001 -0.0037468 +vn -0.9871790 0.1596154 0.0006926 +vn -0.9958598 0.0909014 -0.0004361 +vn 0.0203445 -0.9929101 0.1171134 +vn 0.0524207 -0.9921703 0.1133585 +vn 0.0132479 -0.9909529 0.1335545 +vn 0.3830220 -0.9205962 0.0761369 +vn -1.0000000 -0.0000000 0.0000000 +vn -0.0000000 0.9989022 0.0468440 +vn -0.9999451 0.0083663 -0.0063023 +vn 0.0357852 -0.9993591 -0.0008792 +vn 0.3619312 -0.9319603 0.0213495 +vn 0.3990388 -0.9114961 0.0997145 +vn 0.0473622 -0.9924186 0.1134115 +vn 0.0290809 -0.9926967 0.1170789 +vn 0.0208995 -0.9908239 0.1335339 +vn 0.9915188 0.1299449 0.0021725 +vn 0.0057805 0.9999833 -0.0001297 +vn 0.0014665 -0.1665466 -0.9860325 +vn 0.0000371 0.9999752 -0.0070393 +vn -0.0005636 -0.1721798 -0.9850654 +vn -0.0002254 0.1727701 0.9849622 +vn -0.8702219 -0.4862760 0.0790538 +vn 0.0000000 -0.0086327 -0.9999627 +vn 0.0000000 -0.0098658 -0.9999513 +vn 0.0000000 -0.1402751 0.9901126 +vn 0.0423616 -0.3102874 0.9496985 +vn -0.0423616 -0.3102874 0.9496985 +vn 0.0002591 0.8707899 0.4916553 +vn -0.0002591 0.8707899 0.4916553 +vn -0.0065782 0.1267277 -0.9919157 +vn 0.0065782 0.1267277 -0.9919157 +vn 0.0000000 0.0000000 1.0000000 +vn 0.0001130 -0.1552355 -0.9878775 +vn 0.0000741 0.9999759 -0.0069420 +vn -0.0001130 -0.1552355 -0.9878775 +vn -0.0000741 0.9999759 -0.0069420 +vn -0.0000745 0.9992896 0.0376867 +vn 0.0000000 -0.0000000 -1.0000000 +vn -0.0001863 0.9993130 0.0370601 +vn 0.0001863 0.9993130 0.0370601 +vn 0.0071730 -0.9983837 -0.0563794 +vn -0.0010004 0.9999966 -0.0024001 +vn -0.9968296 -0.0777991 0.0166765 +vn 0.0031984 -0.0132566 -0.9999070 +vn -0.9671767 -0.0324116 -0.2520291 +vn -0.9593957 -0.0128362 -0.2817715 +vn -0.9459571 -0.1314012 -0.2964775 +vn -0.0009996 -0.7234581 -0.6903675 +vn 0.0008398 -0.4170443 0.9088858 +vn -0.0071730 -0.9983837 -0.0563794 +vn 0.0010004 0.9999966 -0.0024001 +vn 0.9968296 -0.0777991 0.0166765 +vn -0.0031984 -0.0132566 -0.9999070 +vn 0.9671767 -0.0324116 -0.2520291 +vn 0.9593957 -0.0128362 -0.2817715 +vn 0.9459571 -0.1314012 -0.2964775 +vn 0.0009996 -0.7234581 -0.6903675 +vn -0.0008398 -0.4170443 0.9088858 +vn -0.2899008 -0.9549401 -0.0636147 +vn -0.0413894 -0.9916094 -0.1224654 +vn -0.0377049 -0.9925131 -0.1161727 +vn -0.0254248 -0.9933600 -0.1122031 +vn 0.2899008 -0.9549401 -0.0636147 +vn 0.0413894 -0.9916094 -0.1224654 +vn 0.0377049 -0.9925131 -0.1161727 +vn 0.0254248 -0.9933600 -0.1122031 +vn -0.0000000 0.9967469 0.0805953 +vn -1.0000000 -0.0000000 -0.0000000 +vn 0.0048912 -0.9999880 -0.0000973 +vn 0.0000000 0.0009250 -0.9999996 +vn 0.7294492 -0.6666931 0.1530494 +vn 0.1081138 -0.9623499 0.2493875 +vn 0.0000000 0.9736839 -0.2279028 +vn 0.0000000 0.9713499 0.2376540 +vn 0.0000000 0.0036998 0.9999932 +vn 0.0000000 -0.0046248 -0.9999893 +vn 0.9366355 0.0013745 0.3503028 +vn 0.6901661 0.7236270 -0.0058982 +vn 0.0000000 -0.9722021 -0.2341433 +vn 0.7311449 0.6643975 0.1549295 +vn -0.9998800 0.0145726 -0.0052516 +vn 0.6579532 -0.7530589 0.0000626 +vn -0.9995568 0.0151135 -0.0256471 +vn 0.0000000 0.9999936 0.0035680 +vn 0.0000000 -1.0000000 -0.0001622 +vn 0.0000000 0.0495838 -0.9987700 +vn 0.0000000 -0.9999864 -0.0052223 +vn 0.8937283 0.4234865 0.1480168 +vn 0.0000000 0.9999864 0.0052223 +vn 0.8647182 -0.4763966 0.1590871 +vn 0.0000000 -0.0006166 -0.9999998 +vn 0.9438360 0.0038409 0.3303919 +vn 0.0000000 0.0006166 0.9999998 +vn 0.0000000 -0.9999584 0.0091171 +vn 0.0000000 0.9999211 0.0125596 +vn 0.0000000 0.9790942 -0.2034073 +vn 0.0000000 -0.9781176 0.2080526 +vn 0.7130380 -0.6860956 0.1443939 +vn -0.0205993 0.9816320 0.1896690 +vn 0.0000000 -0.0557308 -0.9984458 +vn 0.0000000 0.0646253 0.9979096 +vn 0.9347433 0.0214475 0.3546759 +vn 0.4456757 0.8910841 0.0856875 +vn -0.8841949 -0.3940936 -0.2507782 +vn 0.0245779 -0.9750125 -0.2207864 +vn -0.0122220 -0.0169557 -0.9997815 +vn 0.6554891 -0.7552047 -0.0000624 +vn 0.0000000 1.0000000 0.0000973 +vn -0.0149649 0.0033915 -0.9998823 +vn 0.0244874 -0.9708680 -0.2383603 +vn -0.0206858 0.9831972 0.1813705 +vn 0.0023022 -0.9594701 0.2818011 +vn 0.2160871 -0.9763741 -0.0000738 +vn -0.0319356 -0.7245576 -0.6884740 +vn 0.2061313 0.4457377 0.8711072 +vn 0.0611804 0.7082904 0.7032650 +vn -0.0208199 -0.9908255 0.1335341 +vn -0.0504401 -0.9921320 0.1145858 +vn -0.0290809 -0.9926967 0.1170789 +vn -0.3850933 -0.9142987 0.1255434 +vn 0.0242360 0.7522350 0.6584490 +vn -0.1980766 0.9783087 0.0606442 +vn 0.0176443 0.7776007 0.6285108 +vn -0.0194930 -0.7778876 -0.6281010 +vn -0.0239780 -0.7527785 -0.6578370 +vn 0.0319356 -0.7245576 -0.6884740 +vn -0.2061313 0.4457377 0.8711072 +vn -0.0611804 0.7082904 0.7032650 +vn 0.0208199 -0.9908255 0.1335341 +vn 0.0504401 -0.9921320 0.1145858 +vn 0.0290809 -0.9926967 0.1170789 +vn 0.3850933 -0.9142987 0.1255434 +vn -0.0242360 0.7522350 0.6584490 +vn 0.1980766 0.9783087 0.0606442 +vn -0.0176443 0.7776007 0.6285108 +vn 0.0194930 -0.7778876 -0.6281010 +vn -1.0000000 -0.0000000 0.0000000 +vn 0.0239780 -0.7527785 -0.6578370 +vn -0.1696062 -0.3921611 -0.9041258 +vn 0.1696062 -0.3921611 -0.9041258 +vn 1.0000000 0.0000000 0.0000000 +vn -0.0048912 -0.9999880 -0.0000973 +vn 0.0000000 0.0009250 -0.9999996 +vn -0.7294492 -0.6666931 0.1530494 +vn -0.1081138 -0.9623499 0.2493875 +vn 0.0000000 0.9736839 -0.2279028 +vn 0.0000000 0.9713499 0.2376540 +vn 0.0000000 0.0036998 0.9999932 +vn 0.0000000 -0.0046248 -0.9999893 +vn -0.9366355 0.0013745 0.3503028 +vn -0.6901661 0.7236270 -0.0058982 +vn 0.0000000 -0.9722021 -0.2341433 +vn -0.7311449 0.6643975 0.1549295 +vn 0.9998800 0.0145726 -0.0052516 +vn -0.6579532 -0.7530589 0.0000626 +vn 0.9995568 0.0151135 -0.0256471 +vn 0.0000000 0.9999936 0.0035680 +vn 0.0000000 -1.0000000 -0.0001622 +vn 0.0000000 0.0495838 -0.9987700 +vn 0.0000000 -0.9999864 -0.0052223 +vn -0.8937283 0.4234865 0.1480168 +vn 0.0000000 0.9999864 0.0052223 +vn -0.8647182 -0.4763966 0.1590871 +vn 0.0000000 -0.0006166 -0.9999998 +vn -0.9438360 0.0038409 0.3303919 +vn 0.0000000 0.0006166 0.9999998 +vn 0.0000000 -0.9999584 0.0091171 +vn 0.0000000 0.9999211 0.0125596 +vn 0.0000000 0.9790942 -0.2034073 +vn 0.0000000 -0.9781176 0.2080526 +vn -0.7130380 -0.6860956 0.1443939 +vn 0.0205993 0.9816320 0.1896690 +vn 0.0000000 -0.0557308 -0.9984458 +vn 0.0000000 0.0646253 0.9979096 +vn -0.9347433 0.0214475 0.3546759 +vn -0.4456757 0.8910841 0.0856875 +vn 0.8841949 -0.3940936 -0.2507782 +vn -0.0245779 -0.9750125 -0.2207864 +vn 0.0122220 -0.0169557 -0.9997815 +vn -0.6554891 -0.7552047 -0.0000624 +vn 0.0000000 1.0000000 0.0000973 +vn 0.0149649 0.0033915 -0.9998823 +vn -0.0244874 -0.9708680 -0.2383603 +vn 0.0206858 0.9831972 0.1813705 +vn -0.0023022 -0.9594701 0.2818011 +vn -0.2161273 -0.9763652 -0.0000738 +vn 1.0000000 0.0000000 0.0000000 +vn -0.9365991 0.3495210 -0.0248420 +vn -0.8164419 -0.5759763 0.0409132 +vn -0.9801064 0.1659132 -0.1089229 +vn -0.9338697 -0.2990122 0.1961609 +vn -0.9804913 -0.1633056 -0.1093991 +vn -0.9351052 0.2944438 0.1971831 +vn -0.9369684 -0.3483817 -0.0268399 +vn -0.8174011 0.5743693 0.0442204 +vn -0.9549601 -0.2876495 0.0728630 +vn -0.8623603 0.4907923 -0.1243288 +vn -0.9924048 -0.0008116 0.1230121 +vn -0.9736432 0.0013602 -0.2280726 +vn -0.9554062 0.2859608 0.0736572 +vn -0.8635409 -0.4883278 -0.1258293 +vn -1.0000000 0.0000000 0.0000000 +vn -0.0000000 -0.9974879 0.0708375 +vn 0.0000000 -0.5595279 -0.8288115 +vn 0.0000000 0.5595279 0.8288115 +vn 0.0000000 -0.8360630 0.5486335 +vn 0.0000000 -0.9873937 -0.1582838 +vn 0.0000000 0.9873937 0.1582838 +vn 0.0000000 0.8308153 0.5565482 +vn 0.0000000 -0.9878937 0.1551320 +vn -0.0000000 0.9878937 -0.1551320 +vn 0.0000000 0.9970511 0.0767403 +vn -0.0000000 -0.5904913 0.8070440 +vn 0.0000000 0.5904913 -0.8070440 +vn -0.0000000 0.9693748 -0.2455861 +vn 0.0000000 0.9235508 0.3834761 +vn 0.0000000 -0.9235508 -0.3834761 +vn -0.0000000 0.0058580 -0.9999828 +vn -0.0000000 0.9999998 0.0006162 +vn -0.0000000 -0.9999998 -0.0006162 +vn 0.0000000 -0.9683753 -0.2494980 +vn 0.0000000 0.9258074 -0.3779956 +vn 0.0000000 -0.9258074 0.3779956 +vn 0.0000000 -0.9970104 -0.0772674 +vn 0.0000000 -0.8225564 -0.5686836 +vn 0.0000000 0.8360062 -0.5487200 +vn -0.0000000 0.9975192 -0.0703947 +vn 0.0000000 0.9668574 0.2553171 +vn -0.9028974 0.3535698 0.2444681 +vn -0.7421048 -0.6686227 0.0471610 +vn -0.8985071 -0.3669702 0.2408690 +vn -0.8766194 -0.4652334 -0.1228668 +vn -0.8040224 -0.5748953 -0.1518002 +vn -0.0000000 -0.0314365 0.9995058 +vn -0.0000000 -0.0311286 0.9995154 +vn 0.0000000 -0.9693843 0.2455486 +vn -0.9580333 0.0090170 -0.2865150 +vn -0.7435195 0.6667164 0.0516527 +vn -0.8001267 0.5814662 -0.1472899 +vn -0.8316334 0.5536667 0.0428844 +vn -0.9999999 0.0005398 0.0000000 +vn -1.0000000 0.0002699 0.0000000 +vn -1.0000000 -0.0002699 0.0000000 +vn -0.9764094 0.1697164 0.1334952 +vn -0.9731702 -0.1924780 0.1260638 +vn -0.9830826 -0.1507066 -0.1040969 +vn -0.9417533 -0.3253498 -0.0851366 +vn -0.9171960 -0.3973995 0.0287238 +vn -0.9889431 0.0254459 -0.1460958 +vn -0.9403650 0.3297573 -0.0835094 +vn -0.9175197 0.3965359 0.0302805 +vn -0.9606280 0.2686331 0.0709235 +vn -0.4297850 0.9006835 -0.0636723 +vn -0.5024805 0.8359789 0.2205734 +vn -0.8208127 -0.0172609 0.5709366 +vn -0.4975643 -0.8408361 0.2131302 +vn -0.4311733 -0.8995795 -0.0696150 +vn -0.6700685 -0.6107585 -0.4218794 +vn -0.6607477 0.6273189 -0.4121692 +vn 0.0000000 0.9974879 -0.0708375 +vn 0.0000000 0.8360630 -0.5486335 +vn 0.0000000 -0.8308153 -0.5565482 +vn 0.0000000 -0.9970511 -0.0767403 +vn -0.0000000 -0.9693748 0.2455861 +vn 0.0000000 -0.0058580 0.9999828 +vn -0.0000000 0.9683753 0.2494980 +vn -0.0000000 0.9975099 -0.0705265 +vn 0.0000000 0.9669035 0.2551422 +vn 0.0000000 -0.0302018 0.9995438 +vn 0.0000000 -0.9693409 0.2457197 +vn -0.0000000 -0.9970213 -0.0771273 +vn 0.0000000 -0.8228360 -0.5682789 +vn 0.0000000 0.8357794 -0.5490654 +vn -0.4382643 -0.8966098 0.0633657 +vn -0.5115128 -0.8308452 -0.2192052 +vn -0.8271755 0.0169536 -0.5616879 +vn -0.5066296 0.8357201 -0.2118924 +vn -0.4396912 0.8954737 0.0692716 +vn -0.6788958 0.6041209 0.4172990 +vn -0.6697035 -0.6206481 0.4077905 +vn 0.3170154 -0.9344691 -0.1620765 +vn 0.0000000 -0.9832227 -0.1824090 +vn 0.0000000 -0.9624317 -0.2715238 +vn 0.0000000 -0.9222407 -0.3866163 +vn 0.0000000 -0.8380330 -0.5456196 +vn 0.0000000 -0.6429348 -0.7659209 +vn 0.0000000 -0.2097206 -0.9777614 +vn 0.0000000 0.3659073 -0.9306513 +vn 0.0000000 0.7183983 -0.6956320 +vn -0.0000000 0.8698919 -0.4932425 +vn 0.0000000 0.9369852 -0.3493690 +vn 0.0000000 0.9699297 -0.2433851 +vn 0.0000000 0.9871977 -0.1595015 +vn 0.0000000 0.9961240 -0.0879601 +vn 0.0000000 0.9997456 -0.0225573 +vn 0.0000000 0.9991458 0.0413240 +vn -0.0000000 0.9941508 0.1080009 +vn -0.0000000 0.9832227 0.1824090 +vn 0.0000000 0.9624317 0.2715238 +vn -0.0000000 0.9222407 0.3866163 +vn 0.0000000 0.8380330 0.5456196 +vn 0.0000000 0.6429348 0.7659209 +vn -0.0000000 0.2097206 0.9777614 +vn 0.0000000 -0.3659073 0.9306513 +vn 0.0000000 -0.7183983 0.6956320 +vn 0.0000000 -0.8698919 0.4932425 +vn 0.0000000 -0.9369852 0.3493690 +vn -0.0000000 -0.9699297 0.2433851 +vn 0.0000000 -0.9871977 0.1595015 +vn 0.3503465 -0.9050783 -0.2410199 +vn 0.0000000 -0.9941508 -0.1080009 +vn 0.2970828 -0.9502532 -0.0935987 +vn -0.0000000 -0.9997456 0.0225573 +vn 0.7463767 -0.6651815 -0.0213402 +vn 0.9726447 -0.2321787 -0.0074364 +vn -0.2877441 -0.9572224 0.0304728 +vn -0.7463767 -0.6651815 -0.0213402 +vn -0.9726447 -0.2321787 -0.0074364 +vn 0.7577225 -0.6494363 -0.0639454 +vn 0.9744263 -0.2236272 -0.0220074 +vn -0.7577225 -0.6494363 -0.0639454 +vn -0.9744263 -0.2236272 -0.0220074 +vn 0.7803037 -0.6162014 -0.1068730 +vn 0.9777037 -0.2068952 -0.0359146 +vn -0.7803037 -0.6162014 -0.1068730 +vn -0.9777037 -0.2068952 -0.0359146 +vn 0.8129620 -0.5626962 -0.1498860 +vn 0.9820990 -0.1820135 -0.0485041 +vn -0.8129620 -0.5626962 -0.1498860 +vn -0.9820990 -0.1820135 -0.0485041 +vn 0.8534449 -0.4846594 -0.1916692 +vn 0.9868580 -0.1502738 -0.0594063 +vn -0.8534449 -0.4846594 -0.1916692 +vn -0.9868580 -0.1502738 -0.0594063 +vn 0.8966769 -0.3784016 -0.2297450 +vn 0.9913746 -0.1120124 -0.0680418 +vn -0.8966769 -0.3784016 -0.2297450 +vn -0.9913746 -0.1120124 -0.0680418 +vn 0.9346680 -0.2426673 -0.2598236 +vn 0.9948390 -0.0692752 -0.0741371 +vn -0.9346680 -0.2426673 -0.2598236 +vn -0.9948390 -0.0692752 -0.0741371 +vn 0.9572895 -0.0838450 -0.2767070 +vn 0.9967411 -0.0234960 -0.0771694 +vn -0.9572895 -0.0838450 -0.2767070 +vn -0.9967411 -0.0234960 -0.0771694 +vn 0.9572457 0.0843856 -0.2766944 +vn 0.9967411 0.0234960 -0.0771694 +vn -0.9572457 0.0843856 -0.2766944 +vn -0.9967411 0.0234960 -0.0771694 +vn 0.9345473 0.2431675 -0.2597900 +vn 0.9948454 0.0692757 -0.0740502 +vn -0.9345473 0.2431675 -0.2597900 +vn -0.9948454 0.0692757 -0.0740502 +vn 0.8966074 0.3786273 -0.2296445 +vn 0.9913447 0.1122776 -0.0680397 +vn -0.8966074 0.3786273 -0.2296445 +vn -0.9913447 0.1122776 -0.0680397 +vn 0.8532569 0.4850380 -0.1915483 +vn 0.9868631 0.1502745 -0.0593198 +vn -0.8532569 0.4850380 -0.1915483 +vn -0.9868631 0.1502745 -0.0593198 +vn 0.8128745 0.5628668 -0.1497199 +vn 0.9820514 0.1822707 -0.0485018 +vn -0.8128745 0.5628668 -0.1497199 +vn -0.9820514 0.1822707 -0.0485018 +vn 0.7802031 0.6163438 -0.1067873 +vn 0.9777067 0.2068959 -0.0358287 +vn -0.7802031 0.6163438 -0.1067873 +vn -0.9777067 0.2068959 -0.0358287 +vn 0.7577293 0.6494421 -0.0638062 +vn 0.9743687 0.2238780 -0.0220061 +vn -0.7577293 0.6494421 -0.0638062 +vn -0.9743687 0.2238780 -0.0220061 +vn 0.7463788 0.6651835 -0.0212025 +vn 0.9726447 0.2321787 -0.0074364 +vn -0.7463788 0.6651835 -0.0212025 +vn -0.9726447 0.2321787 -0.0074364 +vn 0.7463767 0.6651815 0.0213402 +vn 0.9726447 0.2321787 0.0074364 +vn -0.7463767 0.6651815 0.0213402 +vn -0.9726447 0.2321787 0.0074364 +vn 0.7577225 0.6494363 0.0639454 +vn 0.9744263 0.2236272 0.0220074 +vn -0.7577225 0.6494363 0.0639454 +vn -0.9744263 0.2236272 0.0220074 +vn 0.7803037 0.6162014 0.1068730 +vn 0.9777037 0.2068952 0.0359146 +vn -0.7803037 0.6162014 0.1068730 +vn -0.9777037 0.2068952 0.0359146 +vn 0.8129620 0.5626962 0.1498860 +vn 0.9820990 0.1820135 0.0485041 +vn -0.8129620 0.5626962 0.1498860 +vn -0.9820990 0.1820135 0.0485041 +vn 0.8534449 0.4846594 0.1916692 +vn 0.9868580 0.1502738 0.0594063 +vn -0.8534449 0.4846594 0.1916692 +vn -0.9868580 0.1502738 0.0594063 +vn 0.8966769 0.3784016 0.2297450 +vn 0.9913746 0.1120124 0.0680418 +vn -0.8966769 0.3784016 0.2297450 +vn -0.9913746 0.1120124 0.0680418 +vn 0.9346680 0.2426673 0.2598236 +vn 0.9948390 0.0692752 0.0741371 +vn -0.9346680 0.2426673 0.2598236 +vn -0.9948390 0.0692752 0.0741371 +vn 0.9572895 0.0838450 0.2767070 +vn 0.9967411 0.0234960 0.0771694 +vn -0.9572895 0.0838450 0.2767070 +vn -0.9967411 0.0234960 0.0771694 +vn 0.9572457 -0.0843856 0.2766944 +vn 0.9967411 -0.0234960 0.0771694 +vn -0.9572457 -0.0843856 0.2766944 +vn -0.9967411 -0.0234960 0.0771694 +vn 0.9345473 -0.2431675 0.2597900 +vn 0.9948454 -0.0692757 0.0740502 +vn -0.9345473 -0.2431675 0.2597900 +vn -0.9948454 -0.0692757 0.0740502 +vn 0.8966074 -0.3786273 0.2296445 +vn 0.9913447 -0.1122776 0.0680397 +vn -0.8966074 -0.3786273 0.2296445 +vn -0.9913447 -0.1122776 0.0680397 +vn 0.8532569 -0.4850380 0.1915483 +vn 0.9868631 -0.1502745 0.0593198 +vn -0.8532569 -0.4850380 0.1915483 +vn -0.9868631 -0.1502745 0.0593198 +vn 0.8128745 -0.5628668 0.1497199 +vn 0.9820514 -0.1822707 0.0485018 +vn -0.8128745 -0.5628668 0.1497199 +vn -0.9820514 -0.1822707 0.0485018 +vn 0.7802031 -0.6163438 0.1067873 +vn 0.9777067 -0.2068959 0.0358287 +vn -0.7802031 -0.6163438 0.1067873 +vn -0.9777067 -0.2068959 0.0358287 +vn 0.0000000 -0.9961240 0.0879601 +vn 0.7577293 -0.6494421 0.0638062 +vn 0.9743687 -0.2238780 0.0220061 +vn -0.7577293 -0.6494421 0.0638062 +vn -0.9743687 -0.2238780 0.0220061 +vn 0.2877423 -0.9572165 -0.0306731 +vn 0.7463788 -0.6651835 0.0212025 +vn 0.9726447 -0.2321787 0.0074364 +vn -0.7463788 -0.6651835 0.0212025 +vn -0.9726447 -0.2321787 0.0074364 +vn -0.0000000 -0.9991458 -0.0413240 +vn -0.2877423 -0.9572165 -0.0306731 +vn -0.2970525 -0.9502839 0.0933822 +vn -0.2970828 -0.9502532 -0.0935987 +vn -0.1711419 -0.9664881 -0.1913404 +vn -0.1684670 -0.9856197 0.0131406 +vn -0.3169415 -0.9345237 0.1619062 +vn -0.0828237 -0.9279956 -0.3632691 +vn 0.2970525 -0.9502839 0.0933822 +vn -0.3502157 -0.9051918 0.2407835 +vn 0.3169415 -0.9345237 0.1619062 +vn -0.4015742 -0.8517774 0.3364720 +vn 0.3502157 -0.9051918 0.2407835 +vn -0.4768098 -0.7516058 0.4557863 +vn 0.4015742 -0.8517774 0.3364720 +vn -0.5756164 -0.5588170 0.5969835 +vn 0.4768098 -0.7516058 0.4557863 +vn -0.6634523 -0.2180561 0.7157392 +vn 0.5755276 -0.5588198 0.5970666 +vn -0.6636731 0.2166685 0.7159559 +vn 0.6634084 -0.2180417 0.7157843 +vn -0.5758180 0.5581122 0.5974482 +vn 0.6636731 0.2166685 0.7159559 +vn -0.4769868 0.7512699 0.4561548 +vn 0.5758180 0.5581122 0.5974482 +vn -0.4017362 0.8516031 0.3367197 +vn 0.4769868 0.7512699 0.4561548 +vn -0.3503465 0.9050783 0.2410199 +vn 0.4017362 0.8516031 0.3367197 +vn -0.3170154 0.9344691 0.1620765 +vn 0.3503465 0.9050783 0.2410199 +vn -0.2970828 0.9502532 0.0935987 +vn 0.3170154 0.9344691 0.1620765 +vn -0.2877423 0.9572165 0.0306731 +vn 0.2970828 0.9502532 0.0935987 +vn -0.2877441 0.9572224 -0.0304728 +vn 0.2877423 0.9572165 0.0306731 +vn -0.2970956 0.9502706 -0.0933809 +vn 0.2877441 0.9572224 -0.0304728 +vn -0.3170272 0.9344915 -0.1619242 +vn 0.2970525 0.9502839 -0.0933822 +vn -0.3502157 0.9051918 -0.2407835 +vn 0.3169818 0.9345064 -0.1619268 +vn -0.4015742 0.8517774 -0.3364720 +vn 0.3502157 0.9051918 -0.2407835 +vn -0.4768098 0.7516058 -0.4557863 +vn 0.4015742 0.8517774 -0.3364720 +vn -0.5755276 0.5588198 -0.5970666 +vn 0.4767954 0.7515830 -0.4558389 +vn -0.6634084 0.2180417 -0.7157843 +vn 0.5754480 0.5589898 -0.5969841 +vn -0.6636140 -0.2166837 -0.7160061 +vn 0.6634084 0.2180417 -0.7157843 +vn -0.5758793 -0.5580828 -0.5974166 +vn 0.6636140 -0.2166837 -0.7160061 +vn -0.4770012 -0.7512926 -0.4561022 +vn 0.5758793 -0.5580828 -0.5974166 +vn -0.4017898 -0.8515813 -0.3367110 +vn 0.4770012 -0.7512926 -0.4561022 +vn -0.3503465 -0.9050783 -0.2410199 +vn 0.4017362 -0.8516031 -0.3367197 +vn -0.3170154 -0.9344691 -0.1620765 +vn 0.1965837 -0.9474651 -0.2523187 +vn 0.1711419 -0.9664881 -0.1913404 +vn 0.1701103 -0.9841567 -0.0499802 +vn 0.1590073 -0.9867713 -0.0316085 +vn 0.1509885 -0.9872639 -0.0501239 +vn 0.1777598 -0.9771803 -0.1162762 +vn -0.1590082 -0.9867767 0.0314335 +vn 0.1578521 -0.9805465 -0.1166669 +vn 0.1829295 -0.9722172 0.1460496 +vn 0.1590082 -0.9867767 0.0314335 +vn 0.1624792 -0.9757610 0.1465981 +vn -0.1624792 -0.9757610 0.1465981 +vn 0.1964701 -0.9475567 0.2520631 +vn -0.1829295 -0.9722172 0.1460496 +vn 0.2313109 -0.9176541 0.3231196 +vn -0.1965176 -0.9475475 0.2520607 +vn 0.1790980 -0.9574110 0.2264685 +vn -0.2059128 -0.9230107 0.3250402 +vn 0.2287882 -0.9054008 0.3576385 +vn 0.2481656 -0.8554548 0.4545446 +vn 0.2780307 -0.8482685 0.4507099 +vn 0.3529477 -0.6393762 0.6831003 +vn -0.2780307 -0.8482685 0.4507099 +vn 0.4326796 -0.3919572 0.8118854 +vn -0.3529477 -0.6393762 0.6831003 +vn 0.3909660 -0.4000646 0.8289113 +vn -0.3909660 -0.4000646 0.8289113 +vn 0.4293931 0.2617179 0.8643641 +vn -0.4327114 -0.3919860 0.8118546 +vn 0.3982844 0.5485175 0.7351858 +vn -0.4293931 0.2617179 0.8643641 +vn 0.3586781 0.5582271 0.7481528 +vn -0.3586781 0.5582271 0.7481528 +vn 0.2793413 0.8207422 0.4983480 +vn -0.3982844 0.5485175 0.7351858 +vn 0.2560079 0.8832511 0.3928454 +vn -0.2793413 0.8207422 0.4983480 +vn 0.2825880 0.7857113 0.5502743 +vn -0.2281811 0.8896152 0.3956237 +vn 0.2289047 0.9052396 0.3579719 +vn 0.1931629 0.9401187 0.2808289 +vn 0.2171078 0.9353015 0.2794196 +vn 0.1763627 0.9698446 0.1682188 +vn -0.2171078 0.9353015 0.2794196 +vn 0.1777598 0.9771803 0.1162762 +vn -0.1763627 0.9698446 0.1682188 +vn 0.1578521 0.9805465 0.1166669 +vn -0.1578521 0.9805465 0.1166669 +vn 0.1590073 0.9867713 0.0316085 +vn -0.1777598 0.9771803 0.1162762 +vn 0.1684670 0.9856197 -0.0131406 +vn -0.1590073 0.9867713 0.0316085 +vn 0.1495431 0.9886675 -0.0131702 +vn -0.1495431 0.9886675 -0.0131702 +vn 0.1644853 0.9816480 -0.0964974 +vn -0.1684670 0.9856197 -0.0131406 +vn 0.1829717 0.9722094 -0.1460484 +vn -0.1644853 0.9816480 -0.0964974 +vn 0.1531861 0.9851674 -0.0773250 +vn -0.1625219 0.9757596 -0.1465602 +vn 0.1763263 0.9698842 -0.1680287 +vn 0.1790980 0.9574110 -0.2264685 +vn 0.2014695 0.9531977 -0.2254421 +vn 0.2287882 0.9054008 -0.3576385 +vn -0.2014695 0.9531977 -0.2254421 +vn 0.2780730 0.8482182 -0.4507785 +vn -0.2287882 0.9054008 -0.3576385 +vn 0.2481656 0.8554548 -0.4545446 +vn -0.2481656 0.8554548 -0.4545446 +vn 0.3529665 0.6394101 -0.6830588 +vn -0.2780730 0.8482182 -0.4507785 +vn 0.4326796 0.3919572 -0.8118854 +vn -0.3529665 0.6394101 -0.6830588 +vn 0.3909660 0.4000646 -0.8289113 +vn -0.3909660 0.4000646 -0.8289113 +vn 0.4294282 -0.2617393 -0.8643402 +vn -0.4326796 0.3919572 -0.8118854 +vn 0.3982844 -0.5485175 -0.7351858 +vn -0.4294282 -0.2617393 -0.8643402 +vn 0.4199010 -0.1140194 -0.9003792 +vn -0.3586781 -0.5582271 -0.7481528 +vn 0.3531455 -0.6387745 -0.6835608 +vn 0.2825880 -0.7857113 -0.5502743 +vn 0.3158081 -0.7772152 -0.5442442 +vn 0.2289047 -0.9052396 -0.3579719 +vn -0.3158081 -0.7772152 -0.5442442 +vn 0.2171573 -0.9352910 -0.2794164 +vn -0.1763627 -0.9698446 -0.1682188 +vn 0.1931629 -0.9401187 -0.2808289 +vn 0.1925916 -0.9626026 -0.1905377 +vn 0.1763627 -0.9698446 -0.1682188 +vn -0.2171573 -0.9352910 -0.2794164 +vn -0.1531865 -0.9851701 0.0772898 +vn 0.1645191 -0.9816261 -0.0966623 +vn -0.1725419 -0.9819824 0.0770702 +vn -0.1925916 -0.9626026 -0.1905377 +vn 0.2281811 -0.8896152 -0.3956237 +vn -0.2560079 -0.8832511 -0.3928454 +vn 0.3587294 -0.5580506 -0.7482598 +vn -0.3982844 -0.5485175 -0.7351858 +vn -0.4633171 -0.1114251 -0.8791597 +vn 0.3123186 0.7117057 -0.6292314 +vn -0.3482325 0.7023150 -0.6208766 +vn 0.2059128 0.9230107 -0.3250402 +vn -0.2313109 0.9176541 -0.3231196 +vn 0.1624792 0.9757610 -0.1465981 +vn -0.1829717 0.9722094 -0.1460484 +vn -0.1725020 0.9819894 -0.0770708 +vn 0.1510276 0.9872580 0.0501236 +vn -0.1701103 0.9841567 0.0499802 +vn 0.1711419 0.9664881 0.1913404 +vn -0.1925916 0.9626026 0.1905377 +vn 0.2281811 0.8896152 0.3956237 +vn -0.2560079 0.8832511 0.3928454 +vn -0.3158081 0.7772152 0.5442442 +vn 0.4199010 0.1140194 0.9003792 +vn -0.4633171 0.1114251 0.8791597 +vn 0.3123186 -0.7117057 0.6292314 +vn -0.3482325 -0.7023150 0.6208766 +vn 0.2059128 -0.9230107 0.3250402 +vn -0.2313109 -0.9176541 0.3231196 +vn -0.2014695 -0.9531977 0.2254421 +vn 0.1531865 -0.9851701 0.0772898 +vn 0.1495044 -0.9886733 0.0131703 +vn -0.1777598 -0.9771803 -0.1162762 +vn -0.1701103 -0.9841567 -0.0499802 +vn 0.1644853 -0.9816480 0.0964974 +vn -0.2289047 -0.9052396 -0.3579719 +vn -0.1965837 -0.9474651 -0.2523187 +vn 0.2793413 -0.8207422 -0.4983480 +vn -0.2793413 -0.8207422 -0.4983480 +vn -0.3531455 -0.6387745 -0.6835608 +vn 0.4292639 0.2630975 -0.8640094 +vn -0.4292639 0.2630975 -0.8640094 +vn 0.2791845 0.8210401 -0.4979450 +vn -0.2791845 0.8210401 -0.4979450 +vn 0.1965176 0.9475475 -0.2520607 +vn -0.1965176 0.9475475 -0.2520607 +vn -0.1763263 0.9698842 -0.1680287 +vn 0.1589913 0.9867796 -0.0314301 +vn -0.1589913 0.9867796 -0.0314301 +vn 0.1645004 0.9816268 0.0966876 +vn -0.1645004 0.9816268 0.0966876 +vn 0.1965837 0.9474651 0.2523187 +vn -0.1965837 0.9474651 0.2523187 +vn -0.2288501 0.9052516 0.3579766 +vn 0.3531455 0.6387745 0.6835608 +vn -0.3531455 0.6387745 0.6835608 +vn 0.4292639 -0.2630975 0.8640094 +vn -0.4292639 -0.2630975 0.8640094 +vn 0.2791930 -0.8210652 0.4978987 +vn -0.2791930 -0.8210652 0.4978987 +vn -0.2287882 -0.9054008 0.3576385 +vn 0.1763263 -0.9698842 0.1680287 +vn -0.1763263 -0.9698842 0.1680287 +vn -0.1644853 -0.9816480 0.0964974 +vn -0.1645191 -0.9816261 -0.0966623 +vn -0.1590073 -0.9867713 -0.0316085 +vn -0.1495044 -0.9886733 0.0131703 +vn -0.1931629 -0.9401187 -0.2808289 +vn 0.2560079 -0.8832511 -0.3928454 +vn -0.2281811 -0.8896152 -0.3956237 +vn -0.2825880 -0.7857113 -0.5502743 +vn 0.4633171 -0.1114251 -0.8791597 +vn -0.4199010 -0.1140194 -0.9003792 +vn 0.3482325 0.7023150 -0.6208766 +vn -0.3123186 0.7117057 -0.6292314 +vn 0.2313109 0.9176541 -0.3231196 +vn -0.2059128 0.9230107 -0.3250402 +vn -0.1790980 0.9574110 -0.2264685 +vn 0.1725020 0.9819894 -0.0770708 +vn -0.1531465 0.9851735 -0.0773255 +vn 0.1701103 0.9841567 0.0499802 +vn -0.1510276 0.9872580 0.0501236 +vn 0.1925916 0.9626026 0.1905377 +vn -0.1711419 0.9664881 0.1913404 +vn -0.1931629 0.9401187 0.2808289 +vn 0.3158081 0.7772152 0.5442442 +vn -0.2825880 0.7857113 0.5502743 +vn 0.4633171 0.1114251 0.8791597 +vn -0.4199010 0.1140194 0.9003792 +vn 0.3482325 -0.7023150 0.6208766 +vn -0.3123186 -0.7117057 0.6292314 +vn -0.2481656 -0.8554548 0.4545446 +vn 0.2014695 -0.9531977 0.2254421 +vn -0.1790980 -0.9574110 0.2264685 +vn 0.1725419 -0.9819824 0.0770702 +vn 0.1684670 -0.9856197 0.0131406 +vn -0.1578521 -0.9805465 -0.1166669 +vn -0.1509885 -0.9872639 -0.0501239 +vn -0.1668755 -0.9859780 -0.0001055 +vn 0.1668755 -0.9859780 -0.0001055 +vn -0.1696720 -0.9834503 -0.0635362 +vn 0.1696720 -0.9834503 -0.0635362 +vn -0.1786523 -0.9751399 -0.1310934 +vn 0.1786106 -0.9751474 -0.1310944 +vn -0.1950879 -0.9585077 -0.2078551 +vn 0.1950879 -0.9585077 -0.2078551 +vn -0.2220449 -0.9274189 -0.3009822 +vn 0.2220449 -0.9274189 -0.3009822 +vn -0.2643389 -0.8674952 -0.4213989 +vn 0.2643981 -0.8674806 -0.4213918 +vn -0.3289846 -0.7432404 -0.5825486 +vn 0.3289846 -0.7432404 -0.5825486 +vn -0.4131657 -0.4755674 -0.7766143 +vn 0.4131657 -0.4755674 -0.7766143 +vn -0.4626306 0.0006010 -0.8865509 +vn 0.4625430 0.0009016 -0.8865964 +vn -0.4129298 0.4766370 -0.7760838 +vn 0.4129298 0.4766370 -0.7760838 +vn -0.3286794 0.7437973 -0.5820098 +vn 0.3286794 0.7437973 -0.5820098 +vn -0.2642198 0.8677539 -0.4209407 +vn 0.2642198 0.8677539 -0.4209407 +vn -0.2218879 0.9275627 -0.3006547 +vn 0.2218879 0.9275627 -0.3006547 +vn -0.1950703 0.9585707 -0.2075809 +vn 0.1950703 0.9585707 -0.2075809 +vn -0.1786356 0.9751649 -0.1309306 +vn 0.1786162 0.9751754 -0.1308788 +vn -0.1696556 0.9834651 -0.0633513 +vn 0.1696556 0.9834651 -0.0633513 +vn -0.1668755 0.9859780 0.0001055 +vn 0.1668755 0.9859780 0.0000703 +vn -0.1696720 0.9834503 0.0635362 +vn 0.1697117 0.9834435 0.0635357 +vn -0.1786523 0.9751399 0.1310934 +vn 0.1786523 0.9751399 0.1310934 +vn -0.1950879 0.9585077 0.2078551 +vn 0.1950879 0.9585077 0.2078551 +vn -0.2219941 0.9274299 0.3009857 +vn 0.2219941 0.9274299 0.3009857 +vn -0.2643981 0.8674806 0.4213918 +vn 0.2643981 0.8674806 0.4213918 +vn -0.3289846 0.7432404 0.5825486 +vn 0.3288618 0.7433553 0.5824713 +vn -0.4131657 0.4755674 0.7766143 +vn 0.4131657 0.4755674 0.7766143 +vn -0.4627180 -0.0009015 0.8865050 +vn 0.4626305 -0.0009015 0.8865507 +vn -0.4129298 -0.4766370 0.7760838 +vn 0.4129298 -0.4766370 0.7760838 +vn -0.3287500 -0.7437780 0.5819946 +vn 0.3287633 -0.7438080 0.5819488 +vn -0.2641607 -0.8677685 0.4209478 +vn 0.2641607 -0.8677685 0.4209478 +vn -0.2219387 -0.9275517 0.3006511 +vn 0.2219387 -0.9275517 0.3006511 +vn -0.1950703 -0.9585707 0.2075809 +vn 0.1950703 -0.9585707 0.2075809 +vn -0.1786162 -0.9751754 0.1308788 +vn 0.1786162 -0.9751754 0.1308788 +vn -0.1696556 -0.9834651 0.0633513 +vn 0.1696556 -0.9834651 0.0633513 +vn -0.1496336 -0.9827926 -0.1082986 +vn -0.3836277 0.3479855 -0.8554156 +vn -0.1429988 0.9895011 -0.0209490 +vn -0.3345189 0.5999088 0.7267782 +vn -0.1736719 -0.9556862 0.2377013 +vn -0.3983168 -0.3658016 -0.8411498 +vn -0.1580734 0.9811310 -0.1113318 +vn -0.2537034 0.8475760 0.4661003 +vn 0.1516490 -0.9873921 -0.0453799 +vn -0.3515214 -0.6460009 -0.6775806 +vn -0.1771760 0.9693551 -0.1701747 +vn -0.2282950 0.9067417 0.3545433 +vn -0.2304647 -0.9036379 0.3610049 +vn -0.1651056 -0.9813540 0.0984097 +vn -0.1814538 -0.9458491 -0.2691541 +vn -0.2131768 -0.8998435 -0.3805750 +vn -0.3345189 -0.5999088 -0.7267782 +vn -0.2437702 0.8456689 -0.4747843 +vn -0.2009088 0.9188384 -0.3396640 +vn -0.1567884 0.9752496 -0.1559026 +vn -0.1496739 0.9827865 0.1082979 +vn -0.1615283 0.9699956 0.1817063 +vn -0.2132330 0.8998322 0.3805702 +vn -0.3836277 -0.3479855 0.8554156 +vn -0.3084262 -0.6880665 0.6568392 +vn -0.2008557 -0.9188486 0.3396677 +vn 0.1879055 -0.9578469 -0.2173036 +vn -0.1470667 -0.9854187 0.0855645 +vn -0.1644506 -0.9745630 -0.1522596 +vn -0.1818308 -0.9552678 -0.2332404 +vn -0.2537034 -0.8475760 -0.4661003 +vn -0.3542307 0.5822948 -0.7317469 +vn -0.2790354 0.7965513 -0.5363257 +vn -0.1921611 0.9425850 -0.2731441 +vn -0.1505444 0.9884391 0.0180128 +vn -0.1546193 0.9845308 0.0824140 +vn -0.1817620 0.9552874 0.2332136 +vn -0.3982755 0.3660468 0.8410626 +vn -0.4199070 -0.1552069 0.8941973 +vn -0.2790354 -0.7965513 0.5363257 +vn 0.1922996 -0.9424691 -0.2734463 +vn 0.1709015 -0.9676998 -0.1853371 +vn -0.1646526 -0.9817881 -0.0947718 +vn -0.1763496 -0.9702149 -0.1660840 +vn -0.2282990 -0.9067578 -0.3544994 +vn -0.4316649 0.2490458 -0.8669727 +vn -0.3560735 0.6316689 -0.6886262 +vn -0.2304647 0.9036379 -0.3610049 +vn -0.1594473 0.9866477 -0.0332104 +vn -0.1593502 0.9867717 0.0298181 +vn -0.1763507 0.9702211 0.1660463 +vn -0.3515030 0.6459671 0.6776224 +vn -0.4286999 0.2755965 0.8603854 +vn -0.3560192 -0.6318140 0.6885212 +vn -0.1976928 -0.9466056 0.2546671 +vn 0.1879766 -0.9371869 -0.2938462 +vn 0.1655782 -0.9653611 -0.2016475 +vn 0.1447554 -0.9877603 -0.0580991 +vn -0.2815859 -0.8174632 0.5024573 +vn -0.4315766 -0.2490574 0.8670133 +vn -0.2782223 0.8239241 0.4937017 +vn -0.1963331 0.9482166 0.2496769 +vn -0.1646526 0.9817881 0.0947718 +vn -0.1651062 0.9813575 -0.0983737 +vn -0.1977179 0.9465917 -0.2546994 +vn -0.2815420 0.8175265 -0.5023789 +vn -0.4287342 -0.2753279 -0.8604543 +vn -0.2782307 -0.8239490 -0.4936555 +vn -0.1963331 -0.9482166 -0.2496769 +vn -0.1580154 -0.9811417 0.1113203 +vn -0.1922098 -0.9425758 0.2731414 +vn -0.2261942 -0.8945881 0.3854197 +vn -0.3542307 -0.5822948 0.7317469 +vn -0.3198691 0.6947883 0.6441685 +vn -0.2097114 0.9190804 0.3336351 +vn -0.1644506 0.9745630 0.1522596 +vn -0.1516341 0.9874027 -0.0452007 +vn -0.1708038 0.9677656 -0.1850830 +vn -0.2261942 0.8945881 -0.3854197 +vn -0.4198354 0.1549228 -0.8942803 +vn -0.3198843 -0.6948213 -0.6441253 +vn -0.2097642 -0.9190697 -0.3336313 +vn -0.1545800 -0.9845398 -0.0823791 +vn 0.2149288 -0.9250711 -0.3131279 +vn 0.1620439 -0.9842545 -0.0706031 +vn -0.2438076 -0.8456172 0.4748572 +vn -0.4002932 0.1808067 0.8983731 +vn -0.2628251 0.8059932 0.5303752 +vn -0.1814538 0.9458491 0.2691541 +vn -0.1438110 0.9887003 0.0423095 +vn -0.1471064 0.9854129 -0.0855640 +vn -0.1736237 0.9556846 -0.2377428 +vn -0.3084749 0.6879457 -0.6569429 +vn -0.4002932 -0.1808067 -0.8983731 +vn -0.2628926 -0.8059779 -0.5303651 +vn -0.1615283 -0.9699956 -0.1817063 +vn 0.1651056 -0.9813540 0.0984097 +vn -0.1655782 -0.9653611 -0.2016475 +vn 0.1580154 -0.9811417 0.1113203 +vn -0.1709015 -0.9676998 -0.1853371 +vn 0.1470667 -0.9854187 0.0855645 +vn -0.1879055 -0.9578469 -0.2173036 +vn -0.1879766 -0.9371869 -0.2938462 +vn -0.1922508 -0.9424783 -0.2734489 +vn -0.2149288 -0.9250711 -0.3131279 +vn 0.1976928 -0.9466056 0.2546671 +vn -0.1447554 -0.9877603 -0.0580991 +vn 0.1921611 -0.9425850 0.2731441 +vn -0.1516490 -0.9873921 -0.0453799 +vn 0.1736719 -0.9556862 0.2377013 +vn -0.1620439 -0.9842545 -0.0706031 +vn 0.2304647 -0.9036379 0.3610049 +vn 0.2261377 -0.8946001 0.3854249 +vn 0.2008557 -0.9188486 0.3396677 +vn 0.2815859 -0.8174632 0.5024573 +vn 0.2790354 -0.7965513 0.5363257 +vn 0.2438076 -0.8456172 0.4748572 +vn 0.3560192 -0.6318140 0.6885212 +vn 0.3542307 -0.5822948 0.7317469 +vn 0.3084262 -0.6880665 0.6568392 +vn 0.4315766 -0.2490574 0.8670133 +vn 0.4199265 -0.1549156 0.8942387 +vn 0.3836658 -0.3477346 0.8555006 +vn 0.4286999 0.2755965 0.8603854 +vn 0.3982755 0.3660468 0.8410626 +vn 0.4002932 0.1808067 0.8983731 +vn 0.3515030 0.6459671 0.6776224 +vn 0.3198691 0.6947883 0.6441685 +vn 0.3344369 0.5999273 0.7268007 +vn 0.2782223 0.8239241 0.4937017 +vn 0.2537034 0.8475760 0.4661003 +vn 0.2628251 0.8059932 0.5303752 +vn 0.2282950 0.9067417 0.3545433 +vn 0.2097114 0.9190804 0.3336351 +vn 0.2132330 0.8998322 0.3805702 +vn 0.1963331 0.9482166 0.2496769 +vn 0.1817620 0.9552874 0.2332136 +vn 0.1814538 0.9458491 0.2691541 +vn 0.1763507 0.9702211 0.1660463 +vn 0.1644506 0.9745630 0.1522596 +vn 0.1615283 0.9699956 0.1817063 +vn 0.1646526 0.9817881 0.0947718 +vn 0.1546193 0.9845308 0.0824140 +vn 0.1496739 0.9827865 0.1082979 +vn 0.1593112 0.9867780 0.0298183 +vn 0.1505443 0.9884385 0.0180475 +vn 0.1438110 0.9887003 0.0423095 +vn 0.1594473 0.9866477 -0.0332104 +vn 0.1515951 0.9874086 -0.0452009 +vn 0.1429988 0.9895011 -0.0209490 +vn 0.1651062 0.9813575 -0.0983737 +vn 0.1580734 0.9811310 -0.1113318 +vn 0.1471064 0.9854129 -0.0855640 +vn 0.1771760 0.9693551 -0.1701747 +vn 0.1708025 0.9677586 -0.1851211 +vn 0.1567884 0.9752496 -0.1559026 +vn 0.1976928 0.9466056 -0.2546671 +vn 0.1921611 0.9425850 -0.2731441 +vn 0.1736237 0.9556846 -0.2377428 +vn 0.2304647 0.9036379 -0.3610049 +vn 0.2261377 0.8946001 -0.3854249 +vn 0.2009088 0.9188384 -0.3396640 +vn 0.2815420 0.8175265 -0.5023789 +vn 0.2791032 0.7965350 -0.5363147 +vn 0.2437702 0.8456689 -0.4747843 +vn 0.3560735 0.6316689 -0.6886262 +vn 0.3542307 0.5822948 -0.7317469 +vn 0.3084749 0.6879457 -0.6569429 +vn 0.4315766 0.2490574 -0.8670133 +vn 0.4198354 0.1549228 -0.8942803 +vn 0.3836277 0.3479855 -0.8554156 +vn 0.4287342 -0.2753279 -0.8604543 +vn 0.3983168 -0.3658016 -0.8411498 +vn 0.4002005 -0.1808147 -0.8984128 +vn 0.3515030 -0.6459671 -0.6776224 +vn 0.3198843 -0.6948213 -0.6441253 +vn 0.3344369 -0.5999273 -0.7268007 +vn 0.2782307 -0.8239490 -0.4936555 +vn 0.2537034 -0.8475760 -0.4661003 +vn 0.2628926 -0.8059779 -0.5303651 +vn 0.2282950 -0.9067417 -0.3545433 +vn 0.2097642 -0.9190697 -0.3336313 +vn 0.2131464 -0.8998737 -0.3805207 +vn 0.1963331 -0.9482166 -0.2496769 +vn 0.1818308 -0.9552678 -0.2332404 +vn 0.1814538 -0.9458491 -0.2691541 +vn 0.1763496 -0.9702149 -0.1660840 +vn 0.1644506 -0.9745630 -0.1522596 +vn 0.1615283 -0.9699956 -0.1817063 +vn 0.1646526 -0.9817881 -0.0947718 +vn 0.1546198 -0.9845336 -0.0823786 +vn 0.1496336 -0.9827926 -0.1082986 +vn -0.0636266 -0.9829817 0.1723330 +vn 0.0646936 -0.9896431 -0.1281455 +vn 0.0727188 -0.9918315 0.1047959 +vn -0.0784916 -0.9769252 -0.1986359 +vn 0.0706251 -0.9760700 -0.2056681 +vn 0.0783971 -0.9808208 0.1784503 +vn -0.0783971 -0.9808208 0.1784503 +vn 0.0721005 -0.9898860 -0.1221771 +vn 0.0784916 -0.9769252 -0.1986359 +vn 0.0591884 -0.9932897 0.0993595 +vn -0.0706251 -0.9760700 -0.2056681 +vn 0.0636266 -0.9829817 0.1723330 +vn -0.0805717 -0.9503920 -0.3004385 +vn 0.0891340 -0.9524213 -0.2914598 +vn -0.0891340 -0.9524213 -0.2914598 +vn 0.0805717 -0.9503920 -0.3004385 +vn -0.0712321 -0.9632852 0.2588582 +vn 0.0880533 -0.9598611 0.2662955 +vn -0.0880533 -0.9598611 0.2662955 +vn 0.0712321 -0.9632852 0.2588582 +vn -0.0965154 -0.9000370 -0.4249919 +vn 0.1062780 -0.9046464 -0.4126983 +vn -0.1062780 -0.9046464 -0.4126983 +vn 0.0965154 -0.9000370 -0.4249919 +vn -0.1218786 -0.7919487 -0.5982999 +vn 0.1335611 -0.8031393 -0.5806279 +vn -0.1335611 -0.8031393 -0.5806279 +vn 0.1218786 -0.7919487 -0.5982999 +vn -0.1581058 -0.5407229 -0.8262090 +vn 0.1731448 -0.5686850 -0.8041258 +vn -0.1731448 -0.5686850 -0.8041258 +vn 0.1581058 -0.5407229 -0.8262090 +vn -0.1838578 -0.0389736 -0.9821799 +vn 0.2047080 -0.0874456 -0.9749092 +vn -0.2047080 -0.0874456 -0.9749092 +vn 0.1838600 -0.0386672 -0.9821916 +vn -0.1630219 0.4900550 -0.8563118 +vn 0.1855137 0.4538652 -0.8715452 +vn -0.1855137 0.4538652 -0.8715452 +vn 0.1630219 0.4900550 -0.8563118 +vn -0.1260730 0.7699626 -0.6255103 +vn 0.1441498 0.7531316 -0.6418829 +vn -0.1441498 0.7531316 -0.6418829 +vn 0.1260730 0.7699626 -0.6255103 +vn -0.0992023 0.8903212 -0.4443953 +vn 0.1131000 0.8824757 -0.4565578 +vn -0.1131000 0.8824757 -0.4565578 +vn 0.0992023 0.8903212 -0.4443953 +vn -0.0822514 0.9456301 -0.3146719 +vn 0.0933909 0.9415541 -0.3236572 +vn -0.0933909 0.9415541 -0.3236572 +vn 0.0822514 0.9456301 -0.3146719 +vn -0.0717083 0.9735514 -0.2169231 +vn 0.0811182 0.9712101 -0.2239882 +vn -0.0811182 0.9712101 -0.2239882 +vn 0.0717083 0.9735514 -0.2169231 +vn -0.0652986 0.9883260 -0.1376510 +vn 0.0736367 0.9868903 -0.1436150 +vn -0.0736367 0.9868903 -0.1436150 +vn 0.0652989 0.9883308 -0.1376163 +vn -0.0618008 0.9957293 -0.0685848 +vn 0.0694826 0.9948335 -0.0740172 +vn -0.0694754 0.9948345 -0.0740096 +vn 0.0618008 0.9957293 -0.0685848 +vn -0.0606015 0.9981533 -0.0041665 +vn 0.0679425 0.9976448 -0.0094132 +vn -0.0679425 0.9976448 -0.0094132 +vn 0.0606015 0.9981533 -0.0041665 +vn -0.0615177 0.9963023 0.0599782 +vn 0.0687704 0.9961408 0.0545358 +vn -0.0687704 0.9961408 0.0545358 +vn 0.0615177 0.9963023 0.0599782 +vn -0.0646936 0.9896431 0.1281455 +vn 0.0721005 0.9898860 0.1221771 +vn -0.0721005 0.9898860 0.1221771 +vn 0.0646936 0.9896431 0.1281455 +vn -0.0706681 0.9760593 0.2057041 +vn 0.0784916 0.9769252 0.1986359 +vn -0.0784916 0.9769252 0.1986359 +vn 0.0706681 0.9760593 0.2057041 +vn -0.0805717 0.9503920 0.3004385 +vn 0.0891351 0.9524333 0.2914203 +vn -0.0891351 0.9524333 0.2914203 +vn 0.0805717 0.9503920 0.3004385 +vn -0.0965014 0.9000676 0.4249303 +vn 0.1062650 0.9046944 0.4125963 +vn -0.1062650 0.9046944 0.4125963 +vn 0.0965014 0.9000676 0.4249303 +vn -0.1218590 0.7920246 0.5982035 +vn 0.1335662 0.8031694 0.5805850 +vn -0.1335662 0.8031694 0.5805850 +vn 0.1218786 0.7919487 0.5982999 +vn -0.1581058 0.5407229 0.8262090 +vn 0.1731703 0.5685099 0.8042441 +vn -0.1731703 0.5685099 0.8042441 +vn 0.1581058 0.5407229 0.8262090 +vn -0.1838578 0.0389736 0.9821799 +vn 0.2047080 0.0874456 0.9749092 +vn -0.2047080 0.0874456 0.9749092 +vn 0.1838578 0.0389736 0.9821799 +vn -0.1630219 -0.4900550 0.8563118 +vn 0.1855370 -0.4536451 0.8716548 +vn -0.1855370 -0.4536451 0.8716548 +vn 0.1630219 -0.4900550 0.8563118 +vn -0.1260730 -0.7699626 0.6255103 +vn 0.1441498 -0.7531316 0.6418829 +vn -0.1441498 -0.7531316 0.6418829 +vn 0.1260730 -0.7699626 0.6255103 +vn -0.0992023 -0.8903212 0.4443953 +vn 0.1131000 -0.8824757 0.4565578 +vn -0.1131000 -0.8824757 0.4565578 +vn 0.0992023 -0.8903212 0.4443953 +vn -0.0822514 -0.9456301 0.3146719 +vn 0.0934032 -0.9415383 0.3236997 +vn -0.0934032 -0.9415383 0.3236997 +vn 0.0822514 -0.9456301 0.3146719 +vn -0.0717083 -0.9735514 0.2169231 +vn 0.0811278 -0.9712033 0.2240145 +vn -0.0811278 -0.9712033 0.2240145 +vn 0.0717083 -0.9735514 0.2169231 +vn -0.0652989 -0.9883308 0.1376163 +vn 0.0736287 -0.9868931 0.1435994 +vn -0.0736287 -0.9868931 0.1435994 +vn 0.0652989 -0.9883308 0.1376163 +vn -0.0618009 -0.9957316 0.0685515 +vn 0.0694756 -0.9948370 0.0739761 +vn -0.0694756 -0.9948370 0.0739761 +vn 0.0618009 -0.9957316 0.0685515 +vn 0.2877441 -0.9572224 0.0304728 +vn 0.0997780 -0.9303749 -0.3527704 +vn -0.0997780 -0.9303749 -0.3527704 +vn 0.0828237 -0.9279956 -0.3632691 +vn 0.4058514 -0.0474148 -0.9127083 +vn 0.4200231 -0.1534585 -0.8944446 +vn 0.4433654 0.0589291 -0.8944017 +vn -0.4200231 -0.1534585 -0.8944446 +vn -0.4433654 0.0589291 -0.8944017 +vn -0.4058514 -0.0474148 -0.9127083 +vn -0.1021442 -0.8530000 -0.5118179 +vn 0.1224070 -0.8592494 -0.4966961 +vn -0.1224070 -0.8592494 -0.4966961 +vn 0.1021442 -0.8530000 -0.5118179 +vn 0.3668333 0.4542235 -0.8118586 +vn 0.3979807 0.3672870 -0.8406614 +vn 0.3867494 0.5195485 -0.7619017 +vn -0.3669051 0.4540395 -0.8119291 +vn -0.3866967 0.5197400 -0.7617979 +vn -0.3979807 0.3672870 -0.8406614 +vn -0.1319530 -0.6831972 -0.7182130 +vn 0.1575012 -0.6998207 -0.6967384 +vn -0.1575012 -0.6998207 -0.6967384 +vn 0.1319741 -0.6830722 -0.7183281 +vn 0.2903269 0.7392778 -0.6076008 +vn 0.3197224 0.6954230 -0.6435560 +vn 0.3060448 0.7660217 -0.5652852 +vn -0.3197224 0.6954230 -0.6435560 +vn -0.2903269 0.7392778 -0.6076008 +vn -0.3060448 0.7660217 -0.5652852 +vn -0.0707756 -0.9645313 -0.2543034 +vn 0.0856453 -0.9653655 -0.2464435 +vn -0.0856453 -0.9653655 -0.2464435 +vn 0.0707756 -0.9645313 -0.2543034 +vn 0.3538773 -0.5192866 -0.7778896 +vn 0.3544692 -0.5814267 -0.7323213 +vn 0.4041998 -0.4377367 -0.8031246 +vn -0.4041998 -0.4377367 -0.8031246 +vn -0.3544692 -0.5814267 -0.7323213 +vn -0.3538773 -0.5192866 -0.7778896 +vn -0.0633492 -0.9836488 -0.1685881 +vn 0.0769342 -0.9837437 -0.1622633 +vn -0.0769342 -0.9837437 -0.1622633 +vn 0.0633492 -0.9836488 -0.1685881 +vn 0.2786200 -0.7693974 -0.5748030 +vn 0.2792367 -0.7961333 -0.5368414 +vn 0.3222169 -0.7274015 -0.6058575 +vn -0.2786200 -0.7693974 -0.5748030 +vn -0.3222308 -0.7274327 -0.6058126 +vn -0.2792367 -0.7961333 -0.5368414 +vn -0.0590392 -0.9936178 -0.0961149 +vn 0.0719251 -0.9932888 -0.0905764 +vn -0.0719251 -0.9932888 -0.0905764 +vn 0.0590392 -0.9936178 -0.0961149 +vn 0.2234425 -0.8828035 -0.4131965 +vn 0.2263387 -0.8943553 -0.3858747 +vn 0.2575121 -0.8612569 -0.4380914 +vn -0.2263387 -0.8943553 -0.3858747 +vn -0.2575121 -0.8612569 -0.4380914 +vn -0.2234425 -0.8828035 -0.4131965 +vn -0.0570708 -0.9979085 -0.0303562 +vn 0.0697280 -0.9972472 -0.0252205 +vn -0.0697280 -0.9972472 -0.0252205 +vn 0.0570708 -0.9979085 -0.0303562 +vn -0.1593112 -0.9867780 -0.0298183 +vn -0.1505055 -0.9884444 -0.0180476 +vn -0.1438110 -0.9887003 -0.0423095 +vn 0.1593112 -0.9867780 -0.0298183 +vn 0.1438110 -0.9887003 -0.0423095 +vn 0.1505055 -0.9884444 -0.0180476 +vn 0.0571173 -0.9978083 0.0334092 +vn -0.0699757 -0.9968057 0.0384952 +vn -0.0571173 -0.9978083 0.0334092 +vn 0.0699757 -0.9968057 0.0384952 +vn -0.1594473 -0.9866477 0.0332104 +vn -0.1516343 -0.9874042 0.0451658 +vn -0.1429988 -0.9895011 0.0209490 +vn 0.1429988 -0.9895011 0.0209490 +vn 0.1516343 -0.9874042 0.0451658 +vn 0.1594473 -0.9866477 0.0332104 +vn -0.0646936 -0.9896431 -0.1281455 +vn -0.0727188 -0.9918315 0.1047959 +vn -0.0721005 -0.9898860 -0.1221771 +vn -0.0591884 -0.9932897 0.0993595 +vn 0.1519371 -0.9803926 -0.1254813 +vn 0.1580876 -0.9811069 -0.1115240 +vn 0.1712497 -0.9753700 -0.1390211 +vn -0.1580470 -0.9811133 -0.1115248 +vn -0.1519371 -0.9803926 -0.1254813 +vn -0.1712497 -0.9753700 -0.1390211 +vn -0.0615177 -0.9963023 -0.0599782 +vn 0.0687703 -0.9961390 -0.0545691 +vn -0.0687703 -0.9961390 -0.0545691 +vn 0.0615178 -0.9963042 -0.0599450 +vn -0.1771760 -0.9693551 0.1701747 +vn -0.1708038 -0.9677656 0.1850830 +vn -0.1567893 -0.9752553 0.1558657 +vn 0.1771760 -0.9693551 0.1701747 +vn 0.1567893 -0.9752553 0.1558657 +vn 0.1708038 -0.9677656 0.1850830 +vn -0.0606015 -0.9981533 0.0041665 +vn 0.0679425 -0.9976448 0.0094132 +vn -0.0679425 -0.9976448 0.0094132 +vn 0.0606015 -0.9981533 0.0041665 +vn 0.1427039 -0.9897506 0.0054088 +vn 0.1505061 -0.9884481 0.0178394 +vn 0.1587347 -0.9872976 -0.0068428 +vn -0.1505061 -0.9884481 0.0178394 +vn -0.1587347 -0.9872976 -0.0068428 +vn -0.1427039 -0.9897505 0.0054432 +vn -0.0835465 -0.9255551 0.3692801 +vn 0.1036382 -0.9196240 0.3788809 +vn -0.1036382 -0.9196240 0.3788809 +vn 0.0835465 -0.9255551 0.3692801 +vn 0.1455761 -0.9869167 0.0693041 +vn 0.1545651 -0.9845548 0.0822286 +vn 0.1608435 -0.9853617 0.0564957 +vn -0.1545651 -0.9845548 0.0822286 +vn -0.1455761 -0.9869167 0.0693041 +vn -0.1608435 -0.9853617 0.0564957 +vn -0.1033136 -0.8477130 0.5202971 +vn 0.1285788 -0.8361327 0.5332445 +vn -0.1285788 -0.8361327 0.5332445 +vn 0.1033136 -0.8477130 0.5202971 +vn 0.1537829 -0.9784527 0.1377720 +vn 0.1644178 -0.9746028 0.1520397 +vn 0.1686825 -0.9779067 0.1234696 +vn -0.1537829 -0.9784527 0.1377720 +vn -0.1686825 -0.9779067 0.1234696 +vn -0.1644178 -0.9746028 0.1520397 +vn -0.1336424 -0.6708108 0.7294879 +vn 0.1663220 -0.6460299 0.7449714 +vn -0.1663220 -0.6460299 0.7449714 +vn 0.1336424 -0.6708108 0.7294879 +vn 0.1687160 -0.9616846 0.2160965 +vn 0.1817723 -0.9553483 0.2329559 +vn 0.1835245 -0.9626456 0.1990783 +vn -0.1817706 -0.9553390 0.2329955 +vn -0.1835245 -0.9626456 0.1990783 +vn -0.1687160 -0.9616846 0.2160965 +vn -0.1670115 -0.2738958 0.9471474 +vn 0.2051498 -0.2287824 0.9516155 +vn -0.2051498 -0.2287824 0.9516155 +vn 0.1670115 -0.2738958 0.9471474 +vn 0.1930069 -0.9302385 0.3120973 +vn 0.2096628 -0.9192215 0.3332766 +vn 0.2079451 -0.9340737 0.2902846 +vn -0.2079451 -0.9340737 0.2902846 +vn -0.2096628 -0.9192215 0.3332766 +vn -0.1930069 -0.9302385 0.3120973 +vn -0.1658496 0.2991009 0.9396981 +vn 0.1991119 0.3380144 0.9198373 +vn -0.1991119 0.3380144 0.9198373 +vn 0.1658496 0.2991009 0.9396981 +vn 0.2314049 -0.8688951 0.4375764 +vn 0.2535691 -0.8478482 0.4656781 +vn 0.2465801 -0.8792059 0.4076705 +vn -0.2314049 -0.8688951 0.4375764 +vn -0.2465801 -0.8792059 0.4076705 +vn -0.2535691 -0.8478482 0.4656781 +vn -0.1319530 0.6831972 0.7182130 +vn 0.1575012 0.6998207 0.6967384 +vn -0.1575012 0.6998207 0.6967384 +vn 0.1319530 0.6831972 0.7182130 +vn 0.2904466 -0.7391625 0.6076837 +vn 0.3197224 -0.6954230 0.6435560 +vn 0.3060331 -0.7659925 0.5653310 +vn -0.3197224 -0.6954230 0.6435560 +vn -0.3060448 -0.7660217 0.5652852 +vn -0.2904466 -0.7391625 0.6076837 +vn -0.1021442 0.8530000 0.5118179 +vn 0.1224258 0.8592026 0.4967723 +vn -0.1224258 0.8592026 0.4967723 +vn 0.1021442 0.8530000 0.5118179 +vn 0.3667457 -0.4542404 0.8118887 +vn 0.3980689 -0.3672717 0.8406263 +vn 0.3866967 -0.5197400 0.7617979 +vn -0.3667457 -0.4542404 0.8118887 +vn -0.3866967 -0.5197400 0.7617979 +vn -0.3980689 -0.3672717 0.8406263 +vn -0.0828237 0.9279956 0.3632691 +vn 0.0997780 0.9303749 0.3527704 +vn -0.0997780 0.9303749 0.3527704 +vn 0.0828237 0.9279956 0.3632691 +vn 0.4058514 0.0474148 0.9127083 +vn 0.4199320 0.1534656 0.8944861 +vn 0.4433654 -0.0589291 0.8944017 +vn -0.4199320 0.1534656 0.8944861 +vn -0.4058514 0.0474148 0.9127083 +vn -0.4433654 -0.0589291 0.8944017 +vn -0.0707756 0.9645313 0.2543034 +vn 0.0856453 0.9653655 0.2464435 +vn -0.0856453 0.9653655 0.2464435 +vn 0.0707756 0.9645313 0.2543034 +vn 0.3538773 0.5192866 0.7778896 +vn 0.3545211 0.5812599 0.7324287 +vn 0.4041998 0.4377367 0.8031246 +vn -0.3538773 0.5192866 0.7778896 +vn -0.4041998 0.4377367 0.8031246 +vn -0.3545211 0.5812599 0.7324287 +vn -0.0633492 0.9836488 0.1685881 +vn 0.0769342 0.9837437 0.1622633 +vn -0.0769756 0.9837406 0.1622628 +vn 0.0633492 0.9836488 0.1685881 +vn 0.2786200 0.7693974 0.5748030 +vn 0.2792367 0.7961333 0.5368414 +vn 0.3222169 0.7274015 0.6058575 +vn -0.2792367 0.7961333 0.5368414 +vn -0.3222169 0.7274015 0.6058575 +vn -0.2786200 0.7693974 0.5748030 +vn -0.0590392 0.9936178 0.0961149 +vn 0.0719249 0.9932858 0.0906101 +vn -0.0719251 0.9932888 0.0905764 +vn 0.0590392 0.9936178 0.0961149 +vn 0.2235011 0.8827914 0.4131908 +vn 0.2262496 0.8943996 0.3858244 +vn 0.2574734 0.8613020 0.4380255 +vn -0.2574734 0.8613020 0.4380255 +vn -0.2262822 0.8943674 0.3858800 +vn -0.2235339 0.8827547 0.4132515 +vn -0.0570708 0.9979085 0.0303562 +vn 0.0697280 0.9972472 0.0252205 +vn -0.0697280 0.9972472 0.0252205 +vn 0.0570708 0.9979085 0.0303562 +vn 0.1879241 0.9371835 0.2938905 +vn 0.1922508 0.9424783 0.2734489 +vn 0.2149288 0.9250711 0.3131279 +vn -0.1879766 0.9371869 0.2938462 +vn -0.2149288 0.9250711 0.3131279 +vn -0.1922508 0.9424783 0.2734489 +vn -0.0571173 0.9978083 -0.0334092 +vn 0.0699756 0.9968044 -0.0385282 +vn -0.0699757 0.9968057 -0.0384952 +vn 0.0571173 0.9978083 -0.0334092 +vn 0.1655782 0.9653611 0.2016475 +vn 0.1708578 0.9677072 0.1853385 +vn 0.1879038 0.9578383 0.2173430 +vn -0.1708578 0.9677072 0.1853385 +vn -0.1879055 0.9578469 0.2173036 +vn -0.1655782 0.9653611 0.2016475 +vn -0.0591882 0.9932863 -0.0993932 +vn 0.0727188 0.9918315 -0.1047959 +vn -0.0727188 0.9918315 -0.1047959 +vn 0.0591884 0.9932897 -0.0993595 +vn 0.1519787 0.9803908 0.1254443 +vn 0.1580876 0.9811069 0.1115240 +vn 0.1712691 0.9753644 0.1390368 +vn -0.1519780 0.9803863 0.1254805 +vn -0.1712691 0.9753644 0.1390368 +vn -0.1580876 0.9811069 0.1115240 +vn -0.0636266 0.9829817 -0.1723330 +vn 0.0783971 0.9808208 -0.1784503 +vn -0.0783971 0.9808208 -0.1784503 +vn 0.0636266 0.9829817 -0.1723330 +vn 0.1447163 0.9877660 0.0580994 +vn 0.1516490 0.9873921 0.0453799 +vn 0.1620435 0.9842520 0.0706386 +vn -0.1516490 0.9873921 0.0453799 +vn -0.1447160 0.9877640 0.0581342 +vn -0.1620439 0.9842545 0.0706031 +vn -0.0712321 0.9632852 -0.2588582 +vn 0.0880533 0.9598611 -0.2662955 +vn -0.0880533 0.9598611 -0.2662955 +vn 0.0712321 0.9632852 -0.2588582 +vn 0.1427039 0.9897506 -0.0054088 +vn 0.1505061 0.9884481 -0.0178394 +vn 0.1587347 0.9872976 0.0068428 +vn -0.1427039 0.9897506 -0.0054088 +vn -0.1587347 0.9872976 0.0068428 +vn -0.1505061 0.9884481 -0.0178394 +vn -0.0835465 0.9255551 -0.3692801 +vn 0.1036526 0.9196007 -0.3789336 +vn -0.1036526 0.9196007 -0.3789336 +vn 0.0835465 0.9255551 -0.3692801 +vn 0.1456154 0.9869109 -0.0693037 +vn 0.1545651 0.9845548 -0.0822286 +vn 0.1608435 0.9853617 -0.0564957 +vn -0.1545651 0.9845548 -0.0822286 +vn -0.1608435 0.9853617 -0.0564957 +vn -0.1456154 0.9869109 -0.0693037 +vn -0.1033136 0.8477130 -0.5202971 +vn 0.1285788 0.8361327 -0.5332445 +vn -0.1285788 0.8361327 -0.5332445 +vn 0.1033136 0.8477130 -0.5202971 +vn 0.1537829 0.9784527 -0.1377720 +vn 0.1644178 0.9746028 -0.1520397 +vn 0.1686817 0.9779022 -0.1235062 +vn -0.1686817 0.9779022 -0.1235062 +vn -0.1644178 0.9746028 -0.1520397 +vn -0.1538243 0.9784463 -0.1377711 +vn -0.1336424 0.6708108 -0.7294879 +vn 0.1663480 0.6458885 -0.7450882 +vn -0.1663480 0.6458885 -0.7450882 +vn 0.1336424 0.6708108 -0.7294879 +vn 0.1687160 0.9616846 -0.2160965 +vn 0.1817243 0.9553473 -0.2329976 +vn 0.1835245 0.9626456 -0.1990783 +vn -0.1687145 0.9616761 -0.2161353 +vn -0.1835245 0.9626456 -0.1990783 +vn -0.1817243 0.9553473 -0.2329976 +vn -0.1670115 0.2738958 -0.9471474 +vn 0.2051498 0.2287824 -0.9516155 +vn -0.2051498 0.2287824 -0.9516155 +vn 0.1670115 0.2738958 -0.9471474 +vn 0.1929811 0.9302578 -0.3120556 +vn 0.2096100 0.9192322 -0.3332805 +vn 0.2079451 0.9340737 -0.2902846 +vn -0.2096100 0.9192322 -0.3332805 +vn -0.2079451 0.9340737 -0.2902846 +vn -0.1929557 0.9302480 -0.3121005 +vn -0.1658496 -0.2991009 -0.9396981 +vn 0.1991142 -0.3377276 -0.9199422 +vn -0.1991142 -0.3377276 -0.9199422 +vn 0.1658496 -0.2991009 -0.9396981 +vn 0.2314049 0.8688951 -0.4375764 +vn 0.2535691 0.8478482 -0.4656781 +vn 0.2465801 0.8792059 -0.4076705 +vn -0.2314049 0.8688951 -0.4375764 +vn -0.2465801 0.8792059 -0.4076705 +vn -0.2535691 0.8478482 -0.4656781 +vn -0.9508644 0.3094495 0.0098940 +vn -0.9539483 0.2985226 0.0294418 +vn -0.9841274 0.1517090 0.0920743 +vn -0.9904852 0.0939833 0.1005299 +vn -0.9904601 -0.0942502 0.1005273 +vn -0.9841274 -0.1517090 0.0920743 +vn -0.9759599 -0.2027227 0.0800363 +vn -0.9539507 -0.2985234 0.0293578 +vn -0.9508644 -0.3094495 0.0098940 +vn -0.9597160 -0.2768441 -0.0479841 +vn -0.9674280 -0.2446125 -0.0651754 +vn -0.9760124 -0.2024683 -0.0800406 +vn -0.9939698 -0.0318884 -0.1049154 +vn -0.9939698 0.0318884 -0.1049154 +vn -0.9759599 0.2027227 -0.0800363 +vn -0.9674333 0.2446139 -0.0650905 +vn -0.9597160 0.2768441 -0.0479841 +vn -0.9539507 0.2985234 -0.0293578 +vn -0.9508644 0.3094495 -0.0098940 +vn -0.9904601 0.0942502 -0.1005273 +vn -0.9841274 0.1517090 -0.0920743 +vn -0.9841274 -0.1517090 -0.0920743 +vn -0.9904765 -0.0939824 -0.1006163 +vn -0.9508644 -0.3094495 -0.0098940 +vn -0.9539483 -0.2985226 -0.0294418 +vn -0.9674333 -0.2446139 0.0650905 +vn -0.9597160 -0.2768441 0.0479841 +vn -0.9939698 0.0318884 0.1049154 +vn -0.9939698 -0.0318884 0.1049154 +vn -0.9597160 0.2768441 0.0479841 +vn -0.9674280 0.2446125 0.0651754 +vn -0.9760124 0.2024683 0.0800406 +vn 1.0000000 0.0000000 0.0000000 +vn -0.9365991 0.3495210 -0.0248420 +vn -0.8164419 -0.5759763 0.0409132 +vn -0.9801064 0.1659132 -0.1089229 +vn -0.9338697 -0.2990122 0.1961609 +vn -0.9804913 -0.1633056 -0.1093991 +vn -0.9351052 0.2944438 0.1971831 +vn -0.9369684 -0.3483817 -0.0268399 +vn -0.8174011 0.5743693 0.0442204 +vn -0.9549601 -0.2876495 0.0728630 +vn -0.8623603 0.4907923 -0.1243288 +vn -0.9924048 -0.0008116 0.1230121 +vn -0.9736432 0.0013602 -0.2280726 +vn -0.9554062 0.2859608 0.0736572 +vn -0.8635409 -0.4883278 -0.1258293 +vn -1.0000000 0.0000000 0.0000000 +vn -1.0000000 0.0002699 0.0000000 +vn 0.0000000 -0.9974879 0.0708375 +vn 0.0000000 -0.5595279 -0.8288115 +vn 0.0000000 0.5595279 0.8288115 +vn 0.0000000 -0.8360630 0.5486335 +vn 0.0000000 -0.9873937 -0.1582838 +vn 0.0000000 0.9873937 0.1582838 +vn 0.0000000 0.8308153 0.5565482 +vn 0.0000000 -0.9878937 0.1551320 +vn 0.0000000 0.9878937 -0.1551320 +vn 0.0000000 0.9970511 0.0767403 +vn -0.0000000 -0.5904913 0.8070440 +vn 0.0000000 0.5904913 -0.8070440 +vn 0.0000000 0.9693748 -0.2455861 +vn 0.0000000 0.9235508 0.3834761 +vn -0.0000000 -0.9235508 -0.3834761 +vn -0.0000000 0.0058580 -0.9999828 +vn 0.0000000 0.9999998 0.0006162 +vn 0.0000000 -0.9999998 -0.0006162 +vn 0.0000000 -0.9683753 -0.2494980 +vn -0.0000000 0.9258074 -0.3779956 +vn 0.0000000 -0.9258074 0.3779956 +vn 0.0000000 -0.9970104 -0.0772674 +vn -0.0000000 -0.8225564 -0.5686836 +vn 0.0000000 0.8360062 -0.5487200 +vn -0.0000000 0.9975192 -0.0703947 +vn 0.0000000 0.9668574 0.2553171 +vn -0.9028974 0.3535698 0.2444681 +vn -0.7421048 -0.6686227 0.0471610 +vn -0.8985071 -0.3669702 0.2408690 +vn -0.8766194 -0.4652334 -0.1228668 +vn -0.8040224 -0.5748953 -0.1518002 +vn -0.0000000 -0.0311286 0.9995154 +vn -0.0000000 -0.0314365 0.9995058 +vn 0.0000000 -0.9693843 0.2455486 +vn -0.9580333 0.0090170 -0.2865150 +vn -0.7435195 0.6667164 0.0516527 +vn -0.8001267 0.5814662 -0.1472899 +vn -0.8316334 0.5536667 0.0428844 +vn -0.9999999 -0.0005398 0.0000000 +vn -1.0000000 -0.0002699 0.0000000 +vn -0.9999999 0.0005398 0.0000000 +vn -0.9764094 0.1697164 0.1334952 +vn -0.9731702 -0.1924780 0.1260638 +vn -0.9830826 -0.1507066 -0.1040969 +vn -0.9417533 -0.3253498 -0.0851366 +vn -0.9171960 -0.3973995 0.0287238 +vn -0.9889431 0.0254459 -0.1460958 +vn -0.9403650 0.3297573 -0.0835094 +vn -0.9175197 0.3965359 0.0302805 +vn -0.9606280 0.2686331 0.0709235 +vn -0.4297850 0.9006835 -0.0636723 +vn -0.5024742 0.8359686 0.2206268 +vn -0.8208127 -0.0172609 0.5709366 +vn -0.4975643 -0.8408361 0.2131302 +vn -0.4311733 -0.8995795 -0.0696150 +vn -0.6700685 -0.6107585 -0.4218794 +vn -0.6607477 0.6273189 -0.4121692 +vn 0.0000000 0.9974879 -0.0708375 +vn 0.0000000 0.8360630 -0.5486335 +vn 0.0000000 -0.8308153 -0.5565482 +vn 0.0000000 -0.9970511 -0.0767403 +vn -0.0000000 -0.9693748 0.2455861 +vn 0.0000000 -0.0058580 0.9999828 +vn -0.0000000 0.9683753 0.2494980 +vn 0.0000000 0.9975099 -0.0705265 +vn 0.0000000 0.9669035 0.2551422 +vn 0.0000000 -0.0302018 0.9995438 +vn 0.0000000 -0.9693409 0.2457197 +vn -0.0000000 -0.9970187 -0.0771604 +vn 0.0000000 -0.9970213 -0.0771273 +vn 0.0000000 -0.8228360 -0.5682789 +vn 0.0000000 -0.8227735 -0.5683694 +vn 0.0000000 0.8357794 -0.5490654 +vn -0.4382643 -0.8966098 0.0633657 +vn -0.5115128 -0.8308452 -0.2192052 +vn -0.8271755 0.0169536 -0.5616879 +vn -0.5066296 0.8357201 -0.2118924 +vn -0.4396912 0.8954737 0.0692716 +vn -0.6788958 0.6041209 0.4172990 +vn -0.6697035 -0.6206481 0.4077905 +vn 0.3170154 -0.9344691 -0.1620765 +vn -0.0000000 -0.9832227 -0.1824090 +vn 0.0000000 -0.9624317 -0.2715238 +vn 0.0000000 -0.9222632 -0.3865626 +vn 0.0000000 -0.8380330 -0.5456196 +vn 0.0000000 -0.6429348 -0.7659209 +vn -0.0000000 -0.2097206 -0.9777614 +vn 0.0000000 0.3659073 -0.9306513 +vn 0.0000000 0.7183983 -0.6956320 +vn -0.0000000 0.8698919 -0.4932425 +vn 0.0000000 0.9369852 -0.3493690 +vn 0.0000000 0.9699297 -0.2433851 +vn -0.0000000 0.9871977 -0.1595015 +vn -0.0000000 0.9961240 -0.0879601 +vn -0.0000000 0.9997456 -0.0225573 +vn -0.0000000 0.9991458 0.0413240 +vn -0.0000000 0.9941508 0.1080009 +vn 0.0000000 0.9832227 0.1824090 +vn 0.0000000 0.9624317 0.2715238 +vn -0.0000000 0.9222407 0.3866163 +vn 0.0000000 0.8380330 0.5456196 +vn -0.0000000 0.6429348 0.7659209 +vn 0.0000000 0.2097206 0.9777614 +vn 0.0000000 -0.3659073 0.9306513 +vn 0.0000000 -0.7183983 0.6956320 +vn -0.0000000 -0.8698919 0.4932425 +vn 0.0000000 -0.9369852 0.3493690 +vn 0.0000000 -0.9699297 0.2433851 +vn -0.0000000 -0.9871977 0.1595015 +vn 0.3503465 -0.9050783 -0.2410199 +vn 0.0000000 -0.9941508 -0.1080009 +vn 0.2970828 -0.9502532 -0.0935987 +vn 0.0000000 -0.9997456 0.0225573 +vn 0.7463767 -0.6651815 -0.0213402 +vn 0.9726447 -0.2321787 -0.0074364 +vn -0.2877437 -0.9572212 0.0305128 +vn -0.7463767 -0.6651815 -0.0213402 +vn -0.9726447 -0.2321787 -0.0074364 +vn 0.7577225 -0.6494363 -0.0639454 +vn 0.9744263 -0.2236272 -0.0220074 +vn -0.7577225 -0.6494363 -0.0639454 +vn -0.9744263 -0.2236272 -0.0220074 +vn 0.7803037 -0.6162014 -0.1068730 +vn 0.9777037 -0.2068952 -0.0359146 +vn -0.7803037 -0.6162014 -0.1068730 +vn -0.9777037 -0.2068952 -0.0359146 +vn 0.8129620 -0.5626962 -0.1498860 +vn 0.9820990 -0.1820135 -0.0485041 +vn -0.8129620 -0.5626962 -0.1498860 +vn -0.9820990 -0.1820135 -0.0485041 +vn -0.0000000 -0.9222407 -0.3866163 +vn 0.8534449 -0.4846594 -0.1916692 +vn 0.9868580 -0.1502738 -0.0594063 +vn -0.8534449 -0.4846594 -0.1916692 +vn -0.9868580 -0.1502738 -0.0594063 +vn 0.8966769 -0.3784016 -0.2297450 +vn 0.9913746 -0.1120124 -0.0680418 +vn -0.8966769 -0.3784016 -0.2297450 +vn -0.9913746 -0.1120124 -0.0680418 +vn 0.9346680 -0.2426673 -0.2598236 +vn 0.9948390 -0.0692752 -0.0741371 +vn -0.9346680 -0.2426673 -0.2598236 +vn -0.9948390 -0.0692752 -0.0741371 +vn 0.9572895 -0.0838450 -0.2767070 +vn 0.9967411 -0.0234960 -0.0771694 +vn -0.9572895 -0.0838450 -0.2767070 +vn -0.9967411 -0.0234960 -0.0771694 +vn 0.9572457 0.0843856 -0.2766944 +vn 0.9967411 0.0234960 -0.0771694 +vn -0.9572457 0.0843856 -0.2766944 +vn -0.9967411 0.0234960 -0.0771694 +vn 0.9345473 0.2431675 -0.2597900 +vn 0.9948454 0.0692757 -0.0740502 +vn -0.9345473 0.2431675 -0.2597900 +vn -0.9948454 0.0692757 -0.0740502 +vn 0.8966074 0.3786273 -0.2296445 +vn 0.9913447 0.1122776 -0.0680397 +vn -0.8966074 0.3786273 -0.2296445 +vn -0.9913447 0.1122776 -0.0680397 +vn 0.8532569 0.4850380 -0.1915483 +vn 0.9868631 0.1502745 -0.0593198 +vn -0.8532569 0.4850380 -0.1915483 +vn -0.9868631 0.1502745 -0.0593198 +vn 0.8128745 0.5628668 -0.1497199 +vn 0.9820514 0.1822707 -0.0485018 +vn -0.8128745 0.5628668 -0.1497199 +vn -0.9820514 0.1822707 -0.0485018 +vn 0.7802031 0.6163438 -0.1067873 +vn 0.9777067 0.2068959 -0.0358287 +vn -0.7802031 0.6163438 -0.1067873 +vn -0.9777067 0.2068959 -0.0358287 +vn 0.7577293 0.6494421 -0.0638062 +vn 0.9743687 0.2238780 -0.0220061 +vn -0.7577293 0.6494421 -0.0638062 +vn -0.9743687 0.2238780 -0.0220061 +vn 0.7463788 0.6651835 -0.0212025 +vn 0.9726447 0.2321787 -0.0074364 +vn -0.7463788 0.6651835 -0.0212025 +vn -0.9726447 0.2321787 -0.0074364 +vn 0.7463767 0.6651815 0.0213402 +vn 0.9726447 0.2321787 0.0074364 +vn -0.7463767 0.6651815 0.0213402 +vn -0.9726447 0.2321787 0.0074364 +vn 0.7577225 0.6494363 0.0639454 +vn 0.9744263 0.2236272 0.0220074 +vn -0.7577225 0.6494363 0.0639454 +vn -0.9744263 0.2236272 0.0220074 +vn 0.7803037 0.6162014 0.1068730 +vn 0.9777037 0.2068952 0.0359146 +vn -0.7803037 0.6162014 0.1068730 +vn -0.9777037 0.2068952 0.0359146 +vn 0.8129620 0.5626962 0.1498860 +vn 0.9820990 0.1820135 0.0485041 +vn -0.8129620 0.5626962 0.1498860 +vn -0.9820990 0.1820135 0.0485041 +vn 0.8534449 0.4846594 0.1916692 +vn 0.9868580 0.1502738 0.0594063 +vn -0.8534449 0.4846594 0.1916692 +vn -0.9868580 0.1502738 0.0594063 +vn 0.8966769 0.3784016 0.2297450 +vn 0.9913746 0.1120124 0.0680418 +vn -0.8966769 0.3784016 0.2297450 +vn -0.9913746 0.1120124 0.0680418 +vn 0.9346680 0.2426673 0.2598236 +vn 0.9948390 0.0692752 0.0741371 +vn -0.9346680 0.2426673 0.2598236 +vn -0.9948390 0.0692752 0.0741371 +vn 0.9572895 0.0838450 0.2767070 +vn 0.9967411 0.0234960 0.0771694 +vn -0.9572895 0.0838450 0.2767070 +vn -0.9967411 0.0234960 0.0771694 +vn 0.9572457 -0.0843856 0.2766944 +vn 0.9967411 -0.0234960 0.0771694 +vn -0.9572457 -0.0843856 0.2766944 +vn -0.9967411 -0.0234960 0.0771694 +vn 0.9345473 -0.2431675 0.2597900 +vn 0.9948454 -0.0692757 0.0740502 +vn -0.9345473 -0.2431675 0.2597900 +vn -0.9948454 -0.0692757 0.0740502 +vn 0.8966074 -0.3786273 0.2296445 +vn 0.9913447 -0.1122776 0.0680397 +vn -0.8966074 -0.3786273 0.2296445 +vn -0.9913447 -0.1122776 0.0680397 +vn 0.8532569 -0.4850380 0.1915483 +vn 0.9868631 -0.1502745 0.0593198 +vn -0.8532569 -0.4850380 0.1915483 +vn -0.9868631 -0.1502745 0.0593198 +vn 0.8128745 -0.5628668 0.1497199 +vn 0.9820514 -0.1822707 0.0485018 +vn -0.8128745 -0.5628668 0.1497199 +vn -0.9820514 -0.1822707 0.0485018 +vn 0.7802031 -0.6163438 0.1067873 +vn 0.9777067 -0.2068959 0.0358287 +vn -0.7802031 -0.6163438 0.1067873 +vn -0.9777067 -0.2068959 0.0358287 +vn -0.0000000 -0.9961240 0.0879601 +vn 0.7577293 -0.6494421 0.0638062 +vn 0.9743687 -0.2238780 0.0220061 +vn -0.7577293 -0.6494421 0.0638062 +vn -0.9743687 -0.2238780 0.0220061 +vn 0.2877423 -0.9572165 -0.0306731 +vn 0.7463788 -0.6651835 0.0212025 +vn 0.9726447 -0.2321787 0.0074364 +vn -0.7463788 -0.6651835 0.0212025 +vn -0.9726447 -0.2321787 0.0074364 +vn 0.0000000 -0.9991458 -0.0413240 +vn -0.2877423 -0.9572165 -0.0306731 +vn -0.2970525 -0.9502839 0.0933822 +vn -0.2970828 -0.9502532 -0.0935987 +vn -0.1711419 -0.9664881 -0.1913404 +vn -0.1684670 -0.9856197 0.0131406 +vn -0.3169415 -0.9345237 0.1619062 +vn -0.0828237 -0.9279956 -0.3632691 +vn 0.2970525 -0.9502839 0.0933822 +vn -0.3502157 -0.9051918 0.2407835 +vn 0.3169415 -0.9345237 0.1619062 +vn -0.4015742 -0.8517774 0.3364720 +vn 0.3502157 -0.9051918 0.2407835 +vn -0.4767954 -0.7515830 0.4558389 +vn 0.4015742 -0.8517774 0.3364720 +vn -0.5754480 -0.5589898 0.5969841 +vn 0.4767954 -0.7515830 0.4558389 +vn -0.6634084 -0.2180417 0.7157843 +vn 0.5754480 -0.5589898 0.5969841 +vn -0.6636140 0.2166837 0.7160061 +vn 0.6634084 -0.2180417 0.7157843 +vn -0.5758180 0.5581122 0.5974482 +vn 0.6636140 0.2166837 0.7160061 +vn -0.4769868 0.7512699 0.4561548 +vn 0.5758180 0.5581122 0.5974482 +vn -0.4017362 0.8516031 0.3367197 +vn 0.4769868 0.7512699 0.4561548 +vn -0.3503465 0.9050783 0.2410199 +vn 0.4017286 0.8515871 0.3367693 +vn -0.3170154 0.9344691 0.1620765 +vn 0.3503465 0.9050783 0.2410199 +vn -0.2971619 0.9502274 0.0936088 +vn 0.3170154 0.9344691 0.1620765 +vn -0.2877764 0.9572062 0.0306767 +vn 0.2971188 0.9502408 0.0936101 +vn -0.2877441 0.9572224 -0.0304728 +vn 0.2877423 0.9572165 0.0306731 +vn -0.2970525 0.9502839 -0.0933822 +vn 0.2877437 0.9572212 -0.0305128 +vn -0.3169818 0.9345064 -0.1619268 +vn 0.2970525 0.9502839 -0.0933822 +vn -0.3502157 0.9051918 -0.2407835 +vn 0.3169415 0.9345237 -0.1619062 +vn -0.4016278 0.8517555 -0.3364634 +vn 0.3502157 0.9051918 -0.2407835 +vn -0.4768098 0.7516058 -0.4557863 +vn 0.4015742 0.8517774 -0.3364720 +vn -0.5754480 0.5589898 -0.5969841 +vn 0.4768098 0.7516058 -0.4557863 +vn -0.6634084 0.2180417 -0.7157843 +vn 0.5754480 0.5589898 -0.5969841 +vn -0.6636140 -0.2166837 -0.7160061 +vn 0.6634084 0.2180417 -0.7157843 +vn -0.5758180 -0.5581122 -0.5974482 +vn 0.6636140 -0.2166837 -0.7160061 +vn -0.4769868 -0.7512699 -0.4561548 +vn 0.5758180 -0.5581122 -0.5974482 +vn -0.4017362 -0.8516031 -0.3367197 +vn 0.4769868 -0.7512699 -0.4561548 +vn -0.3503954 -0.9050606 -0.2410152 +vn 0.4017286 -0.8515871 -0.3367693 +vn -0.3170154 -0.9344691 -0.1620765 +vn 0.1965837 -0.9474651 -0.2523187 +vn 0.1711419 -0.9664881 -0.1913404 +vn 0.1701287 -0.9841533 -0.0499856 +vn 0.1590073 -0.9867713 -0.0316085 +vn 0.1510276 -0.9872580 -0.0501236 +vn 0.1777598 -0.9771803 -0.1162762 +vn -0.1590082 -0.9867767 0.0314335 +vn 0.1578521 -0.9805465 -0.1166669 +vn 0.1829717 -0.9722094 0.1460484 +vn 0.1590082 -0.9867767 0.0314335 +vn 0.1625219 -0.9757596 0.1465602 +vn -0.1625219 -0.9757596 0.1465602 +vn 0.1965176 -0.9475475 0.2520607 +vn -0.1829717 -0.9722094 0.1460484 +vn 0.2313109 -0.9176541 0.3231196 +vn -0.1965176 -0.9475475 0.2520607 +vn 0.1790980 -0.9574110 0.2264685 +vn -0.2059160 -0.9230250 0.3249975 +vn 0.2287882 -0.9054008 0.3576385 +vn 0.2481592 -0.8554325 0.4545903 +vn 0.2780307 -0.8482685 0.4507099 +vn 0.3529477 -0.6393762 0.6831003 +vn -0.2780307 -0.8482685 0.4507099 +vn 0.4326796 -0.3919572 0.8118854 +vn -0.3529477 -0.6393762 0.6831003 +vn 0.3909660 -0.4000646 0.8289113 +vn -0.3909660 -0.4000646 0.8289113 +vn 0.4293931 0.2617179 0.8643641 +vn -0.4326796 -0.3919572 0.8118854 +vn 0.3982844 0.5485175 0.7351858 +vn -0.4293931 0.2617179 0.8643641 +vn 0.3586781 0.5582271 0.7481528 +vn -0.3587294 0.5580506 0.7482598 +vn 0.2793413 0.8207422 0.4983480 +vn -0.3982844 0.5485175 0.7351858 +vn 0.2560079 0.8832511 0.3928454 +vn -0.2793413 0.8207422 0.4983480 +vn 0.2825880 0.7857113 0.5502743 +vn -0.2281811 0.8896152 0.3956237 +vn 0.2289047 0.9052396 0.3579719 +vn 0.1931880 0.9401027 0.2808654 +vn 0.2171078 0.9353015 0.2794196 +vn 0.1763627 0.9698446 0.1682188 +vn -0.2171078 0.9353015 0.2794196 +vn 0.1777598 0.9771803 0.1162762 +vn -0.1763627 0.9698446 0.1682188 +vn 0.1578521 0.9805465 0.1166669 +vn -0.1578521 0.9805465 0.1166669 +vn 0.1590073 0.9867713 0.0316085 +vn -0.1777598 0.9771803 0.1162762 +vn 0.1684278 0.9856264 -0.0131407 +vn -0.1590073 0.9867713 0.0316085 +vn 0.1495044 0.9886733 -0.0131703 +vn -0.1495044 0.9886733 -0.0131703 +vn 0.1644853 0.9816480 -0.0964974 +vn -0.1684278 0.9856264 -0.0131407 +vn 0.1829717 0.9722094 -0.1460484 +vn -0.1644853 0.9816480 -0.0964974 +vn 0.1531861 0.9851674 -0.0773250 +vn -0.1625219 0.9757596 -0.1465602 +vn 0.1763263 0.9698842 -0.1680287 +vn 0.1790980 0.9574110 -0.2264685 +vn 0.2014234 0.9532070 -0.2254443 +vn 0.2287882 0.9054008 -0.3576385 +vn -0.2014234 0.9532070 -0.2254443 +vn 0.2780307 0.8482685 -0.4507099 +vn -0.2287882 0.9054008 -0.3576385 +vn 0.2481656 0.8554548 -0.4545446 +vn -0.2481656 0.8554548 -0.4545446 +vn 0.3529477 0.6393762 -0.6831003 +vn -0.2780307 0.8482685 -0.4507099 +vn 0.4325956 0.3919747 -0.8119217 +vn -0.3529477 0.6393762 -0.6831003 +vn 0.3909660 0.4000646 -0.8289113 +vn -0.3909660 0.4000646 -0.8289113 +vn 0.4293931 -0.2617179 -0.8643641 +vn -0.4326796 0.3919572 -0.8118854 +vn 0.3982844 -0.5485175 -0.7351858 +vn -0.4293931 -0.2617179 -0.8643641 +vn 0.4199010 -0.1140194 -0.9003792 +vn -0.3586781 -0.5582271 -0.7481528 +vn 0.3531455 -0.6387745 -0.6835608 +vn 0.2825880 -0.7857113 -0.5502743 +vn 0.3157402 -0.7772337 -0.5442572 +vn 0.2289047 -0.9052396 -0.3579719 +vn -0.3158081 -0.7772152 -0.5442442 +vn 0.2171573 -0.9352910 -0.2794164 +vn -0.1763627 -0.9698446 -0.1682188 +vn 0.1931880 -0.9401027 -0.2808654 +vn 0.1925916 -0.9626026 -0.1905377 +vn 0.1763627 -0.9698446 -0.1682188 +vn -0.2171573 -0.9352910 -0.2794164 +vn -0.1531861 -0.9851674 0.0773250 +vn 0.1645010 -0.9816302 -0.0966517 +vn -0.1725419 -0.9819824 0.0770702 +vn -0.1925916 -0.9626026 -0.1905377 +vn 0.2281811 -0.8896152 -0.3956237 +vn -0.2560079 -0.8832511 -0.3928454 +vn 0.3587294 -0.5580506 -0.7482598 +vn -0.3982844 -0.5485175 -0.7351858 +vn -0.4633171 -0.1114251 -0.8791597 +vn 0.3123186 0.7117057 -0.6292314 +vn -0.3482325 0.7023150 -0.6208766 +vn 0.2059128 0.9230107 -0.3250402 +vn -0.2313109 0.9176541 -0.3231196 +vn 0.1625219 0.9757596 -0.1465602 +vn -0.1829717 0.9722094 -0.1460484 +vn -0.1725419 0.9819824 -0.0770702 +vn 0.1510276 0.9872580 0.0501236 +vn -0.1701287 0.9841533 0.0499856 +vn 0.1711419 0.9664881 0.1913404 +vn -0.1925901 0.9625953 0.1905765 +vn 0.2281811 0.8896152 0.3956237 +vn -0.2560079 0.8832511 0.3928454 +vn -0.3158081 0.7772152 0.5442442 +vn 0.4199010 0.1140194 0.9003792 +vn -0.4632302 0.1114308 0.8792047 +vn 0.3123186 -0.7117057 0.6292314 +vn -0.3482325 -0.7023150 0.6208766 +vn 0.2059160 -0.9230250 0.3249975 +vn -0.2313109 -0.9176541 0.3231196 +vn -0.2014234 -0.9532070 0.2254443 +vn 0.1531861 -0.9851674 0.0773250 +vn 0.1495431 -0.9886675 0.0131702 +vn -0.1777598 -0.9771803 -0.1162762 +vn -0.1701287 -0.9841533 -0.0499856 +vn 0.1644853 -0.9816480 0.0964974 +vn -0.2289047 -0.9052396 -0.3579719 +vn -0.1965837 -0.9474651 -0.2523187 +vn 0.2793413 -0.8207422 -0.4983480 +vn -0.2793413 -0.8207422 -0.4983480 +vn -0.3531455 -0.6387745 -0.6835608 +vn 0.4292639 0.2630975 -0.8640094 +vn -0.4292639 0.2630975 -0.8640094 +vn 0.2791845 0.8210401 -0.4979450 +vn -0.2791845 0.8210401 -0.4979450 +vn 0.1964701 0.9475567 -0.2520631 +vn -0.1964701 0.9475567 -0.2520631 +vn -0.1763263 0.9698842 -0.1680287 +vn 0.1589522 0.9867859 -0.0314303 +vn -0.1589522 0.9867859 -0.0314303 +vn 0.1645010 0.9816302 0.0966517 +vn -0.1645010 0.9816302 0.0966517 +vn 0.1965837 0.9474651 0.2523187 +vn -0.1965837 0.9474651 0.2523187 +vn -0.2289047 0.9052396 0.3579719 +vn 0.3531455 0.6387745 0.6835608 +vn -0.3531455 0.6387745 0.6835608 +vn 0.4292639 -0.2630975 0.8640094 +vn -0.4292639 -0.2630975 0.8640094 +vn 0.2791845 -0.8210401 0.4979450 +vn -0.2791845 -0.8210401 0.4979450 +vn -0.2287882 -0.9054008 0.3576385 +vn 0.1762833 -0.9698918 0.1680300 +vn -0.1763263 -0.9698842 0.1680287 +vn -0.1644853 -0.9816480 0.0964974 +vn -0.1645191 -0.9816261 -0.0966623 +vn -0.1590073 -0.9867713 -0.0316085 +vn -0.1495431 -0.9886675 0.0131702 +vn -0.1931880 -0.9401027 -0.2808654 +vn 0.2560079 -0.8832511 -0.3928454 +vn -0.2281811 -0.8896152 -0.3956237 +vn -0.2825880 -0.7857113 -0.5502743 +vn 0.4633171 -0.1114251 -0.8791597 +vn -0.4199010 -0.1140194 -0.9003792 +vn 0.3482325 0.7023150 -0.6208766 +vn -0.3123186 0.7117057 -0.6292314 +vn 0.2313109 0.9176541 -0.3231196 +vn -0.2059128 0.9230107 -0.3250402 +vn -0.1790980 0.9574110 -0.2264685 +vn 0.1725419 0.9819824 -0.0770702 +vn -0.1531861 0.9851674 -0.0773250 +vn 0.1701287 0.9841533 0.0499856 +vn -0.1510276 0.9872580 0.0501236 +vn 0.1925901 0.9625953 0.1905765 +vn -0.1711419 0.9664881 0.1913404 +vn -0.1931880 0.9401027 0.2808654 +vn 0.3158081 0.7772152 0.5442442 +vn -0.2825880 0.7857113 0.5502743 +vn 0.4632302 0.1114308 0.8792047 +vn -0.4199010 0.1140194 0.9003792 +vn 0.3482325 -0.7023150 0.6208766 +vn -0.3121943 -0.7118342 0.6291477 +vn -0.2480975 -0.8554464 0.4545977 +vn 0.2014695 -0.9531977 0.2254421 +vn -0.1790980 -0.9574110 0.2264685 +vn 0.1725419 -0.9819824 0.0770702 +vn 0.1684670 -0.9856197 0.0131406 +vn -0.1578521 -0.9805465 -0.1166669 +vn -0.1510276 -0.9872580 -0.0501236 +vn -0.1668755 -0.9859780 -0.0000703 +vn 0.1668755 -0.9859780 -0.0001055 +vn -0.1697117 -0.9834435 -0.0635357 +vn 0.1696720 -0.9834503 -0.0635362 +vn -0.1786106 -0.9751474 -0.1310944 +vn 0.1785690 -0.9751549 -0.1310954 +vn -0.1951568 -0.9584886 -0.2078785 +vn 0.1951568 -0.9584886 -0.2078785 +vn -0.2220449 -0.9274189 -0.3009822 +vn 0.2219941 -0.9274299 -0.3009857 +vn -0.2644043 -0.8675010 -0.4213460 +vn 0.2643649 -0.8675435 -0.4212832 +vn -0.3289140 -0.7432597 -0.5825638 +vn 0.3289140 -0.7432597 -0.5825638 +vn -0.4131657 -0.4755674 -0.7766143 +vn 0.4131657 -0.4755674 -0.7766143 +vn -0.4625030 0.0009015 -0.8866172 +vn 0.4625032 0.0006010 -0.8866174 +vn -0.4129298 0.4766370 -0.7760838 +vn 0.4129298 0.4766370 -0.7760838 +vn -0.3287500 0.7437780 -0.5819946 +vn 0.3287500 0.7437780 -0.5819946 +vn -0.2642198 0.8677539 -0.4209407 +vn 0.2642198 0.8677539 -0.4209407 +vn -0.2219387 0.9275517 -0.3006511 +vn 0.2219387 0.9275517 -0.3006511 +vn -0.1950472 0.9585610 -0.2076473 +vn 0.1950472 0.9585610 -0.2076473 +vn -0.1785737 0.9751780 -0.1309168 +vn 0.1785737 0.9751780 -0.1309168 +vn -0.1696952 0.9834583 -0.0633508 +vn 0.1696952 0.9834583 -0.0633508 +vn -0.1668755 0.9859780 0.0000703 +vn 0.1668755 0.9859780 0.0000703 +vn -0.1697698 0.9834331 0.0635422 +vn 0.1697702 0.9834353 0.0635066 +vn -0.1786106 0.9751474 0.1310944 +vn 0.1786106 0.9751474 0.1310944 +vn -0.1950879 0.9585077 0.2078551 +vn 0.1950879 0.9585077 0.2078551 +vn -0.2220449 0.9274189 0.3009822 +vn 0.2220449 0.9274189 0.3009822 +vn -0.2644043 0.8675010 0.4213460 +vn 0.2643981 0.8674806 0.4213918 +vn -0.3290685 0.7432510 0.5824876 +vn 0.3289979 0.7432704 0.5825028 +vn -0.4131657 0.4755674 0.7766143 +vn 0.4131657 0.4755674 0.7766143 +vn -0.4626306 -0.0006010 0.8865509 +vn 0.4626305 -0.0009015 0.8865507 +vn -0.4129298 -0.4766370 0.7760838 +vn 0.4129298 -0.4766370 0.7760838 +vn -0.3286794 -0.7437973 0.5820098 +vn 0.3286794 -0.7437973 0.5820098 +vn -0.2642260 -0.8677742 0.4208949 +vn 0.2641607 -0.8677685 0.4209478 +vn -0.2219387 -0.9275517 0.3006511 +vn 0.2220191 -0.9275206 0.3006877 +vn -0.1950235 -0.9585713 0.2076221 +vn 0.1950235 -0.9585713 0.2076221 +vn -0.1786162 -0.9751754 0.1308788 +vn 0.1786162 -0.9751754 0.1308788 +vn -0.1696556 -0.9834651 0.0633513 +vn 0.1696556 -0.9834651 0.0633513 +vn -0.1496739 -0.9827865 -0.1082979 +vn -0.3836277 0.3479855 -0.8554156 +vn -0.1429602 0.9895067 -0.0209491 +vn -0.3345189 0.5999088 0.7267782 +vn -0.1736719 -0.9556862 0.2377013 +vn -0.3982860 -0.3657734 -0.8411766 +vn -0.1580734 0.9811310 -0.1113318 +vn -0.2537034 0.8475760 0.4661003 +vn 0.1516100 -0.9873981 -0.0453802 +vn -0.3515030 -0.6459671 -0.6776224 +vn -0.1771760 0.9693551 -0.1701747 +vn -0.2282990 0.9067578 0.3544994 +vn -0.2304647 -0.9036379 0.3610049 +vn -0.1651243 -0.9813534 0.0983845 +vn -0.1814055 -0.9458577 -0.2691566 +vn -0.2132330 -0.8998322 -0.3805702 +vn -0.3344369 -0.5999273 -0.7268007 +vn -0.2437443 0.8456311 -0.4748650 +vn -0.2008812 0.9188617 -0.3396173 +vn -0.1567462 0.9752562 -0.1559037 +vn -0.1496745 0.9827903 0.1082622 +vn -0.1615283 0.9699956 0.1817063 +vn -0.2132067 0.8998800 0.3804719 +vn -0.3835374 -0.3479996 0.8554503 +vn -0.3084262 -0.6880665 0.6568392 +vn -0.2009088 -0.9188384 0.3396640 +vn 0.1879055 -0.9578469 -0.2173036 +vn -0.1471064 -0.9854129 0.0855640 +vn -0.1644927 -0.9745560 -0.1522585 +vn -0.1817845 -0.9552761 -0.2332424 +vn -0.2536409 -0.8475904 -0.4661082 +vn -0.3542826 0.5821283 -0.7318542 +vn -0.2791032 0.7965350 -0.5363147 +vn -0.1921611 0.9425850 -0.2731441 +vn -0.1505443 0.9884385 0.0180475 +vn -0.1546193 0.9845308 0.0824140 +vn -0.1817845 0.9552761 0.2332424 +vn -0.3982860 0.3657734 0.8411766 +vn -0.4199265 -0.1549156 0.8942387 +vn -0.2790354 -0.7965513 0.5363257 +vn 0.1922508 -0.9424783 -0.2734489 +vn 0.1708578 -0.9677072 -0.1853385 +vn -0.1646526 -0.9817881 -0.0947718 +vn -0.1763496 -0.9702149 -0.1660840 +vn -0.2282950 -0.9067417 -0.3545433 +vn -0.4315766 0.2490574 -0.8670133 +vn -0.3560735 0.6316689 -0.6886262 +vn -0.2304647 0.9036379 -0.3610049 +vn -0.1594471 0.9866465 -0.0332454 +vn -0.1593502 0.9867717 0.0298181 +vn -0.1763496 0.9702149 0.1660840 +vn -0.3515571 0.6458282 0.6777268 +vn -0.4287342 0.2753279 0.8604543 +vn -0.3560735 -0.6316689 0.6886262 +vn -0.1976928 -0.9466056 0.2546671 +vn 0.1879766 -0.9371869 -0.2938462 +vn 0.1655782 -0.9653611 -0.2016475 +vn 0.1447160 -0.9877640 -0.0581342 +vn -0.2815420 -0.8175265 0.5023789 +vn -0.4315766 -0.2490574 0.8670133 +vn -0.2782223 0.8239241 0.4937017 +vn -0.1963310 0.9482064 0.2497174 +vn -0.1646526 0.9817881 0.0947718 +vn -0.1651237 0.9813499 -0.0984205 +vn -0.1977157 0.9465812 -0.2547401 +vn -0.2815420 0.8175265 -0.5023789 +vn -0.4287342 -0.2753279 -0.8604543 +vn -0.2782223 -0.8239241 -0.4937017 +vn -0.1963331 -0.9482166 -0.2496769 +vn -0.1580566 -0.9811392 0.1112835 +vn -0.1921611 -0.9425850 0.2731441 +vn -0.2261377 -0.8946001 0.3854249 +vn -0.3542307 -0.5822948 0.7317469 +vn -0.3199600 0.6948025 0.6441080 +vn -0.2097642 0.9190697 0.3336313 +vn -0.1644927 0.9745560 0.1522585 +vn -0.1515953 0.9874102 -0.0451660 +vn -0.1708025 0.9677586 -0.1851211 +vn -0.2261942 0.8945881 -0.3854197 +vn -0.4199070 0.1552069 -0.8941973 +vn -0.3198691 -0.6947883 -0.6441685 +vn -0.2097676 -0.9190846 -0.3335883 +vn -0.1546193 -0.9845308 -0.0824140 +vn 0.2149288 -0.9250711 -0.3131279 +vn 0.1620435 -0.9842520 -0.0706386 +vn -0.2437443 -0.8456311 0.4748650 +vn -0.4002005 0.1808147 0.8984128 +vn -0.2628251 0.8059932 0.5303752 +vn -0.1814538 0.9458491 0.2691541 +vn -0.1438110 0.9887003 0.0423095 +vn -0.1471064 0.9854129 -0.0855640 +vn -0.1736237 0.9556846 -0.2377428 +vn -0.3084262 0.6880665 -0.6568392 +vn -0.4002005 -0.1808147 -0.8984128 +vn -0.2628251 -0.8059932 -0.5303752 +vn -0.1615026 -0.9699886 -0.1817665 +vn 0.1651237 -0.9813499 0.0984205 +vn -0.1655782 -0.9653611 -0.2016475 +vn 0.1580734 -0.9811310 0.1113318 +vn -0.1708578 -0.9677072 -0.1853385 +vn 0.1471064 -0.9854129 0.0855640 +vn -0.1879055 -0.9578469 -0.2173036 +vn -0.1879741 -0.9371744 -0.2938876 +vn -0.1922508 -0.9424783 -0.2734489 +vn -0.2149288 -0.9250711 -0.3131279 +vn 0.1976928 -0.9466056 0.2546671 +vn -0.1447160 -0.9877640 -0.0581342 +vn 0.1921611 -0.9425850 0.2731441 +vn -0.1516100 -0.9873981 -0.0453802 +vn 0.1736719 -0.9556862 0.2377013 +vn -0.1620435 -0.9842520 -0.0706386 +vn 0.2304647 -0.9036379 0.3610049 +vn 0.2261377 -0.8946001 0.3854249 +vn 0.2008557 -0.9188486 0.3396677 +vn 0.2815420 -0.8175265 0.5023789 +vn 0.2790354 -0.7965513 0.5363257 +vn 0.2437443 -0.8456311 0.4748650 +vn 0.3560735 -0.6316689 0.6886262 +vn 0.3542307 -0.5822948 0.7317469 +vn 0.3084262 -0.6880665 0.6568392 +vn 0.4315766 -0.2490574 0.8670133 +vn 0.4199070 -0.1552069 0.8941973 +vn 0.3836277 -0.3479855 0.8554156 +vn 0.4287342 0.2753279 0.8604543 +vn 0.3982860 0.3657734 0.8411766 +vn 0.4002932 0.1808067 0.8983731 +vn 0.3515571 0.6458282 0.6777268 +vn 0.3199600 0.6948025 0.6441080 +vn 0.3345189 0.5999088 0.7267782 +vn 0.2782223 0.8239241 0.4937017 +vn 0.2536409 0.8475904 0.4661082 +vn 0.2628251 0.8059932 0.5303752 +vn 0.2283213 0.9067735 0.3544450 +vn 0.2097642 0.9190697 0.3336313 +vn 0.2131506 0.8998913 0.3804767 +vn 0.1963310 0.9482064 0.2497174 +vn 0.1817845 0.9552761 0.2332424 +vn 0.1814538 0.9458491 0.2691541 +vn 0.1763936 0.9702136 0.1660450 +vn 0.1644937 0.9745617 0.1522214 +vn 0.1615283 0.9699956 0.1817063 +vn 0.1646532 0.9817914 0.0947359 +vn 0.1546193 0.9845308 0.0824140 +vn 0.1496745 0.9827903 0.1082622 +vn 0.1593502 0.9867717 0.0298181 +vn 0.1505443 0.9884385 0.0180475 +vn 0.1438110 0.9887003 0.0423095 +vn 0.1594471 0.9866465 -0.0332454 +vn 0.1515953 0.9874102 -0.0451660 +vn 0.1429602 0.9895067 -0.0209491 +vn 0.1651237 0.9813499 -0.0984205 +vn 0.1580734 0.9811310 -0.1113318 +vn 0.1471064 0.9854129 -0.0855640 +vn 0.1771760 0.9693551 -0.1701747 +vn 0.1708025 0.9677586 -0.1851211 +vn 0.1567462 0.9752562 -0.1559037 +vn 0.1977157 0.9465812 -0.2547401 +vn 0.1921611 0.9425850 -0.2731441 +vn 0.1736237 0.9556846 -0.2377428 +vn 0.2304647 0.9036379 -0.3610049 +vn 0.2262222 0.8945380 -0.3855196 +vn 0.2008812 0.9188617 -0.3396173 +vn 0.2815420 0.8175265 -0.5023789 +vn 0.2791032 0.7965350 -0.5363147 +vn 0.2437443 0.8456311 -0.4748650 +vn 0.3560735 0.6316689 -0.6886262 +vn 0.3542826 0.5821283 -0.7318542 +vn 0.3084262 0.6880665 -0.6568392 +vn 0.4315766 0.2490574 -0.8670133 +vn 0.4199070 0.1552069 -0.8941973 +vn 0.3836277 0.3479855 -0.8554156 +vn 0.4287342 -0.2753279 -0.8604543 +vn 0.3982860 -0.3657734 -0.8411766 +vn 0.4002005 -0.1808147 -0.8984128 +vn 0.3515571 -0.6458282 -0.6777268 +vn 0.3198691 -0.6947883 -0.6441685 +vn 0.3344369 -0.5999273 -0.7268007 +vn 0.2782223 -0.8239241 -0.4937017 +vn 0.2536409 -0.8475904 -0.4661082 +vn 0.2628251 -0.8059932 -0.5303752 +vn 0.2282990 -0.9067578 -0.3544994 +vn 0.2097642 -0.9190697 -0.3336313 +vn 0.2131768 -0.8998435 -0.3805750 +vn 0.1963331 -0.9482166 -0.2496769 +vn 0.1817845 -0.9552761 -0.2332424 +vn 0.1814055 -0.9458577 -0.2691566 +vn 0.1763496 -0.9702149 -0.1660840 +vn 0.1644927 -0.9745560 -0.1522585 +vn 0.1615283 -0.9699956 -0.1817063 +vn 0.1646532 -0.9817914 -0.0947359 +vn 0.1546193 -0.9845308 -0.0824140 +vn 0.1496739 -0.9827865 -0.1082979 +vn -0.0636266 -0.9829817 0.1723330 +vn 0.0646936 -0.9896431 -0.1281455 +vn 0.0727188 -0.9918315 0.1047959 +vn -0.0784916 -0.9769252 -0.1986359 +vn 0.0706681 -0.9760593 -0.2057041 +vn 0.0783971 -0.9808208 0.1784503 +vn -0.0783971 -0.9808208 0.1784503 +vn 0.0721005 -0.9898860 -0.1221771 +vn 0.0784826 -0.9769305 -0.1986132 +vn 0.0591882 -0.9932863 0.0993932 +vn -0.0706681 -0.9760593 -0.2057041 +vn 0.0636266 -0.9829817 0.1723330 +vn -0.0805717 -0.9503920 -0.3004385 +vn 0.0891351 -0.9524333 -0.2914203 +vn -0.0891351 -0.9524333 -0.2914203 +vn 0.0805717 -0.9503920 -0.3004385 +vn -0.0712321 -0.9632852 0.2588582 +vn 0.0880533 -0.9598611 0.2662955 +vn -0.0880533 -0.9598611 0.2662955 +vn 0.0712321 -0.9632852 0.2588582 +vn -0.0965014 -0.9000676 -0.4249303 +vn 0.1062627 -0.9046752 -0.4126390 +vn -0.1062627 -0.9046752 -0.4126390 +vn 0.0965014 -0.9000676 -0.4249303 +vn -0.1218590 -0.7920246 -0.5982035 +vn 0.1335611 -0.8031393 -0.5806279 +vn -0.1335611 -0.8031393 -0.5806279 +vn 0.1218590 -0.7920246 -0.5982035 +vn -0.1581058 -0.5407229 -0.8262090 +vn 0.1731703 -0.5685099 -0.8042441 +vn -0.1731703 -0.5685099 -0.8042441 +vn 0.1581058 -0.5407229 -0.8262090 +vn -0.1838578 -0.0389736 -0.9821799 +vn 0.2047080 -0.0874456 -0.9749092 +vn -0.2047080 -0.0874456 -0.9749092 +vn 0.1838578 -0.0389736 -0.9821799 +vn -0.1630219 0.4900550 -0.8563118 +vn 0.1855137 0.4538652 -0.8715452 +vn -0.1855137 0.4538652 -0.8715452 +vn 0.1630219 0.4900550 -0.8563118 +vn -0.1260730 0.7699626 -0.6255103 +vn 0.1441498 0.7531316 -0.6418829 +vn -0.1441498 0.7531316 -0.6418829 +vn 0.1260730 0.7699626 -0.6255103 +vn -0.0992169 0.8902868 -0.4444608 +vn 0.1131000 0.8824757 -0.4565578 +vn -0.1131000 0.8824757 -0.4565578 +vn 0.0992169 0.8902868 -0.4444608 +vn -0.0822514 0.9456301 -0.3146719 +vn 0.0934032 0.9415383 -0.3236997 +vn -0.0934032 0.9415383 -0.3236997 +vn 0.0822514 0.9456301 -0.3146719 +vn -0.0717083 0.9735514 -0.2169231 +vn 0.0811190 0.9712187 -0.2239509 +vn -0.0811190 0.9712187 -0.2239509 +vn 0.0717083 0.9735514 -0.2169231 +vn -0.0652989 0.9883308 -0.1376163 +vn 0.0736367 0.9868903 -0.1436150 +vn -0.0736367 0.9868903 -0.1436150 +vn 0.0652989 0.9883308 -0.1376163 +vn -0.0618008 0.9957293 -0.0685848 +vn 0.0694826 0.9948335 -0.0740172 +vn -0.0694826 0.9948335 -0.0740172 +vn 0.0618008 0.9957293 -0.0685848 +vn -0.0606015 0.9981533 -0.0041665 +vn 0.0679425 0.9976448 -0.0094132 +vn -0.0679425 0.9976448 -0.0094132 +vn 0.0606015 0.9981535 -0.0041336 +vn -0.0615177 0.9963023 0.0599782 +vn 0.0687704 0.9961408 0.0545358 +vn -0.0687704 0.9961408 0.0545358 +vn 0.0615178 0.9963042 0.0599450 +vn -0.0646936 0.9896431 0.1281455 +vn 0.0720931 0.9898924 0.1221296 +vn -0.0720931 0.9898924 0.1221296 +vn 0.0646936 0.9896431 0.1281455 +vn -0.0706681 0.9760593 0.2057041 +vn 0.0784916 0.9769252 0.1986359 +vn -0.0784916 0.9769252 0.1986359 +vn 0.0706686 0.9760670 0.2056675 +vn -0.0805717 0.9503920 0.3004385 +vn 0.0891340 0.9524213 0.2914598 +vn -0.0891340 0.9524213 0.2914598 +vn 0.0805717 0.9503920 0.3004385 +vn -0.0965154 0.9000370 0.4249919 +vn 0.1062627 0.9046752 0.4126390 +vn -0.1062627 0.9046752 0.4126390 +vn 0.0965014 0.9000676 0.4249303 +vn -0.1218786 0.7919487 0.5982999 +vn 0.1335662 0.8031694 0.5805850 +vn -0.1335611 0.8031393 0.5806279 +vn 0.1218786 0.7919487 0.5982999 +vn -0.1580832 0.5409096 0.8260911 +vn 0.1731565 0.5687233 0.8040961 +vn -0.1731565 0.5687233 0.8040961 +vn 0.1580832 0.5409096 0.8260911 +vn -0.1838578 0.0389736 0.9821799 +vn 0.2047080 0.0874456 0.9749092 +vn -0.2047080 0.0874456 0.9749092 +vn 0.1838578 0.0389736 0.9821799 +vn -0.1630219 -0.4900550 0.8563118 +vn 0.1855370 -0.4536451 0.8716548 +vn -0.1855370 -0.4536451 0.8716548 +vn 0.1630219 -0.4900550 0.8563118 +vn -0.1260730 -0.7699626 0.6255103 +vn 0.1441498 -0.7531316 0.6418829 +vn -0.1441498 -0.7531316 0.6418829 +vn 0.1260730 -0.7699626 0.6255103 +vn -0.0992023 -0.8903212 0.4443953 +vn 0.1131000 -0.8824757 0.4565578 +vn -0.1131000 -0.8824757 0.4565578 +vn 0.0992023 -0.8903212 0.4443953 +vn -0.0822514 -0.9456301 0.3146719 +vn 0.0933909 -0.9415541 0.3236572 +vn -0.0933909 -0.9415541 0.3236572 +vn 0.0822104 -0.9456063 0.3147542 +vn -0.0717083 -0.9735514 0.2169231 +vn 0.0811278 -0.9712033 0.2240145 +vn -0.0811278 -0.9712033 0.2240145 +vn 0.0717089 -0.9735596 0.2168861 +vn -0.0652989 -0.9883308 0.1376163 +vn 0.0736367 -0.9868903 0.1436150 +vn -0.0736363 -0.9868852 0.1436499 +vn 0.0652989 -0.9883308 0.1376163 +vn -0.0618009 -0.9957316 0.0685515 +vn 0.0694756 -0.9948370 0.0739761 +vn -0.0694756 -0.9948370 0.0739761 +vn 0.0618009 -0.9957316 0.0685515 +vn 0.2877441 -0.9572224 0.0304728 +vn 0.0997780 -0.9303749 -0.3527704 +vn -0.0997780 -0.9303749 -0.3527704 +vn 0.0828237 -0.9279956 -0.3632691 +vn 0.4058514 -0.0474148 -0.9127083 +vn 0.4200231 -0.1534585 -0.8944446 +vn 0.4433654 0.0589291 -0.8944017 +vn -0.4200231 -0.1534585 -0.8944446 +vn -0.4433654 0.0589291 -0.8944017 +vn -0.4058514 -0.0474148 -0.9127083 +vn -0.1021442 -0.8530000 -0.5118179 +vn 0.1224258 -0.8592026 -0.4967723 +vn -0.1224070 -0.8592494 -0.4966961 +vn 0.1021442 -0.8530000 -0.5118179 +vn 0.3668333 0.4542235 -0.8118586 +vn 0.3979807 0.3672870 -0.8406614 +vn 0.3866967 0.5197400 -0.7617979 +vn -0.3667457 0.4542404 -0.8118887 +vn -0.3866967 0.5197400 -0.7617979 +vn -0.3979807 0.3672870 -0.8406614 +vn -0.1319741 -0.6830722 -0.7183281 +vn 0.1575012 -0.6998207 -0.6967384 +vn -0.1575012 -0.6998207 -0.6967384 +vn 0.1319741 -0.6830722 -0.7183281 +vn 0.2904002 0.7392606 -0.6075867 +vn 0.3196468 0.6954417 -0.6435734 +vn 0.3061145 0.7660036 -0.5652719 +vn -0.3196468 0.6954417 -0.6435734 +vn -0.2904002 0.7392606 -0.6075867 +vn -0.3061145 0.7660036 -0.5652719 +vn -0.0707763 -0.9645413 -0.2542653 +vn 0.0856453 -0.9653655 -0.2464435 +vn -0.0856453 -0.9653655 -0.2464435 +vn 0.0707756 -0.9645313 -0.2543034 +vn 0.3538773 -0.5192866 -0.7778896 +vn 0.3546028 -0.5812406 -0.7324044 +vn 0.4041998 -0.4377367 -0.8031246 +vn -0.4041998 -0.4377367 -0.8031246 +vn -0.3546028 -0.5812406 -0.7324044 +vn -0.3538773 -0.5192866 -0.7778896 +vn -0.0633488 -0.9836427 -0.1686236 +vn 0.0769342 -0.9837437 -0.1622633 +vn -0.0769342 -0.9837437 -0.1622633 +vn 0.0633492 -0.9836488 -0.1685881 +vn 0.2786200 -0.7693974 -0.5748030 +vn 0.2793045 -0.7961169 -0.5368303 +vn 0.3223033 -0.7274138 -0.6057968 +vn -0.2786200 -0.7693974 -0.5748030 +vn -0.3222308 -0.7274327 -0.6058126 +vn -0.2793045 -0.7961169 -0.5368303 +vn -0.0590394 -0.9936210 -0.0960812 +vn 0.0719251 -0.9932888 -0.0905764 +vn -0.0719251 -0.9932888 -0.0905764 +vn 0.0590392 -0.9936178 -0.0961149 +vn 0.2235011 -0.8827914 -0.4131908 +vn 0.2262867 -0.8943854 -0.3858355 +vn 0.2575121 -0.8612569 -0.4380914 +vn -0.2263387 -0.8943553 -0.3858747 +vn -0.2574734 -0.8613020 -0.4380255 +vn -0.2235011 -0.8827914 -0.4131908 +vn -0.0570709 -0.9979095 -0.0303234 +vn 0.0697280 -0.9972472 -0.0252205 +vn -0.0697281 -0.9972480 -0.0251875 +vn 0.0570708 -0.9979085 -0.0303562 +vn -0.1593112 -0.9867780 -0.0298183 +vn -0.1505443 -0.9884385 -0.0180475 +vn -0.1437722 -0.9887059 -0.0423098 +vn 0.1593112 -0.9867780 -0.0298183 +vn 0.1438110 -0.9887003 -0.0423095 +vn 0.1505055 -0.9884444 -0.0180476 +vn 0.0571173 -0.9978083 0.0334092 +vn -0.0699757 -0.9968057 0.0384952 +vn -0.0571173 -0.9978083 0.0334092 +vn 0.0699757 -0.9968057 0.0384952 +vn -0.1594473 -0.9866477 0.0332104 +vn -0.1516343 -0.9874042 0.0451658 +vn -0.1429602 -0.9895067 0.0209491 +vn 0.1429602 -0.9895067 0.0209491 +vn 0.1515953 -0.9874102 0.0451660 +vn 0.1594471 -0.9866465 0.0332454 +vn -0.0646936 -0.9896431 -0.1281455 +vn -0.0727188 -0.9918315 0.1047959 +vn -0.0721005 -0.9898860 -0.1221771 +vn -0.0591884 -0.9932897 0.0993595 +vn 0.1519780 -0.9803863 -0.1254805 +vn 0.1580876 -0.9811069 -0.1115240 +vn 0.1712691 -0.9753644 -0.1390368 +vn -0.1580882 -0.9811109 -0.1114881 +vn -0.1519780 -0.9803863 -0.1254805 +vn -0.1712691 -0.9753644 -0.1390368 +vn -0.0615177 -0.9963023 -0.0599782 +vn 0.0687703 -0.9961390 -0.0545691 +vn -0.0687703 -0.9961390 -0.0545691 +vn 0.0615177 -0.9963023 -0.0599782 +vn -0.1771760 -0.9693551 0.1701747 +vn -0.1708462 -0.9677512 0.1851196 +vn -0.1567884 -0.9752496 0.1559026 +vn 0.1771760 -0.9693551 0.1701747 +vn 0.1567884 -0.9752496 0.1559026 +vn 0.1708462 -0.9677512 0.1851196 +vn -0.0606015 -0.9981533 0.0041665 +vn 0.0679425 -0.9976448 0.0094132 +vn -0.0679425 -0.9976448 0.0094132 +vn 0.0606015 -0.9981533 0.0041665 +vn 0.1427424 -0.9897449 0.0054432 +vn 0.1505061 -0.9884481 0.0178394 +vn 0.1587347 -0.9872976 -0.0068428 +vn -0.1505061 -0.9884481 0.0178394 +vn -0.1587347 -0.9872976 -0.0068428 +vn -0.1427039 -0.9897506 0.0054088 +vn -0.0835580 -0.9255338 0.3693309 +vn 0.1036507 -0.9195836 0.3789757 +vn -0.1036507 -0.9195836 0.3789757 +vn 0.0835580 -0.9255338 0.3693309 +vn 0.1455761 -0.9869167 0.0693041 +vn 0.1545656 -0.9845577 0.0821932 +vn 0.1608435 -0.9853617 0.0564957 +vn -0.1545656 -0.9845577 0.0821932 +vn -0.1456151 -0.9869085 0.0693387 +vn -0.1608435 -0.9853617 0.0564957 +vn -0.1033136 -0.8477130 0.5202971 +vn 0.1285788 -0.8361327 0.5332445 +vn -0.1285788 -0.8361327 0.5332445 +vn 0.1033136 -0.8477130 0.5202971 +vn 0.1538243 -0.9784463 0.1377711 +vn 0.1644178 -0.9746028 0.1520397 +vn 0.1687418 -0.9778902 0.1235191 +vn -0.1538243 -0.9784463 0.1377711 +vn -0.1687006 -0.9778972 0.1235200 +vn -0.1644178 -0.9746028 0.1520397 +vn -0.1336424 -0.6708108 0.7294879 +vn 0.1663480 -0.6458885 0.7450882 +vn -0.1663480 -0.6458885 0.7450882 +vn 0.1336424 -0.6708108 0.7294879 +vn 0.1687145 -0.9616761 0.2161353 +vn 0.1817036 -0.9553679 0.2329292 +vn 0.1835230 -0.9626379 0.1991171 +vn -0.1817036 -0.9553679 0.2329292 +vn -0.1835230 -0.9626379 0.1991171 +vn -0.1687145 -0.9616761 0.2161353 +vn -0.1670115 -0.2738958 0.9471474 +vn 0.2051639 -0.2284986 0.9516807 +vn -0.2051639 -0.2284986 0.9516807 +vn 0.1670115 -0.2738958 0.9471474 +vn 0.1929811 -0.9302578 0.3120556 +vn 0.2096100 -0.9192322 0.3332805 +vn 0.2079451 -0.9340737 0.2902846 +vn -0.2079451 -0.9340737 0.2902846 +vn -0.2096100 -0.9192322 0.3332805 +vn -0.1929557 -0.9302480 0.3121005 +vn -0.1658496 0.2991009 0.9396981 +vn 0.1991142 0.3377276 0.9199422 +vn -0.1991142 0.3377276 0.9199422 +vn 0.1658496 0.2991009 0.9396981 +vn 0.2314049 -0.8688951 0.4375764 +vn 0.2535066 -0.8478626 0.4656860 +vn 0.2465801 -0.8792059 0.4076705 +vn -0.2314049 -0.8688951 0.4375764 +vn -0.2465438 -0.8792438 0.4076106 +vn -0.2535691 -0.8478482 0.4656781 +vn -0.1319741 0.6830722 0.7183281 +vn 0.1575012 0.6998207 0.6967384 +vn -0.1575012 0.6998207 0.6967384 +vn 0.1319741 0.6830722 0.7183281 +vn 0.2903733 -0.7391797 0.6076979 +vn 0.3196468 -0.6954417 0.6435734 +vn 0.3060331 -0.7659925 0.5653310 +vn -0.3197224 -0.6954230 0.6435560 +vn -0.3060331 -0.7659925 0.5653310 +vn -0.2903269 -0.7392778 0.6076008 +vn -0.1021442 0.8530000 0.5118179 +vn 0.1224258 0.8592026 0.4967723 +vn -0.1224070 0.8592494 0.4966961 +vn 0.1021442 0.8530000 0.5118179 +vn 0.3667457 -0.4542404 0.8118887 +vn 0.3980689 -0.3672717 0.8406263 +vn 0.3866967 -0.5197400 0.7617979 +vn -0.3667457 -0.4542404 0.8118887 +vn -0.3866967 -0.5197400 0.7617979 +vn -0.3981103 -0.3670269 0.8407137 +vn -0.0828237 0.9279956 0.3632691 +vn 0.0997780 0.9303749 0.3527704 +vn -0.0997780 0.9303749 0.3527704 +vn 0.0828237 0.9279956 0.3632691 +vn 0.4058514 0.0474148 0.9127083 +vn 0.4199320 0.1534656 0.8944861 +vn 0.4433654 -0.0589291 0.8944017 +vn -0.4199320 0.1534656 0.8944861 +vn -0.4058514 0.0474148 0.9127083 +vn -0.4433654 -0.0589291 0.8944017 +vn -0.0707842 0.9645225 0.2543342 +vn 0.0856453 0.9653655 0.2464435 +vn -0.0856453 0.9653655 0.2464435 +vn 0.0707842 0.9645225 0.2543342 +vn 0.3538773 0.5192866 0.7778896 +vn 0.3545508 0.5814075 0.7322971 +vn 0.4041998 0.4377367 0.8031246 +vn -0.3538773 0.5192866 0.7778896 +vn -0.4041998 0.4377367 0.8031246 +vn -0.3546028 0.5812406 0.7324044 +vn -0.0633492 0.9836488 0.1685881 +vn 0.0769342 0.9837437 0.1622633 +vn -0.0769342 0.9837437 0.1622633 +vn 0.0633492 0.9836488 0.1685881 +vn 0.2786200 0.7693974 0.5748030 +vn 0.2793045 0.7961169 0.5368303 +vn 0.3222169 0.7274015 0.6058575 +vn -0.2792367 0.7961333 0.5368414 +vn -0.3222169 0.7274015 0.6058575 +vn -0.2785491 0.7694139 0.5748153 +vn -0.0590394 0.9936210 0.0960812 +vn 0.0719324 0.9932844 0.0906196 +vn -0.0719324 0.9932844 0.0906196 +vn 0.0590394 0.9936210 0.0960812 +vn 0.2235339 0.8827547 0.4132515 +vn 0.2262822 0.8943674 0.3858800 +vn 0.2575121 0.8612569 0.4380914 +vn -0.2574734 0.8613020 0.4380255 +vn -0.2262822 0.8943674 0.3858800 +vn -0.2235339 0.8827547 0.4132515 +vn -0.0570708 0.9979085 0.0303562 +vn 0.0697280 0.9972472 0.0252205 +vn -0.0697281 0.9972480 0.0251875 +vn 0.0570709 0.9979095 0.0303234 +vn 0.1879766 0.9371869 0.2938462 +vn 0.1922996 0.9424691 0.2734463 +vn 0.2149803 0.9250604 0.3131242 +vn -0.1879766 0.9371869 0.2938462 +vn -0.2149803 0.9250604 0.3131242 +vn -0.1922996 0.9424691 0.2734463 +vn -0.0571173 0.9978083 -0.0334092 +vn 0.0699827 0.9968037 -0.0385322 +vn -0.0699827 0.9968037 -0.0385322 +vn 0.0571174 0.9978094 -0.0333763 +vn 0.1655782 0.9653611 0.2016475 +vn 0.1708578 0.9677072 0.1853385 +vn 0.1879055 0.9578469 0.2173036 +vn -0.1708565 0.9677001 0.1853766 +vn -0.1879038 0.9578383 0.2173430 +vn -0.1655796 0.9653689 0.2016091 +vn -0.0591884 0.9932897 -0.0993595 +vn 0.0727188 0.9918315 -0.1047959 +vn -0.0727188 0.9918315 -0.1047959 +vn 0.0591884 0.9932897 -0.0993595 +vn 0.1519371 0.9803926 0.1254813 +vn 0.1580470 0.9811133 0.1115248 +vn 0.1712497 0.9753700 0.1390211 +vn -0.1519371 0.9803926 0.1254813 +vn -0.1712691 0.9753644 0.1390368 +vn -0.1580470 0.9811133 0.1115248 +vn -0.0636266 0.9829817 -0.1723330 +vn 0.0783971 0.9808208 -0.1784503 +vn -0.0783971 0.9808208 -0.1784503 +vn 0.0636266 0.9829817 -0.1723330 +vn 0.1447160 0.9877640 0.0581342 +vn 0.1516493 0.9873937 0.0453450 +vn 0.1620435 0.9842520 0.0706386 +vn -0.1516493 0.9873937 0.0453450 +vn -0.1447160 0.9877640 0.0581342 +vn -0.1620435 0.9842520 0.0706386 +vn -0.0712321 0.9632852 -0.2588582 +vn 0.0880533 0.9598611 -0.2662955 +vn -0.0880533 0.9598611 -0.2662955 +vn 0.0712321 0.9632852 -0.2588582 +vn 0.1427039 0.9897506 -0.0054088 +vn 0.1505060 0.9884475 -0.0178741 +vn 0.1587347 0.9872973 0.0068777 +vn -0.1427039 0.9897506 -0.0054088 +vn -0.1587347 0.9872973 0.0068777 +vn -0.1505448 0.9884422 -0.0178393 +vn -0.0835465 0.9255551 -0.3692801 +vn 0.1036507 0.9195836 -0.3789757 +vn -0.1036526 0.9196007 -0.3789336 +vn 0.0835480 0.9255715 -0.3692385 +vn 0.1456151 0.9869085 -0.0693387 +vn 0.1546053 0.9845515 -0.0821926 +vn 0.1608432 0.9853597 -0.0565309 +vn -0.1546053 0.9845515 -0.0821926 +vn -0.1608435 0.9853617 -0.0564957 +vn -0.1456151 0.9869085 -0.0693387 +vn -0.1033136 0.8477130 -0.5202971 +vn 0.1285788 0.8361327 -0.5332445 +vn -0.1285788 0.8361327 -0.5332445 +vn 0.1033136 0.8477130 -0.5202971 +vn 0.1537657 0.9784576 -0.1377566 +vn 0.1644178 0.9746028 -0.1520397 +vn 0.1686817 0.9779022 -0.1235062 +vn -0.1686817 0.9779022 -0.1235062 +vn -0.1644600 0.9745959 -0.1520386 +vn -0.1537657 0.9784576 -0.1377566 +vn -0.1336424 0.6708108 -0.7294879 +vn 0.1663480 0.6458885 -0.7450882 +vn -0.1663480 0.6458885 -0.7450882 +vn 0.1336424 0.6708108 -0.7294879 +vn 0.1687160 0.9616846 -0.2160965 +vn 0.1817018 0.9553586 -0.2329688 +vn 0.1835245 0.9626456 -0.1990783 +vn -0.1687160 0.9616846 -0.2160965 +vn -0.1835245 0.9626456 -0.1990783 +vn -0.1817036 0.9553679 -0.2329292 +vn -0.1670115 0.2738958 -0.9471474 +vn 0.2051498 0.2287824 -0.9516155 +vn -0.2051498 0.2287824 -0.9516155 +vn 0.1670115 0.2738958 -0.9471474 +vn 0.1930069 0.9302385 -0.3120973 +vn 0.2096628 0.9192215 -0.3332766 +vn 0.2079451 0.9340737 -0.2902846 +vn -0.2096628 0.9192215 -0.3332766 +vn -0.2079451 0.9340737 -0.2902846 +vn -0.1930069 0.9302385 -0.3120973 +vn -0.1658496 -0.2991009 -0.9396981 +vn 0.1991142 -0.3377276 -0.9199422 +vn -0.1991142 -0.3377276 -0.9199422 +vn 0.1658496 -0.2991009 -0.9396981 +vn 0.2314049 0.8688951 -0.4375764 +vn 0.2535691 0.8478482 -0.4656781 +vn 0.2465438 0.8792438 -0.4076106 +vn -0.2313445 0.8689079 -0.4375828 +vn -0.2465438 0.8792438 -0.4076106 +vn -0.2535691 0.8478482 -0.4656781 +vn -0.9508644 0.3094495 0.0098940 +vn -0.9539483 0.2985226 0.0294418 +vn -0.9841274 0.1517090 0.0920743 +vn -0.9904765 0.0939824 0.1006163 +vn -0.9904601 -0.0942502 0.1005273 +vn -0.9841274 -0.1517090 0.0920743 +vn -0.9759599 -0.2027227 0.0800363 +vn -0.9539507 -0.2985234 0.0293578 +vn -0.9508644 -0.3094495 0.0098940 +vn -0.9597160 -0.2768441 -0.0479841 +vn -0.9674280 -0.2446125 -0.0651754 +vn -0.9760124 -0.2024683 -0.0800406 +vn -0.9939698 -0.0318884 -0.1049154 +vn -0.9939698 0.0318884 -0.1049154 +vn -0.9759599 0.2027227 -0.0800363 +vn -0.9674333 0.2446139 -0.0650905 +vn -0.9597160 0.2768441 -0.0479841 +vn -0.9539507 0.2985234 -0.0293578 +vn -0.9508644 0.3094495 -0.0098940 +vn -0.9904601 0.0942502 -0.1005273 +vn -0.9841274 0.1517090 -0.0920743 +vn -0.9841274 -0.1517090 -0.0920743 +vn -0.9904852 -0.0939833 -0.1005299 +vn -0.9508644 -0.3094495 -0.0098940 +vn -0.9539483 -0.2985226 -0.0294418 +vn -0.9674333 -0.2446139 0.0650905 +vn -0.9597160 -0.2768441 0.0479841 +vn -0.9939698 0.0318884 0.1049154 +vn -0.9939698 -0.0318884 0.1049154 +vn -0.9597160 0.2768441 0.0479841 +vn -0.9674280 0.2446125 0.0651754 +vn -0.9760124 0.2024683 0.0800406 +vn -1.0000000 -0.0000000 0.0000000 +vn 0.9365991 0.3495210 -0.0248420 +vn 0.8164419 -0.5759763 0.0409132 +vn 0.9801064 0.1659132 -0.1089229 +vn 0.9338697 -0.2990122 0.1961609 +vn 0.9804913 -0.1633056 -0.1093991 +vn 0.9351052 0.2944438 0.1971831 +vn 0.9369684 -0.3483817 -0.0268399 +vn 0.8174011 0.5743693 0.0442204 +vn 0.9549601 -0.2876495 0.0728630 +vn 0.8623603 0.4907923 -0.1243288 +vn 0.9924048 -0.0008116 0.1230121 +vn 0.9736432 0.0013602 -0.2280726 +vn 0.9554062 0.2859608 0.0736572 +vn 0.8635409 -0.4883278 -0.1258293 +vn 1.0000000 0.0000000 0.0000000 +vn -0.0000000 -0.9974879 0.0708375 +vn -0.0000000 -0.5595279 -0.8288115 +vn 0.0000000 0.5595279 0.8288115 +vn -0.0000000 -0.8360630 0.5486335 +vn -0.0000000 -0.9873937 -0.1582838 +vn 0.0000000 0.9873937 0.1582838 +vn 0.0000000 0.8308153 0.5565482 +vn 0.0000000 -0.9878937 0.1551320 +vn -0.0000000 0.9878937 -0.1551320 +vn -0.0000000 0.9970511 0.0767403 +vn 0.0000000 -0.5904913 0.8070440 +vn -0.0000000 0.5904913 -0.8070440 +vn 0.9674333 -0.2446139 0.0650905 +vn -0.0000000 0.9693748 -0.2455861 +vn -0.0000000 0.9235508 0.3834761 +vn 0.0000000 -0.9235508 -0.3834761 +vn 0.0000000 0.0058580 -0.9999828 +vn -0.0000000 0.9999998 0.0006162 +vn -0.0000000 -0.9999998 -0.0006162 +vn 0.0000000 -0.9683753 -0.2494980 +vn 0.0000000 0.9258074 -0.3779956 +vn -0.0000000 -0.9258074 0.3779956 +vn 0.0000000 -0.9970104 -0.0772674 +vn 0.0000000 -0.8225564 -0.5686836 +vn 0.0000000 0.8360062 -0.5487200 +vn 0.0000000 0.9975192 -0.0703947 +vn 0.0000000 0.9668574 0.2553171 +vn 0.9028974 0.3535698 0.2444681 +vn 0.7421048 -0.6686227 0.0471610 +vn 0.8985071 -0.3669702 0.2408690 +vn 0.8766194 -0.4652334 -0.1228668 +vn 0.8040224 -0.5748953 -0.1518002 +vn 0.0000000 -0.0311286 0.9995154 +vn 0.0000000 -0.9693843 0.2455486 +vn 0.9580333 0.0090170 -0.2865150 +vn 0.7435195 0.6667164 0.0516527 +vn 0.8001267 0.5814662 -0.1472899 +vn 0.8316334 0.5536667 0.0428844 +vn 0.9999999 0.0005398 0.0000000 +vn 0.9999999 -0.0005398 0.0000000 +vn 0.9999997 0.0008097 0.0000000 +vn 0.9999997 -0.0008097 0.0000000 +vn 1.0000000 0.0002699 0.0000000 +vn 1.0000000 -0.0002699 0.0000000 +vn 0.9999994 0.0010796 0.0000000 +vn 0.9764094 0.1697164 0.1334952 +vn 0.9731702 -0.1924780 0.1260638 +vn 0.9830826 -0.1507066 -0.1040969 +vn 0.9417533 -0.3253498 -0.0851366 +vn 0.9171960 -0.3973995 0.0287238 +vn 0.9889431 0.0254459 -0.1460958 +vn 0.9403650 0.3297573 -0.0835094 +vn 0.9175197 0.3965359 0.0302805 +vn 0.9606280 0.2686331 0.0709235 +vn 0.4297850 0.9006835 -0.0636723 +vn 0.5024805 0.8359789 0.2205734 +vn 0.8208127 -0.0172609 0.5709366 +vn 0.4975643 -0.8408361 0.2131302 +vn 0.4311733 -0.8995795 -0.0696150 +vn 0.6699528 -0.6108840 -0.4218815 +vn 0.6607477 0.6273189 -0.4121692 +vn 0.0000000 0.9974879 -0.0708375 +vn 0.0000000 0.8360630 -0.5486335 +vn 0.0000000 -0.8308153 -0.5565482 +vn 0.0000000 -0.9970511 -0.0767403 +vn 0.0000000 -0.9693748 0.2455861 +vn 0.0000000 -0.0058580 0.9999828 +vn 0.0000000 0.9683753 0.2494980 +vn 0.0000000 0.9975099 -0.0705265 +vn 0.0000000 0.9669035 0.2551422 +vn 0.0000000 -0.0302018 0.9995438 +vn 0.0000000 -0.9693409 0.2457197 +vn 0.0000000 -0.9970213 -0.0771273 +vn 0.0000000 -0.8227735 -0.5683694 +vn 0.0000000 -0.8228360 -0.5682789 +vn 0.0000000 0.8357794 -0.5490654 +vn 0.4382643 -0.8966098 0.0633657 +vn 0.5115128 -0.8308452 -0.2192052 +vn 0.8271755 0.0169536 -0.5616879 +vn 0.5066296 0.8357201 -0.2118924 +vn 0.4396912 0.8954737 0.0692716 +vn 0.6788958 0.6041209 0.4172990 +vn 0.6697035 -0.6206481 0.4077905 +vn -0.3170154 -0.9344691 -0.1620765 +vn -0.0000000 -0.9832227 -0.1824090 +vn -0.0000000 -0.9624317 -0.2715238 +vn -0.0000000 -0.9222632 -0.3865626 +vn -0.0000000 -0.8380330 -0.5456196 +vn -0.0000000 -0.6429348 -0.7659209 +vn 0.0000000 -0.2097206 -0.9777614 +vn -0.0000000 0.3659073 -0.9306513 +vn -0.0000000 0.7183983 -0.6956320 +vn -0.0000000 0.8698919 -0.4932425 +vn 0.0000000 0.9369852 -0.3493690 +vn 0.0000000 0.9699297 -0.2433851 +vn -0.0000000 0.9871977 -0.1595015 +vn 0.0000000 0.9961240 -0.0879601 +vn -0.0000000 0.9997456 -0.0225573 +vn -0.0000000 0.9991458 0.0413240 +vn 0.0000000 0.9941508 0.1080009 +vn 0.0000000 0.9832227 0.1824090 +vn 0.0000000 0.9624317 0.2715238 +vn 0.0000000 0.9222407 0.3866163 +vn 0.0000000 0.8380330 0.5456196 +vn 0.0000000 0.6429348 0.7659209 +vn 0.0000000 0.2097206 0.9777614 +vn 0.0000000 -0.3659073 0.9306513 +vn -0.0000000 -0.7183983 0.6956320 +vn 0.0000000 -0.8698919 0.4932425 +vn -0.0000000 -0.9369852 0.3493690 +vn -0.0000000 -0.9699204 0.2434225 +vn 0.0000000 -0.9871977 0.1595015 +vn -0.3503465 -0.9050783 -0.2410199 +vn -0.0000000 -0.9941508 -0.1080009 +vn -0.2970828 -0.9502532 -0.0935987 +vn 0.0000000 -0.9997456 0.0225573 +vn -0.7463767 -0.6651815 -0.0213402 +vn -0.9726447 -0.2321787 -0.0074364 +vn 0.2877441 -0.9572224 0.0304728 +vn 0.7463767 -0.6651815 -0.0213402 +vn 0.9726447 -0.2321787 -0.0074364 +vn -0.7577225 -0.6494363 -0.0639454 +vn -0.9744263 -0.2236272 -0.0220074 +vn 0.7577225 -0.6494363 -0.0639454 +vn 0.9744263 -0.2236272 -0.0220074 +vn -0.7803037 -0.6162014 -0.1068730 +vn -0.9777037 -0.2068952 -0.0359146 +vn 0.7803037 -0.6162014 -0.1068730 +vn 0.9777037 -0.2068952 -0.0359146 +vn -0.8129620 -0.5626962 -0.1498860 +vn -0.9820990 -0.1820135 -0.0485041 +vn 0.8129620 -0.5626962 -0.1498860 +vn 0.9820990 -0.1820135 -0.0485041 +vn -0.8534449 -0.4846594 -0.1916692 +vn -0.9868580 -0.1502738 -0.0594063 +vn 0.8534449 -0.4846594 -0.1916692 +vn 0.9868580 -0.1502738 -0.0594063 +vn -0.8966769 -0.3784016 -0.2297450 +vn -0.9913746 -0.1120124 -0.0680418 +vn 0.8966769 -0.3784016 -0.2297450 +vn 0.9913746 -0.1120124 -0.0680418 +vn -0.9346680 -0.2426673 -0.2598236 +vn -0.9948390 -0.0692752 -0.0741371 +vn 0.9346680 -0.2426673 -0.2598236 +vn 0.9948390 -0.0692752 -0.0741371 +vn -0.9572895 -0.0838450 -0.2767070 +vn -0.9967411 -0.0234960 -0.0771694 +vn 0.9572895 -0.0838450 -0.2767070 +vn 0.9967411 -0.0234960 -0.0771694 +vn -0.9572457 0.0843856 -0.2766944 +vn -0.9967411 0.0234960 -0.0771694 +vn 0.9572457 0.0843856 -0.2766944 +vn 0.9967411 0.0234960 -0.0771694 +vn -0.9345473 0.2431675 -0.2597900 +vn -0.9948454 0.0692757 -0.0740502 +vn 0.9345473 0.2431675 -0.2597900 +vn 0.9948454 0.0692757 -0.0740502 +vn -0.8966074 0.3786273 -0.2296445 +vn -0.9913447 0.1122776 -0.0680397 +vn 0.8966074 0.3786273 -0.2296445 +vn 0.9913447 0.1122776 -0.0680397 +vn -0.8532569 0.4850380 -0.1915483 +vn -0.9868631 0.1502745 -0.0593198 +vn 0.8532569 0.4850380 -0.1915483 +vn 0.9868631 0.1502745 -0.0593198 +vn -0.8128745 0.5628668 -0.1497199 +vn -0.9820514 0.1822707 -0.0485018 +vn 0.8128745 0.5628668 -0.1497199 +vn 0.9820514 0.1822707 -0.0485018 +vn -0.7802031 0.6163438 -0.1067873 +vn -0.9777067 0.2068959 -0.0358287 +vn 0.7802031 0.6163438 -0.1067873 +vn 0.9777067 0.2068959 -0.0358287 +vn -0.7577293 0.6494421 -0.0638062 +vn -0.9743687 0.2238780 -0.0220061 +vn 0.7577293 0.6494421 -0.0638062 +vn 0.9743687 0.2238780 -0.0220061 +vn -0.7463788 0.6651835 -0.0212025 +vn -0.9726447 0.2321787 -0.0074364 +vn 0.7463788 0.6651835 -0.0212025 +vn 0.9726447 0.2321787 -0.0074364 +vn -0.7463767 0.6651815 0.0213402 +vn -0.9726447 0.2321787 0.0074364 +vn 0.7463767 0.6651815 0.0213402 +vn 0.9726447 0.2321787 0.0074364 +vn -0.7577225 0.6494363 0.0639454 +vn -0.9744263 0.2236272 0.0220074 +vn 0.7577225 0.6494363 0.0639454 +vn 0.9744263 0.2236272 0.0220074 +vn -0.7803037 0.6162014 0.1068730 +vn -0.9777037 0.2068952 0.0359146 +vn 0.7803037 0.6162014 0.1068730 +vn 0.9777037 0.2068952 0.0359146 +vn -0.8129620 0.5626962 0.1498860 +vn -0.9820990 0.1820135 0.0485041 +vn 0.8129620 0.5626962 0.1498860 +vn 0.9820990 0.1820135 0.0485041 +vn -0.8534449 0.4846594 0.1916692 +vn -0.9868580 0.1502738 0.0594063 +vn 0.8534449 0.4846594 0.1916692 +vn 0.9868580 0.1502738 0.0594063 +vn -0.8966769 0.3784016 0.2297450 +vn -0.9913746 0.1120124 0.0680418 +vn 0.8966769 0.3784016 0.2297450 +vn 0.9913746 0.1120124 0.0680418 +vn -0.9346680 0.2426673 0.2598236 +vn -0.9948390 0.0692752 0.0741371 +vn 0.9346680 0.2426673 0.2598236 +vn 0.9948390 0.0692752 0.0741371 +vn -0.9572895 0.0838450 0.2767070 +vn -0.9967411 0.0234960 0.0771694 +vn 0.9572895 0.0838450 0.2767070 +vn 0.9967411 0.0234960 0.0771694 +vn -0.9572457 -0.0843856 0.2766944 +vn -0.9967411 -0.0234960 0.0771694 +vn 0.9572457 -0.0843856 0.2766944 +vn 0.9967411 -0.0234960 0.0771694 +vn -0.9345473 -0.2431675 0.2597900 +vn -0.9948454 -0.0692757 0.0740502 +vn 0.9345473 -0.2431675 0.2597900 +vn 0.9948454 -0.0692757 0.0740502 +vn -0.8966074 -0.3786273 0.2296445 +vn -0.9913447 -0.1122776 0.0680397 +vn 0.8966074 -0.3786273 0.2296445 +vn 0.9913447 -0.1122776 0.0680397 +vn -0.8532569 -0.4850380 0.1915483 +vn -0.9868631 -0.1502745 0.0593198 +vn 0.8532569 -0.4850380 0.1915483 +vn 0.9868631 -0.1502745 0.0593198 +vn 0.0000000 -0.9699297 0.2433851 +vn -0.8128745 -0.5628668 0.1497199 +vn -0.9820514 -0.1822707 0.0485018 +vn 0.8128745 -0.5628668 0.1497199 +vn 0.9820514 -0.1822707 0.0485018 +vn -0.7802031 -0.6163438 0.1067873 +vn -0.9777067 -0.2068959 0.0358287 +vn 0.7802031 -0.6163438 0.1067873 +vn 0.9777067 -0.2068959 0.0358287 +vn 0.0000000 -0.9961240 0.0879601 +vn -0.7577293 -0.6494421 0.0638062 +vn -0.9743687 -0.2238780 0.0220061 +vn 0.7577293 -0.6494421 0.0638062 +vn 0.9743687 -0.2238780 0.0220061 +vn -0.2877423 -0.9572165 -0.0306731 +vn -0.7463788 -0.6651835 0.0212025 +vn -0.9726447 -0.2321787 0.0074364 +vn 0.7463788 -0.6651835 0.0212025 +vn 0.9726447 -0.2321787 0.0074364 +vn 0.0000000 -0.9991458 -0.0413240 +vn 0.2877764 -0.9572062 -0.0306767 +vn 0.2970525 -0.9502839 0.0933822 +vn 0.2971631 -0.9502311 -0.0935677 +vn 0.1711217 -0.9664962 -0.1913178 +vn 0.1684670 -0.9856197 0.0131406 +vn 0.3170272 -0.9344915 0.1619242 +vn 0.0828237 -0.9279956 -0.3632691 +vn -0.2970525 -0.9502839 0.0933822 +vn 0.3502157 -0.9051918 0.2407835 +vn -0.3169415 -0.9345237 0.1619062 +vn 0.4015742 -0.8517774 0.3364720 +vn -0.3502157 -0.9051918 0.2407835 +vn 0.4767954 -0.7515830 0.4558389 +vn -0.4015742 -0.8517774 0.3364720 +vn 0.5754480 -0.5589898 0.5969841 +vn -0.4767220 -0.7516721 0.4557688 +vn 0.6634523 -0.2180561 0.7157392 +vn -0.5754480 -0.5589898 0.5969841 +vn 0.6636140 0.2166837 0.7160061 +vn -0.6634084 -0.2180417 0.7157843 +vn 0.5758793 0.5580828 0.5974166 +vn -0.6636140 0.2166837 0.7160061 +vn 0.4770599 0.7512654 0.4560857 +vn -0.5758180 0.5581122 0.5974482 +vn 0.4017898 0.8515813 0.3367110 +vn -0.4769868 0.7512699 0.4561548 +vn 0.3503465 0.9050783 0.2410199 +vn -0.4017286 0.8515871 0.3367693 +vn 0.3170557 0.9344518 0.1620971 +vn -0.3503465 0.9050783 0.2410199 +vn 0.2971199 0.9502445 0.0935690 +vn -0.3170154 0.9344691 0.1620765 +vn 0.2877764 0.9572062 0.0306767 +vn -0.2970828 0.9502532 0.0935987 +vn 0.2877861 0.9572098 -0.0304724 +vn -0.2877423 0.9572165 0.0306731 +vn 0.2970525 0.9502839 -0.0933822 +vn -0.2877441 0.9572224 -0.0304728 +vn 0.3170272 0.9344915 -0.1619242 +vn -0.2970525 0.9502839 -0.0933822 +vn 0.3502634 0.9051647 -0.2408163 +vn -0.3169415 0.9345237 -0.1619062 +vn 0.4015742 0.8517774 -0.3364720 +vn -0.3502157 0.9051918 -0.2407835 +vn 0.4768098 0.7516058 -0.4557863 +vn -0.4015742 0.8517774 -0.3364720 +vn 0.5754480 0.5589898 -0.5969841 +vn -0.4767954 0.7515830 -0.4558389 +vn 0.6634084 0.2180417 -0.7157843 +vn -0.5754480 0.5589898 -0.5969841 +vn 0.6636140 -0.2166837 -0.7160061 +vn -0.6634084 0.2180417 -0.7157843 +vn 0.5758793 -0.5580828 -0.5974166 +vn -0.6636140 -0.2166837 -0.7160061 +vn 0.4770012 -0.7512926 -0.4561022 +vn -0.5758180 -0.5581122 -0.5974482 +vn 0.4017898 -0.8515813 -0.3367110 +vn -0.4769868 -0.7512699 -0.4561548 +vn 0.3503465 -0.9050783 -0.2410199 +vn 0.0000000 -0.9222407 -0.3866163 +vn -0.4017286 -0.8515871 -0.3367693 +vn 0.3171011 -0.9344369 -0.1620945 +vn -0.1965361 -0.9474743 -0.2523211 +vn -0.1711217 -0.9664962 -0.1913178 +vn -0.1700709 -0.9841635 -0.0499805 +vn -0.1590073 -0.9867713 -0.0316085 +vn -0.1509885 -0.9872639 -0.0501239 +vn -0.1777186 -0.9771877 -0.1162771 +vn 0.1590082 -0.9867767 0.0314335 +vn -0.1578114 -0.9805530 -0.1166677 +vn -0.1829717 -0.9722094 0.1460484 +vn -0.1590082 -0.9867767 0.0314335 +vn -0.1624801 -0.9757664 0.1465612 +vn 0.1625219 -0.9757596 0.1465602 +vn -0.1964701 -0.9475567 0.2520631 +vn 0.1829717 -0.9722094 0.1460484 +vn -0.2313109 -0.9176541 0.3231196 +vn 0.1965176 -0.9475475 0.2520607 +vn -0.1790980 -0.9574110 0.2264685 +vn 0.2059128 -0.9230107 0.3250402 +vn -0.2287882 -0.9054008 0.3576385 +vn -0.2481656 -0.8554548 0.4545446 +vn -0.2780307 -0.8482685 0.4507099 +vn -0.3529477 -0.6393762 0.6831003 +vn 0.2780730 -0.8482182 0.4507785 +vn -0.4327114 -0.3919860 0.8118546 +vn 0.3529665 -0.6394101 0.6830588 +vn -0.3909660 -0.4000646 0.8289113 +vn 0.3909660 -0.4000646 0.8289113 +vn -0.4294282 0.2617393 0.8643402 +vn 0.4327114 -0.3919860 0.8118546 +vn -0.3982844 0.5485175 0.7351858 +vn 0.4294282 0.2617393 0.8643402 +vn -0.3586781 0.5582271 0.7481528 +vn 0.3586781 0.5582271 0.7481528 +vn -0.2793413 0.8207422 0.4983480 +vn 0.3982844 0.5485175 0.7351858 +vn -0.2559507 0.8832649 0.3928516 +vn 0.2793413 0.8207422 0.4983480 +vn -0.2825880 0.7857113 0.5502743 +vn 0.2281811 0.8896152 0.3956237 +vn -0.2289047 0.9052396 0.3579719 +vn -0.1931137 0.9401280 0.2808317 +vn -0.2171573 0.9352910 0.2794164 +vn -0.1763627 0.9698446 0.1682188 +vn 0.2171573 0.9352910 0.2794164 +vn -0.1777598 0.9771803 0.1162762 +vn 0.1763627 0.9698446 0.1682188 +vn -0.1578521 0.9805465 0.1166669 +vn 0.1578521 0.9805465 0.1166669 +vn -0.1590073 0.9867713 0.0316085 +vn 0.1777598 0.9771803 0.1162762 +vn -0.1684670 0.9856197 -0.0131406 +vn 0.1590073 0.9867713 0.0316085 +vn -0.1495431 0.9886675 -0.0131702 +vn 0.1495431 0.9886675 -0.0131702 +vn -0.1644853 0.9816480 -0.0964974 +vn 0.1684670 0.9856197 -0.0131406 +vn -0.1829717 0.9722094 -0.1460484 +vn 0.1644853 0.9816480 -0.0964974 +vn -0.1531861 0.9851674 -0.0773250 +vn 0.1625219 0.9757596 -0.1465602 +vn -0.1763263 0.9698842 -0.1680287 +vn -0.1790980 0.9574110 -0.2264685 +vn -0.2014695 0.9531977 -0.2254421 +vn -0.2287882 0.9054008 -0.3576385 +vn 0.2014695 0.9531977 -0.2254421 +vn -0.2780730 0.8482182 -0.4507785 +vn 0.2287882 0.9054008 -0.3576385 +vn -0.2481592 0.8554325 -0.4545903 +vn 0.2481592 0.8554325 -0.4545903 +vn -0.3529477 0.6393762 -0.6831003 +vn 0.2780730 0.8482182 -0.4507785 +vn -0.4326796 0.3919572 -0.8118854 +vn 0.3529477 0.6393762 -0.6831003 +vn -0.3909660 0.4000646 -0.8289113 +vn 0.3909660 0.4000646 -0.8289113 +vn -0.4293931 -0.2617179 -0.8643641 +vn 0.4326796 0.3919572 -0.8118854 +vn -0.3982844 -0.5485175 -0.7351858 +vn 0.4293931 -0.2617179 -0.8643641 +vn -0.4199010 -0.1140194 -0.9003792 +vn 0.3586781 -0.5582271 -0.7481528 +vn -0.3531455 -0.6387745 -0.6835608 +vn -0.2825191 -0.7857279 -0.5502859 +vn -0.3157402 -0.7772337 -0.5442572 +vn -0.2289047 -0.9052396 -0.3579719 +vn 0.3158081 -0.7772152 -0.5442442 +vn -0.2171573 -0.9352910 -0.2794164 +vn 0.1763627 -0.9698446 -0.1682188 +vn -0.1931629 -0.9401187 -0.2808289 +vn -0.1925458 -0.9626038 -0.1905782 +vn -0.1763627 -0.9698446 -0.1682188 +vn 0.2171573 -0.9352910 -0.2794164 +vn 0.1531865 -0.9851701 0.0772898 +vn -0.1645010 -0.9816302 -0.0966517 +vn 0.1725419 -0.9819824 0.0770702 +vn 0.1925901 -0.9625953 -0.1905765 +vn -0.2281811 -0.8896152 -0.3956237 +vn 0.2559507 -0.8832649 -0.3928516 +vn -0.3586781 -0.5582271 -0.7481528 +vn 0.3982844 -0.5485175 -0.7351858 +vn 0.4633171 -0.1114251 -0.8791597 +vn -0.3123186 0.7117057 -0.6292314 +vn 0.3482325 0.7023150 -0.6208766 +vn -0.2058606 0.9230211 -0.3250439 +vn 0.2313109 0.9176541 -0.3231196 +vn -0.1625219 0.9757596 -0.1465602 +vn 0.1829717 0.9722094 -0.1460484 +vn 0.1725419 0.9819824 -0.0770702 +vn -0.1510276 0.9872580 0.0501236 +vn 0.1701103 0.9841567 0.0499802 +vn -0.1711419 0.9664881 0.1913404 +vn 0.1925916 0.9626026 0.1905377 +vn -0.2281811 0.8896152 0.3956237 +vn 0.2560079 0.8832511 0.3928454 +vn 0.3158081 0.7772152 0.5442442 +vn -0.4199010 0.1140194 0.9003792 +vn 0.4633171 0.1114251 0.8791597 +vn -0.3123186 -0.7117057 0.6292314 +vn 0.3482325 -0.7023150 0.6208766 +vn -0.2059128 -0.9230107 0.3250402 +vn 0.2313109 -0.9176541 0.3231196 +vn 0.2014234 -0.9532070 0.2254443 +vn -0.1531861 -0.9851674 0.0773250 +vn -0.1495431 -0.9886675 0.0131702 +vn 0.1777186 -0.9771877 -0.1162771 +vn 0.1701103 -0.9841567 -0.0499802 +vn -0.1644853 -0.9816480 0.0964974 +vn 0.2289047 -0.9052396 -0.3579719 +vn 0.1965837 -0.9474651 -0.2523187 +vn -0.2793413 -0.8207422 -0.4983480 +vn 0.2793413 -0.8207422 -0.4983480 +vn 0.3531455 -0.6387745 -0.6835608 +vn -0.4292639 0.2630975 -0.8640094 +vn 0.4292639 0.2630975 -0.8640094 +vn -0.2791845 0.8210401 -0.4979450 +vn 0.2791845 0.8210401 -0.4979450 +vn -0.1964701 0.9475567 -0.2520631 +vn 0.1964701 0.9475567 -0.2520631 +vn 0.1762833 0.9698918 -0.1680300 +vn -0.1589913 0.9867796 -0.0314301 +vn 0.1589913 0.9867796 -0.0314301 +vn -0.1645004 0.9816268 0.0966876 +vn 0.1645010 0.9816302 0.0966517 +vn -0.1965837 0.9474651 0.2523187 +vn 0.1965837 0.9474651 0.2523187 +vn 0.2289047 0.9052396 0.3579719 +vn -0.3531455 0.6387745 0.6835608 +vn 0.3531455 0.6387745 0.6835608 +vn -0.4291757 -0.2631097 0.8640495 +vn 0.4292639 -0.2630975 0.8640094 +vn -0.2791845 -0.8210401 0.4979450 +vn 0.2791845 -0.8210401 0.4979450 +vn 0.2287882 -0.9054008 0.3576385 +vn -0.1763263 -0.9698842 0.1680287 +vn 0.1763263 -0.9698842 0.1680287 +vn 0.1644853 -0.9816480 0.0964974 +vn 0.1645010 -0.9816302 -0.0966517 +vn 0.1590073 -0.9867713 -0.0316085 +vn 0.1495589 -0.9886651 0.0131716 +vn 0.1931880 -0.9401027 -0.2808654 +vn -0.2559507 -0.8832649 -0.3928516 +vn 0.2281811 -0.8896152 -0.3956237 +vn 0.2824743 -0.7858052 -0.5501986 +vn -0.4633171 -0.1114251 -0.8791597 +vn 0.4199010 -0.1140194 -0.9003792 +vn -0.3482325 0.7023150 -0.6208766 +vn 0.3123186 0.7117057 -0.6292314 +vn -0.2313109 0.9176541 -0.3231196 +vn 0.2059128 0.9230107 -0.3250402 +vn 0.1790980 0.9574110 -0.2264685 +vn -0.1725419 0.9819824 -0.0770702 +vn 0.1531861 0.9851674 -0.0773250 +vn -0.1701103 0.9841567 0.0499802 +vn 0.1510276 0.9872580 0.0501236 +vn -0.1925916 0.9626026 0.1905377 +vn 0.1711419 0.9664881 0.1913404 +vn 0.1931629 0.9401187 0.2808289 +vn -0.3158081 0.7772152 0.5442442 +vn 0.2825880 0.7857113 0.5502743 +vn -0.4633171 0.1114251 0.8791597 +vn 0.4199010 0.1140194 0.9003792 +vn -0.3482325 -0.7023150 0.6208766 +vn 0.3123186 -0.7117057 0.6292314 +vn 0.2481656 -0.8554548 0.4545446 +vn -0.2014234 -0.9532070 0.2254443 +vn 0.1790980 -0.9574110 0.2264685 +vn -0.1725419 -0.9819824 0.0770702 +vn -0.1684670 -0.9856197 0.0131406 +vn 0.1578521 -0.9805465 -0.1166669 +vn 0.1509885 -0.9872639 -0.0501239 +vn 0.1668365 -0.9859846 -0.0001055 +vn -0.1668365 -0.9859846 -0.0001055 +vn 0.1696720 -0.9834503 -0.0635362 +vn -0.1696720 -0.9834503 -0.0635362 +vn 0.1786106 -0.9751474 -0.1310944 +vn -0.1786523 -0.9751399 -0.1310934 +vn 0.1951331 -0.9584989 -0.2078532 +vn -0.1951568 -0.9584886 -0.2078785 +vn 0.2220449 -0.9274189 -0.3009822 +vn -0.2220989 -0.9274209 -0.3009361 +vn 0.2643981 -0.8674806 -0.4213918 +vn -0.2643981 -0.8674806 -0.4213918 +vn 0.3289979 -0.7432704 -0.5825028 +vn -0.3289979 -0.7432704 -0.5825028 +vn 0.4131657 -0.4755674 -0.7766143 +vn -0.4131657 -0.4755674 -0.7766143 +vn 0.4626305 0.0009015 -0.8865507 +vn -0.4626306 0.0006010 -0.8865509 +vn 0.4128474 0.4766566 -0.7761157 +vn -0.4128474 0.4766566 -0.7761157 +vn 0.3286794 0.7437973 -0.5820098 +vn -0.3287500 0.7437780 -0.5819946 +vn 0.2641607 0.8677685 -0.4209478 +vn -0.2642198 0.8677539 -0.4209407 +vn 0.2219387 0.9275517 -0.3006511 +vn -0.2219387 0.9275517 -0.3006511 +vn 0.1950940 0.9585604 -0.2076061 +vn -0.1950940 0.9585604 -0.2076061 +vn 0.1786162 0.9751754 -0.1308788 +vn -0.1786162 0.9751754 -0.1308788 +vn 0.1696952 0.9834583 -0.0633508 +vn -0.1696952 0.9834583 -0.0633508 +vn 0.1668365 0.9859846 0.0000703 +vn -0.1668755 0.9859780 0.0001055 +vn 0.1697117 0.9834435 0.0635357 +vn -0.1697117 0.9834435 0.0635357 +vn 0.1786106 0.9751474 0.1310944 +vn -0.1786097 0.9751426 0.1311314 +vn 0.1950879 0.9585077 0.2078551 +vn -0.1950879 0.9585077 0.2078551 +vn 0.2219941 0.9274299 0.3009857 +vn -0.2219941 0.9274299 0.3009857 +vn 0.2643981 0.8674806 0.4213918 +vn -0.2643981 0.8674806 0.4213918 +vn 0.3288618 0.7433553 0.5824713 +vn -0.3289324 0.7433360 0.5824561 +vn 0.4131657 0.4755674 0.7766143 +vn -0.4131657 0.4755674 0.7766143 +vn 0.4626306 -0.0006010 0.8865509 +vn -0.4626306 -0.0006010 0.8865509 +vn 0.4128474 -0.4766566 0.7761157 +vn -0.4128474 -0.4766566 0.7761157 +vn 0.3287500 -0.7437780 0.5819946 +vn -0.3287500 -0.7437780 0.5819946 +vn 0.2641607 -0.8677685 0.4209478 +vn -0.2641607 -0.8677685 0.4209478 +vn 0.2219387 -0.9275517 0.3006511 +vn -0.2219684 -0.9275316 0.3006913 +vn 0.1950235 -0.9585713 0.2076221 +vn -0.1950235 -0.9585713 0.2076221 +vn 0.1786162 -0.9751754 0.1308788 +vn -0.1786162 -0.9751754 0.1308788 +vn 0.1696952 -0.9834583 0.0633508 +vn -0.1696952 -0.9834583 0.0633508 +vn 0.1496739 -0.9827865 -0.1082979 +vn 0.3835755 0.3477487 -0.8555353 +vn 0.1429602 0.9895067 -0.0209491 +vn 0.3345189 0.5999088 0.7267782 +vn 0.1736702 -0.9556767 0.2377408 +vn 0.3981977 -0.3657886 -0.8412118 +vn 0.1580734 0.9811310 -0.1113318 +vn 0.2537034 0.8475760 0.4661003 +vn -0.1516490 -0.9873921 -0.0453799 +vn 0.3515571 -0.6458282 -0.6777268 +vn 0.1772398 0.9693402 -0.1701932 +vn 0.2282950 0.9067417 0.3545433 +vn 0.2304647 -0.9036379 0.3610049 +vn 0.1651237 -0.9813499 0.0984205 +vn 0.1814538 -0.9458491 -0.2691541 +vn 0.2131464 -0.8998737 -0.3805207 +vn 0.3345189 -0.5999088 -0.7267782 +vn 0.2437069 0.8456828 -0.4747921 +vn 0.2009088 0.9188384 -0.3396640 +vn 0.1567884 0.9752496 -0.1559026 +vn 0.1496739 0.9827865 0.1082979 +vn 0.1615283 0.9699956 0.1817063 +vn 0.2132025 0.8998624 0.3805159 +vn 0.3836277 -0.3479855 0.8554156 +vn 0.3084749 -0.6879457 0.6569429 +vn 0.2009088 -0.9188384 0.3396640 +vn -0.1879038 -0.9578383 -0.2173430 +vn 0.1470667 -0.9854187 0.0855645 +vn 0.1644927 -0.9745560 -0.1522585 +vn 0.1817620 -0.9552874 -0.2332136 +vn 0.2536409 -0.8475904 -0.4661082 +vn 0.3542307 0.5822948 -0.7317469 +vn 0.2790354 0.7965513 -0.5363257 +vn 0.1921611 0.9425850 -0.2731441 +vn 0.1505056 0.9884450 0.0180129 +vn 0.1545796 0.9845370 0.0824145 +vn 0.1818308 0.9552678 0.2332404 +vn 0.3981977 0.3657886 0.8412118 +vn 0.4199070 -0.1552069 0.8941973 +vn 0.2790354 -0.7965513 0.5363257 +vn -0.1922508 -0.9424783 -0.2734489 +vn -0.1708578 -0.9677072 -0.1853385 +vn 0.1646526 -0.9817881 -0.0947718 +vn 0.1763496 -0.9702149 -0.1660840 +vn 0.2282990 -0.9067578 -0.3544994 +vn 0.4315766 0.2490574 -0.8670133 +vn 0.3561516 0.6316487 -0.6886043 +vn 0.2304647 0.9036379 -0.3610049 +vn 0.1594471 0.9866465 -0.0332454 +vn 0.1593112 0.9867780 0.0298183 +vn 0.1763496 0.9702149 0.1660840 +vn 0.3515214 0.6460009 0.6775806 +vn 0.4287342 0.2753279 0.8604543 +vn 0.3560192 -0.6318140 0.6885212 +vn 0.1977179 -0.9465917 0.2546994 +vn -0.1879241 -0.9371835 -0.2938905 +vn -0.1655338 -0.9653684 -0.2016490 +vn -0.1447554 -0.9877603 -0.0580991 +vn 0.2815420 -0.8175265 0.5023789 +vn 0.4315766 -0.2490574 0.8670133 +vn 0.2782307 0.8239490 0.4936555 +vn 0.1963331 0.9482166 0.2496769 +vn 0.1646526 0.9817881 0.0947718 +vn 0.1651062 0.9813575 -0.0983737 +vn 0.1977179 0.9465917 -0.2546994 +vn 0.2815859 0.8174632 -0.5024573 +vn 0.4286999 -0.2755965 -0.8603854 +vn 0.2782223 -0.8239241 -0.4937017 +vn 0.1963331 -0.9482166 -0.2496769 +vn 0.1580734 -0.9811310 0.1113318 +vn 0.1922098 -0.9425758 0.2731414 +vn 0.2261377 -0.8946001 0.3854249 +vn 0.3542307 -0.5822948 0.7317469 +vn 0.3198843 0.6948213 0.6441253 +vn 0.2097642 0.9190697 0.3336313 +vn 0.1644506 0.9745630 0.1522596 +vn 0.1515953 0.9874102 -0.0451660 +vn 0.1708462 0.9677512 -0.1851196 +vn 0.2261377 0.8946001 -0.3854249 +vn 0.4199070 0.1552069 -0.8941973 +vn 0.3198691 -0.6947883 -0.6441685 +vn 0.2097642 -0.9190697 -0.3336313 +vn 0.1545800 -0.9845398 -0.0823791 +vn -0.2149288 -0.9250711 -0.3131279 +vn -0.1620439 -0.9842545 -0.0706031 +vn 0.2437443 -0.8456311 0.4748650 +vn 0.4002005 0.1808147 0.8984128 +vn 0.2628926 0.8059779 0.5303651 +vn 0.1814538 0.9458491 0.2691541 +vn 0.1438110 0.9887003 0.0423095 +vn 0.1471064 0.9854129 -0.0855640 +vn 0.1736237 0.9556846 -0.2377428 +vn 0.3084262 0.6880665 -0.6568392 +vn 0.4002716 -0.1810948 -0.8983247 +vn 0.2628926 -0.8059779 -0.5303651 +vn 0.1615460 -0.9699816 -0.1817652 +vn -0.1651237 -0.9813499 0.0984205 +vn 0.1655338 -0.9653684 -0.2016490 +vn -0.1580734 -0.9811310 0.1113318 +vn 0.1709015 -0.9676998 -0.1853371 +vn -0.1470667 -0.9854187 0.0855645 +vn 0.1879055 -0.9578469 -0.2173036 +vn 0.1879741 -0.9371744 -0.2938876 +vn 0.1922996 -0.9424691 -0.2734463 +vn 0.2149288 -0.9250711 -0.3131279 +vn -0.1977179 -0.9465917 0.2546994 +vn 0.1447708 -0.9877577 -0.0581053 +vn -0.1922098 -0.9425758 0.2731414 +vn 0.1516490 -0.9873921 -0.0453799 +vn -0.1736237 -0.9556846 0.2377428 +vn 0.1620439 -0.9842545 -0.0706031 +vn -0.2304647 -0.9036379 0.3610049 +vn -0.2261377 -0.8946001 0.3854249 +vn -0.2009088 -0.9188384 0.3396640 +vn -0.2815420 -0.8175265 0.5023789 +vn -0.2790354 -0.7965513 0.5363257 +vn -0.2437443 -0.8456311 0.4748650 +vn -0.3560192 -0.6318140 0.6885212 +vn -0.3542307 -0.5822948 0.7317469 +vn -0.3084749 -0.6879457 0.6569429 +vn -0.4315766 -0.2490574 0.8670133 +vn -0.4199070 -0.1552069 0.8941973 +vn -0.3836277 -0.3479855 0.8554156 +vn -0.4287342 0.2753279 0.8604543 +vn -0.3981977 0.3657886 0.8412118 +vn -0.4001658 0.1807990 0.8984315 +vn -0.3515214 0.6460009 0.6775806 +vn -0.3198843 0.6948213 0.6441253 +vn -0.3345189 0.5999088 0.7267782 +vn -0.2782307 0.8239490 0.4936555 +vn -0.2537034 0.8475760 0.4661003 +vn -0.2628926 0.8059779 0.5303651 +vn -0.2282950 0.9067417 0.3545433 +vn -0.2097642 0.9190697 0.3336313 +vn -0.2131464 0.8998737 0.3805207 +vn -0.1963331 0.9482166 0.2496769 +vn -0.1818308 0.9552678 0.2332404 +vn -0.1814538 0.9458491 0.2691541 +vn -0.1763496 0.9702149 0.1660840 +vn -0.1644506 0.9745630 0.1522596 +vn -0.1614849 0.9700025 0.1817076 +vn -0.1646526 0.9817881 0.0947718 +vn -0.1545800 0.9845398 0.0823791 +vn -0.1496739 0.9827865 0.1082979 +vn -0.1593112 0.9867780 0.0298183 +vn -0.1505056 0.9884450 0.0180129 +vn -0.1438112 0.9887018 0.0422749 +vn -0.1594471 0.9866465 -0.0332454 +vn -0.1515953 0.9874102 -0.0451660 +vn -0.1429602 0.9895067 -0.0209491 +vn -0.1651062 0.9813575 -0.0983737 +vn -0.1580734 0.9811310 -0.1113318 +vn -0.1470667 0.9854187 -0.0855645 +vn -0.1771967 0.9693478 -0.1701945 +vn -0.1708462 0.9677512 -0.1851196 +vn -0.1567884 0.9752496 -0.1559026 +vn -0.1977157 0.9465812 -0.2547401 +vn -0.1921611 0.9425850 -0.2731441 +vn -0.1736237 0.9556846 -0.2377428 +vn -0.2304647 0.9036379 -0.3610049 +vn -0.2261331 0.8945821 -0.3854693 +vn -0.2009088 0.9188384 -0.3396640 +vn -0.2815859 0.8174632 -0.5024573 +vn -0.2790354 0.7965513 -0.5363257 +vn -0.2437702 0.8456689 -0.4747843 +vn -0.3560735 0.6316689 -0.6886262 +vn -0.3542307 0.5822948 -0.7317469 +vn -0.3084262 0.6880665 -0.6568392 +vn -0.4315766 0.2490574 -0.8670133 +vn -0.4199265 0.1549156 -0.8942387 +vn -0.3835755 0.3477487 -0.8555353 +vn -0.4286999 -0.2755965 -0.8603854 +vn -0.3981977 -0.3657886 -0.8412118 +vn -0.4002716 -0.1810948 -0.8983247 +vn -0.3515571 -0.6458282 -0.6777268 +vn -0.3198691 -0.6947883 -0.6441685 +vn -0.3345189 -0.5999088 -0.7267782 +vn -0.2782223 -0.8239241 -0.4937017 +vn -0.2537034 -0.8475760 -0.4661003 +vn -0.2628926 -0.8059779 -0.5303651 +vn -0.2282990 -0.9067578 -0.3544994 +vn -0.2097642 -0.9190697 -0.3336313 +vn -0.2131464 -0.8998737 -0.3805207 +vn -0.1963331 -0.9482166 -0.2496769 +vn -0.1817638 -0.9552967 -0.2331740 +vn -0.1814055 -0.9458577 -0.2691566 +vn -0.1763496 -0.9702149 -0.1660840 +vn -0.1644927 -0.9745560 -0.1522585 +vn -0.1615460 -0.9699816 -0.1817652 +vn -0.1646526 -0.9817881 -0.0947718 +vn -0.1545800 -0.9845398 -0.0823791 +vn -0.1496739 -0.9827865 -0.1082979 +vn 0.0636266 -0.9829817 0.1723330 +vn -0.0646936 -0.9896431 -0.1281455 +vn -0.0727188 -0.9918315 0.1047959 +vn 0.0784916 -0.9769252 -0.1986359 +vn -0.0706681 -0.9760593 -0.2057041 +vn -0.0783971 -0.9808208 0.1784503 +vn 0.0783971 -0.9808208 0.1784503 +vn -0.0721005 -0.9898860 -0.1221771 +vn -0.0784916 -0.9769252 -0.1986359 +vn -0.0591884 -0.9932897 0.0993595 +vn 0.0706681 -0.9760593 -0.2057041 +vn -0.0636266 -0.9829817 0.1723330 +vn 0.0805717 -0.9503920 -0.3004385 +vn -0.0891351 -0.9524333 -0.2914203 +vn 0.0891351 -0.9524333 -0.2914203 +vn -0.0805717 -0.9503920 -0.3004385 +vn 0.0712321 -0.9632852 0.2588582 +vn -0.0880533 -0.9598611 0.2662955 +vn 0.0880533 -0.9598611 0.2662955 +vn -0.0712321 -0.9632852 0.2588582 +vn 0.0965014 -0.9000676 -0.4249303 +vn -0.1062780 -0.9046464 -0.4126983 +vn 0.1062780 -0.9046464 -0.4126983 +vn -0.0965014 -0.9000676 -0.4249303 +vn 0.1218786 -0.7919487 -0.5982999 +vn -0.1335662 -0.8031694 -0.5805850 +vn 0.1335662 -0.8031694 -0.5805850 +vn -0.1218786 -0.7919487 -0.5982999 +vn 0.1581058 -0.5407229 -0.8262090 +vn -0.1731448 -0.5686850 -0.8041258 +vn 0.1731565 -0.5687233 -0.8040961 +vn -0.1581058 -0.5407229 -0.8262090 +vn 0.1838600 -0.0386672 -0.9821916 +vn -0.2047080 -0.0874456 -0.9749092 +vn 0.2047080 -0.0874456 -0.9749092 +vn -0.1838578 -0.0389736 -0.9821799 +vn 0.1630219 0.4900550 -0.8563118 +vn -0.1855370 0.4536451 -0.8716548 +vn 0.1855370 0.4536451 -0.8716548 +vn -0.1630219 0.4900550 -0.8563118 +vn 0.1260730 0.7699626 -0.6255103 +vn -0.1441498 0.7531316 -0.6418829 +vn 0.1441498 0.7531316 -0.6418829 +vn -0.1260730 0.7699626 -0.6255103 +vn 0.0992023 0.8903212 -0.4443953 +vn -0.1131000 0.8824757 -0.4565578 +vn 0.1131000 0.8824757 -0.4565578 +vn -0.0992023 0.8903212 -0.4443953 +vn 0.0822514 0.9456301 -0.3146719 +vn -0.0933909 0.9415541 -0.3236572 +vn 0.0934032 0.9415383 -0.3236997 +vn -0.0822514 0.9456301 -0.3146719 +vn 0.0717083 0.9735514 -0.2169231 +vn -0.0811182 0.9712101 -0.2239882 +vn 0.0811278 0.9712033 -0.2240145 +vn -0.0717083 0.9735514 -0.2169231 +vn 0.0652989 0.9883308 -0.1376163 +vn -0.0736287 0.9868931 -0.1435994 +vn 0.0736367 0.9868903 -0.1436150 +vn -0.0652989 0.9883308 -0.1376163 +vn 0.0618008 0.9957293 -0.0685848 +vn -0.0694756 0.9948370 -0.0739761 +vn 0.0694756 0.9948370 -0.0739761 +vn -0.0618008 0.9957293 -0.0685848 +vn 0.0606015 0.9981533 -0.0041665 +vn -0.0679425 0.9976448 -0.0094132 +vn 0.0679425 0.9976448 -0.0094132 +vn -0.0606015 0.9981533 -0.0041665 +vn 0.0615177 0.9963023 0.0599782 +vn -0.0687704 0.9961408 0.0545358 +vn 0.0687704 0.9961408 0.0545358 +vn -0.0615177 0.9963023 0.0599782 +vn 0.0646936 0.9896431 0.1281455 +vn -0.0721005 0.9898860 0.1221771 +vn 0.0721005 0.9898860 0.1221771 +vn -0.0646936 0.9896431 0.1281455 +vn 0.0706681 0.9760593 0.2057041 +vn -0.0784916 0.9769252 0.1986359 +vn 0.0784916 0.9769252 0.1986359 +vn -0.0706681 0.9760593 0.2057041 +vn 0.0805717 0.9503920 0.3004385 +vn -0.0891351 0.9524333 0.2914203 +vn 0.0891351 0.9524333 0.2914203 +vn -0.0805717 0.9503920 0.3004385 +vn 0.0965014 0.9000676 0.4249303 +vn -0.1062650 0.9046944 0.4125963 +vn 0.1062650 0.9046944 0.4125963 +vn -0.0965014 0.9000676 0.4249303 +vn 0.1218786 0.7919487 0.5982999 +vn -0.1335662 0.8031694 0.5805850 +vn 0.1335662 0.8031694 0.5805850 +vn -0.1218786 0.7919487 0.5982999 +vn 0.1581058 0.5407229 0.8262090 +vn -0.1731703 0.5685099 0.8042441 +vn 0.1731703 0.5685099 0.8042441 +vn -0.1581058 0.5407229 0.8262090 +vn 0.1838578 0.0389736 0.9821799 +vn -0.2047080 0.0874456 0.9749092 +vn 0.2047080 0.0874456 0.9749092 +vn -0.1838578 0.0389736 0.9821799 +vn 0.1630219 -0.4900550 0.8563118 +vn -0.1855370 -0.4536451 0.8716548 +vn 0.1855370 -0.4536451 0.8716548 +vn -0.1630219 -0.4900550 0.8563118 +vn 0.1260730 -0.7699626 0.6255103 +vn -0.1441498 -0.7531316 0.6418829 +vn 0.1441498 -0.7531316 0.6418829 +vn -0.1260730 -0.7699626 0.6255103 +vn 0.0992023 -0.8903212 0.4443953 +vn -0.1131000 -0.8824757 0.4565578 +vn 0.1131000 -0.8824757 0.4565578 +vn -0.0992023 -0.8903212 0.4443953 +vn 0.0822514 -0.9456301 0.3146719 +vn -0.0933909 -0.9415541 0.3236572 +vn 0.0933909 -0.9415541 0.3236572 +vn -0.0822514 -0.9456301 0.3146719 +vn 0.0717083 -0.9735514 0.2169231 +vn -0.0811278 -0.9712033 0.2240145 +vn 0.0811278 -0.9712033 0.2240145 +vn -0.0717083 -0.9735514 0.2169231 +vn 0.0652989 -0.9883308 0.1376163 +vn -0.0736367 -0.9868903 0.1436150 +vn 0.0736367 -0.9868903 0.1436150 +vn -0.0652989 -0.9883308 0.1376163 +vn 0.0618008 -0.9957293 0.0685848 +vn -0.0694756 -0.9948370 0.0739761 +vn 0.0694756 -0.9948370 0.0739761 +vn -0.0618008 -0.9957293 0.0685848 +vn -0.2877441 -0.9572224 0.0304728 +vn -0.0997780 -0.9303749 -0.3527704 +vn 0.0997780 -0.9303749 -0.3527704 +vn -0.0828237 -0.9279956 -0.3632691 +vn -0.4057579 -0.0474170 -0.9127498 +vn -0.4200231 -0.1534585 -0.8944446 +vn -0.4433654 0.0589291 -0.8944017 +vn 0.4200231 -0.1534585 -0.8944446 +vn 0.4433654 0.0589291 -0.8944017 +vn 0.4057579 -0.0474170 -0.9127498 +vn 0.1021442 -0.8530000 -0.5118179 +vn -0.1224258 -0.8592026 -0.4967723 +vn 0.1224258 -0.8592026 -0.4967723 +vn -0.1021442 -0.8530000 -0.5118179 +vn -0.3668597 0.4542562 -0.8118284 +vn -0.3979807 0.3672870 -0.8406614 +vn -0.3866967 0.5197400 -0.7617979 +vn 0.3668788 0.4540068 -0.8119592 +vn 0.3867494 0.5195485 -0.7619017 +vn 0.3979807 0.3672870 -0.8406614 +vn 0.1319530 -0.6831972 -0.7182130 +vn -0.1575012 -0.6998207 -0.6967384 +vn 0.1575012 -0.6998207 -0.6967384 +vn -0.1319530 -0.6831972 -0.7182130 +vn -0.2903269 0.7392778 -0.6076008 +vn -0.3197224 0.6954230 -0.6435560 +vn -0.3060448 0.7660217 -0.5652852 +vn 0.3196468 0.6954417 -0.6435734 +vn 0.2904002 0.7392606 -0.6075867 +vn 0.3060448 0.7660217 -0.5652852 +vn 0.0707756 -0.9645313 -0.2543034 +vn -0.0856453 -0.9653655 -0.2464435 +vn 0.0856453 -0.9653655 -0.2464435 +vn -0.0707756 -0.9645313 -0.2543034 +vn -0.3537919 -0.5193045 -0.7779165 +vn -0.3545211 -0.5812599 -0.7324287 +vn -0.4041998 -0.4377367 -0.8031246 +vn 0.4041998 -0.4377367 -0.8031246 +vn 0.3545211 -0.5812599 -0.7324287 +vn 0.3537919 -0.5193045 -0.7779165 +vn 0.0633492 -0.9836488 -0.1685881 +vn -0.0769338 -0.9837379 -0.1622988 +vn 0.0769338 -0.9837379 -0.1622988 +vn -0.0633492 -0.9836488 -0.1685881 +vn -0.2785491 -0.7694139 -0.5748153 +vn -0.2793045 -0.7961169 -0.5368303 +vn -0.3222169 -0.7274015 -0.6058575 +vn 0.2785491 -0.7694139 -0.5748153 +vn 0.3222169 -0.7274015 -0.6058575 +vn 0.2793045 -0.7961169 -0.5368303 +vn 0.0590392 -0.9936178 -0.0961149 +vn -0.0719251 -0.9932888 -0.0905764 +vn 0.0719251 -0.9932888 -0.0905764 +vn -0.0590392 -0.9936178 -0.0961149 +vn -0.2235011 -0.8827914 -0.4131908 +vn -0.2262822 -0.8943674 -0.3858800 +vn -0.2574734 -0.8613020 -0.4380255 +vn 0.2263387 -0.8943553 -0.3858747 +vn 0.2574734 -0.8613020 -0.4380255 +vn 0.2235011 -0.8827914 -0.4131908 +vn 0.0570708 -0.9979085 -0.0303562 +vn -0.0697280 -0.9972472 -0.0252205 +vn 0.0697280 -0.9972472 -0.0252205 +vn -0.0570708 -0.9979085 -0.0303562 +vn 0.1593112 -0.9867780 -0.0298183 +vn 0.1505444 -0.9884391 -0.0180128 +vn 0.1437722 -0.9887059 -0.0423098 +vn -0.1593112 -0.9867780 -0.0298183 +vn -0.1437722 -0.9887059 -0.0423098 +vn -0.1505444 -0.9884391 -0.0180128 +vn -0.0571173 -0.9978083 0.0334092 +vn 0.0699757 -0.9968057 0.0384952 +vn 0.0571173 -0.9978083 0.0334092 +vn -0.0699757 -0.9968057 0.0384952 +vn 0.1594473 -0.9866477 0.0332104 +vn 0.1515953 -0.9874102 0.0451660 +vn 0.1429452 -0.9895089 0.0209469 +vn -0.1429452 -0.9895089 0.0209469 +vn -0.1515953 -0.9874102 0.0451660 +vn -0.1594473 -0.9866477 0.0332104 +vn 0.0646936 -0.9896431 -0.1281455 +vn 0.0727188 -0.9918315 0.1047959 +vn 0.0721005 -0.9898860 -0.1221771 +vn 0.0591884 -0.9932897 0.0993595 +vn -0.1519780 -0.9803863 -0.1254805 +vn -0.1580882 -0.9811109 -0.1114881 +vn -0.1712691 -0.9753644 -0.1390368 +vn 0.1580882 -0.9811109 -0.1114881 +vn 0.1519787 -0.9803908 -0.1254443 +vn 0.1712691 -0.9753644 -0.1390368 +vn 0.0615177 -0.9963023 -0.0599782 +vn -0.0687703 -0.9961390 -0.0545691 +vn 0.0687703 -0.9961390 -0.0545691 +vn -0.0615177 -0.9963023 -0.0599782 +vn 0.1771760 -0.9693551 0.1701747 +vn 0.1708025 -0.9677586 0.1851211 +vn 0.1567884 -0.9752496 0.1559026 +vn -0.1771760 -0.9693551 0.1701747 +vn -0.1567462 -0.9752562 0.1559037 +vn -0.1708025 -0.9677586 0.1851211 +vn 0.0606015 -0.9981533 0.0041665 +vn -0.0679425 -0.9976448 0.0094132 +vn 0.0679425 -0.9976448 0.0094132 +vn -0.0606015 -0.9981533 0.0041665 +vn -0.1427039 -0.9897506 0.0054088 +vn -0.1505447 -0.9884416 0.0178740 +vn -0.1587347 -0.9872976 -0.0068428 +vn 0.1505447 -0.9884416 0.0178740 +vn 0.1587347 -0.9872976 -0.0068428 +vn 0.1427424 -0.9897451 0.0054087 +vn 0.0835465 -0.9255551 0.3692801 +vn -0.1036526 -0.9196007 0.3789336 +vn 0.1036526 -0.9196007 0.3789336 +vn -0.0835465 -0.9255551 0.3692801 +vn -0.1456154 -0.9869109 0.0693037 +vn -0.1545656 -0.9845577 0.0821932 +vn -0.1608435 -0.9853617 0.0564957 +vn 0.1545656 -0.9845577 0.0821932 +vn 0.1456154 -0.9869109 0.0693037 +vn 0.1608435 -0.9853617 0.0564957 +vn 0.1033136 -0.8477130 0.5202971 +vn -0.1285788 -0.8361327 0.5332445 +vn 0.1285788 -0.8361327 0.5332445 +vn -0.1033136 -0.8477130 0.5202971 +vn -0.1537657 -0.9784576 0.1377566 +vn -0.1644178 -0.9746028 0.1520397 +vn -0.1686817 -0.9779022 0.1235062 +vn 0.1537657 -0.9784576 0.1377566 +vn 0.1686817 -0.9779022 0.1235062 +vn 0.1644178 -0.9746028 0.1520397 +vn 0.1336424 -0.6708108 0.7294879 +vn -0.1663480 -0.6458885 0.7450882 +vn 0.1663480 -0.6458885 0.7450882 +vn -0.1336424 -0.6708108 0.7294879 +vn -0.1687145 -0.9616761 0.2161353 +vn -0.1817018 -0.9553586 0.2329688 +vn -0.1835230 -0.9626379 0.1991171 +vn 0.1817018 -0.9553586 0.2329688 +vn 0.1835230 -0.9626379 0.1991171 +vn 0.1687145 -0.9616761 0.2161353 +vn 0.1670115 -0.2738958 0.9471474 +vn -0.2051498 -0.2287824 0.9516155 +vn 0.2051498 -0.2287824 0.9516155 +vn -0.1670115 -0.2738958 0.9471474 +vn -0.1930069 -0.9302385 0.3120973 +vn -0.2096100 -0.9192322 0.3332805 +vn -0.2079451 -0.9340737 0.2902846 +vn 0.2079451 -0.9340737 0.2902846 +vn 0.2096628 -0.9192215 0.3332766 +vn 0.1930069 -0.9302385 0.3120973 +vn 0.1658496 0.2991009 0.9396981 +vn -0.1990947 0.3379851 0.9198518 +vn 0.1990947 0.3379851 0.9198518 +vn -0.1658496 0.2991009 0.9396981 +vn -0.2313445 -0.8689079 0.4375828 +vn -0.2535066 -0.8478626 0.4656860 +vn -0.2465801 -0.8792059 0.4076705 +vn 0.2314049 -0.8688951 0.4375764 +vn 0.2465801 -0.8792059 0.4076705 +vn 0.2535066 -0.8478626 0.4656860 +vn 0.1319530 0.6831972 0.7182130 +vn -0.1575012 0.6998207 0.6967384 +vn 0.1575012 0.6998207 0.6967384 +vn -0.1319741 0.6830722 0.7183281 +vn -0.2904002 -0.7392606 0.6075867 +vn -0.3196468 -0.6954417 0.6435734 +vn -0.3060448 -0.7660217 0.5652852 +vn 0.3196468 -0.6954417 0.6435734 +vn 0.3060448 -0.7660217 0.5652852 +vn 0.2904002 -0.7392606 0.6075867 +vn 0.1021442 0.8530000 0.5118179 +vn -0.1224258 0.8592026 0.4967723 +vn 0.1224258 0.8592026 0.4967723 +vn -0.1021442 0.8530000 0.5118179 +vn -0.3668788 -0.4540068 0.8119592 +vn -0.3981103 -0.3670269 0.8407137 +vn -0.3867494 -0.5195485 0.7619017 +vn 0.3669051 -0.4540395 0.8119291 +vn 0.3867494 -0.5195485 0.7619017 +vn 0.3981103 -0.3670269 0.8407137 +vn 0.0828237 0.9279956 0.3632691 +vn -0.0997780 0.9303749 0.3527704 +vn 0.0997780 0.9303749 0.3527704 +vn -0.0828237 0.9279956 0.3632691 +vn -0.4058514 0.0474148 0.9127083 +vn -0.4199320 0.1534656 0.8944861 +vn -0.4433654 -0.0589291 0.8944017 +vn 0.4199320 0.1534656 0.8944861 +vn 0.4058514 0.0474148 0.9127083 +vn 0.4433654 -0.0589291 0.8944017 +vn 0.0707756 0.9645313 0.2543034 +vn -0.0856453 0.9653655 0.2464435 +vn 0.0856453 0.9653655 0.2464435 +vn -0.0707763 0.9645413 0.2542653 +vn -0.3538773 0.5192866 0.7778896 +vn -0.3545508 0.5814075 0.7322971 +vn -0.4041998 0.4377367 0.8031246 +vn 0.3538773 0.5192866 0.7778896 +vn 0.4041998 0.4377367 0.8031246 +vn 0.3545508 0.5814075 0.7322971 +vn 0.0633492 0.9836488 0.1685881 +vn -0.0769342 0.9837437 0.1622633 +vn 0.0769342 0.9837437 0.1622633 +vn -0.0633492 0.9836488 0.1685881 +vn -0.2785383 0.7693842 0.5748603 +vn -0.2792367 0.7961333 0.5368414 +vn -0.3222169 0.7274015 0.6058575 +vn 0.2793045 0.7961169 0.5368303 +vn 0.3222169 0.7274015 0.6058575 +vn 0.2785383 0.7693842 0.5748603 +vn 0.0590392 0.9936178 0.0961149 +vn -0.0719249 0.9932858 0.0906101 +vn 0.0719249 0.9932858 0.0906101 +vn -0.0590392 0.9936178 0.0961149 +vn -0.2235011 0.8827914 0.4131908 +vn -0.2263433 0.8943733 0.3858303 +vn -0.2574734 0.8613020 0.4380255 +vn 0.2574734 0.8613020 0.4380255 +vn 0.2263433 0.8943733 0.3858303 +vn 0.2235011 0.8827914 0.4131908 +vn 0.0570708 0.9979085 0.0303562 +vn -0.0697280 0.9972472 0.0252205 +vn 0.0697280 0.9972472 0.0252205 +vn -0.0570708 0.9979085 0.0303562 +vn -0.1879741 0.9371744 0.2938876 +vn -0.1922996 0.9424691 0.2734463 +vn -0.2149288 0.9250711 0.3131279 +vn 0.1879766 0.9371869 0.2938462 +vn 0.2149288 0.9250711 0.3131279 +vn 0.1922508 0.9424783 0.2734489 +vn 0.0571173 0.9978083 -0.0334092 +vn -0.0699827 0.9968037 -0.0385322 +vn 0.0699827 0.9968037 -0.0385322 +vn -0.0571173 0.9978083 -0.0334092 +vn -0.1655338 0.9653684 0.2016490 +vn -0.1709015 0.9676998 0.1853371 +vn -0.1879038 0.9578383 0.2173430 +vn 0.1709015 0.9676998 0.1853371 +vn 0.1879038 0.9578383 0.2173430 +vn 0.1655338 0.9653684 0.2016490 +vn 0.0591884 0.9932897 -0.0993595 +vn -0.0727188 0.9918315 -0.1047959 +vn 0.0727188 0.9918315 -0.1047959 +vn -0.0591884 0.9932897 -0.0993595 +vn -0.1519780 0.9803863 0.1254805 +vn -0.1580876 0.9811069 0.1115240 +vn -0.1712691 0.9753644 0.1390368 +vn 0.1519780 0.9803863 0.1254805 +vn 0.1712691 0.9753644 0.1390368 +vn 0.1580876 0.9811069 0.1115240 +vn 0.0636266 0.9829817 -0.1723330 +vn -0.0783971 0.9808208 -0.1784503 +vn 0.0783971 0.9808208 -0.1784503 +vn -0.0636266 0.9829817 -0.1723330 +vn -0.1447705 0.9877557 0.0581401 +vn -0.1516490 0.9873921 0.0453799 +vn -0.1620435 0.9842520 0.0706386 +vn 0.1516490 0.9873921 0.0453799 +vn 0.1447705 0.9877557 0.0581401 +vn 0.1620832 0.9842455 0.0706381 +vn 0.0712321 0.9632852 -0.2588582 +vn -0.0880533 0.9598611 -0.2662955 +vn 0.0880533 0.9598611 -0.2662955 +vn -0.0712321 0.9632852 -0.2588582 +vn -0.1427039 0.9897506 -0.0054088 +vn -0.1505061 0.9884481 -0.0178394 +vn -0.1587347 0.9872976 0.0068428 +vn 0.1427424 0.9897451 -0.0054087 +vn 0.1587347 0.9872976 0.0068428 +vn 0.1505061 0.9884481 -0.0178394 +vn 0.0835465 0.9255551 -0.3692801 +vn -0.1036526 0.9196007 -0.3789336 +vn 0.1036526 0.9196007 -0.3789336 +vn -0.0835580 0.9255338 -0.3693309 +vn -0.1456154 0.9869109 -0.0693037 +vn -0.1545656 0.9845577 -0.0821932 +vn -0.1608435 0.9853617 -0.0564957 +vn 0.1545656 0.9845577 -0.0821932 +vn 0.1608435 0.9853617 -0.0564957 +vn 0.1456154 0.9869109 -0.0693037 +vn 0.1033136 0.8477130 -0.5202971 +vn -0.1285788 0.8361327 -0.5332445 +vn 0.1285788 0.8361327 -0.5332445 +vn -0.1033136 0.8477130 -0.5202971 +vn -0.1538243 0.9784463 -0.1377711 +vn -0.1644178 0.9746028 -0.1520397 +vn -0.1686817 0.9779022 -0.1235062 +vn 0.1686825 0.9779067 -0.1234696 +vn 0.1644178 0.9746028 -0.1520397 +vn 0.1537657 0.9784576 -0.1377566 +vn 0.1336424 0.6708108 -0.7294879 +vn -0.1663480 0.6458885 -0.7450882 +vn 0.1663480 0.6458885 -0.7450882 +vn -0.1336424 0.6708108 -0.7294879 +vn -0.1686693 0.9616837 -0.2161370 +vn -0.1817036 0.9553679 -0.2329292 +vn -0.1835230 0.9626379 -0.1991171 +vn 0.1687145 0.9616761 -0.2161353 +vn 0.1835230 0.9626379 -0.1991171 +vn 0.1817036 0.9553679 -0.2329292 +vn 0.1670115 0.2738958 -0.9471474 +vn -0.2051498 0.2287824 -0.9516155 +vn 0.2051498 0.2287824 -0.9516155 +vn -0.1670115 0.2738958 -0.9471474 +vn -0.1929299 0.9302674 -0.3120588 +vn -0.2096628 0.9192215 -0.3332766 +vn -0.2079451 0.9340737 -0.2902846 +vn 0.2096628 0.9192215 -0.3332766 +vn 0.2079451 0.9340737 -0.2902846 +vn 0.1930069 0.9302385 -0.3120973 +vn 0.1658496 -0.2991009 -0.9396981 +vn -0.1991119 -0.3380144 -0.9198373 +vn 0.1990947 -0.3379851 -0.9198518 +vn -0.1658496 -0.2991009 -0.9396981 +vn -0.2314049 0.8688951 -0.4375764 +vn -0.2535691 0.8478482 -0.4656781 +vn -0.2465438 0.8792438 -0.4076106 +vn 0.2314049 0.8688951 -0.4375764 +vn 0.2465801 0.8792059 -0.4076705 +vn 0.2535691 0.8478482 -0.4656781 +vn 0.9508644 0.3094495 0.0098940 +vn 0.9539483 0.2985226 0.0294418 +vn 0.9841274 0.1517090 0.0920743 +vn 0.9904852 0.0939833 0.1005299 +vn 0.9904601 -0.0942502 0.1005273 +vn 0.9841274 -0.1517090 0.0920743 +vn 0.9759599 -0.2027227 0.0800363 +vn 0.9539507 -0.2985234 0.0293578 +vn 0.9508644 -0.3094495 0.0098940 +vn 0.9597160 -0.2768441 -0.0479841 +vn 0.9674280 -0.2446125 -0.0651754 +vn 0.9760124 -0.2024683 -0.0800406 +vn 0.9939698 -0.0318884 -0.1049154 +vn 0.9939698 0.0318884 -0.1049154 +vn 0.9759599 0.2027227 -0.0800363 +vn 0.9674333 0.2446139 -0.0650905 +vn 0.9597160 0.2768441 -0.0479841 +vn 0.9539507 0.2985234 -0.0293578 +vn 0.9508644 0.3094495 -0.0098940 +vn 0.9904601 0.0942502 -0.1005273 +vn 0.9841274 0.1517090 -0.0920743 +vn 0.9841274 -0.1517090 -0.0920743 +vn 0.9904852 -0.0939833 -0.1005299 +vn 0.9508644 -0.3094495 -0.0098940 +vn 0.9539483 -0.2985226 -0.0294418 +vn 0.9597160 -0.2768441 0.0479841 +vn 0.9939698 0.0318884 0.1049154 +vn 0.9939698 -0.0318884 0.1049154 +vn 0.9597160 0.2768441 0.0479841 +vn 0.9674280 0.2446125 0.0651754 +vn 0.9760124 0.2024683 0.0800406 +vn -1.0000000 -0.0000000 0.0000000 +vn 0.9365991 0.3495210 -0.0248420 +vn 0.8164419 -0.5759763 0.0409132 +vn 0.9801064 0.1659132 -0.1089229 +vn 0.9338697 -0.2990122 0.1961609 +vn 0.9804913 -0.1633056 -0.1093991 +vn 0.9351052 0.2944438 0.1971831 +vn 0.9369684 -0.3483817 -0.0268399 +vn 0.8174011 0.5743693 0.0442204 +vn 0.9549601 -0.2876495 0.0728630 +vn 0.8623603 0.4907923 -0.1243288 +vn 0.9924048 -0.0008116 0.1230121 +vn 0.9736432 0.0013602 -0.2280726 +vn 0.9554062 0.2859608 0.0736572 +vn 0.8635409 -0.4883278 -0.1258293 +vn 0.9999997 0.0008097 0.0000000 +vn 1.0000000 0.0000000 0.0000000 +vn 0.0000000 -0.9974879 0.0708375 +vn 0.0000000 -0.5595279 -0.8288115 +vn -0.0000000 0.5595279 0.8288115 +vn 0.0000000 -0.8360630 0.5486335 +vn 0.0000000 -0.9873937 -0.1582838 +vn -0.0000000 0.9873937 0.1582838 +vn -0.0000000 0.8308153 0.5565482 +vn 0.0000000 -0.9878937 0.1551320 +vn 0.0000000 0.9878937 -0.1551320 +vn 0.0000000 0.9970511 0.0767403 +vn 0.0000000 -0.5904913 0.8070440 +vn -0.0000000 0.5904913 -0.8070440 +vn 0.0000000 0.9693748 -0.2455861 +vn 0.0000000 0.9235508 0.3834761 +vn -0.0000000 -0.9235508 -0.3834761 +vn 0.0000000 0.0058580 -0.9999828 +vn -0.0000000 0.9999998 0.0006162 +vn -0.0000000 -0.9999998 -0.0006162 +vn 0.0000000 -0.9683753 -0.2494980 +vn 0.0000000 0.9258074 -0.3779956 +vn 0.0000000 -0.9258074 0.3779956 +vn 0.0000000 -0.9970104 -0.0772674 +vn 0.0000000 -0.8225564 -0.5686836 +vn -0.0000000 0.8360062 -0.5487200 +vn 0.0000000 0.9975192 -0.0703947 +vn 0.0000000 0.9668574 0.2553171 +vn 0.9028974 0.3535698 0.2444681 +vn 0.7421048 -0.6686227 0.0471610 +vn 0.8985071 -0.3669702 0.2408690 +vn 0.8766194 -0.4652334 -0.1228668 +vn 0.8040224 -0.5748953 -0.1518002 +vn 0.0000000 -0.0314365 0.9995058 +vn -0.0000000 -0.0311286 0.9995154 +vn 0.0000000 -0.9693843 0.2455486 +vn 0.9580333 0.0090170 -0.2865150 +vn 0.7434144 0.6668342 0.0516454 +vn 0.8001267 0.5814662 -0.1472899 +vn 0.8316334 0.5536667 0.0428844 +vn 0.9999994 -0.0010796 0.0000000 +vn 1.0000000 0.0002699 0.0000000 +vn 1.0000000 -0.0002699 0.0000000 +vn 0.9999999 -0.0005398 0.0000000 +vn 0.9999994 0.0010796 0.0000000 +vn 0.9764094 0.1697164 0.1334952 +vn 0.9731702 -0.1924780 0.1260638 +vn 0.9830826 -0.1507066 -0.1040969 +vn 0.9417533 -0.3253498 -0.0851366 +vn 0.9171960 -0.3973995 0.0287238 +vn 0.9889431 0.0254459 -0.1460958 +vn 0.9403650 0.3297573 -0.0835094 +vn 0.9175197 0.3965359 0.0302805 +vn 0.9606280 0.2686331 0.0709235 +vn 0.4297850 0.9006835 -0.0636723 +vn 0.5024805 0.8359789 0.2205734 +vn 0.8208127 -0.0172609 0.5709366 +vn 0.4975643 -0.8408361 0.2131302 +vn 0.4311733 -0.8995795 -0.0696150 +vn 0.6700685 -0.6107585 -0.4218794 +vn 0.6607477 0.6273189 -0.4121692 +vn 0.0000000 0.9974879 -0.0708375 +vn 0.0000000 0.8360630 -0.5486335 +vn 0.0000000 -0.8308153 -0.5565482 +vn 0.0000000 -0.9970511 -0.0767403 +vn 0.0000000 -0.9693748 0.2455861 +vn 0.0000000 -0.0058580 0.9999828 +vn 0.0000000 0.9683753 0.2494980 +vn 0.0000000 0.9975099 -0.0705265 +vn -0.0000000 0.9669035 0.2551422 +vn 0.0000000 -0.0302018 0.9995438 +vn -0.0000000 -0.9693409 0.2457197 +vn 0.0000000 -0.9970213 -0.0771273 +vn 0.0000000 -0.8228360 -0.5682789 +vn 0.0000000 0.8357794 -0.5490654 +vn 0.4382643 -0.8966098 0.0633657 +vn 0.5115128 -0.8308452 -0.2192052 +vn 0.8271755 0.0169536 -0.5616879 +vn 0.5066296 0.8357201 -0.2118924 +vn 0.4396912 0.8954737 0.0692716 +vn 0.6788958 0.6041209 0.4172990 +vn 0.6697035 -0.6206481 0.4077905 +vn -0.3170557 -0.9344518 -0.1620971 +vn 0.0000000 -0.9832227 -0.1824090 +vn -0.0000000 -0.9624317 -0.2715238 +vn -0.0000000 -0.9222407 -0.3866163 +vn -0.0000000 -0.8380330 -0.5456196 +vn -0.0000000 -0.6429348 -0.7659209 +vn -0.0000000 -0.2097206 -0.9777614 +vn 0.0000000 0.3659073 -0.9306513 +vn -0.0000000 0.7183983 -0.6956320 +vn 0.0000000 0.8698919 -0.4932425 +vn -0.0000000 0.9369852 -0.3493690 +vn -0.0000000 0.9699297 -0.2433851 +vn 0.0000000 0.9871977 -0.1595015 +vn 0.0000000 0.9961240 -0.0879601 +vn -0.0000000 0.9997456 -0.0225573 +vn 0.0000000 0.9991458 0.0413240 +vn 0.0000000 0.9941508 0.1080009 +vn -0.0000000 0.9832227 0.1824090 +vn -0.0000000 0.9624317 0.2715238 +vn 0.0000000 0.9222407 0.3866163 +vn -0.0000000 0.8380330 0.5456196 +vn -0.0000000 0.6429348 0.7659209 +vn 0.0000000 0.2097206 0.9777614 +vn -0.0000000 -0.3659073 0.9306513 +vn 0.0000000 -0.7183983 0.6956320 +vn 0.0000000 -0.8698919 0.4932425 +vn -0.0000000 -0.9369852 0.3493690 +vn 0.0000000 -0.9699297 0.2433851 +vn -0.0000000 -0.9871977 0.1595015 +vn -0.3503465 -0.9050783 -0.2410199 +vn -0.0000000 -0.9941508 -0.1080009 +vn -0.2970828 -0.9502532 -0.0935987 +vn 0.0000000 -0.9997456 0.0225573 +vn -0.7463767 -0.6651815 -0.0213402 +vn -0.9726447 -0.2321787 -0.0074364 +vn 0.2877437 -0.9572212 0.0305128 +vn 0.7463767 -0.6651815 -0.0213402 +vn 0.9726447 -0.2321787 -0.0074364 +vn -0.7577225 -0.6494363 -0.0639454 +vn -0.9744263 -0.2236272 -0.0220074 +vn 0.7577225 -0.6494363 -0.0639454 +vn 0.9744263 -0.2236272 -0.0220074 +vn -0.7803037 -0.6162014 -0.1068730 +vn -0.9777037 -0.2068952 -0.0359146 +vn 0.7803037 -0.6162014 -0.1068730 +vn 0.9777037 -0.2068952 -0.0359146 +vn -0.8129620 -0.5626962 -0.1498860 +vn -0.9820990 -0.1820135 -0.0485041 +vn 0.8129620 -0.5626962 -0.1498860 +vn 0.9820990 -0.1820135 -0.0485041 +vn -0.8534449 -0.4846594 -0.1916692 +vn -0.9868580 -0.1502738 -0.0594063 +vn 0.8534449 -0.4846594 -0.1916692 +vn 0.9868580 -0.1502738 -0.0594063 +vn -0.8966769 -0.3784016 -0.2297450 +vn -0.9913746 -0.1120124 -0.0680418 +vn 0.8966769 -0.3784016 -0.2297450 +vn 0.9913746 -0.1120124 -0.0680418 +vn -0.9346680 -0.2426673 -0.2598236 +vn -0.9948390 -0.0692752 -0.0741371 +vn 0.9346680 -0.2426673 -0.2598236 +vn 0.9948390 -0.0692752 -0.0741371 +vn -0.9572895 -0.0838450 -0.2767070 +vn -0.9967411 -0.0234960 -0.0771694 +vn 0.9572895 -0.0838450 -0.2767070 +vn 0.9967411 -0.0234960 -0.0771694 +vn -0.9572457 0.0843856 -0.2766944 +vn -0.9967411 0.0234960 -0.0771694 +vn 0.9572457 0.0843856 -0.2766944 +vn 0.9967411 0.0234960 -0.0771694 +vn -0.9345473 0.2431675 -0.2597900 +vn -0.9948454 0.0692757 -0.0740502 +vn 0.9345473 0.2431675 -0.2597900 +vn 0.9948454 0.0692757 -0.0740502 +vn -0.8966074 0.3786273 -0.2296445 +vn -0.9913447 0.1122776 -0.0680397 +vn 0.8966074 0.3786273 -0.2296445 +vn 0.9913447 0.1122776 -0.0680397 +vn -0.8532569 0.4850380 -0.1915483 +vn -0.9868631 0.1502745 -0.0593198 +vn 0.8532569 0.4850380 -0.1915483 +vn 0.9868631 0.1502745 -0.0593198 +vn -0.8128745 0.5628668 -0.1497199 +vn -0.9820514 0.1822707 -0.0485018 +vn 0.8128745 0.5628668 -0.1497199 +vn 0.9820514 0.1822707 -0.0485018 +vn -0.7802031 0.6163438 -0.1067873 +vn -0.9777067 0.2068959 -0.0358287 +vn 0.7802031 0.6163438 -0.1067873 +vn 0.9777067 0.2068959 -0.0358287 +vn -0.7577293 0.6494421 -0.0638062 +vn -0.9743687 0.2238780 -0.0220061 +vn 0.7577293 0.6494421 -0.0638062 +vn 0.9743687 0.2238780 -0.0220061 +vn -0.7463788 0.6651835 -0.0212025 +vn -0.9726447 0.2321787 -0.0074364 +vn 0.7463788 0.6651835 -0.0212025 +vn 0.9726447 0.2321787 -0.0074364 +vn -0.7463767 0.6651815 0.0213402 +vn -0.9726447 0.2321787 0.0074364 +vn 0.7463767 0.6651815 0.0213402 +vn 0.9726447 0.2321787 0.0074364 +vn -0.7577225 0.6494363 0.0639454 +vn -0.9744263 0.2236272 0.0220074 +vn 0.7577225 0.6494363 0.0639454 +vn 0.9744263 0.2236272 0.0220074 +vn -0.7803037 0.6162014 0.1068730 +vn -0.9777037 0.2068952 0.0359146 +vn 0.7803037 0.6162014 0.1068730 +vn 0.9777037 0.2068952 0.0359146 +vn -0.8129620 0.5626962 0.1498860 +vn -0.9820990 0.1820135 0.0485041 +vn 0.8129620 0.5626962 0.1498860 +vn 0.9820990 0.1820135 0.0485041 +vn -0.8534449 0.4846594 0.1916692 +vn -0.9868580 0.1502738 0.0594063 +vn 0.8534449 0.4846594 0.1916692 +vn 0.9868580 0.1502738 0.0594063 +vn -0.8966769 0.3784016 0.2297450 +vn -0.9913746 0.1120124 0.0680418 +vn 0.8966769 0.3784016 0.2297450 +vn 0.9913746 0.1120124 0.0680418 +vn -0.9346680 0.2426673 0.2598236 +vn -0.9948390 0.0692752 0.0741371 +vn 0.9346680 0.2426673 0.2598236 +vn 0.9948390 0.0692752 0.0741371 +vn -0.9572895 0.0838450 0.2767070 +vn -0.9967411 0.0234960 0.0771694 +vn 0.9572895 0.0838450 0.2767070 +vn 0.9967411 0.0234960 0.0771694 +vn -0.9572457 -0.0843856 0.2766944 +vn -0.9967411 -0.0234960 0.0771694 +vn 0.9572457 -0.0843856 0.2766944 +vn 0.9967411 -0.0234960 0.0771694 +vn -0.9345473 -0.2431675 0.2597900 +vn -0.9948454 -0.0692757 0.0740502 +vn 0.9345473 -0.2431675 0.2597900 +vn 0.9948454 -0.0692757 0.0740502 +vn -0.8966074 -0.3786273 0.2296445 +vn -0.9913447 -0.1122776 0.0680397 +vn 0.8966074 -0.3786273 0.2296445 +vn 0.9913447 -0.1122776 0.0680397 +vn -0.8532569 -0.4850380 0.1915483 +vn -0.9868631 -0.1502745 0.0593198 +vn 0.8532569 -0.4850380 0.1915483 +vn 0.9868631 -0.1502745 0.0593198 +vn 0.0000000 -0.9699204 0.2434225 +vn -0.8128745 -0.5628668 0.1497199 +vn -0.9820514 -0.1822707 0.0485018 +vn 0.8128745 -0.5628668 0.1497199 +vn 0.9820514 -0.1822707 0.0485018 +vn -0.7802031 -0.6163438 0.1067873 +vn -0.9777067 -0.2068959 0.0358287 +vn 0.7802031 -0.6163438 0.1067873 +vn 0.9777067 -0.2068959 0.0358287 +vn 0.0000000 -0.9961240 0.0879601 +vn -0.7577293 -0.6494421 0.0638062 +vn -0.9743687 -0.2238780 0.0220061 +vn 0.7577293 -0.6494421 0.0638062 +vn 0.9743687 -0.2238780 0.0220061 +vn -0.2877423 -0.9572165 -0.0306731 +vn -0.7463788 -0.6651835 0.0212025 +vn -0.9726447 -0.2321787 0.0074364 +vn 0.7463788 -0.6651835 0.0212025 +vn 0.9726447 -0.2321787 0.0074364 +vn -0.0000000 -0.9991458 -0.0413240 +vn 0.2877423 -0.9572165 -0.0306731 +vn 0.2970525 -0.9502839 0.0933822 +vn 0.2970828 -0.9502532 -0.0935987 +vn 0.1711419 -0.9664881 -0.1913404 +vn 0.1684670 -0.9856197 0.0131406 +vn 0.3169415 -0.9345237 0.1619062 +vn 0.0828237 -0.9279956 -0.3632691 +vn -0.2970525 -0.9502839 0.0933822 +vn 0.3502634 -0.9051647 0.2408163 +vn -0.3169415 -0.9345237 0.1619062 +vn 0.4015742 -0.8517774 0.3364720 +vn -0.3502157 -0.9051918 0.2407835 +vn 0.4768098 -0.7516058 0.4557863 +vn -0.4015742 -0.8517774 0.3364720 +vn 0.5755276 -0.5588198 0.5970666 +vn -0.4767954 -0.7515830 0.4558389 +vn 0.6634084 -0.2180417 0.7157843 +vn -0.5754480 -0.5589898 0.5969841 +vn 0.6636140 0.2166837 0.7160061 +vn -0.6634084 -0.2180417 0.7157843 +vn 0.5758180 0.5581122 0.5974482 +vn -0.6636140 0.2166837 0.7160061 +vn 0.4770012 0.7512926 0.4561022 +vn -0.5758180 0.5581122 0.5974482 +vn 0.4017898 0.8515813 0.3367110 +vn -0.4769868 0.7512699 0.4561548 +vn 0.3503465 0.9050783 0.2410199 +vn -0.4017286 0.8515871 0.3367693 +vn 0.3170154 0.9344691 0.1620765 +vn -0.3503465 0.9050783 0.2410199 +vn 0.2970828 0.9502532 0.0935987 +vn -0.3170131 0.9344624 0.1621195 +vn 0.2877764 0.9572062 0.0306767 +vn -0.2970828 0.9502532 0.0935987 +vn 0.2877441 0.9572224 -0.0304728 +vn -0.2877423 0.9572165 0.0306731 +vn 0.2970513 0.9502803 -0.0934233 +vn -0.2877441 0.9572224 -0.0304728 +vn 0.3169415 0.9345237 -0.1619062 +vn -0.2970513 0.9502803 -0.0934233 +vn 0.3502634 0.9051647 -0.2408163 +vn -0.3169415 0.9345237 -0.1619062 +vn 0.4015742 0.8517774 -0.3364720 +vn -0.3502157 0.9051918 -0.2407835 +vn 0.4768098 0.7516058 -0.4557863 +vn -0.4015742 0.8517774 -0.3364720 +vn 0.5754480 0.5589898 -0.5969841 +vn -0.4767954 0.7515830 -0.4558389 +vn 0.6634084 0.2180417 -0.7157843 +vn -0.5754480 0.5589898 -0.5969841 +vn 0.6636140 -0.2166837 -0.7160061 +vn -0.6634084 0.2180417 -0.7157843 +vn 0.5758180 -0.5581122 -0.5974482 +vn -0.6636140 -0.2166837 -0.7160061 +vn 0.4770599 -0.7512654 -0.4560857 +vn -0.5758180 -0.5581122 -0.5974482 +vn 0.4017898 -0.8515813 -0.3367110 +vn -0.4770012 -0.7512926 -0.4561022 +vn 0.3503954 -0.9050606 -0.2410152 +vn -0.4017362 -0.8516031 -0.3367197 +vn 0.3171011 -0.9344369 -0.1620945 +vn -0.1965837 -0.9474651 -0.2523187 +vn -0.1711217 -0.9664962 -0.1913178 +vn -0.1701103 -0.9841567 -0.0499802 +vn -0.1589683 -0.9867776 -0.0316087 +vn -0.1509885 -0.9872639 -0.0501239 +vn -0.1777598 -0.9771803 -0.1162762 +vn 0.1590082 -0.9867767 0.0314335 +vn -0.1578521 -0.9805465 -0.1166669 +vn -0.1829717 -0.9722094 0.1460484 +vn -0.1589913 -0.9867796 0.0314301 +vn -0.1625219 -0.9757596 0.1465602 +vn 0.1625219 -0.9757596 0.1465602 +vn -0.1964701 -0.9475567 0.2520631 +vn 0.1829717 -0.9722094 0.1460484 +vn -0.2312586 -0.9176658 0.3231237 +vn 0.1964701 -0.9475567 0.2520631 +vn -0.1790980 -0.9574110 0.2264685 +vn 0.2058606 -0.9230211 0.3250439 +vn -0.2287882 -0.9054008 0.3576385 +vn -0.2480975 -0.8554464 0.4545977 +vn -0.2780307 -0.8482685 0.4507099 +vn -0.3528936 -0.6395179 0.6829956 +vn 0.2780307 -0.8482685 0.4507099 +vn -0.4326796 -0.3919572 0.8118854 +vn 0.3529477 -0.6393762 0.6831003 +vn -0.3909660 -0.4000646 0.8289113 +vn 0.3909660 -0.4000646 0.8289113 +vn -0.4293049 0.2617300 0.8644042 +vn 0.4326796 -0.3919572 0.8118854 +vn -0.3982844 0.5485175 0.7351858 +vn 0.4293049 0.2617300 0.8644042 +vn -0.3586781 0.5582271 0.7481528 +vn 0.3586781 0.5582271 0.7481528 +vn -0.2793413 0.8207422 0.4983480 +vn 0.3982844 0.5485175 0.7351858 +vn -0.2560079 0.8832511 0.3928454 +vn 0.2793413 0.8207422 0.4983480 +vn -0.2825880 0.7857113 0.5502743 +vn 0.2281811 0.8896152 0.3956237 +vn -0.2289047 0.9052396 0.3579719 +vn -0.1931880 0.9401027 0.2808654 +vn -0.2171573 0.9352910 0.2794164 +vn -0.1763627 0.9698446 0.1682188 +vn 0.2171573 0.9352910 0.2794164 +vn -0.1777598 0.9771803 0.1162762 +vn 0.1763832 0.9698375 0.1682384 +vn -0.1578521 0.9805465 0.1166669 +vn 0.1578521 0.9805465 0.1166669 +vn -0.1589683 0.9867776 0.0316087 +vn 0.1777598 0.9771803 0.1162762 +vn -0.1684670 0.9856197 -0.0131406 +vn 0.1589683 0.9867776 0.0316087 +vn -0.1495044 0.9886733 -0.0131703 +vn 0.1495044 0.9886733 -0.0131703 +vn -0.1644853 0.9816480 -0.0964974 +vn 0.1684670 0.9856197 -0.0131406 +vn -0.1829717 0.9722094 -0.1460484 +vn 0.1644853 0.9816480 -0.0964974 +vn -0.1531465 0.9851735 -0.0773255 +vn 0.1625219 0.9757596 -0.1465602 +vn -0.1763263 0.9698842 -0.1680287 +vn -0.1790980 0.9574110 -0.2264685 +vn -0.2014234 0.9532070 -0.2254443 +vn -0.2287882 0.9054008 -0.3576385 +vn 0.2014234 0.9532070 -0.2254443 +vn -0.2780730 0.8482182 -0.4507785 +vn 0.2287882 0.9054008 -0.3576385 +vn -0.2481656 0.8554548 -0.4545446 +vn 0.2481656 0.8554548 -0.4545446 +vn -0.3529477 0.6393762 -0.6831003 +vn 0.2780307 0.8482685 -0.4507099 +vn -0.4326796 0.3919572 -0.8118854 +vn 0.3529477 0.6393762 -0.6831003 +vn -0.3908783 0.4000808 -0.8289448 +vn 0.3908783 0.4000808 -0.8289448 +vn -0.4294282 -0.2617393 -0.8643402 +vn 0.4326796 0.3919572 -0.8118854 +vn -0.3982844 -0.5485175 -0.7351858 +vn 0.4294282 -0.2617393 -0.8643402 +vn -0.4199010 -0.1140194 -0.9003792 +vn 0.3586781 -0.5582271 -0.7481528 +vn -0.3531455 -0.6387745 -0.6835608 +vn -0.2825880 -0.7857113 -0.5502743 +vn -0.3158081 -0.7772152 -0.5442442 +vn -0.2289047 -0.9052396 -0.3579719 +vn 0.3158081 -0.7772152 -0.5442442 +vn -0.2171078 -0.9353015 -0.2794196 +vn 0.1763627 -0.9698446 -0.1682188 +vn -0.1931880 -0.9401027 -0.2808654 +vn -0.1925916 -0.9626026 -0.1905377 +vn -0.1763627 -0.9698446 -0.1682188 +vn 0.2171573 -0.9352910 -0.2794164 +vn 0.1531865 -0.9851701 0.0772898 +vn -0.1645010 -0.9816302 -0.0966517 +vn 0.1725419 -0.9819824 0.0770702 +vn 0.1925901 -0.9625953 -0.1905765 +vn -0.2281811 -0.8896152 -0.3956237 +vn 0.2559507 -0.8832649 -0.3928516 +vn -0.3586781 -0.5582271 -0.7481528 +vn 0.3982844 -0.5485175 -0.7351858 +vn 0.4633171 -0.1114251 -0.8791597 +vn -0.3123186 0.7117057 -0.6292314 +vn 0.3482325 0.7023150 -0.6208766 +vn -0.2059128 0.9230107 -0.3250402 +vn 0.2313109 0.9176541 -0.3231196 +vn -0.1625219 0.9757596 -0.1465602 +vn 0.1829717 0.9722094 -0.1460484 +vn 0.1725020 0.9819894 -0.0770708 +vn -0.1510276 0.9872580 0.0501236 +vn 0.1701287 0.9841533 0.0499856 +vn -0.1711217 0.9664962 0.1913178 +vn 0.1925901 0.9625953 0.1905765 +vn -0.2281811 0.8896152 0.3956237 +vn 0.2560079 0.8832511 0.3928454 +vn 0.3158081 0.7772152 0.5442442 +vn -0.4199010 0.1140194 0.9003792 +vn 0.4633171 0.1114251 0.8791597 +vn -0.3123186 -0.7117057 0.6292314 +vn 0.3482325 -0.7023150 0.6208766 +vn -0.2059128 -0.9230107 0.3250402 +vn 0.2313109 -0.9176541 0.3231196 +vn 0.2014695 -0.9531977 0.2254421 +vn -0.1531865 -0.9851701 0.0772898 +vn -0.1495431 -0.9886675 0.0131702 +vn 0.1777598 -0.9771803 -0.1162762 +vn 0.1701103 -0.9841567 -0.0499802 +vn -0.1644450 -0.9816547 0.0964981 +vn 0.2289047 -0.9052396 -0.3579719 +vn 0.1965837 -0.9474651 -0.2523187 +vn -0.2793413 -0.8207422 -0.4983480 +vn 0.2793413 -0.8207422 -0.4983480 +vn 0.3531455 -0.6387745 -0.6835608 +vn -0.4291757 0.2631097 -0.8640495 +vn 0.4291757 0.2631097 -0.8640495 +vn -0.2791845 0.8210401 -0.4979450 +vn 0.2791845 0.8210401 -0.4979450 +vn -0.1965176 0.9475475 -0.2520607 +vn 0.1965176 0.9475475 -0.2520607 +vn 0.1763263 0.9698842 -0.1680287 +vn -0.1589913 0.9867796 -0.0314301 +vn 0.1590082 0.9867767 -0.0314335 +vn -0.1645010 0.9816302 0.0966517 +vn 0.1645191 0.9816261 0.0966623 +vn -0.1965837 0.9474651 0.2523187 +vn 0.1965837 0.9474651 0.2523187 +vn 0.2289047 0.9052396 0.3579719 +vn -0.3531455 0.6387745 0.6835608 +vn 0.3531455 0.6387745 0.6835608 +vn -0.4292639 -0.2630975 0.8640094 +vn 0.4292639 -0.2630975 0.8640094 +vn -0.2791845 -0.8210401 0.4979450 +vn 0.2791845 -0.8210401 0.4979450 +vn 0.2287882 -0.9054008 0.3576385 +vn -0.1763263 -0.9698842 0.1680287 +vn 0.1763263 -0.9698842 0.1680287 +vn 0.1644853 -0.9816480 0.0964974 +vn 0.1645191 -0.9816261 -0.0966623 +vn 0.1589683 -0.9867776 -0.0316087 +vn 0.1495431 -0.9886675 0.0131702 +vn 0.1931629 -0.9401187 -0.2808289 +vn -0.2559507 -0.8832649 -0.3928516 +vn 0.2281811 -0.8896152 -0.3956237 +vn 0.2825880 -0.7857113 -0.5502743 +vn -0.4633171 -0.1114251 -0.8791597 +vn 0.4199010 -0.1140194 -0.9003792 +vn -0.3482325 0.7023150 -0.6208766 +vn 0.3123186 0.7117057 -0.6292314 +vn -0.2313109 0.9176541 -0.3231196 +vn 0.2059128 0.9230107 -0.3250402 +vn 0.1790980 0.9574110 -0.2264685 +vn -0.1725020 0.9819894 -0.0770708 +vn 0.1531861 0.9851674 -0.0773250 +vn -0.1701103 0.9841567 0.0499802 +vn 0.1510276 0.9872580 0.0501236 +vn -0.1925901 0.9625953 0.1905765 +vn 0.1711419 0.9664881 0.1913404 +vn 0.1931629 0.9401187 0.2808289 +vn -0.3158081 0.7772152 0.5442442 +vn 0.2825880 0.7857113 0.5502743 +vn -0.4633171 0.1114251 0.8791597 +vn 0.4199010 0.1140194 0.9003792 +vn -0.3482325 -0.7023150 0.6208766 +vn 0.3123186 -0.7117057 0.6292314 +vn 0.2481656 -0.8554548 0.4545446 +vn -0.2014695 -0.9531977 0.2254421 +vn 0.1790980 -0.9574110 0.2264685 +vn -0.1725419 -0.9819824 0.0770702 +vn -0.1684670 -0.9856197 0.0131406 +vn 0.1578521 -0.9805465 -0.1166669 +vn 0.1509885 -0.9872639 -0.0501239 +vn 0.1668755 -0.9859780 -0.0001055 +vn -0.1668755 -0.9859780 -0.0000703 +vn 0.1696720 -0.9834503 -0.0635362 +vn -0.1696720 -0.9834503 -0.0635362 +vn 0.1786097 -0.9751426 -0.1311314 +vn -0.1786523 -0.9751399 -0.1310934 +vn 0.1950879 -0.9585077 -0.2078551 +vn -0.1950879 -0.9585077 -0.2078551 +vn 0.2220449 -0.9274189 -0.3009822 +vn -0.2220957 -0.9274079 -0.3009786 +vn 0.2643981 -0.8674806 -0.4213918 +vn -0.2643981 -0.8674806 -0.4213918 +vn 0.3289324 -0.7433360 -0.5824561 +vn -0.3289846 -0.7432404 -0.5825486 +vn 0.4131657 -0.4755674 -0.7766143 +vn -0.4131657 -0.4755674 -0.7766143 +vn 0.4626305 0.0009015 -0.8865507 +vn -0.4625430 0.0009016 -0.8865964 +vn 0.4129298 0.4766370 -0.7760838 +vn -0.4129298 0.4766370 -0.7760838 +vn 0.3287500 0.7437780 -0.5819946 +vn -0.3286794 0.7437973 -0.5820098 +vn 0.2641607 0.8677685 -0.4209478 +vn -0.2642592 0.8677115 -0.4210034 +vn 0.2219387 0.9275517 -0.3006511 +vn -0.2220191 0.9275206 -0.3006877 +vn 0.1950703 0.9585707 -0.2075809 +vn -0.1950703 0.9585707 -0.2075809 +vn 0.1785737 0.9751780 -0.1309168 +vn -0.1785737 0.9751780 -0.1309168 +vn 0.1697132 0.9834524 -0.0633933 +vn -0.1697132 0.9834524 -0.0633933 +vn 0.1668365 0.9859846 0.0000703 +vn -0.1668365 0.9859846 0.0000703 +vn 0.1697117 0.9834435 0.0635357 +vn -0.1697117 0.9834435 0.0635357 +vn 0.1786523 0.9751399 0.1310934 +vn -0.1786514 0.9751351 0.1311304 +vn 0.1950879 0.9585077 0.2078551 +vn -0.1950879 0.9585077 0.2078551 +vn 0.2219941 0.9274299 0.3009857 +vn -0.2220449 0.9274189 0.3009822 +vn 0.2643981 0.8674806 0.4213918 +vn -0.2642995 0.8675377 0.4213361 +vn 0.3289457 0.7433660 0.5824103 +vn -0.3289457 0.7433660 0.5824103 +vn 0.4131657 0.4755674 0.7766143 +vn -0.4130833 0.4755870 0.7766462 +vn 0.4626305 -0.0009015 0.8865507 +vn -0.4626305 -0.0009015 0.8865507 +vn 0.4128474 -0.4766566 0.7761157 +vn -0.4128474 -0.4766566 0.7761157 +vn 0.3287500 -0.7437780 0.5819946 +vn -0.3287633 -0.7438080 0.5819488 +vn 0.2642592 -0.8677115 0.4210034 +vn -0.2642198 -0.8677539 0.4209407 +vn 0.2218848 -0.9275496 0.3006972 +vn -0.2218848 -0.9275496 0.3006972 +vn 0.1950923 -0.9585522 0.2076454 +vn -0.1950251 -0.9585795 0.2075828 +vn 0.1785737 -0.9751780 0.1309168 +vn -0.1785737 -0.9751780 0.1309168 +vn 0.1696556 -0.9834651 0.0633513 +vn -0.1696556 -0.9834651 0.0633513 +vn 0.1496739 -0.9827865 -0.1082979 +vn 0.3836658 0.3477346 -0.8555006 +vn 0.1429988 0.9895011 -0.0209490 +vn 0.3345189 0.5999088 0.7267782 +vn 0.1736237 -0.9556846 0.2377428 +vn 0.3981565 -0.3660338 -0.8411246 +vn 0.1580734 0.9811310 -0.1113318 +vn 0.2537034 0.8475760 0.4661003 +vn -0.1516103 -0.9873997 -0.0453453 +vn 0.3515030 -0.6459671 -0.6776224 +vn 0.1772191 0.9693474 -0.1701733 +vn 0.2282950 0.9067417 0.3545433 +vn 0.2304647 -0.9036379 0.3610049 +vn 0.1651062 -0.9813575 0.0983737 +vn 0.1814538 -0.9458491 -0.2691541 +vn 0.2132067 -0.8998800 -0.3804719 +vn 0.3345189 -0.5999088 -0.7267782 +vn 0.2438076 0.8456172 -0.4748572 +vn 0.2009088 0.9188384 -0.3396640 +vn 0.1567893 0.9752553 -0.1558657 +vn 0.1496739 0.9827865 0.1082979 +vn 0.1615460 0.9699816 0.1817652 +vn 0.2132025 0.8998624 0.3805159 +vn 0.3835755 -0.3477487 0.8555353 +vn 0.3083492 -0.6880846 0.6568564 +vn 0.2009088 -0.9188384 0.3396640 +vn -0.1879038 -0.9578383 -0.2173430 +vn 0.1470667 -0.9854187 0.0855645 +vn 0.1644506 -0.9745630 -0.1522596 +vn 0.1818308 -0.9552678 -0.2332404 +vn 0.2537422 -0.8475252 -0.4661715 +vn 0.3542307 0.5822948 -0.7317469 +vn 0.2791032 0.7965350 -0.5363147 +vn 0.1921611 0.9425850 -0.2731441 +vn 0.1505602 0.9884361 0.0180494 +vn 0.1546198 0.9845336 0.0823786 +vn 0.1818308 0.9552678 0.2332404 +vn 0.3981565 0.3660338 0.8411246 +vn 0.4199265 -0.1549156 0.8942387 +vn 0.2790354 -0.7965513 0.5363257 +vn -0.1922996 -0.9424691 -0.2734463 +vn -0.1708578 -0.9677072 -0.1853385 +vn 0.1646526 -0.9817881 -0.0947718 +vn 0.1763303 -0.9702281 -0.1660270 +vn 0.2282950 -0.9067417 -0.3545433 +vn 0.4316649 0.2490458 -0.8669727 +vn 0.3560192 0.6318140 -0.6885212 +vn 0.2305195 0.9036259 -0.3610001 +vn 0.1594471 0.9866465 -0.0332454 +vn 0.1593502 0.9867717 0.0298181 +vn 0.1763496 0.9702149 0.1660840 +vn 0.3515571 0.6458282 0.6777268 +vn 0.4287342 0.2753279 0.8604543 +vn 0.3560735 -0.6316689 0.6886262 +vn 0.1977179 -0.9465917 0.2546994 +vn -0.1879741 -0.9371744 -0.2938876 +vn -0.1655782 -0.9653611 -0.2016475 +vn -0.1447551 -0.9877583 -0.0581339 +vn 0.2815859 -0.8174632 0.5024573 +vn 0.4315766 -0.2490574 0.8670133 +vn 0.2782223 0.8239241 0.4937017 +vn 0.1963331 0.9482166 0.2496769 +vn 0.1646526 0.9817881 0.0947718 +vn 0.1651062 0.9813575 -0.0983737 +vn 0.1977179 0.9465917 -0.2546994 +vn 0.2815859 0.8174632 -0.5024573 +vn 0.4287342 -0.2753279 -0.8604543 +vn 0.2782223 -0.8239241 -0.4937017 +vn 0.1963331 -0.9482166 -0.2496769 +vn 0.1580160 -0.9811456 0.1112843 +vn 0.1921611 -0.9425850 0.2731441 +vn 0.2261942 -0.8945881 0.3854197 +vn 0.3543123 -0.5822755 0.7317227 +vn 0.3198843 0.6948213 0.6441253 +vn 0.2097676 0.9190846 0.3335883 +vn 0.1644927 0.9745560 0.1522585 +vn 0.1516341 0.9874027 -0.0452007 +vn 0.1708663 0.9677434 -0.1851414 +vn 0.2262267 0.8945560 -0.3854752 +vn 0.4199265 0.1549156 -0.8942387 +vn 0.3198691 -0.6947883 -0.6441685 +vn 0.2097114 -0.9190804 -0.3336351 +vn 0.1546198 -0.9845336 -0.0823786 +vn -0.2149288 -0.9250711 -0.3131279 +vn -0.1620439 -0.9842545 -0.0706031 +vn 0.2437443 -0.8456311 0.4748650 +vn 0.4002932 0.1808067 0.8983731 +vn 0.2628251 0.8059932 0.5303752 +vn 0.1814538 0.9458491 0.2691541 +vn 0.1438112 0.9887018 0.0422749 +vn 0.1471069 0.9854159 -0.0855287 +vn 0.1736719 0.9556862 -0.2377013 +vn 0.3084262 0.6880665 -0.6568392 +vn 0.4002932 -0.1808067 -0.8983731 +vn 0.2628926 -0.8059779 -0.5303651 +vn 0.1614838 -0.9699957 -0.1817453 +vn -0.1651056 -0.9813540 0.0984097 +vn 0.1655782 -0.9653611 -0.2016475 +vn -0.1580328 -0.9811375 0.1113325 +vn 0.1709015 -0.9676998 -0.1853371 +vn -0.1470667 -0.9854187 0.0855645 +vn 0.1879038 -0.9578383 -0.2173430 +vn 0.1879741 -0.9371744 -0.2938876 +vn 0.1922996 -0.9424691 -0.2734463 +vn 0.2149288 -0.9250711 -0.3131279 +vn -0.1976928 -0.9466056 0.2546671 +vn 0.1447705 -0.9877557 -0.0581401 +vn -0.1921611 -0.9425850 0.2731441 +vn 0.1516103 -0.9873997 -0.0453453 +vn -0.1736237 -0.9556846 0.2377428 +vn 0.1620435 -0.9842520 -0.0706386 +vn -0.2304647 -0.9036379 0.3610049 +vn -0.2261942 -0.8945881 0.3854197 +vn -0.2009088 -0.9188384 0.3396640 +vn -0.2815420 -0.8175265 0.5023789 +vn -0.2790354 -0.7965513 0.5363257 +vn -0.2437443 -0.8456311 0.4748650 +vn -0.3560192 -0.6318140 0.6885212 +vn -0.3543123 -0.5822755 0.7317227 +vn -0.3083492 -0.6880846 0.6568564 +vn -0.4315766 -0.2490574 0.8670133 +vn -0.4198354 -0.1549228 0.8942803 +vn -0.3835755 -0.3477487 0.8555353 +vn -0.4287342 0.2753279 0.8604543 +vn -0.3981565 0.3660338 0.8411246 +vn -0.4002932 0.1808067 0.8983731 +vn -0.3515030 0.6459671 0.6776224 +vn -0.3198843 0.6948213 0.6441253 +vn -0.3345189 0.5999088 0.7267782 +vn -0.2782223 0.8239241 0.4937017 +vn -0.2536409 0.8475904 0.4661082 +vn -0.2628926 0.8059779 0.5303651 +vn -0.2282990 0.9067578 0.3544994 +vn -0.2097676 0.9190846 0.3335883 +vn -0.2132067 0.8998800 0.3804719 +vn -0.1963331 0.9482166 0.2496769 +vn -0.1818308 0.9552678 0.2332404 +vn -0.1814538 0.9458491 0.2691541 +vn -0.1763496 0.9702149 0.1660840 +vn -0.1644927 0.9745560 0.1522585 +vn -0.1615283 0.9699956 0.1817063 +vn -0.1646526 0.9817881 0.0947718 +vn -0.1545800 0.9845398 0.0823791 +vn -0.1496745 0.9827903 0.1082622 +vn -0.1593502 0.9867717 0.0298181 +vn -0.1505443 0.9884385 0.0180475 +vn -0.1438112 0.9887018 0.0422749 +vn -0.1594473 0.9866477 -0.0332104 +vn -0.1515951 0.9874086 -0.0452009 +vn -0.1429602 0.9895067 -0.0209491 +vn -0.1651062 0.9813575 -0.0983737 +vn -0.1580740 0.9811350 -0.1112958 +vn -0.1470667 0.9854187 -0.0855645 +vn -0.1771760 0.9693551 -0.1701747 +vn -0.1708663 0.9677434 -0.1851414 +vn -0.1567893 0.9752553 -0.1558657 +vn -0.1977179 0.9465917 -0.2546994 +vn -0.1921611 0.9425850 -0.2731441 +vn -0.1736719 0.9556862 -0.2377013 +vn -0.2305195 0.9036259 -0.3610001 +vn -0.2261657 0.8945500 -0.3855248 +vn -0.2009088 0.9188384 -0.3396640 +vn -0.2815859 0.8174632 -0.5024573 +vn -0.2791032 0.7965350 -0.5363147 +vn -0.2438076 0.8456172 -0.4748572 +vn -0.3560192 0.6318140 -0.6885212 +vn -0.3543123 0.5822755 -0.7317227 +vn -0.3084262 0.6880665 -0.6568392 +vn -0.4316649 0.2490458 -0.8669727 +vn -0.4199265 0.1549156 -0.8942387 +vn -0.3836658 0.3477346 -0.8555006 +vn -0.4286999 -0.2755965 -0.8603854 +vn -0.3981565 -0.3660338 -0.8411246 +vn -0.4002932 -0.1808067 -0.8983731 +vn -0.3515214 -0.6460009 -0.6775806 +vn -0.3198843 -0.6948213 -0.6441253 +vn -0.3344369 -0.5999273 -0.7268007 +vn -0.2782307 -0.8239490 -0.4936555 +vn -0.2537034 -0.8475760 -0.4661003 +vn -0.2628926 -0.8059779 -0.5303651 +vn -0.2282950 -0.9067417 -0.3545433 +vn -0.2097114 -0.9190804 -0.3336351 +vn -0.2131464 -0.8998737 -0.3805207 +vn -0.1963331 -0.9482166 -0.2496769 +vn -0.1817845 -0.9552761 -0.2332424 +vn -0.1814538 -0.9458491 -0.2691541 +vn -0.1763496 -0.9702149 -0.1660840 +vn -0.1644506 -0.9745630 -0.1522596 +vn -0.1614849 -0.9700025 -0.1817076 +vn -0.1646526 -0.9817881 -0.0947718 +vn -0.1546198 -0.9845336 -0.0823786 +vn -0.1496745 -0.9827903 -0.1082622 +vn 0.0636266 -0.9829817 0.1723330 +vn -0.0646936 -0.9896431 -0.1281455 +vn -0.0727188 -0.9918315 0.1047959 +vn 0.0784916 -0.9769252 -0.1986359 +vn -0.0706246 -0.9760624 -0.2057048 +vn -0.0783971 -0.9808208 0.1784503 +vn 0.0783971 -0.9808208 0.1784503 +vn -0.0721005 -0.9898860 -0.1221771 +vn -0.0784916 -0.9769252 -0.1986359 +vn -0.0591884 -0.9932897 0.0993595 +vn 0.0706251 -0.9760700 -0.2056681 +vn -0.0636266 -0.9829817 0.1723330 +vn 0.0805717 -0.9503920 -0.3004385 +vn -0.0891340 -0.9524213 -0.2914598 +vn 0.0891351 -0.9524333 -0.2914203 +vn -0.0805717 -0.9503920 -0.3004385 +vn 0.0712321 -0.9632852 0.2588582 +vn -0.0880533 -0.9598611 0.2662955 +vn 0.0880533 -0.9598611 0.2662955 +vn -0.0712321 -0.9632852 0.2588582 +vn 0.0965014 -0.9000676 -0.4249303 +vn -0.1062650 -0.9046944 -0.4125963 +vn 0.1062650 -0.9046944 -0.4125963 +vn -0.0965014 -0.9000676 -0.4249303 +vn 0.1218786 -0.7919487 -0.5982999 +vn -0.1335611 -0.8031393 -0.5806279 +vn 0.1335611 -0.8031393 -0.5806279 +vn -0.1218786 -0.7919487 -0.5982999 +vn 0.1581058 -0.5407229 -0.8262090 +vn -0.1731703 -0.5685099 -0.8042441 +vn 0.1731703 -0.5685099 -0.8042441 +vn -0.1581058 -0.5407229 -0.8262090 +vn 0.1838578 -0.0389736 -0.9821799 +vn -0.2047080 -0.0874456 -0.9749092 +vn 0.2047080 -0.0874456 -0.9749092 +vn -0.1838578 -0.0389736 -0.9821799 +vn 0.1630437 0.4898482 -0.8564260 +vn -0.1855137 0.4538652 -0.8715452 +vn 0.1855137 0.4538652 -0.8715452 +vn -0.1630437 0.4898482 -0.8564260 +vn 0.1260730 0.7699626 -0.6255103 +vn -0.1441498 0.7531316 -0.6418829 +vn 0.1441498 0.7531316 -0.6418829 +vn -0.1260730 0.7699626 -0.6255103 +vn 0.0992023 0.8903212 -0.4443953 +vn -0.1131000 0.8824757 -0.4565578 +vn 0.1131000 0.8824757 -0.4565578 +vn -0.0992023 0.8903212 -0.4443953 +vn 0.0822514 0.9456301 -0.3146719 +vn -0.0933909 0.9415541 -0.3236572 +vn 0.0934032 0.9415383 -0.3236997 +vn -0.0822514 0.9456301 -0.3146719 +vn 0.0717083 0.9735514 -0.2169231 +vn -0.0811182 0.9712101 -0.2239882 +vn 0.0811182 0.9712101 -0.2239882 +vn -0.0717083 0.9735514 -0.2169231 +vn 0.0652989 0.9883308 -0.1376163 +vn -0.0736363 0.9868852 -0.1436499 +vn 0.0736367 0.9868903 -0.1436150 +vn -0.0652989 0.9883308 -0.1376163 +vn 0.0618008 0.9957293 -0.0685848 +vn -0.0694826 0.9948335 -0.0740172 +vn 0.0694826 0.9948335 -0.0740172 +vn -0.0618008 0.9957293 -0.0685848 +vn 0.0606015 0.9981533 -0.0041665 +vn -0.0679425 0.9976448 -0.0094132 +vn 0.0679425 0.9976448 -0.0094132 +vn -0.0606015 0.9981533 -0.0041665 +vn 0.0615178 0.9963042 0.0599450 +vn -0.0687704 0.9961408 0.0545358 +vn 0.0687704 0.9961408 0.0545358 +vn -0.0615178 0.9963042 0.0599450 +vn 0.0646938 0.9896475 0.1281110 +vn -0.0721005 0.9898860 0.1221771 +vn 0.0721005 0.9898860 0.1221771 +vn -0.0646938 0.9896475 0.1281110 +vn 0.0706681 0.9760593 0.2057041 +vn -0.0784910 0.9769178 0.1986725 +vn 0.0784916 0.9769252 0.1986359 +vn -0.0706681 0.9760593 0.2057041 +vn 0.0805717 0.9503920 0.3004385 +vn -0.0891351 0.9524333 0.2914203 +vn 0.0891238 0.9524456 0.2913834 +vn -0.0805717 0.9503920 0.3004385 +vn 0.0965014 0.9000676 0.4249303 +vn -0.1062780 0.9046464 0.4126983 +vn 0.1062780 0.9046464 0.4126983 +vn -0.0965014 0.9000676 0.4249303 +vn 0.1218786 0.7919487 0.5982999 +vn -0.1335448 0.8032402 0.5804920 +vn 0.1335448 0.8032402 0.5804920 +vn -0.1218786 0.7919487 0.5982999 +vn 0.1580832 0.5409096 0.8260911 +vn -0.1731448 0.5686850 0.8041258 +vn 0.1731448 0.5686850 0.8041258 +vn -0.1580832 0.5409096 0.8260911 +vn 0.1838578 0.0389736 0.9821799 +vn -0.2047080 0.0874456 0.9749092 +vn 0.2047080 0.0874456 0.9749092 +vn -0.1838578 0.0389736 0.9821799 +vn 0.1630219 -0.4900550 0.8563118 +vn -0.1855370 -0.4536451 0.8716548 +vn 0.1855370 -0.4536451 0.8716548 +vn -0.1630219 -0.4900550 0.8563118 +vn 0.1260730 -0.7699626 0.6255103 +vn -0.1441498 -0.7531316 0.6418829 +vn 0.1441498 -0.7531316 0.6418829 +vn -0.1260730 -0.7699626 0.6255103 +vn 0.0992023 -0.8903212 0.4443953 +vn -0.1131000 -0.8824757 0.4565578 +vn 0.1131000 -0.8824757 0.4565578 +vn -0.0992023 -0.8903212 0.4443953 +vn 0.0822514 -0.9456301 0.3146719 +vn -0.0933909 -0.9415541 0.3236572 +vn 0.0933909 -0.9415541 0.3236572 +vn -0.0822514 -0.9456301 0.3146719 +vn 0.0717083 -0.9735514 0.2169231 +vn -0.0811278 -0.9712033 0.2240145 +vn 0.0811278 -0.9712033 0.2240145 +vn -0.0717083 -0.9735514 0.2169231 +vn 0.0652989 -0.9883308 0.1376163 +vn -0.0736363 -0.9868852 0.1436499 +vn 0.0736363 -0.9868852 0.1436499 +vn -0.0652986 -0.9883260 0.1376510 +vn 0.0618009 -0.9957316 0.0685515 +vn -0.0694826 -0.9948335 0.0740172 +vn 0.0694756 -0.9948370 0.0739761 +vn -0.0618009 -0.9957316 0.0685515 +vn -0.2877441 -0.9572224 0.0304728 +vn -0.0997780 -0.9303749 -0.3527704 +vn 0.0997780 -0.9303749 -0.3527704 +vn -0.0828237 -0.9279956 -0.3632691 +vn -0.4058514 -0.0474148 -0.9127083 +vn -0.4200039 -0.1537500 -0.8944035 +vn -0.4433654 0.0589291 -0.8944017 +vn 0.4200231 -0.1534585 -0.8944446 +vn 0.4433654 0.0589291 -0.8944017 +vn 0.4058514 -0.0474148 -0.9127083 +vn 0.1021442 -0.8530000 -0.5118179 +vn -0.1224258 -0.8592026 -0.4967723 +vn 0.1224258 -0.8592026 -0.4967723 +vn -0.1021442 -0.8530000 -0.5118179 +vn -0.3668597 0.4542562 -0.8118284 +vn -0.3979807 0.3672870 -0.8406614 +vn -0.3866967 0.5197400 -0.7617979 +vn 0.3669051 0.4540395 -0.8119291 +vn 0.3866967 0.5197400 -0.7617979 +vn 0.3980689 0.3672717 -0.8406263 +vn 0.1319530 -0.6831972 -0.7182130 +vn -0.1575012 -0.6998207 -0.6967384 +vn 0.1575012 -0.6998207 -0.6967384 +vn -0.1319530 -0.6831972 -0.7182130 +vn -0.2904002 0.7392606 -0.6075867 +vn -0.3196468 0.6954417 -0.6435734 +vn -0.3060448 0.7660217 -0.5652852 +vn 0.3196468 0.6954417 -0.6435734 +vn 0.2904002 0.7392606 -0.6075867 +vn 0.3060448 0.7660217 -0.5652852 +vn 0.0707763 -0.9645413 -0.2542653 +vn -0.0856453 -0.9653655 -0.2464435 +vn 0.0856453 -0.9653655 -0.2464435 +vn -0.0707763 -0.9645413 -0.2542653 +vn -0.3537919 -0.5193045 -0.7779165 +vn -0.3545211 -0.5812599 -0.7324287 +vn -0.4041998 -0.4377367 -0.8031246 +vn 0.4041998 -0.4377367 -0.8031246 +vn 0.3545211 -0.5812599 -0.7324287 +vn 0.3538773 -0.5192866 -0.7778896 +vn 0.0633492 -0.9836488 -0.1685881 +vn -0.0769347 -0.9837496 -0.1622278 +vn 0.0769347 -0.9837496 -0.1622278 +vn -0.0633492 -0.9836488 -0.1685881 +vn -0.2785383 -0.7693842 -0.5748603 +vn -0.2792367 -0.7961333 -0.5368414 +vn -0.3222169 -0.7274015 -0.6058575 +vn 0.2785383 -0.7693842 -0.5748603 +vn 0.3222169 -0.7274015 -0.6058575 +vn 0.2792367 -0.7961333 -0.5368414 +vn 0.0590392 -0.9936178 -0.0961149 +vn -0.0719249 -0.9932858 -0.0906101 +vn 0.0719324 -0.9932844 -0.0906196 +vn -0.0590392 -0.9936178 -0.0961149 +vn -0.2235339 -0.8827547 -0.4132515 +vn -0.2263107 -0.8944055 -0.3857748 +vn -0.2575121 -0.8612569 -0.4380914 +vn 0.2263387 -0.8943553 -0.3858747 +vn 0.2575121 -0.8612569 -0.4380914 +vn 0.2235011 -0.8827914 -0.4131908 +vn 0.0570709 -0.9979095 -0.0303234 +vn -0.0697281 -0.9972480 -0.0251875 +vn 0.0697281 -0.9972480 -0.0251875 +vn -0.0570709 -0.9979095 -0.0303234 +vn 0.1593112 -0.9867780 -0.0298183 +vn 0.1505444 -0.9884391 -0.0180128 +vn 0.1438112 -0.9887018 -0.0422749 +vn -0.1593112 -0.9867780 -0.0298183 +vn -0.1437724 -0.9887074 -0.0422751 +vn -0.1505443 -0.9884385 -0.0180475 +vn -0.0571174 -0.9978094 0.0333763 +vn 0.0699757 -0.9968057 0.0384952 +vn 0.0571174 -0.9978094 0.0333763 +vn -0.0699757 -0.9968057 0.0384952 +vn 0.1594473 -0.9866477 0.0332104 +vn 0.1515953 -0.9874102 0.0451660 +vn 0.1429988 -0.9895011 0.0209490 +vn -0.1429988 -0.9895011 0.0209490 +vn -0.1516343 -0.9874042 0.0451658 +vn -0.1594473 -0.9866477 0.0332104 +vn 0.0646936 -0.9896431 -0.1281455 +vn 0.0727188 -0.9918315 0.1047959 +vn 0.0721005 -0.9898860 -0.1221771 +vn 0.0591884 -0.9932897 0.0993595 +vn -0.1519787 -0.9803908 -0.1254443 +vn -0.1580876 -0.9811069 -0.1115240 +vn -0.1712497 -0.9753700 -0.1390211 +vn 0.1580882 -0.9811109 -0.1114881 +vn 0.1519787 -0.9803908 -0.1254443 +vn 0.1712497 -0.9753700 -0.1390211 +vn 0.0615177 -0.9963023 -0.0599782 +vn -0.0687704 -0.9961408 -0.0545358 +vn 0.0687704 -0.9961408 -0.0545358 +vn -0.0615177 -0.9963023 -0.0599782 +vn 0.1771760 -0.9693551 0.1701747 +vn 0.1708025 -0.9677586 0.1851211 +vn 0.1567884 -0.9752496 0.1559026 +vn -0.1771760 -0.9693551 0.1701747 +vn -0.1567884 -0.9752496 0.1559026 +vn -0.1708038 -0.9677656 0.1850830 +vn 0.0606015 -0.9981533 0.0041665 +vn -0.0679425 -0.9976448 0.0094132 +vn 0.0679425 -0.9976448 0.0094132 +vn -0.0606015 -0.9981533 0.0041665 +vn -0.1427039 -0.9897505 0.0054432 +vn -0.1505448 -0.9884422 0.0178393 +vn -0.1587347 -0.9872976 -0.0068428 +vn 0.1505448 -0.9884422 0.0178393 +vn 0.1587347 -0.9872976 -0.0068428 +vn 0.1427424 -0.9897449 0.0054432 +vn 0.0835580 -0.9255338 0.3693309 +vn -0.1036526 -0.9196007 0.3789336 +vn 0.1036526 -0.9196007 0.3789336 +vn -0.0835465 -0.9255551 0.3692801 +vn -0.1456154 -0.9869109 0.0693037 +vn -0.1545651 -0.9845548 0.0822286 +vn -0.1608435 -0.9853617 0.0564957 +vn 0.1545651 -0.9845548 0.0822286 +vn 0.1456154 -0.9869109 0.0693037 +vn 0.1608435 -0.9853617 0.0564957 +vn 0.1033136 -0.8477130 0.5202971 +vn -0.1285788 -0.8361327 0.5332445 +vn 0.1285788 -0.8361327 0.5332445 +vn -0.1032975 -0.8477646 0.5202161 +vn -0.1538243 -0.9784463 0.1377711 +vn -0.1644178 -0.9746028 0.1520397 +vn -0.1686817 -0.9779022 0.1235062 +vn 0.1537657 -0.9784576 0.1377566 +vn 0.1687006 -0.9778972 0.1235200 +vn 0.1644178 -0.9746028 0.1520397 +vn 0.1336424 -0.6708108 0.7294879 +vn -0.1663480 -0.6458885 0.7450882 +vn 0.1663480 -0.6458885 0.7450882 +vn -0.1336424 -0.6708108 0.7294879 +vn -0.1686693 -0.9616837 0.2161370 +vn -0.1817243 -0.9553473 0.2329976 +vn -0.1835230 -0.9626379 0.1991171 +vn 0.1817243 -0.9553473 0.2329976 +vn 0.1835245 -0.9626456 0.1990783 +vn 0.1686693 -0.9616837 0.2161370 +vn 0.1670115 -0.2738958 0.9471474 +vn -0.2051498 -0.2287824 0.9516155 +vn 0.2051498 -0.2287824 0.9516155 +vn -0.1670115 -0.2738958 0.9471474 +vn -0.1929299 -0.9302674 0.3120588 +vn -0.2096628 -0.9192215 0.3332766 +vn -0.2079451 -0.9340737 0.2902846 +vn 0.2079451 -0.9340737 0.2902846 +vn 0.2096628 -0.9192215 0.3332766 +vn 0.1930069 -0.9302385 0.3120973 +vn 0.1658496 0.2991009 0.9396981 +vn -0.1991119 0.3380144 0.9198373 +vn 0.1991119 0.3380144 0.9198373 +vn -0.1658496 0.2991009 0.9396981 +vn -0.2314049 -0.8688951 0.4375764 +vn -0.2535691 -0.8478482 0.4656781 +vn -0.2465438 -0.8792438 0.4076106 +vn 0.2314049 -0.8688951 0.4375764 +vn 0.2465438 -0.8792438 0.4076106 +vn 0.2535691 -0.8478482 0.4656781 +vn 0.1319741 0.6830722 0.7183281 +vn -0.1575012 0.6998207 0.6967384 +vn 0.1575012 0.6998207 0.6967384 +vn -0.1319741 0.6830722 0.7183281 +vn -0.2904466 -0.7391625 0.6076837 +vn -0.3197224 -0.6954230 0.6435560 +vn -0.3060331 -0.7659925 0.5653310 +vn 0.3197376 -0.6954560 0.6435129 +vn 0.3060448 -0.7660217 0.5652852 +vn 0.2904466 -0.7391625 0.6076837 +vn 0.1021442 0.8530000 0.5118179 +vn -0.1224258 0.8592026 0.4967723 +vn 0.1224258 0.8592026 0.4967723 +vn -0.1021442 0.8530000 0.5118179 +vn -0.3668333 -0.4542235 0.8118586 +vn -0.3980689 -0.3672717 0.8406263 +vn -0.3866967 -0.5197400 0.7617979 +vn 0.3668597 -0.4542562 0.8118284 +vn 0.3866967 -0.5197400 0.7617979 +vn 0.3980689 -0.3672717 0.8406263 +vn 0.0828237 0.9279956 0.3632691 +vn -0.0997780 0.9303749 0.3527704 +vn 0.0997780 0.9303749 0.3527704 +vn -0.0828237 0.9279956 0.3632691 +vn -0.4058514 0.0474148 0.9127083 +vn -0.4200231 0.1534585 0.8944446 +vn -0.4433654 -0.0589291 0.8944017 +vn 0.4200231 0.1534585 0.8944446 +vn 0.4058514 0.0474148 0.9127083 +vn 0.4433654 -0.0589291 0.8944017 +vn 0.0707756 0.9645313 0.2543034 +vn -0.0856453 0.9653655 0.2464435 +vn 0.0856453 0.9653655 0.2464435 +vn -0.0707763 0.9645413 0.2542653 +vn -0.3538773 0.5192866 0.7778896 +vn -0.3544692 0.5814267 0.7323213 +vn -0.4041998 0.4377367 0.8031246 +vn 0.3537919 0.5193045 0.7779165 +vn 0.4041998 0.4377367 0.8031246 +vn 0.3545508 0.5814075 0.7322971 +vn 0.0633492 0.9836488 0.1685881 +vn -0.0769342 0.9837437 0.1622633 +vn 0.0769342 0.9837437 0.1622633 +vn -0.0633492 0.9836488 0.1685881 +vn -0.2786200 0.7693974 0.5748030 +vn -0.2792367 0.7961333 0.5368414 +vn -0.3222169 0.7274015 0.6058575 +vn 0.2793045 0.7961169 0.5368303 +vn 0.3222308 0.7274327 0.6058126 +vn 0.2786200 0.7693974 0.5748030 +vn 0.0590392 0.9936178 0.0961149 +vn -0.0719324 0.9932844 0.0906196 +vn 0.0719249 0.9932858 0.0906101 +vn -0.0590392 0.9936178 0.0961149 +vn -0.2235339 0.8827547 0.4132515 +vn -0.2262822 0.8943674 0.3858800 +vn -0.2575121 0.8612569 0.4380914 +vn 0.2574734 0.8613020 0.4380255 +vn 0.2263387 0.8943553 0.3858747 +vn 0.2235011 0.8827914 0.4131908 +vn 0.0570708 0.9979085 0.0303562 +vn -0.0697280 0.9972472 0.0252205 +vn 0.0697280 0.9972472 0.0252205 +vn -0.0570708 0.9979085 0.0303562 +vn -0.1879741 0.9371744 0.2938876 +vn -0.1922996 0.9424691 0.2734463 +vn -0.2149803 0.9250604 0.3131242 +vn 0.1879741 0.9371744 0.2938876 +vn 0.2149288 0.9250711 0.3131279 +vn 0.1922996 0.9424691 0.2734463 +vn 0.0571173 0.9978083 -0.0334092 +vn -0.0699827 0.9968037 -0.0385322 +vn 0.0699827 0.9968037 -0.0385322 +vn -0.0571173 0.9978083 -0.0334092 +vn -0.1655338 0.9653684 0.2016490 +vn -0.1708578 0.9677072 0.1853385 +vn -0.1879055 0.9578469 0.2173036 +vn 0.1708578 0.9677072 0.1853385 +vn 0.1879055 0.9578469 0.2173036 +vn 0.1655782 0.9653611 0.2016475 +vn 0.0591884 0.9932897 -0.0993595 +vn -0.0727188 0.9918315 -0.1047959 +vn 0.0727188 0.9918315 -0.1047959 +vn -0.0591884 0.9932897 -0.0993595 +vn -0.1519378 0.9803971 0.1254451 +vn -0.1580470 0.9811133 0.1115248 +vn -0.1712691 0.9753644 0.1390368 +vn 0.1519371 0.9803926 0.1254813 +vn 0.1712497 0.9753700 0.1390211 +vn 0.1581050 0.9811027 0.1115363 +vn 0.0636266 0.9829817 -0.1723330 +vn -0.0783966 0.9808143 -0.1784863 +vn 0.0783971 0.9808208 -0.1784503 +vn -0.0636266 0.9829817 -0.1723330 +vn -0.1447705 0.9877557 0.0581401 +vn -0.1516490 0.9873921 0.0453799 +vn -0.1620435 0.9842520 0.0706386 +vn 0.1516490 0.9873921 0.0453799 +vn 0.1447705 0.9877557 0.0581401 +vn 0.1620435 0.9842520 0.0706386 +vn 0.0712321 0.9632852 -0.2588582 +vn -0.0880533 0.9598611 -0.2662955 +vn 0.0880533 0.9598611 -0.2662955 +vn -0.0712321 0.9632852 -0.2588582 +vn -0.1427424 0.9897449 -0.0054432 +vn -0.1505448 0.9884422 -0.0178393 +vn -0.1587347 0.9872976 0.0068428 +vn 0.1427424 0.9897449 -0.0054432 +vn 0.1587347 0.9872973 0.0068777 +vn 0.1505448 0.9884422 -0.0178393 +vn 0.0835580 0.9255338 -0.3693309 +vn -0.1036526 0.9196007 -0.3789336 +vn 0.1036526 0.9196007 -0.3789336 +vn -0.0835580 0.9255338 -0.3693309 +vn -0.1456154 0.9869109 -0.0693037 +vn -0.1545651 0.9845548 -0.0822286 +vn -0.1608435 0.9853617 -0.0564957 +vn 0.1545651 0.9845548 -0.0822286 +vn 0.1608435 0.9853617 -0.0564957 +vn 0.1456154 0.9869109 -0.0693037 +vn 0.1033136 0.8477130 -0.5202971 +vn -0.1285788 0.8361327 -0.5332445 +vn 0.1285788 0.8361327 -0.5332445 +vn -0.1033136 0.8477130 -0.5202971 +vn -0.1538243 0.9784463 -0.1377711 +vn -0.1644178 0.9746028 -0.1520397 +vn -0.1687006 0.9778972 -0.1235200 +vn 0.1687006 0.9778972 -0.1235200 +vn 0.1644600 0.9745959 -0.1520386 +vn 0.1538243 0.9784463 -0.1377711 +vn 0.1336424 0.6708108 -0.7294879 +vn -0.1663317 0.6460678 -0.7449363 +vn 0.1663317 0.6460678 -0.7449363 +vn -0.1336424 0.6708108 -0.7294879 +vn -0.1687145 0.9616761 -0.2161353 +vn -0.1817036 0.9553679 -0.2329292 +vn -0.1835230 0.9626379 -0.1991171 +vn 0.1687145 0.9616761 -0.2161353 +vn 0.1835230 0.9626379 -0.1991171 +vn 0.1817036 0.9553679 -0.2329292 +vn 0.1670115 0.2738958 -0.9471474 +vn -0.2051639 0.2284986 -0.9516807 +vn 0.2051498 0.2287824 -0.9516155 +vn -0.1670115 0.2738958 -0.9471474 +vn -0.1930069 0.9302385 -0.3120973 +vn -0.2096100 0.9192322 -0.3332805 +vn -0.2079725 0.9340557 -0.2903229 +vn 0.2096628 0.9192215 -0.3332766 +vn 0.2079451 0.9340737 -0.2902846 +vn 0.1930069 0.9302385 -0.3120973 +vn 0.1658496 -0.2991009 -0.9396981 +vn -0.1990947 -0.3379851 -0.9198518 +vn 0.1990947 -0.3379851 -0.9198518 +vn -0.1658496 -0.2991009 -0.9396981 +vn -0.2313445 0.8689079 -0.4375828 +vn -0.2535691 0.8478482 -0.4656781 +vn -0.2465438 0.8792438 -0.4076106 +vn 0.2313445 0.8689079 -0.4375828 +vn 0.2465438 0.8792438 -0.4076106 +vn 0.2535691 0.8478482 -0.4656781 +vn 0.9508644 0.3094495 0.0098940 +vn 0.9539483 0.2985226 0.0294418 +vn 0.9841274 0.1517090 0.0920743 +vn 0.9904852 0.0939833 0.1005299 +vn 0.9904601 -0.0942502 0.1005273 +vn 0.9840874 -0.1519704 0.0920706 +vn 0.9759599 -0.2027227 0.0800363 +vn 0.9539507 -0.2985234 0.0293578 +vn 0.9508644 -0.3094495 0.0098940 +vn 0.9597160 -0.2768441 -0.0479841 +vn 0.9674280 -0.2446125 -0.0651754 +vn 0.9760124 -0.2024683 -0.0800406 +vn 0.9939698 -0.0318884 -0.1049154 +vn 0.9939698 0.0318884 -0.1049154 +vn 0.9759599 0.2027227 -0.0800363 +vn 0.9674333 0.2446139 -0.0650905 +vn 0.9597160 0.2768441 -0.0479841 +vn 0.9539507 0.2985234 -0.0293578 +vn 0.9508644 0.3094495 -0.0098940 +vn 0.9904601 0.0942502 -0.1005273 +vn 0.9840874 0.1519704 -0.0920706 +vn 0.9841274 -0.1517090 -0.0920743 +vn 0.9904852 -0.0939833 -0.1005299 +vn 0.9508644 -0.3094495 -0.0098940 +vn 0.9539483 -0.2985226 -0.0294418 +vn 0.9674333 -0.2446139 0.0650905 +vn 0.9597160 -0.2768441 0.0479841 +vn 0.9939698 0.0318884 0.1049154 +vn 0.9939698 -0.0318884 0.1049154 +vn 0.9597160 0.2768441 0.0479841 +vn 0.9674280 0.2446125 0.0651754 +vn 0.9760124 0.2024683 0.0800406 + +o body_Cube +usemtl body +s off +f 3/1/1 5/2/1 4/3/1 2/4/1 +f 3/1/2 2/4/2 77/5/2 1/6/2 +f 7/7/3 6/8/3 4/3/3 5/2/3 +f 2/9/4 4/10/4 71/11/4 75/12/4 +f 7/7/5 74/13/5 73/14/5 70/15/5 6/8/5 +f 6/16/6 70/17/6 69/18/6 68/19/6 +f 111/20/7 134/21/7 11/22/7 10/23/7 +f 12/24/8 11/22/8 134/21/8 114/25/8 +f 114/25/9 126/26/9 21/27/9 12/24/9 +f 12/24/10 21/27/10 20/28/10 13/29/10 +f 20/28/11 19/30/11 18/31/11 17/32/11 120/33/11 119/34/11 16/35/11 15/36/11 14/37/11 13/29/11 +f 127/38/12 22/39/12 16/35/12 119/34/12 +f 15/36/13 16/35/13 22/39/13 23/40/13 +f 14/37/14 15/36/14 23/40/14 24/41/14 +f 13/29/15 14/37/15 24/41/15 25/42/15 +f 27/43/16 25/42/16 36/44/16 37/45/16 +f 27/43/17 37/45/17 41/46/17 40/47/17 39/48/17 38/49/17 43/50/17 29/51/17 26/52/17 51/53/17 +f 8/54/18 26/52/18 29/51/18 28/55/18 11/22/18 +f 10/23/19 9/56/19 8/54/19 11/22/19 +f 12/24/20 33/57/20 32/58/20 31/59/20 30/60/20 42/61/20 28/55/20 11/22/20 +f 13/29/21 25/42/21 36/44/21 35/62/21 34/63/21 33/57/21 12/24/21 +f 35/62/22 37/45/22 41/46/22 34/63/22 +f 32/58/23 40/47/23 39/48/23 31/59/23 +f 31/59/24 39/48/24 38/49/24 30/60/24 +f 29/51/25 43/50/25 42/61/25 28/55/25 +f 8/54/26 9/56/26 45/64/26 44/65/26 87/66/26 +f 106/67/27 108/68/27 9/56/27 8/54/27 +f 75/12/28 78/69/28 77/5/28 2/4/28 +f 51/53/29 26/52/29 47/70/29 52/71/29 +f 237/72/30 241/73/30 243/74/30 246/75/30 +f 67/76/31 66/77/31 52/71/31 47/70/31 68/78/31 69/79/31 72/80/31 53/81/31 +f 62/82/32 55/83/32 169/84/32 172/85/32 +f 61/86/33 60/87/33 46/88/33 54/89/33 +f 8/54/34 87/66/34 44/65/34 78/69/34 75/90/34 71/91/34 68/78/34 47/70/34 26/52/34 +f 65/92/35 64/93/35 63/94/35 88/95/35 89/96/35 90/97/35 91/98/35 92/99/35 +f 4/10/36 6/16/36 68/100/36 71/11/36 +f 65/92/37 92/99/37 66/77/37 67/76/37 +f 82/101/38 59/102/38 58/103/38 81/104/38 +f 80/105/39 81/104/39 58/103/39 57/106/39 +f 171/107/40 59/102/40 82/101/40 196/108/40 +f 85/109/41 80/105/41 57/106/41 83/110/41 +f 92/99/42 91/98/42 90/97/42 89/96/42 88/95/42 56/111/42 25/42/42 27/43/42 51/53/42 52/71/42 66/77/42 +f 55/83/43 62/82/43 61/86/43 54/89/43 +f 46/88/44 60/87/44 84/112/44 88/95/44 56/111/44 +f 85/109/45 84/112/45 60/87/45 80/105/45 +f 60/87/46 61/86/46 81/104/46 80/105/46 +f 61/86/47 62/82/47 82/101/47 81/104/47 +f 172/85/48 196/108/48 82/101/48 62/82/48 +f 79/113/30 76/114/30 1/6/30 77/5/30 94/115/30 +f 48/116/49 93/117/49 50/118/49 49/119/49 +f 50/118/50 79/113/50 94/115/50 93/117/50 +f 98/120/51 94/115/51 93/121/51 48/116/51 96/122/51 +f 77/5/52 78/69/52 95/123/52 97/124/52 +f 151/125/30 44/65/30 95/123/30 215/126/30 +f 215/126/53 95/123/53 97/124/53 239/127/53 218/128/53 +f 94/115/54 77/5/54 97/124/54 98/120/54 +f 239/127/55 97/124/55 98/120/55 240/129/55 +f 101/130/56 100/131/56 102/132/56 103/133/56 +f 101/130/57 99/134/57 193/135/57 100/131/57 +f 105/136/58 103/133/58 102/132/58 104/137/58 +f 100/138/4 191/139/4 187/140/4 102/141/4 +f 105/136/59 104/137/59 186/142/59 189/143/59 190/144/59 +f 104/145/60 184/146/60 185/147/60 186/148/60 +f 111/20/61 110/149/61 112/150/61 134/21/61 +f 113/151/62 114/25/62 134/21/62 112/150/62 +f 114/25/9 113/151/9 125/152/9 126/26/9 +f 113/151/63 115/153/63 124/154/63 125/152/63 +f 124/154/11 115/153/11 116/155/11 117/156/11 118/157/11 119/34/11 120/33/11 121/158/11 122/159/11 123/160/11 +f 127/38/64 119/34/64 118/157/64 128/161/64 +f 117/156/65 129/162/65 128/161/65 118/157/65 +f 116/155/66 130/163/66 129/162/66 117/156/66 +f 115/153/67 131/164/67 130/163/67 116/155/67 +f 133/165/68 144/166/68 143/167/68 131/164/68 +f 133/165/69 163/168/69 132/169/69 136/170/69 150/171/69 145/172/69 146/173/69 147/174/69 148/175/69 144/166/69 +f 107/176/70 112/150/70 135/177/70 136/170/70 132/169/70 +f 110/149/71 112/150/71 107/176/71 109/178/71 +f 113/151/72 112/150/72 135/177/72 149/179/72 137/180/72 138/181/72 139/182/72 140/183/72 +f 115/153/73 113/151/73 140/183/73 141/184/73 142/185/73 143/167/73 131/164/73 +f 142/185/74 141/184/74 148/175/74 144/166/74 +f 139/182/75 138/181/75 146/173/75 147/174/75 +f 138/181/76 137/180/76 145/172/76 146/173/76 +f 136/170/77 135/177/77 149/179/77 150/171/77 +f 107/176/78 207/186/78 152/187/78 154/188/78 109/178/78 +f 106/67/79 107/176/79 109/178/79 108/68/79 +f 191/139/28 100/131/28 193/135/28 194/189/28 +f 163/168/80 164/190/80 156/191/80 132/169/80 +f 236/192/81 159/193/81 157/194/81 235/195/81 +f 183/196/82 165/197/82 188/198/82 185/199/82 184/200/82 156/191/82 164/190/82 182/201/82 +f 178/202/83 172/85/83 169/84/83 168/203/83 +f 177/204/84 167/205/84 155/206/84 176/207/84 +f 107/176/85 132/169/85 156/191/85 184/200/85 187/208/85 191/209/85 194/189/85 152/187/85 207/186/85 +f 181/210/86 212/211/86 211/212/86 210/213/86 209/214/86 208/215/86 179/216/86 180/217/86 +f 102/141/36 187/140/36 184/218/36 104/145/36 +f 181/210/87 183/196/87 182/201/87 212/211/87 +f 199/219/88 198/220/88 174/221/88 175/222/88 +f 197/223/89 173/224/89 174/221/89 198/220/89 +f 171/107/90 196/108/90 199/219/90 175/222/90 +f 202/225/91 200/226/91 173/224/91 197/223/91 +f 108/68/92 206/227/92 205/228/92 106/67/92 +f 87/66/93 44/65/93 95/123/93 215/126/93 216/229/93 152/187/93 207/186/93 205/228/93 +f 212/211/94 182/201/94 164/190/94 163/168/94 133/165/94 131/164/94 170/230/94 208/215/94 209/214/94 210/213/94 211/212/94 +f 168/203/95 167/205/95 177/204/95 178/202/95 +f 155/206/96 170/230/96 208/215/96 201/231/96 176/207/96 +f 202/225/97 197/223/97 176/207/97 201/231/97 +f 176/207/98 197/223/98 198/220/98 177/204/98 +f 177/204/99 198/220/99 199/219/99 178/202/99 +f 172/85/100 178/202/100 199/219/100 196/108/100 +f 195/232/92 214/233/92 193/135/92 99/134/92 192/234/92 +f 157/194/101 159/193/101 161/235/101 213/236/101 +f 161/235/102 213/236/102 214/233/102 195/232/102 +f 221/237/103 217/238/103 157/194/103 213/239/103 214/233/103 +f 233/240/104 232/241/104 221/237/104 219/242/104 +f 193/135/105 219/242/105 216/229/105 194/189/105 +f 151/125/30 215/126/30 216/229/30 152/187/30 +f 215/126/106 218/128/106 233/240/106 219/242/106 216/229/106 +f 214/233/107 221/237/107 219/242/107 193/135/107 +f 69/18/108 70/17/108 73/14/108 228/243/108 166/244/108 229/245/108 189/143/108 186/142/108 185/147/108 188/198/108 165/197/108 222/246/108 53/81/108 72/80/108 +f 53/81/109 222/246/109 165/197/109 183/196/109 225/247/109 223/248/109 224/249/109 67/76/109 +f 174/221/110 173/224/110 227/250/110 225/247/110 223/248/110 224/249/110 226/251/110 57/106/110 58/103/110 59/102/110 171/107/110 175/222/110 +f 83/110/111 57/106/111 226/251/111 +f 200/226/112 227/250/112 173/224/112 +f 160/252/113 231/253/113 161/235/113 159/193/113 236/192/113 158/254/113 +f 230/255/114 160/252/114 158/254/114 241/73/114 49/119/114 50/118/114 +f 231/253/115 229/245/115 166/244/115 162/256/115 160/252/115 +f 160/252/116 162/256/116 166/244/116 228/243/116 230/255/116 +f 157/194/117 217/238/117 234/257/117 235/195/117 +f 217/238/118 221/237/118 232/241/118 234/257/118 +f 218/128/119 220/258/119 232/241/119 233/240/119 +f 236/192/30 235/195/30 244/259/30 245/260/30 +f 96/122/120 238/261/120 240/129/120 98/120/120 +f 218/128/121 239/127/121 240/129/121 220/258/121 +f 48/116/30 237/72/30 238/261/30 96/122/30 +f 48/116/122 49/119/122 241/73/122 237/72/122 +f 246/75/30 243/74/30 248/262/30 251/263/30 +f 243/74/30 242/264/30 247/265/30 248/262/30 +f 158/254/30 236/192/30 245/260/30 242/264/30 +f 241/73/30 158/254/30 242/264/30 243/74/30 +f 247/265/123 250/266/123 256/267/123 252/268/123 +f 245/260/30 244/259/30 249/269/30 250/266/30 +f 242/264/30 245/260/30 250/266/30 247/265/30 +f 257/270/124 254/271/124 252/268/124 253/272/124 +f 252/268/125 256/267/125 255/273/125 253/272/125 +f 248/262/123 247/265/123 252/268/123 254/271/123 +f 251/263/30 248/262/30 254/271/30 257/270/30 +f 250/266/92 249/269/92 255/273/92 256/267/92 +usemtl wheel +f 9/56/126 108/68/126 206/227/126 153/274/126 45/64/126 +f 111/20/127 10/23/127 86/275/127 204/276/127 +f 9/56/128 10/23/128 86/275/128 45/64/128 +f 45/64/129 153/274/129 204/276/129 86/275/129 +f 30/60/130 38/49/130 43/50/130 42/61/130 +f 32/58/131 33/57/131 34/63/131 41/46/131 40/47/131 +f 36/44/132 37/45/132 35/62/132 +f 120/33/133 17/32/133 18/31/133 19/30/133 20/28/133 21/27/133 126/26/133 +f 9/56/134 10/23/134 111/20/134 108/68/134 +f 109/178/135 154/188/135 153/274/135 206/227/135 108/68/135 +f 111/20/136 204/276/136 203/277/136 110/149/136 +f 109/178/137 154/188/137 203/277/137 110/149/137 +f 154/188/138 203/277/138 204/276/138 153/274/138 +f 137/180/139 149/179/139 150/171/139 145/172/139 +f 139/182/140 147/174/140 148/175/140 141/184/140 140/183/140 +f 143/167/141 142/185/141 144/166/141 +f 120/33/142 126/26/142 125/152/142 124/154/142 123/160/142 122/159/142 121/158/142 +f 109/178/143 108/68/143 111/20/143 110/149/143 +usemtl light +f 25/42/144 24/41/144 46/88/144 56/111/144 +f 24/41/145 23/40/145 54/89/145 46/88/145 +f 23/40/146 22/39/146 55/83/146 54/89/146 +f 22/39/147 127/38/147 169/84/147 55/83/147 +f 131/164/148 170/230/148 155/206/148 130/163/148 +f 130/163/149 155/206/149 167/205/149 129/162/149 +f 129/162/150 167/205/150 168/203/150 128/161/150 +f 128/161/151 168/203/151 169/84/151 127/38/151 +usemtl stop_light +f 106/67/152 8/54/152 87/66/152 205/228/152 +f 106/67/152 205/228/152 207/186/152 107/176/152 +o bamper_r_Cube.010 +usemtl Material.002 +s off +f 260/278/153 258/279/153 259/280/153 261/281/153 +f 313/282/154 259/283/154 258/279/154 312/284/154 +f 310/285/155 264/286/155 262/287/155 312/284/155 +f 263/288/156 265/289/156 269/290/156 268/291/156 +f 267/292/153 266/293/153 270/294/153 271/295/153 +f 261/281/153 259/280/153 266/293/153 267/292/153 +f 313/282/157 263/288/157 268/291/157 315/296/157 +f 311/297/158 261/281/158 267/292/158 314/298/158 +f 317/299/159 272/300/159 277/301/159 319/302/159 +f 315/296/160 268/291/160 272/300/160 317/299/160 +f 314/298/161 267/292/161 271/295/161 316/303/161 +f 268/291/162 269/290/162 273/304/162 272/300/162 +f 277/301/163 276/305/163 280/306/163 281/307/163 +f 316/303/164 271/295/164 275/308/164 318/309/164 +f 272/300/165 273/304/165 276/305/165 277/301/165 +f 271/295/166 270/294/166 274/310/166 275/308/166 +f 290/311/167 286/312/167 294/313/167 296/314/167 +f 275/308/168 274/310/168 278/315/168 279/316/168 +f 319/302/169 277/301/169 281/307/169 321/317/169 +f 318/309/170 275/308/170 279/316/170 320/318/170 +f 322/319/171 283/320/171 282/321/171 323/322/171 +f 320/318/172 279/316/172 283/323/172 322/324/172 +f 281/307/173 280/306/173 284/325/173 285/326/173 +f 279/316/153 278/315/153 282/327/153 283/323/153 +f 324/328/174 286/312/174 288/329/174 325/330/174 +f 290/311/175 292/331/175 288/329/175 286/312/175 +f 293/332/153 291/333/153 287/334/153 289/335/153 +f 326/336/176 293/337/176 289/338/176 325/339/176 +f 323/322/176 282/321/176 293/337/176 326/336/176 +f 282/327/153 278/315/153 291/333/153 293/332/153 +f 281/307/177 285/326/177 292/331/177 290/311/177 +f 321/317/178 281/307/178 290/311/178 327/340/178 +f 295/341/153 297/342/153 301/343/153 299/344/153 +f 327/340/179 290/311/179 296/314/179 329/345/179 +f 324/328/180 287/346/180 295/347/180 328/348/180 +f 287/334/153 291/333/153 297/342/153 295/341/153 +f 299/344/153 301/343/153 305/349/153 303/350/153 +f 328/348/181 295/347/181 299/351/181 330/352/181 +f 329/345/182 296/314/182 300/353/182 331/354/182 +f 296/314/183 294/313/183 298/355/183 300/353/183 +f 333/356/184 304/357/184 308/358/184 335/359/184 +f 330/352/185 299/351/185 303/360/185 332/361/185 +f 331/354/186 300/353/186 304/357/186 333/356/186 +f 300/353/187 298/355/187 302/362/187 304/357/187 +f 304/357/188 302/362/188 306/363/188 308/358/188 +f 303/350/189 305/349/189 309/364/189 307/365/189 +f 332/361/190 303/360/190 307/366/190 334/367/190 +f 334/368/191 335/359/191 308/358/191 306/363/191 +f 262/287/192 264/286/192 265/289/192 263/288/192 +f 310/285/193 260/278/193 261/281/193 311/297/193 +f 264/286/193 310/285/193 311/297/193 265/289/193 +f 307/365/194 309/369/194 335/359/194 334/368/194 +f 302/362/195 332/361/195 334/367/195 306/363/195 +f 301/370/186 331/354/186 333/356/186 305/371/186 +f 298/355/185 330/352/185 332/361/185 302/362/185 +f 305/371/196 333/356/196 335/359/196 309/369/196 +f 297/372/182 329/345/182 331/354/182 301/370/182 +f 294/313/181 328/348/181 330/352/181 298/355/181 +f 286/312/180 324/328/180 328/348/180 294/313/180 +f 291/373/179 327/340/179 329/345/179 297/372/179 +f 278/374/178 321/317/178 327/340/178 291/373/178 +f 285/326/176 323/322/176 326/336/176 292/331/176 +f 292/331/176 326/336/176 325/339/176 288/329/176 +f 287/346/174 324/328/174 325/330/174 289/375/174 +f 280/306/172 320/318/172 322/324/172 284/325/172 +f 284/325/171 322/319/171 323/322/171 285/326/171 +f 276/305/170 318/309/170 320/318/170 280/306/170 +f 274/376/169 319/302/169 321/317/169 278/374/169 +f 273/304/164 316/303/164 318/309/164 276/305/164 +f 269/290/161 314/298/161 316/303/161 273/304/161 +f 266/377/160 315/296/160 317/299/160 270/378/160 +f 270/378/159 317/299/159 319/302/159 274/376/159 +f 265/289/158 311/297/158 314/298/158 269/290/158 +f 259/283/197 313/282/197 315/296/197 266/377/197 +f 260/278/155 310/285/155 312/284/155 258/279/155 +f 263/288/198 313/282/198 312/284/198 262/287/198 +o bamper_l_Cube.001 +usemtl body +s off +f 336/379/199 337/380/199 345/381/199 346/382/199 +f 339/383/200 343/384/200 350/385/200 347/386/200 +f 340/387/201 339/383/201 347/386/201 348/388/201 +f 369/389/202 349/390/202 344/391/202 362/392/202 +f 346/382/203 345/381/203 348/388/203 347/386/203 +f 344/391/204 349/390/204 348/388/204 345/381/204 +f 346/382/205 347/386/205 350/385/205 351/393/205 +f 341/394/206 340/387/206 348/388/206 349/390/206 +f 342/395/207 351/393/207 350/385/207 343/384/207 +f 356/396/208 341/394/208 349/390/208 369/389/208 +f 338/397/209 352/398/209 362/392/209 344/391/209 +f 337/380/210 338/397/210 344/391/210 345/381/210 +f 353/399/211 365/400/211 364/401/211 354/402/211 +f 357/403/212 366/404/212 370/405/212 361/406/212 +f 358/407/213 367/408/213 366/404/213 357/403/213 +f 369/389/214 362/392/214 363/409/214 368/410/214 +f 365/400/215 366/404/215 367/408/215 364/401/215 +f 363/409/216 364/401/216 367/408/216 368/410/216 +f 365/400/217 371/411/217 370/405/217 366/404/217 +f 359/412/218 368/410/218 367/408/218 358/407/218 +f 360/413/219 361/406/219 370/405/219 371/411/219 +f 356/396/220 369/389/220 368/410/220 359/412/220 +f 355/414/221 363/409/221 362/392/221 352/398/221 +f 352/398/222 362/392/222 369/389/222 356/396/222 +f 354/402/223 364/401/223 363/409/223 355/414/223 +usemtl riting +f 342/395/224 336/379/224 346/382/224 351/393/224 +f 360/413/225 371/411/225 365/400/225 353/399/225 +o bamper_d_Cube.005 +usemtl Material.002 +s off +f 374/415/226 375/416/226 373/417/226 372/418/226 +f 427/419/227 426/420/227 372/418/227 373/421/227 +f 424/422/228 426/420/228 376/423/228 378/424/228 +f 377/425/229 382/426/229 383/427/229 379/428/229 +f 381/429/226 385/430/226 384/431/226 380/432/226 +f 375/416/226 381/429/226 380/432/226 373/417/226 +f 427/419/230 429/433/230 382/426/230 377/425/230 +f 425/434/231 428/435/231 381/429/231 375/416/231 +f 431/436/232 433/437/232 391/438/232 386/439/232 +f 429/433/233 431/436/233 386/439/233 382/426/233 +f 428/435/234 430/440/234 385/430/234 381/429/234 +f 382/426/235 386/439/235 387/441/235 383/427/235 +f 391/438/236 395/442/236 394/443/236 390/444/236 +f 430/440/237 432/445/237 389/446/237 385/430/237 +f 386/439/238 391/438/238 390/444/238 387/441/238 +f 385/430/239 389/446/239 388/447/239 384/431/239 +f 404/448/240 410/449/240 408/450/240 400/451/240 +f 389/446/241 393/452/241 392/453/241 388/447/241 +f 433/437/242 435/454/242 395/442/242 391/438/242 +f 432/445/243 434/455/243 393/452/243 389/446/243 +f 436/456/244 437/457/244 396/458/244 397/459/244 +f 434/455/245 436/460/245 397/461/245 393/452/245 +f 395/442/246 399/462/246 398/463/246 394/443/246 +f 393/452/226 397/461/226 396/464/226 392/453/226 +f 438/465/247 439/466/247 402/467/247 400/451/247 +f 404/448/248 400/451/248 402/467/248 406/468/248 +f 407/469/226 403/470/226 401/471/226 405/472/226 +f 440/473/249 439/474/249 403/475/249 407/476/249 +f 437/457/249 440/473/249 407/476/249 396/458/249 +f 396/464/226 407/469/226 405/472/226 392/453/226 +f 395/442/250 404/448/250 406/468/250 399/462/250 +f 435/454/251 441/477/251 404/448/251 395/442/251 +f 409/478/226 413/479/226 415/480/226 411/481/226 +f 441/477/252 443/482/252 410/449/252 404/448/252 +f 438/465/253 442/483/253 409/484/253 401/485/253 +f 401/471/226 409/478/226 411/481/226 405/472/226 +f 413/479/226 417/486/226 419/487/226 415/480/226 +f 442/483/254 444/488/254 413/489/254 409/484/254 +f 443/482/255 445/490/255 414/491/255 410/449/255 +f 410/449/256 414/491/256 412/492/256 408/450/256 +f 447/493/257 449/494/257 422/495/257 418/496/257 +f 444/488/258 446/497/258 417/498/258 413/489/258 +f 445/490/259 447/493/259 418/496/259 414/491/259 +f 414/491/260 418/496/260 416/499/260 412/492/260 +f 418/496/261 422/495/261 420/500/261 416/499/261 +f 417/486/262 421/501/262 423/502/262 419/487/262 +f 446/497/263 448/503/263 421/504/263 417/498/263 +f 448/505/264 420/500/264 422/495/264 449/494/264 +f 376/423/265 377/425/265 379/428/265 378/424/265 +f 424/422/266 425/434/266 375/416/266 374/415/266 +f 378/424/266 379/428/266 425/434/266 424/422/266 +f 421/501/267 448/505/267 449/494/267 423/506/267 +f 416/499/268 420/500/268 448/503/268 446/497/268 +f 415/507/259 419/508/259 447/493/259 445/490/259 +f 412/492/258 416/499/258 446/497/258 444/488/258 +f 419/508/269 423/506/269 449/494/269 447/493/269 +f 411/509/255 415/507/255 445/490/255 443/482/255 +f 408/450/254 412/492/254 444/488/254 442/483/254 +f 400/451/253 408/450/253 442/483/253 438/465/253 +f 405/510/252 411/509/252 443/482/252 441/477/252 +f 392/511/251 405/510/251 441/477/251 435/454/251 +f 399/462/249 406/468/249 440/473/249 437/457/249 +f 406/468/249 402/467/249 439/474/249 440/473/249 +f 401/485/247 403/512/247 439/466/247 438/465/247 +f 394/443/245 398/463/245 436/460/245 434/455/245 +f 398/463/244 399/462/244 437/457/244 436/456/244 +f 390/444/243 394/443/243 434/455/243 432/445/243 +f 388/513/242 392/511/242 435/454/242 433/437/242 +f 387/441/237 390/444/237 432/445/237 430/440/237 +f 383/427/234 387/441/234 430/440/234 428/435/234 +f 380/514/233 384/515/233 431/436/233 429/433/233 +f 384/515/232 388/513/232 433/437/232 431/436/232 +f 379/428/231 383/427/231 428/435/231 425/434/231 +f 373/421/270 380/514/270 429/433/270 427/419/270 +f 374/415/228 372/418/228 426/420/228 424/422/228 +f 377/425/271 376/423/271 426/420/271 427/419/271 +o WBL_b1_Cylinder.020 +usemtl besi_roda +s off +f 450/516/272 455/517/272 460/518/272 465/519/272 470/520/272 475/521/272 481/522/272 488/523/272 495/524/272 502/525/272 509/526/272 516/527/272 523/528/272 530/529/272 537/530/272 544/531/272 551/532/272 558/533/272 565/534/272 572/535/272 579/536/272 586/537/272 593/538/272 600/539/272 607/540/272 614/541/272 621/542/272 628/543/272 635/544/272 642/545/272 649/546/272 656/547/272 +f 1769/548/273 1770/549/273 1768/550/273 1767/551/273 +f 1765/552/274 1766/553/274 1770/549/274 1769/548/274 +f 1777/554/275 1778/555/275 1776/556/275 1775/557/275 +f 1773/558/276 1774/559/276 1778/555/276 1777/554/276 +f 1785/560/277 1786/561/277 1784/562/277 1783/563/277 +f 1781/564/278 1782/565/278 1786/561/278 1785/560/278 +f 1793/566/279 1794/567/279 1792/568/279 1791/569/279 +f 1789/570/280 1790/571/280 1794/567/280 1793/566/280 +f 1801/572/281 1802/573/281 1800/574/281 1799/575/281 +f 1797/576/282 1798/577/282 1802/573/282 1801/572/282 +f 1809/578/283 1810/579/283 1808/580/283 1807/581/283 +f 1805/582/284 1806/583/284 1810/579/284 1809/578/284 +f 1817/584/285 1818/585/285 1816/586/285 1815/587/285 +f 1813/588/286 1814/589/286 1818/585/286 1817/584/286 +f 1848/590/287 1763/591/287 1849/592/287 +f 1763/591/287 1848/590/287 1851/593/287 +f 1764/594/287 1839/595/287 1860/596/287 +f 1764/594/287 1860/596/287 1841/597/287 +f 1890/598/288 1864/599/288 1771/600/288 1766/601/288 1765/602/288 1772/603/288 1870/604/288 1893/605/288 +f 1772/606/289 1765/607/289 1769/608/289 1896/609/289 1895/610/289 1872/611/289 +f 1899/612/290 1770/613/290 1766/614/290 1771/615/290 1866/616/290 1898/617/290 +f 1919/618/291 1904/619/291 1779/620/291 1774/621/291 1773/622/291 1780/623/291 1909/624/291 1923/625/291 +f 1780/626/292 1773/627/292 1777/628/292 1931/629/292 1925/630/292 1906/631/292 +f 1933/632/293 1778/633/293 1774/634/293 1779/635/293 1905/636/293 1932/637/293 +f 1955/638/294 1937/639/294 1787/640/294 1782/641/294 1781/642/294 1788/643/294 1943/644/294 1956/645/294 1957/646/294 +f 1788/647/295 1781/648/295 1785/649/295 1959/650/295 1958/651/295 1941/652/295 +f 1963/653/296 1786/654/296 1782/655/296 1787/656/296 1938/657/296 1962/658/296 +f 1979/659/297 1964/660/297 1795/661/297 1790/662/297 1789/663/297 1796/664/297 1969/665/297 1980/666/297 +f 1796/667/298 1789/668/298 1793/669/298 1886/670/298 1981/671/298 1970/672/298 +f 1885/673/299 1794/674/299 1790/675/299 1795/676/299 1967/677/299 1982/678/299 +f 1907/679/300 1889/680/300 1803/681/300 1798/682/300 1797/683/300 1804/684/300 1894/685/300 1908/686/300 +f 1804/687/301 1797/688/301 1801/689/301 1913/690/301 1912/691/301 1897/692/301 +f 1918/693/302 1802/694/302 1798/695/302 1803/696/302 1892/697/302 1915/698/302 +f 1934/699/303 1920/700/303 1811/701/303 1806/702/303 1805/703/303 1812/704/303 1927/705/303 1939/706/303 +f 1812/707/304 1805/708/304 1809/709/304 1942/710/304 1940/711/304 1924/712/304 +f 1945/713/305 1810/714/305 1806/715/305 1811/716/305 1922/717/305 1944/718/305 +f 1966/719/306 1952/720/306 1819/721/306 1820/722/306 1814/723/306 1813/724/306 1821/725/306 1953/726/306 1971/727/306 1972/728/306 +f 1821/729/307 1813/730/307 1817/731/307 1976/732/307 1974/733/307 1949/734/307 +f 1978/735/308 1818/736/308 1814/737/308 1820/738/308 1946/739/308 1977/740/308 +f 1822/741/309 1893/742/309 1870/743/309 1865/744/309 1863/745/309 +f 1843/746/309 1845/747/309 1868/748/309 1867/749/309 1872/750/309 1895/751/309 1977/752/309 1946/753/309 1869/754/309 +f 1966/755/309 1823/756/309 1954/757/309 1952/758/309 +f 1921/759/310 1920/760/310 1934/761/310 1824/762/310 1926/763/310 +f 1971/764/310 1953/765/310 1954/757/310 1823/756/310 +f 1948/766/310 1949/767/310 1974/768/310 1944/769/310 1922/770/310 1873/771/310 1851/772/310 1848/773/310 1849/774/310 1871/775/310 +f 1915/776/311 1892/777/311 1879/778/311 1878/779/311 1876/780/311 1875/781/311 1924/782/311 1940/783/311 +f 1825/784/311 1891/785/311 1889/786/311 1907/787/311 +f 1926/763/311 1824/762/311 1939/788/311 1927/789/311 +f 1982/790/312 1967/791/312 1882/792/312 1829/793/312 1881/794/312 1897/795/312 1912/796/312 +f 1826/797/312 1968/798/312 1965/799/312 1964/800/312 1979/801/312 +f 1894/802/312 1888/803/312 1891/785/312 1825/784/312 1908/804/312 +f 1826/797/313 1980/805/313 1969/806/313 1968/798/313 +f 1833/807/313 1832/808/313 1830/809/313 1831/810/313 1970/811/313 1981/812/313 1962/813/313 1938/814/313 +f 1955/815/313 1827/816/313 1935/817/313 1937/818/313 +f 1961/819/314 1846/820/314 1847/821/314 1850/822/314 1928/823/314 1945/824/314 1944/825/314 1974/826/314 1976/827/314 +f 1823/828/314 1972/829/314 1971/830/314 +f 1884/831/315 1885/832/315 1982/833/315 1912/834/315 1913/835/315 1902/836/315 1855/837/315 1854/838/315 1973/839/315 +f 1908/840/287 1825/841/287 1907/842/287 +f 1930/843/316 1929/844/316 1852/845/316 1853/846/316 1900/847/316 1901/848/316 1918/849/316 1915/850/316 1940/851/316 1942/852/316 +f 1939/853/287 1824/854/287 1934/855/287 +f 1957/856/317 1827/857/317 1955/858/317 +f 1975/859/318 1856/860/318 1857/861/318 1947/862/318 1950/863/318 1963/864/318 1962/865/318 1981/866/318 1886/867/318 1887/868/318 +f 1826/869/287 1979/870/287 1980/871/287 +f 1943/872/319 1936/873/319 1935/817/319 1827/816/319 1956/874/319 +f 1836/875/320 1835/876/320 1834/877/320 1941/878/320 1958/879/320 1932/880/320 1905/881/320 +f 1919/882/320 1828/883/320 1910/884/320 1903/885/320 1904/886/320 +f 1910/884/321 1828/883/321 1923/887/321 1909/888/321 +f 1863/889/321 1864/890/321 1890/891/321 1822/892/321 +f 1866/893/321 1840/894/321 1841/895/321 1860/896/321 1839/897/321 1837/898/321 1838/899/321 1906/900/321 1925/901/321 1898/902/321 +f 1956/903/322 1827/857/322 1957/856/322 +f 1959/904/322 1951/905/322 1858/906/322 1859/907/322 1911/908/322 1914/909/322 1933/910/322 1932/911/322 1958/912/322 +f 1822/913/287 1890/914/287 1893/915/287 +f 1896/916/323 1883/917/323 1874/918/323 1844/919/323 1842/920/323 1960/921/323 1978/922/323 1977/923/323 1895/924/323 +f 1828/925/287 1919/926/287 1923/927/287 +f 1931/928/324 1917/929/324 1916/930/324 1862/931/324 1861/932/324 1877/933/324 1880/934/324 1899/935/324 1898/936/324 1925/937/324 +f 1972/829/325 1823/828/325 1966/938/325 +f 2011/939/287 1842/940/287 1844/941/287 2009/942/287 +f 2018/943/287 1847/944/287 1846/945/287 2016/946/287 +f 1847/944/287 2018/943/287 2019/947/287 1850/948/287 +f 1853/949/287 1852/950/287 2020/951/287 2012/952/287 +f 2001/953/287 1854/954/287 1855/955/287 2015/956/287 +f 2022/957/287 1857/958/287 1856/959/287 2005/960/287 +f 1859/961/287 1858/962/287 1993/963/287 2023/964/287 +f 1861/965/287 1862/966/287 2025/967/287 2024/968/287 +f 2009/942/287 1844/941/287 1874/969/287 2026/970/287 +f 2027/971/287 1877/972/287 1861/965/287 2024/968/287 +f 2029/973/287 1880/974/287 1877/972/287 2027/971/287 +f 2026/970/326 1874/969/326 1883/975/326 2033/976/326 +f 2041/977/287 1911/978/287 1859/961/287 2023/964/287 +f 2045/979/287 1914/980/287 1911/978/287 2041/977/287 +f 2046/981/287 1916/982/287 1917/983/287 2047/984/287 +f 2025/967/287 1862/966/287 1916/982/287 2046/981/287 +f 1992/985/327 1947/986/327 1857/958/327 2022/957/327 +f 1991/987/327 1950/988/327 1947/986/327 1992/985/327 +f 1858/962/287 1951/989/287 1994/990/287 1993/963/287 +f 2000/991/287 1973/992/287 1854/954/287 2001/953/287 +f 2002/993/287 1884/994/287 1973/992/287 2000/991/287 +f 2004/995/328 1975/996/328 1887/997/328 2003/998/328 +f 2005/960/328 1856/959/328 1975/996/328 2004/995/328 +f 1900/999/287 1853/949/287 2012/952/287 2013/1000/287 +f 1901/1001/328 1900/999/328 2013/1000/328 2014/1002/328 +f 2015/956/327 1855/955/327 1902/1003/327 2017/1004/327 +f 1850/948/287 2019/947/287 2032/1005/287 1928/1006/287 +f 1929/1007/328 1930/1008/328 2034/1009/328 2035/1010/328 +f 2020/951/327 1852/950/327 1929/1007/327 2035/1010/327 +f 1842/940/287 2011/939/287 2048/1011/287 1960/1012/287 +f 2016/946/287 1846/945/287 1961/1013/287 2049/1014/287 +f 2048/1015/309 2011/1016/309 2009/1017/309 2026/1018/309 2033/1019/309 2040/1020/309 2052/1021/309 +f 2032/1022/310 2019/1023/310 2018/1024/310 2016/1025/310 2049/1026/310 2057/1027/310 2037/1028/310 +f 2014/1029/311 2013/1030/311 2012/1031/311 2020/1032/311 2035/1033/311 2034/1034/311 2044/1035/311 2021/1036/311 +f 2002/1037/312 2000/1038/312 2001/1039/312 2015/1040/312 2017/1041/312 2030/1042/312 2006/1043/312 +f 1991/1044/313 1992/1045/313 2022/1046/313 2005/1047/313 2004/1048/313 2003/1049/313 2008/1050/313 1995/1051/313 +f 2056/1052/329 1986/1053/329 1987/1054/329 2042/1055/329 2037/1056/329 2057/1057/329 +f 2043/1058/330 1989/1059/330 2028/1060/330 2021/1061/330 2044/1062/330 +f 1990/1063/331 1997/1064/331 1999/1065/331 +f 2010/1066/332 1984/1067/332 1996/1068/332 1995/1069/332 2008/1070/332 +f 2031/1071/333 1985/1072/333 2007/1073/333 2006/1074/333 2030/1075/333 +f 2045/1076/320 2041/1077/320 2023/1078/320 1993/1079/320 1994/1080/320 1998/1081/320 2050/1082/320 +f 2027/1083/321 2024/1084/321 2025/1085/321 2046/1086/321 2047/1087/321 2053/1088/321 2036/1089/321 2029/1090/321 +f 2050/1091/334 1998/1092/334 1997/1064/334 1990/1063/334 2051/1093/334 +f 2058/1094/335 1983/1095/335 2038/1096/335 2036/1097/335 2053/1098/335 +f 2039/1099/336 1988/1100/336 2054/1101/336 2052/1102/336 2040/1103/336 +f 1986/1053/337 2056/1052/337 2055/1104/337 +f 2060/1105/287 2059/1106/287 2065/1107/287 2064/1108/287 2063/1109/287 2062/1110/287 2061/1111/287 +f 2074/1112/287 2073/1113/287 2066/1114/287 2067/1115/287 +f 2073/1113/287 2075/1116/287 2068/1117/287 2066/1114/287 +f 2075/1116/287 2076/1118/287 2069/1119/287 2068/1117/287 +f 2076/1118/287 2077/1120/287 2070/1121/287 2069/1119/287 +f 2077/1120/287 2078/1122/287 2071/1123/287 2070/1121/287 +f 2078/1122/287 2079/1124/287 2072/1125/287 2071/1123/287 +f 2079/1124/287 2074/1112/287 2067/1115/287 2072/1125/287 +f 2059/1106/338 2060/1105/338 2073/1113/338 2074/1112/338 +f 2060/1105/339 2061/1111/339 2075/1116/339 2073/1113/339 +f 2061/1111/340 2062/1110/340 2076/1118/340 2075/1116/340 +f 2062/1110/341 2063/1109/341 2077/1120/341 2076/1118/341 +f 2063/1109/342 2064/1108/342 2078/1122/342 2077/1120/342 +f 2064/1108/343 2065/1107/343 2079/1124/343 2078/1122/343 +f 2065/1107/344 2059/1106/344 2074/1112/344 2079/1124/344 +f 2081/1126/345 1767/551/345 1768/550/345 2084/1127/345 +f 2086/1128/346 1775/557/346 1776/556/346 2088/1129/346 +f 2090/1130/347 1783/563/347 1784/562/347 2092/1131/347 +f 2094/1132/348 1791/569/348 1792/568/348 2095/1133/348 +f 2099/1134/349 1799/575/349 1800/574/349 2101/1135/349 +f 2083/1136/350 1807/581/350 1808/580/350 2082/1137/350 +f 2091/1138/351 1815/587/351 1816/586/351 2089/1139/351 +f 2038/1140/290 2098/1141/290 2084/1142/290 1768/1143/290 1770/613/290 1899/612/290 1880/1144/290 2029/1145/290 2036/1146/290 +f 2033/1147/289 1883/1148/289 1896/609/289 1769/608/289 1767/1149/289 2081/1150/289 2100/1151/289 2039/1152/289 2040/1153/289 +f 2051/1154/293 2107/1155/293 2088/1156/293 1776/1157/293 1778/633/293 1933/632/293 1914/1158/293 2045/1159/293 2050/1160/293 +f 2047/1161/292 1917/1162/292 1931/629/292 1777/628/292 1775/1163/292 2086/1164/292 2110/1165/292 2058/1166/292 2053/1167/292 +f 2092/1168/296 1784/1169/296 1786/654/296 1963/653/296 1950/1170/296 1991/1171/296 1995/1172/296 1996/1173/296 2111/1174/296 +f 1994/1175/295 1951/1176/295 1959/650/295 1785/649/295 1783/1177/295 2090/1178/295 2116/1179/295 1999/1180/295 1997/1181/295 1998/1182/295 +f 2095/1183/299 1792/1184/299 1794/674/299 1885/673/299 1884/1185/299 2002/1186/299 2006/1187/299 2007/1188/299 2117/1189/299 +f 2003/1190/298 1887/1191/298 1886/670/298 1793/669/298 1791/1192/298 2094/1193/298 2115/1194/298 2010/1195/298 2008/1196/298 +f 2101/1197/302 1800/1198/302 1802/694/302 1918/693/302 1901/1199/302 2014/1200/302 2021/1201/302 2028/1202/302 2114/1203/302 +f 2017/1204/301 1902/1205/301 1913/690/301 1801/689/301 1799/1206/301 2099/1207/301 2109/1208/301 2031/1209/301 2030/1210/301 +f 2042/1211/305 2080/1212/305 2082/1213/305 1808/1214/305 1810/714/305 1945/713/305 1928/1215/305 2032/1216/305 2037/1217/305 +f 2034/1218/304 1930/1219/304 1942/710/304 1809/709/304 1807/1220/304 2083/1221/304 2085/1222/304 2043/1223/304 2044/1224/304 +f 2054/1225/308 2087/1226/308 2089/1227/308 1816/1228/308 1818/736/308 1978/735/308 1960/1229/308 2048/1230/308 2052/1231/308 +f 2049/1232/307 1961/1233/307 1976/732/307 1817/731/307 1815/1234/307 2091/1235/307 2093/1236/307 2055/1237/307 2056/1238/307 2057/1239/307 +f 2098/1240/352 2038/1241/352 1983/1242/352 2097/1243/352 2096/1244/352 +f 2102/1245/352 1988/1246/352 2039/1247/352 2100/1248/352 +f 2087/1249/353 2054/1250/353 1988/1246/353 2102/1245/353 2103/1251/353 +f 2104/1252/353 1986/1253/353 2055/1254/353 2093/1255/353 +f 1989/1256/354 2043/1257/354 2085/1258/354 2106/1259/354 2105/1260/354 +f 2080/1261/354 2042/1262/354 1987/1263/354 1986/1253/354 2104/1252/354 2108/1264/354 +f 1985/1265/355 2031/1266/355 2109/1267/355 2112/1268/355 2113/1269/355 +f 2114/1270/355 2028/1271/355 1989/1256/355 2105/1260/355 +f 2118/1272/356 1984/1273/356 2010/1274/356 2115/1275/356 2119/1276/356 +f 2117/1277/356 2007/1278/356 1985/1265/356 2113/1269/356 +f 2111/1279/357 1996/1280/357 1984/1273/357 2118/1272/357 +f 2120/1281/357 1990/1282/357 1999/1283/357 2116/1284/357 +f 2107/1285/358 2051/1286/358 1990/1282/358 2120/1281/358 2121/1287/358 +f 2097/1288/358 1983/1289/358 2058/1290/358 2110/1291/358 +f 2103/1292/359 2102/1293/359 2100/1294/359 2081/1295/359 2084/1296/359 2098/1297/359 2096/1298/359 2067/1115/359 2066/1114/359 +f 2093/1299/360 2091/1300/360 2089/1301/360 2087/1302/360 2103/1292/360 2066/1114/360 2068/1117/360 2108/1303/360 2104/1304/360 +f 2085/1305/361 2083/1306/361 2082/1307/361 2080/1308/361 2108/1303/361 2068/1117/361 2069/1119/361 2106/1309/361 +f 2105/1310/362 2106/1309/362 2069/1119/362 2070/1121/362 2112/1311/362 2109/1312/362 2099/1313/362 2101/1314/362 2114/1315/362 +f 2113/1316/363 2112/1311/363 2070/1121/363 2071/1123/363 2119/1317/363 2115/1318/363 2094/1319/363 2095/1320/363 2117/1321/363 +f 2118/1322/364 2119/1317/364 2071/1123/364 2072/1125/364 2121/1323/364 2120/1324/364 2116/1325/364 2090/1326/364 2092/1327/364 2111/1328/364 +f 2110/1329/365 2086/1330/365 2088/1331/365 2107/1332/365 2121/1323/365 2072/1125/365 2067/1115/365 2096/1298/365 2097/1333/365 +usemtl Material.004 +f 965/1334/366 964/1335/366 969/1336/366 971/1337/366 467/1338/366 462/1339/366 +f 1380/1340/367 1377/1341/367 1388/1342/367 1393/1343/367 +f 1394/1344/368 1387/1345/368 1400/1346/368 1405/1347/368 +f 1406/1348/369 1399/1349/369 1412/1350/369 1417/1351/369 +f 1418/1352/370 1411/1353/370 1424/1354/370 1429/1355/370 +f 1430/1356/371 1423/1357/371 1436/1358/371 1441/1359/371 +f 1442/1360/372 1435/1361/372 1448/1362/372 1453/1363/372 +f 1454/1364/373 1447/1365/373 1460/1366/373 1465/1367/373 +f 1466/1368/374 1459/1369/374 1472/1370/374 1477/1371/374 +f 1478/1372/375 1471/1373/375 1484/1374/375 1489/1375/375 +f 1490/1376/376 1483/1377/376 1496/1378/376 1501/1379/376 +f 1502/1380/377 1495/1381/377 1508/1382/377 1513/1383/377 +f 1514/1384/378 1507/1385/378 1520/1386/378 1525/1387/378 +f 1526/1388/379 1519/1389/379 1532/1390/379 1537/1391/379 +f 1538/1392/380 1531/1393/380 1544/1394/380 1549/1395/380 +f 1550/1396/381 1543/1397/381 1556/1398/381 1561/1399/381 +f 1562/1400/382 1555/1401/382 1568/1402/382 1573/1403/382 +f 1574/1404/383 1567/1405/383 1580/1406/383 1585/1407/383 +f 1586/1408/384 1579/1409/384 1592/1410/384 1597/1411/384 +f 1598/1412/385 1591/1413/385 1604/1414/385 1609/1415/385 +f 1610/1416/386 1603/1417/386 1616/1418/386 1621/1419/386 +f 1622/1420/387 1615/1421/387 1628/1422/387 1633/1423/387 +f 1634/1424/388 1627/1425/388 1640/1426/388 1645/1427/388 +f 1646/1428/389 1639/1429/389 1652/1430/389 1657/1431/389 +f 1658/1432/390 1651/1433/390 1664/1434/390 1669/1435/390 +f 1670/1436/391 1663/1437/391 1676/1438/391 1681/1439/391 +f 1682/1440/392 1675/1441/392 1688/1442/392 1693/1443/392 +f 1694/1444/393 1687/1445/393 1700/1446/393 1705/1447/393 +f 1706/1448/394 1699/1449/394 1712/1450/394 1717/1451/394 +f 971/1452/395 970/1453/395 975/1454/395 977/1455/395 472/1456/395 467/1457/395 +f 1356/1458/396 1353/1459/396 1378/1460/396 1379/1461/396 +f 959/1462/397 958/1463/397 963/1464/397 965/1465/397 462/1466/397 457/1467/397 +f 1138/1468/398 1361/1469/398 1336/1470/398 951/1471/398 +f 452/1472/399 457/1473/399 456/1474/399 451/1475/399 +f 451/1476/400 456/1477/400 455/517/400 450/516/400 +f 956/1478/401 955/1479/401 1140/1480/401 1142/1481/401 662/1482/401 454/1483/401 +f 459/1484/402 454/1485/402 453/1486/402 458/1487/402 +f 458/1488/403 453/1489/403 1730/1490/403 1731/1491/403 +f 958/1463/396 1357/1492/396 1382/1493/396 963/1464/396 +f 457/1467/404 462/1466/404 461/1494/404 456/1495/404 +f 456/1477/405 461/1496/405 460/518/405 455/517/405 +f 1348/1497/396 960/1498/396 967/1499/396 1371/1500/396 +f 464/1501/406 459/1502/406 458/1503/406 463/1504/406 +f 463/1505/407 458/1488/407 1731/1491/407 1732/1506/407 +f 964/1335/367 1381/1507/367 1392/1508/367 969/1336/367 +f 462/1339/408 467/1338/408 466/1509/408 461/1510/408 +f 461/1496/409 466/1511/409 465/519/409 460/518/409 +f 1372/1512/367 966/1513/367 973/1514/367 1385/1515/367 +f 469/1516/410 464/1517/410 463/1518/410 468/1519/410 +f 468/1520/411 463/1505/411 1732/1506/411 1733/1521/411 +f 970/1453/368 1391/1522/368 1404/1523/368 975/1454/368 +f 467/1457/412 472/1456/412 471/1524/412 466/1525/412 +f 466/1511/413 471/1526/413 470/520/413 465/519/413 +f 1386/1527/368 972/1528/368 979/1529/368 1397/1530/368 +f 474/1531/414 469/1532/414 468/1533/414 473/1534/414 +f 473/1535/415 468/1520/415 1733/1521/415 1734/1536/415 +f 976/1537/369 1403/1538/369 1416/1539/369 981/1540/369 +f 472/1541/416 477/1542/416 476/1543/416 471/1544/416 +f 471/1526/417 476/1545/417 475/521/417 470/520/417 +f 1398/1546/369 978/1547/369 985/1548/369 1409/1549/369 +f 480/1550/418 474/1551/418 473/1552/418 479/1553/418 +f 479/1554/419 473/1535/419 1734/1536/419 1735/1555/419 +f 982/1556/370 1415/1557/370 1428/1558/370 987/1559/370 +f 477/1560/420 484/1561/420 483/1562/420 476/1563/420 +f 476/1545/421 483/1564/421 481/522/421 475/521/421 +f 1410/1565/370 984/1566/370 991/1567/370 1421/1568/370 +f 487/1569/422 480/1570/422 479/1571/422 486/1572/422 +f 486/1573/423 479/1554/423 1735/1555/423 1736/1574/423 +f 988/1575/371 1427/1576/371 1440/1577/371 993/1578/371 +f 484/1579/424 491/1580/424 490/1581/424 483/1582/424 +f 483/1564/425 490/1583/425 488/523/425 481/522/425 +f 1422/1584/371 990/1585/371 997/1586/371 1433/1587/371 +f 494/1588/426 487/1589/426 486/1590/426 493/1591/426 +f 493/1592/427 486/1573/427 1736/1574/427 1737/1593/427 +f 994/1594/372 1439/1595/372 1452/1596/372 999/1597/372 +f 491/1598/428 498/1599/428 497/1600/428 490/1601/428 +f 490/1583/429 497/1602/429 495/524/429 488/523/429 +f 1434/1603/372 996/1604/372 1003/1605/372 1445/1606/372 +f 501/1607/430 494/1608/430 493/1609/430 500/1610/430 +f 500/1611/431 493/1592/431 1737/1593/431 1738/1612/431 +f 1000/1613/373 1451/1614/373 1464/1615/373 1005/1616/373 +f 498/1617/432 505/1618/432 504/1619/432 497/1620/432 +f 497/1602/433 504/1621/433 502/525/433 495/524/433 +f 1446/1622/373 1002/1623/373 1009/1624/373 1457/1625/373 +f 508/1626/434 501/1627/434 500/1628/434 507/1629/434 +f 507/1630/435 500/1611/435 1738/1612/435 1739/1631/435 +f 1006/1632/374 1463/1633/374 1476/1634/374 1011/1635/374 +f 505/1636/436 512/1637/436 511/1638/436 504/1639/436 +f 504/1621/437 511/1640/437 509/526/437 502/525/437 +f 1458/1641/374 1008/1642/374 1015/1643/374 1469/1644/374 +f 515/1645/438 508/1646/438 507/1647/438 514/1648/438 +f 514/1649/439 507/1630/439 1739/1631/439 1740/1650/439 +f 1012/1651/375 1475/1652/375 1488/1653/375 1017/1654/375 +f 512/1655/440 519/1656/440 518/1657/440 511/1658/440 +f 511/1640/441 518/1659/441 516/527/441 509/526/441 +f 1470/1660/375 1014/1661/375 1021/1662/375 1481/1663/375 +f 522/1664/442 515/1665/442 514/1666/442 521/1667/442 +f 521/1668/443 514/1649/443 1740/1650/443 1741/1669/443 +f 1018/1670/376 1487/1671/376 1500/1672/376 1023/1673/376 +f 519/1674/444 526/1675/444 525/1676/444 518/1677/444 +f 518/1659/445 525/1678/445 523/528/445 516/527/445 +f 1482/1679/376 1020/1680/376 1027/1681/376 1493/1682/376 +f 529/1683/446 522/1684/446 521/1685/446 528/1686/446 +f 528/1687/447 521/1668/447 1741/1669/447 1742/1688/447 +f 1024/1689/377 1499/1690/377 1512/1691/377 1029/1692/377 +f 526/1693/448 533/1694/448 532/1695/448 525/1696/448 +f 525/1678/449 532/1697/449 530/529/449 523/528/449 +f 1494/1698/377 1026/1699/377 1033/1700/377 1505/1701/377 +f 536/1702/450 529/1703/450 528/1704/450 535/1705/450 +f 535/1706/451 528/1687/451 1742/1688/451 1743/1707/451 +f 1030/1708/378 1511/1709/378 1524/1710/378 1035/1711/378 +f 533/1712/452 540/1713/452 539/1714/452 532/1715/452 +f 532/1697/453 539/1716/453 537/530/453 530/529/453 +f 1506/1717/378 1032/1718/378 1039/1719/378 1517/1720/378 +f 543/1721/454 536/1722/454 535/1723/454 542/1724/454 +f 542/1725/455 535/1706/455 1743/1707/455 1744/1726/455 +f 1036/1727/379 1523/1728/379 1536/1729/379 1041/1730/379 +f 540/1731/456 547/1732/456 546/1733/456 539/1734/456 +f 539/1716/457 546/1735/457 544/531/457 537/530/457 +f 1518/1736/379 1038/1737/379 1045/1738/379 1529/1739/379 +f 550/1740/458 543/1741/458 542/1742/458 549/1743/458 +f 549/1744/459 542/1725/459 1744/1726/459 1745/1745/459 +f 1042/1746/380 1535/1747/380 1548/1748/380 1047/1749/380 +f 547/1750/460 554/1751/460 553/1752/460 546/1753/460 +f 546/1735/461 553/1754/461 551/532/461 544/531/461 +f 1530/1755/380 1044/1756/380 1051/1757/380 1541/1758/380 +f 557/1759/462 550/1760/462 549/1761/462 556/1762/462 +f 556/1763/463 549/1744/463 1745/1745/463 1746/1764/463 +f 1048/1765/381 1547/1766/381 1560/1767/381 1053/1768/381 +f 554/1769/464 561/1770/464 560/1771/464 553/1772/464 +f 553/1754/465 560/1773/465 558/533/465 551/532/465 +f 1542/1774/381 1050/1775/381 1057/1776/381 1553/1777/381 +f 564/1778/466 557/1779/466 556/1780/466 563/1781/466 +f 563/1782/467 556/1763/467 1746/1764/467 1747/1783/467 +f 1054/1784/382 1559/1785/382 1572/1786/382 1059/1787/382 +f 561/1788/468 568/1789/468 567/1790/468 560/1791/468 +f 560/1773/469 567/1792/469 565/534/469 558/533/469 +f 1554/1793/382 1056/1794/382 1063/1795/382 1565/1796/382 +f 571/1797/470 564/1798/470 563/1799/470 570/1800/470 +f 570/1801/471 563/1782/471 1747/1783/471 1748/1802/471 +f 1060/1803/383 1571/1804/383 1584/1805/383 1065/1806/383 +f 568/1807/472 575/1808/472 574/1809/472 567/1810/472 +f 567/1792/473 574/1811/473 572/535/473 565/534/473 +f 1566/1812/383 1062/1813/383 1069/1814/383 1577/1815/383 +f 578/1816/474 571/1817/474 570/1818/474 577/1819/474 +f 577/1820/475 570/1801/475 1748/1802/475 1749/1821/475 +f 1066/1822/384 1583/1823/384 1596/1824/384 1071/1825/384 +f 575/1826/476 582/1827/476 581/1828/476 574/1829/476 +f 574/1811/477 581/1830/477 579/536/477 572/535/477 +f 1578/1831/384 1068/1832/384 1075/1833/384 1589/1834/384 +f 585/1835/478 578/1836/478 577/1837/478 584/1838/478 +f 584/1839/479 577/1820/479 1749/1821/479 1750/1840/479 +f 1072/1841/385 1595/1842/385 1608/1843/385 1077/1844/385 +f 582/1845/480 589/1846/480 588/1847/480 581/1848/480 +f 581/1830/481 588/1849/481 586/537/481 579/536/481 +f 1590/1850/385 1074/1851/385 1081/1852/385 1601/1853/385 +f 592/1854/482 585/1855/482 584/1856/482 591/1857/482 +f 591/1858/483 584/1839/483 1750/1840/483 1751/1859/483 +f 1078/1860/386 1607/1861/386 1620/1862/386 1083/1863/386 +f 589/1864/484 596/1865/484 595/1866/484 588/1867/484 +f 588/1849/485 595/1868/485 593/538/485 586/537/485 +f 1602/1869/386 1080/1870/386 1087/1871/386 1613/1872/386 +f 599/1873/486 592/1874/486 591/1875/486 598/1876/486 +f 598/1877/487 591/1858/487 1751/1859/487 1752/1878/487 +f 1084/1879/387 1619/1880/387 1632/1881/387 1089/1882/387 +f 596/1883/488 603/1884/488 602/1885/488 595/1886/488 +f 595/1868/489 602/1887/489 600/539/489 593/538/489 +f 1614/1888/387 1086/1889/387 1093/1890/387 1625/1891/387 +f 606/1892/490 599/1893/490 598/1894/490 605/1895/490 +f 605/1896/491 598/1877/491 1752/1878/491 1753/1897/491 +f 1090/1898/388 1631/1899/388 1644/1900/388 1095/1901/388 +f 603/1902/492 610/1903/492 609/1904/492 602/1905/492 +f 602/1887/493 609/1906/493 607/540/493 600/539/493 +f 1626/1907/388 1092/1908/388 1099/1909/388 1637/1910/388 +f 613/1911/494 606/1912/494 605/1913/494 612/1914/494 +f 612/1915/495 605/1896/495 1753/1897/495 1754/1916/495 +f 1096/1917/389 1643/1918/389 1656/1919/389 1101/1920/389 +f 610/1921/496 617/1922/496 616/1923/496 609/1924/496 +f 609/1906/497 616/1925/497 614/541/497 607/540/497 +f 1638/1926/389 1098/1927/389 1105/1928/389 1649/1929/389 +f 620/1930/498 613/1931/498 612/1932/498 619/1933/498 +f 619/1934/499 612/1915/499 1754/1916/499 1755/1935/499 +f 1102/1936/390 1655/1937/390 1668/1938/390 1107/1939/390 +f 617/1940/500 624/1941/500 623/1942/500 616/1943/500 +f 616/1925/501 623/1944/501 621/542/501 614/541/501 +f 1650/1945/390 1104/1946/390 1111/1947/390 1661/1948/390 +f 627/1949/502 620/1950/502 619/1951/502 626/1952/502 +f 626/1953/503 619/1934/503 1755/1935/503 1756/1954/503 +f 1108/1955/391 1667/1956/391 1680/1957/391 1113/1958/391 +f 624/1959/504 631/1960/504 630/1961/504 623/1962/504 +f 623/1944/505 630/1963/505 628/543/505 621/542/505 +f 1662/1964/391 1110/1965/391 1117/1966/391 1673/1967/391 +f 634/1968/506 627/1969/506 626/1970/506 633/1971/506 +f 633/1972/507 626/1953/507 1756/1954/507 1757/1973/507 +f 1114/1974/392 1679/1975/392 1692/1976/392 1119/1977/392 +f 631/1978/508 638/1979/508 637/1980/508 630/1981/508 +f 630/1963/509 637/1982/509 635/544/509 628/543/509 +f 1674/1983/392 1116/1984/392 1123/1985/392 1685/1986/392 +f 641/1987/510 634/1988/510 633/1989/510 640/1990/510 +f 640/1991/511 633/1972/511 1757/1973/511 1758/1992/511 +f 1120/1993/393 1691/1994/393 1704/1995/393 1125/1996/393 +f 638/1997/512 645/1998/512 644/1999/512 637/2000/512 +f 637/1982/513 644/2001/513 642/545/513 635/544/513 +f 1686/2002/393 1122/2003/393 1129/2004/393 1697/2005/393 +f 648/2006/514 641/2007/514 640/2008/514 647/2009/514 +f 647/2010/515 640/1991/515 1758/1992/515 1759/2011/515 +f 1126/2012/394 1703/2013/394 1716/2014/394 1131/2015/394 +f 645/2016/516 652/2017/516 651/2018/516 644/2019/516 +f 644/2001/517 651/2020/517 649/546/517 642/545/517 +f 1698/2021/394 1128/2022/394 1135/2023/394 1709/2024/394 +f 655/2025/518 648/2026/518 647/2027/518 654/2028/518 +f 654/2029/519 647/2010/519 1759/2011/519 1760/2030/519 +f 1132/2031/520 1715/2032/520 1362/2033/520 1137/2034/520 +f 652/2035/521 659/2036/521 658/2037/521 651/2038/521 +f 651/2020/522 658/2039/522 656/547/522 649/546/522 +f 1710/2040/520 1134/2041/520 1141/2042/520 1367/2043/520 +f 662/2044/523 655/2045/523 654/2046/523 661/2047/523 +f 661/2048/524 654/2029/524 1760/2030/524 1761/2049/524 +f 953/2050/525 952/2051/525 957/2052/525 959/2053/525 457/1473/525 452/1472/525 +f 659/2054/526 452/2055/526 451/2056/526 658/2057/526 +f 658/2039/527 451/1476/527 450/516/527 656/547/527 +f 1368/2058/398 1140/1480/398 955/1479/398 1345/2059/398 +f 454/1483/528 662/1482/528 661/2060/528 453/2061/528 +f 453/1489/529 661/2048/529 1761/2049/529 1730/1490/529 +f 1342/2062/530 1343/2063/530 1350/2064/530 1351/2065/530 +f 1346/2066/530 954/2067/530 961/2068/530 1347/2069/530 +f 962/2070/531 961/2068/531 954/2067/531 956/2071/531 454/1485/531 459/1484/531 +f 1142/2072/532 1141/2042/532 1134/2041/532 1136/2073/532 655/2045/532 662/2044/532 +f 968/2074/533 967/1499/533 960/1498/533 962/2075/533 459/1502/533 464/1501/533 +f 1718/2076/520 1711/2077/520 1366/2078/520 1359/2079/520 +f 1714/2080/520 1707/2081/520 1370/2082/520 1363/2083/520 +f 1376/2084/367 1373/2085/367 1384/2086/367 1389/2087/367 +f 1201/2088/534 1143/2089/534 1392/1508/534 1381/1507/534 +f 1325/2090/535 1333/2091/535 1344/2092/535 1369/2093/535 +f 1136/2094/536 1135/2023/536 1128/2022/536 1130/2095/536 648/2026/536 655/2025/536 +f 1427/1576/537 988/1575/537 950/2096/537 948/2097/537 +f 1133/2098/538 1132/2031/538 1137/2034/538 1139/2099/538 659/2036/538 652/2035/538 +f 1130/2100/539 1129/2004/539 1122/2003/539 1124/2101/539 641/2007/539 648/2006/539 +f 1702/2102/394 1695/2103/394 1708/2104/394 1713/2105/394 +f 1127/2106/540 1126/2012/540 1131/2015/540 1133/2107/540 652/2017/540 645/2016/540 +f 1124/2108/541 1123/1985/541 1116/1984/541 1118/2109/541 634/1988/541 641/1987/541 +f 1690/2110/393 1683/2111/393 1696/2112/393 1701/2113/393 +f 1121/2114/542 1120/1993/542 1125/1996/542 1127/2115/542 645/1998/542 638/1997/542 +f 1118/2116/543 1117/1966/543 1110/1965/543 1112/2117/543 627/1969/543 634/1968/543 +f 1678/2118/392 1671/2119/392 1684/2120/392 1689/2121/392 +f 1115/2122/544 1114/1974/544 1119/1977/544 1121/2123/544 638/1979/544 631/1978/544 +f 1112/2124/545 1111/1947/545 1104/1946/545 1106/2125/545 620/1950/545 627/1949/545 +f 1666/2126/391 1659/2127/391 1672/2128/391 1677/2129/391 +f 1109/2130/546 1108/1955/546 1113/1958/546 1115/2131/546 631/1960/546 624/1959/546 +f 1106/2132/547 1105/1928/547 1098/1927/547 1100/2133/547 613/1931/547 620/1930/547 +f 1654/2134/390 1647/2135/390 1660/2136/390 1665/2137/390 +f 1103/2138/548 1102/1936/548 1107/1939/548 1109/2139/548 624/1941/548 617/1940/548 +f 1100/2140/549 1099/1909/549 1092/1908/549 1094/2141/549 606/1912/549 613/1911/549 +f 1642/2142/389 1635/2143/389 1648/2144/389 1653/2145/389 +f 1097/2146/550 1096/1917/550 1101/1920/550 1103/2147/550 617/1922/550 610/1921/550 +f 1094/2148/551 1093/1890/551 1086/1889/551 1088/2149/551 599/1893/551 606/1892/551 +f 1630/2150/388 1623/2151/388 1636/2152/388 1641/2153/388 +f 1091/2154/552 1090/1898/552 1095/1901/552 1097/2155/552 610/1903/552 603/1902/552 +f 1088/2156/553 1087/1871/553 1080/1870/553 1082/2157/553 592/1874/553 599/1873/553 +f 1618/2158/387 1611/2159/387 1624/2160/387 1629/2161/387 +f 1085/2162/554 1084/1879/554 1089/1882/554 1091/2163/554 603/1884/554 596/1883/554 +f 1082/2164/555 1081/1852/555 1074/1851/555 1076/2165/555 585/1855/555 592/1854/555 +f 1606/2166/386 1599/2167/386 1612/2168/386 1617/2169/386 +f 1079/2170/556 1078/1860/556 1083/1863/556 1085/2171/556 596/1865/556 589/1864/556 +f 1076/2172/557 1075/1833/557 1068/1832/557 1070/2173/557 578/1836/557 585/1835/557 +f 1594/2174/385 1587/2175/385 1600/2176/385 1605/2177/385 +f 1073/2178/558 1072/1841/558 1077/1844/558 1079/2179/558 589/1846/558 582/1845/558 +f 1070/2180/559 1069/1814/559 1062/1813/559 1064/2181/559 571/1817/559 578/1816/559 +f 1582/2182/384 1575/2183/384 1588/2184/384 1593/2185/384 +f 1067/2186/560 1066/1822/560 1071/1825/560 1073/2187/560 582/1827/560 575/1826/560 +f 1064/2188/561 1063/1795/561 1056/1794/561 1058/2189/561 564/1798/561 571/1797/561 +f 1570/2190/383 1563/2191/383 1576/2192/383 1581/2193/383 +f 1061/2194/562 1060/1803/562 1065/1806/562 1067/2195/562 575/1808/562 568/1807/562 +f 1058/2196/563 1057/1776/563 1050/1775/563 1052/2197/563 557/1779/563 564/1778/563 +f 1558/2198/382 1551/2199/382 1564/2200/382 1569/2201/382 +f 1055/2202/564 1054/1784/564 1059/1787/564 1061/2203/564 568/1789/564 561/1788/564 +f 1052/2204/565 1051/1757/565 1044/1756/565 1046/2205/565 550/1760/565 557/1759/565 +f 1546/2206/381 1539/2207/381 1552/2208/381 1557/2209/381 +f 1049/2210/566 1048/1765/566 1053/1768/566 1055/2211/566 561/1770/566 554/1769/566 +f 1046/2212/567 1045/1738/567 1038/1737/567 1040/2213/567 543/1741/567 550/1740/567 +f 1534/2214/380 1527/2215/380 1540/2216/380 1545/2217/380 +f 1043/2218/568 1042/1746/568 1047/1749/568 1049/2219/568 554/1751/568 547/1750/568 +f 1040/2220/569 1039/1719/569 1032/1718/569 1034/2221/569 536/1722/569 543/1721/569 +f 1522/2222/379 1515/2223/379 1528/2224/379 1533/2225/379 +f 1037/2226/570 1036/1727/570 1041/1730/570 1043/2227/570 547/1732/570 540/1731/570 +f 1034/2228/571 1033/1700/571 1026/1699/571 1028/2229/571 529/1703/571 536/1702/571 +f 1510/2230/378 1503/2231/378 1516/2232/378 1521/2233/378 +f 1031/2234/572 1030/1708/572 1035/1711/572 1037/2235/572 540/1713/572 533/1712/572 +f 1028/2236/573 1027/1681/573 1020/1680/573 1022/2237/573 522/1684/573 529/1683/573 +f 1498/2238/377 1491/2239/377 1504/2240/377 1509/2241/377 +f 1025/2242/574 1024/1689/574 1029/1692/574 1031/2243/574 533/1694/574 526/1693/574 +f 1022/2244/575 1021/1662/575 1014/1661/575 1016/2245/575 515/1665/575 522/1664/575 +f 1486/2246/376 1479/2247/376 1492/2248/376 1497/2249/376 +f 1019/2250/576 1018/1670/576 1023/1673/576 1025/2251/576 526/1675/576 519/1674/576 +f 1016/2252/577 1015/1643/577 1008/1642/577 1010/2253/577 508/1646/577 515/1645/577 +f 1474/2254/375 1467/2255/375 1480/2256/375 1485/2257/375 +f 1013/2258/578 1012/1651/578 1017/1654/578 1019/2259/578 519/1656/578 512/1655/578 +f 1010/2260/579 1009/1624/579 1002/1623/579 1004/2261/579 501/1627/579 508/1626/579 +f 1462/2262/374 1455/2263/374 1468/2264/374 1473/2265/374 +f 1007/2266/580 1006/1632/580 1011/1635/580 1013/2267/580 512/1637/580 505/1636/580 +f 1004/2268/581 1003/1605/581 996/1604/581 998/2269/581 494/1608/581 501/1607/581 +f 1450/2270/373 1443/2271/373 1456/2272/373 1461/2273/373 +f 1001/2274/582 1000/1613/582 1005/1616/582 1007/2275/582 505/1618/582 498/1617/582 +f 998/2276/583 997/1586/583 990/1585/583 992/2277/583 487/1589/583 494/1588/583 +f 1438/2278/372 1431/2279/372 1444/2280/372 1449/2281/372 +f 995/2282/584 994/1594/584 999/1597/584 1001/2283/584 498/1599/584 491/1598/584 +f 992/2284/585 991/1567/585 984/1566/585 986/2285/585 480/1570/585 487/1569/585 +f 1426/2286/371 1419/2287/371 1432/2288/371 1437/2289/371 +f 989/2290/586 988/1575/586 993/1578/586 995/2291/586 491/1580/586 484/1579/586 +f 986/2292/587 985/1548/587 978/1547/587 980/2293/587 474/1551/587 480/1550/587 +f 1414/2294/370 1407/2295/370 1420/2296/370 1425/2297/370 +f 983/2298/588 982/1556/588 987/1559/588 989/2299/588 484/1561/588 477/1560/588 +f 980/2300/589 979/1529/589 972/1528/589 974/2301/589 469/1532/589 474/1531/589 +f 1402/2302/369 1395/2303/369 1408/2304/369 1413/2305/369 +f 977/2306/590 976/1537/590 981/1540/590 983/2307/590 477/1542/590 472/1541/590 +f 974/2308/591 973/1514/591 966/1513/591 968/2309/591 464/1517/591 469/1516/591 +f 1390/2310/368 1383/2311/368 1396/2312/368 1401/2313/368 +f 1360/2314/398 1365/2315/398 1340/2316/398 1337/2317/398 +f 1352/2318/396 1349/2319/396 1374/2320/396 1375/2321/396 +f 1364/2322/398 1369/2093/398 1344/2092/398 1341/2323/398 +f 1390/2310/592 1401/2313/592 1209/2324/592 1208/2325/592 +f 1372/1512/593 1385/1515/593 1271/2326/593 1329/2327/593 +f 1338/2328/530 1339/2329/530 1354/2330/530 1355/2331/530 +f 1338/2328/594 1355/2331/594 1204/2332/594 1206/2333/594 +f 1342/2062/595 1351/2065/595 1268/2334/595 1270/2335/595 +f 1346/2066/596 1347/2069/596 1332/2336/596 1334/2337/596 +f 1356/1458/597 1379/1461/597 1202/2338/597 1203/2339/597 +f 1261/2340/598 1269/2341/598 1340/2316/598 1365/2315/598 +f 1348/1497/599 1371/1500/599 1330/2342/599 1331/2343/599 +f 1706/1448/600 1717/1451/600 1199/2344/600 1196/2345/600 +f 1364/2322/601 1341/2323/601 1269/2341/601 1261/2340/601 +f 1698/2021/602 1709/2024/602 1327/2346/602 1324/2347/602 +f 1196/2345/603 1199/2344/603 1716/2014/603 1703/2013/603 +f 1690/2110/604 1701/2113/604 1259/2348/604 1258/2349/604 +f 1324/2347/605 1327/2346/605 1708/2104/605 1695/2103/605 +f 1682/1440/606 1693/1443/606 1193/2350/606 1192/2351/606 +f 1258/2349/607 1259/2348/607 1700/1446/607 1687/1445/607 +f 1686/2002/608 1697/2005/608 1323/2352/608 1322/2353/608 +f 1192/2351/609 1193/2350/609 1692/1976/609 1679/1975/609 +f 1678/2118/610 1689/2121/610 1257/2354/610 1256/2355/610 +f 1662/1964/611 1673/1967/611 1319/2356/611 1318/2357/611 +f 1670/1436/612 1681/1439/612 1191/2358/612 1190/2359/612 +f 1654/2134/613 1665/2137/613 1253/2360/613 1252/2361/613 +f 1318/2357/614 1319/2356/614 1672/2128/614 1659/2127/614 +f 1646/1428/615 1657/1431/615 1187/2362/615 1186/2363/615 +f 1252/2361/616 1253/2360/616 1664/1434/616 1651/1433/616 +f 1638/1926/617 1649/1929/617 1315/2364/617 1314/2365/617 +f 1186/2363/618 1187/2362/618 1656/1919/618 1643/1918/618 +f 1630/2150/619 1641/2153/619 1249/2366/619 1248/2367/619 +f 1314/2365/620 1315/2364/620 1648/2144/620 1635/2143/620 +f 1622/1420/621 1633/1423/621 1183/2368/621 1182/2369/621 +f 1248/2367/622 1249/2366/622 1640/1426/622 1627/1425/622 +f 1614/1888/623 1625/1891/623 1311/2370/623 1310/2371/623 +f 1182/2369/624 1183/2368/624 1632/1881/624 1619/1880/624 +f 1606/2166/625 1617/2169/625 1245/2372/625 1244/2373/625 +f 1310/2371/626 1311/2370/626 1624/2160/626 1611/2159/626 +f 1598/1412/627 1609/1415/627 1179/2374/627 1178/2375/627 +f 1244/2373/628 1245/2372/628 1616/1418/628 1603/1417/628 +f 1602/1869/629 1613/1872/629 1309/2376/629 1308/2377/629 +f 1178/2375/630 1179/2374/630 1608/1843/630 1595/1842/630 +f 1594/2174/631 1605/2177/631 1243/2378/631 1242/2379/631 +f 1578/1831/632 1589/1834/632 1305/2380/632 1304/2381/632 +f 1586/1408/633 1597/1411/633 1177/2382/633 1176/2383/633 +f 1570/2190/634 1581/2193/634 1239/2384/634 1238/2385/634 +f 1304/2381/635 1305/2380/635 1588/2184/635 1575/2183/635 +f 1562/1400/636 1573/1403/636 1173/2386/636 1172/2387/636 +f 1238/2385/637 1239/2384/637 1580/1406/637 1567/1405/637 +f 1554/1793/638 1565/1796/638 1301/2388/638 1300/2389/638 +f 1172/2387/639 1173/2386/639 1572/1786/639 1559/1785/639 +f 1546/2206/640 1557/2209/640 1235/2390/640 1234/2391/640 +f 1300/2389/641 1301/2388/641 1564/2200/641 1551/2199/641 +f 1538/1392/642 1549/1395/642 1169/2392/642 1168/2393/642 +f 1234/2391/643 1235/2390/643 1556/1398/643 1543/1397/643 +f 1530/1755/644 1541/1758/644 1297/2394/644 1296/2395/644 +f 1168/2393/645 1169/2392/645 1548/1748/645 1535/1747/645 +f 1522/2222/646 1533/2225/646 1231/2396/646 1230/2397/646 +f 1296/2395/647 1297/2394/647 1540/2216/647 1527/2215/647 +f 1514/1384/648 1525/1387/648 1165/2398/648 1164/2399/648 +f 1230/2397/649 1231/2396/649 1532/1390/649 1519/1389/649 +f 1518/1736/650 1529/1739/650 1295/2400/650 1294/2401/650 +f 1164/2399/651 1165/2398/651 1524/1710/651 1511/1709/651 +f 1510/2230/652 1521/2233/652 1229/2402/652 1228/2403/652 +f 1494/1698/653 1505/1701/653 1291/2404/653 1290/2405/653 +f 1502/1380/654 1513/1383/654 1163/2406/654 1162/2407/654 +f 1486/2246/655 1497/2249/655 1225/2408/655 1224/2409/655 +f 1290/2405/656 1291/2404/656 1504/2240/656 1491/2239/656 +f 1478/1372/657 1489/1375/657 1159/2410/657 1158/2411/657 +f 1224/2409/658 1225/2408/658 1496/1378/658 1483/1377/658 +f 1470/1660/659 1481/1663/659 1287/2412/659 1286/2413/659 +f 1158/2411/660 1159/2410/660 1488/1653/660 1475/1652/660 +f 1462/2262/661 1473/2265/661 1221/2414/661 1220/2415/661 +f 1286/2413/662 1287/2412/662 1480/2256/662 1467/2255/662 +f 1454/1364/663 1465/1367/663 1155/2416/663 1154/2417/663 +f 1220/2415/664 1221/2414/664 1472/1370/664 1459/1369/664 +f 1446/1622/665 1457/1625/665 1283/2418/665 1282/2419/665 +f 1154/2417/666 1155/2416/666 1464/1615/666 1451/1614/666 +f 1438/2278/667 1449/2281/667 1217/2420/667 1216/2421/667 +f 1282/2419/668 1283/2418/668 1456/2272/668 1443/2271/668 +f 1430/1356/669 1441/1359/669 1151/2422/669 1150/2423/669 +f 1216/2421/670 1217/2420/670 1448/1362/670 1435/1361/670 +f 1434/1603/671 1445/1606/671 1281/2424/671 1280/2425/671 +f 1150/2423/672 1151/2422/672 1440/1577/672 1427/1576/672 +f 1426/2286/673 1437/2289/673 1215/2426/673 1214/2427/673 +f 1410/1565/674 1421/1568/674 1277/2428/674 1276/2429/674 +f 1418/1352/675 1429/1355/675 1149/2430/675 1148/2431/675 +f 1402/2302/676 1413/2305/676 1211/2432/676 1210/2433/676 +f 1276/2429/677 1277/2428/677 1420/2296/677 1407/2295/677 +f 1394/1344/678 1405/1347/678 1145/2434/678 1144/2435/678 +f 1265/2436/679 1207/2437/679 1388/1342/679 1377/1341/679 +f 1386/1527/680 1397/1530/680 1273/2438/680 1272/2439/680 +f 1380/1340/681 1393/1343/681 1143/2089/681 1201/2088/681 +f 1376/2084/682 1389/2087/682 1207/2437/682 1265/2436/682 +f 1272/2439/683 1273/2438/683 1396/2312/683 1383/2311/683 +f 1200/2440/684 1198/2441/684 1362/2033/684 1715/2032/684 +f 1352/2318/685 1375/2321/685 1266/2442/685 1267/2443/685 +f 1328/2444/686 1326/2445/686 1370/2082/686 1707/2081/686 +f 952/2051/530 1335/2446/530 1358/2447/530 957/2052/530 +f 1329/2327/687 1271/2326/687 1384/2086/687 1373/2085/687 +f 1398/1546/688 1409/1549/688 1275/2448/688 1274/2449/688 +f 1274/2449/689 1275/2448/689 1408/2304/689 1395/2303/689 +f 1422/1584/690 1433/1587/690 1279/2450/690 1278/2451/690 +f 1278/2451/691 1279/2450/691 1432/2288/691 1419/2287/691 +f 1280/2425/692 1281/2424/692 1444/2280/692 1431/2279/692 +f 1458/1641/693 1469/1644/693 1285/2452/693 1284/2453/693 +f 1284/2453/694 1285/2452/694 1468/2264/694 1455/2263/694 +f 1482/1679/695 1493/1682/695 1289/2454/695 1288/2455/695 +f 1288/2455/696 1289/2454/696 1492/2248/696 1479/2247/696 +f 1506/1717/697 1517/1720/697 1293/2456/697 1292/2457/697 +f 1292/2457/698 1293/2456/698 1516/2232/698 1503/2231/698 +f 1294/2401/699 1295/2400/699 1528/2224/699 1515/2223/699 +f 1542/1774/700 1553/1777/700 1299/2458/700 1298/2459/700 +f 1298/2459/701 1299/2458/701 1552/2208/701 1539/2207/701 +f 1566/1812/702 1577/1815/702 1303/2460/702 1302/2461/702 +f 1302/2461/703 1303/2460/703 1576/2192/703 1563/2191/703 +f 1590/1850/704 1601/1853/704 1307/2462/704 1306/2463/704 +f 1306/2463/705 1307/2462/705 1600/2176/705 1587/2175/705 +f 1308/2377/706 1309/2376/706 1612/2168/706 1599/2167/706 +f 1626/1907/707 1637/1910/707 1313/2464/707 1312/2465/707 +f 1312/2465/708 1313/2464/708 1636/2152/708 1623/2151/708 +f 1650/1945/709 1661/1948/709 1317/2466/709 1316/2467/709 +f 1316/2467/710 1317/2466/710 1660/2136/710 1647/2135/710 +f 1674/1983/711 1685/1986/711 1321/2468/711 1320/2469/711 +f 1320/2469/712 1321/2468/712 1684/2120/712 1671/2119/712 +f 1322/2353/713 1323/2352/713 1696/2112/713 1683/2111/713 +f 1710/2040/714 1367/2043/714 1326/2445/714 1328/2444/714 +f 1368/2058/715 1345/2059/715 1333/2091/715 1325/2090/715 +f 1331/2343/716 1330/2342/716 1374/2320/716 1349/2319/716 +f 1334/2337/717 1332/2336/717 1350/2064/717 1343/2063/717 +f 1714/2080/718 1363/2083/718 1262/2470/718 1264/2471/718 +f 1210/2433/719 1211/2432/719 1412/1350/719 1399/1349/719 +f 1208/2325/720 1209/2324/720 1400/1346/720 1387/1345/720 +f 1414/2294/721 1425/2297/721 1213/2472/721 1212/2473/721 +f 1212/2473/722 1213/2472/722 1424/1354/722 1411/1353/722 +f 1214/2427/723 1215/2426/723 1436/1358/723 1423/1357/723 +f 1450/2270/724 1461/2273/724 1219/2474/724 1218/2475/724 +f 1218/2475/725 1219/2474/725 1460/1366/725 1447/1365/725 +f 1474/2254/726 1485/2257/726 1223/2476/726 1222/2477/726 +f 1222/2477/727 1223/2476/727 1484/1374/727 1471/1373/727 +f 1498/2238/728 1509/2241/728 1227/2478/728 1226/2479/728 +f 1226/2479/729 1227/2478/729 1508/1382/729 1495/1381/729 +f 1228/2403/730 1229/2402/730 1520/1386/730 1507/1385/730 +f 1534/2214/731 1545/2217/731 1233/2480/731 1232/2481/731 +f 1232/2481/732 1233/2480/732 1544/1394/732 1531/1393/732 +f 1558/2198/733 1569/2201/733 1237/2482/733 1236/2483/733 +f 1236/2483/734 1237/2482/734 1568/1402/734 1555/1401/734 +f 1582/2182/735 1593/2185/735 1241/2484/735 1240/2485/735 +f 1240/2485/736 1241/2484/736 1592/1410/736 1579/1409/736 +f 1242/2379/737 1243/2378/737 1604/1414/737 1591/1413/737 +f 1618/2158/738 1629/2161/738 1247/2486/738 1246/2487/738 +f 1246/2487/739 1247/2486/739 1628/1422/739 1615/1421/739 +f 1642/2142/740 1653/2145/740 1251/2488/740 1250/2489/740 +f 1250/2489/741 1251/2488/741 1652/1430/741 1639/1429/741 +f 1666/2126/742 1677/2129/742 1255/2490/742 1254/2491/742 +f 1254/2491/743 1255/2490/743 1676/1438/743 1663/1437/743 +f 1256/2355/744 1257/2354/744 1688/1442/744 1675/1441/744 +f 1702/2102/745 1713/2105/745 1263/2492/745 1260/2493/745 +f 1260/2493/746 1263/2492/746 1712/1450/746 1699/1449/746 +f 1264/2471/747 1262/2470/747 1366/2078/747 1711/2077/747 +f 1267/2443/748 1266/2442/748 1378/1460/748 1353/1459/748 +f 1270/2335/749 1268/2334/749 1354/2330/749 1339/2329/749 +f 1197/2494/750 1205/2495/750 1336/1470/750 1361/1469/750 +f 1144/2435/751 1145/2434/751 1404/1523/751 1391/1522/751 +f 1406/1348/752 1417/1351/752 1147/2496/752 1146/2497/752 +f 1146/2497/753 1147/2496/753 1416/1539/753 1403/1538/753 +f 1148/2431/754 1149/2430/754 1428/1558/754 1415/1557/754 +f 1442/1360/755 1453/1363/755 1153/2498/755 1152/2499/755 +f 1152/2499/756 1153/2498/756 1452/1596/756 1439/1595/756 +f 1466/1368/757 1477/1371/757 1157/2500/757 1156/2501/757 +f 1156/2501/758 1157/2500/758 1476/1634/758 1463/1633/758 +f 1490/1376/759 1501/1379/759 1161/2502/759 1160/2503/759 +f 1160/2503/760 1161/2502/760 1500/1672/760 1487/1671/760 +f 1162/2407/761 1163/2406/761 1512/1691/761 1499/1690/761 +f 1526/1388/762 1537/1391/762 1167/2504/762 1166/2505/762 +f 1166/2505/763 1167/2504/763 1536/1729/763 1523/1728/763 +f 1550/1396/764 1561/1399/764 1171/2506/764 1170/2507/764 +f 1170/2507/765 1171/2506/765 1560/1767/765 1547/1766/765 +f 1574/1404/766 1585/1407/766 1175/2508/766 1174/2509/766 +f 1174/2509/767 1175/2508/767 1584/1805/767 1571/1804/767 +f 1176/2383/768 1177/2382/768 1596/1824/768 1583/1823/768 +f 1610/1416/769 1621/1419/769 1181/2510/769 1180/2511/769 +f 1180/2511/770 1181/2510/770 1620/1862/770 1607/1861/770 +f 1634/1424/771 1645/1427/771 1185/2512/771 1184/2513/771 +f 1184/2513/772 1185/2512/772 1644/1900/772 1631/1899/772 +f 1658/1432/773 1669/1435/773 1189/2514/773 1188/2515/773 +f 1188/2515/774 1189/2514/774 1668/1938/774 1655/1937/774 +f 1190/2359/775 1191/2358/775 1680/1957/775 1667/1956/775 +f 1694/1444/776 1705/1447/776 1195/2516/776 1194/2517/776 +f 1194/2517/777 1195/2516/777 1704/1995/777 1691/1994/777 +f 1718/2076/778 1359/2079/778 1198/2441/778 1200/2440/778 +f 1360/2314/779 1337/2317/779 1205/2495/779 1197/2494/779 +f 1203/2339/780 1202/2338/780 1382/1493/780 1357/1492/780 +f 1206/2333/781 1204/2332/781 1358/2447/781 1335/2446/781 +f 951/1471/782 862/2518/782 952/2519/782 953/2520/782 +f 954/2521/783 861/2522/783 955/1479/783 956/1478/783 +f 957/2052/784 873/2523/784 958/1463/784 959/1462/784 +f 960/1498/785 872/2524/785 961/2525/785 962/2070/785 +f 963/1464/786 884/2526/786 964/1335/786 965/1334/786 +f 966/1513/787 883/2527/787 967/1499/787 968/2074/787 +f 969/1336/788 895/2528/788 970/1453/788 971/1452/788 +f 972/1528/789 894/2529/789 973/2530/789 974/2308/789 +f 975/1454/790 906/2531/790 976/1537/790 977/2306/790 +f 978/1547/791 905/2532/791 979/1529/791 980/2300/791 +f 981/1540/792 917/2533/792 982/1556/792 983/2298/792 +f 984/1566/793 916/2534/793 985/2535/793 986/2292/793 +f 987/1559/794 950/2096/794 988/1575/794 989/2290/794 +f 990/1585/795 949/2536/795 991/1567/795 992/2284/795 +f 993/1578/796 939/2537/796 994/1594/796 995/2282/796 +f 996/1604/797 938/2538/797 997/2539/797 998/2276/797 +f 999/1597/798 928/2540/798 1000/1613/798 1001/2274/798 +f 1002/1623/799 927/2541/799 1003/1605/799 1004/2268/799 +f 1005/1616/800 1719/2542/800 1006/1632/800 1007/2266/800 +f 1008/1642/801 1720/2543/801 1009/2544/801 1010/2260/801 +f 1011/1635/802 513/2545/802 1012/1651/802 1013/2258/802 +f 1014/1661/803 510/2546/803 1015/1643/803 1016/2252/803 +f 1017/1654/804 552/2547/804 1018/1670/804 1019/2250/804 +f 1020/1680/805 548/2548/805 1021/2549/805 1022/2244/805 +f 1023/1673/806 590/2550/806 1024/1689/806 1025/2242/806 +f 1026/1699/807 587/2551/807 1027/1681/807 1028/2236/807 +f 1029/1692/808 629/2552/808 1030/1708/808 1031/2234/808 +f 1032/1718/809 625/2553/809 1033/2554/809 1034/2228/809 +f 1035/1711/810 664/2555/810 1036/1727/810 1037/2226/810 +f 1038/1737/811 663/2556/811 1039/1719/811 1040/2220/811 +f 1041/1730/812 675/2557/812 1042/1746/812 1043/2218/812 +f 1044/1756/813 674/2558/813 1045/2559/813 1046/2212/813 +f 1047/1749/814 686/2560/814 1048/1765/814 1049/2210/814 +f 1050/1775/815 685/2561/815 1051/1757/815 1052/2204/815 +f 1053/1768/816 697/2562/816 1054/1784/816 1055/2202/816 +f 1056/1794/817 696/2563/817 1057/2564/817 1058/2196/817 +f 1059/1787/818 708/2565/818 1060/1803/818 1061/2194/818 +f 1062/1813/819 707/2566/819 1063/1795/819 1064/2188/819 +f 1065/1806/820 719/2567/820 1066/1822/820 1067/2186/820 +f 1068/1832/821 718/2568/821 1069/2569/821 1070/2180/821 +f 1071/1825/822 730/2570/822 1072/1841/822 1073/2178/822 +f 1074/1851/823 729/2571/823 1075/1833/823 1076/2172/823 +f 1077/1844/824 741/2572/824 1078/1860/824 1079/2170/824 +f 1080/1870/825 740/2573/825 1081/2574/825 1082/2164/825 +f 1083/1863/826 752/2575/826 1084/1879/826 1085/2162/826 +f 1086/1889/827 751/2576/827 1087/1871/827 1088/2156/827 +f 1089/1882/828 763/2577/828 1090/1898/828 1091/2154/828 +f 1092/1908/829 762/2578/829 1093/2579/829 1094/2148/829 +f 1095/1901/830 774/2580/830 1096/1917/830 1097/2146/830 +f 1098/1927/831 773/2581/831 1099/1909/831 1100/2140/831 +f 1101/1920/832 785/2582/832 1102/1936/832 1103/2138/832 +f 1104/1946/833 784/2583/833 1105/2584/833 1106/2132/833 +f 1107/1939/834 796/2585/834 1108/1955/834 1109/2130/834 +f 1110/1965/835 795/2586/835 1111/1947/835 1112/2124/835 +f 1113/1958/836 807/2587/836 1114/1974/836 1115/2122/836 +f 1116/1984/837 806/2588/837 1117/2589/837 1118/2116/837 +f 1119/1977/838 818/2590/838 1120/1993/838 1121/2114/838 +f 1122/2003/839 817/2591/839 1123/1985/839 1124/2108/839 +f 1125/1996/840 829/2592/840 1126/2012/840 1127/2106/840 +f 1128/2022/841 828/2593/841 1129/2594/841 1130/2100/841 +f 1131/2015/842 840/2595/842 1132/2031/842 1133/2098/842 +f 1134/2041/843 839/2596/843 1135/2023/843 1136/2094/843 +f 1137/2034/844 851/2597/844 1138/1468/844 1139/2598/844 +f 1140/1480/845 850/2599/845 1141/2600/845 1142/2072/845 +f 893/2601/846 892/2602/846 1144/2435/846 1391/1522/846 +f 506/2603/847 503/2604/847 1158/2411/847 1475/1652/847 +f 695/2605/848 694/2606/848 1172/2387/848 1559/1785/848 +f 772/2607/849 771/2608/849 1186/2363/849 1643/1918/849 +f 838/2609/850 837/2610/850 1200/2440/850 1715/2032/850 +f 1721/2611/851 1722/2612/851 1220/2415/851 1459/1369/851 +f 684/2613/852 683/2614/852 1234/2391/852 1543/1397/852 +f 761/2615/853 760/2616/853 1248/2367/853 1627/1425/853 +f 849/2617/854 848/2618/854 1262/2470/854 1363/2083/854 +f 926/2619/855 925/2620/855 1282/2419/855 1443/2271/855 +f 673/2621/856 672/2622/856 1296/2395/856 1527/2215/856 +f 750/2623/857 749/2624/857 1310/2371/857 1611/2159/857 +f 827/2625/858 826/2626/858 1324/2347/858 1695/2103/858 +f 860/2627/859 859/2628/859 1334/2629/859 1343/2630/859 +f 915/2631/860 914/2632/860 1148/2431/860 1415/1557/860 +f 948/2097/861 947/2633/861 1150/2423/861 1427/1576/861 +f 924/2634/862 923/2635/862 1154/2417/862 1451/1614/862 +f 583/2636/863 580/2637/863 1162/2407/863 1499/1690/863 +f 622/2638/864 618/2639/864 1164/2399/864 1511/1709/864 +f 671/2640/865 670/2641/865 1168/2393/865 1535/1747/865 +f 717/2642/866 716/2643/866 1176/2383/866 1583/1823/866 +f 728/2644/867 727/2645/867 1178/2375/867 1595/1842/867 +f 748/2646/868 747/2647/868 1182/2369/868 1619/1880/868 +f 794/2648/869 793/2649/869 1190/2359/869 1667/1956/869 +f 805/2650/870 804/2651/870 1192/2351/870 1679/1975/870 +f 825/2652/871 824/2653/871 1196/2345/871 1703/2013/871 +f 871/2654/872 870/2655/872 1204/2332/872 1355/2331/872 +f 858/2656/873 857/2657/873 1206/2658/873 1335/2659/873 +f 904/2660/874 903/2661/874 1210/2433/874 1399/1349/874 +f 913/2662/875 912/2663/875 1212/2473/875 1411/1353/875 +f 937/2664/876 936/2665/876 1216/2421/876 1435/1361/876 +f 545/2666/877 541/2667/877 1224/2409/877 1483/1377/877 +f 576/2668/878 573/2669/878 1226/2479/878 1495/1381/878 +f 660/2670/879 657/2671/879 1230/2397/879 1519/1389/879 +f 706/2672/880 705/2673/880 1238/2385/880 1567/1405/880 +f 715/2674/881 714/2675/881 1240/2485/881 1579/1409/881 +f 739/2676/882 738/2677/882 1244/2373/882 1603/1417/882 +f 783/2678/883 782/2679/883 1252/2361/883 1651/1433/883 +f 792/2680/884 791/2681/884 1254/2491/884 1663/1437/884 +f 816/2682/885 815/2683/885 1258/2349/885 1687/1445/885 +f 882/2684/886 881/2685/886 1266/2442/886 1375/2321/886 +f 869/2686/887 868/2687/887 1268/2334/887 1351/2065/887 +f 891/2688/888 890/2689/888 1272/2439/888 1383/2311/888 +f 902/2690/889 901/2691/889 1274/2449/889 1395/2303/889 +f 946/2692/890 945/2693/890 1278/2451/890 1419/2287/890 +f 499/2694/891 496/2695/891 1286/2413/891 1467/2255/891 +f 538/2696/892 534/2697/892 1288/2455/892 1479/2247/892 +f 615/2698/893 611/2699/893 1292/2457/893 1503/2231/893 +f 693/2700/894 692/2701/894 1300/2389/894 1551/2199/894 +f 704/2702/895 703/2703/895 1302/2461/895 1563/2191/895 +f 726/2704/896 725/2705/896 1306/2463/896 1587/2175/896 +f 770/2706/897 769/2707/897 1314/2365/897 1635/2143/897 +f 781/2708/898 780/2709/898 1316/2467/898 1647/2135/898 +f 803/2710/899 802/2711/899 1320/2469/899 1671/2119/899 +f 836/2712/900 835/2713/900 1328/2444/900 1707/2081/900 +f 880/2714/901 879/2715/901 1330/2342/901 1371/1500/901 +f 867/2716/902 866/2717/902 1332/2336/902 1347/2069/902 +f 847/2718/903 846/2719/903 1326/2445/903 1367/2043/903 +f 814/2720/904 813/2721/904 1322/2353/904 1683/2111/904 +f 790/2722/905 789/2723/905 1318/2357/905 1659/2127/905 +f 759/2724/906 758/2725/906 1312/2465/906 1623/2151/906 +f 737/2726/907 736/2727/907 1308/2377/907 1599/2167/907 +f 713/2728/908 712/2729/908 1304/2381/908 1575/2183/908 +f 682/2730/909 681/2731/909 1298/2459/909 1539/2207/909 +f 653/2732/910 650/2733/910 1294/2401/910 1515/2223/910 +f 569/2734/911 566/2735/911 1290/2405/911 1491/2239/911 +f 1723/2736/912 1724/2737/912 1284/2453/912 1455/2263/912 +f 935/2738/913 934/2739/913 1280/2425/913 1431/2279/913 +f 911/2740/914 910/2741/914 1276/2429/914 1407/2295/914 +f 856/2742/915 855/2743/915 1270/2744/915 1339/2745/915 +f 834/2746/916 833/2747/916 1264/2471/916 1711/2077/916 +f 823/2748/917 822/2749/917 1260/2493/917 1699/1449/917 +f 801/2750/918 800/2751/918 1256/2355/918 1675/1441/918 +f 768/2752/919 767/2753/919 1250/2489/919 1639/1429/919 +f 746/2754/920 745/2755/920 1246/2487/920 1615/1421/920 +f 724/2756/921 723/2757/921 1242/2379/921 1591/1413/921 +f 691/2758/922 690/2759/922 1236/2483/922 1555/1401/922 +f 669/2760/923 668/2761/923 1232/2481/923 1531/1393/923 +f 608/2762/924 604/2763/924 1228/2403/924 1507/1385/924 +f 492/2764/925 489/2765/925 1222/2477/925 1471/1373/925 +f 922/2766/926 921/2767/926 1218/2475/926 1447/1365/926 +f 944/2768/927 943/2769/927 1214/2427/927 1423/1357/927 +f 889/2770/928 888/2771/928 1208/2325/928 1387/1345/928 +f 878/2772/929 877/2773/929 1202/2338/929 1379/1461/929 +f 845/2774/930 844/2775/930 1198/2441/930 1359/2079/930 +f 812/2776/931 811/2777/931 1194/2517/931 1691/1994/931 +f 779/2778/932 778/2779/932 1188/2515/932 1655/1937/932 +f 757/2780/933 756/2781/933 1184/2513/933 1631/1899/933 +f 735/2782/934 734/2783/934 1180/2511/934 1607/1861/934 +f 702/2784/935 701/2785/935 1174/2509/935 1571/1804/935 +f 680/2786/936 679/2787/936 1170/2507/936 1547/1766/936 +f 646/2788/937 643/2789/937 1166/2505/937 1523/1728/937 +f 531/2790/938 527/2791/938 1160/2503/938 1487/1671/938 +f 1725/2792/939 1726/2793/939 1156/2501/939 1463/1633/939 +f 933/2794/940 932/2795/940 1152/2499/940 1439/1595/940 +f 900/2796/941 899/2797/941 1146/2497/941 1403/1538/941 +f 857/2657/942 854/2798/942 1338/2799/942 1206/2658/942 +f 870/2655/943 865/2800/943 1358/2447/943 1204/2332/943 +f 855/2743/944 853/2801/944 1342/2802/944 1270/2744/944 +f 868/2687/945 864/2803/945 1354/2330/945 1268/2334/945 +f 859/2628/946 852/2804/946 1346/2805/946 1334/2629/946 +f 866/2717/947 863/2806/947 1350/2064/947 1332/2336/947 +f 877/2773/948 876/2807/948 1382/1493/948 1202/2338/948 +f 881/2685/949 875/2808/949 1378/1460/949 1266/2442/949 +f 879/2715/950 874/2809/950 1374/2320/950 1330/2342/950 +f 837/2610/951 832/2810/951 1718/2076/951 1200/2440/951 +f 844/2775/952 843/2811/952 1362/2033/952 1198/2441/952 +f 833/2747/953 831/2812/953 1714/2080/953 1264/2471/953 +f 848/2618/954 842/2813/954 1366/2078/954 1262/2470/954 +f 835/2713/955 830/2814/955 1710/2040/955 1328/2444/955 +f 846/2719/956 841/2815/956 1370/2082/956 1326/2445/956 +f 824/2653/957 821/2816/957 1706/1448/957 1196/2345/957 +f 822/2749/958 820/2817/958 1702/2102/958 1260/2493/958 +f 826/2626/959 819/2818/959 1698/2021/959 1324/2347/959 +f 811/2777/960 810/2819/960 1694/1444/960 1194/2517/960 +f 815/2683/961 809/2820/961 1690/2110/961 1258/2349/961 +f 813/2721/962 808/2821/962 1686/2002/962 1322/2353/962 +f 804/2651/963 799/2822/963 1682/1440/963 1192/2351/963 +f 800/2751/964 798/2823/964 1678/2118/964 1256/2355/964 +f 802/2711/965 797/2824/965 1674/1983/965 1320/2469/965 +f 793/2649/966 788/2825/966 1670/1436/966 1190/2359/966 +f 791/2681/967 787/2826/967 1666/2126/967 1254/2491/967 +f 789/2723/968 786/2827/968 1662/1964/968 1318/2357/968 +f 778/2779/969 777/2828/969 1658/1432/969 1188/2515/969 +f 782/2679/970 776/2829/970 1654/2134/970 1252/2361/970 +f 780/2709/971 775/2830/971 1650/1945/971 1316/2467/971 +f 771/2608/972 766/2831/972 1646/1428/972 1186/2363/972 +f 767/2753/973 765/2832/973 1642/2142/973 1250/2489/973 +f 769/2707/974 764/2833/974 1638/1926/974 1314/2365/974 +f 756/2781/975 755/2834/975 1634/1424/975 1184/2513/975 +f 760/2616/976 754/2835/976 1630/2150/976 1248/2367/976 +f 758/2725/977 753/2836/977 1626/1907/977 1312/2465/977 +f 747/2647/978 744/2837/978 1622/1420/978 1182/2369/978 +f 745/2755/979 743/2838/979 1618/2158/979 1246/2487/979 +f 749/2624/980 742/2839/980 1614/1888/980 1310/2371/980 +f 734/2783/981 733/2840/981 1610/1416/981 1180/2511/981 +f 738/2677/982 732/2841/982 1606/2166/982 1244/2373/982 +f 736/2727/983 731/2842/983 1602/1869/983 1308/2377/983 +f 727/2645/984 722/2843/984 1598/1412/984 1178/2375/984 +f 723/2757/985 721/2844/985 1594/2174/985 1242/2379/985 +f 725/2705/986 720/2845/986 1590/1850/986 1306/2463/986 +f 716/2643/987 711/2846/987 1586/1408/987 1176/2383/987 +f 714/2675/988 710/2847/988 1582/2182/988 1240/2485/988 +f 712/2729/989 709/2848/989 1578/1831/989 1304/2381/989 +f 701/2785/990 700/2849/990 1574/1404/990 1174/2509/990 +f 705/2673/991 699/2850/991 1570/2190/991 1238/2385/991 +f 703/2703/992 698/2851/992 1566/1812/992 1302/2461/992 +f 694/2606/993 689/2852/993 1562/1400/993 1172/2387/993 +f 690/2759/994 688/2853/994 1558/2198/994 1236/2483/994 +f 692/2701/995 687/2854/995 1554/1793/995 1300/2389/995 +f 679/2787/996 678/2855/996 1550/1396/996 1170/2507/996 +f 683/2614/997 677/2856/997 1546/2206/997 1234/2391/997 +f 681/2731/998 676/2857/998 1542/1774/998 1298/2459/998 +f 670/2641/999 667/2858/999 1538/1392/999 1168/2393/999 +f 668/2761/1000 666/2859/1000 1534/2214/1000 1232/2481/1000 +f 672/2622/1001 665/2860/1001 1530/1755/1001 1296/2395/1001 +f 643/2789/1002 639/2861/1002 1526/1388/1002 1166/2505/1002 +f 657/2671/1003 636/2862/1003 1522/2222/1003 1230/2397/1003 +f 650/2733/1004 632/2863/1004 1518/1736/1004 1294/2401/1004 +f 618/2639/1005 601/2864/1005 1514/1384/1005 1164/2399/1005 +f 604/2763/1006 597/2865/1006 1510/2230/1006 1228/2403/1006 +f 611/2699/1007 594/2866/1007 1506/1717/1007 1292/2457/1007 +f 580/2637/1008 562/2867/1008 1502/1380/1008 1162/2407/1008 +f 573/2669/1009 559/2868/1009 1498/2238/1009 1226/2479/1009 +f 566/2735/1010 555/2869/1010 1494/1698/1010 1290/2405/1010 +f 527/2791/1011 524/2870/1011 1490/1376/1011 1160/2503/1011 +f 541/2667/1012 520/2871/1012 1486/2246/1012 1224/2409/1012 +f 534/2697/1013 517/2872/1013 1482/1679/1013 1288/2455/1013 +f 503/2604/1014 485/2873/1014 1478/1372/1014 1158/2411/1014 +f 489/2765/1015 482/2874/1015 1474/2254/1015 1222/2477/1015 +f 496/2695/1016 478/2875/1016 1470/1660/1016 1286/2413/1016 +f 1726/2793/1017 1727/2876/1017 1466/1368/1017 1156/2501/1017 +f 1722/2612/1018 1728/2877/1018 1462/2262/1018 1220/2415/1018 +f 1724/2737/1019 1729/2878/1019 1458/1641/1019 1284/2453/1019 +f 923/2635/1020 920/2879/1020 1454/1364/1020 1154/2417/1020 +f 921/2767/1021 919/2880/1021 1450/2270/1021 1218/2475/1021 +f 925/2620/1022 918/2881/1022 1446/1622/1022 1282/2419/1022 +f 932/2795/1023 931/2882/1023 1442/1360/1023 1152/2499/1023 +f 936/2665/1024 930/2883/1024 1438/2278/1024 1216/2421/1024 +f 934/2739/1025 929/2884/1025 1434/1603/1025 1280/2425/1025 +f 947/2633/1026 942/2885/1026 1430/1356/1026 1150/2423/1026 +f 943/2769/1027 941/2886/1027 1426/2286/1027 1214/2427/1027 +f 945/2693/1028 940/2887/1028 1422/1584/1028 1278/2451/1028 +f 914/2632/1029 909/2888/1029 1418/1352/1029 1148/2431/1029 +f 912/2663/1030 908/2889/1030 1414/2294/1030 1212/2473/1030 +f 910/2741/1031 907/2890/1031 1410/1565/1031 1276/2429/1031 +f 899/2797/1032 898/2891/1032 1406/1348/1032 1146/2497/1032 +f 903/2661/1033 897/2892/1033 1402/2302/1033 1210/2433/1033 +f 901/2691/1034 896/2893/1034 1398/1546/1034 1274/2449/1034 +f 892/2602/1035 887/2894/1035 1394/1344/1035 1144/2435/1035 +f 888/2771/1036 886/2895/1036 1390/2310/1036 1208/2325/1036 +f 890/2689/1037 885/2896/1037 1386/1527/1037 1272/2439/1037 +f 851/2897/1038 843/2811/1038 1361/1469/1038 1138/1468/1038 +f 858/2656/1039 862/2898/1039 951/1471/1039 1336/1470/1039 +f 854/2798/1040 856/2899/1040 1339/2900/1040 1338/2901/1040 +f 864/2803/1041 871/2654/1041 1355/2331/1041 1354/2330/1041 +f 865/2800/1042 873/2902/1042 957/2052/1042 1358/2447/1042 +f 845/2774/1043 842/2813/1043 1365/2315/1043 1360/2314/1043 +f 849/2617/1044 841/2815/1044 1369/2093/1044 1364/2322/1044 +f 860/2627/1045 853/2903/1045 1341/2323/1045 1344/2092/1045 +f 863/2806/1046 869/2686/1046 1351/2065/1046 1350/2064/1046 +f 852/2804/1047 861/2904/1047 954/2905/1047 1346/2805/1047 +f 872/2524/1048 867/2716/1048 1347/2069/1048 961/2068/1048 +f 847/2718/1049 850/2599/1049 1140/1480/1049 1368/2058/1049 +f 883/2527/1050 880/2714/1050 1371/1500/1050 967/1499/1050 +f 874/2809/1051 882/2684/1051 1375/2321/1051 1374/2320/1051 +f 875/2808/1052 878/2772/1052 1379/1461/1052 1378/1460/1052 +f 876/2807/1053 884/2526/1053 963/1464/1053 1382/1493/1053 +f 840/2595/1054 838/2609/1054 1715/2032/1054 1132/2031/1054 +f 832/2810/1055 834/2746/1055 1711/2077/1055 1718/2076/1055 +f 831/2812/1056 836/2712/1056 1707/2081/1056 1714/2080/1056 +f 830/2814/1057 839/2596/1057 1134/2041/1057 1710/2040/1057 +f 894/2529/1058 885/2896/1058 1385/1515/1058 973/1514/1058 +f 891/2688/1059 886/2895/1059 1389/2087/1059 1384/2086/1059 +f 889/2770/1060 887/2894/1060 1393/1343/1060 1388/1342/1060 +f 893/2601/1061 895/2906/1061 969/1336/1061 1392/1508/1061 +f 905/2532/1062 896/2893/1062 1397/1530/1062 979/1529/1062 +f 902/2690/1063 897/2892/1063 1401/2313/1063 1396/2312/1063 +f 904/2660/1064 898/2891/1064 1405/1347/1064 1400/1346/1064 +f 900/2796/1065 906/2531/1065 975/1454/1065 1404/1523/1065 +f 916/2534/1066 907/2890/1066 1409/1549/1066 985/1548/1066 +f 911/2740/1067 908/2889/1067 1413/2305/1067 1408/2304/1067 +f 913/2662/1068 909/2888/1068 1417/1351/1068 1412/1350/1068 +f 915/2631/1069 917/2907/1069 981/1540/1069 1416/1539/1069 +f 949/2536/1070 940/2887/1070 1421/1568/1070 991/1567/1070 +f 946/2692/1071 941/2886/1071 1425/2297/1071 1420/2296/1071 +f 944/2768/1072 942/2885/1072 1429/1355/1072 1424/1354/1072 +f 948/2097/1073 950/2096/1073 987/1559/1073 1428/1558/1073 +f 938/2538/1074 929/2884/1074 1433/1587/1074 997/1586/1074 +f 935/2738/1075 930/2883/1075 1437/2289/1075 1432/2288/1075 +f 937/2664/1076 931/2882/1076 1441/1359/1076 1436/1358/1076 +f 933/2794/1077 939/2908/1077 993/1578/1077 1440/1577/1077 +f 927/2541/1078 918/2881/1078 1445/1606/1078 1003/1605/1078 +f 926/2619/1079 919/2880/1079 1449/2281/1079 1444/2280/1079 +f 922/2766/1080 920/2879/1080 1453/1363/1080 1448/1362/1080 +f 924/2634/1081 928/2540/1081 999/1597/1081 1452/1596/1081 +f 1720/2543/1082 1729/2878/1082 1457/1625/1082 1009/1624/1082 +f 1723/2736/1083 1728/2877/1083 1461/2273/1083 1456/2272/1083 +f 1721/2611/1084 1727/2876/1084 1465/1367/1084 1460/1366/1084 +f 1725/2792/1085 1719/2909/1085 1005/1616/1085 1464/1615/1085 +f 510/2546/1086 478/2875/1086 1469/1644/1086 1015/1643/1086 +f 499/2694/1087 482/2874/1087 1473/2265/1087 1468/2264/1087 +f 492/2764/1088 485/2873/1088 1477/1371/1088 1472/1370/1088 +f 506/2603/1089 513/2545/1089 1011/1635/1089 1476/1634/1089 +f 548/2548/1090 517/2872/1090 1481/1663/1090 1021/1662/1090 +f 538/2696/1091 520/2871/1091 1485/2257/1091 1480/2256/1091 +f 545/2666/1092 524/2870/1092 1489/1375/1092 1484/1374/1092 +f 531/2790/1093 552/2910/1093 1017/1654/1093 1488/1653/1093 +f 587/2551/1094 555/2869/1094 1493/1682/1094 1027/1681/1094 +f 569/2734/1095 559/2868/1095 1497/2249/1095 1492/2248/1095 +f 576/2668/1096 562/2867/1096 1501/1379/1096 1496/1378/1096 +f 583/2636/1097 590/2550/1097 1023/1673/1097 1500/1672/1097 +f 625/2553/1098 594/2866/1098 1505/1701/1098 1033/1700/1098 +f 615/2698/1099 597/2865/1099 1509/2241/1099 1504/2240/1099 +f 608/2762/1100 601/2864/1100 1513/1383/1100 1508/1382/1100 +f 622/2638/1101 629/2911/1101 1029/1692/1101 1512/1691/1101 +f 663/2556/1102 632/2863/1102 1517/1720/1102 1039/1719/1102 +f 653/2732/1103 636/2862/1103 1521/2233/1103 1516/2232/1103 +f 660/2670/1104 639/2861/1104 1525/1387/1104 1520/1386/1104 +f 646/2788/1105 664/2555/1105 1035/1711/1105 1524/1710/1105 +f 674/2558/1106 665/2860/1106 1529/1739/1106 1045/1738/1106 +f 673/2621/1107 666/2859/1107 1533/2225/1107 1528/2224/1107 +f 669/2760/1108 667/2858/1108 1537/1391/1108 1532/1390/1108 +f 671/2640/1109 675/2912/1109 1041/1730/1109 1536/1729/1109 +f 685/2561/1110 676/2857/1110 1541/1758/1110 1051/1757/1110 +f 682/2730/1111 677/2856/1111 1545/2217/1111 1540/2216/1111 +f 684/2613/1112 678/2855/1112 1549/1395/1112 1544/1394/1112 +f 680/2786/1113 686/2560/1113 1047/1749/1113 1548/1748/1113 +f 696/2563/1114 687/2854/1114 1553/1777/1114 1057/1776/1114 +f 693/2700/1115 688/2853/1115 1557/2209/1115 1552/2208/1115 +f 691/2758/1116 689/2852/1116 1561/1399/1116 1556/1398/1116 +f 695/2605/1117 697/2913/1117 1053/1768/1117 1560/1767/1117 +f 707/2566/1118 698/2851/1118 1565/1796/1118 1063/1795/1118 +f 704/2702/1119 699/2850/1119 1569/2201/1119 1564/2200/1119 +f 706/2672/1120 700/2849/1120 1573/1403/1120 1568/1402/1120 +f 702/2784/1121 708/2565/1121 1059/1787/1121 1572/1786/1121 +f 718/2568/1122 709/2848/1122 1577/1815/1122 1069/1814/1122 +f 713/2728/1123 710/2847/1123 1581/2193/1123 1576/2192/1123 +f 715/2674/1124 711/2846/1124 1585/1407/1124 1580/1406/1124 +f 717/2642/1125 719/2914/1125 1065/1806/1125 1584/1805/1125 +f 729/2571/1126 720/2845/1126 1589/1834/1126 1075/1833/1126 +f 726/2704/1127 721/2844/1127 1593/2185/1127 1588/2184/1127 +f 724/2756/1128 722/2843/1128 1597/1411/1128 1592/1410/1128 +f 728/2644/1129 730/2570/1129 1071/1825/1129 1596/1824/1129 +f 740/2573/1130 731/2842/1130 1601/1853/1130 1081/1852/1130 +f 737/2726/1131 732/2841/1131 1605/2177/1131 1600/2176/1131 +f 739/2676/1132 733/2840/1132 1609/1415/1132 1604/1414/1132 +f 735/2782/1133 741/2915/1133 1077/1844/1133 1608/1843/1133 +f 751/2576/1134 742/2839/1134 1613/1872/1134 1087/1871/1134 +f 750/2623/1135 743/2838/1135 1617/2169/1135 1612/2168/1135 +f 746/2754/1136 744/2837/1136 1621/1419/1136 1616/1418/1136 +f 748/2646/1137 752/2575/1137 1083/1863/1137 1620/1862/1137 +f 762/2578/1138 753/2836/1138 1625/1891/1138 1093/1890/1138 +f 759/2724/1139 754/2835/1139 1629/2161/1139 1624/2160/1139 +f 761/2615/1140 755/2834/1140 1633/1423/1140 1628/1422/1140 +f 757/2780/1141 763/2916/1141 1089/1882/1141 1632/1881/1141 +f 773/2581/1142 764/2833/1142 1637/1910/1142 1099/1909/1142 +f 770/2706/1143 765/2832/1143 1641/2153/1143 1636/2152/1143 +f 768/2752/1144 766/2831/1144 1645/1427/1144 1640/1426/1144 +f 772/2607/1145 774/2580/1145 1095/1901/1145 1644/1900/1145 +f 784/2583/1146 775/2830/1146 1649/1929/1146 1105/1928/1146 +f 781/2708/1147 776/2829/1147 1653/2145/1147 1648/2144/1147 +f 783/2678/1148 777/2828/1148 1657/1431/1148 1652/1430/1148 +f 779/2778/1149 785/2917/1149 1101/1920/1149 1656/1919/1149 +f 795/2586/1150 786/2827/1150 1661/1948/1150 1111/1947/1150 +f 790/2722/1151 787/2826/1151 1665/2137/1151 1660/2136/1151 +f 792/2680/1152 788/2825/1152 1669/1435/1152 1664/1434/1152 +f 794/2648/1153 796/2585/1153 1107/1939/1153 1668/1938/1153 +f 806/2588/1154 797/2824/1154 1673/1967/1154 1117/1966/1154 +f 803/2710/1155 798/2823/1155 1677/2129/1155 1672/2128/1155 +f 801/2750/1156 799/2822/1156 1681/1439/1156 1676/1438/1156 +f 805/2650/1157 807/2918/1157 1113/1958/1157 1680/1957/1157 +f 817/2591/1158 808/2821/1158 1685/1986/1158 1123/1985/1158 +f 814/2720/1159 809/2820/1159 1689/2121/1159 1684/2120/1159 +f 816/2682/1160 810/2819/1160 1693/1443/1160 1688/1442/1160 +f 812/2776/1161 818/2590/1161 1119/1977/1161 1692/1976/1161 +f 828/2593/1162 819/2818/1162 1697/2005/1162 1129/2004/1162 +f 827/2625/1163 820/2817/1163 1701/2113/1163 1696/2112/1163 +f 823/2748/1164 821/2816/1164 1705/1447/1164 1700/1446/1164 +f 825/2652/1165 829/2919/1165 1125/1996/1165 1704/1995/1165 +f 1139/2598/1166 1138/1468/1166 951/1471/1166 953/2520/1166 452/2055/1166 659/2054/1166 +f 1423/1357/1167 1430/1356/1167 942/2885/1167 944/2768/1167 +f 1419/2287/1168 1426/2286/1168 941/2886/1168 946/2692/1168 +f 990/1585/1169 1422/1584/1169 940/2887/1169 949/2536/1169 +f 1277/2428/1170 1421/1568/1170 940/2887/1170 945/2693/1170 +f 1213/2472/1171 1425/2297/1171 941/2886/1171 943/2769/1171 +f 1149/2430/1172 1429/1355/1172 942/2885/1172 947/2633/1172 +f 1424/1354/1173 1213/2472/1173 943/2769/1173 944/2768/1173 +f 1420/2296/1174 1277/2428/1174 945/2693/1174 946/2692/1174 +f 1428/1558/1175 1149/2430/1175 947/2633/1175 948/2097/1175 +f 1439/1595/1176 994/1594/1176 939/2908/1176 933/2794/1176 +f 1435/1361/1177 1442/1360/1177 931/2882/1177 937/2664/1177 +f 1431/2279/1178 1438/2278/1178 930/2883/1178 935/2738/1178 +f 996/1604/1179 1434/1603/1179 929/2884/1179 938/2538/1179 +f 1279/2450/1180 1433/1587/1180 929/2884/1180 934/2739/1180 +f 1215/2426/1181 1437/2289/1181 930/2883/1181 936/2665/1181 +f 1151/2422/1182 1441/1359/1182 931/2882/1182 932/2795/1182 +f 1440/1577/1183 1151/2422/1183 932/2795/1183 933/2794/1183 +f 1432/2288/1184 1279/2450/1184 934/2739/1184 935/2738/1184 +f 1436/1358/1185 1215/2426/1185 936/2665/1185 937/2664/1185 +f 1451/1614/1186 1000/1613/1186 928/2540/1186 924/2634/1186 +f 1447/1365/1187 1454/1364/1187 920/2879/1187 922/2766/1187 +f 1443/2271/1188 1450/2270/1188 919/2880/1188 926/2619/1188 +f 1002/1623/1189 1446/1622/1189 918/2881/1189 927/2541/1189 +f 1281/2424/1190 1445/1606/1190 918/2881/1190 925/2620/1190 +f 1217/2420/1191 1449/2281/1191 919/2880/1191 921/2767/1191 +f 1153/2498/1192 1453/1363/1192 920/2879/1192 923/2635/1192 +f 1448/1362/1193 1217/2420/1193 921/2767/1193 922/2766/1193 +f 1452/1596/1194 1153/2498/1194 923/2635/1194 924/2634/1194 +f 1444/2280/1195 1281/2424/1195 925/2620/1195 926/2619/1195 +f 1415/1557/1196 982/1556/1196 917/2907/1196 915/2631/1196 +f 1411/1353/1197 1418/1352/1197 909/2888/1197 913/2662/1197 +f 1407/2295/1198 1414/2294/1198 908/2889/1198 911/2740/1198 +f 984/1566/1199 1410/1565/1199 907/2890/1199 916/2534/1199 +f 1275/2448/1200 1409/1549/1200 907/2890/1200 910/2741/1200 +f 1211/2432/1201 1413/2305/1201 908/2889/1201 912/2663/1201 +f 1147/2496/1202 1417/1351/1202 909/2888/1202 914/2632/1202 +f 1408/2304/1203 1275/2448/1203 910/2741/1203 911/2740/1203 +f 1412/1350/1204 1211/2432/1204 912/2663/1204 913/2662/1204 +f 1416/1539/1205 1147/2496/1205 914/2632/1205 915/2631/1205 +f 1403/1538/1206 976/1537/1206 906/2531/1206 900/2796/1206 +f 1399/1349/1207 1406/1348/1207 898/2891/1207 904/2660/1207 +f 1395/2303/1208 1402/2302/1208 897/2892/1208 902/2690/1208 +f 978/1547/1209 1398/1546/1209 896/2893/1209 905/2532/1209 +f 1273/2438/1210 1397/1530/1210 896/2893/1210 901/2691/1210 +f 1209/2324/1211 1401/2313/1211 897/2892/1211 903/2661/1211 +f 1145/2434/1212 1405/1347/1212 898/2891/1212 899/2797/1212 +f 1404/1523/1213 1145/2434/1213 899/2797/1213 900/2796/1213 +f 1396/2312/1214 1273/2438/1214 901/2691/1214 902/2690/1214 +f 1400/1346/1215 1209/2324/1215 903/2661/1215 904/2660/1215 +f 1391/1522/1216 970/1453/1216 895/2906/1216 893/2601/1216 +f 1387/1345/1217 1394/1344/1217 887/2894/1217 889/2770/1217 +f 1383/2311/1218 1390/2310/1218 886/2895/1218 891/2688/1218 +f 972/1528/1219 1386/1527/1219 885/2896/1219 894/2529/1219 +f 1271/2326/1220 1385/1515/1220 885/2896/1220 890/2689/1220 +f 1207/2437/1221 1389/2087/1221 886/2895/1221 888/2771/1221 +f 1143/2089/1222 1393/1343/1222 887/2894/1222 892/2602/1222 +f 1388/1342/1223 1207/2437/1223 888/2771/1223 889/2770/1223 +f 1384/2086/1224 1271/2326/1224 890/2689/1224 891/2688/1224 +f 1392/1508/1225 1143/2089/1225 892/2602/1225 893/2601/1225 +f 1381/1507/1226 964/1335/1226 884/2526/1226 876/2807/1226 +f 1377/1341/1227 1380/1340/1227 878/2772/1227 875/2808/1227 +f 1373/2085/1228 1376/2084/1228 882/2684/1228 874/2809/1228 +f 966/1513/1229 1372/1512/1229 880/2714/1229 883/2527/1229 +f 1329/2327/1230 1373/2085/1230 874/2809/1230 879/2715/1230 +f 1265/2436/1231 1377/1341/1231 875/2808/1231 881/2685/1231 +f 1201/2088/1232 1381/1507/1232 876/2807/1232 877/2773/1232 +f 1380/1340/1233 1201/2088/1233 877/2773/1233 878/2772/1233 +f 1372/1512/1234 1329/2327/1234 879/2715/1234 880/2714/1234 +f 1376/2084/1235 1265/2436/1235 881/2685/1235 882/2684/1235 +f 960/1498/1236 1348/1497/1236 867/2716/1236 872/2524/1236 +f 1349/2319/1237 1352/2318/1237 869/2686/1237 863/2806/1237 +f 1357/1492/1238 958/1463/1238 873/2902/1238 865/2800/1238 +f 1353/1459/1239 1356/1458/1239 871/2654/1239 864/2803/1239 +f 1331/2343/1240 1349/2319/1240 863/2806/1240 866/2717/1240 +f 1267/2443/1241 1353/1459/1241 864/2803/1241 868/2687/1241 +f 1203/2339/1242 1357/1492/1242 865/2800/1242 870/2655/1242 +f 1348/1497/1243 1331/2343/1243 866/2717/1243 867/2716/1243 +f 1352/2318/1244 1267/2443/1244 868/2687/1244 869/2686/1244 +f 1356/1458/1245 1203/2339/1245 870/2655/1245 871/2654/1245 +f 1345/2059/1246 955/1479/1246 861/2904/1246 852/2804/1246 +f 1343/2920/1247 1342/2921/1247 853/2903/1247 860/2627/1247 +f 1337/2317/1248 1340/2316/1248 856/2899/1248 854/2798/1248 +f 1335/2659/1249 952/2922/1249 862/2898/1249 858/2656/1249 +f 1333/2091/1250 1345/2059/1250 852/2804/1250 859/2628/1250 +f 1269/2341/1251 1341/2323/1251 853/2801/1251 855/2743/1251 +f 1205/2495/1252 1337/2317/1252 854/2798/1252 857/2657/1252 +f 1340/2316/1253 1269/2341/1253 855/2743/1253 856/2742/1253 +f 1336/1470/1254 1205/2495/1254 857/2657/1254 858/2656/1254 +f 1344/2092/1255 1333/2091/1255 859/2628/1255 860/2627/1255 +f 1367/2043/1256 1141/2042/1256 850/2599/1256 847/2718/1256 +f 1363/2083/1257 1370/2082/1257 841/2815/1257 849/2617/1257 +f 1359/2079/1258 1366/2078/1258 842/2813/1258 845/2774/1258 +f 1137/2034/1259 1362/2033/1259 843/2811/1259 851/2897/1259 +f 1325/2090/1260 1369/2093/1260 841/2815/1260 846/2719/1260 +f 1261/2340/1261 1365/2315/1261 842/2813/1261 848/2618/1261 +f 1197/2494/1262 1361/1469/1262 843/2811/1262 844/2775/1262 +f 1360/2314/1263 1197/2494/1263 844/2775/1263 845/2774/1263 +f 1368/2058/1264 1325/2090/1264 846/2719/1264 847/2718/1264 +f 1364/2322/1265 1261/2340/1265 848/2618/1265 849/2617/1265 +f 1709/2024/1266 1135/2023/1266 839/2596/1266 830/2814/1266 +f 1713/2105/1267 1708/2104/1267 836/2712/1267 831/2812/1267 +f 1717/1451/1268 1712/1450/1268 834/2746/1268 832/2810/1268 +f 1131/2015/1269 1716/2014/1269 838/2609/1269 840/2595/1269 +f 1327/2346/1270 1709/2024/1270 830/2814/1270 835/2713/1270 +f 1263/2492/1271 1713/2105/1271 831/2812/1271 833/2747/1271 +f 1199/2344/1272 1717/1451/1272 832/2810/1272 837/2610/1272 +f 1712/1450/1273 1263/2492/1273 833/2747/1273 834/2746/1273 +f 1708/2104/1274 1327/2346/1274 835/2713/1274 836/2712/1274 +f 1716/2014/1275 1199/2344/1275 837/2610/1275 838/2609/1275 +f 1703/2013/1276 1126/2012/1276 829/2919/1276 825/2652/1276 +f 1699/1449/1277 1706/1448/1277 821/2816/1277 823/2748/1277 +f 1695/2103/1278 1702/2102/1278 820/2817/1278 827/2625/1278 +f 1128/2022/1279 1698/2021/1279 819/2818/1279 828/2593/1279 +f 1323/2352/1280 1697/2005/1280 819/2818/1280 826/2626/1280 +f 1259/2348/1281 1701/2113/1281 820/2817/1281 822/2749/1281 +f 1195/2516/1282 1705/1447/1282 821/2816/1282 824/2653/1282 +f 1700/1446/1283 1259/2348/1283 822/2749/1283 823/2748/1283 +f 1704/1995/1284 1195/2516/1284 824/2653/1284 825/2652/1284 +f 1696/2112/1285 1323/2352/1285 826/2626/1285 827/2625/1285 +f 1691/1994/1286 1120/1993/1286 818/2590/1286 812/2776/1286 +f 1687/1445/1287 1694/1444/1287 810/2819/1287 816/2682/1287 +f 1683/2111/1288 1690/2110/1288 809/2820/1288 814/2720/1288 +f 1122/2003/1289 1686/2002/1289 808/2821/1289 817/2591/1289 +f 1321/2468/1290 1685/1986/1290 808/2821/1290 813/2721/1290 +f 1257/2354/1291 1689/2121/1291 809/2820/1291 815/2683/1291 +f 1193/2350/1292 1693/1443/1292 810/2819/1292 811/2777/1292 +f 1692/1976/1293 1193/2350/1293 811/2777/1293 812/2776/1293 +f 1684/2120/1294 1321/2468/1294 813/2721/1294 814/2720/1294 +f 1688/1442/1295 1257/2354/1295 815/2683/1295 816/2682/1295 +f 1679/1975/1296 1114/1974/1296 807/2918/1296 805/2650/1296 +f 1675/1441/1297 1682/1440/1297 799/2822/1297 801/2750/1297 +f 1671/2119/1298 1678/2118/1298 798/2823/1298 803/2710/1298 +f 1116/1984/1299 1674/1983/1299 797/2824/1299 806/2588/1299 +f 1319/2356/1300 1673/1967/1300 797/2824/1300 802/2711/1300 +f 1255/2490/1301 1677/2129/1301 798/2823/1301 800/2751/1301 +f 1191/2358/1302 1681/1439/1302 799/2822/1302 804/2651/1302 +f 1676/1438/1303 1255/2490/1303 800/2751/1303 801/2750/1303 +f 1672/2128/1304 1319/2356/1304 802/2711/1304 803/2710/1304 +f 1680/1957/1305 1191/2358/1305 804/2651/1305 805/2650/1305 +f 1667/1956/1306 1108/1955/1306 796/2585/1306 794/2648/1306 +f 1663/1437/1307 1670/1436/1307 788/2825/1307 792/2680/1307 +f 1659/2127/1308 1666/2126/1308 787/2826/1308 790/2722/1308 +f 1110/1965/1309 1662/1964/1309 786/2827/1309 795/2586/1309 +f 1317/2466/1310 1661/1948/1310 786/2827/1310 789/2723/1310 +f 1253/2360/1311 1665/2137/1311 787/2826/1311 791/2681/1311 +f 1189/2514/1312 1669/1435/1312 788/2825/1312 793/2649/1312 +f 1660/2136/1313 1317/2466/1313 789/2723/1313 790/2722/1313 +f 1664/1434/1314 1253/2360/1314 791/2681/1314 792/2680/1314 +f 1668/1938/1315 1189/2514/1315 793/2649/1315 794/2648/1315 +f 1655/1937/1316 1102/1936/1316 785/2917/1316 779/2778/1316 +f 1651/1433/1317 1658/1432/1317 777/2828/1317 783/2678/1317 +f 1647/2135/1318 1654/2134/1318 776/2829/1318 781/2708/1318 +f 1104/1946/1319 1650/1945/1319 775/2830/1319 784/2583/1319 +f 1315/2364/1320 1649/1929/1320 775/2830/1320 780/2709/1320 +f 1251/2488/1321 1653/2145/1321 776/2829/1321 782/2679/1321 +f 1187/2362/1322 1657/1431/1322 777/2828/1322 778/2779/1322 +f 1656/1919/1323 1187/2362/1323 778/2779/1323 779/2778/1323 +f 1648/2144/1324 1315/2364/1324 780/2709/1324 781/2708/1324 +f 1652/1430/1325 1251/2488/1325 782/2679/1325 783/2678/1325 +f 1643/1918/1326 1096/1917/1326 774/2580/1326 772/2607/1326 +f 1639/1429/1327 1646/1428/1327 766/2831/1327 768/2752/1327 +f 1635/2143/1328 1642/2142/1328 765/2832/1328 770/2706/1328 +f 1098/1927/1329 1638/1926/1329 764/2833/1329 773/2581/1329 +f 1313/2464/1330 1637/1910/1330 764/2833/1330 769/2707/1330 +f 1249/2366/1331 1641/2153/1331 765/2832/1331 767/2753/1331 +f 1185/2512/1332 1645/1427/1332 766/2831/1332 771/2608/1332 +f 1640/1426/1333 1249/2366/1333 767/2753/1333 768/2752/1333 +f 1636/2152/1334 1313/2464/1334 769/2707/1334 770/2706/1334 +f 1644/1900/1335 1185/2512/1335 771/2608/1335 772/2607/1335 +f 1631/1899/1336 1090/1898/1336 763/2916/1336 757/2780/1336 +f 1627/1425/1337 1634/1424/1337 755/2834/1337 761/2615/1337 +f 1623/2151/1338 1630/2150/1338 754/2835/1338 759/2724/1338 +f 1092/1908/1339 1626/1907/1339 753/2836/1339 762/2578/1339 +f 1311/2370/1340 1625/1891/1340 753/2836/1340 758/2725/1340 +f 1247/2486/1341 1629/2161/1341 754/2835/1341 760/2616/1341 +f 1183/2368/1342 1633/1423/1342 755/2834/1342 756/2781/1342 +f 1632/1881/1343 1183/2368/1343 756/2781/1343 757/2780/1343 +f 1624/2160/1344 1311/2370/1344 758/2725/1344 759/2724/1344 +f 1628/1422/1345 1247/2486/1345 760/2616/1345 761/2615/1345 +f 1619/1880/1346 1084/1879/1346 752/2575/1346 748/2646/1346 +f 1615/1421/1347 1622/1420/1347 744/2837/1347 746/2754/1347 +f 1611/2159/1348 1618/2158/1348 743/2838/1348 750/2623/1348 +f 1086/1889/1349 1614/1888/1349 742/2839/1349 751/2576/1349 +f 1309/2376/1350 1613/1872/1350 742/2839/1350 749/2624/1350 +f 1245/2372/1351 1617/2169/1351 743/2838/1351 745/2755/1351 +f 1181/2510/1352 1621/1419/1352 744/2837/1352 747/2647/1352 +f 1616/1418/1353 1245/2372/1353 745/2755/1353 746/2754/1353 +f 1620/1862/1354 1181/2510/1354 747/2647/1354 748/2646/1354 +f 1612/2168/1355 1309/2376/1355 749/2624/1355 750/2623/1355 +f 1607/1861/1356 1078/1860/1356 741/2915/1356 735/2782/1356 +f 1603/1417/1357 1610/1416/1357 733/2840/1357 739/2676/1357 +f 1599/2167/1358 1606/2166/1358 732/2841/1358 737/2726/1358 +f 1080/1870/1359 1602/1869/1359 731/2842/1359 740/2573/1359 +f 1307/2462/1360 1601/1853/1360 731/2842/1360 736/2727/1360 +f 1243/2378/1361 1605/2177/1361 732/2841/1361 738/2677/1361 +f 1179/2374/1362 1609/1415/1362 733/2840/1362 734/2783/1362 +f 1608/1843/1363 1179/2374/1363 734/2783/1363 735/2782/1363 +f 1600/2176/1364 1307/2462/1364 736/2727/1364 737/2726/1364 +f 1604/1414/1365 1243/2378/1365 738/2677/1365 739/2676/1365 +f 1595/1842/1366 1072/1841/1366 730/2570/1366 728/2644/1366 +f 1591/1413/1367 1598/1412/1367 722/2843/1367 724/2756/1367 +f 1587/2175/1368 1594/2174/1368 721/2844/1368 726/2704/1368 +f 1074/1851/1369 1590/1850/1369 720/2845/1369 729/2571/1369 +f 1305/2380/1370 1589/1834/1370 720/2845/1370 725/2705/1370 +f 1241/2484/1371 1593/2185/1371 721/2844/1371 723/2757/1371 +f 1177/2382/1372 1597/1411/1372 722/2843/1372 727/2645/1372 +f 1592/1410/1373 1241/2484/1373 723/2757/1373 724/2756/1373 +f 1588/2184/1374 1305/2380/1374 725/2705/1374 726/2704/1374 +f 1596/1824/1375 1177/2382/1375 727/2645/1375 728/2644/1375 +f 1583/1823/1376 1066/1822/1376 719/2914/1376 717/2642/1376 +f 1579/1409/1377 1586/1408/1377 711/2846/1377 715/2674/1377 +f 1575/2183/1378 1582/2182/1378 710/2847/1378 713/2728/1378 +f 1068/1832/1379 1578/1831/1379 709/2848/1379 718/2568/1379 +f 1303/2460/1380 1577/1815/1380 709/2848/1380 712/2729/1380 +f 1239/2384/1381 1581/2193/1381 710/2847/1381 714/2675/1381 +f 1175/2508/1382 1585/1407/1382 711/2846/1382 716/2643/1382 +f 1576/2192/1383 1303/2460/1383 712/2729/1383 713/2728/1383 +f 1580/1406/1384 1239/2384/1384 714/2675/1384 715/2674/1384 +f 1584/1805/1385 1175/2508/1385 716/2643/1385 717/2642/1385 +f 1571/1804/1386 1060/1803/1386 708/2565/1386 702/2784/1386 +f 1567/1405/1387 1574/1404/1387 700/2849/1387 706/2672/1387 +f 1563/2191/1388 1570/2190/1388 699/2850/1388 704/2702/1388 +f 1062/1813/1389 1566/1812/1389 698/2851/1389 707/2566/1389 +f 1301/2388/1390 1565/1796/1390 698/2851/1390 703/2703/1390 +f 1237/2482/1391 1569/2201/1391 699/2850/1391 705/2673/1391 +f 1173/2386/1392 1573/1403/1392 700/2849/1392 701/2785/1392 +f 1572/1786/1393 1173/2386/1393 701/2785/1393 702/2784/1393 +f 1564/2200/1394 1301/2388/1394 703/2703/1394 704/2702/1394 +f 1568/1402/1395 1237/2482/1395 705/2673/1395 706/2672/1395 +f 1559/1785/1396 1054/1784/1396 697/2913/1396 695/2605/1396 +f 1555/1401/1397 1562/1400/1397 689/2852/1397 691/2758/1397 +f 1551/2199/1398 1558/2198/1398 688/2853/1398 693/2700/1398 +f 1056/1794/1399 1554/1793/1399 687/2854/1399 696/2563/1399 +f 1299/2458/1400 1553/1777/1400 687/2854/1400 692/2701/1400 +f 1235/2390/1401 1557/2209/1401 688/2853/1401 690/2759/1401 +f 1171/2506/1402 1561/1399/1402 689/2852/1402 694/2606/1402 +f 1556/1398/1403 1235/2390/1403 690/2759/1403 691/2758/1403 +f 1552/2208/1404 1299/2458/1404 692/2701/1404 693/2700/1404 +f 1560/1767/1405 1171/2506/1405 694/2606/1405 695/2605/1405 +f 1547/1766/1406 1048/1765/1406 686/2560/1406 680/2786/1406 +f 1543/1397/1407 1550/1396/1407 678/2855/1407 684/2613/1407 +f 1539/2207/1408 1546/2206/1408 677/2856/1408 682/2730/1408 +f 1050/1775/1409 1542/1774/1409 676/2857/1409 685/2561/1409 +f 1297/2394/1410 1541/1758/1410 676/2857/1410 681/2731/1410 +f 1233/2480/1411 1545/2217/1411 677/2856/1411 683/2614/1411 +f 1169/2392/1412 1549/1395/1412 678/2855/1412 679/2787/1412 +f 1548/1748/1413 1169/2392/1413 679/2787/1413 680/2786/1413 +f 1540/2216/1414 1297/2394/1414 681/2731/1414 682/2730/1414 +f 1544/1394/1415 1233/2480/1415 683/2614/1415 684/2613/1415 +f 1535/1747/1416 1042/1746/1416 675/2912/1416 671/2640/1416 +f 1531/1393/1417 1538/1392/1417 667/2858/1417 669/2760/1417 +f 1527/2215/1418 1534/2214/1418 666/2859/1418 673/2621/1418 +f 1044/1756/1419 1530/1755/1419 665/2860/1419 674/2558/1419 +f 1295/2400/1420 1529/1739/1420 665/2860/1420 672/2622/1420 +f 1231/2396/1421 1533/2225/1421 666/2859/1421 668/2761/1421 +f 1167/2504/1422 1537/1391/1422 667/2858/1422 670/2641/1422 +f 1532/1390/1423 1231/2396/1423 668/2761/1423 669/2760/1423 +f 1536/1729/1424 1167/2504/1424 670/2641/1424 671/2640/1424 +f 1528/2224/1425 1295/2400/1425 672/2622/1425 673/2621/1425 +f 1523/1728/1426 1036/1727/1426 664/2555/1426 646/2788/1426 +f 1519/1389/1427 1526/1388/1427 639/2861/1427 660/2670/1427 +f 1515/2223/1428 1522/2222/1428 636/2862/1428 653/2732/1428 +f 1038/1737/1429 1518/1736/1429 632/2863/1429 663/2556/1429 +f 1293/2456/1430 1517/1720/1430 632/2863/1430 650/2733/1430 +f 1229/2402/1431 1521/2233/1431 636/2862/1431 657/2671/1431 +f 1165/2398/1432 1525/1387/1432 639/2861/1432 643/2789/1432 +f 1524/1710/1433 1165/2398/1433 643/2789/1433 646/2788/1433 +f 1516/2232/1434 1293/2456/1434 650/2733/1434 653/2732/1434 +f 1520/1386/1435 1229/2402/1435 657/2671/1435 660/2670/1435 +f 1511/1709/1436 1030/1708/1436 629/2911/1436 622/2638/1436 +f 1507/1385/1437 1514/1384/1437 601/2864/1437 608/2762/1437 +f 1503/2231/1438 1510/2230/1438 597/2865/1438 615/2698/1438 +f 1032/1718/1439 1506/1717/1439 594/2866/1439 625/2553/1439 +f 1291/2404/1440 1505/1701/1440 594/2866/1440 611/2699/1440 +f 1227/2478/1441 1509/2241/1441 597/2865/1441 604/2763/1441 +f 1163/2406/1442 1513/1383/1442 601/2864/1442 618/2639/1442 +f 1508/1382/1443 1227/2478/1443 604/2763/1443 608/2762/1443 +f 1504/2240/1444 1291/2404/1444 611/2699/1444 615/2698/1444 +f 1512/1691/1445 1163/2406/1445 618/2639/1445 622/2638/1445 +f 1499/1690/1446 1024/1689/1446 590/2550/1446 583/2636/1446 +f 1495/1381/1447 1502/1380/1447 562/2867/1447 576/2668/1447 +f 1491/2239/1448 1498/2238/1448 559/2868/1448 569/2734/1448 +f 1026/1699/1449 1494/1698/1449 555/2869/1449 587/2551/1449 +f 1289/2454/1450 1493/1682/1450 555/2869/1450 566/2735/1450 +f 1225/2408/1451 1497/2249/1451 559/2868/1451 573/2669/1451 +f 1161/2502/1452 1501/1379/1452 562/2867/1452 580/2637/1452 +f 1492/2248/1453 1289/2454/1453 566/2735/1453 569/2734/1453 +f 1496/1378/1454 1225/2408/1454 573/2669/1454 576/2668/1454 +f 1500/1672/1455 1161/2502/1455 580/2637/1455 583/2636/1455 +f 1487/1671/1456 1018/1670/1456 552/2910/1456 531/2790/1456 +f 1483/1377/1457 1490/1376/1457 524/2870/1457 545/2666/1457 +f 1479/2247/1458 1486/2246/1458 520/2871/1458 538/2696/1458 +f 1020/1680/1459 1482/1679/1459 517/2872/1459 548/2548/1459 +f 1287/2412/1460 1481/1663/1460 517/2872/1460 534/2697/1460 +f 1223/2476/1461 1485/2257/1461 520/2871/1461 541/2667/1461 +f 1159/2410/1462 1489/1375/1462 524/2870/1462 527/2791/1462 +f 1488/1653/1463 1159/2410/1463 527/2791/1463 531/2790/1463 +f 1480/2256/1464 1287/2412/1464 534/2697/1464 538/2696/1464 +f 1484/1374/1465 1223/2476/1465 541/2667/1465 545/2666/1465 +f 1475/1652/1466 1012/1651/1466 513/2545/1466 506/2603/1466 +f 1471/1373/1467 1478/1372/1467 485/2873/1467 492/2764/1467 +f 1467/2255/1468 1474/2254/1468 482/2874/1468 499/2694/1468 +f 1014/1661/1469 1470/1660/1469 478/2875/1469 510/2546/1469 +f 1285/2452/1470 1469/1644/1470 478/2875/1470 496/2695/1470 +f 1221/2414/1471 1473/2265/1471 482/2874/1471 489/2765/1471 +f 1157/2500/1472 1477/1371/1472 485/2873/1472 503/2604/1472 +f 1472/1370/1473 1221/2414/1473 489/2765/1473 492/2764/1473 +f 1468/2264/1474 1285/2452/1474 496/2695/1474 499/2694/1474 +f 1476/1634/1475 1157/2500/1475 503/2604/1475 506/2603/1475 +f 1463/1633/1476 1006/1632/1476 1719/2909/1476 1725/2792/1476 +f 1459/1369/1477 1466/1368/1477 1727/2876/1477 1721/2611/1477 +f 1455/2263/1478 1462/2262/1478 1728/2877/1478 1723/2736/1478 +f 1008/1642/1479 1458/1641/1479 1729/2878/1479 1720/2543/1479 +f 1283/2418/1480 1457/1625/1480 1729/2878/1480 1724/2737/1480 +f 1219/2474/1481 1461/2273/1481 1728/2877/1481 1722/2612/1481 +f 1155/2416/1482 1465/1367/1482 1727/2876/1482 1726/2793/1482 +f 1464/1615/1483 1155/2416/1483 1726/2793/1483 1725/2792/1483 +f 1456/2272/1484 1283/2418/1484 1724/2737/1484 1723/2736/1484 +f 1460/1366/1485 1219/2474/1485 1722/2612/1485 1721/2611/1485 +f 1868/2923/1486 1762/2924/1486 1731/1491/1486 1730/1490/1486 1867/2925/1486 +f 1869/2926/1487 1732/1506/1487 1731/1491/1487 1762/2924/1487 1843/2927/1487 +f 1735/1555/1488 1871/2928/1488 1849/592/1488 1763/591/1488 1736/1574/1488 +f 1873/2929/1489 1737/1593/1489 1736/1574/1489 1763/591/1489 1851/593/1489 +f 1740/1650/1490 1739/1631/1490 1875/2930/1490 1876/2931/1490 +f 1741/1669/1491 1740/1650/1491 1876/2931/1491 1878/2932/1491 +f 1742/1688/1492 1741/1669/1492 1878/2932/1492 1879/2933/1492 +f 1829/2934/1493 1745/1745/1493 1744/1726/1493 1881/2935/1493 +f 1882/2936/1494 1746/1764/1494 1745/1745/1494 1829/2934/1494 +f 1830/2937/1495 1749/1821/1495 1748/1802/1495 1831/2938/1495 +f 1832/2939/1496 1750/1840/1496 1749/1821/1496 1830/2937/1496 +f 1833/2940/1497 1751/1859/1497 1750/1840/1497 1832/2939/1497 +f 1835/2941/1498 1754/1916/1498 1753/1897/1498 1834/2942/1498 +f 1836/2943/1499 1755/1935/1499 1754/1916/1499 1835/2941/1499 +f 1837/2944/1500 1758/1992/1500 1757/1973/1500 1838/2945/1500 +f 1759/2011/1501 1758/1992/1501 1837/2944/1501 1839/595/1501 1764/594/1501 +f 1840/2946/1502 1760/2030/1502 1759/2011/1502 1764/594/1502 1841/597/1502 +f 1843/2927/287 1762/2924/287 1845/2947/287 +f 1866/2948/1503 1771/2949/1503 1864/2950/1503 1863/2951/1503 1865/2952/1503 1761/2049/1503 1760/2030/1503 1840/2946/1503 +f 1867/2925/1504 1730/1490/1504 1761/2049/1504 1865/2952/1504 1870/2953/1504 1772/2954/1504 1872/2955/1504 +f 1845/2947/287 1762/2924/287 1868/2923/287 +f 1905/2956/1505 1779/2957/1505 1904/2958/1505 1903/2959/1505 1756/1954/1505 1755/1935/1505 1836/2943/1505 +f 1909/2960/1506 1780/2961/1506 1906/2962/1506 1838/2945/1506 1757/1973/1506 1756/1954/1506 1903/2959/1506 1910/2963/1506 +f 1938/2964/1507 1787/2965/1507 1937/2966/1507 1935/2967/1507 1936/2968/1507 1752/1878/1507 1751/1859/1507 1833/2940/1507 +f 1936/2968/1508 1943/2969/1508 1788/2970/1508 1941/2971/1508 1834/2942/1508 1753/1897/1508 1752/1878/1508 +f 1967/2972/1509 1795/2973/1509 1964/2974/1509 1965/2975/1509 1747/1783/1509 1746/1764/1509 1882/2936/1509 +f 1969/2976/1510 1796/2977/1510 1970/2978/1510 1831/2938/1510 1748/1802/1510 1747/1783/1510 1965/2975/1510 1968/2979/1510 +f 1892/2980/1511 1803/2981/1511 1889/2982/1511 1891/2983/1511 1888/2984/1511 1743/1707/1511 1742/1688/1511 1879/2933/1511 +f 1744/1726/1512 1743/1707/1512 1888/2984/1512 1894/2985/1512 1804/2986/1512 1897/2987/1512 1881/2935/1512 +f 1922/2988/1513 1811/2989/1513 1920/2990/1513 1921/2991/1513 1738/1612/1513 1737/1593/1513 1873/2929/1513 +f 1927/2992/1514 1812/2993/1514 1924/2994/1514 1875/2930/1514 1739/1631/1514 1738/1612/1514 1921/2991/1514 1926/2995/1514 +f 1820/2996/1515 1819/2997/1515 1733/1521/1515 1732/1506/1515 1869/2926/1515 1946/2998/1515 +f 1953/2999/1516 1821/3000/1516 1949/3001/1516 1948/3002/1516 1734/1536/1516 1733/1521/1516 1819/2997/1516 1952/3003/1516 1954/3004/1516 +f 1871/2928/1517 1735/1555/1517 1734/1536/1517 1948/3002/1517 +o WBL_b1.002_Cylinder.033 +usemtl besi_roda +s off +f 2122/3005/1518 2127/3006/1518 2132/3007/1518 2137/3008/1518 2142/3009/1518 2147/3010/1518 2153/3011/1518 2160/3012/1518 2167/3013/1518 2174/3014/1518 2181/3015/1518 2188/3016/1518 2195/3017/1518 2202/3018/1518 2209/3019/1518 2216/3020/1518 2223/3021/1518 2230/3022/1518 2237/3023/1518 2244/3024/1518 2251/3025/1518 2258/3026/1518 2265/3027/1518 2272/3028/1518 2279/3029/1518 2286/3030/1518 2293/3031/1518 2300/3032/1518 2307/3033/1518 2314/3034/1518 2321/3035/1518 2328/3036/1518 +f 3441/3037/1519 3442/3038/1519 3440/3039/1519 3439/3040/1519 +f 3437/3041/1520 3438/3042/1520 3442/3038/1520 3441/3037/1520 +f 3449/3043/1521 3450/3044/1521 3448/3045/1521 3447/3046/1521 +f 3445/3047/1522 3446/3048/1522 3450/3044/1522 3449/3043/1522 +f 3457/3049/1523 3458/3050/1523 3456/3051/1523 3455/3052/1523 +f 3453/3053/1524 3454/3054/1524 3458/3050/1524 3457/3049/1524 +f 3465/3055/1525 3466/3056/1525 3464/3057/1525 3463/3058/1525 +f 3461/3059/1526 3462/3060/1526 3466/3056/1526 3465/3055/1526 +f 3473/3061/1527 3474/3062/1527 3472/3063/1527 3471/3064/1527 +f 3469/3065/1528 3470/3066/1528 3474/3062/1528 3473/3061/1528 +f 3481/3067/1529 3482/3068/1529 3480/3069/1529 3479/3070/1529 +f 3477/3071/1530 3478/3072/1530 3482/3068/1530 3481/3067/1530 +f 3489/3073/1531 3490/3074/1531 3488/3075/1531 3487/3076/1531 +f 3485/3077/1532 3486/3078/1532 3490/3074/1532 3489/3073/1532 +f 3520/3079/1533 3435/3080/1533 3521/3081/1533 +f 3435/3080/1533 3520/3079/1533 3523/3082/1533 +f 3436/3083/1533 3511/3084/1533 3532/3085/1533 +f 3436/3083/1534 3532/3085/1534 3513/3086/1534 +f 3562/3087/1535 3536/3088/1535 3443/3089/1535 3438/3090/1535 3437/3091/1535 3444/3092/1535 3542/3093/1535 3565/3094/1535 +f 3444/3095/1536 3437/3096/1536 3441/3097/1536 3568/3098/1536 3567/3099/1536 3544/3100/1536 +f 3571/3101/1537 3442/3102/1537 3438/3103/1537 3443/3104/1537 3538/3105/1537 3570/3106/1537 +f 3591/3107/1538 3576/3108/1538 3451/3109/1538 3446/3110/1538 3445/3111/1538 3452/3112/1538 3581/3113/1538 3595/3114/1538 +f 3452/3115/1539 3445/3116/1539 3449/3117/1539 3603/3118/1539 3597/3119/1539 3578/3120/1539 +f 3605/3121/1540 3450/3122/1540 3446/3123/1540 3451/3124/1540 3577/3125/1540 3604/3126/1540 +f 3627/3127/1541 3609/3128/1541 3459/3129/1541 3454/3130/1541 3453/3131/1541 3460/3132/1541 3615/3133/1541 3628/3134/1541 3629/3135/1541 +f 3460/3136/1542 3453/3137/1542 3457/3138/1542 3631/3139/1542 3630/3140/1542 3613/3141/1542 +f 3635/3142/1543 3458/3143/1543 3454/3144/1543 3459/3145/1543 3610/3146/1543 3634/3147/1543 +f 3651/3148/1544 3636/3149/1544 3467/3150/1544 3462/3151/1544 3461/3152/1544 3468/3153/1544 3641/3154/1544 3652/3155/1544 +f 3468/3156/1545 3461/3157/1545 3465/3158/1545 3558/3159/1545 3653/3160/1545 3642/3161/1545 +f 3557/3162/1546 3466/3163/1546 3462/3164/1546 3467/3165/1546 3639/3166/1546 3654/3167/1546 +f 3579/3168/1547 3561/3169/1547 3475/3170/1547 3470/3171/1547 3469/3172/1547 3476/3173/1547 3566/3174/1547 3580/3175/1547 +f 3476/3176/1548 3469/3177/1548 3473/3178/1548 3585/3179/1548 3584/3180/1548 3569/3181/1548 +f 3590/3182/1549 3474/3183/1549 3470/3184/1549 3475/3185/1549 3564/3186/1549 3587/3187/1549 +f 3606/3188/1550 3592/3189/1550 3483/3190/1550 3478/3191/1550 3477/3192/1550 3484/3193/1550 3599/3194/1550 3611/3195/1550 +f 3484/3196/1551 3477/3197/1551 3481/3198/1551 3614/3199/1551 3612/3200/1551 3596/3201/1551 +f 3617/3202/1552 3482/3203/1552 3478/3204/1552 3483/3205/1552 3594/3206/1552 3616/3207/1552 +f 3638/3208/1553 3624/3209/1553 3491/3210/1553 3492/3211/1553 3486/3212/1553 3485/3213/1553 3493/3214/1553 3625/3215/1553 3643/3216/1553 3644/3217/1553 +f 3493/3218/1554 3485/3219/1554 3489/3220/1554 3648/3221/1554 3646/3222/1554 3621/3223/1554 +f 3650/3224/1555 3490/3225/1555 3486/3226/1555 3492/3227/1555 3618/3228/1555 3649/3229/1555 +f 3494/3230/1556 3565/3231/1556 3542/3232/1556 3537/3233/1556 3535/3234/1556 +f 3515/3235/1556 3517/3236/1556 3540/3237/1556 3539/3238/1556 3544/3239/1556 3567/3240/1556 3649/3241/1556 3618/3242/1556 3541/3243/1556 +f 3638/3244/1556 3495/3245/1556 3626/3246/1556 3624/3247/1556 +f 3593/3248/1557 3592/3249/1557 3606/3250/1557 3496/3251/1557 3598/3252/1557 +f 3643/3253/1557 3625/3254/1557 3626/3246/1557 3495/3245/1557 +f 3620/3255/1557 3621/3256/1557 3646/3257/1557 3616/3258/1557 3594/3259/1557 3545/3260/1557 3523/3261/1557 3520/3262/1557 3521/3263/1557 3543/3264/1557 +f 3587/3265/1558 3564/3266/1558 3551/3267/1558 3550/3268/1558 3548/3269/1558 3547/3270/1558 3596/3271/1558 3612/3272/1558 +f 3497/3273/1558 3563/3274/1558 3561/3275/1558 3579/3276/1558 +f 3598/3252/1558 3496/3251/1558 3611/3277/1558 3599/3278/1558 +f 3654/3279/1559 3639/3280/1559 3554/3281/1559 3501/3282/1559 3553/3283/1559 3569/3284/1559 3584/3285/1559 +f 3498/3286/1559 3640/3287/1559 3637/3288/1559 3636/3289/1559 3651/3290/1559 +f 3566/3291/1559 3560/3292/1559 3563/3274/1559 3497/3273/1559 3580/3293/1559 +f 3498/3286/1560 3652/3294/1560 3641/3295/1560 3640/3287/1560 +f 3505/3296/1560 3504/3297/1560 3502/3298/1560 3503/3299/1560 3642/3300/1560 3653/3301/1560 3634/3302/1560 3610/3303/1560 +f 3627/3304/1560 3499/3305/1560 3607/3306/1560 3609/3307/1560 +f 3633/3308/1561 3518/3309/1561 3519/3310/1561 3522/3311/1561 3600/3312/1561 3617/3313/1561 3616/3314/1561 3646/3315/1561 3648/3316/1561 +f 3495/3317/1561 3644/3318/1561 3643/3319/1561 +f 3556/3320/1562 3557/3321/1562 3654/3322/1562 3584/3323/1562 3585/3324/1562 3574/3325/1562 3527/3326/1562 3526/3327/1562 3645/3328/1562 +f 3580/3329/1533 3497/3330/1533 3579/3331/1533 +f 3602/3332/1563 3601/3333/1563 3524/3334/1563 3525/3335/1563 3572/3336/1563 3573/3337/1563 3590/3338/1563 3587/3339/1563 3612/3340/1563 3614/3341/1563 +f 3611/3342/1533 3496/3343/1533 3606/3344/1533 +f 3629/3345/1564 3499/3346/1564 3627/3347/1564 +f 3647/3348/1565 3528/3349/1565 3529/3350/1565 3619/3351/1565 3622/3352/1565 3635/3353/1565 3634/3354/1565 3653/3355/1565 3558/3356/1565 3559/3357/1565 +f 3498/3358/1533 3651/3359/1533 3652/3360/1533 +f 3615/3361/1566 3608/3362/1566 3607/3306/1566 3499/3305/1566 3628/3363/1566 +f 3508/3364/1566 3507/3365/1566 3506/3366/1566 3613/3367/1566 3630/3368/1566 3604/3369/1566 3577/3370/1566 +f 3591/3371/1567 3500/3372/1567 3582/3373/1567 3575/3374/1567 3576/3375/1567 +f 3582/3373/1568 3500/3372/1568 3595/3376/1568 3581/3377/1568 +f 3535/3378/1568 3536/3379/1568 3562/3380/1568 3494/3381/1568 +f 3538/3382/1568 3512/3383/1568 3513/3384/1568 3532/3385/1568 3511/3386/1568 3509/3387/1568 3510/3388/1568 3578/3389/1568 3597/3390/1568 3570/3391/1568 +f 3628/3392/1569 3499/3346/1569 3629/3345/1569 +f 3631/3393/1569 3623/3394/1569 3530/3395/1569 3531/3396/1569 3583/3397/1569 3586/3398/1569 3605/3399/1569 3604/3400/1569 3630/3401/1569 +f 3494/3402/1533 3562/3403/1533 3565/3404/1533 +f 3568/3405/1570 3555/3406/1570 3546/3407/1570 3516/3408/1570 3514/3409/1570 3632/3410/1570 3650/3411/1570 3649/3412/1570 3567/3413/1570 +f 3500/3414/1533 3591/3415/1533 3595/3416/1533 +f 3603/3417/1571 3589/3418/1571 3588/3419/1571 3534/3420/1571 3533/3421/1571 3549/3422/1571 3552/3423/1571 3571/3424/1571 3570/3425/1571 3597/3426/1571 +f 3644/3318/1572 3495/3317/1572 3638/3427/1572 +f 3683/3428/1533 3514/3429/1533 3516/3430/1533 3681/3431/1533 +f 3690/3432/1533 3519/3433/1533 3518/3434/1533 3688/3435/1533 +f 3519/3433/1533 3690/3432/1533 3691/3436/1533 3522/3437/1533 +f 3525/3438/1533 3524/3439/1533 3692/3440/1533 3684/3441/1533 +f 3673/3442/1573 3526/3443/1573 3527/3444/1573 3687/3445/1573 +f 3694/3446/1533 3529/3447/1533 3528/3448/1533 3677/3449/1533 +f 3531/3450/1533 3530/3451/1533 3665/3452/1533 3695/3453/1533 +f 3533/3454/1574 3534/3455/1574 3697/3456/1574 3696/3457/1574 +f 3681/3431/1534 3516/3430/1534 3546/3458/1534 3698/3459/1534 +f 3699/3460/1533 3549/3461/1533 3533/3454/1533 3696/3457/1533 +f 3701/3462/1533 3552/3463/1533 3549/3461/1533 3699/3460/1533 +f 3698/3459/1533 3546/3458/1533 3555/3464/1533 3705/3465/1533 +f 3713/3466/1533 3583/3467/1533 3531/3450/1533 3695/3453/1533 +f 3717/3468/1533 3586/3469/1533 3583/3467/1533 3713/3466/1533 +f 3718/3470/1533 3588/3471/1533 3589/3472/1533 3719/3473/1533 +f 3697/3456/1533 3534/3455/1533 3588/3471/1533 3718/3470/1533 +f 3664/3474/1534 3619/3475/1534 3529/3447/1534 3694/3446/1534 +f 3663/3476/1533 3622/3477/1533 3619/3475/1533 3664/3474/1533 +f 3530/3451/1533 3623/3478/1533 3666/3479/1533 3665/3452/1533 +f 3672/3480/1574 3645/3481/1574 3526/3443/1574 3673/3442/1574 +f 3674/3482/1574 3556/3483/1574 3645/3481/1574 3672/3480/1574 +f 3676/3484/1533 3647/3485/1533 3559/3486/1533 3675/3487/1533 +f 3677/3449/1533 3528/3448/1533 3647/3485/1533 3676/3484/1533 +f 3572/3488/1534 3525/3438/1534 3684/3441/1534 3685/3489/1534 +f 3573/3490/1534 3572/3488/1534 3685/3489/1534 3686/3491/1534 +f 3687/3445/1533 3527/3444/1533 3574/3492/1533 3689/3493/1533 +f 3522/3437/1533 3691/3436/1533 3704/3494/1533 3600/3495/1533 +f 3601/3496/1533 3602/3497/1533 3706/3498/1533 3707/3499/1533 +f 3692/3440/1533 3524/3439/1533 3601/3496/1533 3707/3499/1533 +f 3514/3429/1575 3683/3428/1575 3720/3500/1575 3632/3501/1575 +f 3688/3435/1533 3518/3434/1533 3633/3502/1533 3721/3503/1533 +f 3720/3504/1556 3683/3505/1556 3681/3506/1556 3698/3507/1556 3705/3508/1556 3712/3509/1556 3724/3510/1556 +f 3704/3511/1557 3691/3512/1557 3690/3513/1557 3688/3514/1557 3721/3515/1557 3729/3516/1557 3709/3517/1557 +f 3686/3518/1558 3685/3519/1558 3684/3520/1558 3692/3521/1558 3707/3522/1558 3706/3523/1558 3716/3524/1558 3693/3525/1558 +f 3674/3526/1559 3672/3527/1559 3673/3528/1559 3687/3529/1559 3689/3530/1559 3702/3531/1559 3678/3532/1559 +f 3663/3533/1560 3664/3534/1560 3694/3535/1560 3677/3536/1560 3676/3537/1560 3675/3538/1560 3680/3539/1560 3667/3540/1560 +f 3728/3541/1576 3658/3542/1576 3659/3543/1576 3714/3544/1576 3709/3545/1576 3729/3546/1576 +f 3715/3547/1577 3661/3548/1577 3700/3549/1577 3693/3550/1577 3716/3551/1577 +f 3662/3552/1578 3669/3553/1578 3671/3554/1578 +f 3682/3555/1579 3656/3556/1579 3668/3557/1579 3667/3558/1579 3680/3559/1579 +f 3703/3560/1580 3657/3561/1580 3679/3562/1580 3678/3563/1580 3702/3564/1580 +f 3717/3565/1566 3713/3566/1566 3695/3567/1566 3665/3568/1566 3666/3569/1566 3670/3570/1566 3722/3571/1566 +f 3699/3572/1568 3696/3573/1568 3697/3574/1568 3718/3575/1568 3719/3576/1568 3725/3577/1568 3708/3578/1568 3701/3579/1568 +f 3722/3580/1581 3670/3581/1581 3669/3553/1581 3662/3552/1581 3723/3582/1581 +f 3730/3583/1582 3655/3584/1582 3710/3585/1582 3708/3586/1582 3725/3587/1582 +f 3711/3588/1583 3660/3589/1583 3726/3590/1583 3724/3591/1583 3712/3592/1583 +f 3658/3542/1584 3728/3541/1584 3727/3593/1584 +f 3732/3594/1533 3731/3595/1533 3737/3596/1533 3736/3597/1533 3735/3598/1533 3734/3599/1533 3733/3600/1533 +f 3746/3601/1533 3745/3602/1533 3738/3603/1533 3739/3604/1533 +f 3745/3602/1533 3747/3605/1533 3740/3606/1533 3738/3603/1533 +f 3747/3605/1533 3748/3607/1533 3741/3608/1533 3740/3606/1533 +f 3748/3607/1533 3749/3609/1533 3742/3610/1533 3741/3608/1533 +f 3749/3609/1533 3750/3611/1533 3743/3612/1533 3742/3610/1533 +f 3750/3611/1533 3751/3613/1533 3744/3614/1533 3743/3612/1533 +f 3751/3613/1533 3746/3601/1533 3739/3604/1533 3744/3614/1533 +f 3731/3595/1585 3732/3594/1585 3745/3602/1585 3746/3601/1585 +f 3732/3594/1586 3733/3600/1586 3747/3605/1586 3745/3602/1586 +f 3733/3600/1587 3734/3599/1587 3748/3607/1587 3747/3605/1587 +f 3734/3599/1588 3735/3598/1588 3749/3609/1588 3748/3607/1588 +f 3735/3598/1589 3736/3597/1589 3750/3611/1589 3749/3609/1589 +f 3736/3597/1590 3737/3596/1590 3751/3613/1590 3750/3611/1590 +f 3737/3596/1591 3731/3595/1591 3746/3601/1591 3751/3613/1591 +f 3753/3615/1592 3439/3040/1592 3440/3039/1592 3756/3616/1592 +f 3758/3617/1593 3447/3046/1593 3448/3045/1593 3760/3618/1593 +f 3762/3619/1594 3455/3052/1594 3456/3051/1594 3764/3620/1594 +f 3766/3621/1595 3463/3058/1595 3464/3057/1595 3767/3622/1595 +f 3771/3623/1596 3471/3064/1596 3472/3063/1596 3773/3624/1596 +f 3755/3625/1597 3479/3070/1597 3480/3069/1597 3754/3626/1597 +f 3763/3627/1598 3487/3076/1598 3488/3075/1598 3761/3628/1598 +f 3710/3629/1537 3770/3630/1537 3756/3631/1537 3440/3632/1537 3442/3102/1537 3571/3101/1537 3552/3633/1537 3701/3634/1537 3708/3635/1537 +f 3705/3636/1536 3555/3637/1536 3568/3098/1536 3441/3097/1536 3439/3638/1536 3753/3639/1536 3772/3640/1536 3711/3641/1536 3712/3642/1536 +f 3723/3643/1540 3779/3644/1540 3760/3645/1540 3448/3646/1540 3450/3122/1540 3605/3121/1540 3586/3647/1540 3717/3648/1540 3722/3649/1540 +f 3719/3650/1539 3589/3651/1539 3603/3118/1539 3449/3117/1539 3447/3652/1539 3758/3653/1539 3782/3654/1539 3730/3655/1539 3725/3656/1539 +f 3764/3657/1543 3456/3658/1543 3458/3143/1543 3635/3142/1543 3622/3659/1543 3663/3660/1543 3667/3661/1543 3668/3662/1543 3783/3663/1543 +f 3666/3664/1542 3623/3665/1542 3631/3139/1542 3457/3138/1542 3455/3666/1542 3762/3667/1542 3788/3668/1542 3671/3669/1542 3669/3670/1542 3670/3671/1542 +f 3767/3672/1546 3464/3673/1546 3466/3163/1546 3557/3162/1546 3556/3674/1546 3674/3675/1546 3678/3676/1546 3679/3677/1546 3789/3678/1546 +f 3675/3679/1545 3559/3680/1545 3558/3159/1545 3465/3158/1545 3463/3681/1545 3766/3682/1545 3787/3683/1545 3682/3684/1545 3680/3685/1545 +f 3773/3686/1549 3472/3687/1549 3474/3183/1549 3590/3182/1549 3573/3688/1549 3686/3689/1549 3693/3690/1549 3700/3691/1549 3786/3692/1549 +f 3689/3693/1548 3574/3694/1548 3585/3179/1548 3473/3178/1548 3471/3695/1548 3771/3696/1548 3781/3697/1548 3703/3698/1548 3702/3699/1548 +f 3714/3700/1552 3752/3701/1552 3754/3702/1552 3480/3703/1552 3482/3203/1552 3617/3202/1552 3600/3704/1552 3704/3705/1552 3709/3706/1552 +f 3706/3707/1551 3602/3708/1551 3614/3199/1551 3481/3198/1551 3479/3709/1551 3755/3710/1551 3757/3711/1551 3715/3712/1551 3716/3713/1551 +f 3726/3714/1555 3759/3715/1555 3761/3716/1555 3488/3717/1555 3490/3225/1555 3650/3224/1555 3632/3718/1555 3720/3719/1555 3724/3720/1555 +f 3721/3721/1554 3633/3722/1554 3648/3221/1554 3489/3220/1554 3487/3723/1554 3763/3724/1554 3765/3725/1554 3727/3726/1554 3728/3727/1554 3729/3728/1554 +f 3770/3729/1599 3710/3730/1599 3655/3731/1599 3769/3732/1599 3768/3733/1599 +f 3774/3734/1599 3660/3735/1599 3711/3736/1599 3772/3737/1599 +f 3759/3738/1600 3726/3739/1600 3660/3735/1600 3774/3734/1600 3775/3740/1600 +f 3776/3741/1600 3658/3742/1600 3727/3743/1600 3765/3744/1600 +f 3661/3745/1601 3715/3746/1601 3757/3747/1601 3778/3748/1601 3777/3749/1601 +f 3752/3750/1601 3714/3751/1601 3659/3752/1601 3658/3742/1601 3776/3741/1601 3780/3753/1601 +f 3657/3754/1602 3703/3755/1602 3781/3756/1602 3784/3757/1602 3785/3758/1602 +f 3786/3759/1602 3700/3760/1602 3661/3745/1602 3777/3749/1602 +f 3790/3761/1603 3656/3762/1603 3682/3763/1603 3787/3764/1603 3791/3765/1603 +f 3789/3766/1604 3679/3767/1604 3657/3754/1604 3785/3758/1604 +f 3783/3768/1605 3668/3769/1605 3656/3762/1605 3790/3761/1605 +f 3792/3770/1606 3662/3771/1606 3671/3772/1606 3788/3773/1606 +f 3779/3774/1607 3723/3775/1607 3662/3771/1607 3792/3770/1607 3793/3776/1607 +f 3769/3777/1607 3655/3778/1607 3730/3779/1607 3782/3780/1607 +f 3775/3781/1608 3774/3782/1608 3772/3783/1608 3753/3784/1608 3756/3785/1608 3770/3786/1608 3768/3787/1608 3739/3604/1608 3738/3603/1608 +f 3765/3788/1609 3763/3789/1609 3761/3790/1609 3759/3791/1609 3775/3781/1609 3738/3603/1609 3740/3606/1609 3780/3792/1609 3776/3793/1609 +f 3757/3794/1610 3755/3795/1610 3754/3796/1610 3752/3797/1610 3780/3792/1610 3740/3606/1610 3741/3608/1610 3778/3798/1610 +f 3777/3799/1611 3778/3798/1611 3741/3608/1611 3742/3610/1611 3784/3800/1611 3781/3801/1611 3771/3802/1611 3773/3803/1611 3786/3804/1611 +f 3785/3805/1612 3784/3800/1612 3742/3610/1612 3743/3612/1612 3791/3806/1612 3787/3807/1612 3766/3808/1612 3767/3809/1612 3789/3810/1612 +f 3790/3811/1613 3791/3806/1613 3743/3612/1613 3744/3614/1613 3793/3812/1613 3792/3813/1613 3788/3814/1613 3762/3815/1613 3764/3816/1613 3783/3817/1613 +f 3782/3818/1614 3758/3819/1614 3760/3820/1614 3779/3821/1614 3793/3812/1614 3744/3614/1614 3739/3604/1614 3768/3787/1614 3769/3822/1614 +usemtl Material.005 +f 2637/3823/1615 2636/3824/1615 2641/3825/1615 2643/3826/1615 2139/3827/1615 2134/3828/1615 +f 3052/3829/1616 3049/3830/1616 3060/3831/1616 3065/3832/1616 +f 3066/3833/1617 3059/3834/1617 3072/3835/1617 3077/3836/1617 +f 3078/3837/1618 3071/3838/1618 3084/3839/1618 3089/3840/1618 +f 3090/3841/1619 3083/3842/1619 3096/3843/1619 3101/3844/1619 +f 3102/3845/1620 3095/3846/1620 3108/3847/1620 3113/3848/1620 +f 3114/3849/1621 3107/3850/1621 3120/3851/1621 3125/3852/1621 +f 3126/3853/1622 3119/3854/1622 3132/3855/1622 3137/3856/1622 +f 3138/3857/1623 3131/3858/1623 3144/3859/1623 3149/3860/1623 +f 3150/3861/1624 3143/3862/1624 3156/3863/1624 3161/3864/1624 +f 3162/3865/1625 3155/3866/1625 3168/3867/1625 3173/3868/1625 +f 3174/3869/1626 3167/3870/1626 3180/3871/1626 3185/3872/1626 +f 3186/3873/1627 3179/3874/1627 3192/3875/1627 3197/3876/1627 +f 3198/3877/1628 3191/3878/1628 3204/3879/1628 3209/3880/1628 +f 3210/3881/1629 3203/3882/1629 3216/3883/1629 3221/3884/1629 +f 3222/3885/1630 3215/3886/1630 3228/3887/1630 3233/3888/1630 +f 3234/3889/1631 3227/3890/1631 3240/3891/1631 3245/3892/1631 +f 3246/3893/1632 3239/3894/1632 3252/3895/1632 3257/3896/1632 +f 3258/3897/1633 3251/3898/1633 3264/3899/1633 3269/3900/1633 +f 3270/3901/1634 3263/3902/1634 3276/3903/1634 3281/3904/1634 +f 3282/3905/1635 3275/3906/1635 3288/3907/1635 3293/3908/1635 +f 3294/3909/1636 3287/3910/1636 3300/3911/1636 3305/3912/1636 +f 3306/3913/1637 3299/3914/1637 3312/3915/1637 3317/3916/1637 +f 3318/3917/1638 3311/3918/1638 3324/3919/1638 3329/3920/1638 +f 3330/3921/1639 3323/3922/1639 3336/3923/1639 3341/3924/1639 +f 3342/3925/1640 3335/3926/1640 3348/3927/1640 3353/3928/1640 +f 3354/3929/1641 3347/3930/1641 3360/3931/1641 3365/3932/1641 +f 3366/3933/1642 3359/3934/1642 3372/3935/1642 3377/3936/1642 +f 3378/3937/1643 3371/3938/1643 3384/3939/1643 3389/3940/1643 +f 2643/3941/1644 2642/3942/1644 2647/3943/1644 2649/3944/1644 2144/3945/1644 2139/3946/1644 +f 3028/3947/1645 3025/3948/1645 3050/3949/1645 3051/3950/1645 +f 2631/3951/1646 2630/3952/1646 2635/3953/1646 2637/3954/1646 2134/3955/1646 2129/3956/1646 +f 2810/3957/1647 3033/3958/1647 3008/3959/1647 2623/3960/1647 +f 2124/3961/1648 2129/3962/1648 2128/3963/1648 2123/3964/1648 +f 2123/3965/1649 2128/3966/1649 2127/3006/1649 2122/3005/1649 +f 2628/3967/1650 2627/3968/1650 2812/3969/1650 2814/3970/1650 2334/3971/1650 2126/3972/1650 +f 2131/3973/1651 2126/3974/1651 2125/3975/1651 2130/3976/1651 +f 2130/3977/1652 2125/3978/1652 3402/3979/1652 3403/3980/1652 +f 2630/3952/1645 3029/3981/1645 3054/3982/1645 2635/3953/1645 +f 2129/3956/1653 2134/3955/1653 2133/3983/1653 2128/3984/1653 +f 2128/3966/1654 2133/3985/1654 2132/3007/1654 2127/3006/1654 +f 3020/3986/1645 2632/3987/1645 2639/3988/1645 3043/3989/1645 +f 2136/3990/1655 2131/3991/1655 2130/3992/1655 2135/3993/1655 +f 2135/3994/1656 2130/3977/1656 3403/3980/1656 3404/3995/1656 +f 2636/3824/1616 3053/3996/1616 3064/3997/1616 2641/3825/1616 +f 2134/3828/1657 2139/3827/1657 2138/3998/1657 2133/3999/1657 +f 2133/3985/1658 2138/4000/1658 2137/3008/1658 2132/3007/1658 +f 3044/4001/1616 2638/4002/1616 2645/4003/1616 3057/4004/1616 +f 2141/4005/1659 2136/4006/1659 2135/4007/1659 2140/4008/1659 +f 2140/4009/1660 2135/3994/1660 3404/3995/1660 3405/4010/1660 +f 2642/3942/1617 3063/4011/1617 3076/4012/1617 2647/3943/1617 +f 2139/3946/1661 2144/3945/1661 2143/4013/1661 2138/4014/1661 +f 2138/4000/1662 2143/4015/1662 2142/3009/1662 2137/3008/1662 +f 3058/4016/1617 2644/4017/1617 2651/4018/1617 3069/4019/1617 +f 2146/4020/1663 2141/4021/1663 2140/4022/1663 2145/4023/1663 +f 2145/4024/1664 2140/4009/1664 3405/4010/1664 3406/4025/1664 +f 2648/4026/1665 3075/4027/1665 3088/4028/1665 2653/4029/1665 +f 2144/4030/1666 2149/4031/1666 2148/4032/1666 2143/4033/1666 +f 2143/4015/1667 2148/4034/1667 2147/3010/1667 2142/3009/1667 +f 3070/4035/1665 2650/4036/1665 2657/4037/1665 3081/4038/1665 +f 2152/4039/1668 2146/4040/1668 2145/4041/1668 2151/4042/1668 +f 2151/4043/1669 2145/4024/1669 3406/4025/1669 3407/4044/1669 +f 2654/4045/1619 3087/4046/1619 3100/4047/1619 2659/4048/1619 +f 2149/4049/1670 2156/4050/1670 2155/4051/1670 2148/4052/1670 +f 2148/4034/1671 2155/4053/1671 2153/3011/1671 2147/3010/1671 +f 3082/4054/1619 2656/4055/1619 2663/4056/1619 3093/4057/1619 +f 2159/4058/1672 2152/4059/1672 2151/4060/1672 2158/4061/1672 +f 2158/4062/1673 2151/4043/1673 3407/4044/1673 3408/4063/1673 +f 2660/4064/1620 3099/4065/1620 3112/4066/1620 2665/4067/1620 +f 2156/4068/1674 2163/4069/1674 2162/4070/1674 2155/4071/1674 +f 2155/4053/1675 2162/4072/1675 2160/3012/1675 2153/3011/1675 +f 3094/4073/1620 2662/4074/1620 2669/4075/1620 3105/4076/1620 +f 2166/4077/1676 2159/4078/1676 2158/4079/1676 2165/4080/1676 +f 2165/4081/1677 2158/4062/1677 3408/4063/1677 3409/4082/1677 +f 2666/4083/1621 3111/4084/1621 3124/4085/1621 2671/4086/1621 +f 2163/4087/1678 2170/4088/1678 2169/4089/1678 2162/4090/1678 +f 2162/4072/1679 2169/4091/1679 2167/3013/1679 2160/3012/1679 +f 3106/4092/1621 2668/4093/1621 2675/4094/1621 3117/4095/1621 +f 2173/4096/1680 2166/4097/1680 2165/4098/1680 2172/4099/1680 +f 2172/4100/1681 2165/4081/1681 3409/4082/1681 3410/4101/1681 +f 2672/4102/1622 3123/4103/1622 3136/4104/1622 2677/4105/1622 +f 2170/4106/1682 2177/4107/1682 2176/4108/1682 2169/4109/1682 +f 2169/4091/1683 2176/4110/1683 2174/3014/1683 2167/3013/1683 +f 3118/4111/1622 2674/4112/1622 2681/4113/1622 3129/4114/1622 +f 2180/4115/1684 2173/4116/1684 2172/4117/1684 2179/4118/1684 +f 2179/4119/1685 2172/4100/1685 3410/4101/1685 3411/4120/1685 +f 2678/4121/1623 3135/4122/1623 3148/4123/1623 2683/4124/1623 +f 2177/4125/1686 2184/4126/1686 2183/4127/1686 2176/4128/1686 +f 2176/4110/1687 2183/4129/1687 2181/3015/1687 2174/3014/1687 +f 3130/4130/1623 2680/4131/1623 2687/4132/1623 3141/4133/1623 +f 2187/4134/1688 2180/4135/1688 2179/4136/1688 2186/4137/1688 +f 2186/4138/1689 2179/4119/1689 3411/4120/1689 3412/4139/1689 +f 2684/4140/1624 3147/4141/1624 3160/4142/1624 2689/4143/1624 +f 2184/4144/1690 2191/4145/1690 2190/4146/1690 2183/4147/1690 +f 2183/4129/1691 2190/4148/1691 2188/3016/1691 2181/3015/1691 +f 3142/4149/1624 2686/4150/1624 2693/4151/1624 3153/4152/1624 +f 2194/4153/1692 2187/4154/1692 2186/4155/1692 2193/4156/1692 +f 2193/4157/1693 2186/4138/1693 3412/4139/1693 3413/4158/1693 +f 2690/4159/1625 3159/4160/1625 3172/4161/1625 2695/4162/1625 +f 2191/4163/1694 2198/4164/1694 2197/4165/1694 2190/4166/1694 +f 2190/4148/1695 2197/4167/1695 2195/3017/1695 2188/3016/1695 +f 3154/4168/1625 2692/4169/1625 2699/4170/1625 3165/4171/1625 +f 2201/4172/1696 2194/4173/1696 2193/4174/1696 2200/4175/1696 +f 2200/4176/1697 2193/4157/1697 3413/4158/1697 3414/4177/1697 +f 2696/4178/1626 3171/4179/1626 3184/4180/1626 2701/4181/1626 +f 2198/4182/1698 2205/4183/1698 2204/4184/1698 2197/4185/1698 +f 2197/4167/1699 2204/4186/1699 2202/3018/1699 2195/3017/1699 +f 3166/4187/1626 2698/4188/1626 2705/4189/1626 3177/4190/1626 +f 2208/4191/1700 2201/4192/1700 2200/4193/1700 2207/4194/1700 +f 2207/4195/1701 2200/4176/1701 3414/4177/1701 3415/4196/1701 +f 2702/4197/1627 3183/4198/1627 3196/4199/1627 2707/4200/1627 +f 2205/4201/1702 2212/4202/1702 2211/4203/1702 2204/4204/1702 +f 2204/4186/1703 2211/4205/1703 2209/3019/1703 2202/3018/1703 +f 3178/4206/1627 2704/4207/1627 2711/4208/1627 3189/4209/1627 +f 2215/4210/1704 2208/4211/1704 2207/4212/1704 2214/4213/1704 +f 2214/4214/1705 2207/4195/1705 3415/4196/1705 3416/4215/1705 +f 2708/4216/1628 3195/4217/1628 3208/4218/1628 2713/4219/1628 +f 2212/4220/1706 2219/4221/1706 2218/4222/1706 2211/4223/1706 +f 2211/4205/1707 2218/4224/1707 2216/3020/1707 2209/3019/1707 +f 3190/4225/1628 2710/4226/1628 2717/4227/1628 3201/4228/1628 +f 2222/4229/1708 2215/4230/1708 2214/4231/1708 2221/4232/1708 +f 2221/4233/1709 2214/4214/1709 3416/4215/1709 3417/4234/1709 +f 2714/4235/1629 3207/4236/1629 3220/4237/1629 2719/4238/1629 +f 2219/4239/1710 2226/4240/1710 2225/4241/1710 2218/4242/1710 +f 2218/4224/1711 2225/4243/1711 2223/3021/1711 2216/3020/1711 +f 3202/4244/1629 2716/4245/1629 2723/4246/1629 3213/4247/1629 +f 2229/4248/1712 2222/4249/1712 2221/4250/1712 2228/4251/1712 +f 2228/4252/1713 2221/4233/1713 3417/4234/1713 3418/4253/1713 +f 2720/4254/1630 3219/4255/1630 3232/4256/1630 2725/4257/1630 +f 2226/4258/1714 2233/4259/1714 2232/4260/1714 2225/4261/1714 +f 2225/4243/1715 2232/4262/1715 2230/3022/1715 2223/3021/1715 +f 3214/4263/1630 2722/4264/1630 2729/4265/1630 3225/4266/1630 +f 2236/4267/1716 2229/4268/1716 2228/4269/1716 2235/4270/1716 +f 2235/4271/1717 2228/4252/1717 3418/4253/1717 3419/4272/1717 +f 2726/4273/1631 3231/4274/1631 3244/4275/1631 2731/4276/1631 +f 2233/4277/1718 2240/4278/1718 2239/4279/1718 2232/4280/1718 +f 2232/4262/1719 2239/4281/1719 2237/3023/1719 2230/3022/1719 +f 3226/4282/1631 2728/4283/1631 2735/4284/1631 3237/4285/1631 +f 2243/4286/1720 2236/4287/1720 2235/4288/1720 2242/4289/1720 +f 2242/4290/1721 2235/4271/1721 3419/4272/1721 3420/4291/1721 +f 2732/4292/1632 3243/4293/1632 3256/4294/1632 2737/4295/1632 +f 2240/4296/1722 2247/4297/1722 2246/4298/1722 2239/4299/1722 +f 2239/4281/1723 2246/4300/1723 2244/3024/1723 2237/3023/1723 +f 3238/4301/1632 2734/4302/1632 2741/4303/1632 3249/4304/1632 +f 2250/4305/1724 2243/4306/1724 2242/4307/1724 2249/4308/1724 +f 2249/4309/1725 2242/4290/1725 3420/4291/1725 3421/4310/1725 +f 2738/4311/1633 3255/4312/1633 3268/4313/1633 2743/4314/1633 +f 2247/4315/1726 2254/4316/1726 2253/4317/1726 2246/4318/1726 +f 2246/4300/1727 2253/4319/1727 2251/3025/1727 2244/3024/1727 +f 3250/4320/1633 2740/4321/1633 2747/4322/1633 3261/4323/1633 +f 2257/4324/1728 2250/4325/1728 2249/4326/1728 2256/4327/1728 +f 2256/4328/1729 2249/4309/1729 3421/4310/1729 3422/4329/1729 +f 2744/4330/1634 3267/4331/1634 3280/4332/1634 2749/4333/1634 +f 2254/4334/1730 2261/4335/1730 2260/4336/1730 2253/4337/1730 +f 2253/4319/1731 2260/4338/1731 2258/3026/1731 2251/3025/1731 +f 3262/4339/1634 2746/4340/1634 2753/4341/1634 3273/4342/1634 +f 2264/4343/1732 2257/4344/1732 2256/4345/1732 2263/4346/1732 +f 2263/4347/1733 2256/4328/1733 3422/4329/1733 3423/4348/1733 +f 2750/4349/1635 3279/4350/1635 3292/4351/1635 2755/4352/1635 +f 2261/4353/1734 2268/4354/1734 2267/4355/1734 2260/4356/1734 +f 2260/4338/1735 2267/4357/1735 2265/3027/1735 2258/3026/1735 +f 3274/4358/1635 2752/4359/1635 2759/4360/1635 3285/4361/1635 +f 2271/4362/1736 2264/4363/1736 2263/4364/1736 2270/4365/1736 +f 2270/4366/1737 2263/4347/1737 3423/4348/1737 3424/4367/1737 +f 2756/4368/1636 3291/4369/1636 3304/4370/1636 2761/4371/1636 +f 2268/4372/1738 2275/4373/1738 2274/4374/1738 2267/4375/1738 +f 2267/4357/1739 2274/4376/1739 2272/3028/1739 2265/3027/1739 +f 3286/4377/1636 2758/4378/1636 2765/4379/1636 3297/4380/1636 +f 2278/4381/1740 2271/4382/1740 2270/4383/1740 2277/4384/1740 +f 2277/4385/1741 2270/4366/1741 3424/4367/1741 3425/4386/1741 +f 2762/4387/1637 3303/4388/1637 3316/4389/1637 2767/4390/1637 +f 2275/4391/1742 2282/4392/1742 2281/4393/1742 2274/4394/1742 +f 2274/4376/1743 2281/4395/1743 2279/3029/1743 2272/3028/1743 +f 3298/4396/1637 2764/4397/1637 2771/4398/1637 3309/4399/1637 +f 2285/4400/1744 2278/4401/1744 2277/4402/1744 2284/4403/1744 +f 2284/4404/1745 2277/4385/1745 3425/4386/1745 3426/4405/1745 +f 2768/4406/1638 3315/4407/1638 3328/4408/1638 2773/4409/1638 +f 2282/4410/1746 2289/4411/1746 2288/4412/1746 2281/4413/1746 +f 2281/4395/1747 2288/4414/1747 2286/3030/1747 2279/3029/1747 +f 3310/4415/1638 2770/4416/1638 2777/4417/1638 3321/4418/1638 +f 2292/4419/1748 2285/4420/1748 2284/4421/1748 2291/4422/1748 +f 2291/4423/1749 2284/4404/1749 3426/4405/1749 3427/4424/1749 +f 2774/4425/1639 3327/4426/1639 3340/4427/1639 2779/4428/1639 +f 2289/4429/1750 2296/4430/1750 2295/4431/1750 2288/4432/1750 +f 2288/4414/1751 2295/4433/1751 2293/3031/1751 2286/3030/1751 +f 3322/4434/1639 2776/4435/1639 2783/4436/1639 3333/4437/1639 +f 2299/4438/1752 2292/4439/1752 2291/4440/1752 2298/4441/1752 +f 2298/4442/1753 2291/4423/1753 3427/4424/1753 3428/4443/1753 +f 2780/4444/1640 3339/4445/1640 3352/4446/1640 2785/4447/1640 +f 2296/4448/1754 2303/4449/1754 2302/4450/1754 2295/4451/1754 +f 2295/4433/1755 2302/4452/1755 2300/3032/1755 2293/3031/1755 +f 3334/4453/1640 2782/4454/1640 2789/4455/1640 3345/4456/1640 +f 2306/4457/1756 2299/4458/1756 2298/4459/1756 2305/4460/1756 +f 2305/4461/1757 2298/4442/1757 3428/4443/1757 3429/4462/1757 +f 2786/4463/1641 3351/4464/1641 3364/4465/1641 2791/4466/1641 +f 2303/4467/1758 2310/4468/1758 2309/4469/1758 2302/4470/1758 +f 2302/4452/1759 2309/4471/1759 2307/3033/1759 2300/3032/1759 +f 3346/4472/1641 2788/4473/1641 2795/4474/1641 3357/4475/1641 +f 2313/4476/1760 2306/4477/1760 2305/4478/1760 2312/4479/1760 +f 2312/4480/1761 2305/4461/1761 3429/4462/1761 3430/4481/1761 +f 2792/4482/1642 3363/4483/1642 3376/4484/1642 2797/4485/1642 +f 2310/4486/1762 2317/4487/1762 2316/4488/1762 2309/4489/1762 +f 2309/4471/1763 2316/4490/1763 2314/3034/1763 2307/3033/1763 +f 3358/4491/1642 2794/4492/1642 2801/4493/1642 3369/4494/1642 +f 2320/4495/1764 2313/4496/1764 2312/4497/1764 2319/4498/1764 +f 2319/4499/1765 2312/4480/1765 3430/4481/1765 3431/4500/1765 +f 2798/4501/1643 3375/4502/1643 3388/4503/1643 2803/4504/1643 +f 2317/4505/1766 2324/4506/1766 2323/4507/1766 2316/4508/1766 +f 2316/4490/1767 2323/4509/1767 2321/3035/1767 2314/3034/1767 +f 3370/4510/1643 2800/4511/1643 2807/4512/1643 3381/4513/1643 +f 2327/4514/1768 2320/4515/1768 2319/4516/1768 2326/4517/1768 +f 2326/4518/1769 2319/4499/1769 3431/4500/1769 3432/4519/1769 +f 2804/4520/1770 3387/4521/1770 3034/4522/1770 2809/4523/1770 +f 2324/4524/1771 2331/4525/1771 2330/4526/1771 2323/4527/1771 +f 2323/4509/1772 2330/4528/1772 2328/3036/1772 2321/3035/1772 +f 3382/4529/1770 2806/4530/1770 2813/4531/1770 3039/4532/1770 +f 2334/4533/1773 2327/4534/1773 2326/4535/1773 2333/4536/1773 +f 2333/4537/1774 2326/4518/1774 3432/4519/1774 3433/4538/1774 +f 2625/4539/1775 2624/4540/1775 2629/4541/1775 2631/4542/1775 2129/3962/1775 2124/3961/1775 +f 2331/4543/1776 2124/4544/1776 2123/4545/1776 2330/4546/1776 +f 2330/4528/1777 2123/3965/1777 2122/3005/1777 2328/3036/1777 +f 3040/4547/1647 2812/3969/1647 2627/3968/1647 3017/4548/1647 +f 2126/3972/1778 2334/3971/1778 2333/4549/1778 2125/4550/1778 +f 2125/3978/1779 2333/4537/1779 3433/4538/1779 3402/3979/1779 +f 3014/4551/1780 3015/4552/1780 3022/4553/1780 3023/4554/1780 +f 3018/4555/1780 2626/4556/1780 2633/4557/1780 3019/4558/1780 +f 2634/4559/1781 2633/4557/1781 2626/4556/1781 2628/4560/1781 2126/3974/1781 2131/3973/1781 +f 2814/4561/1782 2813/4531/1782 2806/4530/1782 2808/4562/1782 2327/4534/1782 2334/4533/1782 +f 2640/4563/1783 2639/3988/1783 2632/3987/1783 2634/4564/1783 2131/3991/1783 2136/3990/1783 +f 3390/4565/1770 3383/4566/1770 3038/4567/1770 3031/4568/1770 +f 3386/4569/1770 3379/4570/1770 3042/4571/1770 3035/4572/1770 +f 3048/4573/1616 3045/4574/1616 3056/4575/1616 3061/4576/1616 +f 2873/4577/1784 2815/4578/1784 3064/3997/1784 3053/3996/1784 +f 2997/4579/1785 3005/4580/1785 3016/4581/1785 3041/4582/1785 +f 2808/4583/1786 2807/4512/1786 2800/4511/1786 2802/4584/1786 2320/4515/1786 2327/4514/1786 +f 3099/4065/1787 2660/4064/1787 2622/4585/1787 2620/4586/1787 +f 2805/4587/1788 2804/4520/1788 2809/4523/1788 2811/4588/1788 2331/4525/1788 2324/4524/1788 +f 2802/4589/1789 2801/4493/1789 2794/4492/1789 2796/4590/1789 2313/4496/1789 2320/4495/1789 +f 3374/4591/1643 3367/4592/1643 3380/4593/1643 3385/4594/1643 +f 2799/4595/1790 2798/4501/1790 2803/4504/1790 2805/4596/1790 2324/4506/1790 2317/4505/1790 +f 2796/4597/1791 2795/4474/1791 2788/4473/1791 2790/4598/1791 2306/4477/1791 2313/4476/1791 +f 3362/4599/1642 3355/4600/1642 3368/4601/1642 3373/4602/1642 +f 2793/4603/1792 2792/4482/1792 2797/4485/1792 2799/4604/1792 2317/4487/1792 2310/4486/1792 +f 2790/4605/1793 2789/4455/1793 2782/4454/1793 2784/4606/1793 2299/4458/1793 2306/4457/1793 +f 3350/4607/1641 3343/4608/1641 3356/4609/1641 3361/4610/1641 +f 2787/4611/1794 2786/4463/1794 2791/4466/1794 2793/4612/1794 2310/4468/1794 2303/4467/1794 +f 2784/4613/1795 2783/4436/1795 2776/4435/1795 2778/4614/1795 2292/4439/1795 2299/4438/1795 +f 3338/4615/1640 3331/4616/1640 3344/4617/1640 3349/4618/1640 +f 2781/4619/1796 2780/4444/1796 2785/4447/1796 2787/4620/1796 2303/4449/1796 2296/4448/1796 +f 2778/4621/1797 2777/4417/1797 2770/4416/1797 2772/4622/1797 2285/4420/1797 2292/4419/1797 +f 3326/4623/1639 3319/4624/1639 3332/4625/1639 3337/4626/1639 +f 2775/4627/1798 2774/4425/1798 2779/4428/1798 2781/4628/1798 2296/4430/1798 2289/4429/1798 +f 2772/4629/1799 2771/4398/1799 2764/4397/1799 2766/4630/1799 2278/4401/1799 2285/4400/1799 +f 3314/4631/1638 3307/4632/1638 3320/4633/1638 3325/4634/1638 +f 2769/4635/1800 2768/4406/1800 2773/4409/1800 2775/4636/1800 2289/4411/1800 2282/4410/1800 +f 2766/4637/1801 2765/4379/1801 2758/4378/1801 2760/4638/1801 2271/4382/1801 2278/4381/1801 +f 3302/4639/1637 3295/4640/1637 3308/4641/1637 3313/4642/1637 +f 2763/4643/1802 2762/4387/1802 2767/4390/1802 2769/4644/1802 2282/4392/1802 2275/4391/1802 +f 2760/4645/1803 2759/4360/1803 2752/4359/1803 2754/4646/1803 2264/4363/1803 2271/4362/1803 +f 3290/4647/1636 3283/4648/1636 3296/4649/1636 3301/4650/1636 +f 2757/4651/1804 2756/4368/1804 2761/4371/1804 2763/4652/1804 2275/4373/1804 2268/4372/1804 +f 2754/4653/1805 2753/4341/1805 2746/4340/1805 2748/4654/1805 2257/4344/1805 2264/4343/1805 +f 3278/4655/1635 3271/4656/1635 3284/4657/1635 3289/4658/1635 +f 2751/4659/1806 2750/4349/1806 2755/4352/1806 2757/4660/1806 2268/4354/1806 2261/4353/1806 +f 2748/4661/1807 2747/4322/1807 2740/4321/1807 2742/4662/1807 2250/4325/1807 2257/4324/1807 +f 3266/4663/1634 3259/4664/1634 3272/4665/1634 3277/4666/1634 +f 2745/4667/1808 2744/4330/1808 2749/4333/1808 2751/4668/1808 2261/4335/1808 2254/4334/1808 +f 2742/4669/1809 2741/4303/1809 2734/4302/1809 2736/4670/1809 2243/4306/1809 2250/4305/1809 +f 3254/4671/1633 3247/4672/1633 3260/4673/1633 3265/4674/1633 +f 2739/4675/1810 2738/4311/1810 2743/4314/1810 2745/4676/1810 2254/4316/1810 2247/4315/1810 +f 2736/4677/1811 2735/4284/1811 2728/4283/1811 2730/4678/1811 2236/4287/1811 2243/4286/1811 +f 3242/4679/1632 3235/4680/1632 3248/4681/1632 3253/4682/1632 +f 2733/4683/1812 2732/4292/1812 2737/4295/1812 2739/4684/1812 2247/4297/1812 2240/4296/1812 +f 2730/4685/1813 2729/4265/1813 2722/4264/1813 2724/4686/1813 2229/4268/1813 2236/4267/1813 +f 3230/4687/1631 3223/4688/1631 3236/4689/1631 3241/4690/1631 +f 2727/4691/1814 2726/4273/1814 2731/4276/1814 2733/4692/1814 2240/4278/1814 2233/4277/1814 +f 2724/4693/1815 2723/4246/1815 2716/4245/1815 2718/4694/1815 2222/4249/1815 2229/4248/1815 +f 3218/4695/1630 3211/4696/1630 3224/4697/1630 3229/4698/1630 +f 2721/4699/1816 2720/4254/1816 2725/4257/1816 2727/4700/1816 2233/4259/1816 2226/4258/1816 +f 2718/4701/1817 2717/4227/1817 2710/4226/1817 2712/4702/1817 2215/4230/1817 2222/4229/1817 +f 3206/4703/1629 3199/4704/1629 3212/4705/1629 3217/4706/1629 +f 2715/4707/1818 2714/4235/1818 2719/4238/1818 2721/4708/1818 2226/4240/1818 2219/4239/1818 +f 2712/4709/1819 2711/4208/1819 2704/4207/1819 2706/4710/1819 2208/4211/1819 2215/4210/1819 +f 3194/4711/1628 3187/4712/1628 3200/4713/1628 3205/4714/1628 +f 2709/4715/1820 2708/4216/1820 2713/4219/1820 2715/4716/1820 2219/4221/1820 2212/4220/1820 +f 2706/4717/1821 2705/4189/1821 2698/4188/1821 2700/4718/1821 2201/4192/1821 2208/4191/1821 +f 3182/4719/1627 3175/4720/1627 3188/4721/1627 3193/4722/1627 +f 2703/4723/1822 2702/4197/1822 2707/4200/1822 2709/4724/1822 2212/4202/1822 2205/4201/1822 +f 2700/4725/1823 2699/4170/1823 2692/4169/1823 2694/4726/1823 2194/4173/1823 2201/4172/1823 +f 3170/4727/1626 3163/4728/1626 3176/4729/1626 3181/4730/1626 +f 2697/4731/1824 2696/4178/1824 2701/4181/1824 2703/4732/1824 2205/4183/1824 2198/4182/1824 +f 2694/4733/1825 2693/4151/1825 2686/4150/1825 2688/4734/1825 2187/4154/1825 2194/4153/1825 +f 3158/4735/1625 3151/4736/1625 3164/4737/1625 3169/4738/1625 +f 2691/4739/1826 2690/4159/1826 2695/4162/1826 2697/4740/1826 2198/4164/1826 2191/4163/1826 +f 2688/4741/1827 2687/4132/1827 2680/4131/1827 2682/4742/1827 2180/4135/1827 2187/4134/1827 +f 3146/4743/1624 3139/4744/1624 3152/4745/1624 3157/4746/1624 +f 2685/4747/1828 2684/4140/1828 2689/4143/1828 2691/4748/1828 2191/4145/1828 2184/4144/1828 +f 2682/4749/1829 2681/4113/1829 2674/4112/1829 2676/4750/1829 2173/4116/1829 2180/4115/1829 +f 3134/4751/1623 3127/4752/1623 3140/4753/1623 3145/4754/1623 +f 2679/4755/1830 2678/4121/1830 2683/4124/1830 2685/4756/1830 2184/4126/1830 2177/4125/1830 +f 2676/4757/1831 2675/4094/1831 2668/4093/1831 2670/4758/1831 2166/4097/1831 2173/4096/1831 +f 3122/4759/1622 3115/4760/1622 3128/4761/1622 3133/4762/1622 +f 2673/4763/1832 2672/4102/1832 2677/4105/1832 2679/4764/1832 2177/4107/1832 2170/4106/1832 +f 2670/4765/1833 2669/4075/1833 2662/4074/1833 2664/4766/1833 2159/4078/1833 2166/4077/1833 +f 3110/4767/1621 3103/4768/1621 3116/4769/1621 3121/4770/1621 +f 2667/4771/1834 2666/4083/1834 2671/4086/1834 2673/4772/1834 2170/4088/1834 2163/4087/1834 +f 2664/4773/1835 2663/4056/1835 2656/4055/1835 2658/4774/1835 2152/4059/1835 2159/4058/1835 +f 3098/4775/1620 3091/4776/1620 3104/4777/1620 3109/4778/1620 +f 2661/4779/1836 2660/4064/1836 2665/4067/1836 2667/4780/1836 2163/4069/1836 2156/4068/1836 +f 2658/4781/1837 2657/4037/1837 2650/4036/1837 2652/4782/1837 2146/4040/1837 2152/4039/1837 +f 3086/4783/1619 3079/4784/1619 3092/4785/1619 3097/4786/1619 +f 2655/4787/1838 2654/4045/1838 2659/4048/1838 2661/4788/1838 2156/4050/1838 2149/4049/1838 +f 2652/4789/1839 2651/4018/1839 2644/4017/1839 2646/4790/1839 2141/4021/1839 2146/4020/1839 +f 3074/4791/1665 3067/4792/1665 3080/4793/1665 3085/4794/1665 +f 2649/4795/1840 2648/4026/1840 2653/4029/1840 2655/4796/1840 2149/4031/1840 2144/4030/1840 +f 2646/4797/1841 2645/4003/1841 2638/4002/1841 2640/4798/1841 2136/4006/1841 2141/4005/1841 +f 3062/4799/1617 3055/4800/1617 3068/4801/1617 3073/4802/1617 +f 3032/4803/1647 3037/4804/1647 3012/4805/1647 3009/4806/1647 +f 3024/4807/1645 3021/4808/1645 3046/4809/1645 3047/4810/1645 +f 3036/4811/1647 3041/4582/1647 3016/4581/1647 3013/4812/1647 +f 3062/4799/1842 3073/4802/1842 2881/4813/1842 2880/4814/1842 +f 3044/4001/1843 3057/4004/1843 2943/4815/1843 3001/4816/1843 +f 3010/4817/1780 3011/4818/1780 3026/4819/1780 3027/4820/1780 +f 3010/4817/1844 3027/4820/1844 2876/4821/1844 2878/4822/1844 +f 3014/4551/1845 3023/4554/1845 2940/4823/1845 2942/4824/1845 +f 3018/4555/1846 3019/4558/1846 3004/4825/1846 3006/4826/1846 +f 3028/3947/1847 3051/3950/1847 2874/4827/1847 2875/4828/1847 +f 2933/4829/1848 2941/4830/1848 3012/4805/1848 3037/4804/1848 +f 3020/3986/1849 3043/3989/1849 3002/4831/1849 3003/4832/1849 +f 3378/3937/1850 3389/3940/1850 2871/4833/1850 2868/4834/1850 +f 3036/4811/1851 3013/4812/1851 2941/4830/1851 2933/4829/1851 +f 3370/4510/1852 3381/4513/1852 2999/4835/1852 2996/4836/1852 +f 2868/4834/1853 2871/4833/1853 3388/4503/1853 3375/4502/1853 +f 3362/4599/1854 3373/4602/1854 2931/4837/1854 2930/4838/1854 +f 2996/4836/1855 2999/4835/1855 3380/4593/1855 3367/4592/1855 +f 3354/3929/1856 3365/3932/1856 2865/4839/1856 2864/4840/1856 +f 2930/4838/1857 2931/4837/1857 3372/3935/1857 3359/3934/1857 +f 3358/4491/1858 3369/4494/1858 2995/4841/1858 2994/4842/1858 +f 2864/4840/1859 2865/4839/1859 3364/4465/1859 3351/4464/1859 +f 3350/4607/1860 3361/4610/1860 2929/4843/1860 2928/4844/1860 +f 3334/4453/1861 3345/4456/1861 2991/4845/1861 2990/4846/1861 +f 3342/3925/1862 3353/3928/1862 2863/4847/1862 2862/4848/1862 +f 3326/4623/1863 3337/4626/1863 2925/4849/1863 2924/4850/1863 +f 2990/4846/1864 2991/4845/1864 3344/4617/1864 3331/4616/1864 +f 3318/3917/1865 3329/3920/1865 2859/4851/1865 2858/4852/1865 +f 2924/4850/1866 2925/4849/1866 3336/3923/1866 3323/3922/1866 +f 3310/4415/1867 3321/4418/1867 2987/4853/1867 2986/4854/1867 +f 2858/4852/1868 2859/4851/1868 3328/4408/1868 3315/4407/1868 +f 3302/4639/1869 3313/4642/1869 2921/4855/1869 2920/4856/1869 +f 2986/4854/1870 2987/4853/1870 3320/4633/1870 3307/4632/1870 +f 3294/3909/1871 3305/3912/1871 2855/4857/1871 2854/4858/1871 +f 2920/4856/1872 2921/4855/1872 3312/3915/1872 3299/3914/1872 +f 3286/4377/1873 3297/4380/1873 2983/4859/1873 2982/4860/1873 +f 2854/4858/1874 2855/4857/1874 3304/4370/1874 3291/4369/1874 +f 3278/4655/1875 3289/4658/1875 2917/4861/1875 2916/4862/1875 +f 2982/4860/1876 2983/4859/1876 3296/4649/1876 3283/4648/1876 +f 3270/3901/1877 3281/3904/1877 2851/4863/1877 2850/4864/1877 +f 2916/4862/1878 2917/4861/1878 3288/3907/1878 3275/3906/1878 +f 3274/4358/1879 3285/4361/1879 2981/4865/1879 2980/4866/1879 +f 2850/4864/1880 2851/4863/1880 3280/4332/1880 3267/4331/1880 +f 3266/4663/1881 3277/4666/1881 2915/4867/1881 2914/4868/1881 +f 3250/4320/1882 3261/4323/1882 2977/4869/1882 2976/4870/1882 +f 3258/3897/1883 3269/3900/1883 2849/4871/1883 2848/4872/1883 +f 3242/4679/1884 3253/4682/1884 2911/4873/1884 2910/4874/1884 +f 2976/4870/1885 2977/4869/1885 3260/4673/1885 3247/4672/1885 +f 3234/3889/1886 3245/3892/1886 2845/4875/1886 2844/4876/1886 +f 2910/4874/1887 2911/4873/1887 3252/3895/1887 3239/3894/1887 +f 3226/4282/1888 3237/4285/1888 2973/4877/1888 2972/4878/1888 +f 2844/4876/1889 2845/4875/1889 3244/4275/1889 3231/4274/1889 +f 3218/4695/1890 3229/4698/1890 2907/4879/1890 2906/4880/1890 +f 2972/4878/1891 2973/4877/1891 3236/4689/1891 3223/4688/1891 +f 3210/3881/1892 3221/3884/1892 2841/4881/1892 2840/4882/1892 +f 2906/4880/1893 2907/4879/1893 3228/3887/1893 3215/3886/1893 +f 3202/4244/1894 3213/4247/1894 2969/4883/1894 2968/4884/1894 +f 2840/4882/1895 2841/4881/1895 3220/4237/1895 3207/4236/1895 +f 3194/4711/1896 3205/4714/1896 2903/4885/1896 2902/4886/1896 +f 2968/4884/1897 2969/4883/1897 3212/4705/1897 3199/4704/1897 +f 3186/3873/1898 3197/3876/1898 2837/4887/1898 2836/4888/1898 +f 2902/4886/1899 2903/4885/1899 3204/3879/1899 3191/3878/1899 +f 3190/4225/1900 3201/4228/1900 2967/4889/1900 2966/4890/1900 +f 2836/4888/1901 2837/4887/1901 3196/4199/1901 3183/4198/1901 +f 3182/4719/1902 3193/4722/1902 2901/4891/1902 2900/4892/1902 +f 3166/4187/1903 3177/4190/1903 2963/4893/1903 2962/4894/1903 +f 3174/3869/1904 3185/3872/1904 2835/4895/1904 2834/4896/1904 +f 3158/4735/1905 3169/4738/1905 2897/4897/1905 2896/4898/1905 +f 2962/4894/1906 2963/4893/1906 3176/4729/1906 3163/4728/1906 +f 3150/3861/1907 3161/3864/1907 2831/4899/1907 2830/4900/1907 +f 2896/4898/1908 2897/4897/1908 3168/3867/1908 3155/3866/1908 +f 3142/4149/1909 3153/4152/1909 2959/4901/1909 2958/4902/1909 +f 2830/4900/1910 2831/4899/1910 3160/4142/1910 3147/4141/1910 +f 3134/4751/1911 3145/4754/1911 2893/4903/1911 2892/4904/1911 +f 2958/4902/1912 2959/4901/1912 3152/4745/1912 3139/4744/1912 +f 3126/3853/1913 3137/3856/1913 2827/4905/1913 2826/4906/1913 +f 2892/4904/1914 2893/4903/1914 3144/3859/1914 3131/3858/1914 +f 3118/4111/1915 3129/4114/1915 2955/4907/1915 2954/4908/1915 +f 2826/4906/1916 2827/4905/1916 3136/4104/1916 3123/4103/1916 +f 3110/4767/1917 3121/4770/1917 2889/4909/1917 2888/4910/1917 +f 2954/4908/1918 2955/4907/1918 3128/4761/1918 3115/4760/1918 +f 3102/3845/1919 3113/3848/1919 2823/4911/1919 2822/4912/1919 +f 2888/4910/1920 2889/4909/1920 3120/3851/1920 3107/3850/1920 +f 3106/4092/1921 3117/4095/1921 2953/4913/1921 2952/4914/1921 +f 2822/4912/1922 2823/4911/1922 3112/4066/1922 3099/4065/1922 +f 3098/4775/1923 3109/4778/1923 2887/4915/1923 2886/4916/1923 +f 3082/4054/1924 3093/4057/1924 2949/4917/1924 2948/4918/1924 +f 3090/3841/1925 3101/3844/1925 2821/4919/1925 2820/4920/1925 +f 3074/4791/1926 3085/4794/1926 2883/4921/1926 2882/4922/1926 +f 2948/4918/1927 2949/4917/1927 3092/4785/1927 3079/4784/1927 +f 3066/3833/1928 3077/3836/1928 2817/4923/1928 2816/4924/1928 +f 2937/4925/1929 2879/4926/1929 3060/3831/1929 3049/3830/1929 +f 3058/4016/1930 3069/4019/1930 2945/4927/1930 2944/4928/1930 +f 3052/3829/1931 3065/3832/1931 2815/4578/1931 2873/4577/1931 +f 3048/4573/1932 3061/4576/1932 2879/4926/1932 2937/4925/1932 +f 2944/4928/1933 2945/4927/1933 3068/4801/1933 3055/4800/1933 +f 2872/4929/1934 2870/4930/1934 3034/4522/1934 3387/4521/1934 +f 3024/4807/1935 3047/4810/1935 2938/4931/1935 2939/4932/1935 +f 3000/4933/1936 2998/4934/1936 3042/4571/1936 3379/4570/1936 +f 2624/4540/1780 3007/4935/1780 3030/4936/1780 2629/4541/1780 +f 3001/4816/1937 2943/4815/1937 3056/4575/1937 3045/4574/1937 +f 3070/4035/1938 3081/4038/1938 2947/4937/1938 2946/4938/1938 +f 2946/4938/1939 2947/4937/1939 3080/4793/1939 3067/4792/1939 +f 3094/4073/1940 3105/4076/1940 2951/4939/1940 2950/4940/1940 +f 2950/4940/1941 2951/4939/1941 3104/4777/1941 3091/4776/1941 +f 2952/4914/1942 2953/4913/1942 3116/4769/1942 3103/4768/1942 +f 3130/4130/1943 3141/4133/1943 2957/4941/1943 2956/4942/1943 +f 2956/4942/1944 2957/4941/1944 3140/4753/1944 3127/4752/1944 +f 3154/4168/1945 3165/4171/1945 2961/4943/1945 2960/4944/1945 +f 2960/4944/1946 2961/4943/1946 3164/4737/1946 3151/4736/1946 +f 3178/4206/1947 3189/4209/1947 2965/4945/1947 2964/4946/1947 +f 2964/4946/1948 2965/4945/1948 3188/4721/1948 3175/4720/1948 +f 2966/4890/1949 2967/4889/1949 3200/4713/1949 3187/4712/1949 +f 3214/4263/1950 3225/4266/1950 2971/4947/1950 2970/4948/1950 +f 2970/4948/1951 2971/4947/1951 3224/4697/1951 3211/4696/1951 +f 3238/4301/1952 3249/4304/1952 2975/4949/1952 2974/4950/1952 +f 2974/4950/1953 2975/4949/1953 3248/4681/1953 3235/4680/1953 +f 3262/4339/1954 3273/4342/1954 2979/4951/1954 2978/4952/1954 +f 2978/4952/1955 2979/4951/1955 3272/4665/1955 3259/4664/1955 +f 2980/4866/1956 2981/4865/1956 3284/4657/1956 3271/4656/1956 +f 3298/4396/1957 3309/4399/1957 2985/4953/1957 2984/4954/1957 +f 2984/4954/1958 2985/4953/1958 3308/4641/1958 3295/4640/1958 +f 3322/4434/1959 3333/4437/1959 2989/4955/1959 2988/4956/1959 +f 2988/4956/1960 2989/4955/1960 3332/4625/1960 3319/4624/1960 +f 3346/4472/1961 3357/4475/1961 2993/4957/1961 2992/4958/1961 +f 2992/4958/1962 2993/4957/1962 3356/4609/1962 3343/4608/1962 +f 2994/4842/1963 2995/4841/1963 3368/4601/1963 3355/4600/1963 +f 3382/4529/1964 3039/4532/1964 2998/4934/1964 3000/4933/1964 +f 3040/4547/1965 3017/4548/1965 3005/4580/1965 2997/4579/1965 +f 3003/4832/1966 3002/4831/1966 3046/4809/1966 3021/4808/1966 +f 3006/4826/1967 3004/4825/1967 3022/4553/1967 3015/4552/1967 +f 3386/4569/1968 3035/4572/1968 2934/4959/1968 2936/4960/1968 +f 2882/4922/1969 2883/4921/1969 3084/3839/1969 3071/3838/1969 +f 2880/4814/1970 2881/4813/1970 3072/3835/1970 3059/3834/1970 +f 3086/4783/1971 3097/4786/1971 2885/4961/1971 2884/4962/1971 +f 2884/4962/1972 2885/4961/1972 3096/3843/1972 3083/3842/1972 +f 2886/4916/1973 2887/4915/1973 3108/3847/1973 3095/3846/1973 +f 3122/4759/1974 3133/4762/1974 2891/4963/1974 2890/4964/1974 +f 2890/4964/1975 2891/4963/1975 3132/3855/1975 3119/3854/1975 +f 3146/4743/1976 3157/4746/1976 2895/4965/1976 2894/4966/1976 +f 2894/4966/1977 2895/4965/1977 3156/3863/1977 3143/3862/1977 +f 3170/4727/1978 3181/4730/1978 2899/4967/1978 2898/4968/1978 +f 2898/4968/1979 2899/4967/1979 3180/3871/1979 3167/3870/1979 +f 2900/4892/1980 2901/4891/1980 3192/3875/1980 3179/3874/1980 +f 3206/4703/1981 3217/4706/1981 2905/4969/1981 2904/4970/1981 +f 2904/4970/1982 2905/4969/1982 3216/3883/1982 3203/3882/1982 +f 3230/4687/1983 3241/4690/1983 2909/4971/1983 2908/4972/1983 +f 2908/4972/1984 2909/4971/1984 3240/3891/1984 3227/3890/1984 +f 3254/4671/1985 3265/4674/1985 2913/4973/1985 2912/4974/1985 +f 2912/4974/1986 2913/4973/1986 3264/3899/1986 3251/3898/1986 +f 2914/4868/1987 2915/4867/1987 3276/3903/1987 3263/3902/1987 +f 3290/4647/1988 3301/4650/1988 2919/4975/1988 2918/4976/1988 +f 2918/4976/1989 2919/4975/1989 3300/3911/1989 3287/3910/1989 +f 3314/4631/1990 3325/4634/1990 2923/4977/1990 2922/4978/1990 +f 2922/4978/1991 2923/4977/1991 3324/3919/1991 3311/3918/1991 +f 3338/4615/1992 3349/4618/1992 2927/4979/1992 2926/4980/1992 +f 2926/4980/1993 2927/4979/1993 3348/3927/1993 3335/3926/1993 +f 2928/4844/1994 2929/4843/1994 3360/3931/1994 3347/3930/1994 +f 3374/4591/1995 3385/4594/1995 2935/4981/1995 2932/4982/1995 +f 2932/4982/1996 2935/4981/1996 3384/3939/1996 3371/3938/1996 +f 2936/4960/1997 2934/4959/1997 3038/4567/1997 3383/4566/1997 +f 2939/4932/1998 2938/4931/1998 3050/3949/1998 3025/3948/1998 +f 2942/4824/1999 2940/4823/1999 3026/4819/1999 3011/4818/1999 +f 2869/4983/2000 2877/4984/2000 3008/3959/2000 3033/3958/2000 +f 2816/4924/2001 2817/4923/2001 3076/4012/2001 3063/4011/2001 +f 3078/3837/2002 3089/3840/2002 2819/4985/2002 2818/4986/2002 +f 2818/4986/2003 2819/4985/2003 3088/4028/2003 3075/4027/2003 +f 2820/4920/2004 2821/4919/2004 3100/4047/2004 3087/4046/2004 +f 3114/3849/2005 3125/3852/2005 2825/4987/2005 2824/4988/2005 +f 2824/4988/2006 2825/4987/2006 3124/4085/2006 3111/4084/2006 +f 3138/3857/2007 3149/3860/2007 2829/4989/2007 2828/4990/2007 +f 2828/4990/2008 2829/4989/2008 3148/4123/2008 3135/4122/2008 +f 3162/3865/2009 3173/3868/2009 2833/4991/2009 2832/4992/2009 +f 2832/4992/2010 2833/4991/2010 3172/4161/2010 3159/4160/2010 +f 2834/4896/2011 2835/4895/2011 3184/4180/2011 3171/4179/2011 +f 3198/3877/2012 3209/3880/2012 2839/4993/2012 2838/4994/2012 +f 2838/4994/2013 2839/4993/2013 3208/4218/2013 3195/4217/2013 +f 3222/3885/2014 3233/3888/2014 2843/4995/2014 2842/4996/2014 +f 2842/4996/2015 2843/4995/2015 3232/4256/2015 3219/4255/2015 +f 3246/3893/2016 3257/3896/2016 2847/4997/2016 2846/4998/2016 +f 2846/4998/2017 2847/4997/2017 3256/4294/2017 3243/4293/2017 +f 2848/4872/2018 2849/4871/2018 3268/4313/2018 3255/4312/2018 +f 3282/3905/2019 3293/3908/2019 2853/4999/2019 2852/5000/2019 +f 2852/5000/2020 2853/4999/2020 3292/4351/2020 3279/4350/2020 +f 3306/3913/2021 3317/3916/2021 2857/5001/2021 2856/5002/2021 +f 2856/5002/2022 2857/5001/2022 3316/4389/2022 3303/4388/2022 +f 3330/3921/2023 3341/3924/2023 2861/5003/2023 2860/5004/2023 +f 2860/5004/2024 2861/5003/2024 3340/4427/2024 3327/4426/2024 +f 2862/4848/2025 2863/4847/2025 3352/4446/2025 3339/4445/2025 +f 3366/3933/2026 3377/3936/2026 2867/5005/2026 2866/5006/2026 +f 2866/5006/2027 2867/5005/2027 3376/4484/2027 3363/4483/2027 +f 3390/4565/2028 3031/4568/2028 2870/4930/2028 2872/4929/2028 +f 3032/4803/2029 3009/4806/2029 2877/4984/2029 2869/4983/2029 +f 2875/4828/2030 2874/4827/2030 3054/3982/2030 3029/3981/2030 +f 2878/4822/2031 2876/4821/2031 3030/4936/2031 3007/4935/2031 +f 2623/3960/2032 2534/5007/2032 2624/5008/2032 2625/5009/2032 +f 2626/5010/2033 2533/5011/2033 2627/3968/2033 2628/3967/2033 +f 2629/4541/2034 2545/5012/2034 2630/3952/2034 2631/3951/2034 +f 2632/3987/2035 2544/5013/2035 2633/5014/2035 2634/4559/2035 +f 2635/3953/2036 2556/5015/2036 2636/3824/2036 2637/3823/2036 +f 2638/4002/2037 2555/5016/2037 2639/3988/2037 2640/4563/2037 +f 2641/3825/2038 2567/5017/2038 2642/3942/2038 2643/3941/2038 +f 2644/4017/2039 2566/5018/2039 2645/5019/2039 2646/4797/2039 +f 2647/3943/2040 2578/5020/2040 2648/4026/2040 2649/4795/2040 +f 2650/4036/2041 2577/5021/2041 2651/4018/2041 2652/4789/2041 +f 2653/4029/2042 2589/5022/2042 2654/4045/2042 2655/4787/2042 +f 2656/4055/2043 2588/5023/2043 2657/5024/2043 2658/4781/2043 +f 2659/4048/2044 2622/4585/2044 2660/4064/2044 2661/4779/2044 +f 2662/4074/2045 2621/5025/2045 2663/4056/2045 2664/4773/2045 +f 2665/4067/2046 2611/5026/2046 2666/4083/2046 2667/4771/2046 +f 2668/4093/2047 2610/5027/2047 2669/5028/2047 2670/4765/2047 +f 2671/4086/2048 2600/5029/2048 2672/4102/2048 2673/4763/2048 +f 2674/4112/2049 2599/5030/2049 2675/4094/2049 2676/4757/2049 +f 2677/4105/2050 3391/5031/2050 2678/4121/2050 2679/4755/2050 +f 2680/4131/2051 3392/5032/2051 2681/5033/2051 2682/4749/2051 +f 2683/4124/2052 2185/5034/2052 2684/4140/2052 2685/4747/2052 +f 2686/4150/2053 2182/5035/2053 2687/4132/2053 2688/4741/2053 +f 2689/4143/2054 2224/5036/2054 2690/4159/2054 2691/4739/2054 +f 2692/4169/2055 2220/5037/2055 2693/5038/2055 2694/4733/2055 +f 2695/4162/2056 2262/5039/2056 2696/4178/2056 2697/4731/2056 +f 2698/4188/2057 2259/5040/2057 2699/4170/2057 2700/4725/2057 +f 2701/4181/2058 2301/5041/2058 2702/4197/2058 2703/4723/2058 +f 2704/4207/2059 2297/5042/2059 2705/5043/2059 2706/4717/2059 +f 2707/4200/2060 2336/5044/2060 2708/4216/2060 2709/4715/2060 +f 2710/4226/2061 2335/5045/2061 2711/4208/2061 2712/4709/2061 +f 2713/4219/2062 2347/5046/2062 2714/4235/2062 2715/4707/2062 +f 2716/4245/2063 2346/5047/2063 2717/5048/2063 2718/4701/2063 +f 2719/4238/2064 2358/5049/2064 2720/4254/2064 2721/4699/2064 +f 2722/4264/2065 2357/5050/2065 2723/4246/2065 2724/4693/2065 +f 2725/4257/2066 2369/5051/2066 2726/4273/2066 2727/4691/2066 +f 2728/4283/2067 2368/5052/2067 2729/5053/2067 2730/4685/2067 +f 2731/4276/2068 2380/5054/2068 2732/4292/2068 2733/4683/2068 +f 2734/4302/2069 2379/5055/2069 2735/4284/2069 2736/4677/2069 +f 2737/4295/2070 2391/5056/2070 2738/4311/2070 2739/4675/2070 +f 2740/4321/2071 2390/5057/2071 2741/5058/2071 2742/4669/2071 +f 2743/4314/2072 2402/5059/2072 2744/4330/2072 2745/4667/2072 +f 2746/4340/2073 2401/5060/2073 2747/4322/2073 2748/4661/2073 +f 2749/4333/2074 2413/5061/2074 2750/4349/2074 2751/4659/2074 +f 2752/4359/2075 2412/5062/2075 2753/5063/2075 2754/4653/2075 +f 2755/4352/2076 2424/5064/2076 2756/4368/2076 2757/4651/2076 +f 2758/4378/2077 2423/5065/2077 2759/4360/2077 2760/4645/2077 +f 2761/4371/2078 2435/5066/2078 2762/4387/2078 2763/4643/2078 +f 2764/4397/2079 2434/5067/2079 2765/5068/2079 2766/4637/2079 +f 2767/4390/2080 2446/5069/2080 2768/4406/2080 2769/4635/2080 +f 2770/4416/2081 2445/5070/2081 2771/4398/2081 2772/4629/2081 +f 2773/4409/2082 2457/5071/2082 2774/4425/2082 2775/4627/2082 +f 2776/4435/2083 2456/5072/2083 2777/5073/2083 2778/4621/2083 +f 2779/4428/2084 2468/5074/2084 2780/4444/2084 2781/4619/2084 +f 2782/4454/2085 2467/5075/2085 2783/4436/2085 2784/4613/2085 +f 2785/4447/2086 2479/5076/2086 2786/4463/2086 2787/4611/2086 +f 2788/4473/2087 2478/5077/2087 2789/5078/2087 2790/4605/2087 +f 2791/4466/2088 2490/5079/2088 2792/4482/2088 2793/4603/2088 +f 2794/4492/2089 2489/5080/2089 2795/4474/2089 2796/4597/2089 +f 2797/4485/2090 2501/5081/2090 2798/4501/2090 2799/4595/2090 +f 2800/4511/2091 2500/5082/2091 2801/5083/2091 2802/4589/2091 +f 2803/4504/2092 2512/5084/2092 2804/4520/2092 2805/4587/2092 +f 2806/4530/2093 2511/5085/2093 2807/4512/2093 2808/4583/2093 +f 2809/4523/2094 2523/5086/2094 2810/3957/2094 2811/5087/2094 +f 2812/3969/2095 2522/5088/2095 2813/5089/2095 2814/4561/2095 +f 2565/5090/2096 2564/5091/2096 2816/4924/2096 3063/4011/2096 +f 2178/5092/2097 2175/5093/2097 2830/4900/2097 3147/4141/2097 +f 2367/5094/2098 2366/5095/2098 2844/4876/2098 3231/4274/2098 +f 2444/5096/2099 2443/5097/2099 2858/4852/2099 3315/4407/2099 +f 2510/5098/2100 2509/5099/2100 2872/4929/2100 3387/4521/2100 +f 3393/5100/2101 3394/5101/2101 2892/4904/2101 3131/3858/2101 +f 2356/5102/2102 2355/5103/2102 2906/4880/2102 3215/3886/2102 +f 2433/5104/2103 2432/5105/2103 2920/4856/2103 3299/3914/2103 +f 2521/5106/2104 2520/5107/2104 2934/4959/2104 3035/4572/2104 +f 2598/5108/2105 2597/5109/2105 2954/4908/2105 3115/4760/2105 +f 2345/5110/2106 2344/5111/2106 2968/4884/2106 3199/4704/2106 +f 2422/5112/2107 2421/5113/2107 2982/4860/2107 3283/4648/2107 +f 2499/5114/2108 2498/5115/2108 2996/4836/2108 3367/4592/2108 +f 2532/5116/2109 2531/5117/2109 3006/5118/2109 3015/5119/2109 +f 2587/5120/2110 2586/5121/2110 2820/4920/2110 3087/4046/2110 +f 2620/4586/2111 2619/5122/2111 2822/4912/2111 3099/4065/2111 +f 2596/5123/2112 2595/5124/2112 2826/4906/2112 3123/4103/2112 +f 2255/5125/2113 2252/5126/2113 2834/4896/2113 3171/4179/2113 +f 2294/5127/2114 2290/5128/2114 2836/4888/2114 3183/4198/2114 +f 2343/5129/2115 2342/5130/2115 2840/4882/2115 3207/4236/2115 +f 2389/5131/2116 2388/5132/2116 2848/4872/2116 3255/4312/2116 +f 2400/5133/2117 2399/5134/2117 2850/4864/2117 3267/4331/2117 +f 2420/5135/2118 2419/5136/2118 2854/4858/2118 3291/4369/2118 +f 2466/5137/2119 2465/5138/2119 2862/4848/2119 3339/4445/2119 +f 2477/5139/2120 2476/5140/2120 2864/4840/2120 3351/4464/2120 +f 2497/5141/2121 2496/5142/2121 2868/4834/2121 3375/4502/2121 +f 2543/5143/2122 2542/5144/2122 2876/4821/2122 3027/4820/2122 +f 2530/5145/2123 2529/5146/2123 2878/5147/2123 3007/5148/2123 +f 2576/5149/2124 2575/5150/2124 2882/4922/2124 3071/3838/2124 +f 2585/5151/2125 2584/5152/2125 2884/4962/2125 3083/3842/2125 +f 2609/5153/2126 2608/5154/2126 2888/4910/2126 3107/3850/2126 +f 2217/5155/2127 2213/5156/2127 2896/4898/2127 3155/3866/2127 +f 2248/5157/2128 2245/5158/2128 2898/4968/2128 3167/3870/2128 +f 2332/5159/2129 2329/5160/2129 2902/4886/2129 3191/3878/2129 +f 2378/5161/2130 2377/5162/2130 2910/4874/2130 3239/3894/2130 +f 2387/5163/2131 2386/5164/2131 2912/4974/2131 3251/3898/2131 +f 2411/5165/2132 2410/5166/2132 2916/4862/2132 3275/3906/2132 +f 2455/5167/2133 2454/5168/2133 2924/4850/2133 3323/3922/2133 +f 2464/5169/2134 2463/5170/2134 2926/4980/2134 3335/3926/2134 +f 2488/5171/2135 2487/5172/2135 2930/4838/2135 3359/3934/2135 +f 2554/5173/2136 2553/5174/2136 2938/4931/2136 3047/4810/2136 +f 2541/5175/2137 2540/5176/2137 2940/4823/2137 3023/4554/2137 +f 2563/5177/2138 2562/5178/2138 2944/4928/2138 3055/4800/2138 +f 2574/5179/2139 2573/5180/2139 2946/4938/2139 3067/4792/2139 +f 2618/5181/2140 2617/5182/2140 2950/4940/2140 3091/4776/2140 +f 2171/5183/2141 2168/5184/2141 2958/4902/2141 3139/4744/2141 +f 2210/5185/2142 2206/5186/2142 2960/4944/2142 3151/4736/2142 +f 2287/5187/2143 2283/5188/2143 2964/4946/2143 3175/4720/2143 +f 2365/5189/2144 2364/5190/2144 2972/4878/2144 3223/4688/2144 +f 2376/5191/2145 2375/5192/2145 2974/4950/2145 3235/4680/2145 +f 2398/5193/2146 2397/5194/2146 2978/4952/2146 3259/4664/2146 +f 2442/5195/2147 2441/5196/2147 2986/4854/2147 3307/4632/2147 +f 2453/5197/2148 2452/5198/2148 2988/4956/2148 3319/4624/2148 +f 2475/5199/2149 2474/5200/2149 2992/4958/2149 3343/4608/2149 +f 2508/5201/2150 2507/5202/2150 3000/4933/2150 3379/4570/2150 +f 2552/5203/2151 2551/5204/2151 3002/4831/2151 3043/3989/2151 +f 2539/5205/2152 2538/5206/2152 3004/4825/2152 3019/4558/2152 +f 2519/5207/2153 2518/5208/2153 2998/4934/2153 3039/4532/2153 +f 2486/5209/2154 2485/5210/2154 2994/4842/2154 3355/4600/2154 +f 2462/5211/2155 2461/5212/2155 2990/4846/2155 3331/4616/2155 +f 2431/5213/2156 2430/5214/2156 2984/4954/2156 3295/4640/2156 +f 2409/5215/2157 2408/5216/2157 2980/4866/2157 3271/4656/2157 +f 2385/5217/2158 2384/5218/2158 2976/4870/2158 3247/4672/2158 +f 2354/5219/2159 2353/5220/2159 2970/4948/2159 3211/4696/2159 +f 2325/5221/2160 2322/5222/2160 2966/4890/2160 3187/4712/2160 +f 2241/5223/2161 2238/5224/2161 2962/4894/2161 3163/4728/2161 +f 3395/5225/2162 3396/5226/2162 2956/4942/2162 3127/4752/2162 +f 2607/5227/2163 2606/5228/2163 2952/4914/2163 3103/4768/2163 +f 2583/5229/2164 2582/5230/2164 2948/4918/2164 3079/4784/2164 +f 2528/5231/2165 2527/5232/2165 2942/5233/2165 3011/5234/2165 +f 2506/5235/2166 2505/5236/2166 2936/4960/2166 3383/4566/2166 +f 2495/5237/2167 2494/5238/2167 2932/4982/2167 3371/3938/2167 +f 2473/5239/2168 2472/5240/2168 2928/4844/2168 3347/3930/2168 +f 2440/5241/2169 2439/5242/2169 2922/4978/2169 3311/3918/2169 +f 2418/5243/2170 2417/5244/2170 2918/4976/2170 3287/3910/2170 +f 2396/5245/2171 2395/5246/2171 2914/4868/2171 3263/3902/2171 +f 2363/5247/2172 2362/5248/2172 2908/4972/2172 3227/3890/2172 +f 2341/5249/2173 2340/5250/2173 2904/4970/2173 3203/3882/2173 +f 2280/5251/2174 2276/5252/2174 2900/4892/2174 3179/3874/2174 +f 2164/5253/2175 2161/5254/2175 2894/4966/2175 3143/3862/2175 +f 2594/5255/2176 2593/5256/2176 2890/4964/2176 3119/3854/2176 +f 2616/5257/2177 2615/5258/2177 2886/4916/2177 3095/3846/2177 +f 2561/5259/2178 2560/5260/2178 2880/4814/2178 3059/3834/2178 +f 2550/5261/2179 2549/5262/2179 2874/4827/2179 3051/3950/2179 +f 2517/5263/2180 2516/5264/2180 2870/4930/2180 3031/4568/2180 +f 2484/5265/2181 2483/5266/2181 2866/5006/2181 3363/4483/2181 +f 2451/5267/2182 2450/5268/2182 2860/5004/2182 3327/4426/2182 +f 2429/5269/2183 2428/5270/2183 2856/5002/2183 3303/4388/2183 +f 2407/5271/2184 2406/5272/2184 2852/5000/2184 3279/4350/2184 +f 2374/5273/2185 2373/5274/2185 2846/4998/2185 3243/4293/2185 +f 2352/5275/2186 2351/5276/2186 2842/4996/2186 3219/4255/2186 +f 2318/5277/2187 2315/5278/2187 2838/4994/2187 3195/4217/2187 +f 2203/5279/2188 2199/5280/2188 2832/4992/2188 3159/4160/2188 +f 3397/5281/2189 3398/5282/2189 2828/4990/2189 3135/4122/2189 +f 2605/5283/2190 2604/5284/2190 2824/4988/2190 3111/4084/2190 +f 2572/5285/2191 2571/5286/2191 2818/4986/2191 3075/4027/2191 +f 2529/5146/2192 2526/5287/2192 3010/5288/2192 2878/5147/2192 +f 2542/5144/2193 2537/5289/2193 3030/4936/2193 2876/4821/2193 +f 2527/5232/2194 2525/5290/2194 3014/5291/2194 2942/5233/2194 +f 2540/5176/2195 2536/5292/2195 3026/4819/2195 2940/4823/2195 +f 2531/5117/2196 2524/5293/2196 3018/5294/2196 3006/5118/2196 +f 2538/5206/2197 2535/5295/2197 3022/4553/2197 3004/4825/2197 +f 2549/5262/2198 2548/5296/2198 3054/3982/2198 2874/4827/2198 +f 2553/5174/2199 2547/5297/2199 3050/3949/2199 2938/4931/2199 +f 2551/5204/2200 2546/5298/2200 3046/4809/2200 3002/4831/2200 +f 2509/5099/2201 2504/5299/2201 3390/4565/2201 2872/4929/2201 +f 2516/5264/2202 2515/5300/2202 3034/4522/2202 2870/4930/2202 +f 2505/5236/2203 2503/5301/2203 3386/4569/2203 2936/4960/2203 +f 2520/5107/2204 2514/5302/2204 3038/4567/2204 2934/4959/2204 +f 2507/5202/2205 2502/5303/2205 3382/4529/2205 3000/4933/2205 +f 2518/5208/2206 2513/5304/2206 3042/4571/2206 2998/4934/2206 +f 2496/5142/2207 2493/5305/2207 3378/3937/2207 2868/4834/2207 +f 2494/5238/2208 2492/5306/2208 3374/4591/2208 2932/4982/2208 +f 2498/5115/2209 2491/5307/2209 3370/4510/2209 2996/4836/2209 +f 2483/5266/2210 2482/5308/2210 3366/3933/2210 2866/5006/2210 +f 2487/5172/2211 2481/5309/2211 3362/4599/2211 2930/4838/2211 +f 2485/5210/2212 2480/5310/2212 3358/4491/2212 2994/4842/2212 +f 2476/5140/2213 2471/5311/2213 3354/3929/2213 2864/4840/2213 +f 2472/5240/2214 2470/5312/2214 3350/4607/2214 2928/4844/2214 +f 2474/5200/2215 2469/5313/2215 3346/4472/2215 2992/4958/2215 +f 2465/5138/2216 2460/5314/2216 3342/3925/2216 2862/4848/2216 +f 2463/5170/2217 2459/5315/2217 3338/4615/2217 2926/4980/2217 +f 2461/5212/2218 2458/5316/2218 3334/4453/2218 2990/4846/2218 +f 2450/5268/2219 2449/5317/2219 3330/3921/2219 2860/5004/2219 +f 2454/5168/2220 2448/5318/2220 3326/4623/2220 2924/4850/2220 +f 2452/5198/2221 2447/5319/2221 3322/4434/2221 2988/4956/2221 +f 2443/5097/2222 2438/5320/2222 3318/3917/2222 2858/4852/2222 +f 2439/5242/2223 2437/5321/2223 3314/4631/2223 2922/4978/2223 +f 2441/5196/2224 2436/5322/2224 3310/4415/2224 2986/4854/2224 +f 2428/5270/2225 2427/5323/2225 3306/3913/2225 2856/5002/2225 +f 2432/5105/2226 2426/5324/2226 3302/4639/2226 2920/4856/2226 +f 2430/5214/2227 2425/5325/2227 3298/4396/2227 2984/4954/2227 +f 2419/5136/2228 2416/5326/2228 3294/3909/2228 2854/4858/2228 +f 2417/5244/2229 2415/5327/2229 3290/4647/2229 2918/4976/2229 +f 2421/5113/2230 2414/5328/2230 3286/4377/2230 2982/4860/2230 +f 2406/5272/2231 2405/5329/2231 3282/3905/2231 2852/5000/2231 +f 2410/5166/2232 2404/5330/2232 3278/4655/2232 2916/4862/2232 +f 2408/5216/2233 2403/5331/2233 3274/4358/2233 2980/4866/2233 +f 2399/5134/2234 2394/5332/2234 3270/3901/2234 2850/4864/2234 +f 2395/5246/2235 2393/5333/2235 3266/4663/2235 2914/4868/2235 +f 2397/5194/2236 2392/5334/2236 3262/4339/2236 2978/4952/2236 +f 2388/5132/2237 2383/5335/2237 3258/3897/2237 2848/4872/2237 +f 2386/5164/2238 2382/5336/2238 3254/4671/2238 2912/4974/2238 +f 2384/5218/2239 2381/5337/2239 3250/4320/2239 2976/4870/2239 +f 2373/5274/2240 2372/5338/2240 3246/3893/2240 2846/4998/2240 +f 2377/5162/2241 2371/5339/2241 3242/4679/2241 2910/4874/2241 +f 2375/5192/2242 2370/5340/2242 3238/4301/2242 2974/4950/2242 +f 2366/5095/2243 2361/5341/2243 3234/3889/2243 2844/4876/2243 +f 2362/5248/2244 2360/5342/2244 3230/4687/2244 2908/4972/2244 +f 2364/5190/2245 2359/5343/2245 3226/4282/2245 2972/4878/2245 +f 2351/5276/2246 2350/5344/2246 3222/3885/2246 2842/4996/2246 +f 2355/5103/2247 2349/5345/2247 3218/4695/2247 2906/4880/2247 +f 2353/5220/2248 2348/5346/2248 3214/4263/2248 2970/4948/2248 +f 2342/5130/2249 2339/5347/2249 3210/3881/2249 2840/4882/2249 +f 2340/5250/2250 2338/5348/2250 3206/4703/2250 2904/4970/2250 +f 2344/5111/2251 2337/5349/2251 3202/4244/2251 2968/4884/2251 +f 2315/5278/2252 2311/5350/2252 3198/3877/2252 2838/4994/2252 +f 2329/5160/2253 2308/5351/2253 3194/4711/2253 2902/4886/2253 +f 2322/5222/2254 2304/5352/2254 3190/4225/2254 2966/4890/2254 +f 2290/5128/2255 2273/5353/2255 3186/3873/2255 2836/4888/2255 +f 2276/5252/2256 2269/5354/2256 3182/4719/2256 2900/4892/2256 +f 2283/5188/2257 2266/5355/2257 3178/4206/2257 2964/4946/2257 +f 2252/5126/2258 2234/5356/2258 3174/3869/2258 2834/4896/2258 +f 2245/5158/2259 2231/5357/2259 3170/4727/2259 2898/4968/2259 +f 2238/5224/2260 2227/5358/2260 3166/4187/2260 2962/4894/2260 +f 2199/5280/2261 2196/5359/2261 3162/3865/2261 2832/4992/2261 +f 2213/5156/2262 2192/5360/2262 3158/4735/2262 2896/4898/2262 +f 2206/5186/2263 2189/5361/2263 3154/4168/2263 2960/4944/2263 +f 2175/5093/2264 2157/5362/2264 3150/3861/2264 2830/4900/2264 +f 2161/5254/2265 2154/5363/2265 3146/4743/2265 2894/4966/2265 +f 2168/5184/2266 2150/5364/2266 3142/4149/2266 2958/4902/2266 +f 3398/5282/2267 3399/5365/2267 3138/3857/2267 2828/4990/2267 +f 3394/5101/2268 3400/5366/2268 3134/4751/2268 2892/4904/2268 +f 3396/5226/2269 3401/5367/2269 3130/4130/2269 2956/4942/2269 +f 2595/5124/2270 2592/5368/2270 3126/3853/2270 2826/4906/2270 +f 2593/5256/2271 2591/5369/2271 3122/4759/2271 2890/4964/2271 +f 2597/5109/2272 2590/5370/2272 3118/4111/2272 2954/4908/2272 +f 2604/5284/2273 2603/5371/2273 3114/3849/2273 2824/4988/2273 +f 2608/5154/2274 2602/5372/2274 3110/4767/2274 2888/4910/2274 +f 2606/5228/2275 2601/5373/2275 3106/4092/2275 2952/4914/2275 +f 2619/5122/2276 2614/5374/2276 3102/3845/2276 2822/4912/2276 +f 2615/5258/2277 2613/5375/2277 3098/4775/2277 2886/4916/2277 +f 2617/5182/2278 2612/5376/2278 3094/4073/2278 2950/4940/2278 +f 2586/5121/2279 2581/5377/2279 3090/3841/2279 2820/4920/2279 +f 2584/5152/2280 2580/5378/2280 3086/4783/2280 2884/4962/2280 +f 2582/5230/2281 2579/5379/2281 3082/4054/2281 2948/4918/2281 +f 2571/5286/2282 2570/5380/2282 3078/3837/2282 2818/4986/2282 +f 2575/5150/2283 2569/5381/2283 3074/4791/2283 2882/4922/2283 +f 2573/5180/2284 2568/5382/2284 3070/4035/2284 2946/4938/2284 +f 2564/5091/2285 2559/5383/2285 3066/3833/2285 2816/4924/2285 +f 2560/5260/2286 2558/5384/2286 3062/4799/2286 2880/4814/2286 +f 2562/5178/2287 2557/5385/2287 3058/4016/2287 2944/4928/2287 +f 2523/5386/2288 2515/5300/2288 3033/3958/2288 2810/3957/2288 +f 2530/5145/2289 2534/5387/2289 2623/3960/2289 3008/3959/2289 +f 2526/5287/2290 2528/5388/2290 3011/5389/2290 3010/5390/2290 +f 2536/5292/2291 2543/5143/2291 3027/4820/2291 3026/4819/2291 +f 2537/5289/2292 2545/5391/2292 2629/4541/2292 3030/4936/2292 +f 2517/5263/2293 2514/5302/2293 3037/4804/2293 3032/4803/2293 +f 2521/5106/2294 2513/5304/2294 3041/4582/2294 3036/4811/2294 +f 2532/5116/2295 2525/5392/2295 3013/4812/2295 3016/4581/2295 +f 2535/5295/2296 2541/5175/2296 3023/4554/2296 3022/4553/2296 +f 2524/5293/2297 2533/5393/2297 2626/5394/2297 3018/5294/2297 +f 2544/5013/2298 2539/5205/2298 3019/4558/2298 2633/4557/2298 +f 2519/5207/2299 2522/5088/2299 2812/3969/2299 3040/4547/2299 +f 2555/5016/2300 2552/5203/2300 3043/3989/2300 2639/3988/2300 +f 2546/5298/2301 2554/5173/2301 3047/4810/2301 3046/4809/2301 +f 2547/5297/2302 2550/5261/2302 3051/3950/2302 3050/3949/2302 +f 2548/5296/2303 2556/5015/2303 2635/3953/2303 3054/3982/2303 +f 2512/5084/2304 2510/5098/2304 3387/4521/2304 2804/4520/2304 +f 2504/5299/2305 2506/5235/2305 3383/4566/2305 3390/4565/2305 +f 2503/5301/2306 2508/5201/2306 3379/4570/2306 3386/4569/2306 +f 2502/5303/2307 2511/5085/2307 2806/4530/2307 3382/4529/2307 +f 2566/5018/2308 2557/5385/2308 3057/4004/2308 2645/4003/2308 +f 2563/5177/2309 2558/5384/2309 3061/4576/2309 3056/4575/2309 +f 2561/5259/2310 2559/5383/2310 3065/3832/2310 3060/3831/2310 +f 2565/5090/2311 2567/5395/2311 2641/3825/2311 3064/3997/2311 +f 2577/5021/2312 2568/5382/2312 3069/4019/2312 2651/4018/2312 +f 2574/5179/2313 2569/5381/2313 3073/4802/2313 3068/4801/2313 +f 2576/5149/2314 2570/5380/2314 3077/3836/2314 3072/3835/2314 +f 2572/5285/2315 2578/5020/2315 2647/3943/2315 3076/4012/2315 +f 2588/5023/2316 2579/5379/2316 3081/4038/2316 2657/4037/2316 +f 2583/5229/2317 2580/5378/2317 3085/4794/2317 3080/4793/2317 +f 2585/5151/2318 2581/5377/2318 3089/3840/2318 3084/3839/2318 +f 2587/5120/2319 2589/5396/2319 2653/4029/2319 3088/4028/2319 +f 2621/5025/2320 2612/5376/2320 3093/4057/2320 2663/4056/2320 +f 2618/5181/2321 2613/5375/2321 3097/4786/2321 3092/4785/2321 +f 2616/5257/2322 2614/5374/2322 3101/3844/2322 3096/3843/2322 +f 2620/4586/2323 2622/4585/2323 2659/4048/2323 3100/4047/2323 +f 2610/5027/2324 2601/5373/2324 3105/4076/2324 2669/4075/2324 +f 2607/5227/2325 2602/5372/2325 3109/4778/2325 3104/4777/2325 +f 2609/5153/2326 2603/5371/2326 3113/3848/2326 3108/3847/2326 +f 2605/5283/2327 2611/5397/2327 2665/4067/2327 3112/4066/2327 +f 2599/5030/2328 2590/5370/2328 3117/4095/2328 2675/4094/2328 +f 2598/5108/2329 2591/5369/2329 3121/4770/2329 3116/4769/2329 +f 2594/5255/2330 2592/5368/2330 3125/3852/2330 3120/3851/2330 +f 2596/5123/2331 2600/5029/2331 2671/4086/2331 3124/4085/2331 +f 3392/5032/2332 3401/5367/2332 3129/4114/2332 2681/4113/2332 +f 3395/5225/2333 3400/5366/2333 3133/4762/2333 3128/4761/2333 +f 3393/5100/2334 3399/5365/2334 3137/3856/2334 3132/3855/2334 +f 3397/5281/2335 3391/5398/2335 2677/4105/2335 3136/4104/2335 +f 2182/5035/2336 2150/5364/2336 3141/4133/2336 2687/4132/2336 +f 2171/5183/2337 2154/5363/2337 3145/4754/2337 3140/4753/2337 +f 2164/5253/2338 2157/5362/2338 3149/3860/2338 3144/3859/2338 +f 2178/5092/2339 2185/5034/2339 2683/4124/2339 3148/4123/2339 +f 2220/5037/2340 2189/5361/2340 3153/4152/2340 2693/4151/2340 +f 2210/5185/2341 2192/5360/2341 3157/4746/2341 3152/4745/2341 +f 2217/5155/2342 2196/5359/2342 3161/3864/2342 3156/3863/2342 +f 2203/5279/2343 2224/5399/2343 2689/4143/2343 3160/4142/2343 +f 2259/5040/2344 2227/5358/2344 3165/4171/2344 2699/4170/2344 +f 2241/5223/2345 2231/5357/2345 3169/4738/2345 3164/4737/2345 +f 2248/5157/2346 2234/5356/2346 3173/3868/2346 3168/3867/2346 +f 2255/5125/2347 2262/5039/2347 2695/4162/2347 3172/4161/2347 +f 2297/5042/2348 2266/5355/2348 3177/4190/2348 2705/4189/2348 +f 2287/5187/2349 2269/5354/2349 3181/4730/2349 3176/4729/2349 +f 2280/5251/2350 2273/5353/2350 3185/3872/2350 3180/3871/2350 +f 2294/5127/2351 2301/5400/2351 2701/4181/2351 3184/4180/2351 +f 2335/5045/2352 2304/5352/2352 3189/4209/2352 2711/4208/2352 +f 2325/5221/2353 2308/5351/2353 3193/4722/2353 3188/4721/2353 +f 2332/5159/2354 2311/5350/2354 3197/3876/2354 3192/3875/2354 +f 2318/5277/2355 2336/5044/2355 2707/4200/2355 3196/4199/2355 +f 2346/5047/2356 2337/5349/2356 3201/4228/2356 2717/4227/2356 +f 2345/5110/2357 2338/5348/2357 3205/4714/2357 3200/4713/2357 +f 2341/5249/2358 2339/5347/2358 3209/3880/2358 3204/3879/2358 +f 2343/5129/2359 2347/5401/2359 2713/4219/2359 3208/4218/2359 +f 2357/5050/2360 2348/5346/2360 3213/4247/2360 2723/4246/2360 +f 2354/5219/2361 2349/5345/2361 3217/4706/2361 3212/4705/2361 +f 2356/5102/2362 2350/5344/2362 3221/3884/2362 3216/3883/2362 +f 2352/5275/2363 2358/5049/2363 2719/4238/2363 3220/4237/2363 +f 2368/5052/2364 2359/5343/2364 3225/4266/2364 2729/4265/2364 +f 2365/5189/2365 2360/5342/2365 3229/4698/2365 3224/4697/2365 +f 2363/5247/2366 2361/5341/2366 3233/3888/2366 3228/3887/2366 +f 2367/5094/2367 2369/5402/2367 2725/4257/2367 3232/4256/2367 +f 2379/5055/2368 2370/5340/2368 3237/4285/2368 2735/4284/2368 +f 2376/5191/2369 2371/5339/2369 3241/4690/2369 3236/4689/2369 +f 2378/5161/2370 2372/5338/2370 3245/3892/2370 3240/3891/2370 +f 2374/5273/2371 2380/5054/2371 2731/4276/2371 3244/4275/2371 +f 2390/5057/2372 2381/5337/2372 3249/4304/2372 2741/4303/2372 +f 2385/5217/2373 2382/5336/2373 3253/4682/2373 3248/4681/2373 +f 2387/5163/2374 2383/5335/2374 3257/3896/2374 3252/3895/2374 +f 2389/5131/2375 2391/5403/2375 2737/4295/2375 3256/4294/2375 +f 2401/5060/2376 2392/5334/2376 3261/4323/2376 2747/4322/2376 +f 2398/5193/2377 2393/5333/2377 3265/4674/2377 3260/4673/2377 +f 2396/5245/2378 2394/5332/2378 3269/3900/2378 3264/3899/2378 +f 2400/5133/2379 2402/5059/2379 2743/4314/2379 3268/4313/2379 +f 2412/5062/2380 2403/5331/2380 3273/4342/2380 2753/4341/2380 +f 2409/5215/2381 2404/5330/2381 3277/4666/2381 3272/4665/2381 +f 2411/5165/2382 2405/5329/2382 3281/3904/2382 3276/3903/2382 +f 2407/5271/2383 2413/5404/2383 2749/4333/2383 3280/4332/2383 +f 2423/5065/2384 2414/5328/2384 3285/4361/2384 2759/4360/2384 +f 2422/5112/2385 2415/5327/2385 3289/4658/2385 3284/4657/2385 +f 2418/5243/2386 2416/5326/2386 3293/3908/2386 3288/3907/2386 +f 2420/5135/2387 2424/5064/2387 2755/4352/2387 3292/4351/2387 +f 2434/5067/2388 2425/5325/2388 3297/4380/2388 2765/4379/2388 +f 2431/5213/2389 2426/5324/2389 3301/4650/2389 3296/4649/2389 +f 2433/5104/2390 2427/5323/2390 3305/3912/2390 3300/3911/2390 +f 2429/5269/2391 2435/5405/2391 2761/4371/2391 3304/4370/2391 +f 2445/5070/2392 2436/5322/2392 3309/4399/2392 2771/4398/2392 +f 2442/5195/2393 2437/5321/2393 3313/4642/2393 3308/4641/2393 +f 2440/5241/2394 2438/5320/2394 3317/3916/2394 3312/3915/2394 +f 2444/5096/2395 2446/5069/2395 2767/4390/2395 3316/4389/2395 +f 2456/5072/2396 2447/5319/2396 3321/4418/2396 2777/4417/2396 +f 2453/5197/2397 2448/5318/2397 3325/4634/2397 3320/4633/2397 +f 2455/5167/2398 2449/5317/2398 3329/3920/2398 3324/3919/2398 +f 2451/5267/2399 2457/5406/2399 2773/4409/2399 3328/4408/2399 +f 2467/5075/2400 2458/5316/2400 3333/4437/2400 2783/4436/2400 +f 2462/5211/2401 2459/5315/2401 3337/4626/2401 3332/4625/2401 +f 2464/5169/2402 2460/5314/2402 3341/3924/2402 3336/3923/2402 +f 2466/5137/2403 2468/5074/2403 2779/4428/2403 3340/4427/2403 +f 2478/5077/2404 2469/5313/2404 3345/4456/2404 2789/4455/2404 +f 2475/5199/2405 2470/5312/2405 3349/4618/2405 3344/4617/2405 +f 2473/5239/2406 2471/5311/2406 3353/3928/2406 3348/3927/2406 +f 2477/5139/2407 2479/5407/2407 2785/4447/2407 3352/4446/2407 +f 2489/5080/2408 2480/5310/2408 3357/4475/2408 2795/4474/2408 +f 2486/5209/2409 2481/5309/2409 3361/4610/2409 3356/4609/2409 +f 2488/5171/2410 2482/5308/2410 3365/3932/2410 3360/3931/2410 +f 2484/5265/2411 2490/5079/2411 2791/4466/2411 3364/4465/2411 +f 2500/5082/2412 2491/5307/2412 3369/4494/2412 2801/4493/2412 +f 2499/5114/2413 2492/5306/2413 3373/4602/2413 3368/4601/2413 +f 2495/5237/2414 2493/5305/2414 3377/3936/2414 3372/3935/2414 +f 2497/5141/2415 2501/5408/2415 2797/4485/2415 3376/4484/2415 +f 2811/5087/2416 2810/3957/2416 2623/3960/2416 2625/5009/2416 2124/4544/2416 2331/4543/2416 +f 3095/3846/2417 3102/3845/2417 2614/5374/2417 2616/5257/2417 +f 3091/4776/2418 3098/4775/2418 2613/5375/2418 2618/5181/2418 +f 2662/4074/2419 3094/4073/2419 2612/5376/2419 2621/5025/2419 +f 2949/4917/2420 3093/4057/2420 2612/5376/2420 2617/5182/2420 +f 2885/4961/2421 3097/4786/2421 2613/5375/2421 2615/5258/2421 +f 2821/4919/2422 3101/3844/2422 2614/5374/2422 2619/5122/2422 +f 3096/3843/2423 2885/4961/2423 2615/5258/2423 2616/5257/2423 +f 3092/4785/2424 2949/4917/2424 2617/5182/2424 2618/5181/2424 +f 3100/4047/2425 2821/4919/2425 2619/5122/2425 2620/4586/2425 +f 3111/4084/2426 2666/4083/2426 2611/5397/2426 2605/5283/2426 +f 3107/3850/2427 3114/3849/2427 2603/5371/2427 2609/5153/2427 +f 3103/4768/2428 3110/4767/2428 2602/5372/2428 2607/5227/2428 +f 2668/4093/2429 3106/4092/2429 2601/5373/2429 2610/5027/2429 +f 2951/4939/2430 3105/4076/2430 2601/5373/2430 2606/5228/2430 +f 2887/4915/2431 3109/4778/2431 2602/5372/2431 2608/5154/2431 +f 2823/4911/2432 3113/3848/2432 2603/5371/2432 2604/5284/2432 +f 3112/4066/2433 2823/4911/2433 2604/5284/2433 2605/5283/2433 +f 3104/4777/2434 2951/4939/2434 2606/5228/2434 2607/5227/2434 +f 3108/3847/2435 2887/4915/2435 2608/5154/2435 2609/5153/2435 +f 3123/4103/2436 2672/4102/2436 2600/5029/2436 2596/5123/2436 +f 3119/3854/2437 3126/3853/2437 2592/5368/2437 2594/5255/2437 +f 3115/4760/2438 3122/4759/2438 2591/5369/2438 2598/5108/2438 +f 2674/4112/2439 3118/4111/2439 2590/5370/2439 2599/5030/2439 +f 2953/4913/2440 3117/4095/2440 2590/5370/2440 2597/5109/2440 +f 2889/4909/2441 3121/4770/2441 2591/5369/2441 2593/5256/2441 +f 2825/4987/2442 3125/3852/2442 2592/5368/2442 2595/5124/2442 +f 3120/3851/2443 2889/4909/2443 2593/5256/2443 2594/5255/2443 +f 3124/4085/2444 2825/4987/2444 2595/5124/2444 2596/5123/2444 +f 3116/4769/2445 2953/4913/2445 2597/5109/2445 2598/5108/2445 +f 3087/4046/2446 2654/4045/2446 2589/5396/2446 2587/5120/2446 +f 3083/3842/2447 3090/3841/2447 2581/5377/2447 2585/5151/2447 +f 3079/4784/2448 3086/4783/2448 2580/5378/2448 2583/5229/2448 +f 2656/4055/2449 3082/4054/2449 2579/5379/2449 2588/5023/2449 +f 2947/4937/2450 3081/4038/2450 2579/5379/2450 2582/5230/2450 +f 2883/4921/2451 3085/4794/2451 2580/5378/2451 2584/5152/2451 +f 2819/4985/2452 3089/3840/2452 2581/5377/2452 2586/5121/2452 +f 3080/4793/2453 2947/4937/2453 2582/5230/2453 2583/5229/2453 +f 3084/3839/2454 2883/4921/2454 2584/5152/2454 2585/5151/2454 +f 3088/4028/2455 2819/4985/2455 2586/5121/2455 2587/5120/2455 +f 3075/4027/2456 2648/4026/2456 2578/5020/2456 2572/5285/2456 +f 3071/3838/2457 3078/3837/2457 2570/5380/2457 2576/5149/2457 +f 3067/4792/2458 3074/4791/2458 2569/5381/2458 2574/5179/2458 +f 2650/4036/2459 3070/4035/2459 2568/5382/2459 2577/5021/2459 +f 2945/4927/2460 3069/4019/2460 2568/5382/2460 2573/5180/2460 +f 2881/4813/2461 3073/4802/2461 2569/5381/2461 2575/5150/2461 +f 2817/4923/2462 3077/3836/2462 2570/5380/2462 2571/5286/2462 +f 3076/4012/2463 2817/4923/2463 2571/5286/2463 2572/5285/2463 +f 3068/4801/2464 2945/4927/2464 2573/5180/2464 2574/5179/2464 +f 3072/3835/2465 2881/4813/2465 2575/5150/2465 2576/5149/2465 +f 3063/4011/2466 2642/3942/2466 2567/5395/2466 2565/5090/2466 +f 3059/3834/2467 3066/3833/2467 2559/5383/2467 2561/5259/2467 +f 3055/4800/2468 3062/4799/2468 2558/5384/2468 2563/5177/2468 +f 2644/4017/2469 3058/4016/2469 2557/5385/2469 2566/5018/2469 +f 2943/4815/2470 3057/4004/2470 2557/5385/2470 2562/5178/2470 +f 2879/4926/2471 3061/4576/2471 2558/5384/2471 2560/5260/2471 +f 2815/4578/2472 3065/3832/2472 2559/5383/2472 2564/5091/2472 +f 3060/3831/2473 2879/4926/2473 2560/5260/2473 2561/5259/2473 +f 3056/4575/2474 2943/4815/2474 2562/5178/2474 2563/5177/2474 +f 3064/3997/2475 2815/4578/2475 2564/5091/2475 2565/5090/2475 +f 3053/3996/2476 2636/3824/2476 2556/5015/2476 2548/5296/2476 +f 3049/3830/2477 3052/3829/2477 2550/5261/2477 2547/5297/2477 +f 3045/4574/2478 3048/4573/2478 2554/5173/2478 2546/5298/2478 +f 2638/4002/2479 3044/4001/2479 2552/5203/2479 2555/5016/2479 +f 3001/4816/2480 3045/4574/2480 2546/5298/2480 2551/5204/2480 +f 2937/4925/2481 3049/3830/2481 2547/5297/2481 2553/5174/2481 +f 2873/4577/2482 3053/3996/2482 2548/5296/2482 2549/5262/2482 +f 3052/3829/2483 2873/4577/2483 2549/5262/2483 2550/5261/2483 +f 3044/4001/2484 3001/4816/2484 2551/5204/2484 2552/5203/2484 +f 3048/4573/2485 2937/4925/2485 2553/5174/2485 2554/5173/2485 +f 2632/3987/2486 3020/3986/2486 2539/5205/2486 2544/5013/2486 +f 3021/4808/2487 3024/4807/2487 2541/5175/2487 2535/5295/2487 +f 3029/3981/2488 2630/3952/2488 2545/5391/2488 2537/5289/2488 +f 3025/3948/2489 3028/3947/2489 2543/5143/2489 2536/5292/2489 +f 3003/4832/2490 3021/4808/2490 2535/5295/2490 2538/5206/2490 +f 2939/4932/2491 3025/3948/2491 2536/5292/2491 2540/5176/2491 +f 2875/4828/2492 3029/3981/2492 2537/5289/2492 2542/5144/2492 +f 3020/3986/2493 3003/4832/2493 2538/5206/2493 2539/5205/2493 +f 3024/4807/2494 2939/4932/2494 2540/5176/2494 2541/5175/2494 +f 3028/3947/2495 2875/4828/2495 2542/5144/2495 2543/5143/2495 +f 3017/4548/2496 2627/3968/2496 2533/5393/2496 2524/5293/2496 +f 3015/5409/2497 3014/5410/2497 2525/5392/2497 2532/5116/2497 +f 3009/4806/2498 3012/4805/2498 2528/5388/2498 2526/5287/2498 +f 3007/5148/2499 2624/5411/2499 2534/5387/2499 2530/5145/2499 +f 3005/4580/2500 3017/4548/2500 2524/5293/2500 2531/5117/2500 +f 2941/4830/2501 3013/4812/2501 2525/5290/2501 2527/5232/2501 +f 2877/4984/2502 3009/4806/2502 2526/5287/2502 2529/5146/2502 +f 3012/4805/2503 2941/4830/2503 2527/5232/2503 2528/5231/2503 +f 3008/3959/2504 2877/4984/2504 2529/5146/2504 2530/5145/2504 +f 3016/4581/2505 3005/4580/2505 2531/5117/2505 2532/5116/2505 +f 3039/4532/2506 2813/4531/2506 2522/5088/2506 2519/5207/2506 +f 3035/4572/2507 3042/4571/2507 2513/5304/2507 2521/5106/2507 +f 3031/4568/2508 3038/4567/2508 2514/5302/2508 2517/5263/2508 +f 2809/4523/2509 3034/4522/2509 2515/5300/2509 2523/5386/2509 +f 2997/4579/2510 3041/4582/2510 2513/5304/2510 2518/5208/2510 +f 2933/4829/2511 3037/4804/2511 2514/5302/2511 2520/5107/2511 +f 2869/4983/2512 3033/3958/2512 2515/5300/2512 2516/5264/2512 +f 3032/4803/2513 2869/4983/2513 2516/5264/2513 2517/5263/2513 +f 3040/4547/2514 2997/4579/2514 2518/5208/2514 2519/5207/2514 +f 3036/4811/2515 2933/4829/2515 2520/5107/2515 2521/5106/2515 +f 3381/4513/2516 2807/4512/2516 2511/5085/2516 2502/5303/2516 +f 3385/4594/2517 3380/4593/2517 2508/5201/2517 2503/5301/2517 +f 3389/3940/2518 3384/3939/2518 2506/5235/2518 2504/5299/2518 +f 2803/4504/2519 3388/4503/2519 2510/5098/2519 2512/5084/2519 +f 2999/4835/2520 3381/4513/2520 2502/5303/2520 2507/5202/2520 +f 2935/4981/2521 3385/4594/2521 2503/5301/2521 2505/5236/2521 +f 2871/4833/2522 3389/3940/2522 2504/5299/2522 2509/5099/2522 +f 3384/3939/2523 2935/4981/2523 2505/5236/2523 2506/5235/2523 +f 3380/4593/2524 2999/4835/2524 2507/5202/2524 2508/5201/2524 +f 3388/4503/2525 2871/4833/2525 2509/5099/2525 2510/5098/2525 +f 3375/4502/2526 2798/4501/2526 2501/5408/2526 2497/5141/2526 +f 3371/3938/2527 3378/3937/2527 2493/5305/2527 2495/5237/2527 +f 3367/4592/2528 3374/4591/2528 2492/5306/2528 2499/5114/2528 +f 2800/4511/2529 3370/4510/2529 2491/5307/2529 2500/5082/2529 +f 2995/4841/2530 3369/4494/2530 2491/5307/2530 2498/5115/2530 +f 2931/4837/2531 3373/4602/2531 2492/5306/2531 2494/5238/2531 +f 2867/5005/2532 3377/3936/2532 2493/5305/2532 2496/5142/2532 +f 3372/3935/2533 2931/4837/2533 2494/5238/2533 2495/5237/2533 +f 3376/4484/2534 2867/5005/2534 2496/5142/2534 2497/5141/2534 +f 3368/4601/2535 2995/4841/2535 2498/5115/2535 2499/5114/2535 +f 3363/4483/2536 2792/4482/2536 2490/5079/2536 2484/5265/2536 +f 3359/3934/2537 3366/3933/2537 2482/5308/2537 2488/5171/2537 +f 3355/4600/2538 3362/4599/2538 2481/5309/2538 2486/5209/2538 +f 2794/4492/2539 3358/4491/2539 2480/5310/2539 2489/5080/2539 +f 2993/4957/2540 3357/4475/2540 2480/5310/2540 2485/5210/2540 +f 2929/4843/2541 3361/4610/2541 2481/5309/2541 2487/5172/2541 +f 2865/4839/2542 3365/3932/2542 2482/5308/2542 2483/5266/2542 +f 3364/4465/2543 2865/4839/2543 2483/5266/2543 2484/5265/2543 +f 3356/4609/2544 2993/4957/2544 2485/5210/2544 2486/5209/2544 +f 3360/3931/2545 2929/4843/2545 2487/5172/2545 2488/5171/2545 +f 3351/4464/2546 2786/4463/2546 2479/5407/2546 2477/5139/2546 +f 3347/3930/2547 3354/3929/2547 2471/5311/2547 2473/5239/2547 +f 3343/4608/2548 3350/4607/2548 2470/5312/2548 2475/5199/2548 +f 2788/4473/2549 3346/4472/2549 2469/5313/2549 2478/5077/2549 +f 2991/4845/2550 3345/4456/2550 2469/5313/2550 2474/5200/2550 +f 2927/4979/2551 3349/4618/2551 2470/5312/2551 2472/5240/2551 +f 2863/4847/2552 3353/3928/2552 2471/5311/2552 2476/5140/2552 +f 3348/3927/2553 2927/4979/2553 2472/5240/2553 2473/5239/2553 +f 3344/4617/2554 2991/4845/2554 2474/5200/2554 2475/5199/2554 +f 3352/4446/2555 2863/4847/2555 2476/5140/2555 2477/5139/2555 +f 3339/4445/2556 2780/4444/2556 2468/5074/2556 2466/5137/2556 +f 3335/3926/2557 3342/3925/2557 2460/5314/2557 2464/5169/2557 +f 3331/4616/2558 3338/4615/2558 2459/5315/2558 2462/5211/2558 +f 2782/4454/2559 3334/4453/2559 2458/5316/2559 2467/5075/2559 +f 2989/4955/2560 3333/4437/2560 2458/5316/2560 2461/5212/2560 +f 2925/4849/2561 3337/4626/2561 2459/5315/2561 2463/5170/2561 +f 2861/5003/2562 3341/3924/2562 2460/5314/2562 2465/5138/2562 +f 3332/4625/2563 2989/4955/2563 2461/5212/2563 2462/5211/2563 +f 3336/3923/2564 2925/4849/2564 2463/5170/2564 2464/5169/2564 +f 3340/4427/2565 2861/5003/2565 2465/5138/2565 2466/5137/2565 +f 3327/4426/2566 2774/4425/2566 2457/5406/2566 2451/5267/2566 +f 3323/3922/2567 3330/3921/2567 2449/5317/2567 2455/5167/2567 +f 3319/4624/2568 3326/4623/2568 2448/5318/2568 2453/5197/2568 +f 2776/4435/2569 3322/4434/2569 2447/5319/2569 2456/5072/2569 +f 2987/4853/2570 3321/4418/2570 2447/5319/2570 2452/5198/2570 +f 2923/4977/2571 3325/4634/2571 2448/5318/2571 2454/5168/2571 +f 2859/4851/2572 3329/3920/2572 2449/5317/2572 2450/5268/2572 +f 3328/4408/2573 2859/4851/2573 2450/5268/2573 2451/5267/2573 +f 3320/4633/2574 2987/4853/2574 2452/5198/2574 2453/5197/2574 +f 3324/3919/2575 2923/4977/2575 2454/5168/2575 2455/5167/2575 +f 3315/4407/2576 2768/4406/2576 2446/5069/2576 2444/5096/2576 +f 3311/3918/2577 3318/3917/2577 2438/5320/2577 2440/5241/2577 +f 3307/4632/2578 3314/4631/2578 2437/5321/2578 2442/5195/2578 +f 2770/4416/2579 3310/4415/2579 2436/5322/2579 2445/5070/2579 +f 2985/4953/2580 3309/4399/2580 2436/5322/2580 2441/5196/2580 +f 2921/4855/2581 3313/4642/2581 2437/5321/2581 2439/5242/2581 +f 2857/5001/2582 3317/3916/2582 2438/5320/2582 2443/5097/2582 +f 3312/3915/2583 2921/4855/2583 2439/5242/2583 2440/5241/2583 +f 3308/4641/2584 2985/4953/2584 2441/5196/2584 2442/5195/2584 +f 3316/4389/2585 2857/5001/2585 2443/5097/2585 2444/5096/2585 +f 3303/4388/2586 2762/4387/2586 2435/5405/2586 2429/5269/2586 +f 3299/3914/2587 3306/3913/2587 2427/5323/2587 2433/5104/2587 +f 3295/4640/2588 3302/4639/2588 2426/5324/2588 2431/5213/2588 +f 2764/4397/2589 3298/4396/2589 2425/5325/2589 2434/5067/2589 +f 2983/4859/2590 3297/4380/2590 2425/5325/2590 2430/5214/2590 +f 2919/4975/2591 3301/4650/2591 2426/5324/2591 2432/5105/2591 +f 2855/4857/2592 3305/3912/2592 2427/5323/2592 2428/5270/2592 +f 3304/4370/2593 2855/4857/2593 2428/5270/2593 2429/5269/2593 +f 3296/4649/2594 2983/4859/2594 2430/5214/2594 2431/5213/2594 +f 3300/3911/2595 2919/4975/2595 2432/5105/2595 2433/5104/2595 +f 3291/4369/2596 2756/4368/2596 2424/5064/2596 2420/5135/2596 +f 3287/3910/2597 3294/3909/2597 2416/5326/2597 2418/5243/2597 +f 3283/4648/2598 3290/4647/2598 2415/5327/2598 2422/5112/2598 +f 2758/4378/2599 3286/4377/2599 2414/5328/2599 2423/5065/2599 +f 2981/4865/2600 3285/4361/2600 2414/5328/2600 2421/5113/2600 +f 2917/4861/2601 3289/4658/2601 2415/5327/2601 2417/5244/2601 +f 2853/4999/2602 3293/3908/2602 2416/5326/2602 2419/5136/2602 +f 3288/3907/2603 2917/4861/2603 2417/5244/2603 2418/5243/2603 +f 3292/4351/2604 2853/4999/2604 2419/5136/2604 2420/5135/2604 +f 3284/4657/2605 2981/4865/2605 2421/5113/2605 2422/5112/2605 +f 3279/4350/2606 2750/4349/2606 2413/5404/2606 2407/5271/2606 +f 3275/3906/2607 3282/3905/2607 2405/5329/2607 2411/5165/2607 +f 3271/4656/2608 3278/4655/2608 2404/5330/2608 2409/5215/2608 +f 2752/4359/2609 3274/4358/2609 2403/5331/2609 2412/5062/2609 +f 2979/4951/2610 3273/4342/2610 2403/5331/2610 2408/5216/2610 +f 2915/4867/2611 3277/4666/2611 2404/5330/2611 2410/5166/2611 +f 2851/4863/2612 3281/3904/2612 2405/5329/2612 2406/5272/2612 +f 3280/4332/2613 2851/4863/2613 2406/5272/2613 2407/5271/2613 +f 3272/4665/2614 2979/4951/2614 2408/5216/2614 2409/5215/2614 +f 3276/3903/2615 2915/4867/2615 2410/5166/2615 2411/5165/2615 +f 3267/4331/2616 2744/4330/2616 2402/5059/2616 2400/5133/2616 +f 3263/3902/2617 3270/3901/2617 2394/5332/2617 2396/5245/2617 +f 3259/4664/2618 3266/4663/2618 2393/5333/2618 2398/5193/2618 +f 2746/4340/2619 3262/4339/2619 2392/5334/2619 2401/5060/2619 +f 2977/4869/2620 3261/4323/2620 2392/5334/2620 2397/5194/2620 +f 2913/4973/2621 3265/4674/2621 2393/5333/2621 2395/5246/2621 +f 2849/4871/2622 3269/3900/2622 2394/5332/2622 2399/5134/2622 +f 3264/3899/2623 2913/4973/2623 2395/5246/2623 2396/5245/2623 +f 3260/4673/2624 2977/4869/2624 2397/5194/2624 2398/5193/2624 +f 3268/4313/2625 2849/4871/2625 2399/5134/2625 2400/5133/2625 +f 3255/4312/2626 2738/4311/2626 2391/5403/2626 2389/5131/2626 +f 3251/3898/2627 3258/3897/2627 2383/5335/2627 2387/5163/2627 +f 3247/4672/2628 3254/4671/2628 2382/5336/2628 2385/5217/2628 +f 2740/4321/2629 3250/4320/2629 2381/5337/2629 2390/5057/2629 +f 2975/4949/2630 3249/4304/2630 2381/5337/2630 2384/5218/2630 +f 2911/4873/2631 3253/4682/2631 2382/5336/2631 2386/5164/2631 +f 2847/4997/2632 3257/3896/2632 2383/5335/2632 2388/5132/2632 +f 3248/4681/2633 2975/4949/2633 2384/5218/2633 2385/5217/2633 +f 3252/3895/2634 2911/4873/2634 2386/5164/2634 2387/5163/2634 +f 3256/4294/2635 2847/4997/2635 2388/5132/2635 2389/5131/2635 +f 3243/4293/2636 2732/4292/2636 2380/5054/2636 2374/5273/2636 +f 3239/3894/2637 3246/3893/2637 2372/5338/2637 2378/5161/2637 +f 3235/4680/2638 3242/4679/2638 2371/5339/2638 2376/5191/2638 +f 2734/4302/2639 3238/4301/2639 2370/5340/2639 2379/5055/2639 +f 2973/4877/2640 3237/4285/2640 2370/5340/2640 2375/5192/2640 +f 2909/4971/2641 3241/4690/2641 2371/5339/2641 2377/5162/2641 +f 2845/4875/2642 3245/3892/2642 2372/5338/2642 2373/5274/2642 +f 3244/4275/2643 2845/4875/2643 2373/5274/2643 2374/5273/2643 +f 3236/4689/2644 2973/4877/2644 2375/5192/2644 2376/5191/2644 +f 3240/3891/2645 2909/4971/2645 2377/5162/2645 2378/5161/2645 +f 3231/4274/2646 2726/4273/2646 2369/5402/2646 2367/5094/2646 +f 3227/3890/2647 3234/3889/2647 2361/5341/2647 2363/5247/2647 +f 3223/4688/2648 3230/4687/2648 2360/5342/2648 2365/5189/2648 +f 2728/4283/2649 3226/4282/2649 2359/5343/2649 2368/5052/2649 +f 2971/4947/2650 3225/4266/2650 2359/5343/2650 2364/5190/2650 +f 2907/4879/2651 3229/4698/2651 2360/5342/2651 2362/5248/2651 +f 2843/4995/2652 3233/3888/2652 2361/5341/2652 2366/5095/2652 +f 3228/3887/2653 2907/4879/2653 2362/5248/2653 2363/5247/2653 +f 3224/4697/2654 2971/4947/2654 2364/5190/2654 2365/5189/2654 +f 3232/4256/2655 2843/4995/2655 2366/5095/2655 2367/5094/2655 +f 3219/4255/2656 2720/4254/2656 2358/5049/2656 2352/5275/2656 +f 3215/3886/2657 3222/3885/2657 2350/5344/2657 2356/5102/2657 +f 3211/4696/2658 3218/4695/2658 2349/5345/2658 2354/5219/2658 +f 2722/4264/2659 3214/4263/2659 2348/5346/2659 2357/5050/2659 +f 2969/4883/2660 3213/4247/2660 2348/5346/2660 2353/5220/2660 +f 2905/4969/2661 3217/4706/2661 2349/5345/2661 2355/5103/2661 +f 2841/4881/2662 3221/3884/2662 2350/5344/2662 2351/5276/2662 +f 3220/4237/2663 2841/4881/2663 2351/5276/2663 2352/5275/2663 +f 3212/4705/2664 2969/4883/2664 2353/5220/2664 2354/5219/2664 +f 3216/3883/2665 2905/4969/2665 2355/5103/2665 2356/5102/2665 +f 3207/4236/2666 2714/4235/2666 2347/5401/2666 2343/5129/2666 +f 3203/3882/2667 3210/3881/2667 2339/5347/2667 2341/5249/2667 +f 3199/4704/2668 3206/4703/2668 2338/5348/2668 2345/5110/2668 +f 2716/4245/2669 3202/4244/2669 2337/5349/2669 2346/5047/2669 +f 2967/4889/2670 3201/4228/2670 2337/5349/2670 2344/5111/2670 +f 2903/4885/2671 3205/4714/2671 2338/5348/2671 2340/5250/2671 +f 2839/4993/2672 3209/3880/2672 2339/5347/2672 2342/5130/2672 +f 3204/3879/2673 2903/4885/2673 2340/5250/2673 2341/5249/2673 +f 3208/4218/2674 2839/4993/2674 2342/5130/2674 2343/5129/2674 +f 3200/4713/2675 2967/4889/2675 2344/5111/2675 2345/5110/2675 +f 3195/4217/2676 2708/4216/2676 2336/5044/2676 2318/5277/2676 +f 3191/3878/2677 3198/3877/2677 2311/5350/2677 2332/5159/2677 +f 3187/4712/2678 3194/4711/2678 2308/5351/2678 2325/5221/2678 +f 2710/4226/2679 3190/4225/2679 2304/5352/2679 2335/5045/2679 +f 2965/4945/2680 3189/4209/2680 2304/5352/2680 2322/5222/2680 +f 2901/4891/2681 3193/4722/2681 2308/5351/2681 2329/5160/2681 +f 2837/4887/2682 3197/3876/2682 2311/5350/2682 2315/5278/2682 +f 3196/4199/2683 2837/4887/2683 2315/5278/2683 2318/5277/2683 +f 3188/4721/2684 2965/4945/2684 2322/5222/2684 2325/5221/2684 +f 3192/3875/2685 2901/4891/2685 2329/5160/2685 2332/5159/2685 +f 3183/4198/2686 2702/4197/2686 2301/5400/2686 2294/5127/2686 +f 3179/3874/2687 3186/3873/2687 2273/5353/2687 2280/5251/2687 +f 3175/4720/2688 3182/4719/2688 2269/5354/2688 2287/5187/2688 +f 2704/4207/2689 3178/4206/2689 2266/5355/2689 2297/5042/2689 +f 2963/4893/2690 3177/4190/2690 2266/5355/2690 2283/5188/2690 +f 2899/4967/2691 3181/4730/2691 2269/5354/2691 2276/5252/2691 +f 2835/4895/2692 3185/3872/2692 2273/5353/2692 2290/5128/2692 +f 3180/3871/2693 2899/4967/2693 2276/5252/2693 2280/5251/2693 +f 3176/4729/2694 2963/4893/2694 2283/5188/2694 2287/5187/2694 +f 3184/4180/2695 2835/4895/2695 2290/5128/2695 2294/5127/2695 +f 3171/4179/2696 2696/4178/2696 2262/5039/2696 2255/5125/2696 +f 3167/3870/2697 3174/3869/2697 2234/5356/2697 2248/5157/2697 +f 3163/4728/2698 3170/4727/2698 2231/5357/2698 2241/5223/2698 +f 2698/4188/2699 3166/4187/2699 2227/5358/2699 2259/5040/2699 +f 2961/4943/2700 3165/4171/2700 2227/5358/2700 2238/5224/2700 +f 2897/4897/2701 3169/4738/2701 2231/5357/2701 2245/5158/2701 +f 2833/4991/2702 3173/3868/2702 2234/5356/2702 2252/5126/2702 +f 3164/4737/2703 2961/4943/2703 2238/5224/2703 2241/5223/2703 +f 3168/3867/2704 2897/4897/2704 2245/5158/2704 2248/5157/2704 +f 3172/4161/2705 2833/4991/2705 2252/5126/2705 2255/5125/2705 +f 3159/4160/2706 2690/4159/2706 2224/5399/2706 2203/5279/2706 +f 3155/3866/2707 3162/3865/2707 2196/5359/2707 2217/5155/2707 +f 3151/4736/2708 3158/4735/2708 2192/5360/2708 2210/5185/2708 +f 2692/4169/2709 3154/4168/2709 2189/5361/2709 2220/5037/2709 +f 2959/4901/2710 3153/4152/2710 2189/5361/2710 2206/5186/2710 +f 2895/4965/2711 3157/4746/2711 2192/5360/2711 2213/5156/2711 +f 2831/4899/2712 3161/3864/2712 2196/5359/2712 2199/5280/2712 +f 3160/4142/2713 2831/4899/2713 2199/5280/2713 2203/5279/2713 +f 3152/4745/2714 2959/4901/2714 2206/5186/2714 2210/5185/2714 +f 3156/3863/2715 2895/4965/2715 2213/5156/2715 2217/5155/2715 +f 3147/4141/2716 2684/4140/2716 2185/5034/2716 2178/5092/2716 +f 3143/3862/2717 3150/3861/2717 2157/5362/2717 2164/5253/2717 +f 3139/4744/2718 3146/4743/2718 2154/5363/2718 2171/5183/2718 +f 2686/4150/2719 3142/4149/2719 2150/5364/2719 2182/5035/2719 +f 2957/4941/2720 3141/4133/2720 2150/5364/2720 2168/5184/2720 +f 2893/4903/2721 3145/4754/2721 2154/5363/2721 2161/5254/2721 +f 2829/4989/2722 3149/3860/2722 2157/5362/2722 2175/5093/2722 +f 3144/3859/2723 2893/4903/2723 2161/5254/2723 2164/5253/2723 +f 3140/4753/2724 2957/4941/2724 2168/5184/2724 2171/5183/2724 +f 3148/4123/2725 2829/4989/2725 2175/5093/2725 2178/5092/2725 +f 3135/4122/2726 2678/4121/2726 3391/5398/2726 3397/5281/2726 +f 3131/3858/2727 3138/3857/2727 3399/5365/2727 3393/5100/2727 +f 3127/4752/2728 3134/4751/2728 3400/5366/2728 3395/5225/2728 +f 2680/4131/2729 3130/4130/2729 3401/5367/2729 3392/5032/2729 +f 2955/4907/2730 3129/4114/2730 3401/5367/2730 3396/5226/2730 +f 2891/4963/2731 3133/4762/2731 3400/5366/2731 3394/5101/2731 +f 2827/4905/2732 3137/3856/2732 3399/5365/2732 3398/5282/2732 +f 3136/4104/2733 2827/4905/2733 3398/5282/2733 3397/5281/2733 +f 3128/4761/2734 2955/4907/2734 3396/5226/2734 3395/5225/2734 +f 3132/3855/2735 2891/4963/2735 3394/5101/2735 3393/5100/2735 +f 3540/5412/2736 3434/5413/2736 3403/3980/2736 3402/3979/2736 3539/5414/2736 +f 3541/5415/2737 3404/3995/2737 3403/3980/2737 3434/5413/2737 3515/5416/2737 +f 3407/4044/2738 3543/5417/2738 3521/3081/2738 3435/3080/2738 3408/4063/2738 +f 3545/5418/2739 3409/4082/2739 3408/4063/2739 3435/3080/2739 3523/3082/2739 +f 3412/4139/2740 3411/4120/2740 3547/5419/2740 3548/5420/2740 +f 3413/4158/2741 3412/4139/2741 3548/5420/2741 3550/5421/2741 +f 3414/4177/2742 3413/4158/2742 3550/5421/2742 3551/5422/2742 +f 3501/5423/2743 3417/4234/2743 3416/4215/2743 3553/5424/2743 +f 3554/5425/2744 3418/4253/2744 3417/4234/2744 3501/5423/2744 +f 3502/5426/2745 3421/4310/2745 3420/4291/2745 3503/5427/2745 +f 3504/5428/2746 3422/4329/2746 3421/4310/2746 3502/5426/2746 +f 3505/5429/2747 3423/4348/2747 3422/4329/2747 3504/5428/2747 +f 3507/5430/2748 3426/4405/2748 3425/4386/2748 3506/5431/2748 +f 3508/5432/2749 3427/4424/2749 3426/4405/2749 3507/5430/2749 +f 3509/5433/2750 3430/4481/2750 3429/4462/2750 3510/5434/2750 +f 3431/4500/2751 3430/4481/2751 3509/5433/2751 3511/3084/2751 3436/3083/2751 +f 3512/5435/2752 3432/4519/2752 3431/4500/2752 3436/3083/2752 3513/3086/2752 +f 3515/5416/1533 3434/5413/1533 3517/5436/1533 +f 3538/5437/2753 3443/5438/2753 3536/5439/2753 3535/5440/2753 3537/5441/2753 3433/4538/2753 3432/4519/2753 3512/5435/2753 +f 3539/5414/2754 3402/3979/2754 3433/4538/2754 3537/5441/2754 3542/5442/2754 3444/5443/2754 3544/5444/2754 +f 3517/5436/1533 3434/5413/1533 3540/5412/1533 +f 3577/5445/2755 3451/5446/2755 3576/5447/2755 3575/5448/2755 3428/4443/2755 3427/4424/2755 3508/5432/2755 +f 3581/5449/2756 3452/5450/2756 3578/5451/2756 3510/5434/2756 3429/4462/2756 3428/4443/2756 3575/5448/2756 3582/5452/2756 +f 3610/5453/2757 3459/5454/2757 3609/5455/2757 3607/5456/2757 3608/5457/2757 3424/4367/2757 3423/4348/2757 3505/5429/2757 +f 3608/5457/2758 3615/5458/2758 3460/5459/2758 3613/5460/2758 3506/5431/2758 3425/4386/2758 3424/4367/2758 +f 3639/5461/2759 3467/5462/2759 3636/5463/2759 3637/5464/2759 3419/4272/2759 3418/4253/2759 3554/5425/2759 +f 3641/5465/2760 3468/5466/2760 3642/5467/2760 3503/5427/2760 3420/4291/2760 3419/4272/2760 3637/5464/2760 3640/5468/2760 +f 3564/5469/2761 3475/5470/2761 3561/5471/2761 3563/5472/2761 3560/5473/2761 3415/4196/2761 3414/4177/2761 3551/5422/2761 +f 3416/4215/2762 3415/4196/2762 3560/5473/2762 3566/5474/2762 3476/5475/2762 3569/5476/2762 3553/5424/2762 +f 3594/5477/2763 3483/5478/2763 3592/5479/2763 3593/5480/2763 3410/4101/2763 3409/4082/2763 3545/5418/2763 +f 3599/5481/2764 3484/5482/2764 3596/5483/2764 3547/5419/2764 3411/4120/2764 3410/4101/2764 3593/5480/2764 3598/5484/2764 +f 3492/5485/2765 3491/5486/2765 3405/4010/2765 3404/3995/2765 3541/5415/2765 3618/5487/2765 +f 3625/5488/2766 3493/5489/2766 3621/5490/2766 3620/5491/2766 3406/4025/2766 3405/4010/2766 3491/5486/2766 3624/5492/2766 3626/5493/2766 +f 3543/5417/2767 3407/4044/2767 3406/4025/2767 3620/5491/2767 +o WBL_b1.003_Cylinder.034 +usemtl besi_roda +s off +f 3794/5494/2768 4000/5495/2768 3993/5496/2768 3986/5497/2768 3979/5498/2768 3972/5499/2768 3965/5500/2768 3958/5501/2768 3951/5502/2768 3944/5503/2768 3937/5504/2768 3930/5505/2768 3923/5506/2768 3916/5507/2768 3909/5508/2768 3902/5509/2768 3895/5510/2768 3888/5511/2768 3881/5512/2768 3874/5513/2768 3867/5514/2768 3860/5515/2768 3853/5516/2768 3846/5517/2768 3839/5518/2768 3832/5519/2768 3825/5520/2768 3819/5521/2768 3814/5522/2768 3809/5523/2768 3804/5524/2768 3799/5525/2768 +f 5113/5526/2769 5111/5527/2769 5112/5528/2769 5114/5529/2769 +f 5109/5530/2770 5113/5526/2770 5114/5529/2770 5110/5531/2770 +f 5121/5532/2771 5119/5533/2771 5120/5534/2771 5122/5535/2771 +f 5117/5536/2772 5121/5532/2772 5122/5535/2772 5118/5537/2772 +f 5129/5538/2773 5127/5539/2773 5128/5540/2773 5130/5541/2773 +f 5125/5542/2774 5129/5538/2774 5130/5541/2774 5126/5543/2774 +f 5137/5544/2775 5135/5545/2775 5136/5546/2775 5138/5547/2775 +f 5133/5548/2776 5137/5544/2776 5138/5547/2776 5134/5549/2776 +f 5145/5550/2777 5143/5551/2777 5144/5552/2777 5146/5553/2777 +f 5141/5554/2778 5145/5550/2778 5146/5553/2778 5142/5555/2778 +f 5153/5556/2779 5151/5557/2779 5152/5558/2779 5154/5559/2779 +f 5149/5560/2780 5153/5556/2780 5154/5559/2780 5150/5561/2780 +f 5161/5562/2781 5159/5563/2781 5160/5564/2781 5162/5565/2781 +f 5157/5566/2782 5161/5562/2782 5162/5565/2782 5158/5567/2782 +f 5192/5568/2783 5193/5569/2783 5107/5570/2783 +f 5107/5570/2783 5195/5571/2783 5192/5568/2783 +f 5108/5572/2783 5204/5573/2783 5183/5574/2783 +f 5108/5572/2783 5185/5575/2783 5204/5573/2783 +f 5234/5576/2784 5237/5577/2784 5214/5578/2784 5116/5579/2784 5109/5580/2784 5110/5581/2784 5115/5582/2784 5208/5583/2784 +f 5116/5584/2785 5216/5585/2785 5239/5586/2785 5240/5587/2785 5113/5588/2785 5109/5589/2785 +f 5243/5590/2786 5242/5591/2786 5210/5592/2786 5115/5593/2786 5110/5594/2786 5114/5595/2786 +f 5263/5596/2787 5267/5597/2787 5253/5598/2787 5124/5599/2787 5117/5600/2787 5118/5601/2787 5123/5602/2787 5248/5603/2787 +f 5124/5604/2788 5250/5605/2788 5269/5606/2788 5275/5607/2788 5121/5608/2788 5117/5609/2788 +f 5277/5610/2789 5276/5611/2789 5249/5612/2789 5123/5613/2789 5118/5614/2789 5122/5615/2789 +f 5299/5616/2790 5301/5617/2790 5300/5618/2790 5287/5619/2790 5132/5620/2790 5125/5621/2790 5126/5622/2790 5131/5623/2790 5281/5624/2790 +f 5132/5625/2791 5285/5626/2791 5302/5627/2791 5303/5628/2791 5129/5629/2791 5125/5630/2791 +f 5307/5631/2792 5306/5632/2792 5282/5633/2792 5131/5634/2792 5126/5635/2792 5130/5636/2792 +f 5323/5637/2793 5324/5638/2793 5313/5639/2793 5140/5640/2793 5133/5641/2793 5134/5642/2793 5139/5643/2793 5308/5644/2793 +f 5140/5645/2794 5314/5646/2794 5325/5647/2794 5230/5648/2794 5137/5649/2794 5133/5650/2794 +f 5229/5651/2795 5326/5652/2795 5311/5653/2795 5139/5654/2795 5134/5655/2795 5138/5656/2795 +f 5236/5657/2796 5223/5658/2796 5086/5659/2796 5087/5660/2796 5232/5661/2796 5235/5662/2796 5233/5663/2796 5147/5664/2796 +f 5251/5665/2797 5252/5666/2797 5238/5667/2797 5148/5668/2797 5141/5669/2797 5142/5670/2797 5147/5671/2797 5233/5672/2797 +f 5148/5673/2798 5241/5674/2798 5256/5675/2798 5257/5676/2798 5145/5677/2798 5141/5678/2798 +f 5262/5679/2799 5259/5680/2799 5236/5681/2799 5147/5682/2799 5142/5683/2799 5146/5684/2799 +f 5278/5685/2800 5283/5686/2800 5271/5687/2800 5156/5688/2800 5149/5689/2800 5150/5690/2800 5155/5691/2800 5264/5692/2800 +f 5156/5693/2801 5268/5694/2801 5284/5695/2801 5286/5696/2801 5153/5697/2801 5149/5698/2801 +f 5289/5699/2802 5288/5700/2802 5266/5701/2802 5155/5702/2802 5150/5703/2802 5154/5704/2802 +f 5310/5705/2803 5316/5706/2803 5315/5707/2803 5297/5708/2803 5165/5709/2803 5157/5710/2803 5158/5711/2803 5164/5712/2803 5163/5713/2803 5296/5714/2803 +f 5165/5715/2804 5293/5716/2804 5318/5717/2804 5320/5718/2804 5161/5719/2804 5157/5720/2804 +f 5322/5721/2805 5321/5722/2805 5290/5723/2805 5164/5724/2805 5158/5725/2805 5162/5726/2805 +f 5166/5727/2806 5207/5728/2806 5209/5729/2806 5214/5730/2806 5237/5731/2806 +f 5310/5732/2806 5296/5733/2806 5298/5734/2806 5167/5735/2806 +f 5265/5736/2807 5270/5737/2807 5168/5738/2807 5278/5739/2807 5264/5740/2807 +f 5315/5741/2807 5167/5735/2807 5298/5734/2807 5297/5742/2807 +f 5292/5743/2807 5215/5744/2807 5193/5745/2807 5192/5746/2807 5195/5747/2807 5217/5748/2807 5266/5749/2807 5288/5750/2807 5318/5751/2807 5293/5752/2807 +f 5259/5753/2808 5284/5754/2808 5268/5755/2808 5219/5756/2808 5220/5757/2808 5222/5758/2808 5223/5759/2808 5236/5760/2808 +f 5169/5761/2808 5251/5762/2808 5233/5763/2808 5235/5764/2808 +f 5270/5737/2808 5271/5765/2808 5283/5766/2808 5168/5738/2808 +f 5326/5767/2809 5256/5768/2809 5241/5769/2809 5225/5770/2809 5173/5771/2809 5226/5772/2809 5311/5773/2809 +f 5170/5774/2809 5323/5775/2809 5308/5776/2809 5309/5777/2809 5312/5778/2809 +f 5238/5779/2809 5252/5780/2809 5169/5761/2809 5235/5764/2809 5232/5781/2809 +f 5170/5774/2810 5312/5778/2810 5313/5782/2810 5324/5783/2810 +f 5177/5784/2810 5282/5785/2810 5306/5786/2810 5325/5787/2810 5314/5788/2810 5175/5789/2810 5174/5790/2810 5176/5791/2810 +f 5299/5792/2810 5281/5793/2810 5279/5794/2810 5171/5795/2810 +f 5305/5796/2811 5320/5797/2811 5318/5798/2811 5288/5799/2811 5289/5800/2811 5272/5801/2811 5194/5802/2811 5191/5803/2811 5190/5804/2811 +f 5167/5805/2811 5315/5806/2811 5316/5807/2811 +f 5228/5808/2812 5317/5809/2812 5198/5810/2812 5199/5811/2812 5246/5812/2812 5257/5813/2812 5256/5814/2812 5326/5815/2812 5229/5816/2812 +f 5252/5817/2783 5251/5818/2783 5169/5819/2783 +f 5274/5820/2813 5286/5821/2813 5284/5822/2813 5259/5823/2813 5262/5824/2813 5245/5825/2813 5244/5826/2813 5197/5827/2813 5196/5828/2813 5273/5829/2813 +f 5283/5830/2783 5278/5831/2783 5168/5832/2783 +f 5301/5833/2814 5299/5834/2814 5171/5835/2814 +f 5319/5836/2815 5231/5837/2815 5230/5838/2815 5325/5839/2815 5306/5840/2815 5307/5841/2815 5294/5842/2815 5291/5843/2815 5201/5844/2815 5200/5845/2815 +f 5170/5846/2783 5324/5847/2783 5323/5848/2783 +f 5287/5849/2816 5300/5850/2816 5171/5795/2816 5279/5794/2816 5280/5851/2816 +f 5180/5852/2816 5249/5853/2816 5276/5854/2816 5302/5855/2816 5285/5856/2816 5178/5857/2816 5179/5858/2816 +f 5263/5859/2816 5248/5860/2816 5247/5861/2816 5254/5862/2816 5172/5863/2816 +f 5254/5862/2817 5253/5864/2817 5267/5865/2817 5172/5863/2817 +f 5207/5866/2817 5166/5867/2817 5234/5868/2817 5208/5869/2817 +f 5210/5870/2817 5242/5871/2817 5269/5872/2817 5250/5873/2817 5182/5874/2817 5181/5875/2817 5183/5876/2817 5204/5877/2817 5185/5878/2817 5184/5879/2817 +f 5300/5880/2818 5301/5833/2818 5171/5835/2818 +f 5303/5881/2818 5302/5882/2818 5276/5883/2818 5277/5884/2818 5258/5885/2818 5255/5886/2818 5203/5887/2818 5202/5888/2818 5295/5889/2818 +f 5166/5890/2783 5237/5891/2783 5234/5892/2783 +f 5240/5893/2819 5239/5894/2819 5321/5895/2819 5322/5896/2819 5304/5897/2819 5186/5898/2819 5188/5899/2819 5218/5900/2819 5227/5901/2819 +f 5172/5902/2783 5267/5903/2783 5263/5904/2783 +f 5275/5905/2820 5269/5906/2820 5242/5907/2820 5243/5908/2820 5224/5909/2820 5221/5910/2820 5205/5911/2820 5206/5912/2820 5260/5913/2820 5261/5914/2820 +f 5316/5807/2821 5310/5915/2821 5167/5805/2821 +f 5355/5916/2783 5353/5917/2783 5188/5918/2783 5186/5919/2783 +f 5362/5920/2822 5360/5921/2822 5190/5922/2822 5191/5923/2822 +f 5191/5923/2823 5194/5924/2823 5363/5925/2823 5362/5920/2823 +f 5197/5926/2783 5356/5927/2783 5364/5928/2783 5196/5929/2783 +f 5345/5930/2783 5359/5931/2783 5199/5932/2783 5198/5933/2783 +f 5366/5934/2824 5349/5935/2824 5200/5936/2824 5201/5937/2824 +f 5203/5938/2783 5367/5939/2783 5337/5940/2783 5202/5941/2783 +f 5205/5942/2783 5368/5943/2783 5369/5944/2783 5206/5945/2783 +f 5353/5917/2783 5370/5946/2783 5218/5947/2783 5188/5918/2783 +f 5371/5948/2825 5368/5943/2825 5205/5942/2825 5221/5949/2825 +f 5373/5950/2825 5371/5948/2825 5221/5949/2825 5224/5951/2825 +f 5370/5946/2783 5377/5952/2783 5227/5953/2783 5218/5947/2783 +f 5385/5954/2783 5367/5939/2783 5203/5938/2783 5255/5955/2783 +f 5389/5956/2783 5385/5954/2783 5255/5955/2783 5258/5957/2783 +f 5390/5958/2783 5391/5959/2783 5261/5960/2783 5260/5961/2783 +f 5369/5944/2783 5390/5958/2783 5260/5961/2783 5206/5945/2783 +f 5336/5962/2783 5366/5934/2783 5201/5937/2783 5291/5963/2783 +f 5335/5964/2783 5336/5962/2783 5291/5963/2783 5294/5965/2783 +f 5202/5941/2783 5337/5940/2783 5338/5966/2783 5295/5967/2783 +f 5344/5968/2783 5345/5930/2783 5198/5933/2783 5317/5969/2783 +f 5346/5970/2783 5344/5968/2783 5317/5969/2783 5228/5971/2783 +f 5348/5972/2825 5347/5973/2825 5231/5974/2825 5319/5975/2825 +f 5349/5935/2825 5348/5972/2825 5319/5975/2825 5200/5936/2825 +f 5244/5976/2826 5357/5977/2826 5356/5927/2826 5197/5926/2826 +f 5245/5978/2783 5358/5979/2783 5357/5977/2783 5244/5976/2783 +f 5359/5931/2783 5361/5980/2783 5246/5981/2783 5199/5932/2783 +f 5194/5924/2827 5272/5982/2827 5376/5983/2827 5363/5925/2827 +f 5273/5984/2827 5379/5985/2827 5378/5986/2827 5274/5987/2827 +f 5364/5928/2823 5379/5985/2823 5273/5984/2823 5196/5929/2823 +f 5186/5919/2828 5304/5988/2828 5392/5989/2828 5355/5916/2828 +f 5360/5921/2783 5393/5990/2783 5305/5991/2783 5190/5922/2783 +f 5392/5992/2806 5396/5993/2806 5384/5994/2806 5377/5995/2806 5370/5996/2806 5353/5997/2806 5355/5998/2806 +f 5376/5999/2807 5381/6000/2807 5401/6001/2807 5393/6002/2807 5360/6003/2807 5362/6004/2807 5363/6005/2807 +f 5358/6006/2808 5365/6007/2808 5388/6008/2808 5378/6009/2808 5379/6010/2808 5364/6011/2808 5356/6012/2808 5357/6013/2808 +f 5346/6014/2809 5350/6015/2809 5374/6016/2809 5361/6017/2809 5359/6018/2809 5345/6019/2809 5344/6020/2809 +f 5335/6021/2810 5339/6022/2810 5352/6023/2810 5347/6024/2810 5348/6025/2810 5349/6026/2810 5366/6027/2810 5336/6028/2810 +f 5400/6029/2829 5401/6030/2829 5381/6031/2829 5386/6032/2829 5331/6033/2829 5330/6034/2829 +f 5387/6035/2830 5388/6036/2830 5365/6037/2830 5372/6038/2830 5333/6039/2830 +f 5334/6040/2831 5343/6041/2831 5341/6042/2831 +f 5354/6043/2832 5352/6044/2832 5339/6045/2832 5340/6046/2832 5328/6047/2832 +f 5375/6048/2833 5374/6049/2833 5350/6050/2833 5351/6051/2833 5329/6052/2833 +f 5389/6053/2816 5394/6054/2816 5342/6055/2816 5338/6056/2816 5337/6057/2816 5367/6058/2816 5385/6059/2816 +f 5371/6060/2817 5373/6061/2817 5380/6062/2817 5397/6063/2817 5391/6064/2817 5390/6065/2817 5369/6066/2817 5368/6067/2817 +f 5394/6068/2834 5395/6069/2834 5334/6040/2834 5341/6042/2834 5342/6070/2834 +f 5402/6071/2835 5397/6072/2835 5380/6073/2835 5382/6074/2835 5327/6075/2835 +f 5383/6076/2836 5384/6077/2836 5396/6078/2836 5398/6079/2836 5332/6080/2836 +f 5330/6034/2837 5399/6081/2837 5400/6029/2837 +f 5404/6082/2783 5405/6083/2783 5406/6084/2783 5407/6085/2783 5408/6086/2783 5409/6087/2783 5403/6088/2783 +f 5418/6089/2783 5411/6090/2783 5410/6091/2783 5417/6092/2783 +f 5417/6092/2783 5410/6091/2783 5412/6093/2783 5419/6094/2783 +f 5419/6094/2783 5412/6093/2783 5413/6095/2783 5420/6096/2783 +f 5420/6096/2783 5413/6095/2783 5414/6097/2783 5421/6098/2783 +f 5421/6098/2783 5414/6097/2783 5415/6099/2783 5422/6100/2783 +f 5422/6100/2783 5415/6099/2783 5416/6101/2783 5423/6102/2783 +f 5423/6102/2783 5416/6101/2783 5411/6090/2783 5418/6089/2783 +f 5403/6088/2838 5418/6089/2838 5417/6092/2838 5404/6082/2838 +f 5404/6082/2839 5417/6092/2839 5419/6094/2839 5405/6083/2839 +f 5405/6083/2840 5419/6094/2840 5420/6096/2840 5406/6084/2840 +f 5406/6084/2841 5420/6096/2841 5421/6098/2841 5407/6085/2841 +f 5407/6085/2842 5421/6098/2842 5422/6100/2842 5408/6086/2842 +f 5408/6086/2843 5422/6100/2843 5423/6102/2843 5409/6087/2843 +f 5409/6087/2844 5423/6102/2844 5418/6089/2844 5403/6088/2844 +f 5425/6103/2845 5428/6104/2845 5112/5528/2845 5111/5527/2845 +f 5430/6105/2846 5432/6106/2846 5120/5534/2846 5119/5533/2846 +f 5434/6107/2847 5436/6108/2847 5128/5540/2847 5127/5539/2847 +f 5438/6109/2848 5439/6110/2848 5136/5546/2848 5135/5545/2848 +f 5443/6111/2849 5445/6112/2849 5144/5552/2849 5143/5551/2849 +f 5427/6113/2850 5426/6114/2850 5152/5558/2850 5151/5557/2850 +f 5435/6115/2851 5433/6116/2851 5160/5564/2851 5159/5563/2851 +f 5382/6117/2786 5380/6118/2786 5373/6119/2786 5224/6120/2786 5243/5590/2786 5114/5595/2786 5112/6121/2786 5428/6122/2786 5442/6123/2786 +f 5377/6124/2785 5384/6125/2785 5383/6126/2785 5444/6127/2785 5425/6128/2785 5111/6129/2785 5113/5588/2785 5240/5587/2785 5227/6130/2785 +f 5395/6131/2789 5394/6132/2789 5389/6133/2789 5258/6134/2789 5277/5610/2789 5122/5615/2789 5120/6135/2789 5432/6136/2789 5451/6137/2789 +f 5391/6138/2788 5397/6139/2788 5402/6140/2788 5454/6141/2788 5430/6142/2788 5119/6143/2788 5121/5608/2788 5275/5607/2788 5261/6144/2788 +f 5436/6145/2792 5455/6146/2792 5340/6147/2792 5339/6148/2792 5335/6149/2792 5294/6150/2792 5307/5631/2792 5130/5636/2792 5128/6151/2792 +f 5338/6152/2791 5342/6153/2791 5341/6154/2791 5343/6155/2791 5460/6156/2791 5434/6157/2791 5127/6158/2791 5129/5629/2791 5303/5628/2791 5295/6159/2791 +f 5439/6160/2795 5461/6161/2795 5351/6162/2795 5350/6163/2795 5346/6164/2795 5228/6165/2795 5229/5651/2795 5138/5656/2795 5136/6166/2795 +f 5347/6167/2794 5352/6168/2794 5354/6169/2794 5459/6170/2794 5438/6171/2794 5135/6172/2794 5137/5649/2794 5230/5648/2794 5231/6173/2794 +f 5445/6174/2799 5458/6175/2799 5372/6176/2799 5365/6177/2799 5358/6178/2799 5245/6179/2799 5262/5679/2799 5146/5684/2799 5144/6180/2799 +f 5361/6181/2798 5374/6182/2798 5375/6183/2798 5453/6184/2798 5443/6185/2798 5143/6186/2798 5145/5677/2798 5257/5676/2798 5246/6187/2798 +f 5386/6188/2802 5381/6189/2802 5376/6190/2802 5272/6191/2802 5289/5699/2802 5154/5704/2802 5152/6192/2802 5426/6193/2802 5424/6194/2802 +f 5378/6195/2801 5388/6196/2801 5387/6197/2801 5429/6198/2801 5427/6199/2801 5151/6200/2801 5153/5697/2801 5286/5696/2801 5274/6201/2801 +f 5398/6202/2805 5396/6203/2805 5392/6204/2805 5304/6205/2805 5322/5721/2805 5162/5726/2805 5160/6206/2805 5433/6207/2805 5431/6208/2805 +f 5393/6209/2804 5401/6210/2804 5400/6211/2804 5399/6212/2804 5437/6213/2804 5435/6214/2804 5159/6215/2804 5161/5719/2804 5320/5718/2804 5305/6216/2804 +f 5442/6217/2852 5440/6218/2852 5441/6219/2852 5327/6220/2852 5382/6221/2852 +f 5446/6222/2852 5444/6223/2852 5383/6224/2852 5332/6225/2852 +f 5431/6226/2853 5447/6227/2853 5446/6222/2853 5332/6225/2853 5398/6228/2853 +f 5448/6229/2853 5437/6230/2853 5399/6231/2853 5330/6232/2853 +f 5333/6233/2854 5449/6234/2854 5450/6235/2854 5429/6236/2854 5387/6237/2854 +f 5424/6238/2854 5452/6239/2854 5448/6229/2854 5330/6232/2854 5331/6240/2854 5386/6241/2854 +f 5329/6242/2855 5457/6243/2855 5456/6244/2855 5453/6245/2855 5375/6246/2855 +f 5458/6247/2855 5449/6234/2855 5333/6233/2855 5372/6248/2855 +f 5462/6249/2856 5463/6250/2856 5459/6251/2856 5354/6252/2856 5328/6253/2856 +f 5461/6254/2856 5457/6243/2856 5329/6242/2856 5351/6255/2856 +f 5455/6256/2857 5462/6249/2857 5328/6253/2857 5340/6257/2857 +f 5464/6258/2858 5460/6259/2858 5343/6260/2858 5334/6261/2858 +f 5451/6262/2859 5465/6263/2859 5464/6258/2859 5334/6261/2859 5395/6264/2859 +f 5441/6265/2859 5454/6266/2859 5402/6267/2859 5327/6268/2859 +f 5447/6269/2860 5410/6091/2860 5411/6090/2860 5440/6270/2860 5442/6271/2860 5428/6272/2860 5425/6273/2860 5444/6274/2860 5446/6275/2860 +f 5437/6276/2861 5448/6277/2861 5452/6278/2861 5412/6093/2861 5410/6091/2861 5447/6269/2861 5431/6279/2861 5433/6280/2861 5435/6281/2861 +f 5429/6282/2862 5450/6283/2862 5413/6095/2862 5412/6093/2862 5452/6278/2862 5424/6284/2862 5426/6285/2862 5427/6286/2862 +f 5449/6287/2863 5458/6288/2863 5445/6289/2863 5443/6290/2863 5453/6291/2863 5456/6292/2863 5414/6097/2863 5413/6095/2863 5450/6283/2863 +f 5457/6293/2864 5461/6294/2864 5439/6295/2864 5438/6296/2864 5459/6297/2864 5463/6298/2864 5415/6099/2864 5414/6097/2864 5456/6292/2864 +f 5462/6299/2865 5455/6300/2865 5436/6301/2865 5434/6302/2865 5460/6303/2865 5464/6304/2865 5465/6305/2865 5416/6101/2865 5415/6099/2865 5463/6298/2865 +f 5454/6306/2866 5441/6307/2866 5440/6270/2866 5411/6090/2866 5416/6101/2866 5465/6305/2866 5451/6308/2866 5432/6309/2866 5430/6310/2866 +usemtl Material.003 +f 4309/6311/2867 3806/6312/2867 3811/6313/2867 4315/6314/2867 4313/6315/2867 4308/6316/2867 +f 4724/6317/2868 4737/6318/2868 4732/6319/2868 4721/6320/2868 +f 4738/6321/2869 4749/6322/2869 4744/6323/2869 4731/6324/2869 +f 4750/6325/2870 4761/6326/2870 4756/6327/2870 4743/6328/2870 +f 4762/6329/2871 4773/6330/2871 4768/6331/2871 4755/6332/2871 +f 4774/6333/2872 4785/6334/2872 4780/6335/2872 4767/6336/2872 +f 4786/6337/2873 4797/6338/2873 4792/6339/2873 4779/6340/2873 +f 4798/6341/2874 4809/6342/2874 4804/6343/2874 4791/6344/2874 +f 4810/6345/2875 4821/6346/2875 4816/6347/2875 4803/6348/2875 +f 4822/6349/2876 4833/6350/2876 4828/6351/2876 4815/6352/2876 +f 4834/6353/2877 4845/6354/2877 4840/6355/2877 4827/6356/2877 +f 4846/6357/2878 4857/6358/2878 4852/6359/2878 4839/6360/2878 +f 4858/6361/2879 4869/6362/2879 4864/6363/2879 4851/6364/2879 +f 4870/6365/2880 4881/6366/2880 4876/6367/2880 4863/6368/2880 +f 4882/6369/2881 4893/6370/2881 4888/6371/2881 4875/6372/2881 +f 4894/6373/2882 4905/6374/2882 4900/6375/2882 4887/6376/2882 +f 4906/6377/2883 4917/6378/2883 4912/6379/2883 4899/6380/2883 +f 4918/6381/2884 4929/6382/2884 4924/6383/2884 4911/6384/2884 +f 4930/6385/2885 4941/6386/2885 4936/6387/2885 4923/6388/2885 +f 4942/6389/2886 4953/6390/2886 4948/6391/2886 4935/6392/2886 +f 4954/6393/2887 4965/6394/2887 4960/6395/2887 4947/6396/2887 +f 4966/6397/2888 4977/6398/2888 4972/6399/2888 4959/6400/2888 +f 4978/6401/2889 4989/6402/2889 4984/6403/2889 4971/6404/2889 +f 4990/6405/2890 5001/6406/2890 4996/6407/2890 4983/6408/2890 +f 5002/6409/2891 5013/6410/2891 5008/6411/2891 4995/6412/2891 +f 5014/6413/2892 5025/6414/2892 5020/6415/2892 5007/6416/2892 +f 5026/6417/2893 5037/6418/2893 5032/6419/2893 5019/6420/2893 +f 5038/6421/2894 5049/6422/2894 5044/6423/2894 5031/6424/2894 +f 5050/6425/2895 5061/6426/2895 5056/6427/2895 5043/6428/2895 +f 4315/6429/2896 3811/6430/2896 3816/6431/2896 4321/6432/2896 4319/6433/2896 4314/6434/2896 +f 4700/6435/2897 4723/6436/2897 4722/6437/2897 4697/6438/2897 +f 4303/6439/2898 3801/6440/2898 3806/6441/2898 4309/6442/2898 4307/6443/2898 4302/6444/2898 +f 4482/6445/2899 4295/6446/2899 4680/6447/2899 4705/6448/2899 +f 3796/6449/2900 3795/6450/2900 3800/6451/2900 3801/6452/2900 +f 3795/6453/2901 3794/5494/2901 3799/5525/2901 3800/6454/2901 +f 4300/6455/2902 3798/6456/2902 4006/6457/2902 4486/6458/2902 4484/6459/2902 4299/6460/2902 +f 3803/6461/2903 3802/6462/2903 3797/6463/2903 3798/6464/2903 +f 3802/6465/2904 5075/6466/2904 5074/6467/2904 3797/6468/2904 +f 4302/6444/2897 4307/6443/2897 4726/6469/2897 4701/6470/2897 +f 3801/6440/2905 3800/6471/2905 3805/6472/2905 3806/6441/2905 +f 3800/6454/2906 3799/5525/2906 3804/5524/2906 3805/6473/2906 +f 4692/6474/2897 4715/6475/2897 4311/6476/2897 4304/6477/2897 +f 3808/6478/2907 3807/6479/2907 3802/6480/2907 3803/6481/2907 +f 3807/6482/2908 5076/6483/2908 5075/6466/2908 3802/6465/2908 +f 4308/6316/2868 4313/6315/2868 4736/6484/2868 4725/6485/2868 +f 3806/6312/2909 3805/6486/2909 3810/6487/2909 3811/6313/2909 +f 3805/6473/2910 3804/5524/2910 3809/5523/2910 3810/6488/2910 +f 4716/6489/2868 4729/6490/2868 4317/6491/2868 4310/6492/2868 +f 3813/6493/2911 3812/6494/2911 3807/6495/2911 3808/6496/2911 +f 3812/6497/2912 5077/6498/2912 5076/6483/2912 3807/6482/2912 +f 4314/6434/2869 4319/6433/2869 4748/6499/2869 4735/6500/2869 +f 3811/6430/2913 3810/6501/2913 3815/6502/2913 3816/6431/2913 +f 3810/6488/2914 3809/5523/2914 3814/5522/2914 3815/6503/2914 +f 4730/6504/2869 4741/6505/2869 4323/6506/2869 4316/6507/2869 +f 3818/6508/2915 3817/6509/2915 3812/6510/2915 3813/6511/2915 +f 3817/6512/2916 5078/6513/2916 5077/6498/2916 3812/6497/2916 +f 4320/6514/2870 4325/6515/2870 4760/6516/2870 4747/6517/2870 +f 3816/6518/2917 3815/6519/2917 3820/6520/2917 3821/6521/2917 +f 3815/6503/2918 3814/5522/2918 3819/5521/2918 3820/6522/2918 +f 4742/6523/2870 4753/6524/2870 4329/6525/2870 4322/6526/2870 +f 3824/6527/2919 3823/6528/2919 3817/6529/2919 3818/6530/2919 +f 3823/6531/2920 5079/6532/2920 5078/6513/2920 3817/6512/2920 +f 4326/6533/2871 4331/6534/2871 4772/6535/2871 4759/6536/2871 +f 3821/6537/2921 3820/6538/2921 3827/6539/2921 3828/6540/2921 +f 3820/6522/2922 3819/5521/2922 3825/5520/2922 3827/6541/2922 +f 4754/6542/2871 4765/6543/2871 4335/6544/2871 4328/6545/2871 +f 3831/6546/2923 3830/6547/2923 3823/6548/2923 3824/6549/2923 +f 3830/6550/2924 5080/6551/2924 5079/6532/2924 3823/6531/2924 +f 4332/6552/2872 4337/6553/2872 4784/6554/2872 4771/6555/2872 +f 3828/6556/2925 3827/6557/2925 3834/6558/2925 3835/6559/2925 +f 3827/6541/2926 3825/5520/2926 3832/5519/2926 3834/6560/2926 +f 4766/6561/2872 4777/6562/2872 4341/6563/2872 4334/6564/2872 +f 3838/6565/2927 3837/6566/2927 3830/6567/2927 3831/6568/2927 +f 3837/6569/2928 5081/6570/2928 5080/6551/2928 3830/6550/2928 +f 4338/6571/2873 4343/6572/2873 4796/6573/2873 4783/6574/2873 +f 3835/6575/2929 3834/6576/2929 3841/6577/2929 3842/6578/2929 +f 3834/6560/2930 3832/5519/2930 3839/5518/2930 3841/6579/2930 +f 4778/6580/2873 4789/6581/2873 4347/6582/2873 4340/6583/2873 +f 3845/6584/2931 3844/6585/2931 3837/6586/2931 3838/6587/2931 +f 3844/6588/2932 5082/6589/2932 5081/6570/2932 3837/6569/2932 +f 4344/6590/2874 4349/6591/2874 4808/6592/2874 4795/6593/2874 +f 3842/6594/2933 3841/6595/2933 3848/6596/2933 3849/6597/2933 +f 3841/6579/2934 3839/5518/2934 3846/5517/2934 3848/6598/2934 +f 4790/6599/2874 4801/6600/2874 4353/6601/2874 4346/6602/2874 +f 3852/6603/2935 3851/6604/2935 3844/6605/2935 3845/6606/2935 +f 3851/6607/2936 5083/6608/2936 5082/6589/2936 3844/6588/2936 +f 4350/6609/2875 4355/6610/2875 4820/6611/2875 4807/6612/2875 +f 3849/6613/2937 3848/6614/2937 3855/6615/2937 3856/6616/2937 +f 3848/6598/2938 3846/5517/2938 3853/5516/2938 3855/6617/2938 +f 4802/6618/2875 4813/6619/2875 4359/6620/2875 4352/6621/2875 +f 3859/6622/2939 3858/6623/2939 3851/6624/2939 3852/6625/2939 +f 3858/6626/2940 5084/6627/2940 5083/6608/2940 3851/6607/2940 +f 4356/6628/2876 4361/6629/2876 4832/6630/2876 4819/6631/2876 +f 3856/6632/2941 3855/6633/2941 3862/6634/2941 3863/6635/2941 +f 3855/6617/2942 3853/5516/2942 3860/5515/2942 3862/6636/2942 +f 4814/6637/2876 4825/6638/2876 4365/6639/2876 4358/6640/2876 +f 3866/6641/2943 3865/6642/2943 3858/6643/2943 3859/6644/2943 +f 3865/6645/2944 5085/6646/2944 5084/6627/2944 3858/6626/2944 +f 4362/6647/2877 4367/6648/2877 4844/6649/2877 4831/6650/2877 +f 3863/6651/2945 3862/6652/2945 3869/6653/2945 3870/6654/2945 +f 3862/6636/2946 3860/5515/2946 3867/5514/2946 3869/6655/2946 +f 4826/6656/2877 4837/6657/2877 4371/6658/2877 4364/6659/2877 +f 3873/6660/2947 3872/6661/2947 3865/6662/2947 3866/6663/2947 +f 3872/6664/2948 5086/5659/2948 5085/6646/2948 3865/6645/2948 +f 4368/6665/2878 4373/6666/2878 4856/6667/2878 4843/6668/2878 +f 3870/6669/2949 3869/6670/2949 3876/6671/2949 3877/6672/2949 +f 3869/6655/2950 3867/5514/2950 3874/5513/2950 3876/6673/2950 +f 4838/6674/2878 4849/6675/2878 4377/6676/2878 4370/6677/2878 +f 3880/6678/2951 3879/6679/2951 3872/6680/2951 3873/6681/2951 +f 3879/6682/2952 5087/5660/2952 5086/5659/2952 3872/6664/2952 +f 4374/6683/2879 4379/6684/2879 4868/6685/2879 4855/6686/2879 +f 3877/6687/2953 3876/6688/2953 3883/6689/2953 3884/6690/2953 +f 3876/6673/2954 3874/5513/2954 3881/5512/2954 3883/6691/2954 +f 4850/6692/2879 4861/6693/2879 4383/6694/2879 4376/6695/2879 +f 3887/6696/2955 3886/6697/2955 3879/6698/2955 3880/6699/2955 +f 3886/6700/2956 5088/6701/2956 5087/5660/2956 3879/6682/2956 +f 4380/6702/2880 4385/6703/2880 4880/6704/2880 4867/6705/2880 +f 3884/6706/2957 3883/6707/2957 3890/6708/2957 3891/6709/2957 +f 3883/6691/2958 3881/5512/2958 3888/5511/2958 3890/6710/2958 +f 4862/6711/2880 4873/6712/2880 4389/6713/2880 4382/6714/2880 +f 3894/6715/2959 3893/6716/2959 3886/6717/2959 3887/6718/2959 +f 3893/6719/2960 5089/6720/2960 5088/6701/2960 3886/6700/2960 +f 4386/6721/2881 4391/6722/2881 4892/6723/2881 4879/6724/2881 +f 3891/6725/2961 3890/6726/2961 3897/6727/2961 3898/6728/2961 +f 3890/6710/2962 3888/5511/2962 3895/5510/2962 3897/6729/2962 +f 4874/6730/2881 4885/6731/2881 4395/6732/2881 4388/6733/2881 +f 3901/6734/2963 3900/6735/2963 3893/6736/2963 3894/6737/2963 +f 3900/6738/2964 5090/6739/2964 5089/6720/2964 3893/6719/2964 +f 4392/6740/2882 4397/6741/2882 4904/6742/2882 4891/6743/2882 +f 3898/6744/2965 3897/6745/2965 3904/6746/2965 3905/6747/2965 +f 3897/6729/2966 3895/5510/2966 3902/5509/2966 3904/6748/2966 +f 4886/6749/2882 4897/6750/2882 4401/6751/2882 4394/6752/2882 +f 3908/6753/2967 3907/6754/2967 3900/6755/2967 3901/6756/2967 +f 3907/6757/2968 5091/6758/2968 5090/6739/2968 3900/6738/2968 +f 4398/6759/2883 4403/6760/2883 4916/6761/2883 4903/6762/2883 +f 3905/6763/2969 3904/6764/2969 3911/6765/2969 3912/6766/2969 +f 3904/6748/2970 3902/5509/2970 3909/5508/2970 3911/6767/2970 +f 4898/6768/2883 4909/6769/2883 4407/6770/2883 4400/6771/2883 +f 3915/6772/2971 3914/6773/2971 3907/6774/2971 3908/6775/2971 +f 3914/6776/2972 5092/6777/2972 5091/6758/2972 3907/6757/2972 +f 4404/6778/2884 4409/6779/2884 4928/6780/2884 4915/6781/2884 +f 3912/6782/2973 3911/6783/2973 3918/6784/2973 3919/6785/2973 +f 3911/6767/2974 3909/5508/2974 3916/5507/2974 3918/6786/2974 +f 4910/6787/2884 4921/6788/2884 4413/6789/2884 4406/6790/2884 +f 3922/6791/2975 3921/6792/2975 3914/6793/2975 3915/6794/2975 +f 3921/6795/2976 5093/6796/2976 5092/6777/2976 3914/6776/2976 +f 4410/6797/2885 4415/6798/2885 4940/6799/2885 4927/6800/2885 +f 3919/6801/2977 3918/6802/2977 3925/6803/2977 3926/6804/2977 +f 3918/6786/2978 3916/5507/2978 3923/5506/2978 3925/6805/2978 +f 4922/6806/2885 4933/6807/2885 4419/6808/2885 4412/6809/2885 +f 3929/6810/2979 3928/6811/2979 3921/6812/2979 3922/6813/2979 +f 3928/6814/2980 5094/6815/2980 5093/6796/2980 3921/6795/2980 +f 4416/6816/2886 4421/6817/2886 4952/6818/2886 4939/6819/2886 +f 3926/6820/2981 3925/6821/2981 3932/6822/2981 3933/6823/2981 +f 3925/6805/2982 3923/5506/2982 3930/5505/2982 3932/6824/2982 +f 4934/6825/2886 4945/6826/2886 4425/6827/2886 4418/6828/2886 +f 3936/6829/2983 3935/6830/2983 3928/6831/2983 3929/6832/2983 +f 3935/6833/2984 5095/6834/2984 5094/6815/2984 3928/6814/2984 +f 4422/6835/2887 4427/6836/2887 4964/6837/2887 4951/6838/2887 +f 3933/6839/2985 3932/6840/2985 3939/6841/2985 3940/6842/2985 +f 3932/6824/2986 3930/5505/2986 3937/5504/2986 3939/6843/2986 +f 4946/6844/2887 4957/6845/2887 4431/6846/2887 4424/6847/2887 +f 3943/6848/2987 3942/6849/2987 3935/6850/2987 3936/6851/2987 +f 3942/6852/2988 5096/6853/2988 5095/6834/2988 3935/6833/2988 +f 4428/6854/2888 4433/6855/2888 4976/6856/2888 4963/6857/2888 +f 3940/6858/2989 3939/6859/2989 3946/6860/2989 3947/6861/2989 +f 3939/6843/2990 3937/5504/2990 3944/5503/2990 3946/6862/2990 +f 4958/6863/2888 4969/6864/2888 4437/6865/2888 4430/6866/2888 +f 3950/6867/2991 3949/6868/2991 3942/6869/2991 3943/6870/2991 +f 3949/6871/2992 5097/6872/2992 5096/6853/2992 3942/6852/2992 +f 4434/6873/2889 4439/6874/2889 4988/6875/2889 4975/6876/2889 +f 3947/6877/2993 3946/6878/2993 3953/6879/2993 3954/6880/2993 +f 3946/6862/2994 3944/5503/2994 3951/5502/2994 3953/6881/2994 +f 4970/6882/2889 4981/6883/2889 4443/6884/2889 4436/6885/2889 +f 3957/6886/2995 3956/6887/2995 3949/6888/2995 3950/6889/2995 +f 3956/6890/2996 5098/6891/2996 5097/6872/2996 3949/6871/2996 +f 4440/6892/2890 4445/6893/2890 5000/6894/2890 4987/6895/2890 +f 3954/6896/2997 3953/6897/2997 3960/6898/2997 3961/6899/2997 +f 3953/6881/2998 3951/5502/2998 3958/5501/2998 3960/6900/2998 +f 4982/6901/2890 4993/6902/2890 4449/6903/2890 4442/6904/2890 +f 3964/6905/2999 3963/6906/2999 3956/6907/2999 3957/6908/2999 +f 3963/6909/3000 5099/6910/3000 5098/6891/3000 3956/6890/3000 +f 4446/6911/2891 4451/6912/2891 5012/6913/2891 4999/6914/2891 +f 3961/6915/3001 3960/6916/3001 3967/6917/3001 3968/6918/3001 +f 3960/6900/3002 3958/5501/3002 3965/5500/3002 3967/6919/3002 +f 4994/6920/2891 5005/6921/2891 4455/6922/2891 4448/6923/2891 +f 3971/6924/3003 3970/6925/3003 3963/6926/3003 3964/6927/3003 +f 3970/6928/3004 5100/6929/3004 5099/6910/3004 3963/6909/3004 +f 4452/6930/2892 4457/6931/2892 5024/6932/2892 5011/6933/2892 +f 3968/6934/3005 3967/6935/3005 3974/6936/3005 3975/6937/3005 +f 3967/6919/3006 3965/5500/3006 3972/5499/3006 3974/6938/3006 +f 5006/6939/2892 5017/6940/2892 4461/6941/2892 4454/6942/2892 +f 3978/6943/3007 3977/6944/3007 3970/6945/3007 3971/6946/3007 +f 3977/6947/3008 5101/6948/3008 5100/6929/3008 3970/6928/3008 +f 4458/6949/2893 4463/6950/2893 5036/6951/2893 5023/6952/2893 +f 3975/6953/3009 3974/6954/3009 3981/6955/3009 3982/6956/3009 +f 3974/6938/3010 3972/5499/3010 3979/5498/3010 3981/6957/3010 +f 5018/6958/2893 5029/6959/2893 4467/6960/2893 4460/6961/2893 +f 3985/6962/3011 3984/6963/3011 3977/6964/3011 3978/6965/3011 +f 3984/6966/3012 5102/6967/3012 5101/6948/3012 3977/6947/3012 +f 4464/6968/3013 4469/6969/3013 5048/6970/3013 5035/6971/3013 +f 3982/6972/3014 3981/6973/3014 3988/6974/3014 3989/6975/3014 +f 3981/6957/3015 3979/5498/3015 3986/5497/3015 3988/6976/3015 +f 5030/6977/3013 5041/6978/3013 4473/6979/3013 4466/6980/3013 +f 3992/6981/3016 3991/6982/3016 3984/6983/3016 3985/6984/3016 +f 3991/6985/3017 5103/6986/3017 5102/6967/3017 3984/6966/3017 +f 4470/6987/2895 4475/6988/2895 5060/6989/2895 5047/6990/2895 +f 3989/6991/3018 3988/6992/3018 3995/6993/3018 3996/6994/3018 +f 3988/6976/3019 3986/5497/3019 3993/5496/3019 3995/6995/3019 +f 5042/6996/2895 5053/6997/2895 4479/6998/2895 4472/6999/2895 +f 3999/7000/3020 3998/7001/3020 3991/7002/3020 3992/7003/3020 +f 3998/7004/3021 5104/7005/3021 5103/6986/3021 3991/6985/3021 +f 4476/7006/3022 4481/7007/3022 4706/7008/3022 5059/7009/3022 +f 3996/7010/3023 3995/7011/3023 4002/7012/3023 4003/7013/3023 +f 3995/6995/3024 3993/5496/3024 4000/5495/3024 4002/7014/3024 +f 5054/7015/3022 4711/7016/3022 4485/7017/3022 4478/7018/3022 +f 4006/7019/3025 4005/7020/3025 3998/7021/3025 3999/7022/3025 +f 4005/7023/3026 5105/7024/3026 5104/7005/3026 3998/7004/3026 +f 4297/7025/3027 3796/6449/3027 3801/6452/3027 4303/7026/3027 4301/7027/3027 4296/7028/3027 +f 4003/7029/3028 4002/7030/3028 3795/7031/3028 3796/7032/3028 +f 4002/7014/3029 4000/5495/3029 3794/5494/3029 3795/6453/3029 +f 4712/7033/2899 4689/7034/2899 4299/6460/2899 4484/6459/2899 +f 3798/6456/3030 3797/7035/3030 4005/7036/3030 4006/6457/3030 +f 3797/6468/3031 5074/6467/3031 5105/7024/3031 4005/7023/3031 +f 4686/7037/3032 4695/7038/3032 4694/7039/3032 4687/7040/3032 +f 4690/7041/3032 4691/7042/3032 4305/7043/3032 4298/7044/3032 +f 4306/7045/3033 3803/6461/3033 3798/6464/3033 4300/7046/3033 4298/7044/3033 4305/7043/3033 +f 4486/7047/3034 4006/7019/3034 3999/7022/3034 4480/7048/3034 4478/7018/3034 4485/7017/3034 +f 4312/7049/3035 3808/6478/3035 3803/6481/3035 4306/7050/3035 4304/6477/3035 4311/6476/3035 +f 5062/7051/3022 4703/7052/3022 4710/7053/3022 5055/7054/3022 +f 5058/7055/3022 4707/7056/3022 4714/7057/3022 5051/7058/3022 +f 4720/7059/2868 4733/7060/2868 4728/7061/2868 4717/7062/2868 +f 4545/7063/3036 4725/6485/3036 4736/6484/3036 4487/7064/3036 +f 4669/7065/3037 4713/7066/3037 4688/7067/3037 4677/7068/3037 +f 4480/7069/3038 3999/7000/3038 3992/7003/3038 4474/7070/3038 4472/6999/3038 4479/6998/3038 +f 4771/6555/3039 4292/7071/3039 4294/7072/3039 4332/6552/3039 +f 4477/7073/3040 3996/7010/3040 4003/7013/3040 4483/7074/3040 4481/7007/3040 4476/7006/3040 +f 4474/7075/3041 3992/6981/3041 3985/6984/3041 4468/7076/3041 4466/6980/3041 4473/6979/3041 +f 5046/7077/2895 5057/7078/2895 5052/7079/2895 5039/7080/2895 +f 4471/7081/3042 3989/6991/3042 3996/6994/3042 4477/7082/3042 4475/6988/3042 4470/6987/3042 +f 4468/7083/3043 3985/6962/3043 3978/6965/3043 4462/7084/3043 4460/6961/3043 4467/6960/3043 +f 5034/7085/2894 5045/7086/2894 5040/7087/2894 5027/7088/2894 +f 4465/7089/3044 3982/6972/3044 3989/6975/3044 4471/7090/3044 4469/6969/3044 4464/6968/3044 +f 4462/7091/3045 3978/6943/3045 3971/6946/3045 4456/7092/3045 4454/6942/3045 4461/6941/3045 +f 5022/7093/2893 5033/7094/2893 5028/7095/2893 5015/7096/2893 +f 4459/7097/3046 3975/6953/3046 3982/6956/3046 4465/7098/3046 4463/6950/3046 4458/6949/3046 +f 4456/7099/3047 3971/6924/3047 3964/6927/3047 4450/7100/3047 4448/6923/3047 4455/6922/3047 +f 5010/7101/2892 5021/7102/2892 5016/7103/2892 5003/7104/2892 +f 4453/7105/3048 3968/6934/3048 3975/6937/3048 4459/7106/3048 4457/6931/3048 4452/6930/3048 +f 4450/7107/3049 3964/6905/3049 3957/6908/3049 4444/7108/3049 4442/6904/3049 4449/6903/3049 +f 4998/7109/2891 5009/7110/2891 5004/7111/2891 4991/7112/2891 +f 4447/7113/3050 3961/6915/3050 3968/6918/3050 4453/7114/3050 4451/6912/3050 4446/6911/3050 +f 4444/7115/3051 3957/6886/3051 3950/6889/3051 4438/7116/3051 4436/6885/3051 4443/6884/3051 +f 4986/7117/2890 4997/7118/2890 4992/7119/2890 4979/7120/2890 +f 4441/7121/3052 3954/6896/3052 3961/6899/3052 4447/7122/3052 4445/6893/3052 4440/6892/3052 +f 4438/7123/3053 3950/6867/3053 3943/6870/3053 4432/7124/3053 4430/6866/3053 4437/6865/3053 +f 4974/7125/2889 4985/7126/2889 4980/7127/2889 4967/7128/2889 +f 4435/7129/3054 3947/6877/3054 3954/6880/3054 4441/7130/3054 4439/6874/3054 4434/6873/3054 +f 4432/7131/3055 3943/6848/3055 3936/6851/3055 4426/7132/3055 4424/6847/3055 4431/6846/3055 +f 4962/7133/2888 4973/7134/2888 4968/7135/2888 4955/7136/2888 +f 4429/7137/3056 3940/6858/3056 3947/6861/3056 4435/7138/3056 4433/6855/3056 4428/6854/3056 +f 4426/7139/3057 3936/6829/3057 3929/6832/3057 4420/7140/3057 4418/6828/3057 4425/6827/3057 +f 4950/7141/2887 4961/7142/2887 4956/7143/2887 4943/7144/2887 +f 4423/7145/3058 3933/6839/3058 3940/6842/3058 4429/7146/3058 4427/6836/3058 4422/6835/3058 +f 4420/7147/3059 3929/6810/3059 3922/6813/3059 4414/7148/3059 4412/6809/3059 4419/6808/3059 +f 4938/7149/2886 4949/7150/2886 4944/7151/2886 4931/7152/2886 +f 4417/7153/3060 3926/6820/3060 3933/6823/3060 4423/7154/3060 4421/6817/3060 4416/6816/3060 +f 4414/7155/3061 3922/6791/3061 3915/6794/3061 4408/7156/3061 4406/6790/3061 4413/6789/3061 +f 4926/7157/2885 4937/7158/2885 4932/7159/2885 4919/7160/2885 +f 4411/7161/3062 3919/6801/3062 3926/6804/3062 4417/7162/3062 4415/6798/3062 4410/6797/3062 +f 4408/7163/3063 3915/6772/3063 3908/6775/3063 4402/7164/3063 4400/6771/3063 4407/6770/3063 +f 4914/7165/2884 4925/7166/2884 4920/7167/2884 4907/7168/2884 +f 4405/7169/3064 3912/6782/3064 3919/6785/3064 4411/7170/3064 4409/6779/3064 4404/6778/3064 +f 4402/7171/3065 3908/6753/3065 3901/6756/3065 4396/7172/3065 4394/6752/3065 4401/6751/3065 +f 4902/7173/2883 4913/7174/2883 4908/7175/2883 4895/7176/2883 +f 4399/7177/3066 3905/6763/3066 3912/6766/3066 4405/7178/3066 4403/6760/3066 4398/6759/3066 +f 4396/7179/3067 3901/6734/3067 3894/6737/3067 4390/7180/3067 4388/6733/3067 4395/6732/3067 +f 4890/7181/2882 4901/7182/2882 4896/7183/2882 4883/7184/2882 +f 4393/7185/3068 3898/6744/3068 3905/6747/3068 4399/7186/3068 4397/6741/3068 4392/6740/3068 +f 4390/7187/3069 3894/6715/3069 3887/6718/3069 4384/7188/3069 4382/6714/3069 4389/6713/3069 +f 4878/7189/2881 4889/7190/2881 4884/7191/2881 4871/7192/2881 +f 4387/7193/3070 3891/6725/3070 3898/6728/3070 4393/7194/3070 4391/6722/3070 4386/6721/3070 +f 4384/7195/3071 3887/6696/3071 3880/6699/3071 4378/7196/3071 4376/6695/3071 4383/6694/3071 +f 4866/7197/2880 4877/7198/2880 4872/7199/2880 4859/7200/2880 +f 4381/7201/3072 3884/6706/3072 3891/6709/3072 4387/7202/3072 4385/6703/3072 4380/6702/3072 +f 4378/7203/3073 3880/6678/3073 3873/6681/3073 4372/7204/3073 4370/6677/3073 4377/6676/3073 +f 4854/7205/2879 4865/7206/2879 4860/7207/2879 4847/7208/2879 +f 4375/7209/3074 3877/6687/3074 3884/6690/3074 4381/7210/3074 4379/6684/3074 4374/6683/3074 +f 4372/7211/3075 3873/6660/3075 3866/6663/3075 4366/7212/3075 4364/6659/3075 4371/6658/3075 +f 4842/7213/2878 4853/7214/2878 4848/7215/2878 4835/7216/2878 +f 4369/7217/3076 3870/6669/3076 3877/6672/3076 4375/7218/3076 4373/6666/3076 4368/6665/3076 +f 4366/7219/3077 3866/6641/3077 3859/6644/3077 4360/7220/3077 4358/6640/3077 4365/6639/3077 +f 4830/7221/2877 4841/7222/2877 4836/7223/2877 4823/7224/2877 +f 4363/7225/3078 3863/6651/3078 3870/6654/3078 4369/7226/3078 4367/6648/3078 4362/6647/3078 +f 4360/7227/3079 3859/6622/3079 3852/6625/3079 4354/7228/3079 4352/6621/3079 4359/6620/3079 +f 4818/7229/2876 4829/7230/2876 4824/7231/2876 4811/7232/2876 +f 4357/7233/3080 3856/6632/3080 3863/6635/3080 4363/7234/3080 4361/6629/3080 4356/6628/3080 +f 4354/7235/3081 3852/6603/3081 3845/6606/3081 4348/7236/3081 4346/6602/3081 4353/6601/3081 +f 4806/7237/2875 4817/7238/2875 4812/7239/2875 4799/7240/2875 +f 4351/7241/3082 3849/6613/3082 3856/6616/3082 4357/7242/3082 4355/6610/3082 4350/6609/3082 +f 4348/7243/3083 3845/6584/3083 3838/6587/3083 4342/7244/3083 4340/6583/3083 4347/6582/3083 +f 4794/7245/2874 4805/7246/2874 4800/7247/2874 4787/7248/2874 +f 4345/7249/3084 3842/6594/3084 3849/6597/3084 4351/7250/3084 4349/6591/3084 4344/6590/3084 +f 4342/7251/3085 3838/6565/3085 3831/6568/3085 4336/7252/3085 4334/6564/3085 4341/6563/3085 +f 4782/7253/2873 4793/7254/2873 4788/7255/2873 4775/7256/2873 +f 4339/7257/3086 3835/6575/3086 3842/6578/3086 4345/7258/3086 4343/6572/3086 4338/6571/3086 +f 4336/7259/3087 3831/6546/3087 3824/6549/3087 4330/7260/3087 4328/6545/3087 4335/6544/3087 +f 4770/7261/2872 4781/7262/2872 4776/7263/2872 4763/7264/2872 +f 4333/7265/3088 3828/6556/3088 3835/6559/3088 4339/7266/3088 4337/6553/3088 4332/6552/3088 +f 4330/7267/3089 3824/6527/3089 3818/6530/3089 4324/7268/3089 4322/6526/3089 4329/6525/3089 +f 4758/7269/2871 4769/7270/2871 4764/7271/2871 4751/7272/2871 +f 4327/7273/3090 3821/6537/3090 3828/6540/3090 4333/7274/3090 4331/6534/3090 4326/6533/3090 +f 4324/7275/3091 3818/6508/3091 3813/6511/3091 4318/7276/3091 4316/6507/3091 4323/6506/3091 +f 4746/7277/3092 4757/7278/3092 4752/7279/3092 4739/7280/3092 +f 4321/7281/3093 3816/6518/3093 3821/6521/3093 4327/7282/3093 4325/6515/3093 4320/6514/3093 +f 4318/7283/3094 3813/6493/3094 3808/6496/3094 4312/7284/3094 4310/6492/3094 4317/6491/3094 +f 4734/7285/2869 4745/7286/2869 4740/7287/2869 4727/7288/2869 +f 4704/7289/2899 4681/7290/2899 4684/7291/2899 4709/7292/2899 +f 4696/7293/2897 4719/7294/2897 4718/7295/2897 4693/7296/2897 +f 4708/7297/2899 4685/7298/2899 4688/7067/2899 4713/7066/2899 +f 4734/7285/3095 4552/7299/3095 4553/7300/3095 4745/7286/3095 +f 4716/6489/3096 4673/7301/3096 4615/7302/3096 4729/6490/3096 +f 4682/7303/3032 4699/7304/3032 4698/7305/3032 4683/7306/3032 +f 4682/7303/3097 4550/7307/3097 4548/7308/3097 4699/7304/3097 +f 4686/7037/3098 4614/7309/3098 4612/7310/3098 4695/7038/3098 +f 4690/7041/3099 4678/7311/3099 4676/7312/3099 4691/7042/3099 +f 4700/6435/3100 4547/7313/3100 4546/7314/3100 4723/6436/3100 +f 4605/7315/3101 4709/7292/3101 4684/7291/3101 4613/7316/3101 +f 4692/6474/3102 4675/7317/3102 4674/7318/3102 4715/6475/3102 +f 5050/6425/3103 4540/7319/3103 4543/7320/3103 5061/6426/3103 +f 4708/7297/3104 4605/7315/3104 4613/7316/3104 4685/7298/3104 +f 5042/6996/3105 4668/7321/3105 4671/7322/3105 5053/6997/3105 +f 4540/7319/3106 5047/6990/3106 5060/6989/3106 4543/7320/3106 +f 5034/7085/3107 4602/7323/3107 4603/7324/3107 5045/7086/3107 +f 4668/7321/3108 5039/7080/3108 5052/7079/3108 4671/7322/3108 +f 5026/6417/3109 4536/7325/3109 4537/7326/3109 5037/6418/3109 +f 4602/7323/3110 5031/6424/3110 5044/6423/3110 4603/7324/3110 +f 5030/6977/3111 4666/7327/3111 4667/7328/3111 5041/6978/3111 +f 4536/7325/3112 5023/6952/3112 5036/6951/3112 4537/7326/3112 +f 5022/7093/3113 4600/7329/3113 4601/7330/3113 5033/7094/3113 +f 5006/6939/3114 4662/7331/3114 4663/7332/3114 5017/6940/3114 +f 5014/6413/3115 4534/7333/3115 4535/7334/3115 5025/6414/3115 +f 4998/7109/3116 4596/7335/3116 4597/7336/3116 5009/7110/3116 +f 4662/7331/3117 5003/7104/3117 5016/7103/3117 4663/7332/3117 +f 4990/6405/3118 4530/7337/3118 4531/7338/3118 5001/6406/3118 +f 4596/7335/3119 4995/6412/3119 5008/6411/3119 4597/7336/3119 +f 4982/6901/3120 4658/7339/3120 4659/7340/3120 4993/6902/3120 +f 4530/7337/3121 4987/6895/3121 5000/6894/3121 4531/7338/3121 +f 4974/7125/3122 4592/7341/3122 4593/7342/3122 4985/7126/3122 +f 4658/7339/3123 4979/7120/3123 4992/7119/3123 4659/7340/3123 +f 4966/6397/3124 4526/7343/3124 4527/7344/3124 4977/6398/3124 +f 4592/7341/3125 4971/6404/3125 4984/6403/3125 4593/7342/3125 +f 4958/6863/3126 4654/7345/3126 4655/7346/3126 4969/6864/3126 +f 4526/7343/3127 4963/6857/3127 4976/6856/3127 4527/7344/3127 +f 4950/7141/3128 4588/7347/3128 4589/7348/3128 4961/7142/3128 +f 4654/7345/3129 4955/7136/3129 4968/7135/3129 4655/7346/3129 +f 4942/6389/3130 4522/7349/3130 4523/7350/3130 4953/6390/3130 +f 4588/7347/3131 4947/6396/3131 4960/6395/3131 4589/7348/3131 +f 4946/6844/3132 4652/7351/3132 4653/7352/3132 4957/6845/3132 +f 4522/7349/3133 4939/6819/3133 4952/6818/3133 4523/7350/3133 +f 4938/7149/3134 4586/7353/3134 4587/7354/3134 4949/7150/3134 +f 4922/6806/3135 4648/7355/3135 4649/7356/3135 4933/6807/3135 +f 4930/6385/3136 4520/7357/3136 4521/7358/3136 4941/6386/3136 +f 4914/7165/3137 4582/7359/3137 4583/7360/3137 4925/7166/3137 +f 4648/7355/3138 4919/7160/3138 4932/7159/3138 4649/7356/3138 +f 4906/6377/3139 4516/7361/3139 4517/7362/3139 4917/6378/3139 +f 4582/7359/3140 4911/6384/3140 4924/6383/3140 4583/7360/3140 +f 4898/6768/3141 4644/7363/3141 4645/7364/3141 4909/6769/3141 +f 4516/7361/3142 4903/6762/3142 4916/6761/3142 4517/7362/3142 +f 4890/7181/3143 4578/7365/3143 4579/7366/3143 4901/7182/3143 +f 4644/7363/3144 4895/7176/3144 4908/7175/3144 4645/7364/3144 +f 4882/6369/3145 4512/7367/3145 4513/7368/3145 4893/6370/3145 +f 4578/7365/3146 4887/6376/3146 4900/6375/3146 4579/7366/3146 +f 4874/6730/3147 4640/7369/3147 4641/7370/3147 4885/6731/3147 +f 4512/7367/3148 4879/6724/3148 4892/6723/3148 4513/7368/3148 +f 4866/7197/3149 4574/7371/3149 4575/7372/3149 4877/7198/3149 +f 4640/7369/3150 4871/7192/3150 4884/7191/3150 4641/7370/3150 +f 4858/6361/3151 4508/7373/3151 4509/7374/3151 4869/6362/3151 +f 4574/7371/3152 4863/6368/3152 4876/6367/3152 4575/7372/3152 +f 4862/6711/3153 4638/7375/3153 4639/7376/3153 4873/6712/3153 +f 4508/7373/3154 4855/6686/3154 4868/6685/3154 4509/7374/3154 +f 4854/7205/3155 4572/7377/3155 4573/7378/3155 4865/7206/3155 +f 4838/6674/3156 4634/7379/3156 4635/7380/3156 4849/6675/3156 +f 4846/6357/3157 4506/7381/3157 4507/7382/3157 4857/6358/3157 +f 4830/7221/3158 4568/7383/3158 4569/7384/3158 4841/7222/3158 +f 4634/7379/3159 4835/7216/3159 4848/7215/3159 4635/7380/3159 +f 4822/6349/3160 4502/7385/3160 4503/7386/3160 4833/6350/3160 +f 4568/7383/3161 4827/6356/3161 4840/6355/3161 4569/7384/3161 +f 4814/6637/3162 4630/7387/3162 4631/7388/3162 4825/6638/3162 +f 4502/7385/3163 4819/6631/3163 4832/6630/3163 4503/7386/3163 +f 4806/7237/3164 4564/7389/3164 4565/7390/3164 4817/7238/3164 +f 4630/7387/3165 4811/7232/3165 4824/7231/3165 4631/7388/3165 +f 4798/6341/3166 4498/7391/3166 4499/7392/3166 4809/6342/3166 +f 4564/7389/3167 4803/6348/3167 4816/6347/3167 4565/7390/3167 +f 4790/6599/3168 4626/7393/3168 4627/7394/3168 4801/6600/3168 +f 4498/7391/3169 4795/6593/3169 4808/6592/3169 4499/7392/3169 +f 4782/7253/3170 4560/7395/3170 4561/7396/3170 4793/7254/3170 +f 4626/7393/3171 4787/7248/3171 4800/7247/3171 4627/7394/3171 +f 4774/6333/3172 4494/7397/3172 4495/7398/3172 4785/6334/3172 +f 4560/7395/3173 4779/6340/3173 4792/6339/3173 4561/7396/3173 +f 4778/6580/3174 4624/7399/3174 4625/7400/3174 4789/6581/3174 +f 4494/7397/3175 4771/6555/3175 4784/6554/3175 4495/7398/3175 +f 4770/7261/3176 4558/7401/3176 4559/7402/3176 4781/7262/3176 +f 4754/6542/3177 4620/7403/3177 4621/7404/3177 4765/6543/3177 +f 4762/6329/3178 4492/7405/3178 4493/7406/3178 4773/6330/3178 +f 4746/7277/3179 4554/7407/3179 4555/7408/3179 4757/7278/3179 +f 4620/7403/3180 4751/7272/3180 4764/7271/3180 4621/7404/3180 +f 4738/6321/3181 4488/7409/3181 4489/7410/3181 4749/6322/3181 +f 4609/7411/3182 4721/6320/3182 4732/6319/3182 4551/7412/3182 +f 4730/6504/3183 4616/7413/3183 4617/7414/3183 4741/6505/3183 +f 4724/6317/3184 4545/7063/3184 4487/7064/3184 4737/6318/3184 +f 4720/7059/3185 4609/7411/3185 4551/7412/3185 4733/7060/3185 +f 4616/7413/3186 4727/7288/3186 4740/7287/3186 4617/7414/3186 +f 4544/7415/3187 5059/7009/3187 4706/7008/3187 4542/7416/3187 +f 4696/7293/3188 4611/7417/3188 4610/7418/3188 4719/7294/3188 +f 4672/7419/3189 5051/7058/3189 4714/7057/3189 4670/7420/3189 +f 4296/7028/3032 4301/7027/3032 4702/7421/3032 4679/7422/3032 +f 4673/7301/3190 4717/7062/3190 4728/7061/3190 4615/7302/3190 +f 4742/6523/3191 4618/7423/3191 4619/7424/3191 4753/6524/3191 +f 4618/7423/3192 4739/7280/3192 4752/7279/3192 4619/7424/3192 +f 4766/6561/3193 4622/7425/3193 4623/7426/3193 4777/6562/3193 +f 4622/7425/3194 4763/7264/3194 4776/7263/3194 4623/7426/3194 +f 4624/7399/3195 4775/7256/3195 4788/7255/3195 4625/7400/3195 +f 4802/6618/3196 4628/7427/3196 4629/7428/3196 4813/6619/3196 +f 4628/7427/3197 4799/7240/3197 4812/7239/3197 4629/7428/3197 +f 4826/6656/3198 4632/7429/3198 4633/7430/3198 4837/6657/3198 +f 4632/7429/3199 4823/7224/3199 4836/7223/3199 4633/7430/3199 +f 4850/6692/3200 4636/7431/3200 4637/7432/3200 4861/6693/3200 +f 4636/7431/3201 4847/7208/3201 4860/7207/3201 4637/7432/3201 +f 4638/7375/3202 4859/7200/3202 4872/7199/3202 4639/7376/3202 +f 4886/6749/3203 4642/7433/3203 4643/7434/3203 4897/6750/3203 +f 4642/7433/3204 4883/7184/3204 4896/7183/3204 4643/7434/3204 +f 4910/6787/3205 4646/7435/3205 4647/7436/3205 4921/6788/3205 +f 4646/7435/3206 4907/7168/3206 4920/7167/3206 4647/7436/3206 +f 4934/6825/3207 4650/7437/3207 4651/7438/3207 4945/6826/3207 +f 4650/7437/3208 4931/7152/3208 4944/7151/3208 4651/7438/3208 +f 4652/7351/3209 4943/7144/3209 4956/7143/3209 4653/7352/3209 +f 4970/6882/3210 4656/7439/3210 4657/7440/3210 4981/6883/3210 +f 4656/7439/3211 4967/7128/3211 4980/7127/3211 4657/7440/3211 +f 4994/6920/3212 4660/7441/3212 4661/7442/3212 5005/6921/3212 +f 4660/7441/3213 4991/7112/3213 5004/7111/3213 4661/7442/3213 +f 5018/6958/3214 4664/7443/3214 4665/7444/3214 5029/6959/3214 +f 4664/7443/3215 5015/7096/3215 5028/7095/3215 4665/7444/3215 +f 4666/7327/3216 5027/7088/3216 5040/7087/3216 4667/7328/3216 +f 5054/7015/3217 4672/7419/3217 4670/7420/3217 4711/7016/3217 +f 4712/7033/3218 4669/7065/3218 4677/7068/3218 4689/7034/3218 +f 4675/7317/3219 4693/7296/3219 4718/7295/3219 4674/7318/3219 +f 4678/7311/3220 4687/7040/3220 4694/7039/3220 4676/7312/3220 +f 5058/7055/3221 4608/7445/3221 4606/7446/3221 4707/7056/3221 +f 4554/7407/3222 4743/6328/3222 4756/6327/3222 4555/7408/3222 +f 4552/7299/3223 4731/6324/3223 4744/6323/3223 4553/7300/3223 +f 4758/7269/3224 4556/7447/3224 4557/7448/3224 4769/7270/3224 +f 4556/7447/3225 4755/6332/3225 4768/6331/3225 4557/7448/3225 +f 4558/7401/3226 4767/6336/3226 4780/6335/3226 4559/7402/3226 +f 4794/7245/3227 4562/7449/3227 4563/7450/3227 4805/7246/3227 +f 4562/7449/3228 4791/6344/3228 4804/6343/3228 4563/7450/3228 +f 4818/7229/3229 4566/7451/3229 4567/7452/3229 4829/7230/3229 +f 4566/7451/3230 4815/6352/3230 4828/6351/3230 4567/7452/3230 +f 4842/7213/3231 4570/7453/3231 4571/7454/3231 4853/7214/3231 +f 4570/7453/3232 4839/6360/3232 4852/6359/3232 4571/7454/3232 +f 4572/7377/3233 4851/6364/3233 4864/6363/3233 4573/7378/3233 +f 4878/7189/3234 4576/7455/3234 4577/7456/3234 4889/7190/3234 +f 4576/7455/3235 4875/6372/3235 4888/6371/3235 4577/7456/3235 +f 4902/7173/3236 4580/7457/3236 4581/7458/3236 4913/7174/3236 +f 4580/7457/3237 4899/6380/3237 4912/6379/3237 4581/7458/3237 +f 4926/7157/3238 4584/7459/3238 4585/7460/3238 4937/7158/3238 +f 4584/7459/3239 4923/6388/3239 4936/6387/3239 4585/7460/3239 +f 4586/7353/3240 4935/6392/3240 4948/6391/3240 4587/7354/3240 +f 4962/7133/3241 4590/7461/3241 4591/7462/3241 4973/7134/3241 +f 4590/7461/3242 4959/6400/3242 4972/6399/3242 4591/7462/3242 +f 4986/7117/3243 4594/7463/3243 4595/7464/3243 4997/7118/3243 +f 4594/7463/3244 4983/6408/3244 4996/6407/3244 4595/7464/3244 +f 5010/7101/3245 4598/7465/3245 4599/7466/3245 5021/7102/3245 +f 4598/7465/3246 5007/6416/3246 5020/6415/3246 4599/7466/3246 +f 4600/7329/3247 5019/6420/3247 5032/6419/3247 4601/7330/3247 +f 5046/7077/3248 4604/7467/3248 4607/7468/3248 5057/7078/3248 +f 4604/7467/3249 5043/6428/3249 5056/6427/3249 4607/7468/3249 +f 4608/7445/3250 5055/7054/3250 4710/7053/3250 4606/7446/3250 +f 4611/7417/3251 4697/6438/3251 4722/6437/3251 4610/7418/3251 +f 4614/7309/3252 4683/7306/3252 4698/7305/3252 4612/7310/3252 +f 4541/7469/3253 4705/6448/3253 4680/6447/3253 4549/7470/3253 +f 4488/7409/3254 4735/6500/3254 4748/6499/3254 4489/7410/3254 +f 4750/6325/3255 4490/7471/3255 4491/7472/3255 4761/6326/3255 +f 4490/7471/3256 4747/6517/3256 4760/6516/3256 4491/7472/3256 +f 4492/7405/3257 4759/6536/3257 4772/6535/3257 4493/7406/3257 +f 4786/6337/3258 4496/7473/3258 4497/7474/3258 4797/6338/3258 +f 4496/7473/3259 4783/6574/3259 4796/6573/3259 4497/7474/3259 +f 4810/6345/3260 4500/7475/3260 4501/7476/3260 4821/6346/3260 +f 4500/7475/3261 4807/6612/3261 4820/6611/3261 4501/7476/3261 +f 4834/6353/3262 4504/7477/3262 4505/7478/3262 4845/6354/3262 +f 4504/7477/3263 4831/6650/3263 4844/6649/3263 4505/7478/3263 +f 4506/7381/3264 4843/6668/3264 4856/6667/3264 4507/7382/3264 +f 4870/6365/3265 4510/7479/3265 4511/7480/3265 4881/6366/3265 +f 4510/7479/3266 4867/6705/3266 4880/6704/3266 4511/7480/3266 +f 4894/6373/3267 4514/7481/3267 4515/7482/3267 4905/6374/3267 +f 4514/7481/3268 4891/6743/3268 4904/6742/3268 4515/7482/3268 +f 4918/6381/3269 4518/7483/3269 4519/7484/3269 4929/6382/3269 +f 4518/7483/3270 4915/6781/3270 4928/6780/3270 4519/7484/3270 +f 4520/7357/3271 4927/6800/3271 4940/6799/3271 4521/7358/3271 +f 4954/6393/3272 4524/7485/3272 4525/7486/3272 4965/6394/3272 +f 4524/7485/3273 4951/6838/3273 4964/6837/3273 4525/7486/3273 +f 4978/6401/3274 4528/7487/3274 4529/7488/3274 4989/6402/3274 +f 4528/7487/3275 4975/6876/3275 4988/6875/3275 4529/7488/3275 +f 5002/6409/3276 4532/7489/3276 4533/7490/3276 5013/6410/3276 +f 4532/7489/3277 4999/6914/3277 5012/6913/3277 4533/7490/3277 +f 4534/7333/3278 5011/6933/3278 5024/6932/3278 4535/7334/3278 +f 5038/6421/3279 4538/7491/3279 4539/7492/3279 5049/6422/3279 +f 4538/7491/3280 5035/6971/3280 5048/6970/3280 4539/7492/3280 +f 5062/7051/3281 4544/7415/3281 4542/7416/3281 4703/7052/3281 +f 4704/7289/3282 4541/7469/3282 4549/7470/3282 4681/7290/3282 +f 4547/7313/3283 4701/6470/3283 4726/6469/3283 4546/7314/3283 +f 4550/7307/3284 4679/7422/3284 4702/7421/3284 4548/7308/3284 +f 4295/6446/3285 4297/7493/3285 4296/7494/3285 4206/7495/3285 +f 4298/7496/3286 4300/6455/3286 4299/6460/3286 4205/7497/3286 +f 4301/7027/3287 4303/6439/3287 4302/6444/3287 4217/7498/3287 +f 4304/6477/3288 4306/7045/3288 4305/7499/3288 4216/7500/3288 +f 4307/6443/3289 4309/6311/3289 4308/6316/3289 4228/7501/3289 +f 4310/6492/3290 4312/7049/3290 4311/6476/3290 4227/7502/3290 +f 4313/6315/3291 4315/6429/3291 4314/6434/3291 4239/7503/3291 +f 4316/6507/3292 4318/7283/3292 4317/7504/3292 4238/7505/3292 +f 4319/6433/3293 4321/7281/3293 4320/6514/3293 4250/7506/3293 +f 4322/6526/3294 4324/7275/3294 4323/6506/3294 4249/7507/3294 +f 4325/6515/3295 4327/7273/3295 4326/6533/3295 4261/7508/3295 +f 4328/6545/3296 4330/7267/3296 4329/7509/3296 4260/7510/3296 +f 4331/6534/3297 4333/7265/3297 4332/6552/3297 4294/7072/3297 +f 4334/6564/3298 4336/7259/3298 4335/6544/3298 4293/7511/3298 +f 4337/6553/3299 4339/7257/3299 4338/6571/3299 4283/7512/3299 +f 4340/6583/3300 4342/7251/3300 4341/7513/3300 4282/7514/3300 +f 4343/6572/3301 4345/7249/3301 4344/6590/3301 4272/7515/3301 +f 4346/6602/3302 4348/7243/3302 4347/6582/3302 4271/7516/3302 +f 4349/6591/3303 4351/7241/3303 4350/6609/3303 5063/7517/3303 +f 4352/6621/3304 4354/7235/3304 4353/7518/3304 5064/7519/3304 +f 4355/6610/3305 4357/7233/3305 4356/6628/3305 3857/7520/3305 +f 4358/6640/3306 4360/7227/3306 4359/6620/3306 3854/7521/3306 +f 4361/6629/3307 4363/7225/3307 4362/6647/3307 3896/7522/3307 +f 4364/6659/3308 4366/7219/3308 4365/7523/3308 3892/7524/3308 +f 4367/6648/3309 4369/7217/3309 4368/6665/3309 3934/7525/3309 +f 4370/6677/3310 4372/7211/3310 4371/6658/3310 3931/7526/3310 +f 4373/6666/3311 4375/7209/3311 4374/6683/3311 3973/7527/3311 +f 4376/6695/3312 4378/7203/3312 4377/7528/3312 3969/7529/3312 +f 4379/6684/3313 4381/7201/3313 4380/6702/3313 4008/7530/3313 +f 4382/6714/3314 4384/7195/3314 4383/6694/3314 4007/7531/3314 +f 4385/6703/3315 4387/7193/3315 4386/6721/3315 4019/7532/3315 +f 4388/6733/3316 4390/7187/3316 4389/7533/3316 4018/7534/3316 +f 4391/6722/3317 4393/7185/3317 4392/6740/3317 4030/7535/3317 +f 4394/6752/3318 4396/7179/3318 4395/6732/3318 4029/7536/3318 +f 4397/6741/3319 4399/7177/3319 4398/6759/3319 4041/7537/3319 +f 4400/6771/3320 4402/7171/3320 4401/7538/3320 4040/7539/3320 +f 4403/6760/3321 4405/7169/3321 4404/6778/3321 4052/7540/3321 +f 4406/6790/3322 4408/7163/3322 4407/6770/3322 4051/7541/3322 +f 4409/6779/3323 4411/7161/3323 4410/6797/3323 4063/7542/3323 +f 4412/6809/3324 4414/7155/3324 4413/7543/3324 4062/7544/3324 +f 4415/6798/3325 4417/7153/3325 4416/6816/3325 4074/7545/3325 +f 4418/6828/3326 4420/7147/3326 4419/6808/3326 4073/7546/3326 +f 4421/6817/3327 4423/7145/3327 4422/6835/3327 4085/7547/3327 +f 4424/6847/3328 4426/7139/3328 4425/7548/3328 4084/7549/3328 +f 4427/6836/3329 4429/7137/3329 4428/6854/3329 4096/7550/3329 +f 4430/6866/3330 4432/7131/3330 4431/6846/3330 4095/7551/3330 +f 4433/6855/3331 4435/7129/3331 4434/6873/3331 4107/7552/3331 +f 4436/6885/3332 4438/7123/3332 4437/7553/3332 4106/7554/3332 +f 4439/6874/3333 4441/7121/3333 4440/6892/3333 4118/7555/3333 +f 4442/6904/3334 4444/7115/3334 4443/6884/3334 4117/7556/3334 +f 4445/6893/3335 4447/7113/3335 4446/6911/3335 4129/7557/3335 +f 4448/6923/3336 4450/7107/3336 4449/7558/3336 4128/7559/3336 +f 4451/6912/3337 4453/7105/3337 4452/6930/3337 4140/7560/3337 +f 4454/6942/3338 4456/7099/3338 4455/6922/3338 4139/7561/3338 +f 4457/6931/3339 4459/7097/3339 4458/6949/3339 4151/7562/3339 +f 4460/6961/3340 4462/7091/3340 4461/7563/3340 4150/7564/3340 +f 4463/6950/3341 4465/7089/3341 4464/6968/3341 4162/7565/3341 +f 4466/6980/3342 4468/7083/3342 4467/6960/3342 4161/7566/3342 +f 4469/6969/3343 4471/7081/3343 4470/6987/3343 4173/7567/3343 +f 4472/6999/3344 4474/7075/3344 4473/7568/3344 4172/7569/3344 +f 4475/6988/3345 4477/7073/3345 4476/7006/3345 4184/7570/3345 +f 4478/7018/3346 4480/7069/3346 4479/6998/3346 4183/7571/3346 +f 4481/7007/3347 4483/7572/3347 4482/6445/3347 4195/7573/3347 +f 4484/6459/3348 4486/7047/3348 4485/7574/3348 4194/7575/3348 +f 4237/7576/3349 4735/6500/3349 4488/7409/3349 4236/7577/3349 +f 3850/7578/3350 4819/6631/3350 4502/7385/3350 3847/7579/3350 +f 4039/7580/3351 4903/6762/3351 4516/7361/3351 4038/7581/3351 +f 4116/7582/3352 4987/6895/3352 4530/7337/3352 4115/7583/3352 +f 4182/7584/3353 5059/7009/3353 4544/7415/3353 4181/7585/3353 +f 5065/7586/3354 4803/6348/3354 4564/7389/3354 5066/7587/3354 +f 4028/7588/3355 4887/6376/3355 4578/7365/3355 4027/7589/3355 +f 4105/7590/3356 4971/6404/3356 4592/7341/3356 4104/7591/3356 +f 4193/7592/3357 4707/7056/3357 4606/7446/3357 4192/7593/3357 +f 4270/7594/3358 4787/7248/3358 4626/7393/3358 4269/7595/3358 +f 4017/7596/3359 4871/7192/3359 4640/7369/3359 4016/7597/3359 +f 4094/7598/3360 4955/7136/3360 4654/7345/3360 4093/7599/3360 +f 4171/7600/3361 5039/7080/3361 4668/7321/3361 4170/7601/3361 +f 4204/7602/3362 4687/7603/3362 4678/7604/3362 4203/7605/3362 +f 4259/7606/3363 4759/6536/3363 4492/7405/3363 4258/7607/3363 +f 4292/7071/3364 4771/6555/3364 4494/7397/3364 4291/7608/3364 +f 4268/7609/3365 4795/6593/3365 4498/7391/3365 4267/7610/3365 +f 3927/7611/3366 4843/6668/3366 4506/7381/3366 3924/7612/3366 +f 3966/7613/3367 4855/6686/3367 4508/7373/3367 3962/7614/3367 +f 4015/7615/3368 4879/6724/3368 4512/7367/3368 4014/7616/3368 +f 4061/7617/3369 4927/6800/3369 4520/7357/3369 4060/7618/3369 +f 4072/7619/3370 4939/6819/3370 4522/7349/3370 4071/7620/3370 +f 4092/7621/3371 4963/6857/3371 4526/7343/3371 4091/7622/3371 +f 4138/7623/3372 5011/6933/3372 4534/7333/3372 4137/7624/3372 +f 4149/7625/3373 5023/6952/3373 4536/7325/3373 4148/7626/3373 +f 4169/7627/3374 5047/6990/3374 4540/7319/3374 4168/7628/3374 +f 4215/7629/3375 4699/7304/3375 4548/7308/3375 4214/7630/3375 +f 4202/7631/3376 4679/7632/3376 4550/7633/3376 4201/7634/3376 +f 4248/7635/3377 4743/6328/3377 4554/7407/3377 4247/7636/3377 +f 4257/7637/3378 4755/6332/3378 4556/7447/3378 4256/7638/3378 +f 4281/7639/3379 4779/6340/3379 4560/7395/3379 4280/7640/3379 +f 3889/7641/3380 4827/6356/3380 4568/7383/3380 3885/7642/3380 +f 3920/7643/3381 4839/6360/3381 4570/7453/3381 3917/7644/3381 +f 4004/7645/3382 4863/6368/3382 4574/7371/3382 4001/7646/3382 +f 4050/7647/3383 4911/6384/3383 4582/7359/3383 4049/7648/3383 +f 4059/7649/3384 4923/6388/3384 4584/7459/3384 4058/7650/3384 +f 4083/7651/3385 4947/6396/3385 4588/7347/3385 4082/7652/3385 +f 4127/7653/3386 4995/6412/3386 4596/7335/3386 4126/7654/3386 +f 4136/7655/3387 5007/6416/3387 4598/7465/3387 4135/7656/3387 +f 4160/7657/3388 5031/6424/3388 4602/7323/3388 4159/7658/3388 +f 4226/7659/3389 4719/7294/3389 4610/7418/3389 4225/7660/3389 +f 4213/7661/3390 4695/7038/3390 4612/7310/3390 4212/7662/3390 +f 4235/7663/3391 4727/7288/3391 4616/7413/3391 4234/7664/3391 +f 4246/7665/3392 4739/7280/3392 4618/7423/3392 4245/7666/3392 +f 4290/7667/3393 4763/7264/3393 4622/7425/3393 4289/7668/3393 +f 3843/7669/3394 4811/7232/3394 4630/7387/3394 3840/7670/3394 +f 3882/7671/3395 4823/7224/3395 4632/7429/3395 3878/7672/3395 +f 3959/7673/3396 4847/7208/3396 4636/7431/3396 3955/7674/3396 +f 4037/7675/3397 4895/7176/3397 4644/7363/3397 4036/7676/3397 +f 4048/7677/3398 4907/7168/3398 4646/7435/3398 4047/7678/3398 +f 4070/7679/3399 4931/7152/3399 4650/7437/3399 4069/7680/3399 +f 4114/7681/3400 4979/7120/3400 4658/7339/3400 4113/7682/3400 +f 4125/7683/3401 4991/7112/3401 4660/7441/3401 4124/7684/3401 +f 4147/7685/3402 5015/7096/3402 4664/7443/3402 4146/7686/3402 +f 4180/7687/3403 5051/7058/3403 4672/7419/3403 4179/7688/3403 +f 4224/7689/3404 4715/6475/3404 4674/7318/3404 4223/7690/3404 +f 4211/7691/3405 4691/7042/3405 4676/7312/3405 4210/7692/3405 +f 4191/7693/3406 4711/7016/3406 4670/7420/3406 4190/7694/3406 +f 4158/7695/3407 5027/7088/3407 4666/7327/3407 4157/7696/3407 +f 4134/7697/3408 5003/7104/3408 4662/7331/3408 4133/7698/3408 +f 4103/7699/3409 4967/7128/3409 4656/7439/3409 4102/7700/3409 +f 4081/7701/3410 4943/7144/3410 4652/7351/3410 4080/7702/3410 +f 4057/7703/3411 4919/7160/3411 4648/7355/3411 4056/7704/3411 +f 4026/7705/3412 4883/7184/3412 4642/7433/3412 4025/7706/3412 +f 3997/7707/3413 4859/7200/3413 4638/7375/3413 3994/7708/3413 +f 3913/7709/3414 4835/7216/3414 4634/7379/3414 3910/7710/3414 +f 5067/7711/3415 4799/7240/3415 4628/7427/3415 5068/7712/3415 +f 4279/7713/3416 4775/7256/3416 4624/7399/3416 4278/7714/3416 +f 4255/7715/3417 4751/7272/3417 4620/7403/3417 4254/7716/3417 +f 4200/7717/3418 4683/7718/3418 4614/7719/3418 4199/7720/3418 +f 4178/7721/3419 5055/7054/3419 4608/7445/3419 4177/7722/3419 +f 4167/7723/3420 5043/6428/3420 4604/7467/3420 4166/7724/3420 +f 4145/7725/3421 5019/6420/3421 4600/7329/3421 4144/7726/3421 +f 4112/7727/3422 4983/6408/3422 4594/7463/3422 4111/7728/3422 +f 4090/7729/3423 4959/6400/3423 4590/7461/3423 4089/7730/3423 +f 4068/7731/3424 4935/6392/3424 4586/7353/3424 4067/7732/3424 +f 4035/7733/3425 4899/6380/3425 4580/7457/3425 4034/7734/3425 +f 4013/7735/3426 4875/6372/3426 4576/7455/3426 4012/7736/3426 +f 3952/7737/3427 4851/6364/3427 4572/7377/3427 3948/7738/3427 +f 3836/7739/3428 4815/6352/3428 4566/7451/3428 3833/7740/3428 +f 4266/7741/3429 4791/6344/3429 4562/7449/3429 4265/7742/3429 +f 4288/7743/3430 4767/6336/3430 4558/7401/3430 4287/7744/3430 +f 4233/7745/3431 4731/6324/3431 4552/7299/3431 4232/7746/3431 +f 4222/7747/3432 4723/6436/3432 4546/7314/3432 4221/7748/3432 +f 4189/7749/3433 4703/7052/3433 4542/7416/3433 4188/7750/3433 +f 4156/7751/3434 5035/6971/3434 4538/7491/3434 4155/7752/3434 +f 4123/7753/3435 4999/6914/3435 4532/7489/3435 4122/7754/3435 +f 4101/7755/3436 4975/6876/3436 4528/7487/3436 4100/7756/3436 +f 4079/7757/3437 4951/6838/3437 4524/7485/3437 4078/7758/3437 +f 4046/7759/3438 4915/6781/3438 4518/7483/3438 4045/7760/3438 +f 4024/7761/3439 4891/6743/3439 4514/7481/3439 4023/7762/3439 +f 3990/7763/3440 4867/6705/3440 4510/7479/3440 3987/7764/3440 +f 3875/7765/3441 4831/6650/3441 4504/7477/3441 3871/7766/3441 +f 5069/7767/3442 4807/6612/3442 4500/7475/3442 5070/7768/3442 +f 4277/7769/3443 4783/6574/3443 4496/7473/3443 4276/7770/3443 +f 4244/7771/3444 4747/6517/3444 4490/7471/3444 4243/7772/3444 +f 4201/7634/3445 4550/7633/3445 4682/7773/3445 4198/7774/3445 +f 4214/7630/3446 4548/7308/3446 4702/7421/3446 4209/7775/3446 +f 4199/7720/3447 4614/7719/3447 4686/7776/3447 4197/7777/3447 +f 4212/7662/3448 4612/7310/3448 4698/7305/3448 4208/7778/3448 +f 4203/7605/3449 4678/7604/3449 4690/7779/3449 4196/7780/3449 +f 4210/7692/3450 4676/7312/3450 4694/7039/3450 4207/7781/3450 +f 4221/7748/3451 4546/7314/3451 4726/6469/3451 4220/7782/3451 +f 4225/7660/3452 4610/7418/3452 4722/6437/3452 4219/7783/3452 +f 4223/7690/3453 4674/7318/3453 4718/7295/3453 4218/7784/3453 +f 4181/7585/3454 4544/7415/3454 5062/7051/3454 4176/7785/3454 +f 4188/7750/3455 4542/7416/3455 4706/7008/3455 4187/7786/3455 +f 4177/7722/3456 4608/7445/3456 5058/7055/3456 4175/7787/3456 +f 4192/7593/3457 4606/7446/3457 4710/7053/3457 4186/7788/3457 +f 4179/7688/3458 4672/7419/3458 5054/7015/3458 4174/7789/3458 +f 4190/7694/3459 4670/7420/3459 4714/7057/3459 4185/7790/3459 +f 4168/7628/3460 4540/7319/3460 5050/6425/3460 4165/7791/3460 +f 4166/7724/3461 4604/7467/3461 5046/7077/3461 4164/7792/3461 +f 4170/7601/3462 4668/7321/3462 5042/6996/3462 4163/7793/3462 +f 4155/7752/3463 4538/7491/3463 5038/6421/3463 4154/7794/3463 +f 4159/7658/3464 4602/7323/3464 5034/7085/3464 4153/7795/3464 +f 4157/7696/3465 4666/7327/3465 5030/6977/3465 4152/7796/3465 +f 4148/7626/3466 4536/7325/3466 5026/6417/3466 4143/7797/3466 +f 4144/7726/3467 4600/7329/3467 5022/7093/3467 4142/7798/3467 +f 4146/7686/3468 4664/7443/3468 5018/6958/3468 4141/7799/3468 +f 4137/7624/3469 4534/7333/3469 5014/6413/3469 4132/7800/3469 +f 4135/7656/3470 4598/7465/3470 5010/7101/3470 4131/7801/3470 +f 4133/7698/3471 4662/7331/3471 5006/6939/3471 4130/7802/3471 +f 4122/7754/3472 4532/7489/3472 5002/6409/3472 4121/7803/3472 +f 4126/7654/3473 4596/7335/3473 4998/7109/3473 4120/7804/3473 +f 4124/7684/3474 4660/7441/3474 4994/6920/3474 4119/7805/3474 +f 4115/7583/3475 4530/7337/3475 4990/6405/3475 4110/7806/3475 +f 4111/7728/3476 4594/7463/3476 4986/7117/3476 4109/7807/3476 +f 4113/7682/3477 4658/7339/3477 4982/6901/3477 4108/7808/3477 +f 4100/7756/3478 4528/7487/3478 4978/6401/3478 4099/7809/3478 +f 4104/7591/3479 4592/7341/3479 4974/7125/3479 4098/7810/3479 +f 4102/7700/3480 4656/7439/3480 4970/6882/3480 4097/7811/3480 +f 4091/7622/3481 4526/7343/3481 4966/6397/3481 4088/7812/3481 +f 4089/7730/3482 4590/7461/3482 4962/7133/3482 4087/7813/3482 +f 4093/7599/3483 4654/7345/3483 4958/6863/3483 4086/7814/3483 +f 4078/7758/3484 4524/7485/3484 4954/6393/3484 4077/7815/3484 +f 4082/7652/3485 4588/7347/3485 4950/7141/3485 4076/7816/3485 +f 4080/7702/3486 4652/7351/3486 4946/6844/3486 4075/7817/3486 +f 4071/7620/3487 4522/7349/3487 4942/6389/3487 4066/7818/3487 +f 4067/7732/3488 4586/7353/3488 4938/7149/3488 4065/7819/3488 +f 4069/7680/3489 4650/7437/3489 4934/6825/3489 4064/7820/3489 +f 4060/7618/3490 4520/7357/3490 4930/6385/3490 4055/7821/3490 +f 4058/7650/3491 4584/7459/3491 4926/7157/3491 4054/7822/3491 +f 4056/7704/3492 4648/7355/3492 4922/6806/3492 4053/7823/3492 +f 4045/7760/3493 4518/7483/3493 4918/6381/3493 4044/7824/3493 +f 4049/7648/3494 4582/7359/3494 4914/7165/3494 4043/7825/3494 +f 4047/7678/3495 4646/7435/3495 4910/6787/3495 4042/7826/3495 +f 4038/7581/3496 4516/7361/3496 4906/6377/3496 4033/7827/3496 +f 4034/7734/3497 4580/7457/3497 4902/7173/3497 4032/7828/3497 +f 4036/7676/3498 4644/7363/3498 4898/6768/3498 4031/7829/3498 +f 4023/7762/3499 4514/7481/3499 4894/6373/3499 4022/7830/3499 +f 4027/7589/3500 4578/7365/3500 4890/7181/3500 4021/7831/3500 +f 4025/7706/3501 4642/7433/3501 4886/6749/3501 4020/7832/3501 +f 4014/7616/3502 4512/7367/3502 4882/6369/3502 4011/7833/3502 +f 4012/7736/3503 4576/7455/3503 4878/7189/3503 4010/7834/3503 +f 4016/7597/3504 4640/7369/3504 4874/6730/3504 4009/7835/3504 +f 3987/7764/3505 4510/7479/3505 4870/6365/3505 3983/7836/3505 +f 4001/7646/3506 4574/7371/3506 4866/7197/3506 3980/7837/3506 +f 3994/7708/3507 4638/7375/3507 4862/6711/3507 3976/7838/3507 +f 3962/7614/3508 4508/7373/3508 4858/6361/3508 3945/7839/3508 +f 3948/7738/3509 4572/7377/3509 4854/7205/3509 3941/7840/3509 +f 3955/7674/3510 4636/7431/3510 4850/6692/3510 3938/7841/3510 +f 3924/7612/3511 4506/7381/3511 4846/6357/3511 3906/7842/3511 +f 3917/7644/3512 4570/7453/3512 4842/7213/3512 3903/7843/3512 +f 3910/7710/3513 4634/7379/3513 4838/6674/3513 3899/7844/3513 +f 3871/7766/3514 4504/7477/3514 4834/6353/3514 3868/7845/3514 +f 3885/7642/3515 4568/7383/3515 4830/7221/3515 3864/7846/3515 +f 3878/7672/3516 4632/7429/3516 4826/6656/3516 3861/7847/3516 +f 3847/7579/3517 4502/7385/3517 4822/6349/3517 3829/7848/3517 +f 3833/7740/3518 4566/7451/3518 4818/7229/3518 3826/7849/3518 +f 3840/7670/3519 4630/7387/3519 4814/6637/3519 3822/7850/3519 +f 5070/7768/3520 4500/7475/3520 4810/6345/3520 5071/7851/3520 +f 5066/7587/3521 4564/7389/3521 4806/7237/3521 5072/7852/3521 +f 5068/7712/3522 4628/7427/3522 4802/6618/3522 5073/7853/3522 +f 4267/7610/3523 4498/7391/3523 4798/6341/3523 4264/7854/3523 +f 4265/7742/3524 4562/7449/3524 4794/7245/3524 4263/7855/3524 +f 4269/7595/3525 4626/7393/3525 4790/6599/3525 4262/7856/3525 +f 4276/7770/3526 4496/7473/3526 4786/6337/3526 4275/7857/3526 +f 4280/7640/3527 4560/7395/3527 4782/7253/3527 4274/7858/3527 +f 4278/7714/3528 4624/7399/3528 4778/6580/3528 4273/7859/3528 +f 4291/7608/3529 4494/7397/3529 4774/6333/3529 4286/7860/3529 +f 4287/7744/3530 4558/7401/3530 4770/7261/3530 4285/7861/3530 +f 4289/7668/3531 4622/7425/3531 4766/6561/3531 4284/7862/3531 +f 4258/7607/3532 4492/7405/3532 4762/6329/3532 4253/7863/3532 +f 4256/7638/3533 4556/7447/3533 4758/7269/3533 4252/7864/3533 +f 4254/7716/3534 4620/7403/3534 4754/6542/3534 4251/7865/3534 +f 4243/7772/3535 4490/7471/3535 4750/6325/3535 4242/7866/3535 +f 4247/7636/3536 4554/7407/3536 4746/7277/3536 4241/7867/3536 +f 4245/7666/3537 4618/7423/3537 4742/6523/3537 4240/7868/3537 +f 4236/7577/3538 4488/7409/3538 4738/6321/3538 4231/7869/3538 +f 4232/7746/3539 4552/7299/3539 4734/7285/3539 4230/7870/3539 +f 4234/7664/3540 4616/7413/3540 4730/6504/3540 4229/7871/3540 +f 4195/7872/3541 4482/6445/3541 4705/6448/3541 4187/7786/3541 +f 4202/7631/3542 4680/6447/3542 4295/6446/3542 4206/7873/3542 +f 4198/7774/3543 4682/7874/3543 4683/7875/3543 4200/7876/3543 +f 4208/7778/3544 4698/7305/3544 4699/7304/3544 4215/7629/3544 +f 4209/7775/3545 4702/7421/3545 4301/7027/3545 4217/7877/3545 +f 4189/7749/3546 4704/7289/3546 4709/7292/3546 4186/7788/3546 +f 4193/7592/3547 4708/7297/3547 4713/7066/3547 4185/7790/3547 +f 4204/7602/3548 4688/7067/3548 4685/7298/3548 4197/7878/3548 +f 4207/7781/3549 4694/7039/3549 4695/7038/3549 4213/7661/3549 +f 4196/7780/3550 4690/7779/3550 4298/7879/3550 4205/7880/3550 +f 4216/7500/3551 4305/7043/3551 4691/7042/3551 4211/7691/3551 +f 4191/7693/3552 4712/7033/3552 4484/6459/3552 4194/7575/3552 +f 4227/7502/3553 4311/6476/3553 4715/6475/3553 4224/7689/3553 +f 4218/7784/3554 4718/7295/3554 4719/7294/3554 4226/7659/3554 +f 4219/7783/3555 4722/6437/3555 4723/6436/3555 4222/7747/3555 +f 4220/7782/3556 4726/6469/3556 4307/6443/3556 4228/7501/3556 +f 4184/7570/3557 4476/7006/3557 5059/7009/3557 4182/7584/3557 +f 4176/7785/3558 5062/7051/3558 5055/7054/3558 4178/7721/3558 +f 4175/7787/3559 5058/7055/3559 5051/7058/3559 4180/7687/3559 +f 4174/7789/3560 5054/7015/3560 4478/7018/3560 4183/7571/3560 +f 4238/7505/3561 4317/6491/3561 4729/6490/3561 4229/7871/3561 +f 4235/7663/3562 4728/7061/3562 4733/7060/3562 4230/7870/3562 +f 4233/7745/3563 4732/6319/3563 4737/6318/3563 4231/7869/3563 +f 4237/7576/3564 4736/6484/3564 4313/6315/3564 4239/7881/3564 +f 4249/7507/3565 4323/6506/3565 4741/6505/3565 4240/7868/3565 +f 4246/7665/3566 4740/7287/3566 4745/7286/3566 4241/7867/3566 +f 4248/7635/3567 4744/6323/3567 4749/6322/3567 4242/7866/3567 +f 4244/7771/3568 4748/6499/3568 4319/6433/3568 4250/7506/3568 +f 4260/7510/3569 4329/6525/3569 4753/6524/3569 4251/7865/3569 +f 4255/7715/3570 4752/7279/3570 4757/7278/3570 4252/7864/3570 +f 4257/7637/3571 4756/6327/3571 4761/6326/3571 4253/7863/3571 +f 4259/7606/3572 4760/6516/3572 4325/6515/3572 4261/7882/3572 +f 4293/7511/3573 4335/6544/3573 4765/6543/3573 4284/7862/3573 +f 4290/7667/3574 4764/7271/3574 4769/7270/3574 4285/7861/3574 +f 4288/7743/3575 4768/6331/3575 4773/6330/3575 4286/7860/3575 +f 4292/7071/3576 4772/6535/3576 4331/6534/3576 4294/7072/3576 +f 4282/7514/3577 4341/6563/3577 4777/6562/3577 4273/7859/3577 +f 4279/7713/3578 4776/7263/3578 4781/7262/3578 4274/7858/3578 +f 4281/7639/3579 4780/6335/3579 4785/6334/3579 4275/7857/3579 +f 4277/7769/3580 4784/6554/3580 4337/6553/3580 4283/7883/3580 +f 4271/7516/3581 4347/6582/3581 4789/6581/3581 4262/7856/3581 +f 4270/7594/3582 4788/7255/3582 4793/7254/3582 4263/7855/3582 +f 4266/7741/3583 4792/6339/3583 4797/6338/3583 4264/7854/3583 +f 4268/7609/3584 4796/6573/3584 4343/6572/3584 4272/7515/3584 +f 5064/7519/3585 4353/6601/3585 4801/6600/3585 5073/7853/3585 +f 5067/7711/3586 4800/7247/3586 4805/7246/3586 5072/7852/3586 +f 5065/7586/3587 4804/6343/3587 4809/6342/3587 5071/7851/3587 +f 5069/7767/3588 4808/6592/3588 4349/6591/3588 5063/7884/3588 +f 3854/7521/3589 4359/6620/3589 4813/6619/3589 3822/7850/3589 +f 3843/7669/3590 4812/7239/3590 4817/7238/3590 3826/7849/3590 +f 3836/7739/3591 4816/6347/3591 4821/6346/3591 3829/7848/3591 +f 3850/7578/3592 4820/6611/3592 4355/6610/3592 3857/7520/3592 +f 3892/7524/3593 4365/6639/3593 4825/6638/3593 3861/7847/3593 +f 3882/7671/3594 4824/7231/3594 4829/7230/3594 3864/7846/3594 +f 3889/7641/3595 4828/6351/3595 4833/6350/3595 3868/7845/3595 +f 3875/7765/3596 4832/6630/3596 4361/6629/3596 3896/7885/3596 +f 3931/7526/3597 4371/6658/3597 4837/6657/3597 3899/7844/3597 +f 3913/7709/3598 4836/7223/3598 4841/7222/3598 3903/7843/3598 +f 3920/7643/3599 4840/6355/3599 4845/6354/3599 3906/7842/3599 +f 3927/7611/3600 4844/6649/3600 4367/6648/3600 3934/7525/3600 +f 3969/7529/3601 4377/6676/3601 4849/6675/3601 3938/7841/3601 +f 3959/7673/3602 4848/7215/3602 4853/7214/3602 3941/7840/3602 +f 3952/7737/3603 4852/6359/3603 4857/6358/3603 3945/7839/3603 +f 3966/7613/3604 4856/6667/3604 4373/6666/3604 3973/7886/3604 +f 4007/7531/3605 4383/6694/3605 4861/6693/3605 3976/7838/3605 +f 3997/7707/3606 4860/7207/3606 4865/7206/3606 3980/7837/3606 +f 4004/7645/3607 4864/6363/3607 4869/6362/3607 3983/7836/3607 +f 3990/7763/3608 4868/6685/3608 4379/6684/3608 4008/7530/3608 +f 4018/7534/3609 4389/6713/3609 4873/6712/3609 4009/7835/3609 +f 4017/7596/3610 4872/7199/3610 4877/7198/3610 4010/7834/3610 +f 4013/7735/3611 4876/6367/3611 4881/6366/3611 4011/7833/3611 +f 4015/7615/3612 4880/6704/3612 4385/6703/3612 4019/7887/3612 +f 4029/7536/3613 4395/6732/3613 4885/6731/3613 4020/7832/3613 +f 4026/7705/3614 4884/7191/3614 4889/7190/3614 4021/7831/3614 +f 4028/7588/3615 4888/6371/3615 4893/6370/3615 4022/7830/3615 +f 4024/7761/3616 4892/6723/3616 4391/6722/3616 4030/7535/3616 +f 4040/7539/3617 4401/6751/3617 4897/6750/3617 4031/7829/3617 +f 4037/7675/3618 4896/7183/3618 4901/7182/3618 4032/7828/3618 +f 4035/7733/3619 4900/6375/3619 4905/6374/3619 4033/7827/3619 +f 4039/7580/3620 4904/6742/3620 4397/6741/3620 4041/7888/3620 +f 4051/7541/3621 4407/6770/3621 4909/6769/3621 4042/7826/3621 +f 4048/7677/3622 4908/7175/3622 4913/7174/3622 4043/7825/3622 +f 4050/7647/3623 4912/6379/3623 4917/6378/3623 4044/7824/3623 +f 4046/7759/3624 4916/6761/3624 4403/6760/3624 4052/7540/3624 +f 4062/7544/3625 4413/6789/3625 4921/6788/3625 4053/7823/3625 +f 4057/7703/3626 4920/7167/3626 4925/7166/3626 4054/7822/3626 +f 4059/7649/3627 4924/6383/3627 4929/6382/3627 4055/7821/3627 +f 4061/7617/3628 4928/6780/3628 4409/6779/3628 4063/7889/3628 +f 4073/7546/3629 4419/6808/3629 4933/6807/3629 4064/7820/3629 +f 4070/7679/3630 4932/7159/3630 4937/7158/3630 4065/7819/3630 +f 4068/7731/3631 4936/6387/3631 4941/6386/3631 4066/7818/3631 +f 4072/7619/3632 4940/6799/3632 4415/6798/3632 4074/7545/3632 +f 4084/7549/3633 4425/6827/3633 4945/6826/3633 4075/7817/3633 +f 4081/7701/3634 4944/7151/3634 4949/7150/3634 4076/7816/3634 +f 4083/7651/3635 4948/6391/3635 4953/6390/3635 4077/7815/3635 +f 4079/7757/3636 4952/6818/3636 4421/6817/3636 4085/7890/3636 +f 4095/7551/3637 4431/6846/3637 4957/6845/3637 4086/7814/3637 +f 4094/7598/3638 4956/7143/3638 4961/7142/3638 4087/7813/3638 +f 4090/7729/3639 4960/6395/3639 4965/6394/3639 4088/7812/3639 +f 4092/7621/3640 4964/6837/3640 4427/6836/3640 4096/7550/3640 +f 4106/7554/3641 4437/6865/3641 4969/6864/3641 4097/7811/3641 +f 4103/7699/3642 4968/7135/3642 4973/7134/3642 4098/7810/3642 +f 4105/7590/3643 4972/6399/3643 4977/6398/3643 4099/7809/3643 +f 4101/7755/3644 4976/6856/3644 4433/6855/3644 4107/7891/3644 +f 4117/7556/3645 4443/6884/3645 4981/6883/3645 4108/7808/3645 +f 4114/7681/3646 4980/7127/3646 4985/7126/3646 4109/7807/3646 +f 4112/7727/3647 4984/6403/3647 4989/6402/3647 4110/7806/3647 +f 4116/7582/3648 4988/6875/3648 4439/6874/3648 4118/7555/3648 +f 4128/7559/3649 4449/6903/3649 4993/6902/3649 4119/7805/3649 +f 4125/7683/3650 4992/7119/3650 4997/7118/3650 4120/7804/3650 +f 4127/7653/3651 4996/6407/3651 5001/6406/3651 4121/7803/3651 +f 4123/7753/3652 5000/6894/3652 4445/6893/3652 4129/7892/3652 +f 4139/7561/3653 4455/6922/3653 5005/6921/3653 4130/7802/3653 +f 4134/7697/3654 5004/7111/3654 5009/7110/3654 4131/7801/3654 +f 4136/7655/3655 5008/6411/3655 5013/6410/3655 4132/7800/3655 +f 4138/7623/3656 5012/6913/3656 4451/6912/3656 4140/7560/3656 +f 4150/7564/3657 4461/6941/3657 5017/6940/3657 4141/7799/3657 +f 4147/7685/3658 5016/7103/3658 5021/7102/3658 4142/7798/3658 +f 4145/7725/3659 5020/6415/3659 5025/6414/3659 4143/7797/3659 +f 4149/7625/3660 5024/6932/3660 4457/6931/3660 4151/7893/3660 +f 4161/7566/3661 4467/6960/3661 5029/6959/3661 4152/7796/3661 +f 4158/7695/3662 5028/7095/3662 5033/7094/3662 4153/7795/3662 +f 4160/7657/3663 5032/6419/3663 5037/6418/3663 4154/7794/3663 +f 4156/7751/3664 5036/6951/3664 4463/6950/3664 4162/7565/3664 +f 4172/7569/3665 4473/6979/3665 5041/6978/3665 4163/7793/3665 +f 4171/7600/3666 5040/7087/3666 5045/7086/3666 4164/7792/3666 +f 4167/7723/3667 5044/6423/3667 5049/6422/3667 4165/7791/3667 +f 4169/7627/3668 5048/6970/3668 4469/6969/3668 4173/7894/3668 +f 4483/7572/3669 4003/7029/3669 3796/7032/3669 4297/7493/3669 4295/6446/3669 4482/6445/3669 +f 4767/6336/3670 4288/7743/3670 4286/7860/3670 4774/6333/3670 +f 4763/7264/3671 4290/7667/3671 4285/7861/3671 4770/7261/3671 +f 4334/6564/3672 4293/7511/3672 4284/7862/3672 4766/6561/3672 +f 4621/7404/3673 4289/7668/3673 4284/7862/3673 4765/6543/3673 +f 4557/7448/3674 4287/7744/3674 4285/7861/3674 4769/7270/3674 +f 4493/7406/3675 4291/7608/3675 4286/7860/3675 4773/6330/3675 +f 4768/6331/3676 4288/7743/3676 4287/7744/3676 4557/7448/3676 +f 4764/7271/3677 4290/7667/3677 4289/7668/3677 4621/7404/3677 +f 4772/6535/3678 4292/7071/3678 4291/7608/3678 4493/7406/3678 +f 4783/6574/3679 4277/7769/3679 4283/7883/3679 4338/6571/3679 +f 4779/6340/3680 4281/7639/3680 4275/7857/3680 4786/6337/3680 +f 4775/7256/3681 4279/7713/3681 4274/7858/3681 4782/7253/3681 +f 4340/6583/3682 4282/7514/3682 4273/7859/3682 4778/6580/3682 +f 4623/7426/3683 4278/7714/3683 4273/7859/3683 4777/6562/3683 +f 4559/7402/3684 4280/7640/3684 4274/7858/3684 4781/7262/3684 +f 4495/7398/3685 4276/7770/3685 4275/7857/3685 4785/6334/3685 +f 4784/6554/3686 4277/7769/3686 4276/7770/3686 4495/7398/3686 +f 4776/7263/3687 4279/7713/3687 4278/7714/3687 4623/7426/3687 +f 4780/6335/3688 4281/7639/3688 4280/7640/3688 4559/7402/3688 +f 4795/6593/3689 4268/7609/3689 4272/7515/3689 4344/6590/3689 +f 4791/6344/3690 4266/7741/3690 4264/7854/3690 4798/6341/3690 +f 4787/7248/3691 4270/7594/3691 4263/7855/3691 4794/7245/3691 +f 4346/6602/3692 4271/7516/3692 4262/7856/3692 4790/6599/3692 +f 4625/7400/3693 4269/7595/3693 4262/7856/3693 4789/6581/3693 +f 4561/7396/3694 4265/7742/3694 4263/7855/3694 4793/7254/3694 +f 4497/7474/3695 4267/7610/3695 4264/7854/3695 4797/6338/3695 +f 4792/6339/3696 4266/7741/3696 4265/7742/3696 4561/7396/3696 +f 4796/6573/3697 4268/7609/3697 4267/7610/3697 4497/7474/3697 +f 4788/7255/3698 4270/7594/3698 4269/7595/3698 4625/7400/3698 +f 4759/6536/3699 4259/7606/3699 4261/7882/3699 4326/6533/3699 +f 4755/6332/3700 4257/7637/3700 4253/7863/3700 4762/6329/3700 +f 4751/7272/3701 4255/7715/3701 4252/7864/3701 4758/7269/3701 +f 4328/6545/3702 4260/7510/3702 4251/7865/3702 4754/6542/3702 +f 4619/7424/3703 4254/7716/3703 4251/7865/3703 4753/6524/3703 +f 4555/7408/3704 4256/7638/3704 4252/7864/3704 4757/7278/3704 +f 4491/7472/3705 4258/7607/3705 4253/7863/3705 4761/6326/3705 +f 4752/7279/3706 4255/7715/3706 4254/7716/3706 4619/7424/3706 +f 4756/6327/3707 4257/7637/3707 4256/7638/3707 4555/7408/3707 +f 4760/6516/3708 4259/7606/3708 4258/7607/3708 4491/7472/3708 +f 4747/6517/3709 4244/7771/3709 4250/7506/3709 4320/6514/3709 +f 4743/6328/3710 4248/7635/3710 4242/7866/3710 4750/6325/3710 +f 4739/7280/3711 4246/7665/3711 4241/7867/3711 4746/7277/3711 +f 4322/6526/3712 4249/7507/3712 4240/7868/3712 4742/6523/3712 +f 4617/7414/3713 4245/7666/3713 4240/7868/3713 4741/6505/3713 +f 4553/7300/3714 4247/7636/3714 4241/7867/3714 4745/7286/3714 +f 4489/7410/3715 4243/7772/3715 4242/7866/3715 4749/6322/3715 +f 4748/6499/3716 4244/7771/3716 4243/7772/3716 4489/7410/3716 +f 4740/7287/3717 4246/7665/3717 4245/7666/3717 4617/7414/3717 +f 4744/6323/3718 4248/7635/3718 4247/7636/3718 4553/7300/3718 +f 4735/6500/3719 4237/7576/3719 4239/7881/3719 4314/6434/3719 +f 4731/6324/3720 4233/7745/3720 4231/7869/3720 4738/6321/3720 +f 4727/7288/3721 4235/7663/3721 4230/7870/3721 4734/7285/3721 +f 4316/6507/3722 4238/7505/3722 4229/7871/3722 4730/6504/3722 +f 4615/7302/3723 4234/7664/3723 4229/7871/3723 4729/6490/3723 +f 4551/7412/3724 4232/7746/3724 4230/7870/3724 4733/7060/3724 +f 4487/7064/3725 4236/7577/3725 4231/7869/3725 4737/6318/3725 +f 4732/6319/3726 4233/7745/3726 4232/7746/3726 4551/7412/3726 +f 4728/7061/3727 4235/7663/3727 4234/7664/3727 4615/7302/3727 +f 4736/6484/3728 4237/7576/3728 4236/7577/3728 4487/7064/3728 +f 4725/6485/3729 4220/7782/3729 4228/7501/3729 4308/6316/3729 +f 4721/6320/3730 4219/7783/3730 4222/7747/3730 4724/6317/3730 +f 4717/7062/3731 4218/7784/3731 4226/7659/3731 4720/7059/3731 +f 4310/6492/3732 4227/7502/3732 4224/7689/3732 4716/6489/3732 +f 4673/7301/3733 4223/7690/3733 4218/7784/3733 4717/7062/3733 +f 4609/7411/3734 4225/7660/3734 4219/7783/3734 4721/6320/3734 +f 4545/7063/3735 4221/7748/3735 4220/7782/3735 4725/6485/3735 +f 4724/6317/3736 4222/7747/3736 4221/7748/3736 4545/7063/3736 +f 4716/6489/3737 4224/7689/3737 4223/7690/3737 4673/7301/3737 +f 4720/7059/3738 4226/7659/3738 4225/7660/3738 4609/7411/3738 +f 4304/6477/3739 4216/7500/3739 4211/7691/3739 4692/6474/3739 +f 4693/7296/3740 4207/7781/3740 4213/7661/3740 4696/7293/3740 +f 4701/6470/3741 4209/7775/3741 4217/7877/3741 4302/6444/3741 +f 4697/6438/3742 4208/7778/3742 4215/7629/3742 4700/6435/3742 +f 4675/7317/3743 4210/7692/3743 4207/7781/3743 4693/7296/3743 +f 4611/7417/3744 4212/7662/3744 4208/7778/3744 4697/6438/3744 +f 4547/7313/3745 4214/7630/3745 4209/7775/3745 4701/6470/3745 +f 4692/6474/3746 4211/7691/3746 4210/7692/3746 4675/7317/3746 +f 4696/7293/3747 4213/7661/3747 4212/7662/3747 4611/7417/3747 +f 4700/6435/3748 4215/7629/3748 4214/7630/3748 4547/7313/3748 +f 4689/7034/3749 4196/7780/3749 4205/7880/3749 4299/6460/3749 +f 4687/7895/3750 4204/7602/3750 4197/7878/3750 4686/7896/3750 +f 4681/7290/3751 4198/7774/3751 4200/7876/3751 4684/7291/3751 +f 4679/7632/3752 4202/7631/3752 4206/7873/3752 4296/7897/3752 +f 4677/7068/3753 4203/7605/3753 4196/7780/3753 4689/7034/3753 +f 4613/7316/3754 4199/7720/3754 4197/7777/3754 4685/7298/3754 +f 4549/7470/3755 4201/7634/3755 4198/7774/3755 4681/7290/3755 +f 4684/7291/3756 4200/7717/3756 4199/7720/3756 4613/7316/3756 +f 4680/6447/3757 4202/7631/3757 4201/7634/3757 4549/7470/3757 +f 4688/7067/3758 4204/7602/3758 4203/7605/3758 4677/7068/3758 +f 4711/7016/3759 4191/7693/3759 4194/7575/3759 4485/7017/3759 +f 4707/7056/3760 4193/7592/3760 4185/7790/3760 4714/7057/3760 +f 4703/7052/3761 4189/7749/3761 4186/7788/3761 4710/7053/3761 +f 4481/7007/3762 4195/7872/3762 4187/7786/3762 4706/7008/3762 +f 4669/7065/3763 4190/7694/3763 4185/7790/3763 4713/7066/3763 +f 4605/7315/3764 4192/7593/3764 4186/7788/3764 4709/7292/3764 +f 4541/7469/3765 4188/7750/3765 4187/7786/3765 4705/6448/3765 +f 4704/7289/3766 4189/7749/3766 4188/7750/3766 4541/7469/3766 +f 4712/7033/3767 4191/7693/3767 4190/7694/3767 4669/7065/3767 +f 4708/7297/3768 4193/7592/3768 4192/7593/3768 4605/7315/3768 +f 5053/6997/3769 4174/7789/3769 4183/7571/3769 4479/6998/3769 +f 5057/7078/3770 4175/7787/3770 4180/7687/3770 5052/7079/3770 +f 5061/6426/3771 4176/7785/3771 4178/7721/3771 5056/6427/3771 +f 4475/6988/3772 4184/7570/3772 4182/7584/3772 5060/6989/3772 +f 4671/7322/3773 4179/7688/3773 4174/7789/3773 5053/6997/3773 +f 4607/7468/3774 4177/7722/3774 4175/7787/3774 5057/7078/3774 +f 4543/7320/3775 4181/7585/3775 4176/7785/3775 5061/6426/3775 +f 5056/6427/3776 4178/7721/3776 4177/7722/3776 4607/7468/3776 +f 5052/7079/3777 4180/7687/3777 4179/7688/3777 4671/7322/3777 +f 5060/6989/3778 4182/7584/3778 4181/7585/3778 4543/7320/3778 +f 5047/6990/3779 4169/7627/3779 4173/7894/3779 4470/6987/3779 +f 5043/6428/3780 4167/7723/3780 4165/7791/3780 5050/6425/3780 +f 5039/7080/3781 4171/7600/3781 4164/7792/3781 5046/7077/3781 +f 4472/6999/3782 4172/7569/3782 4163/7793/3782 5042/6996/3782 +f 4667/7328/3783 4170/7601/3783 4163/7793/3783 5041/6978/3783 +f 4603/7324/3784 4166/7724/3784 4164/7792/3784 5045/7086/3784 +f 4539/7492/3785 4168/7628/3785 4165/7791/3785 5049/6422/3785 +f 5044/6423/3786 4167/7723/3786 4166/7724/3786 4603/7324/3786 +f 5048/6970/3787 4169/7627/3787 4168/7628/3787 4539/7492/3787 +f 5040/7087/3788 4171/7600/3788 4170/7601/3788 4667/7328/3788 +f 5035/6971/3789 4156/7751/3789 4162/7565/3789 4464/6968/3789 +f 5031/6424/3790 4160/7657/3790 4154/7794/3790 5038/6421/3790 +f 5027/7088/3791 4158/7695/3791 4153/7795/3791 5034/7085/3791 +f 4466/6980/3792 4161/7566/3792 4152/7796/3792 5030/6977/3792 +f 4665/7444/3793 4157/7696/3793 4152/7796/3793 5029/6959/3793 +f 4601/7330/3794 4159/7658/3794 4153/7795/3794 5033/7094/3794 +f 4537/7326/3795 4155/7752/3795 4154/7794/3795 5037/6418/3795 +f 5036/6951/3796 4156/7751/3796 4155/7752/3796 4537/7326/3796 +f 5028/7095/3797 4158/7695/3797 4157/7696/3797 4665/7444/3797 +f 5032/6419/3798 4160/7657/3798 4159/7658/3798 4601/7330/3798 +f 5023/6952/3799 4149/7625/3799 4151/7893/3799 4458/6949/3799 +f 5019/6420/3800 4145/7725/3800 4143/7797/3800 5026/6417/3800 +f 5015/7096/3801 4147/7685/3801 4142/7798/3801 5022/7093/3801 +f 4460/6961/3802 4150/7564/3802 4141/7799/3802 5018/6958/3802 +f 4663/7332/3803 4146/7686/3803 4141/7799/3803 5017/6940/3803 +f 4599/7466/3804 4144/7726/3804 4142/7798/3804 5021/7102/3804 +f 4535/7334/3805 4148/7626/3805 4143/7797/3805 5025/6414/3805 +f 5020/6415/3806 4145/7725/3806 4144/7726/3806 4599/7466/3806 +f 5016/7103/3807 4147/7685/3807 4146/7686/3807 4663/7332/3807 +f 5024/6932/3808 4149/7625/3808 4148/7626/3808 4535/7334/3808 +f 5011/6933/3809 4138/7623/3809 4140/7560/3809 4452/6930/3809 +f 5007/6416/3810 4136/7655/3810 4132/7800/3810 5014/6413/3810 +f 5003/7104/3811 4134/7697/3811 4131/7801/3811 5010/7101/3811 +f 4454/6942/3812 4139/7561/3812 4130/7802/3812 5006/6939/3812 +f 4661/7442/3813 4133/7698/3813 4130/7802/3813 5005/6921/3813 +f 4597/7336/3814 4135/7656/3814 4131/7801/3814 5009/7110/3814 +f 4533/7490/3815 4137/7624/3815 4132/7800/3815 5013/6410/3815 +f 5004/7111/3816 4134/7697/3816 4133/7698/3816 4661/7442/3816 +f 5008/6411/3817 4136/7655/3817 4135/7656/3817 4597/7336/3817 +f 5012/6913/3818 4138/7623/3818 4137/7624/3818 4533/7490/3818 +f 4999/6914/3819 4123/7753/3819 4129/7892/3819 4446/6911/3819 +f 4995/6412/3820 4127/7653/3820 4121/7803/3820 5002/6409/3820 +f 4991/7112/3821 4125/7683/3821 4120/7804/3821 4998/7109/3821 +f 4448/6923/3822 4128/7559/3822 4119/7805/3822 4994/6920/3822 +f 4659/7340/3823 4124/7684/3823 4119/7805/3823 4993/6902/3823 +f 4595/7464/3824 4126/7654/3824 4120/7804/3824 4997/7118/3824 +f 4531/7338/3825 4122/7754/3825 4121/7803/3825 5001/6406/3825 +f 5000/6894/3826 4123/7753/3826 4122/7754/3826 4531/7338/3826 +f 4992/7119/3827 4125/7683/3827 4124/7684/3827 4659/7340/3827 +f 4996/6407/3828 4127/7653/3828 4126/7654/3828 4595/7464/3828 +f 4987/6895/3829 4116/7582/3829 4118/7555/3829 4440/6892/3829 +f 4983/6408/3830 4112/7727/3830 4110/7806/3830 4990/6405/3830 +f 4979/7120/3831 4114/7681/3831 4109/7807/3831 4986/7117/3831 +f 4442/6904/3832 4117/7556/3832 4108/7808/3832 4982/6901/3832 +f 4657/7440/3833 4113/7682/3833 4108/7808/3833 4981/6883/3833 +f 4593/7342/3834 4111/7728/3834 4109/7807/3834 4985/7126/3834 +f 4529/7488/3835 4115/7583/3835 4110/7806/3835 4989/6402/3835 +f 4984/6403/3836 4112/7727/3836 4111/7728/3836 4593/7342/3836 +f 4980/7127/3837 4114/7681/3837 4113/7682/3837 4657/7440/3837 +f 4988/6875/3838 4116/7582/3838 4115/7583/3838 4529/7488/3838 +f 4975/6876/3839 4101/7755/3839 4107/7891/3839 4434/6873/3839 +f 4971/6404/3840 4105/7590/3840 4099/7809/3840 4978/6401/3840 +f 4967/7128/3841 4103/7699/3841 4098/7810/3841 4974/7125/3841 +f 4436/6885/3842 4106/7554/3842 4097/7811/3842 4970/6882/3842 +f 4655/7346/3843 4102/7700/3843 4097/7811/3843 4969/6864/3843 +f 4591/7462/3844 4104/7591/3844 4098/7810/3844 4973/7134/3844 +f 4527/7344/3845 4100/7756/3845 4099/7809/3845 4977/6398/3845 +f 4976/6856/3846 4101/7755/3846 4100/7756/3846 4527/7344/3846 +f 4968/7135/3847 4103/7699/3847 4102/7700/3847 4655/7346/3847 +f 4972/6399/3848 4105/7590/3848 4104/7591/3848 4591/7462/3848 +f 4963/6857/3849 4092/7621/3849 4096/7550/3849 4428/6854/3849 +f 4959/6400/3850 4090/7729/3850 4088/7812/3850 4966/6397/3850 +f 4955/7136/3851 4094/7598/3851 4087/7813/3851 4962/7133/3851 +f 4430/6866/3852 4095/7551/3852 4086/7814/3852 4958/6863/3852 +f 4653/7352/3853 4093/7599/3853 4086/7814/3853 4957/6845/3853 +f 4589/7348/3854 4089/7730/3854 4087/7813/3854 4961/7142/3854 +f 4525/7486/3855 4091/7622/3855 4088/7812/3855 4965/6394/3855 +f 4960/6395/3856 4090/7729/3856 4089/7730/3856 4589/7348/3856 +f 4964/6837/3857 4092/7621/3857 4091/7622/3857 4525/7486/3857 +f 4956/7143/3858 4094/7598/3858 4093/7599/3858 4653/7352/3858 +f 4951/6838/3859 4079/7757/3859 4085/7890/3859 4422/6835/3859 +f 4947/6396/3860 4083/7651/3860 4077/7815/3860 4954/6393/3860 +f 4943/7144/3861 4081/7701/3861 4076/7816/3861 4950/7141/3861 +f 4424/6847/3862 4084/7549/3862 4075/7817/3862 4946/6844/3862 +f 4651/7438/3863 4080/7702/3863 4075/7817/3863 4945/6826/3863 +f 4587/7354/3864 4082/7652/3864 4076/7816/3864 4949/7150/3864 +f 4523/7350/3865 4078/7758/3865 4077/7815/3865 4953/6390/3865 +f 4952/6818/3866 4079/7757/3866 4078/7758/3866 4523/7350/3866 +f 4944/7151/3867 4081/7701/3867 4080/7702/3867 4651/7438/3867 +f 4948/6391/3868 4083/7651/3868 4082/7652/3868 4587/7354/3868 +f 4939/6819/3869 4072/7619/3869 4074/7545/3869 4416/6816/3869 +f 4935/6392/3870 4068/7731/3870 4066/7818/3870 4942/6389/3870 +f 4931/7152/3871 4070/7679/3871 4065/7819/3871 4938/7149/3871 +f 4418/6828/3872 4073/7546/3872 4064/7820/3872 4934/6825/3872 +f 4649/7356/3873 4069/7680/3873 4064/7820/3873 4933/6807/3873 +f 4585/7460/3874 4067/7732/3874 4065/7819/3874 4937/7158/3874 +f 4521/7358/3875 4071/7620/3875 4066/7818/3875 4941/6386/3875 +f 4936/6387/3876 4068/7731/3876 4067/7732/3876 4585/7460/3876 +f 4932/7159/3877 4070/7679/3877 4069/7680/3877 4649/7356/3877 +f 4940/6799/3878 4072/7619/3878 4071/7620/3878 4521/7358/3878 +f 4927/6800/3879 4061/7617/3879 4063/7889/3879 4410/6797/3879 +f 4923/6388/3880 4059/7649/3880 4055/7821/3880 4930/6385/3880 +f 4919/7160/3881 4057/7703/3881 4054/7822/3881 4926/7157/3881 +f 4412/6809/3882 4062/7544/3882 4053/7823/3882 4922/6806/3882 +f 4647/7436/3883 4056/7704/3883 4053/7823/3883 4921/6788/3883 +f 4583/7360/3884 4058/7650/3884 4054/7822/3884 4925/7166/3884 +f 4519/7484/3885 4060/7618/3885 4055/7821/3885 4929/6382/3885 +f 4920/7167/3886 4057/7703/3886 4056/7704/3886 4647/7436/3886 +f 4924/6383/3887 4059/7649/3887 4058/7650/3887 4583/7360/3887 +f 4928/6780/3888 4061/7617/3888 4060/7618/3888 4519/7484/3888 +f 4915/6781/3889 4046/7759/3889 4052/7540/3889 4404/6778/3889 +f 4911/6384/3890 4050/7647/3890 4044/7824/3890 4918/6381/3890 +f 4907/7168/3891 4048/7677/3891 4043/7825/3891 4914/7165/3891 +f 4406/6790/3892 4051/7541/3892 4042/7826/3892 4910/6787/3892 +f 4645/7364/3893 4047/7678/3893 4042/7826/3893 4909/6769/3893 +f 4581/7458/3894 4049/7648/3894 4043/7825/3894 4913/7174/3894 +f 4517/7362/3895 4045/7760/3895 4044/7824/3895 4917/6378/3895 +f 4916/6761/3896 4046/7759/3896 4045/7760/3896 4517/7362/3896 +f 4908/7175/3897 4048/7677/3897 4047/7678/3897 4645/7364/3897 +f 4912/6379/3898 4050/7647/3898 4049/7648/3898 4581/7458/3898 +f 4903/6762/3899 4039/7580/3899 4041/7888/3899 4398/6759/3899 +f 4899/6380/3900 4035/7733/3900 4033/7827/3900 4906/6377/3900 +f 4895/7176/3901 4037/7675/3901 4032/7828/3901 4902/7173/3901 +f 4400/6771/3902 4040/7539/3902 4031/7829/3902 4898/6768/3902 +f 4643/7434/3903 4036/7676/3903 4031/7829/3903 4897/6750/3903 +f 4579/7366/3904 4034/7734/3904 4032/7828/3904 4901/7182/3904 +f 4515/7482/3905 4038/7581/3905 4033/7827/3905 4905/6374/3905 +f 4900/6375/3906 4035/7733/3906 4034/7734/3906 4579/7366/3906 +f 4896/7183/3907 4037/7675/3907 4036/7676/3907 4643/7434/3907 +f 4904/6742/3908 4039/7580/3908 4038/7581/3908 4515/7482/3908 +f 4891/6743/3909 4024/7761/3909 4030/7535/3909 4392/6740/3909 +f 4887/6376/3910 4028/7588/3910 4022/7830/3910 4894/6373/3910 +f 4883/7184/3911 4026/7705/3911 4021/7831/3911 4890/7181/3911 +f 4394/6752/3912 4029/7536/3912 4020/7832/3912 4886/6749/3912 +f 4641/7370/3913 4025/7706/3913 4020/7832/3913 4885/6731/3913 +f 4577/7456/3914 4027/7589/3914 4021/7831/3914 4889/7190/3914 +f 4513/7368/3915 4023/7762/3915 4022/7830/3915 4893/6370/3915 +f 4892/6723/3916 4024/7761/3916 4023/7762/3916 4513/7368/3916 +f 4884/7191/3917 4026/7705/3917 4025/7706/3917 4641/7370/3917 +f 4888/6371/3918 4028/7588/3918 4027/7589/3918 4577/7456/3918 +f 4879/6724/3919 4015/7615/3919 4019/7887/3919 4386/6721/3919 +f 4875/6372/3920 4013/7735/3920 4011/7833/3920 4882/6369/3920 +f 4871/7192/3921 4017/7596/3921 4010/7834/3921 4878/7189/3921 +f 4388/6733/3922 4018/7534/3922 4009/7835/3922 4874/6730/3922 +f 4639/7376/3923 4016/7597/3923 4009/7835/3923 4873/6712/3923 +f 4575/7372/3924 4012/7736/3924 4010/7834/3924 4877/7198/3924 +f 4511/7480/3925 4014/7616/3925 4011/7833/3925 4881/6366/3925 +f 4876/6367/3926 4013/7735/3926 4012/7736/3926 4575/7372/3926 +f 4880/6704/3927 4015/7615/3927 4014/7616/3927 4511/7480/3927 +f 4872/7199/3928 4017/7596/3928 4016/7597/3928 4639/7376/3928 +f 4867/6705/3929 3990/7763/3929 4008/7530/3929 4380/6702/3929 +f 4863/6368/3930 4004/7645/3930 3983/7836/3930 4870/6365/3930 +f 4859/7200/3931 3997/7707/3931 3980/7837/3931 4866/7197/3931 +f 4382/6714/3932 4007/7531/3932 3976/7838/3932 4862/6711/3932 +f 4637/7432/3933 3994/7708/3933 3976/7838/3933 4861/6693/3933 +f 4573/7378/3934 4001/7646/3934 3980/7837/3934 4865/7206/3934 +f 4509/7374/3935 3987/7764/3935 3983/7836/3935 4869/6362/3935 +f 4868/6685/3936 3990/7763/3936 3987/7764/3936 4509/7374/3936 +f 4860/7207/3937 3997/7707/3937 3994/7708/3937 4637/7432/3937 +f 4864/6363/3938 4004/7645/3938 4001/7646/3938 4573/7378/3938 +f 4855/6686/3939 3966/7613/3939 3973/7886/3939 4374/6683/3939 +f 4851/6364/3940 3952/7737/3940 3945/7839/3940 4858/6361/3940 +f 4847/7208/3941 3959/7673/3941 3941/7840/3941 4854/7205/3941 +f 4376/6695/3942 3969/7529/3942 3938/7841/3942 4850/6692/3942 +f 4635/7380/3943 3955/7674/3943 3938/7841/3943 4849/6675/3943 +f 4571/7454/3944 3948/7738/3944 3941/7840/3944 4853/7214/3944 +f 4507/7382/3945 3962/7614/3945 3945/7839/3945 4857/6358/3945 +f 4852/6359/3946 3952/7737/3946 3948/7738/3946 4571/7454/3946 +f 4848/7215/3947 3959/7673/3947 3955/7674/3947 4635/7380/3947 +f 4856/6667/3948 3966/7613/3948 3962/7614/3948 4507/7382/3948 +f 4843/6668/3949 3927/7611/3949 3934/7525/3949 4368/6665/3949 +f 4839/6360/3950 3920/7643/3950 3906/7842/3950 4846/6357/3950 +f 4835/7216/3951 3913/7709/3951 3903/7843/3951 4842/7213/3951 +f 4370/6677/3952 3931/7526/3952 3899/7844/3952 4838/6674/3952 +f 4633/7430/3953 3910/7710/3953 3899/7844/3953 4837/6657/3953 +f 4569/7384/3954 3917/7644/3954 3903/7843/3954 4841/7222/3954 +f 4505/7478/3955 3924/7612/3955 3906/7842/3955 4845/6354/3955 +f 4836/7223/3956 3913/7709/3956 3910/7710/3956 4633/7430/3956 +f 4840/6355/3957 3920/7643/3957 3917/7644/3957 4569/7384/3957 +f 4844/6649/3958 3927/7611/3958 3924/7612/3958 4505/7478/3958 +f 4831/6650/3959 3875/7765/3959 3896/7885/3959 4362/6647/3959 +f 4827/6356/3960 3889/7641/3960 3868/7845/3960 4834/6353/3960 +f 4823/7224/3961 3882/7671/3961 3864/7846/3961 4830/7221/3961 +f 4364/6659/3962 3892/7524/3962 3861/7847/3962 4826/6656/3962 +f 4631/7388/3963 3878/7672/3963 3861/7847/3963 4825/6638/3963 +f 4567/7452/3964 3885/7642/3964 3864/7846/3964 4829/7230/3964 +f 4503/7386/3965 3871/7766/3965 3868/7845/3965 4833/6350/3965 +f 4832/6630/3966 3875/7765/3966 3871/7766/3966 4503/7386/3966 +f 4824/7231/3967 3882/7671/3967 3878/7672/3967 4631/7388/3967 +f 4828/6351/3968 3889/7641/3968 3885/7642/3968 4567/7452/3968 +f 4819/6631/3969 3850/7578/3969 3857/7520/3969 4356/6628/3969 +f 4815/6352/3970 3836/7739/3970 3829/7848/3970 4822/6349/3970 +f 4811/7232/3971 3843/7669/3971 3826/7849/3971 4818/7229/3971 +f 4358/6640/3972 3854/7521/3972 3822/7850/3972 4814/6637/3972 +f 4629/7428/3973 3840/7670/3973 3822/7850/3973 4813/6619/3973 +f 4565/7390/3974 3833/7740/3974 3826/7849/3974 4817/7238/3974 +f 4501/7476/3975 3847/7579/3975 3829/7848/3975 4821/6346/3975 +f 4816/6347/3976 3836/7739/3976 3833/7740/3976 4565/7390/3976 +f 4812/7239/3977 3843/7669/3977 3840/7670/3977 4629/7428/3977 +f 4820/6611/3978 3850/7578/3978 3847/7579/3978 4501/7476/3978 +f 4807/6612/3979 5069/7767/3979 5063/7884/3979 4350/6609/3979 +f 4803/6348/3980 5065/7586/3980 5071/7851/3980 4810/6345/3980 +f 4799/7240/3981 5067/7711/3981 5072/7852/3981 4806/7237/3981 +f 4352/6621/3982 5064/7519/3982 5073/7853/3982 4802/6618/3982 +f 4627/7394/3983 5068/7712/3983 5073/7853/3983 4801/6600/3983 +f 4563/7450/3984 5066/7587/3984 5072/7852/3984 4805/7246/3984 +f 4499/7392/3985 5070/7768/3985 5071/7851/3985 4809/6342/3985 +f 4808/6592/3986 5069/7767/3986 5070/7768/3986 4499/7392/3986 +f 4800/7247/3987 5067/7711/3987 5068/7712/3987 4627/7394/3987 +f 4804/6343/3988 5065/7586/3988 5066/7587/3988 4563/7450/3988 +f 5212/7898/3989 5211/7899/3989 5074/6467/3989 5075/6466/3989 5106/7900/3989 +f 5213/7901/3990 5187/7902/3990 5106/7900/3990 5075/6466/3990 5076/6483/3990 +f 5079/6532/3991 5080/6551/3991 5107/5570/3991 5193/5569/3991 5215/7903/3991 +f 5217/7904/3992 5195/5571/3992 5107/5570/3992 5080/6551/3992 5081/6570/3992 +f 5084/6627/3993 5220/7905/3993 5219/7906/3993 5083/6608/3993 +f 5085/6646/3994 5222/7907/3994 5220/7905/3994 5084/6627/3994 +f 5086/5659/3995 5223/5658/3995 5222/7907/3995 5085/6646/3995 +f 5173/7908/3996 5225/7909/3996 5088/6701/3996 5089/6720/3996 +f 5226/7910/3997 5173/7908/3997 5089/6720/3997 5090/6739/3997 +f 5174/7911/3998 5175/7912/3998 5092/6777/3998 5093/6796/3998 +f 5176/7913/3999 5174/7911/3999 5093/6796/3999 5094/6815/3999 +f 5177/7914/4000 5176/7913/4000 5094/6815/4000 5095/6834/4000 +f 5179/7915/4001 5178/7916/4001 5097/6872/4001 5098/6891/4001 +f 5180/7917/4002 5179/7915/4002 5098/6891/4002 5099/6910/4002 +f 5181/7918/4003 5182/7919/4003 5101/6948/4003 5102/6967/4003 +f 5103/6986/4004 5108/5572/4004 5183/5574/4004 5181/7918/4004 5102/6967/4004 +f 5184/7920/4005 5185/5575/4005 5108/5572/4005 5103/6986/4005 5104/7005/4005 +f 5187/7902/2783 5189/7921/2783 5106/7900/2783 +f 5210/7922/4006 5184/7920/4006 5104/7005/4006 5105/7024/4006 5209/7923/4006 5207/7924/4006 5208/7925/4006 5115/7926/4006 +f 5211/7899/4007 5216/7927/4007 5116/7928/4007 5214/7929/4007 5209/7923/4007 5105/7024/4007 5074/6467/4007 +f 5189/7921/2783 5212/7898/2783 5106/7900/2783 +f 5249/7930/4008 5180/7917/4008 5099/6910/4008 5100/6929/4008 5247/7931/4008 5248/7932/4008 5123/7933/4008 +f 5253/7934/4009 5254/7935/4009 5247/7931/4009 5100/6929/4009 5101/6948/4009 5182/7919/4009 5250/7936/4009 5124/7937/4009 +f 5282/7938/4010 5177/7914/4010 5095/6834/4010 5096/6853/4010 5280/7939/4010 5279/7940/4010 5281/7941/4010 5131/7942/4010 +f 5280/7939/4011 5096/6853/4011 5097/6872/4011 5178/7916/4011 5285/7943/4011 5132/7944/4011 5287/7945/4011 +f 5311/7946/4012 5226/7910/4012 5090/6739/4012 5091/6758/4012 5309/7947/4012 5308/7948/4012 5139/7949/4012 +f 5313/7950/4013 5312/7951/4013 5309/7947/4013 5091/6758/4013 5092/6777/4013 5175/7912/4013 5314/7952/4013 5140/7953/4013 +f 5088/6701/4014 5225/7909/4014 5241/7954/4014 5148/7955/4014 5238/7956/4014 5232/5661/4014 5087/5660/4014 +f 5266/7957/4015 5217/7904/4015 5081/6570/4015 5082/6589/4015 5265/7958/4015 5264/7959/4015 5155/7960/4015 +f 5271/7961/4016 5270/7962/4016 5265/7958/4016 5082/6589/4016 5083/6608/4016 5219/7906/4016 5268/7963/4016 5156/7964/4016 +f 5164/7965/4017 5290/7966/4017 5213/7901/4017 5076/6483/4017 5077/6498/4017 5163/7967/4017 +f 5297/7968/4018 5298/7969/4018 5296/7970/4018 5163/7967/4018 5077/6498/4018 5078/6513/4018 5292/7971/4018 5293/7972/4018 5165/7973/4018 +f 5215/7903/4019 5292/7971/4019 5078/6513/4019 5079/6532/4019 +f 5187/7974/2806 5213/7975/2806 5290/7976/2806 5321/7977/2806 5239/7978/2806 5216/7979/2806 5211/7980/2806 5212/7981/2806 5189/7982/2806 +o WBL_b1.004_Cylinder.035 +usemtl besi_roda +s off +f 5466/7983/4020 5672/7984/4020 5665/7985/4020 5658/7986/4020 5651/7987/4020 5644/7988/4020 5637/7989/4020 5630/7990/4020 5623/7991/4020 5616/7992/4020 5609/7993/4020 5602/7994/4020 5595/7995/4020 5588/7996/4020 5581/7997/4020 5574/7998/4020 5567/7999/4020 5560/8000/4020 5553/8001/4020 5546/8002/4020 5539/8003/4020 5532/8004/4020 5525/8005/4020 5518/8006/4020 5511/8007/4020 5504/8008/4020 5497/8009/4020 5491/8010/4020 5486/8011/4020 5481/8012/4020 5476/8013/4020 5471/8014/4020 +f 6785/8015/4021 6783/8016/4021 6784/8017/4021 6786/8018/4021 +f 6781/8019/4022 6785/8015/4022 6786/8018/4022 6782/8020/4022 +f 6793/8021/4023 6791/8022/4023 6792/8023/4023 6794/8024/4023 +f 6789/8025/4024 6793/8021/4024 6794/8024/4024 6790/8026/4024 +f 6801/8027/4025 6799/8028/4025 6800/8029/4025 6802/8030/4025 +f 6797/8031/4026 6801/8027/4026 6802/8030/4026 6798/8032/4026 +f 6809/8033/4027 6807/8034/4027 6808/8035/4027 6810/8036/4027 +f 6805/8037/4028 6809/8033/4028 6810/8036/4028 6806/8038/4028 +f 6817/8039/4029 6815/8040/4029 6816/8041/4029 6818/8042/4029 +f 6813/8043/4030 6817/8039/4030 6818/8042/4030 6814/8044/4030 +f 6825/8045/4031 6823/8046/4031 6824/8047/4031 6826/8048/4031 +f 6821/8049/4032 6825/8045/4032 6826/8048/4032 6822/8050/4032 +f 6833/8051/4033 6831/8052/4033 6832/8053/4033 6834/8054/4033 +f 6829/8055/4034 6833/8051/4034 6834/8054/4034 6830/8056/4034 +f 6864/8057/4035 6865/8058/4035 6779/8059/4035 +f 6779/8059/4036 6867/8060/4036 6864/8057/4036 +f 6906/8061/4037 6909/8062/4037 6886/8063/4037 6788/8064/4037 6781/8065/4037 6782/8066/4037 6787/8067/4037 6880/8068/4037 +f 6788/8069/4038 6888/8070/4038 6911/8071/4038 6912/8072/4038 6785/8073/4038 6781/8074/4038 +f 6915/8075/4039 6914/8076/4039 6882/8077/4039 6787/8078/4039 6782/8079/4039 6786/8080/4039 +f 6935/8081/4040 6939/8082/4040 6925/8083/4040 6796/8084/4040 6789/8085/4040 6790/8086/4040 6795/8087/4040 6920/8088/4040 +f 6796/8089/4041 6922/8090/4041 6941/8091/4041 6947/8092/4041 6793/8093/4041 6789/8094/4041 +f 6949/8095/4042 6948/8096/4042 6921/8097/4042 6795/8098/4042 6790/8099/4042 6794/8100/4042 +f 6971/8101/4043 6973/8102/4043 6972/8103/4043 6959/8104/4043 6804/8105/4043 6797/8106/4043 6798/8107/4043 6803/8108/4043 6953/8109/4043 +f 6804/8110/4044 6957/8111/4044 6974/8112/4044 6975/8113/4044 6801/8114/4044 6797/8115/4044 +f 6979/8116/4045 6978/8117/4045 6954/8118/4045 6803/8119/4045 6798/8120/4045 6802/8121/4045 +f 6995/8122/4046 6996/8123/4046 6985/8124/4046 6812/8125/4046 6805/8126/4046 6806/8127/4046 6811/8128/4046 6980/8129/4046 +f 6812/8130/4047 6986/8131/4047 6997/8132/4047 6902/8133/4047 6809/8134/4047 6805/8135/4047 +f 6901/8136/4048 6998/8137/4048 6983/8138/4048 6811/8139/4048 6806/8140/4048 6810/8141/4048 +f 6923/8142/4049 6924/8143/4049 6910/8144/4049 6820/8145/4049 6813/8146/4049 6814/8147/4049 6819/8148/4049 6905/8149/4049 +f 6820/8150/4050 6913/8151/4050 6928/8152/4050 6929/8153/4050 6817/8154/4050 6813/8155/4050 +f 6934/8156/4051 6931/8157/4051 6908/8158/4051 6819/8159/4051 6814/8160/4051 6818/8161/4051 +f 6950/8162/4052 6955/8163/4052 6943/8164/4052 6828/8165/4052 6821/8166/4052 6822/8167/4052 6827/8168/4052 6936/8169/4052 +f 6828/8170/4053 6940/8171/4053 6956/8172/4053 6958/8173/4053 6825/8174/4053 6821/8175/4053 +f 6961/8176/4054 6960/8177/4054 6938/8178/4054 6827/8179/4054 6822/8180/4054 6826/8181/4054 +f 6982/8182/4055 6988/8183/4055 6987/8184/4055 6969/8185/4055 6837/8186/4055 6829/8187/4055 6830/8188/4055 6836/8189/4055 6835/8190/4055 6968/8191/4055 +f 6837/8192/4056 6965/8193/4056 6990/8194/4056 6992/8195/4056 6833/8196/4056 6829/8197/4056 +f 6994/8198/4057 6993/8199/4057 6962/8200/4057 6836/8201/4057 6830/8202/4057 6834/8203/4057 +f 6838/8204/4058 6879/8205/4058 6881/8206/4058 6886/8207/4058 6909/8208/4058 +f 6859/8209/4058 6885/8210/4058 6962/8211/4058 6993/8212/4058 6911/8213/4058 6888/8214/4058 6883/8215/4058 6884/8216/4058 6861/8217/4058 +f 6982/8218/4058 6968/8219/4058 6970/8220/4058 6839/8221/4058 +f 6937/8222/4059 6942/8223/4059 6840/8224/4059 6950/8225/4059 6936/8226/4059 +f 6987/8227/4059 6839/8221/4059 6970/8220/4059 6969/8228/4059 +f 6964/8229/4059 6887/8230/4059 6865/8231/4059 6864/8232/4059 6867/8233/4059 6889/8234/4059 6938/8235/4059 6960/8236/4059 6990/8237/4059 6965/8238/4059 +f 6931/8239/4060 6956/8240/4060 6940/8241/4060 6891/8242/4060 6892/8243/4060 6894/8244/4060 6895/8245/4060 6908/8246/4060 +f 6841/8247/4060 6923/8248/4060 6905/8249/4060 6907/8250/4060 +f 6942/8223/4060 6943/8251/4060 6955/8252/4060 6840/8224/4060 +f 6998/8253/4061 6928/8254/4061 6913/8255/4061 6897/8256/4061 6845/8257/4061 6898/8258/4061 6983/8259/4061 +f 6842/8260/4061 6995/8261/4061 6980/8262/4061 6981/8263/4061 6984/8264/4061 +f 6910/8265/4061 6924/8266/4061 6841/8247/4061 6907/8250/4061 6904/8267/4061 +f 6842/8260/4062 6984/8264/4062 6985/8268/4062 6996/8269/4062 +f 6849/8270/4062 6954/8271/4062 6978/8272/4062 6997/8273/4062 6986/8274/4062 6847/8275/4062 6846/8276/4062 6848/8277/4062 +f 6971/8278/4062 6953/8279/4062 6951/8280/4062 6843/8281/4062 +f 6977/8282/4063 6992/8283/4063 6990/8284/4063 6960/8285/4063 6961/8286/4063 6944/8287/4063 6866/8288/4063 6863/8289/4063 6862/8290/4063 +f 6839/8291/4063 6987/8292/4063 6988/8293/4063 +f 6900/8294/4064 6989/8295/4064 6870/8296/4064 6871/8297/4064 6918/8298/4064 6929/8299/4064 6928/8300/4064 6998/8301/4064 6901/8302/4064 +f 6924/8303/4036 6923/8304/4036 6841/8305/4036 +f 6946/8306/4065 6958/8307/4065 6956/8308/4065 6931/8309/4065 6934/8310/4065 6917/8311/4065 6916/8312/4065 6869/8313/4065 6868/8314/4065 6945/8315/4065 +f 6955/8316/4036 6950/8317/4036 6840/8318/4036 +f 6973/8319/4066 6971/8320/4066 6843/8321/4066 +f 6991/8322/4067 6903/8323/4067 6902/8324/4067 6997/8325/4067 6978/8326/4067 6979/8327/4067 6966/8328/4067 6963/8329/4067 6873/8330/4067 6872/8331/4067 +f 6842/8332/4036 6996/8333/4036 6995/8334/4036 +f 6959/8335/4068 6972/8336/4068 6843/8281/4068 6951/8280/4068 6952/8337/4068 +f 6852/8338/4069 6921/8339/4069 6948/8340/4069 6974/8341/4069 6957/8342/4069 6850/8343/4069 6851/8344/4069 +f 6935/8345/4069 6920/8346/4069 6919/8347/4069 6926/8348/4069 6844/8349/4069 +f 6926/8348/4070 6925/8350/4070 6939/8351/4070 6844/8349/4070 +f 6879/8352/4070 6838/8353/4070 6906/8354/4070 6880/8355/4070 +f 6882/8356/4070 6914/8357/4070 6941/8358/4070 6922/8359/4070 6854/8360/4070 6853/8361/4070 6855/8362/4070 6876/8363/4070 6857/8364/4070 6856/8365/4070 +f 6972/8366/4071 6973/8319/4071 6843/8321/4071 +f 6975/8367/4071 6974/8368/4071 6948/8369/4071 6949/8370/4071 6930/8371/4071 6927/8372/4071 6875/8373/4071 6874/8374/4071 6967/8375/4071 +f 6838/8376/4036 6909/8377/4036 6906/8378/4036 +f 6912/8379/4072 6911/8380/4072 6993/8381/4072 6994/8382/4072 6976/8383/4072 6858/8384/4072 6860/8385/4072 6890/8386/4072 6899/8387/4072 +f 6844/8388/4036 6939/8389/4036 6935/8390/4036 +f 6947/8391/4073 6941/8392/4073 6914/8393/4073 6915/8394/4073 6896/8395/4073 6893/8396/4073 6877/8397/4073 6878/8398/4073 6932/8399/4073 6933/8400/4073 +f 6988/8293/4074 6982/8401/4074 6839/8291/4074 +f 7027/8402/4075 7025/8403/4075 6860/8404/4075 6858/8405/4075 +f 7034/8406/4036 7032/8407/4036 6862/8408/4036 6863/8409/4036 +f 6863/8409/4036 6866/8410/4036 7035/8411/4036 7034/8406/4036 +f 6869/8412/4036 7028/8413/4036 7036/8414/4036 6868/8415/4036 +f 7017/8416/4036 7031/8417/4036 6871/8418/4036 6870/8419/4036 +f 7038/8420/4036 7021/8421/4036 6872/8422/4036 6873/8423/4036 +f 6875/8424/4036 7039/8425/4036 7009/8426/4036 6874/8427/4036 +f 6877/8428/4076 7040/8429/4076 7041/8430/4076 6878/8431/4076 +f 7025/8403/4036 7042/8432/4036 6890/8433/4036 6860/8404/4036 +f 7043/8434/4036 7040/8429/4036 6877/8428/4036 6893/8435/4036 +f 7045/8436/4036 7043/8434/4036 6893/8435/4036 6896/8437/4036 +f 7042/8432/4036 7049/8438/4036 6899/8439/4036 6890/8433/4036 +f 7057/8440/4036 7039/8425/4036 6875/8424/4036 6927/8441/4036 +f 7061/8442/4036 7057/8440/4036 6927/8441/4036 6930/8443/4036 +f 7062/8444/4036 7063/8445/4036 6933/8446/4036 6932/8447/4036 +f 7041/8430/4036 7062/8444/4036 6932/8447/4036 6878/8431/4036 +f 7008/8448/4035 7038/8420/4035 6873/8423/4035 6963/8449/4035 +f 7007/8450/4036 7008/8448/4036 6963/8449/4036 6966/8451/4036 +f 6874/8427/4036 7009/8426/4036 7010/8452/4036 6967/8453/4036 +f 7016/8454/4036 7017/8416/4036 6870/8419/4036 6989/8455/4036 +f 7018/8456/4036 7016/8454/4036 6989/8455/4036 6900/8457/4036 +f 7020/8458/4036 7019/8459/4036 6903/8460/4036 6991/8461/4036 +f 7021/8421/4036 7020/8458/4036 6991/8461/4036 6872/8422/4036 +f 6916/8462/4036 7029/8463/4036 7028/8413/4036 6869/8412/4036 +f 6917/8464/4077 7030/8465/4077 7029/8463/4077 6916/8462/4077 +f 7031/8417/4036 7033/8466/4036 6918/8467/4036 6871/8418/4036 +f 6866/8410/4036 6944/8468/4036 7048/8469/4036 7035/8411/4036 +f 6945/8470/4076 7051/8471/4076 7050/8472/4076 6946/8473/4076 +f 7036/8414/4078 7051/8471/4078 6945/8470/4078 6868/8415/4078 +f 6858/8405/4079 6976/8474/4079 7064/8475/4079 7027/8402/4079 +f 7032/8407/4036 7065/8476/4036 6977/8477/4036 6862/8408/4036 +f 7064/8478/4058 7068/8479/4058 7056/8480/4058 7049/8481/4058 7042/8482/4058 7025/8483/4058 7027/8484/4058 +f 7048/8485/4059 7053/8486/4059 7073/8487/4059 7065/8488/4059 7032/8489/4059 7034/8490/4059 7035/8491/4059 +f 7030/8492/4060 7037/8493/4060 7060/8494/4060 7050/8495/4060 7051/8496/4060 7036/8497/4060 7028/8498/4060 7029/8499/4060 +f 7018/8500/4061 7022/8501/4061 7046/8502/4061 7033/8503/4061 7031/8504/4061 7017/8505/4061 7016/8506/4061 +f 7007/8507/4062 7011/8508/4062 7024/8509/4062 7019/8510/4062 7020/8511/4062 7021/8512/4062 7038/8513/4062 7008/8514/4062 +f 7072/8515/4080 7073/8516/4080 7053/8517/4080 7058/8518/4080 7003/8519/4080 7002/8520/4080 +f 7059/8521/4081 7060/8522/4081 7037/8523/4081 7044/8524/4081 7005/8525/4081 +f 7006/8526/4082 7015/8527/4082 7013/8528/4082 +f 7026/8529/4083 7024/8530/4083 7011/8531/4083 7012/8532/4083 7000/8533/4083 +f 7047/8534/4084 7046/8535/4084 7022/8536/4084 7023/8537/4084 7001/8538/4084 +f 7061/8539/4069 7066/8540/4069 7014/8541/4069 7010/8542/4069 7009/8543/4069 7039/8544/4069 7057/8545/4069 +f 7043/8546/4070 7045/8547/4070 7052/8548/4070 7069/8549/4070 7063/8550/4070 7062/8551/4070 7041/8552/4070 7040/8553/4070 +f 7066/8554/4085 7067/8555/4085 7006/8526/4085 7013/8528/4085 7014/8556/4085 +f 7074/8557/4086 7069/8558/4086 7052/8559/4086 7054/8560/4086 6999/8561/4086 +f 7055/8562/4087 7056/8563/4087 7068/8564/4087 7070/8565/4087 7004/8566/4087 +f 7002/8520/4088 7071/8567/4088 7072/8515/4088 +f 7076/8568/4036 7077/8569/4036 7078/8570/4036 7079/8571/4036 7080/8572/4036 7081/8573/4036 7075/8574/4036 +f 7090/8575/4036 7083/8576/4036 7082/8577/4036 7089/8578/4036 +f 7089/8578/4036 7082/8577/4036 7084/8579/4036 7091/8580/4036 +f 7091/8580/4036 7084/8579/4036 7085/8581/4036 7092/8582/4036 +f 7092/8582/4036 7085/8581/4036 7086/8583/4036 7093/8584/4036 +f 7093/8584/4036 7086/8583/4036 7087/8585/4036 7094/8586/4036 +f 7094/8586/4036 7087/8585/4036 7088/8587/4036 7095/8588/4036 +f 7095/8588/4036 7088/8587/4036 7083/8576/4036 7090/8575/4036 +f 7075/8574/4089 7090/8575/4089 7089/8578/4089 7076/8568/4089 +f 7076/8568/4090 7089/8578/4090 7091/8580/4090 7077/8569/4090 +f 7077/8569/4091 7091/8580/4091 7092/8582/4091 7078/8570/4091 +f 7078/8570/4092 7092/8582/4092 7093/8584/4092 7079/8571/4092 +f 7079/8571/4093 7093/8584/4093 7094/8586/4093 7080/8572/4093 +f 7080/8572/4094 7094/8586/4094 7095/8588/4094 7081/8573/4094 +f 7081/8573/4095 7095/8588/4095 7090/8575/4095 7075/8574/4095 +f 7097/8589/4096 7100/8590/4096 6784/8017/4096 6783/8016/4096 +f 7102/8591/4097 7104/8592/4097 6792/8023/4097 6791/8022/4097 +f 7106/8593/4098 7108/8594/4098 6800/8029/4098 6799/8028/4098 +f 7110/8595/4099 7111/8596/4099 6808/8035/4099 6807/8034/4099 +f 7115/8597/4100 7117/8598/4100 6816/8041/4100 6815/8040/4100 +f 7099/8599/4101 7098/8600/4101 6824/8047/4101 6823/8046/4101 +f 7107/8601/4102 7105/8602/4102 6832/8053/4102 6831/8052/4102 +f 7054/8603/4039 7052/8604/4039 7045/8605/4039 6896/8606/4039 6915/8075/4039 6786/8080/4039 6784/8607/4039 7100/8608/4039 7114/8609/4039 +f 7049/8610/4038 7056/8611/4038 7055/8612/4038 7116/8613/4038 7097/8614/4038 6783/8615/4038 6785/8073/4038 6912/8072/4038 6899/8616/4038 +f 7067/8617/4042 7066/8618/4042 7061/8619/4042 6930/8620/4042 6949/8095/4042 6794/8100/4042 6792/8621/4042 7104/8622/4042 7123/8623/4042 +f 7063/8624/4041 7069/8625/4041 7074/8626/4041 7126/8627/4041 7102/8628/4041 6791/8629/4041 6793/8093/4041 6947/8092/4041 6933/8630/4041 +f 7108/8631/4045 7127/8632/4045 7012/8633/4045 7011/8634/4045 7007/8635/4045 6966/8636/4045 6979/8116/4045 6802/8121/4045 6800/8637/4045 +f 7010/8638/4044 7014/8639/4044 7013/8640/4044 7015/8641/4044 7132/8642/4044 7106/8643/4044 6799/8644/4044 6801/8114/4044 6975/8113/4044 6967/8645/4044 +f 7111/8646/4048 7133/8647/4048 7023/8648/4048 7022/8649/4048 7018/8650/4048 6900/8651/4048 6901/8136/4048 6810/8141/4048 6808/8652/4048 +f 7019/8653/4047 7024/8654/4047 7026/8655/4047 7131/8656/4047 7110/8657/4047 6807/8658/4047 6809/8134/4047 6902/8133/4047 6903/8659/4047 +f 7117/8660/4051 7130/8661/4051 7044/8662/4051 7037/8663/4051 7030/8664/4051 6917/8665/4051 6934/8156/4051 6818/8161/4051 6816/8666/4051 +f 7033/8667/4050 7046/8668/4050 7047/8669/4050 7125/8670/4050 7115/8671/4050 6815/8672/4050 6817/8154/4050 6929/8153/4050 6918/8673/4050 +f 7058/8674/4054 7053/8675/4054 7048/8676/4054 6944/8677/4054 6961/8176/4054 6826/8181/4054 6824/8678/4054 7098/8679/4054 7096/8680/4054 +f 7050/8681/4053 7060/8682/4053 7059/8683/4053 7101/8684/4053 7099/8685/4053 6823/8686/4053 6825/8174/4053 6958/8173/4053 6946/8687/4053 +f 7070/8688/4057 7068/8689/4057 7064/8690/4057 6976/8691/4057 6994/8198/4057 6834/8203/4057 6832/8692/4057 7105/8693/4057 7103/8694/4057 +f 7065/8695/4056 7073/8696/4056 7072/8697/4056 7071/8698/4056 7109/8699/4056 7107/8700/4056 6831/8701/4056 6833/8196/4056 6992/8195/4056 6977/8702/4056 +f 7114/8703/4103 7112/8704/4103 7113/8705/4103 6999/8706/4103 7054/8707/4103 +f 7118/8708/4103 7116/8709/4103 7055/8710/4103 7004/8711/4103 +f 7103/8712/4104 7119/8713/4104 7118/8708/4104 7004/8711/4104 7070/8714/4104 +f 7120/8715/4104 7109/8716/4104 7071/8717/4104 7002/8718/4104 +f 7005/8719/4105 7121/8720/4105 7122/8721/4105 7101/8722/4105 7059/8723/4105 +f 7096/8724/4105 7124/8725/4105 7120/8715/4105 7002/8718/4105 7003/8726/4105 7058/8727/4105 +f 7001/8728/4106 7129/8729/4106 7128/8730/4106 7125/8731/4106 7047/8732/4106 +f 7130/8733/4106 7121/8720/4106 7005/8719/4106 7044/8734/4106 +f 7134/8735/4107 7135/8736/4107 7131/8737/4107 7026/8738/4107 7000/8739/4107 +f 7133/8740/4107 7129/8729/4107 7001/8728/4107 7023/8741/4107 +f 7127/8742/4108 7134/8735/4108 7000/8739/4108 7012/8743/4108 +f 7136/8744/4108 7132/8745/4108 7015/8746/4108 7006/8747/4108 +f 7123/8748/4109 7137/8749/4109 7136/8744/4109 7006/8747/4109 7067/8750/4109 +f 7113/8751/4109 7126/8752/4109 7074/8753/4109 6999/8754/4109 +f 7119/8755/4110 7082/8577/4110 7083/8576/4110 7112/8756/4110 7114/8757/4110 7100/8758/4110 7097/8759/4110 7116/8760/4110 7118/8761/4110 +f 7109/8762/4111 7120/8763/4111 7124/8764/4111 7084/8579/4111 7082/8577/4111 7119/8755/4111 7103/8765/4111 7105/8766/4111 7107/8767/4111 +f 7101/8768/4112 7122/8769/4112 7085/8581/4112 7084/8579/4112 7124/8764/4112 7096/8770/4112 7098/8771/4112 7099/8772/4112 +f 7121/8773/4113 7130/8774/4113 7117/8775/4113 7115/8776/4113 7125/8777/4113 7128/8778/4113 7086/8583/4113 7085/8581/4113 7122/8769/4113 +f 7129/8779/4114 7133/8780/4114 7111/8781/4114 7110/8782/4114 7131/8783/4114 7135/8784/4114 7087/8585/4114 7086/8583/4114 7128/8778/4114 +f 7134/8785/4115 7127/8786/4115 7108/8787/4115 7106/8788/4115 7132/8789/4115 7136/8790/4115 7137/8791/4115 7088/8587/4115 7087/8585/4115 7135/8784/4115 +f 7126/8792/4116 7113/8793/4116 7112/8756/4116 7083/8576/4116 7088/8587/4116 7137/8791/4116 7123/8794/4116 7104/8795/4116 7102/8796/4116 +usemtl Material.006 +f 5981/8797/4117 5478/8798/4117 5483/8799/4117 5987/8800/4117 5985/8801/4117 5980/8802/4117 +f 6396/8803/4118 6409/8804/4118 6404/8805/4118 6393/8806/4118 +f 6410/8807/4119 6421/8808/4119 6416/8809/4119 6403/8810/4119 +f 6422/8811/4120 6433/8812/4120 6428/8813/4120 6415/8814/4120 +f 6434/8815/4121 6445/8816/4121 6440/8817/4121 6427/8818/4121 +f 6446/8819/4122 6457/8820/4122 6452/8821/4122 6439/8822/4122 +f 6458/8823/4123 6469/8824/4123 6464/8825/4123 6451/8826/4123 +f 6470/8827/4124 6481/8828/4124 6476/8829/4124 6463/8830/4124 +f 6482/8831/4125 6493/8832/4125 6488/8833/4125 6475/8834/4125 +f 6494/8835/4126 6505/8836/4126 6500/8837/4126 6487/8838/4126 +f 6506/8839/4127 6517/8840/4127 6512/8841/4127 6499/8842/4127 +f 6518/8843/4128 6529/8844/4128 6524/8845/4128 6511/8846/4128 +f 6530/8847/4129 6541/8848/4129 6536/8849/4129 6523/8850/4129 +f 6542/8851/4130 6553/8852/4130 6548/8853/4130 6535/8854/4130 +f 6554/8855/4131 6565/8856/4131 6560/8857/4131 6547/8858/4131 +f 6566/8859/4132 6577/8860/4132 6572/8861/4132 6559/8862/4132 +f 6578/8863/4133 6589/8864/4133 6584/8865/4133 6571/8866/4133 +f 6590/8867/4134 6601/8868/4134 6596/8869/4134 6583/8870/4134 +f 6602/8871/4135 6613/8872/4135 6608/8873/4135 6595/8874/4135 +f 6614/8875/4136 6625/8876/4136 6620/8877/4136 6607/8878/4136 +f 6626/8879/4137 6637/8880/4137 6632/8881/4137 6619/8882/4137 +f 6638/8883/4138 6649/8884/4138 6644/8885/4138 6631/8886/4138 +f 6650/8887/4139 6661/8888/4139 6656/8889/4139 6643/8890/4139 +f 6662/8891/4140 6673/8892/4140 6668/8893/4140 6655/8894/4140 +f 6674/8895/4141 6685/8896/4141 6680/8897/4141 6667/8898/4141 +f 6686/8899/4142 6697/8900/4142 6692/8901/4142 6679/8902/4142 +f 6698/8903/4143 6709/8904/4143 6704/8905/4143 6691/8906/4143 +f 6710/8907/4144 6721/8908/4144 6716/8909/4144 6703/8910/4144 +f 6722/8911/4145 6733/8912/4145 6728/8913/4145 6715/8914/4145 +f 5987/8915/4146 5483/8916/4146 5488/8917/4146 5993/8918/4146 5991/8919/4146 5986/8920/4146 +f 6372/8921/4147 6395/8922/4147 6394/8923/4147 6369/8924/4147 +f 5975/8925/4148 5473/8926/4148 5478/8927/4148 5981/8928/4148 5979/8929/4148 5974/8930/4148 +f 6154/8931/4149 5967/8932/4149 6352/8933/4149 6377/8934/4149 +f 5468/8935/4150 5467/8936/4150 5472/8937/4150 5473/8938/4150 +f 5467/8939/4151 5466/7983/4151 5471/8014/4151 5472/8940/4151 +f 5972/8941/4152 5470/8942/4152 5678/8943/4152 6158/8944/4152 6156/8945/4152 5971/8946/4152 +f 5475/8947/4153 5474/8948/4153 5469/8949/4153 5470/8950/4153 +f 5474/8951/4154 6747/8952/4154 6746/8953/4154 5469/8954/4154 +f 5974/8930/4147 5979/8929/4147 6398/8955/4147 6373/8956/4147 +f 5473/8926/4155 5472/8957/4155 5477/8958/4155 5478/8927/4155 +f 5472/8940/4156 5471/8014/4156 5476/8013/4156 5477/8959/4156 +f 6364/8960/4147 6387/8961/4147 5983/8962/4147 5976/8963/4147 +f 5480/8964/4157 5479/8965/4157 5474/8966/4157 5475/8967/4157 +f 5479/8968/4158 6748/8969/4158 6747/8952/4158 5474/8951/4158 +f 5980/8802/4118 5985/8801/4118 6408/8970/4118 6397/8971/4118 +f 5478/8798/4159 5477/8972/4159 5482/8973/4159 5483/8799/4159 +f 5477/8959/4160 5476/8013/4160 5481/8012/4160 5482/8974/4160 +f 6388/8975/4118 6401/8976/4118 5989/8977/4118 5982/8978/4118 +f 5485/8979/4161 5484/8980/4161 5479/8981/4161 5480/8982/4161 +f 5484/8983/4162 6749/8984/4162 6748/8969/4162 5479/8968/4162 +f 5986/8920/4119 5991/8919/4119 6420/8985/4119 6407/8986/4119 +f 5483/8916/4163 5482/8987/4163 5487/8988/4163 5488/8917/4163 +f 5482/8974/4164 5481/8012/4164 5486/8011/4164 5487/8989/4164 +f 6402/8990/4119 6413/8991/4119 5995/8992/4119 5988/8993/4119 +f 5490/8994/4165 5489/8995/4165 5484/8996/4165 5485/8997/4165 +f 5489/8998/4166 6750/8999/4166 6749/8984/4166 5484/8983/4166 +f 5992/9000/4120 5997/9001/4120 6432/9002/4120 6419/9003/4120 +f 5488/9004/4167 5487/9005/4167 5492/9006/4167 5493/9007/4167 +f 5487/8989/4168 5486/8011/4168 5491/8010/4168 5492/9008/4168 +f 6414/9009/4120 6425/9010/4120 6001/9011/4120 5994/9012/4120 +f 5496/9013/4169 5495/9014/4169 5489/9015/4169 5490/9016/4169 +f 5495/9017/4170 6751/9018/4170 6750/8999/4170 5489/8998/4170 +f 5998/9019/4121 6003/9020/4121 6444/9021/4121 6431/9022/4121 +f 5493/9023/4171 5492/9024/4171 5499/9025/4171 5500/9026/4171 +f 5492/9008/4172 5491/8010/4172 5497/8009/4172 5499/9027/4172 +f 6426/9028/4121 6437/9029/4121 6007/9030/4121 6000/9031/4121 +f 5503/9032/4173 5502/9033/4173 5495/9034/4173 5496/9035/4173 +f 5502/9036/4174 6752/9037/4174 6751/9018/4174 5495/9017/4174 +f 6004/9038/4122 6009/9039/4122 6456/9040/4122 6443/9041/4122 +f 5500/9042/4175 5499/9043/4175 5506/9044/4175 5507/9045/4175 +f 5499/9027/4176 5497/8009/4176 5504/8008/4176 5506/9046/4176 +f 6438/9047/4122 6449/9048/4122 6013/9049/4122 6006/9050/4122 +f 5510/9051/4177 5509/9052/4177 5502/9053/4177 5503/9054/4177 +f 5509/9055/4178 6753/9056/4178 6752/9037/4178 5502/9036/4178 +f 6010/9057/4123 6015/9058/4123 6468/9059/4123 6455/9060/4123 +f 5507/9061/4179 5506/9062/4179 5513/9063/4179 5514/9064/4179 +f 5506/9046/4180 5504/8008/4180 5511/8007/4180 5513/9065/4180 +f 6450/9066/4123 6461/9067/4123 6019/9068/4123 6012/9069/4123 +f 5517/9070/4181 5516/9071/4181 5509/9072/4181 5510/9073/4181 +f 5516/9074/4182 6754/9075/4182 6753/9056/4182 5509/9055/4182 +f 6016/9076/4124 6021/9077/4124 6480/9078/4124 6467/9079/4124 +f 5514/9080/4183 5513/9081/4183 5520/9082/4183 5521/9083/4183 +f 5513/9065/4184 5511/8007/4184 5518/8006/4184 5520/9084/4184 +f 6462/9085/4124 6473/9086/4124 6025/9087/4124 6018/9088/4124 +f 5524/9089/4185 5523/9090/4185 5516/9091/4185 5517/9092/4185 +f 5523/9093/4186 6755/9094/4186 6754/9075/4186 5516/9074/4186 +f 6022/9095/4125 6027/9096/4125 6492/9097/4125 6479/9098/4125 +f 5521/9099/4187 5520/9100/4187 5527/9101/4187 5528/9102/4187 +f 5520/9084/4188 5518/8006/4188 5525/8005/4188 5527/9103/4188 +f 6474/9104/4125 6485/9105/4125 6031/9106/4125 6024/9107/4125 +f 5531/9108/4189 5530/9109/4189 5523/9110/4189 5524/9111/4189 +f 5530/9112/4190 6756/9113/4190 6755/9094/4190 5523/9093/4190 +f 6028/9114/4126 6033/9115/4126 6504/9116/4126 6491/9117/4126 +f 5528/9118/4191 5527/9119/4191 5534/9120/4191 5535/9121/4191 +f 5527/9103/4192 5525/8005/4192 5532/8004/4192 5534/9122/4192 +f 6486/9123/4126 6497/9124/4126 6037/9125/4126 6030/9126/4126 +f 5538/9127/4193 5537/9128/4193 5530/9129/4193 5531/9130/4193 +f 5537/9131/4194 6757/9132/4194 6756/9113/4194 5530/9112/4194 +f 6034/9133/4127 6039/9134/4127 6516/9135/4127 6503/9136/4127 +f 5535/9137/4195 5534/9138/4195 5541/9139/4195 5542/9140/4195 +f 5534/9122/4196 5532/8004/4196 5539/8003/4196 5541/9141/4196 +f 6498/9142/4127 6509/9143/4127 6043/9144/4127 6036/9145/4127 +f 5545/9146/4197 5544/9147/4197 5537/9148/4197 5538/9149/4197 +f 5544/9150/4198 6758/9151/4198 6757/9132/4198 5537/9131/4198 +f 6040/9152/4128 6045/9153/4128 6528/9154/4128 6515/9155/4128 +f 5542/9156/4199 5541/9157/4199 5548/9158/4199 5549/9159/4199 +f 5541/9141/4200 5539/8003/4200 5546/8002/4200 5548/9160/4200 +f 6510/9161/4128 6521/9162/4128 6049/9163/4128 6042/9164/4128 +f 5552/9165/4201 5551/9166/4201 5544/9167/4201 5545/9168/4201 +f 5551/9169/4202 6759/9170/4202 6758/9151/4202 5544/9150/4202 +f 6046/9171/4129 6051/9172/4129 6540/9173/4129 6527/9174/4129 +f 5549/9175/4203 5548/9176/4203 5555/9177/4203 5556/9178/4203 +f 5548/9160/4204 5546/8002/4204 5553/8001/4204 5555/9179/4204 +f 6522/9180/4129 6533/9181/4129 6055/9182/4129 6048/9183/4129 +f 5559/9184/4205 5558/9185/4205 5551/9186/4205 5552/9187/4205 +f 5558/9188/4206 6760/9189/4206 6759/9170/4206 5551/9169/4206 +f 6052/9190/4130 6057/9191/4130 6552/9192/4130 6539/9193/4130 +f 5556/9194/4207 5555/9195/4207 5562/9196/4207 5563/9197/4207 +f 5555/9179/4208 5553/8001/4208 5560/8000/4208 5562/9198/4208 +f 6534/9199/4130 6545/9200/4130 6061/9201/4130 6054/9202/4130 +f 5566/9203/4209 5565/9204/4209 5558/9205/4209 5559/9206/4209 +f 5565/9207/4210 6761/9208/4210 6760/9189/4210 5558/9188/4210 +f 6058/9209/4131 6063/9210/4131 6564/9211/4131 6551/9212/4131 +f 5563/9213/4211 5562/9214/4211 5569/9215/4211 5570/9216/4211 +f 5562/9198/4212 5560/8000/4212 5567/7999/4212 5569/9217/4212 +f 6546/9218/4131 6557/9219/4131 6067/9220/4131 6060/9221/4131 +f 5573/9222/4213 5572/9223/4213 5565/9224/4213 5566/9225/4213 +f 5572/9226/4214 6762/9227/4214 6761/9208/4214 5565/9207/4214 +f 6064/9228/4132 6069/9229/4132 6576/9230/4132 6563/9231/4132 +f 5570/9232/4215 5569/9233/4215 5576/9234/4215 5577/9235/4215 +f 5569/9217/4216 5567/7999/4216 5574/7998/4216 5576/9236/4216 +f 6558/9237/4132 6569/9238/4132 6073/9239/4132 6066/9240/4132 +f 5580/9241/4217 5579/9242/4217 5572/9243/4217 5573/9244/4217 +f 5579/9245/4218 6763/9246/4218 6762/9227/4218 5572/9226/4218 +f 6070/9247/4133 6075/9248/4133 6588/9249/4133 6575/9250/4133 +f 5577/9251/4219 5576/9252/4219 5583/9253/4219 5584/9254/4219 +f 5576/9236/4220 5574/7998/4220 5581/7997/4220 5583/9255/4220 +f 6570/9256/4133 6581/9257/4133 6079/9258/4133 6072/9259/4133 +f 5587/9260/4221 5586/9261/4221 5579/9262/4221 5580/9263/4221 +f 5586/9264/4222 6764/9265/4222 6763/9246/4222 5579/9245/4222 +f 6076/9266/4134 6081/9267/4134 6600/9268/4134 6587/9269/4134 +f 5584/9270/4223 5583/9271/4223 5590/9272/4223 5591/9273/4223 +f 5583/9255/4224 5581/7997/4224 5588/7996/4224 5590/9274/4224 +f 6582/9275/4134 6593/9276/4134 6085/9277/4134 6078/9278/4134 +f 5594/9279/4225 5593/9280/4225 5586/9281/4225 5587/9282/4225 +f 5593/9283/4226 6765/9284/4226 6764/9265/4226 5586/9264/4226 +f 6082/9285/4135 6087/9286/4135 6612/9287/4135 6599/9288/4135 +f 5591/9289/4227 5590/9290/4227 5597/9291/4227 5598/9292/4227 +f 5590/9274/4228 5588/7996/4228 5595/7995/4228 5597/9293/4228 +f 6594/9294/4135 6605/9295/4135 6091/9296/4135 6084/9297/4135 +f 5601/9298/4229 5600/9299/4229 5593/9300/4229 5594/9301/4229 +f 5600/9302/4230 6766/9303/4230 6765/9284/4230 5593/9283/4230 +f 6088/9304/4136 6093/9305/4136 6624/9306/4136 6611/9307/4136 +f 5598/9308/4231 5597/9309/4231 5604/9310/4231 5605/9311/4231 +f 5597/9293/4232 5595/7995/4232 5602/7994/4232 5604/9312/4232 +f 6606/9313/4136 6617/9314/4136 6097/9315/4136 6090/9316/4136 +f 5608/9317/4233 5607/9318/4233 5600/9319/4233 5601/9320/4233 +f 5607/9321/4234 6767/9322/4234 6766/9303/4234 5600/9302/4234 +f 6094/9323/4137 6099/9324/4137 6636/9325/4137 6623/9326/4137 +f 5605/9327/4235 5604/9328/4235 5611/9329/4235 5612/9330/4235 +f 5604/9312/4236 5602/7994/4236 5609/7993/4236 5611/9331/4236 +f 6618/9332/4137 6629/9333/4137 6103/9334/4137 6096/9335/4137 +f 5615/9336/4237 5614/9337/4237 5607/9338/4237 5608/9339/4237 +f 5614/9340/4238 6768/9341/4238 6767/9322/4238 5607/9321/4238 +f 6100/9342/4138 6105/9343/4138 6648/9344/4138 6635/9345/4138 +f 5612/9346/4239 5611/9347/4239 5618/9348/4239 5619/9349/4239 +f 5611/9331/4240 5609/7993/4240 5616/7992/4240 5618/9350/4240 +f 6630/9351/4138 6641/9352/4138 6109/9353/4138 6102/9354/4138 +f 5622/9355/4241 5621/9356/4241 5614/9357/4241 5615/9358/4241 +f 5621/9359/4242 6769/9360/4242 6768/9341/4242 5614/9340/4242 +f 6106/9361/4139 6111/9362/4139 6660/9363/4139 6647/9364/4139 +f 5619/9365/4243 5618/9366/4243 5625/9367/4243 5626/9368/4243 +f 5618/9350/4244 5616/7992/4244 5623/7991/4244 5625/9369/4244 +f 6642/9370/4139 6653/9371/4139 6115/9372/4139 6108/9373/4139 +f 5629/9374/4245 5628/9375/4245 5621/9376/4245 5622/9377/4245 +f 5628/9378/4246 6770/9379/4246 6769/9360/4246 5621/9359/4246 +f 6112/9380/4140 6117/9381/4140 6672/9382/4140 6659/9383/4140 +f 5626/9384/4247 5625/9385/4247 5632/9386/4247 5633/9387/4247 +f 5625/9369/4248 5623/7991/4248 5630/7990/4248 5632/9388/4248 +f 6654/9389/4140 6665/9390/4140 6121/9391/4140 6114/9392/4140 +f 5636/9393/4249 5635/9394/4249 5628/9395/4249 5629/9396/4249 +f 5635/9397/4250 6771/9398/4250 6770/9379/4250 5628/9378/4250 +f 6118/9399/4141 6123/9400/4141 6684/9401/4141 6671/9402/4141 +f 5633/9403/4251 5632/9404/4251 5639/9405/4251 5640/9406/4251 +f 5632/9388/4252 5630/7990/4252 5637/7989/4252 5639/9407/4252 +f 6666/9408/4141 6677/9409/4141 6127/9410/4141 6120/9411/4141 +f 5643/9412/4253 5642/9413/4253 5635/9414/4253 5636/9415/4253 +f 5642/9416/4254 6772/9417/4254 6771/9398/4254 5635/9397/4254 +f 6124/9418/4142 6129/9419/4142 6696/9420/4142 6683/9421/4142 +f 5640/9422/4255 5639/9423/4255 5646/9424/4255 5647/9425/4255 +f 5639/9407/4256 5637/7989/4256 5644/7988/4256 5646/9426/4256 +f 6678/9427/4142 6689/9428/4142 6133/9429/4142 6126/9430/4142 +f 5650/9431/4257 5649/9432/4257 5642/9433/4257 5643/9434/4257 +f 5649/9435/4258 6773/9436/4258 6772/9417/4258 5642/9416/4258 +f 6130/9437/4143 6135/9438/4143 6708/9439/4143 6695/9440/4143 +f 5647/9441/4259 5646/9442/4259 5653/9443/4259 5654/9444/4259 +f 5646/9426/4260 5644/7988/4260 5651/7987/4260 5653/9445/4260 +f 6690/9446/4143 6701/9447/4143 6139/9448/4143 6132/9449/4143 +f 5657/9450/4261 5656/9451/4261 5649/9452/4261 5650/9453/4261 +f 5656/9454/4262 6774/9455/4262 6773/9436/4262 5649/9435/4262 +f 6136/9456/4263 6141/9457/4263 6720/9458/4263 6707/9459/4263 +f 5654/9460/4264 5653/9461/4264 5660/9462/4264 5661/9463/4264 +f 5653/9445/4265 5651/7987/4265 5658/7986/4265 5660/9464/4265 +f 6702/9465/4263 6713/9466/4263 6145/9467/4263 6138/9468/4263 +f 5664/9469/4266 5663/9470/4266 5656/9471/4266 5657/9472/4266 +f 5663/9473/4267 6775/9474/4267 6774/9455/4267 5656/9454/4267 +f 6142/9475/4145 6147/9476/4145 6732/9477/4145 6719/9478/4145 +f 5661/9479/4268 5660/9480/4268 5667/9481/4268 5668/9482/4268 +f 5660/9464/4269 5658/7986/4269 5665/7985/4269 5667/9483/4269 +f 6714/9484/4145 6725/9485/4145 6151/9486/4145 6144/9487/4145 +f 5671/9488/4270 5670/9489/4270 5663/9490/4270 5664/9491/4270 +f 5670/9492/4271 6776/9493/4271 6775/9474/4271 5663/9473/4271 +f 6148/9494/4272 6153/9495/4272 6378/9496/4272 6731/9497/4272 +f 5668/9498/4273 5667/9499/4273 5674/9500/4273 5675/9501/4273 +f 5667/9483/4274 5665/7985/4274 5672/7984/4274 5674/9502/4274 +f 6726/9503/4272 6383/9504/4272 6157/9505/4272 6150/9506/4272 +f 5678/9507/4275 5677/9508/4275 5670/9509/4275 5671/9510/4275 +f 5677/9511/4276 6777/9512/4276 6776/9493/4276 5670/9492/4276 +f 5969/9513/4277 5468/8935/4277 5473/8938/4277 5975/9514/4277 5973/9515/4277 5968/9516/4277 +f 5675/9517/4278 5674/9518/4278 5467/9519/4278 5468/9520/4278 +f 5674/9502/4279 5672/7984/4279 5466/7983/4279 5467/8939/4279 +f 6384/9521/4149 6361/9522/4149 5971/8946/4149 6156/8945/4149 +f 5470/8942/4280 5469/9523/4280 5677/9524/4280 5678/8943/4280 +f 5469/8954/4281 6746/8953/4281 6777/9512/4281 5677/9511/4281 +f 6358/9525/4282 6367/9526/4282 6366/9527/4282 6359/9528/4282 +f 6362/9529/4282 6363/9530/4282 5977/9531/4282 5970/9532/4282 +f 5978/9533/4283 5475/8947/4283 5470/8950/4283 5972/9534/4283 5970/9532/4283 5977/9531/4283 +f 6158/9535/4284 5678/9507/4284 5671/9510/4284 6152/9536/4284 6150/9506/4284 6157/9505/4284 +f 5984/9537/4285 5480/8964/4285 5475/8967/4285 5978/9538/4285 5976/8963/4285 5983/8962/4285 +f 6734/9539/4272 6375/9540/4272 6382/9541/4272 6727/9542/4272 +f 6730/9543/4272 6379/9544/4272 6386/9545/4272 6723/9546/4272 +f 6392/9547/4118 6405/9548/4118 6400/9549/4118 6389/9550/4118 +f 6217/9551/4286 6397/8971/4286 6408/8970/4286 6159/9552/4286 +f 6341/9553/4287 6385/9554/4287 6360/9555/4287 6349/9556/4287 +f 6152/9557/4288 5671/9488/4288 5664/9491/4288 6146/9558/4288 6144/9487/4288 6151/9486/4288 +f 6443/9041/4289 5964/9559/4289 5966/9560/4289 6004/9038/4289 +f 6149/9561/4290 5668/9498/4290 5675/9501/4290 6155/9562/4290 6153/9495/4290 6148/9494/4290 +f 6146/9563/4291 5664/9469/4291 5657/9472/4291 6140/9564/4291 6138/9468/4291 6145/9467/4291 +f 6718/9565/4145 6729/9566/4145 6724/9567/4145 6711/9568/4145 +f 6143/9569/4292 5661/9479/4292 5668/9482/4292 6149/9570/4292 6147/9476/4292 6142/9475/4292 +f 6140/9571/4293 5657/9450/4293 5650/9453/4293 6134/9572/4293 6132/9449/4293 6139/9448/4293 +f 6706/9573/4144 6717/9574/4144 6712/9575/4144 6699/9576/4144 +f 6137/9577/4294 5654/9460/4294 5661/9463/4294 6143/9578/4294 6141/9457/4294 6136/9456/4294 +f 6134/9579/4295 5650/9431/4295 5643/9434/4295 6128/9580/4295 6126/9430/4295 6133/9429/4295 +f 6694/9581/4143 6705/9582/4143 6700/9583/4143 6687/9584/4143 +f 6131/9585/4296 5647/9441/4296 5654/9444/4296 6137/9586/4296 6135/9438/4296 6130/9437/4296 +f 6128/9587/4297 5643/9412/4297 5636/9415/4297 6122/9588/4297 6120/9411/4297 6127/9410/4297 +f 6682/9589/4142 6693/9590/4142 6688/9591/4142 6675/9592/4142 +f 6125/9593/4298 5640/9422/4298 5647/9425/4298 6131/9594/4298 6129/9419/4298 6124/9418/4298 +f 6122/9595/4299 5636/9393/4299 5629/9396/4299 6116/9596/4299 6114/9392/4299 6121/9391/4299 +f 6670/9597/4141 6681/9598/4141 6676/9599/4141 6663/9600/4141 +f 6119/9601/4300 5633/9403/4300 5640/9406/4300 6125/9602/4300 6123/9400/4300 6118/9399/4300 +f 6116/9603/4301 5629/9374/4301 5622/9377/4301 6110/9604/4301 6108/9373/4301 6115/9372/4301 +f 6658/9605/4140 6669/9606/4140 6664/9607/4140 6651/9608/4140 +f 6113/9609/4302 5626/9384/4302 5633/9387/4302 6119/9610/4302 6117/9381/4302 6112/9380/4302 +f 6110/9611/4303 5622/9355/4303 5615/9358/4303 6104/9612/4303 6102/9354/4303 6109/9353/4303 +f 6646/9613/4139 6657/9614/4139 6652/9615/4139 6639/9616/4139 +f 6107/9617/4304 5619/9365/4304 5626/9368/4304 6113/9618/4304 6111/9362/4304 6106/9361/4304 +f 6104/9619/4305 5615/9336/4305 5608/9339/4305 6098/9620/4305 6096/9335/4305 6103/9334/4305 +f 6634/9621/4138 6645/9622/4138 6640/9623/4138 6627/9624/4138 +f 6101/9625/4306 5612/9346/4306 5619/9349/4306 6107/9626/4306 6105/9343/4306 6100/9342/4306 +f 6098/9627/4307 5608/9317/4307 5601/9320/4307 6092/9628/4307 6090/9316/4307 6097/9315/4307 +f 6622/9629/4137 6633/9630/4137 6628/9631/4137 6615/9632/4137 +f 6095/9633/4308 5605/9327/4308 5612/9330/4308 6101/9634/4308 6099/9324/4308 6094/9323/4308 +f 6092/9635/4309 5601/9298/4309 5594/9301/4309 6086/9636/4309 6084/9297/4309 6091/9296/4309 +f 6610/9637/4136 6621/9638/4136 6616/9639/4136 6603/9640/4136 +f 6089/9641/4310 5598/9308/4310 5605/9311/4310 6095/9642/4310 6093/9305/4310 6088/9304/4310 +f 6086/9643/4311 5594/9279/4311 5587/9282/4311 6080/9644/4311 6078/9278/4311 6085/9277/4311 +f 6598/9645/4135 6609/9646/4135 6604/9647/4135 6591/9648/4135 +f 6083/9649/4312 5591/9289/4312 5598/9292/4312 6089/9650/4312 6087/9286/4312 6082/9285/4312 +f 6080/9651/4313 5587/9260/4313 5580/9263/4313 6074/9652/4313 6072/9259/4313 6079/9258/4313 +f 6586/9653/4134 6597/9654/4134 6592/9655/4134 6579/9656/4134 +f 6077/9657/4314 5584/9270/4314 5591/9273/4314 6083/9658/4314 6081/9267/4314 6076/9266/4314 +f 6074/9659/4315 5580/9241/4315 5573/9244/4315 6068/9660/4315 6066/9240/4315 6073/9239/4315 +f 6574/9661/4133 6585/9662/4133 6580/9663/4133 6567/9664/4133 +f 6071/9665/4316 5577/9251/4316 5584/9254/4316 6077/9666/4316 6075/9248/4316 6070/9247/4316 +f 6068/9667/4317 5573/9222/4317 5566/9225/4317 6062/9668/4317 6060/9221/4317 6067/9220/4317 +f 6562/9669/4132 6573/9670/4132 6568/9671/4132 6555/9672/4132 +f 6065/9673/4318 5570/9232/4318 5577/9235/4318 6071/9674/4318 6069/9229/4318 6064/9228/4318 +f 6062/9675/4319 5566/9203/4319 5559/9206/4319 6056/9676/4319 6054/9202/4319 6061/9201/4319 +f 6550/9677/4131 6561/9678/4131 6556/9679/4131 6543/9680/4131 +f 6059/9681/4320 5563/9213/4320 5570/9216/4320 6065/9682/4320 6063/9210/4320 6058/9209/4320 +f 6056/9683/4321 5559/9184/4321 5552/9187/4321 6050/9684/4321 6048/9183/4321 6055/9182/4321 +f 6538/9685/4130 6549/9686/4130 6544/9687/4130 6531/9688/4130 +f 6053/9689/4322 5556/9194/4322 5563/9197/4322 6059/9690/4322 6057/9191/4322 6052/9190/4322 +f 6050/9691/4323 5552/9165/4323 5545/9168/4323 6044/9692/4323 6042/9164/4323 6049/9163/4323 +f 6526/9693/4129 6537/9694/4129 6532/9695/4129 6519/9696/4129 +f 6047/9697/4324 5549/9175/4324 5556/9178/4324 6053/9698/4324 6051/9172/4324 6046/9171/4324 +f 6044/9699/4325 5545/9146/4325 5538/9149/4325 6038/9700/4325 6036/9145/4325 6043/9144/4325 +f 6514/9701/4128 6525/9702/4128 6520/9703/4128 6507/9704/4128 +f 6041/9705/4326 5542/9156/4326 5549/9159/4326 6047/9706/4326 6045/9153/4326 6040/9152/4326 +f 6038/9707/4327 5538/9127/4327 5531/9130/4327 6032/9708/4327 6030/9126/4327 6037/9125/4327 +f 6502/9709/4127 6513/9710/4127 6508/9711/4127 6495/9712/4127 +f 6035/9713/4328 5535/9137/4328 5542/9140/4328 6041/9714/4328 6039/9134/4328 6034/9133/4328 +f 6032/9715/4329 5531/9108/4329 5524/9111/4329 6026/9716/4329 6024/9107/4329 6031/9106/4329 +f 6490/9717/4126 6501/9718/4126 6496/9719/4126 6483/9720/4126 +f 6029/9721/4330 5528/9118/4330 5535/9121/4330 6035/9722/4330 6033/9115/4330 6028/9114/4330 +f 6026/9723/4331 5524/9089/4331 5517/9092/4331 6020/9724/4331 6018/9088/4331 6025/9087/4331 +f 6478/9725/4125 6489/9726/4125 6484/9727/4125 6471/9728/4125 +f 6023/9729/4332 5521/9099/4332 5528/9102/4332 6029/9730/4332 6027/9096/4332 6022/9095/4332 +f 6020/9731/4333 5517/9070/4333 5510/9073/4333 6014/9732/4333 6012/9069/4333 6019/9068/4333 +f 6466/9733/4124 6477/9734/4124 6472/9735/4124 6459/9736/4124 +f 6017/9737/4334 5514/9080/4334 5521/9083/4334 6023/9738/4334 6021/9077/4334 6016/9076/4334 +f 6014/9739/4335 5510/9051/4335 5503/9054/4335 6008/9740/4335 6006/9050/4335 6013/9049/4335 +f 6454/9741/4123 6465/9742/4123 6460/9743/4123 6447/9744/4123 +f 6011/9745/4336 5507/9061/4336 5514/9064/4336 6017/9746/4336 6015/9058/4336 6010/9057/4336 +f 6008/9747/4337 5503/9032/4337 5496/9035/4337 6002/9748/4337 6000/9031/4337 6007/9030/4337 +f 6442/9749/4122 6453/9750/4122 6448/9751/4122 6435/9752/4122 +f 6005/9753/4338 5500/9042/4338 5507/9045/4338 6011/9754/4338 6009/9039/4338 6004/9038/4338 +f 6002/9755/4339 5496/9013/4339 5490/9016/4339 5996/9756/4339 5994/9012/4339 6001/9011/4339 +f 6430/9757/4121 6441/9758/4121 6436/9759/4121 6423/9760/4121 +f 5999/9761/4340 5493/9023/4340 5500/9026/4340 6005/9762/4340 6003/9020/4340 5998/9019/4340 +f 5996/9763/4341 5490/8994/4341 5485/8997/4341 5990/9764/4341 5988/8993/4341 5995/8992/4341 +f 6418/9765/4120 6429/9766/4120 6424/9767/4120 6411/9768/4120 +f 5993/9769/4342 5488/9004/4342 5493/9007/4342 5999/9770/4342 5997/9001/4342 5992/9000/4342 +f 5990/9771/4343 5485/8979/4343 5480/8982/4343 5984/9772/4343 5982/8978/4343 5989/8977/4343 +f 6406/9773/4119 6417/9774/4119 6412/9775/4119 6399/9776/4119 +f 6376/9777/4149 6353/9778/4149 6356/9779/4149 6381/9780/4149 +f 6368/9781/4147 6391/9782/4147 6390/9783/4147 6365/9784/4147 +f 6380/9785/4149 6357/9786/4149 6360/9555/4149 6385/9554/4149 +f 6406/9773/4344 6224/9787/4344 6225/9788/4344 6417/9774/4344 +f 6388/8975/4345 6345/9789/4345 6287/9790/4345 6401/8976/4345 +f 6354/9791/4282 6371/9792/4282 6370/9793/4282 6355/9794/4282 +f 6354/9791/4346 6222/9795/4346 6220/9796/4346 6371/9792/4346 +f 6358/9525/4347 6286/9797/4347 6284/9798/4347 6367/9526/4347 +f 6362/9529/4348 6350/9799/4348 6348/9800/4348 6363/9530/4348 +f 6372/8921/4349 6219/9801/4349 6218/9802/4349 6395/8922/4349 +f 6277/9803/4350 6381/9780/4350 6356/9779/4350 6285/9804/4350 +f 6364/8960/4351 6347/9805/4351 6346/9806/4351 6387/8961/4351 +f 6722/8911/4352 6212/9807/4352 6215/9808/4352 6733/8912/4352 +f 6380/9785/4353 6277/9803/4353 6285/9804/4353 6357/9786/4353 +f 6714/9484/4354 6340/9809/4354 6343/9810/4354 6725/9485/4354 +f 6212/9807/4355 6719/9478/4355 6732/9477/4355 6215/9808/4355 +f 6706/9573/4356 6274/9811/4356 6275/9812/4356 6717/9574/4356 +f 6340/9809/4357 6711/9568/4357 6724/9567/4357 6343/9810/4357 +f 6698/8903/4358 6208/9813/4358 6209/9814/4358 6709/8904/4358 +f 6274/9811/4359 6703/8910/4359 6716/8909/4359 6275/9812/4359 +f 6702/9465/4360 6338/9815/4360 6339/9816/4360 6713/9466/4360 +f 6208/9813/4361 6695/9440/4361 6708/9439/4361 6209/9814/4361 +f 6694/9581/4362 6272/9817/4362 6273/9818/4362 6705/9582/4362 +f 6678/9427/4363 6334/9819/4363 6335/9820/4363 6689/9428/4363 +f 6686/8899/4364 6206/9821/4364 6207/9822/4364 6697/8900/4364 +f 6670/9597/4365 6268/9823/4365 6269/9824/4365 6681/9598/4365 +f 6334/9819/4366 6675/9592/4366 6688/9591/4366 6335/9820/4366 +f 6662/8891/4367 6202/9825/4367 6203/9826/4367 6673/8892/4367 +f 6268/9823/4368 6667/8898/4368 6680/8897/4368 6269/9824/4368 +f 6654/9389/4369 6330/9827/4369 6331/9828/4369 6665/9390/4369 +f 6202/9825/4370 6659/9383/4370 6672/9382/4370 6203/9826/4370 +f 6646/9613/4371 6264/9829/4371 6265/9830/4371 6657/9614/4371 +f 6330/9827/4372 6651/9608/4372 6664/9607/4372 6331/9828/4372 +f 6638/8883/4373 6198/9831/4373 6199/9832/4373 6649/8884/4373 +f 6264/9829/4374 6643/8890/4374 6656/8889/4374 6265/9830/4374 +f 6630/9351/4375 6326/9833/4375 6327/9834/4375 6641/9352/4375 +f 6198/9831/4376 6635/9345/4376 6648/9344/4376 6199/9832/4376 +f 6622/9629/4377 6260/9835/4377 6261/9836/4377 6633/9630/4377 +f 6326/9833/4378 6627/9624/4378 6640/9623/4378 6327/9834/4378 +f 6614/8875/4379 6194/9837/4379 6195/9838/4379 6625/8876/4379 +f 6260/9835/4380 6619/8882/4380 6632/8881/4380 6261/9836/4380 +f 6618/9332/4381 6324/9839/4381 6325/9840/4381 6629/9333/4381 +f 6194/9837/4382 6611/9307/4382 6624/9306/4382 6195/9838/4382 +f 6610/9637/4383 6258/9841/4383 6259/9842/4383 6621/9638/4383 +f 6594/9294/4384 6320/9843/4384 6321/9844/4384 6605/9295/4384 +f 6602/8871/4385 6192/9845/4385 6193/9846/4385 6613/8872/4385 +f 6586/9653/4386 6254/9847/4386 6255/9848/4386 6597/9654/4386 +f 6320/9843/4387 6591/9648/4387 6604/9647/4387 6321/9844/4387 +f 6578/8863/4388 6188/9849/4388 6189/9850/4388 6589/8864/4388 +f 6254/9847/4389 6583/8870/4389 6596/8869/4389 6255/9848/4389 +f 6570/9256/4390 6316/9851/4390 6317/9852/4390 6581/9257/4390 +f 6188/9849/4391 6575/9250/4391 6588/9249/4391 6189/9850/4391 +f 6562/9669/4392 6250/9853/4392 6251/9854/4392 6573/9670/4392 +f 6316/9851/4393 6567/9664/4393 6580/9663/4393 6317/9852/4393 +f 6554/8855/4394 6184/9855/4394 6185/9856/4394 6565/8856/4394 +f 6250/9853/4395 6559/8862/4395 6572/8861/4395 6251/9854/4395 +f 6546/9218/4396 6312/9857/4396 6313/9858/4396 6557/9219/4396 +f 6184/9855/4397 6551/9212/4397 6564/9211/4397 6185/9856/4397 +f 6538/9685/4398 6246/9859/4398 6247/9860/4398 6549/9686/4398 +f 6312/9857/4399 6543/9680/4399 6556/9679/4399 6313/9858/4399 +f 6530/8847/4400 6180/9861/4400 6181/9862/4400 6541/8848/4400 +f 6246/9859/4401 6535/8854/4401 6548/8853/4401 6247/9860/4401 +f 6534/9199/4402 6310/9863/4402 6311/9864/4402 6545/9200/4402 +f 6180/9861/4403 6527/9174/4403 6540/9173/4403 6181/9862/4403 +f 6526/9693/4404 6244/9865/4404 6245/9866/4404 6537/9694/4404 +f 6510/9161/4405 6306/9867/4405 6307/9868/4405 6521/9162/4405 +f 6518/8843/4406 6178/9869/4406 6179/9870/4406 6529/8844/4406 +f 6502/9709/4407 6240/9871/4407 6241/9872/4407 6513/9710/4407 +f 6306/9867/4408 6507/9704/4408 6520/9703/4408 6307/9868/4408 +f 6494/8835/4409 6174/9873/4409 6175/9874/4409 6505/8836/4409 +f 6240/9871/4410 6499/8842/4410 6512/8841/4410 6241/9872/4410 +f 6486/9123/4411 6302/9875/4411 6303/9876/4411 6497/9124/4411 +f 6174/9873/4412 6491/9117/4412 6504/9116/4412 6175/9874/4412 +f 6478/9725/4413 6236/9877/4413 6237/9878/4413 6489/9726/4413 +f 6302/9875/4414 6483/9720/4414 6496/9719/4414 6303/9876/4414 +f 6470/8827/4415 6170/9879/4415 6171/9880/4415 6481/8828/4415 +f 6236/9877/4416 6475/8834/4416 6488/8833/4416 6237/9878/4416 +f 6462/9085/4417 6298/9881/4417 6299/9882/4417 6473/9086/4417 +f 6170/9879/4418 6467/9079/4418 6480/9078/4418 6171/9880/4418 +f 6454/9741/4419 6232/9883/4419 6233/9884/4419 6465/9742/4419 +f 6298/9881/4420 6459/9736/4420 6472/9735/4420 6299/9882/4420 +f 6446/8819/4421 6166/9885/4421 6167/9886/4421 6457/8820/4421 +f 6232/9883/4422 6451/8826/4422 6464/8825/4422 6233/9884/4422 +f 6450/9066/4423 6296/9887/4423 6297/9888/4423 6461/9067/4423 +f 6166/9885/4424 6443/9041/4424 6456/9040/4424 6167/9886/4424 +f 6442/9749/4425 6230/9889/4425 6231/9890/4425 6453/9750/4425 +f 6426/9028/4426 6292/9891/4426 6293/9892/4426 6437/9029/4426 +f 6434/8815/4427 6164/9893/4427 6165/9894/4427 6445/8816/4427 +f 6418/9765/4428 6226/9895/4428 6227/9896/4428 6429/9766/4428 +f 6292/9891/4429 6423/9760/4429 6436/9759/4429 6293/9892/4429 +f 6410/8807/4430 6160/9897/4430 6161/9898/4430 6421/8808/4430 +f 6281/9899/4431 6393/8806/4431 6404/8805/4431 6223/9900/4431 +f 6402/8990/4432 6288/9901/4432 6289/9902/4432 6413/8991/4432 +f 6396/8803/4433 6217/9551/4433 6159/9552/4433 6409/8804/4433 +f 6392/9547/4434 6281/9899/4434 6223/9900/4434 6405/9548/4434 +f 6288/9901/4435 6399/9776/4435 6412/9775/4435 6289/9902/4435 +f 6216/9903/4436 6731/9497/4436 6378/9496/4436 6214/9904/4436 +f 6368/9781/4437 6283/9905/4437 6282/9906/4437 6391/9782/4437 +f 6344/9907/4438 6723/9546/4438 6386/9545/4438 6342/9908/4438 +f 5968/9516/4282 5973/9515/4282 6374/9909/4282 6351/9910/4282 +f 6345/9789/4439 6389/9550/4439 6400/9549/4439 6287/9790/4439 +f 6414/9009/4440 6290/9911/4440 6291/9912/4440 6425/9010/4440 +f 6290/9911/4441 6411/9768/4441 6424/9767/4441 6291/9912/4441 +f 6438/9047/4442 6294/9913/4442 6295/9914/4442 6449/9048/4442 +f 6294/9913/4443 6435/9752/4443 6448/9751/4443 6295/9914/4443 +f 6296/9887/4444 6447/9744/4444 6460/9743/4444 6297/9888/4444 +f 6474/9104/4445 6300/9915/4445 6301/9916/4445 6485/9105/4445 +f 6300/9915/4446 6471/9728/4446 6484/9727/4446 6301/9916/4446 +f 6498/9142/4447 6304/9917/4447 6305/9918/4447 6509/9143/4447 +f 6304/9917/4448 6495/9712/4448 6508/9711/4448 6305/9918/4448 +f 6522/9180/4449 6308/9919/4449 6309/9920/4449 6533/9181/4449 +f 6308/9919/4450 6519/9696/4450 6532/9695/4450 6309/9920/4450 +f 6310/9863/4451 6531/9688/4451 6544/9687/4451 6311/9864/4451 +f 6558/9237/4452 6314/9921/4452 6315/9922/4452 6569/9238/4452 +f 6314/9921/4453 6555/9672/4453 6568/9671/4453 6315/9922/4453 +f 6582/9275/4454 6318/9923/4454 6319/9924/4454 6593/9276/4454 +f 6318/9923/4455 6579/9656/4455 6592/9655/4455 6319/9924/4455 +f 6606/9313/4456 6322/9925/4456 6323/9926/4456 6617/9314/4456 +f 6322/9925/4457 6603/9640/4457 6616/9639/4457 6323/9926/4457 +f 6324/9839/4458 6615/9632/4458 6628/9631/4458 6325/9840/4458 +f 6642/9370/4459 6328/9927/4459 6329/9928/4459 6653/9371/4459 +f 6328/9927/4460 6639/9616/4460 6652/9615/4460 6329/9928/4460 +f 6666/9408/4461 6332/9929/4461 6333/9930/4461 6677/9409/4461 +f 6332/9929/4462 6663/9600/4462 6676/9599/4462 6333/9930/4462 +f 6690/9446/4463 6336/9931/4463 6337/9932/4463 6701/9447/4463 +f 6336/9931/4464 6687/9584/4464 6700/9583/4464 6337/9932/4464 +f 6338/9815/4465 6699/9576/4465 6712/9575/4465 6339/9816/4465 +f 6726/9503/4466 6344/9907/4466 6342/9908/4466 6383/9504/4466 +f 6384/9521/4467 6341/9553/4467 6349/9556/4467 6361/9522/4467 +f 6347/9805/4468 6365/9784/4468 6390/9783/4468 6346/9806/4468 +f 6350/9799/4469 6359/9528/4469 6366/9527/4469 6348/9800/4469 +f 6730/9543/4470 6280/9933/4470 6278/9934/4470 6379/9544/4470 +f 6226/9895/4471 6415/8814/4471 6428/8813/4471 6227/9896/4471 +f 6224/9787/4472 6403/8810/4472 6416/8809/4472 6225/9788/4472 +f 6430/9757/4473 6228/9935/4473 6229/9936/4473 6441/9758/4473 +f 6228/9935/4474 6427/8818/4474 6440/8817/4474 6229/9936/4474 +f 6230/9889/4475 6439/8822/4475 6452/8821/4475 6231/9890/4475 +f 6466/9733/4476 6234/9937/4476 6235/9938/4476 6477/9734/4476 +f 6234/9937/4477 6463/8830/4477 6476/8829/4477 6235/9938/4477 +f 6490/9717/4478 6238/9939/4478 6239/9940/4478 6501/9718/4478 +f 6238/9939/4479 6487/8838/4479 6500/8837/4479 6239/9940/4479 +f 6514/9701/4480 6242/9941/4480 6243/9942/4480 6525/9702/4480 +f 6242/9941/4481 6511/8846/4481 6524/8845/4481 6243/9942/4481 +f 6244/9865/4482 6523/8850/4482 6536/8849/4482 6245/9866/4482 +f 6550/9677/4483 6248/9943/4483 6249/9944/4483 6561/9678/4483 +f 6248/9943/4484 6547/8858/4484 6560/8857/4484 6249/9944/4484 +f 6574/9661/4485 6252/9945/4485 6253/9946/4485 6585/9662/4485 +f 6252/9945/4486 6571/8866/4486 6584/8865/4486 6253/9946/4486 +f 6598/9645/4487 6256/9947/4487 6257/9948/4487 6609/9646/4487 +f 6256/9947/4488 6595/8874/4488 6608/8873/4488 6257/9948/4488 +f 6258/9841/4489 6607/8878/4489 6620/8877/4489 6259/9842/4489 +f 6634/9621/4490 6262/9949/4490 6263/9950/4490 6645/9622/4490 +f 6262/9949/4491 6631/8886/4491 6644/8885/4491 6263/9950/4491 +f 6658/9605/4492 6266/9951/4492 6267/9952/4492 6669/9606/4492 +f 6266/9951/4493 6655/8894/4493 6668/8893/4493 6267/9952/4493 +f 6682/9589/4494 6270/9953/4494 6271/9954/4494 6693/9590/4494 +f 6270/9953/4495 6679/8902/4495 6692/8901/4495 6271/9954/4495 +f 6272/9817/4496 6691/8906/4496 6704/8905/4496 6273/9818/4496 +f 6718/9565/4497 6276/9955/4497 6279/9956/4497 6729/9566/4497 +f 6276/9955/4498 6715/8914/4498 6728/8913/4498 6279/9956/4498 +f 6280/9933/4499 6727/9542/4499 6382/9541/4499 6278/9934/4499 +f 6283/9905/4500 6369/8924/4500 6394/8923/4500 6282/9906/4500 +f 6286/9797/4501 6355/9794/4501 6370/9793/4501 6284/9798/4501 +f 6213/9957/4502 6377/8934/4502 6352/8933/4502 6221/9958/4502 +f 6160/9897/4503 6407/8986/4503 6420/8985/4503 6161/9898/4503 +f 6422/8811/4504 6162/9959/4504 6163/9960/4504 6433/8812/4504 +f 6162/9959/4505 6419/9003/4505 6432/9002/4505 6163/9960/4505 +f 6164/9893/4506 6431/9022/4506 6444/9021/4506 6165/9894/4506 +f 6458/8823/4507 6168/9961/4507 6169/9962/4507 6469/8824/4507 +f 6168/9961/4508 6455/9060/4508 6468/9059/4508 6169/9962/4508 +f 6482/8831/4509 6172/9963/4509 6173/9964/4509 6493/8832/4509 +f 6172/9963/4510 6479/9098/4510 6492/9097/4510 6173/9964/4510 +f 6506/8839/4511 6176/9965/4511 6177/9966/4511 6517/8840/4511 +f 6176/9965/4512 6503/9136/4512 6516/9135/4512 6177/9966/4512 +f 6178/9869/4513 6515/9155/4513 6528/9154/4513 6179/9870/4513 +f 6542/8851/4514 6182/9967/4514 6183/9968/4514 6553/8852/4514 +f 6182/9967/4515 6539/9193/4515 6552/9192/4515 6183/9968/4515 +f 6566/8859/4516 6186/9969/4516 6187/9970/4516 6577/8860/4516 +f 6186/9969/4517 6563/9231/4517 6576/9230/4517 6187/9970/4517 +f 6590/8867/4518 6190/9971/4518 6191/9972/4518 6601/8868/4518 +f 6190/9971/4519 6587/9269/4519 6600/9268/4519 6191/9972/4519 +f 6192/9845/4520 6599/9288/4520 6612/9287/4520 6193/9846/4520 +f 6626/8879/4521 6196/9973/4521 6197/9974/4521 6637/8880/4521 +f 6196/9973/4522 6623/9326/4522 6636/9325/4522 6197/9974/4522 +f 6650/8887/4523 6200/9975/4523 6201/9976/4523 6661/8888/4523 +f 6200/9975/4524 6647/9364/4524 6660/9363/4524 6201/9976/4524 +f 6674/8895/4525 6204/9977/4525 6205/9978/4525 6685/8896/4525 +f 6204/9977/4526 6671/9402/4526 6684/9401/4526 6205/9978/4526 +f 6206/9821/4527 6683/9421/4527 6696/9420/4527 6207/9822/4527 +f 6710/8907/4528 6210/9979/4528 6211/9980/4528 6721/8908/4528 +f 6210/9979/4529 6707/9459/4529 6720/9458/4529 6211/9980/4529 +f 6734/9539/4530 6216/9903/4530 6214/9904/4530 6375/9540/4530 +f 6376/9777/4531 6213/9957/4531 6221/9958/4531 6353/9778/4531 +f 6219/9801/4532 6373/8956/4532 6398/8955/4532 6218/9802/4532 +f 6222/9795/4533 6351/9910/4533 6374/9909/4533 6220/9796/4533 +f 5967/8932/4534 5969/9981/4534 5968/9982/4534 5878/9983/4534 +f 5970/9984/4535 5972/8941/4535 5971/8946/4535 5877/9985/4535 +f 5973/9515/4536 5975/8925/4536 5974/8930/4536 5889/9986/4536 +f 5976/8963/4537 5978/9533/4537 5977/9987/4537 5888/9988/4537 +f 5979/8929/4538 5981/8797/4538 5980/8802/4538 5900/9989/4538 +f 5982/8978/4539 5984/9537/4539 5983/8962/4539 5899/9990/4539 +f 5985/8801/4540 5987/8915/4540 5986/8920/4540 5911/9991/4540 +f 5988/8993/4541 5990/9771/4541 5989/9992/4541 5910/9993/4541 +f 5991/8919/4542 5993/9769/4542 5992/9000/4542 5922/9994/4542 +f 5994/9012/4543 5996/9763/4543 5995/8992/4543 5921/9995/4543 +f 5997/9001/4544 5999/9761/4544 5998/9019/4544 5933/9996/4544 +f 6000/9031/4545 6002/9755/4545 6001/9997/4545 5932/9998/4545 +f 6003/9020/4546 6005/9753/4546 6004/9038/4546 5966/9560/4546 +f 6006/9050/4547 6008/9747/4547 6007/9030/4547 5965/9999/4547 +f 6009/9039/4548 6011/9745/4548 6010/9057/4548 5955/10000/4548 +f 6012/9069/4549 6014/9739/4549 6013/10001/4549 5954/10002/4549 +f 6015/9058/4550 6017/9737/4550 6016/9076/4550 5944/10003/4550 +f 6018/9088/4551 6020/9731/4551 6019/9068/4551 5943/10004/4551 +f 6021/9077/4552 6023/9729/4552 6022/9095/4552 6735/10005/4552 +f 6024/9107/4553 6026/9723/4553 6025/10006/4553 6736/10007/4553 +f 6027/9096/4554 6029/9721/4554 6028/9114/4554 5529/10008/4554 +f 6030/9126/4555 6032/9715/4555 6031/9106/4555 5526/10009/4555 +f 6033/9115/4556 6035/9713/4556 6034/9133/4556 5568/10010/4556 +f 6036/9145/4557 6038/9707/4557 6037/10011/4557 5564/10012/4557 +f 6039/9134/4558 6041/9705/4558 6040/9152/4558 5606/10013/4558 +f 6042/9164/4559 6044/9699/4559 6043/9144/4559 5603/10014/4559 +f 6045/9153/4560 6047/9697/4560 6046/9171/4560 5645/10015/4560 +f 6048/9183/4561 6050/9691/4561 6049/10016/4561 5641/10017/4561 +f 6051/9172/4562 6053/9689/4562 6052/9190/4562 5680/10018/4562 +f 6054/9202/4563 6056/9683/4563 6055/9182/4563 5679/10019/4563 +f 6057/9191/4564 6059/9681/4564 6058/9209/4564 5691/10020/4564 +f 6060/9221/4565 6062/9675/4565 6061/10021/4565 5690/10022/4565 +f 6063/9210/4566 6065/9673/4566 6064/9228/4566 5702/10023/4566 +f 6066/9240/4567 6068/9667/4567 6067/9220/4567 5701/10024/4567 +f 6069/9229/4568 6071/9665/4568 6070/9247/4568 5713/10025/4568 +f 6072/9259/4569 6074/9659/4569 6073/10026/4569 5712/10027/4569 +f 6075/9248/4570 6077/9657/4570 6076/9266/4570 5724/10028/4570 +f 6078/9278/4571 6080/9651/4571 6079/9258/4571 5723/10029/4571 +f 6081/9267/4572 6083/9649/4572 6082/9285/4572 5735/10030/4572 +f 6084/9297/4573 6086/9643/4573 6085/10031/4573 5734/10032/4573 +f 6087/9286/4574 6089/9641/4574 6088/9304/4574 5746/10033/4574 +f 6090/9316/4575 6092/9635/4575 6091/9296/4575 5745/10034/4575 +f 6093/9305/4576 6095/9633/4576 6094/9323/4576 5757/10035/4576 +f 6096/9335/4577 6098/9627/4577 6097/10036/4577 5756/10037/4577 +f 6099/9324/4578 6101/9625/4578 6100/9342/4578 5768/10038/4578 +f 6102/9354/4579 6104/9619/4579 6103/9334/4579 5767/10039/4579 +f 6105/9343/4580 6107/9617/4580 6106/9361/4580 5779/10040/4580 +f 6108/9373/4581 6110/9611/4581 6109/10041/4581 5778/10042/4581 +f 6111/9362/4582 6113/9609/4582 6112/9380/4582 5790/10043/4582 +f 6114/9392/4583 6116/9603/4583 6115/9372/4583 5789/10044/4583 +f 6117/9381/4584 6119/9601/4584 6118/9399/4584 5801/10045/4584 +f 6120/9411/4585 6122/9595/4585 6121/10046/4585 5800/10047/4585 +f 6123/9400/4586 6125/9593/4586 6124/9418/4586 5812/10048/4586 +f 6126/9430/4587 6128/9587/4587 6127/9410/4587 5811/10049/4587 +f 6129/9419/4588 6131/9585/4588 6130/9437/4588 5823/10050/4588 +f 6132/9449/4589 6134/9579/4589 6133/10051/4589 5822/10052/4589 +f 6135/9438/4590 6137/9577/4590 6136/9456/4590 5834/10053/4590 +f 6138/9468/4591 6140/9571/4591 6139/9448/4591 5833/10054/4591 +f 6141/9457/4592 6143/9569/4592 6142/9475/4592 5845/10055/4592 +f 6144/9487/4593 6146/9563/4593 6145/10056/4593 5844/10057/4593 +f 6147/9476/4594 6149/9561/4594 6148/9494/4594 5856/10058/4594 +f 6150/9506/4595 6152/9557/4595 6151/9486/4595 5855/10059/4595 +f 6153/9495/4596 6155/10060/4596 6154/8931/4596 5867/10061/4596 +f 6156/8945/4597 6158/9535/4597 6157/10062/4597 5866/10063/4597 +f 5909/10064/4598 6407/8986/4598 6160/9897/4598 5908/10065/4598 +f 5522/10066/4599 6491/9117/4599 6174/9873/4599 5519/10067/4599 +f 5711/10068/4600 6575/9250/4600 6188/9849/4600 5710/10069/4600 +f 5788/10070/4601 6659/9383/4601 6202/9825/4601 5787/10071/4601 +f 5854/10072/4602 6731/9497/4602 6216/9903/4602 5853/10073/4602 +f 6737/10074/4603 6475/8834/4603 6236/9877/4603 6738/10075/4603 +f 5700/10076/4604 6559/8862/4604 6250/9853/4604 5699/10077/4604 +f 5777/10078/4605 6643/8890/4605 6264/9829/4605 5776/10079/4605 +f 5865/10080/4606 6379/9544/4606 6278/9934/4606 5864/10081/4606 +f 5942/10082/4607 6459/9736/4607 6298/9881/4607 5941/10083/4607 +f 5689/10084/4608 6543/9680/4608 6312/9857/4608 5688/10085/4608 +f 5766/10086/4609 6627/9624/4609 6326/9833/4609 5765/10087/4609 +f 5843/10088/4610 6711/9568/4610 6340/9809/4610 5842/10089/4610 +f 5876/10090/4611 6359/10091/4611 6350/10092/4611 5875/10093/4611 +f 5931/10094/4612 6431/9022/4612 6164/9893/4612 5930/10095/4612 +f 5964/9559/4613 6443/9041/4613 6166/9885/4613 5963/10096/4613 +f 5940/10097/4614 6467/9079/4614 6170/9879/4614 5939/10098/4614 +f 5599/10099/4615 6515/9155/4615 6178/9869/4615 5596/10100/4615 +f 5638/10101/4616 6527/9174/4616 6180/9861/4616 5634/10102/4616 +f 5687/10103/4617 6551/9212/4617 6184/9855/4617 5686/10104/4617 +f 5733/10105/4618 6599/9288/4618 6192/9845/4618 5732/10106/4618 +f 5744/10107/4619 6611/9307/4619 6194/9837/4619 5743/10108/4619 +f 5764/10109/4620 6635/9345/4620 6198/9831/4620 5763/10110/4620 +f 5810/10111/4621 6683/9421/4621 6206/9821/4621 5809/10112/4621 +f 5821/10113/4622 6695/9440/4622 6208/9813/4622 5820/10114/4622 +f 5841/10115/4623 6719/9478/4623 6212/9807/4623 5840/10116/4623 +f 5887/10117/4624 6371/9792/4624 6220/9796/4624 5886/10118/4624 +f 5874/10119/4625 6351/10120/4625 6222/10121/4625 5873/10122/4625 +f 5920/10123/4626 6415/8814/4626 6226/9895/4626 5919/10124/4626 +f 5929/10125/4627 6427/8818/4627 6228/9935/4627 5928/10126/4627 +f 5953/10127/4628 6451/8826/4628 6232/9883/4628 5952/10128/4628 +f 5561/10129/4629 6499/8842/4629 6240/9871/4629 5557/10130/4629 +f 5592/10131/4630 6511/8846/4630 6242/9941/4630 5589/10132/4630 +f 5676/10133/4631 6535/8854/4631 6246/9859/4631 5673/10134/4631 +f 5722/10135/4632 6583/8870/4632 6254/9847/4632 5721/10136/4632 +f 5731/10137/4633 6595/8874/4633 6256/9947/4633 5730/10138/4633 +f 5755/10139/4634 6619/8882/4634 6260/9835/4634 5754/10140/4634 +f 5799/10141/4635 6667/8898/4635 6268/9823/4635 5798/10142/4635 +f 5808/10143/4636 6679/8902/4636 6270/9953/4636 5807/10144/4636 +f 5832/10145/4637 6703/8910/4637 6274/9811/4637 5831/10146/4637 +f 5898/10147/4638 6391/9782/4638 6282/9906/4638 5897/10148/4638 +f 5885/10149/4639 6367/9526/4639 6284/9798/4639 5884/10150/4639 +f 5907/10151/4640 6399/9776/4640 6288/9901/4640 5906/10152/4640 +f 5918/10153/4641 6411/9768/4641 6290/9911/4641 5917/10154/4641 +f 5962/10155/4642 6435/9752/4642 6294/9913/4642 5961/10156/4642 +f 5515/10157/4643 6483/9720/4643 6302/9875/4643 5512/10158/4643 +f 5554/10159/4644 6495/9712/4644 6304/9917/4644 5550/10160/4644 +f 5631/10161/4645 6519/9696/4645 6308/9919/4645 5627/10162/4645 +f 5709/10163/4646 6567/9664/4646 6316/9851/4646 5708/10164/4646 +f 5720/10165/4647 6579/9656/4647 6318/9923/4647 5719/10166/4647 +f 5742/10167/4648 6603/9640/4648 6322/9925/4648 5741/10168/4648 +f 5786/10169/4649 6651/9608/4649 6330/9827/4649 5785/10170/4649 +f 5797/10171/4650 6663/9600/4650 6332/9929/4650 5796/10172/4650 +f 5819/10173/4651 6687/9584/4651 6336/9931/4651 5818/10174/4651 +f 5852/10175/4652 6723/9546/4652 6344/9907/4652 5851/10176/4652 +f 5896/10177/4653 6387/8961/4653 6346/9806/4653 5895/10178/4653 +f 5883/10179/4654 6363/9530/4654 6348/9800/4654 5882/10180/4654 +f 5863/10181/4655 6383/9504/4655 6342/9908/4655 5862/10182/4655 +f 5830/10183/4656 6699/9576/4656 6338/9815/4656 5829/10184/4656 +f 5806/10185/4657 6675/9592/4657 6334/9819/4657 5805/10186/4657 +f 5775/10187/4658 6639/9616/4658 6328/9927/4658 5774/10188/4658 +f 5753/10189/4659 6615/9632/4659 6324/9839/4659 5752/10190/4659 +f 5729/10191/4660 6591/9648/4660 6320/9843/4660 5728/10192/4660 +f 5698/10193/4661 6555/9672/4661 6314/9921/4661 5697/10194/4661 +f 5669/10195/4662 6531/9688/4662 6310/9863/4662 5666/10196/4662 +f 5585/10197/4663 6507/9704/4663 6306/9867/4663 5582/10198/4663 +f 6739/10199/4664 6471/9728/4664 6300/9915/4664 6740/10200/4664 +f 5951/10201/4665 6447/9744/4665 6296/9887/4665 5950/10202/4665 +f 5927/10203/4666 6423/9760/4666 6292/9891/4666 5926/10204/4666 +f 5872/10205/4667 6355/10206/4667 6286/10207/4667 5871/10208/4667 +f 5850/10209/4668 6727/9542/4668 6280/9933/4668 5849/10210/4668 +f 5839/10211/4669 6715/8914/4669 6276/9955/4669 5838/10212/4669 +f 5817/10213/4670 6691/8906/4670 6272/9817/4670 5816/10214/4670 +f 5784/10215/4671 6655/8894/4671 6266/9951/4671 5783/10216/4671 +f 5762/10217/4672 6631/8886/4672 6262/9949/4672 5761/10218/4672 +f 5740/10219/4673 6607/8878/4673 6258/9841/4673 5739/10220/4673 +f 5707/10221/4674 6571/8866/4674 6252/9945/4674 5706/10222/4674 +f 5685/10223/4675 6547/8858/4675 6248/9943/4675 5684/10224/4675 +f 5624/10225/4676 6523/8850/4676 6244/9865/4676 5620/10226/4676 +f 5508/10227/4677 6487/8838/4677 6238/9939/4677 5505/10228/4677 +f 5938/10229/4678 6463/8830/4678 6234/9937/4678 5937/10230/4678 +f 5960/10231/4679 6439/8822/4679 6230/9889/4679 5959/10232/4679 +f 5905/10233/4680 6403/8810/4680 6224/9787/4680 5904/10234/4680 +f 5894/10235/4681 6395/8922/4681 6218/9802/4681 5893/10236/4681 +f 5861/10237/4682 6375/9540/4682 6214/9904/4682 5860/10238/4682 +f 5828/10239/4683 6707/9459/4683 6210/9979/4683 5827/10240/4683 +f 5795/10241/4684 6671/9402/4684 6204/9977/4684 5794/10242/4684 +f 5773/10243/4685 6647/9364/4685 6200/9975/4685 5772/10244/4685 +f 5751/10245/4686 6623/9326/4686 6196/9973/4686 5750/10246/4686 +f 5718/10247/4687 6587/9269/4687 6190/9971/4687 5717/10248/4687 +f 5696/10249/4688 6563/9231/4688 6186/9969/4688 5695/10250/4688 +f 5662/10251/4689 6539/9193/4689 6182/9967/4689 5659/10252/4689 +f 5547/10253/4690 6503/9136/4690 6176/9965/4690 5543/10254/4690 +f 6741/10255/4691 6479/9098/4691 6172/9963/4691 6742/10256/4691 +f 5949/10257/4692 6455/9060/4692 6168/9961/4692 5948/10258/4692 +f 5916/10259/4693 6419/9003/4693 6162/9959/4693 5915/10260/4693 +f 5873/10122/4694 6222/10121/4694 6354/10261/4694 5870/10262/4694 +f 5886/10118/4695 6220/9796/4695 6374/9909/4695 5881/10263/4695 +f 5871/10208/4696 6286/10207/4696 6358/10264/4696 5869/10265/4696 +f 5884/10150/4697 6284/9798/4697 6370/9793/4697 5880/10266/4697 +f 5875/10093/4698 6350/10092/4698 6362/10267/4698 5868/10268/4698 +f 5882/10180/4699 6348/9800/4699 6366/9527/4699 5879/10269/4699 +f 5893/10236/4700 6218/9802/4700 6398/8955/4700 5892/10270/4700 +f 5897/10148/4701 6282/9906/4701 6394/8923/4701 5891/10271/4701 +f 5895/10178/4702 6346/9806/4702 6390/9783/4702 5890/10272/4702 +f 5853/10073/4703 6216/9903/4703 6734/9539/4703 5848/10273/4703 +f 5860/10238/4704 6214/9904/4704 6378/9496/4704 5859/10274/4704 +f 5849/10210/4705 6280/9933/4705 6730/9543/4705 5847/10275/4705 +f 5864/10081/4706 6278/9934/4706 6382/9541/4706 5858/10276/4706 +f 5851/10176/4707 6344/9907/4707 6726/9503/4707 5846/10277/4707 +f 5862/10182/4708 6342/9908/4708 6386/9545/4708 5857/10278/4708 +f 5840/10116/4709 6212/9807/4709 6722/8911/4709 5837/10279/4709 +f 5838/10212/4710 6276/9955/4710 6718/9565/4710 5836/10280/4710 +f 5842/10089/4711 6340/9809/4711 6714/9484/4711 5835/10281/4711 +f 5827/10240/4712 6210/9979/4712 6710/8907/4712 5826/10282/4712 +f 5831/10146/4713 6274/9811/4713 6706/9573/4713 5825/10283/4713 +f 5829/10184/4714 6338/9815/4714 6702/9465/4714 5824/10284/4714 +f 5820/10114/4715 6208/9813/4715 6698/8903/4715 5815/10285/4715 +f 5816/10214/4716 6272/9817/4716 6694/9581/4716 5814/10286/4716 +f 5818/10174/4717 6336/9931/4717 6690/9446/4717 5813/10287/4717 +f 5809/10112/4718 6206/9821/4718 6686/8899/4718 5804/10288/4718 +f 5807/10144/4719 6270/9953/4719 6682/9589/4719 5803/10289/4719 +f 5805/10186/4720 6334/9819/4720 6678/9427/4720 5802/10290/4720 +f 5794/10242/4721 6204/9977/4721 6674/8895/4721 5793/10291/4721 +f 5798/10142/4722 6268/9823/4722 6670/9597/4722 5792/10292/4722 +f 5796/10172/4723 6332/9929/4723 6666/9408/4723 5791/10293/4723 +f 5787/10071/4724 6202/9825/4724 6662/8891/4724 5782/10294/4724 +f 5783/10216/4725 6266/9951/4725 6658/9605/4725 5781/10295/4725 +f 5785/10170/4726 6330/9827/4726 6654/9389/4726 5780/10296/4726 +f 5772/10244/4727 6200/9975/4727 6650/8887/4727 5771/10297/4727 +f 5776/10079/4728 6264/9829/4728 6646/9613/4728 5770/10298/4728 +f 5774/10188/4729 6328/9927/4729 6642/9370/4729 5769/10299/4729 +f 5763/10110/4730 6198/9831/4730 6638/8883/4730 5760/10300/4730 +f 5761/10218/4731 6262/9949/4731 6634/9621/4731 5759/10301/4731 +f 5765/10087/4732 6326/9833/4732 6630/9351/4732 5758/10302/4732 +f 5750/10246/4733 6196/9973/4733 6626/8879/4733 5749/10303/4733 +f 5754/10140/4734 6260/9835/4734 6622/9629/4734 5748/10304/4734 +f 5752/10190/4735 6324/9839/4735 6618/9332/4735 5747/10305/4735 +f 5743/10108/4736 6194/9837/4736 6614/8875/4736 5738/10306/4736 +f 5739/10220/4737 6258/9841/4737 6610/9637/4737 5737/10307/4737 +f 5741/10168/4738 6322/9925/4738 6606/9313/4738 5736/10308/4738 +f 5732/10106/4739 6192/9845/4739 6602/8871/4739 5727/10309/4739 +f 5730/10138/4740 6256/9947/4740 6598/9645/4740 5726/10310/4740 +f 5728/10192/4741 6320/9843/4741 6594/9294/4741 5725/10311/4741 +f 5717/10248/4742 6190/9971/4742 6590/8867/4742 5716/10312/4742 +f 5721/10136/4743 6254/9847/4743 6586/9653/4743 5715/10313/4743 +f 5719/10166/4744 6318/9923/4744 6582/9275/4744 5714/10314/4744 +f 5710/10069/4745 6188/9849/4745 6578/8863/4745 5705/10315/4745 +f 5706/10222/4746 6252/9945/4746 6574/9661/4746 5704/10316/4746 +f 5708/10164/4747 6316/9851/4747 6570/9256/4747 5703/10317/4747 +f 5695/10250/4748 6186/9969/4748 6566/8859/4748 5694/10318/4748 +f 5699/10077/4749 6250/9853/4749 6562/9669/4749 5693/10319/4749 +f 5697/10194/4750 6314/9921/4750 6558/9237/4750 5692/10320/4750 +f 5686/10104/4751 6184/9855/4751 6554/8855/4751 5683/10321/4751 +f 5684/10224/4752 6248/9943/4752 6550/9677/4752 5682/10322/4752 +f 5688/10085/4753 6312/9857/4753 6546/9218/4753 5681/10323/4753 +f 5659/10252/4754 6182/9967/4754 6542/8851/4754 5655/10324/4754 +f 5673/10134/4755 6246/9859/4755 6538/9685/4755 5652/10325/4755 +f 5666/10196/4756 6310/9863/4756 6534/9199/4756 5648/10326/4756 +f 5634/10102/4757 6180/9861/4757 6530/8847/4757 5617/10327/4757 +f 5620/10226/4758 6244/9865/4758 6526/9693/4758 5613/10328/4758 +f 5627/10162/4759 6308/9919/4759 6522/9180/4759 5610/10329/4759 +f 5596/10100/4760 6178/9869/4760 6518/8843/4760 5578/10330/4760 +f 5589/10132/4761 6242/9941/4761 6514/9701/4761 5575/10331/4761 +f 5582/10198/4762 6306/9867/4762 6510/9161/4762 5571/10332/4762 +f 5543/10254/4763 6176/9965/4763 6506/8839/4763 5540/10333/4763 +f 5557/10130/4764 6240/9871/4764 6502/9709/4764 5536/10334/4764 +f 5550/10160/4765 6304/9917/4765 6498/9142/4765 5533/10335/4765 +f 5519/10067/4766 6174/9873/4766 6494/8835/4766 5501/10336/4766 +f 5505/10228/4767 6238/9939/4767 6490/9717/4767 5498/10337/4767 +f 5512/10158/4768 6302/9875/4768 6486/9123/4768 5494/10338/4768 +f 6742/10256/4769 6172/9963/4769 6482/8831/4769 6743/10339/4769 +f 6738/10075/4770 6236/9877/4770 6478/9725/4770 6744/10340/4770 +f 6740/10200/4771 6300/9915/4771 6474/9104/4771 6745/10341/4771 +f 5939/10098/4772 6170/9879/4772 6470/8827/4772 5936/10342/4772 +f 5937/10230/4773 6234/9937/4773 6466/9733/4773 5935/10343/4773 +f 5941/10083/4774 6298/9881/4774 6462/9085/4774 5934/10344/4774 +f 5948/10258/4775 6168/9961/4775 6458/8823/4775 5947/10345/4775 +f 5952/10128/4776 6232/9883/4776 6454/9741/4776 5946/10346/4776 +f 5950/10202/4777 6296/9887/4777 6450/9066/4777 5945/10347/4777 +f 5963/10096/4778 6166/9885/4778 6446/8819/4778 5958/10348/4778 +f 5959/10232/4779 6230/9889/4779 6442/9749/4779 5957/10349/4779 +f 5961/10156/4780 6294/9913/4780 6438/9047/4780 5956/10350/4780 +f 5930/10095/4781 6164/9893/4781 6434/8815/4781 5925/10351/4781 +f 5928/10126/4782 6228/9935/4782 6430/9757/4782 5924/10352/4782 +f 5926/10204/4783 6292/9891/4783 6426/9028/4783 5923/10353/4783 +f 5915/10260/4784 6162/9959/4784 6422/8811/4784 5914/10354/4784 +f 5919/10124/4785 6226/9895/4785 6418/9765/4785 5913/10355/4785 +f 5917/10154/4786 6290/9911/4786 6414/9009/4786 5912/10356/4786 +f 5908/10065/4787 6160/9897/4787 6410/8807/4787 5903/10357/4787 +f 5904/10234/4788 6224/9787/4788 6406/9773/4788 5902/10358/4788 +f 5906/10152/4789 6288/9901/4789 6402/8990/4789 5901/10359/4789 +f 5867/10360/4790 6154/8931/4790 6377/8934/4790 5859/10274/4790 +f 5874/10119/4791 6352/8933/4791 5967/8932/4791 5878/10361/4791 +f 5870/10262/4792 6354/10362/4792 6355/10363/4792 5872/10364/4792 +f 5880/10266/4793 6370/9793/4793 6371/9792/4793 5887/10117/4793 +f 5881/10263/4794 6374/9909/4794 5973/9515/4794 5889/10365/4794 +f 5861/10237/4795 6376/9777/4795 6381/9780/4795 5858/10276/4795 +f 5865/10080/4796 6380/9785/4796 6385/9554/4796 5857/10278/4796 +f 5876/10090/4797 6360/9555/4797 6357/9786/4797 5869/10366/4797 +f 5879/10269/4798 6366/9527/4798 6367/9526/4798 5885/10149/4798 +f 5868/10268/4799 6362/10267/4799 5970/10367/4799 5877/10368/4799 +f 5888/9988/4800 5977/9531/4800 6363/9530/4800 5883/10179/4800 +f 5863/10181/4801 6384/9521/4801 6156/8945/4801 5866/10063/4801 +f 5899/9990/4802 5983/8962/4802 6387/8961/4802 5896/10177/4802 +f 5890/10272/4803 6390/9783/4803 6391/9782/4803 5898/10147/4803 +f 5891/10271/4804 6394/8923/4804 6395/8922/4804 5894/10235/4804 +f 5892/10270/4805 6398/8955/4805 5979/8929/4805 5900/9989/4805 +f 5856/10058/4806 6148/9494/4806 6731/9497/4806 5854/10072/4806 +f 5848/10273/4807 6734/9539/4807 6727/9542/4807 5850/10209/4807 +f 5847/10275/4808 6730/9543/4808 6723/9546/4808 5852/10175/4808 +f 5846/10277/4809 6726/9503/4809 6150/9506/4809 5855/10059/4809 +f 5910/9993/4810 5989/8977/4810 6401/8976/4810 5901/10359/4810 +f 5907/10151/4811 6400/9549/4811 6405/9548/4811 5902/10358/4811 +f 5905/10233/4812 6404/8805/4812 6409/8804/4812 5903/10357/4812 +f 5909/10064/4813 6408/8970/4813 5985/8801/4813 5911/10369/4813 +f 5921/9995/4814 5995/8992/4814 6413/8991/4814 5912/10356/4814 +f 5918/10153/4815 6412/9775/4815 6417/9774/4815 5913/10355/4815 +f 5920/10123/4816 6416/8809/4816 6421/8808/4816 5914/10354/4816 +f 5916/10259/4817 6420/8985/4817 5991/8919/4817 5922/9994/4817 +f 5932/9998/4818 6001/9011/4818 6425/9010/4818 5923/10353/4818 +f 5927/10203/4819 6424/9767/4819 6429/9766/4819 5924/10352/4819 +f 5929/10125/4820 6428/8813/4820 6433/8812/4820 5925/10351/4820 +f 5931/10094/4821 6432/9002/4821 5997/9001/4821 5933/10370/4821 +f 5965/9999/4822 6007/9030/4822 6437/9029/4822 5956/10350/4822 +f 5962/10155/4823 6436/9759/4823 6441/9758/4823 5957/10349/4823 +f 5960/10231/4824 6440/8817/4824 6445/8816/4824 5958/10348/4824 +f 5964/9559/4825 6444/9021/4825 6003/9020/4825 5966/9560/4825 +f 5954/10002/4826 6013/9049/4826 6449/9048/4826 5945/10347/4826 +f 5951/10201/4827 6448/9751/4827 6453/9750/4827 5946/10346/4827 +f 5953/10127/4828 6452/8821/4828 6457/8820/4828 5947/10345/4828 +f 5949/10257/4829 6456/9040/4829 6009/9039/4829 5955/10371/4829 +f 5943/10004/4830 6019/9068/4830 6461/9067/4830 5934/10344/4830 +f 5942/10082/4831 6460/9743/4831 6465/9742/4831 5935/10343/4831 +f 5938/10229/4832 6464/8825/4832 6469/8824/4832 5936/10342/4832 +f 5940/10097/4833 6468/9059/4833 6015/9058/4833 5944/10003/4833 +f 6736/10007/4834 6025/9087/4834 6473/9086/4834 6745/10341/4834 +f 6739/10199/4835 6472/9735/4835 6477/9734/4835 6744/10340/4835 +f 6737/10074/4836 6476/8829/4836 6481/8828/4836 6743/10339/4836 +f 6741/10255/4837 6480/9078/4837 6021/9077/4837 6735/10372/4837 +f 5526/10009/4838 6031/9106/4838 6485/9105/4838 5494/10338/4838 +f 5515/10157/4839 6484/9727/4839 6489/9726/4839 5498/10337/4839 +f 5508/10227/4840 6488/8833/4840 6493/8832/4840 5501/10336/4840 +f 5522/10066/4841 6492/9097/4841 6027/9096/4841 5529/10008/4841 +f 5564/10012/4842 6037/9125/4842 6497/9124/4842 5533/10335/4842 +f 5554/10159/4843 6496/9719/4843 6501/9718/4843 5536/10334/4843 +f 5561/10129/4844 6500/8837/4844 6505/8836/4844 5540/10333/4844 +f 5547/10253/4845 6504/9116/4845 6033/9115/4845 5568/10373/4845 +f 5603/10014/4846 6043/9144/4846 6509/9143/4846 5571/10332/4846 +f 5585/10197/4847 6508/9711/4847 6513/9710/4847 5575/10331/4847 +f 5592/10131/4848 6512/8841/4848 6517/8840/4848 5578/10330/4848 +f 5599/10099/4849 6516/9135/4849 6039/9134/4849 5606/10013/4849 +f 5641/10017/4850 6049/9163/4850 6521/9162/4850 5610/10329/4850 +f 5631/10161/4851 6520/9703/4851 6525/9702/4851 5613/10328/4851 +f 5624/10225/4852 6524/8845/4852 6529/8844/4852 5617/10327/4852 +f 5638/10101/4853 6528/9154/4853 6045/9153/4853 5645/10374/4853 +f 5679/10019/4854 6055/9182/4854 6533/9181/4854 5648/10326/4854 +f 5669/10195/4855 6532/9695/4855 6537/9694/4855 5652/10325/4855 +f 5676/10133/4856 6536/8849/4856 6541/8848/4856 5655/10324/4856 +f 5662/10251/4857 6540/9173/4857 6051/9172/4857 5680/10018/4857 +f 5690/10022/4858 6061/9201/4858 6545/9200/4858 5681/10323/4858 +f 5689/10084/4859 6544/9687/4859 6549/9686/4859 5682/10322/4859 +f 5685/10223/4860 6548/8853/4860 6553/8852/4860 5683/10321/4860 +f 5687/10103/4861 6552/9192/4861 6057/9191/4861 5691/10375/4861 +f 5701/10024/4862 6067/9220/4862 6557/9219/4862 5692/10320/4862 +f 5698/10193/4863 6556/9679/4863 6561/9678/4863 5693/10319/4863 +f 5700/10076/4864 6560/8857/4864 6565/8856/4864 5694/10318/4864 +f 5696/10249/4865 6564/9211/4865 6063/9210/4865 5702/10023/4865 +f 5712/10027/4866 6073/9239/4866 6569/9238/4866 5703/10317/4866 +f 5709/10163/4867 6568/9671/4867 6573/9670/4867 5704/10316/4867 +f 5707/10221/4868 6572/8861/4868 6577/8860/4868 5705/10315/4868 +f 5711/10068/4869 6576/9230/4869 6069/9229/4869 5713/10376/4869 +f 5723/10029/4870 6079/9258/4870 6581/9257/4870 5714/10314/4870 +f 5720/10165/4871 6580/9663/4871 6585/9662/4871 5715/10313/4871 +f 5722/10135/4872 6584/8865/4872 6589/8864/4872 5716/10312/4872 +f 5718/10247/4873 6588/9249/4873 6075/9248/4873 5724/10028/4873 +f 5734/10032/4874 6085/9277/4874 6593/9276/4874 5725/10311/4874 +f 5729/10191/4875 6592/9655/4875 6597/9654/4875 5726/10310/4875 +f 5731/10137/4876 6596/8869/4876 6601/8868/4876 5727/10309/4876 +f 5733/10105/4877 6600/9268/4877 6081/9267/4877 5735/10377/4877 +f 5745/10034/4878 6091/9296/4878 6605/9295/4878 5736/10308/4878 +f 5742/10167/4879 6604/9647/4879 6609/9646/4879 5737/10307/4879 +f 5740/10219/4880 6608/8873/4880 6613/8872/4880 5738/10306/4880 +f 5744/10107/4881 6612/9287/4881 6087/9286/4881 5746/10033/4881 +f 5756/10037/4882 6097/9315/4882 6617/9314/4882 5747/10305/4882 +f 5753/10189/4883 6616/9639/4883 6621/9638/4883 5748/10304/4883 +f 5755/10139/4884 6620/8877/4884 6625/8876/4884 5749/10303/4884 +f 5751/10245/4885 6624/9306/4885 6093/9305/4885 5757/10378/4885 +f 5767/10039/4886 6103/9334/4886 6629/9333/4886 5758/10302/4886 +f 5766/10086/4887 6628/9631/4887 6633/9630/4887 5759/10301/4887 +f 5762/10217/4888 6632/8881/4888 6637/8880/4888 5760/10300/4888 +f 5764/10109/4889 6636/9325/4889 6099/9324/4889 5768/10038/4889 +f 5778/10042/4890 6109/9353/4890 6641/9352/4890 5769/10299/4890 +f 5775/10187/4891 6640/9623/4891 6645/9622/4891 5770/10298/4891 +f 5777/10078/4892 6644/8885/4892 6649/8884/4892 5771/10297/4892 +f 5773/10243/4893 6648/9344/4893 6105/9343/4893 5779/10379/4893 +f 5789/10044/4894 6115/9372/4894 6653/9371/4894 5780/10296/4894 +f 5786/10169/4895 6652/9615/4895 6657/9614/4895 5781/10295/4895 +f 5784/10215/4896 6656/8889/4896 6661/8888/4896 5782/10294/4896 +f 5788/10070/4897 6660/9363/4897 6111/9362/4897 5790/10043/4897 +f 5800/10047/4898 6121/9391/4898 6665/9390/4898 5791/10293/4898 +f 5797/10171/4899 6664/9607/4899 6669/9606/4899 5792/10292/4899 +f 5799/10141/4900 6668/8893/4900 6673/8892/4900 5793/10291/4900 +f 5795/10241/4901 6672/9382/4901 6117/9381/4901 5801/10380/4901 +f 5811/10049/4902 6127/9410/4902 6677/9409/4902 5802/10290/4902 +f 5806/10185/4903 6676/9599/4903 6681/9598/4903 5803/10289/4903 +f 5808/10143/4904 6680/8897/4904 6685/8896/4904 5804/10288/4904 +f 5810/10111/4905 6684/9401/4905 6123/9400/4905 5812/10048/4905 +f 5822/10052/4906 6133/9429/4906 6689/9428/4906 5813/10287/4906 +f 5819/10173/4907 6688/9591/4907 6693/9590/4907 5814/10286/4907 +f 5817/10213/4908 6692/8901/4908 6697/8900/4908 5815/10285/4908 +f 5821/10113/4909 6696/9420/4909 6129/9419/4909 5823/10381/4909 +f 5833/10054/4910 6139/9448/4910 6701/9447/4910 5824/10284/4910 +f 5830/10183/4911 6700/9583/4911 6705/9582/4911 5825/10283/4911 +f 5832/10145/4912 6704/8905/4912 6709/8904/4912 5826/10282/4912 +f 5828/10239/4913 6708/9439/4913 6135/9438/4913 5834/10053/4913 +f 5844/10057/4914 6145/9467/4914 6713/9466/4914 5835/10281/4914 +f 5843/10088/4915 6712/9575/4915 6717/9574/4915 5836/10280/4915 +f 5839/10211/4916 6716/8909/4916 6721/8908/4916 5837/10279/4916 +f 5841/10115/4917 6720/9458/4917 6141/9457/4917 5845/10382/4917 +f 6155/10060/4918 5675/9517/4918 5468/9520/4918 5969/9981/4918 5967/8932/4918 6154/8931/4918 +f 6439/8822/4919 5960/10231/4919 5958/10348/4919 6446/8819/4919 +f 6435/9752/4920 5962/10155/4920 5957/10349/4920 6442/9749/4920 +f 6006/9050/4921 5965/9999/4921 5956/10350/4921 6438/9047/4921 +f 6293/9892/4922 5961/10156/4922 5956/10350/4922 6437/9029/4922 +f 6229/9936/4923 5959/10232/4923 5957/10349/4923 6441/9758/4923 +f 6165/9894/4924 5963/10096/4924 5958/10348/4924 6445/8816/4924 +f 6440/8817/4925 5960/10231/4925 5959/10232/4925 6229/9936/4925 +f 6436/9759/4926 5962/10155/4926 5961/10156/4926 6293/9892/4926 +f 6444/9021/4927 5964/9559/4927 5963/10096/4927 6165/9894/4927 +f 6455/9060/4928 5949/10257/4928 5955/10371/4928 6010/9057/4928 +f 6451/8826/4929 5953/10127/4929 5947/10345/4929 6458/8823/4929 +f 6447/9744/4930 5951/10201/4930 5946/10346/4930 6454/9741/4930 +f 6012/9069/4931 5954/10002/4931 5945/10347/4931 6450/9066/4931 +f 6295/9914/4932 5950/10202/4932 5945/10347/4932 6449/9048/4932 +f 6231/9890/4933 5952/10128/4933 5946/10346/4933 6453/9750/4933 +f 6167/9886/4934 5948/10258/4934 5947/10345/4934 6457/8820/4934 +f 6456/9040/4935 5949/10257/4935 5948/10258/4935 6167/9886/4935 +f 6448/9751/4936 5951/10201/4936 5950/10202/4936 6295/9914/4936 +f 6452/8821/4937 5953/10127/4937 5952/10128/4937 6231/9890/4937 +f 6467/9079/4938 5940/10097/4938 5944/10003/4938 6016/9076/4938 +f 6463/8830/4939 5938/10229/4939 5936/10342/4939 6470/8827/4939 +f 6459/9736/4940 5942/10082/4940 5935/10343/4940 6466/9733/4940 +f 6018/9088/4941 5943/10004/4941 5934/10344/4941 6462/9085/4941 +f 6297/9888/4942 5941/10083/4942 5934/10344/4942 6461/9067/4942 +f 6233/9884/4943 5937/10230/4943 5935/10343/4943 6465/9742/4943 +f 6169/9962/4944 5939/10098/4944 5936/10342/4944 6469/8824/4944 +f 6464/8825/4945 5938/10229/4945 5937/10230/4945 6233/9884/4945 +f 6468/9059/4946 5940/10097/4946 5939/10098/4946 6169/9962/4946 +f 6460/9743/4947 5942/10082/4947 5941/10083/4947 6297/9888/4947 +f 6431/9022/4948 5931/10094/4948 5933/10370/4948 5998/9019/4948 +f 6427/8818/4949 5929/10125/4949 5925/10351/4949 6434/8815/4949 +f 6423/9760/4950 5927/10203/4950 5924/10352/4950 6430/9757/4950 +f 6000/9031/4951 5932/9998/4951 5923/10353/4951 6426/9028/4951 +f 6291/9912/4952 5926/10204/4952 5923/10353/4952 6425/9010/4952 +f 6227/9896/4953 5928/10126/4953 5924/10352/4953 6429/9766/4953 +f 6163/9960/4954 5930/10095/4954 5925/10351/4954 6433/8812/4954 +f 6424/9767/4955 5927/10203/4955 5926/10204/4955 6291/9912/4955 +f 6428/8813/4956 5929/10125/4956 5928/10126/4956 6227/9896/4956 +f 6432/9002/4957 5931/10094/4957 5930/10095/4957 6163/9960/4957 +f 6419/9003/4958 5916/10259/4958 5922/9994/4958 5992/9000/4958 +f 6415/8814/4959 5920/10123/4959 5914/10354/4959 6422/8811/4959 +f 6411/9768/4960 5918/10153/4960 5913/10355/4960 6418/9765/4960 +f 5994/9012/4961 5921/9995/4961 5912/10356/4961 6414/9009/4961 +f 6289/9902/4962 5917/10154/4962 5912/10356/4962 6413/8991/4962 +f 6225/9788/4963 5919/10124/4963 5913/10355/4963 6417/9774/4963 +f 6161/9898/4964 5915/10260/4964 5914/10354/4964 6421/8808/4964 +f 6420/8985/4965 5916/10259/4965 5915/10260/4965 6161/9898/4965 +f 6412/9775/4966 5918/10153/4966 5917/10154/4966 6289/9902/4966 +f 6416/8809/4967 5920/10123/4967 5919/10124/4967 6225/9788/4967 +f 6407/8986/4968 5909/10064/4968 5911/10369/4968 5986/8920/4968 +f 6403/8810/4969 5905/10233/4969 5903/10357/4969 6410/8807/4969 +f 6399/9776/4970 5907/10151/4970 5902/10358/4970 6406/9773/4970 +f 5988/8993/4971 5910/9993/4971 5901/10359/4971 6402/8990/4971 +f 6287/9790/4972 5906/10152/4972 5901/10359/4972 6401/8976/4972 +f 6223/9900/4973 5904/10234/4973 5902/10358/4973 6405/9548/4973 +f 6159/9552/4974 5908/10065/4974 5903/10357/4974 6409/8804/4974 +f 6404/8805/4975 5905/10233/4975 5904/10234/4975 6223/9900/4975 +f 6400/9549/4976 5907/10151/4976 5906/10152/4976 6287/9790/4976 +f 6408/8970/4977 5909/10064/4977 5908/10065/4977 6159/9552/4977 +f 6397/8971/4978 5892/10270/4978 5900/9989/4978 5980/8802/4978 +f 6393/8806/4979 5891/10271/4979 5894/10235/4979 6396/8803/4979 +f 6389/9550/4980 5890/10272/4980 5898/10147/4980 6392/9547/4980 +f 5982/8978/4981 5899/9990/4981 5896/10177/4981 6388/8975/4981 +f 6345/9789/4982 5895/10178/4982 5890/10272/4982 6389/9550/4982 +f 6281/9899/4983 5897/10148/4983 5891/10271/4983 6393/8806/4983 +f 6217/9551/4984 5893/10236/4984 5892/10270/4984 6397/8971/4984 +f 6396/8803/4985 5894/10235/4985 5893/10236/4985 6217/9551/4985 +f 6388/8975/4986 5896/10177/4986 5895/10178/4986 6345/9789/4986 +f 6392/9547/4987 5898/10147/4987 5897/10148/4987 6281/9899/4987 +f 5976/8963/4988 5888/9988/4988 5883/10179/4988 6364/8960/4988 +f 6365/9784/4989 5879/10269/4989 5885/10149/4989 6368/9781/4989 +f 6373/8956/4990 5881/10263/4990 5889/10365/4990 5974/8930/4990 +f 6369/8924/4991 5880/10266/4991 5887/10117/4991 6372/8921/4991 +f 6347/9805/4992 5882/10180/4992 5879/10269/4992 6365/9784/4992 +f 6283/9905/4993 5884/10150/4993 5880/10266/4993 6369/8924/4993 +f 6219/9801/4994 5886/10118/4994 5881/10263/4994 6373/8956/4994 +f 6364/8960/4995 5883/10179/4995 5882/10180/4995 6347/9805/4995 +f 6368/9781/4996 5885/10149/4996 5884/10150/4996 6283/9905/4996 +f 6372/8921/4997 5887/10117/4997 5886/10118/4997 6219/9801/4997 +f 6361/9522/4998 5868/10268/4998 5877/10368/4998 5971/8946/4998 +f 6359/10383/4999 5876/10090/4999 5869/10366/4999 6358/10384/4999 +f 6353/9778/5000 5870/10262/5000 5872/10364/5000 6356/9779/5000 +f 6351/10120/5001 5874/10119/5001 5878/10361/5001 5968/10385/5001 +f 6349/9556/5002 5875/10093/5002 5868/10268/5002 6361/9522/5002 +f 6285/9804/5003 5871/10208/5003 5869/10265/5003 6357/9786/5003 +f 6221/9958/5004 5873/10122/5004 5870/10262/5004 6353/9778/5004 +f 6356/9779/5005 5872/10205/5005 5871/10208/5005 6285/9804/5005 +f 6352/8933/5006 5874/10119/5006 5873/10122/5006 6221/9958/5006 +f 6360/9555/5007 5876/10090/5007 5875/10093/5007 6349/9556/5007 +f 6383/9504/5008 5863/10181/5008 5866/10063/5008 6157/9505/5008 +f 6379/9544/5009 5865/10080/5009 5857/10278/5009 6386/9545/5009 +f 6375/9540/5010 5861/10237/5010 5858/10276/5010 6382/9541/5010 +f 6153/9495/5011 5867/10360/5011 5859/10274/5011 6378/9496/5011 +f 6341/9553/5012 5862/10182/5012 5857/10278/5012 6385/9554/5012 +f 6277/9803/5013 5864/10081/5013 5858/10276/5013 6381/9780/5013 +f 6213/9957/5014 5860/10238/5014 5859/10274/5014 6377/8934/5014 +f 6376/9777/5015 5861/10237/5015 5860/10238/5015 6213/9957/5015 +f 6384/9521/5016 5863/10181/5016 5862/10182/5016 6341/9553/5016 +f 6380/9785/5017 5865/10080/5017 5864/10081/5017 6277/9803/5017 +f 6725/9485/5018 5846/10277/5018 5855/10059/5018 6151/9486/5018 +f 6729/9566/5019 5847/10275/5019 5852/10175/5019 6724/9567/5019 +f 6733/8912/5020 5848/10273/5020 5850/10209/5020 6728/8913/5020 +f 6147/9476/5021 5856/10058/5021 5854/10072/5021 6732/9477/5021 +f 6343/9810/5022 5851/10176/5022 5846/10277/5022 6725/9485/5022 +f 6279/9956/5023 5849/10210/5023 5847/10275/5023 6729/9566/5023 +f 6215/9808/5024 5853/10073/5024 5848/10273/5024 6733/8912/5024 +f 6728/8913/5025 5850/10209/5025 5849/10210/5025 6279/9956/5025 +f 6724/9567/5026 5852/10175/5026 5851/10176/5026 6343/9810/5026 +f 6732/9477/5027 5854/10072/5027 5853/10073/5027 6215/9808/5027 +f 6719/9478/5028 5841/10115/5028 5845/10382/5028 6142/9475/5028 +f 6715/8914/5029 5839/10211/5029 5837/10279/5029 6722/8911/5029 +f 6711/9568/5030 5843/10088/5030 5836/10280/5030 6718/9565/5030 +f 6144/9487/5031 5844/10057/5031 5835/10281/5031 6714/9484/5031 +f 6339/9816/5032 5842/10089/5032 5835/10281/5032 6713/9466/5032 +f 6275/9812/5033 5838/10212/5033 5836/10280/5033 6717/9574/5033 +f 6211/9980/5034 5840/10116/5034 5837/10279/5034 6721/8908/5034 +f 6716/8909/5035 5839/10211/5035 5838/10212/5035 6275/9812/5035 +f 6720/9458/5036 5841/10115/5036 5840/10116/5036 6211/9980/5036 +f 6712/9575/5037 5843/10088/5037 5842/10089/5037 6339/9816/5037 +f 6707/9459/5038 5828/10239/5038 5834/10053/5038 6136/9456/5038 +f 6703/8910/5039 5832/10145/5039 5826/10282/5039 6710/8907/5039 +f 6699/9576/5040 5830/10183/5040 5825/10283/5040 6706/9573/5040 +f 6138/9468/5041 5833/10054/5041 5824/10284/5041 6702/9465/5041 +f 6337/9932/5042 5829/10184/5042 5824/10284/5042 6701/9447/5042 +f 6273/9818/5043 5831/10146/5043 5825/10283/5043 6705/9582/5043 +f 6209/9814/5044 5827/10240/5044 5826/10282/5044 6709/8904/5044 +f 6708/9439/5045 5828/10239/5045 5827/10240/5045 6209/9814/5045 +f 6700/9583/5046 5830/10183/5046 5829/10184/5046 6337/9932/5046 +f 6704/8905/5047 5832/10145/5047 5831/10146/5047 6273/9818/5047 +f 6695/9440/5048 5821/10113/5048 5823/10381/5048 6130/9437/5048 +f 6691/8906/5049 5817/10213/5049 5815/10285/5049 6698/8903/5049 +f 6687/9584/5050 5819/10173/5050 5814/10286/5050 6694/9581/5050 +f 6132/9449/5051 5822/10052/5051 5813/10287/5051 6690/9446/5051 +f 6335/9820/5052 5818/10174/5052 5813/10287/5052 6689/9428/5052 +f 6271/9954/5053 5816/10214/5053 5814/10286/5053 6693/9590/5053 +f 6207/9822/5054 5820/10114/5054 5815/10285/5054 6697/8900/5054 +f 6692/8901/5055 5817/10213/5055 5816/10214/5055 6271/9954/5055 +f 6688/9591/5056 5819/10173/5056 5818/10174/5056 6335/9820/5056 +f 6696/9420/5057 5821/10113/5057 5820/10114/5057 6207/9822/5057 +f 6683/9421/5058 5810/10111/5058 5812/10048/5058 6124/9418/5058 +f 6679/8902/5059 5808/10143/5059 5804/10288/5059 6686/8899/5059 +f 6675/9592/5060 5806/10185/5060 5803/10289/5060 6682/9589/5060 +f 6126/9430/5061 5811/10049/5061 5802/10290/5061 6678/9427/5061 +f 6333/9930/5062 5805/10186/5062 5802/10290/5062 6677/9409/5062 +f 6269/9824/5063 5807/10144/5063 5803/10289/5063 6681/9598/5063 +f 6205/9978/5064 5809/10112/5064 5804/10288/5064 6685/8896/5064 +f 6676/9599/5065 5806/10185/5065 5805/10186/5065 6333/9930/5065 +f 6680/8897/5066 5808/10143/5066 5807/10144/5066 6269/9824/5066 +f 6684/9401/5067 5810/10111/5067 5809/10112/5067 6205/9978/5067 +f 6671/9402/5068 5795/10241/5068 5801/10380/5068 6118/9399/5068 +f 6667/8898/5069 5799/10141/5069 5793/10291/5069 6674/8895/5069 +f 6663/9600/5070 5797/10171/5070 5792/10292/5070 6670/9597/5070 +f 6120/9411/5071 5800/10047/5071 5791/10293/5071 6666/9408/5071 +f 6331/9828/5072 5796/10172/5072 5791/10293/5072 6665/9390/5072 +f 6267/9952/5073 5798/10142/5073 5792/10292/5073 6669/9606/5073 +f 6203/9826/5074 5794/10242/5074 5793/10291/5074 6673/8892/5074 +f 6672/9382/5075 5795/10241/5075 5794/10242/5075 6203/9826/5075 +f 6664/9607/5076 5797/10171/5076 5796/10172/5076 6331/9828/5076 +f 6668/8893/5077 5799/10141/5077 5798/10142/5077 6267/9952/5077 +f 6659/9383/5078 5788/10070/5078 5790/10043/5078 6112/9380/5078 +f 6655/8894/5079 5784/10215/5079 5782/10294/5079 6662/8891/5079 +f 6651/9608/5080 5786/10169/5080 5781/10295/5080 6658/9605/5080 +f 6114/9392/5081 5789/10044/5081 5780/10296/5081 6654/9389/5081 +f 6329/9928/5082 5785/10170/5082 5780/10296/5082 6653/9371/5082 +f 6265/9830/5083 5783/10216/5083 5781/10295/5083 6657/9614/5083 +f 6201/9976/5084 5787/10071/5084 5782/10294/5084 6661/8888/5084 +f 6656/8889/5085 5784/10215/5085 5783/10216/5085 6265/9830/5085 +f 6652/9615/5086 5786/10169/5086 5785/10170/5086 6329/9928/5086 +f 6660/9363/5087 5788/10070/5087 5787/10071/5087 6201/9976/5087 +f 6647/9364/5088 5773/10243/5088 5779/10379/5088 6106/9361/5088 +f 6643/8890/5089 5777/10078/5089 5771/10297/5089 6650/8887/5089 +f 6639/9616/5090 5775/10187/5090 5770/10298/5090 6646/9613/5090 +f 6108/9373/5091 5778/10042/5091 5769/10299/5091 6642/9370/5091 +f 6327/9834/5092 5774/10188/5092 5769/10299/5092 6641/9352/5092 +f 6263/9950/5093 5776/10079/5093 5770/10298/5093 6645/9622/5093 +f 6199/9832/5094 5772/10244/5094 5771/10297/5094 6649/8884/5094 +f 6648/9344/5095 5773/10243/5095 5772/10244/5095 6199/9832/5095 +f 6640/9623/5096 5775/10187/5096 5774/10188/5096 6327/9834/5096 +f 6644/8885/5097 5777/10078/5097 5776/10079/5097 6263/9950/5097 +f 6635/9345/5098 5764/10109/5098 5768/10038/5098 6100/9342/5098 +f 6631/8886/5099 5762/10217/5099 5760/10300/5099 6638/8883/5099 +f 6627/9624/5100 5766/10086/5100 5759/10301/5100 6634/9621/5100 +f 6102/9354/5101 5767/10039/5101 5758/10302/5101 6630/9351/5101 +f 6325/9840/5102 5765/10087/5102 5758/10302/5102 6629/9333/5102 +f 6261/9836/5103 5761/10218/5103 5759/10301/5103 6633/9630/5103 +f 6197/9974/5104 5763/10110/5104 5760/10300/5104 6637/8880/5104 +f 6632/8881/5105 5762/10217/5105 5761/10218/5105 6261/9836/5105 +f 6636/9325/5106 5764/10109/5106 5763/10110/5106 6197/9974/5106 +f 6628/9631/5107 5766/10086/5107 5765/10087/5107 6325/9840/5107 +f 6623/9326/5108 5751/10245/5108 5757/10378/5108 6094/9323/5108 +f 6619/8882/5109 5755/10139/5109 5749/10303/5109 6626/8879/5109 +f 6615/9632/5110 5753/10189/5110 5748/10304/5110 6622/9629/5110 +f 6096/9335/5111 5756/10037/5111 5747/10305/5111 6618/9332/5111 +f 6323/9926/5112 5752/10190/5112 5747/10305/5112 6617/9314/5112 +f 6259/9842/5113 5754/10140/5113 5748/10304/5113 6621/9638/5113 +f 6195/9838/5114 5750/10246/5114 5749/10303/5114 6625/8876/5114 +f 6624/9306/5115 5751/10245/5115 5750/10246/5115 6195/9838/5115 +f 6616/9639/5116 5753/10189/5116 5752/10190/5116 6323/9926/5116 +f 6620/8877/5117 5755/10139/5117 5754/10140/5117 6259/9842/5117 +f 6611/9307/5118 5744/10107/5118 5746/10033/5118 6088/9304/5118 +f 6607/8878/5119 5740/10219/5119 5738/10306/5119 6614/8875/5119 +f 6603/9640/5120 5742/10167/5120 5737/10307/5120 6610/9637/5120 +f 6090/9316/5121 5745/10034/5121 5736/10308/5121 6606/9313/5121 +f 6321/9844/5122 5741/10168/5122 5736/10308/5122 6605/9295/5122 +f 6257/9948/5123 5739/10220/5123 5737/10307/5123 6609/9646/5123 +f 6193/9846/5124 5743/10108/5124 5738/10306/5124 6613/8872/5124 +f 6608/8873/5125 5740/10219/5125 5739/10220/5125 6257/9948/5125 +f 6604/9647/5126 5742/10167/5126 5741/10168/5126 6321/9844/5126 +f 6612/9287/5127 5744/10107/5127 5743/10108/5127 6193/9846/5127 +f 6599/9288/5128 5733/10105/5128 5735/10377/5128 6082/9285/5128 +f 6595/8874/5129 5731/10137/5129 5727/10309/5129 6602/8871/5129 +f 6591/9648/5130 5729/10191/5130 5726/10310/5130 6598/9645/5130 +f 6084/9297/5131 5734/10032/5131 5725/10311/5131 6594/9294/5131 +f 6319/9924/5132 5728/10192/5132 5725/10311/5132 6593/9276/5132 +f 6255/9848/5133 5730/10138/5133 5726/10310/5133 6597/9654/5133 +f 6191/9972/5134 5732/10106/5134 5727/10309/5134 6601/8868/5134 +f 6592/9655/5135 5729/10191/5135 5728/10192/5135 6319/9924/5135 +f 6596/8869/5136 5731/10137/5136 5730/10138/5136 6255/9848/5136 +f 6600/9268/5137 5733/10105/5137 5732/10106/5137 6191/9972/5137 +f 6587/9269/5138 5718/10247/5138 5724/10028/5138 6076/9266/5138 +f 6583/8870/5139 5722/10135/5139 5716/10312/5139 6590/8867/5139 +f 6579/9656/5140 5720/10165/5140 5715/10313/5140 6586/9653/5140 +f 6078/9278/5141 5723/10029/5141 5714/10314/5141 6582/9275/5141 +f 6317/9852/5142 5719/10166/5142 5714/10314/5142 6581/9257/5142 +f 6253/9946/5143 5721/10136/5143 5715/10313/5143 6585/9662/5143 +f 6189/9850/5144 5717/10248/5144 5716/10312/5144 6589/8864/5144 +f 6588/9249/5145 5718/10247/5145 5717/10248/5145 6189/9850/5145 +f 6580/9663/5146 5720/10165/5146 5719/10166/5146 6317/9852/5146 +f 6584/8865/5147 5722/10135/5147 5721/10136/5147 6253/9946/5147 +f 6575/9250/5148 5711/10068/5148 5713/10376/5148 6070/9247/5148 +f 6571/8866/5149 5707/10221/5149 5705/10315/5149 6578/8863/5149 +f 6567/9664/5150 5709/10163/5150 5704/10316/5150 6574/9661/5150 +f 6072/9259/5151 5712/10027/5151 5703/10317/5151 6570/9256/5151 +f 6315/9922/5152 5708/10164/5152 5703/10317/5152 6569/9238/5152 +f 6251/9854/5153 5706/10222/5153 5704/10316/5153 6573/9670/5153 +f 6187/9970/5154 5710/10069/5154 5705/10315/5154 6577/8860/5154 +f 6572/8861/5155 5707/10221/5155 5706/10222/5155 6251/9854/5155 +f 6568/9671/5156 5709/10163/5156 5708/10164/5156 6315/9922/5156 +f 6576/9230/5157 5711/10068/5157 5710/10069/5157 6187/9970/5157 +f 6563/9231/5158 5696/10249/5158 5702/10023/5158 6064/9228/5158 +f 6559/8862/5159 5700/10076/5159 5694/10318/5159 6566/8859/5159 +f 6555/9672/5160 5698/10193/5160 5693/10319/5160 6562/9669/5160 +f 6066/9240/5161 5701/10024/5161 5692/10320/5161 6558/9237/5161 +f 6313/9858/5162 5697/10194/5162 5692/10320/5162 6557/9219/5162 +f 6249/9944/5163 5699/10077/5163 5693/10319/5163 6561/9678/5163 +f 6185/9856/5164 5695/10250/5164 5694/10318/5164 6565/8856/5164 +f 6564/9211/5165 5696/10249/5165 5695/10250/5165 6185/9856/5165 +f 6556/9679/5166 5698/10193/5166 5697/10194/5166 6313/9858/5166 +f 6560/8857/5167 5700/10076/5167 5699/10077/5167 6249/9944/5167 +f 6551/9212/5168 5687/10103/5168 5691/10375/5168 6058/9209/5168 +f 6547/8858/5169 5685/10223/5169 5683/10321/5169 6554/8855/5169 +f 6543/9680/5170 5689/10084/5170 5682/10322/5170 6550/9677/5170 +f 6060/9221/5171 5690/10022/5171 5681/10323/5171 6546/9218/5171 +f 6311/9864/5172 5688/10085/5172 5681/10323/5172 6545/9200/5172 +f 6247/9860/5173 5684/10224/5173 5682/10322/5173 6549/9686/5173 +f 6183/9968/5174 5686/10104/5174 5683/10321/5174 6553/8852/5174 +f 6548/8853/5175 5685/10223/5175 5684/10224/5175 6247/9860/5175 +f 6552/9192/5176 5687/10103/5176 5686/10104/5176 6183/9968/5176 +f 6544/9687/5177 5689/10084/5177 5688/10085/5177 6311/9864/5177 +f 6539/9193/5178 5662/10251/5178 5680/10018/5178 6052/9190/5178 +f 6535/8854/5179 5676/10133/5179 5655/10324/5179 6542/8851/5179 +f 6531/9688/5180 5669/10195/5180 5652/10325/5180 6538/9685/5180 +f 6054/9202/5181 5679/10019/5181 5648/10326/5181 6534/9199/5181 +f 6309/9920/5182 5666/10196/5182 5648/10326/5182 6533/9181/5182 +f 6245/9866/5183 5673/10134/5183 5652/10325/5183 6537/9694/5183 +f 6181/9862/5184 5659/10252/5184 5655/10324/5184 6541/8848/5184 +f 6540/9173/5185 5662/10251/5185 5659/10252/5185 6181/9862/5185 +f 6532/9695/5186 5669/10195/5186 5666/10196/5186 6309/9920/5186 +f 6536/8849/5187 5676/10133/5187 5673/10134/5187 6245/9866/5187 +f 6527/9174/5188 5638/10101/5188 5645/10374/5188 6046/9171/5188 +f 6523/8850/5189 5624/10225/5189 5617/10327/5189 6530/8847/5189 +f 6519/9696/5190 5631/10161/5190 5613/10328/5190 6526/9693/5190 +f 6048/9183/5191 5641/10017/5191 5610/10329/5191 6522/9180/5191 +f 6307/9868/5192 5627/10162/5192 5610/10329/5192 6521/9162/5192 +f 6243/9942/5193 5620/10226/5193 5613/10328/5193 6525/9702/5193 +f 6179/9870/5194 5634/10102/5194 5617/10327/5194 6529/8844/5194 +f 6524/8845/5195 5624/10225/5195 5620/10226/5195 6243/9942/5195 +f 6520/9703/5196 5631/10161/5196 5627/10162/5196 6307/9868/5196 +f 6528/9154/5197 5638/10101/5197 5634/10102/5197 6179/9870/5197 +f 6515/9155/5198 5599/10099/5198 5606/10013/5198 6040/9152/5198 +f 6511/8846/5199 5592/10131/5199 5578/10330/5199 6518/8843/5199 +f 6507/9704/5200 5585/10197/5200 5575/10331/5200 6514/9701/5200 +f 6042/9164/5201 5603/10014/5201 5571/10332/5201 6510/9161/5201 +f 6305/9918/5202 5582/10198/5202 5571/10332/5202 6509/9143/5202 +f 6241/9872/5203 5589/10132/5203 5575/10331/5203 6513/9710/5203 +f 6177/9966/5204 5596/10100/5204 5578/10330/5204 6517/8840/5204 +f 6508/9711/5205 5585/10197/5205 5582/10198/5205 6305/9918/5205 +f 6512/8841/5206 5592/10131/5206 5589/10132/5206 6241/9872/5206 +f 6516/9135/5207 5599/10099/5207 5596/10100/5207 6177/9966/5207 +f 6503/9136/5208 5547/10253/5208 5568/10373/5208 6034/9133/5208 +f 6499/8842/5209 5561/10129/5209 5540/10333/5209 6506/8839/5209 +f 6495/9712/5210 5554/10159/5210 5536/10334/5210 6502/9709/5210 +f 6036/9145/5211 5564/10012/5211 5533/10335/5211 6498/9142/5211 +f 6303/9876/5212 5550/10160/5212 5533/10335/5212 6497/9124/5212 +f 6239/9940/5213 5557/10130/5213 5536/10334/5213 6501/9718/5213 +f 6175/9874/5214 5543/10254/5214 5540/10333/5214 6505/8836/5214 +f 6504/9116/5215 5547/10253/5215 5543/10254/5215 6175/9874/5215 +f 6496/9719/5216 5554/10159/5216 5550/10160/5216 6303/9876/5216 +f 6500/8837/5217 5561/10129/5217 5557/10130/5217 6239/9940/5217 +f 6491/9117/5218 5522/10066/5218 5529/10008/5218 6028/9114/5218 +f 6487/8838/5219 5508/10227/5219 5501/10336/5219 6494/8835/5219 +f 6483/9720/5220 5515/10157/5220 5498/10337/5220 6490/9717/5220 +f 6030/9126/5221 5526/10009/5221 5494/10338/5221 6486/9123/5221 +f 6301/9916/5222 5512/10158/5222 5494/10338/5222 6485/9105/5222 +f 6237/9878/5223 5505/10228/5223 5498/10337/5223 6489/9726/5223 +f 6173/9964/5224 5519/10067/5224 5501/10336/5224 6493/8832/5224 +f 6488/8833/5225 5508/10227/5225 5505/10228/5225 6237/9878/5225 +f 6484/9727/5226 5515/10157/5226 5512/10158/5226 6301/9916/5226 +f 6492/9097/5227 5522/10066/5227 5519/10067/5227 6173/9964/5227 +f 6479/9098/5228 6741/10255/5228 6735/10372/5228 6022/9095/5228 +f 6475/8834/5229 6737/10074/5229 6743/10339/5229 6482/8831/5229 +f 6471/9728/5230 6739/10199/5230 6744/10340/5230 6478/9725/5230 +f 6024/9107/5231 6736/10007/5231 6745/10341/5231 6474/9104/5231 +f 6299/9882/5232 6740/10200/5232 6745/10341/5232 6473/9086/5232 +f 6235/9938/5233 6738/10075/5233 6744/10340/5233 6477/9734/5233 +f 6171/9880/5234 6742/10256/5234 6743/10339/5234 6481/8828/5234 +f 6480/9078/5235 6741/10255/5235 6742/10256/5235 6171/9880/5235 +f 6472/9735/5236 6739/10199/5236 6740/10200/5236 6299/9882/5236 +f 6476/8829/5237 6737/10074/5237 6738/10075/5237 6235/9938/5237 +f 6884/10386/5238 6883/10387/5238 6746/8953/5238 6747/8952/5238 6778/10388/5238 +f 6885/10389/5239 6859/10390/5239 6778/10388/5239 6747/8952/5239 6748/8969/5239 +f 6751/9018/5240 6752/9037/5240 6779/8059/5240 6865/8058/5240 6887/10391/5240 +f 6889/10392/5241 6867/8060/5241 6779/8059/5241 6752/9037/5241 6753/9056/5241 +f 6756/9113/5242 6892/10393/5242 6891/10394/5242 6755/9094/5242 +f 6757/9132/5243 6894/10395/5243 6892/10393/5243 6756/9113/5243 +f 6758/9151/5244 6895/10396/5244 6894/10395/5244 6757/9132/5244 +f 6845/10397/5245 6897/10398/5245 6760/9189/5245 6761/9208/5245 +f 6898/10399/5246 6845/10397/5246 6761/9208/5246 6762/9227/5246 +f 6846/10400/5247 6847/10401/5247 6764/9265/5247 6765/9284/5247 +f 6848/10402/5248 6846/10400/5248 6765/9284/5248 6766/9303/5248 +f 6849/10403/5249 6848/10402/5249 6766/9303/5249 6767/9322/5249 +f 6851/10404/5250 6850/10405/5250 6769/9360/5250 6770/9379/5250 +f 6852/10406/5251 6851/10404/5251 6770/9379/5251 6771/9398/5251 +f 6853/10407/5252 6854/10408/5252 6773/9436/5252 6774/9455/5252 +f 6775/9474/5253 6780/10409/5253 6855/10410/5253 6853/10407/5253 6774/9455/5253 +f 6856/10411/5254 6857/10412/5254 6780/10409/5254 6775/9474/5254 6776/9493/5254 +f 6859/10390/4036 6861/10413/4036 6778/10388/4036 +f 6780/10409/4036 6876/10414/4036 6855/10410/4036 +f 6882/10415/5255 6856/10411/5255 6776/9493/5255 6777/9512/5255 6881/10416/5255 6879/10417/5255 6880/10418/5255 6787/10419/5255 +f 6883/10387/5256 6888/10420/5256 6788/10421/5256 6886/10422/5256 6881/10416/5256 6777/9512/5256 6746/8953/5256 +f 6861/10413/4036 6884/10386/4036 6778/10388/4036 +f 6780/10409/4036 6857/10412/4036 6876/10414/4036 +f 6921/10423/5257 6852/10406/5257 6771/9398/5257 6772/9417/5257 6919/10424/5257 6920/10425/5257 6795/10426/5257 +f 6925/10427/5258 6926/10428/5258 6919/10424/5258 6772/9417/5258 6773/9436/5258 6854/10408/5258 6922/10429/5258 6796/10430/5258 +f 6954/10431/5259 6849/10403/5259 6767/9322/5259 6768/9341/5259 6952/10432/5259 6951/10433/5259 6953/10434/5259 6803/10435/5259 +f 6952/10432/5260 6768/9341/5260 6769/9360/5260 6850/10405/5260 6957/10436/5260 6804/10437/5260 6959/10438/5260 +f 6983/10439/5261 6898/10399/5261 6762/9227/5261 6763/9246/5261 6981/10440/5261 6980/10441/5261 6811/10442/5261 +f 6985/10443/5262 6984/10444/5262 6981/10440/5262 6763/9246/5262 6764/9265/5262 6847/10401/5262 6986/10445/5262 6812/10446/5262 +f 6908/10447/5263 6895/10396/5263 6758/9151/5263 6759/9170/5263 6904/10448/5263 6907/10449/5263 6905/10450/5263 6819/10451/5263 +f 6760/9189/5264 6897/10398/5264 6913/10452/5264 6820/10453/5264 6910/10454/5264 6904/10448/5264 6759/9170/5264 +f 6938/10455/5265 6889/10392/5265 6753/9056/5265 6754/9075/5265 6937/10456/5265 6936/10457/5265 6827/10458/5265 +f 6943/10459/5266 6942/10460/5266 6937/10456/5266 6754/9075/5266 6755/9094/5266 6891/10394/5266 6940/10461/5266 6828/10462/5266 +f 6836/10463/5267 6962/10464/5267 6885/10389/5267 6748/8969/5267 6749/8984/5267 6835/10465/5267 +f 6969/10466/5268 6970/10467/5268 6968/10468/5268 6835/10465/5268 6749/8984/5268 6750/8999/5268 6964/10469/5268 6965/10470/5268 6837/10471/5268 +f 6887/10391/5269 6964/10469/5269 6750/8999/5269 6751/9018/5269 diff --git a/selfdrive/carrot/cluster/cluster_config.py b/selfdrive/carrot/cluster/cluster_config.py new file mode 100644 index 000000000..0ff557e36 --- /dev/null +++ b/selfdrive/carrot/cluster/cluster_config.py @@ -0,0 +1,240 @@ +from __future__ import annotations + +import time +from dataclasses import dataclass + +DESIGN_WIDTH = 1920 +DESIGN_HEIGHT = 480 + +Color3 = tuple[int, int, int] +Color4 = tuple[int, int, int, int] + + +@dataclass(frozen=True, slots=True) +class ClusterTheme: + name: str + is_dark: bool + bg: Color3 + panel_bg: Color3 + text: Color3 + muted: Color3 + faint: Color3 + road: Color3 + road_edge: Color3 + lane_marking_border: Color4 + road_edge_backing: Color4 + path_shadow: Color4 + path_uncertainty: Color4 + path_body: Color4 + path_highlight: Color4 + world_label_shadow: Color3 + world_label_text: Color3 + clock_bg: Color4 + clock_outline: Color4 + clock_text: Color3 + gauge_bg: Color3 + gauge_midline: Color3 + inactive_signal_fill: Color4 + inactive_signal_outline: Color3 + route_panel_bg: Color3 + route_video_bg: Color3 + route_video_status: Color3 + primary_vehicle: Color3 + model_vehicle: Color3 + default_vehicle: Color3 + + +CLUSTER_THEME_AUTO = 0 +CLUSTER_THEME_DARK = 1 +CLUSTER_THEME_LIGHT = 2 +CLUSTER_THEME_PARAM = "ClusterHudTheme" +CLUSTER_LIVE_FPS_PARAM = "ClusterHudLiveFps" +AUTO_DARK_START_HOUR = 18 +AUTO_LIGHT_START_HOUR = 6 + +LIGHT_CLUSTER_THEME = ClusterTheme( + name="light", + is_dark=False, + bg=(244, 246, 248), + panel_bg=(250, 251, 252), + text=(20, 24, 28), + muted=(104, 112, 120), + faint=(214, 220, 226), + road=(218, 222, 226), + road_edge=(108, 122, 138), + lane_marking_border=(54, 62, 70, 205), + road_edge_backing=(72, 82, 92, 118), + path_shadow=(56, 72, 88, 70), + path_uncertainty=(112, 169, 255, 74), + path_body=(34, 126, 255, 220), + path_highlight=(222, 239, 255, 238), + world_label_shadow=(245, 248, 252), + world_label_text=(8, 10, 12), + clock_bg=(8, 10, 12, 150), + clock_outline=(255, 255, 255, 72), + clock_text=(255, 255, 255), + gauge_bg=(232, 236, 240), + gauge_midline=(88, 96, 104), + inactive_signal_fill=(195, 202, 209, 92), + inactive_signal_outline=(168, 176, 184), + route_panel_bg=(248, 250, 252), + route_video_bg=(18, 20, 22), + route_video_status=(212, 218, 224), + primary_vehicle=(50, 66, 82), + model_vehicle=(88, 100, 112), + default_vehicle=(70, 78, 88), +) + +DARK_CLUSTER_THEME = ClusterTheme( + name="dark", + is_dark=True, + bg=(7, 10, 14), + panel_bg=(18, 23, 29), + text=(238, 242, 247), + muted=(150, 160, 172), + faint=(66, 76, 88), + road=(30, 36, 43), + road_edge=(118, 138, 158), + lane_marking_border=(3, 6, 10, 205), + road_edge_backing=(4, 8, 12, 196), + path_shadow=(0, 0, 0, 110), + path_uncertainty=(92, 154, 255, 82), + path_body=(48, 146, 255, 230), + path_highlight=(220, 238, 255, 245), + world_label_shadow=(0, 0, 0), + world_label_text=(238, 242, 247), + clock_bg=(0, 0, 0, 172), + clock_outline=(238, 242, 247, 72), + clock_text=(255, 255, 255), + gauge_bg=(18, 23, 29), + gauge_midline=(98, 112, 128), + inactive_signal_fill=(74, 86, 100, 92), + inactive_signal_outline=(94, 108, 124), + route_panel_bg=(16, 20, 25), + route_video_bg=(5, 8, 12), + route_video_status=(184, 194, 206), + primary_vehicle=(92, 112, 134), + model_vehicle=(108, 122, 138), + default_vehicle=(84, 96, 110), +) + + +def normalize_cluster_theme_mode(value: object) -> str: + if isinstance(value, str): + normalized = value.strip().lower() + if normalized in ("auto", "dark", "light"): + return normalized + try: + value = int(normalized) + except ValueError: + return "auto" + if value == CLUSTER_THEME_DARK: + return "dark" + if value == CLUSTER_THEME_LIGHT: + return "light" + return "auto" + + +def normalize_cluster_live_fps(value: object) -> float: + if isinstance(value, str): + normalized = value.strip() + try: + value = int(normalized) + except ValueError: + return 0.0 + try: + mode = int(value) + except (TypeError, ValueError): + return 0.0 + if mode == 1: + return 10.0 + if mode == 2: + return 20.0 + if mode == 3: + return 30.0 + return 0.0 + + +def current_cluster_theme(mode: object = "auto", now: float | None = None) -> ClusterTheme: + normalized = normalize_cluster_theme_mode(mode) + if normalized == "dark": + return DARK_CLUSTER_THEME + if normalized == "light": + return LIGHT_CLUSTER_THEME + + local_hour = time.localtime(now).tm_hour if now is not None else time.localtime().tm_hour + if local_hour >= AUTO_DARK_START_HOUR or local_hour < AUTO_LIGHT_START_HOUR: + return DARK_CLUSTER_THEME + return LIGHT_CLUSTER_THEME + + +BG = LIGHT_CLUSTER_THEME.bg +PANEL_BG = LIGHT_CLUSTER_THEME.panel_bg +TEXT = LIGHT_CLUSTER_THEME.text +MUTED = LIGHT_CLUSTER_THEME.muted +FAINT = LIGHT_CLUSTER_THEME.faint +ROAD = LIGHT_CLUSTER_THEME.road +ROAD_EDGE = LIGHT_CLUSTER_THEME.road_edge +WHITE = (255, 255, 255) +BLUE = (38, 132, 255) +BLUE_SOFT = (168, 207, 255) +GREEN = (20, 188, 104) +AMBER = (244, 172, 54) +RED = (222, 72, 64) +EGO = (32, 89, 179) +CAR_DARK = LIGHT_CLUSTER_THEME.default_vehicle + +MAX_SPEED_KPH = 140.0 +MAX_ACCEL_MPS2 = 5.0 +CONTROLLER_ACCEL_MPS2 = 3.2 +CONTROLLER_BRAKE_MPS2 = 5.0 +COAST_DECEL_MPS2 = 0.18 +DRAG_DECEL_PER_MPS = 0.012 +LANE_CHANGE_SECONDS = 4.2 +LANE_CHANGE_MIN_SECONDS = 2.2 +LANE_CHANGE_MAX_SECONDS = 4.8 +LANE_RECENTER_SECONDS = 1.35 +MODEL_DIRECT_LANE_RECENTER_SECONDS = 0.85 +DEFAULT_LANE_WIDTH_M = 3.6 +MAX_STEERING_ANGLE_DEG = 45.0 +TURN_SIGNAL_SECONDS = 5.4 +TURN_SIGNAL_BLINK_PERIOD_SECONDS = 1.0 +TURN_SIGNAL_BLINK_ON_SECONDS = TURN_SIGNAL_BLINK_PERIOD_SECONDS * 0.5 + +CAMERA_CENTER_X = 1050.0 +CAMERA_HORIZON_Y = 30.0 +CAMERA_HEIGHT_M = 1.45 +CAMERA_FOCAL_X = 240.0 +CAMERA_FOCAL_Y = 1050.0 +ROAD_NEAR_M = 0.75 +ROAD_FAR_M = 90.0 +ROAD_CURVE_M_PER_M2 = 0.0042 +EGO_FORWARD_M = 4.18 +PATH_START_M = 6.70 +PATH_END_M = 72.0 +PATH_HEIGHT_M = 0.10 +PATH_LANE_CHANGE_CURVE_START_M = 6.70 +PATH_LANE_CHANGE_CURVE_END_M = 15.50 +SURROUND_MAX_YAW_DEG = 180.0 +SURROUND_MAX_PITCH_DEG = 18.0 +SURROUND_VIEW_SMOOTH_SECONDS = 0.16 +SURROUND_CAMERA_DISTANCE_M = 6.3 +SURROUND_CAMERA_HEIGHT_M = 2.65 +SURROUND_TARGET_FORWARD_M = 7.6 +SURROUND_TARGET_HEIGHT_M = 0.25 +SURROUND_CENTER_Y = 265.0 +SURROUND_FOCAL_X = 315.0 +SURROUND_FOCAL_Y = 355.0 +SURROUND_ROAD_REAR_M = -70.0 +SURROUND_ROAD_FRONT_M = 115.0 +SURROUND_ROAD_STEPS = 96 +SURROUND_ROAD_NEAR_DEPTH_M = 0.75 +VEHICLE_WIDTH_M = 1.82 +VEHICLE_LENGTH_M = 4.35 +VEHICLE_SURROUND_WIDTH_M = 1.05 +VEHICLE_SURROUND_LENGTH_M = 1.85 +VEHICLE_HEIGHT_M = 1.35 +VEHICLE_SURROUND_HEIGHT_MULTIPLIER = 3.0 +VEHICLE_LANE_CHANGE_SLOPE = 0.0 +VEHICLE_AA_SCALE = 3 +VEHICLE_CORNER_RADIUS_PX = 7.5 diff --git a/selfdrive/carrot/cluster/cluster_gamepad.py b/selfdrive/carrot/cluster/cluster_gamepad.py new file mode 100644 index 000000000..8735ea337 --- /dev/null +++ b/selfdrive/carrot/cluster/cluster_gamepad.py @@ -0,0 +1,214 @@ +from __future__ import annotations + +import time +from typing import Any + +from cluster_config import SURROUND_MAX_PITCH_DEG, SURROUND_MAX_YAW_DEG +from cluster_models import SimulatorInput + + +TRIGGER_DEADZONE = 0.03 +STEERING_DEADZONE = 0.06 +VIEW_ROTATION_DEADZONE = 0.08 +GAMEPAD_WARMUP_SECONDS = 0.6 +LEFT_SIGNAL_BUTTONS = (4, 9, 13) +RIGHT_SIGNAL_BUTTONS = (5, 10, 14) + + +def normalize_signed_axis(axis_value: float | int) -> float: + value = float(axis_value) + if value < -1.0 or value > 1.0: + value = value / 32767.0 if value >= 0 else value / 32768.0 + return max(-1.0, min(1.0, value)) + + +def normalize_trigger_axis(axis_value: float | int) -> float: + value = float(axis_value) + if value < -1.0 or value > 1.0: + if value < 0.0: + value = (value + 32768.0) / 65535.0 + else: + value = value / 32767.0 + elif value < 0.0: + value = (value + 1.0) * 0.5 + + if value < TRIGGER_DEADZONE: + return 0.0 + return max(0.0, min(1.0, value)) + + +def normalize_stick(axis_value: float) -> float: + if abs(axis_value) < STEERING_DEADZONE: + return 0.0 + return max(-1.0, min(1.0, axis_value)) + + +def normalize_view_axis(axis_value: float) -> float: + if abs(axis_value) < VIEW_ROTATION_DEADZONE: + return 0.0 + return max(-1.0, min(1.0, axis_value)) + + +class DualSenseSimulator: + def __init__(self, controller_index: int): + import pygame + + self.pygame: Any = pygame + self.controller: Any | None = None + self.joystick: Any | None = None + self.using_controller_api = False + + pygame.init() + pygame.joystick.init() + count = pygame.joystick.get_count() + if count == 0: + pygame.quit() + raise SystemExit("No gamepad found. Use --input random to run without a controller.") + + try: + from pygame._sdl2 import controller as sdl_controller + + sdl_controller.init() + if sdl_controller.is_controller(controller_index): + self.controller = sdl_controller.Controller(controller_index) + self.using_controller_api = True + except Exception: + self.controller = None + self.using_controller_api = False + + if self.controller is None: + self.joystick = pygame.joystick.Joystick(controller_index) + self.joystick.init() + + self.throttle = 0.0 + self.brake = 0.0 + self.steering = 0.0 + self.view_rotate_x = 0.0 + self.view_rotate_y = 0.0 + self.left_signal_requested = False + self.right_signal_requested = False + self.warmup_until = time.perf_counter() + GAMEPAD_WARMUP_SECONDS + + def close(self) -> None: + if self.controller is not None: + self.controller.quit() + if self.joystick is not None: + self.joystick.quit() + self.pygame.quit() + + def _button_down(self, button_indexes: tuple[int, ...]) -> bool: + if self.using_controller_api: + return self._controller_button_down(button_indexes) + return any(index < self.joystick.get_numbuttons() and self.joystick.get_button(index) for index in button_indexes) + + def _controller_button_down(self, button_indexes: tuple[int, ...]) -> bool: + return any(self.controller.get_button(index) for index in button_indexes) + + def _hat_left_down(self) -> bool: + if self.joystick is None or self.joystick.get_numhats() == 0: + return False + return self.joystick.get_hat(0)[0] < 0 + + def _hat_right_down(self) -> bool: + if self.joystick is None or self.joystick.get_numhats() == 0: + return False + return self.joystick.get_hat(0)[0] > 0 + + def _read_motion(self) -> tuple[float, float, float]: + if self.using_controller_api: + steering = normalize_stick( + normalize_signed_axis(self.controller.get_axis(self.pygame.CONTROLLER_AXIS_LEFTX)) + ) + brake = normalize_trigger_axis( + self.controller.get_axis(self.pygame.CONTROLLER_AXIS_TRIGGERLEFT) + ) + throttle = normalize_trigger_axis( + self.controller.get_axis(self.pygame.CONTROLLER_AXIS_TRIGGERRIGHT) + ) + return throttle, brake, steering + + steering = normalize_stick( + normalize_signed_axis(self.joystick.get_axis(0) if self.joystick.get_numaxes() > 0 else 0.0) + ) + brake = normalize_trigger_axis( + self.joystick.get_axis(4) if self.joystick.get_numaxes() > 4 else 0.0 + ) + throttle = normalize_trigger_axis( + self.joystick.get_axis(5) if self.joystick.get_numaxes() > 5 else 0.0 + ) + return throttle, brake, steering + + def _read_view_rotation(self) -> tuple[float, float]: + if self.using_controller_api: + x_axis = normalize_view_axis( + normalize_signed_axis(self.controller.get_axis(self.pygame.CONTROLLER_AXIS_RIGHTX)) + ) + y_axis = normalize_view_axis( + normalize_signed_axis(self.controller.get_axis(self.pygame.CONTROLLER_AXIS_RIGHTY)) + ) + return x_axis, y_axis + + if self.joystick is None: + return 0.0, 0.0 + x_axis = normalize_view_axis( + normalize_signed_axis(self.joystick.get_axis(2) if self.joystick.get_numaxes() > 2 else 0.0) + ) + y_axis = normalize_view_axis( + normalize_signed_axis(self.joystick.get_axis(3) if self.joystick.get_numaxes() > 3 else 0.0) + ) + return x_axis, y_axis + + def _read_signal_buttons(self) -> tuple[bool, bool]: + if self.using_controller_api: + left = any( + self.controller.get_button(button) + for button in ( + self.pygame.CONTROLLER_BUTTON_DPAD_LEFT, + self.pygame.CONTROLLER_BUTTON_LEFTSHOULDER, + ) + ) + right = any( + self.controller.get_button(button) + for button in ( + self.pygame.CONTROLLER_BUTTON_DPAD_RIGHT, + self.pygame.CONTROLLER_BUTTON_RIGHTSHOULDER, + ) + ) + return left, right + + left = self._button_down(LEFT_SIGNAL_BUTTONS) or self._hat_left_down() + right = self._button_down(RIGHT_SIGNAL_BUTTONS) or self._hat_right_down() + return left, right + + def read_input(self) -> SimulatorInput: + self.pygame.event.pump() + self.throttle, self.brake, self.steering = self._read_motion() + self.view_rotate_x, self.view_rotate_y = self._read_view_rotation() + self.left_signal_requested, self.right_signal_requested = self._read_signal_buttons() + if time.perf_counter() < self.warmup_until: + self.throttle = 0.0 + self.brake = 0.0 + self.steering = 0.0 + self.view_rotate_x = 0.0 + self.view_rotate_y = 0.0 + self.left_signal_requested = False + self.right_signal_requested = False + return SimulatorInput( + throttle=self.throttle, + brake=self.brake, + steering=self.steering, + surround_yaw_deg=self.view_rotate_x * SURROUND_MAX_YAW_DEG, + surround_pitch_deg=-self.view_rotate_y * SURROUND_MAX_PITCH_DEG, + surround_view_active=self.view_rotate_x != 0.0 or self.view_rotate_y != 0.0, + left_signal_requested=self.left_signal_requested, + right_signal_requested=self.right_signal_requested, + ) + + def status_text(self) -> str: + left = "L" if self.left_signal_requested else "-" + right = "R" if self.right_signal_requested else "-" + return ( + f"R2={self.throttle:.2f} L2={self.brake:.2f} " + f"LSX={self.steering:+.2f} RS={self.view_rotate_x:+.2f},{self.view_rotate_y:+.2f} " + f"SIG={left}{right}" + ) diff --git a/selfdrive/carrot/cluster/cluster_git_status.py b/selfdrive/carrot/cluster/cluster_git_status.py new file mode 100644 index 000000000..93e09c4d1 --- /dev/null +++ b/selfdrive/carrot/cluster/cluster_git_status.py @@ -0,0 +1,199 @@ +from __future__ import annotations + +import os +import subprocess +import threading +import time +from pathlib import Path + +from cluster_models import GitBranchStatus + + +GIT_STATUS_REFRESH_SECONDS = 60.0 +GIT_COMMAND_TIMEOUT_SECONDS = 4.0 + + +def find_git_root(start: Path) -> Path | None: + path = start.resolve() + candidates = (path, *path.parents) + for candidate in candidates: + if (candidate / ".git").exists(): + return candidate + return None + + +def resolve_git_dir(repo_path: Path) -> Path | None: + git_path = repo_path / ".git" + if git_path.is_dir(): + return git_path + if not git_path.is_file(): + return None + try: + text = git_path.read_text(encoding="utf-8", errors="replace").strip() + except OSError: + return None + prefix = "gitdir:" + if not text.lower().startswith(prefix): + return None + target = Path(text[len(prefix) :].strip()) + if not target.is_absolute(): + target = repo_path / target + return target + + +def read_head_branch(repo_path: Path) -> str | None: + git_dir = resolve_git_dir(repo_path) + if git_dir is None: + return None + try: + head = (git_dir / "HEAD").read_text(encoding="utf-8", errors="replace").strip() + except OSError: + return None + ref_prefix = "ref: refs/heads/" + if head.startswith(ref_prefix): + return head[len(ref_prefix) :] + return head[:12] if head else None + + +class GitBranchStatusProvider: + def __init__( + self, + start_path: Path, + refresh_interval_s: float = GIT_STATUS_REFRESH_SECONDS, + command_timeout_s: float = GIT_COMMAND_TIMEOUT_SECONDS, + ) -> None: + self.repo_path = find_git_root(start_path) + self.refresh_interval_s = max(5.0, float(refresh_interval_s)) + self.command_timeout_s = max(0.5, float(command_timeout_s)) + initial_branch = read_head_branch(self.repo_path) if self.repo_path is not None else None + initial_detail = "확인 중" if self.repo_path is not None else "저장소 없음" + self._status = GitBranchStatus(initial_branch or "git", "unknown", initial_detail) + self._next_refresh = 0.0 + self._lock = threading.Lock() + self._worker: threading.Thread | None = None + + def status(self) -> GitBranchStatus: + now = time.monotonic() + with self._lock: + worker_alive = self._worker is not None and self._worker.is_alive() + if self.repo_path is not None and now >= self._next_refresh and not worker_alive: + self._next_refresh = now + self.refresh_interval_s + self._worker = threading.Thread(target=self._refresh, name="cluster-git-status", daemon=True) + self._worker.start() + return self._status + + def _refresh(self) -> None: + status = self._read_status() + with self._lock: + self._status = status + + def _read_status(self) -> GitBranchStatus: + if self.repo_path is None: + return GitBranchStatus("git", "unknown", "저장소 없음") + + branch = self._current_branch() + if branch is None: + return GitBranchStatus(read_head_branch(self.repo_path) or "HEAD", "unknown", "브렌치 아님") + + remote_name, remote_branch = self._tracking_branch(branch) + if remote_name is None or remote_branch is None: + return GitBranchStatus(branch, "missing", "원격 설정 없음") + + remote_exists = self._remote_branch_exists(remote_name, remote_branch) + if remote_exists is False: + return GitBranchStatus(branch, "missing", "원격에서 삭제됨") + if remote_exists is None: + return GitBranchStatus(branch, "unknown", "원격 확인 실패") + + behind_count = self._behind_count(remote_name, remote_branch) + if behind_count is None: + return GitBranchStatus(branch, "unknown", "pull 확인 실패") + if behind_count > 0: + return GitBranchStatus(branch, "pull", f"git pull 가능 +{behind_count}") + return GitBranchStatus(branch, "ok") + + def _current_branch(self) -> str | None: + result = self._git("branch", "--show-current", timeout_s=1.0) + if result.returncode == 0: + branch = result.stdout.strip() + if branch: + return branch + return None + + def _tracking_branch(self, branch: str) -> tuple[str | None, str | None]: + remotes = self._remote_names() + if not remotes: + return None, None + + upstream_result = self._git("for-each-ref", "--format=%(upstream:short)", f"refs/heads/{branch}", timeout_s=1.0) + upstream = upstream_result.stdout.strip() if upstream_result.returncode == 0 else "" + if upstream: + for remote_name in sorted(remotes, key=len, reverse=True): + prefix = f"{remote_name}/" + if upstream.startswith(prefix): + remote_branch = upstream[len(prefix) :] + if remote_branch: + return remote_name, remote_branch + + remote_name = "origin" if "origin" in remotes else remotes[0] + return remote_name, branch + + def _remote_names(self) -> list[str]: + remotes_result = self._git("remote", timeout_s=1.0) + if remotes_result.returncode != 0: + return [] + return [line.strip() for line in remotes_result.stdout.splitlines() if line.strip()] + + def _remote_branch_exists(self, remote_name: str, remote_branch: str) -> bool | None: + result = self._git( + "ls-remote", + "--exit-code", + "--heads", + remote_name, + remote_branch, + timeout_s=self.command_timeout_s, + ) + if result.returncode == 0: + return True + if result.returncode == 2: + return False + return None + + def _behind_count(self, remote_name: str, remote_branch: str) -> int | None: + tracking_ref = f"refs/remotes/{remote_name}/{remote_branch}" + fetch_result = self._git( + "fetch", + "--quiet", + "--prune", + remote_name, + f"+refs/heads/{remote_branch}:{tracking_ref}", + timeout_s=self.command_timeout_s, + ) + if fetch_result.returncode != 0: + return None + + result = self._git("rev-list", "--count", f"HEAD..{tracking_ref}", timeout_s=1.0) + if result.returncode != 0: + return None + try: + return max(0, int(result.stdout.strip())) + except ValueError: + return None + + def _git(self, *args: str, timeout_s: float) -> subprocess.CompletedProcess[str]: + env = os.environ.copy() + env["GIT_TERMINAL_PROMPT"] = "0" + try: + return subprocess.run( + ("git", "-C", str(self.repo_path), *args), + stdout=subprocess.PIPE, + stderr=subprocess.PIPE, + text=True, + encoding="utf-8", + errors="replace", + env=env, + timeout=timeout_s, + check=False, + ) + except (OSError, subprocess.TimeoutExpired) as exc: + return subprocess.CompletedProcess(args, returncode=124, stdout="", stderr=str(exc)) diff --git a/selfdrive/carrot/cluster/cluster_live.py b/selfdrive/carrot/cluster/cluster_live.py new file mode 100644 index 000000000..6ed48b348 --- /dev/null +++ b/selfdrive/carrot/cluster/cluster_live.py @@ -0,0 +1,186 @@ +from __future__ import annotations + +import sys +import time +from pathlib import Path +from typing import Any + +from cluster_config import BLUE, DEFAULT_LANE_WIDTH_M +from cluster_models import ClusterUiState, LaneMarking +from cluster_route_replay import RouteLogParser, frame_to_state +from cluster_utils import clamp + + +def find_openpilot_root(start: Path) -> Path | None: + for path in (start, *start.parents): + if (path / "cereal").exists() and (path / "selfdrive").exists(): + return path + nested = path / "openpilot" + if (nested / "cereal").exists() and (nested / "selfdrive").exists(): + return nested + return None + + +OPENPILOT_ROOT = find_openpilot_root(Path(__file__).resolve().parent) +if OPENPILOT_ROOT is not None: + sys.path.insert(0, str(OPENPILOT_ROOT)) + + +LIVE_SERVICES_BASE = ( + "carState", + "modelV2", + "radarState", + "liveTracks", + "longitudinalPlan", + "lateralPlan", + "controlsState", + "cameraOdometry", + "drivingModelData", + "navInstruction", + "navInstructionCarrot", +) +LIVE_CAN_SERVICES = ("can",) + + +class OpenpilotLiveSource: + def __init__(self, include_can: bool = True, timeout_ms: int = 0) -> None: + try: + import cereal.messaging as messaging + except Exception as exc: + raise RuntimeError( + "Openpilot live input requires cereal.messaging. Run from an openpilot environment " + "or use --input route/random for local checks." + ) from exc + + self.messaging: Any = messaging + self.services = list(LIVE_SERVICES_BASE + (LIVE_CAN_SERVICES if include_can else ())) + self.sm = messaging.SubMaster(self.services) + self.parser = RouteLogParser() + self.timeout_ms = max(0, int(timeout_ms)) + self.last_state: ClusterUiState | None = None + self.start_t = time.monotonic() + self.frames = 0 + + def update(self) -> ClusterUiState: + self.sm.update(self.timeout_ms) + self._update_current_speed() + + for service in self.services: + if not self._service_updated(service): + continue + event_t = self._service_time(service) + self._apply_service_update(service, event_t) + + if self._service_alive("carState"): + event_t = self._service_time("carState") + frame = self.parser._frame_from_car_state(self.sm["carState"], event_t) + self.last_state = frame_to_state(frame) + self.frames += 1 + return self.last_state + + self.last_state = standby_state() + return self.last_state + + def status_text(self) -> str: + alive = sum(1 for service in self.services if self._service_alive(service)) + updated = sum(1 for service in self.services if self._service_updated(service)) + can_status = "can" if "can" in self.services else "no-can" + age = time.monotonic() - self.start_t + fps = self.frames / age if age > 0.1 else 0.0 + radar_count = len(self.last_state.radar_points) if self.last_state is not None else 0 + detected_count = len(self.last_state.detected_vehicles) if self.last_state is not None else 0 + return ( + f"live {can_status} alive={alive}/{len(self.services)} upd={updated} state={fps:.1f}Hz " + f"radar={radar_count} detected={detected_count}" + ) + + def close(self) -> None: + return None + + def _apply_service_update(self, service: str, event_t: float) -> None: + data = self.sm[service] + if service == "drivingModelData": + self.parser._update_driving_model(data) + elif service == "modelV2": + self.parser._update_model_v2(data, event_t) + elif service == "lateralPlan": + self.parser._update_lateral_plan(data) + elif service in ("navInstruction", "navInstructionCarrot"): + self.parser._update_nav_instruction(data) + elif service == "longitudinalPlan": + self.parser._update_longitudinal_plan(data) + elif service == "controlsState": + self.parser._update_controls_state(data) + elif service == "cameraOdometry": + self.parser._update_camera_odometry(data, self._service_valid(service)) + elif service == "radarState": + self.parser._update_radar_state(data, event_t) + elif service == "liveTracks": + self.parser._update_live_tracks(data, event_t) + elif service == "can": + self.parser._update_can_detections(data, event_t) + + def _update_current_speed(self) -> None: + if not self._service_alive("carState"): + return + try: + self.parser.current_speed_kph = clamp(float(self.sm["carState"].vEgo) * 3.6, 0.0, 140.0) + except Exception: + return + + def _service_time(self, service: str) -> float: + try: + mono_time = self.sm.logMonoTime.get(service, 0) + except AttributeError: + mono_time = 0 + return float(mono_time) / 1_000_000_000.0 if mono_time else time.monotonic() + + def _service_alive(self, service: str) -> bool: + try: + return bool(self.sm.alive.get(service, False)) + except AttributeError: + return False + + def _service_updated(self, service: str) -> bool: + try: + return bool(self.sm.updated.get(service, False)) + except AttributeError: + return False + + def _service_valid(self, service: str) -> bool: + try: + return bool(self.sm.valid.get(service, True)) + except AttributeError: + return True + + +def standby_state() -> ClusterUiState: + return ClusterUiState( + speed_kph=0.0, + accel_mps2=0.0, + steering=0.0, + speed_limit_kph=None, + cruise_kph=None, + cruise_display_state="off", + left_signal=False, + right_signal=False, + left_blindspot=False, + right_blindspot=False, + lane_change=None, + lane_change_phase="idle", + lane_change_progress=0.0, + highlight_lane=None, + highlight_lane_offset=None, + ego_lane_offset=0.0, + road_view_lane_position=0.0, + camera_lane_center_offset_m=None, + lane_width_m=DEFAULT_LANE_WIDTH_M, + steering_angle_deg=None, + surround_yaw_deg=0.0, + surround_pitch_deg=0.0, + surround_view_active=False, + lanes=( + LaneMarking(-0.5, BLUE, "solid", width=7), + LaneMarking(0.5, BLUE, "solid", width=7), + ), + ) diff --git a/selfdrive/carrot/cluster/cluster_models.py b/selfdrive/carrot/cluster/cluster_models.py new file mode 100644 index 000000000..c56f9c71a --- /dev/null +++ b/selfdrive/carrot/cluster/cluster_models.py @@ -0,0 +1,230 @@ +from __future__ import annotations + +from dataclasses import dataclass +from typing import Literal + +from cluster_config import DEFAULT_LANE_WIDTH_M, WHITE + +CruiseDisplayState = Literal["off", "paused", "engaged"] +GitBranchStatusState = Literal["ok", "pull", "missing", "unknown"] + + +@dataclass(frozen=True, slots=True) +class GitBranchStatus: + branch: str + state: GitBranchStatusState + detail: str = "" + + +@dataclass(frozen=True, slots=True) +class ModelPathPoint: + forward_m: float + lateral_m: float + lateral_std_m: float | None = None + speed_mps: float | None = None + accel_mps2: float | None = None + orientation_rad: float | None = None + orientation_rate_rps: float | None = None + + +@dataclass(frozen=True, slots=True) +class ModelRiskPoint: + t_s: float + brake_disengage: float = 0.0 + gas_disengage: float = 0.0 + steer_override: float = 0.0 + hard_brake_3: float = 0.0 + hard_brake_4: float = 0.0 + hard_brake_5: float = 0.0 + gas_press: float = 0.0 + brake_press: float = 0.0 + + +@dataclass(frozen=True, slots=True) +class LaneMarking: + offset: float + color: tuple[int, int, int] = WHITE + style: str = "solid" + visible: bool = True + width: int = 5 + model_points: tuple[ModelPathPoint, ...] = () + model_lateral_shift_m: float = 0.0 + + +@dataclass(frozen=True, slots=True) +class RouteOverlay: + video_rgba: bytes | None = None + video_width: int = 0 + video_height: int = 0 + video_frame_id: str | None = None + video_status: str | None = None + data_lines: tuple[str, ...] = () + + +@dataclass(frozen=True, slots=True) +class DetectedVehicle: + label: str + longitudinal_m: float + lateral_m: float + source: str = "route" + probability: float = 1.0 + relative_speed_mps: float | None = None + absolute_speed_kph: float | None = None + acceleration_mps2: float | None = None + cut_in: bool = False + primary: bool = False + ttc_s: float | None = None + x_std_m: float | None = None + y_std_m: float | None = None + + +@dataclass(frozen=True, slots=True) +class RadarPoint: + label: str + longitudinal_m: float + lateral_m: float + source: str + relative_speed_mps: float | None = None + absolute_speed_kph: float | None = None + lateral_speed_mps: float | None = None + relative_accel_mps2: float | None = None + probability: float | None = None + valid: int | None = None + valid_count: int | None = None + in_my_lane: int | None = None + + +@dataclass(frozen=True, slots=True) +class SimulatorInput: + throttle: float = 0.0 + brake: float = 0.0 + steering: float = 0.0 + steering_angle_deg: float | None = None + camera_lane_center_offset_m: float | None = None + camera_lane_width_m: float = DEFAULT_LANE_WIDTH_M + surround_yaw_deg: float = 0.0 + surround_pitch_deg: float = 0.0 + surround_view_active: bool = False + left_signal_requested: bool = False + right_signal_requested: bool = False + + +@dataclass(frozen=True, slots=True) +class ClusterUiState: + speed_kph: float + accel_mps2: float + steering: float + speed_limit_kph: int | None + cruise_kph: int | None + cruise_display_state: CruiseDisplayState + left_signal: bool + right_signal: bool + left_blindspot: bool + right_blindspot: bool + lane_change: str | None + lane_change_phase: str + lane_change_progress: float + highlight_lane: str | None + highlight_lane_offset: float | None + ego_lane_offset: float + road_view_lane_position: float + camera_lane_center_offset_m: float | None + lane_width_m: float + steering_angle_deg: float | None + surround_yaw_deg: float + surround_pitch_deg: float + surround_view_active: bool + lanes: tuple[LaneMarking, ...] + extra_left_lane_visible: bool = False + extra_right_lane_visible: bool = False + left_road_edge_offset: float | None = None + right_road_edge_offset: float | None = None + left_road_edge_points: tuple[ModelPathPoint, ...] = () + right_road_edge_points: tuple[ModelPathPoint, ...] = () + left_road_edge_lateral_shift_m: float = 0.0 + right_road_edge_lateral_shift_m: float = 0.0 + throttle: float = 0.0 + brake: float = 0.0 + model_path: tuple[ModelPathPoint, ...] = () + detected_vehicles: tuple[DetectedVehicle, ...] = () + radar_points: tuple[RadarPoint, ...] = () + route_overlay: RouteOverlay | None = None + center_clock_text: str | None = None + planned_speed_kph: float | None = None + planned_accel_mps2: float | None = None + planned_curvature_m_inv: float | None = None + should_stop: bool = False + model_confidence: str | None = None + model_turn_speed_kph: float | None = None + engaged_prob: float | None = None + desire_state: tuple[float, ...] = () + desire_prediction: tuple[tuple[float, ...], ...] = () + risk_points: tuple[ModelRiskPoint, ...] = () + brake_disengage_risk: float = 0.0 + gas_disengage_risk: float = 0.0 + steer_override_risk: float = 0.0 + hard_brake_risk: float = 0.0 + gas_press_prob: float = 0.0 + brake_press_prob: float = 0.0 + disengage_risk: float = 0.0 + hard_brake_predicted: bool = False + lane_change_available_left: bool | None = None + lane_change_available_right: bool | None = None + lane_change_prob: float = 0.0 + left_lane_width_m: float | None = None + right_lane_width_m: float | None = None + left_road_edge_distance_m: float | None = None + right_road_edge_distance_m: float | None = None + left_road_edge_confidence: float = 0.0 + right_road_edge_confidence: float = 0.0 + frame_age: int | None = None + frame_drop_perc: float | None = None + model_execution_time_ms: float | None = None + vision_speed_mps: float | None = None + vision_yaw_rate_rps: float | None = None + vision_speed_std_mps: float | None = None + vision_yaw_rate_std_rps: float | None = None + camera_calibration_euler: tuple[float, float, float] | None = None + road_transform_trans: tuple[float, float, float] | None = None + road_transform_std: tuple[float, float, float] | None = None + camera_odometry_valid: bool | None = None + longitudinal_plan_source: str | None = None + longitudinal_plan_speeds_kph: tuple[float, ...] = () + longitudinal_plan_accels_mps2: tuple[float, ...] = () + longitudinal_plan_jerks_mps3: tuple[float, ...] = () + longitudinal_plan_fcw: bool = False + longitudinal_plan_should_stop: bool = False + longitudinal_plan_allow_throttle: bool | None = None + longitudinal_plan_allow_brake: bool | None = None + longitudinal_t_follow_s: float | None = None + longitudinal_desired_distance_m: float | None = None + longitudinal_v_target_kph: float | None = None + longitudinal_jerk_target_mps3: float | None = None + lateral_plan_valid: bool | None = None + lateral_plan_use_lane_lines: bool | None = None + lateral_plan_solver_cost: float | None = None + lateral_plan_debug_text: str | None = None + lateral_plan_curvatures: tuple[float, ...] = () + lateral_plan_curvature_rates: tuple[float, ...] = () + display_speed_kph: float | None = None + git_status: GitBranchStatus | None = None + + +@dataclass(frozen=True, slots=True) +class SceneCamera: + active: bool + position_x_m: float + position_y_m: float + position_z_m: float + right_x: float + right_y: float + right_z: float + up_x: float + up_y: float + up_z: float + forward_x: float + forward_y: float + forward_z: float + center_y: float + focal_x: float + focal_y: float diff --git a/selfdrive/carrot/cluster/cluster_profile.py b/selfdrive/carrot/cluster/cluster_profile.py new file mode 100644 index 000000000..bacbb603a --- /dev/null +++ b/selfdrive/carrot/cluster/cluster_profile.py @@ -0,0 +1,177 @@ +from __future__ import annotations + +import gc +import os +import time +from typing import Any + + +def _read_proc_status() -> dict[str, str]: + wanted = { + "VmRSS", + "Threads", + "voluntary_ctxt_switches", + "nonvoluntary_ctxt_switches", + } + status: dict[str, str] = {} + try: + with open("/proc/self/status", encoding="utf-8") as handle: + for line in handle: + key, separator, value = line.partition(":") + if separator and key in wanted: + status[key] = value.strip() + except OSError: + pass + return status + + +def _read_system_cpu_stat() -> tuple[int, int] | None: + try: + with open("/proc/stat", encoding="utf-8") as handle: + fields = handle.readline().split() + except OSError: + return None + if len(fields) < 5 or fields[0] != "cpu": + return None + try: + values = [int(value) for value in fields[1:]] + except ValueError: + return None + total = sum(values) + idle = values[3] + (values[4] if len(values) > 4 else 0) + return total, idle + + +def _status_kb_to_mb(value: str) -> float | None: + fields = value.split() + if not fields: + return None + try: + return int(fields[0]) / 1024.0 + except ValueError: + return None + + +class ProfileReporter: + def __init__(self, enabled: bool, interval_s: float) -> None: + self.enabled = enabled + self.interval_s = max(0.2, interval_s) + self.samples: dict[str, list[float]] = {} + self.last_report_time = time.perf_counter() + self.last_process_time = time.process_time() + self.last_system_cpu = _read_system_cpu_stat() + self.report_frames = 0 + + def add(self, name: str, milliseconds: float) -> None: + if not self.enabled: + return + self.samples.setdefault(name, []).append(milliseconds) + + def add_elapsed(self, name: str, start_time: float) -> None: + if self.enabled: + self.add(name, (time.perf_counter() - start_time) * 1000.0) + + def add_samples(self, samples: tuple[tuple[str, float], ...]) -> None: + if not self.enabled: + return + for name, milliseconds in samples: + self.add(name, milliseconds) + + def frame_done(self) -> None: + if self.enabled: + self.report_frames += 1 + + def maybe_report(self, now: float) -> None: + if not self.enabled or now - self.last_report_time < self.interval_s: + return + + elapsed = max(0.001, now - self.last_report_time) + print(f"PROFILE {self.report_frames} frames / {elapsed:.1f}s", flush=True) + runtime_summary = self._runtime_summary(elapsed) + if runtime_summary: + print(f" runtime {runtime_summary}", flush=True) + ordered = sorted( + self.samples.items(), + key=lambda item: sum(item[1]) / max(1, len(item[1])), + reverse=True, + ) + for name, values in ordered: + if not values: + continue + average = sum(values) / len(values) + print( + f" {name:<42} avg={average:7.2f}ms " + f"max={max(values):7.2f}ms last={values[-1]:7.2f}ms n={len(values)}", + flush=True, + ) + self.samples.clear() + self.report_frames = 0 + self.last_report_time = now + + def _runtime_summary(self, elapsed: float) -> str: + parts: list[str] = [] + + process_time = time.process_time() + process_cpu = max(0.0, process_time - self.last_process_time) / elapsed * 100.0 + self.last_process_time = process_time + parts.append(f"proc_cpu={process_cpu:5.1f}% one_core") + + current_system_cpu = _read_system_cpu_stat() + if self.last_system_cpu is not None and current_system_cpu is not None: + last_total, last_idle = self.last_system_cpu + total, idle = current_system_cpu + total_delta = total - last_total + idle_delta = idle - last_idle + if total_delta > 0: + system_cpu = max(0.0, min(100.0, (total_delta - idle_delta) / total_delta * 100.0)) + parts.append(f"sys_cpu={system_cpu:5.1f}% all_cores") + self.last_system_cpu = current_system_cpu + + status = _read_proc_status() + rss_mb = _status_kb_to_mb(status.get("VmRSS", "")) + if rss_mb is not None: + parts.append(f"rss={rss_mb:.1f}MB") + threads = status.get("Threads") + if threads is not None: + parts.append(f"threads={threads}") + voluntary = status.get("voluntary_ctxt_switches") + nonvoluntary = status.get("nonvoluntary_ctxt_switches") + if voluntary is not None and nonvoluntary is not None: + parts.append(f"ctx={voluntary}/{nonvoluntary}") + try: + parts.append(f"load1={os.getloadavg()[0]:.2f}") + except (AttributeError, OSError): + pass + + return " ".join(parts) + + +class GcProfileHook: + def __init__(self, profile: ProfileReporter) -> None: + self.profile = profile + self._starts: dict[int, float] = {} + + def __call__(self, phase: str, info: dict[str, Any]) -> None: + generation = int(info.get("generation", -1)) + if phase == "start": + self._starts[generation] = time.perf_counter() + return + if phase != "stop": + return + start_time = self._starts.pop(generation, None) + if start_time is not None: + self.profile.add(f"gc.gen{generation}", (time.perf_counter() - start_time) * 1000.0) + + +def freeze_gc_after_init(profile: ProfileReporter) -> None: + freeze = getattr(gc, "freeze", None) + if freeze is None: + return + + profile_stage = time.perf_counter() + gc.collect(2) + profile.add_elapsed("gc.freeze_init.collect", profile_stage) + + profile_stage = time.perf_counter() + freeze() + profile.add_elapsed("gc.freeze_init.freeze", profile_stage) diff --git a/selfdrive/carrot/cluster/cluster_renderer.py b/selfdrive/carrot/cluster/cluster_renderer.py new file mode 100644 index 000000000..f87dbf5fe --- /dev/null +++ b/selfdrive/carrot/cluster/cluster_renderer.py @@ -0,0 +1,1830 @@ +from __future__ import annotations + +from collections.abc import Iterator +from contextlib import contextmanager +from functools import lru_cache +import math +import os +import time +from pathlib import Path + +import pyray as rl + +from cluster_config import ( + AMBER, + BLUE, + ClusterTheme, + DESIGN_HEIGHT, + DESIGN_WIDTH, + EGO_FORWARD_M, + GREEN, + MAX_ACCEL_MPS2, + MAX_SPEED_KPH, + RED, + TEXT, + WHITE, + current_cluster_theme, + normalize_cluster_theme_mode, +) +from cluster_models import ClusterUiState, GitBranchStatus, RouteOverlay +from cluster_scene import ( + ClusterScene, + MeshStrip, + RadarPointMarker, + RearVehicleIndicator, + Vec3, + VehicleBox, + build_cluster_scene, +) +from cluster_system_monitor import SystemStats, SystemStatsSampler +from cluster_utils import blink_visible, clamp + + +CLUSTER_DIR = Path(__file__).resolve().parent +SELFDRIVE_DIR = CLUSTER_DIR.parents[1] +OPENPILOT_FONT_DIR = SELFDRIVE_DIR / "assets" / "fonts" +OPENPILOT_ADDON_FONT_DIR = SELFDRIVE_DIR / "assets" / "addon" / "font" +KAIGEN_GOTHIC_KR_BOLD_FONT_PATH = OPENPILOT_FONT_DIR / "KaiGenGothicKR-Bold.ttf" +JETBRAINS_MONO_FONT_PATH = OPENPILOT_FONT_DIR / "JetBrainsMono-Medium.ttf" +VEHICLE_MODEL_PATH = CLUSTER_DIR / "assets" / "models" / "cybertruck" / "cybertruck_cluster.obj" +ACCEL_TEXT_WIDTH_SAMPLES = ("+00.00", "-00.00") +TURN_SIGNAL_LEFT_CENTER_X = 610 +TURN_SIGNAL_RIGHT_CENTER_X = 1310 +TURN_SIGNAL_CENTER_Y = 72 +TURN_SIGNAL_MID_CENTER_X = (TURN_SIGNAL_LEFT_CENTER_X + TURN_SIGNAL_RIGHT_CENTER_X) * 0.5 +SPEED_VALUE_CENTER_X = 260 +SPEED_VALUE_CENTER_Y = 230 +SPEED_LIMIT_SIGN_CENTER_X = 460 +SPEED_LIMIT_SIGN_CENTER_Y = TURN_SIGNAL_CENTER_Y +CRUISE_SET_CENTER_X = SPEED_VALUE_CENTER_X +CRUISE_SET_CENTER_Y = TURN_SIGNAL_CENTER_Y +SYSTEM_PANEL_X = 1416 +SYSTEM_PANEL_Y = 118 +SYSTEM_PANEL_W = 476 +SYSTEM_STATS_REFRESH_SECONDS = 1.0 +GIT_STATUS_X = 20 +GIT_STATUS_CENTER_Y = 456 +GIT_STATUS_PANEL_H = 32 +GIT_STATUS_MAX_TEXT_W = 610 +VEHICLE_MATERIAL_COLORS: dict[str, tuple[int, int, int, int]] = { + "body": (156, 166, 172, 255), + "wheel": (18, 20, 22, 255), + "besi_roda": (36, 38, 42, 255), + "light": (184, 222, 255, 255), + "stop_light": (226, 34, 28, 255), + "riting": (255, 146, 20, 255), + "Material": (136, 142, 148, 255), + "Material.002": (68, 72, 78, 255), + "Material.003": (18, 20, 22, 255), + "Material.004": (18, 20, 22, 255), + "Material.005": (18, 20, 22, 255), + "Material.006": (18, 20, 22, 255), +} +DEFAULT_VEHICLE_MATERIAL_COLOR = (142, 150, 156, 255) +FXAA_FRAGMENT_SHADER_330 = """ +#version 330 + +in vec2 fragTexCoord; +in vec4 fragColor; + +uniform sampler2D texture0; +uniform vec2 resolution; + +out vec4 finalColor; + +void main() +{ + vec2 inverseResolution = 1.0 / resolution; + vec3 rgbNW = texture(texture0, fragTexCoord + vec2(-1.0, -1.0) * inverseResolution).rgb; + vec3 rgbNE = texture(texture0, fragTexCoord + vec2(1.0, -1.0) * inverseResolution).rgb; + vec3 rgbSW = texture(texture0, fragTexCoord + vec2(-1.0, 1.0) * inverseResolution).rgb; + vec3 rgbSE = texture(texture0, fragTexCoord + vec2(1.0, 1.0) * inverseResolution).rgb; + vec4 center = texture(texture0, fragTexCoord); + vec3 rgbM = center.rgb; + vec3 luma = vec3(0.299, 0.587, 0.114); + + float lumaNW = dot(rgbNW, luma); + float lumaNE = dot(rgbNE, luma); + float lumaSW = dot(rgbSW, luma); + float lumaSE = dot(rgbSE, luma); + float lumaM = dot(rgbM, luma); + float lumaMin = min(lumaM, min(min(lumaNW, lumaNE), min(lumaSW, lumaSE))); + float lumaMax = max(lumaM, max(max(lumaNW, lumaNE), max(lumaSW, lumaSE))); + + vec2 direction; + direction.x = -((lumaNW + lumaNE) - (lumaSW + lumaSE)); + direction.y = ((lumaNW + lumaSW) - (lumaNE + lumaSE)); + float directionReduce = max((lumaNW + lumaNE + lumaSW + lumaSE) * 0.03125, 0.0078125); + float inverseDirectionAdjustment = 1.0 / (min(abs(direction.x), abs(direction.y)) + directionReduce); + direction = clamp(direction * inverseDirectionAdjustment, vec2(-8.0), vec2(8.0)) * inverseResolution; + + vec3 rgbA = 0.5 * ( + texture(texture0, fragTexCoord + direction * (1.0 / 3.0 - 0.5)).rgb + + texture(texture0, fragTexCoord + direction * (2.0 / 3.0 - 0.5)).rgb); + vec3 rgbB = rgbA * 0.5 + 0.25 * ( + texture(texture0, fragTexCoord + direction * -0.5).rgb + + texture(texture0, fragTexCoord + direction * 0.5).rgb); + float lumaB = dot(rgbB, luma); + + vec3 color = ((lumaB < lumaMin) || (lumaB > lumaMax)) ? rgbA : rgbB; + finalColor = vec4(color, center.a) * fragColor; +} +""" +FXAA_FRAGMENT_SHADER_100 = """ +#version 100 +precision mediump float; + +varying vec2 fragTexCoord; +varying vec4 fragColor; + +uniform sampler2D texture0; +uniform vec2 resolution; + +void main() +{ + vec2 inverseResolution = 1.0 / resolution; + vec3 rgbNW = texture2D(texture0, fragTexCoord + vec2(-1.0, -1.0) * inverseResolution).rgb; + vec3 rgbNE = texture2D(texture0, fragTexCoord + vec2(1.0, -1.0) * inverseResolution).rgb; + vec3 rgbSW = texture2D(texture0, fragTexCoord + vec2(-1.0, 1.0) * inverseResolution).rgb; + vec3 rgbSE = texture2D(texture0, fragTexCoord + vec2(1.0, 1.0) * inverseResolution).rgb; + vec4 center = texture2D(texture0, fragTexCoord); + vec3 rgbM = center.rgb; + vec3 luma = vec3(0.299, 0.587, 0.114); + + float lumaNW = dot(rgbNW, luma); + float lumaNE = dot(rgbNE, luma); + float lumaSW = dot(rgbSW, luma); + float lumaSE = dot(rgbSE, luma); + float lumaM = dot(rgbM, luma); + float lumaMin = min(lumaM, min(min(lumaNW, lumaNE), min(lumaSW, lumaSE))); + float lumaMax = max(lumaM, max(max(lumaNW, lumaNE), max(lumaSW, lumaSE))); + + vec2 direction; + direction.x = -((lumaNW + lumaNE) - (lumaSW + lumaSE)); + direction.y = ((lumaNW + lumaSW) - (lumaNE + lumaSE)); + float directionReduce = max((lumaNW + lumaNE + lumaSW + lumaSE) * 0.03125, 0.0078125); + float inverseDirectionAdjustment = 1.0 / (min(abs(direction.x), abs(direction.y)) + directionReduce); + direction = clamp(direction * inverseDirectionAdjustment, vec2(-8.0), vec2(8.0)) * inverseResolution; + + vec3 rgbA = 0.5 * ( + texture2D(texture0, fragTexCoord + direction * (1.0 / 3.0 - 0.5)).rgb + + texture2D(texture0, fragTexCoord + direction * (2.0 / 3.0 - 0.5)).rgb); + vec3 rgbB = rgbA * 0.5 + 0.25 * ( + texture2D(texture0, fragTexCoord + direction * -0.5).rgb + + texture2D(texture0, fragTexCoord + direction * 0.5).rgb); + float lumaB = dot(rgbB, luma); + + vec3 color = ((lumaB < lumaMin) || (lumaB > lumaMax)) ? rgbA : rgbB; + gl_FragColor = vec4(color, center.a) * fragColor; +} +""" + + +@lru_cache(maxsize=256) +def _cached_rl_color(r: int, g: int, b: int, a: int) -> rl.Color: + return rl.Color(r, g, b, a) + + +def rl_color(color: tuple[int, int, int] | tuple[int, int, int, int], alpha: int | None = None) -> rl.Color: + if len(color) == 4: + r, g, b, a = color + else: + r, g, b = color + a = 255 + if alpha is not None: + a = alpha + return _cached_rl_color(int(r), int(g), int(b), int(a)) + + +def radar_point_distance_label(point: RadarPointMarker) -> str: + return f"{point.longitudinal_m:.0f} m" + + +def radar_point_speed_label(point: RadarPointMarker) -> str: + if point.absolute_speed_kph is None: + return "" + return f"{point.absolute_speed_kph:.0f} km/h" + + +def vehicle_distance_label(vehicle: VehicleBox) -> str: + return f"{abs(vehicle.center.y - EGO_FORWARD_M):.0f} m" + + +def vehicle_speed_label(vehicle: VehicleBox) -> str: + if vehicle.absolute_speed_kph is None: + return "" + return f"{vehicle.absolute_speed_kph:.0f} km/h" + + +def vehicle_metric_color(vehicle: VehicleBox, theme: ClusterTheme) -> tuple[int, int, int]: + return BLUE if "+radar:" in vehicle.source else theme.world_label_text + + +def vec3(point: Vec3) -> rl.Vector3: + return rl.Vector3(point.x, point.y, point.z) + + +def rectangles_overlap( + left: tuple[float, float, float, float], + right: tuple[float, float, float, float], +) -> bool: + lx, ly, lw, lh = left + rx, ry, rw, rh = right + return lx < rx + rw and lx + lw > rx and ly < ry + rh and ly + lh > ry + + +def camera_forward(camera) -> tuple[float, float, float] | None: + dx = float(camera.target.x - camera.position.x) + dy = float(camera.target.y - camera.position.y) + dz = float(camera.target.z - camera.position.z) + length = math.sqrt(dx * dx + dy * dy + dz * dz) + if length <= 0.0001 or not all(math.isfinite(value) for value in (dx, dy, dz, length)): + return None + return dx / length, dy / length, dz / length + + +def camera_depth_m(point, camera) -> float | None: + forward = camera_forward(camera) + if forward is None: + return None + px = float(point.x - camera.position.x) + py = float(point.y - camera.position.y) + pz = float(point.z - camera.position.z) + if not all(math.isfinite(value) for value in (px, py, pz)): + return None + fx, fy, fz = forward + return px * fx + py * fy + pz * fz + + +def world_to_screen_label_anchor(point, camera, width: int, height: int): + depth_m = camera_depth_m(point, camera) + if depth_m is None or depth_m <= 0.05: + return None + screen = rl.get_world_to_screen_ex(point, camera, width, height) + if not math.isfinite(screen.x) or not math.isfinite(screen.y): + return None + return screen + + +def label_rect_inside_bounds( + rect: tuple[float, float, float, float], + bounds: tuple[float, float, float, float], +) -> bool: + x, y, width, height = rect + left, top, right, bottom = bounds + values = (x, y, width, height, left, top, right, bottom) + if not all(math.isfinite(value) for value in values): + return False + return x >= left and y >= top and x + width <= right and y + height <= bottom + + +class ClusterUiRenderer: + def __init__( + self, + width: int = DESIGN_WIDTH, + height: int = DESIGN_HEIGHT, + title: str = "carrotpilot cluster", + target_fps: int = 0, + msaa_4x: bool = False, + theme_mode: str = "auto", + ) -> None: + self.width = width + self.height = height + self.title = title + self.target_fps = target_fps + self.msaa_4x = msaa_4x + self.theme_mode = normalize_cluster_theme_mode(theme_mode) + self._theme = current_cluster_theme(self.theme_mode) + self.hidden = False + self._window_open = False + self._font = None + self._owns_font = False + self._accel_text_width = 0.0 + self._capture_target = None + self._portrait_upload_target = None + self._aa_source_target = None + self._fxaa_shader = None + self._fxaa_resolution_loc = -1 + self._fxaa_resolution_value = None + self._vehicle_model = None + self._vehicle_model_load_attempted = False + self._route_video_texture = None + self._route_video_size: tuple[int, int] | None = None + self._route_video_frame_id: str | None = None + self._left_turn_signal_started_at: float | None = None + self._right_turn_signal_started_at: float | None = None + self._triangle_strip_points = None + self._triangle_strip_capacity = 0 + self._system_stats = SystemStatsSampler(SYSTEM_STATS_REFRESH_SECONDS) + self.profile_enabled = os.environ.get("CLUSTER_PROFILE_RENDER") == "1" + self._profile_samples: list[tuple[str, float]] = [] + + def set_profile_enabled(self, enabled: bool) -> None: + self.profile_enabled = enabled + + def set_theme_mode(self, theme_mode: str) -> None: + self.theme_mode = normalize_cluster_theme_mode(theme_mode) + self._theme = current_cluster_theme(self.theme_mode) + + def set_target_fps(self, target_fps: int) -> None: + self.target_fps = max(0, int(target_fps)) + if self._window_open: + profile_stage = self._profile_start() + rl.set_target_fps(self.target_fps) + self._profile_add("renderer.set_target_fps", profile_stage) + + def _current_theme(self) -> ClusterTheme: + self._theme = current_cluster_theme(self.theme_mode) + return self._theme + + def clear_profile_samples(self) -> None: + self._profile_samples.clear() + + def profile_samples(self) -> tuple[tuple[str, float], ...]: + return tuple(self._profile_samples) + + def _profile_start(self) -> float: + return time.perf_counter() if self.profile_enabled else 0.0 + + def _profile_add(self, name: str, start_time: float) -> None: + if self.profile_enabled: + self._profile_samples.append((name, (time.perf_counter() - start_time) * 1000.0)) + + def _profile_add_elapsed(self, name: str, elapsed_ms: float) -> None: + if self.profile_enabled: + self._profile_samples.append((name, elapsed_ms)) + + def open(self, hidden: bool = False) -> None: + if self._window_open: + return + profile_total = self._profile_start() + self.hidden = hidden + rl.set_trace_log_level(rl.TraceLogLevel.LOG_WARNING) + flags = 0 + if self.msaa_4x: + flags |= rl.ConfigFlags.FLAG_MSAA_4X_HINT + if hidden: + flags |= rl.ConfigFlags.FLAG_WINDOW_HIDDEN + if flags: + rl.set_config_flags(flags) + profile_stage = self._profile_start() + rl.init_window(self.width, self.height, self.title) + self._profile_add("renderer.open.init_window", profile_stage) + if self.target_fps > 0: + profile_stage = self._profile_start() + rl.set_target_fps(self.target_fps) + self._profile_add("renderer.open.set_target_fps", profile_stage) + profile_stage = self._profile_start() + self._font = self._load_font() + self._profile_add("renderer.open.load_font", profile_stage) + profile_stage = self._profile_start() + self._load_vehicle_model() + self._profile_add("renderer.open.load_vehicle_model", profile_stage) + # self._load_fxaa_shader() + self._window_open = True + self._profile_add("renderer.open.total", profile_total) + + def close(self) -> None: + if not self._window_open: + return + if self._aa_source_target is not None: + rl.unload_render_texture(self._aa_source_target) + self._aa_source_target = None + if self._capture_target is not None: + rl.unload_render_texture(self._capture_target) + self._capture_target = None + if self._portrait_upload_target is not None: + rl.unload_render_texture(self._portrait_upload_target) + self._portrait_upload_target = None + if self._fxaa_shader is not None: + rl.unload_shader(self._fxaa_shader) + self._fxaa_shader = None + if self._route_video_texture is not None: + rl.unload_texture(self._route_video_texture) + self._route_video_texture = None + if self._owns_font and self._font is not None: + rl.unload_font(self._font) + self._font = None + self._owns_font = False + self._accel_text_width = 0.0 + self._fxaa_resolution_loc = -1 + self._fxaa_resolution_value = None + if self._vehicle_model is not None: + rl.unload_model(self._vehicle_model) + self._vehicle_model = None + self._vehicle_model_load_attempted = False + self._route_video_size = None + self._route_video_frame_id = None + rl.close_window() + self._window_open = False + + def should_close(self) -> bool: + return bool(self._window_open and rl.window_should_close()) + + def render_frame(self, state: ClusterUiState) -> None: + self.open() + if self._fxaa_shader is None: + profile_stage = self._profile_start() + rl.begin_drawing() + self._profile_add("render_frame.begin_drawing", profile_stage) + profile_stage = self._profile_start() + self.render(state) + self._profile_add("render_frame.render_no_fxaa", profile_stage) + profile_stage = self._profile_start() + rl.end_drawing() + self._profile_add("render_frame.end_drawing", profile_stage) + return + + signal_lights = self._turn_signal_lights(state) + scene_target = self._get_aa_source_target() + profile_stage = self._profile_start() + rl.begin_texture_mode(scene_target) + self._render_world(state, signal_lights) + rl.end_texture_mode() + self._profile_add("render_frame.render_scene_target", profile_stage) + + profile_stage = self._profile_start() + rl.begin_drawing() + self._draw_antialiased_texture(scene_target.texture) + self._draw_hud(state, signal_lights) + rl.end_drawing() + self._profile_add("render_frame.draw_fxaa_hud", profile_stage) + + def render(self, state: ClusterUiState, signal_lights: tuple[bool, bool] | None = None) -> None: + """Draw one frame into the currently active raylib render target.""" + if signal_lights is None: + signal_lights = self._turn_signal_lights(state) + profile_stage = self._profile_start() + self._render_world(state, signal_lights) + self._profile_add("render.world", profile_stage) + profile_stage = self._profile_start() + self._draw_hud(state, signal_lights) + self._profile_add("render.hud", profile_stage) + + def _render_world(self, state: ClusterUiState, signal_lights: tuple[bool, bool] | None = None) -> None: + if signal_lights is None: + signal_lights = self._turn_signal_lights(state) + theme = self._current_theme() + profile_stage = self._profile_start() + scene = build_cluster_scene( + state, + self._profile_add_elapsed if self.profile_enabled else None, + highlight_lane_lit=self._highlight_lane_lit(state, signal_lights), + theme=theme, + ) + self._profile_add("render_world.build_scene", profile_stage) + profile_stage = self._profile_start() + rl.clear_background(rl_color(theme.bg)) + self._profile_add("render_world.clear_background", profile_stage) + profile_stage = self._profile_start() + self._draw_scene(scene) + self._profile_add("render_world.draw_scene", profile_stage) + + def render_to_file(self, state: ClusterUiState, output_path: str | Path) -> None: + image = self._render_to_image(state) + try: + rl.export_image(image, str(output_path)) + finally: + rl.unload_image(image) + + def render_to_png_bytes(self, state: ClusterUiState, portrait_upload: bool = False) -> bytes: + profile_stage = self._profile_start() + image = self._render_to_image(state, portrait_upload=portrait_upload) + self._profile_add("render_to_png.render_to_image", profile_stage) + try: + size = rl.ffi.new("int *") + profile_stage = self._profile_start() + data = rl.export_image_to_memory(image, ".png", size) + self._profile_add("render_to_png.export_png", profile_stage) + try: + if size[0] <= 0: + raise RuntimeError("raylib failed to encode frame as PNG") + return bytes(rl.ffi.buffer(data, size[0])) + finally: + rl.mem_free(data) + finally: + profile_stage = self._profile_start() + rl.unload_image(image) + self._profile_add("render_to_png.unload_image", profile_stage) + + def render_to_rgba_bytes( + self, + state: ClusterUiState, + portrait_upload: bool = False, + ) -> tuple[bytes, int, int]: + with self.render_to_rgba_buffer(state, portrait_upload=portrait_upload) as ( + rgba_buffer, + image_width, + image_height, + ): + profile_stage = self._profile_start() + rgba = bytes(rgba_buffer) + self._profile_add("render_to_rgba.copy_bytes", profile_stage) + return rgba, image_width, image_height + + @contextmanager + def render_to_rgba_buffer( + self, + state: ClusterUiState, + portrait_upload: bool = False, + ) -> Iterator[tuple[object, int, int]]: + profile_stage = self._profile_start() + image = self._render_to_image(state, portrait_upload=portrait_upload) + self._profile_add("render_to_rgba.render_to_image", profile_stage) + + try: + if image.format != rl.PixelFormat.PIXELFORMAT_UNCOMPRESSED_R8G8B8A8: + profile_stage = self._profile_start() + rl.image_format(image, rl.PixelFormat.PIXELFORMAT_UNCOMPRESSED_R8G8B8A8) + self._profile_add("render_to_rgba.image_format", profile_stage) + + byte_count = image.width * image.height * 4 + profile_stage = self._profile_start() + rgba_buffer = rl.ffi.buffer(image.data, byte_count) + self._profile_add("render_to_rgba.buffer_view", profile_stage) + yield rgba_buffer, image.width, image.height + finally: + profile_stage = self._profile_start() + rl.unload_image(image) + self._profile_add("render_to_rgba.unload_image", profile_stage) + + def _render_to_image(self, state: ClusterUiState, portrait_upload: bool = False): + self.open(hidden=self.hidden) + profile_stage = self._profile_start() + target = self._get_capture_target() + self._profile_add("render_to_image.get_capture_target", profile_stage) + + if self._fxaa_shader is None: + profile_stage = self._profile_start() + rl.begin_texture_mode(target) + self.render(state) + rl.end_texture_mode() + self._profile_add("render_to_image.draw_to_target", profile_stage) + else: + scene_target = self._get_aa_source_target() + signal_lights = self._turn_signal_lights(state) + profile_stage = self._profile_start() + rl.begin_texture_mode(scene_target) + self._render_world(state, signal_lights) + rl.end_texture_mode() + self._profile_add("render_to_image.draw_scene_target", profile_stage) + + profile_stage = self._profile_start() + rl.begin_texture_mode(target) + self._draw_antialiased_texture(scene_target.texture) + self._draw_hud(state, signal_lights) + rl.end_texture_mode() + self._profile_add("render_to_image.draw_fxaa_target", profile_stage) + + if portrait_upload: + profile_stage = self._profile_start() + upload_target = self._get_portrait_upload_target() + self._profile_add("render_to_image.get_portrait_upload_target", profile_stage) + + profile_stage = self._profile_start() + rl.begin_texture_mode(upload_target) + rl.clear_background(rl_color(self._current_theme().bg)) + source = rl.Rectangle( + 0.0, + 0.0, + float(target.texture.width), + float(target.texture.height), + ) + dest = rl.Rectangle( + 0.0, + float(self.width), + float(self.width), + float(self.height), + ) + origin = rl.Vector2(0.0, 0.0) + rl.draw_texture_pro( + target.texture, + source, + dest, + origin, + -90.0, + rl_color(WHITE), + ) + rl.end_texture_mode() + self._profile_add("render_to_image.gpu_upload_transform", profile_stage) + + profile_stage = self._profile_start() + image = rl.load_image_from_texture(upload_target.texture) + self._profile_add("render_to_image.readback_upload_texture", profile_stage) + else: + profile_stage = self._profile_start() + image = rl.load_image_from_texture(target.texture) + self._profile_add("render_to_image.readback_texture", profile_stage) + + profile_stage = self._profile_start() + rl.image_flip_vertical(image) + self._profile_add("render_to_image.flip_vertical", profile_stage) + + return image + + def _get_capture_target(self): + if self._capture_target is None: + profile_stage = self._profile_start() + self._capture_target = rl.load_render_texture(self.width, self.height) + self._profile_add("render_target.alloc_capture", profile_stage) + profile_stage = self._profile_start() + rl.set_texture_filter(self._capture_target.texture, rl.TextureFilter.TEXTURE_FILTER_BILINEAR) + self._profile_add("render_target.filter_capture", profile_stage) + return self._capture_target + + def _get_portrait_upload_target(self): + if self._portrait_upload_target is None: + profile_stage = self._profile_start() + self._portrait_upload_target = rl.load_render_texture(self.height, self.width) + self._profile_add("render_target.alloc_portrait_upload", profile_stage) + profile_stage = self._profile_start() + rl.set_texture_filter(self._portrait_upload_target.texture, rl.TextureFilter.TEXTURE_FILTER_BILINEAR) + self._profile_add("render_target.filter_portrait_upload", profile_stage) + return self._portrait_upload_target + + def _get_aa_source_target(self): + if self._aa_source_target is None: + profile_stage = self._profile_start() + self._aa_source_target = rl.load_render_texture(self.width, self.height) + self._profile_add("render_target.alloc_aa_source", profile_stage) + profile_stage = self._profile_start() + rl.set_texture_filter(self._aa_source_target.texture, rl.TextureFilter.TEXTURE_FILTER_BILINEAR) + self._profile_add("render_target.filter_aa_source", profile_stage) + return self._aa_source_target + + def _load_fxaa_shader(self) -> None: + gl_version = rl.rl_get_version() + es_versions = ( + getattr(rl, "RL_OPENGL_ES_20", 5), + getattr(rl, "RL_OPENGL_ES_30", 6), + ) + shader_codes = ( + (FXAA_FRAGMENT_SHADER_100, FXAA_FRAGMENT_SHADER_330) + if gl_version in es_versions + else (FXAA_FRAGMENT_SHADER_330, FXAA_FRAGMENT_SHADER_100) + ) + for shader_code in shader_codes: + try: + shader = rl.load_shader_from_memory(rl.ffi.NULL, shader_code) + except Exception as exc: + print(f"FXAA shader load failed: {exc}") + continue + if not rl.is_shader_valid(shader): + rl.unload_shader(shader) + continue + self._fxaa_shader = shader + self._fxaa_resolution_loc = rl.get_shader_location(shader, "resolution") + self._fxaa_resolution_value = rl.ffi.new("float[2]", [float(self.width), float(self.height)]) + return + self._fxaa_shader = None + + def _draw_antialiased_texture(self, texture) -> None: + if self._fxaa_shader is None: + return + source = rl.Rectangle(0.0, 0.0, float(texture.width), -float(texture.height)) + dest = rl.Rectangle(0.0, 0.0, float(self.width), float(self.height)) + origin = rl.Vector2(0.0, 0.0) + profile_stage = self._profile_start() + rl.clear_background(rl_color(self._current_theme().bg)) + self._profile_add("fxaa.clear_background", profile_stage) + profile_stage = self._profile_start() + rl.begin_shader_mode(self._fxaa_shader) + if self._fxaa_resolution_loc >= 0 and self._fxaa_resolution_value is not None: + rl.set_shader_value( + self._fxaa_shader, + self._fxaa_resolution_loc, + self._fxaa_resolution_value, + rl.ShaderUniformDataType.SHADER_UNIFORM_VEC2, + ) + rl.draw_texture_pro(texture, source, dest, origin, 0.0, rl_color(WHITE)) + rl.end_shader_mode() + self._profile_add("fxaa.shader_draw", profile_stage) + + def _load_font(self): + for candidate in self._font_candidates(): + if candidate.exists(): + try: + font = rl.load_font_ex(str(candidate), 160, None, 0) + if font.texture.id > 0: + rl.gen_texture_mipmaps(font.texture) + rl.set_texture_filter(font.texture, rl.TextureFilter.TEXTURE_FILTER_TRILINEAR) + self._owns_font = True + return font + except Exception as exc: + print(f"Cluster font load failed for {candidate}: {exc}") + self._owns_font = False + return rl.get_font_default() + + def _font_candidates(self) -> list[Path]: + return [ + KAIGEN_GOTHIC_KR_BOLD_FONT_PATH, + OPENPILOT_ADDON_FONT_DIR / "KaiGenGothicKR-Bold.ttf", + JETBRAINS_MONO_FONT_PATH, + OPENPILOT_FONT_DIR / "JetBrainsMono-Bold.ttf", + Path("/data/openpilot/selfdrive/assets/fonts/KaiGenGothicKR-Bold.ttf"), + Path("/data/openpilot/selfdrive/assets/addon/font/KaiGenGothicKR-Bold.ttf"), + Path("/usr/share/fonts/truetype/jetbrains-mono/JetBrainsMono-Medium.ttf"), + Path("/usr/share/fonts/TTF/JetBrainsMono-Medium.ttf"), + Path("/usr/local/share/fonts/JetBrainsMono-Medium.ttf"), + ] + + def _load_vehicle_model(self) -> None: + if self._vehicle_model_load_attempted: + return + self._vehicle_model_load_attempted = True + if not VEHICLE_MODEL_PATH.exists(): + return + try: + profile_stage = self._profile_start() + mesh = self._load_obj_mesh(VEHICLE_MODEL_PATH) + self._profile_add("vehicle_model.parse_obj", profile_stage) + profile_stage = self._profile_start() + rl.upload_mesh(rl.ffi.addressof(mesh), False) + self._profile_add("vehicle_model.upload_mesh", profile_stage) + profile_stage = self._profile_start() + model = rl.load_model_from_mesh(mesh) + self._profile_add("vehicle_model.load_from_mesh", profile_stage) + if not rl.is_model_valid(model): + rl.unload_model(model) + return + self._vehicle_model = model + except Exception as exc: + print(f"Cybertruck vehicle model load failed: {exc}") + self._vehicle_model = None + + def _load_obj_mesh(self, path: Path): + vertices: list[tuple[float, float, float]] = [] + normals: list[tuple[float, float, float]] = [] + mesh_vertices: list[float] = [] + mesh_normals: list[float] = [] + mesh_colors: list[int] = [] + material_color = DEFAULT_VEHICLE_MATERIAL_COLOR + + def resolve_index(index_text: str, count: int) -> int: + index = int(index_text) + if index < 0: + index = count + index + 1 + return index - 1 + + def parse_face_token(token: str) -> tuple[int, int | None]: + parts = token.split("/") + vertex_index = resolve_index(parts[0], len(vertices)) + normal_index = None + if len(parts) >= 3 and parts[2]: + normal_index = resolve_index(parts[2], len(normals)) + return vertex_index, normal_index + + def face_normal(points: tuple[tuple[float, float, float], ...]) -> tuple[float, float, float]: + ax, ay, az = points[0] + bx, by, bz = points[1] + cx, cy, cz = points[2] + ux, uy, uz = bx - ax, by - ay, bz - az + vx, vy, vz = cx - ax, cy - ay, cz - az + nx = uy * vz - uz * vy + ny = uz * vx - ux * vz + nz = ux * vy - uy * vx + length = math.sqrt(nx * nx + ny * ny + nz * nz) + if length <= 0.000001: + return 0.0, 0.0, 1.0 + return nx / length, ny / length, nz / length + + for raw in path.read_text(encoding="utf-8", errors="ignore").splitlines(): + parts = raw.split() + if not parts or parts[0].startswith("#"): + continue + tag = parts[0] + if tag == "v" and len(parts) >= 4: + vertices.append((float(parts[1]), float(parts[2]), float(parts[3]))) + elif tag == "vn" and len(parts) >= 4: + normals.append((float(parts[1]), float(parts[2]), float(parts[3]))) + elif tag == "usemtl" and len(parts) >= 2: + material_color = VEHICLE_MATERIAL_COLORS.get(parts[1], DEFAULT_VEHICLE_MATERIAL_COLOR) + elif tag == "f" and len(parts) >= 4: + face = [parse_face_token(token) for token in parts[1:]] + for index in range(1, len(face) - 1): + triangle = (face[0], face[index], face[index + 1]) + points = tuple(vertices[vertex_index] for vertex_index, _ in triangle) + fallback_normal = face_normal(points) + for vertex_index, normal_index in triangle: + vertex = vertices[vertex_index] + normal = normals[normal_index] if normal_index is not None else fallback_normal + mesh_vertices.extend(vertex) + mesh_normals.extend(normal) + mesh_colors.extend(material_color) + + vertex_count = len(mesh_vertices) // 3 + if vertex_count < 3 or vertex_count % 3 != 0: + raise RuntimeError(f"invalid vehicle mesh vertex count: {vertex_count}") + + mesh = rl.Mesh() + mesh.vertexCount = vertex_count + mesh.triangleCount = vertex_count // 3 + mesh.vertices = self._alloc_float_array(mesh_vertices) + mesh.normals = self._alloc_float_array(mesh_normals) + mesh.colors = self._alloc_uchar_array(mesh_colors) + return mesh + + def _alloc_float_array(self, values: list[float]): + data = rl.ffi.cast("float *", rl.mem_alloc(len(values) * rl.ffi.sizeof("float"))) + for index, value in enumerate(values): + data[index] = value + return data + + def _alloc_uchar_array(self, values: list[int]): + data = rl.ffi.cast("unsigned char *", rl.mem_alloc(len(values) * rl.ffi.sizeof("unsigned char"))) + for index, value in enumerate(values): + data[index] = int(value) + return data + + def _draw_scene(self, scene: ClusterScene) -> None: + camera = rl.Camera3D( + vec3(scene.camera.position), + vec3(scene.camera.target), + rl.Vector3(0.0, 0.0, 1.0), + scene.camera.fovy_deg, + rl.CameraProjection.CAMERA_PERSPECTIVE, + ) + profile_stage = self._profile_start() + rl.begin_mode_3d(camera) + self._profile_add("draw_scene.begin_mode_3d", profile_stage) + rl.rl_push_matrix() + if abs(scene.scene_shift_x_m) > 0.0001: + rl.rl_translatef(scene.scene_shift_x_m, 0.0, 0.0) + try: + profile_stage = self._profile_start() + for strip in scene.highlight_lanes: + self._draw_strip(strip) + self._profile_add("draw_scene.highlight_lanes", profile_stage) + profile_stage = self._profile_start() + for strip in scene.road_edges: + self._draw_strip(strip) + self._profile_add("draw_scene.road_edges", profile_stage) + profile_stage = self._profile_start() + for strip in scene.lane_markings: + self._draw_strip(strip) + self._profile_add("draw_scene.lane_markings", profile_stage) + profile_stage = self._profile_start() + for strip in scene.planned_path: + self._draw_strip(strip) + self._profile_add("draw_scene.planned_path", profile_stage) + profile_stage = self._profile_start() + for point in scene.radar_points: + self._draw_radar_point(point) + self._profile_add("draw_scene.radar_points", profile_stage) + profile_stage = self._profile_start() + for vehicle in scene.vehicles: + self._draw_vehicle(vehicle) + self._profile_add("draw_scene.vehicles", profile_stage) + finally: + rl.rl_pop_matrix() + profile_stage = self._profile_start() + rl.end_mode_3d() + self._profile_add("draw_scene.end_mode_3d", profile_stage) + profile_stage = self._profile_start() + self._draw_radar_point_labels(scene.radar_points, camera, scene.scene_shift_x_m) + self._profile_add("draw_scene.radar_labels", profile_stage) + profile_stage = self._profile_start() + self._draw_vehicle_badges(scene.vehicles, camera, scene.scene_shift_x_m) + self._profile_add("draw_scene.vehicle_badges", profile_stage) + profile_stage = self._profile_start() + self._draw_rear_vehicle_indicators(scene.rear_indicators, camera, scene.scene_shift_x_m) + self._profile_add("draw_scene.rear_indicators", profile_stage) + + def _draw_strip(self, strip: MeshStrip) -> None: + count = min(len(strip.left), len(strip.right)) + if count < 2: + return + + color = rl_color(strip.color) + x_offset_m = strip.x_offset_m + + if hasattr(rl, "draw_triangle_strip_3d"): + point_count = count * 2 + if self._triangle_strip_capacity < point_count: + self._triangle_strip_points = rl.ffi.new("struct Vector3[]", point_count) + self._triangle_strip_capacity = point_count + points = self._triangle_strip_points + + for index in range(count): + left = strip.left[index] + right = strip.right[index] + + points[index * 2].x = left.x + x_offset_m + points[index * 2].y = left.y + points[index * 2].z = left.z + + points[index * 2 + 1].x = right.x + x_offset_m + points[index * 2 + 1].y = right.y + points[index * 2 + 1].z = right.z + + rl.draw_triangle_strip_3d( + rl.ffi.cast("struct Vector3 *", points), + count * 2, + color, + ) + return + + for index in range(count - 1): + left = strip.left[index] + right = strip.right[index] + next_left = strip.left[index + 1] + next_right = strip.right[index + 1] + left_near = rl.Vector3(left.x + x_offset_m, left.y, left.z) + right_near = rl.Vector3(right.x + x_offset_m, right.y, right.z) + left_far = rl.Vector3(next_left.x + x_offset_m, next_left.y, next_left.z) + right_far = rl.Vector3(next_right.x + x_offset_m, next_right.y, next_right.z) + rl.draw_triangle_3d(left_near, right_near, right_far, color) + rl.draw_triangle_3d(left_near, right_far, left_far, color) + + def _draw_vehicle(self, vehicle: VehicleBox) -> None: + use_model = ( + self._vehicle_model is not None + and (not vehicle.source or vehicle.primary or vehicle.cut_in) + ) + if use_model: + self._draw_vehicle_shadow(vehicle) + self._draw_vehicle_model(vehicle) + return + if vehicle.source and not vehicle.primary and not vehicle.cut_in: + self._draw_vehicle_marker(vehicle) + return + self._draw_vehicle_box(vehicle) + + def _draw_vehicle_marker(self, vehicle: VehicleBox) -> None: + alpha = int(80 + 150 * clamp(vehicle.confidence, 0.0, 1.0)) + marker_center = rl.Vector3(vehicle.center.x, vehicle.center.y, vehicle.height_m * 0.32) + marker_size = rl.Vector3( + max(0.55, vehicle.width_m * 0.68), + max(1.05, vehicle.length_m * 0.64), + max(0.42, vehicle.height_m * 0.45), + ) + rl.draw_cube_v(marker_center, marker_size, rl_color(vehicle.body_color, alpha)) + + def _draw_radar_point(self, point: RadarPointMarker) -> None: + side_m = max(0.16, point.radius_m * 1.75) + height_m = max(0.12, point.radius_m * 1.15) + marker_center = rl.Vector3(point.center.x, point.center.y, point.center.z) + marker_size = rl.Vector3(side_m, side_m, height_m) + rl.draw_cube_v(marker_center, marker_size, rl_color(point.color)) + + def _draw_radar_point_labels( + self, + points: tuple[RadarPointMarker, ...], + camera, + scene_shift_x_m: float = 0.0, + ) -> None: + theme = self._current_theme() + occupied: list[tuple[float, float, float, float]] = [] + label_bounds = self._world_label_bounds(left=430, top=52, right=40, bottom=26) + ordered = sorted(points, key=lambda point: (point.longitudinal_m, abs(point.lateral_m), point.label)) + for point in ordered: + anchor = rl.Vector3(point.center.x + scene_shift_x_m, point.center.y, point.center.z + 0.46) + screen = world_to_screen_label_anchor(anchor, camera, self.width, self.height) + if screen is None: + continue + distance = radar_point_distance_label(point) + speed = radar_point_speed_label(point) + label_height = 32 if speed else 22 + text_width = max( + int(rl.measure_text_ex(self._font or rl.get_font_default(), distance, 14, 1).x), + int(rl.measure_text_ex(self._font or rl.get_font_default(), speed, 12, 1).x) if speed else 0, + ) + width = max(62, text_width + 14) + height = label_height + x = screen.x - width * 0.5 + y = screen.y - height - 4 + rect_tuple = (x, y, width, height) + if not label_rect_inside_bounds(rect_tuple, label_bounds): + continue + if any(rectangles_overlap(rect_tuple, taken) for taken in occupied): + continue + occupied.append(rect_tuple) + center_x = x + width * 0.5 + shadow = theme.world_label_shadow + text = theme.world_label_text + self._draw_text(distance, center_x + 1, y + 8 + 1, 14, shadow, anchor="center") + self._draw_text(distance, center_x, y + 8, 14, text, anchor="center") + if speed: + self._draw_text(speed, center_x + 1, y + 23 + 1, 12, shadow, anchor="center") + self._draw_text(speed, center_x, y + 23, 12, text, anchor="center") + + def _draw_vehicle_shadow(self, vehicle: VehicleBox) -> None: + half_width = vehicle.width_m * 0.5 + half_length = vehicle.length_m * 0.5 + + def corner(local_x: float, local_y: float, z: float) -> Vec3: + return Vec3( + vehicle.center.x + vehicle.right_x * local_x + vehicle.forward_x * local_y, + vehicle.center.y + vehicle.right_y * local_x + vehicle.forward_y * local_y, + z, + ) + + shadow = ( + corner(-half_width * 1.12, -half_length * 1.08, 0.018), + corner(half_width * 1.12, -half_length * 1.08, 0.018), + corner(half_width * 1.12, half_length * 1.08, 0.018), + corner(-half_width * 1.12, half_length * 1.08, 0.018), + ) + self._draw_quad( + shadow[0], + shadow[1], + shadow[2], + shadow[3], + (0, 0, 0, int(18 + 34 * clamp(vehicle.confidence, 0.0, 1.0))), + ) + + def _draw_vehicle_model(self, vehicle: VehicleBox) -> None: + if self._vehicle_model is None: + return + yaw_deg = math.degrees(math.atan2(-vehicle.forward_x, vehicle.forward_y)) + position = rl.Vector3(vehicle.center.x, vehicle.center.y, 0.035) + rotation_axis = rl.Vector3(0.0, 0.0, 1.0) + scale = rl.Vector3(vehicle.width_m, vehicle.length_m, vehicle.height_m) + try: + rl.rl_disable_backface_culling() + alpha = int(92 + 163 * clamp(vehicle.confidence, 0.0, 1.0)) + tint = rl_color(vehicle.body_color) if vehicle.source == "radarPoint" else rl_color(WHITE, alpha) + rl.draw_model_ex(self._vehicle_model, position, rotation_axis, yaw_deg, scale, tint) + finally: + rl.rl_enable_backface_culling() + + def _draw_vehicle_badges( + self, + vehicles: tuple[VehicleBox, ...], + camera, + scene_shift_x_m: float = 0.0, + ) -> None: + theme = self._current_theme() + occupied: list[tuple[float, float, float, float]] = [] + ordered = sorted( + (vehicle for vehicle in vehicles if vehicle.label), + key=lambda vehicle: ( + 0 if vehicle.primary else 1 if vehicle.cut_in else 2, + max(0.0, vehicle.center.y - EGO_FORWARD_M), + -vehicle.confidence, + ), + ) + for vehicle in ordered: + anchor = rl.Vector3( + vehicle.center.x + scene_shift_x_m, + vehicle.center.y, + vehicle.height_m + 0.55, + ) + screen = world_to_screen_label_anchor(anchor, camera, self.width, self.height) + if screen is None: + continue + + distance = vehicle_distance_label(vehicle) + speed = vehicle_speed_label(vehicle) + font = self._font or rl.get_font_default() + label_height = 36 if speed else 24 + width = max( + 62, + int( + max( + rl.measure_text_ex(font, distance, 15, 1).x, + rl.measure_text_ex(font, speed, 13, 1).x if speed else 0, + ) + ) + + 14, + ) + height = label_height + x = screen.x - width * 0.5 + y = screen.y - height - 4 + rect_tuple = (x, y, width, height) + label_bounds = self._world_label_bounds(left=430, top=58, right=40, bottom=28) + if not label_rect_inside_bounds(rect_tuple, label_bounds): + continue + if any(rectangles_overlap(rect_tuple, taken) for taken in occupied): + if not vehicle.primary and not vehicle.cut_in: + continue + for _ in range(3): + y -= height + 4 + rect_tuple = (x, y, width, height) + if not label_rect_inside_bounds(rect_tuple, label_bounds): + continue + if not any(rectangles_overlap(rect_tuple, taken) for taken in occupied): + break + else: + continue + occupied.append(rect_tuple) + center_x = x + width * 0.5 + shadow = theme.world_label_shadow + text_color = vehicle_metric_color(vehicle, theme) + distance_y = y + (10 if speed else 12) + self._draw_text(distance, center_x + 1, distance_y + 1, 15, shadow, anchor="center") + self._draw_text(distance, center_x, distance_y, 15, text_color, anchor="center") + if speed: + self._draw_text(speed, center_x + 1, y + 27 + 1, 13, shadow, anchor="center") + self._draw_text(speed, center_x, y + 27, 13, text_color, anchor="center") + + def _draw_rear_vehicle_indicators( + self, + indicators: tuple[RearVehicleIndicator, ...], + camera, + scene_shift_x_m: float = 0.0, + ) -> None: + for indicator in indicators: + if self._rear_indicator_vehicle_visible(indicator, camera, scene_shift_x_m): + continue + x, y = self._rear_indicator_screen_position(indicator, camera, scene_shift_x_m) + self._draw_rear_distance_arrow(indicator, x, y) + + def _rear_indicator_vehicle_visible( + self, + indicator: RearVehicleIndicator, + camera, + scene_shift_x_m: float = 0.0, + ) -> bool: + anchor = rl.Vector3( + indicator.center.x + scene_shift_x_m, + indicator.center.y, + indicator.center.z + 0.62, + ) + screen = world_to_screen_label_anchor(anchor, camera, self.width, self.height) + if screen is None: + return False + margin_x = 24.0 + margin_y = 24.0 + return ( + margin_x <= screen.x <= self.width - margin_x + and margin_y <= screen.y <= self.height - margin_y + ) + + def _rear_indicator_screen_position( + self, + indicator: RearVehicleIndicator, + camera, + scene_shift_x_m: float = 0.0, + ) -> tuple[float, float]: + scale_x = self.width / DESIGN_WIDTH + scale_y = self.height / DESIGN_HEIGHT + proxy = rl.Vector3(indicator.anchor.x + scene_shift_x_m, indicator.anchor.y, indicator.anchor.z) + screen = world_to_screen_label_anchor(proxy, camera, self.width, self.height) + fallback_x = (735.0 if indicator.lane_side == "left" else 1185.0) * scale_x + fallback_y = 382.0 * scale_y + if screen is None: + return fallback_x, fallback_y + + if indicator.lane_side == "left": + min_x, max_x = 560.0 * scale_x, 880.0 * scale_x + else: + min_x, max_x = 1040.0 * scale_x, 1360.0 * scale_x + x = clamp(screen.x, min_x, max_x) + y = clamp(screen.y, 318.0 * scale_y, 404.0 * scale_y) + return x, y + + def _draw_rear_distance_arrow(self, indicator: RearVehicleIndicator, x: float, y: float) -> None: + theme = self._current_theme() + scale = max(0.72, min(1.18, min(self.width / DESIGN_WIDTH, self.height / DESIGN_HEIGHT))) + distance = f"{indicator.label} {abs(indicator.longitudinal_m):.0f} m" + font = self._font or rl.get_font_default() + text_size = 16.0 * scale + spacing = max(1.0, text_size * 0.02) + measured = rl.measure_text_ex(font, distance, text_size, spacing) + pad_x = 10.0 * scale + pad_y = 5.0 * scale + box_w = max(74.0 * scale, measured.x + pad_x * 2.0) + box_h = measured.y + pad_y * 2.0 + box_y = y - 62.0 * scale + box = rl.Rectangle(x - box_w * 0.5, box_y, box_w, box_h) + + rl.draw_rectangle_rounded(box, 0.28, 12, rl_color(theme.clock_bg)) + rl.draw_rectangle_rounded_lines_ex(box, 0.28, 12, max(1.5, 2.0 * scale), rl_color(RED)) + self._draw_text( + distance, + x + 1.0, + box_y + box_h * 0.5 + 1.0, + text_size, + theme.world_label_shadow, + anchor="center", + ) + self._draw_text( + distance, + x, + box_y + box_h * 0.5, + text_size, + theme.clock_text, + anchor="center", + ) + + shaft_top = box_y + box_h + 8.0 * scale + shaft_bottom = y - 8.0 * scale + tip_y = y + 20.0 * scale + arrow_color = rl_color(RED) + rl.draw_line_ex( + rl.Vector2(x, shaft_top), + rl.Vector2(x, shaft_bottom), + max(4.0, 5.0 * scale), + arrow_color, + ) + rl.draw_triangle( + rl.Vector2(x - 15.0 * scale, shaft_bottom), + rl.Vector2(x, tip_y), + rl.Vector2(x + 15.0 * scale, shaft_bottom), + arrow_color, + ) + + def _world_label_bounds( + self, + left: float, + top: float, + right: float, + bottom: float, + ) -> tuple[float, float, float, float]: + sx = self.width / DESIGN_WIDTH + sy = self.height / DESIGN_HEIGHT + return ( + left * sx, + top * sy, + self.width - right * sx, + self.height - bottom * sy, + ) + + def _draw_vehicle_box(self, vehicle: VehicleBox) -> None: + half_width = vehicle.width_m * 0.5 + half_length = vehicle.length_m * 0.5 + z0 = 0.035 + z1 = vehicle.height_m + z0 + + def corner(local_x: float, local_y: float, z: float) -> Vec3: + return Vec3( + vehicle.center.x + vehicle.right_x * local_x + vehicle.forward_x * local_y, + vehicle.center.y + vehicle.right_y * local_x + vehicle.forward_y * local_y, + z, + ) + + base = ( + corner(-half_width, -half_length, z0), + corner(half_width, -half_length, z0), + corner(half_width, half_length, z0), + corner(-half_width, half_length, z0), + ) + top = ( + corner(-half_width, -half_length, z1), + corner(half_width, -half_length, z1), + corner(half_width, half_length, z1), + corner(-half_width, half_length, z1), + ) + self._draw_vehicle_shadow(vehicle) + self._draw_quad(base[0], base[1], top[1], top[0], vehicle.rear_color) + self._draw_quad(base[1], base[2], top[2], top[1], vehicle.side_color) + self._draw_quad(base[2], base[3], top[3], top[2], vehicle.body_color) + self._draw_quad(base[3], base[0], top[0], top[3], vehicle.side_color) + self._draw_quad(top[0], top[1], top[2], top[3], vehicle.body_color) + + inset = 0.22 + highlight = tuple( + Vec3( + point.x + (vehicle.center.x - point.x) * inset, + point.y + (vehicle.center.y - point.y) * inset, + point.z + 0.006, + ) + for point in top + ) + self._draw_quad(highlight[0], highlight[1], highlight[2], highlight[3], vehicle.top_highlight) + + outline = rl_color(vehicle.outline_color) + edge_points = base + top + edges = ( + (0, 1), + (1, 2), + (2, 3), + (3, 0), + (4, 5), + (5, 6), + (6, 7), + (7, 4), + (0, 4), + (1, 5), + (2, 6), + (3, 7), + ) + for start, end in edges: + rl.draw_line_3d(vec3(edge_points[start]), vec3(edge_points[end]), outline) + + def _draw_quad( + self, + p0: Vec3, + p1: Vec3, + p2: Vec3, + p3: Vec3, + color: tuple[int, int, int, int], + ) -> None: + draw_color = rl_color(color) + rl.draw_triangle_3d(vec3(p0), vec3(p1), vec3(p2), draw_color) + rl.draw_triangle_3d(vec3(p0), vec3(p2), vec3(p3), draw_color) + + def _draw_hud(self, state: ClusterUiState, signal_lights: tuple[bool, bool] | None = None) -> None: + if signal_lights is None: + signal_lights = self._turn_signal_lights(state) + left_signal_lit, right_signal_lit = signal_lights + sx = self.width / DESIGN_WIDTH + sy = self.height / DESIGN_HEIGHT + profile_stage = self._profile_start() + rl.rl_push_matrix() + rl.rl_scalef(sx, sy, 1.0) + self._profile_add("hud.push_scale", profile_stage) + try: + profile_stage = self._profile_start() + self._draw_speed_block(state) + self._profile_add("hud.speed_block", profile_stage) + profile_stage = self._profile_start() + self._draw_accel_block(state) + self._profile_add("hud.accel_block", profile_stage) + profile_stage = self._profile_start() + self._draw_turn_signal("left", left_signal_lit) + self._profile_add("hud.turn_signal_left", profile_stage) + profile_stage = self._profile_start() + self._draw_turn_signal("right", right_signal_lit) + self._profile_add("hud.turn_signal_right", profile_stage) + profile_stage = self._profile_start() + self._draw_center_clock(state) + self._profile_add("hud.center_clock", profile_stage) + profile_stage = self._profile_start() + self._draw_system_stats_panel(state) + self._profile_add("hud.system_stats", profile_stage) + profile_stage = self._profile_start() + self._draw_route_overlay(state.route_overlay) + self._profile_add("hud.route_overlay", profile_stage) + profile_stage = self._profile_start() + self._draw_git_status(state.git_status) + self._profile_add("hud.git_status", profile_stage) + finally: + profile_stage = self._profile_start() + rl.rl_pop_matrix() + self._profile_add("hud.pop_matrix", profile_stage) + + def _draw_center_clock(self, state: ClusterUiState) -> None: + if not state.center_clock_text: + return + + theme = self._current_theme() + text = state.center_clock_text + x = DESIGN_WIDTH * 0.5 + y = 58 + size = 54 + spacing = max(1.0, size * 0.02) + font = self._font or rl.get_font_default() + measured = rl.measure_text_ex(font, text, size, spacing) + + pad_x = 28 + pad_y = 14 + rect = rl.Rectangle( + x - measured.x * 0.5 - pad_x, + y - measured.y * 0.5 - pad_y, + measured.x + pad_x * 2, + measured.y + pad_y * 2, + ) + + rl.draw_rectangle_rounded(rect, 0.28, 12, rl_color(theme.clock_bg)) + rl.draw_rectangle_rounded_lines_ex(rect, 0.28, 12, 2.0, rl_color(theme.clock_outline)) + self._draw_text(text, x, y, size, theme.clock_text, anchor="center") + + def _draw_system_stats_panel(self, state: ClusterUiState) -> None: + if state.route_overlay is not None: + return + + theme = self._current_theme() + stats = self._system_stats.sample() + cpu_count = len(stats.cpu_core_percents) + columns = 2 if cpu_count <= 16 else 4 + rows = max(1, math.ceil(max(1, cpu_count) / columns)) + core_row_h = 30.0 if columns == 2 else 24.0 + header_h = 130.0 + panel_h = min(DESIGN_HEIGHT - SYSTEM_PANEL_Y - 18.0, header_h + rows * core_row_h + 18.0) + core_area_h = max(24.0, panel_h - header_h - 14.0) + core_row_h = min(core_row_h, core_area_h / rows) + + panel_x = SYSTEM_PANEL_X + panel_y = SYSTEM_PANEL_Y + panel_w = SYSTEM_PANEL_W + pad_x = 24.0 + self._rounded_rect(panel_x, panel_y, panel_w, panel_h, 18, theme.route_panel_bg, theme.faint, 2) + self._draw_text("SYSTEM", panel_x + pad_x, panel_y + 28, 18, theme.muted) + + mem_percent = stats.memory_used_percent + mem_color = self._system_metric_color(mem_percent) + self._draw_text("MEM", panel_x + pad_x, panel_y + 62, 17, theme.muted) + self._draw_text( + self._memory_text(stats), + panel_x + 86, + panel_y + 62, + 17, + theme.text if stats.memory_used_bytes is not None else theme.muted, + ) + self._draw_text( + self._percent_text(mem_percent), + panel_x + panel_w - pad_x, + panel_y + 62, + 17, + mem_color, + anchor="right", + ) + self._draw_percent_bar(panel_x + pad_x, panel_y + 80, panel_w - pad_x * 2, 12, mem_percent, mem_color) + + cpu_header_y = panel_y + 112 + self._draw_text("CPU CORE %", panel_x + pad_x, cpu_header_y, 15, theme.muted) + if cpu_count == 0: + self._draw_text("unavailable", panel_x + panel_w - pad_x, cpu_header_y, 15, theme.muted, anchor="right") + return + + core_start_y = panel_y + header_h + gap_x = 18.0 if columns == 2 else 10.0 + cell_w = (panel_w - pad_x * 2 - gap_x * (columns - 1)) / columns + for index, percent in enumerate(stats.cpu_core_percents): + row = index // columns + column = index % columns + cell_x = panel_x + pad_x + column * (cell_w + gap_x) + line_y = core_start_y + row * core_row_h + color = self._system_metric_color(percent) + text_size = 15 if columns == 2 else 12 + self._draw_text(f"C{index}", cell_x, line_y + 8, text_size, theme.muted) + self._draw_text(self._percent_text(percent), cell_x + cell_w, line_y + 8, text_size, color, anchor="right") + self._draw_percent_bar(cell_x, line_y + 19, cell_w, 6, percent, color) + + def _draw_percent_bar( + self, + x: float, + y: float, + width: float, + height: float, + percent: float | None, + fill: tuple[int, int, int], + ) -> None: + theme = self._current_theme() + self._rounded_rect(x, y, width, height, height * 0.5, theme.gauge_bg) + if percent is None: + return + fill_ratio = clamp(percent, 0.0, 100.0) / 100.0 + if fill_ratio <= 0.0: + return + fill_width = max(2.0, width * fill_ratio) + self._rounded_rect(x, y, fill_width, height, height * 0.5, fill) + + @staticmethod + def _memory_text(stats: SystemStats) -> str: + if stats.memory_used_bytes is None or stats.memory_total_bytes is None: + return "--/-- GB" + used_gib = stats.memory_used_bytes / (1024.0 ** 3) + total_gib = stats.memory_total_bytes / (1024.0 ** 3) + return f"{used_gib:.1f}/{total_gib:.1f} GB" + + @staticmethod + def _percent_text(percent: float | None) -> str: + if percent is None: + return "--%" + return f"{clamp(percent, 0.0, 100.0):3.0f}%" + + def _system_metric_color(self, percent: float | None) -> tuple[int, int, int]: + theme = self._current_theme() + if percent is None: + return theme.muted + if percent >= 85.0: + return RED + if percent >= 60.0: + return AMBER + return BLUE + + def _draw_route_overlay(self, overlay: RouteOverlay | None) -> None: + if overlay is None: + return + theme = self._current_theme() + panel_x = 1416 + panel_y = 34 + panel_w = 476 + video_h = 244 + data_y = 300 + profile_stage = self._profile_start() + self._rounded_rect(panel_x, panel_y, panel_w, 410, 18, theme.route_panel_bg, theme.faint, 2) + self._profile_add("route_overlay.panel", profile_stage) + profile_stage = self._profile_start() + self._draw_route_video(overlay, panel_x + 10, panel_y + 10, panel_w - 20, video_h) + self._profile_add("route_overlay.video", profile_stage) + profile_stage = self._profile_start() + self._draw_route_data(overlay, panel_x + 18, data_y, panel_w - 36) + self._profile_add("route_overlay.data", profile_stage) + + def _draw_route_video(self, overlay: RouteOverlay, x: float, y: float, width: float, height: float) -> None: + theme = self._current_theme() + video_rect = rl.Rectangle(x, y, width, height) + profile_stage = self._profile_start() + rl.draw_rectangle_rounded(video_rect, 0.04, 10, rl_color(theme.route_video_bg)) + self._profile_add("route_video.background", profile_stage) + if overlay.video_rgba is None or overlay.video_width <= 0 or overlay.video_height <= 0: + status = overlay.video_status or "qcamera unavailable" + profile_stage = self._profile_start() + self._draw_text(status, x + width * 0.5, y + height * 0.5, 20, theme.route_video_status, anchor="center") + self._profile_add("route_video.status_text", profile_stage) + return + + profile_stage = self._profile_start() + texture = self._route_video_texture_for_overlay(overlay) + self._profile_add("route_video.texture_for_overlay", profile_stage) + if texture is None: + return + source = rl.Rectangle(0.0, 0.0, float(overlay.video_width), float(overlay.video_height)) + scale = min(width / overlay.video_width, height / overlay.video_height) + draw_w = overlay.video_width * scale + draw_h = overlay.video_height * scale + dest = rl.Rectangle(x + (width - draw_w) * 0.5, y + (height - draw_h) * 0.5, draw_w, draw_h) + profile_stage = self._profile_start() + rl.draw_texture_pro(texture, source, dest, rl.Vector2(0.0, 0.0), 0.0, rl_color(WHITE)) + self._profile_add("route_video.draw_texture", profile_stage) + + def _route_video_texture_for_overlay(self, overlay: RouteOverlay): + size = (overlay.video_width, overlay.video_height) + if self._route_video_texture is None or self._route_video_size != size: + if self._route_video_texture is not None: + rl.unload_texture(self._route_video_texture) + profile_stage = self._profile_start() + image = rl.gen_image_color(overlay.video_width, overlay.video_height, rl_color((0, 0, 0))) + self._route_video_texture = rl.load_texture_from_image(image) + rl.unload_image(image) + self._profile_add("route_video.alloc_texture", profile_stage) + profile_stage = self._profile_start() + rl.set_texture_filter(self._route_video_texture, rl.TextureFilter.TEXTURE_FILTER_BILINEAR) + self._profile_add("route_video.filter_texture", profile_stage) + self._route_video_size = size + self._route_video_frame_id = None + + if overlay.video_frame_id != self._route_video_frame_id: + expected = overlay.video_width * overlay.video_height * 4 + if len(overlay.video_rgba or b"") != expected: + return self._route_video_texture + profile_stage = self._profile_start() + pixels = rl.ffi.new("unsigned char[]", overlay.video_rgba) + self._profile_add("route_video.copy_pixels", profile_stage) + profile_stage = self._profile_start() + rl.update_texture(self._route_video_texture, pixels) + self._profile_add("route_video.update_texture", profile_stage) + self._route_video_frame_id = overlay.video_frame_id + return self._route_video_texture + + def _draw_route_data(self, overlay: RouteOverlay, x: float, y: float, width: float) -> None: + theme = self._current_theme() + self._draw_text("ROUTE DATA", x, y, 16, theme.muted) + for index, line in enumerate(overlay.data_lines[:10]): + self._draw_text(line, x, y + 22 + index * 14, 12, theme.text) + + def _draw_git_status(self, status: GitBranchStatus | None) -> None: + if status is None: + return + + theme = self._current_theme() + color = self._git_status_color(status, theme) + text = status.branch if not status.detail else f"{status.branch} ({status.detail})" + text_size = 20 + text = self._ellipsize_text(text, text_size, GIT_STATUS_MAX_TEXT_W) + font = self._font or rl.get_font_default() + spacing = max(1.0, text_size * 0.02) + measured = rl.measure_text_ex(font, text, text_size, spacing) + + panel_x = GIT_STATUS_X + panel_y = GIT_STATUS_CENTER_Y - GIT_STATUS_PANEL_H * 0.5 + panel_w = measured.x + 58 + self._rounded_rect(panel_x, panel_y, panel_w, GIT_STATUS_PANEL_H, 10, theme.route_panel_bg, theme.faint, 1) + rl.draw_circle_v(rl.Vector2(panel_x + 20, GIT_STATUS_CENTER_Y), 7, rl_color(color)) + self._draw_text(text, panel_x + 36 + 1, GIT_STATUS_CENTER_Y + 1, text_size, theme.world_label_shadow) + self._draw_text(text, panel_x + 36, GIT_STATUS_CENTER_Y, text_size, color) + + @staticmethod + def _git_status_color(status: GitBranchStatus, theme: ClusterTheme) -> tuple[int, int, int]: + if status.state == "ok": + return GREEN + if status.state == "pull": + return AMBER + if status.state == "missing": + return RED + return theme.muted + + def _draw_speed_block(self, state: ClusterUiState) -> None: + theme = self._current_theme() + display_speed_kph = state.display_speed_kph if state.display_speed_kph is not None else state.speed_kph + speed_value = int(round(clamp(display_speed_kph, 0.0, MAX_SPEED_KPH))) + self._draw_text(str(speed_value), SPEED_VALUE_CENTER_X, SPEED_VALUE_CENTER_Y, 156, theme.text, anchor="center") + + if state.speed_limit_kph is not None: + center = rl.Vector2(SPEED_LIMIT_SIGN_CENTER_X, SPEED_LIMIT_SIGN_CENTER_Y) + rl.draw_circle_v(center, 56, rl_color(RED)) + rl.draw_circle_v(center, 47, rl_color(WHITE)) + self._draw_text( + str(state.speed_limit_kph), + SPEED_LIMIT_SIGN_CENTER_X, + SPEED_LIMIT_SIGN_CENTER_Y - 1, + 42, + TEXT, + anchor="center", + ) + + if self._cruise_set_visible(state): + self._draw_text( + f"SET {state.cruise_kph:3d}", + CRUISE_SET_CENTER_X, + CRUISE_SET_CENTER_Y, + 60, + self._cruise_set_color(state, theme), + anchor="center", + ) + + @staticmethod + def _cruise_set_visible(state: ClusterUiState) -> bool: + return state.cruise_kph is not None and state.cruise_display_state != "off" + + @staticmethod + def _cruise_set_color(state: ClusterUiState, theme: ClusterTheme) -> tuple[int, int, int]: + if state.cruise_display_state == "paused": + return theme.muted + if state.speed_limit_kph is not None and state.cruise_kph == state.speed_limit_kph: + return GREEN + return BLUE + + def _draw_accel_block(self, state: ClusterUiState) -> None: + theme = self._current_theme() + top = 80 + bottom = 400 + center = (top + bottom) // 2 + gauge_width = 56 + accel_value = 0.0 if abs(state.accel_mps2) < 0.005 else state.accel_mps2 + accel_text = f"{accel_value:+05.2f}" + accel_text_x = 20 + accel_text_size = 38 + if self._font is None: + self._font = rl.get_font_default() + text_spacing = max(1.0, accel_text_size * 0.02) + if self._accel_text_width <= 0.0: + self._accel_text_width = max( + rl.measure_text_ex(self._font, text, accel_text_size, text_spacing).x + for text in ACCEL_TEXT_WIDTH_SAMPLES + ) + text_width = self._accel_text_width + gauge_center_x = accel_text_x + text_width * 0.5 + gauge_x = gauge_center_x - gauge_width * 0.5 + fill_x = gauge_x + 8 + fill_width = 40 + self._rounded_rect(gauge_x, top, gauge_width, bottom - top, 18, theme.gauge_bg, theme.faint, 2) + rl.draw_line_ex( + rl.Vector2(gauge_x, center), + rl.Vector2(gauge_x + gauge_width, center), + 3, + rl_color(theme.gauge_midline), + ) + value = clamp(state.accel_mps2, -MAX_ACCEL_MPS2, MAX_ACCEL_MPS2) + fill_color = GREEN if value > 0 else RED if value < 0 else theme.muted + if value != 0.0: + fill_height = int(abs(value) / MAX_ACCEL_MPS2 * ((bottom - top) / 2 - 8)) + if value > 0: + self._rounded_rect(fill_x, center - fill_height, fill_width, fill_height, 13, fill_color) + else: + self._rounded_rect(fill_x, center, fill_width, fill_height, 13, fill_color) + self._draw_text(accel_text, accel_text_x, 48, accel_text_size, fill_color) + self._draw_text("m/s^2", gauge_center_x, 424, 21, theme.muted, anchor="center") + + def _turn_signal_lights(self, state: ClusterUiState) -> tuple[bool, bool]: + now = time.perf_counter() + return ( + self._turn_signal_lit("left", state.left_signal, now), + self._turn_signal_lit("right", state.right_signal, now), + ) + + @staticmethod + def _highlight_lane_lit(state: ClusterUiState, signal_lights: tuple[bool, bool]) -> bool: + left_signal_lit, right_signal_lit = signal_lights + if state.highlight_lane == "left": + return left_signal_lit + if state.highlight_lane == "right": + return right_signal_lit + if state.left_signal != state.right_signal: + return left_signal_lit if state.left_signal else right_signal_lit + return True + + def _turn_signal_lit(self, side: str, active: bool, now: float | None = None) -> bool: + if not active: + if side == "left": + self._left_turn_signal_started_at = None + else: + self._right_turn_signal_started_at = None + return False + + if now is None: + now = time.perf_counter() + if side == "left": + if self._left_turn_signal_started_at is None: + self._left_turn_signal_started_at = now + started_at = self._left_turn_signal_started_at + else: + if self._right_turn_signal_started_at is None: + self._right_turn_signal_started_at = now + started_at = self._right_turn_signal_started_at + return blink_visible(now, started_at, float("inf")) + + def _draw_turn_signal(self, side: str, lit: bool) -> None: + theme = self._current_theme() + cx = TURN_SIGNAL_LEFT_CENTER_X if side == "left" else TURN_SIGNAL_RIGHT_CENTER_X + cy = TURN_SIGNAL_CENTER_Y + direction = -1 if side == "left" else 1 + fill = GREEN if lit else theme.inactive_signal_fill + outline = (8, 118, 65) if lit else theme.inactive_signal_outline + tail_back = -36 + tail_front = 12 + tail_half_height = 16 + head_tip_x = 60 + head_half_height = 38 + + def point(local_x: float, local_y: float) -> rl.Vector2: + return rl.Vector2(cx + direction * local_x, cy + local_y) + + tail_rect = rl.Rectangle( + cx + direction * tail_back, + cy - tail_half_height, + direction * (tail_front - tail_back), + tail_half_height * 2, + ) + if tail_rect.width < 0: + tail_rect.x += tail_rect.width + tail_rect.width = -tail_rect.width + + head_top = point(tail_front, -head_half_height) + head_tip = point(head_tip_x, 0) + head_bottom = point(tail_front, head_half_height) + if direction < 0: + head_vertices = (head_top, head_tip, head_bottom) + else: + head_vertices = (head_top, head_bottom, head_tip) + + rl.draw_rectangle_rec(tail_rect, rl_color(fill)) + rl.draw_triangle(*head_vertices, rl_color(fill)) + + outline_points = [ + point(tail_back, -tail_half_height), + point(tail_front, -tail_half_height), + head_top, + head_tip, + head_bottom, + point(tail_front, tail_half_height), + point(tail_back, tail_half_height), + ] + line_color = rl_color(outline) + for index, start in enumerate(outline_points): + end = outline_points[(index + 1) % len(outline_points)] + rl.draw_line_ex(start, end, 3, line_color) + + def _rounded_rect( + self, + x: float, + y: float, + width: float, + height: float, + radius: float, + fill: tuple[int, int, int], + outline: tuple[int, int, int] | None = None, + outline_width: float = 1.0, + ) -> None: + rect = rl.Rectangle(x, y, width, height) + roundness = max(0.0, min(1.0, radius / max(1.0, min(width, height)))) + rl.draw_rectangle_rounded(rect, roundness, 12, rl_color(fill)) + if outline is not None and outline_width > 0: + rl.draw_rectangle_rounded_lines_ex(rect, roundness, 12, outline_width, rl_color(outline)) + + def _draw_text( + self, + text: str, + x: float, + y: float, + size: float, + color: tuple[int, int, int], + anchor: str = "left", + ) -> None: + if self._font is None: + self._font = rl.get_font_default() + spacing = max(1.0, size * 0.02) + measured = rl.measure_text_ex(self._font, text, size, spacing) + draw_x = x + draw_y = y + if anchor == "center": + draw_x = x - measured.x * 0.5 + draw_y = y - measured.y * 0.5 + elif anchor == "left": + draw_y = y - measured.y * 0.5 + elif anchor == "right": + draw_x = x - measured.x + draw_y = y - measured.y * 0.5 + rl.draw_text_ex(self._font, text, rl.Vector2(draw_x, draw_y), size, spacing, rl_color(color)) + + def _ellipsize_text(self, text: str, size: float, max_width: float) -> str: + if self._font is None: + self._font = rl.get_font_default() + spacing = max(1.0, size * 0.02) + if rl.measure_text_ex(self._font, text, size, spacing).x <= max_width: + return text + ellipsis = "..." + low = 0 + high = len(text) + while low < high: + mid = (low + high + 1) // 2 + candidate = text[:mid] + ellipsis + if rl.measure_text_ex(self._font, candidate, size, spacing).x <= max_width: + low = mid + else: + high = mid - 1 + return text[:low] + ellipsis diff --git a/selfdrive/carrot/cluster/cluster_route_replay.py b/selfdrive/carrot/cluster/cluster_route_replay.py new file mode 100644 index 000000000..620fb1906 --- /dev/null +++ b/selfdrive/carrot/cluster/cluster_route_replay.py @@ -0,0 +1,3051 @@ +from __future__ import annotations + +import bz2 +import io +import math +import multiprocessing as mp +import os +import queue +import shutil +import subprocess +import tempfile +import traceback +from bisect import bisect_right +from dataclasses import dataclass, replace +from fractions import Fraction +from pathlib import Path +from typing import Any + +from cluster_config import ( + BLUE, + BLUE_SOFT, + DEFAULT_LANE_WIDTH_M, + MAX_ACCEL_MPS2, + MAX_SPEED_KPH, + MAX_STEERING_ANGLE_DEG, + MODEL_DIRECT_LANE_RECENTER_SECONDS, + ROAD_CURVE_M_PER_M2, + WHITE, +) +from cluster_models import ( + ClusterUiState, + CruiseDisplayState, + DetectedVehicle, + LaneMarking, + ModelPathPoint, + ModelRiskPoint, + RadarPoint, + RouteOverlay, +) +from cluster_utils import clamp, smoothstep + + +ROUTE_SCHEMA_CACHE_NAME = "carrotpilot_cluster_capnp_v1" +LOG_FILENAMES = { + "qlog": "qlog.zst", + "rlog": "rlog.zst", +} +RADAR_TO_CAMERA_M = 1.52 +MODEL_LEAD_MIN_PROB = 0.08 +RADAR_POINT_STALE_S = 0.12 +RADAR_MIN_LONGITUDINAL_M = 0.0 +RADAR_FRONT_MAX_LONGITUDINAL_M = 180.0 +CORNER_RADAR_REAR_MIN_LONGITUDINAL_M = -180.0 +ROUTE_REPLAY_MIN_BUFFER_FILES = 2 +ROUTE_REPLAY_READAHEAD_S = 5.0 +ROUTE_REPLAY_RETAIN_BEHIND_S = 1.0 +ROUTE_REPLAY_PRELOAD_NICE = 5 +LANE_CHANGE_REINDEX_PEAK_THRESHOLD = 0.22 +LANE_CHANGE_REINDEX_RESET_THRESHOLD = -0.08 +CONTINUOUS_LANE_CHANGE_REBASE_PROGRESS = 0.12 +LANE_CHANGE_MODEL_DIRECT_ONLY = True +MODEL_DIRECT_LANE_SETTLE_MIN_PROGRESS = 0.65 + + +@dataclass(frozen=True, slots=True) +class RouteReplayFrame: + t: float + speed_kph: float + accel_mps2: float + steering: float + steering_angle_deg: float | None + speed_limit_kph: int | None + cruise_kph: int | None + cruise_display_state: CruiseDisplayState + left_signal: bool + right_signal: bool + left_blindspot: bool + right_blindspot: bool + lane_width_m: float + lane_center_offset_m: float | None + left_lane_offset: float + right_lane_offset: float + left_lane_visible: bool + right_lane_visible: bool + extra_left_lane_visible: bool + extra_right_lane_visible: bool + left_road_edge_offset: float | None + right_road_edge_offset: float | None + left_lane_style: str + right_lane_style: str + road_curvature: float | None + road_curvature_source: str + lane_position_source: str + model_lane_lines: tuple[tuple[ModelPathPoint, ...], ...] + model_road_edges: tuple[tuple[ModelPathPoint, ...], ...] + model_path: tuple[ModelPathPoint, ...] + model_path_source: str + lane_change_source: str + lane_change: str | None + lane_change_phase: str + lane_change_progress: float + lane_change_recenter_start_progress: float + lane_change_continuation: bool + throttle: float + brake: float + detected_vehicles: tuple[DetectedVehicle, ...] + radar_points: tuple[RadarPoint, ...] = () + display_speed_kph: float | None = None + planned_speed_kph: float | None = None + planned_accel_mps2: float | None = None + planned_curvature_m_inv: float | None = None + should_stop: bool = False + model_confidence: str | None = None + model_turn_speed_kph: float | None = None + engaged_prob: float | None = None + desire_state: tuple[float, ...] = () + desire_prediction: tuple[tuple[float, ...], ...] = () + risk_points: tuple[ModelRiskPoint, ...] = () + brake_disengage_risk: float = 0.0 + gas_disengage_risk: float = 0.0 + steer_override_risk: float = 0.0 + hard_brake_risk: float = 0.0 + gas_press_prob: float = 0.0 + brake_press_prob: float = 0.0 + disengage_risk: float = 0.0 + hard_brake_predicted: bool = False + lane_change_available_left: bool | None = None + lane_change_available_right: bool | None = None + lane_change_prob: float = 0.0 + left_lane_width_m: float | None = None + right_lane_width_m: float | None = None + left_road_edge_distance_m: float | None = None + right_road_edge_distance_m: float | None = None + left_road_edge_confidence: float = 0.0 + right_road_edge_confidence: float = 0.0 + frame_age: int | None = None + frame_drop_perc: float | None = None + model_execution_time_ms: float | None = None + vision_speed_mps: float | None = None + vision_yaw_rate_rps: float | None = None + vision_speed_std_mps: float | None = None + vision_yaw_rate_std_rps: float | None = None + camera_calibration_euler: tuple[float, float, float] | None = None + road_transform_trans: tuple[float, float, float] | None = None + road_transform_std: tuple[float, float, float] | None = None + camera_odometry_valid: bool | None = None + longitudinal_plan_source: str | None = None + longitudinal_plan_speeds_kph: tuple[float, ...] = () + longitudinal_plan_accels_mps2: tuple[float, ...] = () + longitudinal_plan_jerks_mps3: tuple[float, ...] = () + longitudinal_plan_fcw: bool = False + longitudinal_plan_should_stop: bool = False + longitudinal_plan_allow_throttle: bool | None = None + longitudinal_plan_allow_brake: bool | None = None + longitudinal_t_follow_s: float | None = None + longitudinal_desired_distance_m: float | None = None + longitudinal_v_target_kph: float | None = None + longitudinal_jerk_target_mps3: float | None = None + lateral_plan_valid: bool | None = None + lateral_plan_use_lane_lines: bool | None = None + lateral_plan_solver_cost: float | None = None + lateral_plan_debug_text: str | None = None + lateral_plan_curvatures: tuple[float, ...] = () + lateral_plan_curvature_rates: tuple[float, ...] = () + + +@dataclass(frozen=True, slots=True) +class RouteVideoSegment: + index: int | None + path: Path + start_t: float + end_t: float + + +@dataclass(frozen=True, slots=True) +class RouteVideoFrame: + rgba: bytes + width: int + height: int + frame_id: str + + +@dataclass(slots=True) +class RouteReplayChunk: + index: int + path: Path + frames: list[RouteReplayFrame] + start_t: float + end_t: float + + +@dataclass(slots=True) +class RouteReplayParsedFile: + index: int + path: Path + frames: list[RouteReplayFrame] + + +@dataclass(slots=True) +class RouteReplayWorkerResult: + generation: int + index: int + path: str + frames: list[RouteReplayFrame] | None = None + error: str | None = None + + +class RouteLogPreloadWorker: + def __init__(self) -> None: + self._context = mp.get_context("spawn") + self._requests: Any | None = None + self._results: Any | None = None + self._process: mp.Process | None = None + self._start() + + def request(self, generation: int, file_index: int, file_path: Path) -> None: + if self._requests is None: + self._start() + if self._requests is None: + raise RuntimeError("route preload worker is not available") + self._requests.put(("parse", generation, file_index, str(file_path))) + + def receive(self, block: bool) -> RouteReplayWorkerResult | None: + if self._results is None: + return None + while True: + try: + if block: + return self._results.get(timeout=0.1) + return self._results.get_nowait() + except queue.Empty: + if not block: + return None + process = self._process + if process is not None and process.exitcode is not None: + raise RuntimeError(f"route preload worker exited with code {process.exitcode}") + + def restart(self) -> None: + self.close() + self._start() + + def close(self) -> None: + process = self._process + requests = self._requests + if process is not None and process.is_alive() and requests is not None: + try: + requests.put(("stop", 0, 0, ""), block=False) + except Exception: + pass + process.join(timeout=0.5) + if process is not None and process.is_alive(): + process.terminate() + process.join(timeout=1.0) + if process is not None and process.is_alive(): + try: + process.kill() + except Exception: + pass + process.join(timeout=1.0) + + for pipe in (self._requests, self._results): + if pipe is None: + continue + try: + pipe.close() + pipe.join_thread() + except Exception: + pass + self._requests = None + self._results = None + self._process = None + + def _start(self) -> None: + self._requests = self._context.Queue(maxsize=1) + self._results = self._context.Queue(maxsize=1) + self._process = self._context.Process( + target=route_log_preload_worker, + args=(self._requests, self._results, ROUTE_REPLAY_PRELOAD_NICE), + name="route-log-preload", + daemon=True, + ) + self._process.start() + + +def route_log_preload_worker(requests: Any, results: Any, nice_increment: int) -> None: + if nice_increment > 0: + try: + os.nice(nice_increment) + except Exception: + pass + + log_schema = load_openpilot_log_schema() + parser = RouteLogParser() + while True: + command, generation, file_index, file_path_text = requests.get() + if command == "stop": + return + if command != "parse": + continue + try: + file_path = Path(file_path_text) + frames = parser.parse_file(file_path, log_schema) + results.put(RouteReplayWorkerResult(generation, file_index, file_path_text, frames=frames)) + except BaseException: + results.put( + RouteReplayWorkerResult( + generation, + file_index, + file_path_text, + error=traceback.format_exc(), + ) + ) + + +class RouteReplaySource: + def __init__( + self, + source_files: list[Path], + ) -> None: + if not source_files: + raise RuntimeError("route contains no log files") + self.source_files = source_files + self.frames: list[RouteReplayFrame] = [] + self.times: list[float] = [] + self.duration = 0.0 + self.video_segments: list[RouteVideoSegment] = [] + self._video_reader = RouteVideoFrameReader(self.video_segments) + self._preload_worker = RouteLogPreloadWorker() + self._first_t: float | None = None + self._next_file_index = 0 + self._loaded_chunks: list[RouteReplayChunk] = [] + self._loaded_file_count = 0 + self._end_of_route = False + self._preload_active = False + self._preload_file_index: int | None = None + self._preload_file_path: Path | None = None + self._preload_generation = 0 + self._ensure_loaded(0.0) + if not self.frames: + raise RuntimeError("route contains no carState frames") + + @classmethod + def load( + cls, + route_path: Path, + log_kind: str = "qlog", + start_segment: int | None = None, + max_segments: int | None = None, + ) -> RouteReplaySource: + files = discover_route_logs(route_path, log_kind, start_segment, max_segments) + if not files: + raise RuntimeError(f"no {LOG_FILENAMES[log_kind]} files found under {route_path}") + + return cls(files) + + def is_finished(self, playback_seconds: float, loop: bool = False) -> bool: + if not loop: + self._ensure_loaded(playback_seconds) + return not loop and playback_seconds > self.duration + + def state_at( + self, + playback_seconds: float, + loop: bool = False, + include_overlay: bool = False, + ) -> ClusterUiState: + if loop and self._end_of_route and self.duration > 0.0: + playback_seconds %= self.duration + self._ensure_loaded(playback_seconds) + if self.duration <= 0.0: + state = frame_to_state(self.frames[0]) + return self._with_overlay(state, self.frames[0], 0.0, loop) if include_overlay else state + if not loop or self._end_of_route: + playback_seconds = clamp(playback_seconds, 0.0, self.duration) + + right_index = bisect_right(self.times, playback_seconds) + if right_index <= 0: + state = frame_to_state(self.frames[0]) + return self._with_overlay(state, self.frames[0], playback_seconds, loop) if include_overlay else state + if right_index >= len(self.frames): + state = frame_to_state(self.frames[-1]) + return self._with_overlay(state, self.frames[-1], playback_seconds, loop) if include_overlay else state + + left = self.frames[right_index - 1] + right = self.frames[right_index] + span = max(0.001, right.t - left.t) + amount = clamp((playback_seconds - left.t) / span, 0.0, 1.0) + frame = blend_frames(left, right, amount) + state = frame_to_state(frame) + return self._with_overlay(state, frame, playback_seconds, loop) if include_overlay else state + + def close(self) -> None: + self._preload_generation += 1 + self._preload_active = False + self._preload_file_index = None + self._preload_file_path = None + self._preload_worker.close() + if self._video_reader is not None: + self._video_reader.close() + + def status_text(self, playback_seconds: float, loop: bool = False) -> str: + shown_time = ( + playback_seconds % self.duration + if loop and self._end_of_route and self.duration > 0.0 + else playback_seconds + ) + shown_time = clamp(shown_time, 0.0, self.duration) + frame = self._status_frame_at(shown_time) + radar_count = len(frame.radar_points) if frame is not None else 0 + detected_count = len(frame.detected_vehicles) if frame is not None else 0 + file_count = len(self.source_files) + return ( + f"route t={shown_time:6.1f}/{self.duration:6.1f}s " + f"files={self._loaded_file_count}/{file_count} " + f"radar={radar_count} " + f"detected={detected_count}" + ) + + @property + def loaded_file_count(self) -> int: + return self._loaded_file_count + + def _status_frame_at(self, playback_seconds: float) -> RouteReplayFrame | None: + if not self.frames: + return None + if playback_seconds <= self.times[0]: + return self.frames[0] + right_index = bisect_right(self.times, playback_seconds) + if right_index >= len(self.frames): + return self.frames[-1] + left = self.frames[right_index - 1] + right = self.frames[right_index] + span = max(0.001, right.t - left.t) + amount = clamp((playback_seconds - left.t) / span, 0.0, 1.0) + return blend_frames(left, right, amount) + + def _ensure_loaded(self, playback_seconds: float) -> None: + if self.frames and playback_seconds < self.frames[0].t and not self._end_of_route: + self._reset_stream() + + while not self._end_of_route and ( + not self.frames + or len(self._loaded_chunks) < ROUTE_REPLAY_MIN_BUFFER_FILES + or playback_seconds >= self.duration - ROUTE_REPLAY_READAHEAD_S + ): + if not self._load_next_file(): + break + + self._trim_loaded_chunks(playback_seconds) + self._start_preload() + + def _load_next_file(self) -> bool: + if self._preload_active: + return self._finish_preload(block=True) + + if self._next_file_index >= len(self.source_files): + self._end_of_route = True + return False + + file_index = self._next_file_index + file_path = self.source_files[file_index] + self._next_file_index += 1 + self._request_preload(file_index, file_path) + return self._finish_preload(block=True) + + def _start_preload(self) -> None: + if ( + self._end_of_route + or self._preload_active + or self._next_file_index >= len(self.source_files) + ): + return + + file_index = self._next_file_index + file_path = self.source_files[file_index] + self._next_file_index += 1 + self._request_preload(file_index, file_path) + + def _request_preload(self, file_index: int, file_path: Path) -> None: + self._preload_active = True + self._preload_file_index = file_index + self._preload_file_path = file_path + self._preload_worker.request(self._preload_generation, file_index, file_path) + + def _finish_preload(self, block: bool) -> bool: + if not self._preload_active: + return False + + result = self._preload_worker.receive(block=block) + if result is None: + return False + + file_path = self._preload_file_path + self._preload_active = False + self._preload_file_index = None + self._preload_file_path = None + + if result.generation != self._preload_generation: + return False + if result.error is not None: + raise RuntimeError(f"failed to preload route log {file_path}:\n{result.error}") + if result.frames is None: + return False + return self._append_parsed_file(RouteReplayParsedFile(result.index, Path(result.path), result.frames)) + + def _stop_preload(self, wait: bool) -> None: + self._preload_generation += 1 + if self._preload_active and wait: + self._finish_preload(block=True) + self._preload_active = False + self._preload_file_index = None + self._preload_file_path = None + self._preload_worker.restart() + + def _append_parsed_file(self, parsed_file: RouteReplayParsedFile) -> bool: + file_index = parsed_file.index + file_path = parsed_file.path + parsed_frames = parsed_file.frames + self._loaded_file_count = max(self._loaded_file_count, self._next_file_index) + if not parsed_frames: + return True + + if self._first_t is None: + self._first_t = min(frame.t for frame in parsed_frames) + first_t = self._first_t + normalized = [replace(frame, t=frame.t - first_t) for frame in parsed_frames] + normalized.sort(key=lambda frame: frame.t) + chunk = RouteReplayChunk( + index=file_index, + path=file_path, + frames=normalized, + start_t=normalized[0].t, + end_t=normalized[-1].t, + ) + self._loaded_chunks.append(chunk) + self._append_video_segment(file_path, chunk) + self._rebuild_frame_index() + return True + + def _append_video_segment(self, file_path: Path, chunk: RouteReplayChunk) -> None: + video_path = file_path.parent / "qcamera.ts" + if not video_path.exists(): + return + self.video_segments.append( + RouteVideoSegment( + index=segment_index(file_path), + path=video_path, + start_t=chunk.start_t, + end_t=chunk.end_t, + ) + ) + + def _trim_loaded_chunks(self, playback_seconds: float) -> None: + removed = False + while ( + len(self._loaded_chunks) > ROUTE_REPLAY_MIN_BUFFER_FILES + and self._loaded_chunks[0].end_t < playback_seconds - ROUTE_REPLAY_RETAIN_BEHIND_S + ): + self._loaded_chunks.pop(0) + removed = True + if removed: + self._rebuild_frame_index() + + def _rebuild_frame_index(self) -> None: + self.frames = [ + frame + for chunk in self._loaded_chunks + for frame in chunk.frames + ] + self.frames.sort(key=lambda frame: frame.t) + self.times = [frame.t for frame in self.frames] + if self.frames: + self.duration = max(self.duration, self.frames[-1].t) + + def _reset_stream(self) -> None: + self._stop_preload(wait=True) + if self._video_reader is not None: + self._video_reader.close() + self.frames = [] + self.times = [] + self.duration = 0.0 + self.video_segments = [] + self._video_reader = RouteVideoFrameReader(self.video_segments) + self._first_t = None + self._next_file_index = 0 + self._loaded_chunks = [] + self._loaded_file_count = 0 + self._end_of_route = False + + def _with_overlay( + self, + state: ClusterUiState, + frame: RouteReplayFrame, + playback_seconds: float, + loop: bool, + ) -> ClusterUiState: + overlay = self._route_overlay(frame, state, playback_seconds, loop) + return replace(state, route_overlay=overlay) + + def _route_overlay( + self, + frame: RouteReplayFrame, + state: ClusterUiState, + playback_seconds: float, + loop: bool, + ) -> RouteOverlay: + shown_time = playback_seconds % self.duration if loop and self.duration > 0.0 else playback_seconds + shown_time = clamp(shown_time, 0.0, self.duration) + segment = route_video_segment_at(self.video_segments, shown_time) + segment_label = "--" if segment is None or segment.index is None else str(segment.index) + video_frame = self._video_reader.frame_at(shown_time) if self._video_reader is not None else None + signal_text = ("L" if frame.left_signal else "-") + ("R" if frame.right_signal else "-") + lane_offset_text = "--" if frame.lane_center_offset_m is None else f"{frame.lane_center_offset_m:+.2f}m" + limit_text = "--" if frame.speed_limit_kph is None else f"{frame.speed_limit_kph:d}" + cruise_text = "--" if frame.cruise_kph is None else f"{frame.cruise_kph:d}" + curve_text = "--" if frame.road_curvature is None else f"{frame.road_curvature:+.5f}" + detected_text = detected_vehicle_summary(frame.detected_vehicles) + radar_text = radar_point_summary(frame.radar_points) + lane_change_text = "idle" if frame.lane_change is None else f"{frame.lane_change}:{frame.lane_change_progress:.2f}" + plan_speed_text = "--" if frame.planned_speed_kph is None else f"{frame.planned_speed_kph:.0f}" + plan_accel_text = "--" if frame.planned_accel_mps2 is None else f"{frame.planned_accel_mps2:+.1f}" + turn_speed_text = "--" if frame.model_turn_speed_kph is None else f"{frame.model_turn_speed_kph:.0f}" + engaged_text = "--" if frame.engaged_prob is None else f"{frame.engaged_prob:.0%}" + lead_ttc_text = nearest_ttc_summary(frame.detected_vehicles) + vision_text = "--" if frame.vision_speed_mps is None else f"{frame.vision_speed_mps * 3.6:.1f}kph" + frame_drop_text = "--" if frame.frame_drop_perc is None else f"{frame.frame_drop_perc:.1f}%" + model_time_text = "--" if frame.model_execution_time_ms is None else f"{frame.model_execution_time_ms:.0f}ms" + confidence_text = frame.model_confidence or "--" + availability_text = ( + ("L" if frame.lane_change_available_left else "-") + + ("R" if frame.lane_change_available_right else "-") + ) + data_lines = ( + f"t {shown_time:6.1f}/{self.duration:6.1f}s seg {segment_label}", + f"vEgo {state.speed_kph:5.1f} km/h aEgo {state.accel_mps2:+.2f} m/s2", + f"steer {frame.steering_angle_deg or 0.0:+.1f} deg limit {limit_text} cruise {cruise_text}", + f"curve {curve_text} plan {plan_speed_text}kph {plan_accel_text}m/s2", + f"lane {frame.lane_width_m:.2f}m center {lane_offset_text} src {frame.lane_position_source}", + f"signals {signal_text} lc {lane_change_text} avail {availability_text} p{frame.lane_change_prob:.2f}", + f"model {confidence_text} eng {engaged_text} risk {frame.disengage_risk:.2f} hb {frame.hard_brake_risk:.2f}", + f"turn {turn_speed_text}kph ttc {lead_ttc_text} stop {int(frame.should_stop)} drop {frame_drop_text} exec {model_time_text}", + f"vision {vision_text} yaw {frame.vision_yaw_rate_rps or 0.0:+.3f} detected {detected_text}", + f"radar points {radar_text}", + ) + + if video_frame is None: + return RouteOverlay(video_status="qcamera unavailable", data_lines=data_lines) + return RouteOverlay( + video_rgba=video_frame.rgba, + video_width=video_frame.width, + video_height=video_frame.height, + video_frame_id=video_frame.frame_id, + data_lines=data_lines, + ) + + +class RouteVideoFrameReader: + def __init__(self, segments: list[RouteVideoSegment]) -> None: + self.segments = segments + self._ffmpeg_path = shutil.which("ffmpeg") + self._active_segment: RouteVideoSegment | None = None + self._process: subprocess.Popen[bytes] | None = None + self._width = 526 + self._height = 330 + self._fps = 20.0 + self._current_index = -1 + self._last_frame: RouteVideoFrame | None = None + + def frame_at(self, playback_seconds: float) -> RouteVideoFrame | None: + segment = route_video_segment_at(self.segments, playback_seconds) + if segment is None or self._ffmpeg_path is None: + return None + + segment_time = clamp(playback_seconds - segment.start_t, 0.0, max(0.0, segment.end_t - segment.start_t)) + if self._active_segment != segment: + self._restart(segment) + if self._process is None or self._process.stdout is None: + return None + + target_index = max(0, int(segment_time * self._fps)) + if target_index < self._current_index: + self._restart(segment) + if self._process is None or self._process.stdout is None: + return None + + frame_size = self._width * self._height * 4 + while self._current_index < target_index: + raw = self._process.stdout.read(frame_size) + if len(raw) != frame_size: + return self._last_frame + self._current_index += 1 + self._last_frame = RouteVideoFrame( + rgba=raw, + width=self._width, + height=self._height, + frame_id=f"{segment.index}:{self._current_index}", + ) + + return self._last_frame + + def close(self) -> None: + if self._process is None: + return + try: + if self._process.stdout is not None: + self._process.stdout.close() + self._process.terminate() + self._process.wait(timeout=1.0) + except Exception: + try: + self._process.kill() + except Exception: + pass + finally: + self._process = None + self._active_segment = None + self._current_index = -1 + + def _restart(self, segment: RouteVideoSegment) -> None: + self.close() + if self._ffmpeg_path is None: + return + self._width, self._height, self._fps = probe_video(segment.path) + self._process = subprocess.Popen( + [ + self._ffmpeg_path, + "-hide_banner", + "-loglevel", + "error", + "-i", + str(segment.path), + "-an", + "-f", + "rawvideo", + "-pix_fmt", + "rgba", + "-", + ], + stdout=subprocess.PIPE, + stderr=subprocess.DEVNULL, + ) + self._active_segment = segment + self._current_index = -1 + self._last_frame = None + + +class RouteLogParser: + def __init__(self) -> None: + self.speed_limit_kph: int | None = None + self.nav_speed_limit_kph: int | None = None + self.cruise_kph: int | None = None + self.controls_enabled: bool | None = None + self.lane_width_m = DEFAULT_LANE_WIDTH_M + self.left_lane_y_m: float | None = None + self.right_lane_y_m: float | None = None + self.outer_left_lane_y_m: float | None = None + self.outer_right_lane_y_m: float | None = None + self.left_road_edge_y_m: float | None = None + self.right_road_edge_y_m: float | None = None + self.left_lane_prob = 1.0 + self.right_lane_prob = 1.0 + self.outer_left_lane_prob = 0.0 + self.outer_right_lane_prob = 0.0 + self.left_road_edge_confidence = 0.0 + self.right_road_edge_confidence = 0.0 + self.left_lane_style = "solid" + self.right_lane_style = "solid" + self.lane_position_source = "default" + self.model_curvature_m_inv: float | None = None + self.model_curvature_source = "steeringAngleDeg" + self.controls_curvature_m_inv: float | None = None + self.controls_curvature_source = "steeringAngleDeg" + self.model_lane_lines: tuple[tuple[ModelPathPoint, ...], ...] = () + self.model_road_edges: tuple[tuple[ModelPathPoint, ...], ...] = () + self.model_path: tuple[ModelPathPoint, ...] = () + self.model_path_source = "none" + self.model_detections: tuple[DetectedVehicle, ...] = () + self.model_detection_t = -999.0 + self.planned_speed_kph: float | None = None + self.planned_accel_mps2: float | None = None + self.model_action_curvature_m_inv: float | None = None + self.should_stop = False + self.model_confidence: str | None = None + self.model_turn_speed_kph: float | None = None + self.engaged_prob: float | None = None + self.desire_state: tuple[float, ...] = () + self.desire_prediction: tuple[tuple[float, ...], ...] = () + self.risk_points: tuple[ModelRiskPoint, ...] = () + self.brake_disengage_risk = 0.0 + self.gas_disengage_risk = 0.0 + self.steer_override_risk = 0.0 + self.hard_brake_risk = 0.0 + self.gas_press_prob = 0.0 + self.brake_press_prob = 0.0 + self.disengage_risk = 0.0 + self.hard_brake_predicted = False + self.frame_age: int | None = None + self.frame_drop_perc: float | None = None + self.model_execution_time_ms: float | None = None + self.vision_speed_mps: float | None = None + self.vision_yaw_rate_rps: float | None = None + self.vision_speed_std_mps: float | None = None + self.vision_yaw_rate_std_rps: float | None = None + self.camera_calibration_euler: tuple[float, float, float] | None = None + self.road_transform_trans: tuple[float, float, float] | None = None + self.road_transform_std: tuple[float, float, float] | None = None + self.camera_odometry_valid: bool | None = None + self.longitudinal_plan_source: str | None = None + self.longitudinal_plan_speeds_kph: tuple[float, ...] = () + self.longitudinal_plan_accels_mps2: tuple[float, ...] = () + self.longitudinal_plan_jerks_mps3: tuple[float, ...] = () + self.longitudinal_plan_fcw = False + self.longitudinal_plan_should_stop = False + self.longitudinal_plan_allow_throttle: bool | None = None + self.longitudinal_plan_allow_brake: bool | None = None + self.longitudinal_t_follow_s: float | None = None + self.longitudinal_desired_distance_m: float | None = None + self.longitudinal_v_target_kph: float | None = None + self.longitudinal_jerk_target_mps3: float | None = None + self.lateral_plan_valid: bool | None = None + self.lateral_plan_use_lane_lines: bool | None = None + self.lateral_plan_solver_cost: float | None = None + self.lateral_plan_debug_text: str | None = None + self.lateral_plan_curvatures: tuple[float, ...] = () + self.lateral_plan_curvature_rates: tuple[float, ...] = () + self.lane_change_available_left: bool | None = None + self.lane_change_available_right: bool | None = None + self.left_lane_width_m: float | None = None + self.right_lane_width_m: float | None = None + self.left_road_edge_distance_m: float | None = None + self.right_road_edge_distance_m: float | None = None + self.model_lane_change_seen = False + self.lane_change_source = "none" + self.lane_change_ll_prob = 1.0 + self.lane_change_desire_left_prob = 0.0 + self.lane_change_desire_right_prob = 0.0 + self.lane_change_state = "off" + self.lane_change_direction = "none" + self.lane_change_started_t: float | None = None + self.active_lane_change_direction: str | None = None + self.lane_change_last_progress = 0.0 + self.lane_change_recenter_direction: str | None = None + self.lane_change_recenter_started_t: float | None = None + self.lane_change_recenter_start_progress = 1.0 + self.lane_change_continuation_active = False + self.lane_change_previous_state = "off" + self.lane_change_peak_directional_observed_offset = 0.0 + self.corner_detections: dict[str, DetectedVehicle] = {} + self.corner_detection_t = -999.0 + self.hyundai_canfd_radar_points: dict[str, RadarPoint] = {} + self.hyundai_canfd_radar_history: dict[str, tuple[float, float]] = {} + self.hyundai_canfd_radar_t = -999.0 + self.live_track_radar_points: dict[str, RadarPoint] = {} + self.live_track_radar_t = -999.0 + self.radar_detections: tuple[DetectedVehicle, ...] = () + self.radar_detection_t = -999.0 + self.current_speed_kph = 0.0 + self.v_ego_cluster_seen = False + + def parse_file(self, file_path: Path, log_schema: Any) -> list[RouteReplayFrame]: + frames: list[RouteReplayFrame] = [] + data = read_log_bytes(file_path) + for event in log_schema.Event.read_multiple_bytes(data): + event_type = safe_which(event) + if event_type is None: + continue + event_t = float(getattr(event, "logMonoTime", 0)) / 1_000_000_000.0 + if event_type == "carState": + frames.append(self._frame_from_car_state(event.carState, event_t)) + elif event_type == "drivingModelData": + self._update_driving_model(event.drivingModelData) + elif event_type == "modelV2": + self._update_model_v2(event.modelV2, event_t) + elif event_type == "lateralPlan": + self._update_lateral_plan(event.lateralPlan) + elif event_type in ("navInstructionCarrot", "navInstruction"): + self._update_nav_instruction(getattr(event, event_type)) + elif event_type == "longitudinalPlan": + self._update_longitudinal_plan(event.longitudinalPlan) + elif event_type == "controlsState": + self._update_controls_state(event.controlsState) + elif event_type == "cameraOdometry": + self._update_camera_odometry(event.cameraOdometry, bool(safe_get(event, "valid", True))) + elif event_type == "radarState": + self._update_radar_state(event.radarState, event_t) + elif event_type == "liveTracks": + self._update_live_tracks(event.liveTracks, event_t) + elif event_type in ("can", "sendcan"): + self._update_can_detections(getattr(event, event_type), event_t) + + return frames + + def _frame_from_car_state(self, car_state: Any, event_t: float) -> RouteReplayFrame: + speed_mps = max(0.0, safe_float(car_state, "vEgo", 0.0)) + speed_kph = clamp(speed_mps * 3.6, 0.0, MAX_SPEED_KPH) + self.current_speed_kph = speed_kph + display_speed_kph = self._display_speed_kph_from_car_state(car_state, speed_mps) + accel_mps2 = clamp(safe_float(car_state, "aEgo", 0.0), -MAX_ACCEL_MPS2, MAX_ACCEL_MPS2) + steering_angle_deg = safe_optional_float(car_state, "steeringAngleDeg") + road_curvature, road_curvature_source = self._current_road_curvature() + if road_curvature is not None: + steering = scene_steering_from_curvature(road_curvature) + else: + steering = 0.0 if steering_angle_deg is None else clamp( + steering_angle_deg / MAX_STEERING_ANGLE_DEG, + -1.0, + 1.0, + ) + + self.cruise_kph = self._cruise_kph_from_car_state(car_state) + cruise_display_state = self._cruise_display_state_from_car_state(car_state, self.cruise_kph) + + car_speed_limit_kph = self._speed_limit_kph_from_car_state(car_state) + self.speed_limit_kph = car_speed_limit_kph if car_speed_limit_kph is not None else self.nav_speed_limit_kph + + self._update_lane_styles_from_car_state(car_state) + lane_values = self._lane_values() + left_signal = bool(safe_get(car_state, "leftBlinker", False)) + right_signal = bool(safe_get(car_state, "rightBlinker", False)) + left_blindspot = bool(safe_get(car_state, "leftBlindspot", False)) + right_blindspot = bool(safe_get(car_state, "rightBlindspot", False)) + observed_ego_lane_offset = 0.0 + if lane_values["center"] is not None: + observed_ego_lane_offset = clamp(-lane_values["center"] / lane_values["width"], -1.25, 1.25) + ( + lane_change, + lane_change_phase, + lane_change_progress, + lane_change_recenter_start_progress, + lane_change_continuation, + ) = self._lane_change_values( + event_t, + left_signal, + right_signal, + observed_ego_lane_offset, + ) + detected_vehicles = self._detected_vehicles_from_current_state(car_state, event_t) + radar_points = self._radar_points_from_current_state(event_t) + + return RouteReplayFrame( + t=event_t, + speed_kph=speed_kph, + accel_mps2=accel_mps2, + steering=steering, + steering_angle_deg=steering_angle_deg, + speed_limit_kph=self.speed_limit_kph, + cruise_kph=self.cruise_kph, + cruise_display_state=cruise_display_state, + left_signal=left_signal, + right_signal=right_signal, + left_blindspot=left_blindspot, + right_blindspot=right_blindspot, + lane_width_m=lane_values["width"], + lane_center_offset_m=lane_values["center"], + left_lane_offset=lane_values["left_offset"], + right_lane_offset=lane_values["right_offset"], + left_lane_visible=lane_values["left_visible"], + right_lane_visible=lane_values["right_visible"], + extra_left_lane_visible=lane_values["extra_left_visible"], + extra_right_lane_visible=lane_values["extra_right_visible"], + left_road_edge_offset=lane_values["left_road_edge_offset"], + right_road_edge_offset=lane_values["right_road_edge_offset"], + left_lane_style=self.left_lane_style, + right_lane_style=self.right_lane_style, + road_curvature=road_curvature, + road_curvature_source=road_curvature_source, + lane_position_source=self.lane_position_source, + model_lane_lines=self.model_lane_lines, + model_road_edges=self.model_road_edges, + model_path=self.model_path, + model_path_source=self.model_path_source, + lane_change_source=self.lane_change_source, + lane_change=lane_change, + lane_change_phase=lane_change_phase, + lane_change_progress=lane_change_progress, + lane_change_recenter_start_progress=lane_change_recenter_start_progress, + lane_change_continuation=lane_change_continuation, + throttle=clamp(safe_float(car_state, "gas", 0.0), 0.0, 1.0), + brake=clamp(safe_float(car_state, "brake", 0.0), 0.0, 1.0), + detected_vehicles=detected_vehicles, + radar_points=radar_points, + display_speed_kph=display_speed_kph, + planned_speed_kph=self.planned_speed_kph, + planned_accel_mps2=self.planned_accel_mps2, + planned_curvature_m_inv=self.model_action_curvature_m_inv, + should_stop=self.should_stop, + model_confidence=self.model_confidence, + model_turn_speed_kph=self.model_turn_speed_kph, + engaged_prob=self.engaged_prob, + desire_state=self.desire_state, + desire_prediction=self.desire_prediction, + risk_points=self.risk_points, + brake_disengage_risk=self.brake_disengage_risk, + gas_disengage_risk=self.gas_disengage_risk, + steer_override_risk=self.steer_override_risk, + hard_brake_risk=self.hard_brake_risk, + gas_press_prob=self.gas_press_prob, + brake_press_prob=self.brake_press_prob, + disengage_risk=self.disengage_risk, + hard_brake_predicted=self.hard_brake_predicted, + lane_change_available_left=self.lane_change_available_left, + lane_change_available_right=self.lane_change_available_right, + lane_change_prob=self.lane_change_ll_prob, + left_lane_width_m=self.left_lane_width_m, + right_lane_width_m=self.right_lane_width_m, + left_road_edge_distance_m=self.left_road_edge_distance_m, + right_road_edge_distance_m=self.right_road_edge_distance_m, + left_road_edge_confidence=self.left_road_edge_confidence, + right_road_edge_confidence=self.right_road_edge_confidence, + frame_age=self.frame_age, + frame_drop_perc=self.frame_drop_perc, + model_execution_time_ms=self.model_execution_time_ms, + vision_speed_mps=self.vision_speed_mps, + vision_yaw_rate_rps=self.vision_yaw_rate_rps, + vision_speed_std_mps=self.vision_speed_std_mps, + vision_yaw_rate_std_rps=self.vision_yaw_rate_std_rps, + camera_calibration_euler=self.camera_calibration_euler, + road_transform_trans=self.road_transform_trans, + road_transform_std=self.road_transform_std, + camera_odometry_valid=self.camera_odometry_valid, + longitudinal_plan_source=self.longitudinal_plan_source, + longitudinal_plan_speeds_kph=self.longitudinal_plan_speeds_kph, + longitudinal_plan_accels_mps2=self.longitudinal_plan_accels_mps2, + longitudinal_plan_jerks_mps3=self.longitudinal_plan_jerks_mps3, + longitudinal_plan_fcw=self.longitudinal_plan_fcw, + longitudinal_plan_should_stop=self.longitudinal_plan_should_stop, + longitudinal_plan_allow_throttle=self.longitudinal_plan_allow_throttle, + longitudinal_plan_allow_brake=self.longitudinal_plan_allow_brake, + longitudinal_t_follow_s=self.longitudinal_t_follow_s, + longitudinal_desired_distance_m=self.longitudinal_desired_distance_m, + longitudinal_v_target_kph=self.longitudinal_v_target_kph, + longitudinal_jerk_target_mps3=self.longitudinal_jerk_target_mps3, + lateral_plan_valid=self.lateral_plan_valid, + lateral_plan_use_lane_lines=self.lateral_plan_use_lane_lines, + lateral_plan_solver_cost=self.lateral_plan_solver_cost, + lateral_plan_debug_text=self.lateral_plan_debug_text, + lateral_plan_curvatures=self.lateral_plan_curvatures, + lateral_plan_curvature_rates=self.lateral_plan_curvature_rates, + ) + + def _display_speed_kph_from_car_state(self, car_state: Any, fallback_speed_mps: float) -> float: + v_ego_cluster = safe_float(car_state, "vEgoCluster", 0.0) + self.v_ego_cluster_seen = self.v_ego_cluster_seen or v_ego_cluster != 0.0 + display_speed_mps = v_ego_cluster if self.v_ego_cluster_seen else fallback_speed_mps + return clamp(max(0.0, display_speed_mps) * 3.6, 0.0, MAX_SPEED_KPH) + + def _update_driving_model(self, model: Any) -> None: + lane_meta = safe_get(model, "laneLineMeta") + if lane_meta is not None: + left_y = safe_optional_float(lane_meta, "leftY") + right_y = safe_optional_float(lane_meta, "rightY") + if left_y is not None and right_y is not None and right_y > left_y: + self.left_lane_y_m = left_y + self.right_lane_y_m = right_y + self.lane_width_m = clamp(right_y - left_y, 2.4, 4.6) + self.lane_position_source = "drivingModelData" + self.left_lane_prob = clamp(safe_float(lane_meta, "leftProb", self.left_lane_prob), 0.0, 1.0) + self.right_lane_prob = clamp(safe_float(lane_meta, "rightProb", self.right_lane_prob), 0.0, 1.0) + + action = safe_get(model, "action") + if action is not None: + self._update_model_action(action) + + meta = safe_get(model, "meta") + if meta is not None and not self.model_lane_change_seen: + self._update_lane_change_meta(meta, "drivingModelData") + + def _update_model_v2(self, model: Any, event_t: float) -> None: + frame_age = safe_optional_int(model, "frameAge") + self.frame_age = frame_age if frame_age is not None else self.frame_age + frame_drop_perc = safe_optional_float(model, "frameDropPerc") + self.frame_drop_perc = clamp(frame_drop_perc, 0.0, 100.0) if frame_drop_perc is not None else self.frame_drop_perc + model_execution_time = safe_optional_float(model, "modelExecutionTime") + self.model_execution_time_ms = ( + model_execution_time * 1000.0 + if model_execution_time is not None and model_execution_time < 10.0 + else model_execution_time + ) + + lane_lines = safe_get(model, "laneLines") + lane_probs = safe_get(model, "laneLineProbs") + if lane_lines is not None: + self.model_lane_lines = tuple(model_line_points(lane_lines[index]) for index in range(min(len(lane_lines), 4))) + if lane_lines is not None and len(lane_lines) >= 3: + left_y = first_list_value(safe_get(lane_lines[1], "y")) + right_y = first_list_value(safe_get(lane_lines[2], "y")) + if left_y is not None and right_y is not None and right_y > left_y: + self.left_lane_y_m = left_y + self.right_lane_y_m = right_y + self.lane_width_m = clamp(right_y - left_y, 2.4, 4.6) + self.lane_position_source = "modelV2" + if lane_lines is not None and len(lane_lines) >= 4: + self.outer_left_lane_y_m = first_list_value(safe_get(lane_lines[0], "y")) + self.outer_right_lane_y_m = first_list_value(safe_get(lane_lines[3], "y")) + if lane_probs is not None and len(lane_probs) >= 3: + self.left_lane_prob = clamp(finite_float(lane_probs[1]) or 0.0, 0.0, 1.0) + self.right_lane_prob = clamp(finite_float(lane_probs[2]) or 0.0, 0.0, 1.0) + if lane_probs is not None and len(lane_probs) >= 4: + self.outer_left_lane_prob = clamp(finite_float(lane_probs[0]) or 0.0, 0.0, 1.0) + self.outer_right_lane_prob = clamp(finite_float(lane_probs[3]) or 0.0, 0.0, 1.0) + + road_edges = safe_get(model, "roadEdges") + road_edge_stds = safe_get(model, "roadEdgeStds") + if road_edges is not None: + self.model_road_edges = tuple(model_line_points(road_edges[index]) for index in range(min(len(road_edges), 2))) + if road_edges is not None and len(road_edges) >= 2: + self.left_road_edge_y_m = first_list_value(safe_get(road_edges[0], "y")) + self.right_road_edge_y_m = first_list_value(safe_get(road_edges[1], "y")) + if road_edge_stds is not None and len(road_edge_stds) >= 2: + self.left_road_edge_confidence = road_edge_confidence_from_std(finite_float(road_edge_stds[0])) + self.right_road_edge_confidence = road_edge_confidence_from_std(finite_float(road_edge_stds[1])) + + model_path = model_path_points_from_model_v2(model) + if model_path: + self.model_path = model_path + self.model_path_source = "modelV2.position" + + action = safe_get(model, "action") + if action is not None: + self._update_model_action(action) + self.model_detections = model_lead_detections_from_model_v2(model) + self.model_detection_t = event_t + + meta = safe_get(model, "meta") + if meta is not None: + self._update_lane_change_meta(meta, "modelV2") + self._update_model_lane_change_values(meta) + self._update_model_meta_values(meta, model) + + def _update_lateral_plan(self, lateral_plan: Any) -> None: + lane_width = safe_optional_float(lateral_plan, "laneWidth") + if lane_width is not None and lane_width > 0.0: + self.lane_width_m = clamp(lane_width, 2.4, 4.6) + + if not self.model_lane_change_seen: + self.lane_change_state = enum_text(safe_get(lateral_plan, "laneChangeState", "off")) + self.lane_change_direction = enum_text(safe_get(lateral_plan, "laneChangeDirection", "none")) + self.lane_change_source = "lateralPlan" + curvature = first_list_value(safe_get(lateral_plan, "curvatures")) + if curvature is not None and abs(curvature) < 0.05: + self.model_curvature_m_inv = curvature + self.model_curvature_source = "lateralPlan" + self.lateral_plan_valid = bool(safe_get(lateral_plan, "mpcSolutionValid", self.lateral_plan_valid)) + self.lateral_plan_use_lane_lines = bool(safe_get(lateral_plan, "useLaneLines", self.lateral_plan_use_lane_lines)) + solver_cost = safe_optional_float(lateral_plan, "solverCost") + if solver_cost is not None and solver_cost >= 0.0: + self.lateral_plan_solver_cost = min(solver_cost, 1_000_000.0) + debug_text = safe_get(lateral_plan, "latDebugText") + if debug_text: + self.lateral_plan_debug_text = str(debug_text)[:64] + self.lateral_plan_curvatures = numeric_tuple(safe_get(lateral_plan, "curvatures"), minimum=-0.08, maximum=0.08) + self.lateral_plan_curvature_rates = numeric_tuple( + safe_get(lateral_plan, "curvatureRates"), + minimum=-0.08, + maximum=0.08, + ) + + def _update_nav_instruction(self, nav_instruction: Any) -> None: + speed_limit_mps = safe_float(nav_instruction, "speedLimit", 0.0) + self.nav_speed_limit_kph = int(round(speed_limit_mps * 3.6)) if speed_limit_mps > 0.1 else None + + def _update_longitudinal_plan(self, longitudinal_plan: Any) -> None: + self.longitudinal_plan_source = enum_text( + safe_get(longitudinal_plan, "longitudinalPlanSource", self.longitudinal_plan_source or "") + ) or self.longitudinal_plan_source + self.longitudinal_plan_speeds_kph = tuple( + value * 3.6 for value in numeric_tuple(safe_get(longitudinal_plan, "speeds"), minimum=0.0, maximum=90.0) + ) + self.longitudinal_plan_accels_mps2 = numeric_tuple( + safe_get(longitudinal_plan, "accels"), + minimum=-MAX_ACCEL_MPS2, + maximum=MAX_ACCEL_MPS2, + ) + self.longitudinal_plan_jerks_mps3 = numeric_tuple( + safe_get(longitudinal_plan, "jerks"), + minimum=-12.0, + maximum=12.0, + ) + self.longitudinal_plan_fcw = bool(safe_get(longitudinal_plan, "fcw", self.longitudinal_plan_fcw)) + self.longitudinal_plan_should_stop = bool(safe_get(longitudinal_plan, "shouldStop", self.longitudinal_plan_should_stop)) + self.longitudinal_plan_allow_throttle = bool( + safe_get(longitudinal_plan, "allowThrottle", self.longitudinal_plan_allow_throttle) + ) + self.longitudinal_plan_allow_brake = bool( + safe_get(longitudinal_plan, "allowBrake", self.longitudinal_plan_allow_brake) + ) + t_follow = safe_optional_float(longitudinal_plan, "tFollow") + if t_follow is not None and 0.0 <= t_follow <= 5.0: + self.longitudinal_t_follow_s = t_follow + desired_distance = safe_optional_float(longitudinal_plan, "desiredDistance") + if desired_distance is not None and 0.0 <= desired_distance <= 250.0: + self.longitudinal_desired_distance_m = desired_distance + v_target_now = safe_optional_float(longitudinal_plan, "vTargetNow") + if v_target_now is not None and 0.0 <= v_target_now <= 90.0: + self.longitudinal_v_target_kph = v_target_now * 3.6 + jerk_target = safe_optional_float(longitudinal_plan, "jTargetNow") + if jerk_target is not None and abs(jerk_target) <= 12.0: + self.longitudinal_jerk_target_mps3 = jerk_target + + def _update_camera_odometry(self, camera_odometry: Any, valid: bool) -> None: + self.camera_odometry_valid = valid + trans = safe_get(camera_odometry, "trans") + rot = safe_get(camera_odometry, "rot") + trans_std = safe_get(camera_odometry, "transStd") + rot_std = safe_get(camera_odometry, "rotStd") + if trans is not None and len(trans) >= 1: + speed = finite_float(trans[0]) + if speed is not None and abs(speed) < 90.0: + self.vision_speed_mps = speed + if rot is not None and len(rot) >= 3: + yaw_rate = finite_float(rot[2]) + if yaw_rate is not None and abs(yaw_rate) < 2.0: + self.vision_yaw_rate_rps = yaw_rate + if trans_std is not None and len(trans_std) >= 1: + speed_std = finite_float(trans_std[0]) + if speed_std is not None: + self.vision_speed_std_mps = clamp(speed_std, 0.0, 20.0) + if rot_std is not None and len(rot_std) >= 3: + yaw_std = finite_float(rot_std[2]) + if yaw_std is not None: + self.vision_yaw_rate_std_rps = clamp(yaw_std, 0.0, 2.0) + self.camera_calibration_euler = three_float_tuple(safe_get(camera_odometry, "wideFromDeviceEuler")) + self.road_transform_trans = three_float_tuple(safe_get(camera_odometry, "roadTransformTrans")) + self.road_transform_std = three_float_tuple(safe_get(camera_odometry, "roadTransformTransStd")) + + def _update_controls_state(self, controls_state: Any) -> None: + enabled = safe_get(controls_state, "enabled", None) + if enabled is not None: + self.controls_enabled = bool(enabled) + + desired_curvature = safe_optional_float(controls_state, "desiredCurvature") + if desired_curvature is not None and abs(desired_curvature) < 0.05: + self.controls_curvature_m_inv = desired_curvature + self.controls_curvature_source = "controlsState.desired" + return + curvature = safe_optional_float(controls_state, "curvature") + if curvature is not None and abs(curvature) < 0.05: + self.controls_curvature_m_inv = curvature + self.controls_curvature_source = "controlsState" + + def _update_radar_state(self, radar_state: Any, event_t: float) -> None: + detections: list[DetectedVehicle] = [] + for label, lead_name in (("TARGET", "leadOne"), ("TARGET2", "leadTwo")): + lead = safe_get(radar_state, lead_name) + if lead is None or not bool(safe_get(lead, "status", False)): + continue + d_rel = safe_float(lead, "dRel", 0.0) + if not RADAR_MIN_LONGITUDINAL_M <= d_rel <= RADAR_FRONT_MAX_LONGITUDINAL_M: + continue + # openpilot yRel is left-positive; this renderer uses right-positive x. + lateral_m = -safe_float(lead, "yRel", 0.0) + relative_speed_mps = safe_optional_float(lead, "vRel") + lead_speed_mps = safe_optional_float(lead, "vLead") + absolute_speed_kph = ( + max(0.0, lead_speed_mps * 3.6) + if lead_speed_mps is not None + else ( + max(0.0, self.current_speed_kph + relative_speed_mps * 3.6) + if relative_speed_mps is not None + else None + ) + ) + detections.append( + DetectedVehicle( + label=label, + longitudinal_m=d_rel, + lateral_m=clamp(lateral_m, -8.0, 8.0), + source="radarState", + relative_speed_mps=relative_speed_mps, + absolute_speed_kph=absolute_speed_kph, + acceleration_mps2=safe_optional_float(lead, "aLeadK"), + ttc_s=ttc_from_relative_speed(d_rel, relative_speed_mps), + ) + ) + self.radar_detections = tuple(detections) + self.radar_detection_t = event_t + + def _update_can_detections(self, can_messages: Any, event_t: float) -> None: + for can_message in can_messages: + address = int(safe_get(can_message, "address", -1)) + data = bytes(safe_get(can_message, "dat", b"")) + if is_hyundai_canfd_radar_address(address): + labels = hyundai_canfd_radar_labels_for_address(address) + radar_points = parse_hyundai_canfd_radar_message(address, data) + valid_labels = {point.label for point in radar_points} + for label in labels: + self.hyundai_canfd_radar_points.pop(label, None) + if label not in valid_labels: + self.hyundai_canfd_radar_history.pop(label, None) + for point in radar_points: + self.hyundai_canfd_radar_points[point.label] = self._radar_point_with_absolute_speed(point, event_t) + self.hyundai_canfd_radar_t = event_t + continue + if address not in (0x162, 0x1EA): + continue + if len(data) < 24: + continue + parsed = parse_corner_radar_message(address, data) + if parsed: + self.corner_detections = parsed + self.corner_detection_t = event_t + + def _update_live_tracks(self, live_tracks: Any, event_t: float) -> None: + points: dict[str, RadarPoint] = {} + tracks = safe_get(live_tracks, "points", ()) + if tracks is None: + tracks = () + for index, track in enumerate(tracks): + point = live_track_to_radar_point(track, index, self.current_speed_kph) + if point is not None: + points[point.label] = point + self.live_track_radar_points = points + self.live_track_radar_t = event_t + + def _radar_points_from_current_state(self, event_t: float) -> tuple[RadarPoint, ...]: + points: list[RadarPoint] = [] + if event_t - self.hyundai_canfd_radar_t < RADAR_POINT_STALE_S: + points.extend(self.hyundai_canfd_radar_points.values()) + elif event_t - self.live_track_radar_t < RADAR_POINT_STALE_S: + points.extend(self.live_track_radar_points.values()) + return sorted_radar_points(points) + + def _radar_point_with_absolute_speed(self, point: RadarPoint, event_t: float) -> RadarPoint: + signal_speed_kph = ( + None + if point.relative_speed_mps is None + else max(0.0, self.current_speed_kph + point.relative_speed_mps * 3.6) + ) + observed_speed_kph = None + previous = self.hyundai_canfd_radar_history.get(point.label) + if previous is not None: + previous_distance_m, previous_t = previous + dt = event_t - previous_t + if 0.02 <= dt <= 0.45: + observed_relative_mps = (point.longitudinal_m - previous_distance_m) / dt + observed_speed_kph = max(0.0, self.current_speed_kph + observed_relative_mps * 3.6) + if observed_speed_kph > MAX_SPEED_KPH * 1.8: + observed_speed_kph = None + self.hyundai_canfd_radar_history[point.label] = (point.longitudinal_m, event_t) + absolute_speed_kph = observed_speed_kph if observed_speed_kph is not None else signal_speed_kph + return replace(point, absolute_speed_kph=absolute_speed_kph) + + def _detected_vehicles_from_current_state(self, car_state: Any, event_t: float) -> tuple[DetectedVehicle, ...]: + detections: list[DetectedVehicle] = [] + if event_t - self.model_detection_t < 0.8: + detections.extend(self.model_detections) + + if event_t - self.corner_detection_t < 0.8: + for vehicle in self.corner_detections.values(): + if not has_nearby_vehicle(detections, vehicle, longitudinal_tolerance=3.0, lateral_tolerance=1.1): + detections.append(vehicle) + else: + for vehicle in car_state_corner_detections(car_state): + if not has_nearby_vehicle(detections, vehicle, longitudinal_tolerance=3.0, lateral_tolerance=1.1): + detections.append(vehicle) + + if event_t - self.radar_detection_t < 0.8: + for vehicle in self.radar_detections: + if not has_nearby_vehicle(detections, vehicle, longitudinal_tolerance=4.0, lateral_tolerance=1.4): + detections.append(vehicle) + + return tuple(sorted(detections, key=lambda vehicle: vehicle.longitudinal_m)) + + def _current_road_curvature(self) -> tuple[float | None, str]: + if self.model_curvature_m_inv is not None: + return self.model_curvature_m_inv, self.model_curvature_source + if self.controls_curvature_m_inv is not None: + return self.controls_curvature_m_inv, self.controls_curvature_source + return None, "steeringAngleDeg" + + def _update_lane_change_meta(self, meta: Any, source: str) -> None: + state = enum_text(safe_get(meta, "laneChangeState", self.lane_change_state)) + direction = enum_text(safe_get(meta, "laneChangeDirection", self.lane_change_direction)) + self.lane_change_state = state + self.lane_change_direction = direction + self.lane_change_source = source + if source == "modelV2": + self.model_lane_change_seen = True + + def _update_model_lane_change_values(self, meta: Any) -> None: + self.lane_change_ll_prob = clamp(safe_float(meta, "laneChangeProb", self.lane_change_ll_prob), 0.0, 1.0) + desire_state = safe_get(meta, "desireState") + if desire_state is None or len(desire_state) <= 4: + return + left_prob = finite_float(desire_state[3]) + right_prob = finite_float(desire_state[4]) + if left_prob is not None: + self.lane_change_desire_left_prob = clamp(left_prob, 0.0, 1.0) + if right_prob is not None: + self.lane_change_desire_right_prob = clamp(right_prob, 0.0, 1.0) + + def _update_model_action(self, action: Any) -> None: + desired_velocity = safe_optional_float(action, "desiredVelocity") + if desired_velocity is not None and 0.0 <= desired_velocity < 70.0: + self.planned_speed_kph = desired_velocity * 3.6 + + desired_accel = safe_optional_float(action, "desiredAcceleration") + if desired_accel is not None: + self.planned_accel_mps2 = clamp(desired_accel, -MAX_ACCEL_MPS2, MAX_ACCEL_MPS2) + + desired_curvature = safe_optional_float(action, "desiredCurvature") + if desired_curvature is not None and abs(desired_curvature) < 0.05: + self.model_action_curvature_m_inv = desired_curvature + + self.should_stop = bool(safe_get(action, "shouldStop", self.should_stop)) + + def _update_model_meta_values(self, meta: Any, model: Any) -> None: + self.model_confidence = enum_text(safe_get(model, "confidence", self.model_confidence)) + engaged_prob = safe_optional_float(meta, "engagedProb") + if engaged_prob is not None: + self.engaged_prob = clamp(engaged_prob, 0.0, 1.0) + self.hard_brake_predicted = bool(safe_get(meta, "hardBrakePredicted", self.hard_brake_predicted)) + self.desire_state = numeric_tuple(safe_get(meta, "desireState"), limit=8, minimum=0.0, maximum=1.0) + self.desire_prediction = desire_prediction_matrix(safe_get(meta, "desirePrediction")) + self.risk_points = risk_points_from_meta(meta) + self.brake_disengage_risk = list_max(safe_get(safe_get(meta, "disengagePredictions"), "brakeDisengageProbs")) + self.gas_disengage_risk = list_max(safe_get(safe_get(meta, "disengagePredictions"), "gasDisengageProbs")) + self.steer_override_risk = list_max(safe_get(safe_get(meta, "disengagePredictions"), "steerOverrideProbs")) + self.hard_brake_risk = max( + list_max(safe_get(safe_get(meta, "disengagePredictions"), "brake3MetersPerSecondSquaredProbs")), + list_max(safe_get(safe_get(meta, "disengagePredictions"), "brake4MetersPerSecondSquaredProbs")), + list_max(safe_get(safe_get(meta, "disengagePredictions"), "brake5MetersPerSecondSquaredProbs")), + ) + self.gas_press_prob = list_max(safe_get(safe_get(meta, "disengagePredictions"), "gasPressProbs")) + self.brake_press_prob = list_max(safe_get(safe_get(meta, "disengagePredictions"), "brakePressProbs")) + self.disengage_risk = disengage_risk_from_meta(meta) + self.lane_change_available_left = bool(safe_get(meta, "laneChangeAvailableLeft", False)) + self.lane_change_available_right = bool(safe_get(meta, "laneChangeAvailableRight", False)) + model_turn_speed = safe_optional_float(meta, "modelTurnSpeed") + if model_turn_speed is not None and 0.0 < model_turn_speed < 90.0: + self.model_turn_speed_kph = model_turn_speed * 3.6 + + left_width = safe_optional_float(meta, "laneWidthLeft") + right_width = safe_optional_float(meta, "laneWidthRight") + self.left_lane_width_m = clamp(left_width, 0.0, 6.0) if left_width is not None else None + self.right_lane_width_m = clamp(right_width, 0.0, 6.0) if right_width is not None else None + + left_distance = safe_optional_float(meta, "distanceToRoadEdgeLeft") + right_distance = safe_optional_float(meta, "distanceToRoadEdgeRight") + self.left_road_edge_distance_m = clamp(left_distance, 0.0, 20.0) if left_distance is not None else None + self.right_road_edge_distance_m = clamp(right_distance, 0.0, 20.0) if right_distance is not None else None + + def _cruise_kph_from_car_state(self, car_state: Any) -> int | None: + cruise_state = safe_get(car_state, "cruiseState") + if cruise_state is not None and safe_get(cruise_state, "available", True) is False: + return None + + for name in ("vCruiseCluster", "vCruise"): + v_cruise = safe_float(car_state, name, 0.0) + if 0.0 < v_cruise < 250.0: + return int(round(v_cruise)) + + if cruise_state is not None: + speed_cluster_mps = safe_float(cruise_state, "speedCluster", 0.0) + if 0.1 < speed_cluster_mps < 70.0: + return int(round(speed_cluster_mps * 3.6)) + + speed_mps = safe_float(cruise_state, "speed", 0.0) + if 0.1 < speed_mps < 70.0: + return int(round(speed_mps * 3.6)) + return None + + def _cruise_display_state_from_car_state( + self, + car_state: Any, + cruise_kph: int | None, + ) -> CruiseDisplayState: + if cruise_kph is None: + return "off" + + if self.controls_enabled is not None: + return "engaged" if self.controls_enabled else "paused" + + cruise_state = safe_get(car_state, "cruiseState") + if cruise_state is not None and bool(safe_get(cruise_state, "enabled", False)): + return "engaged" + return "paused" + + def _speed_limit_kph_from_car_state(self, car_state: Any) -> int | None: + speed_limit = safe_float(car_state, "speedLimit", 0.0) + if speed_limit <= 0.0: + return None + if speed_limit < 45.0: + return int(round(speed_limit * 3.6)) + return int(round(speed_limit)) + + def _update_lane_styles_from_car_state(self, car_state: Any) -> None: + left_code = safe_optional_int(car_state, "leftLaneLine") + right_code = safe_optional_int(car_state, "rightLaneLine") + if left_code is not None: + self.left_lane_style = lane_style_from_code(left_code) + if left_code < 0: + self.left_lane_prob = 0.0 + if right_code is not None: + self.right_lane_style = lane_style_from_code(right_code) + if right_code < 0: + self.right_lane_prob = 0.0 + + def _lane_values(self) -> dict[str, Any]: + width = clamp(self.lane_width_m, 2.4, 4.6) + left_y = self.left_lane_y_m + right_y = self.right_lane_y_m + if left_y is None or right_y is None or right_y <= left_y: + center_m: float | None = None + return { + "width": width, + "center": center_m, + "left_offset": -0.5, + "right_offset": 0.5, + "left_visible": True, + "right_visible": True, + "extra_left_visible": False, + "extra_right_visible": False, + "left_road_edge_offset": None, + "right_road_edge_offset": None, + } + + center_m = (left_y + right_y) * 0.5 + outer_left_offset = lane_offset_from_y(self.outer_left_lane_y_m, center_m, width) + outer_right_offset = lane_offset_from_y(self.outer_right_lane_y_m, center_m, width) + left_edge_offset = lane_offset_from_y(self.left_road_edge_y_m, center_m, width) + right_edge_offset = lane_offset_from_y(self.right_road_edge_y_m, center_m, width) + extra_left_visible = ( + outer_left_offset is not None + and outer_left_offset < -0.78 + and self.outer_left_lane_prob > 0.35 + ) + extra_right_visible = ( + outer_right_offset is not None + and outer_right_offset > 0.78 + and self.outer_right_lane_prob > 0.35 + ) + left_edge_visible = ( + left_edge_offset is not None + and left_edge_offset < -0.68 + and self.left_road_edge_confidence > 0.15 + and (extra_left_visible or left_edge_offset > -1.25) + ) + right_edge_visible = ( + right_edge_offset is not None + and right_edge_offset > 0.68 + and self.right_road_edge_confidence > 0.15 + and (extra_right_visible or right_edge_offset < 1.25) + ) + return { + "width": width, + "center": center_m, + "left_offset": clamp((left_y - center_m) / width, -0.75, -0.25), + "right_offset": clamp((right_y - center_m) / width, 0.25, 0.75), + "left_visible": self.left_lane_prob > 0.22, + "right_visible": self.right_lane_prob > 0.22, + "extra_left_visible": extra_left_visible, + "extra_right_visible": extra_right_visible, + "left_road_edge_offset": clamp(left_edge_offset, -2.8, -0.68) if left_edge_visible else None, + "right_road_edge_offset": clamp(right_edge_offset, 0.68, 2.8) if right_edge_visible else None, + } + + def _lane_change_values( + self, + event_t: float, + left_signal: bool, + right_signal: bool, + observed_ego_lane_offset: float, + ) -> tuple[str | None, str, float, float, bool]: + if LANE_CHANGE_MODEL_DIRECT_ONLY: + return self._model_direct_lane_change_values(event_t) + + def remember(result: tuple[str | None, str, float, float, bool]) -> tuple[str | None, str, float, float, bool]: + self.lane_change_previous_state = self.lane_change_state + return result + + if self.model_lane_change_seen and self.lane_change_state == "off": + if self.active_lane_change_direction is not None and self.lane_change_last_progress > 0.65: + self.lane_change_recenter_direction = self.active_lane_change_direction + self.lane_change_recenter_started_t = event_t + self.lane_change_recenter_start_progress = clamp(self.lane_change_last_progress, 0.0, 1.0) + self.lane_change_started_t = None + self.active_lane_change_direction = None + self.lane_change_continuation_active = False + self.lane_change_peak_directional_observed_offset = 0.0 + recenter_values = self._lane_change_recenter_values(event_t) + if recenter_values is not None: + return remember(recenter_values) + self.lane_change_last_progress = 0.0 + self.lane_change_recenter_start_progress = 1.0 + return remember((None, "idle", 0.0, 1.0, False)) + + direction = self.lane_change_direction if self.lane_change_direction in ("left", "right") else None + if direction is None and self.lane_change_state != "off": + if left_signal and not right_signal: + direction = "left" + elif right_signal and not left_signal: + direction = "right" + active = direction is not None and self.lane_change_state != "off" + if not active: + if left_signal and not right_signal: + direction = "left" + active = True + elif right_signal and not left_signal: + direction = "right" + active = True + if not active: + self.lane_change_started_t = None + self.active_lane_change_direction = None + self.lane_change_recenter_start_progress = 1.0 + self.lane_change_continuation_active = False + self.lane_change_peak_directional_observed_offset = 0.0 + return remember((None, "idle", 0.0, 1.0, False)) + + direction_sign = -1.0 if direction == "left" else 1.0 + directional_observed_offset = direction_sign * observed_ego_lane_offset + model_reindexed_current_lane = ( + self.active_lane_change_direction == direction + and self.lane_change_last_progress > 0.65 + and self.lane_change_peak_directional_observed_offset > LANE_CHANGE_REINDEX_PEAK_THRESHOLD + and directional_observed_offset < LANE_CHANGE_REINDEX_RESET_THRESHOLD + ) + same_direction_continuation = ( + ( + self.active_lane_change_direction == direction + and self.lane_change_previous_state == "laneChangeFinishing" + and self.lane_change_state == "laneChangeStarting" + and self.lane_change_last_progress > 0.65 + ) + or ( + self.lane_change_recenter_direction == direction + and self.lane_change_recenter_started_t is not None + ) + or model_reindexed_current_lane + ) + if ( + self.lane_change_started_t is None + or self.active_lane_change_direction != direction + or same_direction_continuation + ): + self.lane_change_started_t = event_t + self.active_lane_change_direction = direction + self.lane_change_recenter_direction = None + self.lane_change_recenter_started_t = None + self.lane_change_recenter_start_progress = 1.0 + self.lane_change_continuation_active = same_direction_continuation + self.lane_change_peak_directional_observed_offset = max(0.0, directional_observed_offset) + else: + self.lane_change_peak_directional_observed_offset = max( + self.lane_change_peak_directional_observed_offset, + directional_observed_offset, + ) + + elapsed = max(0.0, event_t - self.lane_change_started_t) + if self.lane_change_state == "preLaneChange": + self.lane_change_last_progress = 0.0 + return remember((direction, "preparing", 0.0, 1.0, self.lane_change_continuation_active)) + + if ( + self.lane_change_continuation_active + and self.lane_change_source == "modelV2" + and self.lane_change_state == "laneChangeStarting" + ): + model_progress = clamp(elapsed / 3.2, 0.0, 0.78) + else: + model_progress = self._model_lane_change_progress(direction, elapsed) + if model_progress is not None: + self.lane_change_last_progress = model_progress + return remember( + ( + direction, + "changing", + model_progress, + 1.0, + self.lane_change_continuation_active, + ) + ) + + if self.lane_change_state == "preLaneChange": + progress = 0.0 + elif self.lane_change_state == "laneChangeFinishing": + progress = clamp(0.55 + elapsed / 3.2, 0.55, 1.0) + else: + progress = clamp(elapsed / 3.2, 0.04, 0.92) + self.lane_change_last_progress = progress + return remember((direction, "changing", progress, 1.0, self.lane_change_continuation_active)) + + def _lane_change_recenter_values(self, event_t: float) -> tuple[str, str, float, float, bool] | None: + if self.lane_change_recenter_direction is None or self.lane_change_recenter_started_t is None: + return None + elapsed = max(0.0, event_t - self.lane_change_recenter_started_t) + progress = clamp(elapsed / MODEL_DIRECT_LANE_RECENTER_SECONDS, 0.0, 1.0) + if progress >= 1.0: + self.lane_change_recenter_direction = None + self.lane_change_recenter_started_t = None + self.lane_change_recenter_start_progress = 1.0 + return None + return ( + self.lane_change_recenter_direction, + "recentering", + progress, + self.lane_change_recenter_start_progress, + False, + ) + + def _model_lane_change_progress(self, direction: str, elapsed: float) -> float | None: + if self.lane_change_source != "modelV2": + return None + if self.lane_change_state == "laneChangeFinishing": + return clamp(0.78 + 0.22 * self.lane_change_ll_prob, 0.78, 1.0) + if self.lane_change_state != "laneChangeStarting": + return None + + desire_prob = ( + self.lane_change_desire_left_prob + if direction == "left" + else self.lane_change_desire_right_prob + ) + lane_line_fade = 1.0 - self.lane_change_ll_prob + fade_progress = 0.18 * lane_line_fade + timer_progress = clamp(elapsed / 5.6, 0.0, 0.74) + if desire_prob > 0.02: + desire_progress = 0.20 + 0.56 * (1.0 - desire_prob) + else: + desire_progress = 0.0 + return clamp(max(fade_progress, timer_progress, desire_progress), 0.0, 0.78) + + def _model_direct_lane_change_values(self, event_t: float) -> tuple[str | None, str, float, float, bool]: + self.lane_change_started_t = None + self.lane_change_continuation_active = False + self.lane_change_previous_state = self.lane_change_state + self.lane_change_peak_directional_observed_offset = 0.0 + + if not self.model_lane_change_seen: + self._clear_model_direct_lane_change_state() + return None, "idle", 0.0, 1.0, False + + direction = self.lane_change_direction if self.lane_change_direction in ("left", "right") else None + if direction is None or self.lane_change_state == "off": + recenter_values = self._model_direct_recenter_values(event_t) + if recenter_values is not None: + return recenter_values + self._clear_model_direct_lane_change_state() + return None, "idle", 0.0, 1.0, False + + self.lane_change_recenter_direction = None + self.lane_change_recenter_started_t = None + self.lane_change_recenter_start_progress = 1.0 + self.active_lane_change_direction = direction + + if self.lane_change_state == "preLaneChange": + self.lane_change_last_progress = 0.0 + return direction, "preparing", 0.0, 1.0, False + + progress = self._model_direct_lane_change_value(direction) + self.lane_change_last_progress = progress + return direction, "changing", progress, 1.0, False + + def _model_direct_lane_change_value(self, direction: str) -> float: + if self.lane_change_state == "laneChangeStarting": + # The model desire for the active lane change fades out as the + # maneuver completes, so visual position uses the complementary + # value without timer or recenter synthesis. + if direction == "left": + return 1.0 - self.lane_change_desire_left_prob + return 1.0 - self.lane_change_desire_right_prob + if self.lane_change_state == "laneChangeFinishing": + return 1.0 + return 0.0 + + def _model_direct_recenter_values(self, event_t: float) -> tuple[str, str, float, float, bool] | None: + if ( + self.lane_change_recenter_direction is None + and self.active_lane_change_direction is not None + and self.lane_change_last_progress >= MODEL_DIRECT_LANE_SETTLE_MIN_PROGRESS + ): + self.lane_change_recenter_direction = self.active_lane_change_direction + self.lane_change_recenter_started_t = event_t + self.lane_change_recenter_start_progress = clamp(self.lane_change_last_progress, 0.0, 1.0) + self.active_lane_change_direction = None + self.lane_change_last_progress = 0.0 + + recenter_values = self._lane_change_recenter_values(event_t) + if recenter_values is not None: + return recenter_values + return None + + def _clear_model_direct_lane_change_state(self) -> None: + self.active_lane_change_direction = None + self.lane_change_last_progress = 0.0 + self.lane_change_recenter_direction = None + self.lane_change_recenter_started_t = None + self.lane_change_recenter_start_progress = 1.0 + + +def frame_to_state(frame: RouteReplayFrame) -> ClusterUiState: + lane_width_m = clamp(frame.lane_width_m, 2.4, 4.6) + observed_ego_lane_offset = 0.0 + if frame.lane_center_offset_m is not None: + observed_ego_lane_offset = clamp(-frame.lane_center_offset_m / lane_width_m, -1.25, 1.25) + + ( + ego_lane_offset, + road_view_lane_position, + lane_grid_offset, + highlight_lane_offset, + use_animated_lane_grid, + ) = route_lane_animation_values(frame, observed_ego_lane_offset) + left_road_edge_offset = shifted_optional_offset( + frame.left_road_edge_offset, + lane_grid_offset if use_animated_lane_grid else 0.0, + ) + right_road_edge_offset = shifted_optional_offset( + frame.right_road_edge_offset, + lane_grid_offset if use_animated_lane_grid else 0.0, + ) + left_road_edge_points = model_line_at(frame.model_road_edges, 0) + left_road_edge_lateral_shift_m = model_line_lateral_shift( + left_road_edge_points, + frame, + left_road_edge_offset, + lane_grid_offset, + use_animated_lane_grid, + ) + right_road_edge_points = model_line_at(frame.model_road_edges, 1) + right_road_edge_lateral_shift_m = model_line_lateral_shift( + right_road_edge_points, + frame, + right_road_edge_offset, + lane_grid_offset, + use_animated_lane_grid, + ) + + return ClusterUiState( + speed_kph=frame.speed_kph, + accel_mps2=frame.accel_mps2, + steering=frame.steering, + speed_limit_kph=frame.speed_limit_kph, + cruise_kph=frame.cruise_kph, + cruise_display_state=frame.cruise_display_state, + left_signal=frame.left_signal, + right_signal=frame.right_signal, + left_blindspot=frame.left_blindspot, + right_blindspot=frame.right_blindspot, + lane_change=frame.lane_change, + lane_change_phase=frame.lane_change_phase, + lane_change_progress=frame.lane_change_progress, + highlight_lane=frame.lane_change, + highlight_lane_offset=highlight_lane_offset, + ego_lane_offset=ego_lane_offset, + road_view_lane_position=road_view_lane_position, + camera_lane_center_offset_m=frame.lane_center_offset_m, + lane_width_m=lane_width_m, + steering_angle_deg=frame.steering_angle_deg, + surround_yaw_deg=0.0, + surround_pitch_deg=0.0, + surround_view_active=False, + lanes=lanes_for_frame(frame, lane_grid_offset, use_animated_lane_grid), + extra_left_lane_visible=frame.extra_left_lane_visible, + extra_right_lane_visible=frame.extra_right_lane_visible, + left_road_edge_offset=left_road_edge_offset, + right_road_edge_offset=right_road_edge_offset, + left_road_edge_points=left_road_edge_points, + right_road_edge_points=right_road_edge_points, + left_road_edge_lateral_shift_m=left_road_edge_lateral_shift_m, + right_road_edge_lateral_shift_m=right_road_edge_lateral_shift_m, + throttle=frame.throttle, + brake=frame.brake, + model_path=frame.model_path, + detected_vehicles=frame.detected_vehicles, + radar_points=frame.radar_points, + planned_speed_kph=frame.planned_speed_kph, + planned_accel_mps2=frame.planned_accel_mps2, + planned_curvature_m_inv=frame.planned_curvature_m_inv, + should_stop=frame.should_stop, + model_confidence=frame.model_confidence, + model_turn_speed_kph=frame.model_turn_speed_kph, + engaged_prob=frame.engaged_prob, + desire_state=frame.desire_state, + desire_prediction=frame.desire_prediction, + risk_points=frame.risk_points, + brake_disengage_risk=frame.brake_disengage_risk, + gas_disengage_risk=frame.gas_disengage_risk, + steer_override_risk=frame.steer_override_risk, + hard_brake_risk=frame.hard_brake_risk, + gas_press_prob=frame.gas_press_prob, + brake_press_prob=frame.brake_press_prob, + disengage_risk=frame.disengage_risk, + hard_brake_predicted=frame.hard_brake_predicted, + lane_change_available_left=frame.lane_change_available_left, + lane_change_available_right=frame.lane_change_available_right, + lane_change_prob=frame.lane_change_prob, + left_lane_width_m=frame.left_lane_width_m, + right_lane_width_m=frame.right_lane_width_m, + left_road_edge_distance_m=frame.left_road_edge_distance_m, + right_road_edge_distance_m=frame.right_road_edge_distance_m, + left_road_edge_confidence=frame.left_road_edge_confidence, + right_road_edge_confidence=frame.right_road_edge_confidence, + frame_age=frame.frame_age, + frame_drop_perc=frame.frame_drop_perc, + model_execution_time_ms=frame.model_execution_time_ms, + vision_speed_mps=frame.vision_speed_mps, + vision_yaw_rate_rps=frame.vision_yaw_rate_rps, + vision_speed_std_mps=frame.vision_speed_std_mps, + vision_yaw_rate_std_rps=frame.vision_yaw_rate_std_rps, + camera_calibration_euler=frame.camera_calibration_euler, + road_transform_trans=frame.road_transform_trans, + road_transform_std=frame.road_transform_std, + camera_odometry_valid=frame.camera_odometry_valid, + longitudinal_plan_source=frame.longitudinal_plan_source, + longitudinal_plan_speeds_kph=frame.longitudinal_plan_speeds_kph, + longitudinal_plan_accels_mps2=frame.longitudinal_plan_accels_mps2, + longitudinal_plan_jerks_mps3=frame.longitudinal_plan_jerks_mps3, + longitudinal_plan_fcw=frame.longitudinal_plan_fcw, + longitudinal_plan_should_stop=frame.longitudinal_plan_should_stop, + longitudinal_plan_allow_throttle=frame.longitudinal_plan_allow_throttle, + longitudinal_plan_allow_brake=frame.longitudinal_plan_allow_brake, + longitudinal_t_follow_s=frame.longitudinal_t_follow_s, + longitudinal_desired_distance_m=frame.longitudinal_desired_distance_m, + longitudinal_v_target_kph=frame.longitudinal_v_target_kph, + longitudinal_jerk_target_mps3=frame.longitudinal_jerk_target_mps3, + lateral_plan_valid=frame.lateral_plan_valid, + lateral_plan_use_lane_lines=frame.lateral_plan_use_lane_lines, + lateral_plan_solver_cost=frame.lateral_plan_solver_cost, + lateral_plan_debug_text=frame.lateral_plan_debug_text, + lateral_plan_curvatures=frame.lateral_plan_curvatures, + lateral_plan_curvature_rates=frame.lateral_plan_curvature_rates, + display_speed_kph=frame.display_speed_kph, + ) + + +def route_lane_animation_values( + frame: RouteReplayFrame, + observed_ego_lane_offset: float, +) -> tuple[float, float, float, float | None, bool]: + if frame.lane_change not in ("left", "right"): + return observed_ego_lane_offset, 0.0, 0.0, None, False + + direction_sign = -1.0 if frame.lane_change == "left" else 1.0 + highlight_lane_offset: float | None = direction_sign + if frame.lane_change_phase == "preparing": + return 0.0, 0.0, 0.0, highlight_lane_offset, True + + if frame.lane_change_phase == "changing": + if LANE_CHANGE_MODEL_DIRECT_ONLY: + ego_lane_offset = direction_sign * clamp(frame.lane_change_progress, 0.0, 1.0) + return ego_lane_offset, 0.0, 0.0, highlight_lane_offset, True + + lane_grid_offset = 0.0 + if frame.lane_change_continuation: + rebase_progress = clamp( + frame.lane_change_progress / CONTINUOUS_LANE_CHANGE_REBASE_PROGRESS, + 0.0, + 1.0, + ) + rebase_blend = smoothstep(rebase_progress) + lane_grid_offset = -direction_sign * (1.0 - rebase_blend) + change_progress = clamp( + ( + frame.lane_change_progress + - CONTINUOUS_LANE_CHANGE_REBASE_PROGRESS + ) + / (1.0 - CONTINUOUS_LANE_CHANGE_REBASE_PROGRESS), + 0.0, + 1.0, + ) + ego_lane_offset = direction_sign * smoothstep(change_progress) + else: + ego_lane_offset = direction_sign * smoothstep(frame.lane_change_progress) + return ego_lane_offset, lane_grid_offset, lane_grid_offset, highlight_lane_offset, True + + if frame.lane_change_phase == "recentering": + recenter_blend = smoothstep(frame.lane_change_progress) + start_ego_offset = direction_sign * smoothstep(frame.lane_change_recenter_start_progress) + lane_grid_offset = -direction_sign * recenter_blend + ego_lane_offset = start_ego_offset * (1.0 - recenter_blend) + observed_ego_lane_offset * recenter_blend + return ego_lane_offset, lane_grid_offset, lane_grid_offset, None, True + + return observed_ego_lane_offset, 0.0, 0.0, None, False + + +def shifted_optional_offset(offset: float | None, shift: float) -> float | None: + return None if offset is None else offset + shift + + +def blend_frames(left: RouteReplayFrame, right: RouteReplayFrame, amount: float) -> RouteReplayFrame: + def lerp(a: float, b: float) -> float: + return a + (b - a) * amount + + def lerp_optional(a: float | None, b: float | None) -> float | None: + if a is None: + return b + if b is None: + return a + return lerp(a, b) + + discrete = left if amount < 0.5 else right + if LANE_CHANGE_MODEL_DIRECT_ONLY: + lane_change_progress = discrete.lane_change_progress + elif ( + left.lane_change == right.lane_change + and left.lane_change_phase == right.lane_change_phase + and left.lane_change_continuation == right.lane_change_continuation + and right.lane_change_progress >= left.lane_change_progress + ): + lane_change_progress = lerp(left.lane_change_progress, right.lane_change_progress) + else: + lane_change_progress = discrete.lane_change_progress + return RouteReplayFrame( + t=lerp(left.t, right.t), + speed_kph=lerp(left.speed_kph, right.speed_kph), + display_speed_kph=lerp_optional(left.display_speed_kph, right.display_speed_kph), + accel_mps2=lerp(left.accel_mps2, right.accel_mps2), + steering=lerp(left.steering, right.steering), + steering_angle_deg=lerp_optional(left.steering_angle_deg, right.steering_angle_deg), + speed_limit_kph=discrete.speed_limit_kph, + cruise_kph=discrete.cruise_kph, + cruise_display_state=discrete.cruise_display_state, + left_signal=discrete.left_signal, + right_signal=discrete.right_signal, + left_blindspot=discrete.left_blindspot, + right_blindspot=discrete.right_blindspot, + lane_width_m=lerp(left.lane_width_m, right.lane_width_m), + lane_center_offset_m=lerp_optional(left.lane_center_offset_m, right.lane_center_offset_m), + left_lane_offset=lerp(left.left_lane_offset, right.left_lane_offset), + right_lane_offset=lerp(left.right_lane_offset, right.right_lane_offset), + left_lane_visible=discrete.left_lane_visible, + right_lane_visible=discrete.right_lane_visible, + extra_left_lane_visible=discrete.extra_left_lane_visible, + extra_right_lane_visible=discrete.extra_right_lane_visible, + left_road_edge_offset=lerp_optional(left.left_road_edge_offset, right.left_road_edge_offset), + right_road_edge_offset=lerp_optional(left.right_road_edge_offset, right.right_road_edge_offset), + left_lane_style=discrete.left_lane_style, + right_lane_style=discrete.right_lane_style, + road_curvature=lerp_optional(left.road_curvature, right.road_curvature), + road_curvature_source=discrete.road_curvature_source, + lane_position_source=discrete.lane_position_source, + model_lane_lines=discrete.model_lane_lines, + model_road_edges=discrete.model_road_edges, + model_path=discrete.model_path, + model_path_source=discrete.model_path_source, + lane_change_source=discrete.lane_change_source, + lane_change=discrete.lane_change, + lane_change_phase=discrete.lane_change_phase, + lane_change_progress=lane_change_progress, + lane_change_recenter_start_progress=discrete.lane_change_recenter_start_progress, + lane_change_continuation=discrete.lane_change_continuation, + throttle=lerp(left.throttle, right.throttle), + brake=lerp(left.brake, right.brake), + detected_vehicles=discrete.detected_vehicles, + radar_points=discrete.radar_points, + planned_speed_kph=lerp_optional(left.planned_speed_kph, right.planned_speed_kph), + planned_accel_mps2=lerp_optional(left.planned_accel_mps2, right.planned_accel_mps2), + planned_curvature_m_inv=lerp_optional(left.planned_curvature_m_inv, right.planned_curvature_m_inv), + should_stop=discrete.should_stop, + model_confidence=discrete.model_confidence, + model_turn_speed_kph=lerp_optional(left.model_turn_speed_kph, right.model_turn_speed_kph), + engaged_prob=lerp_optional(left.engaged_prob, right.engaged_prob), + desire_state=discrete.desire_state, + desire_prediction=discrete.desire_prediction, + risk_points=discrete.risk_points, + brake_disengage_risk=lerp(left.brake_disengage_risk, right.brake_disengage_risk), + gas_disengage_risk=lerp(left.gas_disengage_risk, right.gas_disengage_risk), + steer_override_risk=lerp(left.steer_override_risk, right.steer_override_risk), + hard_brake_risk=lerp(left.hard_brake_risk, right.hard_brake_risk), + gas_press_prob=lerp(left.gas_press_prob, right.gas_press_prob), + brake_press_prob=lerp(left.brake_press_prob, right.brake_press_prob), + disengage_risk=lerp(left.disengage_risk, right.disengage_risk), + hard_brake_predicted=discrete.hard_brake_predicted, + lane_change_available_left=discrete.lane_change_available_left, + lane_change_available_right=discrete.lane_change_available_right, + lane_change_prob=lerp(left.lane_change_prob, right.lane_change_prob), + left_lane_width_m=lerp_optional(left.left_lane_width_m, right.left_lane_width_m), + right_lane_width_m=lerp_optional(left.right_lane_width_m, right.right_lane_width_m), + left_road_edge_distance_m=lerp_optional(left.left_road_edge_distance_m, right.left_road_edge_distance_m), + right_road_edge_distance_m=lerp_optional(left.right_road_edge_distance_m, right.right_road_edge_distance_m), + left_road_edge_confidence=lerp(left.left_road_edge_confidence, right.left_road_edge_confidence), + right_road_edge_confidence=lerp(left.right_road_edge_confidence, right.right_road_edge_confidence), + frame_age=discrete.frame_age, + frame_drop_perc=lerp_optional(left.frame_drop_perc, right.frame_drop_perc), + model_execution_time_ms=lerp_optional(left.model_execution_time_ms, right.model_execution_time_ms), + vision_speed_mps=lerp_optional(left.vision_speed_mps, right.vision_speed_mps), + vision_yaw_rate_rps=lerp_optional(left.vision_yaw_rate_rps, right.vision_yaw_rate_rps), + vision_speed_std_mps=lerp_optional(left.vision_speed_std_mps, right.vision_speed_std_mps), + vision_yaw_rate_std_rps=lerp_optional(left.vision_yaw_rate_std_rps, right.vision_yaw_rate_std_rps), + camera_calibration_euler=discrete.camera_calibration_euler, + road_transform_trans=discrete.road_transform_trans, + road_transform_std=discrete.road_transform_std, + camera_odometry_valid=discrete.camera_odometry_valid, + longitudinal_plan_source=discrete.longitudinal_plan_source, + longitudinal_plan_speeds_kph=discrete.longitudinal_plan_speeds_kph, + longitudinal_plan_accels_mps2=discrete.longitudinal_plan_accels_mps2, + longitudinal_plan_jerks_mps3=discrete.longitudinal_plan_jerks_mps3, + longitudinal_plan_fcw=discrete.longitudinal_plan_fcw, + longitudinal_plan_should_stop=discrete.longitudinal_plan_should_stop, + longitudinal_plan_allow_throttle=discrete.longitudinal_plan_allow_throttle, + longitudinal_plan_allow_brake=discrete.longitudinal_plan_allow_brake, + longitudinal_t_follow_s=lerp_optional(left.longitudinal_t_follow_s, right.longitudinal_t_follow_s), + longitudinal_desired_distance_m=lerp_optional(left.longitudinal_desired_distance_m, right.longitudinal_desired_distance_m), + longitudinal_v_target_kph=lerp_optional(left.longitudinal_v_target_kph, right.longitudinal_v_target_kph), + longitudinal_jerk_target_mps3=lerp_optional(left.longitudinal_jerk_target_mps3, right.longitudinal_jerk_target_mps3), + lateral_plan_valid=discrete.lateral_plan_valid, + lateral_plan_use_lane_lines=discrete.lateral_plan_use_lane_lines, + lateral_plan_solver_cost=lerp_optional(left.lateral_plan_solver_cost, right.lateral_plan_solver_cost), + lateral_plan_debug_text=discrete.lateral_plan_debug_text, + lateral_plan_curvatures=discrete.lateral_plan_curvatures, + lateral_plan_curvature_rates=discrete.lateral_plan_curvature_rates, + ) + + +def lanes_for_frame( + frame: RouteReplayFrame, + lane_grid_offset: float = 0.0, + use_animated_lane_grid: bool = False, +) -> tuple[LaneMarking, ...]: + left_inner_color = BLUE + right_inner_color = BLUE + left_outer_color = WHITE + right_outer_color = WHITE + if frame.lane_change == "left": + left_outer_color = BLUE_SOFT + elif frame.lane_change == "right": + right_outer_color = BLUE_SOFT + + if use_animated_lane_grid: + left_inner = lane_grid_offset - 0.5 + right_inner = lane_grid_offset + 0.5 + else: + left_inner = frame.left_lane_offset + lane_grid_offset + right_inner = frame.right_lane_offset + lane_grid_offset + + force_lane_change_lanes = use_animated_lane_grid and frame.lane_change in ("left", "right") + left_inner_visible = frame.left_lane_visible or force_lane_change_lanes + right_inner_visible = frame.right_lane_visible or force_lane_change_lanes + + markings: list[LaneMarking] = [] + if use_animated_lane_grid and frame.lane_change == "left": + left_outer = left_inner - 1.0 + left_outer_points = model_line_at(frame.model_lane_lines, 0) + markings.append( + LaneMarking( + left_outer, + left_outer_color, + "solid", + visible=True, + width=5, + model_points=left_outer_points, + model_lateral_shift_m=model_line_lateral_shift( + left_outer_points, + frame, + left_outer, + lane_grid_offset, + use_animated_lane_grid, + ), + ) + ) + left_inner_points = model_line_at(frame.model_lane_lines, 1) + markings.append( + LaneMarking( + left_inner, + left_inner_color, + frame.left_lane_style, + visible=left_inner_visible, + width=7, + model_points=left_inner_points, + model_lateral_shift_m=model_line_lateral_shift( + left_inner_points, + frame, + left_inner, + lane_grid_offset, + use_animated_lane_grid, + ), + ) + ) + right_inner_points = model_line_at(frame.model_lane_lines, 2) + markings.append( + LaneMarking( + right_inner, + right_inner_color, + frame.right_lane_style, + visible=right_inner_visible, + width=7, + model_points=right_inner_points, + model_lateral_shift_m=model_line_lateral_shift( + right_inner_points, + frame, + right_inner, + lane_grid_offset, + use_animated_lane_grid, + ), + ) + ) + if use_animated_lane_grid and frame.lane_change == "right": + right_outer = right_inner + 1.0 + right_outer_points = model_line_at(frame.model_lane_lines, 3) + markings.append( + LaneMarking( + right_outer, + right_outer_color, + "dashed", + visible=True, + width=5, + model_points=right_outer_points, + model_lateral_shift_m=model_line_lateral_shift( + right_outer_points, + frame, + right_outer, + lane_grid_offset, + use_animated_lane_grid, + ), + ) + ) + return tuple(markings) + + +def model_line_at( + lines: tuple[tuple[ModelPathPoint, ...], ...], + index: int, +) -> tuple[ModelPathPoint, ...]: + if index < 0 or index >= len(lines): + return () + return lines[index] + + +def model_line_lateral_shift( + points: tuple[ModelPathPoint, ...], + frame: RouteReplayFrame, + baseline_offset: float | None, + lane_grid_offset: float, + use_animated_lane_grid: bool, +) -> float: + if not points: + return 0.0 + lane_width_m = max(0.1, frame.lane_width_m) + if use_animated_lane_grid and baseline_offset is not None: + origin_lateral_m = points[0].lateral_m + base_lateral_m = baseline_offset * lane_width_m + return base_lateral_m - origin_lateral_m + + center_m = frame.lane_center_offset_m or 0.0 + shift_m = lane_grid_offset * lane_width_m + return -center_m + shift_m + + +def model_line_points(line: Any) -> tuple[ModelPathPoint, ...]: + xs = safe_get(line, "x") + ys = safe_get(line, "y") + if xs is None or ys is None: + return () + + count = min(len(xs), len(ys)) + points: list[ModelPathPoint] = [] + previous_forward_m = -1.0 + for index in range(count): + forward_m = finite_float(xs[index]) + lateral_m = finite_float(ys[index]) + if forward_m is None or lateral_m is None: + continue + if not 0.0 <= forward_m <= 160.0: + continue + if abs(lateral_m) > 24.0: + continue + if forward_m <= previous_forward_m + 0.01: + continue + points.append(ModelPathPoint(forward_m=forward_m, lateral_m=lateral_m)) + previous_forward_m = forward_m + return tuple(points) + + +def model_path_points_from_model_v2(model: Any) -> tuple[ModelPathPoint, ...]: + position = safe_get(model, "position") + if position is None: + return () + xs = safe_get(position, "x") + ys = safe_get(position, "y") + if xs is None or ys is None: + return () + y_stds = safe_get(position, "yStd") + velocity = safe_get(model, "velocity") + acceleration = safe_get(model, "acceleration") + orientation = safe_get(model, "orientation") + orientation_rate = safe_get(model, "orientationRate") + speeds = safe_get(velocity, "x") if velocity is not None else None + accels = safe_get(acceleration, "x") if acceleration is not None else None + orientations = safe_get(orientation, "z") if orientation is not None else None + orientation_rates = safe_get(orientation_rate, "z") if orientation_rate is not None else None + + count = min(len(xs), len(ys)) + points: list[ModelPathPoint] = [] + previous_forward_m = -1.0 + for index in range(count): + forward_m = finite_float(xs[index]) + lateral_m = finite_float(ys[index]) + if forward_m is None or lateral_m is None: + continue + if not 0.0 <= forward_m <= 140.0: + continue + if abs(lateral_m) > 18.0: + continue + if forward_m <= previous_forward_m + 0.01: + continue + points.append( + ModelPathPoint( + forward_m=forward_m, + lateral_m=lateral_m, + lateral_std_m=list_value(y_stds, index), + speed_mps=list_value(speeds, index), + accel_mps2=list_value(accels, index), + orientation_rad=list_value(orientations, index), + orientation_rate_rps=list_value(orientation_rates, index), + ) + ) + previous_forward_m = forward_m + return tuple(points) + + +def model_lead_detections_from_model_v2(model: Any) -> tuple[DetectedVehicle, ...]: + leads = safe_get(model, "leadsV3") + if leads is None: + return () + + model_velocity = safe_get(model, "velocity") + model_speed_mps = first_list_value(safe_get(model_velocity, "x")) if model_velocity is not None else None + detections: list[DetectedVehicle] = [] + for index, lead in enumerate(leads): + probability = clamp(safe_float(lead, "prob", 0.0), 0.0, 1.0) + if probability < MODEL_LEAD_MIN_PROB: + continue + x_m = first_list_value(safe_get(lead, "x")) + y_m = first_list_value(safe_get(lead, "y")) + if x_m is None or y_m is None: + continue + longitudinal_m = x_m - RADAR_TO_CAMERA_M + if not 0.2 < longitudinal_m < 180.0 or abs(y_m) > 8.0: + continue + + lead_speed_mps = first_list_value(safe_get(lead, "v")) + relative_speed_mps = ( + lead_speed_mps - model_speed_mps + if lead_speed_mps is not None and model_speed_mps is not None + else None + ) + acceleration_mps2 = first_list_value(safe_get(lead, "a")) + cut_in = model_lead_is_cut_in(lead) + x_std_m = first_list_value(safe_get(lead, "xStd")) + y_std_m = first_list_value(safe_get(lead, "yStd")) + detections.append( + DetectedVehicle( + label=f"M{index + 1}", + longitudinal_m=longitudinal_m, + lateral_m=clamp(y_m, -8.0, 8.0), + source="modelV2.leadsV3", + probability=probability, + relative_speed_mps=relative_speed_mps, + absolute_speed_kph=max(0.0, lead_speed_mps * 3.6) if lead_speed_mps is not None else None, + acceleration_mps2=acceleration_mps2, + cut_in=cut_in, + primary=index == 0, + ttc_s=ttc_from_relative_speed(longitudinal_m, relative_speed_mps), + x_std_m=x_std_m, + y_std_m=y_std_m, + ) + ) + return tuple(detections) + + +def ttc_from_relative_speed(longitudinal_m: float, relative_speed_mps: float | None) -> float | None: + if longitudinal_m <= 0.0 or relative_speed_mps is None or relative_speed_mps >= -0.15: + return None + ttc_s = longitudinal_m / max(0.15, -relative_speed_mps) + return clamp(ttc_s, 0.0, 99.0) + + +def model_lead_is_cut_in(lead: Any) -> bool: + ys = safe_get(lead, "y") + xs = safe_get(lead, "x") + if ys is None or xs is None or len(ys) < 2 or len(xs) < 2: + return False + y0 = finite_float(ys[0]) + if y0 is None or abs(y0) < 0.85: + return False + for index in range(1, min(len(ys), len(xs))): + future_y = finite_float(ys[index]) + future_x = finite_float(xs[index]) + if future_y is None or future_x is None or future_x - RADAR_TO_CAMERA_M > 75.0: + continue + if abs(future_y) < 0.70 or abs(future_y) < abs(y0) - 0.55: + return True + return False + + +def lane_offset_from_y(y_m: float | None, center_m: float, lane_width_m: float) -> float | None: + if y_m is None: + return None + return (y_m - center_m) / max(0.1, lane_width_m) + + +def road_edge_confidence_from_std(std: float | None) -> float: + if std is None: + return 0.0 + return clamp(1.0 - std / 2.0, 0.0, 1.0) + + +def disengage_risk_from_meta(meta: Any) -> float: + predictions = safe_get(meta, "disengagePredictions") + if predictions is None: + return 0.0 + values = ( + list_max(safe_get(predictions, "brakeDisengageProbs")), + list_max(safe_get(predictions, "gasDisengageProbs")), + list_max(safe_get(predictions, "steerOverrideProbs")), + list_max(safe_get(predictions, "brake3MetersPerSecondSquaredProbs")), + list_max(safe_get(predictions, "brake4MetersPerSecondSquaredProbs")), + list_max(safe_get(predictions, "brake5MetersPerSecondSquaredProbs")), + ) + return clamp(max(values), 0.0, 1.0) + + +def list_max(values: Any) -> float: + if values is None: + return 0.0 + maximum = 0.0 + for value in values: + parsed = finite_float(value) + if parsed is not None: + maximum = max(maximum, parsed) + return maximum + + +def car_state_corner_detections(car_state: Any) -> tuple[DetectedVehicle, ...]: + pairs = ( + ("LF", "leftLongDist", "leftLatDist", -1.0), + ("RF", "rightLongDist", "rightLatDist", 1.0), + ) + detections: list[DetectedVehicle] = [] + for label, distance_name, lateral_name, side in pairs: + distance_m = safe_float(car_state, distance_name, 0.0) + if not 0.2 < distance_m < 180.0: + continue + lateral_mag = normalized_lateral_m(safe_float(car_state, lateral_name, 0.0)) + detections.append( + DetectedVehicle( + label=label, + longitudinal_m=distance_m, + lateral_m=side * lateral_mag, + source="carState", + ) + ) + return tuple(detections) + + +def corner_radar_specs(address: int) -> dict[str, tuple[str, int, int, str, int, int, str, int, int, float]]: + if address == 0x162: + return { + "LF": ("le", 112, 5, "le", 117, 11, "le", 128, 7, 1.0), + "RF": ("le", 136, 5, "le", 141, 11, "le", 152, 7, 1.0), + "LR": ("le", 163, 5, "be", 175, 8, "le", 176, 7, -1.0), + "RR": ("le", 192, 5, "le", 197, 8, "le", 205, 7, -1.0), + } + return { + "LF": ("be", 74, 3, "le", 46, 11, "be", 70, 7, 1.0), + "RF": ("be", 98, 3, "le", 75, 11, "be", 94, 7, 1.0), + "LR": ("be", 162, 3, "le", 139, 8, "le", 152, 6, -1.0), + "RR": ("be", 186, 3, "le", 163, 8, "le", 172, 6, -1.0), + } + + +def parse_corner_radar_message(address: int, data: bytes) -> dict[str, DetectedVehicle]: + specs = corner_radar_specs(address) + detections: dict[str, DetectedVehicle] = {} + for label, spec in specs.items(): + det_order, det_start, det_len, dist_order, dist_start, dist_len, lat_order, lat_start, lat_len, forward_sign = spec + detect = dbc_unsigned(data, det_start, det_len, det_order) + distance_m = dbc_unsigned(data, dist_start, dist_len, dist_order) * 0.1 + if detect == 0 or not 0.2 < distance_m < 180.0: + continue + longitudinal_m = forward_sign * distance_m + if forward_sign < 0.0: + if not CORNER_RADAR_REAR_MIN_LONGITUDINAL_M <= longitudinal_m <= -0.2: + continue + elif not RADAR_MIN_LONGITUDINAL_M <= longitudinal_m <= RADAR_FRONT_MAX_LONGITUDINAL_M: + continue + lateral_mag = normalized_lateral_m(dbc_unsigned(data, lat_start, lat_len, lat_order) * 0.1) + side = -1.0 if label.endswith("F") and label.startswith("L") else 1.0 + if label.startswith("L"): + side = -1.0 + elif label.startswith("R"): + side = 1.0 + detections[label] = DetectedVehicle( + label=label, + longitudinal_m=longitudinal_m, + lateral_m=side * lateral_mag, + source=f"CAN 0x{address:x}", + ) + return detections + + +def parse_hyundai_canfd_radar_message(address: int, data: bytes) -> tuple[RadarPoint, ...]: + if 0x210 <= address <= 0x21F: + return tuple( + point + for point in ( + parse_hyundai_canfd_radar_slot(address, data, 1), + parse_hyundai_canfd_radar_slot(address, data, 2), + ) + if point is not None + ) + if 0x3A5 <= address <= 0x3C4: + point = parse_hyundai_canfd_radar_point_3a5(address, data) + return () if point is None else (point,) + return () + + +def is_hyundai_canfd_radar_address(address: int) -> bool: + return 0x210 <= address <= 0x21F or 0x3A5 <= address <= 0x3C4 + + +def hyundai_canfd_radar_labels_for_address(address: int) -> tuple[str, ...]: + if 0x210 <= address <= 0x21F: + index = (address - 0x210) * 2 + return (f"R{index:02d}", f"R{index + 1:02d}") + if 0x3A5 <= address <= 0x3C4: + return (f"P{address - 0x3A5:02d}",) + return () + + +def parse_hyundai_canfd_radar_slot(address: int, data: bytes, slot: int) -> RadarPoint | None: + if len(data) < 32: + return None + base = 0 if slot == 1 else 128 + valid_count = dbc_unsigned(data, base + 47, 8, "be") + if valid_count <= 10: + return None + long_dist_m = dbc_unsigned(data, base + 64, 12, "le") * 0.05 + raw_lat_dist_m = dbc_signed(data, base + 76, 12, "le") * 0.05 + rel_speed_mps = dbc_signed(data, base + 88, 14, "le") * 0.01 + raw_lat_speed_mps = dbc_signed(data, base + 104, 13, "le") * 0.01 + rel_accel_mps2 = dbc_signed(data, base + 118, 10, "le") * 0.05 + lat_dist_m = renderer_lateral_from_openpilot_yrel(raw_lat_dist_m) + lat_speed_mps = renderer_lateral_from_openpilot_yrel(raw_lat_speed_mps) + if not -10.0 <= lat_dist_m <= 10.0 or not 2.5 <= long_dist_m <= 180.0: + return None + index = (address - 0x210) * 2 + (slot - 1) + return RadarPoint( + label=f"R{index:02d}", + longitudinal_m=long_dist_m, + lateral_m=lat_dist_m, + source=f"CAN-FD 0x{address:x}.{slot}", + relative_speed_mps=rel_speed_mps, + lateral_speed_mps=lat_speed_mps, + relative_accel_mps2=rel_accel_mps2, + valid_count=valid_count, + ) + + +def parse_hyundai_canfd_radar_point_3a5(address: int, data: bytes) -> RadarPoint | None: + if len(data) < 24: + return None + valid = dbc_unsigned(data, 25, 2, "be") + valid2 = dbc_unsigned(data, 28, 2, "be") + probability = dbc_unsigned(data, 30, 10, "le") / 1023.0 + valid_count = dbc_unsigned(data, 47, 8, "be") + if valid_count <= 10: + return None + long_dist_m = dbc_unsigned(data, 63, 13, "le") * 0.05 + raw_lat_dist_m = dbc_signed(data, 76, 12, "le") * 0.05 + rel_speed_mps = dbc_signed(data, 88, 14, "le") * 0.01 + in_my_lane = dbc_unsigned(data, 103, 2, "be") + raw_lat_speed_mps = dbc_signed(data, 104, 13, "le") * 0.01 + rel_accel_mps2 = dbc_signed(data, 118, 10, "le") * 0.05 + lat_dist_m = renderer_lateral_from_openpilot_yrel(raw_lat_dist_m) + lat_speed_mps = renderer_lateral_from_openpilot_yrel(raw_lat_speed_mps) + if not -10.0 <= lat_dist_m <= 10.0 or not 2.5 <= long_dist_m <= 180.0: + return None + index = address - 0x3A5 + return RadarPoint( + label=f"P{index:02d}", + longitudinal_m=long_dist_m, + lateral_m=lat_dist_m, + source=f"CAN-FD 0x{address:x}", + relative_speed_mps=rel_speed_mps, + lateral_speed_mps=lat_speed_mps, + relative_accel_mps2=rel_accel_mps2, + probability=clamp(probability, 0.0, 1.0), + valid=valid or valid2, + valid_count=valid_count, + in_my_lane=in_my_lane, + ) + + +def renderer_lateral_from_openpilot_yrel(y_rel: float) -> float: + # openpilot radar/model UI projects radar points as -yRel; this renderer stores x as right-positive. + return -y_rel + + +def live_track_to_radar_point(track: Any, index: int, ego_speed_kph: float) -> RadarPoint | None: + d_rel = safe_optional_float(track, "dRel") + if d_rel is None or not RADAR_MIN_LONGITUDINAL_M <= d_rel <= RADAR_FRONT_MAX_LONGITUDINAL_M: + return None + y_rel = safe_float(track, "yRel", 0.0) + lateral_m = renderer_lateral_from_openpilot_yrel(y_rel) + if not -12.0 <= lateral_m <= 12.0: + return None + track_id = safe_optional_int(track, "trackId") + label = f"T{track_id}" if track_id is not None else f"T{index:03d}" + rel_speed_mps = safe_optional_float(track, "vRel") + lead_speed_mps = safe_optional_float(track, "vLead") + absolute_speed_kph = None + if lead_speed_mps is not None: + absolute_speed_kph = max(0.0, lead_speed_mps * 3.6) + elif rel_speed_mps is not None: + absolute_speed_kph = max(0.0, ego_speed_kph + rel_speed_mps * 3.6) + lat_speed_mps = safe_optional_float(track, "yvRel") + if lat_speed_mps is not None: + lat_speed_mps = renderer_lateral_from_openpilot_yrel(lat_speed_mps) + measured = bool(safe_get(track, "measured", True)) + return RadarPoint( + label=label, + longitudinal_m=d_rel, + lateral_m=lateral_m, + source="liveTracks", + relative_speed_mps=rel_speed_mps, + absolute_speed_kph=absolute_speed_kph, + lateral_speed_mps=lat_speed_mps, + relative_accel_mps2=safe_optional_float(track, "aRel"), + probability=0.72 if measured else 0.38, + valid=1 if measured else 0, + ) + + +def sorted_radar_points(points: Any) -> tuple[RadarPoint, ...]: + filtered = [ + point + for point in points + if -12.0 <= point.lateral_m <= 12.0 + and RADAR_MIN_LONGITUDINAL_M <= point.longitudinal_m <= RADAR_FRONT_MAX_LONGITUDINAL_M + ] + filtered.sort(key=lambda point: (point.longitudinal_m, abs(point.lateral_m), point.label)) + return tuple(filtered) + + +def normalized_lateral_m(value: float) -> float: + if 0.4 <= value <= 6.0: + return value + return 3.0 + + +def scene_steering_from_curvature(curvature_m_inv: float) -> float: + return clamp(curvature_m_inv / (2.0 * ROAD_CURVE_M_PER_M2), -1.0, 1.0) + + +def dbc_unsigned(data: bytes, start: int, length: int, byte_order: str) -> int: + if byte_order == "le": + return (int.from_bytes(data, "little") >> start) & ((1 << length) - 1) + value = 0 + bit = start + for _ in range(length): + if bit < 0 or bit // 8 >= len(data): + return value + value = (value << 1) | ((data[bit // 8] >> (bit % 8)) & 1) + bit = bit + 15 if bit % 8 == 0 else bit - 1 + return value + + +def dbc_signed(data: bytes, start: int, length: int, byte_order: str) -> int: + value = dbc_unsigned(data, start, length, byte_order) + sign_bit = 1 << (length - 1) + return value - (1 << length) if value & sign_bit else value + + +def has_nearby_vehicle( + vehicles: list[DetectedVehicle], + candidate: DetectedVehicle, + longitudinal_tolerance: float, + lateral_tolerance: float, +) -> bool: + return any( + abs(vehicle.longitudinal_m - candidate.longitudinal_m) <= longitudinal_tolerance + and abs(vehicle.lateral_m - candidate.lateral_m) <= lateral_tolerance + for vehicle in vehicles + ) + + +def detected_vehicle_summary(vehicles: tuple[DetectedVehicle, ...]) -> str: + if not vehicles: + return "none" + parts = [] + for vehicle in vehicles[:4]: + rel = "" if vehicle.relative_speed_mps is None else f" {vehicle.relative_speed_mps:+.1f}mps" + prob = "" if vehicle.probability >= 0.995 else f" p{vehicle.probability:.0%}" + cut_in = " cut" if vehicle.cut_in else "" + parts.append(f"{vehicle.label} {vehicle.longitudinal_m:+.0f}/{vehicle.lateral_m:+.1f}{rel}{prob}{cut_in}") + if len(vehicles) > 4: + parts.append(f"+{len(vehicles) - 4}") + return " ".join(parts) + + +def nearest_ttc_summary(vehicles: tuple[DetectedVehicle, ...]) -> str: + ttcs = [vehicle.ttc_s for vehicle in vehicles if vehicle.ttc_s is not None] + if not ttcs: + return "--" + return f"{min(ttcs):.1f}s" + + +def radar_point_summary(points: tuple[RadarPoint, ...]) -> str: + if not points: + return "none" + nearest = min(points, key=lambda point: max(0.0, point.longitudinal_m)) + rel = "" if nearest.relative_speed_mps is None else f" v{nearest.relative_speed_mps:+.1f}" + prob = "" if nearest.probability is None else f" p{nearest.probability:.0%}" + return f"{len(points)} nearest {nearest.label} {nearest.longitudinal_m:.0f}/{nearest.lateral_m:+.1f}{rel}{prob}" + + +def discover_route_logs( + route_path: Path, + log_kind: str, + start_segment: int | None, + max_segments: int | None, +) -> list[Path]: + if log_kind not in LOG_FILENAMES: + raise RuntimeError(f"unsupported route log kind: {log_kind}") + + route_path = route_path.resolve() + filename = LOG_FILENAMES[log_kind] + if route_path.is_file(): + return [route_path] + + search_root, effective_start_segment, route_id_filter = route_search_spec(route_path, start_segment) + if not search_root.exists(): + raise RuntimeError(f"route path does not exist: {route_path}") + + files = sorted(search_root.rglob(filename), key=route_sort_key) + if route_id_filter is not None: + files = [ + path + for path in files + if segment_route_id(path) == route_id_filter + ] + if effective_start_segment is not None: + files = [ + path + for path in files + if segment_index(path) is not None and segment_index(path) >= effective_start_segment + ] + if max_segments is not None: + files = files[:max_segments] + return files + + +def route_search_spec(route_path: Path, start_segment: int | None) -> tuple[Path, int | None, str | None]: + segment = segment_index_from_name(route_path.name) + route_id = segment_route_id_from_name(route_path.name) + if route_path.exists(): + if segment is None: + return route_path, start_segment, None + return route_path.parent, start_segment if start_segment is not None else segment, route_id + if segment is not None: + return route_path.parent, start_segment if start_segment is not None else segment, route_id + return route_path.parent, start_segment, route_path.name + + +def route_sort_key(path: Path) -> tuple[str, int, str]: + parent = path.parent.name + route = segment_route_id(path) or path.parent.parent.name + index = segment_index(path) + return route, index if index is not None else 10**9, parent + + +def route_video_segment_at( + segments: list[RouteVideoSegment], + playback_seconds: float, +) -> RouteVideoSegment | None: + if not segments: + return None + starts = [segment.start_t for segment in segments] + index = bisect_right(starts, playback_seconds) - 1 + if index < 0: + return segments[0] + segment = segments[min(index, len(segments) - 1)] + if playback_seconds <= segment.end_t + 0.5: + return segment + if index + 1 < len(segments): + return segments[index + 1] + return segment + + +def probe_video(path: Path) -> tuple[int, int, float]: + ffprobe_path = shutil.which("ffprobe") + if ffprobe_path is None: + return 526, 330, 20.0 + try: + result = subprocess.run( + [ + ffprobe_path, + "-v", + "error", + "-select_streams", + "v:0", + "-show_entries", + "stream=width,height,r_frame_rate", + "-of", + "csv=p=0:s=x", + str(path), + ], + check=True, + capture_output=True, + text=True, + timeout=3.0, + ) + except Exception: + return 526, 330, 20.0 + + first_line = result.stdout.strip().splitlines()[0] if result.stdout.strip() else "" + parts = first_line.split("x") + if len(parts) < 3: + return 526, 330, 20.0 + try: + width = int(parts[0]) + height = int(parts[1]) + fps = float(Fraction(parts[2])) + except (ValueError, ZeroDivisionError): + return 526, 330, 20.0 + return max(1, width), max(1, height), max(1.0, fps) + + +def segment_index(path: Path) -> int | None: + return segment_index_from_name(path.parent.name) + + +def segment_route_id(path: Path) -> str | None: + return segment_route_id_from_name(path.parent.name) + + +def segment_route_id_from_name(name: str) -> str | None: + if segment_index_from_name(name) is None: + return None + return name.rsplit("--", 1)[0] + + +def segment_index_from_name(name: str) -> int | None: + try: + suffix = name.rsplit("--", 1)[1] + except (IndexError, ValueError): + return None + return int(suffix) if suffix.isdigit() else None + + +_LOG_SCHEMA: Any | None = None + + +def load_openpilot_log_schema() -> Any: + global _LOG_SCHEMA + if _LOG_SCHEMA is not None: + return _LOG_SCHEMA + + try: + import capnp + except ModuleNotFoundError as exc: + raise RuntimeError("pycapnp is required to read openpilot route logs") from exc + + schema_dir = prepare_schema_copy() + _LOG_SCHEMA = capnp.load(str(schema_dir / "log.capnp"), imports=[str(schema_dir)]) + return _LOG_SCHEMA + + +def prepare_schema_copy() -> Path: + openpilot_root = find_openpilot_root_for_schema(Path(__file__).resolve().parent) + cereal_root = openpilot_root / "cereal" + car_schema = openpilot_root / "opendbc_repo" / "opendbc" / "car" / "car.capnp" + if not car_schema.exists(): + raise RuntimeError(f"openpilot car schema not found: {car_schema}") + + schema_dir = Path(tempfile.gettempdir()) / ROUTE_SCHEMA_CACHE_NAME + include_dir = schema_dir / "include" + include_dir.mkdir(parents=True, exist_ok=True) + for name in ("log.capnp", "custom.capnp", "deprecated.capnp"): + shutil.copyfile(cereal_root / name, schema_dir / name) + shutil.copyfile(car_schema, schema_dir / "car.capnp") + shutil.copyfile(cereal_root / "include" / "c++.capnp", include_dir / "c++.capnp") + return schema_dir + + +def find_openpilot_root_for_schema(start: Path) -> Path: + for path in (start, *start.parents): + if (path / "cereal").exists() and (path / "opendbc_repo").exists(): + return path + nested = path / "openpilot" + if (nested / "cereal").exists() and (nested / "opendbc_repo").exists(): + return nested + return start / "openpilot" + + +def read_log_bytes(path: Path) -> bytes: + data = path.read_bytes() + if path.suffix == ".bz2" or data.startswith(b"BZh"): + return bz2.decompress(data) + if path.suffix == ".zst" or data.startswith(b"\x28\xb5\x2f\xfd"): + try: + import zstandard as zstd + except ModuleNotFoundError as exc: + raise RuntimeError("zstandard is required to read compressed route logs") from exc + with zstd.ZstdDecompressor().stream_reader(io.BytesIO(data)) as reader: + return reader.read() + return data + + +def safe_which(event: Any) -> str | None: + try: + return event.which() + except Exception: + return None + + +def safe_get(obj: Any, name: str, default: Any = None) -> Any: + try: + return getattr(obj, name) + except Exception: + return default + + +def safe_float(obj: Any, name: str, default: float) -> float: + value = safe_get(obj, name, default) + try: + value = float(value) + except (TypeError, ValueError): + return default + if not math.isfinite(value): + return default + return value + + +def finite_float(value: Any) -> float | None: + try: + parsed = float(value) + except (TypeError, ValueError): + return None + return parsed if math.isfinite(parsed) else None + + +def safe_optional_float(obj: Any, name: str) -> float | None: + value = safe_float(obj, name, math.nan) + return None if math.isnan(value) else value + + +def safe_optional_int(obj: Any, name: str) -> int | None: + value = safe_get(obj, name) + try: + return int(value) + except (TypeError, ValueError): + return None + + +def list_value(values: Any, index: int) -> float | None: + if values is None or index < 0 or index >= len(values): + return None + return finite_float(values[index]) + + +def first_list_value(values: Any) -> float | None: + if values is None or len(values) == 0: + return None + try: + return float(values[0]) + except (TypeError, ValueError): + return None + + +def enum_text(value: Any) -> str: + return str(value) + + +def numeric_tuple( + values: Any, + limit: int | None = None, + minimum: float | None = None, + maximum: float | None = None, +) -> tuple[float, ...]: + if values is None: + return () + parsed: list[float] = [] + for index, value in enumerate(values): + if limit is not None and index >= limit: + break + number = finite_float(value) + if number is None: + continue + if minimum is not None: + number = max(minimum, number) + if maximum is not None: + number = min(maximum, number) + parsed.append(number) + return tuple(parsed) + + +def three_float_tuple(values: Any) -> tuple[float, float, float] | None: + parsed = numeric_tuple(values, limit=3) + if len(parsed) < 3: + return None + return parsed[0], parsed[1], parsed[2] + + +def desire_prediction_matrix(values: Any) -> tuple[tuple[float, ...], ...]: + flat = numeric_tuple(values, limit=32, minimum=0.0, maximum=1.0) + if len(flat) < 8: + return () + rows: list[tuple[float, ...]] = [] + for start in range(0, len(flat), 8): + row = flat[start : start + 8] + if len(row) == 8: + rows.append(row) + return tuple(rows[:4]) + + +def risk_points_from_meta(meta: Any) -> tuple[ModelRiskPoint, ...]: + predictions = safe_get(meta, "disengagePredictions") + if predictions is None: + return () + times = numeric_tuple(safe_get(predictions, "t"), limit=8, minimum=0.0, maximum=30.0) + if not times: + times = (2.0, 4.0, 6.0, 8.0, 10.0) + fields = { + "brake_disengage": numeric_tuple(safe_get(predictions, "brakeDisengageProbs"), limit=len(times), minimum=0.0, maximum=1.0), + "gas_disengage": numeric_tuple(safe_get(predictions, "gasDisengageProbs"), limit=len(times), minimum=0.0, maximum=1.0), + "steer_override": numeric_tuple(safe_get(predictions, "steerOverrideProbs"), limit=len(times), minimum=0.0, maximum=1.0), + "hard_brake_3": numeric_tuple(safe_get(predictions, "brake3MetersPerSecondSquaredProbs"), limit=len(times), minimum=0.0, maximum=1.0), + "hard_brake_4": numeric_tuple(safe_get(predictions, "brake4MetersPerSecondSquaredProbs"), limit=len(times), minimum=0.0, maximum=1.0), + "hard_brake_5": numeric_tuple(safe_get(predictions, "brake5MetersPerSecondSquaredProbs"), limit=len(times), minimum=0.0, maximum=1.0), + "gas_press": numeric_tuple(safe_get(predictions, "gasPressProbs"), limit=len(times), minimum=0.0, maximum=1.0), + "brake_press": numeric_tuple(safe_get(predictions, "brakePressProbs"), limit=len(times), minimum=0.0, maximum=1.0), + } + points: list[ModelRiskPoint] = [] + for index, t_s in enumerate(times): + points.append( + ModelRiskPoint( + t_s=t_s, + brake_disengage=tuple_value(fields["brake_disengage"], index), + gas_disengage=tuple_value(fields["gas_disengage"], index), + steer_override=tuple_value(fields["steer_override"], index), + hard_brake_3=tuple_value(fields["hard_brake_3"], index), + hard_brake_4=tuple_value(fields["hard_brake_4"], index), + hard_brake_5=tuple_value(fields["hard_brake_5"], index), + gas_press=tuple_value(fields["gas_press"], index), + brake_press=tuple_value(fields["brake_press"], index), + ) + ) + return tuple(points) + + +def tuple_value(values: tuple[float, ...], index: int) -> float: + return values[index] if 0 <= index < len(values) else 0.0 + + +def lane_style_from_code(code: int) -> str: + if code < 0: + return "solid" + return "dashed" if code % 10 == 0 else "solid" diff --git a/selfdrive/carrot/cluster/cluster_scene.py b/selfdrive/carrot/cluster/cluster_scene.py new file mode 100644 index 000000000..a135b3cdc --- /dev/null +++ b/selfdrive/carrot/cluster/cluster_scene.py @@ -0,0 +1,2061 @@ +from __future__ import annotations + +import math +import time +from collections import OrderedDict +from collections.abc import Callable +from dataclasses import dataclass, replace + +from cluster_config import ( + AMBER, + BLUE, + ClusterTheme, + DEFAULT_LANE_WIDTH_M, + EGO, + EGO_FORWARD_M, + GREEN, + LIGHT_CLUSTER_THEME, + PATH_END_M, + PATH_HEIGHT_M, + PATH_LANE_CHANGE_CURVE_END_M, + PATH_LANE_CHANGE_CURVE_START_M, + PATH_START_M, + RED, + ROAD_CURVE_M_PER_M2, + ROAD_FAR_M, + ROAD_NEAR_M, + SURROUND_CAMERA_DISTANCE_M, + SURROUND_CAMERA_HEIGHT_M, + SURROUND_MAX_PITCH_DEG, + SURROUND_MAX_YAW_DEG, + SURROUND_ROAD_FRONT_M, + SURROUND_ROAD_REAR_M, + SURROUND_TARGET_FORWARD_M, + SURROUND_TARGET_HEIGHT_M, + VEHICLE_HEIGHT_M, + VEHICLE_LANE_CHANGE_SLOPE, + VEHICLE_LENGTH_M, + VEHICLE_WIDTH_M, +) +from cluster_models import ClusterUiState, DetectedVehicle, LaneMarking, ModelPathPoint, RadarPoint +from cluster_utils import clamp, darken, lighten, smoothstep + + +Color = tuple[int, int, int, int] +ProfileAdd = Callable[[str, float], None] +PATH_BLOCKER_CLEARANCE_M = 1.25 +PATH_BLOCKER_LANE_TOLERANCE = 0.42 +RADAR_VEHICLE_MIN_VALID_COUNT = 11 +RADAR_VEHICLE_MAX_DISTANCE_M = 150.0 +RADAR_VEHICLE_MAX_LATERAL_LANES = 2.75 +RADAR_ROAD_EDGE_HARD_CLEARANCE_M = 0.55 +RADAR_ROAD_EDGE_STATIONARY_CLEARANCE_M = 1.05 +RADAR_STATIC_OBJECT_SPEED_MPS = 1.25 +RADAR_STATIC_OBJECT_SPEED_KPH = 8.0 +RADAR_SIDE_STATIC_LATERAL_LANES = 0.58 +RADAR_EGO_MOVING_SPEED_KPH = 10.0 +RADAR_CENTER_RAW_LATERAL_LANES = 0.72 +RADAR_ADJACENT_RAW_LATERAL_LANES = 1.45 +RADAR_OUTER_RAW_LATERAL_LANES = 2.65 +RADAR_RAW_MOVING_SPEED_KPH = 8.0 +RADAR_RAW_CENTER_MIN_VALID_COUNT = 16 +RADAR_RAW_ADJACENT_MIN_VALID_COUNT = 24 +RADAR_RAW_OUTER_MIN_VALID_COUNT = 35 +RADAR_PROBABLE_VEHICLE_LATERAL_LANES = 2.75 +RADAR_VEHICLE_MIN_PROBABILITY = 0.35 +RADAR_VEHICLE_DEDUP_LONGITUDINAL_M = 7.0 +RADAR_VEHICLE_DEDUP_LATERAL_M = 1.6 +RADAR_MERGE_LONGITUDINAL_MIN_M = 3.0 +RADAR_MERGE_LONGITUDINAL_MAX_M = 7.0 +RADAR_MERGE_LATERAL_M = 1.35 +RADAR_MERGED_SOURCE_TAG = "+radar:" +CORNER_RADAR_LABELS = frozenset(("LF", "RF", "LR", "RR")) +REAR_CORNER_RADAR_LABELS = frozenset(("LR", "RR")) +VEHICLE_BADGE_TTC_S = 9.9 +VEHICLE_BADGE_ACCEL_MPS2 = 1.0 +MODEL_LINE_STRIP_GROUP_CACHE_LIMIT = 48 +ROAD_STEPS_SURROUND = 96 +ROAD_STEPS_MODEL = 48 +ROAD_STEPS_SIM = 64 +STATIC_LINE_STEPS = 56 +PLANNED_PATH_FALLBACK_STEPS = 32 +MODEL_PATH_METRIC_SEGMENT_LIMIT = 14 +LANE_MARKING_SHADOW_HEIGHT_M = 0.026 +LANE_MARKING_HEIGHT_M = 0.044 +LANE_MARKING_BORDER_EXTRA_WIDTH_PX = 3 +LANE_MARKING_BORDER_COLOR = LIGHT_CLUSTER_THEME.lane_marking_border +ROAD_EDGE_HEIGHT_M = 0.034 +ROAD_EDGE_SHADOW_HEIGHT_M = 0.028 +ROAD_EDGE_BACKING_COLOR = LIGHT_CLUSTER_THEME.road_edge_backing +PATH_SHADOW_LAYER_M = 0.024 +PATH_UNCERTAINTY_LAYER_M = PATH_HEIGHT_M + 0.002 +PATH_BODY_LAYER_M = PATH_HEIGHT_M + 0.046 +PATH_METRIC_LAYER_M = PATH_HEIGHT_M + 0.066 +PATH_HIGHLIGHT_LAYER_M = PATH_HEIGHT_M + 0.088 +LANE_HIGHLIGHT_COLOR = (64, 148, 255) +LANE_HIGHLIGHT_ALPHA = 220 +LANE_HIGHLIGHT_ROUTE_ALPHA = 170 +BSD_LANE_MARKING_MATCH_TOLERANCE = 0.45 + + +@dataclass(frozen=True, slots=True) +class Vec3: + x: float + y: float + z: float = 0.0 + + +@dataclass(frozen=True, slots=True) +class CameraSpec: + position: Vec3 + target: Vec3 + fovy_deg: float + + +@dataclass(frozen=True, slots=True) +class MeshStrip: + left: tuple[Vec3, ...] + right: tuple[Vec3, ...] + color: Color + x_offset_m: float = 0.0 + + +@dataclass(frozen=True, slots=True) +class VehicleBox: + center: Vec3 + right_x: float + right_y: float + forward_x: float + forward_y: float + width_m: float + length_m: float + height_m: float + body_color: Color + side_color: Color + rear_color: Color + top_highlight: Color + outline_color: Color + confidence: float = 1.0 + label: str = "" + source: str = "" + relative_speed_mps: float | None = None + absolute_speed_kph: float | None = None + acceleration_mps2: float | None = None + ttc_s: float | None = None + cut_in: bool = False + primary: bool = False + annotate: bool = False + + +@dataclass(frozen=True, slots=True) +class RadarPointMarker: + center: Vec3 + radius_m: float + color: Color + label: str + longitudinal_m: float + lateral_m: float + relative_speed_mps: float | None = None + absolute_speed_kph: float | None = None + lateral_speed_mps: float | None = None + relative_accel_mps2: float | None = None + probability: float | None = None + valid: int | None = None + in_my_lane: int | None = None + + +@dataclass(frozen=True, slots=True) +class RearVehicleIndicator: + center: Vec3 + anchor: Vec3 + label: str + lane_side: str + longitudinal_m: float + lateral_m: float + source: str = "" + + +@dataclass(frozen=True, slots=True) +class PathBlocker: + offset: float + forward_m: float + length_m: float + + +ModelLineStripGroups = tuple[tuple[MeshStrip, ...], ...] | None +ModelLineStripCacheKey = tuple[int, float, float, str, bool, tuple[tuple[int, Color, float], ...]] +_MODEL_LINE_STRIP_GROUP_CACHE: OrderedDict[ + ModelLineStripCacheKey, + tuple[tuple[ModelPathPoint, ...], ModelLineStripGroups], +] = OrderedDict() + + +@dataclass(frozen=True, slots=True) +class ClusterScene: + camera: CameraSpec + scene_shift_x_m: float + road_surface: MeshStrip + road_edges: tuple[MeshStrip, ...] + highlight_lanes: tuple[MeshStrip, ...] + lane_markings: tuple[MeshStrip, ...] + planned_path: tuple[MeshStrip, ...] + radar_points: tuple[RadarPointMarker, ...] + vehicles: tuple[VehicleBox, ...] + rear_indicators: tuple[RearVehicleIndicator, ...] = () + + +def rgba(color: tuple[int, int, int], alpha: int = 255) -> Color: + return color[0], color[1], color[2], alpha + + +def road_curve_m(forward_m: float, steering: float) -> float: + return clamp(steering, -1.0, 1.0) * ROAD_CURVE_M_PER_M2 * forward_m * forward_m + + +def road_world_x(offset: float, forward_m: float, steering: float, lane_width_m: float) -> float: + return offset * lane_width_m + road_curve_m(forward_m, steering) + + +def normalize2(x: float, y: float) -> tuple[float, float]: + length = math.hypot(x, y) + if length <= 0.0001: + return 0.0, 1.0 + return x / length, y / length + + +def vehicle_heading( + offset: float, + forward_m: float, + steering: float, + lane_width_m: float, + target_offset: float | None = None, +) -> tuple[float, float, float, float]: + road_slope = 2.0 * clamp(steering, -1.0, 1.0) * ROAD_CURVE_M_PER_M2 * forward_m + lane_change_slope = 0.0 + if target_offset is not None: + lane_delta_m = (target_offset - offset) * lane_width_m + lane_change_slope = clamp( + lane_delta_m / 18.0, + -VEHICLE_LANE_CHANGE_SLOPE, + VEHICLE_LANE_CHANGE_SLOPE, + ) + forward_x, forward_y = normalize2(road_slope + lane_change_slope, 1.0) + right_x = forward_y + right_y = -forward_x + return right_x, right_y, forward_x, forward_y + + +def sample_range(start_m: float, end_m: float, steps: int) -> tuple[float, ...]: + steps = max(1, steps) + return tuple(start_m + (end_m - start_m) * index / steps for index in range(steps + 1)) + + +def data_scene_forward_m(relative_forward_m: float) -> float: + return EGO_FORWARD_M + relative_forward_m + + +def scene_data_relative_forward_m(forward_m: float) -> float: + return forward_m - EGO_FORWARD_M + + +def lane_centerline( + offset: float, + steering: float, + lane_width_m: float, + start_m: float, + end_m: float, + steps: int, + height_m: float = 0.0, +) -> tuple[Vec3, ...]: + return tuple( + Vec3( + road_world_x(offset, forward_m, steering, lane_width_m), + forward_m, + height_m, + ) + for forward_m in sample_range(start_m, end_m, steps) + ) + + +def strip_between_offsets( + left_offset: float, + right_offset: float, + steering: float, + lane_width_m: float, + start_m: float, + end_m: float, + steps: int, + color: Color, + height_m: float = 0.0, +) -> MeshStrip: + return MeshStrip( + left=lane_centerline(left_offset, steering, lane_width_m, start_m, end_m, steps, height_m), + right=lane_centerline(right_offset, steering, lane_width_m, start_m, end_m, steps, height_m), + color=color, + ) + + +def model_line_lateral_at_forward( + points: tuple[ModelPathPoint, ...], + relative_forward_m: float, + lateral_shift_m: float = 0.0, +) -> float | None: + if not points or relative_forward_m < 0.0: + return None + previous = points[0] + if relative_forward_m <= previous.forward_m: + return previous.lateral_m + lateral_shift_m + for point in points[1:]: + if relative_forward_m <= point.forward_m: + span = max(0.001, point.forward_m - previous.forward_m) + amount = clamp((relative_forward_m - previous.forward_m) / span, 0.0, 1.0) + return previous.lateral_m + (point.lateral_m - previous.lateral_m) * amount + lateral_shift_m + previous = point + return None + + +def strip_between_model_lines( + left_points: tuple[ModelPathPoint, ...], + right_points: tuple[ModelPathPoint, ...], + left_lateral_shift_m: float, + right_lateral_shift_m: float, + start_m: float, + end_m: float, + steps: int, + color: Color, + height_m: float, + extend_before_model: bool = False, +) -> MeshStrip | None: + if len(left_points) < 2 or len(right_points) < 2: + return None + + relative_start_m = max(0.0, scene_data_relative_forward_m(start_m)) + if not extend_before_model: + relative_start_m = max(relative_start_m, left_points[0].forward_m, right_points[0].forward_m) + relative_end_m = min( + scene_data_relative_forward_m(end_m), + left_points[-1].forward_m, + right_points[-1].forward_m, + ) + scene_start_m = start_m if extend_before_model else data_scene_forward_m(relative_start_m) + scene_end_m = min(end_m, data_scene_forward_m(relative_end_m)) + if scene_end_m <= scene_start_m + 1.0: + return None + + left: list[Vec3] = [] + right: list[Vec3] = [] + for forward_m in sample_range(scene_start_m, scene_end_m, steps): + relative_forward_m = scene_data_relative_forward_m(forward_m) + left_lateral = ( + left_points[0].lateral_m + left_lateral_shift_m + if extend_before_model and relative_forward_m < left_points[0].forward_m + else model_line_lateral_at_forward(left_points, relative_forward_m, left_lateral_shift_m) + ) + right_lateral = ( + right_points[0].lateral_m + right_lateral_shift_m + if extend_before_model and relative_forward_m < right_points[0].forward_m + else model_line_lateral_at_forward(right_points, relative_forward_m, right_lateral_shift_m) + ) + if left_lateral is None or right_lateral is None: + continue + if left_lateral <= right_lateral: + left.append(Vec3(left_lateral, forward_m, height_m)) + right.append(Vec3(right_lateral, forward_m, height_m)) + else: + left.append(Vec3(right_lateral, forward_m, height_m)) + right.append(Vec3(left_lateral, forward_m, height_m)) + + if len(left) < 2 or len(right) < 2: + return None + return MeshStrip(tuple(left), tuple(right), color) + + +def marking_near_offset(markings: tuple[LaneMarking, ...], offset: float) -> LaneMarking | None: + candidates = [marking for marking in markings if marking.visible] + if not candidates: + return None + marking = min(candidates, key=lambda candidate: abs(candidate.offset - offset)) + return marking if abs(marking.offset - offset) <= 0.30 else None + + +def lane_floor_strip( + state: ClusterUiState, + lane_center_offset: float, + color: Color, + lane_width_m: float, + road_start_m: float, + road_end_m: float, + road_steps: int, + route_mode: bool, + height_m: float, +) -> MeshStrip | None: + left_marking = marking_near_offset(state.lanes, lane_center_offset - 0.5) + right_marking = marking_near_offset(state.lanes, lane_center_offset + 0.5) + if left_marking is not None and right_marking is not None: + model_strip = strip_between_model_lines( + left_marking.model_points, + right_marking.model_points, + left_marking.model_lateral_shift_m, + right_marking.model_lateral_shift_m, + road_start_m, + road_end_m, + road_steps, + color, + height_m, + extend_before_model=True, + ) + if model_strip is not None: + return model_strip + + if route_mode: + return None + return strip_between_offsets( + lane_center_offset - 0.5, + lane_center_offset + 0.5, + state.steering, + lane_width_m, + road_start_m, + road_end_m, + road_steps, + color, + height_m, + ) + + +def strip_from_centerline(points: tuple[Vec3, ...], width_m: float, color: Color) -> MeshStrip: + if len(points) < 2: + return MeshStrip(points, points, color) + + left: list[Vec3] = [] + right: list[Vec3] = [] + half_width = width_m * 0.5 + for index, point in enumerate(points): + previous_point = points[max(0, index - 1)] + next_point = points[min(len(points) - 1, index + 1)] + tangent_x, tangent_y = normalize2( + next_point.x - previous_point.x, + next_point.y - previous_point.y, + ) + right_x = tangent_y + right_y = -tangent_x + left.append(Vec3(point.x - right_x * half_width, point.y - right_y * half_width, point.z)) + right.append(Vec3(point.x + right_x * half_width, point.y + right_y * half_width, point.z)) + return MeshStrip(tuple(left), tuple(right), color) + + +def model_line_centerline( + model_points: tuple[ModelPathPoint, ...], + start_m: float, + end_m: float, + height_m: float, + lateral_shift_m: float = 0.0, +) -> tuple[Vec3, ...]: + visible_points: list[ModelPathPoint] = [] + for point in model_points: + forward_m = data_scene_forward_m(point.forward_m) + if start_m <= forward_m <= end_m: + visible_points.append(point) + return tuple( + Vec3(point.lateral_m + lateral_shift_m, data_scene_forward_m(point.forward_m), height_m) + for point in visible_points + ) + + +def extend_centerline_rearward_to_first_point( + centerline: tuple[Vec3, ...], + start_m: float, + height_m: float, +) -> tuple[Vec3, ...]: + if len(centerline) < 2 or start_m >= centerline[0].y - 0.10: + return centerline + + first_point = centerline[0] + extension_end_m = first_point.y + extension_length_m = extension_end_m - start_m + rear_points = [Vec3(first_point.x, start_m, height_m)] + transition_gap_m = min(1.0, extension_length_m * 0.25) + transition_m = extension_end_m - transition_gap_m + if transition_m > start_m + 0.10: + rear_points.append(Vec3(first_point.x, transition_m, height_m)) + return (*rear_points, *centerline) + + +def extend_model_centerline_rearward( + centerline: tuple[Vec3, ...], + start_m: float, +) -> tuple[Vec3, ...]: + return extend_centerline_rearward_to_first_point( + centerline, + start_m, + 0.0, + ) + + +def append_unique_point(points: list[Vec3], point: Vec3) -> None: + if not points or points[-1] != point: + points.append(point) + + +def lerp_vec3(start: Vec3, end: Vec3, amount: float) -> Vec3: + return Vec3( + start.x + (end.x - start.x) * amount, + start.y + (end.y - start.y) * amount, + start.z + (end.z - start.z) * amount, + ) + + +def dashed_centerline_segments( + centerline: tuple[Vec3, ...], + dash_m: float = 5.2, + gap_m: float = 4.2, +) -> tuple[tuple[Vec3, ...], ...]: + if len(centerline) < 2: + return () + + cycle_m = dash_m + gap_m + segments: list[tuple[Vec3, ...]] = [] + current_dash: list[Vec3] = [] + distance_m = 0.0 + previous = centerline[0] + eps = 0.0001 + + for current in centerline[1:]: + segment_dx = current.x - previous.x + segment_dy = current.y - previous.y + segment_dz = current.z - previous.z + segment_m = math.sqrt(segment_dx * segment_dx + segment_dy * segment_dy + segment_dz * segment_dz) + if segment_m <= 0.001: + previous = current + continue + + segment_start_m = distance_m + segment_end_m = distance_m + segment_m + cursor_m = segment_start_m + cursor_point = previous + + while cursor_m < segment_end_m - eps: + cycle_offset_m = cursor_m % cycle_m + if cycle_offset_m < eps or abs(cycle_offset_m - cycle_m) < eps: + cycle_offset_m = 0.0 + elif abs(cycle_offset_m - dash_m) < eps: + cycle_offset_m = dash_m + in_dash = cycle_offset_m < dash_m + boundary_m = cursor_m + (dash_m - cycle_offset_m if in_dash else cycle_m - cycle_offset_m) + next_m = min(segment_end_m, boundary_m) + if next_m <= cursor_m + eps: + next_m = segment_end_m + + next_point = lerp_vec3(previous, current, (next_m - segment_start_m) / segment_m) + if in_dash: + append_unique_point(current_dash, cursor_point) + append_unique_point(current_dash, next_point) + if boundary_m <= next_m + eps and len(current_dash) >= 2: + segments.append(tuple(current_dash)) + current_dash = [] + elif len(current_dash) >= 2: + segments.append(tuple(current_dash)) + current_dash = [] + + cursor_m = next_m + cursor_point = next_point + + distance_m = segment_end_m + previous = current + + if len(current_dash) >= 2: + segments.append(tuple(current_dash)) + return tuple(segments) + + +def lane_marking_segments_for_marking( + marking: LaneMarking, + steering: float, + lane_width_m: float, + start_m: float, + end_m: float, + extend_before_model: bool = False, +) -> tuple[tuple[Vec3, ...], ...]: + if marking.model_points: + centerline = model_line_centerline( + marking.model_points, + start_m, + end_m, + 0.0, + marking.model_lateral_shift_m, + ) + if len(centerline) < 2: + if not extend_before_model: + return () + else: + if extend_before_model: + centerline = extend_model_centerline_rearward( + centerline, + start_m, + ) + if marking.style == "solid": + return (centerline,) + return dashed_centerline_segments(centerline) + + if marking.style == "solid": + return (lane_centerline(marking.offset, steering, lane_width_m, start_m, end_m, STATIC_LINE_STEPS, 0.0),) + + segments: list[tuple[Vec3, ...]] = [] + dash_m = 5.2 + gap_m = 4.2 + cursor = start_m + while cursor < end_m: + dash_end = min(cursor + dash_m, end_m) + segment = lane_centerline(marking.offset, steering, lane_width_m, cursor, dash_end, 6, 0.0) + if len(segment) >= 2: + segments.append(segment) + cursor += dash_m + gap_m + return tuple(segments) + + +def strips_from_centerline_specs( + points: tuple[Vec3, ...], + specs: tuple[tuple[int, Color, float], ...], +) -> tuple[MeshStrip, ...]: + if len(points) < 2: + return () + + half_widths = tuple(max(0.08, width_px * 0.022) * 0.5 for width_px, _, _ in specs) + left_groups: list[list[Vec3]] = [[] for _ in specs] + right_groups: list[list[Vec3]] = [[] for _ in specs] + + for index, point in enumerate(points): + previous_point = points[max(0, index - 1)] + next_point = points[min(len(points) - 1, index + 1)] + tangent_x, tangent_y = normalize2( + next_point.x - previous_point.x, + next_point.y - previous_point.y, + ) + right_x = tangent_y + right_y = -tangent_x + for spec_index, half_width in enumerate(half_widths): + height_m = specs[spec_index][2] + left_groups[spec_index].append( + Vec3(point.x - right_x * half_width, point.y - right_y * half_width, height_m) + ) + right_groups[spec_index].append( + Vec3(point.x + right_x * half_width, point.y + right_y * half_width, height_m) + ) + + return tuple( + MeshStrip(tuple(left_groups[index]), tuple(right_groups[index]), color) + for index, (_, color, _) in enumerate(specs) + ) + + +def strips_from_centerline_width_specs( + points: tuple[Vec3, ...], + specs: tuple[tuple[float, Color, float], ...], +) -> tuple[MeshStrip, ...]: + if len(points) < 2: + return () + + half_widths = tuple(max(0.001, width_m) * 0.5 for width_m, _, _ in specs) + left_groups: list[list[Vec3]] = [[] for _ in specs] + right_groups: list[list[Vec3]] = [[] for _ in specs] + + for index, point in enumerate(points): + previous_point = points[max(0, index - 1)] + next_point = points[min(len(points) - 1, index + 1)] + tangent_x, tangent_y = normalize2( + next_point.x - previous_point.x, + next_point.y - previous_point.y, + ) + right_x = tangent_y + right_y = -tangent_x + for spec_index, half_width in enumerate(half_widths): + height_m = specs[spec_index][2] + left_groups[spec_index].append( + Vec3(point.x - right_x * half_width, point.y - right_y * half_width, height_m) + ) + right_groups[spec_index].append( + Vec3(point.x + right_x * half_width, point.y + right_y * half_width, height_m) + ) + + return tuple( + MeshStrip(tuple(left_groups[index]), tuple(right_groups[index]), color) + for index, (_, color, _) in enumerate(specs) + ) + + +def lane_marking_strip_groups_from_segments( + segments: tuple[tuple[Vec3, ...], ...], + specs: tuple[tuple[int, Color, float], ...], +) -> tuple[tuple[MeshStrip, ...], ...]: + if not segments or not specs: + return tuple(() for _ in specs) + + grouped: list[list[MeshStrip]] = [[] for _ in specs] + for segment in segments: + for spec_index, strip in enumerate(strips_from_centerline_specs(segment, specs)): + grouped[spec_index].append(strip) + return tuple(tuple(group) for group in grouped) + + +def cached_model_line_strip_groups( + model_points: tuple[ModelPathPoint, ...], + start_m: float, + end_m: float, + specs: tuple[tuple[int, Color, float], ...], + style: str, + extend_before_model: bool, +) -> ModelLineStripGroups: + key = ( + id(model_points), + start_m, + end_m, + style, + extend_before_model, + specs, + ) + cached = _MODEL_LINE_STRIP_GROUP_CACHE.get(key) + if cached is not None and cached[0] is model_points: + _MODEL_LINE_STRIP_GROUP_CACHE.move_to_end(key) + return cached[1] + if cached is not None: + del _MODEL_LINE_STRIP_GROUP_CACHE[key] + + centerline = model_line_centerline(model_points, start_m, end_m, 0.0) + if len(centerline) < 2: + groups: ModelLineStripGroups = None if extend_before_model else tuple(() for _ in specs) + else: + if extend_before_model: + centerline = extend_model_centerline_rearward(centerline, start_m) + segments = (centerline,) if style == "solid" else dashed_centerline_segments(centerline) + groups = lane_marking_strip_groups_from_segments(segments, specs) + + _MODEL_LINE_STRIP_GROUP_CACHE[key] = (model_points, groups) + while len(_MODEL_LINE_STRIP_GROUP_CACHE) > MODEL_LINE_STRIP_GROUP_CACHE_LIMIT: + _MODEL_LINE_STRIP_GROUP_CACHE.popitem(last=False) + return groups + + +def translate_mesh_strip_groups_x( + groups: tuple[tuple[MeshStrip, ...], ...], + shift_x_m: float, +) -> tuple[tuple[MeshStrip, ...], ...]: + if abs(shift_x_m) <= 0.0001: + return groups + return tuple( + tuple(translate_mesh_strip_x(strip, shift_x_m) for strip in group) + for group in groups + ) + + +def model_line_strip_groups( + model_points: tuple[ModelPathPoint, ...], + lateral_shift_m: float, + start_m: float, + end_m: float, + specs: tuple[tuple[int, Color, float], ...], + style: str, + extend_before_model: bool, +) -> ModelLineStripGroups: + groups = cached_model_line_strip_groups( + model_points, + start_m, + end_m, + specs, + style, + extend_before_model, + ) + if groups is None: + return None + return translate_mesh_strip_groups_x(groups, lateral_shift_m) + + +def planned_path_lane_offset(state: ClusterUiState, forward_m: float) -> float: + start_offset = 0.0 + target_offset = 0.0 + if state.lane_change is not None: + start_offset = clamp(state.ego_lane_offset, -1.25, 1.25) + target_offset = state.highlight_lane_offset if state.highlight_lane_offset is not None else 0.0 + + if state.lane_change is None: + return 0.0 + + blend = smoothstep( + (forward_m - PATH_LANE_CHANGE_CURVE_START_M) + / (PATH_LANE_CHANGE_CURVE_END_M - PATH_LANE_CHANGE_CURVE_START_M) + ) + return start_offset + (target_offset - start_offset) * blend + + +def planned_path_end_m(state: ClusterUiState, blockers: tuple[PathBlocker, ...]) -> float: + end_m = PATH_END_M + for blocker in blockers: + if blocker.forward_m <= PATH_START_M: + continue + path_offset = planned_path_lane_offset(state, blocker.forward_m) + if abs(path_offset - blocker.offset) > PATH_BLOCKER_LANE_TOLERANCE: + continue + stop_m = blocker.forward_m - blocker.length_m * 0.5 - PATH_BLOCKER_CLEARANCE_M + end_m = min(end_m, max(PATH_START_M + 0.6, stop_m)) + return end_m + + +def model_path_lateral_at_forward(state: ClusterUiState, relative_forward_m: float) -> float | None: + if not state.model_path or relative_forward_m < 0.0: + return None + + previous = state.model_path[0] + if relative_forward_m <= previous.forward_m: + return previous.lateral_m + + for point in state.model_path[1:]: + if relative_forward_m <= point.forward_m: + span = max(0.001, point.forward_m - previous.forward_m) + amount = clamp((relative_forward_m - previous.forward_m) / span, 0.0, 1.0) + return previous.lateral_m + (point.lateral_m - previous.lateral_m) * amount + previous = point + return None + + +def model_path_world_x(state: ClusterUiState, lane_width_m: float, forward_m: float) -> float | None: + lateral_m = model_path_lateral_at_forward(state, scene_data_relative_forward_m(forward_m)) + if lateral_m is None: + return None + ego_offset = clamp(state.ego_lane_offset, -1.25, 1.25) + ego_x_m = road_world_x(ego_offset, EGO_FORWARD_M, state.steering, lane_width_m) + return ego_x_m + lateral_m + + +def model_path_end_m(state: ClusterUiState, lane_width_m: float, blockers: tuple[PathBlocker, ...]) -> float | None: + if len(state.model_path) < 2: + return None + last_forward_m = state.model_path[-1].forward_m + end_m = min(PATH_END_M, data_scene_forward_m(last_forward_m)) + if end_m <= PATH_START_M + 0.6: + return None + + for blocker in blockers: + if blocker.forward_m <= PATH_START_M: + continue + path_x_m = model_path_world_x(state, lane_width_m, blocker.forward_m) + if path_x_m is None: + continue + blocker_x_m = road_world_x(blocker.offset, blocker.forward_m, state.steering, lane_width_m) + if abs(path_x_m - blocker_x_m) > PATH_BLOCKER_LANE_TOLERANCE * lane_width_m: + continue + stop_m = blocker.forward_m - blocker.length_m * 0.5 - PATH_BLOCKER_CLEARANCE_M + end_m = min(end_m, max(PATH_START_M + 0.6, stop_m)) + return end_m + + +def model_path_centerline( + state: ClusterUiState, + lane_width_m: float, + blockers: tuple[PathBlocker, ...], +) -> tuple[Vec3, ...]: + end_m = model_path_end_m(state, lane_width_m, blockers) + if end_m is None: + return () + relative_start_m = max(0.0, scene_data_relative_forward_m(PATH_START_M)) + relative_end_m = max(relative_start_m, scene_data_relative_forward_m(end_m)) + model_points = tuple( + point + for point in state.model_path + if relative_start_m <= point.forward_m <= relative_end_m + ) + if len(model_points) < 2: + steps = max(4, int(PLANNED_PATH_FALLBACK_STEPS * (end_m - PATH_START_M) / (PATH_END_M - PATH_START_M))) + sample_points = sample_range(PATH_START_M, end_m, steps) + points: list[Vec3] = [] + for forward_m in sample_points: + x_m = model_path_world_x(state, lane_width_m, forward_m) + if x_m is not None: + points.append(Vec3(x_m, forward_m, PATH_HEIGHT_M)) + return tuple(points) if len(points) >= 2 else () + else: + ego_offset = clamp(state.ego_lane_offset, -1.25, 1.25) + ego_x_m = road_world_x(ego_offset, EGO_FORWARD_M, state.steering, lane_width_m) + points = [ + Vec3(ego_x_m + point.lateral_m, data_scene_forward_m(point.forward_m), PATH_HEIGHT_M) + for point in model_points + ] + return tuple(points) if len(points) >= 2 else () + + +def planned_path_strips( + state: ClusterUiState, + lane_width_m: float, + blockers: tuple[PathBlocker, ...], + theme: ClusterTheme = LIGHT_CLUSTER_THEME, +) -> tuple[MeshStrip, ...]: + points = model_path_centerline(state, lane_width_m, blockers) + model_driven = bool(points) + if not points: + end_m = planned_path_end_m(state, blockers) + steps = max(4, int(PLANNED_PATH_FALLBACK_STEPS * (end_m - PATH_START_M) / (PATH_END_M - PATH_START_M))) + centerline: list[Vec3] = [] + for forward_m in sample_range(PATH_START_M, end_m, steps): + lane_offset = planned_path_lane_offset(state, forward_m) + centerline.append( + Vec3( + road_world_x(lane_offset, forward_m, state.steering, lane_width_m), + forward_m, + PATH_HEIGHT_M, + ) + ) + points = tuple(centerline) + path_specs: list[tuple[float, Color, float]] = [(0.86, theme.path_shadow, PATH_SHADOW_LAYER_M)] + if model_driven: + uncertainty_width = model_path_uncertainty_width(state) + if uncertainty_width is not None: + path_specs.append((uncertainty_width, theme.path_uncertainty, PATH_UNCERTAINTY_LAYER_M)) + path_specs.append((0.46, theme.path_body, PATH_BODY_LAYER_M)) + path_specs.append((0.16, theme.path_highlight, PATH_HIGHLIGHT_LAYER_M)) + strips = list(strips_from_centerline_width_specs(points, tuple(path_specs))) + if model_driven: + highlight_strip = strips.pop() if strips else None + strips.extend(model_path_metric_strips(state, points)) + if highlight_strip is not None: + strips.append(highlight_strip) + return tuple(strips) + + +def model_path_uncertainty_width(state: ClusterUiState) -> float | None: + std_values = [point.lateral_std_m for point in state.model_path if point.lateral_std_m is not None] + if not std_values: + return None + average_std = sum(std_values[:16]) / min(len(std_values), 16) + return clamp(0.68 + average_std * 0.42, 0.72, 1.85) + + +def model_path_metric_strips(state: ClusterUiState, points: tuple[Vec3, ...]) -> tuple[MeshStrip, ...]: + if len(state.model_path) < 2 or len(points) < 2: + return () + strips: list[MeshStrip] = [] + metric_count = min(len(state.model_path), len(points)) + segment_count = min(metric_count - 1, MODEL_PATH_METRIC_SEGMENT_LIMIT) + if segment_count <= 0: + return () + source_segment_count = metric_count - 1 + for segment_index in range(segment_count): + index = round(segment_index * source_segment_count / max(1, segment_count - 1)) + index = min(index, len(points) - 2) + model_index = min( + len(state.model_path) - 1, + round(index * (len(state.model_path) - 1) / max(1, metric_count - 1)), + ) + accel = state.model_path[model_index].accel_mps2 + if accel is None: + continue + color = path_metric_color(accel) + segment = ( + Vec3(points[index].x, points[index].y, PATH_METRIC_LAYER_M), + Vec3(points[index + 1].x, points[index + 1].y, PATH_METRIC_LAYER_M), + ) + strips.append(strip_from_centerline(segment, 0.24, color)) + return tuple(strips) + + +def path_metric_color(accel_mps2: float) -> Color: + if accel_mps2 <= -2.4: + return RED[0], RED[1], RED[2], 210 + if accel_mps2 <= -0.7: + return AMBER[0], AMBER[1], AMBER[2], 190 + if accel_mps2 >= 0.7: + return 18, 184, 108, 170 + return 70, 152, 255, 145 + + +def radar_point_markers( + state: ClusterUiState, + lane_width_m: float, + vehicle_points: tuple[RadarPoint, ...] = (), + min_forward_m: float = ROAD_NEAR_M, + max_forward_m: float = ROAD_FAR_M + 30.0, +) -> tuple[RadarPointMarker, ...]: + markers: list[RadarPointMarker] = [] + for point in state.radar_points: + if any(radar_points_same_vehicle(point, vehicle_point) for vehicle_point in vehicle_points): + continue + forward_m = data_scene_forward_m(point.longitudinal_m) + if forward_m < min_forward_m or forward_m > max_forward_m: + continue + color = radar_point_color(point) + absolute_speed_kph = radar_point_absolute_speed_kph(point, state) + markers.append( + RadarPointMarker( + center=Vec3( + clamp(point.lateral_m, -lane_width_m * 3.0, lane_width_m * 3.0), + forward_m, + 0.20, + ), + radius_m=radar_point_radius(point), + color=color, + label=point.label, + longitudinal_m=point.longitudinal_m, + lateral_m=point.lateral_m, + relative_speed_mps=point.relative_speed_mps, + absolute_speed_kph=absolute_speed_kph, + lateral_speed_mps=point.lateral_speed_mps, + relative_accel_mps2=point.relative_accel_mps2, + probability=point.probability, + valid=point.valid, + in_my_lane=point.in_my_lane, + ) + ) + return tuple(markers) + + +def radar_vehicle_points(state: ClusterUiState, lane_width_m: float) -> tuple[RadarPoint, ...]: + selected: list[RadarPoint] = [] + candidates = sorted( + ( + point + for point in state.radar_points + if radar_point_is_vehicle_candidate(point, state, lane_width_m) + ), + key=lambda point: ( + 0 if radar_point_matches_detected_vehicle(point, state) else 1, + point.longitudinal_m, + abs(point.lateral_m), + ), + ) + for point in candidates: + if any(radar_points_same_vehicle(point, existing) for existing in selected): + continue + selected.append(point) + selected.sort(key=lambda point: point.longitudinal_m) + return tuple(selected) + + +def detected_vehicles_with_merged_radar( + vehicles: tuple[DetectedVehicle, ...], + radar_points: tuple[RadarPoint, ...], + state: ClusterUiState, +) -> tuple[DetectedVehicle, ...]: + if not vehicles or not radar_points: + return vehicles + merged: list[DetectedVehicle] = [] + used_radar_labels: set[str] = set() + for vehicle in vehicles: + point = radar_merge_point_for_vehicle( + vehicle, + tuple(point for point in radar_points if point.label not in used_radar_labels), + state, + ) + if point is None: + merged.append(vehicle) + continue + used_radar_labels.add(point.label) + absolute_speed_kph = radar_point_absolute_speed_kph(point, state) + merged.append( + replace( + vehicle, + source=f"{vehicle.source}{RADAR_MERGED_SOURCE_TAG}{point.label}", + relative_speed_mps=vehicle.relative_speed_mps + if vehicle.relative_speed_mps is not None + else point.relative_speed_mps, + absolute_speed_kph=vehicle.absolute_speed_kph + if vehicle.absolute_speed_kph is not None + else absolute_speed_kph, + acceleration_mps2=vehicle.acceleration_mps2 + if vehicle.acceleration_mps2 is not None + else point.relative_accel_mps2, + ttc_s=vehicle.ttc_s + if vehicle.ttc_s is not None + else ttc_from_relative_speed(vehicle.longitudinal_m, point.relative_speed_mps), + ) + ) + return tuple(merged) + + +def radar_merge_point_for_vehicle( + vehicle: DetectedVehicle, + radar_points: tuple[RadarPoint, ...], + state: ClusterUiState, +) -> RadarPoint | None: + if not detected_vehicle_needs_radar_merge(vehicle): + return None + candidates = tuple( + point + for point in radar_points + if radar_point_can_fill_vehicle_speed(point, state) and radar_point_close_to_vehicle(point, vehicle) + ) + if not candidates: + return None + return min( + candidates, + key=lambda point: ( + abs(point.longitudinal_m - vehicle.longitudinal_m), + abs(point.lateral_m - vehicle.lateral_m), + ), + ) + + +def detected_vehicle_needs_radar_merge(vehicle: DetectedVehicle) -> bool: + return ( + vehicle.label in CORNER_RADAR_LABELS + and vehicle.absolute_speed_kph is None + and (vehicle.source == "carState" or vehicle.source.startswith("CAN 0x")) + ) + + +def radar_point_can_fill_vehicle_speed(point: RadarPoint, state: ClusterUiState) -> bool: + return radar_point_absolute_speed_kph(point, state) is not None or point.relative_speed_mps is not None + + +def radar_point_close_to_vehicle(point: RadarPoint, vehicle: DetectedVehicle) -> bool: + longitudinal_tolerance = max( + RADAR_MERGE_LONGITUDINAL_MIN_M, + min(RADAR_MERGE_LONGITUDINAL_MAX_M, vehicle.longitudinal_m * 0.08), + ) + return ( + abs(point.longitudinal_m - vehicle.longitudinal_m) <= longitudinal_tolerance + and abs(point.lateral_m - vehicle.lateral_m) <= RADAR_MERGE_LATERAL_M + ) + + +def merged_radar_point_label(vehicle: DetectedVehicle) -> str | None: + if RADAR_MERGED_SOURCE_TAG not in vehicle.source: + return None + return vehicle.source.rsplit(RADAR_MERGED_SOURCE_TAG, 1)[1] or None + + +def ttc_from_relative_speed(longitudinal_m: float, relative_speed_mps: float | None) -> float | None: + if relative_speed_mps is None or relative_speed_mps >= -0.15 or longitudinal_m <= 0.0: + return None + return min(99.9, longitudinal_m / max(0.15, -relative_speed_mps)) + + +def radar_points_same_vehicle(left: RadarPoint, right: RadarPoint) -> bool: + return ( + abs(left.longitudinal_m - right.longitudinal_m) <= RADAR_VEHICLE_DEDUP_LONGITUDINAL_M + and abs(left.lateral_m - right.lateral_m) <= RADAR_VEHICLE_DEDUP_LATERAL_M + ) + + +def radar_vehicle_box(point: RadarPoint, state: ClusterUiState, lane_width_m: float) -> VehicleBox: + confidence = radar_vehicle_confidence(point) + alpha = int(92 + 163 * confidence) + body_color = GREEN + forward_m = data_scene_forward_m(point.longitudinal_m) + center_x_m = clamp(point.lateral_m, -lane_width_m * 3.0, lane_width_m * 3.0) + return VehicleBox( + center=Vec3(center_x_m, forward_m, VEHICLE_HEIGHT_M * 0.5), + right_x=1.0, + right_y=0.0, + forward_x=0.0, + forward_y=1.0, + width_m=VEHICLE_WIDTH_M, + length_m=VEHICLE_LENGTH_M, + height_m=VEHICLE_HEIGHT_M, + body_color=rgba(body_color, alpha), + side_color=rgba(darken(body_color, 0.20), alpha), + rear_color=rgba(darken(body_color, 0.28), alpha), + top_highlight=rgba(lighten(body_color, 0.16), min(235, alpha)), + outline_color=rgba(darken(body_color, 0.42), min(235, alpha)), + confidence=confidence, + label=point.label, + source="radarPoint", + relative_speed_mps=point.relative_speed_mps, + absolute_speed_kph=radar_point_absolute_speed_kph(point, state), + acceleration_mps2=point.relative_accel_mps2, + annotate=False, + ) + + +def radar_point_is_vehicle_candidate(point: RadarPoint, state: ClusterUiState, lane_width_m: float) -> bool: + if not 2.5 <= point.longitudinal_m <= RADAR_VEHICLE_MAX_DISTANCE_M: + return False + if abs(point.lateral_m) > lane_width_m * RADAR_VEHICLE_MAX_LATERAL_LANES: + return False + if point.valid_count is not None and point.valid_count < RADAR_VEHICLE_MIN_VALID_COUNT: + return False + if point.probability is not None and point.probability < 0.20 and not point.in_my_lane: + return False + if radar_point_has_vehicle_estimate(point, state, lane_width_m): + return True + if radar_point_is_stationary_object(point, state): + return False + if radar_point_is_side_static_reflection(point, state, lane_width_m): + return False + if radar_point_matches_static_road_edge(point, state, lane_width_m): + return False + if radar_point_is_moving_raw_vehicle(point, state, lane_width_m): + return True + return False + + +def radar_point_has_vehicle_estimate(point: RadarPoint, state: ClusterUiState, lane_width_m: float) -> bool: + if radar_point_matches_detected_vehicle(point, state): + return True + if point.in_my_lane is not None and point.in_my_lane > 0: + return abs(point.lateral_m) <= lane_width_m * RADAR_PROBABLE_VEHICLE_LATERAL_LANES + if point.probability is not None and point.probability >= RADAR_VEHICLE_MIN_PROBABILITY: + return abs(point.lateral_m) <= lane_width_m * RADAR_PROBABLE_VEHICLE_LATERAL_LANES + return False + + +def radar_point_is_moving_raw_vehicle(point: RadarPoint, state: ClusterUiState, lane_width_m: float) -> bool: + absolute_speed_kph = radar_point_absolute_speed_kph(point, state) + if absolute_speed_kph is None or absolute_speed_kph < RADAR_RAW_MOVING_SPEED_KPH: + return False + valid_count = point.valid_count if point.valid_count is not None else RADAR_RAW_CENTER_MIN_VALID_COUNT + lateral_lanes = abs(point.lateral_m) / max(0.1, lane_width_m) + if lateral_lanes <= RADAR_CENTER_RAW_LATERAL_LANES: + return valid_count >= RADAR_RAW_CENTER_MIN_VALID_COUNT + if lateral_lanes <= RADAR_ADJACENT_RAW_LATERAL_LANES: + return valid_count >= RADAR_RAW_ADJACENT_MIN_VALID_COUNT + if lateral_lanes <= RADAR_OUTER_RAW_LATERAL_LANES: + return valid_count >= RADAR_RAW_OUTER_MIN_VALID_COUNT + return False + + +def radar_point_matches_detected_vehicle(point: RadarPoint, state: ClusterUiState) -> bool: + for vehicle in state.detected_vehicles: + longitudinal_tolerance = max(4.0, min(8.0, point.longitudinal_m * 0.08)) + if abs(point.longitudinal_m - vehicle.longitudinal_m) > longitudinal_tolerance: + continue + if abs(point.lateral_m - vehicle.lateral_m) <= 1.35: + return True + return False + + +def radar_point_absolute_speed_kph(point: RadarPoint, state: ClusterUiState) -> float | None: + if point.absolute_speed_kph is not None: + return point.absolute_speed_kph + if point.relative_speed_mps is None: + return None + return max(0.0, state.speed_kph + point.relative_speed_mps * 3.6) + + +def radar_point_is_stationary_object(point: RadarPoint, state: ClusterUiState) -> bool: + absolute_speed_kph = radar_point_absolute_speed_kph(point, state) + return absolute_speed_kph is not None and absolute_speed_kph <= RADAR_STATIC_OBJECT_SPEED_KPH + + +def radar_point_is_side_static_reflection(point: RadarPoint, state: ClusterUiState, lane_width_m: float) -> bool: + if state.speed_kph < RADAR_EGO_MOVING_SPEED_KPH: + return False + if point.in_my_lane is not None and point.in_my_lane > 0: + return False + if point.probability is not None and point.probability >= RADAR_VEHICLE_MIN_PROBABILITY: + return False + if abs(point.lateral_m) <= lane_width_m * RADAR_SIDE_STATIC_LATERAL_LANES: + return False + if abs(point.relative_speed_mps or 0.0) > RADAR_STATIC_OBJECT_SPEED_MPS: + return False + lateral_lanes = abs(point.lateral_m) / max(0.1, lane_width_m) + valid_count = point.valid_count if point.valid_count is not None else 0 + if lateral_lanes <= RADAR_ADJACENT_RAW_LATERAL_LANES and valid_count >= RADAR_RAW_ADJACENT_MIN_VALID_COUNT: + return False + if lateral_lanes <= RADAR_OUTER_RAW_LATERAL_LANES and valid_count >= RADAR_RAW_OUTER_MIN_VALID_COUNT: + return False + return True + + +def radar_point_matches_static_road_edge(point: RadarPoint, state: ClusterUiState, lane_width_m: float) -> bool: + edge_distance = radar_point_road_edge_distance_m(point, state, lane_width_m) + if edge_distance is None: + return False + if edge_distance <= RADAR_ROAD_EDGE_HARD_CLEARANCE_M: + return True + rel_speed = abs(point.relative_speed_mps or 0.0) + absolute_speed_kph = radar_point_absolute_speed_kph(point, state) + absolute_static = absolute_speed_kph is not None and absolute_speed_kph <= RADAR_STATIC_OBJECT_SPEED_KPH + relative_static = rel_speed <= RADAR_STATIC_OBJECT_SPEED_MPS + return edge_distance <= RADAR_ROAD_EDGE_STATIONARY_CLEARANCE_M and (absolute_static or relative_static) + + + +def radar_point_road_edge_distance_m(point: RadarPoint, state: ClusterUiState, lane_width_m: float) -> float | None: + distances: list[float] = [] + for edge_points, lateral_shift_m in ( + (state.left_road_edge_points, state.left_road_edge_lateral_shift_m), + (state.right_road_edge_points, state.right_road_edge_lateral_shift_m), + ): + edge_lateral = model_line_lateral_at(edge_points, point.longitudinal_m, lateral_shift_m) + if edge_lateral is not None: + distances.append(abs(point.lateral_m - edge_lateral)) + for edge_offset in (state.left_road_edge_offset, state.right_road_edge_offset): + if edge_offset is not None: + distances.append(abs(point.lateral_m - edge_offset * lane_width_m)) + return min(distances) if distances else None + + +def model_line_lateral_at( + points: tuple[ModelPathPoint, ...], + forward_m: float, + lateral_shift_m: float = 0.0, +) -> float | None: + if not points: + return None + ordered = points + if forward_m <= ordered[0].forward_m: + return ordered[0].lateral_m + lateral_shift_m + for left, right in zip(ordered, ordered[1:]): + if left.forward_m <= forward_m <= right.forward_m: + span = max(0.001, right.forward_m - left.forward_m) + amount = clamp((forward_m - left.forward_m) / span, 0.0, 1.0) + return left.lateral_m + (right.lateral_m - left.lateral_m) * amount + lateral_shift_m + return ordered[-1].lateral_m + lateral_shift_m + + +def radar_vehicle_confidence(point: RadarPoint) -> float: + if point.probability is not None: + return clamp(0.58 + point.probability * 0.38, 0.58, 0.96) + if point.valid_count is not None: + return clamp(0.56 + min(point.valid_count, 120) / 120.0 * 0.36, 0.56, 0.92) + return 0.72 + + +def radar_point_color(point: RadarPoint) -> Color: + if point.valid is not None and point.valid <= 0: + return 116, 126, 136, 150 + if point.longitudinal_m < 12.0 and abs(point.lateral_m) < 1.6: + return RED[0], RED[1], RED[2], 232 + if point.in_my_lane is not None and point.in_my_lane > 0: + return BLUE[0], BLUE[1], BLUE[2], 226 + if point.probability is not None and point.probability < 0.25: + return 116, 126, 136, 150 + if point.relative_speed_mps is not None and point.relative_speed_mps < -2.5: + return AMBER[0], AMBER[1], AMBER[2], 226 + return 34, 150, 255, 208 + + +def radar_point_radius(point: RadarPoint) -> float: + probability = point.probability if point.probability is not None else 0.72 + return clamp(0.105 + 0.07 * probability, 0.095, 0.19) + + +def rear_vehicle_indicators( + vehicles: tuple[DetectedVehicle, ...], + state: ClusterUiState, + lane_width_m: float, +) -> tuple[RearVehicleIndicator, ...]: + selected: dict[str, DetectedVehicle] = {} + for vehicle in vehicles: + if vehicle.label not in REAR_CORNER_RADAR_LABELS or vehicle.longitudinal_m >= -0.2: + continue + side = "left" if vehicle.label == "LR" or vehicle.lateral_m < 0.0 else "right" + existing = selected.get(side) + if existing is None or abs(vehicle.longitudinal_m) < abs(existing.longitudinal_m): + selected[side] = vehicle + + indicators: list[RearVehicleIndicator] = [] + for side in ("left", "right"): + vehicle = selected.get(side) + if vehicle is None: + continue + forward_m = data_scene_forward_m(vehicle.longitudinal_m) + anchor_forward_m = EGO_FORWARD_M + 2.3 + offset = clamp(vehicle.lateral_m / lane_width_m, -2.2, 2.2) + indicators.append( + RearVehicleIndicator( + center=Vec3( + road_world_x(offset, forward_m, state.steering, lane_width_m), + forward_m, + VEHICLE_HEIGHT_M * 0.5, + ), + anchor=Vec3( + road_world_x(offset, anchor_forward_m, state.steering, lane_width_m), + anchor_forward_m, + 0.22, + ), + label=vehicle.label, + lane_side=side, + longitudinal_m=vehicle.longitudinal_m, + lateral_m=vehicle.lateral_m, + source=vehicle.source, + ) + ) + return tuple(indicators) + + +def vehicle_box( + offset: float, + forward_m: float, + steering: float, + lane_width_m: float, + color: tuple[int, int, int], + camera_active: bool, + target_offset: float | None = None, + confidence: float = 1.0, + label: str = "", + source: str = "", + relative_speed_mps: float | None = None, + absolute_speed_kph: float | None = None, + acceleration_mps2: float | None = None, + ttc_s: float | None = None, + cut_in: bool = False, + primary: bool = False, + annotate: bool = False, +) -> VehicleBox: + confidence = clamp(confidence, 0.0, 1.0) + alpha = int(92 + 163 * confidence) + body_color = color + center_x_m = road_world_x(offset, forward_m, steering, lane_width_m) + right_x, right_y, forward_x, forward_y = vehicle_heading( + offset, + forward_m, + steering, + lane_width_m, + target_offset, + ) + width_m = VEHICLE_WIDTH_M + length_m = VEHICLE_LENGTH_M + height_m = VEHICLE_HEIGHT_M + + return VehicleBox( + center=Vec3(center_x_m, forward_m, height_m * 0.5), + right_x=right_x, + right_y=right_y, + forward_x=forward_x, + forward_y=forward_y, + width_m=width_m, + length_m=length_m, + height_m=height_m, + body_color=rgba(body_color, alpha), + side_color=rgba(darken(body_color, 0.20), alpha), + rear_color=rgba(darken(body_color, 0.28), alpha), + top_highlight=rgba(lighten(body_color, 0.16), min(235, alpha)), + outline_color=rgba(darken(body_color, 0.42), min(235, alpha)), + confidence=confidence, + label=label, + source=source, + relative_speed_mps=relative_speed_mps, + absolute_speed_kph=absolute_speed_kph, + acceleration_mps2=acceleration_mps2, + ttc_s=ttc_s, + cut_in=cut_in, + primary=primary, + annotate=annotate, + ) + + +def ego_anchor_x_m(state: ClusterUiState, lane_width_m: float) -> float: + ego_offset = clamp(state.ego_lane_offset, -1.25, 1.25) + return road_world_x(ego_offset, EGO_FORWARD_M, state.steering, lane_width_m) + + +def scene_camera(state: ClusterUiState, lane_width_m: float, anchor_x_m: float = 0.0) -> CameraSpec: + ego_x_m = ego_anchor_x_m(state, lane_width_m) - anchor_x_m + ego_y_m = EGO_FORWARD_M + + drive_camera = CameraSpec( + position=Vec3(0.0, -8.80, 5.20), + target=Vec3(0.0, 22.0, 0.18), + fovy_deg=31.0, + ) + + if not state.surround_view_active: + return drive_camera + + yaw_rad = math.radians(clamp(state.surround_yaw_deg, -SURROUND_MAX_YAW_DEG, SURROUND_MAX_YAW_DEG)) + orbit_forward_x = math.sin(yaw_rad) + orbit_forward_y = math.cos(yaw_rad) + pitch_deg = clamp(state.surround_pitch_deg, -SURROUND_MAX_PITCH_DEG, SURROUND_MAX_PITCH_DEG) + camera_height_m = SURROUND_CAMERA_HEIGHT_M + pitch_deg * 0.035 + target_forward_m = SURROUND_TARGET_FORWARD_M + pitch_deg * 0.12 + + orbit_camera = CameraSpec( + position=Vec3( + ego_x_m - orbit_forward_x * SURROUND_CAMERA_DISTANCE_M, + ego_y_m - orbit_forward_y * SURROUND_CAMERA_DISTANCE_M, + camera_height_m, + ), + target=Vec3( + ego_x_m + orbit_forward_x * target_forward_m, + ego_y_m + orbit_forward_y * target_forward_m, + SURROUND_TARGET_HEIGHT_M, + ), + fovy_deg=40.0, + ) + orbit_amount = smoothstep( + max( + abs(state.surround_yaw_deg) / SURROUND_MAX_YAW_DEG, + abs(state.surround_pitch_deg) / SURROUND_MAX_PITCH_DEG, + ) + ) + return blend_camera(drive_camera, orbit_camera, orbit_amount) + + +def blend_vec3(start: Vec3, end: Vec3, amount: float) -> Vec3: + return Vec3( + start.x + (end.x - start.x) * amount, + start.y + (end.y - start.y) * amount, + start.z + (end.z - start.z) * amount, + ) + + +def blend_camera(start: CameraSpec, end: CameraSpec, amount: float) -> CameraSpec: + amount = clamp(amount, 0.0, 1.0) + return CameraSpec( + position=blend_vec3(start.position, end.position, amount), + target=blend_vec3(start.target, end.target, amount), + fovy_deg=start.fovy_deg + (end.fovy_deg - start.fovy_deg) * amount, + ) + + +def translate_vec3_x(point: Vec3, shift_x_m: float) -> Vec3: + return Vec3(point.x + shift_x_m, point.y, point.z) + + +def translate_mesh_strip_x(strip: MeshStrip, shift_x_m: float) -> MeshStrip: + if abs(shift_x_m) <= 0.0001: + return strip + return MeshStrip( + left=strip.left, + right=strip.right, + color=strip.color, + x_offset_m=strip.x_offset_m + shift_x_m, + ) + + +def translate_vehicle_box_x(vehicle: VehicleBox, shift_x_m: float) -> VehicleBox: + if abs(shift_x_m) <= 0.0001: + return vehicle + return VehicleBox( + center=translate_vec3_x(vehicle.center, shift_x_m), + right_x=vehicle.right_x, + right_y=vehicle.right_y, + forward_x=vehicle.forward_x, + forward_y=vehicle.forward_y, + width_m=vehicle.width_m, + length_m=vehicle.length_m, + height_m=vehicle.height_m, + body_color=vehicle.body_color, + side_color=vehicle.side_color, + rear_color=vehicle.rear_color, + top_highlight=vehicle.top_highlight, + outline_color=vehicle.outline_color, + confidence=vehicle.confidence, + label=vehicle.label, + source=vehicle.source, + relative_speed_mps=vehicle.relative_speed_mps, + absolute_speed_kph=vehicle.absolute_speed_kph, + acceleration_mps2=vehicle.acceleration_mps2, + ttc_s=vehicle.ttc_s, + cut_in=vehicle.cut_in, + primary=vehicle.primary, + annotate=vehicle.annotate, + ) + + +def translate_radar_marker_x(marker: RadarPointMarker, shift_x_m: float) -> RadarPointMarker: + if abs(shift_x_m) <= 0.0001: + return marker + return RadarPointMarker( + center=translate_vec3_x(marker.center, shift_x_m), + radius_m=marker.radius_m, + color=marker.color, + label=marker.label, + longitudinal_m=marker.longitudinal_m, + lateral_m=marker.lateral_m, + relative_speed_mps=marker.relative_speed_mps, + absolute_speed_kph=marker.absolute_speed_kph, + lateral_speed_mps=marker.lateral_speed_mps, + relative_accel_mps2=marker.relative_accel_mps2, + probability=marker.probability, + valid=marker.valid, + in_my_lane=marker.in_my_lane, + ) + + +def translate_rear_indicator_x(indicator: RearVehicleIndicator, shift_x_m: float) -> RearVehicleIndicator: + if abs(shift_x_m) <= 0.0001: + return indicator + return RearVehicleIndicator( + center=translate_vec3_x(indicator.center, shift_x_m), + anchor=translate_vec3_x(indicator.anchor, shift_x_m), + label=indicator.label, + lane_side=indicator.lane_side, + longitudinal_m=indicator.longitudinal_m, + lateral_m=indicator.lateral_m, + source=indicator.source, + ) + + +def road_surface_offsets(state: ClusterUiState, route_mode: bool) -> tuple[float, float]: + road_shift = state.road_view_lane_position if route_mode else 0.0 + left = road_shift - 0.92 + right = road_shift + 0.92 + if state.lane_change == "left": + left = min(left, road_shift - 1.55) + elif state.lane_change == "right": + right = max(right, road_shift + 1.55) + if state.extra_left_lane_visible and state.lane_change == "left": + left = min(road_shift - 1.55, state.left_road_edge_offset if state.left_road_edge_offset is not None else road_shift - 1.9) + elif route_mode and state.left_road_edge_offset is not None: + left = min(left, max(state.left_road_edge_offset, -1.25)) + if state.extra_right_lane_visible and state.lane_change == "right": + right = max(road_shift + 1.55, state.right_road_edge_offset if state.right_road_edge_offset is not None else road_shift + 1.9) + elif route_mode and state.right_road_edge_offset is not None: + right = max(right, min(state.right_road_edge_offset, 1.25)) + return clamp(left, -2.8, -0.68), clamp(right, 0.68, 2.8) + + +def road_edge_color( + distance_m: float | None, + confidence: float, + theme: ClusterTheme = LIGHT_CLUSTER_THEME, +) -> Color: + confidence = clamp(confidence, 0.0, 1.0) + if distance_m is not None and distance_m < 0.85: + base = RED + alpha = 165 + int(80 * confidence) + elif distance_m is not None and distance_m < 1.35: + base = AMBER + alpha = 145 + int(80 * confidence) + else: + base = theme.road_edge + alpha = 150 + int(70 * confidence) + return base[0], base[1], base[2], int(clamp(alpha, 120, 245)) + + +def road_edge_model_strips( + model_points: tuple[ModelPathPoint, ...], + lateral_shift_m: float, + color: Color, + start_m: float, + end_m: float, + theme: ClusterTheme = LIGHT_CLUSTER_THEME, +) -> tuple[MeshStrip, ...]: + groups = model_line_strip_groups( + model_points, + lateral_shift_m, + start_m, + end_m, + ( + (12, theme.road_edge_backing, ROAD_EDGE_SHADOW_HEIGHT_M), + (7, color, ROAD_EDGE_HEIGHT_M), + ), + "solid", + True, + ) + if groups is None: + return () + backing, foreground = groups + return (*backing, *foreground) + + +def road_edge_offset_strips( + offset: float, + steering: float, + lane_width_m: float, + color: Color, + start_m: float, + end_m: float, + theme: ClusterTheme = LIGHT_CLUSTER_THEME, +) -> tuple[MeshStrip, ...]: + centerline = lane_centerline(offset, steering, lane_width_m, start_m, end_m, STATIC_LINE_STEPS, 0.0) + backing, foreground = lane_marking_strip_groups_from_segments( + (centerline,), + ( + (12, theme.road_edge_backing, ROAD_EDGE_SHADOW_HEIGHT_M), + (7, color, ROAD_EDGE_HEIGHT_M), + ), + ) + return (*backing, *foreground) + + +def vehicle_color_for_detection( + vehicle: DetectedVehicle, + theme: ClusterTheme = LIGHT_CLUSTER_THEME, +) -> tuple[int, int, int]: + if RADAR_MERGED_SOURCE_TAG in vehicle.source: + return BLUE + if vehicle.cut_in: + return AMBER + if vehicle.primary: + return theme.primary_vehicle + if vehicle.source.startswith("modelV2"): + return theme.model_vehicle + return theme.default_vehicle + + +def vehicle_blocks_path(vehicle: DetectedVehicle) -> bool: + if vehicle.longitudinal_m <= 0.0: + return False + if vehicle.source.startswith("modelV2") and vehicle.probability < 0.35: + return False + return True + + +def vehicle_badge_has_special_info(vehicle: DetectedVehicle) -> bool: + if vehicle.cut_in: + return True + if vehicle.ttc_s is not None and vehicle.ttc_s < VEHICLE_BADGE_TTC_S: + return True + return vehicle.acceleration_mps2 is not None and abs(vehicle.acceleration_mps2) > VEHICLE_BADGE_ACCEL_MPS2 + + +def detected_vehicle_has_visible_box(vehicle: DetectedVehicle, camera_active: bool) -> bool: + return not ( + vehicle.label in REAR_CORNER_RADAR_LABELS + and vehicle.longitudinal_m < -0.2 + and not camera_active + ) + + +def road_edge_strips( + state: ClusterUiState, + route_mode: bool, + lane_width_m: float, + road_start_m: float, + road_end_m: float, + theme: ClusterTheme = LIGHT_CLUSTER_THEME, +) -> tuple[MeshStrip, ...]: + def default_road_edge_strips() -> tuple[MeshStrip, ...]: + default_color = road_edge_color(None, 1.0, theme) + left_offset, right_offset = road_surface_offsets(state, route_mode) + return ( + *road_edge_offset_strips( + left_offset, + state.steering, + lane_width_m, + default_color, + road_start_m, + road_end_m, + theme, + ), + *road_edge_offset_strips( + right_offset, + state.steering, + lane_width_m, + default_color, + road_start_m, + road_end_m, + theme, + ), + ) + + if not route_mode: + return default_road_edge_strips() + + strips: list[MeshStrip] = [] + if state.left_road_edge_offset is not None or state.left_road_edge_points: + left_color = road_edge_color(state.left_road_edge_distance_m, state.left_road_edge_confidence, theme) + if state.left_road_edge_points: + strips.extend( + road_edge_model_strips( + state.left_road_edge_points, + state.left_road_edge_lateral_shift_m, + left_color, + road_start_m, + road_end_m, + theme, + ) + ) + elif state.left_road_edge_offset is not None: + strips.extend( + road_edge_offset_strips( + clamp(state.left_road_edge_offset, -2.8, -0.68), + state.steering, + lane_width_m, + left_color, + road_start_m, + road_end_m, + theme, + ) + ) + if state.right_road_edge_offset is not None or state.right_road_edge_points: + right_color = road_edge_color(state.right_road_edge_distance_m, state.right_road_edge_confidence, theme) + if state.right_road_edge_points: + strips.extend( + road_edge_model_strips( + state.right_road_edge_points, + state.right_road_edge_lateral_shift_m, + right_color, + road_start_m, + road_end_m, + theme, + ) + ) + elif state.right_road_edge_offset is not None: + strips.extend( + road_edge_offset_strips( + clamp(state.right_road_edge_offset, 0.68, 2.8), + state.steering, + lane_width_m, + right_color, + road_start_m, + road_end_m, + theme, + ) + ) + return tuple(strips) if strips else default_road_edge_strips() + + +def profile_scene_start(profile_add: ProfileAdd | None) -> float: + return time.perf_counter() if profile_add is not None else 0.0 + + +def profile_scene_add(profile_add: ProfileAdd | None, name: str, start_time: float) -> None: + if profile_add is not None: + profile_add(name, (time.perf_counter() - start_time) * 1000.0) + + +def lane_highlight_color(route_mode: bool) -> Color: + alpha = LANE_HIGHLIGHT_ROUTE_ALPHA if route_mode else LANE_HIGHLIGHT_ALPHA + return LANE_HIGHLIGHT_COLOR[0], LANE_HIGHLIGHT_COLOR[1], LANE_HIGHLIGHT_COLOR[2], alpha + + +def bsd_lane_marking_offsets(state: ClusterUiState) -> tuple[float, ...]: + offsets: list[float] = [] + if state.left_blindspot: + lane_center_offset = ( + state.highlight_lane_offset + if state.highlight_lane == "left" and state.highlight_lane_offset is not None + else -1.0 + ) + offsets.append(lane_center_offset + 0.5) + if state.right_blindspot: + lane_center_offset = ( + state.highlight_lane_offset + if state.highlight_lane == "right" and state.highlight_lane_offset is not None + else 1.0 + ) + offsets.append(lane_center_offset - 0.5) + return tuple(offsets) + + +def lane_marking_color_for_state( + marking: LaneMarking, + bsd_marking_offsets: tuple[float, ...], +) -> tuple[int, int, int]: + if any(abs(marking.offset - offset) <= BSD_LANE_MARKING_MATCH_TOLERANCE for offset in bsd_marking_offsets): + return RED + return marking.color + + +def data_geometry_mode_for_state(state: ClusterUiState) -> bool: + return ( + state.route_overlay is not None + or bool(state.detected_vehicles) + or bool(state.radar_points) + or state.left_road_edge_offset is not None + or state.right_road_edge_offset is not None + or bool(state.left_road_edge_points) + or bool(state.right_road_edge_points) + or any(marking.model_points for marking in state.lanes) + ) + + +def build_cluster_scene( + state: ClusterUiState, + profile_add: ProfileAdd | None = None, + highlight_lane_lit: bool = True, + theme: ClusterTheme = LIGHT_CLUSTER_THEME, +) -> ClusterScene: + profile_stage = profile_scene_start(profile_add) + lane_width_m = max(2.4, min(4.6, state.lane_width_m or DEFAULT_LANE_WIDTH_M)) + anchor_x_m = ego_anchor_x_m(state, lane_width_m) + scene_shift_x_m = -anchor_x_m + camera = scene_camera(state, lane_width_m, anchor_x_m) + camera_active = state.surround_view_active + selected_radar_vehicle_points = radar_vehicle_points(state, lane_width_m) + selected_radar_vehicle_boxes = tuple( + radar_vehicle_box(point, state, lane_width_m) + for point in selected_radar_vehicle_points + ) + route_mode = data_geometry_mode_for_state(state) + road_start_m = ( + SURROUND_ROAD_REAR_M if state.surround_view_active + else ROAD_NEAR_M + ) + road_end_m = ( + SURROUND_ROAD_FRONT_M if state.surround_view_active + else ROAD_FAR_M + ) + road_steps = ROAD_STEPS_SURROUND if camera_active else ROAD_STEPS_MODEL if route_mode else ROAD_STEPS_SIM + if (state.detected_vehicles or selected_radar_vehicle_boxes) and not camera_active: + nearest_detected_y = min( + (data_scene_forward_m(vehicle.longitudinal_m) for vehicle in state.detected_vehicles), + default=ROAD_FAR_M, + ) + nearest_radar_y = min((vehicle.center.y for vehicle in selected_radar_vehicle_boxes), default=ROAD_FAR_M) + nearest_detected_y = min(nearest_detected_y, nearest_radar_y) + road_start_m = min(road_start_m, max(-35.0, nearest_detected_y - 8.0)) + profile_scene_add(profile_add, "scene.build.setup", profile_stage) + + profile_stage = profile_scene_start(profile_add) + highlight_lanes: list[MeshStrip] = [] + if state.highlight_lane_offset is not None and highlight_lane_lit: + highlight_strip = lane_floor_strip( + state, + state.highlight_lane_offset, + lane_highlight_color(route_mode), + lane_width_m, + road_start_m, + road_end_m, + road_steps, + route_mode, + 0.006, + ) + if highlight_strip is not None: + highlight_lanes.append(highlight_strip) + profile_scene_add(profile_add, "scene.build.highlight_lanes", profile_stage) + + profile_stage = profile_scene_start(profile_add) + lane_strips: list[MeshStrip] = [] + bsd_marking_offsets = bsd_lane_marking_offsets(state) + for marking in state.lanes: + if not marking.visible: + continue + marking_specs = ( + ( + marking.width + LANE_MARKING_BORDER_EXTRA_WIDTH_PX, + theme.lane_marking_border, + LANE_MARKING_SHADOW_HEIGHT_M, + ), + ( + marking.width, + rgba(lane_marking_color_for_state(marking, bsd_marking_offsets)), + LANE_MARKING_HEIGHT_M, + ), + ) + strip_groups: tuple[tuple[MeshStrip, ...], ...] | None = None + if marking.model_points: + strip_groups = model_line_strip_groups( + marking.model_points, + marking.model_lateral_shift_m, + road_start_m, + road_end_m, + marking_specs, + marking.style, + True, + ) + if strip_groups is None: + marking_segments = lane_marking_segments_for_marking( + marking, + state.steering, + lane_width_m, + road_start_m, + road_end_m, + extend_before_model=True, + ) + strip_groups = lane_marking_strip_groups_from_segments(marking_segments, marking_specs) + backing_strips, foreground_strips = strip_groups + lane_strips.extend(backing_strips) + lane_strips.extend(foreground_strips) + profile_scene_add(profile_add, "scene.build.lane_markings", profile_stage) + + profile_stage = profile_scene_start(profile_add) + ego_offset = clamp(state.ego_lane_offset, -1.25, 1.25) + target_offset = state.highlight_lane_offset if state.lane_change_phase == "changing" else None + ego_vehicle = vehicle_box(ego_offset, EGO_FORWARD_M, state.steering, lane_width_m, EGO, camera_active, target_offset) + merged_radar_labels = frozenset[str]() + if route_mode: + merged_detected_vehicles = detected_vehicles_with_merged_radar( + state.detected_vehicles, + state.radar_points, + state, + ) + render_detected_vehicles = tuple( + detected + for detected in merged_detected_vehicles + if detected_vehicle_has_visible_box(detected, camera_active) + ) + merged_radar_labels = frozenset( + label + for label in (merged_radar_point_label(vehicle) for vehicle in render_detected_vehicles) + if label is not None + ) + detected_vehicle_boxes = tuple( + vehicle_box( + clamp(detected.lateral_m / lane_width_m, -2.2, 2.2), + data_scene_forward_m(detected.longitudinal_m), + state.steering, + lane_width_m, + vehicle_color_for_detection(detected, theme), + camera_active, + confidence=detected.probability, + label=detected.label, + source=detected.source, + relative_speed_mps=detected.relative_speed_mps, + absolute_speed_kph=detected.absolute_speed_kph + if detected.absolute_speed_kph is not None + else ( + max(0.0, state.speed_kph + detected.relative_speed_mps * 3.6) + if detected.relative_speed_mps is not None + else None + ), + acceleration_mps2=detected.acceleration_mps2, + ttc_s=detected.ttc_s, + cut_in=detected.cut_in, + primary=detected.primary, + annotate=vehicle_badge_has_special_info(detected), + ) + for detected in render_detected_vehicles + ) + blocking_detected_vehicles = tuple( + detected for detected in state.detected_vehicles if vehicle_blocks_path(detected) + ) + detected_blockers = tuple( + PathBlocker( + clamp(detected.lateral_m / lane_width_m, -2.2, 2.2), + data_scene_forward_m(detected.longitudinal_m), + VEHICLE_LENGTH_M, + ) + for detected in blocking_detected_vehicles + ) + visible_radar_vehicle_pairs = tuple( + (point, box) + for point, box in zip(selected_radar_vehicle_points, selected_radar_vehicle_boxes) + if point.label not in merged_radar_labels + ) + visible_radar_vehicle_points = tuple(point for point, _ in visible_radar_vehicle_pairs) + visible_radar_vehicle_boxes = tuple(box for _, box in visible_radar_vehicle_pairs) + radar_blockers = tuple( + PathBlocker( + clamp(vehicle.center.x / lane_width_m, -2.2, 2.2), + vehicle.center.y, + vehicle.length_m, + ) + for vehicle in visible_radar_vehicle_boxes + ) + blockers = (*detected_blockers, *radar_blockers) + vehicles = (ego_vehicle, *detected_vehicle_boxes, *visible_radar_vehicle_boxes) + else: + blockers = () + vehicles = (ego_vehicle,) + rear_indicators = rear_vehicle_indicators(state.detected_vehicles, state, lane_width_m) if route_mode else () + profile_scene_add(profile_add, "scene.build.vehicles", profile_stage) + + profile_stage = profile_scene_start(profile_add) + road_surface = MeshStrip((), (), rgba(theme.road)) + profile_scene_add(profile_add, "scene.build.road_surface", profile_stage) + + profile_stage = profile_scene_start(profile_add) + road_edges = road_edge_strips(state, route_mode, lane_width_m, road_start_m, road_end_m, theme) + profile_scene_add(profile_add, "scene.build.road_edges", profile_stage) + + profile_stage = profile_scene_start(profile_add) + planned_path = planned_path_strips(state, lane_width_m, blockers, theme) + profile_scene_add(profile_add, "scene.build.planned_path", profile_stage) + + profile_stage = profile_scene_start(profile_add) + hidden_merged_radar_points = tuple(point for point in state.radar_points if point.label in merged_radar_labels) + radar_points = radar_point_markers( + state, + lane_width_m, + (*selected_radar_vehicle_points, *hidden_merged_radar_points), + min_forward_m=road_start_m if camera_active else ROAD_NEAR_M, + max_forward_m=road_end_m if camera_active else ROAD_FAR_M + 30.0, + ) + profile_scene_add(profile_add, "scene.build.radar_points", profile_stage) + + profile_stage = profile_scene_start(profile_add) + scene = ClusterScene( + camera=camera, + scene_shift_x_m=scene_shift_x_m, + road_surface=road_surface, + road_edges=tuple(road_edges), + highlight_lanes=tuple(highlight_lanes), + lane_markings=tuple(lane_strips), + planned_path=tuple(planned_path), + radar_points=tuple(radar_points), + vehicles=tuple(vehicles), + rear_indicators=tuple(rear_indicators), + ) + profile_scene_add(profile_add, "scene.build.pack", profile_stage) + return scene diff --git a/selfdrive/carrot/cluster/cluster_simulator.py b/selfdrive/carrot/cluster/cluster_simulator.py new file mode 100644 index 000000000..adb740168 --- /dev/null +++ b/selfdrive/carrot/cluster/cluster_simulator.py @@ -0,0 +1,325 @@ +from __future__ import annotations + +import math + +from cluster_config import ( + BLUE, + BLUE_SOFT, + COAST_DECEL_MPS2, + CONTROLLER_ACCEL_MPS2, + CONTROLLER_BRAKE_MPS2, + DEFAULT_LANE_WIDTH_M, + DRAG_DECEL_PER_MPS, + LANE_CHANGE_MAX_SECONDS, + LANE_CHANGE_MIN_SECONDS, + MAX_ACCEL_MPS2, + MAX_SPEED_KPH, + MAX_STEERING_ANGLE_DEG, + MODEL_DIRECT_LANE_RECENTER_SECONDS, + SURROUND_MAX_PITCH_DEG, + SURROUND_MAX_YAW_DEG, + SURROUND_VIEW_SMOOTH_SECONDS, + TURN_SIGNAL_SECONDS, +) +from cluster_models import ClusterUiState, LaneMarking, SimulatorInput +from cluster_utils import clamp, smoothstep + + +class ClusterSimulator: + def __init__(self) -> None: + self.elapsed = 0.0 + self.speed_kph = 0.0 + self.accel_mps2 = 0.0 + self.steering = 0.0 + self.left_signal_until = -999.0 + self.right_signal_until = -999.0 + self.lane_change_direction: str | None = None + self.lane_change_phase = "idle" + self.lane_change_elapsed = 0.0 + self.lane_change_progress = 0.0 + self.lane_change_recenter_start_progress = 1.0 + self.active_lane_position = 0.0 + self.ego_lane_position = 0.0 + self.view_lane_position = 0.0 + self.target_lane_position = 0.0 + self.lane_width_m = DEFAULT_LANE_WIDTH_M + self.camera_lane_center_offset_m: float | None = None + self.steering_angle_deg: float | None = None + self.surround_yaw_deg = 0.0 + self.surround_pitch_deg = 0.0 + self.surround_view_active = False + + def update(self, command: SimulatorInput, dt: float) -> ClusterUiState: + dt = clamp(dt, 0.001, 0.25) + self.elapsed += dt + self._update_steering(command) + self._update_motion(command, dt) + self._update_signals(command) + self._update_lane_change(dt) + self._apply_camera_lane_model(command) + self._update_surround_view(command, dt) + + speed_limit_kph = self._speed_limit_for_current_road() + cruise_kph = min(int(speed_limit_kph + 12), int(MAX_SPEED_KPH)) + lanes = self._lanes_for_current_state() + left_signal = self.elapsed < self.left_signal_until + right_signal = self.elapsed < self.right_signal_until + highlight_active = self.lane_change_direction is not None and self.lane_change_phase in ("preparing", "changing") + highlight_lane = self.lane_change_direction if highlight_active else None + highlight_lane_offset = ( + self.target_lane_position - self.view_lane_position + if highlight_active + else None + ) + + return ClusterUiState( + speed_kph=self.speed_kph, + accel_mps2=self.accel_mps2, + steering=self.steering, + speed_limit_kph=speed_limit_kph, + cruise_kph=cruise_kph, + cruise_display_state="engaged", + left_signal=left_signal, + right_signal=right_signal, + left_blindspot=False, + right_blindspot=False, + lane_change=self.lane_change_direction, + lane_change_phase=self.lane_change_phase, + lane_change_progress=self.lane_change_progress, + highlight_lane=highlight_lane, + highlight_lane_offset=highlight_lane_offset, + ego_lane_offset=self.ego_lane_position - self.view_lane_position, + road_view_lane_position=self.view_lane_position, + camera_lane_center_offset_m=self.camera_lane_center_offset_m, + lane_width_m=self.lane_width_m, + steering_angle_deg=self.steering_angle_deg, + surround_yaw_deg=self.surround_yaw_deg, + surround_pitch_deg=self.surround_pitch_deg, + surround_view_active=self.surround_view_active, + lanes=lanes, + throttle=command.throttle, + brake=command.brake, + ) + + def _update_steering(self, command: SimulatorInput) -> None: + if command.steering_angle_deg is None: + target_steering = clamp(command.steering, -1.0, 1.0) + self.steering_angle_deg = target_steering * MAX_STEERING_ANGLE_DEG + else: + self.steering_angle_deg = clamp( + command.steering_angle_deg, + -MAX_STEERING_ANGLE_DEG, + MAX_STEERING_ANGLE_DEG, + ) + target_steering = self.steering_angle_deg / MAX_STEERING_ANGLE_DEG + + self.steering = self.steering * 0.72 + target_steering * 0.28 + + def _update_motion(self, command: SimulatorInput, dt: float) -> None: + throttle = clamp(command.throttle, 0.0, 1.0) + brake = clamp(command.brake, 0.0, 1.0) + speed_mps = self.speed_kph / 3.6 + accel_mps2 = ( + throttle * CONTROLLER_ACCEL_MPS2 + - brake * CONTROLLER_BRAKE_MPS2 + - speed_mps * DRAG_DECEL_PER_MPS + ) + if throttle == 0.0 and brake == 0.0 and speed_mps > 0.0: + accel_mps2 -= COAST_DECEL_MPS2 + + next_speed_kph = self.speed_kph + accel_mps2 * dt * 3.6 + if next_speed_kph <= 0.0: + next_speed_kph = 0.0 + accel_mps2 = max(0.0, accel_mps2) + + self.speed_kph = clamp(next_speed_kph, 0.0, MAX_SPEED_KPH) + self.accel_mps2 = clamp(accel_mps2, -MAX_ACCEL_MPS2, MAX_ACCEL_MPS2) + + def _update_signals(self, command: SimulatorInput) -> None: + if command.left_signal_requested: + self._start_signal("left") + if command.right_signal_requested: + self._start_signal("right") + + def _start_signal(self, direction: str) -> None: + if direction == "left": + self.left_signal_until = self.elapsed + TURN_SIGNAL_SECONDS + self.right_signal_until = min(self.right_signal_until, self.elapsed) + else: + self.right_signal_until = self.elapsed + TURN_SIGNAL_SECONDS + self.left_signal_until = min(self.left_signal_until, self.elapsed) + + self.lane_change_direction = direction + self.lane_change_phase = "changing" + self.lane_change_elapsed = 0.0 + self.lane_change_progress = 0.0 + self.lane_change_recenter_start_progress = 1.0 + direction_sign = -1.0 if direction == "left" else 1.0 + self.target_lane_position = self.active_lane_position + direction_sign + + def _update_lane_change(self, dt: float) -> None: + if self.lane_change_phase == "idle": + self.lane_change_progress = 0.0 + self.ego_lane_position += (self.active_lane_position - self.ego_lane_position) * min(1.0, dt / 0.8) + self.view_lane_position += (self.active_lane_position - self.view_lane_position) * min(1.0, dt / 0.8) + return + + if self.lane_change_phase == "changing": + self.lane_change_elapsed += dt + self.lane_change_progress = clamp( + self.lane_change_elapsed / self._lane_change_duration_seconds(), + 0.0, + 1.0, + ) + direction_sign = self._lane_change_direction_sign() + self.ego_lane_position = ( + self.active_lane_position + + direction_sign * self.lane_change_progress + ) + + if self.lane_change_progress >= 1.0: + self.active_lane_position = self.target_lane_position + self.ego_lane_position = self.target_lane_position + self.lane_change_phase = "recentering" + self.lane_change_elapsed = 0.0 + self.lane_change_recenter_start_progress = 1.0 + return + + if self.lane_change_phase == "recentering": + self.lane_change_elapsed += dt + self.lane_change_progress = clamp( + self.lane_change_elapsed / MODEL_DIRECT_LANE_RECENTER_SECONDS, + 0.0, + 1.0, + ) + direction_sign = self._lane_change_direction_sign() + recenter_blend = smoothstep(self.lane_change_progress) + start_offset = direction_sign * smoothstep(self.lane_change_recenter_start_progress) + self.view_lane_position = self.active_lane_position - start_offset * (1.0 - recenter_blend) + self.ego_lane_position = self.active_lane_position + if self.lane_change_progress >= 1.0: + self.view_lane_position = self.active_lane_position + self.lane_change_phase = "idle" + self.lane_change_progress = 0.0 + self.lane_change_recenter_start_progress = 1.0 + self.lane_change_direction = None + + def _lane_change_duration_seconds(self) -> float: + return clamp( + LANE_CHANGE_MAX_SECONDS - self.speed_kph * 0.032, + LANE_CHANGE_MIN_SECONDS, + LANE_CHANGE_MAX_SECONDS, + ) + + def _lane_change_direction_sign(self) -> float: + return -1.0 if self.lane_change_direction == "left" else 1.0 + + def _apply_camera_lane_model(self, command: SimulatorInput) -> None: + self.lane_width_m = max(2.4, min(4.6, command.camera_lane_width_m)) + self.camera_lane_center_offset_m = command.camera_lane_center_offset_m + if command.camera_lane_center_offset_m is None: + return + + camera_lane_offset = clamp( + command.camera_lane_center_offset_m / self.lane_width_m, + -1.4, + 1.4, + ) + observed_ego_position = self.active_lane_position - camera_lane_offset + if self.lane_change_direction is not None: + low = min(self.active_lane_position, self.target_lane_position) - 0.25 + high = max(self.active_lane_position, self.target_lane_position) + 0.25 + observed_ego_position = clamp(observed_ego_position, low, high) + + self.ego_lane_position = self.ego_lane_position * 0.45 + observed_ego_position * 0.55 + if self.lane_change_phase == "changing" and self.target_lane_position != self.active_lane_position: + measured_progress = abs( + (self.ego_lane_position - self.active_lane_position) + / (self.target_lane_position - self.active_lane_position) + ) + self.lane_change_progress = max(self.lane_change_progress, clamp(measured_progress, 0.0, 1.0)) + if self.lane_change_progress >= 0.98: + self.active_lane_position = self.target_lane_position + self.ego_lane_position = self.target_lane_position + self.lane_change_phase = "recentering" + self.lane_change_elapsed = 0.0 + self.lane_change_recenter_start_progress = clamp(self.lane_change_progress, 0.0, 1.0) + + def _update_surround_view(self, command: SimulatorInput, dt: float) -> None: + target_yaw = clamp(command.surround_yaw_deg, -SURROUND_MAX_YAW_DEG, SURROUND_MAX_YAW_DEG) + target_pitch = clamp(command.surround_pitch_deg, -SURROUND_MAX_PITCH_DEG, SURROUND_MAX_PITCH_DEG) + if not command.surround_view_active: + target_yaw = 0.0 + target_pitch = 0.0 + + alpha = min(1.0, dt / SURROUND_VIEW_SMOOTH_SECONDS) + self.surround_yaw_deg += (target_yaw - self.surround_yaw_deg) * alpha + self.surround_pitch_deg += (target_pitch - self.surround_pitch_deg) * alpha + self.surround_view_active = ( + command.surround_view_active + or abs(self.surround_yaw_deg) > 0.4 + or abs(self.surround_pitch_deg) > 0.4 + ) + + def _speed_limit_for_current_road(self) -> int: + if self.speed_kph < 55.0: + return 50 + if self.speed_kph < 95.0: + return 80 + return 100 + + def _lanes_for_current_state(self) -> tuple[LaneMarking, ...]: + lane_center = self.active_lane_position + left_inner = BLUE + right_inner = BLUE + markings: list[LaneMarking] = [] + if self.lane_change_direction == "left": + left_inner = BLUE + markings.append( + LaneMarking(lane_center - 1.5 - self.view_lane_position, BLUE_SOFT, "solid", width=5) + ) + elif self.lane_change_direction == "right": + right_inner = BLUE + + markings.extend( + ( + LaneMarking(lane_center - 0.5 - self.view_lane_position, left_inner, "solid", width=7), + LaneMarking(lane_center + 0.5 - self.view_lane_position, right_inner, "solid", width=7), + ) + ) + if self.lane_change_direction == "right": + markings.append( + LaneMarking(lane_center + 1.5 - self.view_lane_position, BLUE_SOFT, "dashed", width=5) + ) + return tuple(markings) + + +class RandomInputSource: + def __init__(self) -> None: + self.elapsed = 0.0 + self.next_signal_at = 4.0 + self.next_signal_left = True + + def update(self, dt: float) -> SimulatorInput: + self.elapsed += dt + throttle = 0.28 + 0.26 * math.sin(self.elapsed * 0.37) + brake = 0.0 + if math.sin(self.elapsed * 0.21) < -0.72: + throttle = 0.0 + brake = 0.34 + 0.28 * abs(math.sin(self.elapsed * 0.78)) + + signal_left = False + signal_right = False + if self.elapsed >= self.next_signal_at: + signal_left = self.next_signal_left + signal_right = not self.next_signal_left + self.next_signal_left = not self.next_signal_left + self.next_signal_at = self.elapsed + 8.0 + + return SimulatorInput( + throttle=clamp(throttle, 0.0, 1.0), + brake=clamp(brake, 0.0, 1.0), + steering=0.38 * math.sin(self.elapsed * 0.42), + left_signal_requested=signal_left, + right_signal_requested=signal_right, + ) diff --git a/selfdrive/carrot/cluster/cluster_system_monitor.py b/selfdrive/carrot/cluster/cluster_system_monitor.py new file mode 100644 index 000000000..d5a3f9daa --- /dev/null +++ b/selfdrive/carrot/cluster/cluster_system_monitor.py @@ -0,0 +1,127 @@ +from __future__ import annotations + +from dataclasses import dataclass +from pathlib import Path +import time + + +PROC_STAT_PATH = Path("/proc/stat") +PROC_MEMINFO_PATH = Path("/proc/meminfo") + + +@dataclass(frozen=True, slots=True) +class SystemStats: + memory_total_bytes: int | None = None + memory_used_bytes: int | None = None + memory_used_percent: float | None = None + cpu_core_percents: tuple[float | None, ...] = () + + +class SystemStatsSampler: + def __init__(self, refresh_interval_s: float = 1.0) -> None: + self.refresh_interval_s = max(0.1, float(refresh_interval_s)) + self._next_sample_time = 0.0 + self._stats = SystemStats() + self._previous_linux_cpu_times: tuple[tuple[int, int], ...] | None = None + + def sample(self, now: float | None = None) -> SystemStats: + if now is None: + now = time.perf_counter() + if now < self._next_sample_time: + return self._stats + + stats = self._sample_linux() + if stats is not None: + self._stats = stats + self._next_sample_time = now + self.refresh_interval_s + return self._stats + + def _sample_linux(self) -> SystemStats | None: + if not PROC_STAT_PATH.exists() and not PROC_MEMINFO_PATH.exists(): + return None + + memory_total, memory_used, memory_percent = self._read_linux_memory() + cpu_times = self._read_linux_cpu_times() + if cpu_times is None: + cpu_percents: tuple[float | None, ...] = () + else: + cpu_percents = self._linux_cpu_percents(cpu_times) + self._previous_linux_cpu_times = cpu_times + + return SystemStats( + memory_total_bytes=memory_total, + memory_used_bytes=memory_used, + memory_used_percent=memory_percent, + cpu_core_percents=cpu_percents, + ) + + @staticmethod + def _read_linux_memory() -> tuple[int | None, int | None, float | None]: + try: + values: dict[str, int] = {} + for line in PROC_MEMINFO_PATH.read_text(encoding="utf-8", errors="ignore").splitlines(): + parts = line.split() + if len(parts) < 2: + continue + name = parts[0].rstrip(":") + try: + values[name] = int(parts[1]) * 1024 + except ValueError: + continue + except OSError: + return None, None, None + + total = values.get("MemTotal") + available = values.get("MemAvailable") + if available is None: + free = values.get("MemFree", 0) + buffers = values.get("Buffers", 0) + cached = values.get("Cached", 0) + available = free + buffers + cached + if total is None or total <= 0: + return total, None, None + + used = max(0, min(total, total - available)) + return total, used, used / total * 100.0 + + @staticmethod + def _read_linux_cpu_times() -> tuple[tuple[int, int], ...] | None: + try: + lines = PROC_STAT_PATH.read_text(encoding="utf-8", errors="ignore").splitlines() + except OSError: + return None + + cpu_times: list[tuple[int, int]] = [] + for line in lines: + parts = line.split() + if not parts: + continue + name = parts[0] + if not name.startswith("cpu") or not name[3:].isdigit(): + continue + try: + fields = [int(value) for value in parts[1:]] + except ValueError: + continue + if len(fields) < 4: + continue + idle = fields[3] + (fields[4] if len(fields) > 4 else 0) + total = sum(fields) + cpu_times.append((total, idle)) + return tuple(cpu_times) + + def _linux_cpu_percents(self, cpu_times: tuple[tuple[int, int], ...]) -> tuple[float | None, ...]: + previous = self._previous_linux_cpu_times + if previous is None or len(previous) != len(cpu_times): + return tuple(None for _ in cpu_times) + + percents: list[float | None] = [] + for (total, idle), (previous_total, previous_idle) in zip(cpu_times, previous, strict=True): + delta_total = total - previous_total + delta_idle = idle - previous_idle + if delta_total <= 0: + percents.append(None) + continue + busy = max(0, min(delta_total, delta_total - delta_idle)) + percents.append(busy / delta_total * 100.0) + return tuple(percents) diff --git a/selfdrive/carrot/cluster/cluster_ui.py b/selfdrive/carrot/cluster/cluster_ui.py new file mode 100644 index 000000000..c8fda09d3 --- /dev/null +++ b/selfdrive/carrot/cluster/cluster_ui.py @@ -0,0 +1,57 @@ +from __future__ import annotations + +from cluster_config import * +from cluster_models import ( + ClusterUiState, + DetectedVehicle, + LaneMarking, + ModelPathPoint, + ModelRiskPoint, + RadarPoint, + RouteOverlay, + SceneCamera, + SimulatorInput, +) +from cluster_renderer import ClusterUiRenderer +from cluster_scene import ( + CameraSpec, + ClusterScene, + MeshStrip, + Vec3, + VehicleBox, + build_cluster_scene, +) +from cluster_simulator import ClusterSimulator, RandomInputSource +from cluster_utils import ( + blink_visible, + clamp, + darken, + lighten, + smoothstep, +) + +__all__ = [ + "ClusterSimulator", + "ClusterUiRenderer", + "CameraSpec", + "ClusterScene", + "ClusterUiState", + "DetectedVehicle", + "LaneMarking", + "MeshStrip", + "ModelPathPoint", + "ModelRiskPoint", + "RadarPoint", + "RandomInputSource", + "RouteOverlay", + "SceneCamera", + "SimulatorInput", + "Vec3", + "VehicleBox", + "blink_visible", + "build_cluster_scene", + "clamp", + "darken", + "lighten", + "smoothstep", +] + [name for name in globals() if name.isupper()] diff --git a/selfdrive/carrot/cluster/cluster_usb_display.py b/selfdrive/carrot/cluster/cluster_usb_display.py new file mode 100644 index 000000000..bedf1a004 --- /dev/null +++ b/selfdrive/carrot/cluster/cluster_usb_display.py @@ -0,0 +1,536 @@ +from __future__ import annotations + +import sys +import os +import time +from io import BytesIO +from pathlib import Path +from typing import Any + +from cluster_utils import clamp + + +VENDOR_ROOT = Path(__file__).resolve().parent / ".vendor" / "turing-smart-screen-python-main" +VENDOR_LIBRARY = VENDOR_ROOT / "library" +TURZX_USB_VENDOR_ID = 0x1CBE +TURZX_USB_PRODUCT_IDS = { + 0x0092: "TURZX 9.2", + 0x0123: "TURZX 12.3", +} +HUD_MODE_PRODUCT_IDS = { + 1: 0x0092, + 2: 0x0123, +} +MAX_CONSECUTIVE_FRAME_ERRORS = 3 +USB_COMMAND_TIMEOUT_MS = 2000 +USB_FRAME_TIMEOUT_MS = 2000 +USB_COMMAND_GAP_S = 0.2 +_LIBUSB_DLL_DIR_HANDLE = None + + +def product_id_for_hud_mode(hud_mode: int) -> int | None: + try: + return HUD_MODE_PRODUCT_IDS.get(int(hud_mode)) + except Exception: + return None + + +def product_label(product_id: int | None) -> str: + if product_id is None: + return "TURZX USB" + return TURZX_USB_PRODUCT_IDS.get(product_id, f"TURZX USB pid=0x{product_id:04x}") + + +def _add_libusb_search_path_once() -> None: + global _LIBUSB_DLL_DIR_HANDLE + + libusb = VENDOR_ROOT / "external" / "libusb-1.0" / "libusb-1.0.dll" + if not libusb.exists(): + return + + dll_dir = str(libusb.parent) + path_entries = os.environ.get("PATH", "").split(os.pathsep) + if dll_dir not in path_entries: + os.environ["PATH"] = dll_dir + os.pathsep + os.environ.get("PATH", "") + if hasattr(os, "add_dll_directory") and _LIBUSB_DLL_DIR_HANDLE is None: + _LIBUSB_DLL_DIR_HANDLE = os.add_dll_directory(dll_dir) + + +def find_supported_usb_product(expected_product_id: int | None = None) -> int | None: + if not VENDOR_LIBRARY.exists(): + print(f"TURZX vendor library not found: {VENDOR_LIBRARY}", flush=True) + return None + + _add_libusb_search_path_once() + try: + import usb.core # type: ignore + except Exception as exc: + print(f"TURZX USB scan unavailable: {exc}", flush=True) + return None + + product_ids = [expected_product_id] if expected_product_id is not None else list(TURZX_USB_PRODUCT_IDS) + for product_id in product_ids: + try: + dev = usb.core.find(idVendor=TURZX_USB_VENDOR_ID, idProduct=product_id) + except Exception as exc: + print(f"TURZX USB scan failed for pid=0x{product_id:04x}: {exc}", flush=True) + return None + if dev is not None: + return product_id + return None + + +class TuringUsbDisplay: + def __init__( + self, + brightness: int = 80, + display_fps: int = 60, + jpeg_quality: int = 82, + jpeg_encoder: str = "auto", + fast_write: bool = False, + wait_for_frame_ack: bool = False, + frame_drain_attempts: int = 2, + frame_drain_timeout_ms: int = 2, + fast_frame_drain_attempts: int = 3, + fast_frame_drain_timeout_ms: int = 2, + ) -> None: + self.brightness = int(clamp(brightness, 0, 100)) + self.display_fps = int(clamp(display_fps, 0, 255)) + self.jpeg_quality = int(clamp(jpeg_quality, 1, 95)) + self.jpeg_encoder = jpeg_encoder + self.fast_write = fast_write + self.wait_for_frame_ack = wait_for_frame_ack + self.frame_drain_attempts = max(0, int(frame_drain_attempts)) + self.frame_drain_timeout_ms = max(0, int(frame_drain_timeout_ms)) + self.fast_frame_drain_attempts = max(0, int(fast_frame_drain_attempts)) + self.fast_frame_drain_timeout_ms = max(0, int(fast_frame_drain_timeout_ms)) + self.dev = None + self.dev_pid: int | None = None + self.landscape_width = 1920 + self.landscape_height = 480 + self._send_image = None + self._send_jpeg = None + self._find_usb_device = None + self._product_id = None + self._build_command_packet_header = None + self._encrypt_command_packet = None + self._cmd_upload_jpeg = 101 + self._cmd_upload_png = 102 + self._ep_out = None + self._ep_in = None + self._dll_dir_handle = None + self._frame_error_count = 0 + self._turbojpeg = None + self._turbojpeg_unavailable = False + self._jpeg_buffer = BytesIO() + self.profile_enabled = os.environ.get("CLUSTER_PROFILE_USB") == "1" + self._profile_samples: list[tuple[str, float]] = [] + + def set_profile_enabled(self, enabled: bool) -> None: + self.profile_enabled = enabled + + def clear_profile_samples(self) -> None: + self._profile_samples.clear() + + def profile_samples(self) -> tuple[tuple[str, float], ...]: + return tuple(self._profile_samples) + + def _profile_start(self) -> float: + return time.perf_counter() if self.profile_enabled else 0.0 + + def _profile_add(self, name: str, start_time: float) -> None: + if self.profile_enabled: + self._profile_samples.append((name, (time.perf_counter() - start_time) * 1000.0)) + + def open(self) -> None: + if not VENDOR_LIBRARY.exists(): + raise RuntimeError(f"TURZX vendor library not found: {VENDOR_LIBRARY}") + self._add_libusb_search_path() + if str(VENDOR_ROOT) not in sys.path: + sys.path.insert(0, str(VENDOR_ROOT)) + + from library.lcd.lcd_comm_turing_usb import ( # type: ignore + CMD_UPLOAD_JPEG, + CMD_UPLOAD_PNG, + PRODUCT_ID, + build_command_packet_header, + encrypt_command_packet, + find_usb_device, + send_image, + send_jpeg, + ) + + self._send_image = send_image + self._send_jpeg = send_jpeg + self._find_usb_device = find_usb_device + self._product_id = PRODUCT_ID + self._build_command_packet_header = build_command_packet_header + self._encrypt_command_packet = encrypt_command_packet + self._cmd_upload_jpeg = CMD_UPLOAD_JPEG + self._cmd_upload_png = CMD_UPLOAD_PNG + self._connect_device() + try: + self._initialize_device() + except RuntimeError: + print("USB display did not respond during init; resetting device once...") + self._reset_and_reconnect() + self._initialize_device() + + def _connect_device(self) -> None: + self.dev, self.dev_pid = self._find_usb_device() + self._cache_out_endpoint() + portrait_width, portrait_height = self._product_id[self.dev_pid] + self.landscape_width = portrait_height + self.landscape_height = portrait_width + + def _initialize_device(self) -> None: + if self.dev is None: + raise RuntimeError("USB display is not open") + + self._send_command(10, "sync") + time.sleep(USB_COMMAND_GAP_S) + if self.display_fps > 0: + self._send_optional_command(15, "frame-rate", {8: self.display_fps}) + self._send_optional_command(14, "brightness", {8: int(self.brightness / 100 * 102)}) + + def _send_command( + self, + command_id: int, + name: str, + fields: dict[int, int] | None = None, + *, + expect_response: bool = True, + ) -> bytes: + if self._build_command_packet_header is None or self._encrypt_command_packet is None: + raise RuntimeError("USB command helpers are not initialized") + packet = self._build_command_packet_header(command_id) + if fields: + for index, value in fields.items(): + packet[index] = value & 0xFF + print(f"Sending {name} command (ID {command_id})...") + payload = self._encrypt_command_packet(packet) + if not expect_response: + self._write_payload_no_ack( + payload, + f"TURZX USB {name} command write failed", + timeout_ms=USB_COMMAND_TIMEOUT_MS, + ) + time.sleep(USB_COMMAND_GAP_S) + self._drain_input(attempts=5) + return b"" + return self._write_payload_checked( + payload, + f"TURZX USB {name} command timed out", + timeout_ms=USB_COMMAND_TIMEOUT_MS, + ) + + def _send_optional_command(self, command_id: int, name: str, fields: dict[int, int] | None = None) -> None: + try: + self._send_command(command_id, name, fields, expect_response=False) + except RuntimeError as exc: + print(f"Warning: optional TURZX USB {name} command skipped: {exc}") + + def _reset_and_reconnect(self) -> None: + import usb.util + + if self.dev is not None: + try: + self.dev.reset() + except Exception as exc: + print(f"USB reset failed: {exc}") + try: + usb.util.dispose_resources(self.dev) + except Exception: + pass + time.sleep(1.5) + self._connect_device() + + def _add_libusb_search_path(self) -> None: + libusb = VENDOR_ROOT / "external" / "libusb-1.0" / "libusb-1.0.dll" + if not libusb.exists(): + return + + dll_dir = str(libusb.parent) + path_entries = os.environ.get("PATH", "").split(os.pathsep) + if dll_dir not in path_entries: + os.environ["PATH"] = dll_dir + os.pathsep + os.environ.get("PATH", "") + if hasattr(os, "add_dll_directory") and self._dll_dir_handle is None: + self._dll_dir_handle = os.add_dll_directory(dll_dir) + + def send_png(self, frame: bytes) -> None: + if self.dev is None or self._send_image is None: + raise RuntimeError("USB display is not open") + try: + self._send_frame(self._cmd_upload_png, frame) + except Exception as exc: + self._handle_frame_error(exc) + + def send_jpeg(self, frame: bytes) -> None: + if self.dev is None or self._send_jpeg is None: + raise RuntimeError("USB display is not open") + try: + self._send_frame(self._cmd_upload_jpeg, frame) + except Exception as exc: + self._handle_frame_error(exc) + + def encode_jpeg(self, rgba: Any, width: int, height: int) -> bytes: + if self.jpeg_encoder == "turbojpeg" or ( + self.jpeg_encoder == "auto" and not self._turbojpeg_unavailable + ): + try: + return self._encode_jpeg_turbojpeg(rgba, width, height) + except ImportError: + if self.jpeg_encoder == "turbojpeg": + raise + self._turbojpeg_unavailable = True + except Exception: + if self.jpeg_encoder == "turbojpeg": + raise + self._turbojpeg_unavailable = True + return self._encode_jpeg_pillow(rgba, width, height) + + def _encode_jpeg_turbojpeg(self, rgba: Any, width: int, height: int) -> bytes: + profile_stage = self._profile_start() + import numpy as np + import turbojpeg # type: ignore + + self._profile_add("usb.encode.turbojpeg_import", profile_stage) + + profile_stage = self._profile_start() + rgba_array = np.frombuffer(rgba, dtype=np.uint8).reshape((height, width, 4)) + self._profile_add("usb.encode.turbojpeg_rgba_view", profile_stage) + + profile_stage = self._profile_start() + jpeg = self._turbojpeg_encode_array(turbojpeg, rgba_array) + self._profile_add("usb.encode.turbojpeg_encode", profile_stage) + return jpeg + + def _turbojpeg_encode_array(self, turbojpeg_module, rgba_array) -> bytes: + if hasattr(turbojpeg_module, "TurboJPEG"): + if self._turbojpeg is None: + self._turbojpeg = turbojpeg_module.TurboJPEG() + pixel_format = getattr(turbojpeg_module, "TJPF_RGBA", None) + jpeg_subsample = getattr(turbojpeg_module, "TJSAMP_420", None) + kwargs = {"quality": int(self.jpeg_quality)} + if pixel_format is not None: + kwargs["pixel_format"] = pixel_format + if jpeg_subsample is not None: + kwargs["jpeg_subsample"] = jpeg_subsample + return self._turbojpeg.encode(rgba_array, **kwargs) + + compress = getattr(turbojpeg_module, "compress", None) + if compress is not None: + kwargs = {"quality": int(self.jpeg_quality)} + if hasattr(turbojpeg_module, "PF"): + kwargs["pixelformat"] = turbojpeg_module.PF.RGBA + if hasattr(turbojpeg_module, "SAMP"): + kwargs["subsamp"] = turbojpeg_module.SAMP.Y420 + return compress(rgba_array, **kwargs) + + raise RuntimeError("unsupported turbojpeg Python API") + + def _encode_jpeg_pillow(self, rgba: Any, width: int, height: int) -> bytes: + from PIL import Image + + profile_stage = self._profile_start() + image = Image.frombuffer("RGB", (width, height), rgba, "raw", "RGBX", 0, 1) + self._profile_add("usb.encode.rgba_to_rgbx_view", profile_stage) + buffer = self._jpeg_buffer + buffer.seek(0) + buffer.truncate(0) + profile_stage = self._profile_start() + image.save( + buffer, + format="JPEG", + quality=self.jpeg_quality, + optimize=False, + progressive=False, + subsampling=2, + ) + self._profile_add("usb.encode.jpeg_save", profile_stage) + profile_stage = self._profile_start() + jpeg = buffer.getvalue() + self._profile_add("usb.encode.getvalue", profile_stage) + return jpeg + + def _cache_out_endpoint(self) -> None: + import usb.util + + cfg = self.dev.get_active_configuration() + intf = usb.util.find_descriptor(cfg, bInterfaceNumber=0) + if intf is None: + raise RuntimeError("USB interface 0 not found") + self._ep_out = usb.util.find_descriptor( + intf, + custom_match=lambda endpoint: usb.util.endpoint_direction( + endpoint.bEndpointAddress + ) + == usb.util.ENDPOINT_OUT, + ) + if self._ep_out is None: + raise RuntimeError("Could not find USB OUT endpoint") + self._ep_in = usb.util.find_descriptor( + intf, + custom_match=lambda endpoint: usb.util.endpoint_direction( + endpoint.bEndpointAddress + ) + == usb.util.ENDPOINT_IN, + ) + if self._ep_in is None: + raise RuntimeError("Could not find USB IN endpoint") + + def _drain_input(self, attempts: int = 3, timeout_ms: int = 20) -> None: + if self._ep_in is None or attempts <= 0: + return + for _ in range(attempts): + try: + self._ep_in.read(512, timeout_ms) + except Exception: + return + + def _clear_endpoint_halt(self) -> None: + if self.dev is None: + return + for endpoint in (self._ep_out, self._ep_in): + if endpoint is None: + continue + try: + self.dev.clear_halt(endpoint.bEndpointAddress) + except Exception: + pass + + def _write_payload_checked(self, payload: bytes, error_message: str, timeout_ms: int) -> bytes: + if self._ep_out is None or self._ep_in is None: + raise RuntimeError("USB endpoints are not open") + profile_stage = self._profile_start() + self._clear_endpoint_halt() + self._drain_input() + self._profile_add("usb.write_checked.prepare", profile_stage) + try: + profile_stage = self._profile_start() + self._ep_out.write(payload, timeout_ms) + self._profile_add("usb.write_checked.write", profile_stage) + profile_stage = self._profile_start() + response = bytes(self._ep_in.read(512, timeout_ms)) + self._profile_add("usb.write_checked.read_ack", profile_stage) + return response + except Exception as exc: + raise RuntimeError(error_message) from exc + + def _write_payload_no_ack(self, payload: bytes, error_message: str, timeout_ms: int) -> None: + if self._ep_out is None: + raise RuntimeError("USB OUT endpoint is not open") + profile_stage = self._profile_start() + self._clear_endpoint_halt() + self._drain_input() + self._profile_add("usb.write_no_ack.prepare", profile_stage) + try: + profile_stage = self._profile_start() + self._ep_out.write(payload, timeout_ms) + self._profile_add("usb.write_no_ack.write", profile_stage) + except Exception as exc: + raise RuntimeError(error_message) from exc + + def _build_frame_payload(self, command_id: int, frame: bytes) -> bytes: + if self._build_command_packet_header is None or self._encrypt_command_packet is None: + raise RuntimeError("USB command helpers are not initialized") + + frame_size = len(frame) + profile_stage = self._profile_start() + cmd_packet = self._build_command_packet_header(command_id) + cmd_packet[8] = (frame_size >> 24) & 0xFF + cmd_packet[9] = (frame_size >> 16) & 0xFF + cmd_packet[10] = (frame_size >> 8) & 0xFF + cmd_packet[11] = frame_size & 0xFF + payload = self._encrypt_command_packet(cmd_packet) + frame + self._profile_add("usb.frame.build_payload", profile_stage) + return payload + + def _send_frame(self, command_id: int, frame: bytes) -> None: + if self.wait_for_frame_ack: + response = ( + self._send_frame_fast(command_id, frame) + if self.fast_write + else self._send_frame_ack(command_id, frame) + ) + self._check_frame_response(response) + else: + self._send_frame_no_ack(command_id, frame, drain_input=not self.fast_write) + self._frame_error_count = 0 + + def _send_frame_ack(self, command_id: int, frame: bytes) -> bytes: + return self._write_payload_checked( + self._build_frame_payload(command_id, frame), + "TURZX USB frame upload timed out", + timeout_ms=USB_FRAME_TIMEOUT_MS, + ) + + def _send_frame_fast(self, command_id: int, frame: bytes) -> bytes: + if self._ep_out is None: + raise RuntimeError("USB OUT endpoint is not open") + + profile_stage = self._profile_start() + self._clear_endpoint_halt() + self._drain_input() + self._profile_add("usb.frame_fast.prepare", profile_stage) + profile_stage = self._profile_start() + payload = self._build_frame_payload(command_id, frame) + self._profile_add("usb.frame_fast.payload", profile_stage) + profile_stage = self._profile_start() + self._ep_out.write(payload, USB_FRAME_TIMEOUT_MS) + self._profile_add("usb.frame_fast.write", profile_stage) + profile_stage = self._profile_start() + response = bytes(self._ep_in.read(512, USB_FRAME_TIMEOUT_MS)) + self._profile_add("usb.frame_fast.read_ack", profile_stage) + return response + + def _send_frame_no_ack(self, command_id: int, frame: bytes, *, drain_input: bool) -> None: + if self._ep_out is None: + raise RuntimeError("USB OUT endpoint is not open") + + profile_stage = self._profile_start() + if drain_input: + self._drain_input( + attempts=self.frame_drain_attempts, + timeout_ms=self.frame_drain_timeout_ms, + ) + else: + self._drain_input( + attempts=self.fast_frame_drain_attempts, + timeout_ms=self.fast_frame_drain_timeout_ms, + ) + self._profile_add("usb.frame_no_ack.drain_input", profile_stage) + + profile_stage = self._profile_start() + payload = self._build_frame_payload(command_id, frame) + self._profile_add("usb.frame_no_ack.payload", profile_stage) + profile_stage = self._profile_start() + self._ep_out.write(payload, USB_FRAME_TIMEOUT_MS) + self._profile_add("usb.frame_no_ack.write", profile_stage) + + def _check_frame_response(self, response: bytes | None) -> None: + if not response: + raise RuntimeError("TURZX USB frame upload timed out") + self._frame_error_count = 0 + + def _handle_frame_error(self, exc: Exception) -> None: + self._frame_error_count += 1 + print( + f"USB frame upload failed " + f"({self._frame_error_count}/{MAX_CONSECUTIVE_FRAME_ERRORS}): {exc}", + flush=True, + ) + + try: + self._clear_endpoint_halt() + self._reset_and_reconnect() + self._initialize_device() + except Exception as reset_exc: + print(f"USB recovery failed: {reset_exc}", flush=True) + + if self._frame_error_count >= MAX_CONSECUTIVE_FRAME_ERRORS: + raise RuntimeError( + "TURZX USB display is not accepting frame data. " + "Unplug/replug the display, then retry with lower --fps " + "or lower --usb-jpeg-quality." + ) from exc diff --git a/selfdrive/carrot/cluster/cluster_usb_pipeline.py b/selfdrive/carrot/cluster/cluster_usb_pipeline.py new file mode 100644 index 000000000..04d06b26b --- /dev/null +++ b/selfdrive/carrot/cluster/cluster_usb_pipeline.py @@ -0,0 +1,104 @@ +from __future__ import annotations + +import threading +import time + +from cluster_usb_display import TuringUsbDisplay + + +class AsyncJpegUsbPipeline: + def __init__(self, usb_display: TuringUsbDisplay) -> None: + self.usb_display = usb_display + self._condition = threading.Condition() + self._pending_rgba: tuple[bytes, int, int] | None = None + self._closing = False + self._error: BaseException | None = None + self._samples: list[tuple[str, float]] = [] + self._thread = threading.Thread(target=self._run, name="cluster-usb-jpeg", daemon=True) + + def start(self) -> None: + self._thread.start() + + def submit_rgba(self, rgba: bytes, width: int, height: int) -> None: + self.check_error() + with self._condition: + self._pending_rgba = (rgba, width, height) + self._condition.notify() + + def wait_for_capacity(self, timeout: float | None = None) -> bool: + deadline = None if timeout is None else time.perf_counter() + max(0.0, timeout) + with self._condition: + while self._pending_rgba is not None and not self._closing and self._error is None: + if deadline is None: + self._condition.wait() + continue + remaining = deadline - time.perf_counter() + if remaining <= 0.0: + return False + self._condition.wait(timeout=remaining) + if self._error is not None: + raise RuntimeError("asynchronous USB JPEG pipeline failed") from self._error + return self._pending_rgba is None + + def profile_samples(self) -> tuple[tuple[str, float], ...]: + with self._condition: + samples = tuple(self._samples) + self._samples.clear() + return samples + + def check_error(self) -> None: + with self._condition: + error = self._error + if error is not None: + raise RuntimeError("asynchronous USB JPEG pipeline failed") from error + + def close(self) -> None: + with self._condition: + self._closing = True + self._condition.notify() + self._thread.join(timeout=3.0) + + def _add_sample(self, name: str, start_time: float) -> None: + milliseconds = (time.perf_counter() - start_time) * 1000.0 + with self._condition: + self._samples.append((name, milliseconds)) + + def _add_samples(self, samples: tuple[tuple[str, float], ...]) -> None: + if not samples: + return + with self._condition: + self._samples.extend(samples) + + def _take_pending(self) -> tuple[bytes, int, int] | None: + with self._condition: + while self._pending_rgba is None and not self._closing: + self._condition.wait(timeout=0.1) + if self._pending_rgba is None: + return None + pending = self._pending_rgba + self._pending_rgba = None + self._condition.notify_all() + return pending + + def _run(self) -> None: + while True: + pending = self._take_pending() + if pending is None: + return + rgba, width, height = pending + try: + self.usb_display.clear_profile_samples() + profile_stage = time.perf_counter() + jpeg = self.usb_display.encode_jpeg(rgba, width, height) + self._add_sample("usb_async.encode_jpeg", profile_stage) + + profile_stage = time.perf_counter() + self.usb_display.send_jpeg(jpeg) + self._add_sample("usb_async.send_jpeg", profile_stage) + self._add_samples(self.usb_display.profile_samples()) + self.usb_display.clear_profile_samples() + except BaseException as exc: + with self._condition: + self._error = exc + self._condition.notify_all() + return diff --git a/selfdrive/carrot/cluster/cluster_utils.py b/selfdrive/carrot/cluster/cluster_utils.py new file mode 100644 index 000000000..adcf1a5fb --- /dev/null +++ b/selfdrive/carrot/cluster/cluster_utils.py @@ -0,0 +1,42 @@ +from __future__ import annotations + +from cluster_config import ( + TURN_SIGNAL_BLINK_ON_SECONDS, + TURN_SIGNAL_BLINK_PERIOD_SECONDS, +) + + +def clamp(value: float, low: float, high: float) -> float: + return max(low, min(high, value)) + + +def smoothstep(value: float) -> float: + value = clamp(value, 0.0, 1.0) + return value * value * (3.0 - 2.0 * value) + + +def blend_color( + color: tuple[int, int, int], + target: tuple[int, int, int], + amount: float, +) -> tuple[int, int, int]: + amount = clamp(amount, 0.0, 1.0) + return tuple( + int(round(channel + (target_channel - channel) * amount)) + for channel, target_channel in zip(color, target) + ) + + +def lighten(color: tuple[int, int, int], amount: float) -> tuple[int, int, int]: + return blend_color(color, (255, 255, 255), amount) + + +def darken(color: tuple[int, int, int], amount: float) -> tuple[int, int, int]: + return blend_color(color, (0, 0, 0), amount) + + +def blink_visible(now: float, started_at: float, until: float) -> bool: + if now >= until: + return False + elapsed = now - started_at + return elapsed % TURN_SIGNAL_BLINK_PERIOD_SECONDS < TURN_SIGNAL_BLINK_ON_SECONDS diff --git a/selfdrive/carrot/cluster/main.py b/selfdrive/carrot/cluster/main.py new file mode 100644 index 000000000..e2e0da745 --- /dev/null +++ b/selfdrive/carrot/cluster/main.py @@ -0,0 +1,626 @@ +from __future__ import annotations + +import argparse +import gc +from dataclasses import replace +import time +from pathlib import Path + +from cluster_config import ( + CLUSTER_LIVE_FPS_PARAM, + CLUSTER_THEME_PARAM, + DESIGN_HEIGHT, + DESIGN_WIDTH, + normalize_cluster_live_fps, + normalize_cluster_theme_mode, +) +from cluster_gamepad import DualSenseSimulator +from cluster_git_status import GitBranchStatusProvider +from cluster_live import OpenpilotLiveSource +from cluster_models import RouteOverlay, SimulatorInput +from cluster_profile import GcProfileHook, ProfileReporter, freeze_gc_after_init +from cluster_renderer import ClusterUiRenderer +from cluster_route_replay import RouteReplaySource +from cluster_simulator import ClusterSimulator, RandomInputSource +from cluster_usb_display import TuringUsbDisplay +from cluster_usb_pipeline import AsyncJpegUsbPipeline + +DEFAULT_FPS = 0.0 +THEME_PARAM_POLL_SECONDS = 1.0 +FPS_PARAM_POLL_SECONDS = 1.0 + + +class ClusterThemeParamReader: + def __init__(self) -> None: + self._params = None + try: + from openpilot.common.params import Params + + self._params = Params() + except Exception: + pass + + def read(self) -> str: + if self._params is None: + return "auto" + try: + return normalize_cluster_theme_mode(self._params.get_int(CLUSTER_THEME_PARAM)) + except Exception: + return "auto" + + +class ClusterLiveFpsParamReader: + def __init__(self) -> None: + self._params = None + try: + from openpilot.common.params import Params + + self._params = Params() + except Exception: + pass + + def read(self) -> float: + if self._params is None: + return 0.0 + try: + return normalize_cluster_live_fps(self._params.get_int(CLUSTER_LIVE_FPS_PARAM)) + except Exception: + return 0.0 + + +def route_overlay_for_mode(overlay: RouteOverlay | None, mode: str) -> RouteOverlay | None: + if overlay is None or mode == "off": + return None + if mode == "compact": + return replace(overlay, data_lines=overlay.data_lines[:4]) + return overlay + + +def run_demo( + duration_seconds: float | None, + target_fps: float, + live_fps_param_reader: ClusterLiveFpsParamReader | None, + input_mode: str, + output_mode: str, + controller_index: int, + width: int | None, + height: int | None, + usb_brightness: int, + usb_display_fps: int, + usb_codec: str, + usb_jpeg_quality: int, + usb_jpeg_encoder: str, + usb_fast_write: bool, + usb_wait_frame_ack: bool, + usb_async: bool, + usb_frame_drain_attempts: int, + usb_frame_drain_timeout_ms: int, + usb_fast_drain_attempts: int, + usb_fast_drain_timeout_ms: int, + route_path: Path, + route_log: str, + route_overlay_mode: str, + route_loop: bool, + route_replay_speed: float, + route_start_segment: int | None, + route_max_segments: int | None, + live_include_can: bool, + live_timeout_ms: int, + profile_render: bool, + profile_interval_s: float, + render_msaa: bool, + gc_freeze_init: bool, + theme_mode: str | None, +) -> None: + profile = ProfileReporter(profile_render, profile_interval_s) + gc_hook = GcProfileHook(profile) if profile_render else None + if gc_hook is not None: + gc.callbacks.append(gc_hook) + usb_display: TuringUsbDisplay | None = None + usb_pipeline: AsyncJpegUsbPipeline | None = None + if output_mode in ("usb", "both"): + usb_display = TuringUsbDisplay( + brightness=usb_brightness, + display_fps=usb_display_fps, + jpeg_quality=usb_jpeg_quality, + jpeg_encoder=usb_jpeg_encoder, + fast_write=usb_fast_write, + wait_for_frame_ack=usb_wait_frame_ack, + frame_drain_attempts=usb_frame_drain_attempts, + frame_drain_timeout_ms=usb_frame_drain_timeout_ms, + fast_frame_drain_attempts=usb_fast_drain_attempts, + fast_frame_drain_timeout_ms=usb_fast_drain_timeout_ms, + ) + usb_display.set_profile_enabled(profile_render) + profile_stage = time.perf_counter() + usb_display.open() + profile.add_elapsed("usb.open", profile_stage) + profile.add_samples(usb_display.profile_samples()) + usb_display.clear_profile_samples() + if usb_async and usb_codec == "jpeg": + usb_pipeline = AsyncJpegUsbPipeline(usb_display) + usb_pipeline.start() + + frame_width = width or (usb_display.landscape_width if usb_display is not None else DESIGN_WIDTH) + frame_height = height or (usb_display.landscape_height if usb_display is not None else DESIGN_HEIGHT) + theme_override = normalize_cluster_theme_mode(theme_mode) if theme_mode is not None else None + theme_param_reader = ClusterThemeParamReader() if theme_override is None else None + active_theme_mode = theme_override or (theme_param_reader.read() if theme_param_reader is not None else "auto") + renderer = ClusterUiRenderer( + frame_width, + frame_height, + target_fps=max(0, int(round(target_fps))), + msaa_4x=render_msaa, + theme_mode=active_theme_mode, + ) + renderer.set_profile_enabled(profile_render) + git_status_provider = GitBranchStatusProvider(Path(__file__).resolve().parent) + simulator = ClusterSimulator() if input_mode in ("random", "gamepad") else None + controller = DualSenseSimulator(controller_index) if input_mode == "gamepad" else None + random_input = RandomInputSource() if input_mode == "random" else None + live_source = OpenpilotLiveSource(include_can=live_include_can, timeout_ms=live_timeout_ms) if input_mode == "live" else None + route_source = None + if input_mode == "route": + profile_stage = time.perf_counter() + route_source = RouteReplaySource.load(route_path, route_log, route_start_segment, route_max_segments) + profile.add_elapsed("source.route_load_initial", profile_stage) + if route_source is not None: + print( + f"Loaded route replay buffer: {len(route_source.frames)} frames, " + f"{route_source.duration:.1f}s from " + f"{route_source.loaded_file_count}/{len(route_source.source_files)} {route_log} files" + ) + start_time = time.perf_counter() + last_frame_time = start_time + last_report_time = start_time + next_theme_param_read = start_time + next_fps_param_read = start_time + FPS_PARAM_POLL_SECONDS + report_frames = 0 + frame_interval = 1.0 / target_fps if target_fps > 0 else 0.0 + + try: + renderer.open(hidden=output_mode == "usb") + profile.add_samples(renderer.profile_samples()) + renderer.clear_profile_samples() + if gc_freeze_init: + freeze_gc_after_init(profile) + while True: + frame_start_time = time.perf_counter() + renderer.clear_profile_samples() + if usb_display is not None and usb_pipeline is None: + usb_display.clear_profile_samples() + if usb_pipeline is not None: + usb_pipeline.check_error() + profile.add_samples(usb_pipeline.profile_samples()) + if output_mode in ("window", "both") and renderer.should_close(): + break + + now = time.perf_counter() + if theme_override is None and now >= next_theme_param_read: + next_theme_mode = theme_param_reader.read() if theme_param_reader is not None else "auto" + if next_theme_mode != renderer.theme_mode: + renderer.set_theme_mode(next_theme_mode) + next_theme_param_read = now + THEME_PARAM_POLL_SECONDS + if live_fps_param_reader is not None and now >= next_fps_param_read: + next_target_fps = live_fps_param_reader.read() + if next_target_fps != target_fps: + target_fps = next_target_fps + frame_interval = 1.0 / target_fps if target_fps > 0 else 0.0 + renderer.set_target_fps(max(0, int(round(target_fps)))) + fps_text = "uncapped" if target_fps == 0 else f"{target_fps:.1f} Hz" + print(f"{CLUSTER_LIVE_FPS_PARAM} updated: {fps_text}", flush=True) + next_fps_param_read = now + FPS_PARAM_POLL_SECONDS + if duration_seconds is not None and now - start_time >= duration_seconds: + break + + dt = max(0.001, now - last_frame_time) + last_frame_time = now + if live_source is not None: + profile_stage = time.perf_counter() + state = live_source.update() + state = replace(state, center_clock_text=time.strftime("%H:%M:%S")) + source_status = live_source.status_text() + profile.add_elapsed("source.live_update", profile_stage) + elif route_source is not None: + profile_stage = time.perf_counter() + playback_seconds = (now - start_time) * route_replay_speed + if route_source.is_finished(playback_seconds, route_loop): + break + state = route_source.state_at( + playback_seconds, + route_loop, + include_overlay=route_overlay_mode != "off", + ) + state = replace(state, route_overlay=route_overlay_for_mode(state.route_overlay, route_overlay_mode)) + source_status = route_source.status_text(playback_seconds, route_loop) + profile.add_elapsed("source.route_update", profile_stage) + elif controller is None: + profile_stage = time.perf_counter() + command = random_input.update(dt) if random_input is not None else SimulatorInput() + source_status = ( + f"random R2={command.throttle:.2f} " + f"L2={command.brake:.2f} LSX={command.steering:+.2f}" + ) + if simulator is None: + raise RuntimeError("simulator is not available for random input") + state = simulator.update(command, dt) + profile.add_elapsed("source.random_update", profile_stage) + else: + profile_stage = time.perf_counter() + command = controller.read_input() + source_status = controller.status_text() + if simulator is None: + raise RuntimeError("simulator is not available for gamepad input") + state = simulator.update(command, dt) + profile.add_elapsed("source.gamepad_update", profile_stage) + + state = replace(state, git_status=git_status_provider.status()) + + if output_mode in ("window", "both"): + profile_stage = time.perf_counter() + renderer.render_frame(state) + profile.add_elapsed("main.window_render_total", profile_stage) + if usb_display is not None: + if usb_codec == "jpeg": + if usb_pipeline is not None: + profile_stage = time.perf_counter() + usb_pipeline.wait_for_capacity() + profile.add_elapsed("main.usb_async.wait_capacity", profile_stage) + profile.add_samples(usb_pipeline.profile_samples()) + + profile_stage = time.perf_counter() + rgba, image_width, image_height = renderer.render_to_rgba_bytes( + state, + portrait_upload=True, + ) + profile.add_elapsed("main.usb.render_rgba_total", profile_stage) + + profile_stage = time.perf_counter() + usb_pipeline.submit_rgba(rgba, image_width, image_height) + profile.add_elapsed("main.usb_async.submit_rgba", profile_stage) + else: + profile_stage = time.perf_counter() + with renderer.render_to_rgba_buffer(state, portrait_upload=True) as ( + rgba, + image_width, + image_height, + ): + profile.add_elapsed("main.usb.render_rgba_total", profile_stage) + + profile_stage = time.perf_counter() + jpeg = usb_display.encode_jpeg(rgba, image_width, image_height) + profile.add_elapsed("main.usb.encode_jpeg", profile_stage) + + profile_stage = time.perf_counter() + usb_display.send_jpeg(jpeg) + profile.add_elapsed("main.usb.send_jpeg", profile_stage) + else: + profile_stage = time.perf_counter() + png = renderer.render_to_png_bytes(state, portrait_upload=True) + profile.add_elapsed("main.usb.render_png_total", profile_stage) + profile_stage = time.perf_counter() + usb_display.send_png(png) + profile.add_elapsed("main.usb.send_png", profile_stage) + if usb_pipeline is not None: + profile.add_samples(usb_pipeline.profile_samples()) + else: + profile.add_samples(usb_display.profile_samples()) + profile.add_samples(renderer.profile_samples()) + report_frames += 1 + profile.add_elapsed("main.frame_active", frame_start_time) + + if frame_interval > 0.0: + elapsed = time.perf_counter() - frame_start_time + remaining = frame_interval - elapsed + if remaining > 0.0: + profile_stage = time.perf_counter() + time.sleep(remaining) + profile.add_elapsed("main.sleep", profile_stage) + + now = time.perf_counter() + profile.add_elapsed("main.frame_total", frame_start_time) + profile.frame_done() + profile.maybe_report(now) + if now - last_report_time >= 2.0: + actual_fps = report_frames / (now - last_report_time) + lane_status = state.lane_change or ( + "keep" if state.lane_change_phase == "idle" else state.lane_change_phase + ) + print( + f"Refresh {actual_fps:.1f} Hz | " + f"speed={state.speed_kph:5.1f} km/h " + f"accel={state.accel_mps2:+.2f} m/s^2 " + f"limit={state.speed_limit_kph} " + f"lane={lane_status}:{state.lane_change_progress:.2f} " + f"ego_offset={state.ego_lane_offset:+.2f} | " + f"output={output_mode}/{usb_codec if usb_display else 'screen'}" + f"{'-fast' if usb_display and usb_fast_write else ''} " + f"{'async ' if usb_pipeline is not None else ''}" + f"theme={renderer.theme_mode} " + f"view_yaw={state.surround_yaw_deg:+.0f} " + f"{source_status}" + ) + report_frames = 0 + last_report_time = now + finally: + if gc_hook is not None: + try: + gc.callbacks.remove(gc_hook) + except ValueError: + pass + if usb_pipeline is not None: + usb_pipeline.close() + if controller is not None: + controller.close() + if route_source is not None: + route_source.close() + if live_source is not None: + live_source.close() + renderer.close() + + +def parse_args() -> argparse.Namespace: + parser = argparse.ArgumentParser() + parser.add_argument( + "--fps", + type=float, + default=None, + help=( + "Target refresh rate. Use 0 for uncapped/as-fast-as-possible. " + f"Default: 0, except live input reads {CLUSTER_LIVE_FPS_PARAM} when --fps is omitted." + ), + ) + parser.add_argument( + "--duration", + type=float, + default=None, + help="Run for this many seconds. Omit to refresh until the window is closed.", + ) + parser.add_argument( + "--input", + choices=("random", "gamepad", "route", "live"), + default="random", + help="Input source. Use --input live for live openpilot cereal data, or route to replay logs.", + ) + parser.add_argument( + "--output", + choices=("usb", "window", "both"), + default="usb", + help="Render target. usb sends frames to the TURZX USB display. Default: usb.", + ) + parser.add_argument( + "--controller-index", + type=int, + default=0, + help="pygame joystick index for the DualSense controller.", + ) + parser.add_argument("--width", type=int, default=None) + parser.add_argument("--height", type=int, default=None) + parser.add_argument("--usb-brightness", type=int, default=80) + parser.add_argument( + "--usb-display-fps", + type=int, + default=0, + help="Optional TURZX display frame-rate command. Default 0 skips it because some units do not ACK it.", + ) + parser.add_argument("--usb-codec", choices=("jpeg", "png"), default="jpeg") + parser.add_argument("--usb-jpeg-quality", type=int, default=68) + parser.add_argument( + "--usb-jpeg-encoder", + choices=("auto", "pillow", "turbojpeg"), + default="auto", + help="JPEG encoder for USB output. auto tries turbojpeg first and falls back to Pillow.", + ) + parser.add_argument( + "--usb-fast", + action="store_true", + help="Use short pre-write USB input drain before frame uploads. Useful only after no-ACK USB output is stable.", + ) + parser.add_argument( + "--usb-wait-frame-ack", + action="store_true", + help="Wait for a TURZX response after each frame upload. Default skips ACK because some units never reply.", + ) + parser.add_argument( + "--usb-async", + action="store_true", + help="Encode and send JPEG USB frames on a background thread to overlap transport with the next render.", + ) + parser.add_argument( + "--usb-frame-drain-attempts", + type=int, + default=2, + help="IN endpoint drain read attempts before normal no-ACK frame uploads. Default: 2.", + ) + parser.add_argument( + "--usb-frame-drain-timeout-ms", + type=int, + default=2, + help="Per-read IN endpoint drain timeout before normal no-ACK frame uploads. Default: 2.", + ) + parser.add_argument( + "--usb-fast-drain-attempts", + type=int, + default=3, + help="IN endpoint drain read attempts before --usb-fast no-ACK frame uploads. Default: 3.", + ) + parser.add_argument( + "--usb-fast-drain-timeout-ms", + type=int, + default=2, + help="Per-read IN endpoint drain timeout before --usb-fast no-ACK frame uploads. Default: 2.", + ) + parser.add_argument( + "--route", + type=Path, + default=Path("route"), + help="Route directory or log file to replay when --input route is selected.", + ) + parser.add_argument( + "--route-log", + choices=("qlog", "rlog"), + default="rlog", + help="Route log type to read. rlog has full corner radar data; qlog is faster but downsampled.", + ) + parser.add_argument( + "--route-overlay", + choices=("compact", "full", "off"), + default="compact", + help="Route replay debug overlay. Default compact shows the replay camera/data panel; use off for performance tests.", + ) + parser.add_argument( + "--theme", + choices=("auto", "dark", "light"), + default=None, + help=f"HUD theme override. Default reads {CLUSTER_THEME_PARAM}: 0 auto, 1 dark, 2 light.", + ) + parser.add_argument( + "--route-loop", + action="store_true", + help="Loop route replay instead of stopping at the end.", + ) + parser.add_argument( + "--route-replay-speed", + type=float, + default=1.0, + help="Route playback speed multiplier.", + ) + parser.add_argument( + "--route-start-segment", + type=int, + default=None, + help="First segment index to replay.", + ) + parser.add_argument( + "--route-max-segments", + type=int, + default=None, + help="Maximum number of route segments to replay.", + ) + parser.add_argument( + "--live-no-can", + action="store_true", + help="Disable live CAN subscription. This keeps radarState/modelV2/liveTracks data but skips direct raw CAN-FD parsing.", + ) + parser.add_argument( + "--live-timeout-ms", + type=int, + default=0, + help="SubMaster update timeout for --input live. Default 0 keeps rendering responsive.", + ) + parser.add_argument( + "--profile-render", + action="store_true", + help="Log render, GPU readback, USB encode/send, and input source timings.", + ) + parser.add_argument( + "--profile-interval", + type=float, + default=2.0, + help="Seconds between --profile-render timing summaries. Default: 2.0.", + ) + parser.add_argument( + "--render-msaa", + action="store_true", + help="Enable raylib 4x MSAA config hint. Default off for maximum SD845 throughput.", + ) + parser.add_argument( + "--no-gc-freeze", + action="store_true", + help="Disable post-init gc.freeze(). Default enabled to avoid long gen2 pauses during USB rendering.", + ) + args = parser.parse_args() + args.fps_from_cli = args.fps is not None + if args.fps is None: + args.fps = DEFAULT_FPS + if args.fps < 0: + parser.error("--fps must be 0 or greater") + if (args.width is not None and args.width <= 0) or (args.height is not None and args.height <= 0): + parser.error("--width and --height must be greater than 0") + if not 0 <= args.usb_brightness <= 100: + parser.error("--usb-brightness must be between 0 and 100") + if not 0 <= args.usb_display_fps <= 255: + parser.error("--usb-display-fps must be between 0 and 255") + if not 1 <= args.usb_jpeg_quality <= 95: + parser.error("--usb-jpeg-quality must be between 1 and 95") + if args.usb_async and args.usb_codec != "jpeg": + parser.error("--usb-async only supports --usb-codec jpeg") + if args.usb_frame_drain_attempts < 0 or args.usb_fast_drain_attempts < 0: + parser.error("USB drain attempts must be 0 or greater") + if args.usb_frame_drain_timeout_ms < 0 or args.usb_fast_drain_timeout_ms < 0: + parser.error("USB drain timeouts must be 0 or greater") + if args.input == "route" and args.route_replay_speed <= 0: + parser.error("--route-replay-speed must be greater than 0") + if args.route_start_segment is not None and args.route_start_segment < 0: + parser.error("--route-start-segment must be 0 or greater") + if args.route_max_segments is not None and args.route_max_segments <= 0: + parser.error("--route-max-segments must be greater than 0") + if args.profile_interval <= 0: + parser.error("--profile-interval must be greater than 0") + return args + + +def main() -> None: + args = parse_args() + target_fps = args.fps + fps_source = "--fps" if args.fps_from_cli else "default" + live_fps_param_reader = None + if args.input == "live" and not args.fps_from_cli: + live_fps_param_reader = ClusterLiveFpsParamReader() + target_fps = live_fps_param_reader.read() + fps_source = CLUSTER_LIVE_FPS_PARAM + fps_text = "uncapped" if target_fps == 0 else f"{target_fps:.1f} Hz" + size_text = ( + f"{args.width or 'device'}x{args.height or 'device'}" + if args.output in ("usb", "both") + else f"{args.width or DESIGN_WIDTH}x{args.height or DESIGN_HEIGHT}" + ) + print( + f"Refreshing native raylib cluster UI at {fps_text} " + f"input={args.input} output={args.output}: {size_text} fps_source={fps_source}" + ) + try: + run_demo( + args.duration, + target_fps, + live_fps_param_reader, + args.input, + args.output, + args.controller_index, + args.width, + args.height, + args.usb_brightness, + args.usb_display_fps, + args.usb_codec, + args.usb_jpeg_quality, + args.usb_jpeg_encoder, + args.usb_fast, + args.usb_wait_frame_ack, + args.usb_async, + args.usb_frame_drain_attempts, + args.usb_frame_drain_timeout_ms, + args.usb_fast_drain_attempts, + args.usb_fast_drain_timeout_ms, + args.route, + args.route_log, + args.route_overlay, + args.route_loop, + args.route_replay_speed, + args.route_start_segment, + args.route_max_segments, + not args.live_no_can, + args.live_timeout_ms, + args.profile_render, + args.profile_interval, + args.render_msaa, + not args.no_gc_freeze, + args.theme, + ) + except KeyboardInterrupt: + print("\nStopped.") + except RuntimeError as exc: + raise SystemExit(f"Error: {exc}") from exc + + +if __name__ == "__main__": + main() diff --git a/selfdrive/carrot/cluster/requirements.txt b/selfdrive/carrot/cluster/requirements.txt new file mode 100644 index 000000000..53b2c43e5 --- /dev/null +++ b/selfdrive/carrot/cluster/requirements.txt @@ -0,0 +1,8 @@ +raylib==5.5.0.4 +pygame==2.6.1 +Pillow==12.2.0 +pycryptodome==3.23.0 +pyserial==3.5 +pyusb==1.3.1 +pycapnp==2.2.2 +zstandard==0.25.0 diff --git a/selfdrive/carrot/cluster_autorun.py b/selfdrive/carrot/cluster_autorun.py new file mode 100644 index 000000000..716c4c558 --- /dev/null +++ b/selfdrive/carrot/cluster_autorun.py @@ -0,0 +1,296 @@ +#!/usr/bin/env python3 +from __future__ import annotations + +import os +import select +import socket +import sys +import time +import traceback +from pathlib import Path + +from openpilot.common.params import Params + + +CARROT_DIR = Path(__file__).resolve().parent +CLUSTER_DIR = CARROT_DIR / "cluster" +OPENPILOT_ROOT = CARROT_DIR.parents[1] +HUD_PARAM = "ClusterHud" +RETRY_INTERVAL_S = 5.0 +HUD_CHECK_INTERVAL_S = 5.0 +USB_FALLBACK_SCAN_INTERVAL_S = 60.0 +NETLINK_KOBJECT_UEVENT = 15 +AUTORUN_FPS_ENV = "CLUSTER_AUTORUN_FPS" +AUTORUN_DEFAULT_ENV = { + "CLUSTER_REALTIME": "0", + AUTORUN_FPS_ENV: "20", +} + + +def _ensure_cluster_paths() -> None: + for path in (OPENPILOT_ROOT, CLUSTER_DIR): + path_text = str(path) + if path_text not in sys.path: + sys.path.insert(0, path_text) + + +def _read_hud_mode(params: Params) -> int: + try: + return int(params.get_int(HUD_PARAM)) + except Exception as exc: + print(f"[cluster_autorun] failed to read {HUD_PARAM}: {exc}", flush=True) + return 0 + + +def _cluster_args() -> list[str]: + args = [ + "--input", + "live", + "--output", + "usb", + "--usb-codec", + "jpeg", + "--usb-jpeg-quality", + "68", + "--live-no-can", + ] + fps = os.environ.get(AUTORUN_FPS_ENV, "20").strip() + if fps: + args.extend(["--fps", fps]) + return args + + +def _run_cluster_once() -> None: + from selfdrive.carrot import cluster_run + + previous_argv = sys.argv[:] + previous_env = {key: os.environ.get(key) for key in AUTORUN_DEFAULT_ENV} + try: + for key, value in AUTORUN_DEFAULT_ENV.items(): + os.environ.setdefault(key, value) + sys.argv = [previous_argv[0], *_cluster_args()] + cluster_run.main() + finally: + sys.argv = previous_argv + for key, value in previous_env.items(): + if value is None: + os.environ.pop(key, None) + else: + os.environ[key] = value + + +def _open_usb_uevent_socket() -> socket.socket | None: + if not hasattr(socket, "AF_NETLINK"): + return None + + last_error: OSError | None = None + for port_id in (0, os.getpid()): + sock: socket.socket | None = None + try: + sock = socket.socket( + socket.AF_NETLINK, + socket.SOCK_DGRAM, + getattr(socket, "NETLINK_KOBJECT_UEVENT", NETLINK_KOBJECT_UEVENT), + ) + sock.bind((port_id, 1)) + sock.setblocking(False) + return sock + except OSError as exc: + last_error = exc + try: + if sock is not None: + sock.close() + except Exception: + pass + + print(f"[cluster_autorun] USB event monitor unavailable: {last_error}", flush=True) + return None + + +def _decode_uevent(payload: bytes) -> dict[str, str]: + event: dict[str, str] = {} + for part in payload.decode("utf-8", errors="replace").split("\0"): + if not part: + continue + if "=" in part: + key, value = part.split("=", 1) + event[key] = value + elif "@" in part: + event.setdefault("ACTION", part.split("@", 1)[0]) + return event + + +def _parse_hex_int(value: str | None) -> int | None: + if not value: + return None + try: + return int(value, 16) + except ValueError: + return None + + +def _usb_uevent_matches(payload: bytes, expected_product_id: int) -> bool: + from cluster_usb_display import TURZX_USB_VENDOR_ID + + event = _decode_uevent(payload) + if event.get("SUBSYSTEM") != "usb": + return False + + action = event.get("ACTION") + if action not in ("add", "bind", "change", "move"): + return False + + product = event.get("PRODUCT") + if product: + parts = product.split("/") + if len(parts) >= 2: + vendor_id = _parse_hex_int(parts[0]) + product_id = _parse_hex_int(parts[1]) + return vendor_id == TURZX_USB_VENDOR_ID and product_id == expected_product_id + + vendor_id = _parse_hex_int(event.get("ID_VENDOR_ID")) + product_id = _parse_hex_int(event.get("ID_MODEL_ID")) + if vendor_id is not None or product_id is not None: + return vendor_id == TURZX_USB_VENDOR_ID and product_id == expected_product_id + + return event.get("DEVTYPE") == "usb_device" + + +def _wait_for_usb_uevent(sock: socket.socket | None, timeout_s: float, expected_product_id: int) -> bool: + if timeout_s <= 0: + return False + if sock is None: + time.sleep(timeout_s) + return False + + try: + readable, _, _ = select.select([sock], [], [], timeout_s) + except (OSError, ValueError) as exc: + print(f"[cluster_autorun] USB event wait failed: {exc}", flush=True) + time.sleep(timeout_s) + return False + + if not readable: + return False + + matched = False + while True: + try: + payload = sock.recv(8192) + except BlockingIOError: + return matched + except OSError as exc: + print(f"[cluster_autorun] USB event read failed: {exc}", flush=True) + return matched + matched = _usb_uevent_matches(payload, expected_product_id) or matched + + +def _wait_for_supported_usb_device(params: Params, expected_product_id: int, reason: str) -> int | None: + from cluster_usb_display import find_supported_usb_product, product_id_for_hud_mode, product_label + + print( + f"[cluster_autorun] {product_label(expected_product_id)} {reason}; " + "waiting for USB event", + flush=True, + ) + usb_events = _open_usb_uevent_socket() + if usb_events is None: + print( + f"[cluster_autorun] falling back to USB scan every {USB_FALLBACK_SCAN_INTERVAL_S:.0f}s", + flush=True, + ) + else: + print( + f"[cluster_autorun] fallback USB scan every {USB_FALLBACK_SCAN_INTERVAL_S:.0f}s", + flush=True, + ) + + next_hud_check = time.monotonic() + next_fallback_scan = time.monotonic() + USB_FALLBACK_SCAN_INTERVAL_S + try: + while True: + now = time.monotonic() + if now >= next_hud_check: + hud_mode = _read_hud_mode(params) + current_product_id = product_id_for_hud_mode(hud_mode) + if current_product_id is None: + print(f"[cluster_autorun] {HUD_PARAM}={hud_mode}; stopping cluster HUD", flush=True) + return None + if current_product_id != expected_product_id: + expected_product_id = current_product_id + next_fallback_scan = now + next_hud_check = now + HUD_CHECK_INTERVAL_S + + now = time.monotonic() + if now >= next_fallback_scan: + found_product_id = find_supported_usb_product(expected_product_id) + if found_product_id is not None: + return found_product_id + next_fallback_scan = now + USB_FALLBACK_SCAN_INTERVAL_S + + wait_s = max(0.1, min(next_hud_check, next_fallback_scan) - time.monotonic()) + if _wait_for_usb_uevent(usb_events, wait_s, expected_product_id): + found_product_id = find_supported_usb_product(expected_product_id) + if found_product_id is not None: + return found_product_id + finally: + if usb_events is not None: + usb_events.close() + + +def main() -> None: + _ensure_cluster_paths() + from cluster_usb_display import find_supported_usb_product, product_id_for_hud_mode, product_label + + params = Params() + hud_mode = _read_hud_mode(params) + expected_product_id = product_id_for_hud_mode(hud_mode) + if expected_product_id is None: + print(f"[cluster_autorun] {HUD_PARAM}={hud_mode}; HUD disabled", flush=True) + return + + found_product_id = find_supported_usb_product(expected_product_id) + if found_product_id is None: + found_product_id = _wait_for_supported_usb_device( + params, + expected_product_id, + "not found at startup", + ) + if found_product_id is None: + return + + print(f"[cluster_autorun] found {product_label(found_product_id)}; starting cluster HUD", flush=True) + while True: + hud_mode = _read_hud_mode(params) + expected_product_id = product_id_for_hud_mode(hud_mode) + if expected_product_id is None: + print(f"[cluster_autorun] {HUD_PARAM}={hud_mode}; stopping cluster HUD", flush=True) + return + + if find_supported_usb_product(expected_product_id) is None: + found_product_id = _wait_for_supported_usb_device( + params, + expected_product_id, + "disconnected", + ) + if found_product_id is None: + return + print(f"[cluster_autorun] found {product_label(found_product_id)}; starting cluster HUD", flush=True) + + try: + _run_cluster_once() + print( + f"[cluster_autorun] cluster HUD exited; retrying in {RETRY_INTERVAL_S:.0f}s", + flush=True, + ) + except Exception as exc: + print( + f"[cluster_autorun] cluster HUD failed: {exc}; retrying in {RETRY_INTERVAL_S:.0f}s", + flush=True, + ) + traceback.print_exc() + time.sleep(RETRY_INTERVAL_S) + + +if __name__ == "__main__": + main() diff --git a/selfdrive/carrot/cluster_run.py b/selfdrive/carrot/cluster_run.py new file mode 100644 index 000000000..8f669036f --- /dev/null +++ b/selfdrive/carrot/cluster_run.py @@ -0,0 +1,63 @@ +#!/usr/bin/env python3 +from __future__ import annotations + +import locale +import os +import sys +from pathlib import Path + + +CARROT_DIR = Path(__file__).resolve().parent +BUNDLE_DIR = CARROT_DIR / "cluster" +OPENPILOT_ROOT = CARROT_DIR.parents[1] + +for path in (OPENPILOT_ROOT, BUNDLE_DIR): + path_text = str(path) + if path_text not in sys.path: + sys.path.insert(0, path_text) + + +def configure_cluster_locale() -> None: + for candidate in ("C.UTF-8", "C"): + try: + locale.setlocale(locale.LC_ALL, candidate) + except locale.Error: + continue + os.environ["LC_ALL"] = candidate + os.environ["LC_CTYPE"] = candidate + os.environ["LANG"] = candidate + return + + +def configure_cluster_realtime() -> None: + realtime_enabled = os.environ.get("CLUSTER_REALTIME", "0").strip().lower() in ("1", "true", "yes", "on") + if not realtime_enabled: + return + + try: + from openpilot.common.realtime import config_realtime_process + + cores_text = os.environ.get("CLUSTER_REALTIME_CORES", "0,1,2,3") + cores = [int(core.strip()) for core in cores_text.split(",") if core.strip()] + priority = int(os.environ.get("CLUSTER_REALTIME_PRIORITY", "55")) + config_realtime_process(cores, priority) + print(f"[cluster_run] realtime enabled cores={cores} priority={priority}", flush=True) + except Exception as exc: + print(f"[cluster_run] failed to configure realtime process: {exc}", flush=True) + + +def main() -> None: + configure_cluster_locale() + args = sys.argv[1:] + if "--input" not in args: + args = ["--input", "live", *args] + sys.argv = [sys.argv[0], *args] + + configure_cluster_realtime() + from main import main as cluster_main + + cluster_main() + + +if __name__ == "__main__": + main() diff --git a/selfdrive/carrot_settings.json b/selfdrive/carrot_settings.json index 7a3e3289d..1d9633d0f 100644 --- a/selfdrive/carrot_settings.json +++ b/selfdrive/carrot_settings.json @@ -2272,6 +2272,54 @@ "max": 3, "default": 0, "unit": 1 + }, + { + "group": "화면", + "egroup": "DISPLAY", + "cgroup": "显示", + "name": "ClusterHud", + "title": "외부 HUD 활성화(0)", + "descr": "0: 끄기\n1: TURZX 9.2인치\n2: TURZX 12.3인치", + "etitle": "External HUD Display(0)", + "edescr": "0: Off\n1: TURZX 9.2 inch\n2: TURZX 12.3 inch", + "ctitle": "外部 HUD 显示(0)", + "cdescr": "0: 关闭\n1: TURZX 9.2 英寸\n2: TURZX 12.3 英寸", + "min": 0, + "max": 2, + "default": 0, + "unit": 1 + }, + { + "group": "화면", + "egroup": "DISPLAY", + "cgroup": "显示", + "name": "ClusterHudTheme", + "title": "외부 HUD 테마(0)", + "descr": "0: 자동\n1: 다크\n2: 라이트", + "etitle": "External HUD Theme(0)", + "edescr": "0: Auto\n1: Dark\n2: Light", + "ctitle": "外部 HUD 主题(0)", + "cdescr": "0: 自动\n1: 深色\n2: 浅色", + "min": 0, + "max": 2, + "default": 0, + "unit": 1 + }, + { + "group": "화면", + "egroup": "DISPLAY", + "cgroup": "显示", + "name": "ClusterHudLiveFps", + "title": "외부 HUD 라이브 FPS 제한(0)", + "descr": "0: 무제한\n1: 10 FPS\n2: 20 FPS\n3: 30 FPS", + "etitle": "External HUD Live FPS Limit(0)", + "edescr": "0: Uncapped\n1: 10 FPS\n2: 20 FPS\n3: 30 FPS", + "ctitle": "外部 HUD 实时 FPS 限制(0)", + "cdescr": "0: 不限制\n1: 10 FPS\n2: 20 FPS\n3: 30 FPS", + "min": 0, + "max": 3, + "default": 0, + "unit": 1 } ] diff --git a/system/manager/process_config.py b/system/manager/process_config.py index 71125ffa0..bfe5670a3 100644 --- a/system/manager/process_config.py +++ b/system/manager/process_config.py @@ -85,6 +85,12 @@ def enable_xiaoge_data(started, params, CP: car.CarParams) -> bool: def enable_webrtc(started, params, CP: car.CarParams) -> bool: return params.get_int("DisableDM") == 2 +def enable_cluster_hud(started, params, CP: car.CarParams) -> bool: + try: + return params.get_int("ClusterHud") in (1, 2) + except Exception: + return False + procs = [ DaemonProcess("manage_athenad", "system.athena.manage_athenad", "AthenadPid"), @@ -142,6 +148,7 @@ procs = [ PythonProcess("carrot_man", "selfdrive.carrot.carrot_man", always_run),#, enabled=not PC), PythonProcess("carrot_server", "selfdrive.carrot.carrot_server", always_run), + PythonProcess("carrot_cluster", "selfdrive.carrot.cluster_autorun", enable_cluster_hud, restart_if_crash=True), #Xiaoge data broadcaster (conditional on ShareData param) PythonProcess("xiaoge_data", "selfdrive.carrot.xiaoge_data", enable_xiaoge_data),