From 7a6ddeaed910f1da81f7ec46fab8781bf2d6fe97 Mon Sep 17 00:00:00 2001 From: Jagan Prem Date: Sat, 9 Dec 2023 02:35:31 -0800 Subject: [PATCH 1/9] Add synchronous difficulty calculation from id --- vibrio/lazer.py | 21 +++++++++++++++++++ vibrio/types.py | 56 +++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 77 insertions(+) create mode 100644 vibrio/types.py diff --git a/vibrio/lazer.py b/vibrio/lazer.py index a12d0ba..365b657 100644 --- a/vibrio/lazer.py +++ b/vibrio/lazer.py @@ -20,6 +20,8 @@ import requests from typing_extensions import Self +from vibrio.types import OsuDifficultyAttributes, OsuMod + PACKAGE_DIR = Path(__file__).absolute().parent @@ -228,6 +230,25 @@ def clear_cache(self) -> None: f"Unexpected status code {response.status_code}; check server logs for error details" ) + def calculate_difficulty( + self, beatmap_id: int, mods: list[OsuMod] + ) -> OsuDifficultyAttributes: + with self.session.get( + f"/api/difficulty/{beatmap_id}", + params={ + "beatmapId": beatmap_id, + "mods": [mod.value for mod in mods], + }, + ) as response: + if response.status_code == 200: + return OsuDifficultyAttributes.from_json(response.json()) + elif response.status_code == 404: + raise BeatmapNotFound(f"No beatmap found for id {beatmap_id}") + else: + raise ServerError( + f"Unexpected status code {response.status_code}; check server logs for error details" + ) + class LazerAsync(LazerBase): """Asynchronous implementation for interfacing with osu!lazer functionality.""" diff --git a/vibrio/types.py b/vibrio/types.py new file mode 100644 index 0000000..ba0db29 --- /dev/null +++ b/vibrio/types.py @@ -0,0 +1,56 @@ +from dataclasses import dataclass, fields +from enum import StrEnum +from typing import Any + +from typing_extensions import Self + + +class OsuMod(StrEnum): + NO_FAIL = "NF" + EASY = "EZ" + TOUCH_DEVICE = "TD" + HIDDEN = "HD" + HARD_ROCK = "HR" + SUDDEN_DEATH = "SD" + DOUBLE_TIME = "DT" + RELAX = "RX" + HALF_TIME = "HT" + NIGHTCORE = "NC" + FLASHLIGHT = "FL" + AUTOPLAY = "AT" + SPUN_OUT = "SO" + AUTOPILOT = "AP" + PERFECT = "PF" + + +@dataclass +class OsuDifficultyAttributes: + mods: list[OsuMod] + star_rating: float + max_combo: int + aim_difficulty: float + speed_difficulty: float + speed_note_count: float + flashlight_difficulty: float + slider_factor: float + approach_rate: float + overall_difficulty: float + drain_rate: float + hit_circle_count: int + slider_count: int + spinner_count: int + + @classmethod + def from_json(cls, data: dict[str, Any]) -> Self: + values: dict[str, Any] = {} + data_lowercase = {k.lower(): v for k, v in data.items()} + for field in fields(cls): + name = field.name.replace("_", "") + if field.type is list[OsuMod]: + value = [OsuMod(acronym) for acronym in data_lowercase[name]] + else: + value = data_lowercase[name] + + values[field.name] = value + + return cls(**values) From 0f9399955641d80774192c51ccfef0233ab74a2e Mon Sep 17 00:00:00 2001 From: Jagan Prem Date: Sat, 9 Dec 2023 02:35:53 -0800 Subject: [PATCH 2/9] Add test for synchronous diff calc --- vibrio/tests/test_lazer.py | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/vibrio/tests/test_lazer.py b/vibrio/tests/test_lazer.py index a530536..0c9b73c 100644 --- a/vibrio/tests/test_lazer.py +++ b/vibrio/tests/test_lazer.py @@ -1,6 +1,8 @@ import pytest +from pytest import approx # type: ignore from vibrio import Lazer, LazerAsync +from vibrio.types import OsuMod pytest_plugins = ("pytest_asyncio",) @@ -29,6 +31,19 @@ def test_cache_status(beatmap_id: int): assert not lazer.has_beatmap(beatmap_id) +@pytest.mark.parametrize("beatmap_id", [1001682]) +@pytest.mark.parametrize("mods", [[OsuMod.DOUBLE_TIME]]) +@pytest.mark.parametrize("star_rating", [9.7]) +@pytest.mark.parametrize("max_combo", [3220]) +def test_calculate_difficulty_id( + beatmap_id: int, mods: list[OsuMod], star_rating: float, max_combo: int +): + with Lazer() as lazer: + attributes = lazer.calculate_difficulty(beatmap_id, mods) + assert attributes.star_rating == approx(star_rating, 0.03) + assert attributes.max_combo == max_combo + + @pytest.mark.asyncio @pytest.mark.parametrize("beatmap_id", [1001682]) async def test_get_beatmap_async(beatmap_id: int): From 4b0901cd3b240a55296141235e9676b1cfaf857b Mon Sep 17 00:00:00 2001 From: Jagan Prem Date: Sat, 9 Dec 2023 02:46:27 -0800 Subject: [PATCH 3/9] Update version --- pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index 4aa3e37..4653937 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [project] name = "vibrio" -version = "0.1.8" +version = "0.2.0" readme = "README.md" requires-python = ">=3.9" license = { file = "LICENSE" } From e47f4f51e940f093b759245200ffccecd1e924d7 Mon Sep 17 00:00:00 2001 From: Jagan Prem Date: Sat, 9 Dec 2023 03:08:21 -0800 Subject: [PATCH 4/9] Add synchronous diff calc from beatmap file --- vibrio/lazer.py | 56 +++++++++++++++++++++++++++++++++++-------------- 1 file changed, 40 insertions(+), 16 deletions(-) diff --git a/vibrio/lazer.py b/vibrio/lazer.py index 365b657..f34f1cc 100644 --- a/vibrio/lazer.py +++ b/vibrio/lazer.py @@ -13,7 +13,7 @@ import urllib.parse from abc import ABC from pathlib import Path -from typing import Any, BinaryIO, Optional +from typing import Any, BinaryIO, Optional, TextIO import aiohttp import psutil @@ -231,24 +231,48 @@ def clear_cache(self) -> None: ) def calculate_difficulty( - self, beatmap_id: int, mods: list[OsuMod] + self, + mods: list[OsuMod], + beatmap_id: Optional[int] = None, + beatmap: Optional[TextIO] = None, ) -> OsuDifficultyAttributes: - with self.session.get( - f"/api/difficulty/{beatmap_id}", - params={ - "beatmapId": beatmap_id, - "mods": [mod.value for mod in mods], - }, - ) as response: - if response.status_code == 200: - return OsuDifficultyAttributes.from_json(response.json()) - elif response.status_code == 404: - raise BeatmapNotFound(f"No beatmap found for id {beatmap_id}") - else: - raise ServerError( - f"Unexpected status code {response.status_code}; check server logs for error details" + params = {"mods": [mod.value for mod in mods]} + + if beatmap_id is not None: + if beatmap is not None: + raise ValueError( + "Exactly one of `beatmap_id` and `beatmap_data` should be set" ) + with self.session.get( + f"/api/difficulty/{beatmap_id}", params=params + ) as response: + print(response.text) + if response.status_code == 200: + return OsuDifficultyAttributes.from_json(response.json()) + elif response.status_code == 404: + raise BeatmapNotFound(f"No beatmap found for id {beatmap_id}") + else: + raise ServerError( + f"Unexpected status code {response.status_code}; check server logs for error details" + ) + + elif beatmap is not None: + with self.session.post( + "/api/difficulty", params=params, files={"beatmap": beatmap} + ) as response: + if response.status_code == 200: + return OsuDifficultyAttributes.from_json(response.json()) + else: + raise ServerError( + f"Unexpected status code {response.status_code}; check server logs for error details" + ) + + else: + raise ValueError( + "Exactly one of `beatmap_id` and `beatmap_data` should be set" + ) + class LazerAsync(LazerBase): """Asynchronous implementation for interfacing with osu!lazer functionality.""" From f60637a5e0c10e159360f38b8af65655adc3f717 Mon Sep 17 00:00:00 2001 From: Jagan Prem Date: Sat, 9 Dec 2023 03:08:30 -0800 Subject: [PATCH 5/9] Add test for beatmap file diff calc --- .gitattributes | 1 + vibrio/tests/resources/1001682.osu | 2239 ++++++++++++++++++++++++++++ vibrio/tests/test_lazer.py | 19 +- 3 files changed, 2258 insertions(+), 1 deletion(-) create mode 100644 .gitattributes create mode 100644 vibrio/tests/resources/1001682.osu diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..2945b6c --- /dev/null +++ b/.gitattributes @@ -0,0 +1 @@ +*.osu binary diff --git a/vibrio/tests/resources/1001682.osu b/vibrio/tests/resources/1001682.osu new file mode 100644 index 0000000..db5d7b9 --- /dev/null +++ b/vibrio/tests/resources/1001682.osu @@ -0,0 +1,2239 @@ +osu file format v14 + +[General] +AudioFilename: Dragonforce - Through the Fire and Flames(Lyrics).mp3 +AudioLeadIn: 0 +PreviewTime: 96490 +Countdown: 0 +SampleSet: None +StackLeniency: 0.7 +Mode: 0 +LetterboxInBreaks: 0 +EpilepsyWarning: 1 +WidescreenStoryboard: 1 + +[Editor] +DistanceSpacing: 1.8 +BeatDivisor: 4 +GridSize: 16 +TimelineZoom: 2 + +[Metadata] +Title:Through the Fire and Flames +TitleUnicode:Through the Fire and Flames +Artist:DragonForce +ArtistUnicode:DragonForce +Creator:Ponoyoshi +Version:Myth +Source: +Tags:Guitar Hero 3 III Legends of Rock Within Power Speed metal Solo Vocals Marathon jakomo73 +BeatmapID:1001682 +BeatmapSetID:382400 + +[Difficulty] +HPDrainRate:6.2 +CircleSize:4 +OverallDifficulty:9 +ApproachRate:9.5 +SliderMultiplier:1.6 +SliderTickRate:2 + +[Events] +//Background and Video events +0,0,"background.jpg",0,0 +//Break Periods +2,222390,229390 +2,367166,383241 +//Storyboard Layer 0 (Background) +//Storyboard Layer 1 (Fail) +//Storyboard Layer 2 (Pass) +//Storyboard Layer 3 (Foreground) +//Storyboard Sound Samples + +[TimingPoints] +1390,300,4,3,1,70,1,0 +20590,-100,4,3,1,70,0,0 +75790,-100,4,3,1,70,0,1 +76990,-100,4,3,1,70,0,0 +92590,-100,4,3,1,70,0,1 +94990,-100,4,3,1,70,0,1 +96190,-100,4,3,1,70,0,0 +97390,-83.3333333333333,4,3,1,70,0,1 +112990,-100,4,3,1,70,0,0 +118690,-100,4,3,1,70,0,0 +128290,-100,4,3,1,70,0,0 +162190,-100,4,3,1,70,0,1 +163390,-100,4,3,1,70,0,0 +178990,-100,4,3,1,70,0,1 +182590,-100,4,3,1,70,0,0 +183790,-83.3333333333333,4,3,1,70,0,1 +199390,-200,4,3,1,70,0,0 +200590,-100,4,3,1,70,0,0 +205090,-100,4,3,1,70,0,0 +214690,-100,4,3,1,70,0,0 +231790,-200,4,3,1,70,0,0 +242590,352.941176470588,4,3,1,70,1,0 +253884,-80,4,3,1,70,0,0 +262354,-100,4,3,1,70,0,0 +278590,-100,4,3,1,30,0,0 +279207,-100,4,3,1,70,0,0 +287766,300,4,2,0,70,1,1 +291366,-200,4,3,1,70,0,0 +292566,-100,4,2,0,70,0,1 +296166,-200,4,3,1,70,0,0 +297291,-100,4,3,1,5,0,0 +297366,-200,4,3,1,70,0,0 +299766,-100,4,3,1,70,0,1 +309366,-100,4,3,1,70,0,0 +314166,-100,4,3,1,70,0,1 +321366,-100,4,2,1,70,0,1 +323766,-100,4,3,1,70,0,1 +328416,-100,4,3,1,70,0,0 +364566,-100,4,3,1,70,0,1 +366966,-100,4,3,1,70,0,0 +386166,-83.3333333333333,4,3,1,70,0,1 +402966,-76.9230769230769,4,3,1,70,0,0 +411366,-76.9230769230769,4,2,1,70,0,1 +412566,-76.9230769230769,4,3,1,70,0,0 +419766,-76.9230769230769,4,2,1,70,0,1 +422166,-76.9230769230769,4,3,1,70,0,0 +437766,-200,4,2,1,40,0,0 +438366,-200,4,3,1,60,0,0 +438966,-200,4,3,1,70,0,0 + + +[Colours] +Combo1 : 128,64,0 +Combo2 : 254,184,52 +Combo3 : 128,64,64 +Combo4 : 201,201,201 +Combo5 : 116,116,116 +Combo6 : 124,126,152 + +[HitObjects] +256,192,19390,5,2,0:0:0:0: +257,150,19690,1,2,0:0:0:0: +256,109,19990,1,8,0:0:0:0: +130,289,20590,6,0,L|224:277,1,80,6|0,0:0|0:0,0:0:0:0: +352,259,20890,1,8,0:0:0:0: +177,139,21040,2,0,L|271:151,1,80 +399,169,21340,1,0,0:0:0:0: +270,249,21490,1,8,0:0:0:0: +182,106,21640,1,0,0:0:0:0: +134,321,21790,6,0,L|118:211,1,80,2|0,0:0|0:0,0:0:0:0: +103,102,22090,1,8,0:0:0:0: +52,316,22240,2,0,L|38:205,1,80,0|2,0:0|0:0,0:0:0:0: +24,98,22540,1,0,0:0:0:0: +122,241,22690,1,8,0:0:0:0: +182,106,22840,1,0,0:0:0:0: +248,325,22990,6,0,L|254:237,1,80,6|0,0:0|0:0,0:0:0:0: +267,103,23290,1,8,0:0:0:0: +413,255,23440,2,0,B|372:265|372:265|316:250,1,80,0|2,0:0|0:0,0:0:0:0: +191,205,23740,1,0,0:0:0:0: +321,337,23890,1,8,0:0:0:0: +367,184,24040,1,0,0:0:0:0: +234,373,24190,6,0,L|231:289,1,80,2|0,0:0|0:0,0:0:0:0: +230,147,24490,1,8,0:0:0:0: +103,333,24640,2,0,L|113:235,1,80,0|2,0:0|0:0,0:0:0:0: +125,117,24940,1,0,0:0:0:0: +17,201,25090,1,8,0:0:0:0: +200,303,25240,1,0,0:0:0:0: +200,303,25315,1,0,0:0:0:0: +200,303,25390,6,0,L|205:198,1,80,6|0,0:0|0:0,0:0:0:0: +210,79,25690,1,8,0:0:0:0: +48,228,25840,2,0,B|94:237|94:237|145:232,1,80,0|2,0:0|0:0,0:0:0:0: +279,217,26140,1,0,0:0:0:0: +125,117,26290,1,8,0:0:0:0: +290,40,26440,1,0,0:0:0:0: +429,197,26590,6,0,L|317:184,1,80,2|0,0:0|0:0,0:0:0:0: +206,169,26890,1,8,0:0:0:0: +30,300,27040,2,0,L|135:289,1,80,0|2,0:0|0:0,0:0:0:0: +254,276,27340,1,0,0:0:0:0: +100,176,27490,1,8,0:0:0:0: +265,99,27640,1,0,0:0:0:0: +254,276,27790,6,0,L|263:335,3,40,6|0|0|0,0:0|0:0|0:0|0:0,0:0:0:0: +349,267,28090,1,2,0:0:0:0: +332,230,28165,1,0,0:0:0:0: +325,191,28240,1,0,0:0:0:0: +327,151,28315,1,0,0:0:0:0: +338,113,28390,2,0,L|365:73,3,40,8|0|0|0,0:0|0:0|0:0|0:0,0:0:0:0: +275,45,28690,1,2,0:0:0:0: +237,55,28765,1,0,0:0:0:0: +197,54,28840,1,0,0:0:0:0: +159,42,28915,1,0,0:0:0:0: +122,25,28990,6,0,L|96:-5,3,40,2|0|0|0,0:0|0:0|0:0|0:0,0:0:0:0: +44,114,29290,2,0,L|6:107,3,40,2|0|0|0,0:0|0:0|0:0|0:0,0:0:0:0: +89,208,29590,1,8,0:0:0:0: +177,264,29740,2,0,B|188:212|188:212|183:198|183:198|197:151|197:151|189:100,1,160 +272,76,30190,6,0,L|287:165,1,80,6|0,0:0|0:0,0:0:0:0: +314,304,30490,1,8,0:0:0:0: +458,201,30640,2,0,B|413:195|413:195|374:205,1,80,0|2,0:0|0:0,0:0:0:0: +246,258,30940,1,0,0:0:0:0: +272,76,31090,1,8,0:0:0:0: +307,189,31240,1,0,0:0:0:0: +161,235,31390,6,0,L|57:221,1,80,2|0,0:0|0:0,0:0:0:0: +192,81,31690,1,8,0:0:0:0: +192,81,31840,2,0,P|177:122|178:182,1,80,0|2,0:0|0:0,0:0:0:0: +220,300,32140,1,0,0:0:0:0: +395,240,32290,1,8,0:0:0:0: +264,110,32440,1,0,0:0:0:0: +303,318,32590,6,0,P|306:267|315:214,1,80,6|0,0:0|0:0,0:0:0:0: +368,106,32890,1,8,0:0:0:0: +170,201,33040,2,0,P|218:208|261:198,1,80,0|2,0:0|0:0,0:0:0:0: +368,106,33340,1,0,0:0:0:0: +193,48,33490,1,8,0:0:0:0: +330,3,33640,1,0,0:0:0:0: +248,202,33790,6,0,P|248:164|262:120,1,80,2|0,0:0|0:0,0:0:0:0: +376,275,34090,1,8,0:0:0:0: +376,275,34240,2,0,P|379:332|365:361,1,80,0|2,0:0|0:0,0:0:0:0: +248,202,34540,1,0,0:0:0:0: +437,167,34690,1,8,0:0:0:0: +306,307,34840,1,0,0:0:0:0: +170,196,34990,6,0,P|227:193|256:207,1,80,6|0,0:0|0:0,0:0:0:0: +306,307,35290,1,8,0:0:0:0: +125,340,35440,2,0,B|110:299|110:299|110:243,1,80,0|2,0:0|0:0,0:0:0:0: +109,117,35740,1,0,0:0:0:0: +192,286,35890,1,8,0:0:0:0: +266,142,36040,1,0,0:0:0:0: +306,307,36190,6,0,L|316:216,1,80,2|0,0:0|0:0,0:0:0:0: +334,89,36490,1,8,0:0:0:0: +192,286,36640,2,0,L|202:195,1,80,0|2,0:0|0:0,0:0:0:0: +216,63,36940,1,0,0:0:0:0: +120,220,37090,1,8,0:0:0:0: +80,82,37240,1,0,0:0:0:0: +251,220,37390,5,6,0:0:0:0: +269,228,37465,1,0,0:0:0:0: +289,231,37540,1,0,0:0:0:0: +309,227,37615,1,0,0:0:0:0: +326,218,37690,1,8,0:0:0:0: +340,203,37765,1,0,0:0:0:0: +349,186,37840,1,0,0:0:0:0: +352,165,37915,1,0,0:0:0:0: +348,144,37990,6,0,L|336:86,3,40,8|0|0|0,0:0|0:0|0:0|0:0,0:0:0:0: +272,48,38290,2,0,L|260:106,3,40,8|0|0|0,0:0|0:0|0:0|0:0,0:0:0:0: +181,115,38590,5,6,0:0:0:0: +147,94,38665,1,0,0:0:0:0: +108,94,38740,1,0,0:0:0:0: +75,117,38815,1,0,0:0:0:0: +60,153,38890,1,8,0:0:0:0: +67,192,38965,1,0,0:0:0:0: +95,220,39040,1,0,0:0:0:0: +133,229,39115,1,0,0:0:0:0: +170,215,39190,5,8,0:0:0:0: +203,194,39265,1,0,0:0:0:0: +242,194,39340,1,0,0:0:0:0: +275,217,39415,1,0,0:0:0:0: +290,253,39490,1,8,0:0:0:0: +283,292,39565,1,0,0:0:0:0: +255,320,39640,1,0,0:0:0:0: +217,329,39715,1,0,0:0:0:0: +180,315,39790,1,6,0:0:0:0: +176,240,42190,5,4,0:0:0:0: +416,152,44590,1,4,0:0:0:0: +87,42,46990,5,6,0:0:0:0: +244,64,47140,1,0,0:0:0:0: +244,64,47215,1,0,0:0:0:0: +244,64,47290,1,8,0:0:0:0: +130,152,47440,1,0,0:0:0:0: +130,152,47515,1,0,0:0:0:0: +130,152,47590,2,0,L|113:243,1,80,8|0,0:0|0:0,0:0:0:0: +195,229,47890,2,0,L|178:320,1,80,8|0,0:0|0:0,0:0:0:0: +15,317,48190,5,6,0:0:0:0: +21,297,48265,1,0,0:0:0:0: +27,278,48340,1,0,0:0:0:0: +33,259,48415,1,0,0:0:0:0: +39,242,48490,2,0,L|35:180,3,40,8|0|0|0,0:0|0:0|0:0|0:0,0:0:0:0: +103,139,48790,5,2,0:0:0:0: +130,167,48865,1,0,0:0:0:0: +169,174,48940,1,0,0:0:0:0: +204,157,49015,1,0,0:0:0:0: +224,123,49090,1,8,0:0:0:0: +221,84,49165,1,0,0:0:0:0: +196,54,49240,2,0,L|155:41,1,40 +26,115,49390,6,0,L|112:142,1,80,14|0,0:0|0:0,0:0:0:0: +200,241,49690,1,0,0:0:0:0: +224,123,49840,1,8,0:0:0:0: +170,322,49990,2,0,P|208:327|256:307,1,80 +318,172,50290,1,8,0:0:0:0: +200,241,50440,1,0,0:0:0:0: +352,312,50590,6,0,L|366:215,1,80,10|0,0:0|0:0,0:0:0:0: +389,50,50890,1,0,0:0:0:0: +192,110,51040,2,0,L|98:143,2,80,8|0|0,0:0|0:0|0:0,0:0:0:0: +389,50,51490,1,8,0:0:0:0: +386,89,51565,1,0,0:0:0:0: +383,129,51640,1,0,0:0:0:0: +198,189,51790,6,0,L|190:83,1,80,14|0,0:0|0:0,0:0:0:0: +113,307,52090,2,0,L|121:201,1,80,8|0,0:0|0:0,0:0:0:0: +264,133,52390,1,8,0:0:0:0: +197,297,52540,1,0,0:0:0:0: +77,156,52690,1,0,0:0:0:0: +77,156,52765,1,0,0:0:0:0: +77,156,52840,2,0,L|88:62,1,80,0|10,0:0|0:0,0:0:0:0: +244,46,53140,5,0,0:0:0:0: +265,204,53290,1,8,0:0:0:0: +165,127,53440,1,0,0:0:0:0: +277,219,53590,2,0,L|292:124,1,80,8|0,0:0|0:0,0:0:0:0: +234,364,53890,2,0,L|219:269,1,80 +155,198,54190,5,14,0:0:0:0: +286,281,54340,1,0,0:0:0:0: +295,126,54490,1,0,0:0:0:0: +127,274,54640,2,0,P|191:271|233:184,1,160,8|0,0:0|0:0,0:0:0:0: +57,235,55090,2,0,P|45:272|56:314,1,80,2|0,0:0|0:0,0:0:0:0: +286,281,55390,6,0,L|113:273,1,160,14|0,0:0|0:0,0:0:0:0: +282,124,55840,2,0,B|290:175|278:208|278:208|272:244|291:296,1,160,8|0,0:0|0:0,0:0:0:0: +438,230,56290,2,0,P|401:221|354:230,1,80,2|0,0:0|0:0,0:0:0:0: +403,327,56590,6,0,B|444:335|444:335|482:328,1,80,14|0,0:0|0:0,0:0:0:0: +264,303,56890,1,0,0:0:0:0: +264,303,56965,1,0,0:0:0:0: +264,303,57040,2,0,L|271:204,1,80,8|0,0:0|0:0,0:0:0:0: +278,121,57340,1,0,0:0:0:0: +185,275,57490,2,0,L|192:176,1,80,10|0,0:0|0:0,0:0:0:0: +87,293,57790,5,14,0:0:0:0: +101,330,57865,1,0,0:0:0:0: +129,358,57940,1,0,0:0:0:0: +166,371,58015,1,0,0:0:0:0: +206,369,58090,1,8,0:0:0:0: +240,350,58165,1,0,0:0:0:0: +264,318,58240,1,0,0:0:0:0: +273,279,58315,1,0,0:0:0:0: +265,241,58390,6,0,L|237:193,3,40,10|0|0|0,0:0|0:0|0:0|0:0,0:0:0:0: +293,133,58690,2,0,L|298:73,3,40,8|0|0|0,0:0|0:0|0:0|0:0,0:0:0:0: +377,49,58990,6,0,L|370:147,1,80,14|0,0:0|0:0,0:0:0:0: +456,251,59290,1,8,0:0:0:0: +479,96,59440,1,0,0:0:0:0: +336,281,59590,2,0,L|322:193,1,80,2|0,0:0|0:0,0:0:0:0: +302,55,59890,1,8,0:0:0:0: +302,55,59965,1,0,0:0:0:0: +302,55,60040,1,0,0:0:0:0: +124,196,60190,5,2,0:0:0:0: +297,154,60340,2,0,P|249:143|198:150,1,80,0|8,0:0|0:0,0:0:0:0: +108,283,60640,1,0,0:0:0:0: +82,48,60790,2,0,L|92:136,1,80,2|0,0:0|0:0,0:0:0:0: +108,283,61090,1,8,0:0:0:0: +12,206,61240,1,0,0:0:0:0: +231,179,61390,6,0,L|331:168,1,80,12|0,0:0|0:0,0:0:0:0: +108,283,61690,2,0,L|208:272,1,80,8|0,0:0|0:0,0:0:0:0: +352,260,61990,5,2,0:0:0:0: +106,196,62140,1,0,0:0:0:0: +202,352,62290,1,2,0:0:0:0: +256,104,62440,1,0,0:0:0:0: +366,346,62590,6,0,L|376:249,1,80,8|0,0:0|0:0,0:0:0:0: +123,350,62890,2,0,P|168:358|221:343,1,80,8|0,0:0|0:0,0:0:0:0: +329,179,63190,1,2,0:0:0:0: +284,367,63340,1,0,0:0:0:0: +194,189,63490,1,2,0:0:0:0: +123,350,63640,1,0,0:0:0:0: +13,207,63790,5,12,0:0:0:0: +185,285,63940,1,0,0:0:0:0: +84,128,64090,1,0,0:0:0:0: +84,128,64165,1,0,0:0:0:0: +84,128,64240,2,0,B|117:122|117:122|143:129|143:129|189:97|232:115|264:145,1,160,10|0,0:0|0:0,0:0:0:0: +316,225,64690,1,2,0:0:0:0: +342,64,64840,1,0,0:0:0:0: +194,189,64990,5,12,0:0:0:0: +129,50,65140,1,0,0:0:0:0: +48,219,65290,1,0,0:0:0:0: +48,219,65365,1,0,0:0:0:0: +48,219,65440,2,0,L|216:199,1,160,10|0,0:0|0:0,0:0:0:0: +425,227,65890,2,0,P|358:218|335:226,1,80,2|0,0:0|0:0,0:0:0:0: +212,284,66190,6,0,L|165:318,3,40,14|0|0|0,0:0|0:0|0:0|0:0,0:0:0:0: +96,309,66490,1,0,0:0:0:0: +107,270,66565,1,0,0:0:0:0: +105,231,66640,2,0,L|85:180,3,40,10|0|0|0,0:0|0:0|0:0|0:0,0:0:0:0: +91,115,66940,1,10,0:0:0:0: +128,128,67015,1,0,0:0:0:0: +168,130,67090,1,0,0:0:0:0: +207,120,67165,1,0,0:0:0:0: +241,100,67240,2,0,L|251:34,2,40,8|0|0,0:0|0:0|0:0,0:0:0:0: +211,283,67540,5,2,0:0:0:0: +224,307,67840,1,2,0:0:0:0: +295,249,67990,6,0,L|399:241,1,80,8|0,0:0|0:0,0:0:0:0: +447,158,68290,2,0,L|354:164,1,80,0|0,0:0|0:0,0:0:0:0: +295,249,68590,5,14,0:0:0:0: +307,264,68665,1,0,0:0:0:0: +315,283,68740,1,0,0:0:0:0: +318,302,68815,1,0,0:0:0:0: +317,325,68890,2,0,L|278:354,1,40,2|0,0:0|0:0,0:0:0:0: +188,320,69040,2,0,L|131:321,5,40,8|0|0|0|0|0,0:0|0:0|0:0|0:0|0:0|0:0,0:0:0:0: +86,240,69490,2,0,L|39:220,3,40,8|0|0|0,0:0|0:0|0:0|0:0,0:0:0:0: +58,129,69790,5,14,0:0:0:0: +77,134,69865,1,0,0:0:0:0: +97,137,69940,1,0,0:0:0:0: +116,139,70015,1,0,0:0:0:0: +132,140,70090,2,0,L|187:114,1,40,2|0,0:0|0:0,0:0:0:0: +238,61,70240,2,0,L|291:83,5,40,8|0|0|0|0|0,0:0|0:0|0:0|0:0|0:0|0:0,0:0:0:0: +316,159,70690,2,0,L|293:211,3,40,8|0|0|0,0:0|0:0|0:0|0:0,0:0:0:0: +381,227,70990,5,14,0:0:0:0: +393,211,71065,1,0,0:0:0:0: +402,193,71140,1,0,0:0:0:0: +407,174,71215,1,0,0:0:0:0: +409,154,71290,1,0,0:0:0:0: +407,134,71365,1,0,0:0:0:0: +400,119,71440,2,0,L|350:89,5,40,10|0|0|0|0|0,0:0|0:0|0:0|0:0|0:0|0:0,0:0:0:0: +277,169,71890,2,0,L|221:185,3,40,8|0|0|0,0:0|0:0|0:0|0:0,0:0:0:0: +140,186,72190,5,14,0:0:0:0: +150,168,72265,1,0,0:0:0:0: +157,150,72340,1,0,0:0:0:0: +160,130,72415,1,0,0:0:0:0: +160,110,72490,1,2,0:0:0:0: +156,90,72565,1,0,0:0:0:0: +149,72,72640,1,0,0:0:0:0: +139,55,72715,1,0,0:0:0:0: +126,43,72790,6,0,L|78:31,3,40,8|0|0|0,0:0|0:0|0:0|0:0,0:0:0:0: +29,121,73090,2,0,L|68:112,3,40,2|0|0|0,0:0|0:0|0:0|0:0,0:0:0:0: +132,175,73390,5,12,0:0:0:0: +119,190,73465,1,0,0:0:0:0: +110,208,73540,1,0,0:0:0:0: +104,227,73615,1,0,0:0:0:0: +102,247,73690,1,0,0:0:0:0: +104,267,73765,1,0,0:0:0:0: +107,284,73840,2,0,L|132:322,5,40,10|0|0|0|0|0,0:0|0:0|0:0|0:0|0:0|0:0,0:0:0:0: +224,320,74290,2,0,L|263:311,3,40,8|0|0|0,0:0|0:0|0:0|0:0,0:0:0:0: +287,303,74590,5,14,0:0:0:0: +302,289,74665,1,0,0:0:0:0: +319,279,74740,1,0,0:0:0:0: +337,272,74815,1,0,0:0:0:0: +357,268,74890,1,0,0:0:0:0: +377,268,74965,1,0,0:0:0:0: +397,272,75040,1,10,0:0:0:0: +415,278,75115,1,0,0:0:0:0: +432,288,75190,5,0,0:0:0:0: +420,271,75265,1,0,0:0:0:0: +413,252,75340,1,0,0:0:0:0: +410,233,75415,1,0,0:0:0:0: +411,211,75490,2,0,L|426:143,3,40,10|0|0|0,0:0|0:0|0:0|0:0,0:0:0:0: +353,123,75790,6,0,L|332:225,1,80,14|0,0:0|0:0,0:0:0:0: +168,136,76090,2,0,L|183:242,1,80,10|0,0:0|0:0,0:0:0:0: +281,269,76390,1,8,0:0:0:0: +251,185,76540,1,2,0:0:0:0: +143,289,76690,1,8,0:0:0:0: +311,353,76840,1,2,0:0:0:0: +272,91,76990,1,8,0:0:0:0: +59,280,77290,5,2,0:0:0:0: +440,206,77590,1,8,0:0:0:0: +156,115,77890,1,2,0:0:0:0: +366,336,78190,6,0,L|372:237,1,80,12|0,0:0|0:0,0:0:0:0: +375,144,78490,1,0,0:0:0:0: +224,346,78640,2,0,L|230:247,1,80,8|0,0:0|0:0,0:0:0:0: +233,154,78940,1,0,0:0:0:0: +74,284,79090,2,0,L|92:187,1,80,10|0,0:0|0:0,0:0:0:0: +126,26,79390,5,8,0:0:0:0: +178,229,79540,1,0,0:0:0:0: +22,81,79690,1,0,0:0:0:0: +74,284,79840,1,8,0:0:0:0: +256,231,79990,2,0,B|216:236|216:236|152:224,1,80 +315,77,80290,2,0,L|305:178,1,80,8|0,0:0|0:0,0:0:0:0: +254,376,80590,6,0,L|241:180,1,160,14|0,0:0|0:0,0:0:0:0: +18,316,81040,2,0,B|82:313|82:313|126:326|126:326|199:322,1,160,8|0,0:0|0:0,0:0:0:0: +406,272,81490,2,0,B|357:264|357:264|300:273,1,80,8|0,0:0|0:0,0:0:0:0: +125,227,81790,6,0,P|170:237|221:226,1,80,10|0,0:0|0:0,0:0:0:0: +326,150,82090,1,0,0:0:0:0: +230,374,82240,2,0,L|214:194,1,160,8|0,0:0|0:0,0:0:0:0: +383,324,82690,2,0,B|339:335|339:335|270:336,1,80,2|0,0:0|0:0,0:0:0:0: +464,337,82990,6,0,L|478:234,1,80,12|0,0:0|0:0,0:0:0:0: +494,145,83290,1,0,0:0:0:0: +213,205,83440,2,0,L|310:184,1,80,8|0,0:0|0:0,0:0:0:0: +359,101,83740,1,0,0:0:0:0: +194,89,83890,1,8,0:0:0:0: +194,89,83965,1,0,0:0:0:0: +194,89,84040,1,0,0:0:0:0: +119,226,84190,6,12,B|162:234|162:234|207:226,1,80,14|0,0:0|0:0,0:0:0:0: +359,101,84490,1,0,0:0:0:0: +277,318,84640,2,0,L|269:212,1,80,8|0,0:0|0:0,0:0:0:0: +264,129,84940,1,0,0:0:0:0: +359,264,85090,1,8,0:0:0:0: +359,264,85165,1,0,0:0:0:0: +359,264,85240,1,0,0:0:0:0: +162,132,85390,6,0,L|172:244,1,80,14|0,0:0|0:0,0:0:0:0: +236,309,85690,1,0,0:0:0:0: +76,116,85840,2,0,L|86:228,1,80,8|0,0:0|0:0,0:0:0:0: +236,309,86140,1,0,0:0:0:0: +241,82,86290,2,0,L|240:172,1,80,8|0,0:0|0:0,0:0:0:0: +236,309,86590,5,14,0:0:0:0: +234,301,86665,1,0,0:0:0:0: +232,293,86740,1,0,0:0:0:0: +228,286,86815,1,0,0:0:0:0: +224,279,86890,1,2,0:0:0:0: +218,274,86965,1,0,0:0:0:0: +212,269,87040,1,0,0:0:0:0: +205,265,87115,1,0,0:0:0:0: +196,261,87190,6,0,L|134:255,3,40,8|0|0|0,0:0|0:0|0:0|0:0,0:0:0:0: +253,192,87490,2,0,L|219:138,3,40,2|0|0|0,0:0|0:0|0:0|0:0,0:0:0:0: +316,345,87790,6,0,L|333:168,1,160,12|0,0:0|0:0,0:0:0:0: +422,328,88240,2,0,P|406:240|455:173,1,160,8|0,0:0|0:0,0:0:0:0: +381,65,88690,2,0,P|344:85|280:80,1,80,8|0,0:0|0:0,0:0:0:0: +203,42,88990,6,0,B|225:88|229:149|229:149|213:162|191:197,1,160,8|0,0:0|0:0,0:0:0:0: +251,350,89440,2,0,P|247:249|312:184,1,160,8|0,0:0|0:0,0:0:0:0: +412,146,89890,1,8,0:0:0:0: +412,146,90040,1,0,0:0:0:0: +353,295,90190,6,0,P|270:269|183:283,1,160,12|0,0:0|0:0,0:0:0:0: +57,318,90640,2,0,P|93:245|86:141,1,160,8|0,0:0|0:0,0:0:0:0: +120,71,91090,2,0,P|158:87|205:83,1,80,8|0,0:0|0:0,0:0:0:0: +413,57,91390,6,0,P|358:33|249:59,1,160,8|0,0:0|0:0,0:0:0:0: +144,151,91840,2,0,P|199:127|308:153,1,160,8|0,0:0|0:0,0:0:0:0: +349,236,92290,1,8,0:0:0:0: +349,236,92440,1,0,0:0:0:0: +192,290,92590,5,12,0:0:0:0: +184,286,92665,1,0,0:0:0:0: +177,282,92740,1,0,0:0:0:0: +170,279,92815,1,0,0:0:0:0: +162,275,92890,2,0,L|138:216,1,40 +202,176,93040,2,0,L|213:114,5,40,8|0|0|0|0|0,0:0|0:0|0:0|0:0|0:0|0:0,0:0:0:0: +141,94,93490,2,0,L|132:37,3,40,8|0|0|0,0:0|0:0|0:0|0:0,0:0:0:0: +214,40,93790,5,12,0:0:0:0: +232,47,93865,1,0,0:0:0:0: +252,51,93940,1,0,0:0:0:0: +272,51,94015,1,0,0:0:0:0: +292,47,94090,2,0,L|346:29,1,40 +411,87,94240,2,0,L|466:94,5,40,8|0|0|0|0|0,0:0|0:0|0:0|0:0|0:0|0:0,0:0:0:0: +320,143,94690,2,0,L|265:150,3,40,8|0|0|0,0:0|0:0|0:0|0:0,0:0:0:0: +194,233,94990,5,14,0:0:0:0: +233,259,95065,1,0,0:0:0:0: +280,268,95140,1,0,0:0:0:0: +326,258,95215,1,0,0:0:0:0: +365,231,95290,1,8,0:0:0:0: +390,190,95365,1,0,0:0:0:0: +397,143,95440,1,0,0:0:0:0: +385,97,95515,1,0,0:0:0:0: +356,59,95590,5,10,0:0:0:0: +314,36,95665,1,0,0:0:0:0: +267,31,95740,1,8,0:0:0:0: +221,45,95815,1,0,0:0:0:0: +185,76,95890,1,8,0:0:0:0: +139,99,95965,1,0,0:0:0:0: +88,99,96040,1,8,0:0:0:0: +43,74,96115,1,0,0:0:0:0: +14,31,96190,1,14,0:0:0:0: +192,280,97390,6,0,P|264:312|320:304,1,95.9999970703126,14|0,0:0|0:0,0:0:0:0: +390,242,97690,1,0,0:0:0:0: +179,294,97840,2,0,L|161:171,1,95.9999970703126,8|0,0:0|0:0,0:0:0:0: +153,85,98140,1,0,0:0:0:0: +333,174,98290,2,0,L|343:72,1,95.9999970703126,8|0,0:0|0:0,0:0:0:0: +91,38,98590,6,0,P|80:113|175:159,1,191.999994140625,14|0,0:0|0:0,0:0:0:0: +408,188,99040,2,0,P|372:106|280:117,1,191.999994140625,8|0,0:0|0:0,0:0:0:0: +267,286,99490,2,0,P|279:245|272:179,1,95.9999970703126,8|0,0:0|0:0,0:0:0:0: +153,66,99790,5,14,0:0:0:0: +286,106,99940,1,0,0:0:0:0: +115,129,100090,1,8,0:0:0:0: +248,169,100240,1,0,0:0:0:0: +78,194,100390,5,10,0:0:0:0: +153,66,100540,1,0,0:0:0:0: +211,234,100690,1,8,0:0:0:0: +286,107,100840,1,0,0:0:0:0: +215,257,100990,6,0,L|206:141,1,95.9999970703126,12|0,0:0|0:0,0:0:0:0: +372,296,101290,2,0,L|363:180,1,95.9999970703126,2|0,0:0|0:0,0:0:0:0: +215,257,101590,2,0,L|115:294,1,95.9999970703126,8|0,0:0|0:0,0:0:0:0: +364,200,101890,2,0,L|459:231,1,95.9999970703126,2|0,0:0|0:0,0:0:0:0: +162,131,102190,5,14,0:0:0:0: +137,125,102265,1,0,0:0:0:0: +113,125,102340,1,0,0:0:0:0: +90,131,102415,1,0,0:0:0:0: +69,142,102490,2,0,L|28:175,1,47.9999985351563 +134,243,102640,2,0,P|195:242|274:137,1,191.999994140625,10|0,0:0|0:0,0:0:0:0: +153,35,103090,2,0,L|163:146,1,95.9999970703126,10|0,0:0|0:0,0:0:0:0: +269,240,103390,5,14,0:0:0:0: +280,218,103465,1,0,0:0:0:0: +284,195,103540,1,0,0:0:0:0: +282,171,103615,1,0,0:0:0:0: +270,146,103690,2,0,L|229:106,1,47.9999985351563 +114,183,103840,2,0,P|84:289|125:367,1,191.999994140625,10|0,0:0|0:0,0:0:0:0: +289,250,104290,2,0,P|212:228|165:245,1,95.9999970703126,10|0,0:0|0:0,0:0:0:0: +225,323,104590,6,0,L|272:327,3,47.9999985351563,12|0|0|0,0:0|0:0|0:0|0:0,0:0:0:0: +198,230,104890,2,0,L|150:234,3,47.9999985351563,2|0|0|0,0:0|0:0|0:0|0:0,0:0:0:0: +258,159,105190,2,0,L|305:163,3,47.9999985351563,8|0|0|0,0:0|0:0|0:0|0:0,0:0:0:0: +195,89,105490,2,0,L|147:93,3,47.9999985351563,2|0|0|0,0:0|0:0|0:0|0:0,0:0:0:0: +58,105,105790,5,12,0:0:0:0: +49,132,105865,1,0,0:0:0:0: +48,161,105940,1,0,0:0:0:0: +53,189,106015,1,0,0:0:0:0: +66,214,106090,2,0,P|76:289|66:322,1,95.9999970703126,2|0,0:0|0:0,0:0:0:0: +131,360,106390,2,0,P|148:301|149:248,1,95.9999970703126,8|0,0:0|0:0,0:0:0:0: +216,207,106690,2,0,P|224:279|219:324,1,95.9999970703126,2|0,0:0|0:0,0:0:0:0: +304,365,106990,6,0,L|313:174,1,191.999994140625,14|0,0:0|0:0,0:0:0:0: +254,88,107440,2,0,P|183:109|98:29,1,191.999994140625,8|0,0:0|0:0,0:0:0:0: +194,11,107890,1,8,0:0:0:0: +340,97,108040,1,0,0:0:0:0: +241,179,108190,6,0,B|190:188|190:188|126:173|126:173|190:233,1,191.999994140625,14|0,0:0|0:0,0:0:0:0: +331,258,108640,2,0,P|374:206|334:93,1,191.999994140625,8|0,0:0|0:0,0:0:0:0: +292,331,109090,2,0,P|341:340|386:321,1,95.9999970703126,8|0,0:0|0:0,0:0:0:0: +293,161,109390,6,0,P|258:91|334:13,1,191.999994140625,14|0,0:0|0:0,0:0:0:0: +348,220,109840,2,0,B|301:253|252:229|252:229|207:206|158:225,1,191.999994140625,8|0,0:0|0:0,0:0:0:0: +95,354,110290,2,0,P|109:306|87:242,1,95.9999970703126,8|0,0:0|0:0,0:0:0:0: +39,154,110590,5,14,0:0:0:0: +27,304,110740,1,0,0:0:0:0: +120,148,110890,2,0,L|130:52,1,95.9999970703126,2|0,0:0|0:0,0:0:0:0: +214,127,111190,2,0,L|204:223,1,95.9999970703126,8|0,0:0|0:0,0:0:0:0: +280,320,111490,2,0,L|290:224,1,95.9999970703126,2|0,0:0|0:0,0:0:0:0: +206,298,111790,5,14,0:0:0:0: +215,300,111865,1,0,0:0:0:0: +224,303,111940,1,0,0:0:0:0: +233,306,112015,1,0,0:0:0:0: +242,308,112090,1,0,0:0:0:0: +252,311,112165,1,0,0:0:0:0: +261,314,112240,1,8,0:0:0:0: +270,317,112315,1,0,0:0:0:0: +280,320,112390,5,2,0:0:0:0: +263,291,112465,1,0,0:0:0:0: +249,261,112540,1,0,0:0:0:0: +239,229,112615,1,0,0:0:0:0: +233,196,112690,1,8,0:0:0:0: +231,162,112765,1,0,0:0:0:0: +235,129,112840,1,8,0:0:0:0: +242,96,112915,1,0,0:0:0:0: +254,65,112990,1,14,0:0:0:0: +223,193,114190,6,8,P|171:181|112:204,1,80,14|0,0:0|0:0,0:0:0:0: +177,294,114490,1,0,0:0:0:0: +177,294,114565,1,0,0:0:0:0: +177,294,114640,1,8,0:0:0:0: +319,284,114790,1,0,0:0:0:0: +223,193,114940,1,0,0:0:0:0: +252,338,115090,1,8,0:0:0:0: +309,179,115240,1,0,0:0:0:0: +177,294,115390,6,0,L|72:332,2,80,10|0|0,0:0|0:0|0:0,0:0:0:0: +291,260,115840,1,8,0:0:0:0: +118,232,115990,1,0,0:0:0:0: +309,179,116140,1,0,0:0:0:0: +177,294,116290,2,0,P|199:259|200:206,1,80,8|0,0:0|0:0,0:0:0:0: +109,109,116590,5,14,0:0:0:0: +38,240,116740,2,0,L|127:231,1,80 +263,111,117040,1,8,0:0:0:0: +263,111,117115,1,0,0:0:0:0: +263,111,117190,2,0,L|255:164,1,40 +226,270,117340,2,0,L|224:210,1,40,0|0,0:0|0:0,0:0:0:0: +339,153,117490,2,0,L|331:206,1,40,8|0,0:0|0:0,0:0:0:0: +302,312,117640,2,0,L|300:252,1,40,0|0,0:0|0:0,0:0:0:0: +421,187,117790,5,10,0:0:0:0: +369,358,117940,1,0,0:0:0:0: +500,230,118090,1,0,0:0:0:0: +443,345,118240,2,0,L|418:167,1,160,8|8,0:0|0:0,0:0:0:0: +406,81,118690,1,0,0:0:0:0: +406,81,118840,1,0,0:0:0:0: +247,250,118990,5,14,0:0:0:0: +145,190,119140,1,0,0:0:0:0: +145,190,119215,1,0,0:0:0:0: +145,190,119290,1,0,0:0:0:0: +263,329,119440,2,0,L|244:235,1,80,8|0,0:0|0:0,0:0:0:0: +223,140,119740,1,8,0:0:0:0: +108,303,119890,1,0,0:0:0:0: +248,251,120040,1,0,0:0:0:0: +90,142,120190,5,10,0:0:0:0: +299,159,120340,1,0,0:0:0:0: +187,324,120490,1,0,0:0:0:0: +90,142,120640,1,8,0:0:0:0: +108,303,120940,5,8,0:0:0:0: +90,142,121090,1,0,0:0:0:0: +85,102,121165,1,0,0:0:0:0: +81,62,121240,1,0,0:0:0:0: +291,64,121390,5,14,0:0:0:0: +291,64,121540,1,0,0:0:0:0: +201,255,121690,1,0,0:0:0:0: +182,133,121840,5,10,0:0:0:0: +182,133,121990,1,0,0:0:0:0: +272,324,122140,1,0,0:0:0:0: +291,64,122290,5,10,0:0:0:0: +201,255,122440,1,0,0:0:0:0: +379,230,122590,5,14,0:0:0:0: +379,210,122665,1,0,0:0:0:0: +380,190,122740,1,0,0:0:0:0: +381,170,122815,1,0,0:0:0:0: +381,150,122890,2,0,L|382:100,3,40,8|0|0|0,0:0|0:0|0:0|0:0,0:0:0:0: +322,58,123190,5,10,0:0:0:0: +299,74,123265,1,0,0:0:0:0: +274,86,123340,1,0,0:0:0:0: +247,94,123415,1,0,0:0:0:0: +219,97,123490,2,0,L|161:89,3,40,8|0|0|0,0:0|0:0|0:0|0:0,0:0:0:0: +79,41,123790,5,14,0:0:0:0: +79,41,123940,2,0,L|99:139,1,80 +124,235,124240,1,8,0:0:0:0: +124,235,124315,1,0,0:0:0:0: +124,235,124390,2,0,L|119:275,1,40,0|0,0:0|0:0,0:0:0:0: +197,360,124540,2,0,L|182:301,1,40,0|0,0:0|0:0,0:0:0:0: +231,208,124690,2,0,L|226:248,1,40,8|0,0:0|0:0,0:0:0:0: +304,333,124840,2,0,L|289:274,1,40,0|0,0:0|0:0,0:0:0:0: +326,182,124990,5,10,0:0:0:0: +421,313,125140,2,0,L|430:218,1,80 +438,121,125440,1,8,0:0:0:0: +323,277,125590,1,0,0:0:0:0: +228,177,125740,1,0,0:0:0:0: +352,39,125890,2,0,L|338:149,1,80,8|0,0:0|0:0,0:0:0:0: +323,277,126190,5,14,0:0:0:0: +303,281,126265,1,0,0:0:0:0: +284,286,126340,1,0,0:0:0:0: +264,291,126415,1,0,0:0:0:0: +245,296,126490,1,0,0:0:0:0: +226,301,126565,1,0,0:0:0:0: +207,308,126640,1,8,0:0:0:0: +102,175,126790,5,0,0:0:0:0: +264,207,126940,1,0,0:0:0:0: +122,320,127090,1,8,0:0:0:0: +163,122,127240,1,0,0:0:0:0: +207,308,127390,5,10,0:0:0:0: +85,96,127540,1,0,0:0:0:0: +122,320,127690,1,0,0:0:0:0: +344,234,127840,2,0,B|300:237|269:208|269:208|218:198|175:222|175:222|136:230|102:213,1,240,8|8,0:0|0:0,0:0:0:0: +26,141,128440,1,0,0:0:0:0: +122,320,128590,5,14,0:0:0:0: +213,126,128740,2,0,L|217:235,1,80 +228,345,129040,1,8,0:0:0:0: +228,345,129115,1,0,0:0:0:0: +228,345,129190,1,0,0:0:0:0: +376,315,129340,1,0,0:0:0:0: +274,265,129490,1,8,0:0:0:0: +420,235,129640,1,0,0:0:0:0: +230,193,129790,5,10,0:0:0:0: +341,223,129940,2,0,L|349:113,1,80 +157,241,130240,1,8,0:0:0:0: +157,241,130315,1,0,0:0:0:0: +157,241,130390,2,0,L|210:310,2,80,0|0|8,0:0|0:0|0:0,0:0:0:0: +64,112,130840,1,0,0:0:0:0: +57,298,130990,5,14,0:0:0:0: +68,281,131065,1,0,0:0:0:0: +78,264,131140,1,0,0:0:0:0: +85,245,131215,1,0,0:0:0:0: +90,226,131290,1,8,0:0:0:0: +92,206,131365,1,0,0:0:0:0: +91,186,131440,1,0,0:0:0:0: +88,166,131515,1,0,0:0:0:0: +83,148,131590,6,0,L|51:88,3,40,10|0|0|0,0:0|0:0|0:0|0:0,0:0:0:0: +144,83,131890,2,0,L|176:23,3,40,8|0|0|0,0:0|0:0|0:0|0:0,0:0:0:0: +199,152,132190,6,0,L|218:246,1,80,10|0,0:0|0:0,0:0:0:0: +305,240,132490,2,0,L|286:334,1,80,8|0,0:0|0:0,0:0:0:0: +172,322,132790,2,0,L|50:328,2,120,10|2|0,0:0|0:0|0:0,0:0:0:0: +385,315,133390,5,14,0:0:0:0: +200,317,135790,5,14,0:0:0:0: +209,331,136090,1,10,0:0:0:0: +373,289,136240,1,0,0:0:0:0: +212,230,136390,1,2,0:0:0:0: +305,360,136540,1,0,0:0:0:0: +335,177,136690,2,0,L|351:83,1,80,8|0,0:0|0:0,0:0:0:0: +133,225,136990,6,0,P|179:233|227:226,1,80,2|0,0:0|0:0,0:0:0:0: +37,76,137290,2,0,B|34:121|34:121|41:163,1,80,8|0,0:0|0:0,0:0:0:0: +120,320,137590,1,2,0:0:0:0: +0,268,137740,1,0,0:0:0:0: +225,318,137890,2,0,L|322:301,1,80,8|0,0:0|0:0,0:0:0:0: +347,230,138190,6,0,P|304:220|267:228,1,80,8|0,0:0|0:0,0:0:0:0: +430,364,138490,2,0,P|440:321|432:284,1,80,8|0,0:0|0:0,0:0:0:0: +294,172,138790,2,0,P|270:219|283:278,1,80,2|0,0:0|0:0,0:0:0:0: +336,360,139090,2,0,P|283:372|243:352,1,80,8|0,0:0|0:0,0:0:0:0: +97,230,139390,6,0,B|142:220|142:220|197:225,1,80,8|0,0:0|0:0,0:0:0:0: +372,277,139690,2,0,B|327:287|327:287|272:282,1,80,8|0,0:0|0:0,0:0:0:0: +97,230,139990,1,2,0:0:0:0: +97,230,140140,1,0,0:0:0:0: +223,133,140290,2,0,L|214:231,1,80,8|0,0:0|0:0,0:0:0:0: +298,157,140590,6,0,P|295:99|265:62,1,80,12|0,0:0|0:0,0:0:0:0: +379,130,140890,2,0,P|375:172|364:214,1,80,2|0,0:0|0:0,0:0:0:0: +209,211,141190,2,0,P|213:169|224:127,1,80,8|0,0:0|0:0,0:0:0:0: +284,81,141490,1,2,0:0:0:0: +284,81,141640,1,0,0:0:0:0: +317,259,141790,5,10,0:0:0:0: +333,236,141865,1,0,0:0:0:0: +342,210,141940,1,0,0:0:0:0: +344,182,142015,1,0,0:0:0:0: +339,154,142090,1,0,0:0:0:0: +213,58,142240,5,10,0:0:0:0: +208,86,142315,1,0,0:0:0:0: +210,114,142390,1,0,0:0:0:0: +219,140,142465,1,0,0:0:0:0: +236,163,142540,1,0,0:0:0:0: +455,224,142690,5,10,0:0:0:0: +457,192,142765,1,0,0:0:0:0: +459,160,142840,1,0,0:0:0:0: +461,128,142915,1,0,0:0:0:0: +464,97,142990,1,14,0:0:0:0: +256,192,143065,12,8,144190,0:0:0:0: +256,192,144265,12,6,145390,0:0:0:0: +68,300,145690,5,8,0:0:0:0: +189,253,145840,1,0,0:0:0:0: +311,292,145990,2,0,L|328:197,1,80,2|0,0:0|0:0,0:0:0:0: +344,114,146290,1,10,0:0:0:0: +344,114,146365,1,0,0:0:0:0: +344,114,146440,1,0,0:0:0:0: +116,137,146590,6,0,L|22:146,2,80,2|0|8,0:0|0:0|0:0,0:0:0:0: +243,125,147040,1,0,0:0:0:0: +148,302,147190,2,0,L|153:209,1,80,2|0,0:0|0:0,0:0:0:0: +163,72,147490,1,8,0:0:0:0: +163,72,147565,1,0,0:0:0:0: +163,72,147640,1,0,0:0:0:0: +239,313,147790,6,0,L|241:220,1,80,14|0,0:0|0:0,0:0:0:0: +243,125,148090,1,0,0:0:0:0: +322,297,148240,2,0,L|324:204,1,80,2|0,0:0|0:0,0:0:0:0: +243,125,148540,2,0,P|181:121|144:85,1,80,8|0,0:0|0:0,0:0:0:0: +290,11,148840,2,0,P|339:70|309:153,1,160,8|0,0:0|0:0,0:0:0:0: +152,185,149290,5,8,0:0:0:0: +175,92,149440,1,0,0:0:0:0: +81,229,149590,2,0,P|139:267|173:264,1,80,2|0,0:0|0:0,0:0:0:0: +373,124,149890,2,0,P|315:86|282:91,1,80,8|0,0:0|0:0,0:0:0:0: +215,228,150190,6,0,L|317:215,1,80,12|0,0:0|0:0,0:0:0:0: +408,199,150490,1,2,0:0:0:0: +373,124,150640,1,0,0:0:0:0: +268,300,150790,2,0,L|373:287,1,80,8|0,0:0|0:0,0:0:0:0: +441,276,151090,1,2,0:0:0:0: +373,124,151240,1,0,0:0:0:0: +268,300,151390,6,0,L|227:373,2,80,8|0|2,0:0|0:0|0:0,0:0:0:0: +227,214,151840,2,0,P|139:253|76:217,1,160,8|0,0:0|0:0,0:0:0:0: +32,92,152290,1,8,0:0:0:0: +32,92,152365,1,0,0:0:0:0: +32,92,152440,1,0,0:0:0:0: +151,159,152590,6,0,L|122:61,1,80,14|0,0:0|0:0,0:0:0:0: +227,200,152890,1,0,0:0:0:0: +227,200,152965,1,0,0:0:0:0: +227,200,153040,2,0,P|238:151|212:98,1,80,8|0,0:0|0:0,0:0:0:0: +173,257,153340,2,0,P|219:279|259:271,1,80,8|0,0:0|0:0,0:0:0:0: +230,123,153640,1,8,0:0:0:0: +88,230,153790,5,12,0:0:0:0: +92,249,153865,1,0,0:0:0:0: +97,268,153940,1,0,0:0:0:0: +101,288,154015,1,0,0:0:0:0: +106,307,154090,5,2,0:0:0:0: +143,320,154165,1,0,0:0:0:0: +182,318,154240,1,0,0:0:0:0: +218,300,154315,1,0,0:0:0:0: +244,270,154390,6,0,L|259:217,3,40,8|0|0|0,0:0|0:0|0:0|0:0,0:0:0:0: +347,270,154690,2,0,L|353:309,3,40,2|0|0|0,0:0|0:0|0:0|0:0,0:0:0:0: +452,336,154990,5,14,0:0:0:0: +452,316,155065,1,0,0:0:0:0: +453,296,155140,1,0,0:0:0:0: +453,276,155215,1,0,0:0:0:0: +454,256,155290,1,0,0:0:0:0: +455,236,155365,1,0,0:0:0:0: +455,214,155440,2,0,L|456:156,5,40,8|0|0|0|0|0,0:0|0:0|0:0|0:0|0:0|0:0,0:0:0:0: +364,146,155890,2,0,L|322:80,3,40,8|0|0|0,0:0|0:0|0:0|0:0,0:0:0:0: +244,95,156190,5,10,0:0:0:0: +227,106,156265,1,0,0:0:0:0: +209,115,156340,1,0,0:0:0:0: +190,121,156415,1,0,0:0:0:0: +170,123,156490,1,0,0:0:0:0: +150,123,156565,1,0,0:0:0:0: +131,120,156640,2,0,L|86:82,5,40,8|0|0|0|0|0,0:0|0:0|0:0|0:0|0:0|0:0,0:0:0:0: +77,193,157090,2,0,L|19:177,3,40,8|0|0|0,0:0|0:0|0:0|0:0,0:0:0:0: +128,288,157390,6,0,L|36:310,1,80,14|0,0:0|0:0,0:0:0:0: +256,192,157690,1,2,0:0:0:0: +384,288,157840,2,0,L|477:321,1,80,8|0,0:0|0:0,0:0:0:0: +256,160,158140,1,2,0:0:0:0: +128,256,158290,2,0,L|36:278,1,80,8|0,0:0|0:0,0:0:0:0: +352,160,158590,5,0,0:0:0:0: +256,280,158740,2,0,L|256:160,1,120,8|8,0:0|0:0,0:0:0:0: +128,256,159190,2,0,L|18:340,2,120,8|8|8,0:0|0:0|0:0,0:0:0:0: +308,280,159790,5,14,0:0:0:0: +314,261,159865,1,0,0:0:0:0: +319,241,159940,1,0,0:0:0:0: +321,221,160015,1,0,0:0:0:0: +321,201,160090,1,0,0:0:0:0: +319,182,160165,1,0,0:0:0:0: +315,161,160240,2,0,L|297:113,5,40,8|0|0|0|0|0,0:0|0:0|0:0|0:0|0:0|0:0,0:0:0:0: +211,133,160690,2,0,L|161:98,3,40,8|0|0|0,0:0|0:0|0:0|0:0,0:0:0:0: +115,189,160990,6,0,L|70:204,3,40,10|0|0|0,0:0|0:0|0:0|0:0,0:0:0:0: +110,281,161290,1,0,0:0:0:0: +98,303,161365,1,0,0:0:0:0: +93,327,161440,2,0,L|119:375,5,40,8|0|0|0|0|0,0:0|0:0|0:0|0:0|0:0|0:0,0:0:0:0: +211,318,161890,2,0,L|270:322,3,40,8|0|0|0,0:0|0:0|0:0|0:0,0:0:0:0: +340,262,162190,6,0,L|422:215,1,80,14|0,0:0|0:0,0:0:0:0: +307,84,162490,1,8,0:0:0:0: +253,241,162640,1,2,0:0:0:0: +357,149,162790,1,8,0:0:0:0: +172,167,162940,1,2,0:0:0:0: +307,84,163090,1,8,0:0:0:0: +250,320,163240,1,2,0:0:0:0: +174,65,163390,1,10,0:0:0:0: +443,301,163690,5,2,0:0:0:0: +101,190,163990,1,8,0:0:0:0: +349,94,164290,1,2,0:0:0:0: +246,312,164590,6,0,L|240:223,1,80,14|0,0:0|0:0,0:0:0:0: +233,97,164890,1,0,0:0:0:0: +379,242,165040,2,0,L|385:142,1,80,8|0,0:0|0:0,0:0:0:0: +386,48,165340,1,0,0:0:0:0: +179,157,165490,2,0,P|154:102|166:53,1,80,8|0,0:0|0:0,0:0:0:0: +240,232,165790,5,10,0:0:0:0: +383,162,165940,1,0,0:0:0:0: +179,157,166090,1,0,0:0:0:0: +322,87,166240,1,8,0:0:0:0: +131,85,166390,2,0,P|95:165|101:188,1,80 +235,311,166690,2,0,L|241:201,1,80,8|0,0:0|0:0,0:0:0:0: +64,316,166990,6,0,L|50:211,1,80,14|0,0:0|0:0,0:0:0:0: +239,231,167290,1,0,0:0:0:0: +149,353,167440,2,0,L|146:245,1,80,8|0,0:0|0:0,0:0:0:0: +146,103,167740,1,0,0:0:0:0: +302,282,167890,2,0,P|319:234|299:178,1,80,8|0,0:0|0:0,0:0:0:0: +252,352,168190,6,0,P|285:368|342:357,1,80,10|0,0:0|0:0,0:0:0:0: +410,240,168490,1,0,0:0:0:0: +186,307,168640,2,0,P|174:368|191:402,1,80,10|0,0:0|0:0,0:0:0:0: +138,226,168940,1,0,0:0:0:0: +329,266,169090,2,0,L|339:173,1,80,10|0,0:0|0:0,0:0:0:0: +193,78,169390,6,0,L|184:157,1,80,14|0,0:0|0:0,0:0:0:0: +329,266,169690,1,0,0:0:0:0: +138,226,169840,2,0,L|231:246,1,80,10|0,0:0|0:0,0:0:0:0: +329,266,170140,1,0,0:0:0:0: +276,133,170290,1,8,0:0:0:0: +276,133,170365,1,0,0:0:0:0: +276,133,170440,1,0,0:0:0:0: +384,330,170590,6,0,P|407:300|404:233,1,80,10|0,0:0|0:0,0:0:0:0: +196,130,170890,1,0,0:0:0:0: +196,130,170965,1,0,0:0:0:0: +196,130,171040,2,0,P|173:160|176:227,1,80,10|0,0:0|0:0,0:0:0:0: +225,315,171340,1,0,0:0:0:0: +384,330,171490,1,8,0:0:0:0: +384,330,171565,1,0,0:0:0:0: +384,330,171640,1,0,0:0:0:0: +225,315,171790,6,0,P|260:342|311:341,1,80,14|0,0:0|0:0,0:0:0:0: +400,181,172090,1,0,0:0:0:0: +285,269,172240,2,0,P|316:187|294:98,1,160,8|0,0:0|0:0,0:0:0:0: +201,82,172690,2,0,P|169:94|99:65,1,80,8|0,0:0|0:0,0:0:0:0: +161,21,172990,5,14,0:0:0:0: +161,40,173065,1,0,0:0:0:0: +162,60,173140,1,0,0:0:0:0: +163,80,173215,1,0,0:0:0:0: +164,100,173290,1,8,0:0:0:0: +164,120,173365,1,0,0:0:0:0: +165,140,173440,1,0,0:0:0:0: +166,160,173515,1,0,0:0:0:0: +168,178,173590,6,0,L|171:247,3,40,10|0|0|0,0:0|0:0|0:0|0:0,0:0:0:0: +250,119,173890,2,0,L|248:79,3,40,8|0|0|0,0:0|0:0|0:0|0:0,0:0:0:0: +100,142,174190,6,0,P|150:102|176:101,1,80,14|0,0:0|0:0,0:0:0:0: +249,220,174490,1,0,0:0:0:0: +22,167,174640,2,0,P|24:124|55:76,1,80,8|0,0:0|0:0,0:0:0:0: +249,220,174940,1,0,0:0:0:0: +249,220,175090,2,0,P|247:263|216:311,1,80,8|0,0:0|0:0,0:0:0:0: +367,307,175390,6,0,P|466:265|534:293,1,160,10|0,0:0|0:0,0:0:0:0: +230,295,175840,2,0,P|180:257|200:160,1,160,8|0,0:0|0:0,0:0:0:0: +314,49,176290,1,8,0:0:0:0: +314,49,176440,1,0,0:0:0:0: +363,142,176590,6,0,P|317:126|263:138,1,80,14|0,0:0|0:0,0:0:0:0: +217,212,176890,1,0,0:0:0:0: +439,129,177040,2,0,P|426:96|364:67,1,80,8|0,0:0|0:0,0:0:0:0: +217,212,177340,1,0,0:0:0:0: +217,212,177490,2,0,L|299:226,1,80,8|0,0:0|0:0,0:0:0:0: +455,251,177790,6,0,P|404:192|463:121,1,160,10|0,0:0|0:0,0:0:0:0: +294,246,178240,2,0,P|235:297|145:263,1,160,8|0,0:0|0:0,0:0:0:0: +73,184,178690,1,8,0:0:0:0: +73,184,178765,1,0,0:0:0:0: +73,184,178840,1,0,0:0:0:0: +214,207,178990,6,0,L|223:145,1,40,14|0,0:0|0:0,0:0:0:0: +142,130,179140,2,0,L|133:67,3,40 +251,89,179440,1,0,0:0:0:0: +253,69,179515,1,0,0:0:0:0: +255,47,179590,2,0,L|252:6,3,40,10|0|0|0,0:0|0:0|0:0|0:0,0:0:0:0: +344,107,179890,1,8,0:0:0:0: +343,99,179965,1,0,0:0:0:0: +342,91,180040,1,0,0:0:0:0: +341,83,180115,1,0,0:0:0:0: +340,74,180190,6,0,L|339:21,3,40,14|0|0|0,0:0|0:0|0:0|0:0,0:0:0:0: +458,77,180490,2,0,L|458:117,3,40,8|0|0|0,0:0|0:0|0:0|0:0,0:0:0:0: +370,179,180790,2,0,L|377:236,3,40,10|0|0|0,0:0|0:0|0:0|0:0,0:0:0:0: +458,262,181090,2,0,L|449:320,3,40,8|0|0|0,0:0|0:0|0:0|0:0,0:0:0:0: +363,329,181390,5,14,0:0:0:0: +334,301,181465,1,0,0:0:0:0: +299,282,181540,1,0,0:0:0:0: +260,273,181615,1,0,0:0:0:0: +220,275,181690,1,8,0:0:0:0: +182,288,181765,1,0,0:0:0:0: +150,311,181840,1,0,0:0:0:0: +110,315,181915,1,0,0:0:0:0: +71,305,181990,5,10,0:0:0:0: +38,283,182065,1,0,0:0:0:0: +14,251,182140,1,8,0:0:0:0: +4,213,182215,1,0,0:0:0:0: +5,174,182290,1,8,0:0:0:0: +20,137,182365,1,0,0:0:0:0: +46,107,182440,1,8,0:0:0:0: +81,88,182515,1,0,0:0:0:0: +121,82,182590,1,14,0:0:0:0: +286,296,183790,6,0,P|334:318|410:293,1,95.9999970703126,14|0,0:0|0:0,0:0:0:0: +354,162,184090,1,0,0:0:0:0: +435,378,184240,2,0,P|460:334|449:266,1,95.9999970703126,8|0,0:0|0:0,0:0:0:0: +354,162,184540,1,0,0:0:0:0: +330,368,184690,2,0,L|347:256,1,95.9999970703126,8|0,0:0|0:0,0:0:0:0: +207,185,184990,6,0,P|247:244|206:354,1,191.999994140625,14|0,0:0|0:0,0:0:0:0: +330,368,185440,2,0,P|352:263|332:169,1,191.999994140625,8|0,0:0|0:0,0:0:0:0: +388,103,185890,2,0,P|429:171|420:223,1,95.9999970703126,8|0,0:0|0:0,0:0:0:0: +330,368,186190,5,14,0:0:0:0: +336,180,186340,1,0,0:0:0:0: +439,283,186490,1,8,0:0:0:0: +265,306,186640,1,0,0:0:0:0: +450,378,186790,5,10,0:0:0:0: +427,178,186940,1,0,0:0:0:0: +265,306,187090,1,8,0:0:0:0: +439,283,187240,1,0,0:0:0:0: +249,317,187390,6,0,P|228:274|251:207,1,95.9999970703126,14|0,0:0|0:0,0:0:0:0: +452,291,187690,2,0,P|473:248|450:181,1,95.9999970703126,2|0,0:0|0:0,0:0:0:0: +231,155,187990,2,0,L|128:119,1,95.9999970703126,8|0,0:0|0:0,0:0:0:0: +375,234,188290,2,0,L|478:197,1,95.9999970703126,2|0,0:0|0:0,0:0:0:0: +231,155,188590,5,14,0:0:0:0: +208,146,188665,1,0,0:0:0:0: +185,138,188740,1,0,0:0:0:0: +163,130,188815,1,0,0:0:0:0: +137,121,188890,2,0,L|82:131,1,47.9999985351563 +73,256,189040,2,0,P|154:239|227:311,1,191.999994140625,10|0,0:0|0:0,0:0:0:0: +132,333,189490,2,8,L|155:224,1,95.9999970703126,10|0,0:0|0:0,0:0:0:0: +271,133,189790,5,14,0:0:0:0: +273,156,189865,1,0,0:0:0:0: +276,180,189940,1,0,0:0:0:0: +278,204,190015,1,0,0:0:0:0: +281,228,190090,2,0,L|276:299,1,47.9999985351563 +359,348,190240,2,0,L|372:139,1,191.999994140625,10|0,0:0|0:0,0:0:0:0: +271,133,190690,2,0,L|283:252,1,95.9999970703126,10|0,0:0|0:0,0:0:0:0: +223,316,190990,6,0,L|241:382,3,47.9999985351563,14|0|0|0,0:0|0:0|0:0|0:0,0:0:0:0: +145,272,191290,2,0,L|124:315,3,47.9999985351563,8|0|0|0,0:0|0:0|0:0|0:0,0:0:0:0: +113,188,191590,2,0,L|69:208,3,47.9999985351563,8|0|0|0,0:0|0:0|0:0|0:0,0:0:0:0: +149,97,191890,2,0,L|102:84,3,47.9999985351563,8|0|0|0,0:0|0:0|0:0|0:0,0:0:0:0: +279,36,192190,5,14,0:0:0:0: +270,40,192265,1,0,0:0:0:0: +261,43,192340,1,0,0:0:0:0: +252,46,192415,1,0,0:0:0:0: +243,49,192490,2,0,L|176:27,3,47.9999985351563,2|0|0|0,0:0|0:0|0:0|0:0,0:0:0:0: +295,137,192790,2,0,L|340:151,3,47.9999985351563,8|0|0|0,0:0|0:0|0:0|0:0,0:0:0:0: +195,170,193090,2,0,L|149:155,3,47.9999985351563,2|0|0|0,0:0|0:0|0:0|0:0,0:0:0:0: +326,241,193390,6,0,P|398:224|417:105,1,191.999994140625,14|0,0:0|0:0,0:0:0:0: +176,77,193840,2,0,L|220:290,1,191.999994140625,8|0,0:0|0:0,0:0:0:0: +241,382,194290,1,8,0:0:0:0: +326,241,194440,1,0,0:0:0:0: +132,348,194590,6,0,P|175:264|153:153,1,191.999994140625,14|0,0:0|0:0,0:0:0:0: +211,61,195040,2,0,P|295:104|406:82,1,191.999994140625,8|0,0:0|0:0,0:0:0:0: +470,129,195490,2,4,P|409:164|353:175,1,95.9999970703126,10|0,0:0|0:0,0:0:0:0: +147,191,195790,6,0,P|240:174|339:228,1,191.999994140625,14|0,0:0|0:0,0:0:0:0: +261,293,196240,2,0,P|251:195|278:87,1,191.999994140625,8|0,0:0|0:0,0:0:0:0: +207,64,196690,2,0,P|192:100|180:169,1,95.9999970703126,10|0,0:0|0:0,0:0:0:0: +318,348,196990,6,0,P|329:255|234:212,1,191.999994140625,14|2,0:0|0:0,0:0:0:0: +170,348,197440,1,0,0:0:0:0: +406,335,197590,2,0,P|402:245|378:206,1,95.9999970703126,8|0,0:0|0:0,0:0:0:0: +149,168,197890,2,0,P|153:258|177:297,1,95.9999970703126,2|0,0:0|0:0,0:0:0:0: +328,265,198190,5,14,0:0:0:0: +329,255,198265,1,0,0:0:0:0: +330,245,198340,1,0,0:0:0:0: +331,236,198415,1,0,0:0:0:0: +332,226,198490,1,0,0:0:0:0: +334,217,198565,1,0,0:0:0:0: +335,207,198640,1,8,0:0:0:0: +336,198,198715,1,0,0:0:0:0: +338,190,198790,5,2,0:0:0:0: +296,212,198865,1,0,0:0:0:0: +248,217,198940,1,0,0:0:0:0: +203,207,199015,1,0,0:0:0:0: +166,172,199090,1,8,0:0:0:0: +145,129,199165,1,0,0:0:0:0: +142,81,199240,1,8,0:0:0:0: +159,36,199315,1,0,0:0:0:0: +191,1,199390,1,14,0:0:0:0: +207,214,200590,5,14,0:0:0:0: +363,199,200740,2,0,L|450:189,1,80 +321,291,201040,1,8,0:0:0:0: +321,291,201115,1,0,0:0:0:0: +321,291,201190,1,0,0:0:0:0: +271,155,201340,1,0,0:0:0:0: +225,311,201490,1,8,0:0:0:0: +256,130,201640,1,0,0:0:0:0: +321,291,201790,5,10,0:0:0:0: +155,236,201940,2,0,L|59:200,1,80 +95,54,202240,1,8,0:0:0:0: +95,54,202315,1,0,0:0:0:0: +95,54,202390,2,0,B|144:62|144:62|200:57,1,80 +256,130,202690,2,0,P|299:126|340:134,1,80,8|0,0:0|0:0,0:0:0:0: +406,41,202990,5,14,0:0:0:0: +360,250,203140,2,0,P|319:282|281:287,1,80 +180,163,203440,1,8,0:0:0:0: +180,163,203515,1,0,0:0:0:0: +180,163,203590,2,0,P|169:92|179:64,1,80 +71,243,203890,2,0,P|43:172|42:141,1,80,8|0,0:0|0:0,0:0:0:0: +103,36,204190,5,10,0:0:0:0: +261,176,204340,1,0,0:0:0:0: +71,243,204490,1,0,0:0:0:0: +103,36,204640,2,0,L|136:205,1,160,8|8,0:0|0:0,0:0:0:0: +198,39,205090,1,0,0:0:0:0: +198,39,205240,1,0,0:0:0:0: +71,243,205390,5,14,0:0:0:0: +259,195,205540,1,0,0:0:0:0: +297,185,205615,1,0,0:0:0:0: +336,175,205690,1,0,0:0:0:0: +186,155,205840,2,0,P|181:232|267:281,1,160,8|0,0:0|0:0,0:0:0:0: +336,175,206290,1,8,0:0:0:0: +272,98,206440,1,0,0:0:0:0: +240,279,206590,5,10,0:0:0:0: +394,253,206740,1,0,0:0:0:0: +257,197,206890,1,0,0:0:0:0: +419,349,207040,2,0,L|398:254,1,80,8|0,0:0|0:0,0:0:0:0: +361,101,207340,1,0,0:0:0:0: +174,228,207490,2,0,L|130:259,2,40,8|0|0,0:0|0:0|0:0,0:0:0:0: +200,145,207790,5,14,0:0:0:0: +327,206,207940,1,0,0:0:0:0: +257,84,208090,1,0,0:0:0:0: +281,275,208240,1,8,0:0:0:0: +383,72,208390,1,0,0:0:0:0: +200,145,208540,1,0,0:0:0:0: +371,279,208690,1,8,0:0:0:0: +383,72,208840,1,0,0:0:0:0: +172,223,208990,5,10,0:0:0:0: +175,242,209065,1,0,0:0:0:0: +178,262,209140,1,0,0:0:0:0: +181,282,209215,1,0,0:0:0:0: +185,301,209290,1,8,0:0:0:0: +291,335,209440,1,0,0:0:0:0: +78,314,209590,2,0,L|13:307,2,40,8|0|0,0:0|0:0|0:0,0:0:0:0: +265,257,209890,2,0,L|330:250,2,40,8|0|0,0:0|0:0|0:0,0:0:0:0: +81,223,210190,5,14,0:0:0:0: +241,158,210340,1,0,0:0:0:0: +174,341,210490,2,0,L|153:232,1,80,0|8,0:0|0:0,0:0:0:0: +125,50,210790,1,0,0:0:0:0: +241,158,210940,1,0,0:0:0:0: +129,162,211090,1,8,0:0:0:0: +237,46,211240,1,0,0:0:0:0: +229,237,211390,6,0,L|245:125,1,80,8|0,0:0|0:0,0:0:0:0: +418,217,211690,2,0,L|434:105,1,80,0|8,0:0|0:0,0:0:0:0: +328,81,211990,1,0,0:0:0:0: +328,81,212140,1,0,0:0:0:0: +312,319,212290,2,0,L|320:220,1,80,8|0,0:0|0:0,0:0:0:0: +323,161,212590,5,6,0:0:0:0: +233,296,212740,1,0,0:0:0:0: +233,296,212815,1,0,0:0:0:0: +233,296,212890,1,0,0:0:0:0: +418,217,213040,1,8,0:0:0:0: +418,217,213115,1,0,0:0:0:0: +418,217,213190,1,0,0:0:0:0: +241,165,213340,5,0,0:0:0:0: +385,298,213490,1,8,0:0:0:0: +411,98,213640,1,0,0:0:0:0: +301,258,213790,5,10,0:0:0:0: +338,78,213940,1,0,0:0:0:0: +469,201,214090,1,0,0:0:0:0: +237,103,214240,2,0,P|145:154|146:233,1,160,8|0,0:0|0:0,0:0:0:0: +211,271,214690,1,8,0:0:0:0: +183,27,214840,1,0,0:0:0:0: +287,192,214990,5,14,0:0:0:0: +236,348,215140,2,0,P|177:344|152:324,1,80 +136,200,215440,1,8,0:0:0:0: +136,200,215515,1,0,0:0:0:0: +136,200,215590,1,0,0:0:0:0: +287,192,215740,1,0,0:0:0:0: +172,119,215890,1,8,0:0:0:0: +211,271,216040,1,0,0:0:0:0: +258,113,216190,5,10,0:0:0:0: +77,255,216340,2,0,P|56:207|61:166,1,80 +211,271,216640,1,8,0:0:0:0: +211,271,216715,1,0,0:0:0:0: +211,271,216790,1,0,0:0:0:0: +172,119,216940,1,0,0:0:0:0: +282,347,217090,2,0,L|296:239,1,80,8|0,0:0|0:0,0:0:0:0: +114,268,217390,6,0,L|71:252,3,40,14|0|0|0,0:0|0:0|0:0|0:0,0:0:0:0: +191,218,217690,2,0,L|234:202,3,40,8|0|0|0,0:0|0:0|0:0|0:0,0:0:0:0: +108,183,217990,2,0,L|65:167,3,40,10|0|0|0,0:0|0:0|0:0|0:0,0:0:0:0: +178,116,218290,2,0,L|221:100,3,40,8|0|0|0,0:0|0:0|0:0|0:0,0:0:0:0: +70,169,218590,6,0,L|53:61,1,80,10|0,0:0|0:0,0:0:0:0: +228,204,218890,2,0,L|244:110,1,80,10|0,0:0|0:0,0:0:0:0: +111,276,219190,2,0,L|0:265,2,106.666666666667,10|2|0,0:0|0:0|0:0,0:0:0:0: +324,293,219790,5,12,0:0:0:0: +256,192,219865,12,8,221890,0:0:0:0: +256,192,222190,5,12,0:0:0:0: +133,92,231490,5,8,0:0:0:0: +237,116,231790,6,0,B|187:150|178:225|211:260|211:260|265:271|299:340|285:380|285:380|340:224,1,480,4|2,0:0|0:0,0:0:0:0: +380,116,233890,1,8,0:0:0:0: +399,288,234190,6,0,B|342:336|286:308|256:277|256:277|209:320|154:320|109:283|109:283|162:184|245:210,1,480,4|2,0:0|0:0,0:0:0:0: +462,129,236440,5,8,0:0:0:0: +380,166,236590,2,0,B|354:81|416:79|400:10|400:10|350:2|305:45|298:107|298:107|237:107|190:72|190:72|196:143|164:184|164:184|220:167|255:179,1,640,4|4,0:0|0:0,0:0:0:0: +256,192,239065,12,12,242215,0:0:0:0: +421,112,242590,6,0,L|427:56,3,40,14|0|0|0,0:0|0:0|0:0|0:0,0:0:0:0: +311,137,242942,2,0,L|317:81,3,40,8|0|0|0,0:0|0:0|0:0|0:0,0:0:0:0: +360,216,243295,6,0,L|355:255,3,40,8|0|0|0,0:0|0:0|0:0|0:0,0:0:0:0: +250,241,243648,2,0,L|245:280,3,40,8|0|0|0,0:0|0:0|0:0|0:0,0:0:0:0: +437,247,244001,6,0,L|441:207,2,40,8|0|0,0:0|0:0|0:0,0:0:0:0: +397,330,244266,2,0,L|392:369,2,40,8|0|0,0:0|0:0|0:0,0:0:0:0: +356,256,244531,2,0,L|360:216,1,40,8|0,0:0|0:0,0:0:0:0: +293,150,244707,2,0,L|288:204,2,40,10|0|0,0:0|0:0|0:0,0:0:0:0: +215,282,244972,2,0,L|219:231,2,40,8|0|0,0:0|0:0|0:0,0:0:0:0: +172,151,245237,2,0,L|175:92,1,40,8|0,0:0|0:0,0:0:0:0: +287,82,245413,5,14,0:0:0:0: +303,117,245501,1,0,0:0:0:0: +338,136,245589,1,0,0:0:0:0: +377,132,245677,1,0,0:0:0:0: +406,105,245765,1,8,0:0:0:0: +415,67,245854,1,0,0:0:0:0: +400,31,245942,1,0,0:0:0:0: +366,10,246030,1,0,0:0:0:0: +327,13,246119,6,0,L|295:56,3,40,10|0|0|0,0:0|0:0|0:0|0:0,0:0:0:0: +197,76,246472,2,0,L|163:115,3,40,8|0|0|0,0:0|0:0|0:0|0:0,0:0:0:0: +68,158,246825,6,0,L|32:200,2,40,10|0|0,0:0|0:0|0:0,0:0:0:0: +173,230,247090,2,0,L|172:283,2,40,8|0|0,0:0|0:0|0:0,0:0:0:0: +293,180,247354,2,0,L|251:139,1,40,8|0,0:0|0:0,0:0:0:0: +173,90,247531,2,0,L|173:35,2,40,10|0|0,0:0|0:0|0:0,0:0:0:0: +267,31,247795,2,0,L|267:85,2,40,8|0|0,0:0|0:0|0:0,0:0:0:0: +293,180,248061,2,0,L|291:115,1,40,8|0,0:0|0:0,0:0:0:0: +211,192,248237,5,14,0:0:0:0: +196,228,248325,1,0,0:0:0:0: +164,251,248413,1,0,0:0:0:0: +124,252,248501,1,0,0:0:0:0: +91,231,248589,1,8,0:0:0:0: +75,195,248678,1,0,0:0:0:0: +81,156,248766,1,0,0:0:0:0: +108,127,248854,1,0,0:0:0:0: +146,118,248942,6,0,L|205:135,3,40,10|0|0|0,0:0|0:0|0:0|0:0,0:0:0:0: +247,33,249295,2,0,L|260:92,3,40,8|0|0|0,0:0|0:0|0:0|0:0,0:0:0:0: +364,39,249648,6,0,L|356:91,2,40,10|0|0,0:0|0:0|0:0,0:0:0:0: +308,152,249913,2,0,L|314:209,2,40,8|0|0,0:0|0:0|0:0,0:0:0:0: +366,264,250178,2,0,L|354:304,1,40,8|0,0:0|0:0,0:0:0:0: +253,352,250354,2,0,L|267:304,2,40,10|0|0,0:0|0:0|0:0,0:0:0:0: +238,243,250619,2,0,L|248:204,2,40,8|0|0,0:0|0:0|0:0,0:0:0:0: +220,95,250884,2,0,L|196:163,1,40,8|0,0:0|0:0,0:0:0:0: +151,250,251060,5,14,0:0:0:0: +154,210,251148,1,0,0:0:0:0: +137,174,251236,1,0,0:0:0:0: +105,152,251324,1,0,0:0:0:0: +65,149,251413,1,8,0:0:0:0: +30,166,251501,1,0,0:0:0:0: +8,199,251589,1,0,0:0:0:0: +5,239,251677,1,0,0:0:0:0: +23,274,251766,5,10,0:0:0:0: +53,248,251854,1,0,0:0:0:0: +89,231,251942,1,0,0:0:0:0: +129,227,252030,1,0,0:0:0:0: +168,234,252119,1,8,0:0:0:0: +204,252,252207,1,0,0:0:0:0: +232,280,252295,1,0,0:0:0:0: +266,301,252383,1,0,0:0:0:0: +305,306,252472,5,10,0:0:0:0: +278,278,252560,1,0,0:0:0:0: +261,242,252648,1,0,0:0:0:0: +258,202,252736,1,0,0:0:0:0: +268,163,252824,1,10,0:0:0:0: +290,130,252913,1,0,0:0:0:0: +322,107,253001,1,0,0:0:0:0: +360,95,253089,1,0,0:0:0:0: +400,97,253178,5,10,0:0:0:0: +371,68,253266,1,0,0:0:0:0: +336,51,253354,1,0,0:0:0:0: +296,46,253442,1,0,0:0:0:0: +257,54,253530,1,10,0:0:0:0: +223,75,253619,1,0,0:0:0:0: +197,105,253707,1,0,0:0:0:0: +183,142,253795,1,0,0:0:0:0: +181,182,253883,5,14,0:0:0:0: +255,280,254060,2,0,P|307:311|367:312,1,100,8|0,0:0|0:0,0:0:0:0: +187,358,254413,1,8,0:0:0:0: +91,224,254590,2,0,P|156:188|218:176,1,100,8|0,0:0|0:0,0:0:0:0: +57,338,254942,2,0,L|77:205,1,100,8|0,0:0|0:0,0:0:0:0: +125,139,255295,5,10,0:0:0:0: +31,349,255472,2,0,L|50:225,1,100,8|0,0:0|0:0,0:0:0:0: +125,139,255825,1,8,0:0:0:0: +131,332,256001,1,10,0:0:0:0: +126,308,256089,1,0,0:0:0:0: +116,286,256178,1,0,0:0:0:0: +100,268,256265,1,0,0:0:0:0: +82,253,256354,2,0,P|66:222|64:189,3,50,8|0|0|0,0:0|0:0|0:0|0:0,0:0:0:0: +125,139,256707,5,14,0:0:0:0: +177,167,256795,1,0,0:0:0:0: +236,176,256883,1,0,0:0:0:0: +294,163,256971,1,0,0:0:0:0: +345,131,257060,2,0,L|371:79,3,50,8|0|0|0,0:0|0:0|0:0|0:0,0:0:0:0: +441,104,257413,5,10,0:0:0:0: +439,140,257501,1,0,0:0:0:0: +438,176,257589,1,0,0:0:0:0: +435,212,257677,1,0,0:0:0:0: +432,250,257766,2,0,L|428:313,3,50,8|0|0|0,0:0|0:0|0:0|0:0,0:0:0:0: +348,299,258119,5,10,0:0:0:0: +350,239,258207,1,0,0:0:0:0: +323,187,258295,1,0,0:0:0:0: +273,155,258383,1,0,0:0:0:0: +214,153,258471,1,8,0:0:0:0: +161,180,258560,1,0,0:0:0:0: +130,231,258648,1,0,0:0:0:0: +128,290,258736,1,0,0:0:0:0: +156,342,258825,6,0,L|214:357,3,50,10|0|0|0,0:0|0:0|0:0|0:0,0:0:0:0: +130,231,259178,2,0,L|63:246,3,50,8|0|0|0,0:0|0:0|0:0|0:0,0:0:0:0: +34,167,259531,5,14,0:0:0:0: +200,279,259707,2,0,P|211:224|182:168,1,100,8|0,0:0|0:0,0:0:0:0: +34,167,260060,1,8,0:0:0:0: +34,186,260148,1,0,0:0:0:0: +36,206,260237,2,0,P|86:239|139:230,1,100,8|0,0:0|0:0,0:0:0:0: +193,169,260501,2,0,P|239:150|309:170,1,100,8|0,0:0|0:0,0:0:0:0: +362,240,260766,2,0,P|422:248|433:243,1,50,8|0,0:0|0:0,0:0:0:0: +462,167,260942,6,0,P|441:114|447:45,1,100,10|0,0:0|0:0,0:0:0:0: +350,52,261207,2,0,B|323:58|323:58|274:55|274:55|209:69,1,100,8|0,0:0|0:0,0:0:0:0: +96,94,261472,2,0,L|152:97,1,50,8|0,0:0|0:0,0:0:0:0: +207,217,261648,1,10,0:0:0:0: +157,185,261736,1,0,0:0:0:0: +99,194,261825,1,0,0:0:0:0: +62,239,261913,1,0,0:0:0:0: +64,298,262001,2,0,P|102:338|123:347,3,50,8|0|0|0,0:0|0:0|0:0|0:0,0:0:0:0: +145,265,262354,6,0,L|153:189,3,40,14|0|0|0,0:0|0:0|0:0|0:0,0:0:0:0: +230,243,262707,2,0,L|238:167,3,40,8|0|0|0,0:0|0:0|0:0|0:0,0:0:0:0: +292,305,263060,6,0,L|284:381,3,40,14|0|0|0,0:0|0:0|0:0|0:0,0:0:0:0: +207,327,263413,2,0,L|199:403,3,40,10|0|0|0,0:0|0:0|0:0|0:0,0:0:0:0: +145,265,263766,5,14,0:0:0:0: +138,225,263854,1,0,0:0:0:0: +148,187,263942,1,0,0:0:0:0: +174,157,264030,1,0,0:0:0:0: +210,141,264118,1,10,0:0:0:0: +250,142,264207,1,0,0:0:0:0: +285,160,264295,1,0,0:0:0:0: +309,191,264383,1,0,0:0:0:0: +318,231,264472,6,0,L|314:286,3,40,10|0|0|0,0:0|0:0|0:0|0:0,0:0:0:0: +230,333,264825,2,0,L|236:270,3,40,10|0|0|0,0:0|0:0|0:0|0:0,0:0:0:0: +144,274,265178,5,14,0:0:0:0: +151,245,265266,1,0,0:0:0:0: +168,220,265354,1,0,0:0:0:0: +192,202,265442,1,0,0:0:0:0: +221,194,265531,1,8,0:0:0:0: +251,196,265619,1,0,0:0:0:0: +278,207,265707,1,0,0:0:0:0: +300,228,265795,1,0,0:0:0:0: +314,253,265884,6,0,L|304:301,3,40,10|0|0|0,0:0|0:0|0:0|0:0,0:0:0:0: +387,221,266237,2,0,L|393:181,3,40,8|0|0|0,0:0|0:0|0:0|0:0,0:0:0:0: +347,118,266590,6,0,L|355:68,2,40,10|0|0,0:0|0:0|0:0,0:0:0:0: +268,35,266854,2,0,L|259:91,2,40,8|0|0,0:0|0:0|0:0,0:0:0:0: +172,70,267119,2,0,L|165:110,1,40,8|0,0:0|0:0,0:0:0:0: +201,218,267295,2,0,L|209:175,2,40,10|0|0,0:0|0:0|0:0,0:0:0:0: +134,299,267560,2,0,L|125:340,2,40,8|0|0,0:0|0:0|0:0,0:0:0:0: +240,333,267825,2,0,L|251:282,1,40,8|0,0:0|0:0,0:0:0:0: +307,242,268001,5,14,0:0:0:0: +292,228,268089,1,0,0:0:0:0: +281,211,268177,1,0,0:0:0:0: +273,193,268265,1,0,0:0:0:0: +268,174,268353,1,8,0:0:0:0: +268,154,268442,1,0,0:0:0:0: +272,134,268530,1,0,0:0:0:0: +279,115,268618,1,0,0:0:0:0: +292,98,268707,6,0,L|341:62,3,40,10|0|0|0,0:0|0:0|0:0|0:0,0:0:0:0: +189,56,269060,2,0,L|140:20,3,40,8|0|0|0,0:0|0:0|0:0|0:0,0:0:0:0: +78,106,269413,6,0,L|130:118,2,40,10|0|0,0:0|0:0|0:0,0:0:0:0: +241,165,269678,2,0,L|184:172,2,40,8|0|0,0:0|0:0|0:0,0:0:0:0: +74,211,269942,2,0,L|131:222,1,40,8|0,0:0|0:0,0:0:0:0: +246,266,270119,2,0,L|179:279,2,40,10|0|0,0:0|0:0|0:0,0:0:0:0: +73,319,270384,2,0,L|114:327,2,40,8|0|0,0:0|0:0|0:0,0:0:0:0: +246,266,270648,2,0,L|206:273,1,40,8|0,0:0|0:0,0:0:0:0: +151,116,270825,5,14,0:0:0:0: +175,147,270913,1,0,0:0:0:0: +212,161,271001,1,0,0:0:0:0: +251,154,271089,1,0,0:0:0:0: +281,129,271177,1,8,0:0:0:0: +294,91,271266,1,0,0:0:0:0: +286,53,271354,1,0,0:0:0:0: +259,24,271442,1,0,0:0:0:0: +221,12,271531,6,0,L|157:34,3,40,10|0|0|0,0:0|0:0|0:0|0:0,0:0:0:0: +151,116,271884,2,0,L|106:163,3,40,8|0|0|0,0:0|0:0|0:0|0:0,0:0:0:0: +166,234,272237,6,0,L|178:290,2,40,10|0|0,0:0|0:0|0:0,0:0:0:0: +99,294,272501,2,0,L|109:343,2,40,8|0|0,0:0|0:0|0:0,0:0:0:0: +258,285,272766,2,0,L|243:230,1,40,8|0,0:0|0:0,0:0:0:0: +344,255,272942,2,0,L|356:301,2,40,10|0|0,0:0|0:0|0:0,0:0:0:0: +258,285,273207,2,0,L|242:230,2,40,8|0|0,0:0|0:0|0:0,0:0:0:0: +412,217,273472,2,0,L|400:176,1,40,8|0,0:0|0:0,0:0:0:0: +358,67,273648,5,14,0:0:0:0: +319,56,273736,1,0,0:0:0:0: +279,54,273824,1,0,0:0:0:0: +240,63,273912,1,0,0:0:0:0: +204,80,274001,5,8,0:0:0:0: +214,118,274089,1,0,0:0:0:0: +216,158,274177,1,0,0:0:0:0: +207,197,274265,1,0,0:0:0:0: +190,233,274354,5,10,0:0:0:0: +207,223,274442,1,0,0:0:0:0: +226,215,274530,1,0,0:0:0:0: +245,211,274618,1,0,0:0:0:0: +265,209,274707,5,8,0:0:0:0: +282,218,274795,1,0,0:0:0:0: +300,226,274883,1,0,0:0:0:0: +320,231,274971,1,0,0:0:0:0: +339,233,275060,5,10,0:0:0:0: +367,205,275148,1,0,0:0:0:0: +405,196,275236,1,0,0:0:0:0: +442,208,275324,1,0,0:0:0:0: +468,238,275412,1,10,0:0:0:0: +474,277,275501,1,0,0:0:0:0: +459,313,275589,1,0,0:0:0:0: +427,336,275677,1,0,0:0:0:0: +388,340,275766,5,10,0:0:0:0: +358,313,275854,1,0,0:0:0:0: +323,294,275942,1,0,0:0:0:0: +285,282,276030,1,0,0:0:0:0: +245,279,276118,1,10,0:0:0:0: +205,285,276207,1,0,0:0:0:0: +168,299,276295,1,0,0:0:0:0: +135,321,276383,1,0,0:0:0:0: +107,350,276472,6,0,L|54:325,3,40,14|0|0|0,0:0|0:0|0:0|0:0,0:0:0:0: +83,252,276825,2,0,P|101:211|101:164,1,80,8|0,0:0|0:0,0:0:0:0: +195,57,277178,2,0,P|177:98|177:145,1,80,8|0,0:0|0:0,0:0:0:0: +251,236,277531,1,8,0:0:0:0: +350,128,277707,1,8,0:0:0:0: +417,295,277884,5,2,0:0:0:0: +331,297,278060,1,8,0:0:0:0: +438,220,278237,1,8,0:0:0:0: +239,318,278413,1,8,0:0:0:0: +350,128,278590,2,0,L|346:101,14,20,10|0|0|0|8|0|0|0|8|0|0|0|8|0|0,0:0|0:0|0:0|0:0|0:0|0:0|0:0|0:0|0:0|0:0|0:0|0:0|0:0|0:0|0:0,0:0:0:0: +328,91,279295,5,14,0:0:0:0: +299,62,279383,1,0,0:0:0:0: +262,49,279471,1,0,0:0:0:0: +223,53,279559,1,0,0:0:0:0: +188,73,279647,1,8,0:0:0:0: +166,106,279736,1,0,0:0:0:0: +160,145,279824,1,0,0:0:0:0: +171,183,279912,1,0,0:0:0:0: +197,213,280001,5,10,0:0:0:0: +224,184,280089,1,0,0:0:0:0: +262,174,280177,1,0,0:0:0:0: +300,185,280265,1,0,0:0:0:0: +327,213,280353,1,8,0:0:0:0: +335,252,280442,1,0,0:0:0:0: +323,289,280530,1,0,0:0:0:0: +292,315,280618,1,0,0:0:0:0: +253,321,280706,5,10,0:0:0:0: +265,283,280795,1,0,0:0:0:0: +255,245,280883,1,0,0:0:0:0: +225,219,280971,1,0,0:0:0:0: +186,212,281059,1,8,0:0:0:0: +150,228,281148,1,0,0:0:0:0: +128,260,281236,1,0,0:0:0:0: +127,300,281324,1,0,0:0:0:0: +147,333,281413,6,0,L|176:366,3,40,10|0|0|0,0:0|0:0|0:0|0:0,0:0:0:0: +253,321,281766,2,0,L|254:301,6,20,8|0|0|0|0|0|0,0:0|0:0|0:0|0:0|0:0|0:0|0:0,0:0:0:0: +303,240,282119,6,0,P|253:224|220:230,1,80,14|0,0:0|0:0,0:0:0:0: +159,303,282383,2,0,P|113:308|66:293,1,80,10|0,0:0|0:0,0:0:0:0: +39,239,282648,2,0,P|66:228|90:228,1,40,8|0,0:0|0:0,0:0:0:0: +226,227,282825,2,0,P|205:174|210:122,1,80,10|0,0:0|0:0,0:0:0:0: +303,124,283090,2,0,P|312:88|296:27,1,80,10|0,0:0|0:0,0:0:0:0: +195,55,283354,2,0,L|246:88,1,40,8|0,0:0|0:0,0:0:0:0: +303,124,283531,6,0,L|365:119,3,40,10|0|0|0,0:0|0:0|0:0|0:0,0:0:0:0: +378,192,283884,2,0,L|268:200,1,80,8|0,0:0|0:0,0:0:0:0: +219,320,284237,2,0,L|261:328,2,40,10|0|0,0:0|0:0|0:0,0:0:0:0: +156,276,284501,2,0,P|142:319|194:394,1,120,8|10,0:0|0:0,0:0:0:0: +326,346,284942,5,14,0:0:0:0: +343,309,285030,1,0,0:0:0:0: +348,270,285118,1,0,0:0:0:0: +343,231,285206,1,0,0:0:0:0: +326,195,285294,1,8,0:0:0:0: +309,158,285383,1,0,0:0:0:0: +303,119,285471,1,0,0:0:0:0: +309,80,285559,1,0,0:0:0:0: +326,43,285647,5,10,0:0:0:0: +290,61,285736,1,0,0:0:0:0: +251,68,285824,1,0,0:0:0:0: +211,65,285912,1,0,0:0:0:0: +174,52,286001,1,8,0:0:0:0: +136,41,286089,1,0,0:0:0:0: +99,55,286177,1,0,0:0:0:0: +77,88,286265,1,0,0:0:0:0: +78,127,286354,6,0,L|91:174,3,40,10|0|0|0,0:0|0:0|0:0|0:0,0:0:0:0: +174,176,286707,2,0,L|160:226,3,40,10|0|0|0,0:0|0:0|0:0|0:0,0:0:0:0: +64,247,287060,2,0,L|77:294,3,40,10|0|0|0,0:0|0:0|0:0|0:0,0:0:0:0: +162,312,287413,2,0,L|148:362,3,40,10|0|0|0,0:0|0:0|0:0|0:0,0:0:0:0: +241,322,287766,5,14,0:0:0:0: +377,273,287916,2,0,L|425:256,2,40 +200,228,288216,2,0,L|116:203,1,80 +335,146,288516,2,0,L|419:121,2,80 +123,205,288966,5,10,0:0:0:0: +261,163,289116,1,0,0:0:0:0: +261,163,289191,1,0,0:0:0:0: +261,163,289266,1,0,0:0:0:0: +325,279,289416,1,0,0:0:0:0: +380,151,289566,1,0,0:0:0:0: +364,354,289716,1,0,0:0:0:0: +167,277,289866,2,0,P|215:269|256:280,1,80 +364,354,290166,5,14,0:0:0:0: +293,176,290316,1,0,0:0:0:0: +293,176,290391,1,0,0:0:0:0: +293,176,290466,1,0,0:0:0:0: +210,351,290616,1,0,0:0:0:0: +394,237,290766,1,0,0:0:0:0: +287,373,290916,1,0,0:0:0:0: +146,187,291066,1,0,0:0:0:0: +378,152,291216,1,0,0:0:0:0: +210,351,291366,6,0,L|230:136,1,200,14|0,0:0|0:0,0:0:0:0: +286,105,292266,2,0,L|288:86,5,13.3333333333333,8|0|0|0|0|0,0:0|0:0|0:0|0:0|0:0|0:0,0:0:0:0: +312,129,292566,5,14,0:0:0:0: +161,72,292716,1,0,0:0:0:0: +161,72,292791,1,0,0:0:0:0: +161,72,292866,1,0,0:0:0:0: +303,1,293016,1,0,0:0:0:0: +459,95,293166,1,0,0:0:0:0: +312,129,293316,1,0,0:0:0:0: +424,199,293466,1,0,0:0:0:0: +320,244,293616,1,0,0:0:0:0: +477,323,293766,5,14,0:0:0:0: +180,267,293916,1,0,0:0:0:0: +180,267,293991,1,0,0:0:0:0: +180,267,294066,1,0,0:0:0:0: +318,327,294216,1,0,0:0:0:0: +243,180,294366,1,0,0:0:0:0: +203,358,294516,1,0,0:0:0:0: +135,191,294666,2,0,B|127:169|127:169|128:95,1,80 +69,331,294966,5,14,0:0:0:0: +372,280,295116,1,0,0:0:0:0: +372,280,295191,1,0,0:0:0:0: +372,280,295266,1,0,0:0:0:0: +236,218,295416,1,0,0:0:0:0: +414,191,295566,1,0,0:0:0:0: +271,121,295716,1,0,0:0:0:0: +449,94,295866,1,0,0:0:0:0: +292,278,296016,1,0,0:0:0:0: +177,186,296166,22,0,P|110:168|161:297,1,300,14|0,0:0|0:0,0:0:0:0: +128,236,297366,2,0,P|61:218|121:345,1,320,14|12,0:0|0:0,0:0:0:0: +93,81,299766,5,14,0:0:0:0: +110,90,299841,1,0,0:0:0:0: +129,98,299916,1,0,0:0:0:0: +148,103,299991,1,0,0:0:0:0: +168,105,300066,1,8,0:0:0:0: +188,105,300141,1,0,0:0:0:0: +207,102,300216,1,0,0:0:0:0: +227,97,300291,1,0,0:0:0:0: +244,88,300366,5,10,0:0:0:0: +265,77,300441,1,0,0:0:0:0: +288,72,300516,1,0,0:0:0:0: +312,73,300591,1,0,0:0:0:0: +335,81,300666,1,8,0:0:0:0: +355,94,300741,1,0,0:0:0:0: +371,111,300816,1,0,0:0:0:0: +383,132,300891,1,0,0:0:0:0: +387,157,300966,5,10,0:0:0:0: +365,174,301041,1,0,0:0:0:0: +349,197,301116,1,0,0:0:0:0: +340,223,301191,1,0,0:0:0:0: +339,251,301266,1,8,0:0:0:0: +346,278,301341,1,0,0:0:0:0: +360,302,301416,1,0,0:0:0:0: +380,322,301491,1,0,0:0:0:0: +403,334,301566,5,10,0:0:0:0: +374,348,301641,1,0,0:0:0:0: +343,355,301716,1,0,0:0:0:0: +311,357,301791,1,0,0:0:0:0: +279,351,301866,2,0,L|230:337,3,40,8|0|0|0,0:0|0:0|0:0|0:0,0:0:0:0: +171,297,302166,5,14,0:0:0:0: +173,277,302241,1,0,0:0:0:0: +175,257,302316,1,0,0:0:0:0: +177,237,302391,1,0,0:0:0:0: +147,220,302466,1,8,0:0:0:0: +144,200,302541,1,0,0:0:0:0: +142,180,302616,1,0,0:0:0:0: +140,160,302691,1,0,0:0:0:0: +163,133,302766,5,10,0:0:0:0: +185,141,302841,1,0,0:0:0:0: +208,147,302916,1,0,0:0:0:0: +232,150,302991,1,0,0:0:0:0: +256,151,303066,1,8,0:0:0:0: +280,149,303141,1,0,0:0:0:0: +303,145,303216,1,0,0:0:0:0: +326,138,303291,1,0,0:0:0:0: +350,129,303366,6,0,L|389:93,3,40,10|0|0|0,0:0|0:0|0:0|0:0,0:0:0:0: +423,194,303666,2,0,L|464:200,3,40,8|0|0|0,0:0|0:0|0:0|0:0,0:0:0:0: +418,298,303966,2,0,L|452:339,7,40,10|0|8|0|8|0|8|0,0:0|0:0|0:0|0:0|0:0|0:0|0:0|0:0,0:0:0:0: +349,341,304566,5,14,0:0:0:0: +322,322,304641,1,0,0:0:0:0: +293,308,304716,1,0,0:0:0:0: +263,299,304791,1,0,0:0:0:0: +231,295,304866,1,8,0:0:0:0: +199,297,304941,1,0,0:0:0:0: +168,303,305016,1,0,0:0:0:0: +138,315,305091,1,0,0:0:0:0: +110,331,305166,5,8,0:0:0:0: +117,312,305241,1,0,0:0:0:0: +122,293,305316,1,0,0:0:0:0: +125,273,305391,1,0,0:0:0:0: +127,253,305466,1,8,0:0:0:0: +127,233,305541,1,0,0:0:0:0: +140,216,305616,5,0,0:0:0:0: +128,186,305691,1,0,0:0:0:0: +126,153,305766,1,10,0:0:0:0: +137,124,305841,1,0,0:0:0:0: +157,99,305916,1,0,0:0:0:0: +184,82,305991,1,0,0:0:0:0: +215,74,306066,1,8,0:0:0:0: +246,78,306141,1,0,0:0:0:0: +275,93,306216,1,0,0:0:0:0: +297,115,306291,1,0,0:0:0:0: +305,153,306366,5,8,0:0:0:0: +295,170,306441,1,0,0:0:0:0: +290,189,306516,1,0,0:0:0:0: +288,209,306591,1,0,0:0:0:0: +289,229,306666,1,8,0:0:0:0: +295,248,306741,1,0,0:0:0:0: +304,266,306816,1,0,0:0:0:0: +316,282,306891,1,0,0:0:0:0: +334,296,306966,5,14,0:0:0:0: +308,326,307041,1,0,0:0:0:0: +274,347,307116,1,0,0:0:0:0: +235,356,307191,1,0,0:0:0:0: +195,353,307266,1,8,0:0:0:0: +158,338,307341,1,0,0:0:0:0: +128,313,307416,1,0,0:0:0:0: +106,279,307491,1,0,0:0:0:0: +96,241,307566,6,0,L|102:180,3,40,10|0|0|0,0:0|0:0|0:0|0:0,0:0:0:0: +177,160,307866,2,0,L|171:95,3,40,8|0|0|0,0:0|0:0|0:0|0:0,0:0:0:0: +113,68,308166,5,10,0:0:0:0: +150,46,308241,1,0,0:0:0:0: +194,46,308316,1,0,0:0:0:0: +235,62,308391,1,0,0:0:0:0: +274,83,308466,1,8,0:0:0:0: +313,102,308541,1,0,0:0:0:0: +355,115,308616,1,0,0:0:0:0: +399,113,308691,1,0,0:0:0:0: +431,85,308766,5,10,0:0:0:0: +425,43,308841,1,0,0:0:0:0: +390,18,308916,1,8,0:0:0:0: +348,25,308991,1,0,0:0:0:0: +326,61,309066,1,8,0:0:0:0: +313,102,309141,1,0,0:0:0:0: +322,144,309216,1,8,0:0:0:0: +335,185,309291,1,0,0:0:0:0: +347,225,309366,6,0,P|357:300|347:335,1,80,14|0,0:0|0:0,0:0:0:0: +245,276,309666,1,0,0:0:0:0: +131,192,309816,2,0,P|146:145|147:90,1,80,8|0,0:0|0:0,0:0:0:0: +91,22,310116,1,0,0:0:0:0: +245,93,310266,1,8,0:0:0:0: +51,139,310416,1,0,0:0:0:0: +252,191,310566,6,0,L|265:92,1,80,10|0,0:0|0:0,0:0:0:0: +51,139,310866,2,0,L|40:218,1,80,8|0,0:0|0:0,0:0:0:0: +177,298,311166,1,8,0:0:0:0: +19,229,311316,1,0,0:0:0:0: +181,315,311466,2,0,P|217:300|271:304,1,80,8|0,0:0|0:0,0:0:0:0: +425,245,311766,6,0,L|516:258,2,80,10|0|0,0:0|0:0|0:0,0:0:0:0: +251,219,312216,1,8,0:0:0:0: +403,139,312366,1,0,0:0:0:0: +335,306,312516,1,0,0:0:0:0: +301,126,312666,2,0,L|276:19,1,80,8|0,0:0|0:0,0:0:0:0: +221,206,312966,6,0,L|186:292,2,80,10|0|0,0:0|0:0|0:0,0:0:0:0: +282,48,313416,1,8,0:0:0:0: +103,125,313566,1,0,0:0:0:0: +309,188,313716,1,0,0:0:0:0: +111,221,313866,2,0,P|113:118|111:113,1,80,8|0,0:0|0:0,0:0:0:0: +34,61,314166,5,14,0:0:0:0: +32,80,314241,1,0,0:0:0:0: +30,100,314316,1,0,0:0:0:0: +28,120,314391,1,0,0:0:0:0: +26,140,314466,1,8,0:0:0:0: +24,160,314541,1,0,0:0:0:0: +22,180,314616,1,0,0:0:0:0: +20,200,314691,1,0,0:0:0:0: +18,218,314766,5,10,0:0:0:0: +41,202,314841,1,0,0:0:0:0: +66,191,314916,1,0,0:0:0:0: +94,185,314991,1,0,0:0:0:0: +122,184,315066,1,8,0:0:0:0: +149,188,315141,1,0,0:0:0:0: +175,198,315216,1,0,0:0:0:0: +200,212,315291,1,0,0:0:0:0: +220,230,315366,5,10,0:0:0:0: +251,254,315441,1,0,0:0:0:0: +289,263,315516,1,0,0:0:0:0: +328,256,315591,1,0,0:0:0:0: +361,233,315666,1,8,0:0:0:0: +380,198,315741,1,0,0:0:0:0: +384,159,315816,1,0,0:0:0:0: +371,121,315891,1,0,0:0:0:0: +344,92,315966,5,10,0:0:0:0: +373,56,316041,1,0,0:0:0:0: +418,40,316116,1,0,0:0:0:0: +464,50,316191,1,0,0:0:0:0: +499,82,316266,2,0,L|471:153,3,40,8|0|0|0,0:0|0:0|0:0|0:0,0:0:0:0: +384,159,316566,6,0,L|399:226,3,40,14|0|0|0,0:0|0:0|0:0|0:0,0:0:0:0: +398,290,316866,2,8,L|374:348,3,40,8|0|0|0,0:0|0:0|0:0|0:0,0:0:0:0: +296,344,317166,1,8,0:0:0:0: +278,333,317241,1,0,0:0:0:0: +260,326,317316,1,0,0:0:0:0: +240,321,317391,1,0,0:0:0:0: +220,319,317466,1,8,0:0:0:0: +201,320,317541,1,0,0:0:0:0: +181,325,317616,1,0,0:0:0:0: +162,331,317691,1,0,0:0:0:0: +143,341,317766,5,10,0:0:0:0: +167,309,317841,1,0,0:0:0:0: +185,274,317916,1,0,0:0:0:0: +197,235,317991,1,0,0:0:0:0: +200,195,318066,1,8,0:0:0:0: +196,156,318141,1,0,0:0:0:0: +185,117,318216,1,0,0:0:0:0: +166,82,318291,1,0,0:0:0:0: +142,51,318366,6,0,L|99:22,3,40,8|0|0|0,0:0|0:0|0:0|0:0,0:0:0:0: +251,72,318666,2,0,L|294:42,3,40,8|0|0|0,0:0|0:0|0:0|0:0,0:0:0:0: +365,79,318966,5,14,0:0:0:0: +358,97,319041,1,0,0:0:0:0: +353,117,319116,1,0,0:0:0:0: +351,137,319191,1,0,0:0:0:0: +351,157,319266,1,0,0:0:0:0: +353,176,319341,1,0,0:0:0:0: +357,196,319416,1,0,0:0:0:0: +363,215,319491,1,0,0:0:0:0: +333,239,319566,5,10,0:0:0:0: +335,246,319641,1,0,0:0:0:0: +336,254,319716,1,0,0:0:0:0: +338,262,319791,1,0,0:0:0:0: +338,270,319866,1,0,0:0:0:0: +339,278,319941,1,0,0:0:0:0: +339,286,320016,1,0,0:0:0:0: +338,294,320091,1,0,0:0:0:0: +338,302,320166,5,10,0:0:0:0: +215,343,320316,2,0,P|171:328|111:345,1,80 +23,306,320616,1,8,0:0:0:0: +206,260,320766,1,0,0:0:0:0: +85,136,320916,1,0,0:0:0:0: +138,331,321066,2,0,L|148:370,3,40,8|0|0|0,0:0|0:0|0:0|0:0,0:0:0:0: +229,351,321366,5,14,0:0:0:0: +230,330,321441,1,0,0:0:0:0: +235,310,321516,1,0,0:0:0:0: +240,291,321591,1,0,0:0:0:0: +248,273,321666,1,0,0:0:0:0: +257,255,321741,1,0,0:0:0:0: +269,239,321816,1,0,0:0:0:0: +282,224,321891,1,0,0:0:0:0: +297,212,321966,5,8,0:0:0:0: +257,218,322041,1,0,0:0:0:0: +218,217,322116,1,0,0:0:0:0: +178,207,322191,1,0,0:0:0:0: +142,190,322266,1,0,0:0:0:0: +111,166,322341,1,0,0:0:0:0: +85,136,322416,1,0,0:0:0:0: +66,101,322491,1,0,0:0:0:0: +54,63,322566,6,0,P|142:78|160:88,1,80,12|0,0:0|0:0,0:0:0:0: +250,136,322866,1,2,0:0:0:0: +75,245,323016,1,0,0:0:0:0: +230,252,323166,1,0,0:0:0:0: +132,73,323316,1,0,0:0:0:0: +116,318,323466,1,2,0:0:0:0: +250,136,323616,1,0,0:0:0:0: +75,245,323766,6,0,L|34:269,2,40,14|0|0,0:0|0:0|0:0,0:0:0:0: +212,184,324066,2,0,L|246:163,2,40,8|0|0,0:0|0:0|0:0,0:0:0:0: +116,318,324366,6,0,L|75:342,2,40,14|0|0,0:0|0:0|0:0,0:0:0:0: +251,253,324666,2,0,L|285:232,2,40,8|0|0,0:0|0:0|0:0,0:0:0:0: +161,384,324966,5,14,0:0:0:0: +293,318,325116,1,0,0:0:0:0: +75,245,325266,2,0,L|148:205,1,80,8|0,0:0|0:0,0:0:0:0: +277,127,325566,1,14,0:0:0:0: +293,318,325716,1,0,0:0:0:0: +145,206,325866,2,0,L|144:94,1,80,8|0,0:0|0:0,0:0:0:0: +366,288,326166,5,14,0:0:0:0: +349,299,326241,1,0,0:0:0:0: +331,308,326316,1,0,0:0:0:0: +312,314,326391,1,0,0:0:0:0: +293,318,326466,1,0,0:0:0:0: +273,318,326541,1,0,0:0:0:0: +253,316,326616,1,0,0:0:0:0: +234,311,326691,1,0,0:0:0:0: +214,303,326766,2,0,P|86:242|34:350,1,280,8|0,0:0|0:0,0:0:0:0: +126,328,327366,5,10,0:0:0:0: +155,301,327441,1,0,0:0:0:0: +177,267,327516,1,0,0:0:0:0: +189,229,327591,1,0,0:0:0:0: +191,189,327666,1,0,0:0:0:0: +183,150,327741,1,0,0:0:0:0: +164,115,327816,1,0,0:0:0:0: +138,85,327891,1,0,0:0:0:0: +104,63,327966,2,0,P|59:118|164:113,1,240,8|0,0:0|0:0,0:0:0:0: +239,69,328566,6,0,P|251:113|239:161,1,80,14|0,0:0|0:0,0:0:0:0: +189,229,328866,1,0,0:0:0:0: +369,215,329016,2,0,P|382:175|384:131,1,80,8|0,0:0|0:0,0:0:0:0: +239,69,329316,1,0,0:0:0:0: +365,61,329466,1,8,0:0:0:0: +264,225,329616,1,0,0:0:0:0: +226,237,329691,1,0,0:0:0:0: +188,228,329766,5,10,0:0:0:0: +239,69,329916,1,0,0:0:0:0: +369,215,330066,1,0,0:0:0:0: +119,268,330216,2,0,P|111:205|212:154,1,160,8|0,0:0|0:0,0:0:0:0: +171,330,330666,2,0,P|127:349|87:341,1,80,8|0,0:0|0:0,0:0:0:0: +15,231,330966,5,14,0:0:0:0: +119,268,331116,1,0,0:0:0:0: +65,138,331266,1,0,0:0:0:0: +96,344,331416,1,8,0:0:0:0: +138,99,331566,2,8,L|147:48,2,40,0|0|0,0:0|0:0|0:0,0:0:0:0: +119,268,331866,1,8,0:0:0:0: +65,138,332016,1,0,0:0:0:0: +202,312,332166,5,10,0:0:0:0: +216,144,332316,1,0,0:0:0:0: +130,358,332466,1,8,0:0:0:0: +138,99,332616,1,0,0:0:0:0: +277,323,332766,2,0,P|346:199|216:144,1,320,8|14,0:0|0:0,0:0:0:0: +256,231,333516,1,0,0:0:0:0: +411,142,333666,6,8,P|429:106|433:67,1,80,8|0,0:0|0:0,0:0:0:0: +256,231,333966,2,0,P|203:222|170:199,1,80,8|0,0:0|0:0,0:0:0:0: +444,294,334266,2,0,L|453:196,1,80,8|0,0:0|0:0,0:0:0:0: +272,309,334566,6,0,L|253:218,1,80,10|0,0:0|0:0,0:0:0:0: +379,104,334866,1,0,0:0:0:0: +181,208,335016,2,0,L|177:111,1,80,8|0,0:0|0:0,0:0:0:0: +206,54,335316,1,0,0:0:0:0: +379,104,335466,1,8,0:0:0:0: +181,208,335616,1,0,0:0:0:0: +305,40,335766,5,14,0:0:0:0: +321,241,335916,1,0,0:0:0:0: +131,73,336066,1,0,0:0:0:0: +254,294,336216,1,8,0:0:0:0: +125,274,336366,5,0,0:0:0:0: +298,220,336516,1,0,0:0:0:0: +68,206,336666,1,8,0:0:0:0: +299,127,336816,1,0,0:0:0:0: +33,133,336966,5,10,0:0:0:0: +45,117,337041,1,0,0:0:0:0: +60,104,337116,1,0,0:0:0:0: +76,92,337191,1,0,0:0:0:0: +94,84,337266,1,8,0:0:0:0: +114,78,337341,1,0,0:0:0:0: +133,75,337416,1,0,0:0:0:0: +153,75,337491,1,0,0:0:0:0: +176,78,337566,6,0,L|231:90,3,40,8|0|0|0,0:0|0:0|0:0|0:0,0:0:0:0: +107,197,337866,2,0,L|52:209,3,40,8|0|0|0,0:0|0:0|0:0|0:0,0:0:0:0: +37,299,338166,5,14,0:0:0:0: +165,330,338316,1,0,0:0:0:0: +29,314,338466,1,0,0:0:0:0: +190,206,338616,1,8,0:0:0:0: +165,330,338766,1,0,0:0:0:0: +151,129,338916,1,0,0:0:0:0: +176,344,339066,1,8,0:0:0:0: +140,117,339216,1,0,0:0:0:0: +264,253,339366,5,10,0:0:0:0: +274,101,339516,1,0,0:0:0:0: +411,230,339666,1,0,0:0:0:0: +421,78,339816,1,8,0:0:0:0: +377,316,339966,5,0,0:0:0:0: +337,322,340041,1,0,0:0:0:0: +298,329,340116,1,0,0:0:0:0: +258,336,340191,1,0,0:0:0:0: +221,341,340266,2,0,L|226:250,1,80,8|0,0:0|0:0,0:0:0:0: +427,152,340566,6,0,L|421:257,1,80,12|0,0:0|0:0,0:0:0:0: +320,82,340866,2,0,L|325:182,1,80,2|0,0:0|0:0,0:0:0:0: +221,129,341166,2,0,L|215:234,1,80,8|0,0:0|0:0,0:0:0:0: +109,78,341466,2,0,L|114:178,1,80,2|0,0:0|0:0,0:0:0:0: +251,365,341766,5,10,0:0:0:0: +216,208,341916,1,0,0:0:0:0: +148,315,342066,1,8,0:0:0:0: +113,158,342216,1,0,0:0:0:0: +233,286,342366,1,8,0:0:0:0: +198,130,342516,1,0,0:0:0:0: +130,236,342666,1,8,0:0:0:0: +95,80,342816,1,0,0:0:0:0: +233,286,342966,5,14,0:0:0:0: +241,268,343041,1,0,0:0:0:0: +248,249,343116,1,0,0:0:0:0: +252,229,343191,1,0,0:0:0:0: +253,209,343266,1,8,0:0:0:0: +253,189,343341,1,0,0:0:0:0: +249,170,343416,1,0,0:0:0:0: +243,150,343491,1,0,0:0:0:0: +229,131,343566,6,0,L|189:79,3,40,8|0|0|0,0:0|0:0|0:0|0:0,0:0:0:0: +274,41,343866,2,0,L|263:-21,3,40,8|0|0|0,0:0|0:0|0:0|0:0,0:0:0:0: +366,44,344166,5,10,0:0:0:0: +359,71,344241,1,0,0:0:0:0: +355,98,344316,1,0,0:0:0:0: +353,126,344391,1,0,0:0:0:0: +353,154,344466,1,8,0:0:0:0: +355,182,344541,1,0,0:0:0:0: +359,210,344616,1,0,0:0:0:0: +365,237,344691,1,0,0:0:0:0: +374,265,344766,6,0,L|418:324,3,40,8|0|0|0,0:0|0:0|0:0|0:0,0:0:0:0: +329,339,345066,2,0,L|374:370,2,40,8|0|0,0:0|0:0|0:0,0:0:0:0: +183,342,345366,5,14,0:0:0:0: +206,309,345441,1,0,0:0:0:0: +211,270,345516,1,0,0:0:0:0: +198,233,345591,1,0,0:0:0:0: +169,205,345666,1,8,0:0:0:0: +131,195,345741,1,0,0:0:0:0: +93,202,345816,1,0,0:0:0:0: +62,227,345891,1,0,0:0:0:0: +46,264,345966,5,10,0:0:0:0: +57,280,346041,1,0,0:0:0:0: +72,293,346116,1,0,0:0:0:0: +90,301,346191,1,0,0:0:0:0: +110,302,346266,1,2,0:0:0:0: +129,297,346341,1,0,0:0:0:0: +146,287,346416,1,0,0:0:0:0: +159,272,346491,1,0,0:0:0:0: +168,255,346566,5,10,0:0:0:0: +189,288,346641,1,0,0:0:0:0: +219,314,346716,1,0,0:0:0:0: +256,330,346791,1,0,0:0:0:0: +295,335,346866,1,8,0:0:0:0: +334,329,346941,1,0,0:0:0:0: +370,312,347016,1,0,0:0:0:0: +400,285,347091,1,0,0:0:0:0: +420,251,347166,5,10,0:0:0:0: +403,229,347241,1,0,0:0:0:0: +389,205,347316,1,0,0:0:0:0: +380,179,347391,1,0,0:0:0:0: +375,151,347466,1,8,0:0:0:0: +375,123,347541,1,0,0:0:0:0: +381,96,347616,1,0,0:0:0:0: +391,70,347691,1,0,0:0:0:0: +405,46,347766,6,0,P|476:23|509:31,1,80,14|0,0:0|0:0,0:0:0:0: +375,123,348066,1,0,0:0:0:0: +286,174,348216,2,0,P|272:119|276:95,1,80,8|0,0:0|0:0,0:0:0:0: +407,283,348516,2,0,L|315:245,1,80,8|0,0:0|0:0,0:0:0:0: +188,193,348816,1,0,0:0:0:0: +263,334,348966,5,10,0:0:0:0: +334,253,349116,2,0,P|344:176|338:148,1,80 +249,137,349416,2,0,P|217:270|103:196,1,320,8|0,0:0|0:0,0:0:0:0: +94,117,350166,5,14,0:0:0:0: +96,136,350241,1,0,0:0:0:0: +98,156,350316,1,0,0:0:0:0: +101,176,350391,1,0,0:0:0:0: +103,196,350466,1,0,0:0:0:0: +185,111,350616,1,0,0:0:0:0: +274,260,350766,1,8,0:0:0:0: +353,117,350916,1,0,0:0:0:0: +185,111,351066,1,8,0:0:0:0: +185,111,351141,1,0,0:0:0:0: +185,111,351216,1,0,0:0:0:0: +218,311,351366,6,0,P|253:333|322:319,2,80,10|0|0,0:0|0:0|0:0,0:0:0:0: +103,196,351816,2,0,L|127:372,1,160,8|8,0:0|0:0,0:0:0:0: +28,240,352266,1,0,0:0:0:0: +28,240,352341,1,0,0:0:0:0: +28,240,352416,1,0,0:0:0:0: +202,334,352566,5,14,0:0:0:0: +311,268,352716,2,0,P|331:223|326:180,1,80,0|0,0:0|0:0,0:0:0:0: +186,205,353016,2,0,P|120:217|84:198,1,80,8|0,0:0|0:0,0:0:0:0: +150,68,353316,1,0,0:0:0:0: +224,140,353466,1,8,0:0:0:0: +68,71,353616,1,0,0:0:0:0: +241,135,353766,6,0,L|255:53,2,80,10|0|0,0:0|0:0|0:0,0:0:0:0: +153,231,354216,2,0,P|101:218|49:240,1,80,8|0,0:0|0:0,0:0:0:0: +107,304,354516,1,0,0:0:0:0: +229,282,354666,2,0,P|243:244|238:197,1,80,8|0,0:0|0:0,0:0:0:0: +139,115,354966,5,14,0:0:0:0: +158,121,355041,1,0,0:0:0:0: +177,125,355116,1,0,0:0:0:0: +197,126,355191,1,0,0:0:0:0: +217,126,355266,1,8,0:0:0:0: +237,123,355341,1,0,0:0:0:0: +256,118,355416,1,0,0:0:0:0: +275,111,355491,1,0,0:0:0:0: +291,102,355566,5,10,0:0:0:0: +312,135,355641,1,0,0:0:0:0: +348,151,355716,1,0,0:0:0:0: +387,145,355791,1,0,0:0:0:0: +417,119,355866,1,8,0:0:0:0: +428,81,355941,1,0,0:0:0:0: +416,44,356016,1,0,0:0:0:0: +386,18,356091,1,0,0:0:0:0: +347,12,356166,5,10,0:0:0:0: +302,39,356241,1,0,0:0:0:0: +253,55,356316,1,0,0:0:0:0: +202,61,356391,1,0,0:0:0:0: +150,56,356466,2,0,L|85:35,3,40,8|0|0|0,0:0|0:0|0:0|0:0,0:0:0:0: +45,92,356766,5,8,0:0:0:0: +85,124,356841,1,0,0:0:0:0: +115,166,356916,1,0,0:0:0:0: +133,214,356991,1,0,0:0:0:0: +136,266,357066,2,0,L|125:326,3,40,8|0|0|0,0:0|0:0|0:0|0:0,0:0:0:0: +204,357,357366,5,14,0:0:0:0: +312,198,357516,1,0,0:0:0:0: +336,356,357666,1,8,0:0:0:0: +384,150,357816,1,0,0:0:0:0: +272,306,357966,2,0,L|231:203,1,80,8|0,0:0|0:0,0:0:0:0: +312,198,358266,2,0,L|291:98,1,80,8|0,0:0|0:0,0:0:0:0: +104,83,358566,6,0,L|160:93,1,40,10|0,0:0|0:0,0:0:0:0: +295,119,358716,2,0,L|239:129,1,40 +76,177,358866,2,0,L|142:182,1,40 +312,198,359016,2,0,L|246:203,1,40,8|0,0:0|0:0,0:0:0:0: +68,272,359166,6,0,L|129:266,1,40 +321,277,359316,2,0,L|260:271,1,40,8|0,0:0|0:0,0:0:0:0: +102,356,359466,2,0,L|150:342,1,40 +304,354,359616,2,0,L|249:343,1,40 +191,212,359766,5,14,0:0:0:0: +391,187,359916,2,0,L|288:195,1,80,8|0,0:0|0:0,0:0:0:0: +98,201,360216,1,8,0:0:0:0: +82,31,360366,1,2,0:0:0:0: +354,110,360516,2,0,L|246:77,1,80,8|0,0:0|0:0,0:0:0:0: +82,31,360816,1,8,0:0:0:0: +170,241,360966,5,2,0:0:0:0: +277,86,361116,2,0,L|279:195,1,80,8|0,0:0|0:0,0:0:0:0: +277,347,361416,1,8,0:0:0:0: +425,265,361566,1,2,0:0:0:0: +188,199,361716,2,0,P|171:233|174:299,1,80,8|0,0:0|0:0,0:0:0:0: +277,347,362016,1,8,0:0:0:0: +292,146,362166,6,0,L|298:64,2,80,14|0|0,0:0|0:0|0:0,0:0:0:0: +103,286,362616,2,0,L|99:178,1,80,8|0,0:0|0:0,0:0:0:0: +277,347,362916,2,0,L|273:239,1,80,8|0,0:0|0:0,0:0:0:0: +185,140,363216,1,0,0:0:0:0: +378,238,363366,5,10,0:0:0:0: +170,239,363516,2,0,L|164:133,1,80 +297,269,363816,1,8,0:0:0:0: +150,318,363966,1,0,0:0:0:0: +376,343,364116,1,0,0:0:0:0: +133,334,364266,2,0,L|124:260,3,40,8|0|0|0,0:0|0:0|0:0|0:0,0:0:0:0: +69,244,364566,5,14,0:0:0:0: +93,213,364641,1,0,0:0:0:0: +105,174,364716,1,0,0:0:0:0: +101,135,364791,1,0,0:0:0:0: +82,100,364866,5,8,0:0:0:0: +115,77,364941,1,0,0:0:0:0: +153,65,365016,1,0,0:0:0:0: +192,66,365091,1,0,0:0:0:0: +230,80,365166,5,10,0:0:0:0: +267,93,365241,1,0,0:0:0:0: +307,94,365316,1,0,0:0:0:0: +345,82,365391,1,0,0:0:0:0: +377,59,365466,5,8,0:0:0:0: +372,79,365541,1,0,0:0:0:0: +370,98,365616,1,0,0:0:0:0: +370,118,365691,1,0,0:0:0:0: +412,153,365766,5,10,0:0:0:0: +418,208,365841,1,0,0:0:0:0: +403,262,365916,1,0,0:0:0:0: +370,307,365991,1,0,0:0:0:0: +324,337,366066,6,0,L|256:350,3,40,8|0|0|0,0:0|0:0|0:0|0:0,0:0:0:0: +213,284,366366,2,0,L|139:269,3,40,10|0|0|0,0:0|0:0|0:0|0:0,0:0:0:0: +74,328,366666,5,8,0:0:0:0: +76,288,366741,1,0,0:0:0:0: +79,248,366816,1,0,0:0:0:0: +81,208,366891,1,0,0:0:0:0: +84,168,366966,1,14,0:0:0:0: +192,72,383766,5,14,0:0:0:0: +192,72,384966,5,8,0:0:0:0: +204,109,385041,1,0,0:0:0:0: +206,149,385116,1,0,0:0:0:0: +198,188,385191,1,0,0:0:0:0: +179,224,385266,6,0,L|141:257,3,40,8|0|0|0,0:0|0:0|0:0|0:0,0:0:0:0: +197,319,385566,2,0,L|131:343,3,40,8|0|0|0,0:0|0:0|0:0|0:0,0:0:0:0: +303,305,385866,2,0,L|358:320,3,40,8|0|0|0,0:0|0:0|0:0|0:0,0:0:0:0: +397,234,386166,6,0,P|333:218|279:241,1,95.9999970703126,14|0,0:0|0:0,0:0:0:0: +197,319,386466,1,0,0:0:0:0: +457,301,386616,2,0,P|482:257|471:189,1,95.9999970703126,8|0,0:0|0:0,0:0:0:0: +332,116,386916,1,0,0:0:0:0: +406,360,387066,2,0,P|445:379|513:357,1,95.9999970703126,8|0,0:0|0:0,0:0:0:0: +397,234,387366,6,0,P|301:204|210:239,1,191.999994140625,14|0,0:0|0:0,0:0:0:0: +292,296,387816,2,0,P|305:192|220:132,1,191.999994140625,8|0,0:0|0:0,0:0:0:0: +241,351,388266,2,0,P|306:370|350:343,1,95.9999970703126,8|0,0:0|0:0,0:0:0:0: +397,234,388566,5,14,0:0:0:0: +292,296,388716,1,0,0:0:0:0: +419,220,388866,1,8,0:0:0:0: +231,232,389016,1,0,0:0:0:0: +428,320,389166,5,10,0:0:0:0: +368,146,389316,1,0,0:0:0:0: +432,346,389466,1,8,0:0:0:0: +434,91,389616,1,0,0:0:0:0: +292,296,389766,6,0,L|288:176,1,95.9999970703126,10|0,0:0|0:0,0:0:0:0: +475,245,390066,2,0,L|488:124,1,95.9999970703126,2|0,0:0|0:0,0:0:0:0: +288,200,390366,2,0,L|185:163,1,95.9999970703126,8|0,0:0|0:0,0:0:0:0: +16,295,390666,2,0,L|119:258,1,95.9999970703126,2|0,0:0|0:0,0:0:0:0: +233,140,390966,5,14,0:0:0:0: +211,128,391041,1,0,0:0:0:0: +188,122,391116,1,0,0:0:0:0: +164,122,391191,1,0,0:0:0:0: +141,129,391266,1,0,0:0:0:0: +332,274,391416,2,0,P|364:178|276:119,1,191.999994140625,10|0,0:0|0:0,0:0:0:0: +283,340,391866,2,0,P|336:356|392:330,1,95.9999970703126,10|0,0:0|0:0,0:0:0:0: +193,200,392166,5,14,0:0:0:0: +186,223,392241,1,0,0:0:0:0: +183,247,392316,1,0,0:0:0:0: +183,271,392391,1,0,0:0:0:0: +187,294,392466,1,0,0:0:0:0: +373,344,392616,2,0,L|380:131,1,191.999994140625,10|0,0:0|0:0,0:0:0:0: +160,122,393066,2,0,P|112:173|108:212,1,95.9999970703126,10|0,0:0|0:0,0:0:0:0: +256,284,393366,5,14,0:0:0:0: +264,261,393441,1,0,0:0:0:0: +269,238,393516,1,0,0:0:0:0: +269,214,393591,1,0,0:0:0:0: +245,192,393666,5,8,0:0:0:0: +236,169,393741,1,0,0:0:0:0: +231,146,393816,1,0,0:0:0:0: +231,122,393891,1,0,0:0:0:0: +253,102,393966,5,10,0:0:0:0: +238,83,394041,1,0,0:0:0:0: +219,68,394116,1,0,0:0:0:0: +197,59,394191,1,0,0:0:0:0: +168,76,394266,5,8,0:0:0:0: +145,83,394341,1,0,0:0:0:0: +121,88,394416,1,0,0:0:0:0: +97,90,394491,1,0,0:0:0:0: +76,70,394566,5,14,0:0:0:0: +90,115,394641,1,0,0:0:0:0: +95,163,394716,1,0,0:0:0:0: +89,210,394791,1,0,0:0:0:0: +74,256,394866,6,0,L|41:320,3,47.9999985351563,10|0|0|0,0:0|0:0|0:0|0:0,0:0:0:0: +165,317,395166,2,0,L|176:373,3,47.9999985351563,10|0|0|0,0:0|0:0|0:0|0:0,0:0:0:0: +274,306,395466,2,0,L|344:329,3,47.9999985351563,10|0|0|0,0:0|0:0|0:0|0:0,0:0:0:0: +496,264,395766,6,0,B|458:228|414:225|370:242|370:242|340:221|278:235,1,191.999994140625,14|0,0:0|0:0,0:0:0:0: +163,108,396216,2,0,P|246:132|212:233,1,191.999994140625,8|0,0:0|0:0,0:0:0:0: +143,313,396666,1,8,0:0:0:0: +319,320,396816,1,0,0:0:0:0: +120,332,396966,6,0,L|95:121,1,191.999994140625,14|0,0:0|0:0,0:0:0:0: +144,61,397416,2,0,P|237:86|347:42,1,191.999994140625,8|0,0:0|0:0,0:0:0:0: +385,119,397866,2,0,P|324:154|268:165,1,95.9999970703126,8|0,0:0|0:0,0:0:0:0: +101,219,398166,6,0,P|194:202|293:256,1,191.999994140625,14|0,0:0|0:0,0:0:0:0: +27,279,398616,2,0,P|17:181|100:124,1,191.999994140625,8|0,0:0|0:0,0:0:0:0: +204,171,399066,2,0,L|309:159,1,95.9999970703126,8|0,0:0|0:0,0:0:0:0: +458,218,399366,6,0,L|236:240,1,191.999994140625,14|0,0:0|0:0,0:0:0:0: +136,218,399816,1,0,0:0:0:0: +335,287,399966,2,0,P|350:242|339:196,1,95.9999970703126,8|0,0:0|0:0,0:0:0:0: +132,128,400266,2,0,P|136:218|166:245,1,95.9999970703126,8|0,0:0|0:0,0:0:0:0: +331,330,400566,5,14,0:0:0:0: +332,315,400641,1,0,0:0:0:0: +334,301,400716,1,0,0:0:0:0: +335,287,400791,1,0,0:0:0:0: +337,272,400866,1,0,0:0:0:0: +338,258,400941,1,0,0:0:0:0: +314,238,401016,5,8,0:0:0:0: +312,223,401091,1,0,0:0:0:0: +310,209,401166,1,2,0:0:0:0: +309,195,401241,1,0,0:0:0:0: +307,180,401316,1,0,0:0:0:0: +306,166,401391,1,0,0:0:0:0: +316,146,401466,6,0,L|327:81,1,47.9999985351563,2|0,0:0|0:0,0:0:0:0: +213,0,401616,2,0,L|217:78,1,47.9999985351563,2|0,0:0|0:0,0:0:0:0: +223,230,401766,1,14,0:0:0:0: +227,349,402966,6,0,L|212:210,1,103.999995239258,14|0,0:0|0:0,0:0:0:0: +203,141,403266,1,2,0:0:0:0: +335,300,403416,2,0,L|350:194,1,103.999995239258,0|8,0:0|0:0,0:0:0:0: +366,83,403716,1,0,0:0:0:0: +215,245,403866,1,2,0:0:0:0: +203,141,404016,1,0,0:0:0:0: +459,171,404166,6,0,L|344:158,1,103.999995239258,8|0,0:0|0:0,0:0:0:0: +203,141,404466,1,2,0:0:0:0: +483,150,404616,2,0,L|368:146,1,103.999995239258,0|8,0:0|0:0,0:0:0:0: +203,141,404916,1,0,0:0:0:0: +342,227,405066,1,2,0:0:0:0: +192,308,405216,1,0,0:0:0:0: +122,134,405366,6,0,L|104:19,1,103.999995239258,12|0,0:0|0:0,0:0:0:0: +53,212,405666,1,2,0:0:0:0: +238,240,405816,2,0,L|359:224,1,103.999995239258,0|8,0:0|0:0,0:0:0:0: +393,130,406116,1,0,0:0:0:0: +321,312,406266,1,2,0:0:0:0: +260,161,406416,1,0,0:0:0:0: +118,339,406566,6,0,B|118:217,1,103.999995239258,8|0,0:0|0:0,0:0:0:0: +116,119,406866,1,2,0:0:0:0: +321,312,407016,2,0,L|326:194,1,103.999995239258,0|8,0:0|0:0,0:0:0:0: +333,66,407316,1,0,0:0:0:0: +227,231,407466,1,2,0:0:0:0: +116,119,407616,1,0,0:0:0:0: +116,119,407691,1,0,0:0:0:0: +116,119,407766,6,0,L|121:238,1,103.999995239258,12|0,0:0|0:0,0:0:0:0: +308,333,408066,1,2,0:0:0:0: +308,333,408216,2,0,L|321:200,1,103.999995239258,0|8,0:0|0:0,0:0:0:0: +337,77,408516,1,0,0:0:0:0: +227,231,408666,1,2,0:0:0:0: +205,84,408816,1,0,0:0:0:0: +79,264,408966,6,0,L|58:133,1,103.999995239258,8|0,0:0|0:0,0:0:0:0: +117,56,409266,1,2,0:0:0:0: +56,290,409416,2,0,L|35:159,1,103.999995239258,0|8,0:0|0:0,0:0:0:0: +206,63,409716,1,0,0:0:0:0: +146,262,409866,1,2,0:0:0:0: +117,56,410016,1,0,0:0:0:0: +167,339,410166,5,14,0:0:0:0: +192,346,410241,1,0,0:0:0:0: +218,348,410316,1,0,0:0:0:0: +244,348,410391,1,0,0:0:0:0: +274,321,410466,5,0,0:0:0:0: +309,315,410541,1,0,0:0:0:0: +346,314,410616,1,0,0:0:0:0: +381,321,410691,1,0,0:0:0:0: +415,334,410766,6,0,L|464:370,3,51.999997619629,10|0|0|0,0:0|0:0|0:0|0:0,0:0:0:0: +495,308,411066,5,0,0:0:0:0: +491,272,411141,1,0,0:0:0:0: +487,236,411216,1,0,0:0:0:0: +484,200,411291,1,0,0:0:0:0: +480,164,411366,5,0,0:0:0:0: +433,187,411441,1,0,0:0:0:0: +382,196,411516,1,0,0:0:0:0: +331,189,411591,1,0,0:0:0:0: +284,167,411666,2,0,L|224:136,3,51.999997619629 +124,205,411966,2,0,L|126:294,3,51.999997619629 +218,348,412266,5,10,0:0:0:0: +221,296,412341,1,0,0:0:0:0: +224,244,412416,1,0,0:0:0:0: +228,192,412491,1,0,0:0:0:0: +231,140,412566,6,0,L|237:30,1,103.999995239258,12|0,0:0|0:0,0:0:0:0: +86,97,412866,1,2,0:0:0:0: +305,174,413016,2,0,L|311:63,1,103.999995239258,0|8,0:0|0:0,0:0:0:0: +86,97,413316,1,0,0:0:0:0: +212,261,413466,1,2,0:0:0:0: +187,51,413616,1,0,0:0:0:0: +123,325,413766,6,0,L|142:210,1,103.999995239258,8|0,0:0|0:0,0:0:0:0: +86,97,414066,1,2,0:0:0:0: +212,261,414216,2,0,L|209:141,1,103.999995239258,0|8,0:0|0:0,0:0:0:0: +203,42,414516,1,0,0:0:0:0: +50,217,414666,1,2,0:0:0:0: +10,61,414816,1,0,0:0:0:0: +209,157,414966,6,0,L|323:124,1,103.999995239258,12|0,0:0|0:0,0:0:0:0: +433,95,415266,1,2,0:0:0:0: +359,294,415416,2,0,L|245:261,1,103.999995239258,0|8,0:0|0:0,0:0:0:0: +204,64,415716,1,0,0:0:0:0: +158,267,415866,1,2,0:0:0:0: +290,154,416016,1,0,0:0:0:0: +243,367,416166,6,0,L|259:260,1,103.999995239258,8|0,0:0|0:0,0:0:0:0: +194,158,416466,1,2,0:0:0:0: +279,356,416616,2,0,L|295:249,1,103.999995239258,0|8,0:0|0:0,0:0:0:0: +318,45,416916,1,0,0:0:0:0: +217,230,417066,1,2,0:0:0:0: +204,64,417216,1,0,0:0:0:0: +294,253,417366,6,0,L|310:115,1,103.999995239258,12|0,0:0|0:0,0:0:0:0: +318,45,417666,1,2,0:0:0:0: +138,223,417816,2,0,L|125:98,1,103.999995239258,0|8,0:0|0:0,0:0:0:0: +318,45,418116,1,0,0:0:0:0: +294,253,418266,1,2,0:0:0:0: +397,141,418416,1,0,0:0:0:0: +255,329,418566,6,0,L|143:305,1,103.999995239258,8|0,0:0|0:0,0:0:0:0: +58,203,418866,1,2,0:0:0:0: +294,253,419016,2,0,L|182:229,1,103.999995239258,0|8,0:0|0:0,0:0:0:0: +58,203,419316,1,0,0:0:0:0: +177,341,419466,1,2,0:0:0:0: +8,277,419616,1,0,0:0:0:0: +251,285,419766,5,6,0:0:0:0: +222,262,419841,1,0,0:0:0:0: +187,253,419916,1,0,0:0:0:0: +152,258,419991,1,0,0:0:0:0: +121,277,420066,5,2,0:0:0:0: +70,281,420141,1,0,0:0:0:0: +28,252,420216,1,0,0:0:0:0: +13,203,420291,1,0,0:0:0:0: +32,156,420366,6,0,P|54:125|71:94,3,51.999997619629,2|0|0|0,0:0|0:0|0:0|0:0,0:0:0:0: +144,121,420666,2,0,P|146:88|140:36,3,51.999997619629,2|0|0|0,0:0|0:0|0:0|0:0,0:0:0:0: +214,35,420966,21,6,0:0:0:0: +262,52,421041,1,0,0:0:0:0: +314,59,421116,1,0,0:0:0:0: +365,52,421191,1,0,0:0:0:0: +414,34,421266,5,2,0:0:0:0: +456,64,421341,1,0,0:0:0:0: +481,109,421416,1,0,0:0:0:0: +484,161,421491,1,0,0:0:0:0: +466,209,421566,5,6,0:0:0:0: +419,186,421641,1,0,0:0:0:0: +367,180,421716,1,0,0:0:0:0: +317,189,421791,1,0,0:0:0:0: +271,214,421866,1,6,0:0:0:0: +225,238,421941,1,0,0:0:0:0: +174,248,422016,1,0,0:0:0:0: +123,241,422091,1,0,0:0:0:0: +76,219,422166,5,14,0:0:0:0: +206,152,422316,1,0,0:0:0:0: +35,86,422466,1,2,0:0:0:0: +146,332,422616,1,10,0:0:0:0: +206,152,422916,5,8,0:0:0:0: +146,332,423216,1,8,0:0:0:0: +206,152,423516,1,8,0:0:0:0: +146,332,423816,5,8,0:0:0:0: +305,306,423966,1,2,0:0:0:0: +55,232,424116,1,0,0:0:0:0: +234,357,424266,1,8,0:0:0:0: +146,332,424416,1,0,0:0:0:0: +400,280,424566,5,14,0:0:0:0: +332,107,424716,1,0,0:0:0:0: +327,349,424866,1,0,0:0:0:0: +409,146,425016,1,10,0:0:0:0: +327,349,425316,5,8,0:0:0:0: +409,146,425616,1,8,0:0:0:0: +327,349,425916,1,8,0:0:0:0: +409,146,426216,5,8,0:0:0:0: +250,207,426366,1,2,0:0:0:0: +379,269,426516,1,0,0:0:0:0: +396,16,426666,2,0,L|387:138,1,103.999995239258,8|0,0:0|0:0,0:0:0:0: +379,269,426966,5,14,0:0:0:0: +176,319,427116,1,0,0:0:0:0: +435,352,427266,1,0,0:0:0:0: +459,72,427416,1,10,0:0:0:0: +213,146,427716,5,8,0:0:0:0: +459,72,428016,1,8,0:0:0:0: +213,146,428316,1,8,0:0:0:0: +459,72,428616,5,8,0:0:0:0: +371,245,428766,1,2,0:0:0:0: +287,98,428916,1,0,0:0:0:0: +334,345,429066,1,10,0:0:0:0: +287,98,429366,5,14,0:0:0:0: +256,192,429441,12,2,436266,0:0:0:0: +210,270,436566,5,14,0:0:0:0: +346,192,436716,1,0,0:0:0:0: +210,114,436866,1,0,0:0:0:0: +210,270,437016,1,0,0:0:0:0: +370,288,437166,5,14,0:0:0:0: +282,44,437316,1,0,0:0:0:0: +114,243,437466,1,0,0:0:0:0: +370,288,437616,1,0,0:0:0:0: +145,65,437766,6,8,P|130:132|176:188,1,140,14|0,0:0|0:0,0:0:0:0: +210,114,438366,2,0,L|217:82,7,20,10|0|0|0|0|0|0|0,0:0|0:0|0:0|0:0|0:0|0:0|0:0|0:0,0:0:0:0: +283,44,438966,5,10,0:0:0:0: +283,47,439041,1,0,0:0:0:0: +283,51,439116,1,0,0:0:0:0: +284,55,439191,1,0,0:0:0:0: +284,59,439266,1,2,0:0:0:0: +317,145,439566,21,10,0:0:0:0: +57,233,439766,5,2,0:0:0:0: +316,342,439966,5,2,0:0:0:0: +290,15,440166,5,14,0:0:0:0: diff --git a/vibrio/tests/test_lazer.py b/vibrio/tests/test_lazer.py index 0c9b73c..5dd3518 100644 --- a/vibrio/tests/test_lazer.py +++ b/vibrio/tests/test_lazer.py @@ -1,9 +1,13 @@ +from pathlib import Path + import pytest from pytest import approx # type: ignore from vibrio import Lazer, LazerAsync from vibrio.types import OsuMod +RESOURCES_DIR = Path(__file__).absolute().parent / "resources" + pytest_plugins = ("pytest_asyncio",) @@ -39,7 +43,20 @@ def test_calculate_difficulty_id( beatmap_id: int, mods: list[OsuMod], star_rating: float, max_combo: int ): with Lazer() as lazer: - attributes = lazer.calculate_difficulty(beatmap_id, mods) + attributes = lazer.calculate_difficulty(mods, beatmap_id=beatmap_id) + assert attributes.star_rating == approx(star_rating, 0.03) + assert attributes.max_combo == max_combo + + +@pytest.mark.parametrize("beatmap_filename", ["1001682.osu"]) +@pytest.mark.parametrize("mods", [[OsuMod.DOUBLE_TIME]]) +@pytest.mark.parametrize("star_rating", [9.7]) +@pytest.mark.parametrize("max_combo", [3220]) +def test_calculate_difficulty_file( + beatmap_filename: str, mods: list[OsuMod], star_rating: float, max_combo: int +): + with Lazer() as lazer, open(RESOURCES_DIR / beatmap_filename) as beatmap: + attributes = lazer.calculate_difficulty(mods, beatmap=beatmap) assert attributes.star_rating == approx(star_rating, 0.03) assert attributes.max_combo == max_combo From dc1cf8eeb060f5afc0373aacab262469321d627d Mon Sep 17 00:00:00 2001 From: Jagan Prem Date: Sat, 9 Dec 2023 03:32:42 -0800 Subject: [PATCH 6/9] Add asynchronous implementations --- vibrio/lazer.py | 50 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) diff --git a/vibrio/lazer.py b/vibrio/lazer.py index f34f1cc..a59b75d 100644 --- a/vibrio/lazer.py +++ b/vibrio/lazer.py @@ -397,3 +397,53 @@ async def clear_cache(self) -> None: raise ServerError( f"Unexpected status code {response.status}; check server logs for error details" ) + + async def calculate_difficulty( + self, + mods: list[OsuMod], + beatmap_id: Optional[int] = None, + beatmap: Optional[TextIO] = None, + ) -> OsuDifficultyAttributes: + params = {"mods": [mod.value for mod in mods]} + + if beatmap_id is not None: + if beatmap is not None: + raise ValueError( + "Exactly one of `beatmap_id` and `beatmap_data` should be set" + ) + + async with self.session.get( + f"/api/difficulty/{beatmap_id}", params=params + ) as response: + print(response.text) + if response.status == 200: + return OsuDifficultyAttributes.from_json(await response.json()) + elif response.status == 404: + raise BeatmapNotFound(f"No beatmap found for id {beatmap_id}") + else: + raise ServerError( + f"Unexpected status code {response.status}; check server logs for error details" + ) + + elif beatmap is not None: + data = aiohttp.FormData() + data.add_field( + "beatmap", + beatmap.read(), + content_type="multipart/form-data", + filename="beatmap", + ) + async with self.session.post( + "/api/difficulty", params=params, data=data + ) as response: + if response.status == 200: + return OsuDifficultyAttributes.from_json(await response.json()) + else: + raise ServerError( + f"Unexpected status code {response.status}; check server logs for error details" + ) + + else: + raise ValueError( + "Exactly one of `beatmap_id` and `beatmap_data` should be set" + ) From 83cc6e8aa1a102dbe5dc9235cc3e9eb242cc6df9 Mon Sep 17 00:00:00 2001 From: Jagan Prem Date: Sat, 9 Dec 2023 03:33:18 -0800 Subject: [PATCH 7/9] Add tests for async implementations --- vibrio/tests/test_lazer.py | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/vibrio/tests/test_lazer.py b/vibrio/tests/test_lazer.py index 5dd3518..fae782c 100644 --- a/vibrio/tests/test_lazer.py +++ b/vibrio/tests/test_lazer.py @@ -85,3 +85,32 @@ async def test_cache_status_async(beatmap_id: int): assert await lazer.has_beatmap(beatmap_id) await lazer.clear_cache() assert not await lazer.has_beatmap(beatmap_id) + + +@pytest.mark.asyncio +@pytest.mark.parametrize("beatmap_id", [1001682]) +@pytest.mark.parametrize("mods", [[OsuMod.DOUBLE_TIME]]) +@pytest.mark.parametrize("star_rating", [9.7]) +@pytest.mark.parametrize("max_combo", [3220]) +async def test_calculate_difficulty_id_async( + beatmap_id: int, mods: list[OsuMod], star_rating: float, max_combo: int +): + async with LazerAsync() as lazer: + attributes = await lazer.calculate_difficulty(mods, beatmap_id=beatmap_id) + assert attributes.star_rating == approx(star_rating, 0.03) + assert attributes.max_combo == max_combo + + +@pytest.mark.asyncio +@pytest.mark.parametrize("beatmap_filename", ["1001682.osu"]) +@pytest.mark.parametrize("mods", [[OsuMod.DOUBLE_TIME]]) +@pytest.mark.parametrize("star_rating", [9.7]) +@pytest.mark.parametrize("max_combo", [3220]) +async def test_calculate_difficulty_file_async( + beatmap_filename: str, mods: list[OsuMod], star_rating: float, max_combo: int +): + async with LazerAsync() as lazer: + with open(RESOURCES_DIR / beatmap_filename) as beatmap: + attributes = await lazer.calculate_difficulty(mods, beatmap=beatmap) + assert attributes.star_rating == approx(star_rating, 0.03) + assert attributes.max_combo == max_combo From e32cde27f3c946a49bd640a7fcbcb166a451c4ea Mon Sep 17 00:00:00 2001 From: Jagan Prem Date: Sat, 9 Dec 2023 03:39:32 -0800 Subject: [PATCH 8/9] Use info for logging --- vibrio/lazer.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/vibrio/lazer.py b/vibrio/lazer.py index a59b75d..15ac01b 100644 --- a/vibrio/lazer.py +++ b/vibrio/lazer.py @@ -3,6 +3,7 @@ import asyncio import atexit import io +import logging import platform import signal import socket @@ -85,11 +86,12 @@ def _start(self) -> None: self.running = True if self.use_logging: + logging.info(f"Launching server on port {self.port}") self.log = tempfile.NamedTemporaryFile(delete=False) def _stop(self) -> None: if self.log is not None: - print(f"Server output logged at {self.log.file.name}") + logging.info(f"Server output logged at {self.log.file.name}") self.log.close() self.log = None @@ -247,7 +249,6 @@ def calculate_difficulty( with self.session.get( f"/api/difficulty/{beatmap_id}", params=params ) as response: - print(response.text) if response.status_code == 200: return OsuDifficultyAttributes.from_json(response.json()) elif response.status_code == 404: @@ -415,7 +416,6 @@ async def calculate_difficulty( async with self.session.get( f"/api/difficulty/{beatmap_id}", params=params ) as response: - print(response.text) if response.status == 200: return OsuDifficultyAttributes.from_json(await response.json()) elif response.status == 404: From 8c9f6cc60389cb912e80825d371440260b86c5ed Mon Sep 17 00:00:00 2001 From: Jagan Prem Date: Sat, 9 Dec 2023 03:46:08 -0800 Subject: [PATCH 9/9] Switch from StrEnum for type compatibility --- vibrio/types.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/vibrio/types.py b/vibrio/types.py index ba0db29..3dd3e22 100644 --- a/vibrio/types.py +++ b/vibrio/types.py @@ -1,11 +1,11 @@ from dataclasses import dataclass, fields -from enum import StrEnum +from enum import Enum from typing import Any from typing_extensions import Self -class OsuMod(StrEnum): +class OsuMod(Enum): NO_FAIL = "NF" EASY = "EZ" TOUCH_DEVICE = "TD"