From 06832c885e78cc812d38b4bd2aacaf59ed7e41d1 Mon Sep 17 00:00:00 2001 From: Mikko Mononen Date: Sun, 29 Mar 2009 10:30:52 +0000 Subject: [PATCH] Initial commit. --- Recast/Build/VC9/Recast.sln | 20 + Recast/Build/VC9/Recast.suo | Bin 0 -> 25600 bytes Recast/Build/VC9/Recast.vcproj | 275 + .../Xcode/English.lproj/InfoPlist.strings | Bin 0 -> 92 bytes Recast/Build/Xcode/English.lproj/MainMenu.xib | 3034 +++ Recast/Build/Xcode/Info.plist | 28 + .../Xcode/Recast.xcodeproj/TemplateIcon.icns | Bin 0 -> 52318 bytes .../Xcode/Recast.xcodeproj/memon.pbxuser | 250 + .../Recast.xcodeproj/memon.perspectivev3 | 1484 ++ .../Xcode/Recast.xcodeproj/project.pbxproj | 364 + Recast/Build/Xcode/Recast_Prefix.pch | 7 + Recast/Contrib/SDL/readme.txt | 1 + Recast/Examples/MeshLoaderObj.cpp | 219 + Recast/Examples/MeshLoaderObj.h | 48 + Recast/Examples/Meshes/dungeon.obj | 15234 ++++++++++++++++ Recast/Examples/Meshes/nav_test.obj | 3506 ++++ Recast/Examples/Recast.exe | Bin 0 -> 75776 bytes Recast/Examples/SDL.dll | Bin 0 -> 321536 bytes Recast/Examples/SDLMain.h | 11 + Recast/Examples/SDLMain.m | 384 + Recast/Examples/demo.cpp | 796 + Recast/Examples/font.cfnt | Bin 0 -> 90096 bytes Recast/Examples/glfont.cpp | 285 + Recast/Examples/glfont.h | 106 + Recast/Examples/imgui.cpp | 851 + Recast/Examples/imgui.h | 45 + Recast/Include/Recast.h | 390 + Recast/Include/RecastDebugDraw.h | 59 + Recast/Include/RecastLog.h | 53 + Recast/Include/RecastTimer.h | 38 + Recast/License.txt | 18 + Recast/Readme.txt | 13 + Recast/Source/Recast.cpp | 302 + Recast/Source/RecastContour.cpp | 665 + Recast/Source/RecastDebugDraw.cpp | 491 + Recast/Source/RecastFilter.cpp | 232 + Recast/Source/RecastLog.cpp | 66 + Recast/Source/RecastMesh.cpp | 699 + Recast/Source/RecastRasterization.cpp | 295 + Recast/Source/RecastRegion.cpp | 1037 ++ Recast/Source/RecastTimer.cpp | 43 + 41 files changed, 31349 insertions(+) create mode 100644 Recast/Build/VC9/Recast.sln create mode 100644 Recast/Build/VC9/Recast.suo create mode 100644 Recast/Build/VC9/Recast.vcproj create mode 100644 Recast/Build/Xcode/English.lproj/InfoPlist.strings create mode 100644 Recast/Build/Xcode/English.lproj/MainMenu.xib create mode 100644 Recast/Build/Xcode/Info.plist create mode 100644 Recast/Build/Xcode/Recast.xcodeproj/TemplateIcon.icns create mode 100644 Recast/Build/Xcode/Recast.xcodeproj/memon.pbxuser create mode 100644 Recast/Build/Xcode/Recast.xcodeproj/memon.perspectivev3 create mode 100644 Recast/Build/Xcode/Recast.xcodeproj/project.pbxproj create mode 100644 Recast/Build/Xcode/Recast_Prefix.pch create mode 100644 Recast/Contrib/SDL/readme.txt create mode 100644 Recast/Examples/MeshLoaderObj.cpp create mode 100644 Recast/Examples/MeshLoaderObj.h create mode 100644 Recast/Examples/Meshes/dungeon.obj create mode 100644 Recast/Examples/Meshes/nav_test.obj create mode 100644 Recast/Examples/Recast.exe create mode 100644 Recast/Examples/SDL.dll create mode 100644 Recast/Examples/SDLMain.h create mode 100644 Recast/Examples/SDLMain.m create mode 100644 Recast/Examples/demo.cpp create mode 100644 Recast/Examples/font.cfnt create mode 100644 Recast/Examples/glfont.cpp create mode 100644 Recast/Examples/glfont.h create mode 100644 Recast/Examples/imgui.cpp create mode 100644 Recast/Examples/imgui.h create mode 100644 Recast/Include/Recast.h create mode 100644 Recast/Include/RecastDebugDraw.h create mode 100644 Recast/Include/RecastLog.h create mode 100644 Recast/Include/RecastTimer.h create mode 100644 Recast/License.txt create mode 100644 Recast/Readme.txt create mode 100644 Recast/Source/Recast.cpp create mode 100644 Recast/Source/RecastContour.cpp create mode 100644 Recast/Source/RecastDebugDraw.cpp create mode 100644 Recast/Source/RecastFilter.cpp create mode 100644 Recast/Source/RecastLog.cpp create mode 100644 Recast/Source/RecastMesh.cpp create mode 100644 Recast/Source/RecastRasterization.cpp create mode 100644 Recast/Source/RecastRegion.cpp create mode 100644 Recast/Source/RecastTimer.cpp diff --git a/Recast/Build/VC9/Recast.sln b/Recast/Build/VC9/Recast.sln new file mode 100644 index 0000000..d3c3d24 --- /dev/null +++ b/Recast/Build/VC9/Recast.sln @@ -0,0 +1,20 @@ + +Microsoft Visual Studio Solution File, Format Version 10.00 +# Visual C++ Express 2008 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Recast", "Recast.vcproj", "{CEF242C5-E9A3-403B-BAFF-99397BDA5730}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Win32 = Debug|Win32 + Release|Win32 = Release|Win32 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {CEF242C5-E9A3-403B-BAFF-99397BDA5730}.Debug|Win32.ActiveCfg = Debug|Win32 + {CEF242C5-E9A3-403B-BAFF-99397BDA5730}.Debug|Win32.Build.0 = Debug|Win32 + {CEF242C5-E9A3-403B-BAFF-99397BDA5730}.Release|Win32.ActiveCfg = Release|Win32 + {CEF242C5-E9A3-403B-BAFF-99397BDA5730}.Release|Win32.Build.0 = Release|Win32 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/Recast/Build/VC9/Recast.suo b/Recast/Build/VC9/Recast.suo new file mode 100644 index 0000000000000000000000000000000000000000..ffe0ef3d7a4a4b189b75da712b1180725f63941b GIT binary patch literal 25600 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 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Recast/Build/Xcode/English.lproj/InfoPlist.strings b/Recast/Build/Xcode/English.lproj/InfoPlist.strings new file mode 100644 index 0000000000000000000000000000000000000000..5e45963c382ba690b781b953a00585212b898ac5 GIT binary patch literal 92 zcmW-XQ3`+{5C!MkQ~2$No+IcIkqMDxWCV8j>LCj|yTg2Mz+o9F%uHlf9u}h9EuK`F a!Y*1dX%G66ZqL#C$|bw0ZoP5@jOGW1ArT7z literal 0 HcmV?d00001 diff --git a/Recast/Build/Xcode/English.lproj/MainMenu.xib b/Recast/Build/Xcode/English.lproj/MainMenu.xib new file mode 100644 index 0000000..3a7530a --- /dev/null +++ b/Recast/Build/Xcode/English.lproj/MainMenu.xib @@ -0,0 +1,3034 @@ + + + + 1050 + 9D29 + 664 + 949.33 + 352.00 + + YES + + + + + YES + com.apple.InterfaceBuilderKit + com.apple.InterfaceBuilder.CocoaPlugin + + + YES + + NSApplication + + + FirstResponder + + + NSApplication + + + AMainMenu + + YES + + + NewApplication + + 1048576 + 2147483647 + + NSImage + NSMenuCheckmark + + + NSImage + NSMenuMixedState + + submenuAction: + + NewApplication + + YES + + + About NewApplication + + 2147483647 + + + + + + YES + YES + + + 1048576 + 2147483647 + + + + + + UHJlZmVyZW5jZXPigKY + , + 1048576 + 2147483647 + + + + + + YES + YES + + + 1048576 + 2147483647 + + + + + + Services + + 1048576 + 2147483647 + + + submenuAction: + + Services + + YES + + _NSServicesMenu + + + + + YES + YES + + + 1048576 + 2147483647 + + + + + + Hide NewApplication + h + 1048576 + 2147483647 + + + + + + Hide Others + h + 1572864 + 2147483647 + + + + + + Show All + + 1048576 + 2147483647 + + + + + + YES + YES + + + 1048576 + 2147483647 + + + + + + Quit NewApplication + q + 1048576 + 2147483647 + + + + + _NSAppleMenu + + + + + File + + 1048576 + 2147483647 + + + submenuAction: + + File + + YES + + + New + n + 1048576 + 2147483647 + + + + + + T3BlbuKApg + o + 1048576 + 2147483647 + + + + + + Open Recent + + 1048576 + 2147483647 + + + submenuAction: + + Open Recent + + YES + + + Clear Menu + + 1048576 + 2147483647 + + + + + _NSRecentDocumentsMenu + + + + + YES + YES + + + 1048576 + 2147483647 + + + + + + Close + w + 1048576 + 2147483647 + + + + + + Save + s + 1048576 + 2147483647 + + + + + + U2F2ZSBBc+KApg + S + 1179648 + 2147483647 + + + + + + Revert to Saved + + 2147483647 + + + + + + YES + YES + + + 1048576 + 2147483647 + + + + + + Page Setup... + P + 1179648 + 2147483647 + + + + + + + UHJpbnTigKY + p + 1048576 + 2147483647 + + + + + + + + + Edit + + 1048576 + 2147483647 + + + submenuAction: + + Edit + + YES + + + Undo + z + 1048576 + 2147483647 + + + + + + Redo + Z + 1179648 + 2147483647 + + + + + + YES + YES + + + 1048576 + 2147483647 + + + + + + Cut + x + 1048576 + 2147483647 + + + + + + Copy + c + 1048576 + 2147483647 + + + + + + Paste + v + 1048576 + 2147483647 + + + + + + Delete + + 1048576 + 2147483647 + + + + + + Select All + a + 1048576 + 2147483647 + + + + + + YES + YES + + + 1048576 + 2147483647 + + + + + + Find + + 1048576 + 2147483647 + + + submenuAction: + + Find + + YES + + + RmluZOKApg + f + 1048576 + 2147483647 + + + 1 + + + + Find Next + g + 1048576 + 2147483647 + + + 2 + + + + Find Previous + G + 1179648 + 2147483647 + + + 3 + + + + Use Selection for Find + e + 1048576 + 2147483647 + + + 7 + + + + Jump to Selection + j + 1048576 + 2147483647 + + + + + + + + + Spelling and Grammar + + 1048576 + 2147483647 + + + submenuAction: + + Spelling and Grammar + + YES + + + U2hvdyBTcGVsbGluZ+KApg + : + 1048576 + 2147483647 + + + + + + Check Spelling + ; + 1048576 + 2147483647 + + + + + + Check Spelling While Typing + + 1048576 + 2147483647 + + + + + + Check Grammar With Spelling + + 1048576 + 2147483647 + + + + + + + + + Substitutions + + 1048576 + 2147483647 + + + submenuAction: + + Substitutions + + YES + + + Smart Copy/Paste + f + 1048576 + 2147483647 + + + 1 + + + + Smart Quotes + g + 1048576 + 2147483647 + + + 2 + + + + Smart Links + G + 1179648 + 2147483647 + + + 3 + + + + + + + Speech + + 1048576 + 2147483647 + + + submenuAction: + + Speech + + YES + + + Start Speaking + + 1048576 + 2147483647 + + + + + + Stop Speaking + + 1048576 + 2147483647 + + + + + + + + + + + + Format + + 2147483647 + + + submenuAction: + + Format + + YES + + + Font + + 2147483647 + + + submenuAction: + + Font + + YES + + + Show Fonts + t + 1048576 + 2147483647 + + + + + + Bold + b + 1048576 + 2147483647 + + + 2 + + + + Italic + i + 1048576 + 2147483647 + + + 1 + + + + Underline + u + 1048576 + 2147483647 + + + + + + YES + YES + + + 2147483647 + + + + + + Bigger + + + 1048576 + 2147483647 + + + 3 + + + + Smaller + - + 1048576 + 2147483647 + + + 4 + + + + YES + YES + + + 2147483647 + + + + + + Kern + + 2147483647 + + + submenuAction: + + Kern + + YES + + + Use Default + + 2147483647 + + + + + + Use None + + 2147483647 + + + + + + Tighten + + 2147483647 + + + + + + Loosen + + 2147483647 + + + + + + + + + Ligature + + 2147483647 + + + submenuAction: + + Ligature + + YES + + + Use Default + + 2147483647 + + + + + + Use None + + 2147483647 + + + + + + Use All + + 2147483647 + + + + + + + + + Baseline + + 2147483647 + + + submenuAction: + + Baseline + + YES + + + Use Default + + 2147483647 + + + + + + Superscript + + 2147483647 + + + + + + Subscript + + 2147483647 + + + + + + Raise + + 2147483647 + + + + + + Lower + + 2147483647 + + + + + + + + + YES + YES + + + 2147483647 + + + + + + Show Colors + C + 1048576 + 2147483647 + + + + + + YES + YES + + + 2147483647 + + + + + + Copy Style + c + 1572864 + 2147483647 + + + + + + Paste Style + v + 1572864 + 2147483647 + + + + + _NSFontMenu + + + + + Text + + 2147483647 + + + submenuAction: + + Text + + YES + + + Align Left + { + 1048576 + 2147483647 + + + + + + Center + | + 1048576 + 2147483647 + + + + + + Justify + + 2147483647 + + + + + + Align Right + } + 1048576 + 2147483647 + + + + + + YES + YES + + + 2147483647 + + + + + + Show Ruler + + 2147483647 + + + + + + Copy Ruler + c + 1310720 + 2147483647 + + + + + + Paste Ruler + v + 1310720 + 2147483647 + + + + + + + + + + + + View + + 1048576 + 2147483647 + + + submenuAction: + + View + + YES + + + Show Toolbar + t + 1572864 + 2147483647 + + + + + + Q3VzdG9taXplIFRvb2xiYXLigKY + + 1048576 + 2147483647 + + + + + + + + + Window + + 1048576 + 2147483647 + + + submenuAction: + + Window + + YES + + + Minimize + m + 1048576 + 2147483647 + + + + + + Zoom + + 1048576 + 2147483647 + + + + + + YES + YES + + + 1048576 + 2147483647 + + + + + + Bring All to Front + + 1048576 + 2147483647 + + + + + _NSWindowsMenu + + + + + Help + + 1048576 + 2147483647 + + + submenuAction: + + Help + + YES + + + NewApplication Help + ? + 1048576 + 2147483647 + + + + + + + + _NSMainMenu + + + 15 + 2 + {{335, 390}, {480, 360}} + 1946157056 + Window + NSWindow + + {3.40282e+38, 3.40282e+38} + + + 256 + {480, 360} + + + {{0, 0}, {1440, 878}} + {3.40282e+38, 3.40282e+38} + + + NSFontManager + + + + + YES + + + performMiniaturize: + + + + 37 + + + + arrangeInFront: + + + + 39 + + + + print: + + + + 86 + + + + runPageLayout: + + + + 87 + + + + clearRecentDocuments: + + + + 127 + + + + orderFrontStandardAboutPanel: + + + + 142 + + + + performClose: + + + + 193 + + + + toggleContinuousSpellChecking: + + + + 222 + + + + undo: + + + + 223 + + + + copy: + + + + 224 + + + + checkSpelling: + + + + 225 + + + + paste: + + + + 226 + + + + stopSpeaking: + + + + 227 + + + + cut: + + + + 228 + + + + showGuessPanel: + + + + 230 + + + + redo: + + + + 231 + + + + selectAll: + + + + 232 + + + + startSpeaking: + + + + 233 + + + + delete: + + + + 235 + + + + performZoom: + + + + 240 + + + + performFindPanelAction: + + + + 241 + + + + centerSelectionInVisibleArea: + + + + 245 + + + + toggleGrammarChecking: + + + + 347 + + + + toggleSmartInsertDelete: + + + + 355 + + + + toggleAutomaticQuoteSubstitution: + + + + 356 + + + + toggleAutomaticLinkDetection: + + + + 357 + + + + showHelp: + + + + 360 + + + + saveDocument: + + + + 362 + + + + saveDocumentAs: + + + + 363 + + + + revertDocumentToSaved: + + + + 364 + + + + runToolbarCustomizationPalette: + + + + 365 + + + + toggleToolbarShown: + + + + 366 + + + + hide: + + + + 367 + + + + hideOtherApplications: + + + + 368 + + + + unhideAllApplications: + + + + 370 + + + + newDocument: + + + + 373 + + + + openDocument: + + + + 374 + + + + addFontTrait: + + + + 421 + + + + addFontTrait: + + + + 422 + + + + modifyFont: + + + + 423 + + + + orderFrontFontPanel: + + + + 424 + + + + modifyFont: + + + + 425 + + + + raiseBaseline: + + + + 426 + + + + lowerBaseline: + + + + 427 + + + + copyFont: + + + + 428 + + + + subscript: + + + + 429 + + + + superscript: + + + + 430 + + + + tightenKerning: + + + + 431 + + + + underline: + + + + 432 + + + + orderFrontColorPanel: + + + + 433 + + + + useAllLigatures: + + + + 434 + + + + loosenKerning: + + + + 435 + + + + pasteFont: + + + + 436 + + + + unscript: + + + + 437 + + + + useStandardKerning: + + + + 438 + + + + useStandardLigatures: + + + + 439 + + + + turnOffLigatures: + + + + 440 + + + + turnOffKerning: + + + + 441 + + + + alignLeft: + + + + 442 + + + + alignJustified: + + + + 443 + + + + copyRuler: + + + + 444 + + + + alignCenter: + + + + 445 + + + + toggleRuler: + + + + 446 + + + + alignRight: + + + + 447 + + + + pasteRuler: + + + + 448 + + + + terminate: + + + + 449 + + + + + YES + + 0 + + YES + + + + + + -2 + + + RmlsZSdzIE93bmVyA + + + -1 + + + First Responder + + + -3 + + + Application + + + 29 + + + YES + + + + + + + + + + MainMenu + + + 19 + + + YES + + + + + + 56 + + + YES + + + + + + 103 + + + YES + + + + 1 + + + 217 + + + YES + + + + + + 83 + + + YES + + + + + + 81 + + + YES + + + + + + + + + + + + + + + + 75 + + + 3 + + + 80 + + + 8 + + + 78 + + + 6 + + + 72 + + + + + 82 + + + 9 + + + 124 + + + YES + + + + + + 77 + + + 5 + + + 73 + + + 1 + + + 79 + + + 7 + + + 112 + + + 10 + + + 74 + + + 2 + + + 125 + + + YES + + + + + + 126 + + + + + 205 + + + YES + + + + + + + + + + + + + + + + + + 202 + + + + + 198 + + + + + 207 + + + + + 214 + + + + + 199 + + + + + 203 + + + + + 197 + + + + + 206 + + + + + 215 + + + + + 218 + + + YES + + + + + + 216 + + + YES + + + + + + 200 + + + YES + + + + + + + + + 219 + + + + + 201 + + + + + 204 + + + + + 220 + + + YES + + + + + + + + + + 213 + + + + + 210 + + + + + 221 + + + + + 208 + + + + + 209 + + + + + 106 + + + YES + + + + 2 + + + 111 + + + + + 57 + + + YES + + + + + + + + + + + + + + + + 58 + + + + + 134 + + + + + 150 + + + + + 136 + + + 1111 + + + 144 + + + + + 129 + + + 121 + + + 143 + + + + + 236 + + + + + 131 + + + YES + + + + + + 149 + + + + + 145 + + + + + 130 + + + + + 24 + + + YES + + + + + + + + + 92 + + + + + 5 + + + + + 239 + + + + + 23 + + + + + 295 + + + YES + + + + + + 296 + + + YES + + + + + + + 297 + + + + + 298 + + + + + 211 + + + YES + + + + + + 212 + + + YES + + + + + + + 195 + + + + + 196 + + + + + 346 + + + + + 348 + + + YES + + + + + + 349 + + + YES + + + + + + + + 350 + + + + + 351 + + + + + 354 + + + + + 371 + + + YES + + + + + + 372 + + + + + 375 + + + YES + + + + + + 376 + + + YES + + + + + + + 377 + + + YES + + + + + + 378 + + + YES + + + + + + 379 + + + YES + + + + + + + + + + + + + 380 + + + + + 381 + + + + + 382 + + + + + 383 + + + + + 384 + + + + + 385 + + + + + 386 + + + + + 387 + + + + + 388 + + + YES + + + + + + + + + + + + + + + + + + + + + 389 + + + + + 390 + + + + + 391 + + + + + 392 + + + + + 393 + + + + + 394 + + + + + 395 + + + + + 396 + + + + + 397 + + + YES + + + + + + 398 + + + YES + + + + + + 399 + + + YES + + + + + + 400 + + + + + 401 + + + + + 402 + + + + + 403 + + + + + 404 + + + + + 405 + + + YES + + + + + + + + + + 406 + + + + + 407 + + + + + 408 + + + + + 409 + + + + + 410 + + + + + 411 + + + YES + + + + + + + + 412 + + + + + 413 + + + + + 414 + + + + + 415 + + + YES + + + + + + + + + 416 + + + + + 417 + + + + + 418 + + + + + 419 + + + + + 420 + + + + + + + YES + + YES + -1.IBPluginDependency + -2.IBPluginDependency + -3.IBPluginDependency + 103.IBPluginDependency + 103.ImportedFromIB2 + 106.IBPluginDependency + 106.ImportedFromIB2 + 106.editorWindowContentRectSynchronizationRect + 111.IBPluginDependency + 111.ImportedFromIB2 + 112.IBPluginDependency + 112.ImportedFromIB2 + 124.IBPluginDependency + 124.ImportedFromIB2 + 125.IBPluginDependency + 125.ImportedFromIB2 + 125.editorWindowContentRectSynchronizationRect + 126.IBPluginDependency + 126.ImportedFromIB2 + 129.IBPluginDependency + 129.ImportedFromIB2 + 130.IBPluginDependency + 130.ImportedFromIB2 + 130.editorWindowContentRectSynchronizationRect + 131.IBPluginDependency + 131.ImportedFromIB2 + 134.IBPluginDependency + 134.ImportedFromIB2 + 136.IBPluginDependency + 136.ImportedFromIB2 + 143.IBPluginDependency + 143.ImportedFromIB2 + 144.IBPluginDependency + 144.ImportedFromIB2 + 145.IBPluginDependency + 145.ImportedFromIB2 + 149.IBPluginDependency + 149.ImportedFromIB2 + 150.IBPluginDependency + 150.ImportedFromIB2 + 19.IBPluginDependency + 19.ImportedFromIB2 + 195.IBPluginDependency + 195.ImportedFromIB2 + 196.IBPluginDependency + 196.ImportedFromIB2 + 197.IBPluginDependency + 197.ImportedFromIB2 + 198.IBPluginDependency + 198.ImportedFromIB2 + 199.IBPluginDependency + 199.ImportedFromIB2 + 200.IBPluginDependency + 200.ImportedFromIB2 + 200.editorWindowContentRectSynchronizationRect + 201.IBPluginDependency + 201.ImportedFromIB2 + 202.IBPluginDependency + 202.ImportedFromIB2 + 203.IBPluginDependency + 203.ImportedFromIB2 + 204.IBPluginDependency + 204.ImportedFromIB2 + 205.IBPluginDependency + 205.ImportedFromIB2 + 205.editorWindowContentRectSynchronizationRect + 206.IBPluginDependency + 206.ImportedFromIB2 + 207.IBPluginDependency + 207.ImportedFromIB2 + 208.IBPluginDependency + 208.ImportedFromIB2 + 209.IBPluginDependency + 209.ImportedFromIB2 + 210.IBPluginDependency + 210.ImportedFromIB2 + 211.IBPluginDependency + 211.ImportedFromIB2 + 212.IBPluginDependency + 212.ImportedFromIB2 + 212.editorWindowContentRectSynchronizationRect + 213.IBPluginDependency + 213.ImportedFromIB2 + 214.IBPluginDependency + 214.ImportedFromIB2 + 215.IBPluginDependency + 215.ImportedFromIB2 + 216.IBPluginDependency + 216.ImportedFromIB2 + 217.IBPluginDependency + 217.ImportedFromIB2 + 218.IBPluginDependency + 218.ImportedFromIB2 + 219.IBPluginDependency + 219.ImportedFromIB2 + 220.IBPluginDependency + 220.ImportedFromIB2 + 220.editorWindowContentRectSynchronizationRect + 221.IBPluginDependency + 221.ImportedFromIB2 + 23.IBPluginDependency + 23.ImportedFromIB2 + 236.IBPluginDependency + 236.ImportedFromIB2 + 239.IBPluginDependency + 239.ImportedFromIB2 + 24.IBPluginDependency + 24.ImportedFromIB2 + 24.editorWindowContentRectSynchronizationRect + 29.IBEditorWindowLastContentRect + 29.IBPluginDependency + 29.ImportedFromIB2 + 29.WindowOrigin + 29.editorWindowContentRectSynchronizationRect + 295.IBPluginDependency + 296.IBPluginDependency + 296.editorWindowContentRectSynchronizationRect + 297.IBPluginDependency + 298.IBPluginDependency + 346.IBPluginDependency + 346.ImportedFromIB2 + 348.IBPluginDependency + 348.ImportedFromIB2 + 349.IBPluginDependency + 349.ImportedFromIB2 + 349.editorWindowContentRectSynchronizationRect + 350.IBPluginDependency + 350.ImportedFromIB2 + 351.IBPluginDependency + 351.ImportedFromIB2 + 354.IBPluginDependency + 354.ImportedFromIB2 + 371.IBEditorWindowLastContentRect + 371.IBPluginDependency + 371.IBWindowTemplateEditedContentRect + 371.NSWindowTemplate.visibleAtLaunch + 371.editorWindowContentRectSynchronizationRect + 371.windowTemplate.maxSize + 372.IBPluginDependency + 375.IBPluginDependency + 376.IBEditorWindowLastContentRect + 376.IBPluginDependency + 377.IBPluginDependency + 378.IBPluginDependency + 379.IBPluginDependency + 380.IBPluginDependency + 381.IBPluginDependency + 382.IBPluginDependency + 383.IBPluginDependency + 384.IBPluginDependency + 385.IBPluginDependency + 386.IBPluginDependency + 387.IBPluginDependency + 388.IBEditorWindowLastContentRect + 388.IBPluginDependency + 389.IBPluginDependency + 390.IBPluginDependency + 391.IBPluginDependency + 392.IBPluginDependency + 393.IBPluginDependency + 394.IBPluginDependency + 395.IBPluginDependency + 396.IBPluginDependency + 397.IBPluginDependency + 398.IBPluginDependency + 399.IBPluginDependency + 400.IBPluginDependency + 401.IBPluginDependency + 402.IBPluginDependency + 403.IBPluginDependency + 404.IBPluginDependency + 405.IBPluginDependency + 406.IBPluginDependency + 407.IBPluginDependency + 408.IBPluginDependency + 409.IBPluginDependency + 410.IBPluginDependency + 411.IBPluginDependency + 412.IBPluginDependency + 413.IBPluginDependency + 414.IBPluginDependency + 415.IBPluginDependency + 416.IBPluginDependency + 417.IBPluginDependency + 418.IBPluginDependency + 419.IBPluginDependency + 5.IBPluginDependency + 5.ImportedFromIB2 + 56.IBPluginDependency + 56.ImportedFromIB2 + 57.IBEditorWindowLastContentRect + 57.IBPluginDependency + 57.ImportedFromIB2 + 57.editorWindowContentRectSynchronizationRect + 58.IBPluginDependency + 58.ImportedFromIB2 + 72.IBPluginDependency + 72.ImportedFromIB2 + 73.IBPluginDependency + 73.ImportedFromIB2 + 74.IBPluginDependency + 74.ImportedFromIB2 + 75.IBPluginDependency + 75.ImportedFromIB2 + 77.IBPluginDependency + 77.ImportedFromIB2 + 78.IBPluginDependency + 78.ImportedFromIB2 + 79.IBPluginDependency + 79.ImportedFromIB2 + 80.IBPluginDependency + 80.ImportedFromIB2 + 81.IBPluginDependency + 81.ImportedFromIB2 + 81.editorWindowContentRectSynchronizationRect + 82.IBPluginDependency + 82.ImportedFromIB2 + 83.IBPluginDependency + 83.ImportedFromIB2 + 92.IBPluginDependency + 92.ImportedFromIB2 + + + YES + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilderKit + com.apple.InterfaceBuilderKit + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + {{596, 852}, {216, 23}} + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + {{522, 812}, {146, 23}} + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + {{436, 809}, {64, 6}} + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + {{608, 612}, {275, 83}} + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + {{187, 434}, {243, 243}} + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + {{608, 612}, {167, 43}} + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + {{608, 612}, {241, 103}} + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + {{525, 802}, {197, 73}} + {{207, 285}, {478, 20}} + com.apple.InterfaceBuilder.CocoaPlugin + + {74, 862} + {{6, 978}, {478, 20}} + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + {{475, 832}, {234, 43}} + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + {{608, 612}, {215, 63}} + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + {{335, 390}, {480, 360}} + com.apple.InterfaceBuilder.CocoaPlugin + {{335, 390}, {480, 360}} + + {{33, 99}, {480, 360}} + {3.40282e+38, 3.40282e+38} + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + {{437, 242}, {86, 43}} + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + {{523, 2}, {178, 283}} + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + {{219, 102}, {245, 183}} + com.apple.InterfaceBuilder.CocoaPlugin + + {{23, 794}, {245, 183}} + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + {{145, 474}, {199, 203}} + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + com.apple.InterfaceBuilder.CocoaPlugin + + + + + YES + + YES + + + YES + + + + + YES + + YES + + + YES + + + + 449 + + + 0 + + 3 + + diff --git a/Recast/Build/Xcode/Info.plist b/Recast/Build/Xcode/Info.plist new file mode 100644 index 0000000..612b7da --- /dev/null +++ b/Recast/Build/Xcode/Info.plist @@ -0,0 +1,28 @@ + + + + + CFBundleDevelopmentRegion + English + CFBundleExecutable + ${EXECUTABLE_NAME} + CFBundleIconFile + + CFBundleIdentifier + com.yourcompany.${PRODUCT_NAME:identifier} + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + ${PRODUCT_NAME} + CFBundlePackageType + APPL + CFBundleSignature + ???? + CFBundleVersion + 1.0 + NSMainNibFile + MainMenu + NSPrincipalClass + NSApplication + + diff --git a/Recast/Build/Xcode/Recast.xcodeproj/TemplateIcon.icns b/Recast/Build/Xcode/Recast.xcodeproj/TemplateIcon.icns new file mode 100644 index 0000000000000000000000000000000000000000..62cb7015e09d6ea3e65d7f7949c4c07f9246a908 GIT binary patch literal 52318 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 WhsmLR^b3` + + + + ActivePerspectiveName + Project + AllowedModules + + + BundleLoadPath + + MaxInstances + n + Module + PBXSmartGroupTreeModule + Name + Groups and Files Outline View + + + BundleLoadPath + + MaxInstances + n + Module + PBXNavigatorGroup + Name + Editor + + + BundleLoadPath + + MaxInstances + n + Module + XCTaskListModule + Name + Task List + + + BundleLoadPath + + MaxInstances + n + Module + XCDetailModule + Name + File and Smart Group Detail Viewer + + + BundleLoadPath + + MaxInstances + 1 + Module + PBXBuildResultsModule + Name + Detailed Build Results Viewer + + + BundleLoadPath + + MaxInstances + 1 + Module + PBXProjectFindModule + Name + Project Batch Find Tool + + + BundleLoadPath + + MaxInstances + n + Module + XCProjectFormatConflictsModule + Name + Project Format Conflicts List + + + BundleLoadPath + + MaxInstances + n + Module + PBXBookmarksModule + Name + Bookmarks Tool + + + BundleLoadPath + + MaxInstances + n + Module + PBXClassBrowserModule + Name + Class Browser + + + BundleLoadPath + + MaxInstances + n + Module + PBXCVSModule + Name + Source Code Control Tool + + + BundleLoadPath + + MaxInstances + n + Module + PBXDebugBreakpointsModule + Name + Debug Breakpoints Tool + + + BundleLoadPath + + MaxInstances + n + Module + XCDockableInspector + Name + Inspector + + + BundleLoadPath + + MaxInstances + n + Module + PBXOpenQuicklyModule + Name + Open Quickly Tool + + + BundleLoadPath + + MaxInstances + 1 + Module + PBXDebugSessionModule + Name + Debugger + + + BundleLoadPath + + MaxInstances + 1 + Module + PBXDebugCLIModule + Name + Debug Console + + + BundleLoadPath + + MaxInstances + n + Module + XCSnapshotModule + Name + Snapshots Tool + + + BundlePath + /Developer/Library/PrivateFrameworks/DevToolsInterface.framework/Resources + Description + AIODescriptionKey + DockingSystemVisible + + Extension + perspectivev3 + FavBarConfig + + PBXProjectModuleGUID + 6B8632A80F78115100E2684A + XCBarModuleItemNames + + XCBarModuleItems + + + FirstTimeWindowDisplayed + + Identifier + com.apple.perspectives.project.defaultV3 + MajorVersion + 34 + MinorVersion + 0 + Name + All-In-One + Notifications + + OpenEditors + + PerspectiveWidths + + 810 + 810 + + Perspectives + + + ChosenToolbarItems + + XCToolbarPerspectiveControl + NSToolbarSeparatorItem + active-combo-popup + action + NSToolbarFlexibleSpaceItem + build-and-go + com.apple.ide.PBXToolbarStopButton + NSToolbarFlexibleSpaceItem + get-info + com.apple.pbx.toolbar.searchfield + + ControllerClassBaseName + + IconName + WindowOfProject + Identifier + perspective.project + IsVertical + + Layout + + + ContentConfiguration + + PBXBottomSmartGroupGIDs + + 1C37FBAC04509CD000000102 + 1C37FAAC04509CD000000102 + 1C08E77C0454961000C914BD + 1C37FABC05509CD000000102 + 1C37FABC05539CD112110102 + E2644B35053B69B200211256 + 1C37FABC04509CD000100104 + 1CC0EA4004350EF90044410B + 1CC0EA4004350EF90041110B + 1C77FABC04509CD000000102 + + PBXProjectModuleGUID + 1CA23ED40692098700951B8B + PBXProjectModuleLabel + Files + PBXProjectStructureProvided + yes + PBXSmartGroupTreeModuleColumnData + + PBXSmartGroupTreeModuleColumnWidthsKey + + 185 + + PBXSmartGroupTreeModuleColumnsKey_v4 + + MainColumn + + + PBXSmartGroupTreeModuleOutlineStateKey_v7 + + PBXSmartGroupTreeModuleOutlineStateExpansionKey + + 29B97314FDCFA39411CA2CEA + 080E96DDFE201D6D7F000001 + 29B97323FDCFA39411CA2CEA + 1058C7A0FEA54F0111CA2CBB + + PBXSmartGroupTreeModuleOutlineStateSelectionKey + + + 2 + 1 + 0 + + + PBXSmartGroupTreeModuleOutlineStateVisibleRectKey + {{0, 0}, {185, 595}} + + PBXTopSmartGroupGIDs + + XCIncludePerspectivesSwitch + + + GeometryConfiguration + + Frame + {{0, 0}, {202, 613}} + GroupTreeTableConfiguration + + MainColumn + 185 + + RubberWindowFrame + 55 112 1071 654 0 0 1280 778 + + Module + PBXSmartGroupTreeModule + Proportion + 202pt + + + Dock + + + BecomeActive + + ContentConfiguration + + PBXProjectModuleGUID + 6B8632A30F78115100E2684A + PBXProjectModuleLabel + demo.cpp + PBXSplitModuleInNavigatorKey + + Split0 + + PBXProjectModuleGUID + 6B8632A40F78115100E2684A + PBXProjectModuleLabel + demo.cpp + _historyCapacity + 0 + bookmark + 6B85EA8A0F7970D500780B56 + history + + 6B8633370F7813A600E2684A + 6B8633780F78173000E2684A + 6B8633790F78173000E2684A + 6B8633820F78174400E2684A + 6B68D7640F781974007E6D78 + + prevStack + + 6B86333A0F7813A600E2684A + 6B86333B0F7813A600E2684A + 6B86337C0F78173000E2684A + 6B86337E0F78173000E2684A + 6B8633840F78174400E2684A + + + SplitCount + 1 + + StatusBarVisibility + + XCSharingToken + com.apple.Xcode.CommonNavigatorGroupSharingToken + + GeometryConfiguration + + Frame + {{0, 0}, {864, 581}} + RubberWindowFrame + 55 112 1071 654 0 0 1280 778 + + Module + PBXNavigatorGroup + Proportion + 581pt + + + Proportion + 27pt + Tabs + + + ContentConfiguration + + PBXProjectModuleGUID + 1CA23EDF0692099D00951B8B + PBXProjectModuleLabel + Detail + + GeometryConfiguration + + Frame + {{10, 27}, {864, 0}} + RubberWindowFrame + 55 112 1071 654 0 0 1280 778 + + Module + XCDetailModule + + + ContentConfiguration + + PBXProjectModuleGUID + 1CA23EE00692099D00951B8B + PBXProjectModuleLabel + Project Find + + GeometryConfiguration + + Frame + {{10, 31}, {603, 297}} + + Module + PBXProjectFindModule + + + ContentConfiguration + + PBXCVSModuleFilterTypeKey + 1032 + PBXProjectModuleGUID + 1CA23EE10692099D00951B8B + PBXProjectModuleLabel + SCM Results + + GeometryConfiguration + + Frame + {{10, 31}, {603, 297}} + + Module + PBXCVSModule + + + ContentConfiguration + + PBXProjectModuleGUID + XCMainBuildResultsModuleGUID + PBXProjectModuleLabel + Build + XCBuildResultsTrigger_Collapse + 1021 + XCBuildResultsTrigger_Open + 1011 + + GeometryConfiguration + + Frame + {{10, 27}, {864, 0}} + + Module + PBXBuildResultsModule + + + + + Proportion + 864pt + + + Name + Project + ServiceClasses + + XCModuleDock + PBXSmartGroupTreeModule + XCModuleDock + PBXNavigatorGroup + XCDockableTabModule + XCDetailModule + PBXProjectFindModule + PBXCVSModule + PBXBuildResultsModule + + TableOfContents + + 6B85EA810F794EA900780B56 + 1CA23ED40692098700951B8B + 6B85EA820F794EA900780B56 + 6B8632A30F78115100E2684A + 6B85EA830F794EA900780B56 + 1CA23EDF0692099D00951B8B + 1CA23EE00692099D00951B8B + 1CA23EE10692099D00951B8B + XCMainBuildResultsModuleGUID + + ToolbarConfiguration + xcode.toolbar.config.defaultV3 + + + ChosenToolbarItems + + XCToolbarPerspectiveControl + NSToolbarSeparatorItem + active-combo-popup + NSToolbarFlexibleSpaceItem + build-and-go + com.apple.ide.PBXToolbarStopButton + debugger-restart-executable + debugger-pause + debugger-step-over + debugger-step-into + debugger-step-out + debugger-enable-breakpoints + NSToolbarFlexibleSpaceItem + com.apple.ide.XCBreakpointsToolbarItem + clear-log + + ControllerClassBaseName + PBXDebugSessionModule + IconName + DebugTabIcon + Identifier + perspective.debug + IsVertical + + Layout + + + ContentConfiguration + + PBXProjectModuleGUID + 1CCC7628064C1048000F2A68 + PBXProjectModuleLabel + Debugger Console + + GeometryConfiguration + + Frame + {{0, 0}, {810, 132}} + + Module + PBXDebugCLIModule + Proportion + 132pt + + + ContentConfiguration + + Debugger + + HorizontalSplitView + + _collapsingFrameDimension + 0.0 + _indexOfCollapsedView + 0 + _percentageOfCollapsedView + 0.0 + isCollapsed + yes + sizes + + {{0, 0}, {395, 150}} + {{395, 0}, {415, 150}} + + + VerticalSplitView + + _collapsingFrameDimension + 0.0 + _indexOfCollapsedView + 0 + _percentageOfCollapsedView + 0.0 + isCollapsed + yes + sizes + + {{0, 0}, {810, 150}} + {{0, 150}, {810, 159}} + + + + LauncherConfigVersion + 8 + PBXProjectModuleGUID + 1CCC7629064C1048000F2A68 + PBXProjectModuleLabel + Debug + + GeometryConfiguration + + DebugConsoleVisible + None + DebugConsoleWindowFrame + {{200, 200}, {500, 300}} + DebugSTDIOWindowFrame + {{200, 200}, {500, 300}} + Frame + {{0, 137}, {810, 309}} + PBXDebugSessionStackFrameViewKey + + DebugVariablesTableConfiguration + + Name + 120 + Value + 85 + Summary + 185 + + Frame + {{395, 0}, {415, 150}} + + + Module + PBXDebugSessionModule + Proportion + 309pt + + + Name + Debug + ServiceClasses + + XCModuleDock + PBXDebugCLIModule + PBXDebugSessionModule + PBXDebugProcessAndThreadModule + PBXDebugProcessViewModule + PBXDebugThreadViewModule + PBXDebugStackFrameViewModule + PBXNavigatorGroup + + TableOfContents + + 6B85EA840F794EA900780B56 + 1CCC7628064C1048000F2A68 + 1CCC7629064C1048000F2A68 + 6B85EA850F794EA900780B56 + 6B85EA860F794EA900780B56 + 6B85EA870F794EA900780B56 + 6B85EA880F794EA900780B56 + 6B85EA890F794EA900780B56 + + ToolbarConfiguration + xcode.toolbar.config.debugV3 + + + PerspectivesBarVisible + + ShelfIsVisible + + SourceDescription + file at '/Developer/Library/PrivateFrameworks/DevToolsInterface.framework/Resources/XCPerspectivesSpecification.xcperspec' + StatusbarIsVisible + + TimeStamp + 0.0 + ToolbarDisplayMode + 1 + ToolbarIsVisible + + ToolbarSizeMode + 1 + Type + Perspectives + UpdateMessage + + WindowJustification + 5 + WindowOrderList + + /Users/memon/Code/Recast/Build/Xcode/Recast.xcodeproj + + WindowString + 55 112 1071 654 0 0 1280 778 + WindowToolsV3 + + + Identifier + windowTool.debugger + Layout + + + Dock + + + ContentConfiguration + + Debugger + + HorizontalSplitView + + _collapsingFrameDimension + 0.0 + _indexOfCollapsedView + 0 + _percentageOfCollapsedView + 0.0 + isCollapsed + yes + sizes + + {{0, 0}, {317, 164}} + {{317, 0}, {377, 164}} + + + VerticalSplitView + + _collapsingFrameDimension + 0.0 + _indexOfCollapsedView + 0 + _percentageOfCollapsedView + 0.0 + isCollapsed + yes + sizes + + {{0, 0}, {694, 164}} + {{0, 164}, {694, 216}} + + + + LauncherConfigVersion + 8 + PBXProjectModuleGUID + 1C162984064C10D400B95A72 + PBXProjectModuleLabel + Debug - GLUTExamples (Underwater) + + GeometryConfiguration + + DebugConsoleDrawerSize + {100, 120} + DebugConsoleVisible + None + DebugConsoleWindowFrame + {{200, 200}, {500, 300}} + DebugSTDIOWindowFrame + {{200, 200}, {500, 300}} + Frame + {{0, 0}, {694, 380}} + RubberWindowFrame + 321 238 694 422 0 0 1440 878 + + Module + PBXDebugSessionModule + Proportion + 100% + + + Proportion + 100% + + + Name + Debugger + ServiceClasses + + PBXDebugSessionModule + + StatusbarIsVisible + 1 + TableOfContents + + 1CD10A99069EF8BA00B06720 + 1C0AD2AB069F1E9B00FABCE6 + 1C162984064C10D400B95A72 + 1C0AD2AC069F1E9B00FABCE6 + + ToolbarConfiguration + xcode.toolbar.config.debugV3 + WindowString + 321 238 694 422 0 0 1440 878 + WindowToolGUID + 1CD10A99069EF8BA00B06720 + WindowToolIsVisible + 0 + + + Identifier + windowTool.build + Layout + + + Dock + + + ContentConfiguration + + PBXProjectModuleGUID + 1CD0528F0623707200166675 + PBXProjectModuleLabel + <No Editor> + PBXSplitModuleInNavigatorKey + + Split0 + + PBXProjectModuleGUID + 1CD052900623707200166675 + + SplitCount + 1 + + StatusBarVisibility + 1 + + GeometryConfiguration + + Frame + {{0, 0}, {500, 215}} + RubberWindowFrame + 192 257 500 500 0 0 1280 1002 + + Module + PBXNavigatorGroup + Proportion + 218pt + + + BecomeActive + 1 + ContentConfiguration + + PBXProjectModuleGUID + XCMainBuildResultsModuleGUID + PBXProjectModuleLabel + Build + + GeometryConfiguration + + Frame + {{0, 222}, {500, 236}} + RubberWindowFrame + 192 257 500 500 0 0 1280 1002 + + Module + PBXBuildResultsModule + Proportion + 236pt + + + Proportion + 458pt + + + Name + Build Results + ServiceClasses + + PBXBuildResultsModule + + StatusbarIsVisible + 1 + TableOfContents + + 1C78EAA5065D492600B07095 + 1C78EAA6065D492600B07095 + 1CD0528F0623707200166675 + XCMainBuildResultsModuleGUID + + ToolbarConfiguration + xcode.toolbar.config.buildV3 + WindowString + 192 257 500 500 0 0 1280 1002 + + + Identifier + windowTool.find + Layout + + + Dock + + + Dock + + + ContentConfiguration + + PBXProjectModuleGUID + 1CDD528C0622207200134675 + PBXProjectModuleLabel + <No Editor> + PBXSplitModuleInNavigatorKey + + Split0 + + PBXProjectModuleGUID + 1CD0528D0623707200166675 + + SplitCount + 1 + + StatusBarVisibility + 1 + + GeometryConfiguration + + Frame + {{0, 0}, {781, 167}} + RubberWindowFrame + 62 385 781 470 0 0 1440 878 + + Module + PBXNavigatorGroup + Proportion + 781pt + + + Proportion + 50% + + + BecomeActive + 1 + ContentConfiguration + + PBXProjectModuleGUID + 1CD0528E0623707200166675 + PBXProjectModuleLabel + Project Find + + GeometryConfiguration + + Frame + {{8, 0}, {773, 254}} + RubberWindowFrame + 62 385 781 470 0 0 1440 878 + + Module + PBXProjectFindModule + Proportion + 50% + + + Proportion + 428pt + + + Name + Project Find + ServiceClasses + + PBXProjectFindModule + + StatusbarIsVisible + 1 + TableOfContents + + 1C530D57069F1CE1000CFCEE + 1C530D58069F1CE1000CFCEE + 1C530D59069F1CE1000CFCEE + 1CDD528C0622207200134675 + 1C530D5A069F1CE1000CFCEE + 1CE0B1FE06471DED0097A5F4 + 1CD0528E0623707200166675 + + WindowString + 62 385 781 470 0 0 1440 878 + WindowToolGUID + 1C530D57069F1CE1000CFCEE + WindowToolIsVisible + 0 + + + Identifier + windowTool.snapshots + Layout + + + Dock + + + Module + XCSnapshotModule + Proportion + 100% + + + Proportion + 100% + + + Name + Snapshots + ServiceClasses + + XCSnapshotModule + + StatusbarIsVisible + Yes + ToolbarConfiguration + xcode.toolbar.config.snapshots + WindowString + 315 824 300 550 0 0 1440 878 + WindowToolIsVisible + Yes + + + Identifier + windowTool.debuggerConsole + Layout + + + Dock + + + BecomeActive + 1 + ContentConfiguration + + PBXProjectModuleGUID + 1C78EAAC065D492600B07095 + PBXProjectModuleLabel + Debugger Console + + GeometryConfiguration + + Frame + {{0, 0}, {700, 358}} + RubberWindowFrame + 149 87 700 400 0 0 1440 878 + + Module + PBXDebugCLIModule + Proportion + 358pt + + + Proportion + 358pt + + + Name + Debugger Console + ServiceClasses + + PBXDebugCLIModule + + StatusbarIsVisible + 1 + TableOfContents + + 1C530D5B069F1CE1000CFCEE + 1C530D5C069F1CE1000CFCEE + 1C78EAAC065D492600B07095 + + ToolbarConfiguration + xcode.toolbar.config.consoleV3 + WindowString + 149 87 440 400 0 0 1440 878 + WindowToolGUID + 1C530D5B069F1CE1000CFCEE + WindowToolIsVisible + 0 + + + Identifier + windowTool.scm + Layout + + + Dock + + + ContentConfiguration + + PBXProjectModuleGUID + 1C78EAB2065D492600B07095 + PBXProjectModuleLabel + <No Editor> + PBXSplitModuleInNavigatorKey + + Split0 + + PBXProjectModuleGUID + 1C78EAB3065D492600B07095 + + SplitCount + 1 + + StatusBarVisibility + 1 + + GeometryConfiguration + + Frame + {{0, 0}, {452, 0}} + RubberWindowFrame + 743 379 452 308 0 0 1280 1002 + + Module + PBXNavigatorGroup + Proportion + 0pt + + + BecomeActive + 1 + ContentConfiguration + + PBXProjectModuleGUID + 1CD052920623707200166675 + PBXProjectModuleLabel + SCM + + GeometryConfiguration + + ConsoleFrame + {{0, 259}, {452, 0}} + Frame + {{0, 7}, {452, 259}} + RubberWindowFrame + 743 379 452 308 0 0 1280 1002 + TableConfiguration + + Status + 30 + FileName + 199 + Path + 197.09500122070312 + + TableFrame + {{0, 0}, {452, 250}} + + Module + PBXCVSModule + Proportion + 262pt + + + Proportion + 266pt + + + Name + SCM + ServiceClasses + + PBXCVSModule + + StatusbarIsVisible + 1 + TableOfContents + + 1C78EAB4065D492600B07095 + 1C78EAB5065D492600B07095 + 1C78EAB2065D492600B07095 + 1CD052920623707200166675 + + ToolbarConfiguration + xcode.toolbar.config.scmV3 + WindowString + 743 379 452 308 0 0 1280 1002 + + + Identifier + windowTool.breakpoints + IsVertical + 0 + Layout + + + Dock + + + BecomeActive + 1 + ContentConfiguration + + PBXBottomSmartGroupGIDs + + 1C77FABC04509CD000000102 + + PBXProjectModuleGUID + 1CE0B1FE06471DED0097A5F4 + PBXProjectModuleLabel + Files + PBXProjectStructureProvided + no + PBXSmartGroupTreeModuleColumnData + + PBXSmartGroupTreeModuleColumnWidthsKey + + 168 + + PBXSmartGroupTreeModuleColumnsKey_v4 + + MainColumn + + + PBXSmartGroupTreeModuleOutlineStateKey_v7 + + PBXSmartGroupTreeModuleOutlineStateExpansionKey + + 1C77FABC04509CD000000102 + + PBXSmartGroupTreeModuleOutlineStateSelectionKey + + + 0 + + + PBXSmartGroupTreeModuleOutlineStateVisibleRectKey + {{0, 0}, {168, 350}} + + PBXTopSmartGroupGIDs + + XCIncludePerspectivesSwitch + 0 + + GeometryConfiguration + + Frame + {{0, 0}, {185, 368}} + GroupTreeTableConfiguration + + MainColumn + 168 + + RubberWindowFrame + 315 424 744 409 0 0 1440 878 + + Module + PBXSmartGroupTreeModule + Proportion + 185pt + + + ContentConfiguration + + PBXProjectModuleGUID + 1CA1AED706398EBD00589147 + PBXProjectModuleLabel + Detail + + GeometryConfiguration + + Frame + {{190, 0}, {554, 368}} + RubberWindowFrame + 315 424 744 409 0 0 1440 878 + + Module + XCDetailModule + Proportion + 554pt + + + Proportion + 368pt + + + MajorVersion + 3 + MinorVersion + 0 + Name + Breakpoints + ServiceClasses + + PBXSmartGroupTreeModule + XCDetailModule + + StatusbarIsVisible + 1 + TableOfContents + + 1CDDB66807F98D9800BB5817 + 1CDDB66907F98D9800BB5817 + 1CE0B1FE06471DED0097A5F4 + 1CA1AED706398EBD00589147 + + ToolbarConfiguration + xcode.toolbar.config.breakpointsV3 + WindowString + 315 424 744 409 0 0 1440 878 + WindowToolGUID + 1CDDB66807F98D9800BB5817 + WindowToolIsVisible + 1 + + + Identifier + windowTool.debugAnimator + Layout + + + Dock + + + Module + PBXNavigatorGroup + Proportion + 100% + + + Proportion + 100% + + + Name + Debug Visualizer + ServiceClasses + + PBXNavigatorGroup + + StatusbarIsVisible + 1 + ToolbarConfiguration + xcode.toolbar.config.debugAnimatorV3 + WindowString + 100 100 700 500 0 0 1280 1002 + + + Identifier + windowTool.bookmarks + Layout + + + Dock + + + Module + PBXBookmarksModule + Proportion + 166pt + + + Proportion + 166pt + + + Name + Bookmarks + ServiceClasses + + PBXBookmarksModule + + StatusbarIsVisible + 0 + WindowString + 538 42 401 187 0 0 1280 1002 + + + Identifier + windowTool.projectFormatConflicts + Layout + + + Dock + + + Module + XCProjectFormatConflictsModule + Proportion + 100% + + + Proportion + 100% + + + Name + Project Format Conflicts + ServiceClasses + + XCProjectFormatConflictsModule + + StatusbarIsVisible + 0 + WindowContentMinSize + 450 300 + WindowString + 50 850 472 307 0 0 1440 877 + + + Identifier + windowTool.classBrowser + Layout + + + Dock + + + BecomeActive + 1 + ContentConfiguration + + OptionsSetName + Hierarchy, all classes + PBXProjectModuleGUID + 1CA6456E063B45B4001379D8 + PBXProjectModuleLabel + Class Browser - NSObject + + GeometryConfiguration + + ClassesFrame + {{0, 0}, {369, 96}} + ClassesTreeTableConfiguration + + PBXClassNameColumnIdentifier + 208 + PBXClassBookColumnIdentifier + 22 + + Frame + {{0, 0}, {616, 353}} + MembersFrame + {{0, 105}, {369, 395}} + MembersTreeTableConfiguration + + PBXMemberTypeIconColumnIdentifier + 22 + PBXMemberNameColumnIdentifier + 216 + PBXMemberTypeColumnIdentifier + 94 + PBXMemberBookColumnIdentifier + 22 + + PBXModuleWindowStatusBarHidden2 + 1 + RubberWindowFrame + 597 125 616 374 0 0 1280 1002 + + Module + PBXClassBrowserModule + Proportion + 354pt + + + Proportion + 354pt + + + Name + Class Browser + ServiceClasses + + PBXClassBrowserModule + + StatusbarIsVisible + 0 + TableOfContents + + 1C78EABA065D492600B07095 + 1C78EABB065D492600B07095 + 1CA6456E063B45B4001379D8 + + ToolbarConfiguration + xcode.toolbar.config.classbrowser + WindowString + 597 125 616 374 0 0 1280 1002 + + + Identifier + windowTool.refactoring + IncludeInToolsMenu + 0 + Layout + + + Dock + + + BecomeActive + 1 + GeometryConfiguration + + Frame + {0, 0}, {500, 335} + RubberWindowFrame + {0, 0}, {500, 335} + + Module + XCRefactoringModule + Proportion + 100% + + + Proportion + 100% + + + Name + Refactoring + ServiceClasses + + XCRefactoringModule + + WindowString + 200 200 500 356 0 0 1920 1200 + + + + diff --git a/Recast/Build/Xcode/Recast.xcodeproj/project.pbxproj b/Recast/Build/Xcode/Recast.xcodeproj/project.pbxproj new file mode 100644 index 0000000..118f09b --- /dev/null +++ b/Recast/Build/Xcode/Recast.xcodeproj/project.pbxproj @@ -0,0 +1,364 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 45; + objects = { + +/* Begin PBXBuildFile section */ + 1DDD58160DA1D0A300B32029 /* MainMenu.xib in Resources */ = {isa = PBXBuildFile; fileRef = 1DDD58140DA1D0A300B32029 /* MainMenu.xib */; }; + 6B8632BB0F78119A00E2684A /* SDLMain.m in Sources */ = {isa = PBXBuildFile; fileRef = 6B8632BA0F78119A00E2684A /* SDLMain.m */; }; + 6B8632BD0F7811CB00E2684A /* demo.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 6B8632BC0F7811CB00E2684A /* demo.cpp */; }; + 6B8632DA0F78122C00E2684A /* SDL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6B8632D90F78122C00E2684A /* SDL.framework */; }; + 6B8632DC0F78123E00E2684A /* OpenGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6B8632DB0F78123E00E2684A /* OpenGL.framework */; }; + 6B86335A0F7816C900E2684A /* glfont.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 6B8633540F7816C900E2684A /* glfont.cpp */; }; + 6B86335B0F7816C900E2684A /* imgui.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 6B8633560F7816C900E2684A /* imgui.cpp */; }; + 6B86335C0F7816C900E2684A /* MeshLoaderObj.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 6B8633580F7816C900E2684A /* MeshLoaderObj.cpp */; }; + 6B86336A0F7816FA00E2684A /* Recast.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 6B86335E0F7816FA00E2684A /* Recast.cpp */; }; + 6B86336B0F7816FA00E2684A /* RecastContour.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 6B86335F0F7816FA00E2684A /* RecastContour.cpp */; }; + 6B86336C0F7816FA00E2684A /* RecastDebugDraw.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 6B8633600F7816FA00E2684A /* RecastDebugDraw.cpp */; }; + 6B86336D0F7816FA00E2684A /* RecastFilter.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 6B8633620F7816FA00E2684A /* RecastFilter.cpp */; }; + 6B86336E0F7816FA00E2684A /* RecastLog.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 6B8633630F7816FA00E2684A /* RecastLog.cpp */; }; + 6B86336F0F7816FA00E2684A /* RecastMesh.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 6B8633650F7816FA00E2684A /* RecastMesh.cpp */; }; + 6B8633700F7816FA00E2684A /* RecastRasterization.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 6B8633660F7816FA00E2684A /* RecastRasterization.cpp */; }; + 6B8633710F7816FA00E2684A /* RecastRegion.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 6B8633670F7816FA00E2684A /* RecastRegion.cpp */; }; + 6B8633720F7816FA00E2684A /* RecastTimer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 6B8633680F7816FA00E2684A /* RecastTimer.cpp */; }; + 8D11072B0486CEB800E47090 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 089C165CFE840E0CC02AAC07 /* InfoPlist.strings */; }; + 8D11072F0486CEB800E47090 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; +/* End PBXBuildFile section */ + +/* Begin PBXFileReference section */ + 089C165DFE840E0CC02AAC07 /* English */ = {isa = PBXFileReference; fileEncoding = 10; lastKnownFileType = text.plist.strings; name = English; path = English.lproj/InfoPlist.strings; sourceTree = ""; }; + 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Cocoa.framework; path = /System/Library/Frameworks/Cocoa.framework; sourceTree = ""; }; + 13E42FB307B3F0F600E4EEF1 /* CoreData.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreData.framework; path = /System/Library/Frameworks/CoreData.framework; sourceTree = ""; }; + 1DDD58150DA1D0A300B32029 /* English */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = English; path = English.lproj/MainMenu.xib; sourceTree = ""; }; + 29B97324FDCFA39411CA2CEA /* AppKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AppKit.framework; path = /System/Library/Frameworks/AppKit.framework; sourceTree = ""; }; + 29B97325FDCFA39411CA2CEA /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = /System/Library/Frameworks/Foundation.framework; sourceTree = ""; }; + 32CA4F630368D1EE00C91783 /* Recast_Prefix.pch */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Recast_Prefix.pch; sourceTree = ""; }; + 6B68D7620F78196F007E6D78 /* RecastDebugDraw.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = RecastDebugDraw.h; path = ../../Include/RecastDebugDraw.h; sourceTree = SOURCE_ROOT; }; + 6B68D7630F78196F007E6D78 /* RecastTimer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = RecastTimer.h; path = ../../Include/RecastTimer.h; sourceTree = SOURCE_ROOT; }; + 6B8632B90F78119A00E2684A /* SDLMain.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = SDLMain.h; path = ../../Examples/SDLMain.h; sourceTree = SOURCE_ROOT; }; + 6B8632BA0F78119A00E2684A /* SDLMain.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = SDLMain.m; path = ../../Examples/SDLMain.m; sourceTree = SOURCE_ROOT; }; + 6B8632BC0F7811CB00E2684A /* demo.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = demo.cpp; path = ../../Examples/demo.cpp; sourceTree = SOURCE_ROOT; }; + 6B8632D90F78122C00E2684A /* SDL.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = SDL.framework; path = Library/Frameworks/SDL.framework; sourceTree = SDKROOT; }; + 6B8632DB0F78123E00E2684A /* OpenGL.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = OpenGL.framework; path = System/Library/Frameworks/OpenGL.framework; sourceTree = SDKROOT; }; + 6B8633540F7816C900E2684A /* glfont.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = glfont.cpp; path = ../../Examples/glfont.cpp; sourceTree = SOURCE_ROOT; }; + 6B8633550F7816C900E2684A /* glfont.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = glfont.h; path = ../../Examples/glfont.h; sourceTree = SOURCE_ROOT; }; + 6B8633560F7816C900E2684A /* imgui.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = imgui.cpp; path = ../../Examples/imgui.cpp; sourceTree = SOURCE_ROOT; }; + 6B8633570F7816C900E2684A /* imgui.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = imgui.h; path = ../../Examples/imgui.h; sourceTree = SOURCE_ROOT; }; + 6B8633580F7816C900E2684A /* MeshLoaderObj.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = MeshLoaderObj.cpp; path = ../../Examples/MeshLoaderObj.cpp; sourceTree = SOURCE_ROOT; }; + 6B8633590F7816C900E2684A /* MeshLoaderObj.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = MeshLoaderObj.h; path = ../../Examples/MeshLoaderObj.h; sourceTree = SOURCE_ROOT; }; + 6B86335D0F7816ED00E2684A /* Recast.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = Recast.h; path = ../../Include/Recast.h; sourceTree = SOURCE_ROOT; }; + 6B86335E0F7816FA00E2684A /* Recast.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = Recast.cpp; path = ../../Source/Recast.cpp; sourceTree = SOURCE_ROOT; }; + 6B86335F0F7816FA00E2684A /* RecastContour.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = RecastContour.cpp; path = ../../Source/RecastContour.cpp; sourceTree = SOURCE_ROOT; }; + 6B8633600F7816FA00E2684A /* RecastDebugDraw.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = RecastDebugDraw.cpp; path = ../../Source/RecastDebugDraw.cpp; sourceTree = SOURCE_ROOT; }; + 6B8633620F7816FA00E2684A /* RecastFilter.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = RecastFilter.cpp; path = ../../Source/RecastFilter.cpp; sourceTree = SOURCE_ROOT; }; + 6B8633630F7816FA00E2684A /* RecastLog.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = RecastLog.cpp; path = ../../Source/RecastLog.cpp; sourceTree = SOURCE_ROOT; }; + 6B8633640F7816FA00E2684A /* RecastLog.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = RecastLog.h; path = ../../Source/RecastLog.h; sourceTree = SOURCE_ROOT; }; + 6B8633650F7816FA00E2684A /* RecastMesh.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = RecastMesh.cpp; path = ../../Source/RecastMesh.cpp; sourceTree = SOURCE_ROOT; }; + 6B8633660F7816FA00E2684A /* RecastRasterization.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = RecastRasterization.cpp; path = ../../Source/RecastRasterization.cpp; sourceTree = SOURCE_ROOT; }; + 6B8633670F7816FA00E2684A /* RecastRegion.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = RecastRegion.cpp; path = ../../Source/RecastRegion.cpp; sourceTree = SOURCE_ROOT; }; + 6B8633680F7816FA00E2684A /* RecastTimer.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = RecastTimer.cpp; path = ../../Source/RecastTimer.cpp; sourceTree = SOURCE_ROOT; }; + 8D1107310486CEB800E47090 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + 8D1107320486CEB800E47090 /* Recast.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Recast.app; sourceTree = BUILT_PRODUCTS_DIR; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 8D11072E0486CEB800E47090 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 8D11072F0486CEB800E47090 /* Cocoa.framework in Frameworks */, + 6B8632DA0F78122C00E2684A /* SDL.framework in Frameworks */, + 6B8632DC0F78123E00E2684A /* OpenGL.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 080E96DDFE201D6D7F000001 /* Classes */ = { + isa = PBXGroup; + children = ( + 6B8633730F7816FE00E2684A /* Recast */, + 6B8633540F7816C900E2684A /* glfont.cpp */, + 6B8633550F7816C900E2684A /* glfont.h */, + 6B8633560F7816C900E2684A /* imgui.cpp */, + 6B8633570F7816C900E2684A /* imgui.h */, + 6B8633580F7816C900E2684A /* MeshLoaderObj.cpp */, + 6B8633590F7816C900E2684A /* MeshLoaderObj.h */, + 6B8632B90F78119A00E2684A /* SDLMain.h */, + 6B8632BA0F78119A00E2684A /* SDLMain.m */, + 6B8632BC0F7811CB00E2684A /* demo.cpp */, + ); + name = Classes; + sourceTree = ""; + }; + 1058C7A0FEA54F0111CA2CBB /* Linked Frameworks */ = { + isa = PBXGroup; + children = ( + 6B8632D90F78122C00E2684A /* SDL.framework */, + 6B8632DB0F78123E00E2684A /* OpenGL.framework */, + 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */, + ); + name = "Linked Frameworks"; + sourceTree = ""; + }; + 1058C7A2FEA54F0111CA2CBB /* Other Frameworks */ = { + isa = PBXGroup; + children = ( + 29B97324FDCFA39411CA2CEA /* AppKit.framework */, + 13E42FB307B3F0F600E4EEF1 /* CoreData.framework */, + 29B97325FDCFA39411CA2CEA /* Foundation.framework */, + ); + name = "Other Frameworks"; + sourceTree = ""; + }; + 19C28FACFE9D520D11CA2CBB /* Products */ = { + isa = PBXGroup; + children = ( + 8D1107320486CEB800E47090 /* Recast.app */, + ); + name = Products; + sourceTree = ""; + }; + 29B97314FDCFA39411CA2CEA /* Recast */ = { + isa = PBXGroup; + children = ( + 080E96DDFE201D6D7F000001 /* Classes */, + 29B97315FDCFA39411CA2CEA /* Other Sources */, + 29B97317FDCFA39411CA2CEA /* Resources */, + 29B97323FDCFA39411CA2CEA /* Frameworks */, + 19C28FACFE9D520D11CA2CBB /* Products */, + ); + name = Recast; + sourceTree = ""; + }; + 29B97315FDCFA39411CA2CEA /* Other Sources */ = { + isa = PBXGroup; + children = ( + 32CA4F630368D1EE00C91783 /* Recast_Prefix.pch */, + ); + name = "Other Sources"; + sourceTree = ""; + }; + 29B97317FDCFA39411CA2CEA /* Resources */ = { + isa = PBXGroup; + children = ( + 8D1107310486CEB800E47090 /* Info.plist */, + 089C165CFE840E0CC02AAC07 /* InfoPlist.strings */, + 1DDD58140DA1D0A300B32029 /* MainMenu.xib */, + ); + name = Resources; + sourceTree = ""; + }; + 29B97323FDCFA39411CA2CEA /* Frameworks */ = { + isa = PBXGroup; + children = ( + 1058C7A0FEA54F0111CA2CBB /* Linked Frameworks */, + 1058C7A2FEA54F0111CA2CBB /* Other Frameworks */, + ); + name = Frameworks; + sourceTree = ""; + }; + 6B8633730F7816FE00E2684A /* Recast */ = { + isa = PBXGroup; + children = ( + 6B68D7620F78196F007E6D78 /* RecastDebugDraw.h */, + 6B68D7630F78196F007E6D78 /* RecastTimer.h */, + 6B86335E0F7816FA00E2684A /* Recast.cpp */, + 6B86335F0F7816FA00E2684A /* RecastContour.cpp */, + 6B8633600F7816FA00E2684A /* RecastDebugDraw.cpp */, + 6B8633620F7816FA00E2684A /* RecastFilter.cpp */, + 6B8633630F7816FA00E2684A /* RecastLog.cpp */, + 6B8633640F7816FA00E2684A /* RecastLog.h */, + 6B8633650F7816FA00E2684A /* RecastMesh.cpp */, + 6B8633660F7816FA00E2684A /* RecastRasterization.cpp */, + 6B8633670F7816FA00E2684A /* RecastRegion.cpp */, + 6B8633680F7816FA00E2684A /* RecastTimer.cpp */, + 6B86335D0F7816ED00E2684A /* Recast.h */, + ); + name = Recast; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + 8D1107260486CEB800E47090 /* Recast */ = { + isa = PBXNativeTarget; + buildConfigurationList = C01FCF4A08A954540054247B /* Build configuration list for PBXNativeTarget "Recast" */; + buildPhases = ( + 8D1107290486CEB800E47090 /* Resources */, + 8D11072C0486CEB800E47090 /* Sources */, + 8D11072E0486CEB800E47090 /* Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = Recast; + productInstallPath = "$(HOME)/Applications"; + productName = Recast; + productReference = 8D1107320486CEB800E47090 /* Recast.app */; + productType = "com.apple.product-type.application"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 29B97313FDCFA39411CA2CEA /* Project object */ = { + isa = PBXProject; + buildConfigurationList = C01FCF4E08A954540054247B /* Build configuration list for PBXProject "Recast" */; + compatibilityVersion = "Xcode 3.1"; + hasScannedForEncodings = 1; + mainGroup = 29B97314FDCFA39411CA2CEA /* Recast */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + 8D1107260486CEB800E47090 /* Recast */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + 8D1107290486CEB800E47090 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 8D11072B0486CEB800E47090 /* InfoPlist.strings in Resources */, + 1DDD58160DA1D0A300B32029 /* MainMenu.xib in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 8D11072C0486CEB800E47090 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 6B8632BB0F78119A00E2684A /* SDLMain.m in Sources */, + 6B8632BD0F7811CB00E2684A /* demo.cpp in Sources */, + 6B86335A0F7816C900E2684A /* glfont.cpp in Sources */, + 6B86335B0F7816C900E2684A /* imgui.cpp in Sources */, + 6B86335C0F7816C900E2684A /* MeshLoaderObj.cpp in Sources */, + 6B86336A0F7816FA00E2684A /* Recast.cpp in Sources */, + 6B86336B0F7816FA00E2684A /* RecastContour.cpp in Sources */, + 6B86336C0F7816FA00E2684A /* RecastDebugDraw.cpp in Sources */, + 6B86336D0F7816FA00E2684A /* RecastFilter.cpp in Sources */, + 6B86336E0F7816FA00E2684A /* RecastLog.cpp in Sources */, + 6B86336F0F7816FA00E2684A /* RecastMesh.cpp in Sources */, + 6B8633700F7816FA00E2684A /* RecastRasterization.cpp in Sources */, + 6B8633710F7816FA00E2684A /* RecastRegion.cpp in Sources */, + 6B8633720F7816FA00E2684A /* RecastTimer.cpp in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXVariantGroup section */ + 089C165CFE840E0CC02AAC07 /* InfoPlist.strings */ = { + isa = PBXVariantGroup; + children = ( + 089C165DFE840E0CC02AAC07 /* English */, + ); + name = InfoPlist.strings; + sourceTree = ""; + }; + 1DDD58140DA1D0A300B32029 /* MainMenu.xib */ = { + isa = PBXVariantGroup; + children = ( + 1DDD58150DA1D0A300B32029 /* English */, + ); + name = MainMenu.xib; + sourceTree = ""; + }; +/* End PBXVariantGroup section */ + +/* Begin XCBuildConfiguration section */ + C01FCF4B08A954540054247B /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CONFIGURATION_BUILD_DIR = ../../Examples; + COPY_PHASE_STRIP = NO; + GCC_DYNAMIC_NO_PIC = NO; + GCC_ENABLE_FIX_AND_CONTINUE = YES; + GCC_MODEL_TUNING = G5; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PRECOMPILE_PREFIX_HEADER = YES; + GCC_PREFIX_HEADER = Recast_Prefix.pch; + HEADER_SEARCH_PATHS = "/Library/Frameworks/SDL.framework/Headers/**"; + INFOPLIST_FILE = Info.plist; + INSTALL_PATH = "$(HOME)/Applications"; + PRODUCT_NAME = Recast; + }; + name = Debug; + }; + C01FCF4C08A954540054247B /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CONFIGURATION_BUILD_DIR = ../../Examples; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + GCC_MODEL_TUNING = G5; + GCC_PRECOMPILE_PREFIX_HEADER = YES; + GCC_PREFIX_HEADER = Recast_Prefix.pch; + HEADER_SEARCH_PATHS = "/Library/Frameworks/SDL.framework/Headers/**"; + INFOPLIST_FILE = Info.plist; + INSTALL_PATH = "$(HOME)/Applications"; + PRODUCT_NAME = Recast; + }; + name = Release; + }; + C01FCF4F08A954540054247B /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(ARCHS_STANDARD_32_BIT)"; + GCC_C_LANGUAGE_STANDARD = c99; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + ONLY_ACTIVE_ARCH = YES; + PREBINDING = NO; + SDKROOT = macosx10.5; + }; + name = Debug; + }; + C01FCF5008A954540054247B /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(ARCHS_STANDARD_32_BIT)"; + GCC_C_LANGUAGE_STANDARD = c99; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + PREBINDING = NO; + SDKROOT = macosx10.5; + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + C01FCF4A08A954540054247B /* Build configuration list for PBXNativeTarget "Recast" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + C01FCF4B08A954540054247B /* Debug */, + C01FCF4C08A954540054247B /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + C01FCF4E08A954540054247B /* Build configuration list for PBXProject "Recast" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + C01FCF4F08A954540054247B /* Debug */, + C01FCF5008A954540054247B /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; +/* End XCConfigurationList section */ + }; + rootObject = 29B97313FDCFA39411CA2CEA /* Project object */; +} diff --git a/Recast/Build/Xcode/Recast_Prefix.pch b/Recast/Build/Xcode/Recast_Prefix.pch new file mode 100644 index 0000000..3b101c2 --- /dev/null +++ b/Recast/Build/Xcode/Recast_Prefix.pch @@ -0,0 +1,7 @@ +// +// Prefix header for all source files of the 'Recast' target in the 'Recast' project +// + +#ifdef __OBJC__ + #import +#endif diff --git a/Recast/Contrib/SDL/readme.txt b/Recast/Contrib/SDL/readme.txt new file mode 100644 index 0000000..051e80f --- /dev/null +++ b/Recast/Contrib/SDL/readme.txt @@ -0,0 +1 @@ +Download SDL Developer Libraries from http://www.libsdl.org and unzip them here. \ No newline at end of file diff --git a/Recast/Examples/MeshLoaderObj.cpp b/Recast/Examples/MeshLoaderObj.cpp new file mode 100644 index 0000000..b10d037 --- /dev/null +++ b/Recast/Examples/MeshLoaderObj.cpp @@ -0,0 +1,219 @@ +// +// Copyright (c) 2009 Mikko Mononen memon@inside.org +// +// This software is provided 'as-is', without any express or implied +// warranty. In no event will the authors be held liable for any damages +// arising from the use of this software. +// Permission is granted to anyone to use this software for any purpose, +// including commercial applications, and to alter it and redistribute it +// freely, subject to the following restrictions: +// 1. The origin of this software must not be misrepresented; you must not +// claim that you wrote the original software. If you use this software +// in a product, an acknowledgment in the product documentation would be +// appreciated but is not required. +// 2. Altered source versions must be plainly marked as such, and must not be +// misrepresented as being the original software. +// 3. This notice may not be removed or altered from any source distribution. +// + +#include "MeshLoaderObj.h" +#include +#include +#include +#define _USE_MATH_DEFINES +#include + +rcMeshLoaderObj::rcMeshLoaderObj() : + m_verts(0), + m_normals(0), + m_tris(0), + m_vertCount(0), + m_triCount(0) +{ +} + +rcMeshLoaderObj::~rcMeshLoaderObj() +{ + delete [] m_verts; + delete [] m_normals; + delete [] m_tris; +} + +void rcMeshLoaderObj::addVertex(float x, float y, float z, int& cap) +{ + if (m_vertCount+1 > cap) + { + cap = !cap ? 8 : cap*2; + float* nv = new float[cap*3]; + if (m_vertCount) + memcpy(nv, m_verts, m_vertCount*3*sizeof(float)); + delete [] m_verts; + m_verts = nv; + } + float* dst = &m_verts[m_vertCount*3]; + *dst++ = x; + *dst++ = y; + *dst++ = z; + m_vertCount++; +} + +void rcMeshLoaderObj::addTriangle(int a, int b, int c, int& cap) +{ + if (m_triCount+1 > cap) + { + cap = !cap ? 8 : cap*2; + int* nv = new int[cap*3]; + if (m_triCount) + memcpy(nv, m_tris, m_triCount*3*sizeof(int)); + delete [] m_tris; + m_tris = nv; + } + int* dst = &m_tris[m_triCount*3]; + *dst++ = a; + *dst++ = b; + *dst++ = c; + m_triCount++; +} + +static char* parseRow(char* buf, char* bufEnd, char* row, int len) +{ + bool cont = false; + bool start = true; + bool done = false; + int n = 0; + while (!done && buf < bufEnd) + { + char c = *buf; + buf++; + // multirow + switch (c) + { + case '\\': + cont = true; // multirow + break; + case '\n': + if (start) break; + done = true; + break; + case '\r': + break; + case '\t': + case ' ': + if (start) break; + default: + start = false; + cont = false; + row[n++] = c; + if (n >= len-1) + done = true; + break; + } + } + row[n] = '\0'; + return buf; +} + +static int parseFace(char* row, int* data, int n, int vcnt) +{ + int j = 0; + while (*row != '\0') + { + // Skip initial white space + while (*row != '\0' && (*row == ' ' || *row == '\t')) + row++; + char* s = row; + // Find vertex delimiter and terminated the string there for conversion. + while (*row != '\0' && *row != ' ' && *row != '\t') + { + if (*row == '/') *row = '\0'; + row++; + } + if (*s == '\0') + continue; + int vi = atoi(s); + data[j++] = vi < 0 ? vi+vcnt : vi-1; + if (j >= n) return j; + } + return j; +} + +bool rcMeshLoaderObj::load(const char* filename) +{ + char* buf = 0; + FILE* fp = fopen(filename, "rb"); + if (!fp) + return false; + fseek(fp, 0, SEEK_END); + int bufSize = ftell(fp); + fseek(fp, 0, SEEK_SET); + buf = new char[bufSize]; + if (!buf) + { + fclose(fp); + return false; + } + fread(buf, bufSize, 1, fp); + fclose(fp); + + char* src = buf; + char* srcEnd = buf + bufSize; + char row[512]; + int face[32]; + float x,y,z; + int nv; + int vcap = 0; + int tcap = 0; + + while (src < srcEnd) + { + // Parse one row + row[0] = '\0'; + src = parseRow(src, srcEnd, row, sizeof(row)/sizeof(char)); + // Skip comments + if (row[0] == '#') continue; + if (row[0] == 'v' && row[1] != 'n' && row[1] != 't') + { + // Vertex pos + sscanf(row+1, "%f %f %f", &x, &y, &z); + addVertex(x, y, z, vcap); + } + if (row[0] == 'f') + { + // Faces + nv = parseFace(row+1, face, 32, m_vertCount); + for (int i = 2; i < nv; ++i) + addTriangle(face[0], face[i-1], face[i], tcap); + } + } + + delete [] buf; + + // Calculate normals. + m_normals = new float[m_triCount*3]; + for (int i = 0; i < m_triCount*3; i += 3) + { + const float* v0 = &m_verts[m_tris[i]*3]; + const float* v1 = &m_verts[m_tris[i+1]*3]; + const float* v2 = &m_verts[m_tris[i+2]*3]; + float e0[3], e1[3]; + for (int j = 0; j < 3; ++j) + { + e0[j] = v1[j] - v0[j]; + e1[j] = v2[j] - v0[j]; + } + float* n = &m_normals[i]; + n[0] = e0[1]*e1[2] - e0[2]*e1[1]; + n[1] = e0[2]*e1[0] - e0[0]*e1[2]; + n[2] = e0[0]*e1[1] - e0[1]*e1[0]; + float d = sqrtf(n[0]*n[0] + n[1]*n[1] + n[2]*n[2]); + if (d > 0) + { + d = 1.0f/d; + n[0] *= d; + n[1] *= d; + n[2] *= d; + } + } + + return true; +} diff --git a/Recast/Examples/MeshLoaderObj.h b/Recast/Examples/MeshLoaderObj.h new file mode 100644 index 0000000..4f1f7c0 --- /dev/null +++ b/Recast/Examples/MeshLoaderObj.h @@ -0,0 +1,48 @@ +// +// Copyright (c) 2009 Mikko Mononen memon@inside.org +// +// This software is provided 'as-is', without any express or implied +// warranty. In no event will the authors be held liable for any damages +// arising from the use of this software. +// Permission is granted to anyone to use this software for any purpose, +// including commercial applications, and to alter it and redistribute it +// freely, subject to the following restrictions: +// 1. The origin of this software must not be misrepresented; you must not +// claim that you wrote the original software. If you use this software +// in a product, an acknowledgment in the product documentation would be +// appreciated but is not required. +// 2. Altered source versions must be plainly marked as such, and must not be +// misrepresented as being the original software. +// 3. This notice may not be removed or altered from any source distribution. +// + +#ifndef MESHLOADER_OBJ +#define MESHLOADER_OBJ + +class rcMeshLoaderObj +{ +public: + rcMeshLoaderObj(); + ~rcMeshLoaderObj(); + + bool load(const char* fileName); + + inline const float* getVerts() const { return m_verts; } + inline const float* getNormals() const { return m_normals; } + inline const int* getTris() const { return m_tris; } + inline int getVertCount() const { return m_vertCount; } + inline int getTriCount() const { return m_triCount; } + +private: + + void addVertex(float x, float y, float z, int& cap); + void addTriangle(int a, int b, int c, int& cap); + + float* m_verts; + int* m_tris; + float* m_normals; + int m_vertCount; + int m_triCount; +}; + +#endif // MESHLOADER_OBJ diff --git a/Recast/Examples/Meshes/dungeon.obj b/Recast/Examples/Meshes/dungeon.obj new file mode 100644 index 0000000..8d17dce --- /dev/null +++ b/Recast/Examples/Meshes/dungeon.obj @@ -0,0 +1,15234 @@ +v 32.471557617 31.175949097 3.788104773 +v 31.950048447 31.175949097 2.338263273 +v 31.688222885 31.175949097 0.819886208 +v 34.222843170 31.175949097 6.309397697 +v 33.236907959 31.175949097 5.125359535 +v 45.539302826 31.175949097 7.342514992 +v 39.693061829 31.175949097 8.885383606 +v 36.730842590 31.175949097 8.079663277 +v 35.399402618 31.175949097 7.304241180 +v 38.176704407 31.175949097 8.612103462 +v 48.521808624 31.175949097 -3.622624636 +v 49.026046753 31.175949097 2.402715683 +v 47.718185425 31.175949097 5.180017471 +v 46.723342896 31.175949097 6.356580257 +v 48.493606567 31.175949097 3.848578453 +v 49.305145264 31.175949097 -0.654410124 +v 49.299327850 31.175949097 0.886361718 +v 42.752204895 31.175949097 8.629374504 +v 41.233833313 31.175949097 8.891200066 +v 44.202045441 31.175949097 8.107864380 +v 49.043319702 31.175949097 -2.172783852 +v 38.241161346 31.175949097 -8.463897705 +v 44.262527466 31.175949097 -7.914186001 +v 46.770526886 31.175949097 -6.143918514 +v 47.756462097 31.175949097 -4.959880829 +v 45.593963623 31.175949097 -7.138762951 +v 41.300308228 31.175949097 -8.719906807 +v 42.816661835 31.175949097 -8.446626663 +v 31.694038391 31.175949097 -0.720889091 +v 31.967319489 31.175949097 -2.237243176 +v 33.275184631 31.175949097 -5.014545441 +v 32.499759674 31.175949097 -3.683105707 +v 35.454067230 31.175949097 -7.177039623 +v 36.791320801 31.175949097 -7.942388058 +v 34.270027161 31.175949097 -6.191106319 +v 39.759536743 31.175949097 -8.725723267 +v 31.788227081 9.998181343 3.466857910 +v 31.788227081 13.729361534 3.467402458 +v 32.028339386 13.729361534 3.467821598 +v 32.028339386 9.998181343 3.467277050 +v 32.028583527 13.729488373 3.327821970 +v 32.028583527 9.998181343 3.327277660 +v 31.788471222 9.998181343 3.326858521 +v 31.788471222 13.729488373 3.327402830 +v 31.788461685 16.147314072 3.332412243 +v 32.028575897 16.147314072 3.332831383 +v 32.028331757 16.147188187 3.472831011 +v 31.788217545 16.147188187 3.472411871 +v 31.736412048 16.147670746 2.534013748 +v 31.496299744 16.147670746 2.533594608 +v 31.496307373 14.267010689 2.528585196 +v 31.345476151 14.589399338 1.754027605 +v 31.345466614 16.147884369 1.759037018 +v 31.585578918 16.147884369 1.759456158 +v 31.585588455 14.589399338 1.754446745 +v 31.736419678 14.267010689 2.529004335 +v 31.213439941 14.785192490 0.919718027 +v 31.213432312 16.148014069 0.924727559 +v 31.453556061 14.785192490 0.920137167 +v 31.453544617 16.148014069 0.925146699 +v 31.166309357 16.148063660 0.074689411 +v 31.406433105 14.858482361 0.070098996 +v 31.406423569 16.148063660 0.075108476 +v 31.166316986 14.858482361 0.069679931 +v 31.800228119 9.998181343 -3.409051180 +v 31.800226212 13.749429703 -3.408686399 +v 31.799911499 13.749273300 -3.228687048 +v 31.799911499 9.998181343 -3.229051828 +v 32.040023804 9.998181343 -3.228632689 +v 32.040023804 13.749273300 -3.228267908 +v 32.040340424 13.749429703 -3.408267260 +v 32.040340424 9.998181343 -3.408632040 +v 31.216400146 14.795266151 -0.776435494 +v 31.216392517 16.148019791 -0.771425962 +v 31.456514359 14.795266151 -0.776016355 +v 31.456504822 16.148019791 -0.771006942 +v 31.591457367 14.590011597 -1.608003974 +v 31.591447830 16.147884369 -1.602994561 +v 31.351343155 14.590011597 -1.608423114 +v 31.351333618 16.147884369 -1.603413701 +v 32.040016174 16.147327423 -3.223258734 +v 31.799903870 16.147327423 -3.223677874 +v 31.800216675 16.147483826 -3.403676987 +v 32.040328979 16.147483826 -3.403257847 +v 31.745027542 16.147678375 -2.403040648 +v 31.504913330 16.147678375 -2.403459787 +v 31.745037079 14.277850151 -2.408050060 +v 31.504922867 14.277850151 -2.408469200 +v 46.721595764 24.693101883 6.354872704 +v 45.537879944 24.693101883 7.340530396 +v 47.716171265 24.693101883 5.178639412 +v 48.491386414 24.693101883 3.847570896 +v 46.722469330 23.774042130 6.355726242 +v 45.538589478 23.774042130 7.341522694 +v 47.717178345 23.774042130 5.179327965 +v 48.492496490 23.774042130 3.848074436 +v 42.751548767 24.693101883 8.627023697 +v 41.233592987 24.693101883 8.888769150 +v 44.200992584 24.693101883 8.105663300 +v 39.693244934 24.693101883 8.882948875 +v 44.201519012 23.774042130 8.106764793 +v 41.233711243 23.774042130 8.889985085 +v 39.693153381 23.774042130 8.884165764 +v 42.751876831 23.774042130 8.628198624 +v 49.023681641 24.693101883 2.402109146 +v 49.296894073 24.693101883 0.886175275 +v 49.302715302 24.693101883 -0.654170871 +v 49.024864197 23.774042130 2.402412415 +v 49.298110962 23.774042130 0.886268497 +v 49.303928375 23.774042130 -0.654290438 +v 49.040969849 24.693101883 -2.172126293 +v 48.519607544 24.693101883 -3.621569395 +v 49.042144775 23.774042130 -2.172455311 +v 48.520709991 23.774042130 -3.622097015 +v 47.754474640 24.693101883 -4.958458900 +v 46.768821716 24.693101883 -6.142173767 +v 45.592586517 24.693101883 -7.136748314 +v 44.261516571 24.693101883 -7.911962032 +v 42.816055298 24.693101883 -8.444260597 +v 45.593276978 23.774042130 -7.137755394 +v 46.769672394 23.774042130 -6.143045902 +v 47.755466461 23.774042130 -4.959169388 +v 42.816360474 23.774042130 -8.445443153 +v 44.262020111 23.774042130 -7.913074017 +v 41.300121307 24.693101883 -8.717472076 +v 39.759777069 24.693101883 -8.723292351 +v 38.241821289 24.693101883 -8.461545944 +v 39.759654999 23.774042130 -8.724507332 +v 41.300216675 23.774042130 -8.718688965 +v 38.241493225 23.774042130 -8.462721825 +v 49.023681641 17.277132034 2.402109146 +v 48.491386414 17.277132034 3.847570896 +v 49.296894073 17.277132034 0.886175275 +v 49.302715302 17.277132034 -0.654170871 +v 46.721595764 17.277132034 6.354872704 +v 45.537879944 17.277132034 7.340530396 +v 47.716171265 17.277132034 5.178639412 +v 42.751548767 17.277132034 8.627023697 +v 41.233592987 17.277132034 8.888769150 +v 44.200992584 17.277132034 8.105663300 +v 39.693244934 17.277132034 8.882948875 +v 46.721595764 16.372127533 6.354872704 +v 45.537879944 16.372127533 7.340530396 +v 47.716171265 16.372127533 5.178639412 +v 48.491386414 16.372127533 3.847570896 +v 46.721595764 10.354028702 6.354872704 +v 45.537879944 10.354028702 7.340530396 +v 47.716171265 10.354028702 5.178639412 +v 48.491386414 10.354028702 3.847570896 +v 42.751548767 16.372127533 8.627023697 +v 44.200992584 16.372127533 8.105663300 +v 44.200992584 10.354028702 8.105663300 +v 42.751548767 10.354028702 8.627023697 +v 45.442817688 10.109920502 7.175106049 +v 46.599250793 10.109920502 6.208469391 +v 46.599605560 9.998180389 6.208224297 +v 45.443206787 9.998180389 7.174926758 +v 45.872833252 9.998180389 5.478765011 +v 47.570262909 10.109920502 5.055705547 +v 47.570568085 9.998180389 5.055403233 +v 44.854145050 9.998181343 6.330346107 +v 46.728168488 9.998180389 4.463228226 +v 44.136096954 10.109920502 7.926244736 +v 42.718795776 10.109920502 8.439061165 +v 42.454551697 9.998181343 7.443909645 +v 43.703060150 9.998181343 6.992096901 +v 44.136512756 9.998181343 7.926135540 +v 42.719226837 9.998181343 8.439026833 +v 49.023681641 16.372127533 2.402109146 +v 49.296894073 16.372127533 0.886175275 +v 49.302715302 16.372127533 -0.654170871 +v 49.023681641 10.354028702 2.402109146 +v 49.296894073 10.354028702 0.886175275 +v 49.302715302 10.354028702 -0.654170871 +v 48.326347351 10.109920502 3.751841307 +v 48.326595306 9.998180389 3.751490116 +v 47.394161224 9.998180389 3.314592838 +v 48.086002350 9.998180389 -0.567131877 +v 48.844528198 10.109920502 2.336492777 +v 47.850578308 9.998180389 2.067759991 +v 48.844711304 9.998180389 2.336104155 +v 49.109176636 9.998180389 0.852250695 +v 49.109066010 10.109920502 0.852665544 +v 48.083549500 9.998180389 0.760612607 +v 49.111961365 9.998180389 -0.654983759 +v 49.111923218 10.109920502 -0.654555559 +v 41.233592987 16.372127533 8.888769150 +v 39.693244934 16.372127533 8.882948875 +v 41.233592987 10.354028702 8.888769150 +v 39.693244934 10.354028702 8.882948875 +v 38.242927551 10.109920502 8.430583000 +v 39.726757050 10.109920502 8.695119858 +v 39.727172852 9.998181343 8.695234299 +v 38.243316650 9.998181343 8.430766106 +v 39.818809509 9.998181343 7.669605255 +v 37.264827728 9.998181343 6.980216503 +v 41.146553040 9.998181343 7.672055721 +v 41.234405518 9.998181343 8.698015213 +v 41.233978271 10.109920502 8.697976112 +v 41.300121307 17.277132034 -8.717472076 +v 42.816055298 17.277132034 -8.444260597 +v 39.759777069 17.277132034 -8.723292351 +v 38.241821289 17.277132034 -8.461545944 +v 49.040969849 17.277132034 -2.172126293 +v 48.519607544 17.277132034 -3.621569395 +v 47.754474640 17.277132034 -4.958458900 +v 46.768821716 17.277132034 -6.142173767 +v 45.592586517 17.277132034 -7.136748314 +v 44.261516571 17.277132034 -7.911962032 +v 49.040969849 16.372127533 -2.172126293 +v 48.519607544 16.372127533 -3.621569395 +v 45.592586517 16.372127533 -7.136748314 +v 46.768821716 16.372127533 -6.142173767 +v 47.754474640 16.372127533 -4.958458900 +v 44.261516571 16.372127533 -7.911962032 +v 42.816055298 16.372127533 -8.444260597 +v 43.728538513 9.998181343 -6.814738750 +v 44.877174377 9.998181343 -6.148745060 +v 45.469352722 9.998180389 -6.991144657 +v 41.174560547 9.998181343 -7.504128933 +v 45.892707825 9.998180389 -5.293409824 +v 49.040969849 10.354028702 -2.172126293 +v 48.519607544 10.354028702 -3.621569395 +v 48.852970123 9.998180389 -2.139802933 +v 47.857856750 9.998180389 -1.875129580 +v 48.853004456 10.109920502 -2.139374256 +v 48.340190887 10.109920502 -3.556675434 +v 47.406040192 9.998180389 -3.123638630 +v 48.340080261 9.998180389 -3.557091475 +v 47.754474640 10.354028702 -4.958458900 +v 46.768821716 10.354028702 -6.142173767 +v 45.592586517 10.354028702 -7.136748314 +v 44.261516571 10.354028702 -7.911962032 +v 42.816055298 10.354028702 -8.444260597 +v 47.588871002 9.998180389 -4.863785744 +v 46.744293213 9.998180389 -4.274724007 +v 47.589050293 10.109920502 -4.863395691 +v 46.622417450 10.109920502 -6.019829273 +v 46.622169495 9.998180389 -6.020182610 +v 45.469654083 10.109920502 -6.990839005 +v 44.165786743 10.109920502 -7.746923447 +v 44.165435791 9.998181343 -7.747171879 +v 41.300121307 16.372127533 -8.717472076 +v 39.759777069 16.372127533 -8.723292351 +v 38.241821289 16.372127533 -8.461545944 +v 41.300121307 10.354028702 -8.717472076 +v 39.759777069 10.354028702 -8.723292351 +v 38.241821289 10.354028702 -8.461545944 +v 42.750438690 10.109920502 -8.265105247 +v 42.750049591 9.998181343 -8.265288353 +v 42.481704712 9.998181343 -7.271155834 +v 41.266613007 10.109920502 -8.529643059 +v 41.266197205 9.998181343 -8.529757500 +v 39.759391785 10.109920502 -8.532499313 +v 39.758964539 9.998181343 -8.532538414 +v 39.846813202 9.998181343 -7.506579876 +v 38.538818359 9.998181343 -7.278433323 +v 38.274574280 10.109920502 -8.273585320 +v 38.274143219 9.998181343 -8.273550034 +v 36.731849670 24.693101883 8.077439308 +v 38.177310944 24.693101883 8.609737396 +v 35.400783539 24.693101883 7.302225113 +v 34.224548340 24.693101883 6.307652473 +v 33.238891602 24.693101883 5.123937607 +v 36.731346130 23.774042130 8.078551292 +v 38.177009583 23.774042130 8.610920906 +v 35.400093079 23.774042130 7.303232670 +v 34.223693848 23.774042130 6.308525085 +v 33.237899780 23.774042130 5.124648571 +v 31.952400208 24.693101883 2.337605953 +v 31.690650940 24.693101883 0.819646955 +v 32.473762512 24.693101883 3.787048340 +v 32.472660065 23.774042130 3.787576437 +v 31.951225281 23.774042130 2.337934732 +v 31.696472168 24.693101883 -0.720702767 +v 31.689437866 23.774042130 0.819766641 +v 32.501983643 24.693101883 -3.682098389 +v 33.277198792 24.693101883 -5.013166428 +v 31.969684601 24.693101883 -2.236636877 +v 32.500873566 23.774042130 -3.682601929 +v 33.276191711 23.774042130 -5.013856411 +v 31.968502045 23.774042130 -2.236939907 +v 31.695255280 23.774042130 -0.720795989 +v 35.455490112 24.693101883 -7.175054550 +v 36.792377472 24.693101883 -7.940186977 +v 34.271774292 24.693101883 -6.189398766 +v 36.791851044 23.774042130 -7.941287518 +v 35.454776764 23.774042130 -7.176047325 +v 34.270900726 23.774042130 -6.190252781 +v 32.473762512 17.277132034 3.787048340 +v 31.952400208 17.277132034 2.337605953 +v 33.238891602 17.277132034 5.123937607 +v 31.690650940 17.277132034 0.819646955 +v 31.693531036 17.277132034 0.057565335 +v 36.731849670 17.277132034 8.077439308 +v 38.177310944 17.277132034 8.609737396 +v 35.400783539 17.277132034 7.302225113 +v 34.224548340 17.277132034 6.307652473 +v 36.731849670 16.372127533 8.077439308 +v 38.177310944 16.372127533 8.609737396 +v 35.400783539 16.372127533 7.302225113 +v 34.224548340 16.372127533 6.307652473 +v 33.238891602 16.372127533 5.123937607 +v 32.473762512 16.372127533 3.787048340 +v 32.217067719 15.177541733 3.073410511 +v 31.952400208 16.372127533 2.337605953 +v 36.731849670 10.354028702 8.077439308 +v 35.400783539 10.354028702 7.302225113 +v 38.177310944 10.354028702 8.609737396 +v 38.511661530 9.998181343 7.436633110 +v 36.827930450 9.998181343 7.912648678 +v 33.586009979 9.998181343 3.286829948 +v 36.827579498 10.109920502 7.912400246 +v 35.523715973 10.109920502 7.156316757 +v 35.524017334 9.998181343 7.156622887 +v 36.116191864 9.998181343 6.314222813 +v 35.100658417 9.998181343 5.458888531 +v 32.473762512 10.354028702 3.787048340 +v 33.238891602 10.354028702 5.123937607 +v 34.224548340 10.354028702 6.307652473 +v 34.371196747 9.998181343 6.185661316 +v 33.404495239 9.998181343 5.029264927 +v 33.404315948 10.109920502 5.028873920 +v 34.370952606 10.109920502 6.185307503 +v 34.249076843 9.998181343 4.440203190 +v 32.653285980 9.998181343 3.722570896 +v 32.653179169 10.109920502 3.722154856 +v 32.390846252 9.998181343 3.008769512 +v 32.390743256 10.109920502 3.009335756 +v 32.215225220 10.354028702 3.068289518 +v 33.416843414 9.998181343 2.826718807 +v 32.210395813 9.998181343 3.071496487 +v 32.216464996 13.597610474 3.071733236 +v 30.841369629 9.998181343 3.065892220 +v 30.841371536 13.593065262 3.065892696 +v 29.847984314 9.998181343 3.064158440 +v 29.847984314 13.593065262 3.064158440 +v 32.101707458 13.597610474 3.071532965 +v 32.095634460 9.998181343 3.071296215 +v 31.952400208 14.024101257 2.337605953 +v 31.824810028 14.315032005 1.630335212 +v 31.710052490 14.315032005 1.630134821 +v 29.849193573 14.013492584 2.370918036 +v 30.842580795 14.013491631 2.372651577 +v 30.843887329 14.319043159 1.625072956 +v 29.850498199 14.319043159 1.623339295 +v 30.845237732 14.504489899 0.850766778 +v 30.846607208 14.566659927 0.065888450 +v 29.853219986 14.566660881 0.064154625 +v 29.851850510 14.504489899 0.849032998 +v 31.575893402 14.506861687 0.819446802 +v 31.690650940 14.506861687 0.819646955 +v 31.690650940 16.372127533 0.819646955 +v 31.693531036 16.372127533 0.057565335 +v 31.578773499 14.563559532 0.057368152 +v 31.693531036 14.563559532 0.057568435 +v 31.837966919 14.025511742 2.338305235 +v 32.397361755 9.998181343 -2.868865728 +v 32.501983643 17.277132034 -3.682098389 +v 33.277198792 17.277132034 -5.013166428 +v 31.969684601 17.277132034 -2.236636877 +v 31.696472168 17.277132034 -0.720702767 +v 36.792377472 17.277132034 -7.940186977 +v 35.455490112 17.277132034 -7.175054550 +v 34.271774292 17.277132034 -6.189398766 +v 33.422950745 9.998181343 -2.681992054 +v 31.696472168 14.500898361 -0.720702767 +v 31.696472168 16.372127533 -0.720702767 +v 31.581714630 14.500898361 -0.720903039 +v 32.221408844 9.998181343 -2.947216749 +v 32.106651306 9.998181343 -2.947417021 +v 29.858455658 9.998181343 -2.935833454 +v 33.597019196 9.998181343 -3.145344257 +v 32.666774750 9.998181343 -3.586017847 +v 32.397502899 10.109920502 -2.868808270 +v 32.667022705 10.109920502 -3.586368561 +v 32.501983643 10.354028702 -3.682098389 +v 32.230220795 10.354028702 -2.944126129 +v 32.501983643 16.372127533 -3.682098389 +v 30.851840973 9.998181343 -2.934099674 +v 31.969684601 16.372127533 -2.236636877 +v 30.850643158 14.013491631 -2.246689558 +v 30.849338531 14.319043159 -1.499111056 +v 29.857255936 14.013492584 -2.248423100 +v 29.858455658 13.593065262 -2.935833454 +v 30.851842880 13.593065262 -2.934099674 +v 29.855951309 14.319043159 -1.500844717 +v 31.832874298 14.318614006 -1.495679021 +v 31.718116760 14.318614006 -1.495879292 +v 30.847988129 14.504489899 -0.724804401 +v 29.854598999 14.504489899 -0.726538181 +v 33.277198792 16.372127533 -5.013166428 +v 32.223587036 15.128337860 -2.926110983 +v 31.969684601 14.016605377 -2.236636877 +v 32.227390289 13.587356567 -2.936434984 +v 36.792377472 16.372127533 -7.940186977 +v 35.455490112 16.372127533 -7.175054550 +v 34.271774292 16.372127533 -6.189398766 +v 34.265201569 9.998181343 -4.297754765 +v 36.139221191 9.998181343 -6.164871693 +v 36.792377472 10.354028702 -7.940186977 +v 35.455490112 10.354028702 -7.175054550 +v 36.857269287 10.109920502 -7.760769367 +v 36.856853485 9.998181343 -7.760660172 +v 37.290306091 9.998181343 -6.826621532 +v 35.550552368 10.109920502 -7.009631634 +v 35.550159454 9.998181343 -7.009452343 +v 34.271774292 10.354028702 -6.189398766 +v 33.277198792 10.354028702 -5.013166428 +v 33.422801971 9.998181343 -4.889929771 +v 34.394119263 10.109920502 -6.042995930 +v 33.423107147 10.109920502 -4.890232563 +v 35.120536804 9.998181343 -5.313291073 +v 34.393764496 9.998181343 -6.042750835 +v 31.854927063 14.016605377 -2.236837149 +v 32.112632751 13.587356567 -2.936635256 +v 10.356585503 15.374712944 5.018982410 +v 29.294418335 16.423784256 3.660708904 +v 29.291988373 15.376764297 5.051695347 +v 10.358929634 16.423786163 3.627655268 +v 29.296293259 16.884586334 2.586380243 +v 10.360805511 16.884588242 2.553326368 +v 29.298488617 17.185401917 1.329080343 +v 10.362999916 17.185403824 1.296026111 +v 29.300714493 17.272243500 0.053253978 +v 10.365226746 17.272245407 0.020199960 +v 29.302951813 17.185401917 -1.229294538 +v 10.367465019 17.185403824 -1.262348533 +v 29.305149078 16.884586334 -2.486595154 +v 10.369660378 16.884588242 -2.519649506 +v 29.307025909 16.422849655 -3.563069105 +v 10.371539116 16.422851563 -3.596122742 +v 29.309436798 15.374711037 -4.943069458 +v 10.373947144 15.381685257 -4.975730896 +v 29.304344177 15.435887337 -2.026943684 +v 28.841117859 14.941126823 -2.793433666 +v 28.839639664 15.304441452 -1.946416855 +v 29.305885315 15.072572708 -2.908475876 +v 28.638072968 14.662881851 -2.633832216 +v 28.636623383 14.979496956 -1.803709745 +v 29.309436798 15.026430130 -4.943069458 +v 29.138191223 15.381684303 -4.729002476 +v 29.138191223 15.242951393 -4.729002476 +v 28.639835358 13.952214241 -3.643826246 +v 28.843130112 14.116405487 -3.946170568 +v 29.308036804 14.219081879 -4.141609192 +v 28.840187073 14.013489723 -2.260160208 +v 28.841386795 13.593063354 -2.947570324 +v 28.636323929 14.589397430 -1.631963611 +v 28.637676239 14.267008781 -2.406255484 +v 28.639068604 13.729486465 -3.204560280 +v 28.837913513 15.541136742 -0.957117617 +v 29.302547455 15.672581673 -0.997330248 +v 28.635015488 15.184299469 -0.882141113 +v 28.836151123 15.609466553 0.052426800 +v 29.300714493 15.740912437 0.053353190 +v 28.633384705 15.245204926 0.052069638 +v 28.634868622 14.785190582 -0.797887027 +v 28.838882446 14.319040298 -1.512581468 +v 28.837530136 14.504487991 -0.738275290 +v 28.633384705 14.858480453 0.052066229 +v 28.836151123 14.566658020 0.052417602 +v 28.639068604 9.998180389 -3.204016447 +v 28.841384888 9.998180389 -2.947570324 +v 28.830911636 9.998180389 3.052421331 +v 29.116922379 10.109930038 -4.061254501 +v 29.118087769 10.109925270 -4.728369236 +v 29.118087769 9.998066902 -4.728369236 +v 28.843128204 9.998180389 -3.945131063 +v 29.308036804 10.354040146 -4.141703129 +v 29.116922379 9.998066902 -4.061254501 +v 29.309436798 10.354034424 -4.943069458 +v 28.639841080 9.998180389 -3.646778345 +v 29.298891068 15.672581673 1.097742677 +v 28.834398270 15.541136742 1.055923820 +v 28.631757736 15.202935219 0.984243691 +v 29.297094345 15.435887337 2.127355576 +v 28.832672119 15.304441452 2.045222759 +v 28.630126953 15.017164230 1.918454051 +v 28.631908417 14.795264244 0.898266375 +v 28.834779739 14.504487991 0.837295890 +v 28.630455017 14.590009689 1.730486751 +v 28.833427429 14.319040298 1.611602187 +v 28.629058838 14.277847290 2.530798197 +v 28.831195831 14.941862106 2.890551567 +v 28.628692627 14.678530693 2.739474773 +v 29.295558929 15.073307991 3.007130861 +v 28.832122803 14.013489723 2.359180450 +v 28.627624512 13.749271393 3.351529121 +v 28.626873016 13.975434303 3.781867743 +v 29.293388367 14.220697403 4.250654221 +v 28.829160690 14.118021011 4.056437016 +v 29.291988373 15.028306961 5.051695347 +v 29.121498108 15.383560181 4.835417271 +v 29.121498108 15.244828224 4.835417271 +v 28.627624512 9.998180389 3.351893425 +v 28.830913544 13.593063354 3.052421331 +v 28.626873016 9.998180389 3.781398773 +v 28.829162598 9.998180389 4.055243969 +v 29.291988373 10.354028702 5.051671505 +v 29.293388367 10.354027748 4.250892162 +v 29.101392746 9.998066902 4.835268974 +v 29.102554321 9.998066902 4.170360088 +v 29.101392746 10.109920502 4.835268974 +v 29.102554321 10.109919548 4.170360088 +v 10.544443130 15.381685257 -4.761458397 +v 10.544443130 15.242953300 -4.761458397 +v 10.373948097 15.026432037 -4.976121902 +v 10.373948097 10.354028702 -4.976121902 +v 11.038537025 9.998181343 -3.275253773 +v 10.836583138 9.998181343 -3.976563454 +v 10.564364433 10.109919548 -4.760755062 +v 11.039286613 9.998181343 -3.704759359 +v 10.834840775 9.998181343 -2.979003191 +v 10.564364433 9.998067856 -4.760755062 +v 10.824367523 9.998181343 3.020988703 +v 10.822616577 9.998181343 4.023811817 +v 10.356501579 10.354034424 5.018618584 +v 10.547670364 9.998067856 4.802883148 +v 11.026322365 9.998181343 3.723418236 +v 11.027094841 9.998181343 3.280656099 +v 10.547670364 10.109925270 4.802883148 +v 10.527830124 15.381774902 4.802964687 +v 10.356585503 15.026519775 5.018982410 +v 10.527830124 15.243041992 4.802964687 +v 10.372631073 14.220699310 -4.174578667 +v 10.370459557 15.073310852 -2.930491924 +v 10.834573746 14.941128731 -2.824866056 +v 10.836585999 14.116407394 -3.977602959 +v 11.037467957 14.678532600 -2.662835360 +v 11.039287567 13.975436211 -3.705228567 +v 11.037103653 14.277850151 -2.454159260 +v 11.038536072 13.749273300 -3.274889231 +v 11.036034584 15.017166138 -1.841814637 +v 10.833095551 15.304443359 -1.977849364 +v 10.368923187 15.435888290 -2.050716639 +v 9.840255737 14.013492584 -2.293326378 +v 10.833642960 14.013491631 -2.291592836 +v 10.832337379 14.319043159 -1.544014096 +v 11.035706520 14.590011597 -1.653847337 +v 11.034403801 15.202938080 -0.907604218 +v 10.831368446 15.541138649 -0.988549888 +v 10.367126465 15.672584534 -1.021103144 +v 11.032777786 15.245207787 0.024569876 +v 10.830013275 15.609468460 0.024212779 +v 10.365303040 15.740915298 0.023286272 +v 11.034254074 14.795266151 -0.821626842 +v 9.838950157 14.319043159 -1.545748115 +v 10.830985069 14.504489899 -0.769707739 +v 9.837597847 14.504489899 -0.771441817 +v 9.836218834 14.566660881 0.019251090 +v 10.829605103 14.566659927 0.020985158 +v 11.032777786 14.858482361 0.024573289 +v 10.834841728 13.593065262 -2.979002953 +v 9.841454506 9.998181343 -2.980736971 +v 9.841455460 13.593065262 -2.980736732 +v 10.372630119 10.354027748 -4.174252510 +v 10.563604355 9.998067856 -4.093901634 +v 10.563604355 10.109919548 -4.093901634 +v 11.031147003 15.184301376 0.958780825 +v 10.827854156 15.541138649 1.024491310 +v 10.363469124 15.672584534 1.073969722 +v 10.361672401 15.435888290 2.103582621 +v 11.029538155 14.979497910 1.880349159 +v 10.826127052 15.304443359 2.013790369 +v 10.828235626 14.504489899 0.805863440 +v 9.834848404 14.504489899 0.804129362 +v 11.031293869 14.785192490 0.874526620 +v 10.826883316 14.319043159 1.580169678 +v 9.833496094 14.319043159 1.578435779 +v 10.825578690 14.013491631 2.327747822 +v 11.029838562 14.589399338 1.708603024 +v 11.028089523 14.662883759 2.710471869 +v 10.824651718 14.941864014 2.859119177 +v 10.360135078 15.072574615 2.985115051 +v 11.028487206 14.267010689 2.482894659 +v 11.026327133 13.952216148 3.720466137 +v 9.832191467 14.013492584 2.326014042 +v 11.027093887 13.729488373 3.281200171 +v 10.824368477 13.593065262 3.020988941 +v 10.822615623 14.118022919 4.025004864 +v 10.357982635 14.219083786 4.218248844 +v 9.830981255 9.998181343 3.019254923 +v 10.357981682 10.354040146 4.217919350 +v 9.830982208 13.593065262 3.019254923 +v 10.549234390 9.998067856 4.138958454 +v 10.549234390 10.109930038 4.138958454 +v 5.309868813 16.884586334 -4.066629410 +v 5.965365887 16.423784256 -4.917809963 +v 7.409113407 16.423784256 -4.080895424 +v 4.787422657 16.423784256 -6.099878311 +v 5.892444134 15.376764297 -6.944730759 +v 6.814069748 15.376764297 -6.019875526 +v 3.933958769 16.884586334 -5.447355747 +v 3.955558538 16.423784256 -7.546542645 +v 5.241590500 15.376764297 -8.076605797 +v 9.319129944 16.422849655 -3.599782944 +v 9.020275116 16.423784256 -3.646166325 +v 9.321538925 15.374711037 -4.979783535 +v 7.943663597 15.376764297 -5.365069389 +v 6.996253967 16.884586334 -3.089062452 +v 8.878190041 16.884586334 -2.581273079 +v 9.317251205 16.884586334 -2.523308992 +v 2.935139656 17.185401917 -4.683700562 +v 1.799856663 17.185401917 -6.658026218 +v 1.921602488 17.272243500 -3.908794165 +v 4.542731285 17.185401917 -3.070481777 +v 2.962290764 16.884586334 -7.137146473 +v 3.472298384 16.423784256 -9.458216667 +v 3.526463032 16.423784256 -9.159214973 +v 2.461080551 16.884586334 -9.020846367 +v 4.863285065 15.376764297 -9.455788612 +v 2.397970200 16.884586334 -9.460092545 +v 1.214250684 17.185401917 -8.858910561 +v -0.135156274 17.272243500 -9.464513779 +v -0.050951496 17.272243500 -8.694589615 +v -1.322819948 17.185401917 -8.529404640 +v 1.140670061 17.185401917 -9.462286949 +v -1.417704940 17.185401917 -9.466752052 +v 0.620294213 17.272243500 -6.171846390 +v -1.727916718 16.884586334 -5.203984261 +v -0.565482378 17.185401917 -5.683104515 +v 0.902725697 17.185401917 -3.129805088 +v -2.569650412 16.884586334 -8.367468834 +v -2.675005198 16.884586334 -9.468947411 +v -3.751479387 16.422849655 -9.470826149 +v -5.005669594 15.374711037 -8.051085472 +v -5.131479740 15.374711037 -9.473235130 +v -3.637160063 16.422849655 -8.228823662 +v -2.723167658 16.422849655 -4.793770790 +v -0.096093923 16.884586334 -2.366149664 +v -3.999043703 15.374711037 -4.267893314 +v 3.764290810 17.272243500 -2.059657097 +v 2.981748581 17.185401917 -1.043506265 +v 6.513077736 17.185401917 -1.928307772 +v 6.022782326 17.272243500 -0.750450432 +v 5.529903412 17.185401917 0.433612496 +v 8.711903572 17.185401917 -1.335014701 +v 9.315055847 17.185401917 -1.266008496 +v 8.543165207 17.272243500 -0.070394248 +v 9.312817574 17.272243500 0.016540131 +v 0.715803146 15.374711037 1.898883700 +v 1.557805777 16.422849655 0.805522621 +v 4.633044720 16.422849655 2.588180780 +v 4.102715492 15.374711037 3.862213135 +v 5.046727657 16.884586334 1.594367266 +v 2.214611053 16.884586334 -0.047358394 +v 9.310590744 17.185401917 1.292366385 +v 9.308396339 16.884586334 2.549666405 +v 8.207252502 16.884586334 2.447146654 +v 8.373538017 17.185401917 1.200888276 +v 9.306520462 16.423784256 3.623995066 +v 8.064883232 16.422849655 3.514165878 +v 7.882367134 15.374711037 4.882045746 +v 9.304092407 15.376764297 5.014981270 +v -2.047555685 15.374711037 -0.874144256 +v -0.951261282 16.422849655 -1.712323785 +v 5.892444134 15.028306961 -6.944730759 +v 5.671233654 15.244828224 -6.775876999 +v 4.984215736 15.244828224 -7.970758915 +v 6.644100189 15.383560181 -5.799521923 +v 5.671233654 15.383560181 -6.775876999 +v 6.644100189 15.244828224 -5.799521923 +v 6.814069748 15.028306961 -6.019875526 +v 8.853220940 14.941126823 -2.830147266 +v 8.651939392 13.952214241 -3.680540323 +v 8.650176048 14.662881851 -2.670546055 +v 9.317987442 15.072572708 -2.945189476 +v 8.855233192 14.116405487 -3.982884407 +v 9.320139885 14.219081879 -4.178322792 +v 7.836515903 15.383560181 -5.108233452 +v 7.836515903 15.244828224 -5.108233452 +v 7.943663597 15.028306961 -5.365069389 +v 9.321538925 15.026430130 -4.979783535 +v 9.150295258 15.242951393 -4.765716553 +v 9.150295258 15.381684303 -4.765716553 +v 7.943655014 10.354028702 -5.365047932 +v 6.814056873 10.354028702 -6.019856930 +v 5.892426014 10.354028702 -6.944716454 +v 5.241590500 15.028306961 -8.076605797 +v 5.671510220 10.109920502 -6.777579784 +v 5.241569042 10.354028702 -8.076597214 +v 5.671510220 9.998180389 -6.777579784 +v 6.643928051 9.998180389 -5.801239014 +v 6.643928051 10.109920502 -5.801239014 +v 9.321538925 10.354034424 -4.979783535 +v 9.320139885 10.354040146 -4.178416729 +v 8.651944160 9.998180389 -3.683492422 +v 7.835906506 9.998180389 -5.109846592 +v 7.835906506 10.109920502 -5.109846592 +v 9.130189896 10.109925270 -4.765082836 +v 9.129025459 10.109930038 -4.097968102 +v 9.130189896 9.998180389 -4.765082836 +v 9.129025459 9.998180389 -4.097968102 +v 8.855231285 9.998180389 -3.981844902 +v 8.651171684 9.998180389 -3.240730286 +v 8.651172638 13.729486465 -3.241274357 +v 8.853487968 9.998180389 -2.984283924 +v 8.853489876 13.593063354 -2.984283924 +v 8.649779320 14.267008781 -2.442969084 +v 4.647006512 15.383560181 -9.285297394 +v 4.984215736 15.383560181 -7.970758915 +v 4.647006512 15.244828224 -9.285297394 +v 4.863285065 15.028306961 -9.455788612 +v 2.818720818 15.073307991 -9.459357262 +v 1.730043888 15.017164230 -8.793926239 +v 2.702141523 14.941862106 -8.994995117 +v 1.856812716 15.304441452 -8.996471405 +v 1.542076707 14.590009689 -8.794254303 +v 2.551064491 14.678530693 -8.792492867 +v 1.938945532 15.435887337 -9.460893631 +v 4.062243938 14.220697403 -9.457186699 +v 2.865756989 13.593063354 -9.994748116 +v 2.864011288 13.593063354 -8.994712830 +v 2.170770407 14.013489723 -8.995923042 +v 2.342388153 14.277847290 -8.792857170 +v 3.593457460 13.975434303 -8.790673256 +v 3.163118601 13.749271393 -8.791424751 +v 3.868026495 14.118021011 -8.992959976 +v 4.863260746 10.354028702 -9.455788612 +v 4.984924793 9.998180389 -7.972333431 +v 3.866833925 9.998180389 -8.992960930 +v 3.592988729 9.998180389 -8.790673256 +v 3.981950045 10.109919548 -9.266352654 +v 4.062481880 10.354027748 -9.457186699 +v 3.981950045 9.998180389 -9.266352654 +v 4.646858215 10.109920502 -9.265192032 +v 4.646858215 9.998180389 -9.265192032 +v 4.984924793 10.109920502 -7.972333431 +v 3.163483381 9.998180389 -8.791422844 +v 2.864011049 9.998180389 -8.994710922 +v 2.865756750 9.998180389 -9.994747162 +v 0.909332395 15.672581673 -9.462690353 +v 0.867513537 15.541136742 -8.998197556 +v 0.795833468 15.202935219 -8.795557022 +v 2.172516346 14.013488770 -9.995958328 +v 1.423191905 14.319040298 -8.997227669 +v 1.424937487 14.319040298 -9.997262955 +v 0.709856033 14.795264244 -8.795706749 +v 0.648885727 14.504487991 -8.998579025 +v 0.650631309 14.504487991 -9.998614311 +v -1.905951262 9.998180389 -0.982230663 +v -3.834289074 9.998181343 -4.335646629 +v -1.905951262 10.109925270 -0.982230663 +v -3.834289312 10.109925270 -4.335646629 +v -2.047555685 10.354034424 -0.874144256 +v -2.047555685 15.026430130 -0.874144256 +v -3.999043703 10.354034424 -4.267893314 +v -0.135983437 15.609466553 -8.999949455 +v -0.136340588 15.245204926 -8.797183990 +v -0.135057062 15.740912437 -9.464513779 +v -0.135992631 14.566658020 -8.999949455 +v -0.134247005 14.566658020 -9.999984741 +v -0.136344001 14.858480453 -8.797183990 +v -1.185740471 15.672581673 -9.466347694 +v -2.215353489 15.435887337 -9.468144417 +v -0.926685452 14.504487991 -9.001329422 +v -0.986297250 14.785190582 -8.798667908 +v -0.924939871 14.504487991 -10.001364708 +v -1.070551395 15.184299469 -8.798814774 +v -1.145527720 15.541136742 -9.001711845 +v -2.134827137 15.304441452 -9.003438950 +v -1.992120028 14.979496956 -8.800423622 +v -1.820373774 14.589397430 -8.800123215 +v -1.700991750 14.319040298 -9.002680779 +v -1.699246168 14.319040298 -10.002716064 +v -3.096885920 15.072572708 -9.469683647 +v -2.981843472 14.941126823 -9.004917145 +v -2.822242498 14.662881851 -8.801872253 +v -2.448570251 14.013489723 -9.003986359 +v -2.594665527 14.267008781 -8.801475525 +v -2.446824312 14.013488770 -10.004021645 +v -4.828895092 15.242951393 -8.073754311 +v -4.828895092 15.381684303 -8.073754311 +v -3.834159613 15.381684303 -4.335542679 +v -5.005669594 15.026430130 -8.051085472 +v -3.834159613 15.242951393 -4.335542679 +v -3.999043703 15.026430130 -4.267893314 +v -3.135980606 13.593063354 -9.005186081 +v -3.832236767 13.952214241 -8.803635597 +v -4.134581089 14.116405487 -9.006929398 +v -3.392970800 13.729486465 -8.802868843 +v -4.330019474 14.219081879 -9.471836090 +v -5.131479740 15.026430130 -9.473235130 +v -4.917412758 15.381684303 -9.301991463 +v -4.917412758 15.242951393 -9.301991463 +v -1.905799270 15.242951393 -0.982163668 +v -1.905799270 15.381684303 -0.982163668 +v -3.134235144 9.998181343 -10.005220413 +v -3.135980844 9.998181343 -9.005184174 +v -3.392427206 9.998181343 -8.802867889 +v -4.828992844 9.998181343 -8.073887825 +v -4.828992844 10.109925270 -8.073887825 +v -5.005669594 10.354034424 -8.051085472 +v -4.133541584 9.998181343 -9.006927490 +v -3.835189104 9.998181343 -8.803640366 +v -4.916779518 10.109925270 -9.281886101 +v -5.131479740 10.354034424 -9.473235130 +v -4.916779518 9.998181343 -9.281886101 +v -3.134234905 13.593063354 -10.005221367 +v -4.330113411 10.354040146 -9.471836090 +v -4.249664783 9.998181343 -9.280721664 +v -4.249664783 10.109930038 -9.280721664 +v 9.316448212 15.435887337 -2.063657284 +v 8.851742744 15.304441452 -1.983130693 +v 8.648727417 14.979496956 -1.840423584 +v 8.850015640 15.541136742 -0.993831396 +v 9.314651489 15.672581673 -1.034044147 +v 8.647118568 15.184299469 -0.918855011 +v 8.852290154 14.013489723 -2.296873808 +v 8.648427010 14.589397430 -1.668677330 +v 8.850984573 14.319040298 -1.549295425 +v 8.646971703 14.785190582 -0.834600866 +v 8.849633217 14.504487991 -0.774989128 +v 8.848253250 15.609466553 0.015712952 +v 8.645487785 15.245204926 0.015355791 +v 9.312817574 15.740912437 0.016639344 +v 9.310994148 15.672581673 1.061028719 +v 8.846501350 15.541136742 1.019209862 +v 8.643860817 15.202935219 0.947529793 +v 8.848253250 14.566658020 0.015703756 +v 8.645487785 14.858480453 0.015352380 +v 8.644010544 14.795264244 0.861552477 +v 8.846882820 14.504487991 0.800582051 +v 8.639726639 9.998180389 3.315179348 +v 8.843014717 9.998180389 3.015707970 +v 4.171304703 9.998180389 3.697805405 +v 8.638977051 9.998180389 3.744684696 +v 9.309197426 15.435887337 2.090641737 +v 8.844775200 15.304441452 2.008509159 +v 8.642230034 15.017164230 1.881740332 +v 9.307661057 15.073307991 2.970417023 +v 8.843298912 14.941862106 2.853837729 +v 8.640796661 14.678530693 2.702761173 +v 8.642558098 14.590009689 1.693773031 +v 8.845531464 14.319040298 1.574888349 +v 8.641160965 14.277847290 2.494084597 +v 8.844226837 14.013489723 2.322466850 +v 8.639728546 13.749271393 3.314815044 +v 8.843016624 13.593063354 3.015707731 +v 9.305490494 14.220697403 4.213940144 +v 8.841263771 14.118021011 4.019722939 +v 8.638977051 13.975434303 3.745153666 +v 9.304092407 15.028306961 5.014981270 +v 9.133601189 15.244828224 4.798703671 +v 9.133601189 15.383560181 4.798703671 +v 7.906223297 15.381684303 4.705427647 +v 7.906223297 15.242951393 4.705427647 +v 7.882367134 15.026430130 4.882045746 +v 7.882367134 10.354034424 4.882045746 +v 9.113495827 10.109920502 4.798554897 +v 9.114656448 10.109919548 4.133646488 +v 9.114656448 9.998180389 4.133646488 +v 9.113495827 9.998180389 4.798554897 +v 9.304092407 10.354028702 5.014957428 +v 9.305490494 10.354027748 4.214178562 +v 8.841264725 9.998180389 4.018530369 +v 7.906068802 9.998180389 4.705486774 +v 7.906068802 10.109925270 4.705486774 +v 4.102715492 15.026430130 3.862213135 +v 4.171470165 15.242951393 3.697786808 +v 4.171470165 15.381684303 3.697786808 +v 4.102715492 10.354034424 3.862213135 +v 4.171304703 10.109925270 3.697804928 +v 0.824607968 9.998180389 1.757830381 +v 0.824607849 10.109925270 1.757830381 +v 0.715803146 10.354034424 1.898883700 +v 0.824772000 15.381684303 1.757855892 +v 0.715803146 15.026430130 1.898883700 +v 0.824772000 15.242951393 1.757855892 +v -8.753063202 5.376532555 4.954570293 +v 0.230767518 6.425604343 3.563241482 +v 0.230767518 5.378584385 4.954230309 +v -8.753147125 6.425606728 3.563240767 +v 0.230766773 6.886405945 2.488911390 +v -8.753147125 6.886408329 2.488910437 +v 0.230766773 7.187221527 1.231609106 +v -8.753147125 7.187223434 1.231608272 +v 0.230766773 7.274062157 -0.044219129 +v -8.753147125 7.274064541 -0.044219974 +v 0.230766773 7.187221527 -1.326769710 +v -8.753147125 7.187223434 -1.326770663 +v 0.230766773 6.886405945 -2.584072113 +v -8.753147125 6.886408329 -2.584073305 +v 0.230766773 6.424669266 -3.660547972 +v -8.753147125 6.424670696 -3.660548687 +v 0.230766773 5.376530647 -5.040550232 +v -8.753147125 5.383505344 -5.040158749 +v -8.085589409 4.268830299 2.417313814 +v -8.299681664 3.594884872 3.000001907 +v -8.299681664 4.015311241 2.306759596 +v -8.292544365 4.320862770 1.559179902 +v -9.000000000 4.015311241 2.306759596 +v -8.085588455 3.731307507 3.215620279 +v -9.000000000 3.594884872 3.000001907 +v -8.085589409 4.664703846 2.644890785 +v -8.085588455 3.954035997 3.654886723 +v -8.753063202 5.028339386 4.954570293 +v -8.582195282 5.383594036 4.738254070 +v -8.598057747 5.244861126 4.782492161 +v -8.753063202 4.220902920 4.153835297 +v -9.000000000 7.255914688 2.405723095 +v -9.000000000 7.254602909 3.184659481 +v -9.500000000 7.254602909 3.184647322 +v -9.500000000 7.255914688 2.405723095 +v -9.500000000 3.594884872 3.000001907 +v -8.753063202 5.074394226 2.920700073 +v -9.500000000 7.256734848 1.625433087 +v -9.000000000 7.256734848 1.625224113 +v -9.000000000 4.320862770 1.559179902 +v -8.753064156 5.437708378 2.039165974 +v -9.500000000 4.015311241 2.306759596 +v -8.085589409 4.591218948 1.643020630 +v -8.085589409 4.981317997 1.814767003 +v -8.292540550 4.943684101 2.793893814 +v -8.292540550 5.306262970 1.948563099 +v -9.999998093 4.320862770 1.559180021 +v -9.500000000 4.320862770 1.559179902 +v -9.000000000 7.257231712 0.773615956 +v -9.500000000 7.257231712 0.773804307 +v -9.000000000 7.257397652 -0.044181678 +v -9.500000000 7.257397652 -0.044181675 +v -8.753064156 5.674404144 1.009551167 +v -9.000000000 4.568480015 -0.044245362 +v -8.753064156 5.742734909 -0.041133784 +v -8.292540550 5.542958260 0.959262550 +v -8.292540550 5.611288548 -0.041018460 +v -9.500000000 4.506309509 0.740634203 +v -8.085589409 5.186120987 0.893197119 +v -8.085589409 4.787011623 0.808942795 +v -8.292540550 4.506309509 0.740634203 +v -8.085589409 5.247027397 -0.041015293 +v -8.085589409 4.860301971 -0.041011877 +v -8.292540550 4.568480015 -0.044245362 +v -9.000000000 4.506309509 0.740634203 +v -9.500000000 4.568480015 -0.044245347 +v -9.999997139 4.568480492 -0.000007104 +v -9.999997139 4.506309986 0.784872413 +v 0.230767518 5.030126095 4.954230309 +v 0.044036582 5.246647835 4.782487869 +v 0.059897333 5.385379791 4.738249779 +v -8.753147125 0.355853915 4.954206467 +v -8.085588455 0.000001048 3.657839060 +v -8.292540550 0.000001429 3.958587885 +v 0.039793111 -0.000113393 4.738136292 +v -8.085588455 0.000001048 3.215075970 +v -8.299681664 0.000001429 3.003443718 +v -8.562355995 -0.000112630 4.738137245 +v -8.562355995 0.111745358 4.738137245 +v 0.039793111 0.111739635 4.738136292 +v -8.292540550 4.119843006 3.959781170 +v -8.753064156 0.355859280 4.153505802 +v -9.000000000 0.000001429 3.003443718 +v -9.500000000 -0.002705861 3.183461428 +v -9.000000000 -0.002705861 3.183461428 +v -9.500000000 0.000001429 3.003443718 +v -9.999998093 4.015311718 2.306759834 +v -9.999997139 3.594885111 3.000001431 +v -9.999998093 0.000001292 3.000001431 +v -8.561950684 -0.000112630 4.074211597 +v -8.561950684 0.111749932 4.074211597 +v -9.000000000 0.000001429 -3.000231981 +v -9.999998093 0.000001292 -2.999999762 +v -9.500000000 0.000001429 -3.000231981 +v -8.299681664 0.000001429 -3.000231981 +v -8.562355042 -0.000112630 -4.825516224 +v 0.039793123 -0.000113393 -4.825516224 +v 0.039793123 0.111745358 -4.825516224 +v 0.230766773 0.355853915 -5.040550232 +v 0.230766773 5.028249741 -5.040550232 +v 0.230767518 0.355848223 4.954206467 +v -8.562355042 0.111739255 -4.825516224 +v 0.059897345 5.383503914 -4.826185226 +v 0.059897345 5.244771004 -4.826185226 +v -8.582277298 5.383505344 -4.826184273 +v -8.582277298 5.244772911 -4.826184273 +v -8.753147125 5.028251648 -5.040549755 +v -8.292540550 0.000001429 -4.041800499 +v -8.085590363 0.000001048 -3.770350456 +v -8.085590363 0.000001048 -3.340844154 +v -8.753147125 0.355848223 -5.040549755 +v -9.000000000 7.255914688 -2.456159115 +v -9.000000000 7.256734371 -1.676682115 +v -9.500000000 7.256734371 -1.676682115 +v -9.500000000 7.255914688 -2.456159115 +v -9.500000000 7.254604816 -3.248138905 +v -9.000000000 7.254604816 -3.248138905 +v -8.753064156 5.674404144 -1.085524917 +v -8.292540550 5.542958260 -1.053782225 +v -8.753064156 5.437708378 -2.115139723 +v -9.000000000 7.257230759 -0.869287789 +v -9.500000000 7.257230759 -0.869287610 +v -9.000000000 4.506309509 -0.834939539 +v -9.000000000 4.320862770 -1.609247208 +v -9.500000000 4.506309509 -0.834939539 +v -9.500000000 4.320862770 -1.609247208 +v -8.299681664 4.506309509 -0.834939539 +v -8.085590363 4.591831207 -1.719435334 +v -8.085590363 4.797085762 -0.887213409 +v -8.292540550 4.320862770 -1.609247208 +v -8.292540550 5.306262970 -2.043083191 +v -8.085590363 5.018985748 -1.907402754 +v -8.085590363 5.204757690 -0.973190904 +v -9.999998093 4.506309986 -0.790701210 +v -9.999997139 4.320862770 -1.565008759 +v -9.500000000 4.015311241 -2.356827021 +v -9.500000000 3.594884872 -3.000231743 +v -9.999997139 4.015311718 -2.312588453 +v -9.000000000 3.594884872 -3.000231743 +v -9.000000000 4.015311241 -2.356827021 +v -8.753064156 5.075129986 -2.994916439 +v -8.292544365 4.942948341 -2.845862865 +v -8.085590363 4.680352211 -2.728424549 +v -8.085590363 4.279669762 -2.519748211 +v -8.292540550 4.015311241 -2.356827021 +v -8.753064156 4.222518921 -4.239005566 +v -8.299681664 3.594884872 -3.000231743 +v -8.085590363 3.751092434 -3.340479851 +v -8.085590363 3.977255583 -3.770819902 +v -9.500000000 0.000001429 -3.252239466 +v -9.999997139 3.594885111 -2.999999762 +v -9.000000000 0.000001429 -3.252239466 +v -8.292544365 4.118226528 -3.998601675 +v -8.753064156 0.355847448 -4.238679409 +v -8.561952591 0.111738876 -4.158661842 +v -8.561952591 -0.000113012 -4.158661842 +v 11.438048363 13.578246117 -18.801122665 +v 11.792361259 13.578246117 -19.005466461 +v 12.150432587 13.368027687 -18.578733444 +v 12.462369919 13.078775406 -18.214624405 +v 11.797165871 13.078775406 -17.828817368 +v 11.628574371 13.368027687 -18.277658463 +v 12.537845612 13.368027687 -19.040140152 +v 12.955503464 13.078775406 -18.804676056 +v 11.035212517 13.578246117 -18.730283737 +v 11.040124893 13.705832481 -19.307260513 +v 11.035212517 13.368027687 -18.173225403 +v 11.040124893 13.078775406 -17.693790436 +v 11.245326996 13.705832481 -19.344982147 +v 13.217087746 13.078775406 -19.527807236 +v 12.744085312 13.368027687 -19.606222153 +v 12.744275093 13.368027687 -20.208702087 +v 12.195487976 13.578246117 -19.702953339 +v 13.215572357 13.078775406 -20.296792984 +v 12.055417061 13.578246117 -19.318668365 +v 11.558197975 13.705832481 -19.611412048 +v 12.195678711 13.578246117 -20.111970901 +v 11.628130913 13.705832481 -19.807983398 +v 11.425251007 13.705832481 -19.450613022 +v 11.042902946 13.748605728 -19.906599045 +v 11.626614571 13.705832481 -20.016616821 +v 12.055965424 13.578246117 -20.496385574 +v 12.538393021 13.368027687 -20.774915695 +v 12.951137543 13.078775406 -21.018886566 +v 12.151271820 13.368027687 -21.236564636 +v 11.793200493 13.578246117 -20.809831619 +v 12.455681801 13.078775406 -21.606990814 +v 11.629601479 13.368027687 -21.537969589 +v 11.788961411 13.078775406 -21.990169525 +v 11.439075470 13.578246117 -21.014505386 +v 11.418563843 13.705832481 -20.371000290 +v 11.032533646 13.578246117 -21.085718155 +v 11.237122536 13.705832481 -20.474004745 +v 11.032533646 13.368027687 -21.642776489 +v 11.031394005 13.078775406 -22.122211456 +v 11.553833008 13.705832481 -20.212152481 +v 11.027621269 13.705832481 -20.508741379 +v 10.765499115 13.325869560 -17.371828079 +v 10.589583397 13.486545563 -17.125236511 +v 10.589580536 14.006744385 -17.938571930 +v 10.765499115 13.814806938 -18.067226410 +v 10.912987709 13.542448044 -18.201259613 +v 10.912987709 13.172634125 -17.547973633 +v 10.765499115 14.032635689 -18.638780594 +v 10.912987709 13.764249802 -18.741415024 +v 10.403736115 13.592807770 -16.911849976 +v 10.403735161 14.096672058 -17.795053482 +v 9.857499123 14.013492584 -17.601242065 +v 9.857499123 14.319044113 -18.348821640 +v 9.857499123 13.593065262 -16.907999039 +v 10.403735161 14.346630096 -18.426431656 +v 10.589580536 14.256196976 -18.528282166 +v 10.765499115 14.173540115 -19.273298264 +v 10.912987709 13.898954391 -19.323276520 +v 10.589580536 14.419042587 -19.218427658 +v 10.403735161 14.509475708 -19.163867950 +v 9.857499123 14.504489899 -19.123128891 +v 10.589580536 14.466053009 -19.916234970 +v 10.776260376 14.215442657 -19.916215897 +v 10.912987709 13.949377060 -19.916213989 +v 9.857499123 14.566660881 -19.908008575 +v 10.403735161 14.556488037 -19.916397095 +v 12.951138496 9.993399620 -21.018886566 +v 12.955503464 9.993399620 -18.804676056 +v 13.217088699 9.993399620 -19.527805328 +v 12.462368965 9.993399620 -18.214622498 +v 11.797164917 9.993399620 -17.828817368 +v 12.455682755 9.993399620 -21.606988907 +v 11.788962364 9.993399620 -21.990169525 +v 11.040123940 9.993399620 -17.693790436 +v 13.215572357 9.993399620 -20.296792984 +v 10.912989616 9.993399620 -17.548355103 +v 10.765501022 9.993399620 -17.369794846 +v 10.589581490 9.993399620 -17.126068115 +v 9.857499123 9.998181343 -16.907999039 +v 10.403736115 9.994852066 -16.912084579 +v 10.765499115 14.186361313 -20.558336258 +v 10.912986755 13.905885696 -20.506532669 +v 10.589581490 14.419042587 -20.622749329 +v 9.857499123 14.504489899 -20.698701859 +v 10.403736115 14.509475708 -20.664417267 +v 10.765499115 14.058550835 -21.201557159 +v 10.912986755 13.764671326 -21.087100983 +v 10.589581490 14.256196976 -21.312894821 +v 9.857499123 14.319044113 -21.473009109 +v 10.403736115 14.346630096 -21.401855469 +v 10.912986755 13.549904823 -21.645406723 +v 10.912986755 13.186244965 -22.217958450 +v 10.765499115 13.825572968 -21.766845703 +v 10.765499115 13.341844559 -22.484550476 +v 10.589578629 14.006237984 -21.872920990 +v 10.589580536 13.485433578 -22.677083969 +v 9.857499123 14.013492584 -22.220588684 +v 10.403736115 14.097177505 -22.031974792 +v 10.403737068 13.593919754 -22.905027390 +v 9.857499123 13.593065262 -22.908000946 +v 10.765499115 9.993399620 -22.484228134 +v 10.912987709 9.993399620 -22.218212128 +v 11.031394958 9.993399620 -22.122211456 +v 9.857499123 9.998181343 -22.908000946 +v 10.589583397 9.993399620 -22.707220078 +v 10.403737068 9.994852066 -22.904792786 +v 4.858413219 15.381685257 -14.934789658 +v 9.327021599 16.423784256 -16.325420380 +v 9.327021599 15.376764297 -14.934431076 +v 3.478802681 16.422851563 -16.327211380 +v 9.327021599 16.884586334 -17.399749756 +v 2.402328014 16.884588242 -17.392444611 +v 9.327021599 17.185401917 -18.657051086 +v 1.145025015 17.185403824 -18.650850296 +v 9.327021599 17.272243500 -19.932880402 +v 4.858804226 15.374711037 -10.468370438 +v -0.137525633 17.272245407 -19.933252335 +v 1.145023227 17.185401917 -10.468370438 +v -0.137527332 17.272243500 -10.468370438 +v 2.402325630 16.884586334 -10.468370438 +v 3.478801250 16.422849655 -10.468370438 +v -0.137525663 17.272245407 -29.403888702 +v 1.138338208 17.185403824 -21.214948654 +v 9.327021599 17.185401917 -21.215431213 +v 9.327021599 16.884586334 -22.472732544 +v 2.395640373 16.884588242 -22.473354340 +v 9.327021599 16.422849655 -23.549209595 +v 3.469970226 16.423786163 -23.538587570 +v 9.327021599 15.374711037 -24.929210663 +v 3.478802681 16.422851563 -29.403888702 +v 4.860601902 15.381685257 -24.928821564 +v 2.402328014 16.884588242 -29.403888702 +v 1.145024896 17.185403824 -29.403888702 +v 4.858413219 15.381685257 -29.403888702 +v -5.136315823 15.374712944 -14.934705734 +v -3.744987965 16.423784256 -10.468370438 +v -5.135976791 15.376764297 -10.468370438 +v -3.744986534 16.423786163 -16.327211380 +v -2.670657635 16.884586334 -10.468370438 +v -2.670656204 16.884588242 -17.392444611 +v -1.413355708 17.185401917 -10.468370438 +v -1.413353801 17.185403824 -18.650850296 +v -9.608413696 15.374712944 -14.934091568 +v -9.608496666 17.185403824 -18.657052994 +v -9.608496666 17.272245407 -19.932880402 +v -9.608496666 16.884588242 -17.399749756 +v -9.608496666 16.423786163 -16.325420380 +v -1.420040607 17.185403824 -21.214948654 +v -1.413353801 17.185403824 -29.403888702 +v -2.670656204 16.884588242 -29.403888702 +v -2.677342892 16.884588242 -22.473354340 +v -3.744986534 16.423786163 -29.403888702 +v -3.743196487 16.423786163 -23.540378571 +v -5.136315823 15.374712944 -29.403804779 +v -9.608496666 16.422851563 -23.549209595 +v -5.133429050 15.381685257 -24.931009293 +v -9.608496666 16.884588242 -22.472734451 +v -9.608496666 17.185403824 -21.215431213 +v -9.608496666 15.381685257 -24.928819656 +v 9.327021599 15.028306961 -14.934431076 +v 9.156151772 15.383560181 -15.150411606 +v 9.156151772 15.244828224 -15.150411606 +v 8.862455368 14.118021011 -15.928879738 +v 8.659689903 14.678530693 -17.245491028 +v 8.659689903 13.975434303 -16.203096390 +v 9.327021599 14.220697403 -15.735473633 +v 8.862455368 14.941862106 -17.094766617 +v 9.327021599 15.073307991 -16.978998184 +v 4.644438744 15.242953300 -15.150722504 +v 4.644438744 15.381685257 -15.150722504 +v 4.858804226 15.026432037 -14.934789658 +v 4.858804226 10.354028702 -14.934789658 +v 4.643770218 10.109919548 -15.154069901 +v 9.136047363 10.109920502 -15.150524139 +v 9.136047363 9.998181343 -15.150524139 +v 4.643770218 9.998181343 -15.154069901 +v 9.327021599 10.354028702 -14.934454918 +v 3.860055447 9.998181343 -15.931425095 +v 8.862454414 9.998181343 -15.930072784 +v 8.659689903 13.749271393 -16.633434296 +v 8.659689903 9.998181343 -16.203563690 +v 8.862455368 13.593063354 -16.932897568 +v 8.659689903 9.998181343 -16.633069992 +v 8.862454414 9.998181343 -16.932897568 +v 9.327021599 10.354027748 -15.735235214 +v 9.136047363 10.109919548 -15.815433502 +v 9.136047363 9.998181343 -15.815433502 +v 3.558393955 13.952214241 -11.135701180 +v 2.708353996 14.941126823 -10.932935715 +v 3.861092567 14.116405487 -10.932935715 +v 4.057342529 14.219081879 -10.468370438 +v 2.824207306 15.072572708 -10.468370438 +v 4.858804226 15.026430130 -10.468370438 +v 4.644438744 15.381684303 -10.639239311 +v 4.644438744 15.242951393 -10.639239311 +v 4.643770218 10.109925270 -10.659343719 +v 4.858804226 10.354034424 -10.468370438 +v 4.643770218 9.998181343 -10.659343719 +v 3.860053062 9.998181343 -10.932935715 +v 3.118583202 9.998181343 -11.135701180 +v 3.119127274 13.729486465 -11.135701180 +v 2.862490654 9.998181343 -9.932899475 +v 2.862490654 13.593063354 -9.932898521 +v 2.862490654 13.593063354 -10.932935715 +v 2.862490654 9.998181343 -10.932937622 +v 4.057436466 10.354040146 -10.468370438 +v 3.561346054 9.998181343 -11.135701180 +v 3.976654530 10.109930038 -10.659343719 +v 3.976654530 9.998181343 -10.659343719 +v 1.942673564 15.435887337 -10.468370438 +v 2.548398018 14.662881851 -11.135701180 +v 1.861335874 15.304441452 -10.932935715 +v 2.175079346 14.013488770 -9.932898521 +v 2.175079823 14.013489723 -10.932935715 +v 2.320821285 14.267008781 -11.135701180 +v 0.913058519 15.672581673 -10.468370438 +v 0.872035027 15.541136742 -10.932935715 +v 1.718274593 14.979496956 -11.135701180 +v 0.796704412 15.184299469 -11.135701180 +v -0.137626544 15.740912437 -10.468370438 +v -0.137511060 15.609466553 -10.932935715 +v -0.137507826 15.245204926 -11.135701180 +v 1.427499771 14.319040298 -9.932898521 +v 0.653192222 14.504487991 -9.932898521 +v 1.427499771 14.319040298 -10.932935715 +v 1.546528220 14.589397430 -11.135701180 +v 0.712450206 14.785190582 -11.135701180 +v 0.653192282 14.504487991 -10.932935715 +v -0.137504414 14.858480453 -11.135701180 +v -0.137501866 14.566658020 -10.932935715 +v -0.137501940 14.566658020 -9.932898521 +v -3.137510300 9.998181343 -10.932937622 +v 3.159098625 9.998181343 -16.652217865 +v 2.862492561 9.998181343 -16.934700012 +v 3.588604927 9.998181343 -16.220819473 +v 8.659689903 15.017164230 -18.066513062 +v 8.862455368 15.304441452 -17.940097809 +v 9.327021599 15.435887337 -17.858776093 +v 8.659689903 14.277847290 -17.454166412 +v 8.862455368 14.013489723 -17.626138687 +v 8.862455368 14.319040298 -18.373718262 +v 8.659689903 14.590009689 -18.254480362 +v 8.862455368 15.541136742 -18.929397583 +v 9.327021599 15.672581673 -18.888389587 +v 8.659689903 15.202935219 -19.000724792 +v 8.659689903 14.858480453 -19.932903290 +v 8.659689903 15.245204926 -19.932899475 +v 8.862455368 15.609466553 -19.932895660 +v 9.327021599 15.740912437 -19.932781219 +v 8.862455368 14.504487991 -19.148025513 +v 8.659689903 14.795264244 -19.086702347 +v 8.862455368 14.566658020 -19.932905197 +v -3.135706425 9.998181343 -16.932899475 +v 2.862493038 9.998181343 -22.931098938 +v 8.862454414 9.998181343 -22.932899475 +v 8.659689903 15.184299469 -20.867111206 +v 8.862455368 15.541136742 -20.942441940 +v 9.327021599 15.672581673 -20.983467102 +v 8.659689903 14.979496956 -21.788682938 +v 8.862456322 15.304441452 -21.931743622 +v 8.659689903 14.662881851 -22.618804932 +v 9.327021599 15.435887337 -22.013080597 +v 8.862456322 14.941126823 -22.778760910 +v 8.659689903 14.785190582 -20.782857895 +v 8.862455368 14.504487991 -20.723600388 +v 8.862455368 14.319040298 -21.497907639 +v 8.659689903 14.589397430 -21.616935730 +v 8.862455368 14.013489723 -22.245487213 +v 8.659689903 14.267008781 -22.391227722 +v 9.327021599 15.072572708 -22.894615173 +v 8.862455368 14.116405487 -23.931501389 +v 8.659689903 13.729486465 -23.189535141 +v 8.862455368 13.593063354 -22.932899475 +v 8.659689903 13.952214241 -23.628801346 +v 9.136047363 10.109930038 -24.047061920 +v 9.136047363 9.998181343 -24.047061920 +v 8.862455368 9.998181343 -23.930461884 +v 9.327021599 10.354040146 -24.127843857 +v 3.574571609 9.998181343 -23.659011841 +v 3.143173695 9.998181343 -23.229505539 +v 8.659689903 9.998181343 -23.631753922 +v 3.865317822 9.998181343 -23.934371948 +v 3.588604927 9.998181343 -28.736331940 +v 3.159098625 9.998181343 -28.736331940 +v 8.659689903 9.998181343 -23.188991547 +v 2.862492561 9.998181343 -28.939510345 +v 9.327021599 14.219081879 -24.127750397 +v 9.327021599 15.026430130 -24.929210663 +v 9.156151772 15.381684303 -24.714845657 +v 9.156151772 15.242951393 -24.714845657 +v 9.327021599 10.354034424 -24.929210663 +v 4.860936642 10.354034424 -24.931011200 +v 4.644866943 10.109925270 -24.711727142 +v 4.644866943 9.998181343 -24.711727142 +v 9.136047363 9.998181343 -24.714178085 +v 9.136047363 10.109925270 -24.714178085 +v 4.861299992 15.026519775 -24.931093216 +v 4.644983768 15.381774902 -24.715158463 +v 4.644983768 15.243041992 -24.715158463 +v 4.644979954 15.383560181 -29.226558685 +v 4.644438744 15.242953300 -29.233018875 +v 4.858804226 15.026432037 -29.403888702 +v 4.057260036 14.220699310 -29.403806686 +v 2.708355427 14.941128731 -28.939508438 +v 3.861094475 14.116407394 -28.939508438 +v 2.813170910 15.073310852 -29.403806686 +v 2.546679020 14.678532600 -28.736331940 +v 3.589074135 13.975436211 -28.736331940 +v 4.858804226 10.354028702 -29.403888702 +v 4.644866943 10.109920502 -29.206455231 +v 4.644866943 9.998181343 -29.206455231 +v 3.865318775 9.998181343 -28.932861328 +v 3.158733845 13.749273300 -28.736331940 +v 4.056933880 10.354027748 -29.403806686 +v 2.862492561 13.593065262 -29.932897568 +v 2.862492561 9.998182297 -29.932899475 +v 2.862492561 13.593065262 -28.939510345 +v 1.861337543 15.304443359 -28.939508438 +v 1.933394313 15.435888290 -29.403806686 +v 1.725657225 15.017166138 -28.736331940 +v 2.338002682 14.277850151 -28.736331940 +v 2.175081253 14.013491631 -28.939508438 +v 2.175081253 14.013492584 -29.932897568 +v 1.537689686 14.590011597 -28.736331940 +v 1.427501559 14.319043159 -28.939508438 +v 0.872036457 15.541138649 -28.939508438 +v 0.903779268 15.672584534 -29.403806686 +v 0.791445196 15.202938080 -28.736331940 +v -0.140611842 15.740915298 -29.403806686 +v -0.140727192 15.609468460 -28.939094543 +v -0.140733764 14.858482361 -28.736331940 +v -0.140730351 15.245207787 -28.736331940 +v 1.427501559 14.319043159 -29.932897568 +v 0.653193831 14.504489899 -28.939510345 +v 0.705467701 14.795266151 -28.736331940 +v 0.653193951 14.504489899 -29.932899475 +v -0.137500286 14.566659927 -28.939510345 +v -0.137500197 14.566660881 -29.932897568 +v -3.137508869 9.998181343 -28.939510345 +v 3.976916313 10.109919548 -29.212692261 +v 3.976916313 9.998181343 -29.212692261 +v -1.141009688 15.541136742 -10.932935715 +v -1.069683313 15.202935219 -11.135701180 +v -1.182017684 15.672581673 -10.468370438 +v -2.211632252 15.435887337 -10.468370438 +v -2.003895283 15.017164230 -11.135701180 +v -2.975640297 14.941862106 -10.932935715 +v -2.130310535 15.304441452 -10.932935715 +v -0.922381461 14.504487991 -9.932898521 +v -1.696689010 14.319040298 -9.932898521 +v -0.922381401 14.504487991 -10.932935715 +v -0.983705938 14.795264244 -11.135701180 +v -1.815927625 14.590009689 -11.135701180 +v -1.696688890 14.319040298 -10.932935715 +v -2.444268703 14.013488770 -9.932898521 +v -3.091409206 15.073307991 -10.468370438 +v -2.824917316 14.678530693 -11.135701180 +v -2.616240501 14.277847290 -11.135701180 +v -2.444268703 14.013489723 -10.932935715 +v -3.867311954 13.975434303 -11.135701180 +v -3.436972618 13.749271393 -11.135701180 +v -3.137510300 13.593063354 -9.932898521 +v -3.137510300 13.593063354 -10.932935715 +v -4.141528130 14.118021011 -10.932935715 +v -3.437336922 9.998181343 -11.135702133 +v -3.866843224 9.998181343 -11.135702133 +v -3.137510300 9.998181343 -9.932899475 +v -3.418189049 9.998181343 -16.636293411 +v -4.140335083 9.998181343 -10.932937622 +v -4.138982296 9.998181343 -15.935336113 +v -3.849586487 9.998181343 -16.206787109 +v -4.334934235 14.220697403 -10.468370438 +v -5.135976791 15.028306961 -10.468370438 +v -4.919996262 15.383560181 -10.639239311 +v -4.919996262 15.244828224 -10.639239311 +v -4.919999599 15.243041992 -15.150640488 +v -4.919999599 15.381774902 -15.150640488 +v -5.136315823 15.026519775 -14.934705734 +v -4.919883251 10.109925270 -15.154071808 +v -4.919883251 10.109920502 -10.659344673 +v -4.919883251 9.998181343 -10.659344673 +v -4.916337013 9.998181343 -15.151620865 +v -5.135952473 10.354034424 -14.934789658 +v -5.135952950 10.354028702 -10.468370438 +v -4.254973412 10.109919548 -10.659344673 +v -4.254973412 9.998181343 -10.659344673 +v -4.335172176 10.354027748 -10.468370438 +v -8.940937996 13.952216148 -16.233774185 +v -9.144116402 14.941864014 -17.094768524 +v -9.144117355 14.118022919 -15.928879738 +v -9.608413696 15.026519775 -14.934091568 +v -9.437545776 15.381774902 -15.150407791 +v -9.437545776 15.243041992 -15.150407791 +v -9.608413696 14.219083786 -15.734826088 +v -9.608413696 15.072574615 -16.967962265 +v -9.144118309 9.998181343 -16.932897568 +v -8.934705734 9.998181343 -16.676807404 +v -9.144119263 9.998181343 -15.930072784 +v -9.411063194 9.998181343 -15.151620865 +v -8.940937996 9.998181343 -16.230821609 +v -9.411063194 10.109925270 -15.151620865 +v -9.608496666 10.354034424 -14.934453964 +v -9.417300224 10.109930038 -15.814449310 +v -9.608414650 10.354040146 -15.735155106 +v -9.417300224 9.998181343 -15.814449310 +v -8.940937996 13.729488373 -16.673040390 +v -9.144117355 13.593065262 -16.932897568 +v -10.137507439 9.998181343 -16.932897568 +v -10.137506485 13.593065262 -16.932897568 +v -9.608414650 15.435888290 -17.849494934 +v -8.940939903 14.662883759 -17.243770599 +v -9.144117355 15.304443359 -17.940097809 +v -8.940939903 14.267010689 -17.471347809 +v -10.137507439 14.013492584 -17.626140594 +v -9.144117355 14.013491631 -17.626140594 +v -8.940939903 14.979497910 -18.073894501 +v -9.608414650 15.672584534 -18.879110336 +v -9.144116402 15.541138649 -18.929399490 +v -8.940939903 15.184301376 -18.995464325 +v -9.608414650 15.740915298 -19.929794312 +v -9.143704414 15.609468460 -19.929679871 +v -8.940939903 15.245207787 -19.929676056 +v -8.940939903 14.589399338 -18.245639801 +v -9.144117355 14.319043159 -18.373720169 +v -8.940939903 14.785192490 -19.079717636 +v -10.137507439 14.319043159 -18.373720169 +v -10.137506485 14.504489899 -19.148027420 +v -9.144116402 14.504489899 -19.148027420 +v -8.940939903 14.858482361 -19.929672241 +v -9.144117355 14.566659927 -19.932907104 +v -10.137506485 14.566660881 -19.932907104 +v -3.137508392 9.998181343 -22.931098938 +v -10.137507439 9.998181343 -22.932899475 +v -9.608414650 15.672584534 -20.974185944 +v -9.144116402 15.541138649 -20.942443848 +v -8.940939903 15.202938080 -20.861852646 +v -9.144116402 15.304443359 -21.931743622 +v -8.940939903 15.017166138 -21.796064377 +v -9.608414650 15.435888290 -22.003801346 +v -9.144116402 14.941128731 -22.778762817 +v -10.137507439 14.504489899 -20.723600388 +v -8.940939903 14.795266151 -20.775875092 +v -10.137506485 14.319043159 -21.497907639 +v -9.144117355 14.504489899 -20.723600388 +v -8.940939903 14.590011597 -21.608097076 +v -10.137506485 14.013492584 -22.245487213 +v -9.144116402 14.319043159 -21.497907639 +v -8.940939903 14.678532600 -22.617086411 +v -9.608414650 15.073310852 -22.883577347 +v -8.940939903 14.277850151 -22.408409119 +v -9.144116402 14.013491631 -22.245487213 +v -10.137506485 13.593065262 -22.932899475 +v -9.144117355 13.593065262 -22.932899475 +v -8.940939903 13.749273300 -23.229141235 +v -8.940939903 13.975436211 -23.659481049 +v -9.144116402 14.116407394 -23.931501389 +v -3.863620758 9.998181343 -23.644977570 +v -4.135071278 9.998181343 -23.934373856 +v -8.940939903 9.998181343 -23.659011841 +v -3.434114456 9.998181343 -23.213581085 +v -8.940939903 9.998181343 -23.229505539 +v -9.144118309 9.998181343 -22.932899475 +v -3.393599987 9.998181343 -28.730098724 +v -3.839584827 9.998181343 -28.736330032 +v -9.137470245 9.998181343 -23.935726166 +v -9.417302132 9.998181343 -24.047323227 +v -9.417302132 10.109919548 -24.047323227 +v -9.608496666 10.354028702 -24.929210663 +v -9.608414650 10.354027748 -24.127340317 +v -9.411063194 10.109920502 -24.715274811 +v -9.411063194 9.998181343 -24.715274811 +v -3.137508869 9.998182297 -29.932899475 +v -4.140333652 9.998181343 -28.939510345 +v -4.255957127 10.109930038 -29.212692261 +v -4.255957127 9.998181343 -29.212692261 +v -1.141008139 15.541138649 -28.939508438 +v -1.191296935 15.672584534 -29.403806686 +v -1.074942827 15.184301376 -28.736331940 +v -2.130308628 15.304443359 -28.939510345 +v -2.220911503 15.435888290 -29.403806686 +v -1.996512532 14.979497910 -28.736331940 +v -2.975638866 14.941864014 -28.939508438 +v -2.826636791 14.662883759 -28.736331940 +v -0.922379851 14.504489899 -28.939508438 +v -0.990688443 14.785192490 -28.736331940 +v -0.922379732 14.504489899 -29.932897568 +v -1.696687222 14.319043159 -28.939510345 +v -1.824766159 14.589399338 -28.736331940 +v -2.444266796 14.013491631 -28.939510345 +v -2.599059105 14.267010689 -28.736331940 +v -1.696687341 14.319043159 -29.932899475 +v -2.444266796 14.013492584 -29.932899475 +v -3.102445602 15.072574615 -29.403804779 +v -4.141526699 14.118022919 -28.939510345 +v -3.137508869 13.593065262 -28.939510345 +v -3.137508869 13.593065262 -29.932897568 +v -3.836632729 13.952216148 -28.736330032 +v -3.397366047 13.729488373 -28.736330032 +v -4.335580826 14.219083786 -29.403804779 +v -5.136315823 15.026519775 -29.403804779 +v -4.919999599 15.381774902 -29.232936859 +v -4.919455051 15.242951393 -29.226558685 +v -4.918786526 10.109925270 -29.206455231 +v -4.918786526 10.109919548 -24.711729050 +v -4.918786526 9.998181343 -24.711729050 +v -4.918786526 9.998181343 -29.206455231 +v -5.135952473 10.354034424 -29.403888702 +v -5.133820057 15.026432037 -24.931009293 +v -5.133820057 10.354028702 -24.931009293 +v -4.919454575 15.381685257 -24.715076447 +v -4.919454575 15.242953300 -24.715076447 +v -4.335251331 10.354040146 -29.403806686 +v -9.431168556 15.244828224 -24.715387344 +v -9.608496666 15.026432037 -24.929210663 +v -9.431168556 15.383560181 -24.715387344 +v -9.608414650 14.220699310 -24.127666473 +v -9.194107056 2.851734638 2.761604309 +v -9.184239388 4.903903484 2.737780094 +v -9.217930794 4.903903484 2.771472692 +v -9.260048866 2.851734638 2.737920523 +v -9.251623154 4.903903484 2.737780094 +v -9.194107056 2.851734638 2.999632597 +v -9.184238434 4.903903484 2.975809097 +v -9.217930794 4.903903484 3.009500980 +v -9.260048866 2.851734638 2.975808382 +v -9.251622200 4.903903484 2.975809097 +v -9.194107056 2.851734638 2.951984406 +v -9.217930794 4.903903484 2.942117214 +v -9.174771309 2.851734638 2.975808382 +v -9.241754532 2.851734638 2.951984406 +v -9.174771309 2.851734638 2.738004923 +v -9.241754532 2.851734638 2.999632597 +v -9.241754532 2.851734638 2.523857117 +v -9.194107056 2.851734638 2.523857117 +v -9.217930794 4.903903484 2.533725500 +v -9.260048866 2.851734638 2.500032902 +v -9.241754532 2.851734638 2.714097023 +v -9.241754532 2.851734638 2.476208925 +v -9.251622200 4.903903484 2.500033379 +v -9.194107056 2.851734638 2.476208925 +v -9.174771309 2.851734638 2.500032902 +v -9.184238434 4.903903484 2.500033379 +v -9.194107056 2.851734638 2.714097023 +v -9.217930794 4.903903484 2.704088449 +v -9.217930794 4.903903484 2.466341496 +v -9.241754532 2.851734638 2.047632456 +v -9.194107056 2.851734638 2.047632456 +v -9.217930794 4.903903484 2.057500839 +v -9.260048866 2.851734638 2.023808241 +v -9.241754532 2.851734638 1.999984503 +v -9.251622200 4.903903484 2.023808718 +v -9.194107056 2.851734638 1.999984503 +v -9.174771309 2.851734638 2.023808241 +v -9.184238434 4.903903484 2.023808718 +v -9.260048866 2.851734638 2.261920691 +v -9.241754532 2.851734638 2.285828829 +v -9.217930794 4.903903484 2.295696974 +v -9.174771309 2.851734638 2.262004614 +v -9.194107056 2.851734638 2.238096952 +v -9.217930794 4.903903484 2.228312969 +v -9.194107056 2.851734638 2.285828829 +v -9.184239388 4.903903484 2.262005091 +v -9.241754532 2.851734638 2.238096952 +v -9.251623154 4.903903484 2.262005091 +v -9.241754532 2.851734638 1.761872530 +v -9.251623154 4.903903484 1.785780668 +v -9.217930794 4.903903484 1.752088666 +v -9.174771309 2.851734638 1.785780668 +v -9.184239388 4.903903484 1.785780668 +v -9.194107056 2.851734638 1.809604406 +v -9.217930794 4.903903484 1.819472432 +v -9.260048866 2.851734638 1.785696149 +v -9.217930794 4.903903484 1.990117311 +v -9.194107056 2.851734638 1.761872530 +v -9.241754532 2.851734638 1.809604406 +v -9.241754532 2.851734638 1.571408272 +v -9.194107056 2.851734638 1.571408272 +v -9.217930794 4.903903484 1.581276536 +v -9.260048866 2.851734638 3.202257156 +v -9.174771309 2.851734638 3.202257156 +v -9.251623154 2.764342785 2.975809097 +v -9.174771309 2.764550686 3.202257156 +v -9.174771309 2.764550686 2.975808382 +v -9.194107056 2.764285803 2.999632597 +v -9.251623154 2.764400005 3.202257156 +v -9.217930794 2.764285803 2.975809097 +v -9.217930794 2.764400005 3.202223778 +v -9.217930794 2.851734638 3.202223778 +v -9.217930794 2.764285564 2.737780094 +v -9.217930794 2.764285564 2.771472692 +v -9.184239388 2.764371395 2.737920523 +v -9.260048866 2.764551163 2.737920523 +v -9.241754532 2.764342785 2.714097023 +v -9.194107056 2.764285803 2.951984882 +v -9.217930794 2.764285564 2.500033379 +v -9.194107056 2.764285564 2.523857117 +v -9.174771309 2.764551163 2.500032902 +v -9.251623154 2.764342785 2.500032902 +v -9.194107056 2.764285564 2.476209641 +v -9.217930794 2.764285564 2.295696497 +v -9.184239388 2.764370918 2.261920691 +v -9.260048866 2.764551163 2.261920691 +v -9.217930794 2.764285564 2.262004614 +v -9.241754532 2.764342785 2.238096952 +v -9.217930794 2.764285803 2.023808718 +v -9.251623154 2.764342785 2.023808718 +v -9.194107056 2.764285803 2.047632456 +v -9.194107056 2.764285803 1.999985099 +v -9.174771309 2.764550686 2.023808241 +v -9.260048866 2.764551163 1.785696149 +v -9.184239388 2.764371395 1.785696149 +v -9.217930794 2.764285564 1.819471836 +v -9.217930794 2.764285564 1.785780668 +v -9.251623154 2.764342785 1.547584295 +v -9.241754532 2.764342785 1.761872530 +v -9.194107056 2.764285564 1.571408272 +v -9.174771309 2.851734638 1.547583818 +v -9.174771309 2.764551163 1.547583818 +v -9.260048866 2.851734638 1.547583818 +v -9.194107056 2.851734638 1.523760080 +v -9.241754532 2.851734638 1.523760080 +v -9.217930794 4.903903484 1.513892889 +v -9.184238434 4.903903484 1.547584534 +v -9.251622200 4.903903484 1.547584534 +v -9.194107056 2.851734638 1.333379865 +v -9.184239388 4.903903484 1.309556246 +v -9.217930794 4.903903484 1.343248129 +v -9.260048866 2.851734638 1.309471726 +v -9.251623154 4.903903484 1.309556246 +v -9.241754532 2.851734638 1.285648108 +v -9.217930794 4.903903484 1.275864244 +v -9.174771309 2.851734638 1.309556246 +v -9.241754532 2.851734638 1.333379865 +v -9.194107056 2.851734638 1.285648108 +v -9.174771309 2.851734638 0.833331823 +v -9.194107056 2.851734638 0.809423327 +v -9.184239388 4.903903484 0.833331823 +v -9.194107056 2.851734638 0.857155442 +v -9.241754532 2.851734638 0.857155442 +v -9.217930794 4.903903484 0.867023766 +v -9.260048866 2.851734638 0.833247066 +v -9.241754532 2.851734638 0.809423327 +v -9.251623154 4.903903484 0.833331823 +v -9.194107056 2.851734638 1.095183849 +v -9.174771309 2.851734638 1.071359396 +v -9.184238434 4.903903484 1.071360111 +v -9.241754532 2.851734638 1.095183849 +v -9.217930794 4.903903484 1.105052114 +v -9.260048866 2.851734638 1.071359396 +v -9.241754532 2.851734638 1.047535658 +v -9.251622200 4.903903484 1.071360111 +v -9.194107056 2.851734638 1.047535658 +v -9.217930794 4.903903484 1.037668347 +v -9.217930794 4.903903484 0.799639761 +v -9.194107056 2.851734638 0.618959129 +v -9.184238434 4.903903484 0.595135331 +v -9.217930794 4.903903484 0.628827274 +v -9.260048866 2.851734638 0.595134735 +v -9.251622200 4.903903484 0.595135331 +v -9.194107056 2.851734638 0.571310997 +v -9.217930794 4.903903484 0.561443686 +v -9.174771309 2.851734638 0.595134735 +v -9.241754532 2.851734638 0.618959129 +v -9.241754532 2.851734638 0.571310997 +v -9.241754532 2.851734638 0.380930841 +v -9.194107056 2.851734638 0.380930841 +v -9.217930794 4.903903484 0.390799046 +v -9.174771309 2.851734638 0.357107073 +v -9.184239388 4.903903484 0.357107073 +v -9.260048866 2.851734638 0.357022703 +v -9.251623154 4.903903484 0.357107073 +v -9.241754532 2.851734638 0.333198935 +v -9.217930794 4.903903484 0.323415101 +v -9.194107056 2.851734638 0.333198935 +v -9.194107056 2.851734638 0.142734706 +v -9.184238434 4.903903484 0.118910953 +v -9.217930794 4.903903484 0.152602926 +v -9.260048866 2.851734638 0.118910357 +v -9.251622200 4.903903484 0.118910953 +v -9.194107056 2.851734638 0.095086604 +v -9.217930794 4.903903484 0.085219286 +v -9.174771309 2.851734638 0.118910357 +v -9.241754532 2.851734638 0.142734706 +v -9.241754532 2.851734638 0.095086604 +v -9.217930794 2.764285564 1.547584534 +v -9.194107056 2.764285564 1.523760676 +v -9.260048866 2.764551163 1.309471726 +v -9.184239388 2.764371395 1.309471726 +v -9.217930794 2.764285564 1.343247890 +v -9.217930794 2.764285564 1.309556246 +v -9.241754532 2.764342785 1.285648108 +v -9.194107056 2.764285803 1.095183849 +v -9.251623154 2.764342785 1.071359873 +v -9.174771309 2.764551163 1.071359396 +v -9.217930794 2.764285803 1.071360111 +v -9.194107056 2.764285803 1.047536373 +v -9.217930794 2.764285564 0.833331823 +v -9.241754532 2.764342785 0.809423327 +v -9.260048866 2.764550686 0.833247066 +v -9.217930794 2.764285564 0.867023468 +v -9.184239388 2.764371395 0.833247066 +v -9.251623154 2.764342785 0.595135033 +v -9.194107056 2.764285803 0.618959129 +v -9.217930794 2.764285803 0.595135331 +v -9.174771309 2.764551163 0.595134735 +v -9.194107056 2.764285803 0.571311593 +v -9.184239388 2.764371395 0.357022703 +v -9.217930794 2.764285564 0.390798748 +v -9.260048866 2.764551163 0.357022703 +v -9.217930794 2.764285564 0.357107073 +v -9.241754532 2.764342785 0.333198935 +v -9.217930794 2.764285803 0.118910953 +v -9.194107056 2.764285803 0.142734706 +v -9.174771309 2.764551163 0.118910357 +v -9.251623154 2.764342785 0.118910655 +v -9.194107056 2.764285803 0.095087208 +v -9.241754532 0.663206697 2.999632597 +v -9.194107056 0.663206935 2.951984406 +v -9.194107056 0.663206697 2.761604309 +v -9.260048866 0.663206697 2.737920523 +v -9.174771309 0.663206935 2.975808382 +v -9.194107056 0.663206697 2.999632597 +v -9.174771309 0.663206697 2.738004923 +v -9.260048866 0.663206935 2.975808382 +v -9.241754532 0.663206935 2.951984406 +v -9.194107056 0.663206697 2.714097023 +v -9.241754532 0.663206816 2.523857117 +v -9.194107056 0.663206816 2.476208925 +v -9.174771309 0.663206816 2.500032902 +v -9.194107056 0.663206816 2.523857117 +v -9.241754532 0.663206697 2.714097023 +v -9.260048866 0.663206816 2.500032902 +v -9.241754532 0.663206816 2.476208925 +v -9.174771309 0.663206816 2.023808241 +v -9.194107056 0.663206816 1.999984503 +v -9.194107056 0.663206816 2.047632217 +v -9.241754532 0.663206816 2.047632217 +v -9.260048866 0.663206816 2.023808241 +v -9.241754532 0.663206816 1.999984503 +v -9.194107056 0.663206816 2.285828829 +v -9.174771309 0.663206816 2.262005091 +v -9.241754532 0.663206816 2.285828829 +v -9.260048866 0.663206816 2.261920691 +v -9.241754532 0.663206816 2.238096952 +v -9.194107056 0.663206816 2.238096952 +v -9.194107056 0.663206816 1.761872530 +v -9.194107056 0.663206816 1.809604406 +v -9.260048866 0.663206816 1.785696149 +v -9.241754532 0.663206816 1.761872530 +v -9.241754532 0.663206816 1.571408272 +v -9.194107056 0.663206816 1.571408272 +v -9.174771309 0.663206816 1.785780311 +v -9.241754532 0.663206816 1.809604406 +v -9.174771309 0.663206697 3.202257156 +v -9.174771309 0.585616350 3.202257156 +v -9.251623154 0.585465491 2.975808382 +v -9.251623154 0.585465491 3.202257156 +v -9.260048866 0.663206697 3.202257156 +v -9.217930794 0.663206697 3.202223778 +v -9.174771309 0.585616350 2.975808382 +v -9.260048866 0.585616350 2.737920523 +v -9.184239388 0.585465550 2.737920523 +v -9.194107056 0.585465491 2.999632597 +v -9.217930794 0.585465491 3.202223778 +v -9.224709511 0.001949469 2.975809097 +v -9.217930794 0.585465550 2.771472692 +v -9.194107056 0.585465491 2.951984406 +v -9.224709511 0.001949608 2.737780094 +v -9.241754532 0.585465550 2.714097023 +v -9.251623154 0.585465550 2.500032902 +v -9.224709511 0.001949469 2.500033379 +v -9.194107056 0.585465550 2.523857117 +v -9.174771309 0.585616410 2.500032902 +v -9.194107056 0.585465550 2.476208925 +v -9.260048866 0.585616410 2.261920691 +v -9.184239388 0.585465550 2.261920691 +v -9.217930794 0.585465550 2.295696497 +v -9.251623154 0.585465550 2.023808241 +v -9.224709511 0.001949469 2.023808718 +v -9.194107056 0.585465550 2.047632217 +v -9.194107056 0.585465550 1.999984503 +v -9.174771309 0.585616410 2.023808241 +v -9.224709511 0.001949678 2.262005091 +v -9.241754532 0.585465550 2.238096952 +v -9.260048866 0.585616410 1.785696149 +v -9.184239388 0.585465372 1.785696149 +v -9.174771309 0.663206816 1.547583818 +v -9.251623154 0.585465431 1.547583818 +v -9.260048866 0.663206816 1.547583818 +v -9.174771309 0.585616469 1.547583818 +v -9.217930794 0.585465372 1.819472313 +v -9.224709511 0.001949678 1.785780668 +v -9.194107056 0.585465431 1.571408272 +v -9.241754532 0.585465372 1.761872530 +v -9.241754532 0.663206816 1.523760080 +v -9.194107056 0.663206816 1.523760080 +v -9.241754532 0.663206875 1.285648108 +v -9.194107056 0.663206875 1.285648108 +v -9.194107056 0.663206875 1.333379865 +v -9.260048866 0.663206875 1.309471726 +v -9.241754532 0.663206875 1.333379865 +v -9.174771309 0.663206875 1.309556246 +v -9.260048866 0.663206875 1.071359396 +v -9.241754532 0.663206875 1.095183849 +v -9.241754532 0.663206875 1.047535658 +v -9.194107056 0.663206875 1.047535658 +v -9.174771309 0.663206875 1.071359396 +v -9.194107056 0.663206875 1.095183849 +v -9.241754532 0.663206875 0.809423327 +v -9.194107056 0.663206875 0.809423327 +v -9.194107056 0.663206875 0.857155442 +v -9.260048866 0.663206875 0.833247066 +v -9.174771309 0.663206875 0.833331823 +v -9.241754532 0.663206875 0.857155442 +v -9.241754532 0.663206875 0.618959129 +v -9.194107056 0.663206875 0.618959129 +v -9.260048866 0.663206875 0.595134735 +v -9.241754532 0.663206875 0.571310997 +v -9.194107056 0.663206875 0.571310997 +v -9.174771309 0.663206875 0.595134735 +v -9.194107056 0.663206875 0.380930841 +v -9.260048866 0.663206875 0.357022703 +v -9.241754532 0.663206875 0.380930841 +v -9.174771309 0.663206875 0.357107073 +v -9.194107056 0.663206875 0.333198935 +v -9.241754532 0.663206875 0.333198935 +v -9.194107056 0.663206875 0.142734706 +v -9.241754532 0.663206875 0.142734706 +v -9.194107056 0.663206875 0.095086604 +v -9.174771309 0.663206875 0.118910357 +v -9.260048866 0.663206875 0.118910357 +v -9.241754532 0.663206875 0.095086604 +v -9.224709511 0.001949469 1.547584534 +v -9.194107056 0.585465431 1.523760080 +v -9.260048866 0.585616469 1.309471726 +v -9.224709511 0.001949678 1.309556246 +v -9.217930794 0.585465431 1.343247890 +v -9.241754532 0.585465431 1.285648108 +v -9.184239388 0.585465431 1.309471726 +v -9.194107056 0.585465431 1.095183849 +v -9.251623154 0.585465431 1.071359396 +v -9.224709511 0.001949330 1.071360111 +v -9.174771309 0.585616469 1.071359396 +v -9.194107056 0.585465431 1.047535658 +v -9.184239388 0.585465431 0.833247066 +v -9.224709511 0.001949748 0.833331823 +v -9.241754532 0.585465491 0.809423327 +v -9.260048866 0.585616469 0.833247066 +v -9.217930794 0.585465431 0.867023468 +v -9.251623154 0.585465491 0.595134735 +v -9.174771309 0.585616529 0.595134735 +v -9.260048866 0.585616529 0.357022703 +v -9.184239388 0.585465491 0.357022703 +v -9.224709511 0.001949330 0.595135331 +v -9.194107056 0.585465491 0.618959129 +v -9.194107056 0.585465491 0.571310997 +v -9.217930794 0.585465491 0.390798748 +v -9.224709511 0.001949748 0.357107073 +v -9.241754532 0.585465491 0.333198935 +v -9.194107056 0.585465491 0.142734706 +v -9.224709511 0.001949399 0.118910953 +v -9.174771309 0.585616529 0.118910357 +v -9.251623154 0.585465491 0.118910357 +v -9.194107056 0.585465491 0.095086604 +v -9.241754532 2.851734638 -0.095293581 +v -9.194107056 2.851734638 -0.095293581 +v -9.217930794 4.903903484 -0.085425362 +v -9.260048866 2.851734638 -0.119201690 +v -9.174771309 2.851734638 -0.119117334 +v -9.194107056 2.851734638 -0.143025458 +v -9.184239388 4.903903484 -0.119117334 +v -9.241754532 2.851734638 -0.143025458 +v -9.251623154 4.903903484 -0.119117334 +v -9.217930794 4.903903484 -0.152809307 +v -9.194107056 2.851734638 -0.333489835 +v -9.184238434 4.903903484 -0.357313603 +v -9.217930794 4.903903484 -0.323621780 +v -9.260048866 2.851734638 -0.357314199 +v -9.251622200 4.903903484 -0.357313603 +v -9.194107056 2.851734638 -0.381137967 +v -9.217930794 4.903903484 -0.391005576 +v -9.241754532 2.851734638 -0.333489835 +v -9.241754532 2.851734638 -0.381137967 +v -9.174771309 2.851734638 -0.357314199 +v -9.194107056 2.851734638 -0.571518302 +v -9.184239388 4.903903484 -0.595342040 +v -9.217930794 4.903903484 -0.561650217 +v -9.260048866 2.851734638 -0.595426559 +v -9.251623154 4.903903484 -0.595342040 +v -9.241754532 2.851734638 -0.619250298 +v -9.217930794 4.903903484 -0.629034042 +v -9.194107056 2.851734638 -0.619250298 +v -9.194107056 2.851734638 -0.809714198 +v -9.184238434 4.903903484 -0.833538115 +v -9.217930794 4.903903484 -0.799846351 +v -9.260048866 2.851734638 -0.833538711 +v -9.251622200 4.903903484 -0.833538115 +v -9.174771309 2.851734638 -0.595342159 +v -9.241754532 2.851734638 -0.571518302 +v -9.174771309 2.851734638 -0.833538711 +v -9.241754532 2.851734638 -0.809714198 +v -9.241754532 2.851734638 -1.095474720 +v -9.251623154 4.903903484 -1.071566582 +v -9.217930794 4.903903484 -1.105258584 +v -9.174771309 2.851734638 -1.071566582 +v -9.184239388 4.903903484 -1.071566582 +v -9.194107056 2.851734638 -1.047742844 +v -9.217930794 4.903903484 -1.037874579 +v -9.260048866 2.851734638 -1.071650743 +v -9.194107056 2.851734638 -0.857362509 +v -9.217930794 4.903903484 -0.867230058 +v -9.241754532 2.851734638 -1.047742844 +v -9.241754532 2.851734638 -0.857362509 +v -9.194107056 2.851734638 -1.095474720 +v -9.194107056 2.851734638 -1.285938621 +v -9.174771309 2.851734638 -1.309763074 +v -9.184238434 4.903903484 -1.309762597 +v -9.241754532 2.851734638 -1.285938621 +v -9.217930794 4.903903484 -1.276070833 +v -9.260048866 2.851734638 -1.309763074 +v -9.241754532 2.851734638 -1.333587050 +v -9.251622200 4.903903484 -1.309762597 +v -9.194107056 2.851734638 -1.333587050 +v -9.194107056 2.851734638 -1.523967266 +v -9.184239388 4.903903484 -1.547790885 +v -9.217930794 4.903903484 -1.514099121 +v -9.260048866 2.851734638 -1.547875404 +v -9.251623154 4.903903484 -1.547790885 +v -9.241754532 2.851734638 -1.571699142 +v -9.217930794 4.903903484 -1.581482887 +v -9.174771309 2.851734638 -1.547790885 +v -9.217930794 4.903903484 -1.343454361 +v -9.217930794 2.764285564 -0.119117334 +v -9.241754532 2.764342785 -0.143025458 +v -9.260048866 2.764550686 -0.119201690 +v -9.184239388 2.764370918 -0.119201690 +v -9.217930794 2.764285564 -0.085425660 +v -9.217930794 2.764285803 -0.357313752 +v -9.194107056 2.764285803 -0.333490014 +v -9.174771309 2.764550686 -0.357314199 +v -9.194107056 2.764285803 -0.381137490 +v -9.251623154 2.764342785 -0.357313901 +v -9.260048866 2.764551163 -0.595426559 +v -9.184239388 2.764371395 -0.595426559 +v -9.217930794 2.764285564 -0.561650217 +v -9.217930794 2.764285564 -0.595342159 +v -9.251623154 2.764342785 -0.833538413 +v -9.241754532 2.764342785 -0.619250298 +v -9.194107056 2.764285564 -0.809714556 +v -9.174771309 2.764551163 -0.833538711 +v -9.217930794 2.764285564 -0.833538294 +v -9.194107056 2.764285803 -0.857361853 +v -9.217930794 2.764285564 -1.071566582 +v -9.217930794 2.764285564 -1.037874579 +v -9.184239388 2.764370918 -1.071650743 +v -9.260048866 2.764551163 -1.071650743 +v -9.241754532 2.764342785 -1.095474720 +v -9.251623154 2.764342785 -1.309763074 +v -9.194107056 2.764285803 -1.285939097 +v -9.174771309 2.764550686 -1.309763074 +v -9.217930794 2.764285803 -1.309762716 +v -9.194107056 2.764285803 -1.333586216 +v -9.241754532 2.851734638 -1.523967266 +v -9.217930794 2.764285564 -1.514099121 +v -9.184239388 2.764371395 -1.547875404 +v -9.260048866 2.764551163 -1.547875404 +v -9.194107056 2.851734638 -1.571699262 +v -9.260048866 2.851734638 -1.785987616 +v -9.241754532 2.851734638 -1.762163401 +v -9.217930794 4.903903484 -1.752295256 +v -9.241754532 2.851734638 -1.809811354 +v -9.251622200 4.903903484 -1.785987139 +v -9.194107056 2.851734638 -1.809811354 +v -9.174771309 2.851734638 -1.785987616 +v -9.217930794 4.903903484 -1.819678783 +v -9.194107056 2.851734638 -1.762163401 +v -9.184238434 4.903903484 -1.785987139 +v -9.194107056 2.851734638 -2.000191689 +v -9.184239388 4.903903484 -2.024015427 +v -9.217930794 4.903903484 -1.990323782 +v -9.260048866 2.851734638 -2.024100065 +v -9.251623154 4.903903484 -2.024015427 +v -9.241754532 2.851734638 -2.000191689 +v -9.174771309 2.851734638 -2.024015665 +v -9.241754532 2.851734638 -2.238387823 +v -9.194107056 2.851734638 -2.238387823 +v -9.217930794 4.903903484 -2.228519678 +v -9.260048866 2.851734638 -2.262212276 +v -9.194107056 2.851734638 -2.047923565 +v -9.217930794 4.903903484 -2.057707310 +v -9.241754532 2.851734638 -2.286036015 +v -9.251622200 4.903903484 -2.262211800 +v -9.194107056 2.851734638 -2.286036015 +v -9.174771309 2.851734638 -2.262212276 +v -9.184238434 4.903903484 -2.262211800 +v -9.241754532 2.851734638 -2.047923565 +v -9.217930794 4.903903484 -2.295903683 +v -9.241754532 2.851734638 -2.524148226 +v -9.260048866 2.851734638 -2.500324249 +v -9.251623154 4.903903484 -2.500240326 +v -9.241754532 2.851734638 -2.476416349 +v -9.194107056 2.851734638 -2.476416349 +v -9.217930794 4.903903484 -2.466548204 +v -9.194107056 2.851734638 -2.524148226 +v -9.217930794 4.903903484 -2.533931971 +v -9.174771309 2.851734638 -2.500240326 +v -9.184239388 4.903903484 -2.500240326 +v -9.241754532 2.851734638 -2.714612246 +v -9.184238434 4.903903484 -2.738436222 +v -9.217930794 4.903903484 -2.704744339 +v -9.260048866 2.851734638 -2.738436699 +v -9.251622200 4.903903484 -2.738436222 +v -9.194107056 2.851734638 -2.714612246 +v -9.174770355 2.851734638 -2.738436699 +v -9.241754532 2.851734638 -2.762260437 +v -9.194107056 2.851734638 -2.762260437 +v -9.217930794 4.903903484 -2.772128105 +v -9.241754532 2.851734638 -3.000288248 +v -9.251622200 4.903903484 -2.976464748 +v -9.217930794 4.903903484 -3.010156393 +v -9.194107056 2.851734638 -3.000288248 +v -9.184238434 4.903903484 -2.976464748 +v -9.194107056 2.851734638 -2.952640533 +v -9.217930794 4.903903484 -2.942772388 +v -9.260048866 2.851734638 -2.976464748 +v -9.174771309 2.851734638 -2.976464272 +v -9.241754532 2.851734638 -2.952640533 +v -9.217930794 2.764285564 -1.547791004 +v -9.241754532 2.764342785 -1.571699262 +v -9.251623154 2.764342785 -1.785987496 +v -9.194107056 2.764285564 -1.762163520 +v -9.217930794 2.764285564 -1.785987139 +v -9.174771309 2.764551163 -1.785987616 +v -9.217930794 2.764285564 -2.024015665 +v -9.217930794 2.764285564 -1.990323663 +v -9.184239388 2.764371395 -2.024100065 +v -9.260048866 2.764551163 -2.024099827 +v -9.241754532 2.764342785 -2.047923803 +v -9.194107056 2.764285564 -1.809810996 +v -9.217930794 2.764285803 -2.262211800 +v -9.194107056 2.764285803 -2.238388062 +v -9.174771309 2.764550686 -2.262212276 +v -9.251623154 2.764342785 -2.262211800 +v -9.194107056 2.764285803 -2.286035538 +v -9.217930794 2.764285564 -2.500240326 +v -9.260048866 2.764550686 -2.500324249 +v -9.217930794 2.764285564 -2.466548204 +v -9.241754532 2.764342785 -2.524148226 +v -9.184239388 2.764371395 -2.500324249 +v -9.251622200 2.764342785 -2.738436460 +v -9.194107056 2.764285803 -2.714612246 +v -9.174770355 2.764551163 -2.738436699 +v -9.217930794 2.764285803 -2.738436222 +v -9.194107056 2.764285803 -2.762260199 +v -9.251623154 2.764342785 -2.976464748 +v -9.217930794 2.764285564 -2.976464748 +v -9.194107056 2.764285564 -2.952641010 +v -9.174771309 2.764551163 -2.976464272 +v -9.174771309 2.851734400 -3.202257156 +v -9.217930794 2.764285088 -3.201863527 +v -9.194107056 2.764399529 -2.999536991 +v -9.260048866 2.764550447 -3.202257156 +v -9.260048866 2.851734400 -3.202257156 +v -9.184239388 2.764342308 -3.202257156 +v -9.217930794 2.851734400 -3.201863527 +v -9.194107056 0.663206875 -0.333490014 +v -9.241754532 0.663206875 -0.333490014 +v -9.194107056 0.663206875 -0.095293581 +v -9.260048866 0.663206875 -0.119201690 +v -9.241754532 0.663206875 -0.143025458 +v -9.194107056 0.663206875 -0.143025458 +v -9.174771309 0.663206875 -0.119117633 +v -9.241754532 0.663206875 -0.095293581 +v -9.174771309 0.663206875 -0.357314348 +v -9.260048866 0.663206875 -0.357314348 +v -9.241754532 0.663206875 -0.619250298 +v -9.194107056 0.663206875 -0.619250298 +v -9.194107056 0.663206875 -0.381138086 +v -9.194107056 0.663206875 -0.571518421 +v -9.260048866 0.663206875 -0.595426559 +v -9.241754532 0.663206875 -0.571518421 +v -9.241754532 0.663206875 -0.381138086 +v -9.174771309 0.663206875 -0.595342159 +v -9.241754532 0.663206935 -0.809714556 +v -9.194107056 0.663206935 -0.809714556 +v -9.260048866 0.663206935 -0.833538890 +v -9.241754532 0.663206935 -0.857362628 +v -9.194107056 0.663206935 -0.857362628 +v -9.174771309 0.663206935 -0.833538890 +v -9.241754532 0.663206697 -1.095474839 +v -9.194107056 0.663206697 -1.095474839 +v -9.260048866 0.663206697 -1.071651101 +v -9.194107056 0.663206697 -1.047743082 +v -9.241754532 0.663206697 -1.047743082 +v -9.174771309 0.663206697 -1.071566582 +v -9.194107056 0.663206697 -1.285939097 +v -9.174771309 0.663206935 -1.309763074 +v -9.241754532 0.663206697 -1.285939097 +v -9.260048866 0.663206935 -1.309763074 +v -9.241754532 0.663206935 -1.333587050 +v -9.194107056 0.663206935 -1.333587050 +v -9.194107056 0.663206697 -1.523967385 +v -9.260048866 0.663206697 -1.547875524 +v -9.241754532 0.663206697 -1.571699262 +v -9.194107056 0.663206697 -1.571699262 +v -9.260048866 0.585616529 -0.119201690 +v -9.224709511 0.001949748 -0.119117334 +v -9.217930794 0.585465491 -0.085425660 +v -9.184239388 0.585465491 -0.119201690 +v -9.241754532 0.585465491 -0.143025458 +v -9.194107056 0.585465491 -0.333490014 +v -9.224709511 0.001949399 -0.357313752 +v -9.174771309 0.585616529 -0.357314348 +v -9.251623154 0.585465491 -0.357314348 +v -9.194107056 0.585465491 -0.381138086 +v -9.260048866 0.585616350 -0.595426559 +v -9.184239388 0.585465491 -0.595426559 +v -9.251623154 0.585465491 -0.833538711 +v -9.174771309 0.585616350 -0.833538711 +v -9.217930794 0.585465491 -0.561650217 +v -9.224709511 0.001949748 -0.595342159 +v -9.194107056 0.585465491 -0.809714556 +v -9.241754532 0.585465491 -0.619250298 +v -9.224709511 0.001949399 -0.833538294 +v -9.194107056 0.585465491 -0.857362628 +v -9.184239388 0.585465491 -1.071651101 +v -9.224709511 0.001949608 -1.071566701 +v -9.241754532 0.585465491 -1.095474839 +v -9.217930794 0.585465491 -1.037874579 +v -9.260048866 0.585616350 -1.071651101 +v -9.251623154 0.585465491 -1.309763074 +v -9.194107056 0.585465491 -1.285939097 +v -9.194107056 0.585465491 -1.333587050 +v -9.224709511 0.001949399 -1.309762716 +v -9.174771309 0.585616350 -1.309763074 +v -9.184239388 0.585465491 -1.547875524 +v -9.224709511 0.001949608 -1.547790885 +v -9.241754532 0.585465491 -1.571699262 +v -9.260048866 0.585616350 -1.547875524 +v -9.217930794 0.585465491 -1.514099121 +v -9.241754532 0.663206697 -1.523967385 +v -9.174771309 0.663206697 -1.547791004 +v -9.194107056 0.663206816 -1.762163520 +v -9.174771309 0.663206816 -1.785987616 +v -9.241754532 0.663206816 -1.762163520 +v -9.260048866 0.663206816 -1.785987616 +v -9.241754532 0.663206816 -1.809811592 +v -9.194107056 0.663206816 -1.809811592 +v -9.260048866 0.663206816 -2.024100065 +v -9.194107056 0.663206816 -2.000191927 +v -9.174771309 0.663206816 -2.024015903 +v -9.241754532 0.663206816 -2.000191927 +v -9.194107056 0.663206816 -2.047923803 +v -9.194107056 0.663206816 -2.238387823 +v -9.241754532 0.663206816 -2.238387823 +v -9.194107056 0.663206816 -2.286036253 +v -9.174771309 0.663206816 -2.262212276 +v -9.241754532 0.663206816 -2.047923803 +v -9.241754532 0.663206816 -2.286036253 +v -9.260048866 0.663206816 -2.262212276 +v -9.194107056 0.663206816 -2.476416588 +v -9.174771309 0.663206816 -2.500240326 +v -9.194107056 0.663206816 -2.524148226 +v -9.241754532 0.663206816 -2.476416588 +v -9.260048866 0.663206816 -2.500324488 +v -9.241754532 0.663206816 -2.524148226 +v -9.194107056 0.663206816 -2.714612484 +v -9.241754532 0.663206816 -2.714612484 +v -9.260048866 0.663206816 -2.738436699 +v -9.241754532 0.663206816 -2.762260437 +v -9.174770355 0.663206816 -2.738436699 +v -9.241754532 0.663206875 -3.000288486 +v -9.174771309 0.663206875 -2.976464748 +v -9.194107056 0.663206875 -2.952641010 +v -9.241754532 0.663206875 -2.952641010 +v -9.194107056 0.663206816 -2.762260437 +v -9.260048866 0.663206875 -2.976464748 +v -9.194107056 0.663206875 -3.000288486 +v -9.251623154 0.585465550 -1.785987616 +v -9.174771309 0.585616410 -1.785987616 +v -9.260048866 0.585616410 -2.024100065 +v -9.184239388 0.585465550 -2.024100065 +v -9.194107056 0.585465550 -1.762163520 +v -9.224709511 0.001949469 -1.785987139 +v -9.194107056 0.585465550 -1.809811711 +v -9.217930794 0.585465550 -1.990323782 +v -9.224709511 0.001949678 -2.024015665 +v -9.194107056 0.585465550 -2.238387823 +v -9.224709511 0.001949469 -2.262211800 +v -9.174771309 0.585616410 -2.262212276 +v -9.251623154 0.585465550 -2.262212276 +v -9.194107056 0.585465550 -2.286036253 +v -9.241754532 0.585465550 -2.047923803 +v -9.260048866 0.585616410 -2.500324488 +v -9.224709511 0.001949678 -2.500240326 +v -9.217930794 0.585465550 -2.466548204 +v -9.241754532 0.585465550 -2.524148226 +v -9.184239388 0.585465550 -2.500324488 +v -9.194107056 0.585465550 -2.714612484 +v -9.224708557 0.001949469 -2.738436222 +v -9.174770355 0.585616469 -2.738436699 +v -9.251622200 0.585465372 -2.738436699 +v -9.194107056 0.585465431 -2.762260437 +v -9.217930794 0.663206875 -3.201863527 +v -9.260048866 0.663206875 -3.202257156 +v -9.174771309 0.663206875 -3.202257156 +v -9.174771309 0.585616469 -2.975544691 +v -9.260048866 0.585616469 -3.202257156 +v -9.251623154 0.585465431 -2.976464748 +v -9.184239388 0.585465431 -3.202257156 +v -9.224709511 0.001949678 -2.976464748 +v -9.217930794 0.585465431 -2.942772865 +v -9.194107056 0.585465431 -3.000288486 +v -9.217930794 0.585465431 -3.201863527 +v -9.342898369 -0.000000013 -3.231861830 +v -9.342898369 -0.000000013 3.241882324 +v -9.342898369 4.903903484 3.241882324 +v -9.124868393 4.903903484 -3.231861830 +v -9.124868393 4.903903484 3.241882324 +v -9.124868393 -0.000000013 3.241882324 +v -9.124868393 -0.000000013 -3.231861830 +v -9.342898369 4.903903484 -3.231861830 +v -10.522571564 5.376530647 4.996312141 +v -11.944499016 5.376530647 4.868019581 +v -10.522571564 6.424669266 3.616309643 +v -11.764372826 6.424669266 3.499822855 +v -10.522571564 6.886405945 2.539833784 +v -13.171661377 6.430963993 3.262741804 +v -12.903519630 6.891765594 2.222413063 +v -11.623864174 6.886405945 2.432556391 +v -11.459753036 7.187221527 1.186010599 +v -10.522571564 7.187221527 1.282531500 +v -12.589709282 7.192582607 1.004901886 +v -14.142993927 5.574815273 4.435072899 +v -16.842653275 6.576874256 3.338032007 +v -13.740724564 6.623157978 3.103520393 +v -13.518838882 5.382621288 4.609709740 +v -16.202087402 7.625217438 2.103313446 +v -13.430030823 7.083959579 2.075096607 +v -13.066421509 7.384777069 0.871518970 +v -15.707345963 8.086019516 1.149680018 +v -18.450126648 8.610714912 0.656888247 +v -19.308334351 7.562372684 1.751571774 +v -17.787288666 9.071516991 -0.188589811 +v -17.011562347 9.372335434 -1.178062677 +v -15.128343582 8.386837006 0.033630669 +v -14.540811539 8.473677635 -1.098863363 +v -12.697456360 7.471618652 -0.349792302 +v -12.271274567 7.279423714 -0.230548218 +v -12.326546669 7.384777546 -1.577539444 +v -10.522571564 7.274062157 -0.000019173 +v -11.292346954 7.274062157 -0.085567750 +v -11.951164246 7.192582607 -1.472508669 +v -11.125818253 7.187221527 -1.350481272 +v -10.522571564 7.187221527 -1.275847554 +v -11.637353897 6.891765594 -2.690018654 +v -11.962936401 7.083960533 -2.781116486 +v -10.522571564 6.886405945 -2.533149719 +v -10.961707115 6.886405945 -2.597026825 +v -16.224405289 9.459175110 -2.182115555 +v -18.626115799 10.376508713 -2.704424858 +v -19.570501328 10.075691223 -1.874399185 +v -20.377454758 9.614888191 -1.165164828 +v -21.422256470 8.566545486 -0.246882081 +v -23.146909714 9.572109222 -2.623607874 +v -14.657373428 9.071517944 -4.180932045 +v -15.760075569 10.075691223 -5.223401070 +v -13.993212700 8.609780312 -5.028099060 +v -14.951511383 9.613953590 -5.934051991 +v -13.141783714 7.560319424 -6.114133835 +v -12.875452042 7.624282837 -4.308912277 +v -13.371181488 8.086019516 -3.353374243 +v -12.239946365 6.574821472 -5.533876419 +v -11.651623726 6.622223377 -3.811594248 +v -11.252530098 5.572762966 -5.132627487 +v -11.024242401 5.380568027 -5.068752766 +v -10.522571564 6.425604343 -3.607479572 +v -10.821478844 6.425604343 -3.662166119 +v -10.522571564 5.378584385 -4.998468876 +v -11.368676186 6.430028915 -3.732426405 +v -13.950182915 8.386837006 -2.237324953 +v -15.433100700 9.372335434 -3.191458941 +v -17.667814255 10.463348389 -3.546681166 +v -18.845424652 11.468912125 -5.169534683 +v -16.704462051 10.376508713 -4.393375397 +v -16.659719467 11.081255913 -6.463191032 +v -17.741708755 11.382072449 -5.822793007 +v -15.733344078 10.619517326 -7.011487007 +v -16.207056046 11.416520119 -7.968554020 +v -17.204814911 11.878255844 -7.564476013 +v -16.370790482 11.411161423 -9.472515106 +v -14.545764923 9.570056915 -7.714380741 +v -14.991180420 10.369996071 -9.472515106 +v -14.927967072 10.367058754 -8.486566544 +v -13.914962769 8.564492226 -6.845079422 +v -19.943355560 11.382072449 -4.519700527 +v -18.370176315 12.179073334 -7.092521667 +v -19.558938980 12.265913010 -6.611088753 +v -17.447265625 11.887731552 -9.463213921 +v -18.704566956 12.188549042 -9.463213921 +v -20.741472244 12.179073334 -6.132178783 +v -21.906833649 11.878255844 -5.660224438 +v -21.262947083 12.188549042 -9.463213921 +v -19.987119675 12.275389671 -9.463213921 +v -21.025344849 11.081254959 -3.879302502 +v -21.949874878 10.620451927 -3.332099915 +v -22.902603149 11.417453766 -5.256952286 +v -24.191875458 10.369110107 -4.734813690 +v -22.520248413 11.887731552 -9.463213921 +v -24.985912323 10.363021851 -9.472431183 +v -23.594579697 11.426930428 -9.463213921 +v -11.921522141 5.244771004 4.691285133 +v -13.464874268 5.250683784 4.400579453 +v -13.464874268 5.389416695 4.400579453 +v -11.921522141 5.383503914 4.691285133 +v -11.944499016 5.028249741 4.868019581 +v -13.518838882 5.034162521 4.609709740 +v -10.522571564 5.028249741 4.996312141 +v -10.693440437 5.244771004 4.781946659 +v -10.693440437 5.383503914 4.781946659 +v -10.522571564 4.220901012 4.194850445 +v -10.522571564 5.074391842 2.961715221 +v -10.987136841 5.306261063 1.998843908 +v -10.987136841 4.942946434 2.845861673 +v -10.522571564 5.437706947 2.080181360 +v -11.189902306 4.981316566 1.855782747 +v -11.189902306 4.664701939 2.685906410 +v -10.987136841 4.118224621 3.998601198 +v -10.987136841 3.594882727 2.999999046 +v -10.987136841 4.015309334 2.312587738 +v -11.189902306 3.954033852 3.695902348 +v -11.189902306 4.268828392 2.458329201 +v -11.189902306 3.731305599 3.256635666 +v -10.522571564 5.674401283 1.050566673 +v -11.189902306 5.186119080 0.934212565 +v -11.189902306 4.591217518 1.684036255 +v -10.987136841 5.542956352 1.009543061 +v -10.987136841 5.611286163 -0.000002925 +v -10.522571564 5.742732048 -0.000118388 +v -11.189902306 5.247025013 0.000000297 +v -10.987136841 4.320860386 1.565007925 +v -11.189902306 4.787009716 0.849958301 +v -10.987136841 4.506307602 0.790700376 +v -11.189902306 4.860300064 0.000003708 +v -10.987136841 4.568477631 0.000006273 +v -14.080591202 5.442877769 4.228303909 +v -14.080591202 5.581610680 4.228303909 +v -14.142993927 5.226356506 4.435072899 +v -16.743244171 6.583669662 3.146288157 +v -16.743244171 6.444936752 3.146288395 +v -16.842651367 6.228415489 3.338032246 +v -16.842641830 1.554137230 3.338010311 +v -11.944499016 0.355853915 4.868019581 +v -10.522571564 0.355859280 4.194944382 +v -13.518832207 0.359884471 4.609686375 +v -13.464838028 0.115775906 4.400473118 +v -11.921388626 0.111744970 4.691383362 +v -11.921388626 0.000000567 4.691383362 +v -13.462984085 0.004034261 4.393279076 +v -10.987136841 0.000000545 3.997561693 +v -10.713544846 0.000000571 4.781278133 +v -10.713544846 0.111745164 4.781278133 +v -10.713544846 0.111750051 4.114162445 +v -10.713544846 0.000000542 4.114162445 +v -10.522571564 0.355853915 4.996312141 +v -11.189902306 0.000000532 3.698854685 +v -11.189902306 0.000000513 3.256092072 +v -10.987138748 0.000000502 2.999999285 +v -10.987138748 0.000000239 -3.000002146 +v -11.189903259 0.000000226 -3.299829006 +v -11.189903259 0.000000207 -3.729335070 +v -14.073675156 -0.000450481 4.214264393 +v -17.247392654 1.200104237 2.855069160 +v -17.247392654 1.400104165 2.855069160 +v -16.737829208 1.200104237 3.131706238 +v -17.743127823 1.600104690 2.561540604 +v -16.743198395 1.310028553 3.146185875 +v -16.221801758 1.000105262 3.387467623 +v -16.737829208 1.000105023 3.131706238 +v -16.221801758 0.800105274 3.387467623 +v -15.696773529 0.800104618 3.623860836 +v -14.142986298 0.552077711 4.435049057 +v -14.073494911 0.200105667 4.214318752 +v -14.619277954 0.400105536 4.038478851 +v -14.080564499 0.307969123 4.228194237 +v -15.696773529 0.600105345 3.623860836 +v -15.159379005 0.600104690 3.842149973 +v -15.159379005 0.400105536 3.842149973 +v -14.619277954 0.200104803 4.038478851 +v -11.522525787 0.199350193 -4.998117447 +v -11.522524834 0.399350166 -4.998117447 +v -11.312547684 -0.000552034 -4.930464745 +v -11.313628197 0.197789952 -4.928623199 +v -11.077886581 0.004034458 -4.860519409 +v -11.730351448 0.599349976 -5.073661804 +v -11.730351448 0.399350077 -5.073661804 +v -10.522571564 5.674401283 -1.044509530 +v -11.189902306 5.204754829 -0.932175219 +v -10.987136841 5.542956352 -1.003501534 +v -11.189902306 5.018983364 -1.866387129 +v -11.189902306 4.797083855 -0.846197724 +v -11.189902306 4.591829300 -1.678419709 +v -10.522571564 5.437706947 -2.074124336 +v -10.987136841 5.306261063 -1.992802382 +v -10.987136841 4.506307602 -0.784873307 +v -10.987136841 4.015309334 -2.306760550 +v -10.987136841 4.320860386 -1.559180737 +v -11.189902306 4.279667377 -2.478732586 +v -11.189902306 4.680350304 -2.687409163 +v -12.338356018 1.198818803 -5.345024109 +v -12.533795357 1.199349403 -5.453479290 +v -12.139158249 0.999349713 -5.248617649 +v -12.337719917 0.999349594 -5.347032547 +v -12.724548340 1.399349451 -5.566424370 +v -12.724548340 1.599349260 -5.566424370 +v -12.533795357 1.399349451 -5.453479290 +v -17.743127823 1.400104165 2.561540604 +v -11.937133789 0.599349856 -5.157656670 +v -11.937134743 0.799349844 -5.157656193 +v -12.139158249 0.799349785 -5.248617649 +v -19.160146713 2.200103760 1.573689103 +v -19.160099030 2.000426531 1.573725939 +v -13.269801140 1.999348879 -5.946537971 +v -19.592878342 2.200426340 1.222027302 +v -13.269801140 2.199348927 -5.946537971 +v -18.688013077 2.000103712 1.929206133 +v -18.688011169 1.800426364 1.929207444 +v -13.088128090 1.799349070 -5.809739113 +v -19.592884064 2.400103569 1.222023010 +v -13.436311722 2.199348927 -6.081855297 +v -18.234491348 1.800103784 2.245227337 +v -18.234491348 1.600103617 2.245227337 +v -12.913619041 1.599349260 -5.688138008 +v -12.913618088 1.799349189 -5.688138008 +v -13.088128090 1.999348998 -5.809739113 +v -20.024847031 2.600103378 0.844038010 +v -23.146888733 4.549372673 -2.623620272 +v -24.191854477 5.346374035 -4.734823227 +v -23.146909714 9.223649979 -2.623607874 +v -21.422256470 8.218087196 -0.246882007 +v -21.260068893 8.573341370 -0.389510125 +v -19.175127029 7.569168091 1.581561685 +v -21.260068893 8.434608459 -0.389510125 +v -19.175127029 7.430434704 1.581561685 +v -19.308334351 7.213913918 1.751571774 +v -21.422237396 3.543808699 -0.246898398 +v -19.308319092 2.539635181 1.751552343 +v -19.175062180 2.295526981 1.581469178 +v -20.024841309 2.400426388 0.844043970 +v -21.259988785 3.299700022 -0.389589429 +v -20.442436218 2.800103426 0.450453132 +v -20.870805740 2.800103188 0.014673174 +v -20.870805740 3.000103235 0.014673110 +v -20.442432404 2.600426197 0.450456142 +v -21.249750137 3.200103283 -0.401151925 +v -21.631483078 3.400102854 -0.852646232 +v -21.631483078 3.200103283 -0.852646172 +v -21.249750137 3.000103235 -0.401151925 +v -21.983184814 3.600101948 -1.301658869 +v -22.960983276 4.305263996 -2.733731031 +v -22.318733215 3.805263281 -1.764104128 +v -22.639333725 3.805263281 -2.242145777 +v -22.639333725 4.005263329 -2.242145777 +v -22.318899155 3.600747585 -1.764345169 +v -21.983184814 3.400102139 -1.301658869 +v -14.730253220 9.577030182 -7.605214596 +v -15.126667023 10.235299110 -8.406121254 +v -14.730253220 9.438297272 -7.605214596 +v -15.126667023 10.374031067 -8.406121254 +v -14.545764923 9.171813011 -7.714380741 +v -14.075992584 8.571465492 -6.703580856 +v -14.075993538 8.432733536 -6.703579426 +v -13.914962769 8.166248322 -6.845079422 +v -17.301195145 9.664704323 -8.797198296 +v -16.291198730 8.954035759 -8.797198296 +v -17.141239166 9.942949295 -8.999963760 +v -15.988500595 9.118226051 -8.999963760 +v -17.025384903 10.074394226 -9.464529037 +v -15.792250633 9.220903397 -9.464529037 +v -14.927967072 9.968814850 -8.486566544 +v -15.205154419 10.369996071 -9.301646233 +v -15.205154419 10.231264114 -9.301646233 +v -14.990788460 9.978288651 -9.464529037 +v -12.338684082 6.581794739 -5.343604088 +v -13.274061203 7.567292213 -5.945445061 +v -12.338685989 6.443062305 -5.343603611 +v -13.141783714 7.162075520 -6.114133835 +v -12.239946365 6.176578522 -5.533876419 +v -13.274061203 7.428560257 -5.945445061 +v -11.314546585 5.579736233 -4.927428246 +v -14.545763016 4.500739098 -7.714381695 +v -14.990787506 5.307215691 -9.463213921 +v -15.792155266 5.357183456 -9.463213921 +v -13.914960861 3.495175600 -6.845081329 +v -14.927965164 5.297739983 -8.486567497 +v -16.730466843 8.731307983 -8.797198296 +v -16.987102509 8.594884872 -8.999963760 +v -16.987100601 4.999999523 -8.998647690 +v -15.989538193 4.999999523 -8.998647690 +v -16.731008530 4.999999523 -8.795883179 +v -16.288244247 4.999999523 -8.795883179 +v -10.522571564 5.075127602 -2.953901052 +v -10.987136841 4.943681717 -2.838132381 +v -10.522571564 4.222517490 -4.197426319 +v -11.189902306 3.977253675 -3.729803801 +v -10.987136841 4.119840622 -4.004019737 +v -10.522571564 5.030126095 -4.998468876 +v -11.077722549 5.387540817 -4.861165047 +v -10.693440437 5.385379791 -4.782487869 +v -11.077723503 5.248808861 -4.861164570 +v -10.693440437 5.246647835 -4.782487869 +v -11.024242401 5.032286644 -5.068752766 +v -11.252530098 5.174519539 -5.132627487 +v -11.314546585 5.441003799 -4.927427292 +v -12.239945412 1.505504131 -5.533878326 +v -13.141781807 2.491002083 -6.114135265 +v -15.032476425 4.604507923 -8.194774628 +v -14.938087463 4.604507923 -7.995305538 +v -15.032476425 4.804508209 -8.194774628 +v -14.730827332 4.306592941 -7.604877949 +v -15.120501518 4.804507256 -8.400219917 +v -15.120501518 5.004507065 -8.400219917 +v -15.127285004 5.103593826 -8.405874252 +v -15.205821991 5.113069534 -9.272240639 +v -15.205821991 4.999999523 -9.272240639 +v -15.872937202 5.113074780 -9.272240639 +v -11.189902306 3.751090527 -3.299464226 +v -10.987136841 3.594882727 -3.000002384 +v -11.252530098 0.503444910 -5.132629395 +v -13.274473190 2.296855927 -5.944923878 +v -12.338994026 1.311358094 -5.343014717 +v -14.076495171 3.301029444 -6.703143120 +v -14.485184669 3.804508448 -7.230883598 +v -14.608549118 3.804508448 -7.414827347 +v -14.608549118 4.004508495 -7.414827347 +v -14.485260963 3.599347115 -7.230987549 +v -14.356073380 3.599347115 -7.052937508 +v -14.356073380 3.399347782 -7.052937508 +v -14.220742226 3.399347782 -6.880163670 +v -14.725962639 4.204507828 -7.604827881 +v -14.835721016 4.404508591 -7.798212051 +v -14.938087463 4.404508591 -7.995305538 +v -14.835721970 4.204507828 -7.798211575 +v -14.725962639 4.004508495 -7.604827881 +v -10.987138748 0.000000195 -4.002827168 +v -11.024241447 0.361212969 -5.068754196 +v -10.522571564 0.355848223 -4.998444557 +v -10.522571564 0.355847448 -4.197664261 +v -10.713545799 0.000000153 -4.782374859 +v -10.713545799 0.111738972 -4.117465496 +v -10.713545799 0.000000182 -4.117465496 +v -10.713545799 0.111739635 -4.782374859 +v -11.077886581 0.117104389 -4.860519409 +v -11.314742088 0.309298813 -4.926791668 +v -13.436311722 2.399348736 -6.081855297 +v -13.602527618 2.599348783 -6.227298737 +v -13.763211250 2.599348783 -6.378746033 +v -13.763211250 2.799348593 -6.378746033 +v -13.602527618 2.399348736 -6.227298737 +v -14.220742226 3.199348211 -6.880163670 +v -14.073856354 3.199347496 -6.706433773 +v -14.073856354 2.999348164 -6.706433773 +v -13.928043365 2.999348402 -6.546429634 +v -13.928043365 2.799348593 -6.546429634 +v -15.872937202 4.999999523 -9.272240639 +v -18.131317139 9.981318474 -8.797198296 +v -17.988256454 10.306262970 -8.999963760 +v -17.906917572 10.437708855 -9.464529037 +v -19.052888870 10.186120033 -8.797198296 +v -18.977558136 10.542957306 -8.999963760 +v -18.303064346 9.591218948 -8.797198296 +v -19.137142181 9.787012100 -8.797198296 +v -18.936534882 10.674402237 -9.464529037 +v -17.528772354 9.268830299 -8.797198296 +v -17.674510956 9.016634941 -8.998647690 +v -17.674514771 9.015310287 -10.000000954 +v -16.987102509 8.594883919 -10.000000954 +v -18.422090530 9.322186470 -8.998647690 +v -19.196399689 9.506309509 -8.999963760 +v -19.196399689 9.506309509 -10.000000954 +v -18.422092438 9.320861816 -10.000000954 +v -19.987100601 10.247028351 -8.797198296 +v -19.987104416 10.611288071 -8.999963760 +v -19.987218857 10.742734909 -9.464529991 +v -20.919277191 10.204757690 -8.797198296 +v -20.990602493 10.542957306 -8.999963760 +v -21.031610489 10.674402237 -9.464529991 +v -19.987096786 9.860301971 -8.797198296 +v -19.987094879 9.568479538 -8.999963760 +v -19.987094879 9.568479538 -10.000000954 +v -20.833299637 9.797085762 -8.797198296 +v -20.771974564 9.506309509 -8.999963760 +v -20.771974564 9.506309509 -10.000000954 +v -22.961076736 9.440172195 -2.733668089 +v -22.961076736 9.578904152 -2.733668089 +v -23.991712570 10.375905991 -4.815942287 +v -23.991712570 10.237173080 -4.815942287 +v -24.191875458 10.020651817 -4.734813690 +v -22.061225891 10.437708855 -9.464529037 +v -22.825233459 9.943684578 -8.999963760 +v -21.979904175 10.306262970 -8.999963760 +v -22.941001892 10.075129509 -9.464529037 +v -24.184528351 9.222518921 -9.464529037 +v -23.716903687 8.977254868 -8.797198296 +v -22.674510956 9.680353165 -8.797198296 +v -23.991121292 9.119842529 -8.999963760 +v -22.465831757 9.279668808 -8.797198296 +v -23.286565781 8.751092911 -8.797198296 +v -22.293861389 9.015311241 -8.999963760 +v -22.987102509 8.594884872 -8.999963760 +v -22.987102509 8.594883919 -10.000000954 +v -21.665519714 9.591831207 -8.797198296 +v -21.546281815 9.320861816 -8.999963760 +v -21.546281815 9.320861816 -10.000000954 +v -21.853488922 10.018985748 -8.797198296 +v -22.293861389 9.015310287 -10.000000954 +v -24.985912323 10.014828682 -9.472431183 +v -24.769596100 10.370082855 -9.301564217 +v -24.769596100 10.231350899 -9.301564217 +v -24.985546112 5.355849743 -9.464529037 +v -22.944475174 4.205263615 -2.735925198 +v -22.944475174 4.005263329 -2.735925198 +v -23.230068207 4.204940796 -3.239145756 +v -23.229717255 4.405263901 -3.238497257 +v -23.969812393 5.005263329 -4.803016186 +v -23.741117477 4.604940891 -4.269253254 +v -23.969812393 4.805263042 -4.803016186 +v -23.741048813 4.805263042 -4.269100666 +v -23.495750427 4.605263710 -3.750710487 +v -23.496076584 4.404941082 -3.751371861 +v -23.991611481 5.102264881 -4.815990448 +v -23.286930084 4.999999523 -8.797198296 +v -23.716436386 4.999999523 -8.797197342 +v -23.989929199 4.999999523 -8.999961853 +v -24.769477844 4.986489296 -9.281723022 +v -22.987102509 4.999999523 -8.999961853 +v -16.987102509 4.999999523 -10.000000000 +v -22.987102509 4.999999523 -10.000000000 +v -24.184766769 5.355849266 -9.464529037 +v -24.769477844 5.111741543 -9.273554802 +v -24.104564667 5.111741066 -9.273554802 +v -24.104564667 4.999999523 -9.273554802 +v -25.015216827 10.370100975 -10.486470222 +v -24.881961823 10.370100975 -11.907939911 +v -23.635223389 11.418239594 -10.481653214 +v -23.514402390 11.418239594 -11.723038673 +v -22.558753967 11.879976273 -10.477895737 +v -23.272411346 11.424533844 -13.129491806 +v -22.233024597 11.885335922 -12.857720375 +v -22.447633743 11.879976273 -11.578805923 +v -21.201667786 12.180791855 -11.410345078 +v -21.301460266 12.180791855 -10.473506927 +v -21.016616821 12.186153412 -12.539662361 +v -24.441345215 10.568386078 -14.104910851 +v -23.334888458 11.570444107 -16.800724030 +v -23.111204147 11.616727829 -13.697996140 +v -24.618160248 10.376192093 -13.481369019 +v -22.102413177 12.618787766 -16.155851364 +v -22.083871841 12.077529907 -13.383714676 +v -20.881570816 12.378347397 -13.015907288 +v -21.150512695 13.079589844 -15.657785416 +v -20.648149490 13.604285240 -18.398828506 +v -21.739830017 12.555942535 -19.260852814 +v -19.804990768 14.065087318 -17.733043671 +v -18.818231583 14.365905762 -16.953866959 +v -20.036491394 13.380407333 -15.074891090 +v -18.906053543 13.467247963 -14.483409882 +v -19.661554337 12.465188980 -12.642681122 +v -19.782285690 12.272994041 -12.216917038 +v -18.435110092 12.378347397 -12.267487526 +v -20.018917084 12.267632484 -10.469030380 +v -19.930683136 12.267632484 -11.238502502 +v -18.541450500 12.186153412 -11.892474174 +v -18.666357040 12.180791855 -11.067559242 +v -18.743097305 12.180791855 -10.464576721 +v -17.325042725 11.885335922 -11.574416161 +v -17.232809067 12.077530861 -11.899678230 +v -17.485801697 11.879976273 -10.460188866 +v -17.420392990 11.879976273 -10.899098396 +v -17.816932678 14.452745438 -16.163211823 +v -17.286243439 15.370079041 -18.563083649 +v -18.112966537 15.069261551 -19.510362625 +v -18.819381714 14.608458519 -20.319784164 +v -19.734010696 13.560115814 -21.367786407 +v -17.351280212 14.565679550 -23.084133148 +v -15.823597908 14.065088272 -14.589212418 +v -14.777286530 15.069261551 -15.688269615 +v -14.978754044 13.603350639 -13.922099113 +v -14.069461823 14.607523918 -14.877229691 +v -13.895698547 12.553890228 -13.066884995 +v -15.701837540 12.617853165 -12.806856155 +v -16.655639648 13.079589844 -13.305916786 +v -14.479099274 11.568391800 -12.167078018 +v -16.203424454 11.615793228 -11.584771156 +v -14.883792877 10.566333771 -11.181069374 +v -14.948463440 10.374137878 -10.953004837 +v -16.411479950 11.419174194 -10.456439018 +v -16.355749130 11.419174194 -10.755152702 +v -15.020498276 10.372154236 -10.451583862 +v -16.283580780 11.423599243 -11.302101135 +v -17.769660950 13.380407333 -13.888811111 +v -16.810358047 14.365905762 -15.368389130 +v -16.447336197 15.456918716 -17.601848602 +v -14.820383072 16.462482452 -18.773788452 +v -15.604010582 15.370079041 -16.635547638 +v -13.534363747 16.074825287 -16.583580017 +v -14.170981407 16.375642776 -17.667797089 +v -12.989304543 15.613087654 -15.655296326 +v -12.030590057 16.410091400 -16.125663757 +v -12.431182861 16.871826172 -17.124828339 +v -10.526067734 16.404731750 -16.284149170 +v -12.290560722 14.563627243 -14.465271950 +v -10.530882835 15.363566399 -14.904547691 +v -11.517045021 15.360629082 -14.844776154 +v -13.162057877 13.558062553 -13.837507248 +v -15.466381073 16.375642776 -19.873981476 +v -12.899066925 17.172643661 -18.291830063 +v -13.376347542 17.259483337 -19.482267380 +v -10.531611443 16.881301880 -17.360651016 +v -10.527222633 17.182119370 -18.617944717 +v -13.851127625 17.172643661 -20.666463852 +v -14.319011688 16.871826172 -21.833465576 +v -10.518292427 17.182119370 -21.176307678 +v -10.522746086 17.268959045 -19.900487900 +v -16.102998734 16.074825287 -20.958198547 +v -16.646970749 15.614022255 -21.884632111 +v -14.718805313 16.411024094 -22.830635071 +v -15.236440659 15.362680435 -24.121723175 +v -10.513904572 16.881301880 -22.433601379 +v -10.496080399 15.356592178 -24.899217606 +v -10.510154724 16.420501709 -23.507926941 +v -24.705308914 10.238341331 -11.884346008 +v -24.409217834 10.244254112 -13.426673889 +v -24.409217834 10.382987022 -13.426673889 +v -24.705308914 10.377074242 -11.884346008 +v -24.881961823 10.021820068 -11.907939911 +v -24.618160248 10.027732849 -13.481369019 +v -25.015216827 10.021820068 -10.486470222 +v -24.800256729 10.238341331 -10.656588554 +v -24.800256729 10.377074242 -10.656588554 +v -24.213760376 9.214471817 -10.483672142 +v -22.980632782 10.067962646 -10.479368210 +v -22.016145706 10.299831390 -10.940568924 +v -22.863159180 9.936516762 -10.943525314 +v -22.099105835 10.431277275 -10.476290703 +v -21.872377396 9.974886894 -11.142833710 +v -22.702497482 9.658271790 -11.145730972 +v -24.015892029 9.111795425 -10.947548866 +v -23.017295837 8.588453293 -10.944063187 +v -22.329887390 9.008879662 -10.941663742 +v -22.333377838 9.008878708 -9.941633224 +v -23.712486267 8.947604179 -11.149256706 +v -23.020786285 8.588453293 -9.944032669 +v -22.474920273 9.262398720 -11.144936562 +v -23.273221970 8.724876404 -11.147723198 +v -21.069496155 10.667971611 -10.472697258 +v -20.950813293 10.179689407 -11.139616966 +v -21.700632095 9.584787369 -11.142234802 +v -21.026851654 10.536526680 -10.937115669 +v -20.017311096 10.604856491 -10.933591843 +v -20.018817902 10.736302376 -10.469030380 +v -20.016607285 10.240594864 -11.136356354 +v -21.582313538 9.314430237 -10.939054489 +v -21.585803986 9.314430237 -9.939023972 +v -20.866559982 9.780580521 -11.139323235 +v -20.811500549 9.499877930 -9.936321259 +v -20.808010101 9.499877930 -10.936351776 +v -20.016611099 9.853870392 -11.136356354 +v -20.017320633 9.562047958 -10.933591843 +v -20.020811081 9.562047958 -9.933561325 +v -24.234794617 10.436448097 -14.041786194 +v -24.234794617 10.575181007 -14.041786194 +v -24.441345215 10.219926834 -14.104910851 +v -23.143491745 11.577239990 -16.700647354 +v -23.143491745 11.438507080 -16.700645447 +v -23.334888458 11.221985817 -16.800722122 +v -23.334865570 6.547707558 -16.800710678 +v -24.881961823 5.349424362 -11.907939911 +v -24.213853836 5.349429607 -10.483672142 +v -24.618135452 5.353454590 -13.481361389 +v -24.409112930 5.109346390 -13.426637650 +v -24.705408096 5.105315208 -11.884212494 +v -24.705408096 4.993570805 -11.884212494 +v -24.401924133 4.997604370 -13.424758911 +v -24.014850616 4.993570805 -10.947545052 +v -24.799518585 4.993570805 -10.676690102 +v -24.799518585 5.105315685 -10.676690102 +v -24.132406235 5.105320454 -10.674362183 +v -24.132406235 4.993570805 -10.674362183 +v -25.015216827 5.349424362 -10.486470222 +v -23.715438843 4.993570805 -11.149267197 +v -23.272678375 4.993570805 -11.147721291 +v -23.017295837 4.993570805 -10.944065094 +v -23.020786285 4.993570805 -9.944033623 +v -17.017330170 4.993570805 -10.923122406 +v -16.716798782 4.993570328 -11.124839783 +v -17.020822525 4.993570805 -9.923090935 +v -16.287294388 4.993570328 -11.123340607 +v -24.220779419 4.993119717 -14.034821510 +v -22.850515366 6.193674564 -17.203773499 +v -22.850515366 6.393674374 -17.203773499 +v -23.128929138 6.193674564 -16.695180893 +v -22.555257797 6.593675137 -17.698482513 +v -23.143390656 6.303598881 -16.700599670 +v -23.386489868 5.993675709 -16.180047989 +v -23.128929138 5.993675232 -16.695180893 +v -23.386489868 5.793675423 -16.180047989 +v -23.624713898 5.793674946 -15.655849457 +v -24.441320419 5.545648098 -14.104903221 +v -24.220834732 5.193675995 -14.034641266 +v -24.043090820 5.393675804 -14.579807281 +v -24.234685898 5.301539421 -14.041759491 +v -23.624713898 5.593675613 -15.655849457 +v -23.844877243 5.593675137 -15.119219780 +v -23.844877243 5.393675804 -15.119219780 +v -24.043090820 5.193675041 -14.579807281 +v -15.017359734 5.192920685 -11.451532364 +v -15.017359734 5.392920494 -11.451531410 +v -15.085744858 4.993018150 -11.241790771 +v -15.087582588 5.191360474 -11.242877960 +v -15.156508446 4.997604847 -11.007375717 +v -14.941089630 5.592920303 -11.659092903 +v -14.941089630 5.392920494 -11.659092903 +v -18.974433899 10.667971611 -10.465384483 +v -19.084438324 10.198325157 -11.133102417 +v -19.013818741 10.536526680 -10.930088997 +v -18.150232315 10.012554169 -11.129841805 +v -19.170413971 9.790654182 -11.133402824 +v -18.338197708 9.585399628 -11.130497932 +v -17.944824219 10.431277275 -10.461791039 +v -18.024524689 10.299831390 -10.926635742 +v -19.235937119 9.499877930 -9.930821419 +v -19.232446671 9.499877930 -10.930851936 +v -18.461633682 9.314430237 -9.928118706 +v -17.710567474 9.008879662 -10.925539970 +v -18.458143234 9.314430237 -10.928149223 +v -17.537889481 9.273237228 -11.127704620 +v -17.329214096 9.673920631 -11.126976013 +v -17.714057922 9.008878708 -9.925509453 +v -14.667607307 6.192389011 -12.266146660 +v -14.558470726 6.192919731 -12.461206436 +v -14.764708519 5.992919922 -12.067286491 +v -14.665601730 5.992919922 -12.265502930 +v -14.444860458 6.392919540 -12.651563644 +v -14.444860458 6.592919350 -12.651563644 +v -14.558470726 6.392919540 -12.461206436 +v -22.555257797 6.393674374 -17.698482513 +v -14.856374741 5.592920303 -11.865580559 +v -14.856374741 5.792920113 -11.865581512 +v -14.764708519 5.792920113 -12.067286491 +v -21.562465668 7.193674088 -19.112043381 +v -21.562503815 6.993996620 -19.111997604 +v -14.062846184 6.992918968 -13.195486069 +v -21.209297180 7.193996429 -19.543546677 +v -14.062846184 7.192919254 -13.195486069 +v -21.919630051 6.993674278 -18.641155243 +v -21.919630051 6.793996811 -18.641153336 +v -14.200278282 6.792919159 -13.014291763 +v -21.209291458 7.393673897 -19.543550491 +v -13.926948547 7.192919254 -13.361523628 +v -22.237232208 6.793673992 -18.188739777 +v -22.237232208 6.593673706 -18.188739777 +v -14.322487831 6.592919350 -12.840208054 +v -14.322487831 6.792919636 -12.840208054 +v -14.200278282 6.992919445 -13.014291763 +v -20.829801559 7.593673706 -19.974193573 +v -17.351268768 9.542943001 -23.084110260 +v -15.236431122 10.339944839 -24.121700287 +v -17.351280212 14.217220306 -23.084133148 +v -19.734010696 13.211657524 -21.367786407 +v -19.591949463 13.566911697 -21.205101013 +v -21.570287704 12.562738419 -19.127052307 +v -19.591949463 13.428178787 -21.205101013 +v -21.570287704 12.424005508 -19.127052307 +v -21.739830017 12.207484245 -19.260852814 +v -19.733995438 8.537379265 -21.367767334 +v -21.739810944 7.533205509 -19.260837555 +v -21.570194244 7.289097309 -19.126987457 +v -20.829807281 7.393996716 -19.974185944 +v -19.591871262 8.293270111 -21.205020905 +v -20.434761047 7.793673515 -20.390405655 +v -19.997489929 7.793673515 -20.817251205 +v -19.997489929 7.993673325 -20.817251205 +v -20.434764862 7.593996525 -20.390401840 +v -19.580345154 8.193674088 -21.194742203 +v -19.127519608 8.393672943 -21.574895859 +v -19.127519608 8.193674088 -21.574895859 +v -19.580345154 7.993673325 -21.194742203 +v -18.677282333 8.593671799 -21.925027847 +v -17.241806030 9.298833847 -22.897821426 +v -18.213668823 8.798833847 -22.258960724 +v -17.734512329 8.798833847 -22.577890396 +v -17.734512329 8.998833656 -22.577890396 +v -18.213428497 8.594318390 -22.259124756 +v -18.677282333 8.393672943 -21.925027847 +v -12.399082184 14.570600510 -14.650138855 +v -11.596796989 15.228869438 -15.043756485 +v -12.399082184 14.431867599 -14.650139809 +v -11.596796989 15.367601395 -15.043754578 +v -12.290560722 14.165383339 -14.465271950 +v -13.302993774 13.565035820 -13.999031067 +v -13.302995682 13.426303864 -13.999031067 +v -13.162057877 13.159818649 -13.837507248 +v -11.198131561 14.658274651 -17.216905594 +v -11.201657295 13.947606087 -16.206914902 +v -10.995925903 14.936519623 -17.056241989 +v -10.999949455 14.111796379 -15.903511047 +v -10.531768799 15.067964554 -16.938766479 +v -10.536072731 14.214473724 -15.705640793 +v -11.517045021 14.962385178 -14.844776154 +v -10.701003075 15.363566399 -15.119117737 +v -10.701003075 15.224834442 -15.119117737 +v -10.538870811 14.971858978 -14.904184341 +v -14.669025421 11.575365067 -12.266479492 +v -14.063923836 12.560862541 -13.199748993 +v -14.669026375 11.436632156 -12.266481400 +v -13.895698547 12.155645370 -13.066884995 +v -14.479099274 11.170148849 -12.167078018 +v -14.063923836 12.422130585 -13.199749947 +v -15.088773727 10.573307037 -11.243801117 +v -12.290559769 9.494309425 -14.465270042 +v -10.540185928 10.300786018 -14.904186249 +v -10.537387848 10.350753784 -15.705550194 +v -13.162055969 8.488745689 -13.837506294 +v -11.517044067 10.291310310 -14.844774246 +v -11.200123787 13.724878311 -16.646181107 +v -10.996463776 13.588455200 -16.902107239 +v -10.997779846 9.993570328 -16.902109146 +v -11.001261711 9.993570328 -15.904552460 +v -11.201436996 9.993570328 -16.646726608 +v -11.202982903 9.993570328 -16.203966141 +v -17.065053940 10.068697929 -10.458720207 +v -17.179199219 9.937252045 -10.923685074 +v -15.821536064 9.216087341 -10.454379082 +v -16.286827087 8.970824242 -11.123337746 +v -16.013319016 9.113410950 -10.919615746 +v -15.020498276 10.023696899 -10.451583862 +v -15.155863762 10.381111145 -11.007209778 +v -15.235881805 10.378950119 -10.623204231 +v -15.155864716 10.242379189 -11.007210732 +v -15.235881805 10.240218163 -10.623204231 +v -14.948463440 10.025856972 -10.953004837 +v -14.883792877 10.168089867 -11.181069374 +v -15.088775635 10.434574127 -11.243801117 +v -14.479097366 6.499074459 -12.167078018 +v -13.895696640 7.484572411 -13.066883087 +v -11.808470726 9.598077774 -14.950302124 +v -12.008268356 9.598077774 -14.856611252 +v -11.808470726 9.798078537 -14.950302124 +v -12.399416924 9.300163269 -14.650714874 +v -11.602720261 9.798077583 -15.037611008 +v -11.602720261 9.998077393 -15.037611008 +v -11.597042084 10.097164154 -15.044374466 +v -10.730405807 10.106639862 -15.119886398 +v -10.730405807 9.993570328 -15.119886398 +v -10.728077888 10.106645584 -15.786997795 +v -16.717163086 8.744661331 -11.124839783 +v -17.017330170 8.588453293 -10.923120499 +v -17.020820618 8.588453293 -9.923089981 +v -14.883790970 5.497014999 -11.181069374 +v -14.064443588 7.290426254 -13.200163841 +v -14.669614792 6.304928303 -12.266791344 +v -13.303430557 8.294599533 -13.999534607 +v -12.774266243 8.798078537 -14.406379700 +v -12.589893341 8.798078537 -14.529100418 +v -12.589893341 8.998079300 -14.529100418 +v -12.774162292 8.592917442 -14.406455994 +v -12.952661514 8.592917442 -14.277889252 +v -12.952661514 8.392917633 -14.277889252 +v -13.125906944 8.392917633 -14.143162727 +v -12.399484634 9.198078156 -14.645851135 +v -12.205717087 9.398078918 -14.754933357 +v -12.008268356 9.398078918 -14.856611252 +v -12.205718040 9.198078156 -14.754934311 +v -12.399484634 8.998079300 -14.645851135 +v -16.014513016 4.993570328 -10.919622421 +v -14.948462486 5.354783058 -10.953003883 +v -15.020523071 5.349418640 -10.451583862 +v -15.821298599 5.349417686 -10.454379082 +v -15.235923767 4.993570328 -10.643310547 +v -15.900829315 5.105309486 -10.645630836 +v -15.900829315 4.993570328 -10.645630836 +v -15.235923767 5.105309963 -10.643310547 +v -15.156508446 5.110674858 -11.007375717 +v -15.089410782 5.302869320 -11.243998528 +v -13.926948547 7.392919064 -13.361523628 +v -13.780925751 7.592919350 -13.527230263 +v -13.628918648 7.592919350 -13.687385559 +v -13.628918648 7.792919159 -13.687385559 +v -13.780925751 7.392919064 -13.527230263 +v -13.125906944 8.192918777 -14.143162727 +v -13.300148010 8.192917824 -13.996884346 +v -13.300148010 7.992918491 -13.996884346 +v -13.460660934 7.992918968 -13.851630211 +v -13.460660934 7.792919159 -13.851630211 +v -10.728077888 9.993570328 -15.786997795 +v -11.195234299 14.974888802 -18.047021866 +v -10.992969513 15.299833298 -17.903255463 +v -10.528691292 15.431279182 -17.820295334 +v -11.192017555 15.179690361 -18.968587875 +v -10.989516258 15.536527634 -18.892549515 +v -11.194635391 14.584789276 -18.218769073 +v -11.191723824 14.780582428 -19.052841187 +v -10.525097847 15.667972565 -18.849905014 +v -11.197337151 14.262400627 -17.444480896 +v -10.995380402 14.010205269 -17.589515686 +v -9.994033813 14.008880615 -17.586023331 +v -9.996433258 13.588454247 -16.898616791 +v -10.992771149 14.315756798 -18.337091446 +v -10.988752365 14.499879837 -19.111391068 +v -9.988721848 14.499879837 -19.107900620 +v -9.991424561 14.314432144 -18.333597183 +v -11.188756943 15.240598679 -19.902793884 +v -10.985992432 15.604858398 -19.902090073 +v -10.521430016 15.736305237 -19.900583267 +v -11.185503006 15.198328018 -20.834964752 +v -10.982489586 15.536527634 -20.905582428 +v -10.517784119 15.667972565 -20.944969177 +v -11.188756943 14.853872299 -19.902790070 +v -10.985992432 14.562049866 -19.902080536 +v -9.985961914 14.562049866 -19.898590088 +v -11.185803413 14.790656090 -20.748987198 +v -10.983252525 14.499879837 -20.686954498 +v -9.983222008 14.499879837 -20.683464050 +v -17.241868973 14.433742523 -22.897914886 +v -17.241868973 14.572474480 -22.897914886 +v -15.156010628 15.369476318 -23.921278000 +v -15.156010628 15.230743408 -23.921278000 +v -15.236440659 15.014222145 -24.121723175 +v -10.514191628 15.431279182 -21.974576950 +v -10.976085663 14.937254906 -22.740201950 +v -10.979036331 15.299833298 -21.894876480 +v -10.511120796 15.068699837 -22.854347229 +v -10.506779671 14.216089249 -24.097867966 +v -11.175738335 13.970825195 -23.632574081 +v -11.179376602 14.673923492 -22.590187073 +v -10.972016335 14.113412857 -23.906082153 +v -11.180105209 14.273239136 -22.381509781 +v -11.177240372 13.744663239 -23.202238083 +v -10.977940559 14.008881569 -22.208833694 +v -10.975521088 13.588455200 -22.902070999 +v -9.975490570 13.588454247 -22.898580551 +v -11.182898521 14.585401535 -21.581203461 +v -10.980549812 14.314432144 -21.461257935 +v -9.980519295 14.314432144 -21.457767487 +v -11.182242393 15.012556076 -21.769170761 +v -9.977910042 14.008880615 -22.205343246 +v -10.496080399 15.008399010 -24.899217606 +v -10.667700768 15.363653183 -24.683498383 +v -10.667700768 15.224921227 -24.683498383 +v -10.503984451 10.349420547 -24.898880005 +v -17.239669800 9.198833466 -22.881307602 +v -17.239669800 8.998833656 -22.881307602 +v -16.735456467 9.198511124 -23.165142059 +v -16.736104965 9.398834229 -23.164793015 +v -15.169013023 9.998833656 -23.899423599 +v -15.703571320 9.598510742 -23.672592163 +v -15.169013023 9.798833847 -23.899423599 +v -15.703723907 9.798833847 -23.672523499 +v -16.222967148 9.598834038 -23.429035187 +v -16.222305298 9.398511887 -23.429361343 +v -15.155962944 10.095834732 -23.921176910 +v -11.177239418 9.993570328 -23.202602386 +v -11.175741196 9.993570328 -23.632106781 +v -10.972023010 9.993570328 -23.904890060 +v -10.687541962 9.980059624 -24.683450699 +v -10.975522995 9.993570328 -22.902070999 +v -9.996434212 9.993570328 -16.898616791 +v -9.975491524 9.993570328 -22.898578644 +v -10.506779671 10.349419594 -24.098104477 +v -10.695711136 10.105312347 -24.683479309 +v -10.698031425 10.105311394 -24.018569946 +v -10.698031425 9.993570328 -24.018569946 +v 18.151639938 16.422849655 -39.982330322 +v 20.731946945 15.374711037 -40.315002441 +v 18.820676804 15.374711037 -38.775352478 +v 19.747991562 16.422849655 -41.182910919 +v 17.629753113 16.884586334 -40.923835754 +v 18.982986450 16.884586334 -41.973312378 +v 17.020200729 17.185401917 -42.023498535 +v 18.176250458 17.185401917 -42.818588257 +v 22.158515930 16.422847748 -44.359470367 +v 19.015058517 17.272243500 -45.918804169 +v 20.193902969 17.185401917 -45.329006195 +v 21.180492401 16.884586334 -44.811431885 +v 23.330167770 15.374711037 -43.793838501 +v 22.288990021 16.884586334 -48.230606079 +v 23.356256485 16.422849655 -48.090103149 +v 24.724452972 15.374711037 -47.909973145 +v 21.132287979 17.185401917 -49.331924438 +v 22.389589310 16.884586334 -49.331924438 +v 23.463920593 16.423784256 -49.331924438 +v 24.854907990 15.376764297 -49.331924438 +v 21.042442322 17.185401917 -48.394718170 +v 18.505952835 17.185401917 -48.728652954 +v 19.770866394 17.272243500 -48.562126160 +v 19.856460571 17.272243500 -49.331924438 +v 18.573909760 17.185401917 -49.331924438 +v 17.286430359 17.272243500 -43.806549072 +v 16.426416397 17.185401917 -44.773418427 +v 17.777982712 17.185401917 -46.515922546 +v 16.398406982 17.272243500 -43.145240784 +v 16.772066116 16.884586334 -47.060039520 +v 17.259407043 16.884586334 -48.892765045 +v 15.817419052 16.423784256 -47.575325012 +v 15.601982117 16.884586334 -45.628391266 +v 16.194267273 16.423784256 -49.032993317 +v 16.240131378 16.422849655 -49.331924438 +v 17.316606522 16.884586334 -49.331924438 +v 14.912005424 16.423784256 -46.542243958 +v 13.975111961 15.376764297 -47.516983032 +v 14.464689255 15.376764297 -48.408912659 +v 14.649476051 16.423784256 -46.300395966 +v 15.170322418 16.884586334 -45.360763550 +v 14.860130310 15.374711037 -49.331924438 +v 6.673092842 15.374712944 -32.725341797 +v 17.220638275 16.422851563 -39.476814270 +v 17.890140533 15.381685257 -38.270545959 +v 5.997828484 16.423786163 -33.941822052 +v 16.689041138 16.884586334 -40.382247925 +v 5.476475239 16.884588242 -34.881168365 +v 16.078891754 17.185401917 -41.481575012 +v 4.866324902 17.185403824 -35.980499268 +v 15.465692520 17.272245407 -42.638774872 +v 4.247186661 17.272245407 -37.096027374 +v 14.837350845 17.185401917 -43.718509674 +v 15.779872894 17.185401917 -44.261104584 +v 3.624784470 17.185403824 -38.217433929 +v 14.227202415 16.884586334 -44.817840576 +v 3.014636040 16.884588242 -39.316761017 +v 13.715051651 16.423786163 -45.792980194 +v 3.933006287 17.185401917 -35.473697662 +v 3.317041874 17.185401917 -35.048015594 +v 2.558747768 17.272243500 -35.967140198 +v 4.542557240 16.884586334 -34.374034882 +v 4.134359837 16.884586334 -33.951190948 +v 3.314471245 17.272243500 -36.589561462 +v 2.492240429 16.422851563 -40.257987976 +v 13.039787292 15.374712944 -47.009456635 +v 1.822737694 15.381685257 -41.464256287 +v 1.726429939 17.185401917 -36.979194641 +v 0.669525146 17.272243500 -33.767730713 +v -0.472972870 17.185401917 -34.307502747 +v 0.819322586 16.884586334 -37.894798279 +v 2.692678452 17.185401917 -37.711303711 +v 1.841757774 17.185401917 -33.227012634 +v 3.769361496 16.423784256 -32.242866516 +v 5.248190880 15.376764297 -31.325889587 +v 4.852749825 15.374711037 -30.402873993 +v 3.518613338 16.423784256 -30.701808929 +v 2.890336990 16.884586334 -32.690055847 +v 3.472748280 16.422849655 -30.402873993 +v 2.453473568 16.884586334 -30.842037201 +v 4.828486443 16.423784256 -33.241661072 +v 5.737767696 15.376764297 -32.217819214 +v 5.063403130 16.423784256 -33.434406281 +v 2.396272659 16.884586334 -30.402873993 +v 1.206927299 17.185401917 -31.006147385 +v 1.138970375 17.185401917 -30.402873993 +v -0.057985306 17.272243500 -31.172676086 +v -0.143579483 17.272243500 -30.402873993 +v -1.329563141 17.185401917 -31.340084076 +v -1.419406891 17.185401917 -30.402873993 +v -2.576108932 16.884586334 -31.504192352 +v -1.386344910 16.884586334 -34.814693451 +v -2.676710129 16.884586334 -30.402873993 +v -3.751039505 16.423784256 -30.402873993 +v -3.643377304 16.422849655 -31.644699097 +v -5.011572838 15.374711037 -31.824825287 +v -5.142028809 15.376764297 -30.402873993 +v -2.529266357 16.422849655 -35.398258209 +v -3.617288589 15.374711037 -35.940959930 +v -1.115442276 15.374711037 -39.509117126 +v -0.062291145 16.422849655 -38.602146149 +v 1.561239243 16.422849655 -39.752471924 +v 0.892202377 15.374711037 -40.959449768 +v 2.083126068 16.884586334 -38.810966492 +v 18.820676804 15.026430130 -38.775352478 +v 18.866195679 15.242951393 -39.045677185 +v 20.609476089 15.242951393 -40.444480896 +v 18.866195679 15.381684303 -39.045677185 +v 20.609476089 15.381684303 -40.444480896 +v 18.432121277 14.219081879 -39.476325989 +v 18.284229279 14.662881851 -41.119606018 +v 18.560924530 13.729486465 -40.620433807 +v 18.173898697 14.267008781 -41.318649292 +v 17.834285736 15.072572708 -40.554851532 +v 18.743295670 14.116405487 -39.873195648 +v 18.184436798 14.941126823 -40.881404877 +v 18.773887634 13.952214241 -40.236244202 +v 18.259162903 13.593063354 -40.746593475 +v 17.406908035 15.435887337 -41.325855255 +v 17.773792267 15.304441452 -41.622222900 +v 16.470603943 15.435888290 -40.828010559 +v 15.970950127 15.672584534 -41.728263855 +v 15.549583435 15.541138649 -41.530700684 +v 16.083345413 14.277850151 -40.150325775 +v 16.690469742 13.975436211 -39.056442261 +v 16.184612274 14.678532600 -39.967868805 +v 15.694966316 14.590011597 -40.850086212 +v 15.786183357 15.017166138 -40.685733795 +v 17.000125885 14.116407394 -38.917198181 +v 16.440719604 14.941128731 -39.925106049 +v 17.890331268 15.026432037 -38.270202637 +v 17.636901855 15.381685257 -38.374713898 +v 17.636901855 15.242953300 -38.374713898 +v 17.501281738 14.220699310 -38.970996857 +v 16.897548676 15.073310852 -40.058773041 +v 17.384096146 13.593065262 -40.272407532 +v 16.515522003 13.593065262 -39.790332794 +v 16.181930542 14.013491631 -40.391376495 +v 17.881778717 14.979496956 -41.845649719 +v 17.050506592 14.013492584 -40.873451233 +v 17.925899506 14.013489723 -41.347816467 +v 16.688812256 14.319040298 -41.516834259 +v 16.481632233 13.749273300 -39.432716370 +v 15.819142342 14.319043159 -41.045024872 +v 16.029674530 15.304443359 -40.665699005 +v 15.332825661 15.202938080 -41.502567291 +v 15.443385124 14.504489899 -41.722049713 +v 15.291101456 14.795266151 -41.577743530 +v 20.731946945 15.026430130 -40.315002441 +v 20.731946945 10.354034424 -40.315002441 +v 18.775318146 9.998181343 -40.233661652 +v 18.742792130 9.998181343 -39.874103546 +v 18.820676804 10.354034424 -38.775352478 +v 16.999622345 9.998181343 -38.918109894 +v 16.690242767 9.998181343 -39.056854248 +v 18.432167053 10.354040146 -39.476242065 +v 17.501123428 10.354027748 -38.971282959 +v 17.890331268 10.354028702 -38.270202637 +v 20.609426498 9.998181343 -40.444320679 +v 18.883455276 9.998181343 -39.056011200 +v 18.560031891 9.998181343 -39.639484406 +v 18.883455276 10.109926224 -39.056011200 +v 20.609426498 10.109925270 -40.444320679 +v 18.560031891 10.109930038 -39.639484406 +v 18.259164810 9.998181343 -40.746593475 +v 18.560661316 9.998181343 -40.620910645 +v 16.515522003 9.998181343 -39.790332794 +v 17.384096146 9.998181343 -40.272407532 +v 17.295192719 10.109919548 -38.948501587 +v 17.295192719 9.998066902 -38.948501587 +v 17.619159698 10.109919548 -38.365627289 +v 17.619159698 9.998067856 -38.365627289 +v 16.481809616 9.998181343 -39.432395935 +v 13.603816986 9.998181343 -45.036472321 +v 6.109062672 9.998181343 -34.698329926 +v 6.673092842 15.026519775 -32.725341797 +v 6.717516899 15.243041992 -32.997402191 +v 6.717516899 15.381774902 -32.997402191 +v 6.672841549 10.354034424 -32.725624084 +v 6.734807014 10.109926224 -33.007129669 +v 6.627419472 9.998181343 -34.183063507 +v 6.595716476 9.998181343 -33.821502686 +v 6.734807014 9.998067856 -33.007129669 +v 6.412554264 9.998181343 -34.570194244 +v 23.172214508 15.242951393 -43.876388550 +v 23.330167770 15.026430130 -43.793838501 +v 23.172214508 15.381684303 -43.876388550 +v 23.330167770 10.354034424 -43.793838501 +v 23.172218323 10.109925270 -43.876220703 +v 23.172218323 9.998180389 -43.876220703 +v 15.382289886 9.998180389 -46.354846954 +v 24.547792435 15.242951393 -47.933521271 +v 24.724452972 15.026430130 -47.909973145 +v 24.547792435 15.381684303 -47.933521271 +v 23.586244583 13.975434303 -48.664596558 +v 22.335172653 14.277847290 -48.664596558 +v 23.155904770 13.749271393 -48.664596558 +v 24.053865433 14.220697403 -49.331924438 +v 22.694572449 14.941862106 -48.867359161 +v 23.860460281 14.118021011 -48.867359161 +v 22.543849945 14.678530693 -48.664596558 +v 22.810340881 15.073307991 -49.331924438 +v 24.638927460 15.383560181 -49.161056519 +v 24.638927460 15.244828224 -49.161056519 +v 24.854907990 15.028306961 -49.331924438 +v 21.930564880 15.435887337 -49.331924438 +v 20.900951385 15.672581673 -49.331924438 +v 22.856441498 13.593063354 -49.867401123 +v 22.856443405 13.593063354 -48.867359161 +v 22.163200378 14.013489723 -48.867359161 +v 22.163200378 14.013488770 -49.867397308 +v 21.415620804 14.319040298 -48.867359161 +v 21.415620804 14.319040298 -49.867397308 +v 21.534858704 14.590009689 -48.664596558 +v 21.722827911 15.017164230 -48.664596558 +v 20.788616180 15.202935219 -48.664596558 +v 21.849243164 15.304441452 -48.867359161 +v 20.859943390 15.541136742 -48.867359161 +v 19.856441498 15.245204926 -48.664596558 +v 19.856443405 15.609466553 -48.867359161 +v 19.856559753 15.740912437 -49.331924438 +v 20.641313553 14.504487991 -49.867401123 +v 20.641313553 14.504487991 -48.867359161 +v 20.702638626 14.795264244 -48.664596558 +v 19.856433868 14.566658020 -48.867359161 +v 19.856433868 14.566658020 -49.867397308 +v 19.856437683 14.858480453 -48.664596558 +v 19.065740585 14.504487991 -49.867397308 +v 19.065740585 14.504487991 -48.867359161 +v 19.006483078 14.785190582 -48.664596558 +v 18.922229767 15.184299469 -48.664596558 +v 23.156269073 9.998180389 -48.664596558 +v 22.856441498 9.998180389 -48.867359161 +v 16.856441498 9.998180389 -48.867359161 +v 16.600349426 9.998180389 -48.664596558 +v 16.856441498 9.998178482 -49.867397308 +v 22.856449127 9.998178482 -49.867393494 +v 24.547851563 10.109925270 -47.933364868 +v 24.547851563 9.998180389 -47.933364868 +v 24.724452972 10.354034424 -47.909973145 +v 23.585773468 9.998180389 -48.664596558 +v 23.859268188 9.998180389 -48.867359161 +v 24.854885101 10.354028702 -49.331924438 +v 24.054103851 10.354027748 -49.331924438 +v 24.638816833 10.109920502 -49.140953064 +v 24.638816833 9.998180389 -49.140953064 +v 23.973905563 10.109919548 -49.140953064 +v 23.973905563 9.998180389 -49.140953064 +v 15.350305557 9.998180389 -45.994308472 +v 15.059673309 14.566659927 -42.413398743 +v 16.311960220 14.504489899 -42.204124451 +v 15.930086136 14.566658020 -42.885616302 +v 15.549570084 14.504487991 -43.572086334 +v 14.678782463 14.504489899 -43.099658966 +v 16.804738998 14.566658020 -43.370445251 +v 17.188076019 14.504487991 -42.678886414 +v 16.907741547 15.672581673 -42.226379395 +v 17.294172287 15.541136742 -42.487483978 +v 17.434993744 15.184299469 -42.651672363 +v 16.398359299 15.740912437 -43.145328522 +v 16.804733276 15.609466553 -43.370452881 +v 16.982080460 14.858480453 -43.468750000 +v 17.394145966 14.785190582 -42.725360870 +v 16.982078552 15.245204926 -43.468750000 +v 17.798515320 14.589397430 -41.995861053 +v 17.563465118 14.319040298 -42.001663208 +v 16.571832657 14.795264244 -44.208854675 +v 16.318229675 15.541136742 -44.248130798 +v 16.530149460 15.202935219 -44.284049988 +v 15.892028809 15.672581673 -44.058773041 +v 15.392861366 15.435887337 -44.959293365 +v 16.077236176 15.017164230 -45.101131439 +v 15.838605881 15.304441452 -45.113391876 +v 15.057744980 15.609468460 -42.416015625 +v 15.464122772 15.740915298 -42.641433716 +v 14.572686195 15.541138649 -43.290817261 +v 14.954242706 15.672584534 -43.560108185 +v 14.092594147 15.304443359 -44.155822754 +v 14.454587936 15.435888290 -44.460357666 +v 14.880453110 14.858482361 -42.317623138 +v 14.880453110 15.245207787 -42.317619324 +v 14.427095413 15.184301376 -43.134456635 +v 14.467983246 14.785192490 -43.060787201 +v 14.303024292 14.319043159 -43.776679993 +v 14.063219070 14.589399338 -43.790069580 +v 15.171600342 14.319043159 -44.258758545 +v 16.424221039 14.504487991 -44.056915283 +v 14.808811188 14.013492584 -44.912406921 +v 16.048828125 14.319040298 -44.734138489 +v 16.168361664 14.590009689 -44.936729431 +v 13.682369232 14.941864014 -44.894939423 +v 13.979873657 14.979497910 -43.940235138 +v 13.577028275 14.662883759 -44.666057587 +v 13.687467575 14.267010689 -44.467075348 +v 13.940235138 14.013491631 -44.430332184 +v 13.603816032 13.593065262 -45.036472321 +v 14.966337204 15.073307991 -45.728763580 +v 15.173831940 13.975434303 -46.730911255 +v 15.780364990 14.277847290 -45.636699677 +v 15.382465363 13.749271393 -46.354526520 +v 15.686395645 14.013489723 -45.387985229 +v 15.350305557 13.593063354 -45.994308472 +v 14.863548279 14.118021011 -46.872444153 +v 15.679196358 14.678530693 -45.819213867 +v 14.363464355 14.220697403 -46.816375732 +v 15.428781509 14.941862106 -45.852733612 +v 14.475652695 13.593063354 -45.509483337 +v 17.776258469 15.435887337 -49.331924438 +v 16.894725800 15.072572708 -49.331924438 +v 18.846897125 15.541136742 -48.867359161 +v 18.805873871 15.672581673 -49.331924438 +v 17.857597351 15.304441452 -48.867359161 +v 18.000658035 14.979496956 -48.664596558 +v 18.172405243 14.589397430 -48.664596558 +v 18.291433334 14.319040298 -48.867359161 +v 18.291431427 14.319040298 -49.867397308 +v 17.398113251 14.267008781 -48.664596558 +v 16.856441498 13.593063354 -48.867359161 +v 17.543853760 14.013489723 -48.867359161 +v 17.170534134 14.662881851 -48.664596558 +v 17.543853760 14.013488770 -49.867397308 +v 15.661590576 14.219081879 -49.331924438 +v 17.010580063 14.941126823 -48.867359161 +v 15.857839584 14.116405487 -48.867359161 +v 16.160539627 13.952214241 -48.664596558 +v 16.599805832 13.729486465 -48.664596558 +v 16.856441498 13.593063354 -49.867397308 +v 13.975111961 15.028306961 -47.516983032 +v 14.229267120 15.383560181 -47.410919189 +v 14.229267120 15.244828224 -47.410919189 +v 14.711436272 15.244828224 -48.280220032 +v 14.711436272 15.383560181 -48.280220032 +v 14.464689255 15.028306961 -48.408912659 +v 14.860130310 15.026430130 -49.331924438 +v 15.074495316 15.242951393 -49.161056519 +v 15.074495316 15.381684303 -49.161056519 +v 15.661497116 10.354040146 -49.331924438 +v 14.464710236 10.354028702 -48.408901215 +v 14.860130310 10.354034424 -49.331924438 +v 13.975122452 10.354028702 -47.516960144 +v 14.472393036 9.998181343 -45.518547058 +v 14.864127159 9.998180389 -46.871398926 +v 15.174060822 9.998180389 -46.730503082 +v 14.363349915 10.354027748 -46.816581726 +v 14.569259644 10.109919548 -46.839023590 +v 14.246905327 10.109920502 -47.420566559 +v 14.569259644 9.998180389 -46.839023590 +v 14.246905327 9.998180389 -47.420566559 +v 15.858880043 9.998180389 -48.867359161 +v 16.157585144 9.998180389 -48.664596558 +v 14.709774971 10.109920502 -48.279747009 +v 14.709774971 9.998180389 -48.279747009 +v 15.742279053 10.109930038 -49.140953064 +v 15.742279053 9.998180389 -49.140953064 +v 15.075164795 10.109925270 -49.140953064 +v 15.075164795 9.998180389 -49.140953064 +v 13.039787292 15.026519775 -47.009456635 +v 12.995363235 15.381774902 -46.737400055 +v 12.995363235 15.243041992 -46.737400055 +v 13.428371429 14.219083786 -46.309329987 +v 14.026791573 15.072574615 -45.231132507 +v 13.116581917 14.118022919 -45.914340973 +v 13.086893082 13.952216148 -45.549156189 +v 13.300060272 13.729488373 -45.165081024 +v 13.300325394 9.998181343 -45.164604187 +v 3.197357178 9.998181343 -39.944465637 +v 13.085459709 9.998181343 -45.551734924 +v 3.231069088 9.998181343 -40.302406311 +v 13.428532600 10.354040146 -46.309043884 +v 13.117163658 9.998181343 -45.913299561 +v 13.040038109 10.354034424 -47.009178162 +v 13.299910545 10.109930038 -46.146965027 +v 13.299910545 9.998067856 -46.146965027 +v 12.978073120 9.998067856 -46.727668762 +v 12.978073120 10.109926224 -46.727668762 +v 4.746542931 15.073307991 -34.006038666 +v 6.284508705 14.219083786 -33.425472260 +v 5.686088085 15.072574615 -34.503669739 +v 6.030510902 14.941864014 -34.839862823 +v 5.258291245 15.435888290 -35.274444580 +v 6.596298218 14.118022919 -33.820461273 +v 5.237226486 13.593063354 -34.225318909 +v 4.904067993 14.013492584 -34.822391510 +v 6.109063148 13.593065262 -34.698329926 +v 6.625987053 13.952216148 -34.185646057 +v 6.135851860 14.662883759 -35.068740845 +v 6.025412083 14.267010689 -35.267723083 +v 6.412818909 13.729488373 -34.569721222 +v 5.772644043 14.013491631 -35.304470062 +v 2.328782558 9.998181343 -39.462390900 +v 1.152217865 9.998181343 -39.113891602 +v 4.330589294 9.998180389 -33.379955292 +v 4.362574100 9.998180389 -33.740489960 +v 5.237226486 9.998180389 -34.225318909 +v 6.284347057 10.354040146 -33.425758362 +v 5.349416256 14.220697403 -32.918426514 +v 6.412969112 9.998067856 -33.587833405 +v 6.412969112 10.109930038 -33.587833405 +v 5.001443863 15.244828224 -31.454582214 +v 5.001443863 15.383560181 -31.454582214 +v 5.483613491 15.383560181 -32.323879242 +v 5.483613491 15.244828224 -32.323879242 +v 5.737767696 15.028306961 -32.217819214 +v 5.248190880 15.028306961 -31.325889587 +v 4.852749825 15.026430130 -30.402873993 +v 4.638384819 15.242951393 -30.573743820 +v 4.638384819 15.381684303 -30.573743820 +v 4.051288605 14.219081879 -30.402873993 +v 2.818153858 15.072572708 -30.402875900 +v 2.702300072 14.941126823 -30.867439270 +v 1.936620712 15.435887337 -30.402873993 +v 1.855282784 15.304441452 -30.867439270 +v 2.542345047 14.662881851 -31.070205688 +v 1.712222099 14.979496956 -31.070205688 +v 3.855039597 14.116405487 -30.867441177 +v 3.552340508 13.952214241 -31.070205688 +v 2.856437206 13.593063354 -30.867441177 +v 2.314766884 14.267008781 -31.070205688 +v 3.113073349 13.729486465 -31.070205688 +v 2.856437206 13.593063354 -29.867403030 +v 2.169026375 14.013488770 -29.867403030 +v 0.907005310 15.672581673 -30.402873993 +v 0.865982056 15.541136742 -30.867441177 +v 0.790650368 15.184299469 -31.070205688 +v -0.143679619 15.740912437 -30.402873993 +v -0.143562317 15.609466553 -30.867441177 +v -0.143560410 15.245204926 -31.070205688 +v 1.540474892 14.589397430 -31.070205688 +v 2.169026375 14.013489723 -30.867439270 +v 1.421446800 14.319040298 -30.867441177 +v 1.421447754 14.319040298 -29.867403030 +v 0.706397057 14.785190582 -31.070205688 +v 0.647138596 14.504487991 -30.867441177 +v 0.647139549 14.504487991 -29.867403030 +v 4.320018768 15.435887337 -34.775508881 +v 3.820850372 15.672581673 -35.676029205 +v 3.874273777 15.304441452 -34.621406555 +v 3.394650459 15.541136742 -35.486671448 +v 4.284097672 14.941862106 -33.882064819 +v 4.849331856 14.118021011 -32.862358093 +v 4.033683300 14.678530693 -33.915588379 +v 4.026483536 14.013489723 -34.346813202 +v 4.330414295 13.749271393 -33.380271912 +v 3.932514668 14.277847290 -34.098102570 +v 4.362574577 13.593063354 -33.740489960 +v 4.539047241 13.975434303 -33.003890991 +v 3.182729244 15.202935219 -35.450752258 +v 3.635644913 15.017164230 -34.633670807 +v 3.141046047 14.795264244 -35.525947571 +v 3.544517040 14.590009689 -34.798072815 +v 3.664050102 14.319040298 -35.000663757 +v 4.051383018 10.354040146 -30.402873993 +v 4.852749825 10.354034424 -30.402873993 +v 5.248169422 10.354028702 -31.325901031 +v 5.737757683 10.354028702 -32.217842102 +v 3.112530708 9.998180389 -31.070205688 +v 2.856438637 9.998180389 -30.867443085 +v 2.856437206 9.998180389 -29.867403030 +v 3.853999615 9.998180389 -30.867441177 +v 3.555293560 9.998180389 -31.070205688 +v 4.623218060 9.998180389 -30.557798386 +v 5.003104687 9.998180389 -31.455053329 +v 5.003104687 10.109920502 -31.455053329 +v 4.623218060 10.109920502 -30.557798386 +v 4.848752975 9.998180389 -32.863403320 +v 4.538818359 9.998180389 -33.004299164 +v 3.970601082 10.109930038 -30.593849182 +v 3.970601082 9.998180389 -30.593849182 +v 5.465974808 10.109920502 -32.314231873 +v 5.465974808 9.998180389 -32.314231873 +v 5.143620014 10.109919548 -32.895774841 +v 5.349530697 10.354027748 -32.918220520 +v 5.143620014 9.998180389 -32.895774841 +v 1.152847290 10.109930038 -40.095317841 +v 1.152847290 9.998181343 -40.095317841 +v 0.970087051 9.998181343 -39.860694885 +v 1.280713081 10.354040146 -40.258556366 +v 2.328783035 13.593065262 -39.462390900 +v 1.453714371 9.998181343 -38.988208771 +v 1.453716278 13.593063354 -38.988208771 +v 4.248755932 15.740915298 -37.093368530 +v 4.655133724 15.609468460 -37.318782806 +v 3.741929054 15.672584534 -38.006538391 +v 5.140193939 15.541138649 -36.443981171 +v 4.758635998 15.672584534 -36.174694061 +v 2.805136681 15.672581673 -37.508422852 +v 3.314519405 15.740912437 -36.589473724 +v 4.163295269 15.541138649 -38.204101563 +v 5.620284557 15.304443359 -35.578979492 +v 2.908140182 14.566658020 -36.364356995 +v 3.288658142 14.504487991 -35.677886963 +v 4.541278839 14.319043159 -35.476043701 +v 4.165520668 14.504489899 -36.153064728 +v 5.733006477 14.979497910 -35.794563293 +v 5.285783291 15.184301376 -36.600345612 +v 5.649660110 14.589399338 -35.944732666 +v 5.244895458 14.785192490 -36.674011230 +v 5.409854889 14.319043159 -35.958118439 +v 4.380053520 15.202938080 -38.232234955 +v 4.832426071 14.858482361 -37.417175293 +v 4.421778202 14.795266151 -38.157058716 +v 4.653206348 14.566659927 -37.321403503 +v 4.832426071 15.245207787 -37.417179108 +v 5.034096718 14.504489899 -36.635139465 +v 3.788245678 14.566660881 -36.817073822 +v 2.908144951 15.609466553 -36.364349365 +v 2.730801582 15.245204926 -36.266048431 +v 2.730799198 14.858480453 -36.266052246 +v 2.524804115 14.504487991 -37.055912018 +v 3.399456501 14.504487991 -37.540740967 +v 4.269494057 14.504489899 -38.012752533 +v 3.025161266 14.319043159 -38.207698822 +v 2.305970669 15.435887337 -38.408943176 +v 1.939085960 15.304441452 -38.112579346 +v 2.418706894 15.541136742 -37.247318268 +v 1.831100464 14.979496956 -37.889152527 +v 2.277885914 15.184299469 -37.083129883 +v 1.428648949 14.662881851 -38.615196228 +v 2.318733692 14.785190582 -37.009437561 +v 2.149413109 14.319040298 -37.733139038 +v 1.786979675 14.013489723 -38.386985779 +v 1.914364815 14.589397430 -37.738937378 +v 1.538980484 14.267008781 -38.416152954 +v -0.143557549 14.858480453 -31.070205688 +v -0.143554688 14.566658020 -30.867439270 +v -0.143553734 14.566658020 -29.867403030 +v -0.928434372 14.504487991 -29.867401123 +v -0.928434372 14.504487991 -30.867439270 +v -1.075737000 15.202935219 -31.070205688 +v -0.989757538 14.795264244 -31.070205688 +v -1.147062302 15.541136742 -30.867441177 +v -1.188070297 15.672581673 -30.402873993 +v -2.217683792 15.435887337 -30.402873993 +v -2.136363029 15.304441452 -30.867439270 +v -2.009947777 15.017164230 -31.070205688 +v -1.821979523 14.590009689 -31.070205688 +v -1.702740669 14.319040298 -29.867401123 +v -1.702741623 14.319040298 -30.867439270 +v -2.981693268 14.941862106 -30.867439270 +v -2.830970764 14.678530693 -31.070205688 +v -3.097460747 15.073307991 -30.402873993 +v -3.459335327 15.242951393 -35.858413696 +v -3.459335327 15.381684303 -35.858413696 +v -4.834913254 15.381684303 -31.801279068 +v -4.834913254 15.242951393 -31.801279068 +v -5.011572838 15.026430130 -31.824825287 +v -3.617288589 15.026430130 -35.940959930 +v -2.622293472 14.277847290 -31.070205688 +v -2.450321198 14.013489723 -30.867439270 +v -2.450321198 14.013488770 -29.867401123 +v -3.443025589 13.749271393 -31.070205688 +v -3.143564224 13.593063354 -30.867439270 +v -3.143561363 13.593063354 -29.867401123 +v -3.873365402 13.975434303 -31.070205688 +v -4.340984344 14.220697403 -30.402873993 +v -4.147581100 14.118021011 -30.867439270 +v -4.926047325 15.244828224 -30.573741913 +v -4.926047325 15.383560181 -30.573741913 +v -5.142028809 15.028306961 -30.402873993 +v -3.143563271 9.998180389 -30.867441177 +v -3.459339142 9.998180389 -35.858577728 +v -3.443388939 9.998180389 -31.070205688 +v -3.143561363 9.998180389 -29.867403030 +v -3.459339142 10.109925270 -35.858577728 +v -4.834972382 10.109925270 -31.801433563 +v -5.011572838 10.354034424 -31.824825287 +v -3.617288589 10.354034424 -35.940959930 +v -4.834972382 9.998180389 -31.801433563 +v -3.872895241 9.998180389 -31.070205688 +v -4.146388054 9.998180389 -30.867439270 +v -5.142004013 10.354028702 -30.402873993 +v -4.341223717 10.354027748 -30.402873993 +v -4.925933838 10.109920502 -30.593847275 +v -4.261025429 10.109919548 -30.593847275 +v -4.261025429 9.998180389 -30.593847275 +v -4.925933838 9.998180389 -30.593847275 +v 0.937560081 9.998181343 -39.501136780 +v -0.992921829 9.998181343 -39.379798889 +v -0.992971420 15.242951393 -39.379638672 +v -0.992971420 15.381684303 -39.379638672 +v -1.115442276 15.026430130 -39.509117126 +v -1.115442276 10.354034424 -39.509117126 +v -0.992921829 10.109925270 -39.379798889 +v 3.231245995 13.749273300 -40.302085876 +v 3.022637367 9.998181343 -40.677947998 +v 3.022408962 13.975436211 -40.678356171 +v 3.197357178 13.593065262 -39.944465637 +v 1.822546959 15.026432037 -41.464599609 +v 2.075977325 15.242953300 -41.360088348 +v 2.075977325 15.381685257 -41.360088348 +v 2.713257313 9.998181343 -40.816692352 +v 2.093720436 9.998067856 -41.369171143 +v 2.093720436 10.109919548 -41.369171143 +v 1.822546959 10.354028702 -41.464599609 +v 3.242274284 15.435888290 -38.906787872 +v 1.528442383 14.941126823 -38.853397369 +v 1.878594398 15.072572708 -39.179950714 +v 2.662373066 14.013492584 -38.861351013 +v 3.530948639 14.013491631 -39.343425751 +v 3.893736839 14.319043159 -38.689773560 +v 3.629533768 14.277850151 -39.584476471 +v 2.712753773 14.116407394 -40.817600250 +v 3.528266907 14.678532600 -39.766933441 +v 3.683204651 15.304443359 -39.069103241 +v 2.815331459 15.073310852 -39.676025391 +v 3.926695824 15.017166138 -39.049068451 +v 3.272159576 14.941128731 -39.809696198 +v 4.017912865 14.590011597 -38.884716034 +v 1.280758858 14.219081879 -40.258476257 +v 2.211596489 14.220699310 -40.763801575 +v 0.938992500 13.952214241 -39.498558044 +v 0.969583511 14.116405487 -39.861606598 +v 1.151953697 13.729486465 -39.114364624 +v 0.846682549 15.381684303 -40.689121246 +v 0.846682549 15.242951393 -40.689121246 +v 0.892202377 15.026430130 -40.959449768 +v 0.892202377 10.354034424 -40.959449768 +v 2.211755276 10.354027748 -40.763519287 +v 0.829423904 9.998181343 -40.678791046 +v 0.829423904 10.109926224 -40.678791046 +v 2.417686462 10.109919548 -40.786300659 +v 2.417686462 9.998066902 -40.786300659 +v 19.847118378 22.273571014 -69.295516968 +v 19.847118378 22.264093399 -64.533531189 +v 18.564567566 22.177253723 -64.533531189 +v 18.564567566 22.186729431 -69.295516968 +v 17.307264328 21.876436234 -64.533531189 +v 17.307264328 21.885911942 -69.295516968 +v 16.230789185 21.414699554 -64.533531189 +v 16.230791092 21.409341812 -69.304817200 +v 14.850788116 20.365238190 -64.533531189 +v 14.851180077 20.368175507 -69.304817200 +v 18.564567566 21.380252838 -62.923557281 +v 19.847118378 21.467092514 -62.923557281 +v 17.307264328 21.079437256 -62.923561096 +v 16.230789185 20.617698669 -62.923561096 +v 14.850788116 19.568237305 -62.923557281 +v 17.307264328 20.073871613 -60.915550232 +v 16.230789185 18.607959747 -58.926403046 +v 16.230789185 19.612133026 -60.915550232 +v 17.307264328 19.069698334 -58.926403046 +v 14.850787163 17.558500290 -58.926403046 +v 14.850787163 18.562671661 -60.915550232 +v 18.564567566 20.374689102 -60.915550232 +v 19.847118378 20.461528778 -60.915550232 +v 18.564565659 19.370515823 -58.926403046 +v 19.847118378 19.457355499 -58.926403046 +v 24.845911026 20.361202240 -69.304733276 +v 24.845569611 20.367290497 -64.533531189 +v 23.454578400 21.415634155 -64.533531189 +v 23.454578400 21.425109863 -69.295516968 +v 22.380249023 21.876436234 -64.533531189 +v 22.380249023 21.885911942 -69.295516968 +v 21.122945786 22.177253723 -64.533531189 +v 21.122945786 22.186729431 -69.295516968 +v 23.454578400 20.618633270 -62.923557281 +v 24.845569611 19.570289612 -62.923557281 +v 22.380249023 21.079435349 -62.923557281 +v 21.122945786 21.380252838 -62.923557281 +v 21.122945786 20.374689102 -60.915550232 +v 22.380249023 20.073871613 -60.915550232 +v 21.122945786 19.370515823 -58.926403046 +v 22.380249023 19.069698334 -58.926403046 +v 24.845569611 18.564725876 -60.915550232 +v 23.454578400 18.608894348 -58.926403046 +v 23.454578400 19.613067627 -60.915550232 +v 24.845569611 17.560552597 -58.926403046 +v 17.307264328 18.084199905 -56.921527863 +v 16.230787277 16.620403290 -54.928943634 +v 16.230789185 17.622463226 -56.921527863 +v 17.307264328 17.082141876 -54.928943634 +v 14.850786209 15.570942879 -54.928943634 +v 14.850786209 16.573001862 -56.921527863 +v 18.564565659 18.385017395 -56.921527863 +v 19.847116470 18.471858978 -56.921527863 +v 18.564565659 17.382957458 -54.928943634 +v 19.847116470 17.469799042 -54.928943634 +v 16.230787277 16.428209305 -54.486366272 +v 17.307262421 16.889945984 -54.486366272 +v 14.850786209 15.378747940 -54.486366272 +v 17.307262421 16.884588242 -50.361312866 +v 16.230787277 16.422851563 -50.361312866 +v 14.851177216 15.381685257 -50.361312866 +v 19.847116470 17.272245407 -50.361312866 +v 18.564565659 17.190763474 -54.486366272 +v 19.847116470 17.277603149 -54.486366272 +v 18.564565659 17.185403824 -50.361312866 +v 22.380247116 18.084199905 -56.921527863 +v 21.122945786 17.382957458 -54.928943634 +v 21.122945786 18.385017395 -56.921527863 +v 22.380247116 17.082139969 -54.928943634 +v 23.454578400 17.623397827 -56.921527863 +v 24.845567703 16.575054169 -56.921527863 +v 23.454578400 16.621337891 -54.928943634 +v 24.845569611 15.572996140 -54.928943634 +v 22.380247116 16.884588242 -50.361312866 +v 21.122943878 17.190763474 -54.486366272 +v 22.380247116 16.889945984 -54.486366272 +v 21.122943878 17.185403824 -50.361312866 +v 23.454576492 16.429143906 -54.486366272 +v 24.845567703 15.380802155 -54.486366272 +v 24.845907211 15.374712944 -50.361396790 +v 23.454576492 16.423786163 -50.361312866 +v 15.065155029 20.229444504 -69.133949280 +v 15.065154076 20.372211456 -64.533569336 +v 15.065155029 20.233478546 -64.533569336 +v 15.065155029 20.368175507 -69.133949280 +v 14.850788116 20.026432037 -69.296829224 +v 14.850788116 20.016956329 -64.533531189 +v 17.388771057 19.267009735 -68.629501343 +v 17.991315842 19.979499817 -68.629501343 +v 17.161193848 19.662883759 -68.629501343 +v 16.885383606 20.072574615 -69.296829224 +v 17.001237869 19.941129684 -68.832267761 +v 17.766918182 20.435890198 -69.296829224 +v 15.848499298 19.116405487 -68.832267761 +v 17.848257065 20.304443359 -68.832267761 +v 16.151197433 18.952217102 -68.629501343 +v 15.652250290 19.219083786 -69.296829224 +v 17.534513474 19.013490677 -69.832305908 +v 17.534511566 19.014816284 -68.830947876 +v 16.847101212 18.593065262 -68.832267761 +v 16.847101212 18.593063354 -69.832305908 +v 16.590465546 18.729488373 -68.629501343 +v 18.837556839 20.541137695 -68.832267761 +v 18.912887573 20.184299469 -68.629501343 +v 18.796533585 20.672582626 -69.296829224 +v 19.847219467 20.740915298 -69.296829224 +v 19.847103119 20.609468460 -68.832267761 +v 19.847099304 20.245208740 -68.629501343 +v 18.997142792 19.785192490 -68.629501343 +v 19.056400299 19.504489899 -69.832305908 +v 19.056400299 19.504489899 -68.832267761 +v 18.282091141 19.320365906 -68.830947876 +v 18.163064957 19.589399338 -68.629501343 +v 19.847097397 19.858482361 -68.629501343 +v 19.847093582 19.566659927 -69.832305908 +v 19.847093582 19.566659927 -68.832267761 +v 18.282093048 19.319042206 -69.832305908 +v 23.146928787 14.998180389 -68.629501343 +v 24.614154816 15.003443718 -64.519569397 +v 23.576435089 14.998180389 -68.629501343 +v 22.847103119 14.998180389 -68.832260132 +v 15.061660767 15.002688408 -64.519554138 +v 15.652154922 15.355363846 -69.295516968 +v 16.847101212 14.998180389 -69.832305908 +v 16.847099304 14.998180389 -68.830947876 +v 15.849536896 14.998180389 -68.830947876 +v 16.591007233 14.998180389 -68.628189087 +v 16.148244858 14.998180389 -68.628189087 +v 14.850786209 15.355358124 -69.295516968 +v 14.850786209 15.345883369 -64.533531189 +v 15.065820694 14.998180389 -69.104545593 +v 15.065818787 15.101775169 -64.533576965 +v 15.065820694 15.111249924 -69.104545593 +v 15.732936859 14.998180389 -69.104545593 +v 15.732936859 15.111255646 -69.104545593 +v 15.065154076 19.575210571 -62.923599243 +v 15.065155029 19.436477661 -62.923599243 +v 14.850788116 19.219955444 -62.923557281 +v 15.065153122 18.569644928 -60.915592194 +v 15.065154076 18.430913925 -60.915592194 +v 14.850787163 18.214391708 -60.915550232 +v 14.850784302 13.543317795 -60.915550232 +v 14.850785255 14.548881531 -62.923561096 +v 15.061659813 14.802688599 -64.116996765 +v 15.065818787 14.304773331 -62.923606873 +v 15.061660767 14.602687836 -63.719551086 +v 15.061660767 14.802688599 -64.519554138 +v 15.061659813 14.602687836 -64.116996765 +v 15.061660767 14.402688980 -63.319549561 +v 15.061660767 14.402688980 -63.719551086 +v 15.061659813 14.202688217 -62.919067383 +v 15.061660767 14.202688217 -63.319549561 +v 15.061660767 14.002689362 -62.516796112 +v 15.061660767 14.002689362 -62.919067383 +v 15.061660767 13.802688599 -62.117893219 +v 15.061660767 13.802688599 -62.516796112 +v 15.065818787 13.299209595 -60.915596008 +v 15.061663628 13.597527504 -61.721931458 +v 15.061662674 13.597527504 -62.118125916 +v 15.061663628 13.397527695 -61.326660156 +v 15.061663628 13.397527695 -61.721931458 +v 15.061664581 13.197527885 -60.916912079 +v 15.061663628 13.197528839 -61.326660156 +v 14.850784302 12.539145470 -58.926403046 +v 14.850787163 17.210218430 -58.926403046 +v 15.065153122 17.565471649 -58.926445007 +v 15.065154076 17.426740646 -58.926445007 +v 15.061664581 12.997529030 -60.527023315 +v 15.065818787 12.295036316 -58.926448822 +v 15.061664581 12.597529411 -59.705848694 +v 15.061664581 12.797529221 -60.103534698 +v 15.061664581 12.997528076 -60.916912079 +v 15.061664581 12.797529221 -60.527023315 +v 15.061664581 12.597529411 -60.103534698 +v 24.614154816 14.203443527 -62.919086456 +v 24.614154816 14.203121185 -63.320079803 +v 24.614154816 13.803443909 -62.117912292 +v 24.614154816 13.803443909 -62.516815186 +v 24.614154816 14.003443718 -62.919086456 +v 24.614154816 14.003443718 -62.516815186 +v 24.614152908 13.598928452 -62.118114471 +v 24.614154816 14.803442955 -64.117019653 +v 24.614154816 14.603444099 -63.719570160 +v 24.614154816 14.403120995 -63.720081329 +v 24.614154816 14.603120804 -64.117134094 +v 24.614154816 14.803443909 -64.519569397 +v 24.614154816 14.403444290 -63.319568634 +v 24.614152908 12.998283386 -60.916931152 +v 24.614152908 13.198284149 -60.916931152 +v 24.614152908 13.198284149 -61.326679230 +v 24.614152908 13.398283005 -61.326679230 +v 24.614152908 13.398283005 -61.721950531 +v 24.614152908 13.598281860 -61.721950531 +v 24.614151001 12.798283577 -60.103549957 +v 24.614151001 12.598283768 -59.705867767 +v 15.061664581 12.397529602 -59.705848694 +v 24.614151001 12.598606110 -60.103549957 +v 24.614151001 12.798283577 -60.527042389 +v 15.061666489 12.197528839 -58.921619415 +v 24.614151001 12.998283386 -60.527042389 +v 24.614151001 12.198284149 -58.921638489 +v 24.614151001 12.398607254 -59.705860138 +v 20.779275894 20.202938080 -68.629501343 +v 20.891609192 20.672582626 -69.296829224 +v 20.850601196 20.541137695 -68.832267761 +v 21.839902878 20.304443359 -68.832267761 +v 21.921224594 20.435890198 -69.296829224 +v 21.713487625 20.017166138 -68.629501343 +v 22.685232162 19.941864014 -68.832267761 +v 20.693298340 19.795265198 -68.629501343 +v 20.631973267 19.504489899 -69.832305908 +v 21.406280518 19.319042206 -69.832305908 +v 20.631973267 19.504489899 -68.832267761 +v 21.525520325 19.590011597 -68.629501343 +v 22.153862000 19.013490677 -69.832305908 +v 21.406280518 19.319042206 -68.832267761 +v 22.534509659 19.678533554 -68.629501343 +v 22.325832367 19.277849197 -68.629501343 +v 22.153862000 19.013492584 -68.832267761 +v 24.629589081 20.235353470 -64.533569336 +v 24.629594803 20.368263245 -69.133865356 +v 24.629594803 20.229530334 -69.133865356 +v 24.629589081 20.374086380 -64.533569336 +v 24.845569611 20.018833160 -64.533531189 +v 24.845909119 20.013008118 -69.304733276 +v 22.801000595 20.073310852 -69.296829224 +v 23.851119995 19.118022919 -68.832267761 +v 23.576902390 18.975435257 -68.629501343 +v 24.044528961 19.220699310 -69.296829224 +v 23.146564484 18.749273300 -68.629501343 +v 22.847103119 18.593063354 -69.832305908 +v 22.847103119 18.593065262 -68.832267761 +v 23.849927902 14.998180389 -68.832260132 +v 24.629476547 14.984669685 -69.114028931 +v 23.964565277 14.998180389 -69.105857849 +v 22.847103119 14.998180389 -69.832305908 +v 23.964565277 15.109921455 -69.105857849 +v 24.044765472 15.354029655 -69.296829224 +v 24.629476547 15.109922409 -69.105857849 +v 24.845544815 15.354030609 -69.296829224 +v 24.845544815 15.344554901 -64.533531189 +v 24.629476547 15.100444794 -64.533576965 +v 24.845569611 19.221830368 -62.923557281 +v 24.845544815 14.547553062 -62.923557281 +v 24.845569611 18.216266632 -60.915550232 +v 24.629589081 18.432788849 -60.915592194 +v 24.629589081 19.438352585 -62.923599243 +v 24.629589081 19.577083588 -62.923599243 +v 24.629589081 18.571521759 -60.915592194 +v 24.629589081 17.428615570 -58.926445007 +v 24.629589081 17.567348480 -58.926445007 +v 24.629476547 14.303443909 -62.923603058 +v 24.845544815 13.541989326 -60.915550232 +v 24.629476547 13.297880173 -60.915596008 +v 24.845569611 17.212093353 -58.926403046 +v 24.845544815 12.537815094 -58.926403046 +v 24.629476547 12.293706894 -58.926448822 +v 15.065153122 16.441242218 -56.921569824 +v 14.850786209 15.222661972 -54.928943634 +v 14.850786209 16.224720001 -56.921527863 +v 15.065153122 15.439184189 -54.928985596 +v 15.065153122 15.577916145 -54.928985596 +v 15.065152168 16.579975128 -56.921569824 +v 15.061664581 12.397529602 -59.308055878 +v 14.850784302 11.553647041 -56.921527863 +v 15.061666489 10.997529984 -56.523735046 +v 15.063741684 11.196999550 -56.922222137 +v 15.065818787 11.309538841 -56.921573639 +v 15.061666489 11.397529602 -57.324699402 +v 15.061666489 11.597529411 -57.723960876 +v 15.061666489 11.397529602 -57.723960876 +v 15.061666489 11.197529793 -57.324699402 +v 15.061665535 10.997529984 -56.922870636 +v 15.061666489 11.997529030 -58.512027740 +v 15.061664581 12.197528839 -59.308055878 +v 15.061666489 11.997529030 -58.921619415 +v 15.061666489 11.797529221 -58.128948212 +v 15.061666489 11.797529221 -58.512027740 +v 15.061666489 11.597529411 -58.128948212 +v 14.850784302 10.551588058 -54.928943634 +v 15.065153122 15.246988297 -54.486324310 +v 14.850786209 15.030466080 -54.486366272 +v 14.850784302 10.359393120 -54.486366272 +v 15.065818787 10.307478905 -54.928993225 +v 15.061666489 10.797530174 -56.124694824 +v 15.061666489 10.597530365 -55.722717285 +v 15.061666489 10.797530174 -56.523735046 +v 15.061666489 10.597530365 -56.124694824 +v 15.061666489 10.397530556 -55.324447632 +v 15.061666489 10.397530556 -55.722717285 +v 15.063743591 10.195970535 -54.928028107 +v 15.061666489 10.197530746 -55.324447632 +v 15.061666489 9.997628212 -54.927124023 +v 15.065818787 10.002214432 -54.486320496 +v 15.065818787 10.115284920 -54.486320496 +v 24.614151001 11.798606873 -58.512046814 +v 24.614151001 11.998606682 -58.921596527 +v 24.614151001 12.398283958 -59.308078766 +v 24.614151001 12.198606491 -59.308071136 +v 24.614151001 11.998284340 -58.512046814 +v 24.614151001 11.798284531 -58.128967285 +v 24.614151001 11.398284912 -57.723983765 +v 24.614151001 11.598284721 -58.128967285 +v 24.614151001 11.598285675 -57.723983765 +v 24.614151001 11.398284912 -57.324714661 +v 24.614151001 11.198284149 -57.324714661 +v 24.614149094 11.198285103 -56.922889709 +v 24.614149094 10.798285484 -56.523754120 +v 24.614149094 10.998285294 -56.523754120 +v 24.614149094 10.798284531 -56.124717712 +v 24.614151001 10.998285294 -56.922889709 +v 24.614149094 10.598284721 -55.722736359 +v 24.614149094 10.598285675 -56.124717712 +v 24.614149094 9.997730255 -54.927211761 +v 24.614149094 10.398285866 -55.324470520 +v 24.614149094 10.198285103 -55.324470520 +v 24.622045517 10.002214432 -54.486320496 +v 24.614149094 10.398285866 -55.722736359 +v 24.614149094 10.198286057 -54.927082062 +v 15.065152168 15.385721207 -54.486324310 +v 15.065151215 15.242953300 -50.532180786 +v 15.065151215 15.381685257 -50.532180786 +v 14.850786209 15.026432037 -50.361312866 +v 16.120515823 13.975436211 -51.028869629 +v 17.371587753 14.277850151 -51.028869629 +v 16.550857544 13.749273300 -51.028869629 +v 15.848496437 14.116407394 -50.825691223 +v 17.162912369 14.678532600 -51.028869629 +v 17.001235962 14.941128731 -50.825691223 +v 17.534509659 14.013491631 -50.825691223 +v 16.847099304 13.593065262 -50.825691223 +v 16.847099304 13.593065262 -49.832305908 +v 17.534509659 14.013492584 -49.832305908 +v 15.652330399 14.220699310 -50.361396790 +v 16.896419525 15.073310852 -50.361396790 +v 17.983934402 15.017166138 -51.028869629 +v 17.848253250 15.304443359 -50.825691223 +v 17.776197433 15.435888290 -50.361396790 +v 18.837554932 15.541138649 -50.825691223 +v 18.805810928 15.672584534 -50.361396790 +v 18.918146133 15.202938080 -51.028869629 +v 19.850324631 14.858482361 -51.028869629 +v 19.850320816 15.245207787 -51.028869629 +v 19.850202560 15.740915298 -50.361396790 +v 19.850318909 15.609468460 -50.826107025 +v 19.004123688 14.795266151 -51.028869629 +v 19.847091675 14.566659927 -50.825691223 +v 19.056396484 14.504489899 -50.825691223 +v 18.171901703 14.590011597 -51.028869629 +v 19.056396484 14.504489899 -49.832302094 +v 18.282089233 14.319043159 -49.832305908 +v 19.847091675 14.566660881 -49.832305908 +v 18.282089233 14.319043159 -50.825691223 +v 23.106412888 9.998181343 -51.028869629 +v 23.549175262 9.998181343 -51.028869629 +v 22.847099304 9.998181343 -50.825691223 +v 16.847097397 9.998181343 -50.825691223 +v 16.847097397 9.998181343 -49.832302094 +v 16.550491333 9.998181343 -51.028869629 +v 16.120986938 9.998181343 -51.028869629 +v 15.849535942 9.998181343 -50.825691223 +v 15.065820694 9.998181343 -50.552104950 +v 14.850786209 10.354028702 -50.361312866 +v 15.065820694 10.109919548 -50.552104950 +v 15.652656555 10.354027748 -50.361396790 +v 15.732674599 10.109919548 -50.552509308 +v 15.732674599 9.998181343 -50.552509308 +v 24.845567703 16.226596832 -56.921527863 +v 24.845542908 11.552317619 -56.921527863 +v 24.629587173 16.581850052 -56.921569824 +v 24.629587173 16.443117142 -56.921569824 +v 24.629589081 15.441058159 -54.928985596 +v 24.845569611 15.224536896 -54.928943634 +v 24.629589081 15.579791069 -54.928985596 +v 24.629474640 11.308209419 -56.921573639 +v 24.845542908 10.358064651 -54.486366272 +v 24.845567703 15.032342911 -54.486366272 +v 24.845542908 10.550258636 -54.928943634 +v 24.629474640 10.306149483 -54.928989410 +v 24.629474640 10.113956451 -54.486320496 +v 20.850599289 15.541138649 -50.825691223 +v 20.900888443 15.672584534 -50.361396790 +v 20.700279236 14.785192490 -51.028869629 +v 20.784534454 15.184301376 -51.028869629 +v 21.930501938 15.435888290 -50.361396790 +v 21.839899063 15.304443359 -50.825691223 +v 22.685230255 14.941864014 -50.825691223 +v 21.706104279 14.979497910 -51.028869629 +v 21.406278610 14.319043159 -50.825691223 +v 20.631971359 14.504489899 -50.825691223 +v 21.534357071 14.589399338 -51.028869629 +v 20.631971359 14.504489899 -49.832305908 +v 22.153858185 14.013491631 -50.825691223 +v 22.308650970 14.267010689 -51.028869629 +v 22.536228180 14.662883759 -51.028869629 +v 21.406278610 14.319043159 -49.832302094 +v 22.153858185 14.013492584 -49.832302094 +v 24.629587173 15.248864174 -54.486324310 +v 24.629587173 15.387597084 -54.486324310 +v 24.845907211 15.026519775 -50.361396790 +v 24.629589081 15.243041992 -50.532264709 +v 24.629589081 15.381774902 -50.532264709 +v 23.546222687 13.952216148 -51.028869629 +v 23.851118088 14.118022919 -50.825691223 +v 23.106956482 13.729488373 -51.028869629 +v 22.847099304 13.593065262 -50.825691223 +v 22.847099304 13.593065262 -49.832305908 +v 22.812036514 15.072574615 -50.361396790 +v 24.045171738 14.219083786 -50.361396790 +v 24.629474640 9.998181343 -50.552104950 +v 24.629474640 10.109925270 -50.552104950 +v 24.845542908 10.354034424 -50.361312866 +v 23.849924088 9.998181343 -50.825691223 +v 23.965547562 10.109930038 -50.552509308 +v 23.965547562 9.998181343 -50.552509308 +v 24.044841766 10.354040146 -50.361396790 +v 22.847099304 9.998181343 -49.832302094 +v 29.770776749 14.983057976 -79.765068054 +v 29.990617752 14.983057976 -79.764480591 +v 29.770776749 14.983057976 -76.728233337 +v 29.990617752 19.614944458 -79.764816284 +v 29.990617752 14.983057976 -76.724792480 +v 29.770776749 19.614944458 -79.764595032 +v 29.990617752 18.641347885 -76.728233337 +v 29.990617752 19.552772522 -78.981636047 +v 29.770776749 19.552772522 -78.978973389 +v 29.990617752 19.367326736 -78.206016541 +v 29.770776749 19.367326736 -78.206016541 +v 29.770776749 18.641349792 -76.728233337 +v 29.990617752 19.061775208 -77.458442688 +v 29.770776749 19.061775208 -77.458442688 +v 29.990617752 19.367326736 -81.333724976 +v 29.770776749 19.367326736 -81.331604004 +v 29.990617752 19.552772522 -80.557205200 +v 29.770776749 19.552772522 -80.555305481 +v 29.990617752 14.983057976 -82.789794922 +v 29.770776749 14.983057976 -82.789558411 +v 29.990617752 19.061775208 -82.081695557 +v 29.770776749 19.061775208 -82.079597473 +v 29.990617752 18.641347885 -82.789794922 +v 29.770776749 18.641349792 -82.789558411 +v 25.150344849 36.803638458 -78.226249695 +v 23.507511139 36.803638458 -76.151039124 +v 22.379907608 37.816291809 -77.288597107 +v 25.149658203 37.588485718 -78.859718323 +v 23.760309219 38.146606445 -79.075546265 +v 26.582733154 37.451553345 -80.917556763 +v 26.741977692 36.803638458 -80.926628113 +v 23.620162964 40.143218994 -80.539779663 +v 23.214408875 38.849967957 -80.607490540 +v 22.805299759 38.849967957 -79.122245789 +v 23.983345032 38.146606445 -80.741073608 +v 22.286933899 40.141529083 -79.104644775 +v 21.626663208 38.849967957 -77.977058411 +v 21.465209961 40.042587280 -77.248382568 +v 21.989391327 38.146606445 -77.923149109 +v 18.922386169 38.849967957 -77.383468628 +v 18.781166077 39.983886719 -75.779251099 +v 19.296573639 37.549797058 -77.759208679 +v 19.071321487 38.146606445 -77.910560608 +v 26.055217743 35.033866882 -80.746879578 +v 24.823348999 35.031005859 -76.757247925 +v 25.464570999 32.528594971 -77.825080872 +v 21.454284668 32.629238129 -76.140113831 +v 24.596004486 35.184875488 -75.502090454 +v 25.541439056 32.444717407 -80.763412476 +v 18.820507050 35.188179016 -77.004943848 +v 19.020227432 36.803642273 -77.550704956 +v 18.437503815 32.598598480 -74.781242371 +v 15.987350464 38.849967957 -75.045997620 +v 15.820146561 40.176586151 -73.660858154 +v 16.128425598 38.146606445 -75.713554382 +v 16.336780548 37.600803375 -75.754692078 +v 16.051029205 36.803642273 -74.879219055 +v 15.816267014 35.004508972 -73.347824097 +v 15.454005241 32.571670532 -72.626029968 +v 12.481450081 32.488109589 -72.487487793 +v 12.481454849 36.824386597 -71.998634338 +v 12.481455803 34.988109589 -72.289489746 +v 9.841464043 32.488113403 -72.487487793 +v 9.841464043 36.824386597 -71.998641968 +v 9.841464043 37.488113403 -72.269149780 +v 12.481452942 37.488109589 -72.269142151 +v 9.841464043 34.988113403 -72.289505005 +v 9.841464043 38.150741577 -73.263992310 +v 12.481452942 38.150741577 -73.263984680 +v 9.841464043 38.831653595 -73.557495117 +v 9.841464043 39.987960815 -72.482528687 +v 12.481452942 39.987960815 -72.482521057 +v 12.481452942 38.831653595 -73.557495117 +v 24.103481293 34.949363708 -83.712203979 +v 25.275901794 32.545532227 -84.405128479 +v 23.822326660 36.803642273 -83.586334229 +v 21.669319153 36.803638458 -86.960464478 +v 20.021114349 32.419254303 -86.266639709 +v 24.059520721 37.374099731 -83.686401367 +v 23.201112747 39.767883301 -83.417564392 +v 23.296180725 38.849967957 -82.913650513 +v 23.527416229 38.146606445 -82.990409851 +v 21.588678360 37.490589142 -86.695175171 +v 21.198863983 38.146606445 -86.152320862 +v 21.211910248 38.849967957 -86.241333008 +v 20.951198578 34.872016907 -86.784126282 +v 18.210243225 34.756584167 -89.659729004 +v 18.384002686 32.098144531 -89.750251770 +v 18.141355515 36.803638458 -88.407386780 +v 21.635330200 40.005462646 -87.013442993 +v 18.081920624 37.317695618 -88.053428650 +v 17.714733124 38.146606445 -87.833557129 +v 17.707719803 38.849967957 -88.143836975 +v 18.099239349 39.993171692 -89.274894714 +v 15.259215355 39.788761139 -87.509864807 +v 14.867755890 38.849967957 -86.730918884 +v 14.875638962 38.146606445 -86.616233826 +v 15.287878036 37.231719971 -87.092933655 +v 15.288704872 36.803642273 -87.207962036 +v 15.292680740 34.746036530 -87.760856628 +v 15.425393105 32.172321320 -87.813186646 +v 12.481456757 34.988113403 -87.337501526 +v 12.481456757 32.488113403 -87.139503479 +v 9.841465950 34.988113403 -87.337501526 +v 9.841465950 32.488113403 -87.139511108 +v 12.481451988 36.803638458 -87.625076294 +v 9.841465950 36.824386597 -87.628364563 +v 12.481458664 37.488113403 -87.354400635 +v 12.481458664 38.831653595 -86.051231384 +v 9.841455460 38.831653595 -86.069503784 +v 9.841456413 38.150741577 -86.363006592 +v 12.452425003 39.987964630 -87.164901733 +v 9.841456413 39.987960815 -87.144470215 +v 9.841456413 37.488113403 -87.357849121 +v 12.481458664 38.150741577 -86.348823547 +v 29.305988312 21.413707733 -76.206016541 +v 29.305988312 20.366687775 -74.815032959 +v 24.837379456 20.371608734 -74.815391541 +v 23.466409683 21.406253815 -76.199089050 +v 25.255584717 14.946889877 -76.231483459 +v 26.604797363 14.982656479 -76.265853882 +v 27.231506348 14.950581551 -76.265853882 +v 23.980312347 21.871791840 -77.274734497 +v 24.203563690 21.958866119 -77.837463379 +v 24.520853043 21.999008179 -78.534027100 +v 23.593200684 21.483489990 -76.369125366 +v 29.305988312 21.874507904 -77.280349731 +v 29.305988312 22.175323486 -78.537651062 +v 24.800132751 22.060703278 -79.218650818 +v 29.305988312 22.262165070 -79.813476563 +v 24.956825256 22.130088806 -79.813652039 +v 23.457771301 21.412771225 -70.348968506 +v 23.082004547 21.573951721 -75.407218933 +v 22.381294250 21.874509811 -74.702331543 +v 22.381294250 21.874507904 -70.348968506 +v 24.837772369 20.364633560 -70.348968506 +v 18.565612793 22.107646942 -72.990287781 +v 19.841440201 22.250955582 -73.242851257 +v 19.841440201 22.262165070 -70.348968506 +v 21.123991013 22.175323486 -70.348968506 +v 21.123991013 22.175325394 -74.250564575 +v 25.056758881 22.139398575 -80.535820007 +v 24.705877304 22.122812271 -81.095756531 +v 29.305988312 22.175323486 -81.096031189 +v 29.305988312 21.874507904 -82.353332520 +v 23.299259186 21.874511719 -82.353866577 +v 23.448938370 21.413709641 -83.419189453 +v 29.305988312 21.412771225 -83.429809570 +v 29.305988312 20.364633560 -84.809814453 +v 24.839569092 20.371608734 -84.809417725 +v 23.457771301 21.412773132 -89.284484863 +v 24.837379456 20.371608734 -89.284484863 +v 22.797550201 21.693103790 -82.773315430 +v 22.375690460 21.873327255 -83.476203918 +v 22.381294250 21.874511719 -89.284484863 +v 21.123992920 22.175325394 -89.284484863 +v 22.168815613 21.903715134 -83.783325195 +v 21.120126724 22.067075729 -84.549667358 +v 19.841442108 22.176996231 -84.137710571 +v 19.841442108 22.262166977 -89.284484863 +v 18.565612793 22.175325394 -89.284484863 +v 18.565612793 22.175323486 -70.348968506 +v 18.272354126 21.979415894 -73.085937500 +v 17.308311462 21.518264771 -73.613197327 +v 17.308309555 21.874507904 -70.348968506 +v 16.233982086 20.961898804 -74.645462036 +v 16.233980179 21.413707733 -70.348968506 +v 14.842990875 20.366687775 -70.348968506 +v 16.933029175 21.336425781 -73.846252441 +v 14.842651367 20.219360352 -74.815307617 +v 15.540415764 20.409646988 -75.513656616 +v 15.635255814 20.520387650 -75.291046143 +v 15.281488419 20.586505890 -75.753463745 +v 14.728040695 20.909824371 -76.207351685 +v 15.799945831 20.644830704 -75.183647156 +v 10.370471001 21.413709641 -76.206024170 +v 13.212484360 21.168054581 -77.276458740 +v 14.610939026 20.942386627 -76.341934204 +v 10.370471001 21.874511719 -77.280349731 +v 10.370553970 20.364635468 -74.814689636 +v 13.357571602 21.493791580 -79.813629150 +v 12.988756180 21.191238403 -78.535026550 +v 10.370471001 22.175325394 -78.537651062 +v 13.057863235 21.173599243 -77.588134766 +v 10.370471001 22.262166977 -79.813484192 +v 13.967662811 21.837032318 -81.095771790 +v 10.370471001 22.175325394 -81.096031189 +v 13.763244629 21.696022034 -80.502403259 +v 14.216711998 21.863300323 -81.803222656 +v 14.747447968 21.848104477 -82.353805542 +v 10.370471001 21.874511719 -82.353332520 +v 14.845539093 20.371608734 -84.811607361 +v 10.370471001 21.412773132 -83.429809570 +v 10.982007980 20.373481750 -84.595985413 +v 10.370471001 20.371608734 -84.809417725 +v 15.094427109 21.729990005 -82.688247681 +v 16.235771179 21.413709641 -83.420799255 +v 16.762920380 21.712316513 -82.950569153 +v 18.560976028 22.168703079 -83.647201538 +v 17.301679611 21.976741791 -83.235755920 +v 17.308311462 21.874511719 -89.284484863 +v 14.842651367 20.364635468 -89.284408569 +v 16.233982086 21.413709641 -89.284484863 +v 24.488052368 30.094154358 -75.618225098 +v 25.518449783 28.812402725 -75.841156006 +v 24.347496033 28.985239029 -75.019706726 +v 23.141761780 30.100467682 -74.650505066 +v 24.634094238 26.688255310 -75.590003967 +v 23.490127563 27.013437271 -73.939460754 +v 23.440853119 28.999212265 -74.159996033 +v 22.817611694 27.110204697 -72.569808960 +v 21.266868591 26.662124634 -71.392883301 +v 19.449996948 28.567934036 -72.402175903 +v 19.529581070 29.983152390 -73.100250244 +v 19.787189484 26.169006348 -71.135566711 +v 22.061599731 24.255449295 -74.742469788 +v 20.893354416 24.193212509 -74.051712036 +v 21.115722656 24.546749115 -72.695671082 +v 22.511524200 24.635454178 -73.533271790 +v 22.808015823 25.561082840 -72.700889587 +v 23.368392944 25.587879181 -74.153945923 +v 21.280704498 25.101297379 -71.769996643 +v 19.866724014 24.839723587 -71.833221436 +v 19.801246643 24.161594391 -72.210723877 +v 23.329086304 24.272464752 -74.836639404 +v 23.955390930 25.325462341 -75.683670044 +v 23.781864166 23.778326035 -75.961318970 +v 22.722534180 23.988742828 -75.623329163 +v 23.200160980 23.616571426 -76.630523682 +v 23.091220856 23.616294861 -76.484764099 +v 22.626701355 22.961791992 -76.785835266 +v 22.330196381 23.193660736 -76.181762695 +v 26.550949097 29.874471664 -77.890174866 +v 26.447105408 28.526062012 -76.735382080 +v 26.842082977 28.425216675 -77.812469482 +v 26.544471741 28.660789490 -80.678894043 +v 26.738830566 28.452816010 -79.091911316 +v 25.884006500 26.118581772 -77.365158081 +v 25.705062866 26.361009598 -76.578338623 +v 25.819625854 26.084964752 -78.917701721 +v 25.796188354 26.212837219 -79.443344116 +v 25.092411041 24.798793793 -77.526428223 +v 25.752429962 26.067216873 -78.103294373 +v 24.865108490 24.997421265 -76.733055115 +v 24.665222168 23.828989029 -77.714935303 +v 25.286739349 24.730936050 -78.227584839 +v 25.378070831 24.778564453 -79.131469727 +v 23.948272705 23.776203156 -76.147186279 +v 24.426811218 23.831975937 -77.107467651 +v 23.688209534 23.579959869 -77.967208862 +v 23.549936295 23.637470245 -77.448776245 +v 25.604660034 24.897699356 -79.702133179 +v 25.027832031 24.062568665 -78.296684265 +v 25.358690262 24.106132507 -79.120513916 +v 25.383094788 24.321857452 -79.871215820 +v 24.432258606 23.809860229 -79.742805481 +v 24.290679932 23.616666794 -79.205200195 +v 29.305988312 20.063230515 -76.859596252 +v 29.135120392 20.373481750 -75.031013489 +v 24.623407364 20.371608734 -75.031326294 +v 29.135120392 20.234748840 -75.031013489 +v 24.623407364 20.232875824 -75.031326294 +v 29.305988312 20.018226624 -74.815032959 +v 19.794349670 23.879894257 -73.666061401 +v 19.805347443 22.543739319 -73.894897461 +v 20.892026901 20.662504196 -70.348968506 +v 19.841341019 20.730834961 -70.348968506 +v 20.851001740 20.531059265 -70.813537598 +v 21.840303421 20.294363022 -70.813537598 +v 19.841457367 20.599388123 -70.813537598 +v 21.921642303 20.425807953 -70.348968506 +v 22.803176880 20.062494278 -70.348968506 +v 23.537363052 18.942136765 -71.016304016 +v 22.527366638 19.652805328 -71.016304016 +v 22.687320709 19.931049347 -70.813537598 +v 23.840061188 19.106327057 -70.813537598 +v 24.036310196 19.209003448 -70.348968506 +v 21.767883301 23.401014328 -75.542915344 +v 20.757532120 23.470703125 -75.025962830 +v 19.773284912 23.212747574 -74.474105835 +v 20.944026947 22.566518784 -74.784950256 +v 22.061439514 22.344963074 -75.191322327 +v 22.683864594 22.077983856 -75.817459106 +v 23.025321960 21.929023743 -76.520858765 +v 24.623407364 20.371606827 -70.519836426 +v 24.623407364 20.232873917 -70.519836426 +v 24.837772369 20.016351700 -70.348968506 +v 24.036403656 15.343961716 -70.348968506 +v 24.837772369 20.016353607 -74.815391541 +v 24.837772369 15.343955994 -70.348968506 +v 23.098094940 18.719408035 -71.016304016 +v 23.097551346 14.950710297 -71.016304016 +v 22.841457367 14.950710297 -70.813537598 +v 23.839019775 14.950710297 -70.813537598 +v 23.540313721 14.950710297 -71.016304016 +v 22.841457367 18.582984924 -70.813537598 +v 24.622737885 14.950710297 -70.539947510 +v 23.955623627 14.950710297 -70.539947510 +v 23.955623627 15.099852562 -70.539947510 +v 24.622737885 15.099847794 -70.539947510 +v 24.837770462 15.343947411 -74.815391541 +v 24.606698990 14.947907448 -75.034667969 +v 21.894195557 14.901648521 -72.612403870 +v 24.612802505 15.079806328 -75.034667969 +v 23.336404800 14.936596870 -74.047241211 +v 23.298706055 15.231988907 -75.839904785 +v 23.259780884 14.938171387 -75.032234192 +v 25.088092804 15.331356049 -76.757781982 +v 22.979141235 15.738905907 -77.437652588 +v 29.305988312 19.210618973 -75.616073608 +v 29.305988312 15.343950272 -74.815055847 +v 28.841423035 19.931785583 -76.975364685 +v 28.841423035 19.107944489 -75.809478760 +v 29.305988312 15.343950272 -75.615837097 +v 28.638660431 14.950710297 -76.084167480 +v 28.638660431 18.965354919 -76.083694458 +v 28.638660431 18.739192963 -76.514038086 +v 28.638660431 14.950710297 -76.513671875 +v 28.841423035 14.950710297 -75.810668945 +v 29.115013123 14.950710297 -75.031127930 +v 24.735479355 15.422969818 -77.767738342 +v 26.498107910 14.949935913 -76.926391602 +v 29.115013123 15.099842072 -75.031127930 +v 29.115013123 15.099841118 -75.696037292 +v 29.115013123 14.950710297 -75.696037292 +v 22.299789429 19.256931305 -71.016304016 +v 22.154045105 19.003412247 -70.813537598 +v 21.406467438 19.308963776 -70.813537598 +v 21.525495529 19.579319000 -71.016304016 +v 20.775671005 20.174221039 -71.016304016 +v 21.697242737 19.969417572 -71.016304016 +v 20.691417694 19.775112152 -71.016304016 +v 20.632160187 19.494409561 -70.813537598 +v 19.841459274 20.235126495 -71.016304016 +v 19.841461182 19.848402023 -71.016304016 +v 19.841464996 19.556579590 -70.813537598 +v 16.841457367 14.950710297 -70.813537598 +v 20.586040497 14.937191010 -71.819656372 +v 18.894596100 14.938294411 -72.220695496 +v 20.435432434 15.061697960 -72.449722290 +v 18.696746826 15.379846573 -73.383460999 +v 18.772079468 15.265413284 -72.659072876 +v 17.032363892 15.983451843 -73.813018799 +v 21.754692078 14.977915764 -73.410140991 +v 20.325994492 15.450225830 -73.102951050 +v 21.950759888 15.306118011 -73.966735840 +v 21.694307327 15.916619301 -75.330863953 +v 20.282855988 16.405143738 -74.777481079 +v 21.458448410 16.824398041 -78.550865173 +v 21.431514740 16.321739197 -76.831939697 +v 18.578311920 15.797663689 -74.144912720 +v 20.631263733 15.616428375 -73.627922058 +v 18.694887161 16.794986725 -75.507049561 +v 23.809509277 23.007034302 -79.658699036 +v 23.685874939 22.939796448 -79.189224243 +v 24.038337708 23.547147751 -78.586608887 +v 23.465511322 22.890916824 -78.649032593 +v 29.305988312 20.425807953 -77.739372253 +v 29.305988312 20.662504196 -78.768989563 +v 28.841423035 20.531059265 -78.809997559 +v 28.638660431 20.007085800 -77.947113037 +v 28.638660431 19.668453217 -77.126091003 +v 28.841423035 20.294363022 -77.820693970 +v 28.638660431 19.267768860 -77.334770203 +v 28.638660431 20.192857742 -78.881324768 +v 28.638660431 19.579931259 -78.135078430 +v 28.638660431 19.785186768 -78.967300415 +v 28.841423035 20.599388123 -79.813499451 +v 29.305988312 20.730834961 -79.813377380 +v 28.638660431 20.235126495 -79.813499451 +v 28.841423035 19.494409561 -79.028625488 +v 29.841461182 19.308961868 -78.254318237 +v 28.841423035 19.308963776 -78.254318237 +v 29.841461182 19.494409561 -79.028625488 +v 28.841423035 19.556579590 -79.813507080 +v 29.841461182 19.556579590 -79.813507080 +v 28.638660431 19.848402023 -79.813499451 +v 28.841423035 19.003412247 -77.506736755 +v 28.841423035 18.582984924 -76.813499451 +v 29.841461182 18.582984924 -76.813499451 +v 29.841461182 19.003410339 -77.506736755 +v 28.841423035 14.950710297 -76.813499451 +v 29.841461182 14.988102913 -76.813499451 +v 26.069618225 14.947598457 -77.688873291 +v 27.280761719 14.949302673 -81.662971497 +v 26.861991882 14.947669029 -81.228546143 +v 28.196334839 14.950796127 -82.088394165 +v 28.841423035 14.950710297 -82.813499451 +v 28.196334839 14.950674057 -82.655242920 +v 26.867954254 15.440361977 -82.661079407 +v 26.867954254 15.730962753 -82.088844299 +v 29.841461182 14.988102913 -82.813499451 +v 26.535839081 14.949819565 -80.187927246 +v 26.665481567 14.947300911 -80.670341492 +v 25.893093109 14.945127487 -78.708297729 +v 25.875171661 14.947607040 -79.065750122 +v 26.184097290 14.950408936 -79.661888123 +v 24.564708710 15.443685532 -78.836112976 +v 22.942348480 16.209550858 -78.833389282 +v 24.546791077 15.496338844 -79.185707092 +v 24.855716705 15.576368332 -79.749267578 +v 22.946269989 16.330913544 -79.273895264 +v 23.259548187 16.457134247 -79.899765015 +v 22.733558655 22.972330093 -76.940849304 +v 23.201393127 22.975053787 -78.108131409 +v 23.039005280 23.035600662 -77.655403137 +v 23.137948990 21.997629166 -76.671897888 +v 23.481811523 22.259363174 -77.476325989 +v 23.680122375 22.266258240 -77.976188660 +v 23.961961746 22.227539063 -78.594932556 +v 24.210037231 22.282510757 -79.203063965 +v 24.349227905 22.352766037 -79.731590271 +v 21.507698059 17.028732300 -79.056488037 +v 21.912975311 17.337978363 -79.802665710 +v 20.085742950 17.311626434 -76.427032471 +v 20.119037628 17.919717789 -78.256080627 +v 18.678516388 17.549781799 -76.917640686 +v 20.157531738 18.068082809 -78.809753418 +v 20.502685547 18.281394958 -79.627601624 +v 18.786527634 19.179737091 -79.585365295 +v 26.305461884 29.938735962 -80.742683411 +v 25.685838699 30.050054550 -84.391563416 +v 25.666475296 28.903474808 -84.421432495 +v 25.907665253 26.450117111 -80.232681274 +v 26.151550293 26.630941391 -80.783760071 +v 25.638500214 27.246767044 -84.464599609 +v 25.065311432 26.102489471 -84.893760681 +v 25.663249969 24.491418839 -80.759208679 +v 25.920974731 25.083208084 -80.329757690 +v 26.520496368 25.468971252 -81.519325256 +v 26.707901001 24.878492355 -81.515037537 +v 25.468273163 24.755270004 -81.602767944 +v 24.205516815 24.160057068 -80.901245117 +v 24.522552490 23.985321045 -80.395317078 +v 25.201683044 24.895957947 -82.327247620 +v 25.152015686 24.942050934 -84.862052917 +v 24.254001617 24.662267685 -83.632957458 +v 22.481258392 23.758296967 -82.416992188 +v 22.934574127 24.070884705 -82.038009644 +v 23.021926880 24.178052902 -84.502494812 +v 22.100090027 23.673082352 -83.052085876 +v 22.501628876 23.353986740 -81.663024902 +v 21.430339813 29.881513596 -87.753814697 +v 23.237037659 27.381513596 -89.024147034 +v 23.450878143 26.034505844 -87.742164612 +v 22.340473175 28.903474808 -88.446884155 +v 18.217596054 29.553066254 -89.729858398 +v 18.321304321 27.053068161 -90.041275024 +v 18.924333572 25.752410889 -88.468887329 +v 18.244543076 28.903474808 -89.810775757 +v 18.851167679 24.901309967 -88.307090759 +v 21.652906418 23.939552307 -84.968963623 +v 19.944507599 24.132301331 -84.900215149 +v 23.233039856 25.185806274 -87.248916626 +v 21.900707245 23.957534790 -84.885879517 +v 21.899944305 23.594797134 -83.399215698 +v 19.810281754 23.811729431 -83.664077759 +v 20.965631485 23.643945694 -84.022010803 +v 28.841423035 20.531059265 -80.823043823 +v 29.305988312 20.662504196 -80.864067078 +v 29.305988312 20.425807953 -81.893684387 +v 28.638660431 20.174221039 -80.747711182 +v 28.638660431 19.969417572 -81.669281006 +v 28.638660431 19.579319000 -81.497535706 +v 28.638660431 19.775112152 -80.663459778 +v 28.841423035 20.294363022 -81.812339783 +v 28.841423035 19.931049347 -82.659362793 +v 28.638660431 19.652805328 -82.499404907 +v 29.305988312 19.209003448 -84.008346558 +v 29.305988312 20.062494278 -82.775215149 +v 29.305988312 20.016351700 -84.809814453 +v 29.135120392 20.371606827 -84.595443726 +v 29.135120392 20.232873917 -84.595443726 +v 24.623950958 20.371696472 -84.595756531 +v 24.623950958 20.232963562 -84.595756531 +v 24.840267181 20.016441345 -84.811691284 +v 24.126316071 22.467172623 -80.870460510 +v 22.876848221 22.344964981 -81.988014221 +v 23.611503601 23.333345413 -80.670333862 +v 22.431190491 22.181167603 -82.360595703 +v 23.953485489 23.180593491 -80.251121521 +v 24.437995911 22.389266968 -80.373077393 +v 28.841423035 19.308963776 -81.378509521 +v 28.841423035 19.494409561 -80.604202271 +v 29.841461182 19.494409561 -80.604202271 +v 28.841423035 19.003412247 -82.126083374 +v 29.841461182 19.308961868 -81.378509521 +v 29.841461182 19.003410339 -82.126083374 +v 28.638660431 19.256931305 -82.271827698 +v 28.841423035 18.582984924 -82.813499451 +v 29.841461182 18.582984924 -82.813499451 +v 28.638660431 18.719408035 -83.070137024 +v 28.638660431 18.942136765 -83.509399414 +v 28.841423035 19.106327057 -83.812103271 +v 28.638660431 14.950710297 -83.069587708 +v 28.841423035 14.950710297 -83.811058044 +v 29.305988312 15.343961716 -84.008445740 +v 28.638660431 14.950710297 -83.512351990 +v 28.196334839 14.950065613 -83.009132385 +v 26.867954254 14.944667816 -83.010108948 +v 29.115013123 14.950710297 -83.927658081 +v 29.115013123 14.950710297 -84.594779968 +v 29.115013123 15.099852562 -83.927658081 +v 29.115013123 15.099847794 -84.594779968 +v 25.952377319 15.555994034 -81.667083740 +v 25.533611298 15.441658974 -81.235389709 +v 25.271785736 16.370138168 -82.129051208 +v 24.623832703 15.084804535 -84.639930725 +v 29.305988312 15.343955994 -84.809814453 +v 24.623832703 14.946317673 -84.659896851 +v 25.271785736 14.928886414 -83.643524170 +v 25.207458496 15.607461929 -80.229797363 +v 25.337100983 15.596984863 -80.685585022 +v 23.611289978 16.304542542 -80.392143250 +v 23.740932465 16.228935242 -80.838890076 +v 24.356212616 15.971117020 -81.711555481 +v 23.937442780 16.058343887 -81.356719971 +v 22.438049316 17.129186630 -80.770584106 +v 22.308406830 17.217609406 -80.322029114 +v 23.053329468 16.767339706 -81.716812134 +v 22.634559631 16.920852661 -81.308265686 +v 23.968902588 16.563045502 -82.157836914 +v 25.271785736 15.919914246 -82.709167480 +v 25.271785736 15.354865074 -83.046897888 +v 23.967103958 15.168118477 -83.748222351 +v 23.968902588 15.525764465 -83.178428650 +v 23.968902588 14.925689697 -84.537361145 +v 23.968902588 16.310291290 -82.731681824 +v 24.623405457 20.232875824 -89.113616943 +v 24.623947144 20.373481750 -89.107162476 +v 24.837772369 20.016353607 -89.284484863 +v 24.036228180 19.210620880 -89.284408569 +v 22.792137146 20.063232422 -89.284408569 +v 24.839904785 15.343955994 -84.818161011 +v 24.623832703 14.950710297 -89.087051392 +v 24.623832703 15.099842072 -89.087051392 +v 23.567571640 14.950710297 -88.617889404 +v 23.568038940 18.965358734 -88.616928101 +v 23.137702942 18.739194870 -88.616928101 +v 24.035900116 15.343950272 -89.284408569 +v 24.837772369 15.343950272 -89.284484863 +v 23.844284058 14.950710297 -88.813461304 +v 23.138065338 14.950710297 -88.648902893 +v 23.955883026 14.950710297 -89.093292236 +v 23.955883026 15.099841118 -89.093292236 +v 23.840061188 19.106328964 -88.820106506 +v 22.687324524 19.931051254 -88.820106506 +v 22.525646210 19.668455124 -88.616928101 +v 20.873836517 19.212495804 -83.716064453 +v 19.406978607 19.888927460 -84.077728271 +v 19.414176941 21.462732315 -82.990173340 +v 19.958477020 19.926210403 -82.459869385 +v 20.875013351 19.308794022 -82.895057678 +v 21.772899628 23.068262100 -82.548583984 +v 21.598121643 22.997964859 -82.851722717 +v 21.872701645 22.243719101 -83.257759094 +v 22.105762482 23.112348557 -81.993980408 +v 22.056463242 22.266183853 -82.984947205 +v 20.782215118 22.993917465 -83.395591736 +v 19.773288727 23.212579727 -83.083015442 +v 19.805349350 22.443315506 -83.586601257 +v 20.941175461 22.310987473 -83.938491821 +v 20.991313934 18.459091187 -80.719329834 +v 20.861671448 18.407154083 -80.239631653 +v 21.606594086 17.911363602 -81.903717041 +v 21.187824249 18.329421997 -81.446632385 +v 19.342899323 19.541238785 -80.956283569 +v 19.187976837 19.356319427 -80.242729187 +v 19.540824890 19.720926285 -81.783370972 +v 22.522163391 17.274503708 -82.934059143 +v 22.522163391 17.592578888 -82.239845276 +v 22.484359741 16.313440323 -84.120674133 +v 22.518768311 16.689754486 -83.503875732 +v 20.859477997 18.254144669 -84.122451782 +v 20.770414352 20.192859650 -88.616928101 +v 19.838237762 20.235130310 -88.616928101 +v 19.838233948 19.848403931 -88.616928101 +v 21.704624176 20.007087708 -88.616928101 +v 20.684436798 19.785186768 -88.616928101 +v 21.840305328 20.294364929 -88.820106506 +v 20.851005554 20.531061172 -88.820106506 +v 21.912361145 20.425811768 -89.284408569 +v 20.882747650 20.662506104 -89.284408569 +v 22.316970825 19.267770767 -88.616928101 +v 22.154048920 19.003414154 -88.820106506 +v 22.841461182 18.582986832 -88.820106506 +v 22.841461182 18.582986832 -89.813499451 +v 21.406469345 19.308963776 -88.820106506 +v 21.516656876 19.579933167 -88.616928101 +v 22.137996674 19.003410339 -89.813499451 +v 19.838356018 20.730836868 -89.284408569 +v 19.838241577 20.599390030 -88.819694519 +v 20.632162094 19.494411469 -88.820106506 +v 21.390419006 19.308961868 -89.813499451 +v 20.632162094 19.494411469 -89.813499451 +v 19.841468811 19.556581497 -88.820106506 +v 19.841468811 19.556581497 -89.813499451 +v 20.751476288 17.103826523 -84.706436157 +v 19.339275360 18.912166595 -84.394371033 +v 21.049032211 15.863847733 -85.412651062 +v 19.170335770 17.632045746 -84.910621643 +v 20.875701904 14.949906349 -86.055358887 +v 22.390251160 15.629423141 -84.830459595 +v 18.301856995 14.937114716 -86.137916565 +v 22.807044983 14.988101959 -89.813499451 +v 22.841461182 14.950710297 -88.823219299 +v 16.841459274 14.950710297 -88.820114136 +v 16.831239700 14.988101959 -89.813499451 +v 15.818071365 27.487817764 -72.805198669 +v 15.743446350 28.903474808 -73.059967041 +v 16.720575333 28.934715271 -73.143966675 +v 18.047039032 28.909187317 -73.017089844 +v 15.684791565 30.003684998 -73.260215759 +v 18.525236130 26.654150009 -71.953231812 +v 18.162685394 26.808786392 -72.181945801 +v 17.223571777 27.178163528 -72.633407593 +v 17.245525360 25.270286560 -72.983283997 +v 16.740139008 25.390344620 -73.098541260 +v 16.748601913 27.326850891 -72.748352051 +v 18.209056854 25.080087662 -72.513275146 +v 18.169246674 24.404680252 -72.365806580 +v 18.578323364 24.984479904 -72.266166687 +v 18.462497711 24.405164719 -72.263618469 +v 18.657451630 23.969886780 -73.577072144 +v 17.135082245 24.324024200 -73.184768677 +v 18.401916504 23.923854828 -73.576492310 +v 15.684789658 25.591835022 -73.260215759 +v 16.730388641 24.162227631 -73.436096191 +v 15.793661118 24.871000290 -74.105880737 +v 17.519702911 23.677232742 -74.143333435 +v 17.169528961 23.476366043 -74.372077942 +v 15.101604462 24.741426468 -74.480918884 +v 16.451955795 22.982490540 -75.175552368 +v 12.481462479 29.988111496 -72.297737122 +v 12.481460571 28.858713150 -72.394294739 +v 12.481462479 26.238111496 -73.774490356 +v 12.481455803 27.488111496 -72.685501099 +v 9.841464043 28.858713150 -72.394302368 +v 9.841464043 29.988111496 -72.297760010 +v 9.841464043 27.488111496 -72.685501099 +v 9.841464043 26.238111496 -73.774505615 +v 12.481455803 25.478315353 -73.873489380 +v 14.326726913 24.516502380 -75.883964539 +v 9.841368675 24.988111496 -77.254035950 +v 9.841463089 25.488111496 -73.873512268 +v 13.640657425 23.942804337 -77.135154724 +v 12.481455803 24.591220856 -77.239486694 +v 13.473918915 23.923679352 -77.471260071 +v 12.481456757 23.876964569 -79.813499451 +v 13.399394989 23.645229340 -78.492370605 +v 9.841464996 24.988111496 -79.813499451 +v 17.767335892 20.425807953 -70.348968506 +v 18.796949387 20.662504196 -70.348968506 +v 18.837957382 20.531059265 -70.813537598 +v 17.848655701 20.294363022 -70.813537598 +v 18.909282684 20.192857742 -71.016304016 +v 17.003326416 19.931785583 -70.813537598 +v 17.975070953 20.007085800 -71.016304016 +v 17.154048920 19.668453217 -71.016304016 +v 18.163040161 19.579931259 -71.016304016 +v 18.995262146 19.785186768 -71.016304016 +v 16.887557983 20.063230515 -70.348968506 +v 19.056587219 19.494409561 -70.813537598 +v 15.837439537 19.107944489 -70.813537598 +v 16.111656189 18.965354919 -71.016304016 +v 17.362728119 19.267768860 -71.016304016 +v 15.644033432 19.210618973 -70.348968506 +v 18.765943527 23.200260162 -74.275917053 +v 18.538703918 23.132932663 -74.281570435 +v 18.655975342 22.460165024 -73.696899414 +v 18.379405975 22.330810547 -73.808197021 +v 17.710544586 22.778474808 -74.852195740 +v 17.357477188 22.535253525 -75.078155518 +v 17.420154572 21.845836639 -74.421234131 +v 18.282279968 19.308963776 -70.813537598 +v 17.534698486 19.003412247 -70.813537598 +v 16.541996002 18.739192963 -71.016304016 +v 16.841457367 18.582984924 -70.813537598 +v 15.058970451 20.373481750 -70.519836426 +v 14.842990875 20.018226624 -70.348968506 +v 15.058971405 20.234748840 -70.519836426 +v 14.843014717 15.343950272 -70.348968506 +v 15.838632584 14.950710297 -70.813537598 +v 15.643795013 15.343950272 -70.348968506 +v 14.843015671 15.343955994 -74.815391541 +v 16.541629791 14.950710297 -71.016304016 +v 16.112125397 14.950710297 -71.016304016 +v 17.295028687 14.950681686 -73.240432739 +v 16.225315094 14.950619698 -74.404861450 +v 15.059083939 14.950710297 -70.539947510 +v 15.723994255 14.950710297 -70.539947510 +v 15.723994255 15.099841118 -70.539947510 +v 15.059083939 15.099842072 -70.539947510 +v 15.059083939 15.099847794 -75.034667969 +v 15.062631607 14.950710297 -75.032218933 +v 15.993486404 16.043682098 -74.891418457 +v 17.580718994 18.601600647 -76.582916260 +v 17.608123779 18.033020020 -75.992507935 +v 18.956254959 16.238872528 -74.623527527 +v 16.658613205 17.280139923 -75.766830444 +v 16.858667374 16.648092270 -75.071937561 +v 14.842651367 19.999349594 -74.815307617 +v 15.058968544 20.170953751 -75.031242371 +v 15.689005852 16.945304871 -75.395370483 +v 14.469780922 17.697820663 -75.849273682 +v 14.633446693 16.660942078 -75.592468262 +v 15.504920006 18.060466766 -76.458518982 +v 15.058967590 20.286876678 -75.031242371 +v 15.580442429 22.254665375 -76.067657471 +v 16.570756912 21.943433762 -75.816146851 +v 16.149850845 21.184806824 -75.519653320 +v 15.663236618 21.165817261 -76.608116150 +v 15.639649391 20.889797211 -76.033630371 +v 15.230363846 20.653139114 -76.445938110 +v 17.006267548 21.571250916 -74.693077087 +v 16.605232239 21.943433762 -75.816146851 +v 14.933979988 22.035934448 -78.985809326 +v 14.907885551 21.989849091 -78.614784241 +v 15.965945244 20.967689514 -78.567970276 +v 15.890275955 21.048503876 -78.917999268 +v 15.283826828 22.158493042 -79.612579346 +v 17.397212982 19.778511047 -78.448715210 +v 16.154167175 21.231525421 -79.520309448 +v 17.266906738 19.912086487 -78.838211060 +v 14.990085602 21.806129456 -77.740325928 +v 15.364355087 21.519338608 -77.042915344 +v 16.191160202 20.680904388 -77.723434448 +v 14.957674980 22.561777115 -76.607536316 +v 15.367637634 22.353986740 -76.263748169 +v 14.490463257 22.840423584 -77.478836060 +v 16.308990479 19.685749054 -76.490653992 +v 16.175315857 20.300151825 -76.929840088 +v 18.414966583 18.401939392 -78.381942749 +v 17.587017059 19.222574234 -77.421653748 +v 18.426315308 18.667060852 -78.873901367 +v 17.356460571 20.098489761 -79.467292786 +v 15.592473984 19.060592651 -76.803924561 +v 14.817337990 18.983997345 -76.982727051 +v 10.541421890 20.371696472 -75.031005859 +v 10.541421890 20.232963562 -75.031005859 +v 10.370553970 20.016441345 -74.814689636 +v 13.694046021 19.710155487 -76.971282959 +v 13.428596497 20.853733063 -79.356292725 +v 13.365878105 20.853733063 -78.175544739 +v 13.549103737 20.215240479 -77.503173828 +v 14.390188217 22.835433960 -77.743637085 +v 14.358359337 22.587871552 -79.014625549 +v 14.372740746 22.729833603 -78.576995850 +v 14.723241806 22.743982315 -79.741401672 +v 13.407335281 23.436180115 -79.013099670 +v 13.797117233 23.424091339 -79.871200562 +v 10.370553970 20.062496185 -76.848564148 +v 10.370553970 19.209005356 -75.615425110 +v 10.834850311 19.107944489 -75.809478760 +v 11.038029671 18.942138672 -76.114372253 +v 11.038028717 19.652805328 -77.124366760 +v 10.834851265 19.931785583 -76.975364685 +v 10.370553017 20.662506104 -78.759712219 +v 10.370553017 20.425811768 -77.730094910 +v 10.370553017 20.730836868 -79.810394287 +v 10.834851265 20.531061172 -78.809997559 +v 10.834850311 20.294364929 -77.820701599 +v 11.038028717 19.969421387 -77.954490662 +v 11.038028717 19.256933212 -77.351943970 +v 11.038028717 19.579320908 -78.126243591 +v 10.834850311 19.308963776 -78.254318237 +v 9.841461182 19.308965683 -78.254318237 +v 9.841462135 19.494411469 -79.028625488 +v 11.038028717 19.775114059 -78.960319519 +v 11.038028717 20.174222946 -78.876060486 +v 10.834851265 19.494411469 -79.028625488 +v 10.835263252 20.599390030 -79.810279846 +v 11.038028717 19.848403931 -79.810272217 +v 9.841462135 19.556581497 -79.813507080 +v 11.038028717 20.235130310 -79.810279846 +v 10.834850311 19.556581497 -79.813507080 +v 12.184720993 16.376655579 -78.849044800 +v 12.877394676 19.252302170 -79.155899048 +v 13.270064354 19.252302170 -79.928024292 +v 13.095947266 18.804010391 -77.196586609 +v 12.300619125 17.382823944 -77.248023987 +v 12.916456223 19.252302170 -77.798713684 +v 12.728396416 17.382823944 -76.634635925 +v 13.275438309 18.355716705 -76.594451904 +v 13.140472412 17.382823944 -76.043762207 +v 10.370553017 15.343961716 -75.615753174 +v 10.370471001 15.343955994 -74.815055847 +v 10.834850311 18.582986832 -76.813499451 +v 9.841462135 18.582986832 -76.813499451 +v 9.841461182 19.003414154 -77.506736755 +v 11.038029671 18.719409943 -76.553642273 +v 10.834850311 19.003414154 -77.506736755 +v 10.834848404 14.951487541 -75.810676575 +v 11.038029671 14.951487541 -76.111419678 +v 11.044261932 14.951487541 -76.557403564 +v 12.175566673 14.938457489 -75.595718384 +v 10.567905426 14.951487541 -75.032218933 +v 10.567905426 15.099847794 -75.032218933 +v 10.561667442 15.099852562 -75.695053101 +v 10.561667442 14.951487541 -75.695053101 +v 11.428196907 14.924728394 -78.595741272 +v 12.577390671 16.376655579 -79.621170044 +v 11.820867538 14.924728394 -79.367866516 +v 10.834849358 14.937757492 -76.813499451 +v 9.841461182 14.988102913 -76.813499451 +v 9.797045708 18.615947723 -76.733764648 +v 9.841461182 14.988102913 -82.813499451 +v 9.841462135 19.003414154 -82.126091003 +v 9.841462135 18.582986832 -82.813499451 +v 9.841462135 19.308965683 -81.378509521 +v 9.841461182 19.494411469 -80.604202271 +v 12.481460571 28.903474808 -86.941497803 +v 15.313100815 28.903474808 -87.490287781 +v 15.296688080 29.545209885 -87.612686157 +v 12.481462479 29.988113403 -86.941497803 +v 12.481456757 27.488113403 -86.941490173 +v 9.841465950 29.988111496 -87.329231262 +v 9.841465950 28.858713150 -87.232696533 +v 9.841465950 27.488111496 -86.941505432 +v 14.277844429 23.393224716 -80.594512939 +v 14.455027580 23.561286926 -81.253829956 +v 12.481463432 24.737924576 -82.387504578 +v 14.723598480 23.582912445 -82.016731262 +v 15.364147186 23.638420105 -83.156723022 +v 9.841465950 26.238111496 -85.852500916 +v 12.481462479 26.238113403 -85.852493286 +v 15.360628128 27.045209885 -87.135848999 +v 15.797599792 25.972791672 -86.195816040 +v 12.481456757 25.488113403 -85.753501892 +v 9.841465950 25.488111496 -85.753494263 +v 15.738739014 25.267404556 -86.186729431 +v 17.516098022 23.335683823 -82.759796143 +v 18.653358459 23.667816162 -83.212455750 +v 18.540206909 24.219396591 -84.522186279 +v 17.128713608 23.555570602 -83.480865479 +v 18.667587280 22.528354645 -83.149971008 +v 18.762870789 23.123046875 -82.676109314 +v 17.769180298 22.723236084 -82.368392944 +v 17.548355103 22.285589218 -82.930236816 +v 18.299018860 21.698566437 -83.135536194 +v 18.299633026 22.112844467 -82.534400940 +v 17.343858719 22.503286362 -82.168144226 +v 17.795085907 20.623046875 -80.934585571 +v 18.047508240 20.899999619 -81.670639038 +v 16.956222534 21.655448914 -81.338508606 +v 18.500097275 21.186233521 -82.271835327 +v 16.428874969 22.516170502 -81.662994385 +v 17.385707855 21.768718719 -81.907676697 +v 18.294757843 20.863731384 -83.381980896 +v 18.220481873 19.797840118 -83.738861084 +v 17.601169586 20.357986450 -80.238296509 +v 15.655702591 22.447345734 -80.161003113 +v 16.550643921 21.352880478 -80.101470947 +v 16.722076416 21.495004654 -80.637100220 +v 15.806715012 22.605678558 -80.663780212 +v 17.070299149 22.044887543 -82.607398987 +v 16.659742355 20.853733063 -82.871192932 +v 15.355899811 20.853733063 -82.468498230 +v 17.451713562 20.503826141 -83.742225647 +v 15.295934677 23.441549301 -82.610466003 +v 15.500967979 23.194305420 -81.540473938 +v 15.980512619 22.986270905 -82.037948608 +v 15.275939941 23.389579773 -80.901260376 +v 15.670108795 23.259626389 -82.971130371 +v 16.010105133 22.582714081 -81.228546143 +v 16.294021606 22.860517502 -82.340133667 +v 17.028942108 23.000946045 -82.523216248 +v 16.547252655 23.328453064 -83.191894531 +v 15.091239929 23.186864853 -80.365119934 +v 13.821267128 20.853733063 -80.128417969 +v 14.063079834 20.853733063 -80.807723999 +v 14.746932030 20.853733063 -82.280418396 +v 14.285540581 20.853733063 -81.432670593 +v 13.734337807 19.252302170 -81.232284546 +v 9.841464996 24.988111496 -82.387512207 +v 10.834851265 20.531061172 -80.823043823 +v 10.370553017 20.662506104 -80.854789734 +v 10.834850311 19.494411469 -80.604202271 +v 11.038027763 19.785186768 -80.656471252 +v 11.038027763 20.192859650 -80.742454529 +v 10.370553017 20.425811768 -81.884399414 +v 10.370553017 20.063232422 -82.764175415 +v 10.834851265 20.294364929 -81.812347412 +v 11.038027763 19.579933167 -81.488693237 +v 11.038027763 20.007087708 -81.676666260 +v 11.038027763 19.668455124 -82.497688293 +v 10.547799110 20.234748840 -84.595985413 +v 15.059513092 20.232875824 -84.595672607 +v 15.059513092 20.371608734 -84.595672607 +v 10.370471001 20.016353607 -84.809814453 +v 14.845148087 20.016353607 -84.811607361 +v 14.552314758 19.252302170 -82.628776550 +v 14.338544846 16.376655579 -82.885971069 +v 16.162754059 19.252302170 -83.525245667 +v 10.834851265 19.003414154 -82.126091003 +v 10.834851265 19.308963776 -81.378509521 +v 11.038027763 19.267770767 -82.289009094 +v 10.834851265 19.106328964 -83.812103271 +v 10.834851265 19.931051254 -82.659362793 +v 10.370553017 19.210620880 -84.008270264 +v 11.038027763 18.965358734 -83.540084839 +v 11.038027763 18.739194870 -83.109741211 +v 10.834850311 18.582986832 -82.813499451 +v 13.707309723 19.186428070 -81.221466064 +v 13.041664124 16.376655579 -80.925430298 +v 13.527381897 14.924728394 -83.489402771 +v 11.570766449 14.924728394 -80.672126770 +v 10.834849358 14.937757492 -82.813499451 +v 17.518198013 19.252302170 -84.293426514 +v 18.020149231 18.335988998 -84.308212280 +v 18.102117538 15.832498550 -85.543647766 +v 18.853557587 15.782326698 -85.912292480 +v 16.129116058 16.376655579 -83.949760437 +v 15.060180664 14.937757492 -84.592330933 +v 17.285715103 16.376655579 -85.060470581 +v 18.787670135 20.662506104 -89.284408569 +v 17.758056641 20.425811768 -89.284408569 +v 16.876522064 20.062496185 -89.284408569 +v 17.848659515 20.294364929 -88.820106506 +v 18.837959290 20.531061172 -88.820106506 +v 18.904026031 20.174222946 -88.616928101 +v 16.581602097 18.719409943 -88.616928101 +v 17.379907608 19.256933212 -88.616928101 +v 17.152332306 19.652805328 -88.616928101 +v 17.003330231 19.931785583 -88.820106506 +v 15.837440491 19.107944489 -88.820106506 +v 16.142333984 18.942138672 -88.616928101 +v 16.841457367 18.582986832 -88.820106506 +v 16.831239700 18.582984924 -89.813499451 +v 17.534702301 19.003414154 -89.813499451 +v 19.056587219 19.494411469 -88.820106506 +v 17.982456207 19.969421387 -88.616928101 +v 18.988279343 19.775114059 -88.616928101 +v 18.154201508 19.579320908 -88.616928101 +v 17.769893646 14.937680244 -86.186363220 +v 16.585369110 14.950710297 -88.610694885 +v 17.534702301 19.003414154 -88.820106506 +v 18.282279968 19.308965683 -89.813499451 +v 19.056587219 19.494411469 -89.813499451 +v 18.282279968 19.308963776 -88.820106506 +v 16.139383316 14.950710297 -88.616928101 +v 10.370471001 15.343950272 -84.809814453 +v 11.038027763 14.937757492 -83.539611816 +v 10.567904472 15.099842072 -84.595870972 +v 15.060180664 15.099842072 -84.592330933 +v 14.845148087 15.343950272 -84.811607361 +v 10.567904472 14.937757492 -84.595870972 +v 10.841497421 14.937757492 -83.816322327 +v 11.038027763 14.937757492 -83.110107422 +v 10.370553017 15.343950272 -84.007942200 +v 10.561665535 15.099841118 -83.927925110 +v 10.561665535 14.937757492 -83.927925110 +v 15.643386841 19.209005356 -89.284408569 +v 14.842651367 20.016441345 -89.284408569 +v 15.058968544 20.371696472 -89.113540649 +v 15.059513092 20.232873917 -89.107162476 +v 15.643715858 15.343961716 -89.284408569 +v 15.838634491 14.950710297 -88.820114136 +v 14.843015671 15.343955994 -89.284484863 +v 15.060181618 14.950710297 -89.087051392 +v 15.060180664 15.099847794 -89.087051392 +v 15.723011017 14.950710297 -89.093292236 +v 15.723011017 15.099852562 -89.093292236 +f 1 2 3 +f 4 5 1 +f 6 7 4 +f 7 8 4 +f 8 9 4 +f 7 10 8 +f 4 1 3 +f 11 12 6 +f 12 13 6 +f 13 14 6 +f 12 15 13 +f 16 17 12 +f 6 18 7 +f 18 19 7 +f 6 20 18 +f 11 6 4 +f 11 16 12 +f 11 21 16 +f 22 23 11 +f 23 24 11 +f 24 25 11 +f 23 26 24 +f 22 27 23 +f 27 28 23 +f 29 30 3 +f 30 31 3 +f 31 22 3 +f 22 4 3 +f 22 11 4 +f 30 32 31 +f 31 33 22 +f 33 34 22 +f 31 35 33 +f 22 36 27 +f 37 38 39 +f 40 39 41 +f 41 42 40 +f 39 40 37 +f 43 44 38 +f 38 37 43 +f 45 46 47 +f 47 48 45 +f 49 46 45 +f 45 50 49 +f 51 52 53 +f 53 50 51 +f 49 54 55 +f 55 56 49 +f 54 49 50 +f 50 53 54 +f 48 47 39 +f 46 49 56 +f 50 45 44 +f 39 47 46 +f 44 45 48 +f 39 38 48 +f 44 51 50 +f 56 41 46 +f 46 41 39 +f 48 38 44 +f 52 57 58 +f 58 53 52 +f 59 55 54 +f 54 60 59 +f 60 54 53 +f 53 58 60 +f 61 58 57 +f 62 59 60 +f 60 63 62 +f 57 64 61 +f 63 60 58 +f 58 61 63 +f 65 66 67 +f 67 68 65 +f 69 70 71 +f 71 72 69 +f 72 71 66 +f 66 65 72 +f 64 73 74 +f 74 61 64 +f 75 62 63 +f 63 76 75 +f 76 63 61 +f 61 74 76 +f 77 75 76 +f 76 78 77 +f 73 79 80 +f 80 74 73 +f 78 76 74 +f 74 80 78 +f 81 82 83 +f 83 84 81 +f 81 85 86 +f 86 82 81 +f 87 77 78 +f 78 85 87 +f 79 88 86 +f 86 80 79 +f 85 78 80 +f 80 86 85 +f 82 86 88 +f 85 81 70 +f 84 83 66 +f 70 81 84 +f 66 83 82 +f 82 67 66 +f 66 71 84 +f 88 67 82 +f 84 71 70 +f 70 87 85 +f 6 14 89 +f 89 90 6 +f 14 13 91 +f 91 89 14 +f 13 15 92 +f 92 91 13 +f 90 89 93 +f 93 94 90 +f 89 91 95 +f 95 93 89 +f 91 92 96 +f 96 95 91 +f 97 98 19 +f 18 20 99 +f 99 97 18 +f 20 6 90 +f 90 99 20 +f 7 19 98 +f 98 100 7 +f 19 18 97 +f 99 90 94 +f 94 101 99 +f 100 98 102 +f 102 103 100 +f 98 97 104 +f 104 102 98 +f 97 99 101 +f 101 104 97 +f 15 12 105 +f 105 92 15 +f 12 17 106 +f 106 105 12 +f 107 106 17 +f 108 96 92 +f 105 106 109 +f 109 108 105 +f 110 109 106 +f 92 105 108 +f 17 16 107 +f 16 21 111 +f 111 107 16 +f 21 11 112 +f 112 111 21 +f 106 107 110 +f 107 111 113 +f 113 110 107 +f 111 112 114 +f 114 113 111 +f 11 25 115 +f 115 112 11 +f 25 24 116 +f 116 115 25 +f 24 26 117 +f 117 116 24 +f 26 23 118 +f 118 117 26 +f 23 28 119 +f 119 118 23 +f 120 121 116 +f 112 115 122 +f 122 114 112 +f 115 116 121 +f 121 122 115 +f 116 117 120 +f 123 124 118 +f 117 118 124 +f 124 120 117 +f 118 119 123 +f 28 27 125 +f 125 119 28 +f 27 36 126 +f 126 125 27 +f 127 126 36 +f 125 126 128 +f 119 125 129 +f 129 123 119 +f 130 128 126 +f 128 129 125 +f 96 108 131 +f 131 132 96 +f 108 109 133 +f 133 131 108 +f 134 133 109 +f 94 93 135 +f 135 136 94 +f 93 95 137 +f 137 135 93 +f 95 96 132 +f 132 137 95 +f 138 139 102 +f 104 101 140 +f 140 138 104 +f 101 94 136 +f 136 140 101 +f 103 102 139 +f 139 141 103 +f 102 104 138 +f 136 135 142 +f 142 143 136 +f 135 137 144 +f 144 142 135 +f 137 132 145 +f 145 144 137 +f 143 142 146 +f 146 147 143 +f 142 144 148 +f 148 146 142 +f 144 145 149 +f 149 148 144 +f 150 151 152 +f 152 153 150 +f 151 143 147 +f 147 152 151 +f 154 155 156 +f 156 157 154 +f 147 146 155 +f 155 154 147 +f 157 156 158 +f 155 159 160 +f 160 156 155 +f 146 148 159 +f 159 155 146 +f 161 158 162 +f 162 158 156 +f 163 164 153 +f 165 166 161 +f 164 163 167 +f 167 168 164 +f 153 152 163 +f 166 165 168 +f 168 167 166 +f 161 166 167 +f 167 157 161 +f 158 161 157 +f 165 161 162 +f 163 154 157 +f 157 167 163 +f 152 147 154 +f 154 163 152 +f 169 145 132 +f 131 133 170 +f 170 169 131 +f 171 170 133 +f 132 131 169 +f 145 169 172 +f 172 149 145 +f 169 170 173 +f 173 172 169 +f 174 173 170 +f 148 149 175 +f 175 159 148 +f 159 175 176 +f 176 160 159 +f 156 160 162 +f 177 162 160 +f 160 176 177 +f 165 162 178 +f 179 175 149 +f 162 180 178 +f 162 177 180 +f 176 181 180 +f 180 177 176 +f 175 179 181 +f 181 176 175 +f 149 172 179 +f 182 181 179 +f 172 173 183 +f 184 180 181 +f 181 182 184 +f 183 179 172 +f 179 183 182 +f 180 184 178 +f 185 182 183 +f 186 183 173 +f 178 184 182 +f 182 185 178 +f 183 186 185 +f 173 174 186 +f 140 136 143 +f 143 151 140 +f 141 139 187 +f 187 188 141 +f 139 138 150 +f 150 187 139 +f 138 140 151 +f 151 150 138 +f 188 187 189 +f 189 190 188 +f 187 150 153 +f 153 189 187 +f 191 192 193 +f 194 193 195 +f 196 195 165 +f 189 153 164 +f 165 197 198 +f 198 168 165 +f 164 199 189 +f 195 197 165 +f 199 164 168 +f 168 198 199 +f 193 198 197 +f 192 199 198 +f 198 193 192 +f 190 189 199 +f 199 192 190 +f 197 195 193 +f 123 129 200 +f 200 201 123 +f 129 128 202 +f 202 200 129 +f 203 202 128 +f 109 110 134 +f 110 113 204 +f 204 134 110 +f 113 114 205 +f 205 204 113 +f 114 122 206 +f 206 205 114 +f 122 121 207 +f 207 206 122 +f 121 120 208 +f 208 207 121 +f 120 124 209 +f 209 208 120 +f 124 123 201 +f 201 209 124 +f 133 134 171 +f 134 204 210 +f 210 171 134 +f 204 205 211 +f 211 210 204 +f 212 213 207 +f 205 206 214 +f 214 211 205 +f 206 207 213 +f 213 214 206 +f 207 208 212 +f 208 209 215 +f 215 212 208 +f 209 201 216 +f 216 215 209 +f 217 218 219 +f 165 178 220 +f 178 221 220 +f 221 217 220 +f 221 218 217 +f 170 171 174 +f 171 210 222 +f 222 174 171 +f 210 211 223 +f 223 222 210 +f 185 224 225 +f 226 186 174 +f 225 178 185 +f 186 226 224 +f 224 185 186 +f 174 222 226 +f 222 223 227 +f 228 225 224 +f 224 229 228 +f 227 226 222 +f 178 228 221 +f 178 225 228 +f 226 227 229 +f 229 224 226 +f 211 214 230 +f 230 223 211 +f 214 213 231 +f 231 230 214 +f 213 212 232 +f 232 231 213 +f 212 215 233 +f 233 232 212 +f 215 216 234 +f 234 233 215 +f 229 235 236 +f 227 237 235 +f 235 229 227 +f 236 228 229 +f 228 236 221 +f 221 236 235 +f 223 230 237 +f 237 227 223 +f 238 237 230 +f 235 239 221 +f 237 238 239 +f 239 235 237 +f 230 231 238 +f 219 239 238 +f 240 238 231 +f 238 240 219 +f 218 221 239 +f 239 219 218 +f 231 232 240 +f 240 241 242 +f 242 219 240 +f 219 242 217 +f 232 233 241 +f 241 240 232 +f 201 200 243 +f 243 216 201 +f 244 243 200 +f 200 202 244 +f 245 244 202 +f 216 243 246 +f 246 234 216 +f 243 244 247 +f 247 246 243 +f 248 247 244 +f 249 241 233 +f 242 250 251 +f 251 217 242 +f 217 251 220 +f 241 249 250 +f 250 242 241 +f 233 234 249 +f 234 246 252 +f 252 249 234 +f 220 251 250 +f 250 253 220 +f 249 252 253 +f 253 250 249 +f 252 254 255 +f 255 253 252 +f 246 247 254 +f 254 252 246 +f 256 220 253 +f 253 255 256 +f 220 256 257 +f 258 254 247 +f 259 255 254 +f 257 256 255 +f 9 8 260 +f 8 10 261 +f 261 260 8 +f 10 7 100 +f 100 261 10 +f 260 262 9 +f 263 264 5 +f 4 9 262 +f 262 263 4 +f 5 4 263 +f 262 260 265 +f 260 261 266 +f 266 265 260 +f 261 100 103 +f 103 266 261 +f 263 262 267 +f 267 268 263 +f 268 269 264 +f 265 267 262 +f 264 263 268 +f 3 2 270 +f 270 271 3 +f 2 1 272 +f 272 270 2 +f 5 264 1 +f 264 272 1 +f 3 271 29 +f 270 272 273 +f 273 274 270 +f 272 264 269 +f 269 273 272 +f 271 270 274 +f 275 271 276 +f 274 276 271 +f 31 32 277 +f 277 278 31 +f 32 30 279 +f 279 277 32 +f 30 29 275 +f 275 279 30 +f 271 275 29 +f 278 277 280 +f 280 281 278 +f 277 279 282 +f 282 280 277 +f 279 275 283 +f 283 282 279 +f 276 283 275 +f 284 285 34 +f 36 22 127 +f 22 34 285 +f 285 127 22 +f 33 35 286 +f 35 31 278 +f 278 286 35 +f 286 284 33 +f 34 33 284 +f 287 130 127 +f 288 287 285 +f 126 127 130 +f 127 285 287 +f 289 288 284 +f 286 278 281 +f 285 284 288 +f 281 289 286 +f 284 286 289 +f 290 291 274 +f 269 292 273 +f 292 290 273 +f 276 274 291 +f 291 293 276 +f 274 273 290 +f 293 294 276 +f 267 265 295 +f 265 266 296 +f 296 295 265 +f 266 103 141 +f 141 296 266 +f 295 297 267 +f 298 292 269 +f 268 267 297 +f 297 298 268 +f 269 268 298 +f 297 295 299 +f 295 296 300 +f 300 299 295 +f 296 141 188 +f 188 300 296 +f 299 301 297 +f 292 298 302 +f 302 303 292 +f 298 297 301 +f 301 302 298 +f 303 304 290 +f 305 306 304 +f 291 290 304 +f 304 306 291 +f 290 292 303 +f 301 299 307 +f 307 308 301 +f 299 300 309 +f 309 307 299 +f 300 188 190 +f 190 309 300 +f 310 196 311 +f 195 310 194 +f 312 196 165 +f 196 310 195 +f 313 191 194 +f 307 309 191 +f 193 194 191 +f 309 190 192 +f 192 191 309 +f 311 194 310 +f 308 307 313 +f 191 313 307 +f 313 314 308 +f 314 313 311 +f 194 311 313 +f 315 311 196 +f 311 315 314 +f 196 316 315 +f 317 316 196 +f 318 304 319 +f 304 303 319 +f 303 302 320 +f 320 319 303 +f 302 301 308 +f 308 320 302 +f 321 322 323 +f 312 317 196 +f 324 323 319 +f 312 325 317 +f 317 325 322 +f 320 308 314 +f 324 314 315 +f 315 321 324 +f 316 317 321 +f 321 315 316 +f 319 320 324 +f 322 321 317 +f 314 324 320 +f 323 324 321 +f 326 322 325 +f 322 326 327 +f 318 319 323 +f 323 327 318 +f 327 323 322 +f 326 328 329 +f 330 318 327 +f 312 331 328 +f 328 326 312 +f 329 328 332 +f 327 329 330 +f 318 330 333 +f 329 327 326 +f 334 335 44 +f 335 334 336 +f 336 337 335 +f 44 43 334 +f 42 41 338 +f 339 338 333 +f 333 330 339 +f 338 339 42 +f 42 339 334 +f 330 332 339 +f 332 330 329 +f 42 43 37 +f 37 40 42 +f 334 43 42 +f 340 305 333 +f 340 306 305 +f 341 306 340 +f 56 55 342 +f 333 305 304 +f 343 344 335 +f 335 344 51 +f 51 44 335 +f 344 345 52 +f 52 51 344 +f 346 345 344 +f 344 343 346 +f 335 337 343 +f 347 348 64 +f 64 57 347 +f 349 348 347 +f 345 346 350 +f 347 350 349 +f 350 347 345 +f 345 347 57 +f 57 52 345 +f 342 351 352 +f 352 341 342 +f 353 306 341 +f 341 352 353 +f 342 55 59 +f 59 351 342 +f 306 353 293 +f 294 293 353 +f 353 354 294 +f 293 291 306 +f 354 353 352 +f 62 355 351 +f 351 355 356 +f 356 352 351 +f 351 59 62 +f 352 356 354 +f 342 357 56 +f 41 56 357 +f 357 338 41 +f 338 357 340 +f 340 333 338 +f 357 342 341 +f 341 340 357 +f 333 304 318 +f 358 328 331 +f 332 328 358 +f 281 280 359 +f 359 360 281 +f 280 282 361 +f 361 359 280 +f 282 283 362 +f 362 361 282 +f 276 294 283 +f 294 362 283 +f 363 203 130 +f 364 363 287 +f 128 130 203 +f 130 287 363 +f 365 364 288 +f 289 281 360 +f 360 365 289 +f 287 288 364 +f 288 289 365 +f 325 312 326 +f 312 165 220 +f 366 331 312 +f 356 367 368 +f 355 62 75 +f 75 369 355 +f 355 369 367 +f 367 356 355 +f 339 332 370 +f 334 339 371 +f 372 336 334 +f 331 366 358 +f 366 373 374 +f 374 358 366 +f 375 376 377 +f 377 378 375 +f 376 375 358 +f 378 377 379 +f 358 374 376 +f 334 380 372 +f 370 371 339 +f 371 380 334 +f 358 370 332 +f 361 362 368 +f 368 381 361 +f 381 368 367 +f 362 294 354 +f 368 354 356 +f 354 368 362 +f 67 88 382 +f 383 382 88 +f 382 384 385 +f 385 386 382 +f 88 79 383 +f 383 387 384 +f 384 382 383 +f 382 386 67 +f 388 367 369 +f 369 389 388 +f 367 388 381 +f 369 75 77 +f 77 389 369 +f 79 73 390 +f 390 391 387 +f 387 383 390 +f 348 390 73 +f 348 349 391 +f 73 64 348 +f 390 383 79 +f 391 390 348 +f 359 361 381 +f 381 379 359 +f 360 359 379 +f 379 392 360 +f 381 393 379 +f 389 77 87 +f 394 381 388 +f 393 395 379 +f 394 395 393 +f 381 394 393 +f 203 363 396 +f 202 203 245 +f 396 245 203 +f 397 396 363 +f 398 397 364 +f 392 398 365 +f 365 360 392 +f 363 364 397 +f 364 365 398 +f 373 366 399 +f 366 312 399 +f 312 400 399 +f 312 220 400 +f 244 245 248 +f 245 396 401 +f 401 248 245 +f 396 397 402 +f 402 401 396 +f 403 258 248 +f 247 248 258 +f 404 259 258 +f 220 257 400 +f 255 259 257 +f 405 257 259 +f 259 404 405 +f 254 258 259 +f 248 401 403 +f 257 405 400 +f 258 403 404 +f 400 405 404 +f 406 403 401 +f 403 406 407 +f 404 407 400 +f 401 402 406 +f 407 404 403 +f 397 398 408 +f 408 402 397 +f 398 392 409 +f 409 408 398 +f 392 379 377 +f 377 409 392 +f 373 399 410 +f 411 412 410 +f 399 413 414 +f 414 410 399 +f 400 413 399 +f 411 406 402 +f 406 411 414 +f 414 407 406 +f 407 414 413 +f 402 408 411 +f 413 400 407 +f 376 412 409 +f 374 410 412 +f 409 377 376 +f 410 374 373 +f 412 376 374 +f 408 409 412 +f 412 411 408 +f 410 414 411 +f 389 415 394 +f 394 388 389 +f 415 416 395 +f 379 395 378 +f 87 415 389 +f 395 394 415 +f 415 87 70 +f 70 416 415 +f 68 67 386 +f 385 372 380 +f 380 386 385 +f 416 371 378 +f 416 70 69 +f 69 371 416 +f 378 395 416 +f 386 380 68 +f 378 370 358 +f 68 69 72 +f 72 65 68 +f 370 378 371 +f 358 375 378 +f 69 68 380 +f 380 371 69 +f 417 418 419 +f 420 421 418 +f 422 423 421 +f 424 425 423 +f 426 427 425 +f 428 429 427 +f 430 431 429 +f 432 433 431 +f 418 417 420 +f 427 426 428 +f 423 422 424 +f 429 428 430 +f 421 420 422 +f 431 430 432 +f 425 424 426 +f 433 432 434 +f 435 436 437 +f 438 436 435 +f 439 437 436 +f 437 439 440 +f 429 438 435 +f 438 429 431 +f 441 442 443 +f 441 433 442 +f 444 436 445 +f 438 445 436 +f 446 445 438 +f 446 433 441 +f 431 446 438 +f 446 431 433 +f 384 447 448 +f 436 444 439 +f 385 384 448 +f 447 449 450 +f 384 387 447 +f 448 450 451 +f 450 448 447 +f 440 452 437 +f 453 437 452 +f 435 437 453 +f 452 440 454 +f 427 435 453 +f 435 427 429 +f 454 455 452 +f 456 452 455 +f 425 453 456 +f 453 425 427 +f 453 452 456 +f 455 454 457 +f 458 459 460 +f 387 391 459 +f 387 459 447 +f 449 447 459 +f 459 458 449 +f 391 460 459 +f 461 460 462 +f 349 462 460 +f 391 349 460 +f 460 461 458 +f 457 458 461 +f 449 454 440 +f 454 449 458 +f 450 440 439 +f 440 450 449 +f 451 439 444 +f 439 451 450 +f 458 457 454 +f 463 464 451 +f 465 372 464 +f 448 464 372 +f 466 467 468 +f 469 470 466 +f 468 471 466 +f 470 472 467 +f 467 466 470 +f 466 471 469 +f 469 471 468 +f 451 464 448 +f 444 445 469 +f 444 463 451 +f 372 385 448 +f 470 445 446 +f 441 470 446 +f 445 470 469 +f 473 444 469 +f 473 463 444 +f 470 441 472 +f 474 455 475 +f 456 455 474 +f 475 457 476 +f 457 475 455 +f 423 456 474 +f 456 423 425 +f 477 475 478 +f 474 475 477 +f 421 474 477 +f 474 421 423 +f 478 476 479 +f 476 478 475 +f 480 462 481 +f 476 461 480 +f 461 476 457 +f 462 480 461 +f 350 481 462 +f 349 350 462 +f 479 480 482 +f 482 481 483 +f 483 484 482 +f 346 343 483 +f 346 483 481 +f 350 346 481 +f 481 482 480 +f 480 479 476 +f 485 479 486 +f 479 485 478 +f 487 478 485 +f 418 477 487 +f 477 418 421 +f 477 478 487 +f 484 483 488 +f 488 489 484 +f 482 486 479 +f 486 482 484 +f 343 488 483 +f 484 490 486 +f 491 485 492 +f 487 419 418 +f 487 485 491 +f 490 484 489 +f 492 486 490 +f 486 492 485 +f 493 419 491 +f 493 494 419 +f 419 487 491 +f 493 495 494 +f 372 465 336 +f 337 336 465 +f 496 497 465 +f 498 489 496 +f 499 491 492 +f 489 498 490 +f 490 499 492 +f 500 491 501 +f 491 500 493 +f 491 499 501 +f 499 490 498 +f 337 497 488 +f 343 337 488 +f 489 488 497 +f 497 496 489 +f 465 497 337 +f 499 502 503 +f 503 502 504 +f 505 504 500 +f 504 505 503 +f 503 505 499 +f 499 505 501 +f 500 501 505 +f 506 442 433 +f 507 443 442 +f 508 441 443 +f 433 434 506 +f 442 506 507 +f 443 507 508 +f 472 508 509 +f 463 473 510 +f 469 468 511 +f 512 467 472 +f 508 472 441 +f 473 469 513 +f 464 463 514 +f 515 468 467 +f 511 513 469 +f 510 514 463 +f 513 510 473 +f 515 511 468 +f 514 516 464 +f 467 512 515 +f 472 509 512 +f 499 498 517 +f 518 500 504 +f 502 499 519 +f 498 496 520 +f 465 464 516 +f 496 465 521 +f 522 504 502 +f 516 521 465 +f 520 517 498 +f 502 519 522 +f 517 519 499 +f 521 520 496 +f 504 522 518 +f 494 523 417 +f 493 524 525 +f 495 525 523 +f 493 518 524 +f 518 493 500 +f 525 495 493 +f 417 419 494 +f 523 494 495 +f 508 506 434 +f 508 507 506 +f 508 434 526 +f 434 527 526 +f 526 528 529 +f 527 528 526 +f 530 529 528 +f 531 532 533 +f 527 434 432 +f 529 530 531 +f 534 528 535 +f 527 535 528 +f 536 535 527 +f 528 534 530 +f 432 536 527 +f 536 432 430 +f 532 531 530 +f 537 538 539 +f 540 530 534 +f 532 539 538 +f 538 533 532 +f 530 540 532 +f 535 541 534 +f 541 535 542 +f 536 542 535 +f 430 543 536 +f 543 430 428 +f 543 542 536 +f 544 542 545 +f 428 546 543 +f 546 428 426 +f 542 544 541 +f 543 545 542 +f 546 545 543 +f 534 547 540 +f 548 539 549 +f 550 548 549 +f 540 549 539 +f 539 532 540 +f 549 540 547 +f 547 534 541 +f 548 537 539 +f 551 550 552 +f 547 552 549 +f 553 541 544 +f 541 553 547 +f 550 549 552 +f 552 547 553 +f 510 554 514 +f 514 555 516 +f 556 555 514 +f 513 533 510 +f 533 513 531 +f 511 526 529 +f 509 526 557 +f 526 509 508 +f 531 511 529 +f 526 511 557 +f 511 531 513 +f 514 554 556 +f 556 554 538 +f 533 538 554 +f 537 556 538 +f 554 510 533 +f 558 515 512 +f 512 559 558 +f 509 557 559 +f 559 512 509 +f 515 558 511 +f 559 557 511 +f 511 558 559 +f 545 560 544 +f 560 545 561 +f 426 562 546 +f 562 426 424 +f 546 561 545 +f 562 561 546 +f 424 563 562 +f 563 424 422 +f 561 564 560 +f 564 561 565 +f 562 565 561 +f 563 565 562 +f 551 552 566 +f 567 551 566 +f 566 553 568 +f 553 566 552 +f 544 568 553 +f 568 544 560 +f 567 566 569 +f 570 567 569 +f 570 569 571 +f 568 569 566 +f 572 560 564 +f 560 572 568 +f 572 571 569 +f 569 568 572 +f 573 565 574 +f 422 575 563 +f 575 422 420 +f 565 573 564 +f 563 574 565 +f 575 574 563 +f 576 564 573 +f 574 577 573 +f 578 570 571 +f 564 576 572 +f 573 579 576 +f 576 580 571 +f 571 572 576 +f 577 574 581 +f 575 581 574 +f 582 581 575 +f 579 573 577 +f 420 582 575 +f 582 420 417 +f 524 417 523 +f 524 523 525 +f 582 417 524 +f 521 516 579 +f 580 516 583 +f 583 516 555 +f 520 521 577 +f 584 581 582 +f 577 581 517 +f 524 584 582 +f 584 524 518 +f 583 585 580 +f 578 571 580 +f 585 578 580 +f 579 516 580 +f 577 521 579 +f 580 576 579 +f 520 577 517 +f 581 584 517 +f 519 586 587 +f 517 586 519 +f 517 587 586 +f 584 518 522 +f 517 584 587 +f 522 587 584 +f 587 522 519 +f 588 589 590 +f 591 592 593 +f 593 589 591 +f 594 591 589 +f 589 588 594 +f 595 596 592 +f 592 591 595 +f 597 598 599 +f 590 600 599 +f 599 598 590 +f 589 593 600 +f 600 590 589 +f 590 601 588 +f 602 597 603 +f 602 598 597 +f 601 590 598 +f 598 602 601 +f 594 604 605 +f 606 604 607 +f 604 594 588 +f 588 607 604 +f 608 595 591 +f 591 594 608 +f 605 608 594 +f 609 610 611 +f 612 610 609 +f 610 612 596 +f 596 595 610 +f 611 610 595 +f 609 611 613 +f 613 611 614 +f 595 608 611 +f 614 611 608 +f 608 605 614 +f 615 616 617 +f 618 616 615 +f 618 614 616 +f 613 614 618 +f 615 617 619 +f 616 614 605 +f 605 620 616 +f 617 616 620 +f 621 622 623 +f 620 605 604 +f 604 606 620 +f 622 620 606 +f 606 623 622 +f 620 622 617 +f 619 624 625 +f 619 617 624 +f 626 627 628 +f 626 629 627 +f 625 629 626 +f 625 624 629 +f 624 617 622 +f 630 621 631 +f 622 621 624 +f 629 624 621 +f 621 630 629 +f 627 629 630 +f 630 632 627 +f 607 633 606 +f 623 606 633 +f 633 634 623 +f 633 607 635 +f 634 633 636 +f 636 637 634 +f 638 603 639 +f 602 638 635 +f 638 602 603 +f 640 639 641 +f 640 638 639 +f 637 636 640 +f 635 601 602 +f 636 635 638 +f 638 640 636 +f 607 588 601 +f 601 635 607 +f 635 636 633 +f 642 643 644 +f 644 645 642 +f 637 646 647 +f 643 647 646 +f 646 644 643 +f 647 634 637 +f 648 649 650 +f 640 651 637 +f 646 637 651 +f 651 650 646 +f 644 646 650 +f 651 641 648 +f 651 640 641 +f 648 650 651 +f 652 650 649 +f 652 653 650 +f 654 652 655 +f 650 653 644 +f 654 653 652 +f 645 644 653 +f 653 654 645 +f 643 642 656 +f 631 623 634 +f 657 631 647 +f 634 647 631 +f 647 643 657 +f 656 657 643 +f 632 630 657 +f 623 631 621 +f 657 656 632 +f 631 657 630 +f 658 659 660 +f 661 593 592 +f 662 659 663 +f 663 661 662 +f 659 658 664 +f 664 663 659 +f 662 592 596 +f 592 662 661 +f 665 666 667 +f 668 669 665 +f 670 669 668 +f 668 603 597 +f 597 670 668 +f 593 661 671 +f 671 600 593 +f 661 663 672 +f 672 671 661 +f 663 664 673 +f 673 672 663 +f 672 673 674 +f 674 675 672 +f 600 671 676 +f 676 599 600 +f 671 672 675 +f 675 676 671 +f 674 676 675 +f 674 599 676 +f 670 599 674 +f 670 597 599 +f 677 673 664 +f 678 664 658 +f 679 658 680 +f 681 679 682 +f 681 683 684 +f 684 685 681 +f 679 681 685 +f 685 678 679 +f 658 679 678 +f 673 677 686 +f 687 674 686 +f 687 669 670 +f 686 674 673 +f 674 687 670 +f 688 689 684 +f 678 685 690 +f 664 678 677 +f 685 684 689 +f 689 690 685 +f 690 677 678 +f 691 686 677 +f 692 691 693 +f 693 694 692 +f 687 686 691 +f 691 692 687 +f 695 694 693 +f 695 687 692 +f 695 689 688 +f 695 693 689 +f 690 689 693 +f 688 684 696 +f 693 691 690 +f 677 690 691 +f 692 694 695 +f 666 696 697 +f 688 666 695 +f 688 696 666 +f 696 698 697 +f 697 698 699 +f 669 687 695 +f 667 697 700 +f 666 665 669 +f 556 537 699 +f 666 669 695 +f 699 700 697 +f 697 667 666 +f 612 701 702 +f 701 703 660 +f 703 704 680 +f 704 701 612 +f 704 703 701 +f 705 612 609 +f 706 707 708 +f 709 710 706 +f 705 708 707 +f 711 708 705 +f 707 706 710 +f 705 707 712 +f 713 714 715 +f 716 717 710 +f 717 716 718 +f 710 719 707 +f 719 710 717 +f 715 718 716 +f 718 715 714 +f 680 660 703 +f 702 660 659 +f 659 662 702 +f 682 680 704 +f 702 596 612 +f 660 680 658 +f 660 702 701 +f 596 702 662 +f 704 612 712 +f 612 705 712 +f 712 707 719 +f 712 720 704 +f 721 722 723 +f 722 724 725 +f 726 724 722 +f 727 724 726 +f 722 728 726 +f 720 725 724 +f 683 681 729 +f 682 729 681 +f 680 682 679 +f 721 729 727 +f 729 682 720 +f 723 683 721 +f 729 721 683 +f 722 712 719 +f 712 722 725 +f 722 717 723 +f 704 720 682 +f 717 722 719 +f 720 712 725 +f 714 730 718 +f 730 714 731 +f 731 714 713 +f 713 732 731 +f 718 723 717 +f 723 718 730 +f 727 728 721 +f 720 727 729 +f 728 722 721 +f 724 727 720 +f 726 728 727 +f 609 711 705 +f 711 609 613 +f 613 733 711 +f 711 734 708 +f 733 734 711 +f 735 708 734 +f 733 613 618 +f 710 709 716 +f 736 713 715 +f 737 716 709 +f 716 737 715 +f 736 715 737 +f 738 736 737 +f 708 735 706 +f 739 706 735 +f 706 739 709 +f 740 709 739 +f 709 740 737 +f 738 737 740 +f 741 738 740 +f 723 730 683 +f 684 683 742 +f 683 730 743 +f 744 742 743 +f 743 745 744 +f 746 744 745 +f 747 746 748 +f 743 742 683 +f 745 748 746 +f 733 749 734 +f 734 750 735 +f 750 734 749 +f 751 749 733 +f 618 751 733 +f 751 618 615 +f 739 752 740 +f 753 741 752 +f 741 740 752 +f 735 754 739 +f 754 735 750 +f 752 739 754 +f 615 755 751 +f 755 615 619 +f 619 756 755 +f 757 754 758 +f 754 757 752 +f 753 752 757 +f 759 753 757 +f 758 750 760 +f 750 758 754 +f 751 761 749 +f 755 761 751 +f 755 762 761 +f 749 760 750 +f 760 749 761 +f 761 763 760 +f 760 764 758 +f 759 757 765 +f 766 759 765 +f 764 760 763 +f 765 758 764 +f 758 765 757 +f 756 619 625 +f 625 767 756 +f 767 625 626 +f 756 762 755 +f 756 768 762 +f 767 768 756 +f 763 761 762 +f 762 769 763 +f 769 762 768 +f 770 764 771 +f 764 770 765 +f 766 765 770 +f 772 766 770 +f 763 771 764 +f 771 763 769 +f 773 774 775 +f 776 773 777 +f 774 627 632 +f 632 775 774 +f 775 777 773 +f 777 778 776 +f 771 779 770 +f 768 780 769 +f 767 781 768 +f 772 770 779 +f 779 771 782 +f 782 769 780 +f 769 782 771 +f 783 628 784 +f 784 785 786 +f 784 628 785 +f 784 773 776 +f 784 786 773 +f 786 774 773 +f 786 785 774 +f 628 774 785 +f 628 627 774 +f 780 768 781 +f 783 781 767 +f 626 783 767 +f 783 626 628 +f 748 778 747 +f 778 777 787 +f 787 747 778 +f 777 775 788 +f 788 787 777 +f 775 632 656 +f 656 788 775 +f 731 789 790 +f 789 731 732 +f 730 791 743 +f 791 731 790 +f 791 730 731 +f 792 793 745 +f 745 743 792 +f 793 794 748 +f 748 745 793 +f 778 748 794 +f 795 743 796 +f 795 792 743 +f 794 776 778 +f 793 797 798 +f 792 795 799 +f 793 798 794 +f 792 797 793 +f 792 799 797 +f 789 800 779 +f 780 791 782 +f 782 790 779 +f 800 772 779 +f 796 743 791 +f 779 790 789 +f 796 791 780 +f 791 790 782 +f 780 781 795 +f 794 784 776 +f 794 798 784 +f 801 781 783 +f 781 801 795 +f 796 780 795 +f 784 801 783 +f 801 784 798 +f 799 802 803 +f 801 798 797 +f 797 803 801 +f 803 802 795 +f 803 797 799 +f 795 801 803 +f 795 802 799 +f 668 665 804 +f 667 805 665 +f 805 667 806 +f 603 668 804 +f 700 806 667 +f 804 665 805 +f 806 807 805 +f 808 805 807 +f 804 805 808 +f 807 806 809 +f 639 804 808 +f 804 639 603 +f 537 548 810 +f 537 810 699 +f 810 811 700 +f 811 810 812 +f 700 699 810 +f 548 812 810 +f 813 812 814 +f 550 814 812 +f 806 700 811 +f 812 813 811 +f 548 550 812 +f 811 809 806 +f 809 811 813 +f 815 809 816 +f 817 807 815 +f 808 807 817 +f 641 808 817 +f 808 641 639 +f 809 815 807 +f 648 817 818 +f 817 648 641 +f 817 815 818 +f 816 819 815 +f 818 815 819 +f 819 816 820 +f 551 821 814 +f 550 551 814 +f 814 822 813 +f 822 814 821 +f 816 813 822 +f 813 816 809 +f 821 823 822 +f 823 821 824 +f 567 824 821 +f 822 820 816 +f 820 822 823 +f 551 567 821 +f 825 698 696 +f 555 556 699 +f 699 698 555 +f 826 555 698 +f 825 826 698 +f 827 828 825 +f 555 826 583 +f 827 825 696 +f 829 819 830 +f 818 819 829 +f 649 818 829 +f 818 649 648 +f 823 831 820 +f 830 820 831 +f 820 830 819 +f 829 830 832 +f 833 831 834 +f 832 830 833 +f 831 833 830 +f 829 652 649 +f 835 824 836 +f 570 578 836 +f 570 836 824 +f 567 570 824 +f 831 823 835 +f 824 835 823 +f 837 836 838 +f 835 834 831 +f 834 835 837 +f 838 839 837 +f 578 838 836 +f 578 585 838 +f 836 837 835 +f 585 840 838 +f 841 833 842 +f 839 838 840 +f 837 843 834 +f 843 837 839 +f 842 834 843 +f 834 842 833 +f 655 832 841 +f 832 655 652 +f 652 829 832 +f 832 833 841 +f 844 845 846 +f 847 655 846 +f 847 654 655 +f 848 846 845 +f 848 847 846 +f 849 845 844 +f 849 848 845 +f 844 846 655 +f 844 655 841 +f 850 849 844 +f 851 852 853 +f 853 854 851 +f 855 856 852 +f 852 851 855 +f 853 852 857 +f 857 854 853 +f 857 852 856 +f 857 858 854 +f 851 850 855 +f 858 857 828 +f 858 851 854 +f 851 859 850 +f 858 859 851 +f 826 840 585 +f 585 583 826 +f 840 825 839 +f 825 840 826 +f 839 828 843 +f 828 839 825 +f 850 844 855 +f 857 841 842 +f 841 857 856 +f 843 857 842 +f 857 843 828 +f 855 841 856 +f 841 855 844 +f 860 861 848 +f 848 849 860 +f 861 862 847 +f 847 848 861 +f 862 645 654 +f 654 847 862 +f 863 860 849 +f 827 864 859 +f 859 858 827 +f 864 863 850 +f 858 828 827 +f 849 850 863 +f 850 859 864 +f 696 684 865 +f 742 865 684 +f 865 827 696 +f 865 866 864 +f 866 867 863 +f 868 642 645 +f 645 862 868 +f 869 870 861 +f 861 860 869 +f 870 868 862 +f 862 861 870 +f 867 869 860 +f 863 864 866 +f 864 827 865 +f 860 863 867 +f 747 787 870 +f 787 788 868 +f 868 870 787 +f 870 869 747 +f 788 656 642 +f 642 868 788 +f 746 747 869 +f 744 746 867 +f 867 866 744 +f 866 865 742 +f 869 867 746 +f 742 744 866 +f 871 872 873 +f 872 871 874 +f 874 875 872 +f 875 874 876 +f 876 877 875 +f 877 876 878 +f 878 879 877 +f 879 878 880 +f 880 881 879 +f 881 880 882 +f 882 883 881 +f 883 882 884 +f 884 885 883 +f 885 884 886 +f 886 887 885 +f 887 886 888 +f 889 890 891 +f 892 891 893 +f 890 889 894 +f 895 893 891 +f 891 890 895 +f 894 896 897 +f 898 899 900 +f 901 871 898 +f 898 871 899 +f 902 903 904 +f 904 905 902 +f 905 904 906 +f 903 902 893 +f 907 876 874 +f 901 874 871 +f 905 908 909 +f 902 909 910 +f 911 878 876 +f 876 907 911 +f 909 902 905 +f 908 905 912 +f 896 894 889 +f 891 913 889 +f 913 891 892 +f 914 889 913 +f 889 914 896 +f 907 915 911 +f 911 915 916 +f 916 896 914 +f 896 916 915 +f 893 910 892 +f 910 893 902 +f 906 912 905 +f 917 918 912 +f 912 918 908 +f 919 909 908 +f 908 920 919 +f 921 919 920 +f 920 922 921 +f 923 880 878 +f 919 921 924 +f 925 926 927 +f 923 926 925 +f 880 923 925 +f 922 920 928 +f 913 929 914 +f 929 913 930 +f 926 914 929 +f 914 926 916 +f 892 930 913 +f 930 892 931 +f 931 892 910 +f 930 932 929 +f 932 930 933 +f 927 929 932 +f 929 927 926 +f 934 931 935 +f 931 933 930 +f 933 931 934 +f 935 910 909 +f 924 935 919 +f 928 936 922 +f 918 928 920 +f 937 936 928 +f 938 937 928 +f 917 938 918 +f 938 928 918 +f 910 935 931 +f 935 924 934 +f 909 919 935 +f 920 908 918 +f 878 911 923 +f 923 916 926 +f 911 916 923 +f 939 898 900 +f 900 940 939 +f 941 899 871 +f 871 873 941 +f 940 900 899 +f 899 941 940 +f 939 942 898 +f 943 944 945 +f 946 943 945 +f 947 946 945 +f 945 948 949 +f 944 948 945 +f 950 949 942 +f 897 951 944 +f 897 946 894 +f 894 947 890 +f 952 951 901 +f 898 952 901 +f 953 895 890 +f 893 895 903 +f 897 915 951 +f 954 904 903 +f 907 951 915 +f 901 951 907 +f 874 901 907 +f 915 897 896 +f 955 903 895 +f 956 906 904 +f 957 912 906 +f 958 957 906 +f 957 917 912 +f 959 958 906 +f 904 954 956 +f 903 955 954 +f 943 897 944 +f 943 946 897 +f 952 898 942 +f 951 952 944 +f 944 960 948 +f 948 960 961 +f 952 942 949 +f 944 952 961 +f 949 961 952 +f 961 949 948 +f 944 961 960 +f 890 947 953 +f 895 953 955 +f 906 956 959 +f 946 947 894 +f 954 955 953 +f 953 956 954 +f 962 953 947 +f 959 956 963 +f 964 956 953 +f 953 962 964 +f 947 965 962 +f 964 963 956 +f 966 967 968 +f 968 967 945 +f 969 968 950 +f 970 969 971 +f 972 968 969 +f 887 970 939 +f 970 973 974 +f 970 887 973 +f 877 879 881 +f 881 883 875 +f 883 885 872 +f 885 887 873 +f 939 873 887 +f 939 941 873 +f 939 940 941 +f 875 877 881 +f 872 875 883 +f 873 872 885 +f 971 939 970 +f 887 888 975 +f 975 973 887 +f 976 974 973 +f 973 975 976 +f 977 970 974 +f 974 976 977 +f 977 969 970 +f 968 972 966 +f 978 979 967 +f 980 965 967 +f 966 978 967 +f 969 981 972 +f 965 947 967 +f 979 980 967 +f 969 977 981 +f 945 967 947 +f 945 950 968 +f 950 971 969 +f 949 950 945 +f 942 939 971 +f 942 971 950 +f 982 983 984 +f 985 986 987 +f 984 985 982 +f 987 982 985 +f 988 927 989 +f 925 927 988 +f 932 989 927 +f 882 925 988 +f 988 989 990 +f 991 921 922 +f 922 992 991 +f 983 991 992 +f 992 984 983 +f 988 884 882 +f 925 882 880 +f 993 924 921 +f 994 993 991 +f 936 995 992 +f 995 996 984 +f 991 983 994 +f 992 922 936 +f 984 992 995 +f 921 991 993 +f 997 998 999 +f 998 997 1000 +f 990 989 1001 +f 1000 997 993 +f 999 1002 1003 +f 1002 999 998 +f 1001 1003 1002 +f 1003 1001 989 +f 989 932 1003 +f 997 934 924 +f 934 999 933 +f 999 934 997 +f 933 1003 932 +f 1003 933 999 +f 1004 995 936 +f 937 1004 936 +f 1005 996 995 +f 1004 1005 995 +f 924 993 997 +f 993 994 1000 +f 996 1006 985 +f 1006 1007 986 +f 1005 1008 996 +f 1009 1010 982 +f 1010 994 983 +f 1011 1001 1012 +f 1012 1002 1013 +f 1002 1012 1001 +f 998 1013 1002 +f 990 1001 1011 +f 1014 1000 1015 +f 1013 998 1014 +f 1015 1000 994 +f 1000 1014 998 +f 977 975 888 +f 977 976 975 +f 888 1011 1016 +f 977 888 1016 +f 1010 1009 1017 +f 1017 1015 1010 +f 1015 1018 1014 +f 1018 1015 1017 +f 1019 1014 1018 +f 994 1010 1015 +f 886 990 1011 +f 990 886 884 +f 884 988 990 +f 985 984 996 +f 986 985 1006 +f 982 987 1009 +f 983 982 1010 +f 1011 888 886 +f 962 1009 987 +f 1008 1006 996 +f 1020 986 1007 +f 1021 1007 1006 +f 1008 1021 1006 +f 1022 987 986 +f 1011 1012 1016 +f 1023 1013 1019 +f 1013 1023 1012 +f 1014 1019 1013 +f 1016 1012 1023 +f 964 1007 1021 +f 986 1020 1022 +f 1017 980 1018 +f 965 1017 1009 +f 987 1022 962 +f 1018 979 1019 +f 1019 978 1023 +f 978 1016 1023 +f 1016 981 977 +f 1016 978 1024 +f 979 1018 980 +f 978 1019 979 +f 981 1016 1024 +f 1021 963 964 +f 1009 962 965 +f 1022 1020 964 +f 1007 964 1020 +f 980 1017 965 +f 964 962 1022 +f 1025 972 981 +f 981 1024 1025 +f 1025 1024 978 +f 978 1026 1025 +f 1026 966 972 +f 966 1026 978 +f 972 1025 1026 +f 1027 1028 1029 +f 1030 1031 1032 +f 1032 1029 1030 +f 1033 1029 1028 +f 1034 1030 1029 +f 1029 1033 1034 +f 1029 1032 1027 +f 1027 1035 1036 +f 1032 1037 1035 +f 1035 1027 1032 +f 1031 1038 1037 +f 1037 1032 1031 +f 1028 1027 1039 +f 1040 1034 1033 +f 1033 1041 1040 +f 1042 1041 1043 +f 1044 1040 1041 +f 1028 1045 1033 +f 1043 1045 1046 +f 1047 1043 1048 +f 1041 1033 1045 +f 1045 1043 1041 +f 1045 1028 1049 +f 1049 1046 1045 +f 1036 1039 1027 +f 1039 1049 1028 +f 1039 1036 1050 +f 1046 1048 1043 +f 1051 1048 1050 +f 1049 1039 1050 +f 1046 1049 1050 +f 1048 1046 1050 +f 1043 1047 1042 +f 1041 1042 1044 +f 1052 1047 1051 +f 1053 1042 1047 +f 1047 1052 1053 +f 1054 1044 1042 +f 1042 1053 1054 +f 1055 1053 1052 +f 1052 1056 1055 +f 1057 1054 1053 +f 1053 1055 1057 +f 1058 1055 1056 +f 1059 1057 1055 +f 1055 1058 1059 +f 1060 1056 1061 +f 1062 1060 1063 +f 1056 1060 1058 +f 1064 1058 1060 +f 1060 1062 1064 +f 1065 1059 1058 +f 1058 1064 1065 +f 1051 1066 1052 +f 1056 1052 1066 +f 1066 1061 1056 +f 1048 1051 1047 +f 1061 1063 1060 +f 1066 1051 1050 +f 1061 1066 1050 +f 1063 1061 1050 +f 1067 1063 1050 +f 1063 1067 1062 +f 1068 1069 1070 +f 1070 1071 1068 +f 1071 1072 1073 +f 1073 1068 1071 +f 1038 1073 1072 +f 1072 1037 1038 +f 1072 1071 1074 +f 1074 1075 1072 +f 1075 1035 1037 +f 1037 1072 1075 +f 1069 1076 1077 +f 1077 1070 1069 +f 1077 1078 1079 +f 1076 1080 1078 +f 1078 1077 1076 +f 1070 1077 1081 +f 1081 1082 1070 +f 1082 1074 1071 +f 1071 1070 1082 +f 1079 1081 1077 +f 1083 1084 1075 +f 1075 1074 1083 +f 1074 1082 1085 +f 1085 1083 1074 +f 1084 1036 1035 +f 1035 1075 1084 +f 1082 1081 1086 +f 1086 1085 1082 +f 1081 1079 1087 +f 1087 1086 1081 +f 1083 1085 1088 +f 1088 1089 1083 +f 1090 1050 1036 +f 1036 1084 1090 +f 1089 1090 1084 +f 1084 1083 1089 +f 1086 1087 1091 +f 1091 1092 1086 +f 1085 1086 1092 +f 1092 1088 1085 +f 1093 1094 1095 +f 1096 1097 1031 +f 1098 1096 1094 +f 1094 1096 1030 +f 1099 1097 1096 +f 1095 1094 1034 +f 1100 1097 1099 +f 1101 1095 1040 +f 1038 1031 1097 +f 1031 1030 1096 +f 1030 1034 1094 +f 1034 1040 1095 +f 1097 1100 1038 +f 1100 1102 1073 +f 1068 1103 1104 +f 1102 1103 1068 +f 1105 1080 1076 +f 1073 1038 1100 +f 1104 1069 1068 +f 1068 1073 1102 +f 1069 1104 1106 +f 1106 1076 1069 +f 1076 1106 1105 +f 1107 1108 1090 +f 1090 1089 1107 +f 1089 1088 1109 +f 1109 1107 1089 +f 1108 1067 1050 +f 1050 1090 1108 +f 1092 1091 1110 +f 1110 1111 1092 +f 1088 1092 1111 +f 1111 1109 1088 +f 1112 1113 1108 +f 1108 1107 1112 +f 1113 1062 1067 +f 1067 1108 1113 +f 1107 1109 1114 +f 1114 1112 1107 +f 1111 1110 1115 +f 1115 1116 1111 +f 1109 1111 1116 +f 1116 1114 1109 +f 1062 1113 1117 +f 1064 1117 1118 +f 1119 1117 1113 +f 1117 1064 1062 +f 1120 1118 1117 +f 1118 1065 1064 +f 1119 1121 1122 +f 1122 1120 1119 +f 1117 1119 1120 +f 1113 1112 1119 +f 1116 1115 1123 +f 1112 1114 1121 +f 1121 1119 1112 +f 1114 1116 1124 +f 1124 1121 1114 +f 1123 1124 1116 +f 1121 1124 1125 +f 1125 1122 1121 +f 1126 1125 1124 +f 1124 1123 1126 +f 1104 1103 1127 +f 1103 1102 1128 +f 1102 1100 1129 +f 1130 1105 1106 +f 1106 1104 1131 +f 1040 1044 1101 +f 1044 1054 1093 +f 1054 1057 1098 +f 1057 1059 1099 +f 1093 1101 1044 +f 1098 1094 1093 +f 1098 1093 1054 +f 1099 1096 1098 +f 1099 1098 1057 +f 1093 1095 1101 +f 1129 1099 1059 +f 1125 1132 1131 +f 1131 1122 1125 +f 1126 1130 1132 +f 1132 1125 1126 +f 1118 1120 1127 +f 1065 1118 1128 +f 1120 1122 1131 +f 1059 1065 1129 +f 1128 1127 1103 +f 1129 1128 1102 +f 1100 1099 1129 +f 1131 1132 1106 +f 1127 1131 1104 +f 1106 1132 1130 +f 1128 1129 1065 +f 1127 1128 1118 +f 1131 1127 1120 +f 1133 1134 1135 +f 1134 1133 1136 +f 1136 1137 1134 +f 1137 1136 1138 +f 1138 1139 1137 +f 1139 1138 1140 +f 1140 1141 1139 +f 1142 1136 1133 +f 1143 1144 1145 +f 1144 1143 1140 +f 1140 1146 1144 +f 1146 1140 1138 +f 1138 1147 1146 +f 1147 1138 1136 +f 1136 1142 1147 +f 1141 1140 1143 +f 1148 1149 1143 +f 1143 1150 1141 +f 1150 1143 1149 +f 1149 1151 1150 +f 1151 1149 1152 +f 1152 1153 1151 +f 1153 1152 1154 +f 1154 1155 1153 +f 1156 1157 1154 +f 1154 1158 1156 +f 1158 1154 1152 +f 1152 1159 1158 +f 1159 1152 1149 +f 1149 1148 1159 +f 1157 1156 1160 +f 1155 1154 1157 +f 1161 1162 1163 +f 1162 1161 1164 +f 1164 1165 1162 +f 1165 1164 1166 +f 1166 1167 1165 +f 1167 1166 1168 +f 1168 1145 1167 +f 1169 1164 1161 +f 1143 1170 1171 +f 1170 1143 1168 +f 1168 1172 1170 +f 1172 1168 1166 +f 1166 1173 1172 +f 1173 1166 1164 +f 1164 1169 1173 +f 1145 1168 1143 +f 1171 1174 1143 +f 1143 1175 1148 +f 1175 1143 1174 +f 1174 1176 1175 +f 1176 1174 1177 +f 1177 1178 1176 +f 1178 1177 1179 +f 1179 1180 1178 +f 1181 1182 1179 +f 1179 1183 1181 +f 1183 1179 1177 +f 1177 1184 1183 +f 1184 1177 1174 +f 1174 1171 1184 +f 1182 1181 1185 +f 1180 1179 1182 +f 1186 1187 1135 +f 1186 1188 1187 +f 1189 1190 1191 +f 1192 1193 1189 +f 1194 1193 1192 +f 1186 1135 1192 +f 1135 1194 1192 +f 1194 1135 1134 +f 1188 1195 1196 +f 1196 1187 1188 +f 1186 1197 1195 +f 1195 1188 1186 +f 1187 1196 1133 +f 1133 1135 1187 +f 1186 1198 1197 +f 1199 1200 1201 +f 1201 1202 1199 +f 1198 1203 1200 +f 1200 1199 1198 +f 1204 1202 1205 +f 1201 1205 1202 +f 1198 1186 1203 +f 1205 1192 1189 +f 1191 1205 1189 +f 1206 1207 1191 +f 1208 1209 1206 +f 1210 1208 1080 +f 1192 1203 1186 +f 1205 1191 1207 +f 1203 1192 1211 +f 1192 1205 1211 +f 1205 1212 1211 +f 1205 1201 1213 +f 1213 1212 1205 +f 1200 1212 1213 +f 1213 1201 1200 +f 1203 1211 1212 +f 1212 1200 1203 +f 1214 1215 1216 +f 1217 1216 1218 +f 1219 1220 1221 +f 1219 1142 1220 +f 1217 1142 1219 +f 1147 1217 1218 +f 1217 1147 1142 +f 1222 1199 1202 +f 1223 1197 1198 +f 1223 1198 1199 +f 1202 1204 1224 +f 1225 1224 1204 +f 1214 1216 1225 +f 1214 1226 1227 +f 1228 1229 1230 +f 1227 1231 1230 +f 1232 1216 1217 +f 1219 1232 1217 +f 1226 1231 1227 +f 1233 1226 1214 +f 1233 1214 1225 +f 1216 1232 1225 +f 1230 1231 1228 +f 1232 1219 1223 +f 1142 1133 1196 +f 1197 1223 1219 +f 1195 1221 1220 +f 1220 1196 1195 +f 1197 1219 1221 +f 1221 1195 1197 +f 1196 1220 1142 +f 1222 1234 1232 +f 1225 1235 1224 +f 1202 1224 1222 +f 1199 1222 1223 +f 1234 1222 1224 +f 1224 1235 1234 +f 1232 1223 1222 +f 1218 1215 1236 +f 1218 1216 1215 +f 1237 1238 1215 +f 1146 1218 1236 +f 1218 1146 1147 +f 1239 1240 1230 +f 1230 1241 1227 +f 1227 1237 1214 +f 1229 1239 1230 +f 1215 1214 1237 +f 1237 1227 1241 +f 1241 1230 1240 +f 1242 1238 1243 +f 1236 1238 1242 +f 1236 1215 1238 +f 1243 1244 1245 +f 1238 1237 1244 +f 1144 1236 1242 +f 1236 1144 1146 +f 1244 1243 1238 +f 1246 1243 1247 +f 1247 1245 1248 +f 1245 1247 1243 +f 1242 1243 1246 +f 1145 1242 1246 +f 1242 1145 1144 +f 1249 1250 1251 +f 1249 1251 1240 +f 1239 1249 1240 +f 1244 1241 1252 +f 1241 1244 1237 +f 1240 1252 1241 +f 1252 1240 1251 +f 1251 1253 1252 +f 1252 1245 1244 +f 1245 1252 1253 +f 1253 1251 1254 +f 1250 1254 1251 +f 1255 1254 1256 +f 1257 1256 1254 +f 1250 1257 1254 +f 1253 1248 1245 +f 1248 1253 1255 +f 1254 1255 1253 +f 1225 1232 1234 +f 1258 1228 1231 +f 1234 1235 1225 +f 1226 1233 1259 +f 1231 1226 1260 +f 1204 1261 1225 +f 1233 1225 1261 +f 1193 1262 1190 +f 1194 1263 1193 +f 1264 1263 1194 +f 1134 1264 1194 +f 1264 1134 1137 +f 1265 1191 1190 +f 1191 1265 1206 +f 1266 1206 1265 +f 1206 1266 1208 +f 1080 1208 1266 +f 1190 1189 1193 +f 1078 1080 1266 +f 1267 1265 1268 +f 1265 1267 1266 +f 1078 1266 1267 +f 1268 1190 1262 +f 1190 1268 1265 +f 1264 1269 1263 +f 1270 1269 1264 +f 1262 1193 1263 +f 1263 1271 1262 +f 1271 1263 1269 +f 1137 1270 1264 +f 1270 1137 1139 +f 1272 1271 1273 +f 1270 1274 1269 +f 1269 1273 1271 +f 1275 1274 1270 +f 1273 1269 1274 +f 1139 1275 1270 +f 1275 1139 1141 +f 1268 1276 1267 +f 1079 1267 1276 +f 1262 1277 1268 +f 1079 1078 1267 +f 1277 1278 1276 +f 1278 1277 1272 +f 1087 1079 1276 +f 1087 1276 1278 +f 1277 1262 1271 +f 1091 1087 1278 +f 1276 1268 1277 +f 1271 1272 1277 +f 1259 1260 1226 +f 1260 1259 1210 +f 1279 1260 1280 +f 1261 1204 1207 +f 1260 1279 1231 +f 1261 1259 1233 +f 1259 1261 1209 +f 1209 1208 1210 +f 1130 1210 1105 +f 1207 1206 1209 +f 1080 1105 1210 +f 1209 1210 1259 +f 1210 1281 1260 +f 1205 1207 1204 +f 1207 1209 1261 +f 1274 1282 1273 +f 1282 1274 1283 +f 1275 1283 1274 +f 1284 1283 1275 +f 1141 1284 1275 +f 1284 1141 1150 +f 1283 1285 1282 +f 1285 1283 1286 +f 1286 1287 1285 +f 1284 1286 1283 +f 1288 1286 1284 +f 1288 1289 1286 +f 1150 1288 1284 +f 1288 1150 1151 +f 1273 1290 1272 +f 1291 1272 1290 +f 1272 1291 1278 +f 1091 1278 1291 +f 1110 1091 1291 +f 1290 1273 1282 +f 1290 1292 1291 +f 1110 1291 1292 +f 1282 1293 1290 +f 1115 1110 1292 +f 1115 1292 1294 +f 1123 1115 1294 +f 1292 1290 1293 +f 1295 1285 1287 +f 1293 1282 1285 +f 1293 1294 1292 +f 1285 1295 1293 +f 1294 1293 1295 +f 1287 1286 1289 +f 1296 1289 1288 +f 1296 1297 1289 +f 1151 1296 1288 +f 1296 1151 1153 +f 1287 1298 1295 +f 1295 1299 1294 +f 1123 1294 1299 +f 1289 1300 1287 +f 1126 1123 1299 +f 1299 1295 1298 +f 1298 1287 1300 +f 1210 1130 1281 +f 1301 1302 1303 +f 1303 1304 1301 +f 1305 1306 1307 +f 1305 1308 1309 +f 1280 1260 1281 +f 1308 1305 1303 +f 1306 1305 1310 +f 1306 1280 1311 +f 1280 1306 1312 +f 1313 1297 1296 +f 1314 1315 1316 +f 1314 1155 1315 +f 1313 1155 1314 +f 1300 1289 1297 +f 1153 1313 1296 +f 1313 1153 1155 +f 1317 1318 1319 +f 1307 1303 1305 +f 1281 1311 1280 +f 1311 1307 1306 +f 1320 1308 1321 +f 1322 1319 1320 +f 1317 1323 1318 +f 1303 1321 1308 +f 1299 1281 1130 +f 1307 1300 1303 +f 1307 1311 1300 +f 1297 1304 1303 +f 1311 1281 1298 +f 1304 1314 1317 +f 1298 1281 1299 +f 1130 1126 1299 +f 1300 1297 1303 +f 1300 1311 1298 +f 1304 1297 1313 +f 1314 1304 1313 +f 1324 1315 1155 +f 1155 1157 1324 +f 1323 1317 1314 +f 1323 1314 1316 +f 1325 1316 1315 +f 1315 1324 1325 +f 1316 1325 1323 +f 1319 1322 1317 +f 1303 1302 1321 +f 1301 1322 1321 +f 1322 1301 1304 +f 1321 1302 1301 +f 1320 1321 1322 +f 1304 1317 1322 +f 1326 1324 1157 +f 1157 1160 1326 +f 1327 1325 1324 +f 1324 1326 1327 +f 1328 1323 1325 +f 1325 1327 1328 +f 1329 1330 1331 +f 1332 1330 1329 +f 1328 1326 1160 +f 1328 1327 1326 +f 1331 1333 1334 +f 1328 1160 1329 +f 1160 1332 1329 +f 1332 1160 1156 +f 1318 1335 1336 +f 1336 1319 1318 +f 1337 1320 1319 +f 1308 1320 1338 +f 1337 1338 1320 +f 1319 1336 1337 +f 1318 1328 1335 +f 1328 1318 1323 +f 1339 1309 1334 +f 1309 1339 1310 +f 1335 1329 1340 +f 1338 1334 1309 +f 1329 1338 1340 +f 1341 1342 1312 +f 1310 1343 1312 +f 1338 1329 1331 +f 1343 1310 1339 +f 1329 1335 1328 +f 1312 1343 1341 +f 1334 1338 1331 +f 1332 1344 1330 +f 1345 1344 1332 +f 1156 1345 1332 +f 1345 1156 1158 +f 1330 1346 1333 +f 1334 1347 1339 +f 1348 1339 1347 +f 1339 1348 1343 +f 1341 1343 1348 +f 1349 1341 1348 +f 1333 1331 1330 +f 1347 1334 1333 +f 1350 1333 1346 +f 1333 1350 1347 +f 1349 1348 1351 +f 1351 1347 1350 +f 1347 1351 1348 +f 1345 1352 1344 +f 1353 1352 1345 +f 1158 1353 1345 +f 1353 1158 1159 +f 1346 1330 1344 +f 1344 1354 1346 +f 1354 1344 1352 +f 1159 1355 1353 +f 1355 1159 1148 +f 1355 1356 1353 +f 1357 1354 1358 +f 1353 1356 1352 +f 1352 1358 1354 +f 1358 1352 1356 +f 1359 1351 1360 +f 1350 1360 1351 +f 1359 1349 1351 +f 1346 1361 1350 +f 1362 1359 1360 +f 1362 1360 1363 +f 1361 1346 1354 +f 1364 1362 1363 +f 1354 1357 1361 +f 1363 1361 1357 +f 1361 1363 1360 +f 1360 1350 1361 +f 1310 1312 1306 +f 1312 1365 1280 +f 1309 1310 1305 +f 1338 1309 1308 +f 1335 1340 1366 +f 1366 1336 1335 +f 1336 1366 1367 +f 1367 1337 1336 +f 1312 1342 1365 +f 1337 1367 1338 +f 1366 1340 1338 +f 1338 1367 1366 +f 1368 1248 1369 +f 1248 1368 1247 +f 1255 1369 1248 +f 1370 1247 1368 +f 1246 1247 1370 +f 1167 1246 1370 +f 1246 1167 1145 +f 1370 1368 1371 +f 1372 1373 1374 +f 1374 1369 1372 +f 1165 1370 1371 +f 1370 1165 1167 +f 1369 1374 1368 +f 1371 1368 1374 +f 1375 1376 1377 +f 1375 1377 1256 +f 1257 1375 1256 +f 1378 1372 1369 +f 1256 1378 1255 +f 1369 1255 1378 +f 1378 1256 1377 +f 1377 1379 1378 +f 1372 1378 1379 +f 1379 1377 1380 +f 1376 1381 1380 +f 1376 1380 1377 +f 1382 1374 1373 +f 1371 1374 1382 +f 1162 1371 1382 +f 1371 1162 1165 +f 1373 1372 1383 +f 1380 1384 1379 +f 1384 1380 1385 +f 1381 1385 1380 +f 1383 1379 1384 +f 1379 1383 1372 +f 1386 1384 1387 +f 1381 1388 1385 +f 1387 1385 1389 +f 1388 1389 1385 +f 1384 1386 1383 +f 1383 1390 1373 +f 1385 1387 1384 +f 1391 1389 1258 +f 1392 1387 1391 +f 1228 1258 1393 +f 1388 1393 1258 +f 1391 1258 1394 +f 1395 1392 1396 +f 1392 1391 1397 +f 1258 1231 1279 +f 1163 1382 1398 +f 1382 1163 1162 +f 1398 1373 1390 +f 1382 1373 1398 +f 1399 1400 1163 +f 1390 1383 1386 +f 1399 1401 1400 +f 1399 1163 1398 +f 1402 1401 1399 +f 1400 1403 1161 +f 1161 1163 1400 +f 1401 1402 1403 +f 1403 1400 1401 +f 1399 1404 1402 +f 1405 1406 1407 +f 1407 1408 1405 +f 1409 1410 1406 +f 1406 1405 1409 +f 1396 1408 1395 +f 1407 1395 1408 +f 1399 1409 1404 +f 1409 1399 1410 +f 1389 1391 1387 +f 1258 1389 1388 +f 1386 1395 1390 +f 1387 1392 1386 +f 1395 1398 1390 +f 1398 1410 1399 +f 1406 1411 1412 +f 1412 1407 1406 +f 1410 1413 1411 +f 1411 1406 1410 +f 1395 1411 1413 +f 1395 1407 1412 +f 1412 1411 1395 +f 1398 1395 1413 +f 1410 1398 1413 +f 1395 1386 1392 +f 1414 1415 1416 +f 1417 1418 1419 +f 1420 1169 1417 +f 1173 1420 1421 +f 1420 1173 1169 +f 1420 1416 1421 +f 1417 1169 1418 +f 1422 1423 1279 +f 1424 1425 1396 +f 1423 1426 1394 +f 1427 1405 1408 +f 1428 1409 1405 +f 1428 1404 1409 +f 1408 1396 1425 +f 1426 1424 1397 +f 1403 1418 1169 +f 1169 1161 1403 +f 1404 1428 1417 +f 1404 1417 1419 +f 1419 1402 1404 +f 1402 1419 1418 +f 1418 1403 1402 +f 1427 1429 1430 +f 1408 1425 1427 +f 1430 1428 1427 +f 1425 1431 1429 +f 1424 1431 1425 +f 1405 1427 1428 +f 1424 1430 1429 +f 1429 1427 1425 +f 1423 1422 1432 +f 1430 1417 1428 +f 1416 1430 1424 +f 1433 1422 1434 +f 1426 1414 1424 +f 1426 1423 1414 +f 1414 1416 1424 +f 1434 1435 1433 +f 1432 1422 1433 +f 1414 1423 1432 +f 1417 1430 1420 +f 1430 1416 1420 +f 1421 1172 1173 +f 1421 1415 1436 +f 1421 1416 1415 +f 1172 1421 1436 +f 1437 1438 1415 +f 1432 1437 1414 +f 1415 1414 1437 +f 1433 1439 1432 +f 1437 1432 1439 +f 1440 1441 1433 +f 1435 1440 1433 +f 1439 1433 1441 +f 1436 1170 1172 +f 1438 1437 1442 +f 1443 1438 1444 +f 1436 1438 1443 +f 1436 1415 1438 +f 1170 1436 1443 +f 1444 1442 1445 +f 1442 1444 1438 +f 1446 1444 1447 +f 1171 1443 1446 +f 1443 1171 1170 +f 1447 1445 1448 +f 1445 1447 1444 +f 1443 1444 1446 +f 1449 1445 1442 +f 1439 1442 1437 +f 1441 1449 1439 +f 1449 1441 1450 +f 1442 1439 1449 +f 1450 1451 1449 +f 1452 1450 1441 +f 1452 1453 1450 +f 1440 1452 1441 +f 1445 1449 1451 +f 1451 1450 1454 +f 1453 1454 1450 +f 1448 1451 1455 +f 1455 1454 1456 +f 1457 1456 1454 +f 1453 1457 1454 +f 1451 1448 1445 +f 1454 1455 1451 +f 1394 1279 1423 +f 1397 1394 1426 +f 1397 1396 1392 +f 1394 1397 1391 +f 1279 1394 1258 +f 1279 1458 1422 +f 1396 1397 1424 +f 1434 1422 1459 +f 1424 1429 1431 +f 1184 1446 1460 +f 1446 1184 1171 +f 1460 1447 1461 +f 1446 1447 1460 +f 1461 1448 1462 +f 1448 1461 1447 +f 1455 1462 1448 +f 1463 1462 1464 +f 1462 1463 1461 +f 1183 1460 1465 +f 1460 1183 1184 +f 1464 1466 1463 +f 1465 1461 1463 +f 1460 1461 1465 +f 1457 1467 1456 +f 1468 1464 1462 +f 1456 1468 1455 +f 1467 1469 1470 +f 1468 1456 1470 +f 1462 1455 1468 +f 1470 1471 1468 +f 1467 1470 1456 +f 1469 1472 1473 +f 1469 1473 1470 +f 1471 1470 1473 +f 1464 1468 1471 +f 1466 1464 1474 +f 1465 1181 1183 +f 1475 1463 1466 +f 1465 1463 1475 +f 1181 1465 1475 +f 1473 1476 1471 +f 1471 1474 1464 +f 1476 1473 1477 +f 1474 1471 1476 +f 1472 1477 1473 +f 1478 1479 1477 +f 1472 1478 1477 +f 1480 1477 1479 +f 1477 1480 1476 +f 1481 1476 1480 +f 1474 1482 1466 +f 1476 1481 1474 +f 1483 1484 1485 +f 1486 1483 1487 +f 1458 1486 1488 +f 1486 1458 1489 +f 1483 1486 1490 +f 1458 1280 1365 +f 1279 1280 1458 +f 1491 1485 1484 +f 1487 1488 1486 +f 1485 1487 1483 +f 1488 1422 1458 +f 1491 1492 1493 +f 1494 1495 1493 +f 1493 1496 1494 +f 1488 1459 1422 +f 1493 1495 1491 +f 1497 1492 1491 +f 1496 1493 1492 +f 1492 1497 1496 +f 1498 1365 1342 +f 1499 1500 1501 +f 1355 1502 1356 +f 1503 1502 1355 +f 1356 1504 1358 +f 1504 1356 1502 +f 1148 1503 1355 +f 1503 1148 1175 +f 1503 1505 1502 +f 1506 1505 1503 +f 1502 1507 1504 +f 1506 1508 1505 +f 1175 1506 1503 +f 1506 1175 1176 +f 1507 1502 1505 +f 1505 1509 1507 +f 1510 1357 1511 +f 1357 1510 1363 +f 1364 1363 1510 +f 1512 1364 1510 +f 1511 1358 1504 +f 1358 1511 1357 +f 1512 1510 1513 +f 1504 1514 1511 +f 1511 1513 1510 +f 1515 1514 1516 +f 1514 1515 1513 +f 1513 1511 1514 +f 1514 1504 1507 +f 1507 1516 1514 +f 1516 1507 1509 +f 1517 1512 1513 +f 1517 1513 1515 +f 1518 1517 1515 +f 1519 1508 1506 +f 1519 1520 1508 +f 1176 1519 1506 +f 1519 1176 1178 +f 1509 1505 1508 +f 1518 1515 1521 +f 1522 1518 1521 +f 1516 1521 1515 +f 1508 1523 1509 +f 1521 1516 1524 +f 1524 1509 1523 +f 1509 1524 1516 +f 1525 1180 1526 +f 1178 1525 1519 +f 1525 1178 1180 +f 1523 1508 1520 +f 1525 1520 1519 +f 1526 1527 1528 +f 1526 1180 1527 +f 1365 1489 1458 +f 1484 1483 1499 +f 1489 1490 1486 +f 1490 1499 1483 +f 1529 1530 1531 +f 1499 1532 1484 +f 1531 1484 1532 +f 1533 1534 1535 +f 1533 1535 1530 +f 1527 1536 1537 +f 1534 1526 1528 +f 1528 1537 1534 +f 1536 1527 1180 +f 1180 1182 1536 +f 1534 1533 1526 +f 1537 1528 1527 +f 1531 1532 1529 +f 1500 1529 1532 +f 1532 1501 1500 +f 1499 1501 1532 +f 1538 1533 1529 +f 1530 1529 1533 +f 1529 1500 1538 +f 1499 1538 1500 +f 1526 1538 1525 +f 1523 1520 1499 +f 1523 1489 1524 +f 1498 1522 1521 +f 1524 1365 1521 +f 1538 1520 1525 +f 1490 1523 1499 +f 1490 1489 1523 +f 1489 1365 1524 +f 1538 1526 1533 +f 1520 1538 1499 +f 1521 1365 1498 +f 1537 1539 1540 +f 1541 1536 1182 +f 1539 1537 1536 +f 1182 1185 1541 +f 1540 1534 1537 +f 1536 1541 1539 +f 1540 1539 1541 +f 1475 1466 1542 +f 1482 1474 1481 +f 1540 1185 1542 +f 1542 1466 1482 +f 1185 1475 1542 +f 1475 1185 1181 +f 1540 1541 1185 +f 1530 1496 1497 +f 1497 1531 1530 +f 1535 1494 1496 +f 1496 1530 1535 +f 1497 1491 1531 +f 1484 1531 1491 +f 1485 1480 1487 +f 1535 1540 1494 +f 1540 1535 1534 +f 1480 1485 1481 +f 1487 1479 1488 +f 1542 1491 1495 +f 1494 1542 1495 +f 1478 1459 1488 +f 1491 1481 1485 +f 1479 1487 1480 +f 1481 1491 1482 +f 1488 1479 1478 +f 1491 1542 1482 +f 1542 1494 1540 +f 1543 1544 1545 +f 1546 1545 1547 +f 1548 1549 1550 +f 1551 1550 1552 +f 1553 1552 1554 +f 1555 1554 1549 +f 1546 1543 1545 +f 1556 1551 1552 +f 1553 1556 1552 +f 1543 1557 1544 +f 1555 1553 1554 +f 1548 1555 1549 +f 1558 1548 1550 +f 1551 1558 1550 +f 1559 1560 1561 +f 1562 1559 1561 +f 1563 1546 1547 +f 1564 1562 1565 +f 1566 1564 1565 +f 1560 1567 1568 +f 1557 1569 1544 +f 1567 1566 1568 +f 1563 1547 1570 +f 1569 1570 1544 +f 1560 1568 1561 +f 1562 1561 1565 +f 1566 1565 1571 +f 1566 1571 1568 +f 1572 1573 1574 +f 1575 1572 1574 +f 1576 1575 1577 +f 1578 1576 1577 +f 1573 1579 1580 +f 1579 1578 1580 +f 1581 1582 1583 +f 1584 1585 1586 +f 1582 1587 1583 +f 1587 1584 1588 +f 1589 1581 1590 +f 1587 1588 1583 +f 1581 1583 1590 +f 1589 1590 1586 +f 1584 1586 1588 +f 1573 1580 1574 +f 1575 1574 1577 +f 1591 1592 1593 +f 1594 1593 1595 +f 1596 1595 1597 +f 1598 1597 1592 +f 1578 1577 1599 +f 1578 1599 1580 +f 1594 1600 1593 +f 1591 1598 1592 +f 1598 1601 1597 +f 1601 1596 1597 +f 1596 1594 1595 +f 1602 1603 1604 +f 1548 1558 1605 +f 1558 1551 1605 +f 1555 1548 1606 +f 1605 1551 1607 +f 1608 1609 1555 +f 1609 1608 1610 +f 1610 1611 1607 +f 1612 1610 1609 +f 1612 1607 1610 +f 1613 1610 1608 +f 1611 1610 1613 +f 1614 1606 1548 +f 1605 1614 1548 +f 1555 1606 1608 +f 1607 1611 1605 +f 1615 1616 1617 +f 1615 1618 1616 +f 1615 1619 1618 +f 1615 1617 1619 +f 1556 1553 1543 +f 1557 1555 1609 +f 1551 1556 1546 +f 1553 1555 1557 +f 1620 1617 1609 +f 1607 1616 1620 +f 1618 1607 1551 +f 1612 1620 1607 +f 1612 1609 1620 +f 1557 1543 1553 +f 1609 1617 1557 +f 1616 1607 1618 +f 1543 1546 1556 +f 1617 1620 1616 +f 1551 1546 1618 +f 1621 1622 1623 +f 1621 1624 1622 +f 1621 1625 1624 +f 1621 1623 1625 +f 1569 1557 1567 +f 1624 1618 1546 +f 1619 1622 1617 +f 1618 1624 1619 +f 1567 1557 1617 +f 1563 1569 1560 +f 1546 1563 1559 +f 1617 1623 1567 +f 1623 1617 1622 +f 1567 1560 1569 +f 1560 1559 1563 +f 1546 1562 1624 +f 1559 1562 1546 +f 1622 1619 1624 +f 1566 1567 1584 +f 1564 1566 1587 +f 1624 1626 1625 +f 1562 1564 1582 +f 1625 1627 1623 +f 1584 1567 1623 +f 1628 1624 1562 +f 1623 1627 1584 +f 1582 1581 1562 +f 1562 1581 1628 +f 1626 1624 1628 +f 1584 1587 1566 +f 1627 1625 1626 +f 1587 1582 1564 +f 1629 1630 1628 +f 1629 1627 1630 +f 1629 1628 1626 +f 1629 1626 1627 +f 1631 1632 1633 +f 1631 1634 1632 +f 1631 1635 1634 +f 1631 1633 1635 +f 1585 1584 1579 +f 1589 1585 1573 +f 1581 1589 1572 +f 1632 1628 1581 +f 1630 1633 1627 +f 1628 1632 1630 +f 1579 1584 1627 +f 1581 1575 1632 +f 1573 1572 1589 +f 1579 1573 1585 +f 1633 1630 1632 +f 1572 1575 1581 +f 1627 1635 1579 +f 1635 1627 1633 +f 1575 1598 1636 +f 1596 1601 1576 +f 1601 1598 1575 +f 1594 1596 1578 +f 1636 1632 1575 +f 1578 1579 1594 +f 1634 1637 1635 +f 1632 1638 1634 +f 1576 1578 1596 +f 1575 1576 1601 +f 1594 1579 1635 +f 1638 1632 1636 +f 1639 1638 1637 +f 1639 1636 1638 +f 1637 1634 1638 +f 1635 1637 1594 +f 1640 1636 1598 +f 1641 1642 1637 +f 1636 1640 1641 +f 1639 1637 1641 +f 1639 1641 1636 +f 1643 1594 1637 +f 1600 1594 1643 +f 1591 1600 1603 +f 1598 1591 1602 +f 1643 1603 1600 +f 1642 1641 1640 +f 1603 1602 1591 +f 1637 1644 1643 +f 1602 1645 1598 +f 1598 1645 1640 +f 1644 1637 1642 +f 1646 1647 1648 +f 1643 1646 1648 +f 1603 1643 1649 +f 1645 1602 1604 +f 1647 1645 1650 +f 1651 1652 1653 +f 1654 1653 1655 +f 1656 1655 1657 +f 1658 1657 1652 +f 1603 1649 1604 +f 1645 1604 1650 +f 1647 1650 1648 +f 1643 1648 1649 +f 1659 1651 1653 +f 1651 1658 1652 +f 1658 1660 1657 +f 1656 1654 1655 +f 1654 1659 1653 +f 1661 1662 1663 +f 1664 1661 1663 +f 1665 1664 1666 +f 1667 1665 1666 +f 1668 1667 1669 +f 1670 1671 1672 +f 1673 1670 1674 +f 1675 1673 1674 +f 1676 1675 1677 +f 1678 1676 1679 +f 1671 1678 1679 +f 1664 1663 1666 +f 1667 1666 1669 +f 1670 1672 1674 +f 1675 1674 1677 +f 1676 1677 1679 +f 1671 1679 1672 +f 1662 1680 1663 +f 1668 1669 1680 +f 1681 1682 1683 +f 1684 1683 1685 +f 1686 1685 1687 +f 1688 1687 1682 +f 1684 1689 1683 +f 1690 1684 1685 +f 1686 1690 1685 +f 1688 1686 1687 +f 1681 1688 1682 +f 1689 1681 1683 +f 1691 1692 1693 +f 1692 1694 1695 +f 1696 1691 1693 +f 1692 1695 1693 +f 1696 1693 1697 +f 1698 1697 1699 +f 1700 1699 1695 +f 1701 1702 1703 +f 1704 1703 1705 +f 1706 1705 1707 +f 1708 1707 1702 +f 1709 1701 1703 +f 1704 1709 1703 +f 1698 1696 1697 +f 1710 1704 1705 +f 1706 1710 1705 +f 1701 1708 1702 +f 1708 1706 1707 +f 1694 1700 1695 +f 1711 1642 1644 +f 1711 1640 1642 +f 1711 1712 1640 +f 1711 1644 1712 +f 1646 1643 1658 +f 1658 1643 1644 +f 1713 1640 1645 +f 1712 1714 1644 +f 1640 1715 1712 +f 1645 1647 1659 +f 1714 1712 1715 +f 1644 1714 1658 +f 1645 1654 1713 +f 1651 1659 1647 +f 1715 1640 1713 +f 1658 1651 1646 +f 1659 1654 1645 +f 1716 1713 1715 +f 1716 1717 1713 +f 1716 1714 1717 +f 1716 1715 1714 +f 1654 1656 1673 +f 1660 1658 1671 +f 1656 1660 1670 +f 1717 1718 1714 +f 1713 1719 1717 +f 1671 1658 1714 +f 1719 1713 1654 +f 1673 1675 1654 +f 1671 1670 1660 +f 1670 1673 1656 +f 1720 1714 1718 +f 1718 1717 1719 +f 1714 1720 1671 +f 1654 1675 1719 +f 1721 1720 1722 +f 1721 1718 1720 +f 1721 1719 1718 +f 1721 1722 1719 +f 1723 1724 1725 +f 1723 1725 1726 +f 1723 1726 1727 +f 1723 1727 1724 +f 1719 1726 1722 +f 1726 1719 1725 +f 1675 1676 1665 +f 1661 1671 1720 +f 1725 1719 1675 +f 1722 1727 1720 +f 1678 1671 1661 +f 1720 1727 1661 +f 1675 1667 1725 +f 1727 1722 1726 +f 1661 1664 1678 +f 1665 1667 1675 +f 1664 1665 1676 +f 1725 1728 1724 +f 1662 1661 1688 +f 1668 1662 1681 +f 1667 1668 1689 +f 1688 1661 1727 +f 1728 1725 1667 +f 1724 1729 1727 +f 1730 1729 1731 +f 1730 1728 1729 +f 1731 1727 1729 +f 1727 1731 1688 +f 1729 1724 1728 +f 1688 1681 1662 +f 1667 1684 1728 +f 1689 1684 1667 +f 1681 1689 1668 +f 1686 1688 1694 +f 1694 1688 1731 +f 1690 1686 1692 +f 1684 1690 1691 +f 1730 1732 1728 +f 1730 1731 1732 +f 1732 1733 1731 +f 1728 1734 1732 +f 1735 1728 1684 +f 1692 1691 1690 +f 1733 1732 1734 +f 1691 1696 1684 +f 1734 1728 1735 +f 1684 1696 1735 +f 1731 1733 1694 +f 1694 1692 1686 +f 1736 1734 1733 +f 1736 1735 1734 +f 1736 1737 1735 +f 1736 1733 1737 +f 1738 1739 1740 +f 1738 1741 1739 +f 1738 1742 1741 +f 1738 1740 1742 +f 1696 1698 1709 +f 1708 1694 1733 +f 1741 1735 1696 +f 1700 1694 1708 +f 1698 1700 1701 +f 1737 1739 1733 +f 1735 1741 1737 +f 1701 1709 1698 +f 1733 1740 1708 +f 1709 1704 1696 +f 1740 1733 1739 +f 1708 1701 1700 +f 1739 1737 1741 +f 1696 1704 1741 +f 1743 1610 1607 +f 1744 1607 1620 +f 1745 1617 1616 +f 1746 1616 1618 +f 1747 1620 1609 +f 1748 1609 1610 +f 1745 1749 1617 +f 1746 1745 1616 +f 1748 1747 1609 +f 1743 1748 1610 +f 1750 1743 1607 +f 1751 1750 1607 +f 1744 1751 1607 +f 1747 1744 1620 +f 1752 1619 1617 +f 1753 1622 1624 +f 1754 1624 1625 +f 1755 1625 1623 +f 1756 1623 1622 +f 1757 1618 1619 +f 1757 1746 1618 +f 1749 1752 1617 +f 1758 1753 1624 +f 1759 1758 1624 +f 1754 1759 1624 +f 1756 1755 1623 +f 1755 1754 1625 +f 1753 1756 1622 +f 1760 1761 1634 +f 1762 1760 1635 +f 1763 1762 1633 +f 1764 1763 1632 +f 1765 1764 1632 +f 1761 1765 1632 +f 1766 1767 1627 +f 1768 1766 1626 +f 1769 1768 1626 +f 1770 1769 1628 +f 1767 1771 1627 +f 1770 1628 1630 +f 1771 1630 1627 +f 1766 1627 1626 +f 1769 1626 1628 +f 1762 1635 1633 +f 1763 1633 1632 +f 1772 1641 1637 +f 1761 1632 1634 +f 1760 1634 1635 +f 1773 1637 1638 +f 1774 1638 1636 +f 1775 1636 1641 +f 1776 1777 1642 +f 1773 1778 1637 +f 1779 1773 1638 +f 1774 1779 1638 +f 1775 1774 1636 +f 1778 1772 1637 +f 1747 1780 1781 +f 1782 1783 1784 +f 1785 1780 1748 +f 1784 1785 1748 +f 1747 1748 1780 +f 1784 1750 1782 +f 1748 1743 1784 +f 1781 1786 1747 +f 1743 1750 1784 +f 1787 1782 1750 +f 1744 1747 1749 +f 1751 1744 1745 +f 1750 1751 1746 +f 1749 1747 1786 +f 1745 1746 1751 +f 1786 1788 1749 +f 1750 1746 1787 +f 1749 1745 1744 +f 1786 1781 1789 +f 1790 1789 1781 +f 1789 1783 1782 +f 1783 1789 1790 +f 1789 1791 1786 +f 1782 1791 1789 +f 1792 1782 1787 +f 1782 1792 1793 +f 1793 1788 1786 +f 1793 1791 1782 +f 1786 1791 1793 +f 1788 1793 1792 +f 1788 1794 1795 +f 1796 1797 1798 +f 1792 1794 1788 +f 1787 1794 1792 +f 1798 1797 1799 +f 1800 1797 1796 +f 1795 1794 1787 +f 1799 1797 1800 +f 1795 1798 1788 +f 1787 1796 1795 +f 1757 1752 1756 +f 1746 1757 1753 +f 1796 1787 1746 +f 1752 1749 1755 +f 1755 1749 1788 +f 1753 1758 1746 +f 1755 1756 1752 +f 1798 1795 1796 +f 1756 1753 1757 +f 1746 1758 1796 +f 1788 1799 1755 +f 1799 1788 1798 +f 1767 1755 1799 +f 1801 1796 1758 +f 1759 1754 1766 +f 1800 1802 1799 +f 1758 1759 1768 +f 1796 1803 1800 +f 1754 1755 1767 +f 1799 1802 1767 +f 1758 1769 1801 +f 1768 1769 1758 +f 1767 1766 1754 +f 1802 1800 1803 +f 1766 1768 1759 +f 1803 1796 1801 +f 1804 1805 1806 +f 1807 1805 1804 +f 1808 1805 1807 +f 1803 1809 1802 +f 1801 1809 1803 +f 1810 1809 1801 +f 1802 1809 1810 +f 1806 1805 1808 +f 1801 1804 1810 +f 1760 1767 1802 +f 1804 1801 1769 +f 1769 1770 1763 +f 1810 1806 1802 +f 1771 1767 1760 +f 1770 1771 1762 +f 1808 1802 1806 +f 1802 1808 1760 +f 1806 1810 1804 +f 1760 1762 1771 +f 1763 1764 1769 +f 1762 1763 1770 +f 1769 1764 1804 +f 1761 1760 1778 +f 1765 1761 1773 +f 1764 1765 1779 +f 1778 1760 1808 +f 1811 1804 1764 +f 1773 1779 1765 +f 1778 1773 1761 +f 1808 1812 1778 +f 1764 1774 1811 +f 1779 1774 1764 +f 1813 1778 1812 +f 1814 1811 1774 +f 1774 1775 1776 +f 1772 1778 1813 +f 1775 1772 1777 +f 1774 1815 1814 +f 1777 1776 1775 +f 1813 1777 1772 +f 1812 1816 1813 +f 1776 1815 1774 +f 1817 1818 1812 +f 1811 1818 1817 +f 1807 1812 1808 +f 1812 1807 1817 +f 1804 1817 1807 +f 1817 1804 1811 +f 1819 1820 1814 +f 1811 1814 1820 +f 1816 1812 1819 +f 1820 1818 1811 +f 1812 1818 1820 +f 1820 1819 1812 +f 1821 1815 1640 +f 1822 1821 1640 +f 1777 1813 1644 +f 1813 1822 1712 +f 1815 1776 1640 +f 1823 1713 1717 +f 1824 1717 1714 +f 1825 1714 1715 +f 1826 1715 1713 +f 1777 1644 1642 +f 1776 1642 1640 +f 1822 1640 1712 +f 1813 1712 1644 +f 1826 1827 1715 +f 1825 1828 1714 +f 1823 1826 1713 +f 1828 1824 1714 +f 1827 1825 1715 +f 1829 1830 1719 +f 1831 1829 1719 +f 1832 1831 1719 +f 1833 1832 1722 +f 1834 1833 1720 +f 1830 1834 1718 +f 1830 1718 1719 +f 1832 1719 1722 +f 1835 1725 1724 +f 1836 1724 1727 +f 1833 1722 1720 +f 1837 1727 1726 +f 1838 1726 1725 +f 1834 1720 1718 +f 1837 1839 1727 +f 1835 1838 1725 +f 1839 1836 1727 +f 1840 1837 1726 +f 1838 1840 1726 +f 1841 1842 1729 +f 1843 1841 1728 +f 1844 1843 1728 +f 1845 1844 1728 +f 1846 1845 1732 +f 1842 1846 1731 +f 1842 1731 1729 +f 1841 1729 1728 +f 1845 1728 1732 +f 1846 1732 1731 +f 1847 1733 1734 +f 1848 1734 1735 +f 1849 1847 1734 +f 1848 1849 1734 +f 1847 1850 1733 +f 1851 1737 1733 +f 1852 1735 1737 +f 1853 1740 1739 +f 1854 1739 1741 +f 1855 1741 1742 +f 1856 1742 1740 +f 1850 1851 1733 +f 1853 1856 1740 +f 1854 1853 1739 +f 1857 1854 1741 +f 1858 1857 1741 +f 1855 1858 1741 +f 1852 1848 1735 +f 1856 1855 1742 +f 1819 1859 1816 +f 1814 1859 1819 +f 1860 1859 1814 +f 1816 1859 1860 +f 1861 1862 1863 +f 1864 1862 1861 +f 1865 1862 1864 +f 1863 1862 1865 +f 1833 1828 1865 +f 1824 1828 1833 +f 1823 1824 1834 +f 1864 1866 1865 +f 1861 1867 1864 +f 1867 1861 1826 +f 1826 1823 1830 +f 1860 1865 1816 +f 1814 1863 1860 +f 1828 1813 1816 +f 1861 1814 1815 +f 1822 1813 1828 +f 1821 1822 1825 +f 1815 1821 1827 +f 1863 1814 1861 +f 1828 1825 1822 +f 1865 1860 1863 +f 1825 1827 1821 +f 1816 1865 1828 +f 1827 1826 1815 +f 1815 1826 1861 +f 1867 1868 1866 +f 1866 1868 1869 +f 1870 1868 1867 +f 1871 1872 1873 +f 1873 1872 1874 +f 1875 1872 1871 +f 1874 1872 1875 +f 1869 1868 1870 +f 1834 1830 1823 +f 1869 1865 1866 +f 1865 1869 1833 +f 1826 1829 1867 +f 1866 1864 1867 +f 1833 1834 1824 +f 1830 1829 1826 +f 1870 1871 1869 +f 1874 1867 1829 +f 1832 1833 1839 +f 1831 1832 1837 +f 1839 1833 1869 +f 1829 1831 1840 +f 1867 1875 1870 +f 1829 1838 1874 +f 1840 1838 1829 +f 1839 1837 1832 +f 1869 1871 1839 +f 1837 1840 1831 +f 1875 1867 1874 +f 1871 1870 1875 +f 1836 1839 1846 +f 1835 1836 1842 +f 1838 1835 1841 +f 1846 1839 1871 +f 1876 1874 1838 +f 1842 1841 1835 +f 1846 1842 1836 +f 1871 1877 1846 +f 1838 1843 1876 +f 1841 1843 1838 +f 1843 1844 1849 +f 1878 1876 1843 +f 1845 1846 1850 +f 1850 1846 1877 +f 1844 1845 1847 +f 1849 1848 1843 +f 1877 1879 1850 +f 1847 1849 1844 +f 1850 1847 1845 +f 1843 1848 1878 +f 1874 1876 1873 +f 1876 1880 1881 +f 1877 1871 1881 +f 1873 1881 1871 +f 1881 1873 1876 +f 1881 1880 1877 +f 1877 1880 1882 +f 1883 1876 1878 +f 1882 1879 1877 +f 1882 1880 1876 +f 1879 1882 1883 +f 1876 1883 1882 +f 1879 1884 1885 +f 1878 1884 1883 +f 1883 1884 1879 +f 1885 1884 1878 +f 1886 1887 1888 +f 1889 1887 1886 +f 1890 1887 1889 +f 1888 1887 1890 +f 1856 1850 1879 +f 1889 1878 1848 +f 1851 1850 1856 +f 1852 1851 1853 +f 1848 1852 1854 +f 1885 1886 1879 +f 1878 1889 1885 +f 1879 1888 1856 +f 1854 1857 1848 +f 1856 1853 1851 +f 1888 1879 1886 +f 1848 1857 1889 +f 1886 1885 1889 +f 1853 1854 1852 +f 1891 1892 1893 +f 1894 1891 1893 +f 1895 1896 1897 +f 1892 1895 1897 +f 1898 1894 1899 +f 1892 1897 1893 +f 1894 1893 1899 +f 1898 1899 1900 +f 1896 1900 1897 +f 1901 1902 1903 +f 1904 1903 1905 +f 1906 1905 1907 +f 1906 1907 1902 +f 1904 1908 1903 +f 1909 1904 1905 +f 1906 1909 1905 +f 1901 1910 1902 +f 1910 1906 1902 +f 1908 1901 1903 +f 1911 1912 1913 +f 1914 1913 1915 +f 1916 1915 1917 +f 1918 1917 1912 +f 1919 1920 1921 +f 1922 1921 1923 +f 1911 1924 1912 +f 1925 1911 1913 +f 1916 1914 1915 +f 1919 1926 1920 +f 1914 1925 1913 +f 1927 1919 1921 +f 1922 1927 1921 +f 1924 1918 1912 +f 1928 1929 1930 +f 1931 1930 1932 +f 1933 1932 1934 +f 1935 1934 1929 +f 1936 1923 1937 +f 1936 1937 1920 +f 1938 1933 1934 +f 1935 1938 1934 +f 1928 1935 1929 +f 1939 1922 1923 +f 1936 1939 1923 +f 1933 1931 1932 +f 1931 1940 1930 +f 1926 1936 1920 +f 1941 1942 1943 +f 1944 1941 1945 +f 1946 1944 1945 +f 1947 1946 1948 +f 1949 1947 1948 +f 1942 1949 1943 +f 1950 1951 1952 +f 1953 1952 1954 +f 1955 1954 1956 +f 1957 1956 1951 +f 1941 1943 1945 +f 1946 1945 1948 +f 1949 1948 1958 +f 1949 1958 1943 +f 1959 1960 1961 +f 1959 1962 1960 +f 1959 1963 1962 +f 1959 1961 1963 +f 1961 1741 1704 +f 1706 1708 1895 +f 1710 1706 1892 +f 1704 1710 1891 +f 1742 1962 1740 +f 1741 1963 1742 +f 1895 1708 1740 +f 1963 1741 1961 +f 1891 1894 1704 +f 1740 1962 1895 +f 1704 1894 1961 +f 1895 1892 1706 +f 1892 1891 1710 +f 1962 1742 1963 +f 1964 1965 1966 +f 1964 1966 1967 +f 1964 1968 1965 +f 1964 1967 1968 +f 1968 1961 1894 +f 1896 1895 1910 +f 1898 1896 1901 +f 1894 1898 1908 +f 1960 1965 1962 +f 1961 1968 1960 +f 1910 1895 1962 +f 1910 1901 1896 +f 1894 1904 1968 +f 1901 1908 1898 +f 1908 1904 1894 +f 1965 1960 1968 +f 1966 1962 1965 +f 1962 1966 1910 +f 1925 1914 1904 +f 1924 1911 1906 +f 1904 1914 1969 +f 1911 1925 1909 +f 1967 1970 1966 +f 1968 1971 1967 +f 1906 1910 1924 +f 1909 1906 1911 +f 1904 1909 1925 +f 1924 1910 1966 +f 1969 1968 1904 +f 1972 1969 1971 +f 1970 1967 1971 +f 1966 1970 1924 +f 1971 1968 1969 +f 1972 1971 1970 +f 1926 1924 1970 +f 1916 1918 1919 +f 1914 1916 1927 +f 1918 1924 1926 +f 1969 1973 1974 +f 1972 1974 1969 +f 1972 1970 1974 +f 1974 1975 1970 +f 1973 1969 1914 +f 1927 1922 1914 +f 1970 1976 1926 +f 1914 1922 1973 +f 1976 1970 1975 +f 1926 1919 1918 +f 1975 1974 1973 +f 1919 1927 1916 +f 1977 1975 1976 +f 1977 1973 1975 +f 1977 1978 1973 +f 1977 1976 1978 +f 1979 1980 1981 +f 1979 1982 1980 +f 1979 1983 1982 +f 1979 1981 1983 +f 1939 1936 1933 +f 1922 1939 1938 +f 1931 1926 1976 +f 1982 1973 1922 +f 1978 1981 1976 +f 1973 1980 1978 +f 1936 1926 1931 +f 1976 1981 1931 +f 1981 1978 1980 +f 1922 1935 1982 +f 1980 1973 1982 +f 1931 1933 1936 +f 1938 1935 1922 +f 1933 1938 1939 +f 1984 1982 1935 +f 1983 1985 1981 +f 1940 1931 1942 +f 1928 1940 1941 +f 1935 1928 1944 +f 1982 1984 1983 +f 1942 1931 1981 +f 1942 1941 1940 +f 1981 1986 1942 +f 1941 1944 1928 +f 1935 1946 1984 +f 1944 1946 1935 +f 1986 1981 1985 +f 1985 1983 1984 +f 1987 1985 1986 +f 1987 1984 1985 +f 1987 1988 1984 +f 1987 1986 1988 +f 1949 1942 1957 +f 1947 1949 1950 +f 1946 1947 1989 +f 1984 1990 1988 +f 1988 1991 1986 +f 1957 1942 1986 +f 1992 1984 1946 +f 1950 1989 1947 +f 1957 1950 1949 +f 1991 1988 1990 +f 1989 1953 1946 +f 1986 1991 1957 +f 1946 1953 1992 +f 1990 1984 1992 +f 1953 1989 1952 +f 1950 1957 1951 +f 1989 1950 1952 +f 1957 1993 1956 +f 1955 1953 1954 +f 1994 1995 1996 +f 1997 1994 1998 +f 1999 1997 1998 +f 2000 1999 2001 +f 2002 2000 2003 +f 1995 2002 1996 +f 2004 2005 2006 +f 2007 2006 2008 +f 2002 2003 1996 +f 1994 1996 1998 +f 1999 1998 2001 +f 2000 2001 2003 +f 2009 2004 2006 +f 2004 2010 2005 +f 2007 2009 2006 +f 2011 2012 2013 +f 2014 2011 2013 +f 2010 2015 2016 +f 2017 2014 2018 +f 2019 2017 2018 +f 2012 2020 2021 +f 2022 2007 2008 +f 2020 2019 2021 +f 2022 2008 2016 +f 2010 2016 2005 +f 2012 2021 2013 +f 2014 2013 2018 +f 2019 2018 2023 +f 2019 2023 2021 +f 2024 2025 2026 +f 2027 2028 2029 +f 2030 2024 2031 +f 2025 2027 2029 +f 2032 2030 2033 +f 2028 2032 2033 +f 2028 2033 2029 +f 2025 2029 2026 +f 2024 2026 2031 +f 2030 2031 2033 +f 2034 2035 2036 +f 2037 2036 2038 +f 2037 2034 2036 +f 2034 2039 2035 +f 2039 2040 2035 +f 2041 2037 2038 +f 2042 2041 2043 +f 2040 2042 2043 +f 2044 2045 2046 +f 2047 2046 2048 +f 2049 2048 2050 +f 2051 2050 2045 +f 2041 2038 2043 +f 2040 2043 2035 +f 2052 2047 2048 +f 2051 2053 2050 +f 2049 2052 2048 +f 2047 2044 2046 +f 2053 2049 2050 +f 2044 2051 2045 +f 2054 1990 1991 +f 2054 1992 1990 +f 2054 2055 1992 +f 2054 1991 2055 +f 1992 2056 2055 +f 2000 1957 1991 +f 2056 1992 1953 +f 1993 1957 2000 +f 1955 1993 2002 +f 1953 1955 1995 +f 2055 2057 1991 +f 2058 2056 2057 +f 1991 2059 2000 +f 2059 1991 2057 +f 2058 2057 2059 +f 2057 2055 2056 +f 2000 2002 1993 +f 2002 1995 1955 +f 1995 1994 1953 +f 1953 1994 2056 +f 2060 2061 2062 +f 2060 2063 2061 +f 2060 2064 2063 +f 2060 2062 2064 +f 1997 1999 2004 +f 1994 1997 2009 +f 2010 2000 2059 +f 1999 2000 2010 +f 2058 2065 2056 +f 2063 2056 1994 +f 2065 2062 2059 +f 2056 2061 2065 +f 2058 2059 2065 +f 2009 2007 1994 +f 2062 2065 2061 +f 1994 2007 2063 +f 2061 2056 2063 +f 2010 2004 1999 +f 2059 2062 2010 +f 2004 2009 1997 +f 2066 2067 2068 +f 2066 2069 2067 +f 2066 2070 2069 +f 2066 2068 2070 +f 2020 2010 2062 +f 2069 2063 2007 +f 2063 2069 2064 +f 2015 2010 2020 +f 2022 2015 2012 +f 2007 2022 2011 +f 2064 2067 2062 +f 2012 2011 2022 +f 2020 2012 2015 +f 2062 2068 2020 +f 2007 2014 2069 +f 2068 2062 2067 +f 2011 2014 2007 +f 2067 2064 2069 +f 2071 2072 2073 +f 2071 2074 2072 +f 2071 2075 2074 +f 2071 2073 2075 +f 2014 2017 2027 +f 2032 2020 2068 +f 2070 2075 2068 +f 2069 2073 2070 +f 2017 2019 2028 +f 2072 2069 2014 +f 2019 2020 2032 +f 2032 2028 2019 +f 2075 2070 2073 +f 2028 2027 2017 +f 2068 2075 2032 +f 2027 2025 2014 +f 2014 2025 2072 +f 2073 2069 2072 +f 2076 2072 2025 +f 2074 2077 2075 +f 2030 2032 2040 +f 2024 2030 2039 +f 2025 2024 2034 +f 2072 2076 2074 +f 2040 2032 2075 +f 2078 2075 2077 +f 2039 2034 2024 +f 2034 2037 2025 +f 2025 2037 2076 +f 2077 2074 2076 +f 2040 2039 2030 +f 2075 2078 2040 +f 2079 2077 2078 +f 2079 2076 2077 +f 2079 2080 2076 +f 2079 2078 2080 +f 2037 2051 2081 +f 2052 2049 2042 +f 2049 2053 2041 +f 2053 2051 2037 +f 2082 2083 2084 +f 2082 2081 2083 +f 2084 2080 2083 +f 2083 2076 2081 +f 2078 2084 2052 +f 2052 2040 2078 +f 2081 2076 2037 +f 2076 2083 2080 +f 2080 2084 2078 +f 2042 2040 2052 +f 2037 2041 2053 +f 2085 2052 2084 +f 2081 2086 2087 +f 2088 2081 2051 +f 2082 2087 2081 +f 2082 2084 2087 +f 2047 2052 2085 +f 2051 2044 2089 +f 2087 2090 2084 +f 2090 2087 2086 +f 2086 2081 2088 +f 2085 2091 2047 +f 2091 2089 2044 +f 2051 2089 2088 +f 2084 2090 2085 +f 2092 1966 1965 +f 2093 1965 1968 +f 2094 1962 1963 +f 2095 1963 1961 +f 2096 1961 1960 +f 2097 1960 1962 +f 2094 2098 1962 +f 2099 2094 1963 +f 2095 2099 1963 +f 2092 2100 1966 +f 2093 2092 1965 +f 2096 2095 1961 +f 2101 2093 1968 +f 2098 2097 1962 +f 2102 1969 1974 +f 2103 1974 1970 +f 2104 1968 1967 +f 2100 1967 1966 +f 2105 1970 1971 +f 2106 1971 1969 +f 2107 2105 1971 +f 2106 2107 1971 +f 2102 2106 1969 +f 2108 2101 1968 +f 2104 2108 1968 +f 2100 2104 1967 +f 2109 2103 1970 +f 2105 2109 1970 +f 2110 2111 1975 +f 2112 2110 1973 +f 2113 2112 1973 +f 2114 2113 1973 +f 2115 2114 1978 +f 2111 2115 1976 +f 2110 1975 1973 +f 2114 1973 1978 +f 2115 1978 1976 +f 2116 1982 1983 +f 2117 1983 1981 +f 2118 1980 1982 +f 2111 1976 1975 +f 2119 1981 1980 +f 2120 2119 1980 +f 2118 2120 1980 +f 2116 2118 1982 +f 2121 2117 1981 +f 2119 2121 1981 +f 2122 2123 1986 +f 2124 2122 1985 +f 2125 2124 1984 +f 2126 2125 1984 +f 2127 2126 1984 +f 2123 2127 1988 +f 2128 1991 1990 +f 2129 1990 1992 +f 2130 1992 2055 +f 2131 2055 1991 +f 2122 1986 1985 +f 2124 1985 1984 +f 2127 1984 1988 +f 2123 1988 1986 +f 2132 2133 2134 +f 2135 2133 2136 +f 2136 2133 2132 +f 2137 2138 2139 +f 2140 2138 2137 +f 2134 2133 2135 +f 2141 2138 2140 +f 2139 2138 2141 +f 2098 1856 1888 +f 1890 2135 1888 +f 1889 2134 1890 +f 2132 1889 1857 +f 1855 1856 2098 +f 1858 1855 2094 +f 1857 1858 2099 +f 1888 2135 2098 +f 1857 2095 2132 +f 2135 1890 2134 +f 2098 2094 1855 +f 2134 1889 2132 +f 2094 2099 1858 +f 2099 2095 1857 +f 2100 2092 2097 +f 2135 2139 2100 +f 2095 2101 2140 +f 2137 2136 2140 +f 2092 2093 2096 +f 2139 2135 2137 +f 2093 2101 2095 +f 2097 2098 2100 +f 2095 2096 2093 +f 2136 2137 2135 +f 2132 2140 2136 +f 2100 2098 2135 +f 2140 2132 2095 +f 2096 2097 2092 +f 2109 2100 2139 +f 2142 2140 2101 +f 2104 2100 2109 +f 2108 2104 2105 +f 2101 2108 2107 +f 2101 2106 2142 +f 2105 2107 2108 +f 2139 2143 2109 +f 2107 2106 2101 +f 2109 2105 2104 +f 2103 2109 2115 +f 2102 2103 2111 +f 2106 2102 2110 +f 2115 2109 2143 +f 2144 2142 2106 +f 2115 2111 2103 +f 2111 2110 2102 +f 2143 2145 2115 +f 2106 2112 2144 +f 2110 2112 2106 +f 2141 2143 2139 +f 2143 2141 2146 +f 2140 2146 2141 +f 2146 2140 2142 +f 2146 2147 2143 +f 2142 2147 2146 +f 2148 2149 2144 +f 2142 2144 2149 +f 2149 2147 2142 +f 2143 2147 2149 +f 2145 2143 2148 +f 2149 2148 2143 +f 2144 2150 2148 +f 2151 2150 2144 +f 2145 2150 2151 +f 2152 2153 2154 +f 2155 2153 2152 +f 2156 2153 2155 +f 2154 2153 2156 +f 2148 2150 2145 +f 2156 2157 2154 +f 2157 2156 2118 +f 2117 2121 2123 +f 2123 2121 2152 +f 2116 2117 2122 +f 2118 2116 2124 +f 2154 2158 2152 +f 2114 2115 2121 +f 2113 2114 2119 +f 2151 2152 2145 +f 2144 2155 2151 +f 2112 2113 2120 +f 2121 2115 2145 +f 2156 2144 2112 +f 2120 2118 2112 +f 2152 2151 2155 +f 2119 2120 2113 +f 2145 2152 2121 +f 2112 2118 2156 +f 2155 2144 2156 +f 2121 2119 2114 +f 2159 2160 2157 +f 2161 2160 2159 +f 2158 2160 2161 +f 2162 2163 2164 +f 2157 2160 2158 +f 2165 2163 2166 +f 2164 2163 2165 +f 2166 2163 2162 +f 2152 2161 2123 +f 2161 2152 2158 +f 2158 2154 2157 +f 2118 2125 2157 +f 2123 2122 2117 +f 2122 2124 2116 +f 2124 2125 2118 +f 2125 2126 2167 +f 2126 2127 2128 +f 2127 2123 2168 +f 2165 2157 2125 +f 2168 2123 2161 +f 2159 2162 2161 +f 2157 2166 2159 +f 2166 2157 2165 +f 2128 2167 2126 +f 2161 2162 2168 +f 2168 2128 2127 +f 2125 2129 2165 +f 2162 2159 2166 +f 2167 2129 2125 +f 2128 2168 1991 +f 2130 2129 1992 +f 2167 2128 1990 +f 2129 2167 1990 +f 2168 2131 1991 +f 2169 2170 2059 +f 2171 2169 2057 +f 2172 2171 2056 +f 2173 2172 2056 +f 2174 2173 2056 +f 2170 2174 2065 +f 2175 2061 2063 +f 2169 2059 2057 +f 2171 2057 2056 +f 2174 2056 2065 +f 2170 2065 2059 +f 2176 2062 2061 +f 2176 2177 2062 +f 2178 2176 2061 +f 2175 2178 2061 +f 2179 2064 2062 +f 2180 2068 2067 +f 2181 2067 2069 +f 2182 2069 2070 +f 2183 2070 2068 +f 2184 2063 2064 +f 2185 2186 2069 +f 2182 2185 2069 +f 2183 2182 2070 +f 2180 2183 2068 +f 2181 2180 2067 +f 2186 2181 2069 +f 2184 2175 2063 +f 2177 2179 2062 +f 2187 2188 2075 +f 2188 2189 2075 +f 2190 2187 2073 +f 2191 2190 2073 +f 2192 2191 2072 +f 2191 2073 2072 +f 2192 2072 2074 +f 2189 2074 2075 +f 2187 2075 2073 +f 2193 2078 2077 +f 2194 2077 2076 +f 2194 2193 2077 +f 2195 2194 2076 +f 2196 2195 2076 +f 2193 2197 2078 +f 2198 2081 2087 +f 2199 2087 2084 +f 2200 2084 2083 +f 2201 2083 2081 +f 2202 2076 2080 +f 2197 2080 2078 +f 2200 2199 2084 +f 2201 2200 2083 +f 2203 2201 2081 +f 2198 2203 2081 +f 2204 2198 2087 +f 2202 2196 2076 +f 2197 2202 2080 +f 2199 2204 2087 +f 2170 2168 2162 +f 2205 2165 2129 +f 2131 2168 2170 +f 2130 2131 2169 +f 2129 2130 2171 +f 2129 2172 2205 +f 2169 2171 2130 +f 2162 2206 2170 +f 2171 2172 2129 +f 2170 2169 2131 +f 2174 2170 2177 +f 2173 2174 2176 +f 2172 2173 2178 +f 2207 2205 2172 +f 2177 2170 2206 +f 2172 2175 2207 +f 2178 2175 2172 +f 2176 2178 2173 +f 2206 2208 2177 +f 2177 2176 2174 +f 2164 2209 2162 +f 2165 2205 2164 +f 2209 2210 2206 +f 2205 2210 2209 +f 2206 2162 2209 +f 2209 2164 2205 +f 2208 2211 2212 +f 2211 2210 2205 +f 2206 2210 2211 +f 2211 2208 2206 +f 2205 2212 2211 +f 2212 2205 2207 +f 2212 2213 2208 +f 2207 2213 2212 +f 2214 2215 2216 +f 2217 2215 2214 +f 2218 2215 2217 +f 2216 2215 2218 +f 2219 2213 2207 +f 2208 2213 2219 +f 2184 2179 2180 +f 2179 2177 2183 +f 2175 2184 2181 +f 2183 2177 2208 +f 2217 2207 2175 +f 2219 2214 2208 +f 2207 2217 2219 +f 2183 2180 2179 +f 2180 2181 2184 +f 2175 2186 2217 +f 2216 2208 2214 +f 2208 2216 2183 +f 2214 2219 2217 +f 2181 2186 2175 +f 2220 2221 2222 +f 2223 2221 2220 +f 2224 2221 2223 +f 2225 2226 2227 +f 2228 2226 2225 +f 2229 2226 2228 +f 2227 2226 2229 +f 2222 2221 2224 +f 2217 2222 2218 +f 2185 2182 2187 +f 2182 2183 2188 +f 2186 2185 2190 +f 2218 2224 2216 +f 2188 2183 2216 +f 2220 2217 2186 +f 2188 2187 2182 +f 2224 2218 2222 +f 2190 2191 2186 +f 2187 2190 2185 +f 2222 2217 2220 +f 2216 2224 2188 +f 2186 2191 2220 +f 2228 2220 2191 +f 2189 2188 2197 +f 2192 2189 2193 +f 2191 2192 2194 +f 2223 2225 2224 +f 2220 2228 2223 +f 2197 2188 2224 +f 2227 2224 2225 +f 2193 2194 2192 +f 2225 2223 2228 +f 2197 2193 2189 +f 2194 2195 2191 +f 2224 2227 2197 +f 2191 2195 2228 +f 2230 2231 2198 +f 2203 2198 2231 +f 2204 2199 2232 +f 2232 2199 2233 +f 2203 2231 2234 +f 2232 2230 2204 +f 2234 2235 2203 +f 2233 2236 2232 +f 2199 2197 2227 +f 2202 2197 2199 +f 2196 2202 2200 +f 2195 2196 2201 +f 2235 2228 2195 +f 2201 2203 2195 +f 2200 2201 2196 +f 2227 2233 2199 +f 2195 2203 2235 +f 2199 2200 2202 +f 2235 2237 2238 +f 2229 2233 2227 +f 2233 2229 2238 +f 2238 2228 2235 +f 2228 2238 2229 +f 2238 2237 2233 +f 2236 2239 2240 +f 2240 2235 2234 +f 2239 2236 2233 +f 2233 2237 2239 +f 2235 2240 2239 +f 2239 2237 2235 +f 2241 2242 2243 +f 2244 2245 2246 +f 2245 2243 2242 +f 2242 2246 2245 +f 2243 2245 2244 +f 2247 2246 2242 +f 2248 2244 2247 +f 2247 2241 2248 +f 2244 2248 2243 +f 2243 2248 2241 +f 2246 2247 2244 +f 2242 2241 2247 +f 2249 2250 2251 +f 2250 2252 2251 +f 2251 2252 2253 +f 2252 2254 2255 +f 2254 2252 2250 +f 2256 2257 2258 +f 2259 2257 2256 +f 2256 2255 2259 +f 2255 2256 2252 +f 2252 2256 2253 +f 2253 2256 2258 +f 2260 2261 2262 +f 2262 2254 2260 +f 2254 2263 2260 +f 2250 2263 2254 +f 2262 2264 2265 +f 2255 2265 2266 +f 2255 2254 2262 +f 2265 2255 2262 +f 2267 2265 2264 +f 2268 2264 2269 +f 2261 2269 2264 +f 2270 2267 2268 +f 2264 2268 2267 +f 2271 2272 2270 +f 2267 2270 2272 +f 2272 2271 2273 +f 2264 2262 2261 +f 2266 2274 2275 +f 2272 2266 2267 +f 2265 2267 2266 +f 2273 2274 2272 +f 2266 2272 2274 +f 2274 2273 2276 +f 2259 2255 2266 +f 2259 2266 2275 +f 2258 2257 2277 +f 2257 2278 2277 +f 2275 2278 2257 +f 2257 2259 2275 +f 2279 2280 2278 +f 2278 2275 2279 +f 2277 2278 2281 +f 2278 2280 2281 +f 2275 2274 2279 +f 2274 2276 2279 +f 2282 2279 2283 +f 2279 2276 2283 +f 2281 2280 2284 +f 2280 2285 2284 +f 2282 2285 2280 +f 2280 2279 2282 +f 2286 2273 2271 +f 2287 2271 2288 +f 2270 2288 2271 +f 2271 2287 2286 +f 2289 2268 2290 +f 2269 2290 2268 +f 2288 2270 2289 +f 2268 2289 2270 +f 2290 2291 2289 +f 2292 2293 2294 +f 2294 2295 2296 +f 2295 2294 2293 +f 2294 2297 2292 +f 2298 2292 2297 +f 2296 2299 2294 +f 2300 2301 2302 +f 2303 2304 2305 +f 2302 2305 2304 +f 2304 2306 2302 +f 2299 2301 2297 +f 2300 2297 2301 +f 2297 2294 2299 +f 2306 2300 2302 +f 2284 2285 2303 +f 2285 2304 2303 +f 2306 2304 2285 +f 2285 2282 2306 +f 2282 2283 2306 +f 2283 2300 2306 +f 2307 2276 2273 +f 2298 2283 2307 +f 2276 2307 2283 +f 2297 2300 2298 +f 2283 2298 2300 +f 2308 2307 2286 +f 2273 2286 2307 +f 2292 2298 2308 +f 2307 2308 2298 +f 2309 2286 2287 +f 2309 2310 2311 +f 2311 2308 2309 +f 2286 2309 2308 +f 2308 2311 2292 +f 2312 2293 2313 +f 2311 2313 2293 +f 2314 2295 2312 +f 2293 2312 2295 +f 2293 2292 2311 +f 2315 2316 2317 +f 2314 2315 2318 +f 2317 2319 2320 +f 2315 2317 2320 +f 2315 2314 2316 +f 2312 2316 2314 +f 2318 2321 2314 +f 2320 2318 2315 +f 2295 2314 2321 +f 2321 2296 2295 +f 2313 2311 2310 +f 2310 2309 2322 +f 2323 2313 2324 +f 2310 2324 2313 +f 2313 2323 2312 +f 2316 2323 2325 +f 2316 2325 2317 +f 2323 2324 2326 +f 2323 2326 2325 +f 2316 2312 2323 +f 2327 2328 2329 +f 2324 2330 2326 +f 2327 2329 2330 +f 2327 2322 2328 +f 2331 2328 2322 +f 2324 2310 2327 +f 2322 2327 2310 +f 2324 2327 2330 +f 2332 2333 2331 +f 2291 2334 2332 +f 2331 2288 2332 +f 2289 2332 2288 +f 2322 2287 2331 +f 2288 2331 2287 +f 2287 2322 2309 +f 2332 2289 2291 +f 2333 2332 2334 +f 2328 2335 2329 +f 2336 2337 2334 +f 2337 2333 2334 +f 2328 2333 2335 +f 2333 2337 2335 +f 2328 2331 2333 +f 2338 2339 2340 +f 2263 2250 2341 +f 2341 2340 2263 +f 2339 2338 2342 +f 2342 2343 2339 +f 2340 2341 2338 +f 2341 2250 2249 +f 2342 2338 2344 +f 2338 2345 2344 +f 2338 2341 2345 +f 2341 2346 2345 +f 2346 2341 2249 +f 2345 2346 2344 +f 2346 2249 2344 +f 2344 2249 2347 +f 2348 2347 2251 +f 2249 2251 2347 +f 2349 2350 2351 +f 2351 2350 2348 +f 2352 2353 2349 +f 2350 2349 2353 +f 2351 2348 2253 +f 2251 2253 2348 +f 2350 2354 2348 +f 2355 2356 957 +f 2353 2357 2350 +f 2355 957 958 +f 2356 2355 2358 +f 2359 2358 2355 +f 2357 2353 2359 +f 2358 2359 2353 +f 2360 2349 2351 +f 2352 2361 2362 +f 2361 2352 2363 +f 2360 2351 2258 +f 2253 2258 2351 +f 2363 2349 2360 +f 2349 2363 2352 +f 2364 2363 2365 +f 2365 2363 2360 +f 2366 2361 2364 +f 2365 2360 2277 +f 2258 2277 2360 +f 2363 2364 2361 +f 2367 2356 2362 +f 2356 2367 917 +f 2353 2352 2358 +f 2362 2358 2352 +f 2358 2362 2356 +f 2356 917 957 +f 2362 2368 2367 +f 2367 938 917 +f 2368 2362 2361 +f 2369 2367 2368 +f 2367 2369 938 +f 2368 2370 2369 +f 2371 2369 2370 +f 2369 2371 937 +f 2369 937 938 +f 2370 2368 2366 +f 2361 2366 2368 +f 2339 2372 2373 +f 2373 2260 2340 +f 2260 2263 2340 +f 2374 2372 2343 +f 2372 2339 2343 +f 2340 2339 2373 +f 2261 2260 2375 +f 2373 2375 2260 +f 2375 2373 2376 +f 2372 2376 2373 +f 2376 2372 2377 +f 2374 2377 2372 +f 2377 2374 2378 +f 2354 2350 2357 +f 2348 2354 2347 +f 2342 2344 2379 +f 2347 2380 2344 +f 2374 2343 2381 +f 2343 2342 2379 +f 2379 2381 2343 +f 2382 2383 2384 +f 2384 2385 2382 +f 2381 2379 2383 +f 2383 2382 2381 +f 2385 2384 2386 +f 2387 2388 2389 +f 2387 2390 2386 +f 2388 2391 2380 +f 2380 2389 2388 +f 2389 2390 2387 +f 2389 2380 2386 +f 2386 2390 2389 +f 2391 2388 2383 +f 2379 2391 2383 +f 2387 2386 2384 +f 2383 2388 2384 +f 2388 2387 2384 +f 2386 2354 2357 +f 2347 2354 2380 +f 2386 2380 2354 +f 2386 2357 2392 +f 2344 2391 2379 +f 2391 2344 2380 +f 2357 2393 2392 +f 2359 2394 2393 +f 2359 2393 2357 +f 2355 2394 2359 +f 2355 958 959 +f 959 2394 2355 +f 2394 2395 2393 +f 2395 2396 2393 +f 2394 959 2395 +f 963 2395 959 +f 2385 2396 2397 +f 2398 2385 2397 +f 2393 2385 2392 +f 2392 2385 2386 +f 2385 2393 2396 +f 2399 2400 2401 +f 2400 2402 2403 +f 2400 2403 2401 +f 2401 2403 2404 +f 2405 2401 2404 +f 2406 2404 2407 +f 2378 2408 2403 +f 2408 2378 2374 +f 2404 2403 2407 +f 2409 2410 2411 +f 2411 2382 2409 +f 2398 2409 2385 +f 2408 2374 2381 +f 2382 2411 2408 +f 2381 2382 2408 +f 2382 2385 2409 +f 2412 2407 2413 +f 2411 2403 2408 +f 2414 2413 2410 +f 2410 2409 2415 +f 2413 2407 2411 +f 2407 2403 2411 +f 2410 2413 2411 +f 2416 2417 2410 +f 2397 2418 2398 +f 2398 2418 2419 +f 2419 2416 2415 +f 2420 2417 2410 +f 2414 2410 2417 +f 2412 2413 2421 +f 2419 2409 2398 +f 2413 2414 2422 +f 2410 2415 2416 +f 2415 2409 2419 +f 2385 2420 2410 +f 2410 2417 2404 +f 2423 2364 2365 +f 2423 2365 2281 +f 2277 2281 2365 +f 2424 2366 2425 +f 2425 2364 2423 +f 2364 2425 2366 +f 2424 2426 2427 +f 2428 2427 2426 +f 2429 2423 2284 +f 2281 2284 2423 +f 2430 2425 2429 +f 2429 2425 2423 +f 2426 2424 2430 +f 2425 2430 2424 +f 2366 2424 2370 +f 2370 2427 2371 +f 2427 2370 2424 +f 2371 1004 937 +f 2431 2371 2427 +f 2431 1005 1004 +f 2371 2431 1004 +f 2427 2428 2431 +f 2432 2433 2434 +f 2434 2428 2435 +f 2433 2431 2428 +f 2433 2432 1008 +f 2433 1008 1005 +f 2431 2433 1005 +f 2426 2435 2428 +f 2428 2434 2433 +f 2436 2437 2399 +f 2438 2439 2405 +f 2440 2441 2402 +f 2442 2440 2443 +f 2437 2442 2400 +f 2439 2436 2401 +f 2421 2444 2412 +f 2444 2445 2407 +f 2446 2438 2404 +f 2445 2446 2406 +f 2417 2422 2414 +f 2422 2421 2413 +f 2417 2438 2404 +f 2401 2405 2439 +f 2407 2412 2444 +f 2404 2406 2446 +f 2406 2407 2445 +f 2405 2404 2438 +f 2447 2448 2449 +f 2450 2447 2451 +f 2452 2453 2454 +f 2455 2450 2456 +f 2457 2458 2459 +f 2453 2457 2460 +f 2448 2452 2461 +f 2457 2460 2462 +f 2400 2399 2437 +f 2443 2400 2442 +f 2458 2402 2441 +f 2402 2443 2440 +f 2399 2401 2436 +f 2404 2438 2457 +f 2449 2451 2447 +f 2459 2460 2457 +f 2461 2449 2448 +f 2454 2461 2452 +f 2460 2454 2453 +f 2441 2459 2458 +f 2438 2460 2457 +f 2463 2464 2465 +f 2465 2466 2463 +f 2290 2269 2467 +f 2468 2467 2269 +f 2467 2468 2469 +f 2470 2469 2468 +f 2469 2470 2466 +f 2471 2466 2470 +f 2466 2465 2469 +f 2472 2463 2466 +f 2466 2471 2472 +f 2375 2468 2261 +f 2468 2375 2470 +f 2376 2470 2375 +f 2470 2376 2471 +f 2377 2471 2376 +f 2269 2261 2468 +f 2471 2377 2473 +f 2378 2473 2377 +f 2443 2402 2400 +f 2403 2474 2378 +f 2402 2457 2403 +f 2457 2474 2403 +f 2473 2378 2474 +f 2453 2452 2457 +f 2458 2457 2402 +f 2448 2447 2452 +f 2475 2462 2455 +f 2462 2474 2455 +f 2455 2474 2447 +f 2447 2474 2452 +f 2452 2474 2457 +f 2450 2455 2447 +f 2474 2476 2473 +f 2473 2472 2471 +f 2462 2477 2474 +f 2478 2479 2477 +f 2472 2473 2476 +f 2480 2477 2462 +f 2479 2476 2477 +f 2477 2476 2474 +f 2479 2481 2476 +f 2476 2481 2482 +f 2483 2482 2481 +f 2484 2481 2479 +f 2482 2485 2476 +f 2463 2472 2486 +f 2476 2486 2472 +f 2485 2487 2476 +f 2487 2486 2476 +f 2488 2489 2487 +f 2490 2487 2485 +f 2491 2485 2482 +f 2318 2320 2492 +f 2493 2494 2495 +f 2492 2495 2494 +f 2494 2493 2496 +f 2492 2497 2318 +f 2321 2318 2497 +f 2494 2498 2492 +f 2497 2492 2498 +f 2496 2499 2494 +f 2498 2494 2499 +f 2500 2501 2502 +f 2502 2503 2504 +f 2317 2325 2504 +f 2504 2505 2317 +f 2319 2317 2505 +f 2506 2496 2493 +f 2495 2492 2320 +f 2320 2319 2495 +f 2495 2507 2493 +f 2493 2508 2506 +f 2509 2319 2505 +f 2507 2508 2493 +f 2319 2507 2495 +f 2508 2509 2506 +f 2508 2507 2509 +f 2507 2319 2509 +f 2510 2511 2512 +f 2513 2514 2515 +f 2512 2515 2514 +f 2299 2296 2510 +f 2510 2516 2299 +f 2511 2497 2515 +f 2515 2498 2513 +f 2511 2510 2296 +f 2515 2512 2511 +f 2296 2321 2511 +f 2496 2506 2517 +f 2497 2511 2321 +f 2499 2513 2498 +f 2498 2515 2497 +f 2518 2509 2519 +f 2517 2520 2496 +f 2499 2496 2520 +f 2521 2517 2506 +f 2509 2518 2521 +f 2504 2503 2505 +f 2503 2502 2501 +f 2506 2509 2521 +f 2501 2500 2522 +f 2523 2524 2522 +f 2525 2503 2501 +f 2522 2526 2501 +f 2505 2503 2519 +f 2505 2519 2509 +f 2525 2501 2527 +f 2525 2519 2503 +f 2501 2526 2527 +f 2522 2524 2526 +f 2528 2430 2429 +f 2284 2303 2429 +f 2430 2529 2426 +f 2528 2429 2303 +f 2529 2430 2528 +f 2435 2426 2529 +f 2530 2529 2528 +f 2435 2531 2434 +f 2531 2435 2532 +f 2529 2532 2435 +f 2530 2305 2533 +f 2530 2528 2305 +f 2303 2305 2528 +f 2534 2535 2305 +f 2305 2302 2534 +f 2536 2537 2535 +f 2535 2534 2536 +f 2538 2533 2537 +f 2537 2536 2538 +f 2305 2535 2533 +f 2535 2537 2533 +f 2538 2536 2539 +f 2301 2516 2534 +f 2534 2516 2536 +f 2516 2540 2536 +f 2536 2540 2539 +f 2302 2301 2534 +f 2540 2512 2539 +f 2514 2539 2512 +f 2514 2513 2541 +f 2513 2499 2542 +f 2301 2299 2516 +f 2512 2540 2510 +f 2516 2510 2540 +f 2543 2544 2545 +f 2517 2521 2546 +f 2544 2546 2545 +f 2547 2545 2548 +f 2545 2549 2548 +f 2520 2542 2499 +f 2549 2546 2521 +f 2546 2549 2545 +f 2549 2550 2548 +f 2550 2551 2548 +f 2548 2551 2525 +f 2521 2518 2549 +f 2551 2550 2552 +f 2550 2518 2519 +f 2518 2550 2549 +f 2553 2434 2531 +f 2432 2554 1021 +f 2434 2553 2432 +f 2554 2432 2553 +f 2432 1021 1008 +f 2541 2555 2514 +f 2542 2541 2513 +f 2556 2557 2542 +f 2520 2517 2558 +f 2558 2546 2559 +f 2560 2559 2561 +f 2562 2563 2559 +f 2564 2565 2563 +f 2565 2558 2563 +f 2563 2558 2559 +f 2561 2546 2566 +f 2566 2546 2567 +f 2544 2567 2546 +f 2559 2546 2561 +f 2546 2558 2517 +f 2568 2567 2544 +f 2569 2566 2567 +f 2570 2561 2566 +f 2532 2571 2531 +f 2532 2530 2571 +f 2538 2539 2572 +f 2539 2514 2555 +f 2532 2529 2530 +f 2533 2538 2572 +f 2533 2573 2530 +f 2397 2531 2571 +f 2574 2571 2530 +f 2572 2573 2533 +f 2531 2397 2553 +f 2574 2530 2573 +f 2539 2555 2572 +f 2553 2396 2554 +f 2395 2554 2396 +f 1021 2554 2395 +f 2395 963 1021 +f 2396 2553 2397 +f 2397 2571 2420 +f 2420 2571 2575 +f 2420 2418 2397 +f 2574 2576 2571 +f 2571 2576 2577 +f 2577 2575 2571 +f 2577 2576 2578 +f 2578 2575 2577 +f 2576 2574 2573 +f 2579 2578 2573 +f 2573 2578 2576 +f 2573 2572 2579 +f 2420 2575 2578 +f 2578 2579 2420 +f 2580 2419 2420 +f 2420 2419 2418 +f 2572 2555 2579 +f 2555 2580 2579 +f 2579 2580 2420 +f 2555 2541 2580 +f 2421 2422 2417 +f 2417 2416 2419 +f 2580 2445 2421 +f 2421 2417 2580 +f 2580 2417 2419 +f 2438 2445 2557 +f 2557 2445 2580 +f 2438 2446 2445 +f 2439 2438 2436 +f 2557 2436 2438 +f 2557 2580 2541 +f 2445 2444 2421 +f 2451 2556 2581 +f 2456 2451 2581 +f 2556 2558 2582 +f 2583 2582 2584 +f 2542 2520 2556 +f 2585 2581 2582 +f 2582 2581 2556 +f 2586 2587 2565 +f 2558 2556 2520 +f 2582 2558 2584 +f 2588 2589 2587 +f 2589 2558 2587 +f 2584 2558 2589 +f 2587 2558 2565 +f 2590 2584 2589 +f 2454 2460 2461 +f 2459 2441 2460 +f 2541 2542 2557 +f 2557 2556 2441 +f 2441 2556 2460 +f 2440 2442 2441 +f 2441 2442 2557 +f 2436 2557 2442 +f 2437 2436 2442 +f 2525 2527 2548 +f 2548 2527 2526 +f 2551 2591 2525 +f 2552 2591 2551 +f 2525 2591 2552 +f 2519 2552 2550 +f 2552 2519 2525 +f 2460 2556 2461 +f 2461 2556 2451 +f 2449 2461 2451 +f 2585 2582 2462 +f 2456 2581 2455 +f 2451 2456 2450 +f 2581 2585 2475 +f 2460 2582 2462 +f 2480 2462 2582 +f 2478 2477 2584 +f 2479 2478 2590 +f 2462 2475 2585 +f 2477 2480 2583 +f 2475 2455 2581 +f 2481 2462 2587 +f 2583 2584 2477 +f 2588 2587 2481 +f 2582 2583 2480 +f 2584 2590 2478 +f 2589 2588 2484 +f 2590 2589 2479 +f 2462 2582 2587 +f 2592 2500 2593 +f 2502 2593 2500 +f 2593 2502 2594 +f 2594 2502 2504 +f 2325 2326 2594 +f 2594 2504 2325 +f 2595 2592 2596 +f 2593 2596 2592 +f 2592 2595 2597 +f 2598 2597 2595 +f 2599 2594 2326 +f 2596 2593 2599 +f 2599 2593 2594 +f 2522 2600 2523 +f 2600 2522 2500 +f 2523 2601 2602 +f 2523 2602 2603 +f 2601 2523 2600 +f 2600 2597 2601 +f 2500 2592 2600 +f 2597 2598 2604 +f 2605 2604 2598 +f 2604 2606 2607 +f 2601 2604 2607 +f 2604 2601 2597 +f 2601 2607 2602 +f 2597 2600 2592 +f 2608 2595 2609 +f 2609 2596 2610 +f 2610 2596 2599 +f 2610 2599 2330 +f 2326 2330 2599 +f 2596 2609 2595 +f 2611 2608 2612 +f 2613 2610 2329 +f 2330 2329 2610 +f 2612 2609 2613 +f 2613 2609 2610 +f 2609 2612 2608 +f 2598 2614 2605 +f 2615 2605 2614 +f 2605 2616 2606 +f 2595 2608 2598 +f 2614 2598 2608 +f 2604 2605 2606 +f 2605 2615 2616 +f 2608 2611 2614 +f 2617 2614 2611 +f 2614 2617 2615 +f 2618 2615 2617 +f 2615 2619 2616 +f 2615 2618 2619 +f 2469 2620 2467 +f 2291 2290 2621 +f 2467 2621 2290 +f 2620 2469 2465 +f 2621 2467 2620 +f 2621 2622 2291 +f 2620 2623 2621 +f 2465 2624 2620 +f 2622 2621 2623 +f 2334 2291 2622 +f 2624 2465 2464 +f 2623 2620 2624 +f 2625 2613 2335 +f 2329 2335 2613 +f 2625 2612 2613 +f 2626 2627 2628 +f 2628 2625 2337 +f 2629 2626 2628 +f 2335 2337 2625 +f 2630 2631 2632 +f 2626 2632 2631 +f 2631 2630 2633 +f 2633 2634 2635 +f 2634 2633 2630 +f 2636 2635 2634 +f 2635 2636 2637 +f 2617 2638 2618 +f 2639 2618 2638 +f 2618 2639 2640 +f 2618 2640 2619 +f 2638 2617 2641 +f 2631 2641 2626 +f 2627 2626 2641 +f 2641 2611 2627 +f 2612 2627 2611 +f 2628 2627 2625 +f 2611 2641 2617 +f 2627 2612 2625 +f 2635 2639 2633 +f 2635 2637 2642 +f 2639 2635 2642 +f 2639 2642 2640 +f 2633 2638 2631 +f 2641 2631 2638 +f 2638 2633 2639 +f 2623 2624 2643 +f 2644 2622 2645 +f 2643 2624 2464 +f 2622 2623 2645 +f 2336 2334 2644 +f 2334 2622 2644 +f 2645 2623 2643 +f 2629 2336 2643 +f 2643 2646 2629 +f 2629 2628 2336 +f 2644 2645 2643 +f 2632 2626 2629 +f 2337 2336 2628 +f 2336 2644 2643 +f 2586 2565 2482 +f 2485 2563 2562 +f 2565 2564 2491 +f 2587 2586 2483 +f 2564 2563 2485 +f 2587 2559 2481 +f 2483 2481 2587 +f 2485 2491 2564 +f 2482 2483 2586 +f 2481 2484 2588 +f 2562 2490 2485 +f 2491 2482 2565 +f 2484 2479 2589 +f 2559 2487 2481 +f 2570 2566 2647 +f 2560 2561 2489 +f 2561 2570 2648 +f 2562 2559 2487 +f 2559 2560 2488 +f 2487 2559 2567 +f 2489 2488 2560 +f 2648 2489 2561 +f 2649 2647 2566 +f 2487 2490 2562 +f 2650 2649 2569 +f 2488 2487 2559 +f 2647 2648 2570 +f 2650 2487 2567 +f 2651 2548 2526 +f 2544 2543 2652 +f 2547 2548 2651 +f 2545 2547 2653 +f 2543 2545 2654 +f 2568 2544 2655 +f 2569 2567 2650 +f 2566 2569 2649 +f 2567 2548 2650 +f 2567 2568 2656 +f 2655 2656 2568 +f 2654 2652 2543 +f 2656 2650 2567 +f 2652 2655 2544 +f 2653 2654 2545 +f 2651 2653 2547 +f 2548 2651 2650 +f 2649 2650 2647 +f 2655 2486 2650 +f 2648 2647 2489 +f 2650 2486 2647 +f 2647 2486 2489 +f 2489 2486 2487 +f 2486 2657 2463 +f 2464 2463 2657 +f 2653 2651 2654 +f 2656 2655 2650 +f 2651 2657 2654 +f 2654 2657 2655 +f 2657 2486 2655 +f 2652 2654 2655 +f 2526 2658 2651 +f 2658 2659 2651 +f 2651 2659 2660 +f 2464 2657 2646 +f 2651 2661 2657 +f 2662 2658 2526 +f 2523 2603 2663 +f 2663 2524 2523 +f 2664 2662 2663 +f 2524 2662 2526 +f 2524 2663 2662 +f 2662 2636 2658 +f 2662 2664 2637 +f 2665 2660 2629 +f 2658 2634 2659 +f 2646 2643 2464 +f 2659 2630 2660 +f 2665 2629 2646 +f 2661 2666 2657 +f 2657 2666 2646 +f 2660 2661 2651 +f 2632 2660 2630 +f 2637 2636 2662 +f 2634 2658 2636 +f 2630 2659 2634 +f 2632 2629 2660 +f 2660 2667 2668 +f 2667 2665 2646 +f 2646 2666 2667 +f 2666 2661 2668 +f 2668 2661 2660 +f 2665 2667 2660 +f 2668 2667 2666 +f 2669 2670 2671 +f 2670 2672 2671 +f 2671 2672 2673 +f 2672 2674 2675 +f 2674 2672 2670 +f 2676 2677 2678 +f 2679 2677 2676 +f 2676 2675 2679 +f 2675 2676 2672 +f 2672 2676 2673 +f 2673 2676 2678 +f 2680 2681 2682 +f 2682 2674 2680 +f 2674 2683 2680 +f 2670 2683 2674 +f 2682 2684 2685 +f 2675 2685 2686 +f 2675 2674 2682 +f 2685 2675 2682 +f 2687 2685 2684 +f 2688 2684 2689 +f 2681 2689 2684 +f 2690 2687 2688 +f 2684 2688 2687 +f 2691 2692 2690 +f 2687 2690 2692 +f 2692 2691 2693 +f 2684 2682 2681 +f 2686 2694 2695 +f 2692 2686 2687 +f 2685 2687 2686 +f 2693 2694 2692 +f 2686 2692 2694 +f 2694 2693 2696 +f 2679 2675 2686 +f 2679 2686 2695 +f 2678 2677 2697 +f 2677 2698 2697 +f 2695 2698 2677 +f 2677 2679 2695 +f 2699 2700 2698 +f 2698 2695 2699 +f 2697 2698 2701 +f 2698 2700 2701 +f 2695 2694 2699 +f 2694 2696 2699 +f 2702 2699 2703 +f 2699 2696 2703 +f 2701 2700 2704 +f 2700 2705 2704 +f 2702 2705 2700 +f 2700 2699 2702 +f 2706 2693 2691 +f 2707 2691 2708 +f 2690 2708 2691 +f 2691 2707 2706 +f 2709 2688 2710 +f 2689 2710 2688 +f 2708 2690 2709 +f 2688 2709 2690 +f 2710 2711 2709 +f 2712 2713 2714 +f 2714 2715 2716 +f 2715 2714 2713 +f 2714 2717 2712 +f 2718 2712 2717 +f 2716 2719 2714 +f 2720 2721 2722 +f 2723 2724 2725 +f 2722 2725 2724 +f 2724 2726 2722 +f 2719 2721 2717 +f 2720 2717 2721 +f 2717 2714 2719 +f 2726 2720 2722 +f 2704 2705 2723 +f 2705 2724 2723 +f 2726 2724 2705 +f 2705 2702 2726 +f 2702 2703 2726 +f 2703 2720 2726 +f 2727 2696 2693 +f 2718 2703 2727 +f 2696 2727 2703 +f 2717 2720 2718 +f 2703 2718 2720 +f 2728 2727 2706 +f 2693 2706 2727 +f 2712 2718 2728 +f 2727 2728 2718 +f 2729 2706 2707 +f 2729 2730 2731 +f 2731 2728 2729 +f 2706 2729 2728 +f 2728 2731 2712 +f 2732 2713 2733 +f 2731 2733 2713 +f 2734 2715 2732 +f 2713 2732 2715 +f 2713 2712 2731 +f 2735 2736 2737 +f 2734 2735 2738 +f 2737 2739 2740 +f 2735 2737 2740 +f 2735 2734 2736 +f 2732 2736 2734 +f 2738 2741 2734 +f 2740 2738 2735 +f 2715 2734 2741 +f 2741 2716 2715 +f 2733 2731 2730 +f 2730 2729 2742 +f 2743 2733 2744 +f 2730 2744 2733 +f 2733 2743 2732 +f 2736 2743 2745 +f 2736 2745 2737 +f 2743 2744 2746 +f 2743 2746 2745 +f 2736 2732 2743 +f 2747 2748 2749 +f 2744 2750 2746 +f 2747 2749 2750 +f 2747 2742 2748 +f 2751 2748 2742 +f 2744 2730 2747 +f 2742 2747 2730 +f 2744 2747 2750 +f 2752 2753 2751 +f 2711 2754 2752 +f 2751 2708 2752 +f 2709 2752 2708 +f 2742 2707 2751 +f 2708 2751 2707 +f 2707 2742 2729 +f 2752 2709 2711 +f 2753 2752 2754 +f 2748 2755 2749 +f 2756 2757 2754 +f 2757 2753 2754 +f 2748 2753 2755 +f 2753 2757 2755 +f 2748 2751 2753 +f 2758 2759 2760 +f 2683 2670 2761 +f 2761 2760 2683 +f 2759 2758 2762 +f 2762 2763 2759 +f 2760 2761 2758 +f 2761 2670 2669 +f 2762 2758 2764 +f 2758 2765 2764 +f 2758 2761 2765 +f 2761 2766 2765 +f 2766 2761 2669 +f 2765 2766 2764 +f 2766 2669 2764 +f 2764 2669 2767 +f 2768 2767 2671 +f 2669 2671 2767 +f 2769 2770 2771 +f 2771 2770 2768 +f 2772 2773 2769 +f 2770 2769 2773 +f 2771 2768 2673 +f 2671 2673 2768 +f 2770 2774 2768 +f 2775 2776 2777 +f 2773 2778 2770 +f 2775 2777 2779 +f 2776 2775 2780 +f 2781 2780 2775 +f 2778 2773 2781 +f 2780 2781 2773 +f 2782 2769 2771 +f 2772 2783 2784 +f 2783 2772 2785 +f 2782 2771 2678 +f 2673 2678 2771 +f 2785 2769 2782 +f 2769 2785 2772 +f 2786 2785 2787 +f 2787 2785 2782 +f 2788 2783 2786 +f 2787 2782 2697 +f 2678 2697 2782 +f 2785 2786 2783 +f 2789 2776 2784 +f 2776 2789 2790 +f 2773 2772 2780 +f 2784 2780 2772 +f 2780 2784 2776 +f 2776 2790 2777 +f 2784 2791 2789 +f 2789 2792 2790 +f 2791 2784 2783 +f 2793 2789 2791 +f 2789 2793 2792 +f 2791 2794 2793 +f 2795 2793 2794 +f 2793 2795 2796 +f 2793 2796 2792 +f 2794 2791 2788 +f 2783 2788 2791 +f 2759 2797 2798 +f 2798 2680 2760 +f 2680 2683 2760 +f 2799 2797 2763 +f 2797 2759 2763 +f 2760 2759 2798 +f 2681 2680 2800 +f 2798 2800 2680 +f 2800 2798 2801 +f 2797 2801 2798 +f 2801 2797 2802 +f 2799 2802 2797 +f 2802 2799 2803 +f 2774 2770 2778 +f 2768 2774 2767 +f 2762 2764 2804 +f 2767 2805 2764 +f 2799 2763 2806 +f 2763 2762 2804 +f 2804 2806 2763 +f 2807 2808 2809 +f 2809 2810 2807 +f 2806 2804 2808 +f 2808 2807 2806 +f 2810 2809 2811 +f 2812 2813 2814 +f 2812 2815 2811 +f 2813 2816 2805 +f 2805 2814 2813 +f 2814 2815 2812 +f 2814 2805 2811 +f 2811 2815 2814 +f 2816 2813 2808 +f 2804 2816 2808 +f 2812 2811 2809 +f 2808 2813 2809 +f 2813 2812 2809 +f 2811 2774 2778 +f 2767 2774 2805 +f 2811 2805 2774 +f 2811 2778 2817 +f 2764 2816 2804 +f 2816 2764 2805 +f 2778 2818 2817 +f 2781 2819 2818 +f 2781 2818 2778 +f 2775 2819 2781 +f 2775 2779 2820 +f 2820 2819 2775 +f 2819 2821 2818 +f 2821 2822 2818 +f 2819 2820 2821 +f 2823 2821 2820 +f 2810 2822 2824 +f 2825 2810 2824 +f 2818 2810 2817 +f 2817 2810 2811 +f 2810 2818 2822 +f 2826 2827 2828 +f 2827 2829 2830 +f 2827 2830 2828 +f 2828 2830 2831 +f 2832 2828 2831 +f 2833 2831 2834 +f 2803 2835 2830 +f 2835 2803 2799 +f 2831 2830 2834 +f 2836 2837 2838 +f 2838 2807 2836 +f 2825 2836 2810 +f 2835 2799 2806 +f 2807 2838 2835 +f 2806 2807 2835 +f 2807 2810 2836 +f 2839 2834 2840 +f 2838 2830 2835 +f 2841 2840 2837 +f 2837 2836 2842 +f 2840 2834 2838 +f 2834 2830 2838 +f 2837 2840 2838 +f 2843 2844 2837 +f 2824 2845 2825 +f 2825 2845 2846 +f 2846 2843 2842 +f 2847 2844 2837 +f 2841 2837 2844 +f 2839 2840 2848 +f 2846 2836 2825 +f 2840 2841 2849 +f 2837 2842 2843 +f 2842 2836 2846 +f 2810 2847 2837 +f 2837 2844 2831 +f 2850 2786 2787 +f 2850 2787 2701 +f 2697 2701 2787 +f 2851 2788 2852 +f 2852 2786 2850 +f 2786 2852 2788 +f 2851 2853 2854 +f 2855 2854 2853 +f 2856 2850 2704 +f 2701 2704 2850 +f 2857 2852 2856 +f 2856 2852 2850 +f 2853 2851 2857 +f 2852 2857 2851 +f 2788 2851 2794 +f 2794 2854 2795 +f 2854 2794 2851 +f 2795 2858 2796 +f 2859 2795 2854 +f 2859 2860 2858 +f 2795 2859 2858 +f 2854 2855 2859 +f 2861 2862 2863 +f 2863 2855 2864 +f 2862 2859 2855 +f 2862 2861 2865 +f 2862 2865 2860 +f 2859 2862 2860 +f 2853 2864 2855 +f 2855 2863 2862 +f 2866 2867 2826 +f 2868 2869 2832 +f 2870 2871 2829 +f 2872 2870 2873 +f 2867 2872 2827 +f 2869 2866 2828 +f 2848 2874 2839 +f 2874 2875 2834 +f 2876 2868 2831 +f 2875 2876 2833 +f 2844 2849 2841 +f 2849 2848 2840 +f 2844 2868 2831 +f 2828 2832 2869 +f 2834 2839 2874 +f 2831 2833 2876 +f 2833 2834 2875 +f 2832 2831 2868 +f 2877 2878 2879 +f 2880 2877 2881 +f 2882 2883 2884 +f 2885 2880 2886 +f 2887 2888 2889 +f 2883 2887 2890 +f 2878 2882 2891 +f 2887 2890 2892 +f 2827 2826 2867 +f 2873 2827 2872 +f 2888 2829 2871 +f 2829 2873 2870 +f 2826 2828 2866 +f 2831 2868 2887 +f 2879 2881 2877 +f 2889 2890 2887 +f 2891 2879 2878 +f 2884 2891 2882 +f 2890 2884 2883 +f 2871 2889 2888 +f 2868 2890 2887 +f 2893 2894 2895 +f 2895 2896 2893 +f 2710 2689 2897 +f 2898 2897 2689 +f 2897 2898 2899 +f 2900 2899 2898 +f 2899 2900 2896 +f 2901 2896 2900 +f 2896 2895 2899 +f 2902 2893 2896 +f 2896 2901 2902 +f 2800 2898 2681 +f 2898 2800 2900 +f 2801 2900 2800 +f 2900 2801 2901 +f 2802 2901 2801 +f 2689 2681 2898 +f 2901 2802 2903 +f 2803 2903 2802 +f 2873 2829 2827 +f 2830 2904 2803 +f 2829 2887 2830 +f 2887 2904 2830 +f 2903 2803 2904 +f 2883 2882 2887 +f 2888 2887 2829 +f 2878 2877 2882 +f 2905 2892 2885 +f 2892 2904 2885 +f 2885 2904 2877 +f 2877 2904 2882 +f 2882 2904 2887 +f 2880 2885 2877 +f 2904 2906 2903 +f 2903 2902 2901 +f 2892 2907 2904 +f 2908 2909 2907 +f 2902 2903 2906 +f 2910 2907 2892 +f 2909 2906 2907 +f 2907 2906 2904 +f 2909 2911 2906 +f 2906 2911 2912 +f 2913 2912 2911 +f 2914 2911 2909 +f 2912 2915 2906 +f 2893 2902 2916 +f 2906 2916 2902 +f 2915 2917 2906 +f 2917 2916 2906 +f 2918 2919 2917 +f 2920 2917 2915 +f 2921 2915 2912 +f 2738 2740 2922 +f 2923 2924 2925 +f 2922 2925 2924 +f 2924 2923 2926 +f 2922 2927 2738 +f 2741 2738 2927 +f 2924 2928 2922 +f 2927 2922 2928 +f 2926 2929 2924 +f 2928 2924 2929 +f 2930 2931 2932 +f 2932 2933 2934 +f 2737 2745 2934 +f 2934 2935 2737 +f 2739 2737 2935 +f 2936 2926 2923 +f 2925 2922 2740 +f 2740 2739 2925 +f 2925 2937 2923 +f 2923 2938 2936 +f 2939 2739 2935 +f 2937 2938 2923 +f 2739 2937 2925 +f 2938 2939 2936 +f 2938 2937 2939 +f 2937 2739 2939 +f 2940 2941 2942 +f 2943 2944 2945 +f 2942 2945 2944 +f 2719 2716 2940 +f 2940 2946 2719 +f 2941 2927 2945 +f 2945 2928 2943 +f 2941 2940 2716 +f 2945 2942 2941 +f 2716 2741 2941 +f 2926 2936 2947 +f 2927 2941 2741 +f 2929 2943 2928 +f 2928 2945 2927 +f 2948 2939 2949 +f 2947 2950 2926 +f 2929 2926 2950 +f 2951 2947 2936 +f 2939 2948 2951 +f 2934 2933 2935 +f 2933 2932 2931 +f 2936 2939 2951 +f 2931 2930 2952 +f 2953 2954 2952 +f 2955 2933 2931 +f 2952 2956 2931 +f 2935 2933 2949 +f 2935 2949 2939 +f 2955 2931 2957 +f 2955 2949 2933 +f 2931 2956 2957 +f 2952 2954 2956 +f 2958 2857 2856 +f 2704 2723 2856 +f 2857 2959 2853 +f 2958 2856 2723 +f 2959 2857 2958 +f 2864 2853 2959 +f 2960 2959 2958 +f 2864 2961 2863 +f 2961 2864 2962 +f 2959 2962 2864 +f 2960 2725 2963 +f 2960 2958 2725 +f 2723 2725 2958 +f 2964 2965 2725 +f 2725 2722 2964 +f 2966 2967 2965 +f 2965 2964 2966 +f 2968 2963 2967 +f 2967 2966 2968 +f 2725 2965 2963 +f 2965 2967 2963 +f 2968 2966 2969 +f 2721 2946 2964 +f 2964 2946 2966 +f 2946 2970 2966 +f 2966 2970 2969 +f 2722 2721 2964 +f 2970 2942 2969 +f 2944 2969 2942 +f 2944 2943 2971 +f 2943 2929 2972 +f 2721 2719 2946 +f 2942 2970 2940 +f 2946 2940 2970 +f 2973 2974 2975 +f 2947 2951 2976 +f 2974 2976 2975 +f 2977 2975 2978 +f 2975 2979 2978 +f 2950 2972 2929 +f 2979 2976 2951 +f 2976 2979 2975 +f 2979 2980 2978 +f 2980 2981 2978 +f 2978 2981 2955 +f 2951 2948 2979 +f 2981 2980 2982 +f 2980 2948 2949 +f 2948 2980 2979 +f 2983 2863 2961 +f 2861 2984 2985 +f 2863 2983 2861 +f 2984 2861 2983 +f 2861 2985 2865 +f 2971 2986 2944 +f 2972 2971 2943 +f 2987 2988 2972 +f 2950 2947 2989 +f 2989 2976 2990 +f 2991 2990 2992 +f 2993 2994 2990 +f 2995 2996 2994 +f 2996 2989 2994 +f 2994 2989 2990 +f 2992 2976 2997 +f 2997 2976 2998 +f 2974 2998 2976 +f 2990 2976 2992 +f 2976 2989 2947 +f 2999 2998 2974 +f 3000 2997 2998 +f 3001 2992 2997 +f 2962 3002 2961 +f 2962 2960 3002 +f 2968 2969 3003 +f 2969 2944 2986 +f 2962 2959 2960 +f 2963 2968 3003 +f 2963 3004 2960 +f 2824 2961 3002 +f 3005 3002 2960 +f 3003 3004 2963 +f 2961 2824 2983 +f 3005 2960 3004 +f 2969 2986 3003 +f 2983 2822 2984 +f 2821 2984 2822 +f 2985 2984 2821 +f 2821 2823 2985 +f 2822 2983 2824 +f 2824 3002 2847 +f 2847 3002 3006 +f 2847 2845 2824 +f 3005 3007 3002 +f 3002 3007 3008 +f 3008 3006 3002 +f 3008 3007 3009 +f 3009 3006 3008 +f 3007 3005 3004 +f 3010 3009 3004 +f 3004 3009 3007 +f 3004 3003 3010 +f 2847 3006 3009 +f 3009 3010 2847 +f 3011 2846 2847 +f 2847 2846 2845 +f 3003 2986 3010 +f 2986 3011 3010 +f 3010 3011 2847 +f 2986 2971 3011 +f 2848 2849 2844 +f 2844 2843 2846 +f 3011 2875 2848 +f 2848 2844 3011 +f 3011 2844 2846 +f 2868 2875 2988 +f 2988 2875 3011 +f 2868 2876 2875 +f 2869 2868 2866 +f 2988 2866 2868 +f 2988 3011 2971 +f 2875 2874 2848 +f 2881 2987 3012 +f 2886 2881 3012 +f 2987 2989 3013 +f 3014 3013 3015 +f 2972 2950 2987 +f 3016 3012 3013 +f 3013 3012 2987 +f 3017 3018 2996 +f 2989 2987 2950 +f 3013 2989 3015 +f 3019 3020 3018 +f 3020 2989 3018 +f 3015 2989 3020 +f 3018 2989 2996 +f 3021 3015 3020 +f 2884 2890 2891 +f 2889 2871 2890 +f 2971 2972 2988 +f 2988 2987 2871 +f 2871 2987 2890 +f 2870 2872 2871 +f 2871 2872 2988 +f 2866 2988 2872 +f 2867 2866 2872 +f 2955 2957 2978 +f 2978 2957 2956 +f 2981 3022 2955 +f 2982 3022 2981 +f 2955 3022 2982 +f 2949 2982 2980 +f 2982 2949 2955 +f 2890 2987 2891 +f 2891 2987 2881 +f 2879 2891 2881 +f 3016 3013 2892 +f 2886 3012 2885 +f 2881 2886 2880 +f 3012 3016 2905 +f 2890 3013 2892 +f 2910 2892 3013 +f 2908 2907 3015 +f 2909 2908 3021 +f 2892 2905 3016 +f 2907 2910 3014 +f 2905 2885 3012 +f 2911 2892 3018 +f 3014 3015 2907 +f 3019 3018 2911 +f 3013 3014 2910 +f 3015 3021 2908 +f 3020 3019 2914 +f 3021 3020 2909 +f 2892 3013 3018 +f 3023 2930 3024 +f 2932 3024 2930 +f 3024 2932 3025 +f 3025 2932 2934 +f 2745 2746 3025 +f 3025 2934 2745 +f 3026 3023 3027 +f 3024 3027 3023 +f 3023 3026 3028 +f 3029 3028 3026 +f 3030 3025 2746 +f 3027 3024 3030 +f 3030 3024 3025 +f 2952 3031 2953 +f 3031 2952 2930 +f 2953 3032 3033 +f 2953 3033 3034 +f 3032 2953 3031 +f 3031 3028 3032 +f 2930 3023 3031 +f 3028 3029 3035 +f 3036 3035 3029 +f 3035 3037 3038 +f 3032 3035 3038 +f 3035 3032 3028 +f 3032 3038 3033 +f 3028 3031 3023 +f 3039 3026 3040 +f 3040 3027 3041 +f 3041 3027 3030 +f 3041 3030 2750 +f 2746 2750 3030 +f 3027 3040 3026 +f 3042 3039 3043 +f 3044 3041 2749 +f 2750 2749 3041 +f 3043 3040 3044 +f 3044 3040 3041 +f 3040 3043 3039 +f 3029 3045 3036 +f 3046 3036 3045 +f 3036 3047 3037 +f 3026 3039 3029 +f 3045 3029 3039 +f 3035 3036 3037 +f 3036 3046 3047 +f 3039 3042 3045 +f 3048 3045 3042 +f 3045 3048 3046 +f 3049 3046 3048 +f 3046 3050 3047 +f 3046 3049 3050 +f 2899 3051 2897 +f 2711 2710 3052 +f 2897 3052 2710 +f 3051 2899 2895 +f 3052 2897 3051 +f 3052 3053 2711 +f 3051 3054 3052 +f 2895 3055 3051 +f 3053 3052 3054 +f 2754 2711 3053 +f 3055 2895 2894 +f 3054 3051 3055 +f 3056 3044 2755 +f 2749 2755 3044 +f 3056 3043 3044 +f 3057 3058 3059 +f 3059 3056 2757 +f 3060 3057 3059 +f 2755 2757 3056 +f 3061 3062 3063 +f 3057 3063 3062 +f 3062 3061 3064 +f 3064 3065 3066 +f 3065 3064 3061 +f 3067 3066 3065 +f 3066 3067 3068 +f 3048 3069 3049 +f 3070 3049 3069 +f 3049 3070 3071 +f 3049 3071 3050 +f 3069 3048 3072 +f 3062 3072 3057 +f 3058 3057 3072 +f 3072 3042 3058 +f 3043 3058 3042 +f 3059 3058 3056 +f 3042 3072 3048 +f 3058 3043 3056 +f 3066 3070 3064 +f 3066 3068 3073 +f 3070 3066 3073 +f 3070 3073 3071 +f 3064 3069 3062 +f 3072 3062 3069 +f 3069 3064 3070 +f 3054 3055 3074 +f 3075 3053 3076 +f 3074 3055 2894 +f 3053 3054 3076 +f 2756 2754 3075 +f 2754 3053 3075 +f 3076 3054 3074 +f 3060 2756 3074 +f 3074 3077 3060 +f 3060 3059 2756 +f 3075 3076 3074 +f 3063 3057 3060 +f 2757 2756 3059 +f 2756 3075 3074 +f 3017 2996 2912 +f 2915 2994 2993 +f 2996 2995 2921 +f 3018 3017 2913 +f 2995 2994 2915 +f 3018 2990 2911 +f 2913 2911 3018 +f 2915 2921 2995 +f 2912 2913 3017 +f 2911 2914 3019 +f 2993 2920 2915 +f 2921 2912 2996 +f 2914 2909 3020 +f 2990 2917 2911 +f 3001 2997 3078 +f 2991 2992 2919 +f 2992 3001 3079 +f 2993 2990 2917 +f 2990 2991 2918 +f 2917 2990 2998 +f 2919 2918 2991 +f 3079 2919 2992 +f 3080 3078 2997 +f 2917 2920 2993 +f 3081 3080 3000 +f 2918 2917 2990 +f 3078 3079 3001 +f 3081 2917 2998 +f 3082 2978 2956 +f 2974 2973 3083 +f 2977 2978 3082 +f 2975 2977 3084 +f 2973 2975 3085 +f 2999 2974 3086 +f 3000 2998 3081 +f 2997 3000 3080 +f 2998 2978 3081 +f 2998 2999 3087 +f 3086 3087 2999 +f 3085 3083 2973 +f 3087 3081 2998 +f 3083 3086 2974 +f 3084 3085 2975 +f 3082 3084 2977 +f 2978 3082 3081 +f 3080 3081 3078 +f 3086 2916 3081 +f 3079 3078 2919 +f 3081 2916 3078 +f 3078 2916 2919 +f 2919 2916 2917 +f 2916 3088 2893 +f 2894 2893 3088 +f 3084 3082 3085 +f 3087 3086 3081 +f 3082 3088 3085 +f 3085 3088 3086 +f 3088 2916 3086 +f 3083 3085 3086 +f 2956 3089 3082 +f 3089 3090 3082 +f 3082 3090 3091 +f 2894 3088 3077 +f 3082 3092 3088 +f 3093 3089 2956 +f 2953 3034 3094 +f 3094 2954 2953 +f 3095 3093 3094 +f 2954 3093 2956 +f 2954 3094 3093 +f 3093 3067 3089 +f 3093 3095 3068 +f 3096 3091 3060 +f 3089 3065 3090 +f 3077 3074 2894 +f 3090 3061 3091 +f 3096 3060 3077 +f 3092 3097 3088 +f 3088 3097 3077 +f 3091 3092 3082 +f 3063 3091 3061 +f 3068 3067 3093 +f 3065 3089 3067 +f 3061 3090 3065 +f 3063 3060 3091 +f 3091 3098 3099 +f 3098 3096 3077 +f 3077 3097 3098 +f 3097 3092 3099 +f 3099 3092 3091 +f 3096 3098 3091 +f 3099 3098 3097 +f 3100 3101 3102 +f 3100 3103 3101 +f 3104 3103 3100 +f 3104 3105 3103 +f 3106 3105 3104 +f 3106 3107 3105 +f 3101 3103 3108 +f 3109 3110 3107 +f 3110 3111 3105 +f 3103 3105 3111 +f 3111 3108 3103 +f 3108 3112 3101 +f 3108 3111 3113 +f 3113 3114 3108 +f 3112 3108 3114 +f 3114 3115 3112 +f 3116 3117 3113 +f 3118 3113 3117 +f 3118 3114 3113 +f 3115 3118 3119 +f 3115 3114 3118 +f 3111 3110 3120 +f 3120 3113 3111 +f 3121 3122 3109 +f 3110 3109 3122 +f 3122 3120 3110 +f 3120 3123 3116 +f 3120 3122 3123 +f 3116 3113 3120 +f 3122 3121 3124 +f 3122 3124 3123 +f 3125 3126 3127 +f 3107 3125 3109 +f 3128 3125 3107 +f 3128 3107 3106 +f 3105 3107 3110 +f 3127 3129 3130 +f 3131 3129 3132 +f 3126 3132 3129 +f 3129 3127 3126 +f 3109 3127 3121 +f 3127 3109 3125 +f 3133 3130 3129 +f 3130 3121 3127 +f 3130 3134 3135 +f 3121 3135 3124 +f 3121 3130 3135 +f 3132 3136 3131 +f 3136 3137 3138 +f 3138 3131 3136 +f 3139 3132 3140 +f 3139 3136 3132 +f 3137 3136 3139 +f 3131 3138 3141 +f 3130 3133 3134 +f 3129 3131 3133 +f 3134 3133 3141 +f 3141 3133 3131 +f 3142 3143 3144 +f 3143 3142 3145 +f 3145 3146 3143 +f 3147 3148 3146 +f 3149 3150 3148 +f 3151 3152 3150 +f 3153 3126 3125 +f 3140 3126 3153 +f 3140 3132 3126 +f 3154 3155 3152 +f 3156 3157 3155 +f 3153 3125 3128 +f 3158 3159 3160 +f 3161 3159 3158 +f 3161 3162 3159 +f 3146 3145 3147 +f 3148 3147 3149 +f 3158 3160 3163 +f 3150 3149 3151 +f 3152 3151 3154 +f 3157 3156 3164 +f 3164 3165 3157 +f 3165 3164 3166 +f 3155 3154 3156 +f 3167 3160 3168 +f 3168 3169 3167 +f 3170 3167 3169 +f 3163 3167 3171 +f 3163 3160 3167 +f 3160 3159 3172 +f 3173 3174 3175 +f 3175 3176 3173 +f 3177 3173 3176 +f 3178 3176 3175 +f 3179 3176 3178 +f 3180 3181 3174 +f 3174 3173 3180 +f 3162 3180 3173 +f 3181 3180 3182 +f 3182 3162 3161 +f 3182 3180 3162 +f 3176 3179 3177 +f 3179 3178 3183 +f 3179 3184 3172 +f 3184 3183 3185 +f 3184 3179 3183 +f 3172 3168 3160 +f 3173 3177 3162 +f 3159 3162 3177 +f 3172 3177 3179 +f 3177 3172 3159 +f 3168 3172 3184 +f 3186 3185 3187 +f 3186 3184 3185 +f 3188 3187 3189 +f 3188 3186 3187 +f 3189 3190 3188 +f 3188 3190 3191 +f 3186 3188 3169 +f 3191 3169 3188 +f 3184 3186 3168 +f 3169 3168 3186 +f 3189 3192 3190 +f 3193 3190 3192 +f 3193 3194 3190 +f 3195 3193 3196 +f 3195 3194 3193 +f 3197 3191 3190 +f 3194 3195 3198 +f 3190 3194 3197 +f 3198 3197 3194 +f 3171 3167 3170 +f 3199 3200 3197 +f 3201 3199 3202 +f 3203 3170 3200 +f 3201 3200 3199 +f 3203 3200 3201 +f 3171 3170 3203 +f 3197 3198 3199 +f 3169 3191 3170 +f 3200 3170 3191 +f 3191 3197 3200 +f 3204 3205 3206 +f 3204 3207 3205 +f 3204 3102 3207 +f 3205 3207 3208 +f 3102 3208 3207 +f 3209 3102 3204 +f 3209 3100 3102 +f 3210 3211 3212 +f 3213 3214 3215 +f 3209 3214 3213 +f 3215 3216 3210 +f 3216 3215 3214 +f 3217 3212 3211 +f 3211 3210 3216 +f 3218 3106 3104 +f 3104 3213 3218 +f 3213 3104 3100 +f 3218 3215 3219 +f 3213 3215 3218 +f 3210 3219 3215 +f 3220 3143 3146 +f 3221 3222 3220 +f 3146 3221 3220 +f 3221 3146 3148 +f 3223 3224 3225 +f 3226 3225 3227 +f 3225 3228 3229 +f 3229 3227 3225 +f 3225 3226 3223 +f 3230 3231 3144 +f 3230 3232 3231 +f 3233 3229 3228 +f 3230 3144 3233 +f 3144 3234 3233 +f 3234 3144 3143 +f 3235 3236 3237 +f 3234 3229 3233 +f 3100 3209 3213 +f 3143 3220 3234 +f 3212 3238 3210 +f 3239 3240 3217 +f 3239 3235 3237 +f 3212 3217 3240 +f 3239 3241 3240 +f 3235 3239 3217 +f 3224 3223 3242 +f 3228 3225 3224 +f 3223 3243 3237 +f 3237 3242 3223 +f 3239 3237 3243 +f 3241 3239 3243 +f 3242 3237 3236 +f 3234 3244 3229 +f 3227 3229 3244 +f 3244 3245 3227 +f 3245 3244 3222 +f 3220 3244 3234 +f 3220 3222 3244 +f 3241 3243 3246 +f 3247 3227 3245 +f 3227 3247 3226 +f 3226 3246 3243 +f 3243 3223 3226 +f 3246 3226 3247 +f 3204 3206 3248 +f 3205 3208 3206 +f 3102 3101 3208 +f 3249 3204 3248 +f 3250 3216 3251 +f 3216 3214 3251 +f 3249 3252 3204 +f 3253 3224 3254 +f 3224 3253 3228 +f 3204 3255 3209 +f 3255 3204 3252 +f 3253 3233 3228 +f 3233 3253 3256 +f 3257 3233 3256 +f 3233 3257 3230 +f 3258 3251 3259 +f 3251 3260 3259 +f 3258 3261 3262 +f 3258 3259 3261 +f 3263 3261 3259 +f 3262 3252 3249 +f 3262 3261 3252 +f 3259 3260 3263 +f 3255 3252 3261 +f 3261 3263 3255 +f 3211 3264 3217 +f 3250 3265 3216 +f 3265 3264 3211 +f 3266 3236 3235 +f 3255 3214 3209 +f 3267 3235 3217 +f 3214 3255 3251 +f 3216 3265 3211 +f 3268 3256 3253 +f 3253 3269 3268 +f 3270 3268 3269 +f 3269 3271 3270 +f 3271 3269 3253 +f 3257 3256 3268 +f 3268 3270 3257 +f 3272 3236 3266 +f 3236 3272 3242 +f 3266 3273 3274 +f 3254 3242 3272 +f 3242 3254 3224 +f 3230 3275 3276 +f 3276 3232 3230 +f 3231 3277 3142 +f 3230 3278 3275 +f 3142 3144 3231 +f 3232 3276 3277 +f 3277 3231 3232 +f 3270 3279 3278 +f 3280 3281 3254 +f 3271 3282 3279 +f 3281 3282 3253 +f 3271 3253 3282 +f 3279 3270 3271 +f 3278 3257 3270 +f 3278 3230 3257 +f 3253 3254 3281 +f 3254 3272 3280 +f 3272 3266 3283 +f 3284 3285 3248 +f 3206 3208 3286 +f 3286 3284 3206 +f 3208 3101 3112 +f 3112 3286 3208 +f 3248 3206 3284 +f 3249 3248 3285 +f 3285 3287 3249 +f 3258 3262 3288 +f 3288 3289 3258 +f 3262 3249 3287 +f 3287 3288 3262 +f 3251 3258 3289 +f 3290 3265 3289 +f 3250 3289 3265 +f 3251 3289 3250 +f 3285 3284 3291 +f 3291 3292 3285 +f 3284 3286 3293 +f 3293 3291 3284 +f 3286 3112 3115 +f 3115 3293 3286 +f 3294 3295 3296 +f 3297 3298 3299 +f 3299 3300 3294 +f 3300 3299 3298 +f 3301 3298 3297 +f 3119 3301 3297 +f 3301 3119 3118 +f 3293 3115 3119 +f 3291 3293 3302 +f 3292 3291 3303 +f 3293 3119 3302 +f 3291 3302 3303 +f 3292 3303 3304 +f 3304 3302 3119 +f 3304 3303 3302 +f 3304 3119 3297 +f 3118 3305 3301 +f 3305 3118 3117 +f 3117 3306 3305 +f 3306 3117 3116 +f 3307 3308 3309 +f 3310 3307 3309 +f 3295 3294 3300 +f 3309 3296 3295 +f 3296 3309 3308 +f 3295 3311 3309 +f 3312 3310 3311 +f 3311 3295 3313 +f 3310 3309 3311 +f 3300 3313 3295 +f 3313 3300 3314 +f 3315 3316 3317 +f 3317 3318 3315 +f 3318 3317 3319 +f 3306 3317 3305 +f 3306 3319 3317 +f 3320 3319 3306 +f 3116 3320 3306 +f 3320 3116 3123 +f 3316 3315 3314 +f 3301 3316 3298 +f 3305 3316 3301 +f 3305 3317 3316 +f 3298 3314 3300 +f 3314 3298 3316 +f 3321 3312 3322 +f 3313 3322 3311 +f 3322 3313 3323 +f 3312 3311 3322 +f 3323 3314 3315 +f 3314 3323 3313 +f 3321 3322 3324 +f 3323 3324 3322 +f 3325 3321 3324 +f 3326 3315 3318 +f 3315 3326 3323 +f 3324 3323 3326 +f 3327 3325 3328 +f 3329 3318 3330 +f 3325 3324 3328 +f 3328 3326 3329 +f 3326 3328 3324 +f 3318 3329 3326 +f 3331 3332 3333 +f 3331 3333 3334 +f 3334 3289 3331 +f 3334 3290 3289 +f 3335 3332 3336 +f 3332 3335 3333 +f 3289 3288 3337 +f 3337 3338 3289 +f 3288 3287 3339 +f 3339 3337 3288 +f 3287 3285 3292 +f 3292 3339 3287 +f 3289 3338 3340 +f 3341 3294 3340 +f 3339 3304 3342 +f 3342 3297 3343 +f 3297 3341 3343 +f 3296 3340 3294 +f 3341 3297 3299 +f 3339 3292 3304 +f 3294 3341 3299 +f 3297 3342 3304 +f 3338 3337 3344 +f 3341 3338 3345 +f 3344 3339 3342 +f 3344 3337 3339 +f 3338 3344 3345 +f 3338 3341 3340 +f 3341 3346 3343 +f 3342 3343 3346 +f 3347 3346 3341 +f 3344 3346 3347 +f 3346 3344 3342 +f 3347 3345 3344 +f 3341 3345 3347 +f 3307 3336 3332 +f 3308 3331 3296 +f 3331 3308 3332 +f 3340 3296 3331 +f 3340 3331 3289 +f 3332 3308 3307 +f 3235 3267 3266 +f 3251 3255 3263 +f 3263 3260 3251 +f 3265 3348 3264 +f 3348 3267 3264 +f 3217 3264 3267 +f 3247 3349 3246 +f 3350 3241 3246 +f 3350 3246 3349 +f 3351 3350 3349 +f 3352 3351 3353 +f 3351 3352 3354 +f 3351 3354 3355 +f 3350 3351 3355 +f 3356 3219 3357 +f 3218 3219 3356 +f 3219 3210 3238 +f 3238 3357 3219 +f 3356 3128 3106 +f 3106 3218 3356 +f 3357 3238 3358 +f 3359 3357 3360 +f 3355 3361 3362 +f 3356 3357 3359 +f 3362 3363 3358 +f 3361 3355 3354 +f 3363 3362 3361 +f 3360 3358 3363 +f 3358 3360 3357 +f 3240 3364 3212 +f 3364 3240 3365 +f 3364 3358 3238 +f 3358 3364 3362 +f 3365 3362 3364 +f 3238 3212 3364 +f 3350 3355 3365 +f 3241 3350 3365 +f 3362 3365 3355 +f 3241 3365 3240 +f 3354 3366 3361 +f 3363 3367 3360 +f 3368 3361 3366 +f 3361 3368 3363 +f 3369 3367 3370 +f 3366 3371 3368 +f 3368 3372 3367 +f 3369 3360 3367 +f 3367 3363 3368 +f 3359 3360 3369 +f 3221 3373 3222 +f 3374 3373 3221 +f 3374 3375 3373 +f 3376 3375 3374 +f 3128 3356 3359 +f 3148 3374 3221 +f 3374 3148 3150 +f 3150 3376 3374 +f 3369 3140 3153 +f 3153 3359 3369 +f 3359 3153 3128 +f 3376 3377 3375 +f 3376 3150 3152 +f 3152 3378 3376 +f 3378 3152 3155 +f 3245 3379 3247 +f 3222 3380 3245 +f 3380 3222 3373 +f 3349 3247 3379 +f 3379 3245 3380 +f 3373 3381 3380 +f 3381 3373 3375 +f 3353 3379 3382 +f 3382 3380 3381 +f 3380 3382 3379 +f 3351 3349 3353 +f 3379 3353 3349 +f 3352 3353 3383 +f 3382 3383 3353 +f 3383 3382 3384 +f 3352 3385 3386 +f 3385 3387 3388 +f 3352 3386 3354 +f 3366 3354 3386 +f 3386 3389 3366 +f 3389 3386 3388 +f 3385 3388 3386 +f 3378 3390 3377 +f 3384 3381 3391 +f 3392 3377 3390 +f 3377 3392 3391 +f 3378 3377 3376 +f 3381 3384 3382 +f 3375 3391 3381 +f 3391 3375 3377 +f 3393 3391 3392 +f 3391 3393 3384 +f 3385 3352 3383 +f 3385 3383 3394 +f 3387 3385 3394 +f 3393 3395 3394 +f 3394 3384 3393 +f 3384 3394 3383 +f 3370 3372 3396 +f 3370 3367 3372 +f 3139 3370 3396 +f 3370 3139 3140 +f 3140 3369 3370 +f 3397 3398 3399 +f 3400 3399 3398 +f 3399 3400 3401 +f 3402 3403 3397 +f 3398 3397 3403 +f 3404 3405 3402 +f 3403 3402 3405 +f 3389 3403 3371 +f 3371 3366 3389 +f 3396 3405 3404 +f 3405 3371 3403 +f 3371 3405 3372 +f 3372 3368 3371 +f 3396 3372 3405 +f 3403 3389 3398 +f 3388 3398 3389 +f 3398 3388 3400 +f 3406 3401 3400 +f 3387 3406 3400 +f 3387 3400 3388 +f 3407 3124 3135 +f 3135 3408 3407 +f 3408 3135 3134 +f 3319 3330 3318 +f 3320 3409 3319 +f 3410 3409 3320 +f 3123 3410 3320 +f 3410 3123 3124 +f 3330 3319 3409 +f 3407 3411 3410 +f 3124 3407 3410 +f 3410 3411 3409 +f 3409 3412 3330 +f 3412 3409 3411 +f 3330 3413 3329 +f 3414 3329 3413 +f 3329 3414 3328 +f 3413 3330 3412 +f 3327 3328 3414 +f 3415 3327 3414 +f 3416 3417 3418 +f 3418 3413 3416 +f 3413 3418 3414 +f 3416 3412 3419 +f 3412 3416 3413 +f 3420 3415 3418 +f 3415 3414 3418 +f 3420 3418 3417 +f 3134 3421 3408 +f 3411 3419 3412 +f 3419 3411 3422 +f 3407 3422 3411 +f 3408 3422 3407 +f 3408 3423 3422 +f 3424 3422 3423 +f 3417 3416 3425 +f 3425 3419 3424 +f 3419 3425 3416 +f 3426 3420 3417 +f 3422 3424 3419 +f 3421 3423 3408 +f 3427 3428 3137 +f 3427 3429 3428 +f 3428 3429 3430 +f 3430 3431 3428 +f 3431 3138 3137 +f 3429 3427 3432 +f 3432 3430 3429 +f 3137 3428 3431 +f 3430 3432 3433 +f 3433 3434 3430 +f 3138 3431 3435 +f 3431 3430 3434 +f 3434 3435 3431 +f 3433 3141 3435 +f 3435 3141 3138 +f 3433 3435 3434 +f 3421 3134 3141 +f 3433 3436 3421 +f 3421 3141 3433 +f 3437 3432 3427 +f 3438 3433 3432 +f 3427 3137 3404 +f 3404 3439 3427 +f 3440 3406 3395 +f 3397 3441 3402 +f 3401 3290 3399 +f 3348 3401 3406 +f 3399 3442 3397 +f 3441 3404 3402 +f 3439 3404 3443 +f 3406 3440 3348 +f 3441 3397 3442 +f 3442 3399 3290 +f 3290 3401 3348 +f 3404 3441 3443 +f 3439 3443 3444 +f 3444 3445 3439 +f 3446 3447 3445 +f 3441 3447 3446 +f 3445 3444 3446 +f 3441 3444 3443 +f 3446 3444 3441 +f 3423 3436 3448 +f 3432 3437 3438 +f 3436 3423 3421 +f 3427 3439 3437 +f 3436 3433 3438 +f 3334 3333 3425 +f 3425 3333 3417 +f 3335 3426 3417 +f 3417 3333 3335 +f 3424 3423 3448 +f 3424 3334 3425 +f 3449 3424 3448 +f 3449 3334 3424 +f 3449 3442 3290 +f 3441 3442 3449 +f 3439 3445 3450 +f 3450 3437 3439 +f 3449 3290 3334 +f 3441 3448 3451 +f 3441 3449 3448 +f 3451 3447 3441 +f 3445 3447 3451 +f 3451 3450 3445 +f 3452 3453 3448 +f 3454 3452 3436 +f 3448 3436 3452 +f 3448 3453 3455 +f 3452 3454 3455 +f 3455 3453 3452 +f 3455 3454 3450 +f 3437 3450 3454 +f 3448 3455 3451 +f 3450 3451 3455 +f 3454 3438 3437 +f 3436 3438 3454 +f 3456 3457 3458 +f 3456 3165 3457 +f 3396 3137 3139 +f 3157 3459 3460 +f 3459 3157 3165 +f 3155 3460 3378 +f 3460 3155 3157 +f 3460 3390 3378 +f 3460 3461 3390 +f 3390 3462 3392 +f 3462 3390 3461 +f 3406 3387 3395 +f 3395 3393 3463 +f 3463 3392 3462 +f 3392 3463 3393 +f 3387 3394 3395 +f 3267 3348 3440 +f 3273 3464 3465 +f 3464 3466 3467 +f 3266 3267 3273 +f 3265 3290 3348 +f 3440 3273 3267 +f 3137 3396 3404 +f 3456 3468 3459 +f 3459 3461 3460 +f 3459 3165 3456 +f 3462 3464 3463 +f 3462 3461 3469 +f 3463 3273 3395 +f 3468 3456 3470 +f 3468 3461 3459 +f 3466 3462 3469 +f 3461 3468 3469 +f 3466 3464 3462 +f 3464 3273 3463 +f 3395 3273 3440 +f 3469 3471 3472 +f 3469 3468 3471 +f 3469 3472 3473 +f 3468 3470 3474 +f 3473 3472 3471 +f 3474 3471 3468 +f 3471 3474 3473 +f 3475 3181 3182 +f 3145 3476 3477 +f 3476 3145 3142 +f 3275 3277 3276 +f 3275 3142 3277 +f 3477 3478 3479 +f 3477 3480 3478 +f 3147 3477 3479 +f 3477 3147 3145 +f 3481 3482 3483 +f 3478 3484 3485 +f 3484 3478 3480 +f 3483 3486 3487 +f 3487 3485 3484 +f 3485 3487 3486 +f 3482 3488 3483 +f 3465 3489 3274 +f 3490 3491 3492 +f 3283 3280 3272 +f 3489 3492 3493 +f 3274 3283 3266 +f 3493 3274 3489 +f 3476 3480 3477 +f 3275 3494 3476 +f 3476 3142 3275 +f 3181 3475 3495 +f 3487 3274 3483 +f 3494 3275 3278 +f 3484 3480 3281 +f 3484 3283 3487 +f 3494 3480 3476 +f 3483 3274 3493 +f 3283 3274 3487 +f 3280 3484 3281 +f 3280 3283 3484 +f 3480 3494 3281 +f 3494 3278 3279 +f 3281 3496 3282 +f 3279 3497 3494 +f 3281 3494 3497 +f 3497 3279 3282 +f 3282 3496 3497 +f 3281 3497 3496 +f 3498 3499 3500 +f 3501 3502 3503 +f 3503 3498 3501 +f 3502 3500 3181 +f 3502 3501 3500 +f 3181 3500 3499 +f 3499 3174 3181 +f 3500 3501 3498 +f 3498 3503 3504 +f 3504 3505 3498 +f 3174 3499 3506 +f 3499 3498 3505 +f 3505 3506 3499 +f 3506 3175 3174 +f 3504 3506 3505 +f 3504 3175 3506 +f 3507 3178 3175 +f 3178 3507 3508 +f 3508 3509 3510 +f 3511 3512 3513 +f 3512 3511 3509 +f 3508 3514 3509 +f 3510 3509 3511 +f 3507 3514 3508 +f 3515 3509 3514 +f 3516 3517 3518 +f 3518 3512 3515 +f 3512 3518 3517 +f 3519 3520 3516 +f 3509 3515 3512 +f 3510 3185 3183 +f 3183 3508 3510 +f 3508 3183 3178 +f 3185 3510 3521 +f 3522 3513 3523 +f 3513 3522 3511 +f 3521 3511 3522 +f 3510 3511 3521 +f 3521 3187 3185 +f 3187 3521 3524 +f 3524 3522 3525 +f 3521 3522 3524 +f 3525 3523 3526 +f 3523 3525 3522 +f 3527 3528 3529 +f 3530 3529 3528 +f 3520 3530 3528 +f 3520 3528 3516 +f 3517 3516 3528 +f 3517 3513 3512 +f 3513 3517 3527 +f 3528 3527 3517 +f 3527 3523 3513 +f 3523 3527 3531 +f 3529 3531 3527 +f 3531 3529 3532 +f 3533 3532 3529 +f 3530 3533 3529 +f 3182 3534 3475 +f 3534 3182 3161 +f 3161 3535 3534 +f 3534 3536 3475 +f 3534 3537 3536 +f 3495 3538 3539 +f 3540 3539 3538 +f 3541 3542 3543 +f 3542 3541 3544 +f 3543 3545 3540 +f 3545 3543 3542 +f 3539 3540 3545 +f 3536 3546 3547 +f 3547 3548 3549 +f 3475 3538 3495 +f 3475 3536 3538 +f 3538 3547 3540 +f 3547 3538 3536 +f 3549 3540 3547 +f 3482 3481 3541 +f 3482 3541 3550 +f 3550 3543 3549 +f 3543 3550 3541 +f 3540 3549 3543 +f 3481 3544 3541 +f 3507 3175 3504 +f 3504 3551 3507 +f 3552 3504 3503 +f 3553 3503 3502 +f 3502 3181 3495 +f 3495 3554 3502 +f 3555 3556 3518 +f 3518 3556 3516 +f 3557 3519 3516 +f 3516 3556 3557 +f 3515 3514 3558 +f 3515 3555 3518 +f 3559 3515 3558 +f 3559 3555 3515 +f 3558 3560 3561 +f 3553 3562 3563 +f 3563 3552 3553 +f 3551 3552 3563 +f 3562 3561 3560 +f 3560 3563 3562 +f 3564 3565 3559 +f 3559 3565 3491 +f 3566 3563 3560 +f 3560 3567 3566 +f 3566 3567 3558 +f 3563 3566 3551 +f 3558 3551 3566 +f 3558 3567 3560 +f 3554 3568 3562 +f 3559 3491 3555 +f 3562 3553 3554 +f 3561 3569 3564 +f 3558 3561 3564 +f 3568 3569 3561 +f 3561 3562 3568 +f 3564 3559 3558 +f 3551 3504 3552 +f 3503 3553 3552 +f 3502 3554 3553 +f 3551 3514 3507 +f 3514 3551 3558 +f 3564 3570 3571 +f 3572 3569 3568 +f 3554 3571 3570 +f 3572 3570 3564 +f 3568 3570 3572 +f 3570 3568 3554 +f 3564 3569 3572 +f 3565 3542 3491 +f 3554 3495 3571 +f 3495 3564 3571 +f 3481 3493 3492 +f 3564 3545 3565 +f 3491 3544 3492 +f 3542 3565 3545 +f 3493 3481 3483 +f 3544 3491 3542 +f 3492 3544 3481 +f 3564 3495 3539 +f 3545 3564 3539 +f 3573 3574 3575 +f 3575 3576 3573 +f 3577 3489 3465 +f 3490 3492 3578 +f 3492 3489 3578 +f 3579 3578 3489 +f 3580 3581 3582 +f 3580 3583 3581 +f 3584 3583 3580 +f 3163 3585 3586 +f 3154 3580 3582 +f 3580 3154 3151 +f 3151 3584 3580 +f 3582 3581 3587 +f 3584 3588 3583 +f 3584 3151 3149 +f 3149 3479 3584 +f 3479 3149 3147 +f 3535 3161 3158 +f 3158 3586 3535 +f 3586 3158 3163 +f 3548 3589 3590 +f 3590 3549 3548 +f 3549 3590 3550 +f 3591 3482 3550 +f 3591 3550 3590 +f 3592 3591 3590 +f 3592 3590 3589 +f 3479 3478 3588 +f 3479 3588 3584 +f 3583 3593 3594 +f 3593 3583 3588 +f 3588 3485 3593 +f 3485 3588 3478 +f 3595 3594 3593 +f 3594 3595 3596 +f 3486 3483 3488 +f 3488 3595 3486 +f 3595 3488 3597 +f 3591 3592 3597 +f 3591 3597 3488 +f 3482 3591 3488 +f 3486 3593 3485 +f 3593 3486 3595 +f 3598 3599 3600 +f 3601 3600 3599 +f 3599 3598 3602 +f 3587 3602 3598 +f 3602 3587 3581 +f 3581 3594 3602 +f 3594 3581 3583 +f 3603 3599 3596 +f 3596 3602 3594 +f 3602 3596 3599 +f 3597 3596 3595 +f 3596 3597 3603 +f 3599 3603 3601 +f 3604 3601 3603 +f 3592 3603 3597 +f 3586 3605 3535 +f 3546 3536 3537 +f 3537 3606 3546 +f 3548 3547 3546 +f 3535 3537 3534 +f 3535 3605 3537 +f 3607 3546 3606 +f 3546 3607 3548 +f 3589 3548 3607 +f 3606 3537 3605 +f 3592 3604 3603 +f 3604 3589 3608 +f 3609 3604 3608 +f 3600 3601 3610 +f 3609 3611 3610 +f 3604 3592 3589 +f 3609 3610 3601 +f 3604 3609 3601 +f 3585 3163 3171 +f 3171 3612 3585 +f 3585 3613 3614 +f 3612 3613 3585 +f 3614 3615 3616 +f 3615 3614 3613 +f 3613 3617 3615 +f 3608 3607 3618 +f 3586 3614 3605 +f 3585 3614 3586 +f 3607 3608 3589 +f 3618 3606 3616 +f 3606 3618 3607 +f 3605 3616 3606 +f 3616 3605 3614 +f 3611 3609 3619 +f 3611 3619 3620 +f 3618 3619 3608 +f 3609 3608 3619 +f 3620 3621 3622 +f 3621 3620 3619 +f 3619 3618 3621 +f 3615 3622 3621 +f 3621 3616 3615 +f 3616 3621 3618 +f 3532 3623 3531 +f 3623 3532 3624 +f 3625 3624 3532 +f 3533 3625 3532 +f 3531 3526 3523 +f 3526 3531 3623 +f 3626 3627 3624 +f 3625 3626 3624 +f 3623 3628 3526 +f 3628 3623 3629 +f 3624 3629 3623 +f 3629 3624 3627 +f 3526 3630 3525 +f 3524 3189 3187 +f 3189 3524 3631 +f 3631 3630 3632 +f 3631 3525 3630 +f 3524 3525 3631 +f 3628 3633 3630 +f 3630 3526 3628 +f 3629 3634 3628 +f 3627 3635 3629 +f 3634 3629 3635 +f 3626 3636 3627 +f 3635 3627 3637 +f 3636 3637 3627 +f 3634 3638 3633 +f 3633 3628 3634 +f 3638 3634 3639 +f 3640 3633 3638 +f 3632 3633 3640 +f 3632 3630 3633 +f 3641 3642 3643 +f 3642 3198 3195 +f 3644 3645 3646 +f 3643 3644 3641 +f 3195 3643 3642 +f 3646 3641 3644 +f 3192 3631 3632 +f 3631 3192 3189 +f 3193 3632 3640 +f 3632 3193 3192 +f 3639 3635 3647 +f 3637 3647 3635 +f 3647 3637 3648 +f 3636 3649 3637 +f 3635 3639 3634 +f 3649 3648 3637 +f 3648 3650 3647 +f 3650 3648 3651 +f 3652 3651 3648 +f 3649 3652 3648 +f 3647 3653 3639 +f 3654 3638 3655 +f 3640 3638 3654 +f 3196 3640 3654 +f 3640 3196 3193 +f 3655 3639 3653 +f 3639 3655 3638 +f 3653 3647 3650 +f 3643 3195 3196 +f 3645 3644 3656 +f 3644 3643 3657 +f 3644 3657 3656 +f 3658 3657 3196 +f 3658 3196 3654 +f 3645 3656 3658 +f 3658 3656 3657 +f 3643 3196 3657 +f 3659 3557 3556 +f 3660 3555 3491 +f 3660 3661 3555 +f 3661 3556 3555 +f 3661 3659 3556 +f 3557 3659 3662 +f 3660 3663 3664 +f 3665 3664 3663 +f 3663 3666 3665 +f 3664 3667 3660 +f 3666 3646 3645 +f 3668 3660 3667 +f 3645 3665 3666 +f 3650 3668 3653 +f 3669 3654 3655 +f 3653 3669 3655 +f 3665 3645 3658 +f 3654 3670 3658 +f 3661 3651 3659 +f 3659 3651 3652 +f 3652 3662 3659 +f 3668 3650 3661 +f 3660 3668 3661 +f 3651 3661 3650 +f 3665 3658 3670 +f 3669 3653 3668 +f 3670 3654 3671 +f 3654 3669 3671 +f 3672 3673 3674 +f 3670 3671 3673 +f 3674 3675 3672 +f 3669 3673 3671 +f 3669 3675 3674 +f 3674 3673 3669 +f 3673 3672 3670 +f 3669 3667 3675 +f 3667 3672 3675 +f 3667 3664 3672 +f 3672 3664 3665 +f 3667 3669 3668 +f 3672 3665 3670 +f 3491 3490 3660 +f 3676 3660 3490 +f 3575 3660 3676 +f 3575 3677 3660 +f 3678 3679 3642 +f 3642 3641 3678 +f 3679 3199 3198 +f 3198 3642 3679 +f 3680 3678 3641 +f 3681 3680 3646 +f 3641 3646 3680 +f 3677 3682 3663 +f 3663 3660 3677 +f 3646 3666 3681 +f 3682 3681 3666 +f 3666 3663 3682 +f 3683 3684 3685 +f 3684 3683 3467 +f 3465 3274 3273 +f 3686 3467 3683 +f 3467 3686 3465 +f 3687 3456 3458 +f 3458 3688 3687 +f 3688 3458 3457 +f 3457 3689 3688 +f 3165 3166 3689 +f 3687 3470 3456 +f 3689 3457 3165 +f 3466 3469 3684 +f 3469 3473 3690 +f 3691 3473 3474 +f 3692 3474 3470 +f 3691 3690 3473 +f 3470 3687 3693 +f 3474 3692 3691 +f 3684 3467 3466 +f 3470 3693 3692 +f 3690 3684 3469 +f 3467 3465 3464 +f 3156 3582 3694 +f 3582 3156 3154 +f 3582 3587 3694 +f 3612 3695 3613 +f 3696 3695 3612 +f 3694 3164 3156 +f 3612 3171 3203 +f 3203 3696 3612 +f 3696 3203 3201 +f 3617 3613 3695 +f 3697 3577 3698 +f 3697 3620 3579 +f 3577 3697 3579 +f 3622 3615 3617 +f 3622 3579 3620 +f 3697 3611 3620 +f 3697 3698 3699 +f 3611 3697 3699 +f 3685 3700 3683 +f 3700 3699 3698 +f 3698 3683 3700 +f 3683 3698 3686 +f 3701 3702 3685 +f 3694 3703 3704 +f 3694 3587 3703 +f 3705 3706 3703 +f 3703 3598 3705 +f 3598 3703 3587 +f 3704 3703 3706 +f 3699 3700 3707 +f 3600 3705 3598 +f 3705 3600 3707 +f 3611 3699 3610 +f 3610 3707 3600 +f 3707 3610 3699 +f 3706 3705 3702 +f 3702 3701 3706 +f 3700 3685 3702 +f 3707 3702 3705 +f 3702 3707 3700 +f 3164 3694 3704 +f 3201 3708 3696 +f 3704 3706 3709 +f 3577 3686 3698 +f 3166 3704 3709 +f 3704 3166 3164 +f 3687 3689 3166 +f 3687 3166 3709 +f 3687 3688 3689 +f 3709 3706 3701 +f 3710 3695 3711 +f 3696 3711 3695 +f 3708 3711 3696 +f 3579 3622 3712 +f 3712 3617 3710 +f 3617 3712 3622 +f 3695 3710 3617 +f 3202 3679 3713 +f 3714 3713 3679 +f 3715 3713 3714 +f 3715 3202 3713 +f 3715 3714 3678 +f 3708 3202 3715 +f 3708 3201 3202 +f 3681 3715 3680 +f 3715 3678 3680 +f 3714 3679 3678 +f 3202 3199 3679 +f 3715 3576 3708 +f 3576 3715 3716 +f 3693 3709 3717 +f 3690 3685 3684 +f 3685 3690 3701 +f 3690 3709 3701 +f 3709 3690 3717 +f 3709 3693 3687 +f 3710 3711 3575 +f 3676 3710 3575 +f 3681 3716 3715 +f 3677 3718 3719 +f 3682 3716 3681 +f 3677 3575 3718 +f 3575 3574 3718 +f 3677 3719 3682 +f 3573 3719 3718 +f 3682 3719 3716 +f 3489 3577 3579 +f 3710 3490 3712 +f 3465 3686 3577 +f 3490 3578 3712 +f 3576 3711 3708 +f 3711 3576 3575 +f 3712 3578 3579 +f 3676 3490 3710 +f 3720 3692 3693 +f 3721 3691 3692 +f 3691 3721 3690 +f 3693 3717 3720 +f 3720 3717 3690 +f 3690 3721 3720 +f 3692 3720 3721 +f 3719 3573 3576 +f 3718 3574 3573 +f 3576 3716 3719 +f 3722 3723 3724 +f 3724 3725 3722 +f 3725 3724 3726 +f 3726 3727 3725 +f 3727 3726 3728 +f 3728 3729 3727 +f 3729 3728 3730 +f 3730 3731 3729 +f 3723 3732 3724 +f 3732 3723 3733 +f 3724 3734 3726 +f 3734 3724 3732 +f 3726 3735 3728 +f 3735 3726 3734 +f 3728 3736 3730 +f 3736 3728 3735 +f 3737 3738 3739 +f 3738 3737 3740 +f 3739 3741 3742 +f 3741 3739 3738 +f 3734 3739 3735 +f 3739 3734 3737 +f 3735 3742 3736 +f 3742 3735 3739 +f 3733 3743 3732 +f 3743 3733 3744 +f 3732 3737 3734 +f 3737 3732 3743 +f 3744 3745 3743 +f 3745 3744 3746 +f 3743 3740 3737 +f 3740 3743 3745 +f 3747 3748 3749 +f 3749 3750 3747 +f 3750 3749 3751 +f 3751 3752 3750 +f 3752 3751 3753 +f 3753 3754 3752 +f 3754 3753 3723 +f 3723 3722 3754 +f 3748 3755 3749 +f 3755 3748 3756 +f 3749 3757 3751 +f 3757 3749 3755 +f 3751 3758 3753 +f 3758 3751 3757 +f 3753 3733 3723 +f 3733 3753 3758 +f 3757 3759 3758 +f 3759 3757 3760 +f 3758 3744 3733 +f 3744 3758 3759 +f 3760 3761 3759 +f 3761 3760 3762 +f 3759 3746 3744 +f 3746 3759 3761 +f 3763 3764 3765 +f 3764 3763 3766 +f 3765 3762 3760 +f 3762 3765 3764 +f 3756 3765 3755 +f 3765 3756 3763 +f 3755 3760 3757 +f 3760 3755 3765 +f 3767 3768 3769 +f 3768 3767 3770 +f 3769 3771 3772 +f 3771 3769 3768 +f 3740 3769 3738 +f 3769 3740 3767 +f 3738 3772 3741 +f 3772 3738 3769 +f 3746 3773 3745 +f 3773 3746 3774 +f 3745 3767 3740 +f 3767 3745 3773 +f 3774 3775 3773 +f 3775 3774 3776 +f 3773 3770 3767 +f 3770 3773 3775 +f 3777 3770 3778 +f 3777 3768 3770 +f 3779 3768 3777 +f 3779 3771 3768 +f 3780 3777 3778 +f 3777 3780 3781 +f 3781 3779 3777 +f 3779 3781 3782 +f 3783 3784 3785 +f 3784 3783 3786 +f 3786 3778 3784 +f 3778 3786 3780 +f 3784 3776 3785 +f 3784 3775 3776 +f 3770 3784 3778 +f 3770 3775 3784 +f 3787 3788 3789 +f 3788 3787 3790 +f 3789 3776 3774 +f 3776 3789 3788 +f 3762 3789 3761 +f 3789 3762 3787 +f 3761 3774 3746 +f 3774 3761 3789 +f 3766 3791 3764 +f 3791 3766 3792 +f 3764 3787 3762 +f 3787 3764 3791 +f 3792 3793 3791 +f 3793 3792 3794 +f 3791 3790 3787 +f 3790 3791 3793 +f 3795 3796 3797 +f 3796 3795 3798 +f 3798 3785 3796 +f 3785 3798 3783 +f 3788 3797 3796 +f 3788 3790 3797 +f 3785 3788 3796 +f 3785 3776 3788 +f 3794 3799 3793 +f 3794 3800 3799 +f 3793 3797 3790 +f 3793 3799 3797 +f 3801 3799 3800 +f 3799 3801 3802 +f 3802 3797 3799 +f 3797 3802 3795 +f 3803 3804 3805 +f 3804 3803 3806 +f 3807 3805 3808 +f 3805 3807 3803 +f 3806 3730 3804 +f 3730 3806 3731 +f 3809 3810 3811 +f 3812 3813 3814 +f 3812 3815 3813 +f 3811 3816 3813 +f 3727 3812 3814 +f 3812 3727 3729 +f 3807 3806 3803 +f 3807 3731 3806 +f 3817 3813 3815 +f 3818 3815 3812 +f 3818 3731 3807 +f 3729 3818 3812 +f 3818 3729 3731 +f 3819 3820 3821 +f 3813 3817 3811 +f 3822 3819 3821 +f 3811 3823 3809 +f 3809 3821 3820 +f 3821 3809 3823 +f 3823 3811 3817 +f 3824 3810 3825 +f 3810 3824 3816 +f 3826 3816 3824 +f 3814 3816 3826 +f 3814 3813 3816 +f 3725 3814 3826 +f 3814 3725 3727 +f 3826 3824 3827 +f 3828 3825 3829 +f 3825 3828 3824 +f 3722 3826 3827 +f 3826 3722 3725 +f 3830 3829 3825 +f 3827 3824 3828 +f 3831 3832 3833 +f 3825 3834 3830 +f 3829 3830 3835 +f 3836 3837 3832 +f 3831 3836 3832 +f 3830 3833 3832 +f 3832 3835 3830 +f 3835 3832 3837 +f 3838 3831 3833 +f 3838 3833 3820 +f 3819 3838 3820 +f 3820 3834 3809 +f 3834 3820 3833 +f 3834 3825 3810 +f 3816 3811 3810 +f 3810 3809 3834 +f 3833 3830 3834 +f 3839 3840 3841 +f 3842 3840 3839 +f 3840 3842 3843 +f 3844 3815 3818 +f 3845 3822 3821 +f 3823 3846 3821 +f 3817 3815 3847 +f 3807 3844 3818 +f 3848 3846 3823 +f 3815 3844 3847 +f 3821 3846 3845 +f 3849 3817 3847 +f 3844 3807 3850 +f 3849 3848 3817 +f 3817 3848 3823 +f 3807 3808 3851 +f 3851 3850 3807 +f 3852 3843 3847 +f 3853 3852 3854 +f 3851 3854 3850 +f 3854 3851 3853 +f 3852 3853 3843 +f 3847 3843 3849 +f 3847 3855 3852 +f 3852 3855 3856 +f 3844 3850 3854 +f 3854 3856 3844 +f 3842 3845 3846 +f 3856 3855 3847 +f 3847 3844 3856 +f 3856 3854 3852 +f 3846 3843 3842 +f 3849 3843 3848 +f 3848 3843 3846 +f 3730 3857 3804 +f 3857 3730 3736 +f 3804 3858 3805 +f 3858 3804 3857 +f 3805 3859 3808 +f 3859 3805 3858 +f 3736 3860 3857 +f 3857 3861 3858 +f 3858 3862 3859 +f 3861 3857 3860 +f 3863 3859 3862 +f 3860 3736 3742 +f 3862 3858 3861 +f 3859 3863 3864 +f 3808 3864 3851 +f 3864 3808 3859 +f 3865 3853 3866 +f 3865 3866 3867 +f 3843 3853 3865 +f 3843 3865 3868 +f 3865 3867 3869 +f 3867 3870 3871 +f 3851 3866 3853 +f 3866 3851 3864 +f 3866 3870 3867 +f 3870 3872 3873 +f 3872 3874 3875 +f 3874 3876 3877 +f 3872 3866 3874 +f 3870 3866 3872 +f 3874 3866 3876 +f 3864 3878 3866 +f 3876 3879 3880 +f 3879 3881 3882 +f 3881 3878 3883 +f 3879 3878 3881 +f 3876 3878 3879 +f 3876 3866 3878 +f 3881 3883 3884 +f 3878 3864 3863 +f 3885 3862 3886 +f 3742 3887 3860 +f 3887 3742 3741 +f 3860 3888 3861 +f 3888 3860 3887 +f 3861 3886 3862 +f 3886 3861 3888 +f 3883 3878 3889 +f 3862 3885 3863 +f 3863 3890 3878 +f 3891 3878 3890 +f 3892 3878 3891 +f 3889 3878 3892 +f 3883 3889 3893 +f 3889 3892 3894 +f 3890 3863 3885 +f 3892 3891 3895 +f 3872 3896 3897 +f 3876 3898 3899 +f 3875 3900 3896 +f 3877 3899 3901 +f 3880 3902 3898 +f 3874 3901 3900 +f 3903 3865 3869 +f 3904 3867 3871 +f 3905 3871 3870 +f 3906 3869 3867 +f 3907 3868 3865 +f 3840 3843 3868 +f 3843 3872 3840 +f 3868 3907 3840 +f 3869 3906 3903 +f 3871 3905 3904 +f 3873 3897 3908 +f 3870 3908 3905 +f 3867 3904 3906 +f 3865 3903 3907 +f 3896 3840 3872 +f 3908 3870 3873 +f 3896 3872 3875 +f 3901 3874 3877 +f 3899 3877 3876 +f 3900 3875 3874 +f 3872 3883 3896 +f 3897 3873 3872 +f 3893 3909 3910 +f 3883 3910 3911 +f 3881 3912 3913 +f 3884 3911 3912 +f 3882 3913 3914 +f 3910 3896 3883 +f 3914 3902 3880 +f 3911 3884 3883 +f 3913 3882 3881 +f 3880 3879 3914 +f 3898 3876 3880 +f 3914 3879 3882 +f 3912 3881 3884 +f 3910 3883 3893 +f 3915 3892 3895 +f 3916 3891 3917 +f 3918 3895 3891 +f 3919 3894 3892 +f 3883 3920 3910 +f 3909 3893 3889 +f 3921 3889 3894 +f 3891 3916 3918 +f 3895 3918 3915 +f 3922 3910 3920 +f 3917 3923 3916 +f 3894 3919 3921 +f 3892 3915 3919 +f 3889 3921 3909 +f 3835 3924 3829 +f 3925 3828 3926 +f 3827 3828 3925 +f 3926 3829 3924 +f 3829 3926 3828 +f 3754 3827 3925 +f 3827 3754 3722 +f 3924 3927 3926 +f 3928 3926 3927 +f 3925 3926 3928 +f 3752 3925 3928 +f 3925 3752 3754 +f 3929 3930 3927 +f 3927 3924 3929 +f 3924 3835 3931 +f 3932 3933 3934 +f 3932 3934 3837 +f 3836 3932 3837 +f 3931 3929 3924 +f 3837 3931 3835 +f 3931 3837 3934 +f 3934 3935 3931 +f 3933 3936 3937 +f 3929 3931 3935 +f 3935 3934 3937 +f 3933 3937 3934 +f 3935 3938 3929 +f 3938 3935 3939 +f 3936 3940 3937 +f 3937 3939 3935 +f 3939 3937 3940 +f 3941 3942 3943 +f 3942 3941 3944 +f 3945 3943 3946 +f 3943 3945 3941 +f 3944 3747 3942 +f 3747 3944 3748 +f 3930 3929 3938 +f 3947 3927 3930 +f 3750 3928 3947 +f 3928 3750 3752 +f 3928 3927 3947 +f 3947 3747 3750 +f 3948 3938 3949 +f 3946 3942 3747 +f 3950 3930 3948 +f 3947 3930 3950 +f 3946 3943 3942 +f 3946 3747 3950 +f 3747 3947 3950 +f 3939 3949 3938 +f 3949 3939 3951 +f 3938 3948 3930 +f 3952 3953 3940 +f 3936 3952 3940 +f 3940 3951 3939 +f 3951 3940 3953 +f 3954 3955 3956 +f 3845 3842 3957 +f 3954 3958 3959 +f 3956 3958 3954 +f 3960 3958 3956 +f 3956 3955 3960 +f 3961 3959 3958 +f 3958 3960 3961 +f 3952 3957 3842 +f 3961 3950 3959 +f 3950 3954 3959 +f 3954 3949 3841 +f 3839 3953 3842 +f 3953 3839 3951 +f 3954 3950 3948 +f 3842 3953 3952 +f 3950 3961 3946 +f 3949 3954 3948 +f 3961 3962 3945 +f 3945 3946 3961 +f 3951 3841 3949 +f 3841 3951 3839 +f 3841 3840 3954 +f 3840 3960 3955 +f 3963 3961 3960 +f 3961 3963 3962 +f 3954 3840 3955 +f 3960 3840 3963 +f 3964 3962 3965 +f 3965 3966 3964 +f 3962 3964 3945 +f 3964 3967 3968 +f 3969 3941 3968 +f 3945 3968 3941 +f 3944 3756 3748 +f 3968 3945 3964 +f 3756 3944 3969 +f 3969 3763 3756 +f 3968 3970 3969 +f 3941 3969 3944 +f 3970 3766 3763 +f 3763 3969 3970 +f 3966 3971 3967 +f 3972 3967 3971 +f 3766 3970 3972 +f 3970 3968 3967 +f 3967 3964 3966 +f 3967 3972 3970 +f 3903 3963 3840 +f 3904 3963 3903 +f 3903 3840 3907 +f 3904 3903 3906 +f 3908 3904 3905 +f 3963 3965 3962 +f 3965 3963 3973 +f 3904 3973 3963 +f 3896 3973 3908 +f 3898 3901 3899 +f 3898 3973 3901 +f 3901 3896 3900 +f 3973 3974 3965 +f 3896 3908 3897 +f 3901 3973 3896 +f 3908 3973 3904 +f 3974 3973 3975 +f 3914 3898 3902 +f 3975 3898 3914 +f 3975 3973 3898 +f 3912 3914 3913 +f 3966 3965 3974 +f 3974 3976 3966 +f 3971 3966 3976 +f 3921 3910 3909 +f 3912 3910 3975 +f 3975 3914 3912 +f 3975 3910 3921 +f 3910 3912 3911 +f 3976 3974 3977 +f 3978 3915 3916 +f 3975 3977 3974 +f 3977 3975 3978 +f 3915 3921 3919 +f 3915 3975 3921 +f 3916 3915 3918 +f 3978 3975 3915 +f 3979 3980 3981 +f 3980 3979 3982 +f 3772 3983 3984 +f 3983 3772 3771 +f 3984 3982 3979 +f 3982 3984 3983 +f 3741 3984 3887 +f 3984 3741 3772 +f 3887 3979 3888 +f 3979 3887 3984 +f 3888 3981 3886 +f 3981 3888 3979 +f 3890 3985 3891 +f 3891 3985 3917 +f 3886 3986 3885 +f 3986 3886 3981 +f 3987 3988 3989 +f 3990 3989 3988 +f 3989 3990 3991 +f 3991 3990 3992 +f 3990 3988 3993 +f 3988 3987 3994 +f 3991 3890 3989 +f 3989 3885 3986 +f 3985 3890 3920 +f 3920 3890 3995 +f 3985 3920 3996 +f 3920 3995 3997 +f 3995 3890 3998 +f 3998 3890 3991 +f 3995 3998 3999 +f 3998 3991 4000 +f 3885 3989 3890 +f 3981 4001 3986 +f 4001 3981 3980 +f 3980 4002 4003 +f 4004 3980 4003 +f 3986 4005 3989 +f 3989 4006 3987 +f 4005 4006 3989 +f 4007 4006 4005 +f 4006 4008 3987 +f 4007 4009 4006 +f 4010 4011 4007 +f 4005 3986 4001 +f 4005 4010 4007 +f 4012 4013 4010 +f 4012 4010 4005 +f 4014 4012 4015 +f 4015 4012 4005 +f 4016 4001 4004 +f 4016 4005 4001 +f 4015 4005 4016 +f 4017 3999 3998 +f 4018 3997 3995 +f 4019 3985 3996 +f 4020 3996 3920 +f 3923 3917 3985 +f 3922 3920 3997 +f 4021 3995 3999 +f 3997 4018 3922 +f 3999 4017 4021 +f 3920 3922 4020 +f 3998 4022 4017 +f 3995 4021 4018 +f 3996 4020 4019 +f 4023 3992 3990 +f 4024 4000 3991 +f 4022 3998 4000 +f 4025 3991 3992 +f 4026 3990 3993 +f 4027 3993 3988 +f 3920 3988 3922 +f 3992 4023 4025 +f 4000 4024 4022 +f 3988 4028 4027 +f 3993 4027 4026 +f 3990 4026 4023 +f 3991 4025 4024 +f 4028 3922 3988 +f 4008 4029 4030 +f 4006 4031 4029 +f 3987 4030 4032 +f 4007 4033 4034 +f 3994 4032 4028 +f 4009 4034 4031 +f 4034 4009 4007 +f 4031 4006 4009 +f 4028 3988 3994 +f 4030 3987 4008 +f 4029 4008 4006 +f 4032 3994 3987 +f 3988 4012 4028 +f 4012 4014 4035 +f 4036 4010 4013 +f 4037 4013 4012 +f 4033 4007 4011 +f 4012 4015 4038 +f 4039 4011 4010 +f 4012 4040 4037 +f 4011 4039 4033 +f 4013 4037 4036 +f 4010 4036 4039 +f 4035 4040 4012 +f 4038 4040 4012 +f 4040 4028 4012 +f 3980 3982 4002 +f 4041 3771 3779 +f 4041 3983 3771 +f 4002 3983 4041 +f 4002 3982 3983 +f 4042 4002 4041 +f 4041 4043 4042 +f 4044 4003 4002 +f 4002 4042 4044 +f 4043 4041 3779 +f 3779 3782 4043 +f 4045 4046 4047 +f 4048 4049 4045 +f 4049 4048 4050 +f 4051 4047 4046 +f 4047 4051 4052 +f 4053 4052 4051 +f 4054 4053 4051 +f 4046 4045 4049 +f 4044 4042 4043 +f 4055 4050 4048 +f 4044 3782 4055 +f 3782 4056 4055 +f 4056 3782 3781 +f 4044 4043 3782 +f 4050 4057 4049 +f 4056 4050 4055 +f 4056 4058 4050 +f 4059 4058 4056 +f 3781 4059 4056 +f 4059 3781 3780 +f 4059 4060 4058 +f 4061 4060 4059 +f 4057 4050 4058 +f 4058 4062 4057 +f 4062 4058 4060 +f 3780 4061 4059 +f 4061 3780 3786 +f 4063 4062 4064 +f 4065 4066 4061 +f 4061 4066 4060 +f 3786 4065 4061 +f 4065 3786 3783 +f 4060 4064 4062 +f 4064 4060 4066 +f 4067 4068 4069 +f 4069 4070 4067 +f 4068 4067 4063 +f 4067 4057 4062 +f 4071 4072 4069 +f 4071 4069 4068 +f 4073 4071 4068 +f 4062 4063 4067 +f 4070 4049 4057 +f 4074 4046 4070 +f 4046 4074 4051 +f 4049 4070 4046 +f 4054 4051 4074 +f 4057 4067 4070 +f 4070 4069 4074 +f 4072 4054 4074 +f 4072 4074 4069 +f 4075 4076 4035 +f 4077 4075 4035 +f 4035 4014 4077 +f 4078 4077 4014 +f 4078 4079 4077 +f 4080 4078 4014 +f 4081 4080 4014 +f 4004 4001 3980 +f 4082 4081 4014 +f 4083 4082 4015 +f 4014 4015 4082 +f 4004 4084 4085 +f 4085 4016 4004 +f 4016 4085 4083 +f 4083 4015 4016 +f 4044 4004 4003 +f 4055 4084 4044 +f 4052 4080 4047 +f 4078 4052 4053 +f 4045 4082 4048 +f 4082 4055 4048 +f 4047 4081 4045 +f 4053 4079 4078 +f 4004 4044 4084 +f 4084 4055 4086 +f 4080 4052 4078 +f 4055 4082 4086 +f 4082 4045 4081 +f 4081 4047 4080 +f 4087 4086 4082 +f 4085 4087 4088 +f 4087 4085 4084 +f 4083 4088 4082 +f 4082 4088 4087 +f 4088 4083 4085 +f 4084 4086 4087 +f 4019 3978 3916 +f 3985 4019 3923 +f 4089 3977 4090 +f 4019 3916 3923 +f 3972 3792 3766 +f 3792 3972 4091 +f 3971 4091 3972 +f 4091 3971 4092 +f 3976 4092 3971 +f 4092 3976 4089 +f 3977 4089 3976 +f 4093 4089 4094 +f 4091 3794 3792 +f 3794 4091 4095 +f 4092 4095 4091 +f 4095 4092 4093 +f 4089 4093 4092 +f 4028 4096 4026 +f 4030 4096 4028 +f 4026 4025 4023 +f 4028 4026 4027 +f 4030 4028 4032 +f 4090 3978 4096 +f 4096 4022 4025 +f 4096 4025 4026 +f 4021 3978 3922 +f 3922 4019 4020 +f 4021 3922 4018 +f 3922 3978 4019 +f 3978 4090 3977 +f 4022 4021 4017 +f 4025 4022 4024 +f 4022 3978 4021 +f 4096 3978 4022 +f 4097 4098 4094 +f 4090 4094 4089 +f 4094 4090 4099 +f 4096 4099 4090 +f 4031 4096 4030 +f 4100 4031 4033 +f 4100 4096 4031 +f 4031 4030 4029 +f 4033 4031 4034 +f 4036 4033 4039 +f 4099 4096 4100 +f 4099 4100 4101 +f 4099 4101 4097 +f 4037 4040 4036 +f 4100 4033 4036 +f 4100 4036 4040 +f 4040 4101 4100 +f 4038 4040 4035 +f 4040 4038 4101 +f 4065 4102 4066 +f 4103 4102 4065 +f 4104 4064 4105 +f 3783 4103 4065 +f 4103 3783 3798 +f 4066 4105 4064 +f 4105 4066 4102 +f 4106 4107 4103 +f 3798 4106 4103 +f 4106 3798 3795 +f 4106 4108 4107 +f 4103 4107 4102 +f 4102 4109 4105 +f 4109 4102 4107 +f 4104 4110 4111 +f 4111 4063 4104 +f 4063 4111 4068 +f 4064 4104 4063 +f 4105 4112 4104 +f 4073 4068 4111 +f 4113 4073 4111 +f 4113 4111 4110 +f 4112 4114 4110 +f 4114 4112 4115 +f 4107 4116 4109 +f 4110 4104 4112 +f 4109 4115 4112 +f 4112 4105 4109 +f 4117 4113 4110 +f 4117 4110 4114 +f 4118 4117 4114 +f 4098 4119 4093 +f 4095 4119 4120 +f 4095 4093 4119 +f 4098 4093 4094 +f 4120 3794 4095 +f 4120 3800 3794 +f 4098 4121 4122 +f 4122 4119 4098 +f 4120 4123 3801 +f 3801 3800 4120 +f 4119 4122 4123 +f 4123 4120 4119 +f 4108 4124 4116 +f 4124 4108 4125 +f 4116 4126 4115 +f 4115 4127 4114 +f 4127 4115 4126 +f 4118 4114 4127 +f 4128 4118 4127 +f 4126 4116 4124 +f 3795 4129 4106 +f 4129 3795 3802 +f 3802 4130 4129 +f 4116 4107 4108 +f 4129 4108 4106 +f 4129 4125 4108 +f 4115 4109 4116 +f 4121 4123 4122 +f 4130 4125 4129 +f 4130 3802 3801 +f 4121 3801 4123 +f 4130 3801 4121 +f 4097 4094 4099 +f 4038 4035 4131 +f 4038 4131 4132 +f 4101 4132 4133 +f 4076 4134 4035 +f 4132 4101 4038 +f 4133 4097 4101 +f 4134 4131 4035 +f 4135 4132 4131 +f 4134 4135 4136 +f 4131 4136 4135 +f 4137 4133 4132 +f 4134 4137 4135 +f 4132 4135 4137 +f 4138 4077 4079 +f 4134 4136 4131 +f 4133 4098 4097 +f 4075 4077 4126 +f 4125 4137 4134 +f 4137 4121 4133 +f 4076 4124 4134 +f 4076 4075 4124 +f 4127 4077 4138 +f 4098 4133 4121 +f 4138 4128 4127 +f 4137 4125 4130 +f 4121 4137 4130 +f 4124 4125 4134 +f 4124 4075 4126 +f 4126 4077 4127 +f 4139 4140 4141 +f 4140 4142 4143 +f 4141 4144 4139 +f 4143 4145 4141 +f 4143 4141 4140 +f 4146 4147 4148 +f 4147 4149 4148 +f 4147 4144 4141 +f 4142 4146 4143 +f 4142 4144 4146 +f 4144 4147 4146 +f 4150 4141 4145 +f 4148 4151 4143 +f 4145 4143 4151 +f 4152 4149 4141 +f 4141 4150 4152 +f 4148 4143 4146 +f 4141 4149 4147 +f 4148 4149 4151 +f 4149 4152 4151 +f 4151 4152 4145 +f 4152 4150 4145 +f 4153 4154 4155 +f 4154 4156 4155 +f 4155 4156 4142 +f 4156 4144 4142 +f 4155 4142 4157 +f 4144 4156 4158 +f 4159 4160 4153 +f 4160 4154 4153 +f 4155 4157 4153 +f 4161 4162 4159 +f 4158 4156 4154 +f 4162 4160 4159 +f 4159 4157 4161 +f 4159 4153 4157 +f 4161 4157 4162 +f 4158 4160 4162 +f 4154 4160 4158 +f 4158 4162 4157 +f 4139 4157 4140 +f 4139 4158 4157 +f 4139 4144 4158 +f 4157 4142 4140 +f 4163 4164 4165 +f 4165 4166 4163 +f 4167 4166 4165 +f 4166 4168 4169 +f 4170 4171 4172 +f 4171 4173 4167 +f 4167 4172 4171 +f 4169 4163 4166 +f 4173 4168 4166 +f 4166 4167 4173 +f 4174 4172 4175 +f 4175 4176 4174 +f 4172 4174 4170 +f 4172 4167 4177 +f 4177 4175 4172 +f 4165 4177 4167 +f 4178 4175 4177 +f 4179 4176 4175 +f 4175 4178 4179 +f 4165 4180 4181 +f 4181 4177 4165 +f 4177 4181 4178 +f 4182 4183 4163 +f 4163 4169 4182 +f 4183 4184 4185 +f 4185 4186 4183 +f 4182 4187 4184 +f 4184 4183 4182 +f 4183 4186 4164 +f 4164 4163 4183 +f 4164 4186 4188 +f 4188 4189 4164 +f 4190 4188 4186 +f 4186 4185 4190 +f 4165 4164 4189 +f 4189 4180 4165 +f 4179 4178 4191 +f 4191 4192 4179 +f 4178 4181 4193 +f 4193 4191 4178 +f 4181 4180 4194 +f 4194 4193 4181 +f 4194 4180 4189 +f 4195 4189 4188 +f 4196 4197 4198 +f 4188 4190 4197 +f 4197 4196 4188 +f 4199 4195 4196 +f 4189 4195 4194 +f 4188 4196 4195 +f 4196 4200 4199 +f 4200 4198 4201 +f 4199 4202 4203 +f 4198 4200 4196 +f 4195 4199 4204 +f 4200 4205 4202 +f 4201 4205 4200 +f 4202 4199 4200 +f 4206 4207 4204 +f 4207 4206 4208 +f 4209 4210 4211 +f 4208 4211 4207 +f 4203 4204 4199 +f 4211 4208 4209 +f 4204 4203 4206 +f 4204 4207 4193 +f 4207 4211 4191 +f 4211 4210 4192 +f 4192 4191 4211 +f 4191 4193 4207 +f 4204 4194 4195 +f 4193 4194 4204 +f 4182 4212 4213 +f 4212 4214 4215 +f 4216 4213 4212 +f 4212 4182 4169 +f 4169 4214 4212 +f 4214 4169 4168 +f 4213 4187 4182 +f 4168 4217 4214 +f 4218 4219 4171 +f 4171 4170 4218 +f 4219 4220 4173 +f 4173 4171 4219 +f 4220 4217 4168 +f 4168 4173 4220 +f 4214 4217 4221 +f 4221 4217 4220 +f 4222 4220 4219 +f 4223 4219 4218 +f 4224 4225 4226 +f 4221 4215 4214 +f 4226 4216 4224 +f 4227 4225 4224 +f 4224 4215 4227 +f 4227 4215 4221 +f 4215 4224 4212 +f 4212 4224 4216 +f 4219 4223 4222 +f 4218 4228 4223 +f 4229 4221 4222 +f 4220 4222 4221 +f 4222 4230 4229 +f 4231 4223 4228 +f 4221 4229 4227 +f 4228 4232 4231 +f 4230 4222 4223 +f 4223 4231 4230 +f 4233 4234 4231 +f 4231 4232 4233 +f 4235 4236 4229 +f 4229 4230 4235 +f 4237 4227 4229 +f 4229 4236 4237 +f 4234 4235 4230 +f 4230 4231 4234 +f 4227 4237 4238 +f 4225 4238 4239 +f 4240 4238 4237 +f 4241 4239 4238 +f 4239 4226 4225 +f 4238 4225 4227 +f 4240 4242 4243 +f 4243 4241 4240 +f 4242 4240 4244 +f 4245 4244 4246 +f 4244 4245 4242 +f 4237 4244 4240 +f 4238 4240 4241 +f 4247 4248 4249 +f 4250 4251 4248 +f 4252 4246 4253 +f 4253 4249 4252 +f 4249 4253 4247 +f 4246 4252 4245 +f 4248 4247 4250 +f 4247 4234 4233 +f 4253 4235 4234 +f 4244 4237 4236 +f 4246 4236 4235 +f 4235 4253 4246 +f 4233 4250 4247 +f 4236 4246 4244 +f 4234 4247 4253 +f 4254 4255 4256 +f 4256 4257 4254 +f 4258 4259 4260 +f 4261 4262 4263 +f 4254 4257 4264 +f 4261 4263 4265 +f 4266 4263 4267 +f 4254 4264 4261 +f 4263 4266 4265 +f 4266 4267 4268 +f 4267 4269 4268 +f 4254 4261 4265 +f 4270 4271 4257 +f 4270 4272 4271 +f 4270 4273 4272 +f 4270 4257 4256 +f 4256 4274 4270 +f 4275 4276 4277 +f 4273 4278 4279 +f 4279 4272 4273 +f 4278 4277 4276 +f 4276 4279 4278 +f 4280 4281 4282 +f 4268 4269 4280 +f 4283 4282 4281 +f 4281 4284 4283 +f 4268 4280 4282 +f 4285 4286 4283 +f 4287 4286 4285 +f 4285 4288 4287 +f 4289 4290 4288 +f 4285 4283 4284 +f 4285 4284 4291 +f 4288 4285 4289 +f 4285 4292 4293 +f 4285 4291 4292 +f 4294 4292 4295 +f 4294 4295 4296 +f 4296 4297 4298 +f 4299 4298 4297 +f 4285 4293 4289 +f 4294 4293 4292 +f 4298 4294 4296 +f 4277 4300 4275 +f 4300 4301 4275 +f 4300 4302 4301 +f 4300 4303 4302 +f 4304 4305 4306 +f 4305 4307 4303 +f 4307 4302 4303 +f 4305 4304 4307 +f 4308 4309 4310 +f 4304 4306 4308 +f 4308 4311 4309 +f 4308 4312 4311 +f 4304 4308 4313 +f 4308 4310 4313 +f 4314 4315 4316 +f 4314 4317 4315 +f 4308 4314 4312 +f 4308 4318 4314 +f 4314 4316 4312 +f 4319 4320 4321 +f 4322 4321 4320 +f 4322 4317 4321 +f 4322 4315 4317 +f 4323 4319 4321 +f 4324 4319 4325 +f 4319 4323 4325 +f 4324 4326 4319 +f 4325 4327 4324 +f 4325 4328 4327 +f 4325 4329 4328 +f 4330 4331 4332 +f 4331 4333 4332 +f 4334 4328 4329 +f 4334 4329 4331 +f 4330 4335 4331 +f 4335 4334 4331 +f 4335 4336 4334 +f 4337 4338 4339 +f 4335 4339 4338 +f 4335 4338 4336 +f 4339 4299 4337 +f 4340 4341 4335 +f 4335 4330 4340 +f 4297 4337 4299 +f 4335 4341 4339 +f 4342 4343 4344 +f 4344 4345 4342 +f 4344 4343 4346 +f 4346 4347 4344 +f 4344 4348 4345 +f 4348 4344 4347 +f 4347 4349 4348 +f 4342 4345 4185 +f 4349 4350 4351 +f 4351 4348 4349 +f 4348 4351 4352 +f 4352 4345 4348 +f 4350 4353 4351 +f 4185 4345 4352 +f 4352 4190 4185 +f 4354 4355 4356 +f 4356 4357 4354 +f 4357 4358 4359 +f 4358 4349 4347 +f 4356 4360 4358 +f 4358 4357 4356 +f 4358 4360 4350 +f 4350 4349 4358 +f 4360 4361 4353 +f 4362 4361 4360 +f 4356 4357 4362 +f 4353 4350 4360 +f 4356 4362 4360 +f 4359 4363 4357 +f 4364 4365 4363 +f 4363 4359 4364 +f 4346 4364 4359 +f 4359 4347 4346 +f 4347 4359 4358 +f 4357 4363 4366 +f 4366 4354 4357 +f 4367 4368 4365 +f 4363 4365 4368 +f 4368 4366 4363 +f 4366 4368 4369 +f 4369 4370 4366 +f 4371 4372 4343 +f 4343 4342 4371 +f 4373 4372 4371 +f 4374 4375 4371 +f 4184 4342 4185 +f 4184 4371 4342 +f 4371 4184 4187 +f 4372 4373 4376 +f 4376 4377 4372 +f 4378 4373 4375 +f 4379 4375 4374 +f 4375 4373 4371 +f 4343 4372 4377 +f 4377 4346 4343 +f 4377 4376 4380 +f 4381 4376 4373 +f 4382 4380 4383 +f 4376 4381 4384 +f 4384 4380 4376 +f 4375 4379 4378 +f 4378 4381 4373 +f 4384 4381 4378 +f 4385 4378 4379 +f 4346 4377 4382 +f 4382 4364 4346 +f 4386 4364 4382 +f 4380 4382 4377 +f 4387 4383 4388 +f 4382 4387 4386 +f 4388 4389 4387 +f 4386 4387 4389 +f 4383 4387 4382 +f 4379 4390 4385 +f 4391 4384 4385 +f 4392 4385 4390 +f 4378 4385 4384 +f 4380 4384 4391 +f 4390 4393 4392 +f 4385 4392 4391 +f 4391 4383 4380 +f 4392 4393 4394 +f 4391 4392 4395 +f 4386 4365 4364 +f 4255 4254 4396 +f 4365 4386 4367 +f 4256 4255 4397 +f 4398 4397 4399 +f 4400 4399 4401 +f 4355 4402 4362 +f 4279 4276 4403 +f 4362 4356 4355 +f 4277 4278 4404 +f 4405 4404 4406 +f 4407 4406 4404 +f 4406 4408 4405 +f 4404 4405 4277 +f 4404 4409 4407 +f 4409 4404 4278 +f 4278 4273 4409 +f 4410 4409 4273 +f 4273 4270 4410 +f 4411 4412 4413 +f 4409 4410 4413 +f 4414 4413 4410 +f 4415 4410 4270 +f 4416 4417 4355 +f 4418 4417 4419 +f 4419 4403 4418 +f 4403 4419 4279 +f 4420 4419 4417 +f 4402 4355 4417 +f 4417 4418 4402 +f 4421 4422 4257 +f 4271 4272 4420 +f 4257 4271 4421 +f 4420 4421 4271 +f 4264 4257 4422 +f 4422 4421 4370 +f 4354 4366 4370 +f 4355 4354 4416 +f 4272 4279 4419 +f 4370 4416 4354 +f 4416 4370 4421 +f 4419 4420 4272 +f 4421 4420 4416 +f 4417 4416 4420 +f 4423 4424 4425 +f 4425 4274 4423 +f 4414 4415 4426 +f 4410 4415 4414 +f 4415 4274 4425 +f 4270 4274 4415 +f 4426 4415 4425 +f 4427 4425 4424 +f 4424 4400 4427 +f 4428 4425 4427 +f 4398 4423 4274 +f 4274 4256 4398 +f 4400 4424 4423 +f 4423 4398 4400 +f 4429 4430 4431 +f 4426 4432 4414 +f 4411 4433 4430 +f 4434 4431 3957 +f 4432 4433 4411 +f 4435 4436 4437 +f 4426 4428 4438 +f 4438 4437 4426 +f 4432 4436 4435 +f 4432 4426 4437 +f 4437 4438 4435 +f 4437 4436 4432 +f 4411 4414 4432 +f 4430 4429 4411 +f 4431 4434 4429 +f 3957 3952 4434 +f 4425 4428 4426 +f 4427 4439 4428 +f 4440 4441 4430 +f 4428 4439 4442 +f 4438 4442 4440 +f 4441 4440 4443 +f 4440 4433 4432 +f 4432 4435 4440 +f 4440 4435 4438 +f 4442 4438 4428 +f 4430 4433 4440 +f 4440 4258 4443 +f 4444 4445 4258 +f 4258 4445 4443 +f 4258 4446 4444 +f 4447 4444 4446 +f 4397 4255 4401 +f 4401 4399 4397 +f 4401 4255 4448 +f 4396 4448 4255 +f 4449 4401 4448 +f 4450 4451 4448 +f 4399 4400 4398 +f 4401 4427 4400 +f 4439 4427 4401 +f 4397 4398 4256 +f 4401 4449 4439 +f 4448 4452 4449 +f 4453 4454 4455 +f 4455 4456 4453 +f 4454 4453 4457 +f 4448 4451 4457 +f 4457 4452 4448 +f 4457 4451 4454 +f 4258 4440 4458 +f 4459 4446 4460 +f 4260 4460 4446 +f 4458 4440 4442 +f 4461 4442 4439 +f 4446 4258 4260 +f 4457 4462 4452 +f 4463 4462 4457 +f 4461 4462 4463 +f 4463 4458 4461 +f 4449 4452 4462 +f 4462 4461 4449 +f 4457 4458 4463 +f 4260 4458 4457 +f 4260 4457 4453 +f 4260 4453 4456 +f 4258 4458 4260 +f 4442 4461 4458 +f 4439 4449 4461 +f 4413 4414 4411 +f 4412 4411 4429 +f 4434 3952 3936 +f 4429 4464 4412 +f 4464 4429 4434 +f 4465 3936 3933 +f 3936 4465 4434 +f 3933 4466 4465 +f 4434 4465 4464 +f 4467 4464 4465 +f 4465 4466 4467 +f 4407 4413 4412 +f 4468 4469 4467 +f 4469 4412 4464 +f 4464 4467 4469 +f 4413 4407 4409 +f 4406 4407 4469 +f 4412 4469 4407 +f 4467 4470 4468 +f 3932 4471 4466 +f 4466 3933 3932 +f 4466 4471 4470 +f 4469 4468 4406 +f 4470 4467 4466 +f 4408 4406 4468 +f 4468 4472 4408 +f 4473 4470 4471 +f 4471 4474 4473 +f 3836 4474 4471 +f 4472 4468 4470 +f 4470 4473 4472 +f 4471 3932 3836 +f 3957 4431 4475 +f 4431 4476 4477 +f 4430 4476 4431 +f 4441 4476 4430 +f 4475 3845 3957 +f 4477 4475 4431 +f 4478 4479 4480 +f 4476 4480 4477 +f 4481 4477 4480 +f 4443 4482 4441 +f 4483 4482 4484 +f 4484 4485 4486 +f 4482 4443 4445 +f 4445 4484 4482 +f 4480 4476 4478 +f 4482 4483 4478 +f 4478 4441 4482 +f 4479 4478 4483 +f 4441 4478 4476 +f 4485 4484 4445 +f 4445 4444 4485 +f 4487 4488 4447 +f 4444 4447 4488 +f 4488 4485 4444 +f 4489 4483 4490 +f 4484 4490 4483 +f 4490 4486 4491 +f 4486 4490 4484 +f 4395 4394 4492 +f 4394 4395 4392 +f 4492 4493 4395 +f 4494 4395 4493 +f 4493 4495 4494 +f 4496 4497 4498 +f 4496 4396 4254 +f 4254 4265 4496 +f 4497 4496 4265 +f 4265 4266 4497 +f 4499 4500 4450 +f 4501 4450 4396 +f 4448 4396 4450 +f 4454 4500 4502 +f 4451 4450 4500 +f 4396 4496 4501 +f 4498 4501 4496 +f 4450 4501 4499 +f 4503 4499 4501 +f 4500 4499 4504 +f 4505 4504 4499 +f 4506 4498 4497 +f 4497 4507 4506 +f 4498 4506 4508 +f 4507 4497 4266 +f 4266 4268 4507 +f 4504 4505 4509 +f 4510 4511 4509 +f 4509 4512 4510 +f 4499 4503 4505 +f 4501 4498 4503 +f 4513 4514 4512 +f 4505 4515 4513 +f 4513 4509 4505 +f 4512 4509 4513 +f 4503 4508 4515 +f 4515 4505 4503 +f 4508 4503 4498 +f 4455 4502 4516 +f 4516 4517 4455 +f 4500 4454 4451 +f 4518 4517 4516 +f 4502 4455 4454 +f 4516 4519 4518 +f 4519 4516 4511 +f 4511 4510 4519 +f 4502 4504 4511 +f 4504 4502 4500 +f 4511 4516 4502 +f 4509 4511 4504 +f 4456 4455 4517 +f 4517 4520 4456 +f 4520 4517 4518 +f 4518 4521 4520 +f 4260 4456 4520 +f 4520 4460 4260 +f 4522 4460 4520 +f 4523 4524 4520 +f 4520 4525 4523 +f 4526 4525 4520 +f 4527 4528 4529 +f 4529 4525 4527 +f 4523 4525 4529 +f 4530 4526 4520 +f 4531 4520 4532 +f 4520 4524 4532 +f 4520 4521 4530 +f 4520 4533 4522 +f 4534 4533 4520 +f 4520 4535 4534 +f 4531 4535 4520 +f 4459 4536 4537 +f 4446 4459 4447 +f 4536 4459 4522 +f 4460 4522 4459 +f 4522 4533 4536 +f 4538 4536 4533 +f 4539 4538 4534 +f 4534 4535 4539 +f 4536 4538 4540 +f 4538 4539 4541 +f 4533 4534 4538 +f 4542 4369 4368 +f 4389 4388 4543 +f 4543 4544 4389 +f 4389 4367 4386 +f 4367 4389 4544 +f 4544 4542 4367 +f 4368 4367 4542 +f 4422 4545 4264 +f 4261 4264 4545 +f 4370 4369 4422 +f 4546 4545 4542 +f 4369 4542 4545 +f 4545 4422 4369 +f 4547 4546 4544 +f 4546 4547 4262 +f 4262 4261 4546 +f 4545 4546 4261 +f 4544 4543 4547 +f 4542 4544 4546 +f 4495 4543 4388 +f 4494 4388 4383 +f 4388 4494 4495 +f 4383 4391 4494 +f 4395 4494 4391 +f 4548 4547 4543 +f 4263 4262 4547 +f 4267 4263 4548 +f 4549 4548 4495 +f 4543 4495 4548 +f 4547 4548 4263 +f 4493 4492 4550 +f 4495 4493 4549 +f 4549 4550 4269 +f 4550 4549 4493 +f 4269 4267 4549 +f 4548 4549 4267 +f 4447 4537 4487 +f 4551 4487 4537 +f 4537 4540 4551 +f 4552 4551 4540 +f 4540 4541 4552 +f 4537 4447 4459 +f 4541 4540 4538 +f 4540 4537 4536 +f 4485 4488 4553 +f 4554 4553 4488 +f 4553 4486 4485 +f 4486 4553 4555 +f 4556 4554 4487 +f 4551 4552 4557 +f 4487 4551 4556 +f 4556 4557 4558 +f 4488 4487 4554 +f 4557 4556 4551 +f 4187 4559 4371 +f 4560 4559 4187 +f 4187 4213 4560 +f 4371 4559 4374 +f 4561 4374 4559 +f 4559 4560 4561 +f 4374 4562 4379 +f 4563 4562 4374 +f 4374 4561 4564 +f 4564 4563 4374 +f 4563 4564 4565 +f 4566 4567 4568 +f 4563 4568 4567 +f 4567 4562 4563 +f 4562 4567 4390 +f 4390 4379 4562 +f 4568 4569 4566 +f 4567 4566 4393 +f 4393 4390 4567 +f 4566 4570 4571 +f 4566 4569 4570 +f 4571 4572 4566 +f 4393 4566 4572 +f 4565 4568 4563 +f 4570 4569 4573 +f 4573 4569 4574 +f 4574 4575 4573 +f 4571 4570 4573 +f 4574 4569 4568 +f 4568 4565 4574 +f 4573 4575 4576 +f 4576 4577 4573 +f 4571 4573 4577 +f 4575 4578 4579 +f 4579 4576 4575 +f 4571 4577 4580 +f 4581 4560 4213 +f 4582 4564 4561 +f 4564 4582 4583 +f 4561 4584 4582 +f 4584 4561 4560 +f 4560 4581 4584 +f 4585 4581 4216 +f 4584 4581 4585 +f 4213 4216 4581 +f 4582 4586 4587 +f 4588 4586 4582 +f 4582 4584 4588 +f 4583 4587 4589 +f 4587 4583 4582 +f 4590 4589 4591 +f 4574 4589 4590 +f 4589 4592 4583 +f 4578 4593 4594 +f 4595 4596 4590 +f 4596 4594 4593 +f 4593 4590 4596 +f 4590 4591 4595 +f 4583 4565 4564 +f 4574 4590 4593 +f 4574 4592 4589 +f 4578 4575 4574 +f 4578 4574 4593 +f 4592 4574 4565 +f 4565 4583 4592 +f 4597 4506 4507 +f 4507 4598 4597 +f 4598 4507 4268 +f 4268 4282 4598 +f 4599 4598 4282 +f 4506 4597 4600 +f 4601 4600 4597 +f 4602 4603 4600 +f 4604 4597 4598 +f 4600 4508 4506 +f 4508 4600 4603 +f 4603 4515 4508 +f 4600 4601 4602 +f 4605 4604 4599 +f 4282 4283 4599 +f 4597 4604 4601 +f 4606 4601 4604 +f 4598 4599 4604 +f 4607 4608 4286 +f 4604 4605 4606 +f 4599 4608 4605 +f 4608 4599 4283 +f 4283 4286 4608 +f 4607 4287 4609 +f 4610 4611 4609 +f 4609 4287 4610 +f 4286 4287 4607 +f 4612 4610 4287 +f 4613 4611 4610 +f 4614 4609 4611 +f 4615 4616 4284 +f 4284 4281 4615 +f 4617 4580 4616 +f 4618 4616 4580 +f 4616 4618 4291 +f 4291 4284 4616 +f 4572 4394 4393 +f 4580 4617 4571 +f 4572 4571 4617 +f 4617 4619 4572 +f 4394 4572 4619 +f 4619 4492 4394 +f 4619 4617 4615 +f 4281 4280 4620 +f 4550 4620 4280 +f 4280 4269 4550 +f 4620 4550 4492 +f 4492 4619 4620 +f 4616 4615 4617 +f 4620 4615 4281 +f 4615 4620 4619 +f 4621 4622 4603 +f 4515 4603 4622 +f 4622 4513 4515 +f 4514 4513 4622 +f 4622 4623 4514 +f 4623 4622 4621 +f 4624 4621 4602 +f 4603 4602 4621 +f 4621 4625 4623 +f 4625 4621 4624 +f 4624 4626 4625 +f 4627 4602 4601 +f 4602 4627 4624 +f 4628 4629 4626 +f 4601 4606 4627 +f 4630 4627 4606 +f 4627 4630 4628 +f 4628 4624 4627 +f 4626 4624 4628 +f 4606 4631 4630 +f 4632 4605 4608 +f 4608 4607 4632 +f 4631 4606 4605 +f 4605 4632 4631 +f 4633 4630 4631 +f 4631 4632 4634 +f 4530 4629 4628 +f 4632 4607 4635 +f 4526 4628 4630 +f 4628 4526 4530 +f 4634 4636 4631 +f 4631 4636 4633 +f 4630 4633 4526 +f 4635 4634 4632 +f 4637 4526 4633 +f 4633 4636 4637 +f 4527 4525 4526 +f 4526 4637 4527 +f 4638 4636 4634 +f 4634 4639 4640 +f 4640 4639 4641 +f 4641 4639 4634 +f 4634 4635 4641 +f 4642 4641 4635 +f 4643 4644 4524 +f 4524 4523 4643 +f 4529 4643 4523 +f 4645 4529 4528 +f 4643 4529 4645 +f 4641 4642 4640 +f 4646 4642 4647 +f 4647 4609 4614 +f 4648 4640 4642 +f 4635 4647 4642 +f 4635 4607 4609 +f 4609 4647 4635 +f 4649 4634 4640 +f 4638 4634 4649 +f 4528 4527 4637 +f 4637 4638 4528 +f 4636 4638 4637 +f 4535 4531 4650 +f 4531 4532 4651 +f 4644 4651 4532 +f 4532 4524 4644 +f 4651 4650 4531 +f 4539 4650 4652 +f 4650 4651 4653 +f 4650 4539 4535 +f 4654 4655 4644 +f 4645 4654 4643 +f 4644 4643 4654 +f 4655 4653 4651 +f 4651 4644 4655 +f 4652 4541 4539 +f 4652 4653 4656 +f 4653 4652 4650 +f 4541 4652 4657 +f 4658 4659 4655 +f 4659 4656 4653 +f 4653 4655 4659 +f 4660 4658 4654 +f 4655 4654 4658 +f 4528 4661 4645 +f 4638 4649 4662 +f 4661 4528 4638 +f 4638 4662 4661 +f 4649 4663 4664 +f 4649 4665 4663 +f 4662 4664 4666 +f 4660 4645 4661 +f 4661 4666 4660 +f 4654 4645 4660 +f 4666 4661 4662 +f 4664 4662 4649 +f 4667 4613 4612 +f 4668 4612 4288 +f 4287 4288 4612 +f 4669 4614 4613 +f 4610 4612 4613 +f 4611 4613 4614 +f 4613 4667 4669 +f 4612 4668 4667 +f 4669 4290 4670 +f 4671 4670 4290 +f 4290 4289 4671 +f 4288 4290 4668 +f 4668 4290 4669 +f 4669 4667 4668 +f 4614 4672 4647 +f 4672 4614 4669 +f 4673 4648 4646 +f 4642 4646 4648 +f 4674 4646 4672 +f 4665 4648 4673 +f 4649 4640 4648 +f 4647 4672 4646 +f 4665 4649 4648 +f 4675 4676 4677 +f 4670 4678 4679 +f 4669 4679 4672 +f 4676 4675 4680 +f 4680 4678 4670 +f 4675 4681 4665 +f 4665 4680 4675 +f 4665 4673 4680 +f 4672 4679 4674 +f 4646 4674 4673 +f 4673 4682 4680 +f 4677 4681 4675 +f 4683 4674 4679 +f 4682 4673 4674 +f 4679 4678 4683 +f 4683 4678 4680 +f 4680 4682 4683 +f 4674 4683 4682 +f 4670 4684 4680 +f 4685 4684 4670 +f 4686 4676 4684 +f 4679 4669 4670 +f 4680 4684 4676 +f 4687 4688 4689 +f 4690 4691 4689 +f 4689 4691 4687 +f 4576 4579 4692 +f 4594 4579 4578 +f 4579 4594 4693 +f 4692 4693 4694 +f 4693 4692 4579 +f 4695 4692 4696 +f 4577 4576 4695 +f 4695 4580 4577 +f 4692 4695 4576 +f 4580 4695 4618 +f 4696 4694 4295 +f 4696 4618 4695 +f 4292 4291 4618 +f 4295 4292 4696 +f 4694 4696 4692 +f 4618 4696 4292 +f 4697 4698 4699 +f 4699 4700 4697 +f 4594 4596 4697 +f 4596 4595 4698 +f 4693 4697 4700 +f 4698 4697 4596 +f 4697 4693 4594 +f 4700 4699 4297 +f 4700 4694 4693 +f 4296 4295 4694 +f 4694 4700 4296 +f 4657 4656 4701 +f 4656 4657 4652 +f 4552 4657 4702 +f 4703 4704 4659 +f 4704 4701 4656 +f 4656 4659 4704 +f 4657 4552 4541 +f 4701 4702 4657 +f 4705 4706 4702 +f 4707 4705 4701 +f 4702 4701 4705 +f 4702 4557 4552 +f 4701 4704 4707 +f 4557 4702 4706 +f 4666 4708 4709 +f 4708 4666 4664 +f 4663 4710 4711 +f 4709 4660 4666 +f 4711 4664 4663 +f 4658 4660 4709 +f 4664 4711 4708 +f 4710 4663 4665 +f 4704 4703 4690 +f 4691 4709 4708 +f 4659 4658 4703 +f 4709 4703 4658 +f 4703 4709 4691 +f 4691 4690 4703 +f 4690 4707 4704 +f 4708 4687 4691 +f 4712 4711 4710 +f 4711 4712 4687 +f 4687 4708 4711 +f 4688 4687 4712 +f 4297 4296 4700 +f 4713 4714 4715 +f 4716 4713 4717 +f 4715 4717 4713 +f 4716 4686 4685 +f 4713 4716 4718 +f 4714 4713 4719 +f 4720 4671 4289 +f 4289 4293 4720 +f 4721 4720 4293 +f 4293 4294 4721 +f 4718 4685 4671 +f 4685 4718 4716 +f 4671 4720 4718 +f 4719 4718 4720 +f 4677 4722 4723 +f 4722 4677 4676 +f 4670 4671 4685 +f 4723 4724 4677 +f 4676 4686 4722 +f 4725 4724 4723 +f 4684 4685 4686 +f 4726 4723 4722 +f 4686 4716 4727 +f 4728 4723 4726 +f 4722 4727 4726 +f 4723 4728 4725 +f 4727 4722 4686 +f 4720 4721 4719 +f 4729 4721 4294 +f 4730 4719 4721 +f 4294 4298 4729 +f 4719 4730 4714 +f 4718 4719 4713 +f 4721 4729 4730 +f 4727 4717 4731 +f 4731 4726 4727 +f 4732 4726 4731 +f 4717 4727 4716 +f 4726 4732 4728 +f 4731 4733 4732 +f 4734 4735 4733 +f 4733 4731 4734 +f 4734 4731 4717 +f 4717 4715 4734 +f 4710 4736 4712 +f 4688 4712 4736 +f 4736 4737 4688 +f 4737 4736 4738 +f 4738 4739 4737 +f 4665 4740 4738 +f 4738 4741 4665 +f 4665 4741 4710 +f 4681 4740 4665 +f 4739 4738 4740 +f 4736 4710 4741 +f 4741 4738 4736 +f 4681 4742 4740 +f 4733 4735 4743 +f 4728 4743 4725 +f 4744 4724 4725 +f 4728 4732 4743 +f 4681 4677 4724 +f 4733 4743 4732 +f 4745 4744 4743 +f 4743 4735 4746 +f 4681 4744 4745 +f 4724 4744 4681 +f 4725 4743 4744 +f 4747 4748 4749 +f 4351 4750 4352 +f 4190 4352 4751 +f 4751 4197 4190 +f 4750 4751 4352 +f 4750 4749 4751 +f 4749 4748 4751 +f 4351 4752 4753 +f 4753 4750 4351 +f 4353 4752 4351 +f 4750 4753 4754 +f 4755 4754 4753 +f 4756 4757 4754 +f 4747 4757 4756 +f 4754 4749 4750 +f 4754 4757 4749 +f 4749 4757 4747 +f 4753 4758 4755 +f 4755 4758 4759 +f 4353 4361 4760 +f 4760 4752 4353 +f 4752 4760 4758 +f 4758 4753 4752 +f 4362 4761 4760 +f 4761 4362 4402 +f 4402 4762 4761 +f 4760 4361 4362 +f 4763 4759 4764 +f 4761 4759 4758 +f 4759 4761 4762 +f 4762 4764 4759 +f 4758 4760 4761 +f 4756 4755 4763 +f 4756 4765 4747 +f 4765 4756 4766 +f 4766 4767 4765 +f 4754 4755 4756 +f 4759 4763 4755 +f 4766 4763 4768 +f 4767 4766 4769 +f 4770 4767 4771 +f 4763 4766 4756 +f 4764 4768 4763 +f 4197 4751 4772 +f 4772 4198 4197 +f 4751 4748 4773 +f 4773 4772 4751 +f 4774 4775 4747 +f 4748 4747 4775 +f 4775 4773 4748 +f 4773 4776 4777 +f 4776 4773 4775 +f 4775 4778 4776 +f 4779 4778 4775 +f 4777 4772 4773 +f 4198 4772 4777 +f 4777 4201 4198 +f 4765 4767 4780 +f 4780 4774 4765 +f 4747 4765 4774 +f 4770 4781 4780 +f 4770 4780 4767 +f 4775 4774 4779 +f 4782 4783 4780 +f 4774 4780 4783 +f 4783 4779 4774 +f 4784 4785 4780 +f 4785 4784 4786 +f 4780 4781 4784 +f 4787 4785 4788 +f 4788 4785 4786 +f 4780 4785 4782 +f 4785 4787 4789 +f 4789 4782 4785 +f 4790 4791 4792 +f 4408 4792 4791 +f 4791 4405 4408 +f 4303 4300 4791 +f 4405 4791 4300 +f 4300 4277 4405 +f 4793 4792 4794 +f 4795 4793 4796 +f 4794 4796 4793 +f 4797 4796 4798 +f 4799 4798 4796 +f 4800 4790 4793 +f 4792 4793 4790 +f 4792 4408 4472 +f 4799 4473 4474 +f 4474 4801 4799 +f 3831 4801 4474 +f 4474 3836 3831 +f 4794 4472 4473 +f 4473 4799 4794 +f 4798 4799 4801 +f 4796 4794 4799 +f 4801 3831 3838 +f 4472 4794 4792 +f 4791 4790 4303 +f 4306 4305 4800 +f 4790 4800 4305 +f 4305 4303 4790 +f 4802 4795 4797 +f 4796 4797 4795 +f 4803 4797 4804 +f 4805 4800 4795 +f 4793 4795 4800 +f 4762 4402 4418 +f 4418 4806 4762 +f 4764 4762 4806 +f 4806 4807 4764 +f 4806 4418 4403 +f 4403 4808 4806 +f 4807 4806 4808 +f 4808 4809 4807 +f 4809 4808 4275 +f 4275 4301 4809 +f 4808 4403 4276 +f 4276 4275 4808 +f 4810 4811 4769 +f 4768 4764 4807 +f 4807 4810 4768 +f 4810 4807 4809 +f 4769 4768 4810 +f 4811 4810 4812 +f 4809 4812 4810 +f 4301 4302 4812 +f 4812 4809 4301 +f 4798 4804 4797 +f 4801 4813 4798 +f 4813 3838 3819 +f 4804 4798 4813 +f 4813 4814 4804 +f 3838 4813 4801 +f 3819 4814 4813 +f 4815 4804 4814 +f 4814 4816 4815 +f 3822 4816 4814 +f 4814 3819 3822 +f 4797 4803 4802 +f 4804 4815 4803 +f 4795 4802 4805 +f 4817 4306 4818 +f 4818 4819 4817 +f 4818 4306 4805 +f 4800 4805 4306 +f 4820 4818 4805 +f 4805 4802 4821 +f 4821 4822 4805 +f 4818 4820 4823 +f 4815 4824 4825 +f 4803 4825 4821 +f 4821 4802 4803 +f 4805 4822 4820 +f 4825 4803 4815 +f 4477 4826 4475 +f 3822 3845 4475 +f 4477 4481 4826 +f 4475 4816 3822 +f 4824 4826 4827 +f 4824 4815 4816 +f 4826 4824 4475 +f 4816 4475 4824 +f 4821 4828 4829 +f 4830 4831 4820 +f 4821 4830 4822 +f 4831 4830 4829 +f 4829 4828 4831 +f 4820 4822 4830 +f 4829 4830 4821 +f 4827 4825 4824 +f 4832 4831 4828 +f 4823 4820 4831 +f 4833 4828 4821 +f 4821 4825 4833 +f 4827 4833 4825 +f 4826 4834 4827 +f 4828 4833 4832 +f 4831 4832 4823 +f 4835 4836 4837 +f 4837 4836 4838 +f 4838 4489 4837 +f 4479 4839 4481 +f 4481 4480 4479 +f 4834 4826 4481 +f 4489 4838 4839 +f 4839 4479 4489 +f 4818 4840 4841 +f 4842 4843 4844 +f 4843 4842 4845 +f 4839 4845 4842 +f 4823 4840 4818 +f 4845 4839 4838 +f 4817 4846 4308 +f 4819 4841 4846 +f 4834 4844 4833 +f 4833 4827 4834 +f 4844 4834 4842 +f 4481 4842 4834 +f 4842 4481 4839 +f 4781 4770 4847 +f 4768 4769 4766 +f 4771 4847 4770 +f 4769 4771 4767 +f 4771 4769 4811 +f 4811 4848 4771 +f 4847 4771 4848 +f 4848 4849 4850 +f 4849 4851 4850 +f 4851 4852 4850 +f 4852 4851 4309 +f 4309 4311 4852 +f 4311 4312 4852 +f 4312 4316 4852 +f 4853 4812 4302 +f 4853 4849 4848 +f 4853 4854 4848 +f 4302 4307 4853 +f 4849 4853 4307 +f 4812 4853 4811 +f 4848 4811 4853 +f 4307 4313 4849 +f 4313 4310 4849 +f 4851 4849 4310 +f 4310 4309 4851 +f 4855 4856 4857 +f 4857 4858 4855 +f 4859 4855 4858 +f 4858 4857 4860 +f 4861 4858 4862 +f 4863 4864 4865 +f 4856 4863 4865 +f 4865 4857 4856 +f 4866 4867 4850 +f 4848 4850 4847 +f 4868 4866 4864 +f 4850 4864 4866 +f 4867 4847 4850 +f 4850 4848 4854 +f 4869 4870 4864 +f 4869 4850 4852 +f 4870 4865 4864 +f 4864 4850 4869 +f 4491 4837 4490 +f 4837 4491 4835 +f 4555 4491 4486 +f 4490 4837 4489 +f 4483 4489 4479 +f 4871 4555 4553 +f 4860 4872 4555 +f 4553 4554 4871 +f 4872 4835 4491 +f 4555 4871 4860 +f 4491 4555 4872 +f 4554 4556 4873 +f 4558 4873 4556 +f 4862 4860 4871 +f 4873 4871 4554 +f 4871 4873 4862 +f 4874 4862 4873 +f 4873 4558 4874 +f 4865 4870 4835 +f 4857 4865 4872 +f 4860 4862 4858 +f 4862 4874 4861 +f 4835 4872 4865 +f 4872 4860 4857 +f 4869 4852 4316 +f 4875 4316 4876 +f 4870 4869 4836 +f 4316 4875 4869 +f 4875 4838 4836 +f 4836 4835 4870 +f 4838 4875 4845 +f 4836 4869 4875 +f 4845 4876 4843 +f 4876 4845 4875 +f 4846 4817 4819 +f 4841 4819 4818 +f 4308 4306 4817 +f 4846 4877 4318 +f 4318 4308 4846 +f 4841 4878 4877 +f 4877 4846 4841 +f 4840 4879 4878 +f 4878 4841 4840 +f 4880 4315 4322 +f 4319 4881 4882 +f 4882 4320 4319 +f 4320 4882 4883 +f 4883 4322 4320 +f 4866 4868 4784 +f 4867 4866 4781 +f 4847 4867 4781 +f 4784 4781 4866 +f 4788 4786 4884 +f 4786 4784 4868 +f 4868 4884 4786 +f 4884 4868 4863 +f 4885 4886 4856 +f 4856 4855 4885 +f 4887 4885 4855 +f 4864 4863 4868 +f 4886 4884 4863 +f 4863 4856 4886 +f 4888 4788 4886 +f 4886 4885 4888 +f 4889 4888 4885 +f 4884 4886 4788 +f 4788 4888 4787 +f 4890 4891 4892 +f 4893 4894 4895 +f 4892 4895 4890 +f 4891 4890 4314 +f 4323 4321 4896 +f 4897 4896 4321 +f 4321 4317 4897 +f 4890 4897 4317 +f 4317 4314 4890 +f 4898 4896 4899 +f 4900 4899 4896 +f 4894 4901 4900 +f 4900 4895 4894 +f 4896 4897 4900 +f 4895 4900 4897 +f 4897 4890 4895 +f 4902 4903 4901 +f 4901 4894 4902 +f 4904 4905 4906 +f 4899 4900 4901 +f 4907 4903 4904 +f 4901 4908 4899 +f 4908 4901 4903 +f 4903 4907 4908 +f 4904 4909 4907 +f 4910 4899 4908 +f 4911 4907 4909 +f 4906 4909 4904 +f 4909 4906 4912 +f 4913 4908 4907 +f 4908 4913 4910 +f 4912 4914 4909 +f 4907 4911 4913 +f 4909 4914 4911 +f 4915 4916 4917 +f 4918 4883 4882 +f 4919 4920 4916 +f 4880 4322 4883 +f 4881 4916 4920 +f 4882 4920 4918 +f 4921 4918 4920 +f 4920 4882 4881 +f 4880 4922 4843 +f 4922 4883 4918 +f 4922 4880 4883 +f 4843 4876 4880 +f 4315 4880 4876 +f 4876 4316 4315 +f 4923 4922 4918 +f 4891 4318 4879 +f 4314 4318 4891 +f 4924 4891 4879 +f 4925 4879 4840 +f 4877 4878 4879 +f 4879 4318 4877 +f 4895 4892 4893 +f 4926 4927 4928 +f 4894 4893 4929 +f 4929 4902 4894 +f 4902 4929 4926 +f 4928 4930 4926 +f 4905 4904 4930 +f 4930 4928 4905 +f 4926 4930 4902 +f 4903 4902 4930 +f 4930 4904 4903 +f 4924 4931 4892 +f 4879 4925 4924 +f 4931 4932 4893 +f 4893 4892 4931 +f 4893 4932 4933 +f 4933 4929 4893 +f 4892 4891 4924 +f 4934 4921 4933 +f 4833 4935 4936 +f 4923 4934 4833 +f 4936 4832 4833 +f 4935 4833 4934 +f 4925 4823 4832 +f 4832 4936 4925 +f 4932 4931 4934 +f 4934 4931 4935 +f 4934 4933 4932 +f 4931 4937 4938 +f 4931 4924 4937 +f 4937 4936 4935 +f 4935 4938 4937 +f 4924 4925 4936 +f 4936 4937 4924 +f 4931 4938 4935 +f 4922 4923 4844 +f 4844 4843 4922 +f 4934 4923 4921 +f 4840 4823 4925 +f 4833 4844 4923 +f 4923 4918 4921 +f 4939 4915 4940 +f 4920 4919 4921 +f 4933 4921 4919 +f 4940 4941 4939 +f 4942 4919 4915 +f 4916 4915 4919 +f 4912 4906 4943 +f 4905 4943 4906 +f 4942 4926 4929 +f 4944 4943 4928 +f 4905 4928 4943 +f 4943 4927 4926 +f 4915 4939 4942 +f 4929 4933 4942 +f 4945 4943 4942 +f 4919 4942 4933 +f 4926 4942 4943 +f 4945 4912 4943 +f 4946 4945 4947 +f 4946 4948 4945 +f 4949 4945 4948 +f 4949 4912 4945 +f 4950 4951 4952 +f 4952 4585 4226 +f 4226 4239 4952 +f 4953 4952 4239 +f 4951 4588 4585 +f 4585 4588 4584 +f 4585 4952 4951 +f 4216 4226 4585 +f 4951 4950 4954 +f 4952 4953 4950 +f 4955 4953 4241 +f 4241 4243 4955 +f 4950 4956 4957 +f 4956 4950 4953 +f 4953 4955 4956 +f 4239 4241 4953 +f 4958 4959 4960 +f 4961 4962 4960 +f 4960 4959 4961 +f 4957 4954 4950 +f 4963 4964 4954 +f 4965 4954 4964 +f 4954 4957 4963 +f 4966 4964 4967 +f 4968 4967 4964 +f 4964 4963 4968 +f 4588 4951 4965 +f 4965 4586 4588 +f 4966 4587 4586 +f 4586 4965 4966 +f 4964 4966 4965 +f 4587 4966 4969 +f 4954 4965 4951 +f 4970 4971 4972 +f 4591 4972 4971 +f 4971 4595 4591 +f 4972 4973 4970 +f 4589 4972 4591 +f 4962 4972 4589 +f 4699 4974 4337 +f 4698 4975 4974 +f 4974 4699 4698 +f 4595 4971 4975 +f 4975 4698 4595 +f 4975 4976 4977 +f 4977 4974 4975 +f 4971 4970 4976 +f 4976 4975 4971 +f 4978 4977 4976 +f 4979 4976 4980 +f 4974 4977 4338 +f 4981 4982 4983 +f 4984 4982 4707 +f 4980 4985 4986 +f 4986 4983 4982 +f 4982 4984 4986 +f 4979 4986 4984 +f 4986 4979 4980 +f 4976 4979 4978 +f 4338 4337 4974 +f 4338 4987 4988 +f 4977 4978 4987 +f 4987 4338 4977 +f 4707 4690 4984 +f 4982 4981 4705 +f 4705 4707 4982 +f 4981 4989 4706 +f 4706 4705 4981 +f 4706 4558 4557 +f 4989 4874 4558 +f 4558 4706 4989 +f 4689 4688 4978 +f 4978 4979 4689 +f 4984 4689 4979 +f 4689 4984 4690 +f 4858 4861 4859 +f 4990 4859 4861 +f 4861 4991 4990 +f 4992 4983 4993 +f 4993 4990 4992 +f 4991 4992 4990 +f 4991 4861 4874 +f 4874 4989 4991 +f 4983 4992 4981 +f 4992 4991 4989 +f 4989 4981 4992 +f 4976 4980 4994 +f 4336 4995 4996 +f 4338 4997 4995 +f 4336 4338 4977 +f 4995 4336 4338 +f 4994 4977 4976 +f 4977 4994 4336 +f 4996 4334 4336 +f 4998 4962 4961 +f 4998 4961 4999 +f 4999 5000 4998 +f 4961 4959 5001 +f 5001 4999 4961 +f 4962 4998 5002 +f 5000 4999 5003 +f 5003 4985 5000 +f 4985 5003 4986 +f 4983 4986 5003 +f 5003 4993 4983 +f 5004 5000 4985 +f 4985 4980 5004 +f 4993 5003 4999 +f 5005 4970 4973 +f 5004 5005 5006 +f 4970 5005 4980 +f 4980 4976 4970 +f 5005 5004 4980 +f 4973 5006 5005 +f 4973 4962 5006 +f 5002 4998 5000 +f 5002 5006 4962 +f 5000 5004 5002 +f 5006 5002 5004 +f 4855 4859 4887 +f 4859 4990 5007 +f 4319 5008 4881 +f 5008 4324 5009 +f 5008 4319 4324 +f 5007 4887 4859 +f 5001 5007 4990 +f 4990 4993 5001 +f 4999 5001 4993 +f 5007 5001 4959 +f 4887 5007 4958 +f 4959 4958 5007 +f 4958 4960 4889 +f 4885 4887 4889 +f 4958 4889 4887 +f 4328 5010 5011 +f 5011 4327 4328 +f 5009 4324 4327 +f 5010 4334 4996 +f 4327 5011 5009 +f 5010 4328 4334 +f 5012 5009 5011 +f 4917 5009 5012 +f 5008 4917 4916 +f 4916 4881 5008 +f 5012 5011 5010 +f 4917 5008 5009 +f 4787 4888 4889 +f 4889 4960 4787 +f 4325 4323 4898 +f 4789 4787 4960 +f 4960 5013 4789 +f 4896 4898 4323 +f 4910 5014 5015 +f 5015 4898 4910 +f 4899 4910 4898 +f 4898 5015 4325 +f 5014 4910 4913 +f 4949 5016 4914 +f 4914 4912 4949 +f 4911 5017 5018 +f 4913 5018 5014 +f 5018 4913 4911 +f 5017 4911 4914 +f 4914 5016 5017 +f 5019 5020 4331 +f 4331 4329 5019 +f 5015 5019 4329 +f 5014 5021 5019 +f 4329 4325 5015 +f 5019 5015 5014 +f 5017 5022 5023 +f 5023 5018 5017 +f 5022 5017 5016 +f 5018 5023 5021 +f 5021 5014 5018 +f 5024 5023 5022 +f 5025 5026 5027 +f 5028 5029 5026 +f 5010 5030 5012 +f 5030 5010 4996 +f 5030 4996 4995 +f 5031 5030 5032 +f 4332 5027 4330 +f 4946 5033 5034 +f 5034 5033 5035 +f 5034 4948 4946 +f 4948 5034 5016 +f 5016 4949 4948 +f 5016 5034 5022 +f 5035 5022 5034 +f 5036 5037 5024 +f 5023 5024 5037 +f 5037 5021 5023 +f 5038 5020 5037 +f 5021 5037 5020 +f 5020 5019 5021 +f 5022 5035 5024 +f 5039 5024 5035 +f 5035 5040 5039 +f 5040 5035 5033 +f 5033 4946 4947 +f 5033 5041 5040 +f 4947 5041 5033 +f 5042 5012 5030 +f 4940 4917 5012 +f 5043 5042 5030 +f 4940 5012 5042 +f 5031 5044 5045 +f 5045 5043 5031 +f 5042 5043 4940 +f 4917 4940 4915 +f 5030 5031 5043 +f 5046 5045 5044 +f 5045 5046 4939 +f 5043 5045 4941 +f 4941 4940 5043 +f 4942 5046 4945 +f 4942 4939 5046 +f 4939 4941 5045 +f 4988 4997 4338 +f 4688 4987 4978 +f 4337 4297 4699 +f 4997 5047 5032 +f 5032 4995 4997 +f 4997 4988 5048 +f 5048 5047 4997 +f 4995 5032 5030 +f 4987 4688 4737 +f 4737 4988 4987 +f 4740 4742 5049 +f 5049 5050 4740 +f 4740 5050 4739 +f 5048 4739 5050 +f 5050 5049 5048 +f 4988 4737 4739 +f 4739 5048 4988 +f 5047 5048 5049 +f 5051 5032 5047 +f 5052 5051 5053 +f 5047 5053 5051 +f 4298 4299 5054 +f 4299 4339 5055 +f 4969 4589 4587 +f 5054 4729 4298 +f 5056 5055 4339 +f 5055 5054 4299 +f 5057 5058 5054 +f 5058 4730 4729 +f 4729 5054 5058 +f 5054 5055 5057 +f 4730 5058 5059 +f 5060 5061 5062 +f 5063 5064 5065 +f 5061 5060 5066 +f 5066 5067 5068 +f 5062 5065 5060 +f 5069 4734 4715 +f 5070 5059 5058 +f 4714 5059 5071 +f 5071 4715 4714 +f 5072 5071 5059 +f 4715 5071 5069 +f 5059 4714 4730 +f 5059 5070 5072 +f 5070 5062 5061 +f 5061 5072 5070 +f 5063 5057 5055 +f 5055 5056 5063 +f 5058 5057 5070 +f 5062 5070 5057 +f 5057 5063 5062 +f 5053 5049 4742 +f 4742 5073 5053 +f 5049 5053 5047 +f 5053 5073 5052 +f 5074 5073 4742 +f 5066 5075 5061 +f 5072 5061 5075 +f 5075 5068 5076 +f 5068 5075 5066 +f 5076 4746 5077 +f 5076 5078 5075 +f 5075 5078 5072 +f 4735 5077 4746 +f 4735 4734 5069 +f 5069 5077 4735 +f 5077 5069 5078 +f 5078 5069 5071 +f 5078 5076 5077 +f 5071 5072 5078 +f 5076 5068 4746 +f 4745 5066 5060 +f 4746 5067 5066 +f 5067 4746 5068 +f 5060 5074 4745 +f 5066 4745 4746 +f 4743 4746 4745 +f 5074 4742 4681 +f 5079 5073 5074 +f 4681 4745 5074 +f 4973 4972 4962 +f 4960 4962 4969 +f 4589 4969 4962 +f 4339 4341 5056 +f 4967 4969 4966 +f 5013 4960 4967 +f 4333 4331 5020 +f 4967 4968 5013 +f 4969 4967 4960 +f 5080 5028 5038 +f 5037 5036 5038 +f 5020 5038 4333 +f 5028 5025 4332 +f 4332 4333 5028 +f 5028 4333 5038 +f 5026 5025 5028 +f 5027 4332 5025 +f 5024 5039 5036 +f 5052 5081 5044 +f 5051 5052 5044 +f 5032 5051 5031 +f 5082 5083 5084 +f 5085 5052 5083 +f 5044 5031 5051 +f 5081 5039 5040 +f 5038 5036 5086 +f 5086 5036 5039 +f 5087 5040 5041 +f 5046 5041 4947 +f 5039 5081 5086 +f 5038 5088 5080 +f 5041 5046 5087 +f 5040 5087 5081 +f 4947 4945 5046 +f 5086 5088 5038 +f 5052 5085 5086 +f 5083 5082 5085 +f 5052 5086 5081 +f 5084 5080 5082 +f 5044 5087 5046 +f 5044 5081 5087 +f 5089 5088 5086 +f 5080 5088 5089 +f 5090 5085 5082 +f 5082 5089 5090 +f 5089 5082 5080 +f 5086 5090 5089 +f 5085 5090 5086 +f 5091 5056 4341 +f 5064 5063 5056 +f 5065 5062 5063 +f 5056 5091 5064 +f 5091 4340 5092 +f 4341 4340 5091 +f 5092 4340 5093 +f 5093 5094 5092 +f 5095 5091 5092 +f 5065 5079 5074 +f 5074 5060 5065 +f 5065 5064 5096 +f 5092 5097 5095 +f 5064 5091 5095 +f 5095 5096 5064 +f 5096 5079 5065 +f 5052 5098 5099 +f 5097 5084 5083 +f 5083 5099 5097 +f 5099 5083 5052 +f 5096 5098 5052 +f 5079 5052 5073 +f 5052 5079 5096 +f 5095 5097 5099 +f 5096 5100 5098 +f 5099 5101 5095 +f 5101 5099 5098 +f 5096 5095 5101 +f 5098 5100 5101 +f 5096 5101 5100 +f 5093 5027 5026 +f 5027 5093 4340 +f 5029 5092 5094 +f 5097 5092 5029 +f 5094 5026 5029 +f 4340 4330 5027 +f 5084 5029 5028 +f 5026 5094 5093 +f 5028 5080 5084 +f 5029 5084 5097 diff --git a/Recast/Examples/Meshes/nav_test.obj b/Recast/Examples/Meshes/nav_test.obj new file mode 100644 index 0000000..1d4c595 --- /dev/null +++ b/Recast/Examples/Meshes/nav_test.obj @@ -0,0 +1,3506 @@ +mtllib nav_test.mtl +o nav_test.obj +v -21.847065 -2.492895 19.569759 +v -15.847676 -2.492895 18.838863 +v -21.847065 -0.895197 19.569759 +v -15.847676 -0.895197 18.838863 +v -21.585381 -2.492895 21.717730 +v -15.585992 -2.492895 20.986834 +v -21.585381 -0.895197 21.717730 +v -15.585992 -0.895197 20.986834 +v -22.078766 -1.169756 17.667891 +v -16.079414 -1.169756 16.936998 +v -22.078766 0.427928 17.667891 +v -16.079414 0.427928 16.936998 +v -21.817081 -1.169756 19.815861 +v -15.817731 -1.169756 19.084969 +v -21.817081 0.427928 19.815861 +v -15.817731 0.427928 19.084969 +v -22.310509 0.142680 15.765698 +v -16.311157 0.142680 15.034807 +v -22.310509 1.740365 15.765698 +v -16.311157 1.740365 15.034807 +v -22.048828 0.142680 17.913649 +v -16.049477 0.142680 17.182758 +v -22.048828 1.740365 17.913649 +v -16.049477 1.740365 17.182758 +v -22.541557 1.588395 13.869190 +v -16.542206 1.588395 13.138299 +v -22.541557 3.186100 13.869190 +v -16.542206 3.186100 13.138299 +v -22.279873 1.588395 16.017160 +v -16.280521 1.588395 15.286268 +v -22.279873 3.186100 16.017160 +v -16.280521 3.186100 15.286268 +v -22.775589 2.892463 11.948195 +v -16.776237 2.892463 11.217304 +v -22.775589 4.490149 11.948195 +v -16.776237 4.490149 11.217304 +v -22.513905 2.892463 14.096166 +v -16.514553 2.892463 13.365274 +v -22.513905 4.490149 14.096166 +v -16.514553 4.490149 13.365274 +v -23.008904 4.280072 10.033092 +v -17.009552 4.280072 9.302201 +v -23.008904 5.877757 10.033092 +v -17.009552 5.877757 9.302201 +v -22.747219 4.280072 12.181063 +v -16.747868 4.280072 11.450171 +v -22.747219 5.877757 12.181063 +v -16.747868 5.877757 11.450171 +v -23.234169 5.535265 8.184037 +v -17.234818 5.535265 7.453146 +v -23.234169 7.132950 8.184037 +v -17.234818 7.132950 7.453146 +v -22.972485 5.535265 10.332007 +v -16.973133 5.535265 9.601116 +v -22.972485 7.132950 10.332007 +v -16.973133 7.132950 9.601116 +vn -0.642934 -0.577350 -0.503291 +vn 0.503291 -0.577350 -0.642934 +vn -0.642934 0.577350 -0.503291 +vn 0.503291 0.577350 -0.642934 +vn -0.503291 -0.577350 0.642934 +vn 0.642934 -0.577350 0.503291 +vn -0.503291 0.577350 0.642934 +vn 0.642934 0.577350 0.503291 +vn -0.642934 -0.577350 -0.503291 +vn 0.503291 -0.577350 -0.642934 +vn -0.642934 0.577350 -0.503291 +vn 0.503291 0.577350 -0.642934 +vn -0.503291 -0.577350 0.642934 +vn 0.642934 -0.577350 0.503291 +vn -0.503291 0.577350 0.642934 +vn 0.642934 0.577350 0.503291 +vn -0.642934 -0.577350 -0.503292 +vn 0.503291 -0.577350 -0.642934 +vn -0.642934 0.577350 -0.503292 +vn 0.503291 0.577350 -0.642934 +vn -0.503292 -0.577350 0.642934 +vn 0.642934 -0.577350 0.503292 +vn -0.503292 0.577350 0.642934 +vn 0.642934 0.577350 0.503292 +vn -0.642934 -0.577350 -0.503291 +vn 0.503291 -0.577350 -0.642934 +vn -0.642934 0.577350 -0.503291 +vn 0.503291 0.577350 -0.642934 +vn -0.503291 -0.577350 0.642934 +vn 0.642934 -0.577350 0.503291 +vn -0.503291 0.577350 0.642934 +vn 0.642934 0.577350 0.503291 +vn -0.642934 -0.577350 -0.503291 +vn 0.503291 -0.577350 -0.642934 +vn -0.642934 0.577350 -0.503291 +vn 0.503291 0.577350 -0.642934 +vn -0.503291 -0.577350 0.642934 +vn 0.642934 -0.577350 0.503291 +vn -0.503291 0.577350 0.642934 +vn 0.642934 0.577350 0.503291 +vn -0.642934 -0.577350 -0.503291 +vn 0.503291 -0.577350 -0.642934 +vn -0.642934 0.577350 -0.503291 +vn 0.503291 0.577350 -0.642934 +vn -0.503291 -0.577350 0.642934 +vn 0.642934 -0.577350 0.503291 +vn -0.503291 0.577350 0.642934 +vn 0.642934 0.577350 0.503291 +vn -0.642934 -0.577350 -0.503291 +vn 0.503291 -0.577350 -0.642934 +vn -0.642934 0.577350 -0.503291 +vn 0.503291 0.577350 -0.642934 +vn -0.503291 -0.577350 0.642934 +vn 0.642934 -0.577350 0.503291 +vn -0.503291 0.577350 0.642934 +vn 0.642934 0.577350 0.503291 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +g Generic +usemtl Default +f 4/1/4 2/2/2 1/3/1 3/4/3 +f 6/5/6 8/6/8 7/7/7 5/8/5 +f 6/5/6 5/8/5 1/3/1 2/2/2 +f 8/6/8 6/5/6 2/2/2 4/1/4 +f 7/7/7 8/6/8 4/1/4 3/4/3 +f 5/8/5 7/7/7 3/4/3 1/3/1 +f 12/9/12 10/10/10 9/11/9 11/12/11 +f 14/13/14 16/14/16 15/15/15 13/16/13 +f 14/13/14 13/16/13 9/11/9 10/10/10 +f 16/14/16 14/13/14 10/10/10 12/9/12 +f 15/15/15 16/14/16 12/9/12 11/12/11 +f 13/16/13 15/15/15 11/12/11 9/11/9 +f 20/17/20 18/18/18 17/19/17 19/20/19 +f 22/21/22 24/22/24 23/23/23 21/24/21 +f 22/21/22 21/24/21 17/19/17 18/18/18 +f 24/22/24 22/21/22 18/18/18 20/17/20 +f 23/23/23 24/22/24 20/17/20 19/20/19 +f 21/24/21 23/23/23 19/20/19 17/19/17 +f 28/25/28 26/26/26 25/27/25 27/28/27 +f 30/29/30 32/30/32 31/31/31 29/32/29 +f 30/29/30 29/32/29 25/27/25 26/26/26 +f 32/30/32 30/29/30 26/26/26 28/25/28 +f 31/31/31 32/30/32 28/25/28 27/28/27 +f 29/32/29 31/31/31 27/28/27 25/27/25 +f 36/33/36 34/34/34 33/35/33 35/36/35 +f 38/37/38 40/38/40 39/39/39 37/40/37 +f 38/37/38 37/40/37 33/35/33 34/34/34 +f 40/38/40 38/37/38 34/34/34 36/33/36 +f 39/39/39 40/38/40 36/33/36 35/36/35 +f 37/40/37 39/39/39 35/36/35 33/35/33 +f 44/41/44 42/42/42 41/43/41 43/44/43 +f 46/45/46 48/46/48 47/47/47 45/48/45 +f 46/45/46 45/48/45 41/43/41 42/42/42 +f 48/46/48 46/45/46 42/42/42 44/41/44 +f 47/47/47 48/46/48 44/41/44 43/44/43 +f 45/48/45 47/47/47 43/44/43 41/43/41 +f 52/49/52 50/50/50 49/51/49 51/52/51 +f 54/53/54 56/54/56 55/55/55 53/56/53 +f 54/53/54 53/56/53 49/51/49 50/50/50 +f 56/54/56 54/53/54 50/50/50 52/49/52 +f 55/55/55 56/54/56 52/49/52 51/52/51 +f 53/56/53 55/55/55 51/52/51 49/51/49 +v -28.889317 -3.557970 -20.236633 +v 21.065487 -3.557970 -26.322546 +v -28.889317 -2.370904 -20.236633 +v 21.065487 -2.370904 -26.322546 +v -22.640766 -3.557970 31.053141 +v 27.314037 -3.557970 24.967228 +v -22.640766 -2.370904 31.053141 +v 27.314037 -2.370904 24.967228 +v -11.345862 -3.554139 -0.603272 +v -1.840215 -3.554139 -1.761330 +v -2.998272 -3.554139 -11.266972 +v -12.503919 -3.554139 -10.108913 +v -11.345862 -2.367074 -0.603272 +v -1.840215 -2.367074 -1.761330 +v -2.998272 -2.367074 -11.266972 +v -12.503919 -2.367074 -10.108913 +v 14.880527 -2.365568 6.393913 +v 16.038584 -2.365752 15.899554 +v 6.532944 -2.365750 17.057611 +v 5.374887 -2.364530 7.551970 +v 6.532944 -3.552818 17.057611 +v 16.038584 -3.552819 15.899554 +v 14.880527 -3.552633 6.393913 +v 5.374887 -3.551598 7.551970 +v 1.032586 -2.363936 21.819389 +v -8.473061 -2.364388 22.977446 +v -9.631113 -2.364505 13.471843 +v -9.631113 -3.550801 13.471843 +v -8.473061 -3.551456 22.977446 +v 1.032586 -3.551004 21.819389 +v -0.125466 -2.361971 12.313786 +v -0.125466 -3.549039 12.313786 +vn -0.262337 -0.942870 -0.205369 +vn 0.205367 -0.942875 -0.262320 +vn -0.262635 0.942746 -0.205554 +vn 0.205639 0.942742 -0.262583 +vn -0.355815 -0.816687 0.454332 +vn 0.335634 -0.904611 0.262733 +vn -0.355909 0.816255 0.455034 +vn 0.335918 0.904340 0.263302 +vn 0.262962 -0.904544 -0.335637 +vn -0.335745 -0.904605 -0.262612 +vn -0.355807 -0.816428 0.454804 +vn 0.454699 -0.816419 0.355963 +vn 0.262672 0.904546 -0.335856 +vn -0.335747 0.904495 -0.262988 +vn -0.355864 0.816560 0.454522 +vn 0.454548 0.816575 0.355798 +vn -0.355652 0.816607 0.454604 +vn -0.454443 0.816647 -0.355766 +vn 0.356082 0.816529 -0.454407 +vn 0.262653 0.942785 0.205353 +vn 0.355755 -0.816589 -0.454555 +vn -0.454803 -0.816488 -0.355671 +vn -0.356080 -0.816394 0.454651 +vn 0.262333 -0.942818 0.205610 +vn -0.335659 0.904720 -0.262326 +vn 0.355853 0.816737 -0.454212 +vn 0.335572 0.904622 0.262774 +vn 0.335908 -0.904451 0.262933 +vn 0.355947 -0.816306 -0.454914 +vn -0.335871 -0.904446 -0.262999 +vn -0.262777 0.904593 0.335648 +vn -0.262932 -0.904466 0.335869 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +g Generic +usemtl Default +f 60/57/60 58/58/58 57/59/57 59/60/59 +f 62/61/62 64/62/64 63/63/63 61/64/61 +f 64/62/64 62/61/62 58/58/58 60/57/60 +f 61/64/61 63/63/63 59/60/59 57/59/57 +f 67/65/67 71/66/71 72/67/72 68/68/68 +f 70/69/70 66/70/66 65/71/65 69/72/69 +f 66/70/66 70/69/70 71/66/71 67/65/67 +f 69/72/69 65/71/65 68/68/68 72/67/72 +f 79/73/79 73/74/73 76/75/76 80/76/80 +f 74/77/74 78/78/78 77/79/77 75/80/75 +f 78/78/78 74/77/74 73/74/73 79/73/79 +f 75/80/75 77/79/77 80/76/80 76/75/76 +f 88/81/88 87/82/87 83/83/83 84/84/84 +f 81/85/81 86/86/86 85/87/85 82/88/82 +f 86/86/86 81/85/81 87/82/87 88/81/88 +f 82/88/82 85/87/85 84/84/84 83/83/83 +f 60/57/60 73/74/73 74/77/74 64/62/64 +f 64/62/64 74/77/74 75/80/75 81/85/81 +f 64/62/64 81/85/81 82/88/82 63/63/63 +f 81/85/81 75/80/75 76/75/76 87/82/87 +f 63/63/63 82/88/82 83/83/83 59/60/59 +f 83/83/83 69/72/69 59/60/59 +f 72/67/72 59/60/59 69/72/69 +f 59/60/59 72/67/72 71/66/71 60/57/60 +f 69/72/69 83/83/83 87/82/87 70/69/70 +f 87/82/87 76/75/76 70/69/70 +f 73/74/73 60/57/60 76/75/76 +f 60/57/60 71/66/71 70/69/70 76/75/76 +f 58/58/58 67/65/67 68/68/68 57/59/57 +f 58/58/58 80/76/80 66/70/66 67/65/67 +f 79/73/79 80/76/80 58/58/58 +f 58/58/58 62/61/62 78/78/78 79/73/79 +f 86/86/86 77/79/77 78/78/78 62/61/62 +f 61/64/61 85/87/85 86/86/86 62/61/62 +f 77/79/77 86/86/86 88/81/88 80/76/80 +f 88/81/88 84/84/84 65/71/65 66/70/66 +f 88/81/88 66/70/66 80/76/80 +f 65/71/65 57/59/57 68/68/68 +f 85/87/85 61/64/61 57/59/57 84/84/84 +f 84/84/84 57/59/57 65/71/65 +v -14.690150 -2.438636 -3.546326 +v -10.279407 -2.438636 0.585510 +v -14.690150 -0.840940 -3.546326 +v -10.279407 -0.840940 0.585510 +v -16.169479 -2.438636 -1.967133 +v -11.758737 -2.438636 2.164704 +v -16.169479 -0.840940 -1.967133 +v -11.758737 -0.840940 2.164704 +v -13.380321 -1.115499 -4.944578 +v -8.969601 -1.115499 -0.812760 +v -13.380321 0.482185 -4.944578 +v -8.969601 0.482185 -0.812760 +v -14.859653 -1.115499 -3.365405 +v -10.448930 -1.115499 0.766433 +v -14.859653 0.482185 -3.365405 +v -10.448930 0.482185 0.766433 +v -12.070254 0.196937 -6.343090 +v -7.659532 0.196937 -2.211254 +v -12.070254 1.794623 -6.343090 +v -7.659532 1.794623 -2.211254 +v -13.549586 0.196937 -4.763898 +v -9.138861 0.196937 -0.632061 +v -13.549586 1.794623 -4.763898 +v -9.138861 1.794623 -0.632061 +v -10.764113 1.642653 -7.737381 +v -6.353393 1.642653 -3.605563 +v -10.764113 3.240357 -7.737381 +v -6.353393 3.240357 -3.605563 +v -12.243443 1.642653 -6.158208 +v -7.832721 1.642653 -2.026372 +v -12.243443 3.240357 -6.158208 +v -7.832721 3.240357 -2.026372 +v -9.441105 2.946721 -9.149704 +v -5.030383 2.946721 -5.017866 +v -9.441105 4.544406 -9.149704 +v -5.030383 4.544406 -5.017866 +v -10.920434 2.946721 -7.570510 +v -6.509713 2.946721 -3.438693 +v -10.920434 4.544406 -7.570510 +v -6.509713 4.544406 -3.438693 +v -8.122141 4.334330 -10.557693 +v -3.711419 4.334330 -6.425856 +v -8.122141 5.932015 -10.557693 +v -3.711419 5.932015 -6.425856 +v -9.601472 4.334330 -8.978500 +v -5.190750 4.334330 -4.846683 +v -9.601472 5.932015 -8.978500 +v -5.190750 5.932015 -4.846683 +v -6.848679 5.589522 -11.917114 +v -2.437950 5.589522 -7.785277 +v -6.848679 7.187207 -11.917114 +v -2.437950 7.187207 -7.785277 +v -8.328009 5.589522 -10.337922 +v -3.917289 5.589522 -6.206105 +v -8.328009 7.187207 -10.337922 +v -3.917289 7.187207 -6.206105 +vn -0.026644 -0.577351 -0.816061 +vn 0.816062 -0.577350 -0.026645 +vn -0.026644 0.577351 -0.816061 +vn 0.816062 0.577350 -0.026645 +vn -0.816062 -0.577350 0.026644 +vn 0.026644 -0.577351 0.816061 +vn -0.816062 0.577350 0.026644 +vn 0.026644 0.577351 0.816061 +vn -0.026641 -0.577349 -0.816063 +vn 0.816062 -0.577350 -0.026644 +vn -0.026641 0.577349 -0.816063 +vn 0.816062 0.577350 -0.026644 +vn -0.816061 -0.577351 0.026640 +vn 0.026643 -0.577351 0.816061 +vn -0.816061 0.577351 0.026640 +vn 0.026643 0.577351 0.816061 +vn -0.026643 -0.577351 -0.816061 +vn 0.816062 -0.577349 -0.026644 +vn -0.026643 0.577351 -0.816061 +vn 0.816062 0.577349 -0.026644 +vn -0.816062 -0.577350 0.026643 +vn 0.026644 -0.577351 0.816061 +vn -0.816062 0.577350 0.026643 +vn 0.026644 0.577351 0.816061 +vn -0.026642 -0.577349 -0.816062 +vn 0.816062 -0.577350 -0.026644 +vn -0.026642 0.577349 -0.816062 +vn 0.816062 0.577350 -0.026644 +vn -0.816062 -0.577351 0.026641 +vn 0.026643 -0.577351 0.816061 +vn -0.816062 0.577351 0.026641 +vn 0.026643 0.577351 0.816061 +vn -0.026643 -0.577351 -0.816061 +vn 0.816062 -0.577351 -0.026641 +vn -0.026643 0.577351 -0.816061 +vn 0.816062 0.577351 -0.026641 +vn -0.816062 -0.577350 0.026645 +vn 0.026642 -0.577349 0.816062 +vn -0.816062 0.577350 0.026645 +vn 0.026642 0.577349 0.816062 +vn -0.026643 -0.577351 -0.816061 +vn 0.816062 -0.577351 -0.026641 +vn -0.026643 0.577351 -0.816061 +vn 0.816062 0.577351 -0.026641 +vn -0.816062 -0.577350 0.026644 +vn 0.026642 -0.577349 0.816063 +vn -0.816062 0.577350 0.026644 +vn 0.026642 0.577349 0.816063 +vn -0.026644 -0.577351 -0.816061 +vn 0.816061 -0.577352 -0.026640 +vn -0.026644 0.577351 -0.816061 +vn 0.816061 0.577352 -0.026640 +vn -0.816062 -0.577350 0.026644 +vn 0.026640 -0.577349 0.816063 +vn -0.816062 0.577350 0.026644 +vn 0.026640 0.577349 0.816063 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +g Generic +usemtl Default +f 92/89/92 90/90/90 89/91/89 91/92/91 +f 94/93/94 96/94/96 95/95/95 93/96/93 +f 94/93/94 93/96/93 89/91/89 90/90/90 +f 96/94/96 94/93/94 90/90/90 92/89/92 +f 95/95/95 96/94/96 92/89/92 91/92/91 +f 93/96/93 95/95/95 91/92/91 89/91/89 +f 100/97/100 98/98/98 97/99/97 99/100/99 +f 102/101/102 104/102/104 103/103/103 101/104/101 +f 102/101/102 101/104/101 97/99/97 98/98/98 +f 104/102/104 102/101/102 98/98/98 100/97/100 +f 103/103/103 104/102/104 100/97/100 99/100/99 +f 101/104/101 103/103/103 99/100/99 97/99/97 +f 108/105/108 106/106/106 105/107/105 107/108/107 +f 110/109/110 112/110/112 111/111/111 109/112/109 +f 110/109/110 109/112/109 105/107/105 106/106/106 +f 112/110/112 110/109/110 106/106/106 108/105/108 +f 111/111/111 112/110/112 108/105/108 107/108/107 +f 109/112/109 111/111/111 107/108/107 105/107/105 +f 116/113/116 114/114/114 113/115/113 115/116/115 +f 118/117/118 120/118/120 119/119/119 117/120/117 +f 118/117/118 117/120/117 113/115/113 114/114/114 +f 120/118/120 118/117/118 114/114/114 116/113/116 +f 119/119/119 120/118/120 116/113/116 115/116/115 +f 117/120/117 119/119/119 115/116/115 113/115/113 +f 124/121/124 122/122/122 121/123/121 123/124/123 +f 126/125/126 128/126/128 127/127/127 125/128/125 +f 126/125/126 125/128/125 121/123/121 122/122/122 +f 128/126/128 126/125/126 122/122/122 124/121/124 +f 127/127/127 128/126/128 124/121/124 123/124/123 +f 125/128/125 127/127/127 123/124/123 121/123/121 +f 132/129/132 130/130/130 129/131/129 131/132/131 +f 134/133/134 136/134/136 135/135/135 133/136/133 +f 134/133/134 133/136/133 129/131/129 130/130/130 +f 136/134/136 134/133/134 130/130/130 132/129/132 +f 135/135/135 136/134/136 132/129/132 131/132/131 +f 133/136/133 135/135/135 131/132/131 129/131/129 +f 140/137/140 138/138/138 137/139/137 139/140/139 +f 142/141/142 144/142/144 143/143/143 141/144/141 +f 142/141/142 141/144/141 137/139/137 138/138/138 +f 144/142/144 142/141/142 138/138/138 140/137/140 +f 143/143/143 144/142/144 140/137/140 139/140/139 +f 141/144/141 143/143/143 139/140/139 137/139/137 +v -3.133902 -2.799647 -1.494773 +v 1.464393 -2.799647 -2.054976 +v -3.133902 10.274025 -1.494773 +v 1.464393 10.274025 -2.054976 +v -2.673638 -2.799647 2.283187 +v 1.924656 -2.799647 1.722984 +v -2.673638 10.274025 2.283187 +v 1.924656 10.274025 1.722984 +vn -0.642934 -0.577350 -0.503291 +vn 0.503291 -0.577350 -0.642934 +vn -0.642934 0.577350 -0.503291 +vn 0.503291 0.577350 -0.642934 +vn -0.503291 -0.577350 0.642934 +vn 0.642934 -0.577350 0.503291 +vn -0.503291 0.577350 0.642934 +vn 0.642934 0.577350 0.503291 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +g Generic +usemtl Default +f 148/145/148 146/146/146 145/147/145 147/148/147 +f 150/149/150 152/150/152 151/151/151 149/152/149 +f 150/149/150 149/152/149 145/147/145 146/146/146 +f 152/150/152 150/149/150 146/146/146 148/145/148 +f 151/151/151 152/150/152 148/145/148 147/148/147 +f 149/152/149 151/151/151 147/148/147 145/147/145 +v 7.996987 -2.799647 3.106367 +v 10.805010 -2.799647 2.764270 +v 7.996987 10.274025 3.106367 +v 10.805010 10.274025 2.764270 +v 8.308006 -2.799647 5.659298 +v 11.116030 -2.799647 5.317201 +v 8.308006 10.274025 5.659298 +v 11.116030 10.274025 5.317201 +vn -0.642934 -0.577350 -0.503291 +vn 0.503291 -0.577350 -0.642934 +vn -0.642934 0.577350 -0.503291 +vn 0.503291 0.577350 -0.642934 +vn -0.503291 -0.577350 0.642934 +vn 0.642934 -0.577350 0.503291 +vn -0.503291 0.577350 0.642934 +vn 0.642934 0.577350 0.503291 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +g Generic +usemtl Default +f 156/153/156 154/154/154 153/155/153 155/156/155 +f 158/157/158 160/158/160 159/159/159 157/160/157 +f 158/157/158 157/160/157 153/155/153 154/154/154 +f 160/158/160 158/157/158 154/154/154 156/153/156 +f 159/159/159 160/158/160 156/153/156 155/156/155 +f 157/160/157 159/159/159 155/156/155 153/155/153 +v -10.347970 -2.799647 6.769098 +v -7.539968 -2.799647 6.427003 +v -10.347970 10.274025 6.769098 +v -7.539968 10.274025 6.427003 +v -10.036951 -2.799647 9.322028 +v -7.228948 -2.799647 8.979934 +v -10.036951 10.274025 9.322028 +v -7.228948 10.274025 8.979934 +vn -0.642934 -0.577350 -0.503291 +vn 0.503291 -0.577350 -0.642934 +vn -0.642934 0.577350 -0.503291 +vn 0.503291 0.577350 -0.642934 +vn -0.503291 -0.577350 0.642934 +vn 0.642934 -0.577350 0.503291 +vn -0.503291 0.577350 0.642934 +vn 0.642934 0.577350 0.503291 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +g Generic +usemtl Default +f 164/161/164 162/162/162 161/163/161 163/164/163 +f 166/165/166 168/166/168 167/167/167 165/168/165 +f 166/165/166 165/168/165 161/163/161 162/162/162 +f 168/166/168 166/165/166 162/162/162 164/161/164 +f 167/167/167 168/166/168 164/161/164 163/164/163 +f 165/168/165 167/167/167 163/164/163 161/163/161 +v 7.004179 -2.799647 -5.042874 +v 9.812201 -2.799647 -5.384971 +v 7.004179 10.274025 -5.042874 +v 9.812201 10.274025 -5.384971 +v 7.315200 -2.799647 -2.489926 +v 10.123222 -2.799647 -2.832022 +v 7.315200 10.274025 -2.489926 +v 10.123222 10.274025 -2.832022 +vn -0.642934 -0.577350 -0.503291 +vn 0.503291 -0.577350 -0.642934 +vn -0.642934 0.577350 -0.503291 +vn 0.503291 0.577350 -0.642934 +vn -0.503292 -0.577350 0.642934 +vn 0.642934 -0.577350 0.503291 +vn -0.503292 0.577350 0.642934 +vn 0.642934 0.577350 0.503291 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +g Generic +usemtl Default +f 172/169/172 170/170/170 169/171/169 171/172/171 +f 174/173/174 176/174/176 175/175/175 173/176/173 +f 174/173/174 173/176/173 169/171/169 170/170/170 +f 176/174/176 174/173/174 170/170/170 172/169/172 +f 175/175/175 176/174/176 172/169/172 171/172/171 +f 173/176/173 175/175/175 171/172/171 169/171/169 +v 5.762568 -2.799647 -15.234345 +v 8.570591 -2.799647 -15.576443 +v 5.762568 10.274025 -15.234345 +v 8.570591 10.274025 -15.576443 +v 6.073587 -2.799647 -12.681417 +v 8.881610 -2.799647 -13.023514 +v 6.073587 10.274025 -12.681417 +v 8.881610 10.274025 -13.023514 +vn -0.642934 -0.577350 -0.503291 +vn 0.503291 -0.577350 -0.642934 +vn -0.642934 0.577350 -0.503291 +vn 0.503291 0.577350 -0.642934 +vn -0.503291 -0.577350 0.642934 +vn 0.642934 -0.577350 0.503292 +vn -0.503291 0.577350 0.642934 +vn 0.642934 0.577350 0.503292 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +g Generic +usemtl Default +f 180/177/180 178/178/178 177/179/177 179/180/179 +f 182/181/182 184/182/184 183/183/183 181/184/181 +f 182/181/182 181/184/181 177/179/177 178/178/178 +f 184/182/184 182/181/182 178/178/178 180/177/180 +f 183/183/183 184/182/184 180/177/180 179/180/179 +f 181/184/181 183/183/183 179/180/179 177/179/177 +v 14.876493 -2.799647 -3.645519 +v 17.684513 -2.799647 -3.987616 +v 14.876493 10.274025 -3.645519 +v 17.684513 10.274025 -3.987616 +v 15.187513 -2.799647 -1.092582 +v 17.995535 -2.799647 -1.434679 +v 15.187513 10.274025 -1.092582 +v 17.995535 10.274025 -1.434679 +vn -0.642934 -0.577350 -0.503291 +vn 0.503291 -0.577350 -0.642935 +vn -0.642934 0.577350 -0.503291 +vn 0.503291 0.577350 -0.642935 +vn -0.503291 -0.577350 0.642934 +vn 0.642934 -0.577350 0.503291 +vn -0.503291 0.577350 0.642934 +vn 0.642934 0.577350 0.503291 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +g Generic +usemtl Default +f 188/185/188 186/186/186 185/187/185 187/188/187 +f 190/189/190 192/190/192 191/191/191 189/192/189 +f 190/189/190 189/192/189 185/187/185 186/186/186 +f 192/190/192 190/189/190 186/186/186 188/185/188 +f 191/191/191 192/190/192 188/185/188 187/188/187 +f 189/192/189 191/191/191 187/188/187 185/187/185 +v 12.915435 -2.799647 -13.547013 +v 15.723457 -2.799647 -13.889110 +v 12.915435 10.274025 -13.547013 +v 15.723457 10.274025 -13.889110 +v 13.226457 -2.799647 -10.994064 +v 16.034479 -2.799647 -11.336161 +v 13.226457 10.274025 -10.994064 +v 16.034479 10.274025 -11.336161 +vn -0.642934 -0.577350 -0.503291 +vn 0.503291 -0.577350 -0.642934 +vn -0.642934 0.577350 -0.503291 +vn 0.503291 0.577350 -0.642934 +vn -0.503291 -0.577350 0.642934 +vn 0.642934 -0.577350 0.503291 +vn -0.503291 0.577350 0.642934 +vn 0.642934 0.577350 0.503291 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +g Generic +usemtl Default +f 196/193/196 194/194/194 193/195/193 195/196/195 +f 198/197/198 200/198/200 199/199/199 197/200/197 +f 198/197/198 197/200/197 193/195/193 194/194/194 +f 200/198/200 198/197/198 194/194/194 196/193/196 +f 199/199/199 200/198/200 196/193/196 195/196/195 +f 197/200/197 199/199/199 195/196/195 193/195/193 +v -22.922894 -2.556200 -16.330383 +v -18.324535 -2.556200 -16.890593 +v -22.922894 0.984404 -16.330383 +v -18.324535 0.984404 -16.890593 +v -22.462635 -2.556200 -12.552464 +v -17.864281 -2.556200 -13.112674 +v -22.462635 0.984404 -12.552464 +v -17.864281 0.984404 -13.112674 +vn -0.642934 -0.577350 -0.503291 +vn 0.503292 -0.577350 -0.642934 +vn -0.642934 0.577350 -0.503291 +vn 0.503292 0.577350 -0.642934 +vn -0.503291 -0.577350 0.642934 +vn 0.642934 -0.577350 0.503292 +vn -0.503291 0.577350 0.642934 +vn 0.642934 0.577350 0.503292 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +g Generic +usemtl Default +f 204/201/204 202/202/202 201/203/201 203/204/203 +f 206/205/206 208/206/208 207/207/207 205/208/205 +f 206/205/206 205/208/205 201/203/201 202/202/202 +f 208/206/208 206/205/206 202/202/202 204/201/204 +f 207/207/207 208/206/208 204/201/204 203/204/203 +f 205/208/205 207/207/207 203/204/203 201/203/201 +v -19.387363 -2.556200 -12.904255 +v -15.430549 -2.556200 -10.495531 +v -19.387363 0.984404 -12.904255 +v -15.430549 0.984404 -10.495531 +v -21.366352 -2.556200 -9.653341 +v -17.409561 -2.556200 -7.244633 +v -21.366352 0.984404 -9.653341 +v -17.409561 0.984404 -7.244633 +vn -0.192948 -0.577351 -0.793371 +vn 0.793371 -0.577351 -0.192945 +vn -0.192948 0.577351 -0.793371 +vn 0.793371 0.577351 -0.192945 +vn -0.793371 -0.577350 0.192949 +vn 0.192946 -0.577349 0.793372 +vn -0.793371 0.577350 0.192949 +vn 0.192946 0.577349 0.793372 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +g Generic +usemtl Default +f 212/209/212 210/210/210 209/211/209 211/212/211 +f 214/213/214 216/214/216 215/215/215 213/216/213 +f 214/213/214 213/216/213 209/211/209 210/210/210 +f 216/214/216 214/213/214 210/210/210 212/209/212 +f 215/215/215 216/214/216 212/209/212 211/212/211 +f 213/216/213 215/215/215 211/212/211 209/211/209 +v -21.119835 0.947249 -14.128448 +v -16.834282 0.947249 -15.886953 +v -21.119835 4.487851 -14.128448 +v -16.834282 4.487851 -15.886953 +v -19.675140 0.947249 -10.607425 +v -15.389552 0.947249 -12.365835 +v -19.675140 4.487851 -10.607425 +v -15.389552 4.487851 -12.365835 +vn -0.753303 -0.577346 -0.314970 +vn 0.314968 -0.577355 -0.753297 +vn -0.753303 0.577346 -0.314970 +vn 0.314968 0.577355 -0.753297 +vn -0.314977 -0.577351 0.753297 +vn 0.753297 -0.577350 0.314978 +vn -0.314977 0.577351 0.753297 +vn 0.753297 0.577350 0.314978 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +g Generic +usemtl Default +f 220/217/220 218/218/218 217/219/217 219/220/219 +f 222/221/222 224/222/224 223/223/223 221/224/221 +f 222/221/222 221/224/221 217/219/217 218/218/218 +f 224/222/224 222/221/222 218/218/218 220/217/220 +f 223/223/223 224/222/224 220/217/220 219/220/219 +f 221/224/221 223/223/223 219/220/219 217/219/217 +v 2.391826 -2.556200 -19.414434 +v 6.990122 -2.556200 -19.974638 +v 2.391826 0.984404 -19.414434 +v 6.990122 0.984404 -19.974638 +v 2.852083 -2.556200 -15.636515 +v 7.450379 -2.556200 -16.196718 +v 2.852083 0.984404 -15.636515 +v 7.450379 0.984404 -16.196718 +vn -0.642934 -0.577350 -0.503291 +vn 0.503291 -0.577350 -0.642934 +vn -0.642934 0.577350 -0.503291 +vn 0.503291 0.577350 -0.642934 +vn -0.503291 -0.577350 0.642934 +vn 0.642934 -0.577350 0.503291 +vn -0.503291 0.577350 0.642934 +vn 0.642934 0.577350 0.503291 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +g Generic +usemtl Default +f 228/225/228 226/226/226 225/227/225 227/228/227 +f 230/229/230 232/230/232 231/231/231 229/232/229 +f 230/229/230 229/232/229 225/227/225 226/226/226 +f 232/230/232 230/229/230 226/226/226 228/225/228 +f 231/231/231 232/230/232 228/225/228 227/228/227 +f 229/232/229 231/231/231 227/228/227 225/227/225 +v 13.906441 -2.556200 -15.886549 +v 18.504681 -2.556200 -16.446747 +v 13.906441 0.984404 -15.886549 +v 18.504681 0.984404 -16.446747 +v 14.366704 -2.556200 -12.108590 +v 18.964945 -2.556200 -12.668786 +v 14.366704 0.984404 -12.108590 +v 18.964945 0.984404 -12.668786 +vn -0.642934 -0.577350 -0.503291 +vn 0.503291 -0.577350 -0.642934 +vn -0.642934 0.577350 -0.503291 +vn 0.503291 0.577350 -0.642934 +vn -0.503291 -0.577350 0.642934 +vn 0.642934 -0.577350 0.503291 +vn -0.503291 0.577350 0.642934 +vn 0.642934 0.577350 0.503291 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +g Generic +usemtl Default +f 236/233/236 234/234/234 233/235/233 235/236/235 +f 238/237/238 240/238/240 239/239/239 237/240/237 +f 238/237/238 237/240/237 233/235/233 234/234/234 +f 240/238/240 238/237/238 234/234/234 236/233/236 +f 239/239/239 240/238/240 236/233/236 235/236/235 +f 237/240/237 239/239/239 235/236/235 233/235/233 +v -5.576640 7.173705 -12.009265 +v 13.232948 7.173705 -14.300806 +v -5.576640 8.236020 -12.009265 +v 13.232948 8.236020 -14.300806 +v -4.784395 7.173705 -5.506305 +v 14.025193 7.173705 -7.797847 +v -4.784395 8.236020 -5.506305 +v 14.025193 8.236020 -7.797847 +vn -0.642934 -0.577350 -0.503291 +vn 0.503291 -0.577350 -0.642934 +vn -0.642934 0.577350 -0.503291 +vn 0.503291 0.577350 -0.642934 +vn -0.503291 -0.577350 0.642934 +vn 0.642934 -0.577350 0.503291 +vn -0.503291 0.577350 0.642934 +vn 0.642934 0.577350 0.503291 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +g Generic +usemtl Default +f 244/241/244 242/242/242 241/243/241 243/244/243 +f 246/245/246 248/246/248 247/247/247 245/248/245 +f 246/245/246 245/248/245 241/243/241 242/242/242 +f 248/246/248 246/245/246 242/242/242 244/241/244 +f 247/247/247 248/246/248 244/241/244 243/244/243 +f 245/248/245 247/247/247 243/244/243 241/243/241 +v -24.029739 6.868023 2.073466 +v -5.220205 6.868023 -0.218069 +v -24.029739 7.930318 2.073466 +v -5.220205 7.930318 -0.218069 +v -23.237495 6.868023 8.576427 +v -4.427960 6.868023 6.284892 +v -23.237495 7.930318 8.576427 +v -4.427960 7.930318 6.284892 +vn -0.642934 -0.577350 -0.503291 +vn 0.503291 -0.577350 -0.642934 +vn -0.642934 0.577350 -0.503291 +vn 0.503291 0.577350 -0.642934 +vn -0.503291 -0.577350 0.642934 +vn 0.642934 -0.577350 0.503291 +vn -0.503291 0.577350 0.642934 +vn 0.642934 0.577350 0.503291 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +g Generic +usemtl Default +f 252/249/252 250/250/250 249/251/249 251/252/251 +f 254/253/254 256/254/256 255/255/255 253/256/253 +f 254/253/254 253/256/253 249/251/249 250/250/250 +f 256/254/256 254/253/254 250/250/250 252/249/252 +f 255/255/255 256/254/256 252/249/252 251/252/251 +f 253/256/253 255/255/255 251/252/251 249/251/249 +v -3.066964 14.079152 8.374180 +v 1.850904 7.163459 -8.568049 +v -2.958884 15.068172 8.001846 +v 1.959003 8.152479 -8.940387 +v 3.224372 14.079152 10.200409 +v 8.142260 7.163459 -6.741843 +v 3.332469 15.068172 9.828053 +v 8.250336 8.152479 -7.114196 +vn -0.763055 -0.326793 0.557632 +vn -0.463362 -0.748238 -0.474802 +vn -0.645557 0.748250 0.152899 +vn -0.345879 0.326811 -0.879524 +vn 0.345884 -0.326798 0.879527 +vn 0.645565 -0.748241 -0.152908 +vn 0.463358 0.748247 0.474790 +vn 0.763048 0.326807 -0.557634 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +g Generic +usemtl Default +f 260/257/260 258/258/258 257/259/257 259/260/259 +f 262/261/262 264/262/264 263/263/263 261/264/261 +f 262/261/262 261/264/261 257/259/257 258/258/258 +f 264/262/264 262/261/262 258/258/258 260/257/260 +f 263/263/263 264/262/264 260/257/260 259/260/259 +f 261/264/261 263/263/263 259/260/259 257/259/257 +v -6.644157 5.489818 -0.528142 +v -2.045856 5.489818 -1.088346 +v -6.644157 9.030419 -0.528142 +v -2.045856 9.030419 -1.088346 +v -6.183894 5.489818 3.249823 +v -1.585592 5.489818 2.689619 +v -6.183894 9.030419 3.249823 +v -1.585592 9.030419 2.689619 +vn -0.642934 -0.577350 -0.503291 +vn 0.503291 -0.577350 -0.642934 +vn -0.642934 0.577350 -0.503291 +vn 0.503291 0.577350 -0.642934 +vn -0.503291 -0.577350 0.642934 +vn 0.642934 -0.577350 0.503291 +vn -0.503291 0.577350 0.642934 +vn 0.642934 0.577350 0.503291 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +g Generic +usemtl Default +f 268/265/268 266/266/266 265/267/265 267/268/267 +f 270/269/270 272/270/272 271/271/271 269/272/269 +f 270/269/270 269/272/269 265/267/265 266/266/266 +f 272/270/272 270/269/270 266/266/266 268/265/268 +f 271/271/271 272/270/272 268/265/268 267/268/267 +f 269/272/269 271/271/271 267/268/267 265/267/265 +v -6.385265 -2.556200 11.803425 +v -3.546856 -2.556200 8.142606 +v -6.385265 0.984404 11.803425 +v -3.546856 0.984404 8.142606 +v -3.377541 -2.556200 14.135456 +v -0.539135 -2.556200 10.474639 +v -3.377541 0.984404 14.135456 +v -0.539135 0.984404 10.474639 +vn -0.810037 -0.577350 0.102502 +vn -0.102502 -0.577350 -0.810037 +vn -0.810037 0.577350 0.102502 +vn -0.102502 0.577350 -0.810037 +vn 0.102502 -0.577350 0.810037 +vn 0.810037 -0.577350 -0.102502 +vn 0.102502 0.577350 0.810037 +vn 0.810037 0.577350 -0.102502 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +g Generic +usemtl Default +f 276/273/276 274/274/274 273/275/273 275/276/275 +f 278/277/278 280/278/280 279/279/279 277/280/277 +f 278/277/278 277/280/277 273/275/273 274/274/274 +f 280/278/280 278/277/278 274/274/274 276/273/276 +f 279/279/279 280/278/280 276/273/276 275/276/275 +f 277/280/277 279/279/279 275/276/275 273/275/273 +v 13.473137 2.100612 23.352911 +v 13.473137 4.463260 23.352911 +v 13.949500 2.100612 25.847401 +v 13.949500 4.463260 25.847401 +v 16.029657 2.104442 22.870707 +v 16.032919 4.467090 22.869925 +v 16.441402 4.467090 25.377504 +v 16.438084 2.104442 25.378296 +v 15.876395 -1.229438 21.959049 +v 20.448454 -1.235113 21.214510 +v 15.828266 11.838176 21.563995 +v 20.400303 11.832507 20.819263 +v 16.488071 -1.113641 25.713701 +v 21.060127 -1.119316 24.969160 +v 16.439941 11.953967 25.318645 +v 21.011976 11.948298 24.573915 +v 15.842556 8.721443 21.663544 +v 15.838550 9.811758 21.630657 +v 16.452887 9.204490 25.407169 +v 16.456894 8.114195 25.440060 +v 20.010408 9.286901 20.967091 +v 19.868492 10.358484 20.957176 +v 20.482813 9.751219 24.733696 +v 20.624725 8.679634 24.743608 +v 4.861748 -1.215768 23.753183 +v 9.433783 -1.221443 23.008457 +v 4.813596 11.851851 23.357937 +v 9.385630 11.846182 22.613211 +v 5.473380 -1.099970 27.507647 +v 10.045456 -1.105645 26.763109 +v 5.425251 11.967642 27.112595 +v 9.997305 11.961973 26.367865 +v 9.399155 8.938145 22.706486 +v 9.403185 7.847831 22.739567 +v 10.017523 7.240564 26.516081 +v 10.013493 8.330879 26.483002 +v 5.075011 8.351486 23.429117 +v 5.216946 7.279902 23.439030 +v 5.831264 6.672635 27.215549 +v 5.689349 7.744239 27.205633 +v 3.801822 8.678734 14.739783 +v 18.655296 10.626419 12.636736 +v 3.691645 9.718966 14.924976 +v 18.545118 11.666653 12.821929 +v 6.285872 6.223238 30.010189 +v 21.139345 8.170923 27.907164 +v 6.175710 7.263470 30.195515 +v 21.029186 9.211155 28.092489 +vn -0.674105 -0.578078 -0.459792 +vn -0.675137 0.577488 -0.459019 +vn -0.459175 -0.577157 0.675313 +vn -0.460414 0.576637 0.674915 +vn -0.874537 -0.404130 -0.268073 +vn -0.874058 0.405652 -0.267335 +vn -0.736228 0.412457 0.536514 +vn -0.736489 -0.410874 0.537370 +vn -0.869849 -0.419786 -0.259117 +vn 0.479020 -0.595811 -0.644631 +vn -0.665152 0.559481 -0.494525 +vn 0.475166 0.558302 -0.680086 +vn -0.738901 -0.394194 0.546477 +vn 0.664916 -0.559911 0.494354 +vn -0.479184 0.595394 0.644895 +vn 0.660295 0.594271 0.459187 +vn -0.653723 -0.674107 -0.343839 +vn -0.446641 0.889899 -0.092693 +vn -0.383476 0.738255 0.554911 +vn -0.598376 -0.717022 0.357528 +vn 0.507392 -0.483889 -0.713025 +vn 0.446897 0.670317 -0.592417 +vn 0.561639 0.615923 0.552450 +vn 0.761640 -0.500653 0.411401 +vn -0.660367 -0.594167 -0.459217 +vn 0.479057 -0.595661 -0.644742 +vn -0.664879 0.559997 -0.494307 +vn 0.474968 0.558803 -0.679812 +vn -0.474997 -0.558661 0.679909 +vn 0.664777 -0.560175 0.494242 +vn -0.479133 0.595490 0.644844 +vn 0.660283 0.594268 0.459208 +vn 0.284472 0.885635 -0.367052 +vn 0.383391 -0.738379 -0.554805 +vn 0.563394 -0.802022 0.198364 +vn 0.248563 0.881811 0.400782 +vn -0.761595 0.500754 -0.411362 +vn -0.561702 -0.615829 -0.552491 +vn -0.446695 -0.670632 0.592213 +vn -0.507480 0.483523 0.713210 +vn -0.598564 -0.549179 -0.583201 +vn 0.535219 -0.400513 -0.743727 +vn -0.550276 0.810953 -0.198876 +vn 0.415456 0.730181 -0.542431 +vn -0.415433 -0.730223 0.542392 +vn 0.718303 -0.581562 0.381871 +vn -0.535235 0.400459 0.743745 +vn 0.380927 0.788075 0.483563 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +g Generic +usemtl Default +f 283/281/283 284/282/284 282/283/282 281/284/281 +f 285/285/285 281/284/281 282/283/282 286/286/286 +f 288/287/288 283/281/283 281/284/281 285/285/285 +f 284/282/284 287/288/287 286/286/286 282/283/282 +f 294/289/294 293/290/293 289/291/289 290/292/290 +f 296/293/296 294/289/294 290/292/290 292/294/292 +f 295/295/295 296/293/296 292/294/292 291/296/291 +f 292/294/292 290/292/290 289/291/289 297/297/297 301/298/301 302/299/302 298/300/298 291/296/291 +f 294/289/294 296/293/296 295/295/295 299/301/299 303/302/303 304/303/304 300/304/300 293/290/293 +f 299/301/299 295/295/295 291/296/291 298/300/298 +f 310/305/310 309/306/309 305/307/305 306/308/306 +f 311/309/311 312/310/312 308/311/308 307/312/307 +f 309/306/309 311/309/311 307/312/307 305/307/305 +f 306/308/306 305/307/305 307/312/307 308/311/308 313/313/313 317/314/317 318/315/318 314/316/314 +f 319/317/319 320/318/320 316/319/316 312/310/312 311/309/311 309/306/309 310/305/310 315/320/315 +f 312/310/312 316/319/316 313/313/313 308/311/308 +f 315/320/315 310/305/310 306/308/306 314/316/314 +f 324/321/324 322/322/322 321/323/321 323/324/323 +f 326/325/326 328/326/328 327/327/327 325/328/325 +f 325/328/325 327/327/327 320/318/320 319/317/319 +f 317/314/317 323/324/323 321/323/321 318/315/318 +f 328/326/328 326/325/326 304/303/304 303/302/303 +f 301/298/301 322/322/322 324/321/324 302/299/302 +f 320/318/320 327/327/327 328/326/328 316/319/316 +f 316/319/316 328/326/328 303/302/303 299/301/299 +f 298/300/298 313/313/313 316/319/316 299/301/299 +f 324/321/324 323/324/323 298/300/298 302/299/302 +f 298/300/298 323/324/323 317/314/317 313/313/313 +f 297/297/297 314/316/314 318/315/318 321/323/321 322/322/322 301/298/301 +f 314/316/314 297/297/297 300/304/300 315/320/315 +f 319/317/319 315/320/315 300/304/300 304/303/304 326/325/326 325/328/325 +f 288/287/288 293/290/293 300/304/300 287/288/287 +f 293/290/293 288/287/288 285/285/285 289/291/289 +f 289/291/289 285/285/285 286/286/286 297/297/297 +f 297/297/297 286/286/286 287/288/287 300/304/300 +f 283/281/283 288/287/288 287/288/287 284/282/284 +v 4.061719 12.278974 11.206284 +v 4.061719 15.240368 11.206284 +v 3.714470 12.278974 13.660270 +v 3.714470 15.240368 13.660270 +v 2.186756 12.278974 15.611854 +v 2.186756 15.240368 15.611854 +v -0.112078 12.278974 16.538113 +v -0.112078 15.240368 16.538113 +v -2.566060 12.278974 16.190882 +v -2.566060 15.240368 16.190882 +v -4.517662 12.278974 14.663177 +v -4.517662 15.240368 14.663177 +v -5.443921 12.278974 12.364341 +v -5.443921 15.240368 12.364341 +v -5.096690 12.278974 9.910357 +v -5.096690 15.240368 9.910357 +v -3.568967 12.278974 7.958751 +v -3.568967 15.240368 7.958751 +v -1.270133 12.278974 7.032493 +v -1.270133 15.240368 7.032493 +v 1.183848 12.278974 7.379724 +v 1.183848 15.240368 7.379724 +v 3.135441 12.278974 8.907449 +v 3.135441 15.240368 8.907449 +vn 0.881556 -0.459701 -0.107399 +vn 0.881556 0.459701 -0.107399 +vn 0.817148 -0.459701 0.347770 +vn 0.817148 0.459701 0.347770 +vn 0.533785 -0.459701 0.709752 +vn 0.533785 0.459701 0.709752 +vn 0.107399 -0.459700 0.881556 +vn 0.107399 0.459700 0.881556 +vn -0.347764 -0.459701 0.817151 +vn -0.347764 0.459701 0.817151 +vn -0.709750 -0.459701 0.533788 +vn -0.709750 0.459701 0.533788 +vn -0.881556 -0.459700 0.107399 +vn -0.881556 0.459700 0.107399 +vn -0.817150 -0.459701 -0.347766 +vn -0.817150 0.459701 -0.347766 +vn -0.533786 -0.459701 -0.709751 +vn -0.533786 0.459701 -0.709751 +vn -0.107398 -0.459700 -0.881556 +vn -0.107398 0.459700 -0.881556 +vn 0.347767 -0.459701 -0.817149 +vn 0.347767 0.459701 -0.817149 +vn 0.709751 -0.459701 -0.533788 +vn 0.709751 0.459701 -0.533788 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +g Generic +usemtl Default +f 331/329/331 329/330/329 330/331/330 332/332/332 +f 333/333/333 331/329/331 332/332/332 334/334/334 +f 335/335/335 333/333/333 334/334/334 336/336/336 +f 337/337/337 335/335/335 336/336/336 338/338/338 +f 339/339/339 337/337/337 338/338/338 340/340/340 +f 341/341/341 339/339/339 340/340/340 342/342/342 +f 343/343/343 341/341/341 342/342/342 344/344/344 +f 345/345/345 343/343/343 344/344/344 346/346/346 +f 347/347/347 345/345/345 346/346/346 348/348/348 +f 349/349/349 347/347/347 348/348/348 350/350/350 +f 351/351/351 349/349/349 350/350/350 352/352/352 +f 329/330/329 351/351/351 352/352/352 330/331/330 +f 352/352/352 350/350/350 348/348/348 346/346/346 344/344/344 342/342/342 340/340/340 338/338/338 336/336/336 334/334/334 332/332/332 330/331/330 +f 329/330/329 331/329/331 333/333/333 335/335/335 337/337/337 339/339/339 341/341/341 343/343/343 345/345/345 347/347/347 349/349/349 351/351/351 +v 28.405697 -3.409447 -5.443012 +v 31.444405 -3.297550 -5.813213 +v 34.483120 -2.968940 -6.183414 +v 37.521828 -2.565424 -6.553616 +v 40.560539 -2.398096 -6.923816 +v 43.599251 -2.565424 -7.294018 +v 46.637955 -3.060902 -7.664218 +v 49.676670 -3.737523 -8.034420 +v 52.715378 -4.412263 -8.404621 +v 55.754086 -4.771656 -8.774822 +v 58.792797 -4.869517 -9.145023 +v 28.405697 -2.438035 -5.443012 +v 31.444405 -2.320616 -5.813213 +v 34.483120 -1.985266 -6.183414 +v 37.521828 -1.576197 -6.553616 +v 40.560539 -1.407172 -6.923816 +v 43.599251 -1.576197 -7.294018 +v 46.637955 -2.077228 -7.664218 +v 49.676670 -2.769071 -8.034420 +v 52.715378 -3.449503 -8.404621 +v 55.754086 -3.811076 -8.774822 +v 58.792797 -3.906463 -9.145023 +v 28.775898 -3.356195 -2.404303 +v 31.814606 -2.968940 -2.774504 +v 34.853321 -2.195561 -3.144706 +v 37.892029 -1.397891 -3.514907 +v 40.930740 -1.104276 -3.885108 +v 43.969452 -1.397891 -4.255310 +v 47.008156 -2.265358 -4.625510 +v 50.046871 -3.336131 -4.995712 +v 53.085579 -4.231285 -5.365912 +v 56.124287 -4.658715 -5.736114 +v 59.162998 -4.771657 -6.106315 +v 59.162998 -3.811076 -6.106315 +v 56.124287 -3.698599 -5.736114 +v 53.085579 -3.269352 -5.365912 +v 50.046871 -2.352459 -4.995712 +v 47.008156 -1.248837 -4.625510 +v 43.969452 -0.404662 -4.255310 +v 40.930740 -0.112976 -3.885108 +v 37.892029 -0.404662 -3.514907 +v 34.853321 -1.181921 -3.144706 +v 31.814606 -1.985266 -2.774504 +v 28.775898 -2.384776 -2.404303 +v 29.146099 -3.255616 0.634407 +v 32.184807 -2.565424 0.264205 +v 35.223522 -1.397891 -0.105996 +v 38.262230 -0.537756 -0.476197 +v 41.300941 -0.278140 -0.846398 +v 44.339653 -0.537756 -1.216600 +v 47.378357 -1.421056 -1.586800 +v 50.417072 -2.762392 -1.957002 +v 53.455780 -3.792841 -2.327203 +v 56.494488 -4.284532 -2.697404 +v 59.533199 -4.412263 -3.067605 +v 59.533199 -3.449503 -3.067605 +v 56.494488 -3.322612 -2.697404 +v 53.455780 -2.824036 -2.327203 +v 50.417072 -1.767833 -1.957002 +v 47.378357 -0.423386 -1.586800 +v 44.339653 0.459619 -1.216600 +v 41.300941 0.718170 -0.846398 +v 38.262230 0.459619 -0.476197 +v 35.223522 -0.404662 -0.105996 +v 32.184807 -1.576197 0.264205 +v 29.146099 -2.277591 0.634407 +v 29.516300 -3.198068 3.673115 +v 32.555008 -2.398096 3.302914 +v 35.593723 -1.104276 2.932712 +v 38.632431 -0.278140 2.562511 +v 41.671143 -0.053185 2.192311 +v 44.709854 -0.278140 1.822109 +v 47.748558 -1.104276 1.451908 +v 50.787273 -2.449177 1.081707 +v 53.825981 -3.395026 0.711506 +v 56.864689 -3.776620 0.341305 +v 59.903400 -3.849413 -0.028896 +v 59.903400 -2.886490 -0.028896 +v 56.864689 -2.812960 0.341305 +v 53.825981 -2.415678 0.711506 +v 50.787273 -1.455851 1.081707 +v 47.748558 -0.112976 1.451908 +v 44.709854 0.718170 1.822109 +v 41.671143 0.937435 2.192311 +v 38.632431 0.718170 2.562511 +v 35.593723 -0.112976 2.932712 +v 32.555008 -1.407172 3.302914 +v 29.516300 -2.218710 3.673115 +v 29.886501 -3.255616 6.711825 +v 32.925209 -2.565424 6.341624 +v 35.963924 -1.397891 5.971423 +v 39.002632 -0.537756 5.601222 +v 42.041344 -0.278140 5.231021 +v 45.080055 -0.537756 4.860819 +v 48.118759 -1.397891 4.490619 +v 51.157475 -2.565424 4.120417 +v 54.196182 -3.278783 3.750216 +v 57.234890 -3.476367 3.380015 +v 60.273602 -3.501402 3.009814 +v 60.273602 -2.533448 3.009814 +v 57.234890 -2.507833 3.380015 +v 54.196182 -2.300760 3.750216 +v 51.157475 -1.576197 4.120417 +v 48.118759 -0.404662 4.490619 +v 45.080055 0.459619 4.860819 +v 42.041344 0.718170 5.231021 +v 39.002632 0.459619 5.601222 +v 35.963924 -0.404662 5.971423 +v 32.925209 -1.576197 6.341624 +v 29.886501 -2.277591 6.711825 +v 30.256702 -3.356195 9.750534 +v 33.295410 -2.968940 9.380333 +v 36.334126 -2.195561 9.010131 +v 39.372833 -1.397891 8.639931 +v 42.411545 -1.104277 8.269730 +v 45.450256 -1.397891 7.899528 +v 48.488960 -2.195561 7.529327 +v 51.527676 -2.968940 7.159126 +v 54.566383 -3.356195 6.788925 +v 57.605091 -3.409447 6.418724 +v 60.643803 -3.409447 6.048523 +v 60.643803 -2.438035 6.048523 +v 57.605091 -2.438035 6.418724 +v 54.566383 -2.384776 6.788925 +v 51.527676 -1.985266 7.159126 +v 48.488960 -1.181921 7.529327 +v 45.450256 -0.404662 7.899528 +v 42.411545 -0.112976 8.269730 +v 39.372833 -0.404662 8.639931 +v 36.334126 -1.181921 9.010131 +v 33.295410 -1.985266 9.380333 +v 30.256702 -2.384776 9.750534 +v 30.626904 -3.409447 12.789245 +v 33.665611 -3.293368 12.419044 +v 36.704327 -2.968940 12.048842 +v 39.743034 -2.565424 11.678641 +v 42.781746 -2.398096 11.308440 +v 45.820457 -2.565424 10.938239 +v 48.859161 -2.968940 10.568038 +v 51.897877 -3.297550 10.197837 +v 54.936584 -3.350677 9.827636 +v 57.975292 -3.239676 9.457435 +v 61.014004 -3.176165 9.087234 +v 61.014004 -2.195984 9.087234 +v 57.975292 -2.260967 9.457435 +v 54.936584 -2.379257 9.827636 +v 51.897877 -2.320616 10.197837 +v 48.859161 -1.985266 10.568038 +v 45.820457 -1.576197 10.938239 +v 42.781746 -1.407172 11.308440 +v 39.743034 -1.576197 11.678641 +v 36.704327 -1.985266 12.048842 +v 33.665611 -2.314560 12.419044 +v 30.626904 -2.438035 12.789245 +v 30.997105 -3.044981 15.827954 +v 34.035812 -2.785754 15.457753 +v 37.074528 -2.991724 15.087551 +v 40.113235 -3.219331 14.717350 +v 43.151947 -3.198068 14.347149 +v 46.190659 -3.255616 13.976948 +v 49.229362 -3.356195 13.606747 +v 52.268078 -3.285955 13.236546 +v 55.306786 -2.923296 12.866344 +v 58.345493 -2.477970 12.496143 +v 61.384205 -2.293303 12.125942 +v 61.384205 -1.300357 12.125942 +v 58.345493 -1.486896 12.496143 +v 55.306786 -1.938351 12.866344 +v 52.268078 -2.308449 13.236546 +v 49.229362 -2.384776 13.606747 +v 46.190659 -2.277591 13.976948 +v 43.151947 -2.218710 14.347149 +v 40.113235 -2.242946 14.717350 +v 37.074528 -2.000064 15.087551 +v 34.035812 -1.786767 15.457753 +v 30.997105 -2.053322 15.827954 +v 31.367306 -1.861028 18.866663 +v 34.406013 -1.262635 18.496462 +v 37.444729 -1.861028 18.126261 +v 40.483437 -3.044981 17.756060 +v 43.522148 -3.409447 17.385859 +v 46.560860 -3.409447 17.015657 +v 49.599564 -3.350677 16.645456 +v 52.638279 -2.923296 16.275255 +v 55.676987 -2.069782 15.905054 +v 58.715694 -1.189459 15.534853 +v 61.754406 -0.865421 15.164652 +v 61.754406 0.127940 15.164652 +v 58.715694 -0.193970 15.534853 +v 55.676987 -1.051766 15.905054 +v 52.638279 -1.938351 16.275255 +v 49.599564 -2.379257 16.645456 +v 46.560860 -2.438035 17.015657 +v 43.522148 -2.438035 17.385859 +v 40.483437 -2.053322 17.756060 +v 37.444729 -0.836300 18.126261 +v 34.406013 -0.228566 18.496462 +v 31.367306 -0.836300 18.866663 +v 31.737507 -1.262635 21.905371 +v 34.776215 -0.734991 21.535170 +v 37.814930 -1.262635 21.164968 +v 40.853638 -2.785754 20.794767 +v 43.892349 -3.405265 20.424566 +v 46.931061 -3.409447 20.054365 +v 49.969765 -3.239676 19.684164 +v 53.008480 -2.477970 19.313963 +v 56.047188 -1.189459 18.943762 +v 59.085896 -0.240200 18.573561 +v 62.124607 0.046317 18.203360 +v 62.124607 1.045207 18.203360 +v 59.085896 0.759866 18.573561 +v 56.047188 -0.193970 18.943762 +v 53.008480 -1.486896 19.313963 +v 49.969765 -2.260967 19.684164 +v 46.931061 -2.438035 20.054365 +v 43.892349 -2.431980 20.424566 +v 40.853638 -1.786767 20.794767 +v 37.814930 -0.228566 21.164968 +v 34.776215 0.279237 21.535170 +v 31.737507 -0.228566 21.905371 +v 32.107708 -1.861028 24.944080 +v 35.146416 -1.262635 24.573879 +v 38.185131 -1.861028 24.203678 +v 41.223839 -3.044981 23.833477 +v 44.262550 -3.409447 23.463276 +v 47.301262 -3.409447 23.093075 +v 50.339966 -3.176165 22.722874 +v 53.378681 -2.293303 22.352673 +v 56.417389 -0.865421 21.982471 +v 59.456097 0.046317 21.612270 +v 62.494808 0.294580 21.242069 +v 32.107708 -0.836300 24.944080 +v 35.146416 -0.228566 24.573879 +v 38.185131 -0.836300 24.203678 +v 41.223839 -2.053322 23.833477 +v 44.262550 -2.438035 23.463276 +v 47.301262 -2.438035 23.093075 +v 50.339966 -2.195984 22.722874 +v 53.378681 -1.300357 22.352673 +v 56.417389 0.127940 21.982471 +v 59.456097 1.045207 21.612270 +v 62.494808 1.287191 21.242069 +vn -0.599026 -0.602062 -0.527910 +vn 0.050826 -0.714581 -0.697704 +vn 0.110539 -0.740282 -0.663147 +vn 0.068305 -0.791033 -0.607948 +vn -0.067464 -0.826818 -0.558408 +vn -0.220364 -0.810985 -0.541980 +vn -0.312818 -0.765434 -0.562366 +vn -0.310167 -0.731317 -0.607431 +vn -0.235293 -0.721301 -0.651431 +vn -0.146453 -0.720505 -0.677808 +vn 0.497112 -0.591272 -0.635041 +vn -0.673059 0.528950 -0.516918 +vn -0.214383 0.627951 -0.748143 +vn -0.244448 0.573497 -0.781886 +vn -0.195686 0.552643 -0.810119 +vn -0.099946 0.558569 -0.823415 +vn 0.008650 0.577861 -0.816090 +vn 0.097853 0.605520 -0.789792 +vn 0.119938 0.639695 -0.759213 +vn 0.058512 0.673582 -0.736793 +vn -0.026391 0.691911 -0.721500 +vn 0.510733 0.564070 -0.648828 +vn -0.636587 -0.765097 0.096869 +vn 0.243364 -0.969112 0.039942 +vn 0.296439 -0.944376 0.142401 +vn 0.202625 -0.945466 0.255022 +vn 0.038919 -0.947516 0.317330 +vn -0.134932 -0.932967 0.333716 +vn -0.273840 -0.911088 0.308108 +vn -0.300219 -0.924670 0.234209 +vn -0.206048 -0.966808 0.151086 +vn -0.082062 -0.991596 0.100012 +vn 0.695273 -0.718229 -0.027242 +vn 0.709541 0.690960 -0.138295 +vn 0.084344 0.992606 -0.087289 +vn 0.215679 0.969716 -0.114603 +vn 0.318789 0.933719 -0.162917 +vn 0.288834 0.927346 -0.237916 +vn 0.139049 0.942800 -0.302974 +vn -0.038532 0.947194 -0.318338 +vn -0.203287 0.933954 -0.293945 +vn -0.303199 0.922896 -0.237346 +vn -0.257204 0.954734 -0.149428 +vn -0.770621 0.637095 0.015922 +vn -0.611009 -0.785914 0.094909 +vn 0.309377 -0.950758 0.018605 +vn 0.330547 -0.939656 0.088237 +vn 0.190193 -0.969929 0.151870 +vn 0.020844 -0.984928 0.171703 +vn -0.150180 -0.970266 0.189817 +vn -0.308041 -0.927864 0.210190 +vn -0.329400 -0.923913 0.194626 +vn -0.204784 -0.965387 0.161530 +vn -0.068907 -0.986607 0.147847 +vn 0.702926 -0.711047 0.017523 +vn 0.700835 0.687586 -0.189883 +vn 0.069750 0.985420 -0.155188 +vn 0.209274 0.964095 -0.163481 +vn 0.335981 0.925650 -0.174037 +vn 0.311741 0.930325 -0.193166 +vn 0.149069 0.969065 -0.196701 +vn -0.021008 0.984904 -0.171823 +vn -0.189856 0.970498 -0.148620 +vn -0.334154 0.933955 -0.126767 +vn -0.317712 0.944096 -0.087989 +vn -0.788491 0.613893 0.037649 +vn -0.613516 -0.786143 0.074682 +vn 0.303138 -0.952222 -0.037151 +vn 0.317442 -0.947484 -0.038790 +vn 0.171703 -0.984929 -0.020833 +vn -0.000031 -1.000000 0.000039 +vn -0.171685 -0.984928 0.020991 +vn -0.320490 -0.946391 0.040385 +vn -0.316495 -0.946991 0.055123 +vn -0.169818 -0.982385 0.077982 +vn -0.041434 -0.992752 0.112813 +vn 0.707821 -0.706351 0.007588 +vn 0.695169 0.693527 -0.189104 +vn 0.039320 0.988596 -0.145367 +vn 0.166981 0.977636 -0.127844 +vn 0.313375 0.945008 -0.093569 +vn 0.319572 0.945981 -0.054709 +vn 0.171636 0.984904 -0.022475 +vn -0.000043 1.000000 -0.000034 +vn -0.171841 0.984904 0.020860 +vn -0.318278 0.947194 0.039025 +vn -0.305022 0.951604 0.037580 +vn -0.781929 0.616023 0.095404 +vn -0.641295 -0.765086 0.058177 +vn 0.228429 -0.969783 -0.085684 +vn 0.261573 -0.951515 -0.161862 +vn 0.151503 -0.969324 -0.193539 +vn -0.021001 -0.984929 -0.171682 +vn -0.193092 -0.969929 -0.148167 +vn -0.296212 -0.945466 -0.135469 +vn -0.250966 -0.963185 -0.096388 +vn -0.112666 -0.993312 -0.025260 +vn -0.018339 -0.999200 0.035536 +vn 0.705864 -0.707020 -0.043341 +vn 0.697463 0.703445 -0.136786 +vn 0.014976 0.997486 -0.069265 +vn 0.106696 0.993220 -0.046145 +vn 0.246332 0.969140 0.009378 +vn 0.293675 0.951714 0.089414 +vn 0.192035 0.969807 0.150325 +vn 0.020851 0.984903 0.171847 +vn -0.150426 0.970143 0.190246 +vn -0.256521 0.945340 0.201317 +vn -0.222547 0.962215 0.156895 +vn -0.754377 0.638420 0.152757 +vn -0.675241 -0.734843 0.063685 +vn 0.118792 -0.989218 -0.085657 +vn 0.157385 -0.966855 -0.201053 +vn 0.094325 -0.951515 -0.292784 +vn -0.038560 -0.947484 -0.317470 +vn -0.165018 -0.939656 -0.299694 +vn -0.209409 -0.944376 -0.253579 +vn -0.142467 -0.975746 -0.166202 +vn -0.038468 -0.997398 -0.060972 +vn 0.011450 -0.999861 0.012149 +vn 0.708895 -0.702842 -0.059000 +vn 0.693587 0.709641 -0.123879 +vn -0.016267 0.998809 -0.046007 +vn 0.030011 0.999395 -0.017564 +vn 0.134792 0.989619 0.049859 +vn 0.203306 0.966094 0.159148 +vn 0.160941 0.951269 0.263029 +vn 0.038904 0.947163 0.318386 +vn -0.086977 0.939483 0.331370 +vn -0.143412 0.943787 0.297824 +vn -0.107136 0.974403 0.197637 +vn -0.721435 0.671438 0.169419 +vn -0.676722 -0.726492 0.119404 +vn 0.044928 -0.998382 0.034851 +vn 0.017094 -0.998543 -0.051192 +vn 0.002788 -0.978146 -0.207902 +vn -0.039266 -0.953079 -0.300165 +vn -0.092341 -0.950757 -0.295861 +vn -0.087286 -0.969736 -0.228021 +vn -0.009467 -0.992899 -0.118585 +vn 0.070787 -0.997491 0.000420 +vn 0.077588 -0.991887 0.100702 +vn 0.729717 -0.683588 0.014874 +vn 0.674057 0.707296 -0.213024 +vn -0.084884 0.983981 -0.156769 +vn -0.083368 0.991253 -0.102311 +vn -0.005273 0.999943 -0.009270 +vn 0.076243 0.990585 0.113699 +vn 0.087305 0.968659 0.232545 +vn 0.040110 0.951586 0.304755 +vn 0.010646 0.952089 0.305636 +vn 0.004997 0.977760 0.209667 +vn -0.034190 0.997958 0.053954 +vn -0.729579 0.680585 0.067219 +vn -0.635657 -0.727218 0.259024 +vn 0.039333 -0.961732 0.271154 +vn -0.137465 -0.957450 0.253757 +vn -0.129258 -0.989870 0.058725 +vn -0.046866 -0.992288 -0.114753 +vn -0.025705 -0.988873 -0.146527 +vn 0.025003 -0.994393 -0.102744 +vn 0.136203 -0.990513 -0.018254 +vn 0.214018 -0.971281 0.103967 +vn 0.172436 -0.955708 0.238511 +vn 0.755635 -0.643259 0.123425 +vn 0.644344 0.685570 -0.338843 +vn -0.176109 0.933268 -0.313044 +vn -0.225667 0.945862 -0.233280 +vn -0.154735 0.981077 -0.116383 +vn -0.037547 0.999278 0.005775 +vn 0.020768 0.994831 0.099400 +vn 0.052134 0.987864 0.146311 +vn 0.157049 0.982054 0.104429 +vn 0.172396 0.982522 -0.070214 +vn -0.031789 0.969133 -0.244480 +vn -0.774993 0.621770 -0.113085 +vn -0.614110 -0.734644 0.288386 +vn 0.037162 -0.955783 0.291717 +vn -0.247938 -0.917069 0.312269 +vn -0.256380 -0.946881 0.194126 +vn -0.076923 -0.996657 0.027514 +vn 0.014613 -0.999399 -0.031445 +vn 0.112773 -0.993474 -0.017085 +vn 0.265926 -0.963190 0.039342 +vn 0.323267 -0.933484 0.155265 +vn 0.220989 -0.934749 0.278224 +vn 0.762125 -0.632263 0.139315 +vn 0.638094 0.689687 -0.342297 +vn -0.221099 0.921316 -0.319831 +vn -0.329283 0.908367 -0.257764 +vn -0.280638 0.945862 -0.163057 +vn -0.124206 0.990379 -0.061016 +vn -0.018246 0.999820 0.005245 +vn 0.086584 0.996041 0.020138 +vn 0.286958 0.956545 -0.051730 +vn 0.272502 0.939816 -0.206126 +vn -0.033691 0.955810 -0.292048 +vn -0.786435 0.608575 -0.105618 +vn -0.643540 -0.761356 0.078699 +vn -0.000319 -1.000000 0.000408 +vn -0.292106 -0.955783 0.033964 +vn -0.280714 -0.959253 0.032134 +vn -0.079081 -0.996824 0.009362 +vn 0.032279 -0.999471 -0.003932 +vn 0.163733 -0.986486 -0.006001 +vn 0.337538 -0.941095 0.020224 +vn 0.360082 -0.927949 0.096185 +vn 0.208215 -0.963843 0.166293 +vn 0.748825 -0.661451 0.041746 +vn 0.657610 0.721687 -0.216142 +vn -0.207816 0.964545 -0.162679 +vn -0.363560 0.921316 -0.137843 +vn -0.346170 0.933268 -0.095798 +vn -0.172563 0.983981 -0.044762 +vn -0.035218 0.999322 -0.010758 +vn 0.082937 0.996504 -0.010097 +vn 0.288978 0.956719 -0.034363 +vn 0.296553 0.954354 -0.035559 +vn -0.000565 1.000000 -0.000442 +vn -0.765765 0.636361 0.092994 +vn -0.472038 -0.643086 0.603009 +vn 0.078113 -0.761356 0.643611 +vn -0.132507 -0.734644 0.665387 +vn -0.098830 -0.727218 0.679254 +vn 0.041474 -0.719840 0.692900 +vn 0.112202 -0.706581 0.698680 +vn 0.209777 -0.690552 0.692194 +vn 0.328519 -0.648610 0.686572 +vn 0.327924 -0.633767 0.700575 +vn 0.212216 -0.658508 0.722033 +vn 0.658530 -0.542480 0.521588 +vn -0.541870 0.502924 0.673383 +vn 0.093119 0.634566 0.767239 +vn 0.276022 0.628194 0.727451 +vn 0.257877 0.667479 0.698549 +vn 0.129422 0.704689 0.697613 +vn 0.057278 0.709991 0.701878 +vn -0.044956 0.707296 0.705487 +vn -0.174229 0.685570 0.706851 +vn -0.179082 0.689687 0.701613 +vn -0.051932 0.721687 0.690268 +vn 0.626124 0.606414 0.490133 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +g Cube +usemtl Default +f 365/353/365 354/354/354 353/355/353 364/356/364 +f 366/357/366 355/358/355 354/354/354 365/353/365 +f 367/359/367 356/360/356 355/358/355 366/357/366 +f 368/361/368 357/362/357 356/360/356 367/359/367 +f 369/363/369 358/364/358 357/362/357 368/361/368 +f 370/365/370 359/366/359 358/364/358 369/363/369 +f 371/367/371 360/368/360 359/366/359 370/365/370 +f 372/369/372 361/370/361 360/368/360 371/367/371 +f 373/371/373 362/372/362 361/370/361 372/369/372 +f 374/373/374 363/374/363 362/372/362 373/371/373 +f 376/375/376 375/376/375 353/355/353 354/354/354 +f 377/377/377 376/375/376 354/354/354 355/358/355 +f 378/378/378 377/377/377 355/358/355 356/360/356 +f 379/379/379 378/378/378 356/360/356 357/362/357 +f 380/380/380 379/379/379 357/362/357 358/364/358 +f 381/381/381 380/380/380 358/364/358 359/366/359 +f 382/382/382 381/381/381 359/366/359 360/368/360 +f 383/383/383 382/382/382 360/368/360 361/370/361 +f 384/384/384 383/383/383 361/370/361 362/372/362 +f 385/385/385 384/384/384 362/372/362 363/374/363 +f 386/386/386 385/385/385 363/374/363 374/373/374 +f 387/387/387 386/386/386 374/373/374 373/371/373 +f 388/388/388 387/387/387 373/371/373 372/369/372 +f 389/389/389 388/388/388 372/369/372 371/367/371 +f 390/390/390 389/389/389 371/367/371 370/365/370 +f 391/391/391 390/390/390 370/365/370 369/363/369 +f 392/392/392 391/391/391 369/363/369 368/361/368 +f 393/393/393 392/392/392 368/361/368 367/359/367 +f 394/394/394 393/393/393 367/359/367 366/357/366 +f 395/395/395 394/394/394 366/357/366 365/353/365 +f 396/396/396 395/395/395 365/353/365 364/356/364 +f 375/376/375 396/396/396 364/356/364 353/355/353 +f 398/397/398 397/398/397 375/376/375 376/375/376 +f 399/399/399 398/397/398 376/375/376 377/377/377 +f 400/400/400 399/399/399 377/377/377 378/378/378 +f 401/401/401 400/400/400 378/378/378 379/379/379 +f 402/402/402 401/401/401 379/379/379 380/380/380 +f 403/403/403 402/402/402 380/380/380 381/381/381 +f 404/404/404 403/403/403 381/381/381 382/382/382 +f 405/405/405 404/404/404 382/382/382 383/383/383 +f 406/406/406 405/405/405 383/383/383 384/384/384 +f 407/407/407 406/406/406 384/384/384 385/385/385 +f 408/408/408 407/407/407 385/385/385 386/386/386 +f 409/409/409 408/408/408 386/386/386 387/387/387 +f 410/410/410 409/409/409 387/387/387 388/388/388 +f 411/411/411 410/410/410 388/388/388 389/389/389 +f 412/412/412 411/411/411 389/389/389 390/390/390 +f 413/413/413 412/412/412 390/390/390 391/391/391 +f 414/414/414 413/413/413 391/391/391 392/392/392 +f 415/415/415 414/414/414 392/392/392 393/393/393 +f 416/416/416 415/415/415 393/393/393 394/394/394 +f 417/417/417 416/416/416 394/394/394 395/395/395 +f 418/418/418 417/417/417 395/395/395 396/396/396 +f 397/398/397 418/418/418 396/396/396 375/376/375 +f 420/419/420 419/420/419 397/398/397 398/397/398 +f 421/421/421 420/419/420 398/397/398 399/399/399 +f 422/422/422 421/421/421 399/399/399 400/400/400 +f 423/423/423 422/422/422 400/400/400 401/401/401 +f 424/424/424 423/423/423 401/401/401 402/402/402 +f 425/425/425 424/424/424 402/402/402 403/403/403 +f 426/426/426 425/425/425 403/403/403 404/404/404 +f 427/427/427 426/426/426 404/404/404 405/405/405 +f 428/428/428 427/427/427 405/405/405 406/406/406 +f 429/429/429 428/428/428 406/406/406 407/407/407 +f 430/430/430 429/429/429 407/407/407 408/408/408 +f 431/431/431 430/430/430 408/408/408 409/409/409 +f 432/432/432 431/431/431 409/409/409 410/410/410 +f 433/433/433 432/432/432 410/410/410 411/411/411 +f 434/434/434 433/433/433 411/411/411 412/412/412 +f 435/435/435 434/434/434 412/412/412 413/413/413 +f 436/436/436 435/435/435 413/413/413 414/414/414 +f 437/437/437 436/436/436 414/414/414 415/415/415 +f 438/438/438 437/437/437 415/415/415 416/416/416 +f 439/439/439 438/438/438 416/416/416 417/417/417 +f 440/440/440 439/439/439 417/417/417 418/418/418 +f 419/420/419 440/440/440 418/418/418 397/398/397 +f 442/441/442 441/442/441 419/420/419 420/419/420 +f 443/443/443 442/441/442 420/419/420 421/421/421 +f 444/444/444 443/443/443 421/421/421 422/422/422 +f 445/445/445 444/444/444 422/422/422 423/423/423 +f 446/446/446 445/445/445 423/423/423 424/424/424 +f 447/447/447 446/446/446 424/424/424 425/425/425 +f 448/448/448 447/447/447 425/425/425 426/426/426 +f 449/449/449 448/448/448 426/426/426 427/427/427 +f 450/450/450 449/449/449 427/427/427 428/428/428 +f 451/451/451 450/450/450 428/428/428 429/429/429 +f 452/452/452 451/451/451 429/429/429 430/430/430 +f 453/453/453 452/452/452 430/430/430 431/431/431 +f 454/454/454 453/453/453 431/431/431 432/432/432 +f 455/455/455 454/454/454 432/432/432 433/433/433 +f 456/456/456 455/455/455 433/433/433 434/434/434 +f 457/457/457 456/456/456 434/434/434 435/435/435 +f 458/458/458 457/457/457 435/435/435 436/436/436 +f 459/459/459 458/458/458 436/436/436 437/437/437 +f 460/460/460 459/459/459 437/437/437 438/438/438 +f 461/461/461 460/460/460 438/438/438 439/439/439 +f 462/462/462 461/461/461 439/439/439 440/440/440 +f 441/442/441 462/462/462 440/440/440 419/420/419 +f 464/463/464 463/464/463 441/442/441 442/441/442 +f 465/465/465 464/463/464 442/441/442 443/443/443 +f 466/466/466 465/465/465 443/443/443 444/444/444 +f 467/467/467 466/466/466 444/444/444 445/445/445 +f 468/468/468 467/467/467 445/445/445 446/446/446 +f 469/469/469 468/468/468 446/446/446 447/447/447 +f 470/470/470 469/469/469 447/447/447 448/448/448 +f 471/471/471 470/470/470 448/448/448 449/449/449 +f 472/472/472 471/471/471 449/449/449 450/450/450 +f 473/473/473 472/472/472 450/450/450 451/451/451 +f 474/474/474 473/473/473 451/451/451 452/452/452 +f 475/475/475 474/474/474 452/452/452 453/453/453 +f 476/476/476 475/475/475 453/453/453 454/454/454 +f 477/477/477 476/476/476 454/454/454 455/455/455 +f 478/478/478 477/477/477 455/455/455 456/456/456 +f 479/479/479 478/478/478 456/456/456 457/457/457 +f 480/480/480 479/479/479 457/457/457 458/458/458 +f 481/481/481 480/480/480 458/458/458 459/459/459 +f 482/482/482 481/481/481 459/459/459 460/460/460 +f 483/483/483 482/482/482 460/460/460 461/461/461 +f 484/484/484 483/483/483 461/461/461 462/462/462 +f 463/464/463 484/484/484 462/462/462 441/442/441 +f 486/485/486 485/486/485 463/464/463 464/463/464 +f 487/487/487 486/485/486 464/463/464 465/465/465 +f 488/488/488 487/487/487 465/465/465 466/466/466 +f 489/489/489 488/488/488 466/466/466 467/467/467 +f 490/490/490 489/489/489 467/467/467 468/468/468 +f 491/491/491 490/490/490 468/468/468 469/469/469 +f 492/492/492 491/491/491 469/469/469 470/470/470 +f 493/493/493 492/492/492 470/470/470 471/471/471 +f 494/494/494 493/493/493 471/471/471 472/472/472 +f 495/495/495 494/494/494 472/472/472 473/473/473 +f 496/496/496 495/495/495 473/473/473 474/474/474 +f 497/497/497 496/496/496 474/474/474 475/475/475 +f 498/498/498 497/497/497 475/475/475 476/476/476 +f 499/499/499 498/498/498 476/476/476 477/477/477 +f 500/500/500 499/499/499 477/477/477 478/478/478 +f 501/501/501 500/500/500 478/478/478 479/479/479 +f 502/502/502 501/501/501 479/479/479 480/480/480 +f 503/503/503 502/502/502 480/480/480 481/481/481 +f 504/504/504 503/503/503 481/481/481 482/482/482 +f 505/505/505 504/504/504 482/482/482 483/483/483 +f 506/506/506 505/505/505 483/483/483 484/484/484 +f 485/486/485 506/506/506 484/484/484 463/464/463 +f 508/507/508 507/508/507 485/486/485 486/485/486 +f 509/509/509 508/507/508 486/485/486 487/487/487 +f 510/510/510 509/509/509 487/487/487 488/488/488 +f 511/511/511 510/510/510 488/488/488 489/489/489 +f 512/512/512 511/511/511 489/489/489 490/490/490 +f 513/513/513 512/512/512 490/490/490 491/491/491 +f 514/514/514 513/513/513 491/491/491 492/492/492 +f 515/515/515 514/514/514 492/492/492 493/493/493 +f 516/516/516 515/515/515 493/493/493 494/494/494 +f 517/517/517 516/516/516 494/494/494 495/495/495 +f 518/518/518 517/517/517 495/495/495 496/496/496 +f 519/519/519 518/518/518 496/496/496 497/497/497 +f 520/520/520 519/519/519 497/497/497 498/498/498 +f 521/521/521 520/520/520 498/498/498 499/499/499 +f 522/522/522 521/521/521 499/499/499 500/500/500 +f 523/523/523 522/522/522 500/500/500 501/501/501 +f 524/524/524 523/523/523 501/501/501 502/502/502 +f 525/525/525 524/524/524 502/502/502 503/503/503 +f 526/526/526 525/525/525 503/503/503 504/504/504 +f 527/527/527 526/526/526 504/504/504 505/505/505 +f 528/528/528 527/527/527 505/505/505 506/506/506 +f 507/508/507 528/528/528 506/506/506 485/486/485 +f 530/529/530 529/530/529 507/508/507 508/507/508 +f 531/531/531 530/529/530 508/507/508 509/509/509 +f 532/532/532 531/531/531 509/509/509 510/510/510 +f 533/533/533 532/532/532 510/510/510 511/511/511 +f 534/534/534 533/533/533 511/511/511 512/512/512 +f 535/535/535 534/534/534 512/512/512 513/513/513 +f 536/536/536 535/535/535 513/513/513 514/514/514 +f 537/537/537 536/536/536 514/514/514 515/515/515 +f 538/538/538 537/537/537 515/515/515 516/516/516 +f 539/539/539 538/538/538 516/516/516 517/517/517 +f 540/540/540 539/539/539 517/517/517 518/518/518 +f 541/541/541 540/540/540 518/518/518 519/519/519 +f 542/542/542 541/541/541 519/519/519 520/520/520 +f 543/543/543 542/542/542 520/520/520 521/521/521 +f 544/544/544 543/543/543 521/521/521 522/522/522 +f 545/545/545 544/544/544 522/522/522 523/523/523 +f 546/546/546 545/545/545 523/523/523 524/524/524 +f 547/547/547 546/546/546 524/524/524 525/525/525 +f 548/548/548 547/547/547 525/525/525 526/526/526 +f 549/549/549 548/548/548 526/526/526 527/527/527 +f 550/550/550 549/549/549 527/527/527 528/528/528 +f 529/530/529 550/550/550 528/528/528 507/508/507 +f 552/551/552 551/552/551 529/530/529 530/529/530 +f 553/553/553 552/551/552 530/529/530 531/531/531 +f 554/554/554 553/553/553 531/531/531 532/532/532 +f 555/555/555 554/554/554 532/532/532 533/533/533 +f 556/556/556 555/555/555 533/533/533 534/534/534 +f 557/557/557 556/556/556 534/534/534 535/535/535 +f 558/558/558 557/557/557 535/535/535 536/536/536 +f 559/559/559 558/558/558 536/536/536 537/537/537 +f 560/560/560 559/559/559 537/537/537 538/538/538 +f 561/561/561 560/560/560 538/538/538 539/539/539 +f 562/562/562 561/561/561 539/539/539 540/540/540 +f 563/563/563 562/562/562 540/540/540 541/541/541 +f 564/564/564 563/563/563 541/541/541 542/542/542 +f 565/565/565 564/564/564 542/542/542 543/543/543 +f 566/566/566 565/565/565 543/543/543 544/544/544 +f 567/567/567 566/566/566 544/544/544 545/545/545 +f 568/568/568 567/567/567 545/545/545 546/546/546 +f 569/569/569 568/568/568 546/546/546 547/547/547 +f 570/570/570 569/569/569 547/547/547 548/548/548 +f 571/571/571 570/570/570 548/548/548 549/549/549 +f 572/572/572 571/571/571 549/549/549 550/550/550 +f 551/552/551 572/572/572 550/550/550 529/530/529 +f 574/573/574 585/574/585 584/575/584 573/576/573 +f 575/577/575 586/578/586 585/574/585 574/573/574 +f 576/579/576 587/580/587 586/578/586 575/577/575 +f 577/581/577 588/582/588 587/580/587 576/579/576 +f 578/583/578 589/584/589 588/582/588 577/581/577 +f 579/585/579 590/586/590 589/584/589 578/583/578 +f 580/587/580 591/588/591 590/586/590 579/585/579 +f 581/589/581 592/590/592 591/588/591 580/587/580 +f 582/591/582 593/592/593 592/590/592 581/589/581 +f 583/593/583 594/594/594 593/592/593 582/591/582 +f 574/573/574 573/576/573 551/552/551 552/551/552 +f 575/577/575 574/573/574 552/551/552 553/553/553 +f 576/579/576 575/577/575 553/553/553 554/554/554 +f 577/581/577 576/579/576 554/554/554 555/555/555 +f 578/583/578 577/581/577 555/555/555 556/556/556 +f 579/585/579 578/583/578 556/556/556 557/557/557 +f 580/587/580 579/585/579 557/557/557 558/558/558 +f 581/589/581 580/587/580 558/558/558 559/559/559 +f 582/591/582 581/589/581 559/559/559 560/560/560 +f 583/593/583 582/591/582 560/560/560 561/561/561 +f 594/594/594 583/593/583 561/561/561 562/562/562 +f 593/592/593 594/594/594 562/562/562 563/563/563 +f 592/590/592 593/592/593 563/563/563 564/564/564 +f 591/588/591 592/590/592 564/564/564 565/565/565 +f 590/586/590 591/588/591 565/565/565 566/566/566 +f 589/584/589 590/586/590 566/566/566 567/567/567 +f 588/582/588 589/584/589 567/567/567 568/568/568 +f 587/580/587 588/582/588 568/568/568 569/569/569 +f 586/578/586 587/580/587 569/569/569 570/570/570 +f 585/574/585 586/578/586 570/570/570 571/571/571 +f 584/575/584 585/574/585 571/571/571 572/572/572 +f 573/576/573 584/575/584 572/572/572 551/552/551 +v 37.072704 6.798801 14.612655 +v 35.399620 -1.684892 -2.247932 +v 37.025742 7.748693 14.139361 +v 35.352657 -0.734998 -2.721227 +v 49.019722 6.798801 13.427149 +v 47.346642 -1.684892 -3.433439 +v 48.972759 7.748693 12.953856 +v 47.299675 -0.734998 -3.906734 +vn -0.498026 -0.257760 0.827967 +vn -0.599982 -0.774742 -0.199491 +vn -0.549076 0.774743 0.313511 +vn -0.651030 0.257761 -0.713946 +vn 0.651031 -0.257760 0.713946 +vn 0.549076 -0.774742 -0.313512 +vn 0.599981 0.774743 0.199490 +vn 0.498026 0.257761 -0.827967 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +g Generic +usemtl Default +f 598/595/598 596/596/596 595/597/595 597/598/597 +f 600/599/600 602/600/602 601/601/601 599/602/599 +f 600/599/600 599/602/599 595/597/595 596/596/596 +f 602/600/602 600/599/600 596/596/596 598/595/598 +f 601/601/601 602/600/602 598/595/598 597/598/597 +f 599/602/599 601/601/601 597/598/597 595/597/595 +v 41.590405 7.735011 14.423697 +v 40.583054 2.824299 4.272040 +v 41.588688 13.509675 14.406421 +v 40.583054 13.509675 4.272040 +v 44.149647 7.735011 14.169743 +v 43.142300 2.824299 4.018085 +v 44.147934 13.509675 14.152468 +v 43.142300 13.509675 4.018085 +vn -0.434325 -0.456966 0.776237 +vn -0.719726 -0.617016 -0.318254 +vn -0.517001 0.578506 0.630905 +vn -0.631539 0.577350 -0.517518 +vn 0.578405 -0.456966 0.675744 +vn 0.643145 -0.617016 -0.453492 +vn 0.630907 0.578506 0.516998 +vn 0.517518 0.577350 -0.631539 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +g Generic +usemtl Default +f 606/603/606 604/604/604 603/605/603 605/606/605 +f 608/607/608 610/608/610 609/609/609 607/610/607 +f 608/607/608 607/610/607 603/605/603 604/604/604 +f 610/608/610 608/607/608 604/604/604 606/603/606 +f 609/609/609 610/608/610 606/603/606 605/606/605 +f 607/610/607 609/609/609 605/606/605 603/605/603 +v 38.265141 6.735311 26.120773 +v 37.069580 6.735311 14.072419 +v 38.265141 7.797606 26.120773 +v 37.069580 7.797606 14.072419 +v 49.417778 6.735311 25.014093 +v 48.222221 6.735311 12.965740 +v 49.417778 7.797606 25.014093 +v 48.222221 7.797606 12.965740 +vn -0.517518 -0.577350 0.631539 +vn -0.631539 -0.577350 -0.517518 +vn -0.517518 0.577350 0.631539 +vn -0.631539 0.577350 -0.517518 +vn 0.631539 -0.577350 0.517518 +vn 0.517518 -0.577350 -0.631539 +vn 0.631539 0.577350 0.517518 +vn 0.517518 0.577350 -0.631539 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +g Generic +usemtl Default +f 614/611/614 612/612/612 611/613/611 613/614/613 +f 616/615/616 618/616/618 617/617/617 615/618/615 +f 616/615/616 615/618/615 611/613/611 612/612/612 +f 618/616/618 616/615/616 612/612/612 614/611/614 +f 617/617/617 618/616/618 614/611/614 613/614/613 +f 615/618/615 617/617/617 613/614/613 611/613/611 +v -4.999391 -2.723562 -20.058920 +v -4.799391 -2.723562 -20.058920 +v -4.999391 7.276438 -20.058920 +v -4.799391 7.276438 -20.058920 +v -4.999391 -2.723562 -19.858919 +v -4.799391 -2.723562 -19.858919 +v -4.999391 7.276438 -19.858919 +v -4.799391 7.276438 -19.858919 +vn -0.577350 -0.577350 -0.577350 +vn 0.577350 -0.577350 -0.577350 +vn -0.577350 0.577350 -0.577350 +vn 0.577350 0.577350 -0.577350 +vn -0.577350 -0.577350 0.577350 +vn 0.577350 -0.577350 0.577350 +vn -0.577350 0.577350 0.577350 +vn 0.577350 0.577350 0.577350 +vt 0.995049 0.995049 +vt 0.995049 0.995049 +vt 0.004950 0.995049 +vt 0.004950 0.995049 +vt 0.995049 0.004950 +vt 0.995049 0.004950 +vt 0.004950 0.004950 +vt 0.004950 0.004950 +g Cube +usemtl Default +f 622/619/622 620/620/620 619/621/619 621/622/621 +f 624/623/624 626/624/626 625/625/625 623/626/623 +f 624/623/624 623/626/623 619/621/619 620/620/620 +f 626/624/626 624/623/624 620/620/620 622/619/622 +f 625/625/625 626/624/626 622/619/622 621/622/621 +f 623/626/623 625/625/625 621/622/621 619/621/619 +v -1.781751 7.010753 -9.378036 +v -1.581751 7.010753 -9.378036 +v -1.781751 17.010754 -9.378036 +v -1.581751 17.010754 -9.378036 +v -1.781751 7.010753 -9.178036 +v -1.581751 7.010753 -9.178036 +v -1.781751 17.010754 -9.178036 +v -1.581751 17.010754 -9.178036 +vn -0.577350 -0.577350 -0.577350 +vn 0.577350 -0.577350 -0.577350 +vn -0.577350 0.577350 -0.577350 +vn 0.577350 0.577350 -0.577350 +vn -0.577350 -0.577350 0.577350 +vn 0.577350 -0.577350 0.577350 +vn -0.577350 0.577350 0.577350 +vn 0.577350 0.577350 0.577350 +vt 0.995049 0.995049 +vt 0.995049 0.995049 +vt 0.004950 0.995049 +vt 0.004950 0.995049 +vt 0.995049 0.004950 +vt 0.995049 0.004950 +vt 0.004950 0.004950 +vt 0.004950 0.004950 +g Cube +usemtl Default +f 630/627/630 628/628/628 627/629/627 629/630/629 +f 632/631/632 634/632/634 633/633/633 631/634/631 +f 632/631/632 631/634/631 627/629/627 628/628/628 +f 634/632/634 632/631/632 628/628/628 630/627/630 +f 633/633/633 634/632/634 630/627/630 629/630/629 +f 631/634/631 633/633/633 629/630/629 627/629/627 +v 23.601257 -3.409447 -42.598141 +v 26.639965 -3.297550 -42.968342 +v 29.678680 -2.968940 -43.338543 +v 32.717388 -2.565424 -43.708744 +v 35.756100 -2.398096 -44.078945 +v 38.794811 -2.565424 -44.449146 +v 41.833515 -3.060902 -44.819347 +v 44.872231 -3.737523 -45.189548 +v 47.910938 -4.412263 -45.559750 +v 50.949646 -4.771656 -45.929951 +v 53.988358 -4.869517 -46.300152 +v 23.601257 -2.438035 -42.598141 +v 26.639965 -2.320616 -42.968342 +v 29.678680 -1.985266 -43.338543 +v 32.717388 -1.576197 -43.708744 +v 35.756100 -1.407172 -44.078945 +v 38.794811 -1.576197 -44.449146 +v 41.833515 -2.077228 -44.819347 +v 44.872231 -2.769071 -45.189548 +v 47.910938 -3.449503 -45.559750 +v 50.949646 -3.811076 -45.929951 +v 53.988358 -3.906463 -46.300152 +v 23.971458 -3.356195 -39.559433 +v 27.010166 -2.968940 -39.929634 +v 30.048882 -2.195561 -40.299835 +v 33.087589 -1.397891 -40.670036 +v 36.126301 -1.104276 -41.040237 +v 39.165012 -1.397891 -41.410439 +v 42.203716 -2.265358 -41.780640 +v 45.242432 -3.336131 -42.150841 +v 48.281139 -4.231285 -42.521042 +v 51.319847 -4.658715 -42.891243 +v 54.358559 -4.771657 -43.261444 +v 54.358559 -3.811076 -43.261444 +v 51.319847 -3.698599 -42.891243 +v 48.281139 -3.269352 -42.521042 +v 45.242432 -2.352459 -42.150841 +v 42.203716 -1.248837 -41.780640 +v 39.165012 -0.404662 -41.410439 +v 36.126301 -0.112976 -41.040237 +v 33.087589 -0.404662 -40.670036 +v 30.048882 -1.181921 -40.299835 +v 27.010166 -1.985266 -39.929634 +v 23.971458 -2.384776 -39.559433 +v 24.341660 -3.255616 -36.520721 +v 27.380367 -2.565424 -36.890923 +v 30.419083 -1.397891 -37.261124 +v 33.457790 -0.537756 -37.631325 +v 36.496502 -0.278140 -38.001526 +v 39.535213 -0.537756 -38.371727 +v 42.573917 -1.421056 -38.741928 +v 45.612633 -2.762392 -39.112129 +v 48.651340 -3.792841 -39.482330 +v 51.690048 -4.284532 -39.852531 +v 54.728760 -4.412263 -40.222733 +v 54.728760 -3.449503 -40.222733 +v 51.690048 -3.322612 -39.852531 +v 48.651340 -2.824036 -39.482330 +v 45.612633 -1.767833 -39.112129 +v 42.573917 -0.423386 -38.741928 +v 39.535213 0.459619 -38.371727 +v 36.496502 0.718170 -38.001526 +v 33.457790 0.459619 -37.631325 +v 30.419083 -0.404662 -37.261124 +v 27.380367 -1.576197 -36.890923 +v 24.341660 -2.277591 -36.520721 +v 24.711861 -3.198068 -33.482014 +v 27.750568 -2.398096 -33.852215 +v 30.789284 -1.104276 -34.222416 +v 33.827991 -0.278140 -34.592617 +v 36.866703 -0.053185 -34.962818 +v 39.905415 -0.278140 -35.333019 +v 42.944118 -1.104276 -35.703220 +v 45.982834 -2.449177 -36.073421 +v 49.021542 -3.395026 -36.443623 +v 52.060249 -3.776620 -36.813824 +v 55.098961 -3.849413 -37.184025 +v 55.098961 -2.886490 -37.184025 +v 52.060249 -2.812960 -36.813824 +v 49.021542 -2.415678 -36.443623 +v 45.982834 -1.455851 -36.073421 +v 42.944118 -0.112976 -35.703220 +v 39.905415 0.718170 -35.333019 +v 36.866703 0.937435 -34.962818 +v 33.827991 0.718170 -34.592617 +v 30.789284 -0.112976 -34.222416 +v 27.750568 -1.407172 -33.852215 +v 24.711861 -2.218710 -33.482014 +v 25.082062 -3.255616 -30.443304 +v 28.120770 -2.565424 -30.813505 +v 31.159485 -1.397891 -31.183704 +v 34.198193 -0.537756 -31.553905 +v 37.236904 -0.278140 -31.924107 +v 40.275616 -0.537756 -32.294312 +v 43.314320 -1.397891 -32.664509 +v 46.353035 -2.565424 -33.034710 +v 49.391743 -3.278783 -33.404911 +v 52.430450 -3.476367 -33.775112 +v 55.469162 -3.501402 -34.145313 +v 55.469162 -2.533448 -34.145313 +v 52.430450 -2.507833 -33.775112 +v 49.391743 -2.300760 -33.404911 +v 46.353035 -1.576197 -33.034710 +v 43.314320 -0.404662 -32.664509 +v 40.275616 0.459619 -32.294312 +v 37.236904 0.718170 -31.924107 +v 34.198193 0.459619 -31.553905 +v 31.159485 -0.404662 -31.183704 +v 28.120770 -1.576197 -30.813505 +v 25.082062 -2.277591 -30.443304 +v 25.452263 -3.356195 -27.404594 +v 28.490971 -2.968940 -27.774796 +v 31.529686 -2.195561 -28.144997 +v 34.568394 -1.397891 -28.515198 +v 37.607105 -1.104277 -28.885399 +v 40.645817 -1.397891 -29.255600 +v 43.684521 -2.195561 -29.625801 +v 46.723236 -2.968940 -29.996002 +v 49.761944 -3.356195 -30.366203 +v 52.800652 -3.409447 -30.736404 +v 55.839363 -3.409447 -31.106606 +v 55.839363 -2.438035 -31.106606 +v 52.800652 -2.438035 -30.736404 +v 49.761944 -2.384776 -30.366203 +v 46.723236 -1.985266 -29.996002 +v 43.684521 -1.181921 -29.625801 +v 40.645817 -0.404662 -29.255600 +v 37.607105 -0.112976 -28.885399 +v 34.568394 -0.404662 -28.515198 +v 31.529686 -1.181921 -28.144997 +v 28.490971 -1.985266 -27.774796 +v 25.452263 -2.384776 -27.404594 +v 25.822464 -3.409447 -24.365883 +v 28.861172 -3.293368 -24.736084 +v 31.899887 -2.968940 -25.106285 +v 34.938595 -2.565424 -25.476486 +v 37.977306 -2.398096 -25.846687 +v 41.016018 -2.565424 -26.216888 +v 44.054722 -2.968940 -26.587090 +v 47.093437 -3.297550 -26.957291 +v 50.132145 -3.350677 -27.327492 +v 53.170853 -3.239676 -27.697693 +v 56.209564 -3.176165 -28.067894 +v 56.209564 -2.195984 -28.067894 +v 53.170853 -2.260967 -27.697693 +v 50.132145 -2.379257 -27.327492 +v 47.093437 -2.320616 -26.957291 +v 44.054722 -1.985266 -26.587090 +v 41.016018 -1.576197 -26.216888 +v 37.977306 -1.407172 -25.846687 +v 34.938595 -1.576197 -25.476486 +v 31.899887 -1.985266 -25.106285 +v 28.861172 -2.314560 -24.736084 +v 25.822464 -2.438035 -24.365883 +v 26.192665 -3.044981 -21.327175 +v 29.231373 -2.785754 -21.697376 +v 32.270088 -2.991724 -22.067577 +v 35.308796 -3.219331 -22.437778 +v 38.347507 -3.198068 -22.807980 +v 41.386219 -3.255616 -23.178181 +v 44.424923 -3.356195 -23.548382 +v 47.463638 -3.285955 -23.918583 +v 50.502346 -2.923296 -24.288784 +v 53.541054 -2.477970 -24.658985 +v 56.579765 -2.293303 -25.029186 +v 56.579765 -1.300357 -25.029186 +v 53.541054 -1.486896 -24.658985 +v 50.502346 -1.938351 -24.288784 +v 47.463638 -2.308449 -23.918583 +v 44.424923 -2.384776 -23.548382 +v 41.386219 -2.277591 -23.178181 +v 38.347507 -2.218710 -22.807980 +v 35.308796 -2.242946 -22.437778 +v 32.270088 -2.000064 -22.067577 +v 29.231373 -1.786767 -21.697376 +v 26.192665 -2.053322 -21.327175 +v 26.562866 -1.861028 -18.288465 +v 29.601574 -1.262635 -18.658667 +v 32.640289 -1.861028 -19.028868 +v 35.678997 -3.044981 -19.399069 +v 38.717709 -3.409447 -19.769270 +v 41.756420 -3.409447 -20.139471 +v 44.795124 -3.350677 -20.509672 +v 47.833839 -2.923296 -20.879873 +v 50.872547 -2.069782 -21.250074 +v 53.911255 -1.189459 -21.620275 +v 56.949966 -0.865421 -21.990477 +v 56.949966 0.127940 -21.990477 +v 53.911255 -0.193970 -21.620275 +v 50.872547 -1.051766 -21.250074 +v 47.833839 -1.938351 -20.879873 +v 44.795124 -2.379257 -20.509672 +v 41.756420 -2.438035 -20.139471 +v 38.717709 -2.438035 -19.769270 +v 35.678997 -2.053322 -19.399069 +v 32.640289 -0.836300 -19.028868 +v 29.601574 -0.228566 -18.658667 +v 26.562866 -0.836300 -18.288465 +v 26.933067 -1.262635 -15.249758 +v 29.971775 -0.734991 -15.619959 +v 33.010490 -1.262635 -15.990160 +v 36.049198 -2.785754 -16.360361 +v 39.087910 -3.405265 -16.730562 +v 42.126621 -3.409447 -17.100763 +v 45.165325 -3.239676 -17.470964 +v 48.204041 -2.477970 -17.841166 +v 51.242748 -1.189459 -18.211367 +v 54.281456 -0.240200 -18.581568 +v 57.320168 0.046317 -18.951769 +v 57.320168 1.045207 -18.951769 +v 54.281456 0.759866 -18.581568 +v 51.242748 -0.193970 -18.211367 +v 48.204041 -1.486896 -17.841166 +v 45.165325 -2.260967 -17.470964 +v 42.126621 -2.438035 -17.100763 +v 39.087910 -2.431980 -16.730562 +v 36.049198 -1.786767 -16.360361 +v 33.010490 -0.228566 -15.990160 +v 29.971775 0.279237 -15.619959 +v 26.933067 -0.228566 -15.249758 +v 27.303268 -1.861028 -12.211048 +v 30.341976 -1.262635 -12.581249 +v 33.380692 -1.861028 -12.951450 +v 36.419399 -3.044981 -13.321651 +v 39.458111 -3.409447 -13.691853 +v 42.496822 -3.409447 -14.062054 +v 45.535526 -3.176165 -14.432255 +v 48.574242 -2.293303 -14.802456 +v 51.612949 -0.865421 -15.172657 +v 54.651657 0.046317 -15.542858 +v 57.690369 0.294580 -15.913059 +v 27.303268 -0.836300 -12.211048 +v 30.341976 -0.228566 -12.581249 +v 33.380692 -0.836300 -12.951450 +v 36.419399 -2.053322 -13.321651 +v 39.458111 -2.438035 -13.691853 +v 42.496822 -2.438035 -14.062054 +v 45.535526 -2.195984 -14.432255 +v 48.574242 -1.300357 -14.802456 +v 51.612949 0.127940 -15.172657 +v 54.651657 1.045207 -15.542858 +v 57.690369 1.287191 -15.913059 +vn -0.599026 -0.602062 -0.527910 +vn 0.050826 -0.714581 -0.697704 +vn 0.110539 -0.740282 -0.663147 +vn 0.068305 -0.791033 -0.607948 +vn -0.067464 -0.826818 -0.558408 +vn -0.220365 -0.810985 -0.541980 +vn -0.312818 -0.765434 -0.562366 +vn -0.310167 -0.731317 -0.607431 +vn -0.235293 -0.721301 -0.651431 +vn -0.146453 -0.720505 -0.677808 +vn 0.497112 -0.591272 -0.635041 +vn -0.673059 0.528950 -0.516918 +vn -0.214383 0.627951 -0.748143 +vn -0.244448 0.573498 -0.781886 +vn -0.195686 0.552643 -0.810119 +vn -0.099946 0.558569 -0.823415 +vn 0.008650 0.577861 -0.816090 +vn 0.097853 0.605520 -0.789792 +vn 0.119938 0.639695 -0.759213 +vn 0.058512 0.673582 -0.736793 +vn -0.026391 0.691911 -0.721500 +vn 0.510733 0.564070 -0.648828 +vn -0.636587 -0.765097 0.096869 +vn 0.243364 -0.969112 0.039942 +vn 0.296439 -0.944376 0.142401 +vn 0.202625 -0.945466 0.255022 +vn 0.038919 -0.947516 0.317330 +vn -0.134932 -0.932967 0.333716 +vn -0.273840 -0.911088 0.308108 +vn -0.300219 -0.924670 0.234208 +vn -0.206048 -0.966808 0.151086 +vn -0.082062 -0.991596 0.100012 +vn 0.695273 -0.718229 -0.027242 +vn 0.709541 0.690960 -0.138295 +vn 0.084344 0.992606 -0.087289 +vn 0.215679 0.969716 -0.114603 +vn 0.318789 0.933719 -0.162917 +vn 0.288834 0.927346 -0.237915 +vn 0.139049 0.942800 -0.302974 +vn -0.038532 0.947194 -0.318338 +vn -0.203287 0.933954 -0.293945 +vn -0.303199 0.922896 -0.237346 +vn -0.257204 0.954734 -0.149428 +vn -0.770621 0.637095 0.015922 +vn -0.611009 -0.785914 0.094909 +vn 0.309377 -0.950758 0.018605 +vn 0.330547 -0.939656 0.088237 +vn 0.190193 -0.969929 0.151870 +vn 0.020843 -0.984928 0.171703 +vn -0.150180 -0.970266 0.189817 +vn -0.308041 -0.927864 0.210190 +vn -0.329400 -0.923914 0.194626 +vn -0.204784 -0.965387 0.161530 +vn -0.068907 -0.986607 0.147847 +vn 0.702926 -0.711047 0.017523 +vn 0.700835 0.687586 -0.189883 +vn 0.069750 0.985420 -0.155188 +vn 0.209274 0.964095 -0.163481 +vn 0.335981 0.925650 -0.174037 +vn 0.311741 0.930325 -0.193166 +vn 0.149069 0.969065 -0.196701 +vn -0.021008 0.984904 -0.171823 +vn -0.189856 0.970498 -0.148620 +vn -0.334154 0.933955 -0.126767 +vn -0.317712 0.944096 -0.087989 +vn -0.788491 0.613893 0.037649 +vn -0.613516 -0.786143 0.074682 +vn 0.303138 -0.952222 -0.037151 +vn 0.317442 -0.947484 -0.038790 +vn 0.171703 -0.984929 -0.020833 +vn -0.000031 -1.000000 0.000039 +vn -0.171685 -0.984928 0.020991 +vn -0.320490 -0.946391 0.040385 +vn -0.316495 -0.946991 0.055123 +vn -0.169818 -0.982385 0.077982 +vn -0.041434 -0.992752 0.112813 +vn 0.707821 -0.706351 0.007588 +vn 0.695169 0.693527 -0.189104 +vn 0.039320 0.988596 -0.145367 +vn 0.166981 0.977636 -0.127844 +vn 0.313375 0.945008 -0.093569 +vn 0.319572 0.945981 -0.054709 +vn 0.171636 0.984904 -0.022475 +vn -0.000043 1.000000 -0.000034 +vn -0.171841 0.984904 0.020860 +vn -0.318278 0.947194 0.039025 +vn -0.305022 0.951604 0.037580 +vn -0.781929 0.616023 0.095404 +vn -0.641295 -0.765086 0.058177 +vn 0.228429 -0.969783 -0.085684 +vn 0.261573 -0.951515 -0.161862 +vn 0.151503 -0.969324 -0.193538 +vn -0.021001 -0.984929 -0.171682 +vn -0.193092 -0.969929 -0.148167 +vn -0.296212 -0.945466 -0.135469 +vn -0.250966 -0.963185 -0.096388 +vn -0.112666 -0.993312 -0.025260 +vn -0.018339 -0.999200 0.035536 +vn 0.705864 -0.707020 -0.043341 +vn 0.697463 0.703445 -0.136786 +vn 0.014976 0.997486 -0.069265 +vn 0.106696 0.993220 -0.046144 +vn 0.246332 0.969140 0.009378 +vn 0.293675 0.951714 0.089414 +vn 0.192035 0.969807 0.150325 +vn 0.020851 0.984903 0.171847 +vn -0.150426 0.970143 0.190246 +vn -0.256521 0.945340 0.201317 +vn -0.222547 0.962215 0.156895 +vn -0.754377 0.638420 0.152757 +vn -0.675241 -0.734843 0.063685 +vn 0.118792 -0.989218 -0.085657 +vn 0.157385 -0.966855 -0.201053 +vn 0.094325 -0.951515 -0.292784 +vn -0.038560 -0.947484 -0.317470 +vn -0.165018 -0.939656 -0.299693 +vn -0.209409 -0.944376 -0.253579 +vn -0.142467 -0.975746 -0.166202 +vn -0.038468 -0.997398 -0.060972 +vn 0.011450 -0.999861 0.012149 +vn 0.708895 -0.702842 -0.059000 +vn 0.693587 0.709641 -0.123879 +vn -0.016267 0.998809 -0.046007 +vn 0.030011 0.999395 -0.017564 +vn 0.134792 0.989619 0.049859 +vn 0.203306 0.966094 0.159148 +vn 0.160941 0.951269 0.263029 +vn 0.038904 0.947163 0.318386 +vn -0.086977 0.939483 0.331370 +vn -0.143412 0.943787 0.297824 +vn -0.107136 0.974403 0.197637 +vn -0.721435 0.671438 0.169419 +vn -0.676722 -0.726492 0.119404 +vn 0.044928 -0.998382 0.034851 +vn 0.017094 -0.998543 -0.051192 +vn 0.002788 -0.978146 -0.207902 +vn -0.039266 -0.953079 -0.300165 +vn -0.092341 -0.950757 -0.295861 +vn -0.087286 -0.969736 -0.228021 +vn -0.009467 -0.992899 -0.118585 +vn 0.070787 -0.997491 0.000420 +vn 0.077588 -0.991887 0.100702 +vn 0.729717 -0.683588 0.014874 +vn 0.674057 0.707296 -0.213024 +vn -0.084884 0.983981 -0.156769 +vn -0.083368 0.991253 -0.102311 +vn -0.005273 0.999943 -0.009270 +vn 0.076243 0.990585 0.113699 +vn 0.087305 0.968659 0.232545 +vn 0.040110 0.951586 0.304755 +vn 0.010646 0.952089 0.305636 +vn 0.004997 0.977760 0.209667 +vn -0.034190 0.997958 0.053954 +vn -0.729579 0.680585 0.067219 +vn -0.635657 -0.727218 0.259024 +vn 0.039333 -0.961732 0.271154 +vn -0.137465 -0.957450 0.253757 +vn -0.129258 -0.989870 0.058725 +vn -0.046866 -0.992288 -0.114753 +vn -0.025705 -0.988873 -0.146527 +vn 0.025003 -0.994393 -0.102745 +vn 0.136203 -0.990513 -0.018254 +vn 0.214018 -0.971281 0.103967 +vn 0.172436 -0.955708 0.238511 +vn 0.755635 -0.643259 0.123425 +vn 0.644344 0.685570 -0.338843 +vn -0.176109 0.933268 -0.313044 +vn -0.225667 0.945862 -0.233280 +vn -0.154735 0.981077 -0.116383 +vn -0.037547 0.999278 0.005775 +vn 0.020768 0.994831 0.099400 +vn 0.052134 0.987864 0.146311 +vn 0.157049 0.982054 0.104429 +vn 0.172396 0.982522 -0.070214 +vn -0.031789 0.969133 -0.244480 +vn -0.774993 0.621770 -0.113085 +vn -0.614110 -0.734644 0.288386 +vn 0.037162 -0.955783 0.291717 +vn -0.247938 -0.917069 0.312268 +vn -0.256380 -0.946881 0.194126 +vn -0.076923 -0.996657 0.027514 +vn 0.014613 -0.999399 -0.031445 +vn 0.112773 -0.993474 -0.017085 +vn 0.265926 -0.963190 0.039342 +vn 0.323267 -0.933484 0.155265 +vn 0.220989 -0.934749 0.278224 +vn 0.762125 -0.632263 0.139315 +vn 0.638094 0.689687 -0.342297 +vn -0.221099 0.921316 -0.319831 +vn -0.329283 0.908367 -0.257764 +vn -0.280638 0.945862 -0.163057 +vn -0.124206 0.990379 -0.061016 +vn -0.018246 0.999820 0.005245 +vn 0.086584 0.996041 0.020138 +vn 0.286958 0.956545 -0.051730 +vn 0.272502 0.939816 -0.206126 +vn -0.033691 0.955810 -0.292048 +vn -0.786435 0.608576 -0.105618 +vn -0.643540 -0.761356 0.078699 +vn -0.000319 -1.000000 0.000408 +vn -0.292106 -0.955783 0.033964 +vn -0.280714 -0.959253 0.032134 +vn -0.079081 -0.996824 0.009362 +vn 0.032279 -0.999471 -0.003932 +vn 0.163733 -0.986486 -0.006001 +vn 0.337538 -0.941095 0.020224 +vn 0.360082 -0.927949 0.096185 +vn 0.208215 -0.963843 0.166293 +vn 0.748825 -0.661451 0.041746 +vn 0.657610 0.721687 -0.216142 +vn -0.207816 0.964545 -0.162679 +vn -0.363560 0.921316 -0.137843 +vn -0.346170 0.933268 -0.095798 +vn -0.172563 0.983981 -0.044762 +vn -0.035218 0.999322 -0.010758 +vn 0.082937 0.996504 -0.010097 +vn 0.288978 0.956719 -0.034363 +vn 0.296553 0.954354 -0.035559 +vn -0.000565 1.000000 -0.000442 +vn -0.765765 0.636361 0.092994 +vn -0.472038 -0.643086 0.603009 +vn 0.078113 -0.761356 0.643611 +vn -0.132507 -0.734644 0.665387 +vn -0.098830 -0.727218 0.679254 +vn 0.041474 -0.719840 0.692900 +vn 0.112202 -0.706581 0.698680 +vn 0.209777 -0.690552 0.692194 +vn 0.328519 -0.648610 0.686572 +vn 0.327924 -0.633767 0.700575 +vn 0.212216 -0.658508 0.722033 +vn 0.658530 -0.542480 0.521588 +vn -0.541870 0.502924 0.673383 +vn 0.093119 0.634566 0.767239 +vn 0.276022 0.628194 0.727451 +vn 0.257877 0.667479 0.698549 +vn 0.129422 0.704689 0.697613 +vn 0.057278 0.709991 0.701878 +vn -0.044956 0.707296 0.705487 +vn -0.174229 0.685570 0.706851 +vn -0.179082 0.689687 0.701613 +vn -0.051932 0.721687 0.690268 +vn 0.626124 0.606414 0.490133 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.000000 +g Cube +usemtl Default +f 647/635/647 636/636/636 635/637/635 646/638/646 +f 648/639/648 637/640/637 636/636/636 647/635/647 +f 649/641/649 638/642/638 637/640/637 648/639/648 +f 650/643/650 639/644/639 638/642/638 649/641/649 +f 651/645/651 640/646/640 639/644/639 650/643/650 +f 652/647/652 641/648/641 640/646/640 651/645/651 +f 653/649/653 642/650/642 641/648/641 652/647/652 +f 654/651/654 643/652/643 642/650/642 653/649/653 +f 655/653/655 644/654/644 643/652/643 654/651/654 +f 656/655/656 645/656/645 644/654/644 655/653/655 +f 658/657/658 657/658/657 635/637/635 636/636/636 +f 659/659/659 658/657/658 636/636/636 637/640/637 +f 660/660/660 659/659/659 637/640/637 638/642/638 +f 661/661/661 660/660/660 638/642/638 639/644/639 +f 662/662/662 661/661/661 639/644/639 640/646/640 +f 663/663/663 662/662/662 640/646/640 641/648/641 +f 664/664/664 663/663/663 641/648/641 642/650/642 +f 665/665/665 664/664/664 642/650/642 643/652/643 +f 666/666/666 665/665/665 643/652/643 644/654/644 +f 667/667/667 666/666/666 644/654/644 645/656/645 +f 668/668/668 667/667/667 645/656/645 656/655/656 +f 669/669/669 668/668/668 656/655/656 655/653/655 +f 670/670/670 669/669/669 655/653/655 654/651/654 +f 671/671/671 670/670/670 654/651/654 653/649/653 +f 672/672/672 671/671/671 653/649/653 652/647/652 +f 673/673/673 672/672/672 652/647/652 651/645/651 +f 674/674/674 673/673/673 651/645/651 650/643/650 +f 675/675/675 674/674/674 650/643/650 649/641/649 +f 676/676/676 675/675/675 649/641/649 648/639/648 +f 677/677/677 676/676/676 648/639/648 647/635/647 +f 678/678/678 677/677/677 647/635/647 646/638/646 +f 657/658/657 678/678/678 646/638/646 635/637/635 +f 680/679/680 679/680/679 657/658/657 658/657/658 +f 681/681/681 680/679/680 658/657/658 659/659/659 +f 682/682/682 681/681/681 659/659/659 660/660/660 +f 683/683/683 682/682/682 660/660/660 661/661/661 +f 684/684/684 683/683/683 661/661/661 662/662/662 +f 685/685/685 684/684/684 662/662/662 663/663/663 +f 686/686/686 685/685/685 663/663/663 664/664/664 +f 687/687/687 686/686/686 664/664/664 665/665/665 +f 688/688/688 687/687/687 665/665/665 666/666/666 +f 689/689/689 688/688/688 666/666/666 667/667/667 +f 690/690/690 689/689/689 667/667/667 668/668/668 +f 691/691/691 690/690/690 668/668/668 669/669/669 +f 692/692/692 691/691/691 669/669/669 670/670/670 +f 693/693/693 692/692/692 670/670/670 671/671/671 +f 694/694/694 693/693/693 671/671/671 672/672/672 +f 695/695/695 694/694/694 672/672/672 673/673/673 +f 696/696/696 695/695/695 673/673/673 674/674/674 +f 697/697/697 696/696/696 674/674/674 675/675/675 +f 698/698/698 697/697/697 675/675/675 676/676/676 +f 699/699/699 698/698/698 676/676/676 677/677/677 +f 700/700/700 699/699/699 677/677/677 678/678/678 +f 679/680/679 700/700/700 678/678/678 657/658/657 +f 702/701/702 701/702/701 679/680/679 680/679/680 +f 703/703/703 702/701/702 680/679/680 681/681/681 +f 704/704/704 703/703/703 681/681/681 682/682/682 +f 705/705/705 704/704/704 682/682/682 683/683/683 +f 706/706/706 705/705/705 683/683/683 684/684/684 +f 707/707/707 706/706/706 684/684/684 685/685/685 +f 708/708/708 707/707/707 685/685/685 686/686/686 +f 709/709/709 708/708/708 686/686/686 687/687/687 +f 710/710/710 709/709/709 687/687/687 688/688/688 +f 711/711/711 710/710/710 688/688/688 689/689/689 +f 712/712/712 711/711/711 689/689/689 690/690/690 +f 713/713/713 712/712/712 690/690/690 691/691/691 +f 714/714/714 713/713/713 691/691/691 692/692/692 +f 715/715/715 714/714/714 692/692/692 693/693/693 +f 716/716/716 715/715/715 693/693/693 694/694/694 +f 717/717/717 716/716/716 694/694/694 695/695/695 +f 718/718/718 717/717/717 695/695/695 696/696/696 +f 719/719/719 718/718/718 696/696/696 697/697/697 +f 720/720/720 719/719/719 697/697/697 698/698/698 +f 721/721/721 720/720/720 698/698/698 699/699/699 +f 722/722/722 721/721/721 699/699/699 700/700/700 +f 701/702/701 722/722/722 700/700/700 679/680/679 +f 724/723/724 723/724/723 701/702/701 702/701/702 +f 725/725/725 724/723/724 702/701/702 703/703/703 +f 726/726/726 725/725/725 703/703/703 704/704/704 +f 727/727/727 726/726/726 704/704/704 705/705/705 +f 728/728/728 727/727/727 705/705/705 706/706/706 +f 729/729/729 728/728/728 706/706/706 707/707/707 +f 730/730/730 729/729/729 707/707/707 708/708/708 +f 731/731/731 730/730/730 708/708/708 709/709/709 +f 732/732/732 731/731/731 709/709/709 710/710/710 +f 733/733/733 732/732/732 710/710/710 711/711/711 +f 734/734/734 733/733/733 711/711/711 712/712/712 +f 735/735/735 734/734/734 712/712/712 713/713/713 +f 736/736/736 735/735/735 713/713/713 714/714/714 +f 737/737/737 736/736/736 714/714/714 715/715/715 +f 738/738/738 737/737/737 715/715/715 716/716/716 +f 739/739/739 738/738/738 716/716/716 717/717/717 +f 740/740/740 739/739/739 717/717/717 718/718/718 +f 741/741/741 740/740/740 718/718/718 719/719/719 +f 742/742/742 741/741/741 719/719/719 720/720/720 +f 743/743/743 742/742/742 720/720/720 721/721/721 +f 744/744/744 743/743/743 721/721/721 722/722/722 +f 723/724/723 744/744/744 722/722/722 701/702/701 +f 746/745/746 745/746/745 723/724/723 724/723/724 +f 747/747/747 746/745/746 724/723/724 725/725/725 +f 748/748/748 747/747/747 725/725/725 726/726/726 +f 749/749/749 748/748/748 726/726/726 727/727/727 +f 750/750/750 749/749/749 727/727/727 728/728/728 +f 751/751/751 750/750/750 728/728/728 729/729/729 +f 752/752/752 751/751/751 729/729/729 730/730/730 +f 753/753/753 752/752/752 730/730/730 731/731/731 +f 754/754/754 753/753/753 731/731/731 732/732/732 +f 755/755/755 754/754/754 732/732/732 733/733/733 +f 756/756/756 755/755/755 733/733/733 734/734/734 +f 757/757/757 756/756/756 734/734/734 735/735/735 +f 758/758/758 757/757/757 735/735/735 736/736/736 +f 759/759/759 758/758/758 736/736/736 737/737/737 +f 760/760/760 759/759/759 737/737/737 738/738/738 +f 761/761/761 760/760/760 738/738/738 739/739/739 +f 762/762/762 761/761/761 739/739/739 740/740/740 +f 763/763/763 762/762/762 740/740/740 741/741/741 +f 764/764/764 763/763/763 741/741/741 742/742/742 +f 765/765/765 764/764/764 742/742/742 743/743/743 +f 766/766/766 765/765/765 743/743/743 744/744/744 +f 745/746/745 766/766/766 744/744/744 723/724/723 +f 768/767/768 767/768/767 745/746/745 746/745/746 +f 769/769/769 768/767/768 746/745/746 747/747/747 +f 770/770/770 769/769/769 747/747/747 748/748/748 +f 771/771/771 770/770/770 748/748/748 749/749/749 +f 772/772/772 771/771/771 749/749/749 750/750/750 +f 773/773/773 772/772/772 750/750/750 751/751/751 +f 774/774/774 773/773/773 751/751/751 752/752/752 +f 775/775/775 774/774/774 752/752/752 753/753/753 +f 776/776/776 775/775/775 753/753/753 754/754/754 +f 777/777/777 776/776/776 754/754/754 755/755/755 +f 778/778/778 777/777/777 755/755/755 756/756/756 +f 779/779/779 778/778/778 756/756/756 757/757/757 +f 780/780/780 779/779/779 757/757/757 758/758/758 +f 781/781/781 780/780/780 758/758/758 759/759/759 +f 782/782/782 781/781/781 759/759/759 760/760/760 +f 783/783/783 782/782/782 760/760/760 761/761/761 +f 784/784/784 783/783/783 761/761/761 762/762/762 +f 785/785/785 784/784/784 762/762/762 763/763/763 +f 786/786/786 785/785/785 763/763/763 764/764/764 +f 787/787/787 786/786/786 764/764/764 765/765/765 +f 788/788/788 787/787/787 765/765/765 766/766/766 +f 767/768/767 788/788/788 766/766/766 745/746/745 +f 790/789/790 789/790/789 767/768/767 768/767/768 +f 791/791/791 790/789/790 768/767/768 769/769/769 +f 792/792/792 791/791/791 769/769/769 770/770/770 +f 793/793/793 792/792/792 770/770/770 771/771/771 +f 794/794/794 793/793/793 771/771/771 772/772/772 +f 795/795/795 794/794/794 772/772/772 773/773/773 +f 796/796/796 795/795/795 773/773/773 774/774/774 +f 797/797/797 796/796/796 774/774/774 775/775/775 +f 798/798/798 797/797/797 775/775/775 776/776/776 +f 799/799/799 798/798/798 776/776/776 777/777/777 +f 800/800/800 799/799/799 777/777/777 778/778/778 +f 801/801/801 800/800/800 778/778/778 779/779/779 +f 802/802/802 801/801/801 779/779/779 780/780/780 +f 803/803/803 802/802/802 780/780/780 781/781/781 +f 804/804/804 803/803/803 781/781/781 782/782/782 +f 805/805/805 804/804/804 782/782/782 783/783/783 +f 806/806/806 805/805/805 783/783/783 784/784/784 +f 807/807/807 806/806/806 784/784/784 785/785/785 +f 808/808/808 807/807/807 785/785/785 786/786/786 +f 809/809/809 808/808/808 786/786/786 787/787/787 +f 810/810/810 809/809/809 787/787/787 788/788/788 +f 789/790/789 810/810/810 788/788/788 767/768/767 +f 812/811/812 811/812/811 789/790/789 790/789/790 +f 813/813/813 812/811/812 790/789/790 791/791/791 +f 814/814/814 813/813/813 791/791/791 792/792/792 +f 815/815/815 814/814/814 792/792/792 793/793/793 +f 816/816/816 815/815/815 793/793/793 794/794/794 +f 817/817/817 816/816/816 794/794/794 795/795/795 +f 818/818/818 817/817/817 795/795/795 796/796/796 +f 819/819/819 818/818/818 796/796/796 797/797/797 +f 820/820/820 819/819/819 797/797/797 798/798/798 +f 821/821/821 820/820/820 798/798/798 799/799/799 +f 822/822/822 821/821/821 799/799/799 800/800/800 +f 823/823/823 822/822/822 800/800/800 801/801/801 +f 824/824/824 823/823/823 801/801/801 802/802/802 +f 825/825/825 824/824/824 802/802/802 803/803/803 +f 826/826/826 825/825/825 803/803/803 804/804/804 +f 827/827/827 826/826/826 804/804/804 805/805/805 +f 828/828/828 827/827/827 805/805/805 806/806/806 +f 829/829/829 828/828/828 806/806/806 807/807/807 +f 830/830/830 829/829/829 807/807/807 808/808/808 +f 831/831/831 830/830/830 808/808/808 809/809/809 +f 832/832/832 831/831/831 809/809/809 810/810/810 +f 811/812/811 832/832/832 810/810/810 789/790/789 +f 834/833/834 833/834/833 811/812/811 812/811/812 +f 835/835/835 834/833/834 812/811/812 813/813/813 +f 836/836/836 835/835/835 813/813/813 814/814/814 +f 837/837/837 836/836/836 814/814/814 815/815/815 +f 838/838/838 837/837/837 815/815/815 816/816/816 +f 839/839/839 838/838/838 816/816/816 817/817/817 +f 840/840/840 839/839/839 817/817/817 818/818/818 +f 841/841/841 840/840/840 818/818/818 819/819/819 +f 842/842/842 841/841/841 819/819/819 820/820/820 +f 843/843/843 842/842/842 820/820/820 821/821/821 +f 844/844/844 843/843/843 821/821/821 822/822/822 +f 845/845/845 844/844/844 822/822/822 823/823/823 +f 846/846/846 845/845/845 823/823/823 824/824/824 +f 847/847/847 846/846/846 824/824/824 825/825/825 +f 848/848/848 847/847/847 825/825/825 826/826/826 +f 849/849/849 848/848/848 826/826/826 827/827/827 +f 850/850/850 849/849/849 827/827/827 828/828/828 +f 851/851/851 850/850/850 828/828/828 829/829/829 +f 852/852/852 851/851/851 829/829/829 830/830/830 +f 853/853/853 852/852/852 830/830/830 831/831/831 +f 854/854/854 853/853/853 831/831/831 832/832/832 +f 833/834/833 854/854/854 832/832/832 811/812/811 +f 856/855/856 867/856/867 866/857/866 855/858/855 +f 857/859/857 868/860/868 867/856/867 856/855/856 +f 858/861/858 869/862/869 868/860/868 857/859/857 +f 859/863/859 870/864/870 869/862/869 858/861/858 +f 860/865/860 871/866/871 870/864/870 859/863/859 +f 861/867/861 872/868/872 871/866/871 860/865/860 +f 862/869/862 873/870/873 872/868/872 861/867/861 +f 863/871/863 874/872/874 873/870/873 862/869/862 +f 864/873/864 875/874/875 874/872/874 863/871/863 +f 865/875/865 876/876/876 875/874/875 864/873/864 +f 856/855/856 855/858/855 833/834/833 834/833/834 +f 857/859/857 856/855/856 834/833/834 835/835/835 +f 858/861/858 857/859/857 835/835/835 836/836/836 +f 859/863/859 858/861/858 836/836/836 837/837/837 +f 860/865/860 859/863/859 837/837/837 838/838/838 +f 861/867/861 860/865/860 838/838/838 839/839/839 +f 862/869/862 861/867/861 839/839/839 840/840/840 +f 863/871/863 862/869/862 840/840/840 841/841/841 +f 864/873/864 863/871/863 841/841/841 842/842/842 +f 865/875/865 864/873/864 842/842/842 843/843/843 +f 876/876/876 865/875/865 843/843/843 844/844/844 +f 875/874/875 876/876/876 844/844/844 845/845/845 +f 874/872/874 875/874/875 845/845/845 846/846/846 +f 873/870/873 874/872/874 846/846/846 847/847/847 +f 872/868/872 873/870/873 847/847/847 848/848/848 +f 871/866/871 872/868/872 848/848/848 849/849/849 +f 870/864/870 871/866/871 849/849/849 850/850/850 +f 869/862/869 870/864/870 850/850/850 851/851/851 +f 868/860/868 869/862/869 851/851/851 852/852/852 +f 867/856/867 868/860/868 852/852/852 853/853/853 +f 866/857/866 867/856/867 853/853/853 854/854/854 +f 855/858/855 866/857/866 854/854/854 833/834/833 +v 38.838924 -2.723562 -29.694302 +v 39.038925 -2.723562 -29.694302 +v 38.838924 7.276438 -29.694302 +v 39.038925 7.276438 -29.694302 +v 38.838924 -2.723562 -29.494301 +v 39.038925 -2.723562 -29.494301 +v 38.838924 7.276438 -29.494301 +v 39.038925 7.276438 -29.494301 +vn -0.577350 -0.577350 -0.577350 +vn 0.577350 -0.577350 -0.577350 +vn -0.577350 0.577350 -0.577350 +vn 0.577350 0.577350 -0.577350 +vn -0.577350 -0.577350 0.577350 +vn 0.577350 -0.577350 0.577350 +vn -0.577350 0.577350 0.577350 +vn 0.577350 0.577350 0.577350 +vt 0.995049 0.995049 +vt 0.995049 0.995049 +vt 0.004950 0.995049 +vt 0.004950 0.995049 +vt 0.995049 0.004950 +vt 0.995049 0.004950 +vt 0.004950 0.004950 +vt 0.004950 0.004950 +g Cube +usemtl Default +f 880/877/880 878/878/878 877/879/877 879/880/879 +f 882/881/882 884/882/884 883/883/883 881/884/881 +f 882/881/882 881/884/881 877/879/877 878/878/878 +f 884/882/884 882/881/882 878/878/878 880/877/880 +f 883/883/883 884/882/884 880/877/880 879/880/879 +f 881/884/881 883/883/883 879/880/879 877/879/877 diff --git a/Recast/Examples/Recast.exe b/Recast/Examples/Recast.exe new file mode 100644 index 0000000000000000000000000000000000000000..62787e1bacdcd8a337aefb0d8f95d199ef997d5c GIT binary patch literal 75776 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 O_iqgR8w3AS4E!H}-CT$O literal 0 HcmV?d00001 diff --git a/Recast/Examples/SDL.dll b/Recast/Examples/SDL.dll new file mode 100644 index 0000000000000000000000000000000000000000..3ce97a59deb86e64d75443ff5bbf55a697a501ac GIT binary patch literal 321536 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⁡Y_0|PGD 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�<9il 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 BhV%dc literal 0 HcmV?d00001 diff --git a/Recast/Examples/SDLMain.h b/Recast/Examples/SDLMain.h new file mode 100644 index 0000000..4683df5 --- /dev/null +++ b/Recast/Examples/SDLMain.h @@ -0,0 +1,11 @@ +/* SDLMain.m - main entry point for our Cocoa-ized SDL app + Initial Version: Darrell Walisser + Non-NIB-Code & other changes: Max Horn + + Feel free to customize this file to suit your needs +*/ + +#import + +@interface SDLMain : NSObject +@end diff --git a/Recast/Examples/SDLMain.m b/Recast/Examples/SDLMain.m new file mode 100644 index 0000000..2eaa1c1 --- /dev/null +++ b/Recast/Examples/SDLMain.m @@ -0,0 +1,384 @@ +/* SDLMain.m - main entry point for our Cocoa-ized SDL app + Initial Version: Darrell Walisser + Non-NIB-Code & other changes: Max Horn + + Feel free to customize this file to suit your needs +*/ + +#import "SDL.h" +#import "SDLMain.h" +#import /* for MAXPATHLEN */ +#import + +/* For some reaon, Apple removed setAppleMenu from the headers in 10.4, + but the method still is there and works. To avoid warnings, we declare + it ourselves here. */ +@interface NSApplication(SDL_Missing_Methods) +- (void)setAppleMenu:(NSMenu *)menu; +@end + +/* Use this flag to determine whether we use SDLMain.nib or not */ +#define SDL_USE_NIB_FILE 0 + +/* Use this flag to determine whether we use CPS (docking) or not */ +#define SDL_USE_CPS 1 +#ifdef SDL_USE_CPS +/* Portions of CPS.h */ +typedef struct CPSProcessSerNum +{ + UInt32 lo; + UInt32 hi; +} CPSProcessSerNum; + +extern OSErr CPSGetCurrentProcess( CPSProcessSerNum *psn); +extern OSErr CPSEnableForegroundOperation( CPSProcessSerNum *psn, UInt32 _arg2, UInt32 _arg3, UInt32 _arg4, UInt32 _arg5); +extern OSErr CPSSetFrontProcess( CPSProcessSerNum *psn); + +#endif /* SDL_USE_CPS */ + +static int gArgc; +static char **gArgv; +static BOOL gFinderLaunch; +static BOOL gCalledAppMainline = FALSE; + +static NSString *getApplicationName(void) +{ + NSDictionary *dict; + NSString *appName = 0; + + /* Determine the application name */ + dict = (NSDictionary *)CFBundleGetInfoDictionary(CFBundleGetMainBundle()); + if (dict) + appName = [dict objectForKey: @"CFBundleName"]; + + if (![appName length]) + appName = [[NSProcessInfo processInfo] processName]; + + return appName; +} + +#if SDL_USE_NIB_FILE +/* A helper category for NSString */ +@interface NSString (ReplaceSubString) +- (NSString *)stringByReplacingRange:(NSRange)aRange with:(NSString *)aString; +@end +#endif + +@interface SDLApplication : NSApplication +@end + +@implementation SDLApplication +/* Invoked from the Quit menu item */ +- (void)terminate:(id)sender +{ + /* Post a SDL_QUIT event */ + SDL_Event event; + event.type = SDL_QUIT; + SDL_PushEvent(&event); +} +@end + +/* The main class of the application, the application's delegate */ +@implementation SDLMain + +/* Set the working directory to the .app's parent directory */ +- (void) setupWorkingDirectory:(BOOL)shouldChdir +{ + if (shouldChdir) + { + char parentdir[MAXPATHLEN]; + CFURLRef url = CFBundleCopyBundleURL(CFBundleGetMainBundle()); + CFURLRef url2 = CFURLCreateCopyDeletingLastPathComponent(0, url); + if (CFURLGetFileSystemRepresentation(url2, true, (UInt8 *)parentdir, MAXPATHLEN)) { + assert ( chdir (parentdir) == 0 ); /* chdir to the binary app's parent */ + } + CFRelease(url); + CFRelease(url2); + } + +} + +#if SDL_USE_NIB_FILE + +/* Fix menu to contain the real app name instead of "SDL App" */ +- (void)fixMenu:(NSMenu *)aMenu withAppName:(NSString *)appName +{ + NSRange aRange; + NSEnumerator *enumerator; + NSMenuItem *menuItem; + + aRange = [[aMenu title] rangeOfString:@"SDL App"]; + if (aRange.length != 0) + [aMenu setTitle: [[aMenu title] stringByReplacingRange:aRange with:appName]]; + + enumerator = [[aMenu itemArray] objectEnumerator]; + while ((menuItem = [enumerator nextObject])) + { + aRange = [[menuItem title] rangeOfString:@"SDL App"]; + if (aRange.length != 0) + [menuItem setTitle: [[menuItem title] stringByReplacingRange:aRange with:appName]]; + if ([menuItem hasSubmenu]) + [self fixMenu:[menuItem submenu] withAppName:appName]; + } + [ aMenu sizeToFit ]; +} + +#else + +static void setApplicationMenu(void) +{ + /* warning: this code is very odd */ + NSMenu *appleMenu; + NSMenuItem *menuItem; + NSString *title; + NSString *appName; + + appName = getApplicationName(); + appleMenu = [[NSMenu alloc] initWithTitle:@""]; + + /* Add menu items */ + title = [@"About " stringByAppendingString:appName]; + [appleMenu addItemWithTitle:title action:@selector(orderFrontStandardAboutPanel:) keyEquivalent:@""]; + + [appleMenu addItem:[NSMenuItem separatorItem]]; + + title = [@"Hide " stringByAppendingString:appName]; + [appleMenu addItemWithTitle:title action:@selector(hide:) keyEquivalent:@"h"]; + + menuItem = (NSMenuItem *)[appleMenu addItemWithTitle:@"Hide Others" action:@selector(hideOtherApplications:) keyEquivalent:@"h"]; + [menuItem setKeyEquivalentModifierMask:(NSAlternateKeyMask|NSCommandKeyMask)]; + + [appleMenu addItemWithTitle:@"Show All" action:@selector(unhideAllApplications:) keyEquivalent:@""]; + + [appleMenu addItem:[NSMenuItem separatorItem]]; + + title = [@"Quit " stringByAppendingString:appName]; + [appleMenu addItemWithTitle:title action:@selector(terminate:) keyEquivalent:@"q"]; + + + /* Put menu into the menubar */ + menuItem = [[NSMenuItem alloc] initWithTitle:@"" action:nil keyEquivalent:@""]; + [menuItem setSubmenu:appleMenu]; + [[NSApp mainMenu] addItem:menuItem]; + + /* Tell the application object that this is now the application menu */ + [NSApp setAppleMenu:appleMenu]; + + /* Finally give up our references to the objects */ + [appleMenu release]; + [menuItem release]; +} + +/* Create a window menu */ +static void setupWindowMenu(void) +{ + NSMenu *windowMenu; + NSMenuItem *windowMenuItem; + NSMenuItem *menuItem; + + windowMenu = [[NSMenu alloc] initWithTitle:@"Window"]; + + /* "Minimize" item */ + menuItem = [[NSMenuItem alloc] initWithTitle:@"Minimize" action:@selector(performMiniaturize:) keyEquivalent:@"m"]; + [windowMenu addItem:menuItem]; + [menuItem release]; + + /* Put menu into the menubar */ + windowMenuItem = [[NSMenuItem alloc] initWithTitle:@"Window" action:nil keyEquivalent:@""]; + [windowMenuItem setSubmenu:windowMenu]; + [[NSApp mainMenu] addItem:windowMenuItem]; + + /* Tell the application object that this is now the window menu */ + [NSApp setWindowsMenu:windowMenu]; + + /* Finally give up our references to the objects */ + [windowMenu release]; + [windowMenuItem release]; +} + +/* Replacement for NSApplicationMain */ +static void CustomApplicationMain (int argc, char **argv) +{ + NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; + SDLMain *sdlMain; + + /* Ensure the application object is initialised */ + [SDLApplication sharedApplication]; + +#ifdef SDL_USE_CPS + { + CPSProcessSerNum PSN; + /* Tell the dock about us */ + if (!CPSGetCurrentProcess(&PSN)) + if (!CPSEnableForegroundOperation(&PSN,0x03,0x3C,0x2C,0x1103)) + if (!CPSSetFrontProcess(&PSN)) + [SDLApplication sharedApplication]; + } +#endif /* SDL_USE_CPS */ + + /* Set up the menubar */ + [NSApp setMainMenu:[[NSMenu alloc] init]]; + setApplicationMenu(); + setupWindowMenu(); + + /* Create SDLMain and make it the app delegate */ + sdlMain = [[SDLMain alloc] init]; + [NSApp setDelegate:sdlMain]; + + /* Start the main event loop */ + [NSApp run]; + + [sdlMain release]; + [pool release]; +} + +#endif + + +/* + * Catch document open requests...this lets us notice files when the app + * was launched by double-clicking a document, or when a document was + * dragged/dropped on the app's icon. You need to have a + * CFBundleDocumentsType section in your Info.plist to get this message, + * apparently. + * + * Files are added to gArgv, so to the app, they'll look like command line + * arguments. Previously, apps launched from the finder had nothing but + * an argv[0]. + * + * This message may be received multiple times to open several docs on launch. + * + * This message is ignored once the app's mainline has been called. + */ +- (BOOL)application:(NSApplication *)theApplication openFile:(NSString *)filename +{ + const char *temparg; + size_t arglen; + char *arg; + char **newargv; + + if (!gFinderLaunch) /* MacOS is passing command line args. */ + return FALSE; + + if (gCalledAppMainline) /* app has started, ignore this document. */ + return FALSE; + + temparg = [filename UTF8String]; + arglen = SDL_strlen(temparg) + 1; + arg = (char *) SDL_malloc(arglen); + if (arg == NULL) + return FALSE; + + newargv = (char **) realloc(gArgv, sizeof (char *) * (gArgc + 2)); + if (newargv == NULL) + { + SDL_free(arg); + return FALSE; + } + gArgv = newargv; + + SDL_strlcpy(arg, temparg, arglen); + gArgv[gArgc++] = arg; + gArgv[gArgc] = NULL; + return TRUE; +} + + +/* Called when the internal event loop has just started running */ +- (void) applicationDidFinishLaunching: (NSNotification *) note +{ + int status; + + /* Set the working directory to the .app's parent directory */ + [self setupWorkingDirectory:gFinderLaunch]; + +#if SDL_USE_NIB_FILE + /* Set the main menu to contain the real app name instead of "SDL App" */ + [self fixMenu:[NSApp mainMenu] withAppName:getApplicationName()]; +#endif + + /* Hand off to main application code */ + gCalledAppMainline = TRUE; + status = SDL_main (gArgc, gArgv); + + /* We're done, thank you for playing */ + exit(status); +} +@end + + +@implementation NSString (ReplaceSubString) + +- (NSString *)stringByReplacingRange:(NSRange)aRange with:(NSString *)aString +{ + unsigned int bufferSize; + unsigned int selfLen = [self length]; + unsigned int aStringLen = [aString length]; + unichar *buffer; + NSRange localRange; + NSString *result; + + bufferSize = selfLen + aStringLen - aRange.length; + buffer = NSAllocateMemoryPages(bufferSize*sizeof(unichar)); + + /* Get first part into buffer */ + localRange.location = 0; + localRange.length = aRange.location; + [self getCharacters:buffer range:localRange]; + + /* Get middle part into buffer */ + localRange.location = 0; + localRange.length = aStringLen; + [aString getCharacters:(buffer+aRange.location) range:localRange]; + + /* Get last part into buffer */ + localRange.location = aRange.location + aRange.length; + localRange.length = selfLen - localRange.location; + [self getCharacters:(buffer+aRange.location+aStringLen) range:localRange]; + + /* Build output string */ + result = [NSString stringWithCharacters:buffer length:bufferSize]; + + NSDeallocateMemoryPages(buffer, bufferSize); + + return result; +} + +@end + + + +#ifdef main +# undef main +#endif + + +/* Main entry point to executable - should *not* be SDL_main! */ +int main (int argc, char **argv) +{ + /* Copy the arguments into a global variable */ + /* This is passed if we are launched by double-clicking */ + if ( argc >= 2 && strncmp (argv[1], "-psn", 4) == 0 ) { + gArgv = (char **) SDL_malloc(sizeof (char *) * 2); + gArgv[0] = argv[0]; + gArgv[1] = NULL; + gArgc = 1; + gFinderLaunch = YES; + } else { + int i; + gArgc = argc; + gArgv = (char **) SDL_malloc(sizeof (char *) * (argc+1)); + for (i = 0; i <= argc; i++) + gArgv[i] = argv[i]; + gFinderLaunch = NO; + } + +#if SDL_USE_NIB_FILE + [SDLApplication poseAsClass:[NSApplication class]]; + NSApplicationMain (argc, argv); +#else + CustomApplicationMain (argc, argv); +#endif + return 0; +} + diff --git a/Recast/Examples/demo.cpp b/Recast/Examples/demo.cpp new file mode 100644 index 0000000..03a8606 --- /dev/null +++ b/Recast/Examples/demo.cpp @@ -0,0 +1,796 @@ +// +// Copyright (c) 2009 Mikko Mononen memon@inside.org +// +// This software is provided 'as-is', without any express or implied +// warranty. In no event will the authors be held liable for any damages +// arising from the use of this software. +// Permission is granted to anyone to use this software for any purpose, +// including commercial applications, and to alter it and redistribute it +// freely, subject to the following restrictions: +// 1. The origin of this software must not be misrepresented; you must not +// claim that you wrote the original software. If you use this software +// in a product, an acknowledgment in the product documentation would be +// appreciated but is not required. +// 2. Altered source versions must be plainly marked as such, and must not be +// misrepresented as being the original software. +// 3. This notice may not be removed or altered from any source distribution. +// + +#include +#include +#define _USE_MATH_DEFINES +#include +#include +#ifdef WIN32 +# include +#else +# include +#endif +#include "SDL.h" +#include "SDL_Opengl.h" +#include "GLFont.h" +#include "RecastTimer.h" +#include "MeshLoaderObj.h" +#include "Recast.h" +#include "RecastLog.h" +#include "RecastDebugDraw.h" +#include "imgui.h" + +#ifdef WIN32 +# define snprintf _snprintf +#endif + +bool intersectSegmentTriangle(const float* sp, const float* sq, + const float* a, const float* b, const float* c, + float &t) +{ + float v, w; + float ab[3], ac[3], qp[3], ap[3], norm[3], e[3]; + vsub(ab, b, a); + vsub(ac, c, a); + vsub(qp, sp, sq); + + // Compute triangle normal. Can be precalculated or cached if + // intersecting multiple segments against the same triangle + vcross(norm, ab, ac); + + // Compute denominator d. If d <= 0, segment is parallel to or points + // away from triangle, so exit early + float d = vdot(qp, norm); + if (d <= 0.0f) return false; + + // Compute intersection t value of pq with plane of triangle. A ray + // intersects iff 0 <= t. Segment intersects iff 0 <= t <= 1. Delay + // dividing by d until intersection has been found to pierce triangle + vsub(ap, sp, a); + t = vdot(ap, norm); + if (t < 0.0f) return false; + if (t > d) return false; // For segment; exclude this code line for a ray test + + // Compute barycentric coordinate components and test if within bounds + vcross(e, qp, ap); + v = vdot(ac, e); + if (v < 0.0f || v > d) return false; + w = -vdot(ab, e); + if (w < 0.0f || v + w > d) return false; + + // Segment/ray intersects triangle. Perform delayed division + t /= d; + + return true; +} + +static bool raycast(rcMeshLoaderObj& mesh, float* src, float* dst, float& tmin) +{ + float dir[3]; + vsub(dir, dst, src); + + int nt = mesh.getTriCount(); + const float* verts = mesh.getVerts(); + const float* normals = mesh.getNormals(); + const int* tris = mesh.getTris(); + tmin = 1.0f; + bool hit = false; + + for (int i = 0; i < nt*3; i += 3) + { + const float* n = &normals[i]; + if (vdot(dir, n) > 0) + continue; + + float t = 1; + if (intersectSegmentTriangle(src, dst, + &verts[tris[i]*3], + &verts[tris[i+1]*3], + &verts[tris[i+2]*3], t)) + { + if (t < tmin) + tmin = t; + hit = true; + } + } + + return hit; +} + +struct FileList +{ + static const int MAX_FILES = 256; + inline FileList() : size(0) {} + inline ~FileList() + { + clear(); + } + + void clear() + { + for (int i = 0; i < size; ++i) + delete [] files[i]; + size = 0; + } + + void add(const char* path) + { + if (size >= MAX_FILES) + return; + int n = strlen(path); + files[size] = new char[n+1]; + strcpy(files[size], path); + size++; + } + + char* files[MAX_FILES]; + int size; +}; + +void scanDirectory(const char* path, const char* ext, FileList& list) +{ + list.clear(); + +#ifdef WIN32 + _finddata_t dir; + char pathWithExt[MAX_PATH]; + long fh; + strcpy(pathWithExt, path); + strcat(pathWithExt, "/*"); + strcat(pathWithExt, ext); + fh = _findfirst(pathWithExt, &dir); + if (fh == -1L) + return; + do + { + list.add(dir.name); + } + while (_findnext(fh, &dir) == 0); + _findclose(fh); +#else + dirent* current = 0; + DIR* dp = opendir(path); + if (!dp) + return; + + while ((current = readdir(dp)) != 0) + { + int len = strlen(current->d_name); + if (len > 4 && strncmp(current->d_name+len-4, ext, 4) == 0) + { + list.add(current->d_name); + } + } + closedir(dp); +#endif +} + + +enum DrawMode +{ + DRAWMODE_POLYMESH, + DRAWMODE_POLYMESH_TRANS, + DRAWMODE_MESH, + DRAWMODE_VOXELS, + DRAWMODE_VOXELS_WALKABLE, + DRAWMODE_COMPACT, + DRAWMODE_COMPACT_DISTANCE, + DRAWMODE_COMPACT_REGIONS, + DRAWMODE_RAW_CONTOURS, + DRAWMODE_CONTOURS, + MAX_DRAWMODE, +}; + + +GLFont g_font; + +void drawText(int x, int y, int dir, const char* text, unsigned int col) +{ + if (dir < 0) + g_font.drawText((float)x - g_font.getTextLength(text), (float)y, text, col); + else + g_font.drawText((float)x, (float)y, text, col); +} + + +rcMeshLoaderObj* g_mesh = 0; +unsigned char* g_triangleFlags = 0; +rcHeightfield* g_solid = 0; +rcCompactHeightfield* g_chf = 0; +rcContourSet* g_cset = 0; +rcPolyMesh* g_polyMesh = 0; +rcConfig g_cfg; +rcLog g_log; + +static bool buildNavigation() +{ + delete g_solid; + delete g_chf; + delete g_cset; + delete g_polyMesh; + delete [] g_triangleFlags; + g_solid = 0; + g_chf = 0; + g_cset = 0; + g_polyMesh = 0; + g_triangleFlags = 0; + + g_log.clear(); + rcSetLog(&g_log); + + if (!g_mesh) + { + g_log.log(RC_LOG_ERROR, "Input mesh is not valid."); + return false; + } + + + rcTimeVal startTime = rcGetPerformanceTimer(); + + rcCalcBounds(g_mesh->getVerts(), g_mesh->getVertCount(), g_cfg.bmin, g_cfg.bmax); + rcCalcGridSize(g_cfg.bmin, g_cfg.bmax, g_cfg.cs, &g_cfg.width, &g_cfg.height); + + g_log.log(RC_LOG_PROGRESS, "Building navigation"); + g_log.log(RC_LOG_PROGRESS, " - %d x %d", g_cfg.width, g_cfg.height); + g_log.log(RC_LOG_PROGRESS, " - %d verts, %d tris", g_mesh->getVertCount(), g_mesh->getTriCount()); + + g_triangleFlags = new unsigned char[g_mesh->getTriCount()]; + memset(g_triangleFlags, 0, g_mesh->getTriCount()); + rcMarkWalkableTriangles(g_cfg.walkableSlopeAngle, + g_mesh->getTris(), g_mesh->getNormals(), g_mesh->getTriCount(), + g_triangleFlags); + + g_solid = new rcHeightfield; + g_chf = new rcCompactHeightfield; + g_cset = new rcContourSet; + g_polyMesh = new rcPolyMesh; + + if (!rcBuildNavMesh(g_cfg, g_mesh->getVerts(), g_mesh->getVertCount(), + g_mesh->getTris(), g_triangleFlags, g_mesh->getTriCount(), + *g_solid, *g_chf, *g_cset, *g_polyMesh)) + { + g_log.log(RC_LOG_ERROR, "Could not build navmesh."); + return false; + } + + rcTimeVal endTime = rcGetPerformanceTimer(); + g_log.log(RC_LOG_PROGRESS, "Build time: %.1f ms", rcGetDeltaTimeUsec(startTime, endTime)/1000.0f); + g_log.log(RC_LOG_PROGRESS, "NavMesh"); + g_log.log(RC_LOG_PROGRESS, " - %d verts, %d polys", g_polyMesh->nverts, g_polyMesh->npolys); + const int navMeshDataSize = g_polyMesh->nverts*3*sizeof(unsigned short) + + g_polyMesh->npolys*g_polyMesh->nvp*2*sizeof(unsigned short); + g_log.log(RC_LOG_PROGRESS, " - Approx data size %.1f kB", (float)navMeshDataSize/1024.f); + + for (int i = 0; i < g_log.getMessageCount(); ++i) + { + printf("%s\n", g_log.getMessageText(i)); + } + + return true; +} + + +int main(int argc, char *argv[]) +{ + // Init SDL + if (SDL_Init(SDL_INIT_EVERYTHING) != 0) + { + printf("Could not initialise SDL\n"); + return -1; + } + + // Init OpenGL + SDL_GL_SetAttribute(SDL_GL_DOUBLEBUFFER, 1); + SDL_GL_SetAttribute(SDL_GL_DEPTH_SIZE, 32); + SDL_GL_SetAttribute(SDL_GL_RED_SIZE, 8); + SDL_GL_SetAttribute(SDL_GL_GREEN_SIZE, 8); + SDL_GL_SetAttribute(SDL_GL_BLUE_SIZE, 8); + SDL_GL_SetAttribute(SDL_GL_ALPHA_SIZE, 8); + + int width = 1200; + int height = 700; + SDL_Surface* screen = SDL_SetVideoMode(width, height, 0, SDL_OPENGL); + if (!screen) + { + printf("Could not initialise SDL opengl\n"); + return -1; + } + + SDL_WM_SetCaption("Recast Demo", 0); + + if(!g_font.create("font.cfnt")) + { + printf("Could not load font\n"); + SDL_Quit(); + return -1; + } + + float cellSize = 0.3f; + float cellHeight = 0.2f; + float agentHeight = 2.0f; + float agentRadius = 0.3f; + float agentMaxClimb = 0.9f; + float agentMaxSlope = 45.0f; + float regionMinSize = 50; + float regionMergeSize = 20; + float edgeMaxLen = 12.0f; + float edgeMaxError = 1.5f; + float vertsPerPoly = 6.0f; + int drawMode = DRAWMODE_POLYMESH; + bool showLevels = false; + bool showLog = false; + char curLevel[256] = "Choose Level..."; + bool mouseOverMenu = false; + FileList fileList; + + float t = 0.0f; + Uint32 lastTime = SDL_GetTicks(); + int mx = 0, my = 0; + float rx = 45; + float ry = -45; + float moveW = 0, moveS = 0, moveA = 0, moveD = 0; + float camx = 0, camy = 0, camz = 0, camr=10; + float origrx, origry; + int origx, origy; + bool rotate = false; + float rays[3], raye[3]; + float spos[3] = {0,0,0}; + + glEnable(GL_CULL_FACE); + + float fogCol[4] = { 0.1f,0.12f,0.14f,1 }; + glEnable(GL_FOG); + glFogi(GL_FOG_MODE, GL_LINEAR); + glFogf(GL_FOG_START, 0); + glFogf(GL_FOG_END, 10); + glFogfv(GL_FOG_COLOR, fogCol); + + bool done = false; + while(!done) + { + // Handle input events. + SDL_Event event; + while(SDL_PollEvent(&event)) + { + switch(event.type) + { + case SDL_KEYDOWN: + // Handle any key presses here. + if(event.key.keysym.sym == SDLK_ESCAPE) + { + done = true; + } + break; + + case SDL_MOUSEBUTTONDOWN: + // Handle mouse clicks here. + if (!mouseOverMenu) + { + if (event.button.button == SDL_BUTTON_LEFT) + { + // Rotate view + rotate = true; + origx = mx; + origy = my; + origrx = rx; + origry = ry; + } + else if (event.button.button == SDL_BUTTON_RIGHT) + { + // Hit test mesh. + if (g_mesh) + { + float t; + if (raycast(*g_mesh, rays, raye, t)) + { + spos[0] = rays[0] + (raye[0] - rays[0])*t; + spos[1] = rays[1] + (raye[1] - rays[1])*t; + spos[2] = rays[2] + (raye[2] - rays[2])*t; + } + } + } + } + break; + + case SDL_MOUSEBUTTONUP: + // Handle mouse clicks here. + if(event.button.button == SDL_BUTTON_LEFT) + { + rotate = false; + } + break; + + case SDL_MOUSEMOTION: + mx = event.motion.x; + my = height - 1 - event.motion.y; + if (rotate) + { + int dx = mx - origx; + int dy = my - origy; + rx = origrx - dy*0.25f; + ry = origry + dx*0.25f; + } + break; + + case SDL_QUIT: + done = true; + break; + + default: + break; + } + } + + Uint32 time = SDL_GetTicks(); + float dt = (time - lastTime) / 1000.0f; + lastTime = time; + + t += dt; + + + // Update and render + glViewport(0, 0, width, height); + glClearColor(0.3f, 0.3f, 0.32f, 1.0f); + glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT); + glEnable(GL_BLEND); + glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); + glDisable(GL_TEXTURE_2D); + + // Render 3d + glEnable(GL_DEPTH_TEST); + glMatrixMode(GL_PROJECTION); + glLoadIdentity(); + gluPerspective(50.0f, (float)width/(float)height, 1.0f, camr); + glMatrixMode(GL_MODELVIEW); + glLoadIdentity(); + glRotatef(rx,1,0,0); + glRotatef(ry,0,1,0); + glTranslatef(-camx, -camy, -camz); + + // Get hit ray position and direction. + GLdouble proj[16]; + GLdouble model[16]; + GLint view[4]; + glGetDoublev(GL_PROJECTION_MATRIX, proj); + glGetDoublev(GL_MODELVIEW_MATRIX, model); + glGetIntegerv(GL_VIEWPORT, view); + GLdouble x, y, z; + gluUnProject(mx, my, 0.0f, model, proj, view, &x, &y, &z); + rays[0] = (float)x; rays[1] = (float)y; rays[2] = (float)z; + gluUnProject(mx, my, 1.0f, model, proj, view, &x, &y, &z); + raye[0] = (float)x; raye[1] = (float)y; raye[2] = (float)z; + + // Handle keyboard movement. + Uint8* keystate = SDL_GetKeyState(NULL); + moveW = rcClamp(moveW + dt * 4 * (keystate[SDLK_w] ? 1 : -1), 0.0f, 1.0f); + moveS = rcClamp(moveS + dt * 4 * (keystate[SDLK_s] ? 1 : -1), 0.0f, 1.0f); + moveA = rcClamp(moveA + dt * 4 * (keystate[SDLK_a] ? 1 : -1), 0.0f, 1.0f); + moveD = rcClamp(moveD + dt * 4 * (keystate[SDLK_d] ? 1 : -1), 0.0f, 1.0f); + + float keybSpeed = 22.0f; + if (SDL_GetModState() & KMOD_SHIFT) + keybSpeed *= 4.0f; + + float movex = (moveD - moveA) * keybSpeed * dt; + float movey = (moveS - moveW) * keybSpeed * dt; + + camx += movex * (float)model[0]; + camy += movex * (float)model[4]; + camz += movex * (float)model[8]; + + camx += movey * (float)model[2]; + camy += movey * (float)model[6]; + camz += movey * (float)model[10]; + + glEnable(GL_FOG); + + if (drawMode == DRAWMODE_MESH) + { + if (g_mesh) + rcDebugDrawMesh(*g_mesh, g_triangleFlags); + } + else if (drawMode != DRAWMODE_POLYMESH_TRANS) + { + if (g_mesh) + rcDebugDrawMesh(*g_mesh, 0); + } + + glDepthMask(GL_FALSE); + + if (drawMode == DRAWMODE_POLYMESH || drawMode == DRAWMODE_POLYMESH_TRANS) + { + if (g_polyMesh) + rcDebugDrawPolyMesh(*g_polyMesh, g_cfg.bmin, g_cfg.cs, g_cfg.ch); + } + + glDepthMask(GL_TRUE); + + if (drawMode == DRAWMODE_COMPACT) + { + if (g_chf) + rcDebugDrawCompactHeightfieldSolid(*g_chf); + } + if (drawMode == DRAWMODE_COMPACT_DISTANCE) + { + if (g_chf) + rcDebugDrawCompactHeightfieldDistance(*g_chf); + } + if (drawMode == DRAWMODE_COMPACT_REGIONS) + { + if (g_chf) + rcDebugDrawCompactHeightfieldRegions(*g_chf); + } + if (drawMode == DRAWMODE_VOXELS) + { + if (g_solid) + rcDebugDrawHeightfieldSolid(*g_solid, g_cfg.bmin, g_cfg.cs, g_cfg.ch); + } + if (drawMode == DRAWMODE_VOXELS_WALKABLE) + { + if (g_solid) + rcDebugDrawHeightfieldWalkable(*g_solid, g_cfg.bmin, g_cfg.cs, g_cfg.ch); + } + if (drawMode == DRAWMODE_RAW_CONTOURS) + { + if (g_cset) + rcDebugDrawRawContours(*g_cset, g_cfg.bmin, g_cfg.cs, g_cfg.ch); + } + if (drawMode == DRAWMODE_CONTOURS) + { + if (g_cset) + rcDebugDrawContours(*g_cset, g_cfg.bmin, g_cfg.cs, g_cfg.ch); + } + + glDisable(GL_FOG); + + if (g_mesh) + { + // Agent dimensions. + const float r = agentRadius; + const float h = agentHeight; + float col[4]; + col[0] = 0.6f; col[1] = 0.1f; col[2] = 0.1f; col[3] = 0.75f; + rcDebugDrawCylinderWire(spos[0]-r, spos[1]+0.02f, spos[2]-r, spos[0]+r, spos[1]+h, spos[2]+r, col); + + glColor4ub(0,0,0,196); + glBegin(GL_LINES); + glVertex3f(spos[0], spos[1]-agentMaxClimb, spos[2]); + glVertex3f(spos[0], spos[1]+agentMaxClimb, spos[2]); + glVertex3f(spos[0]-r/2, spos[1]+0.02f, spos[2]); + glVertex3f(spos[0]+r/2, spos[1]+0.02f, spos[2]); + glVertex3f(spos[0], spos[1]+0.02f, spos[2]-r/2); + glVertex3f(spos[0], spos[1]+0.02f, spos[2]+r/2); + glEnd(); + + // Mesh bbox. + col[0] = 1.0f; col[1] = 1.0f; col[2] = 1.0f; col[3] = 0.25f; + rcDebugDrawBoxWire(g_cfg.bmin[0], g_cfg.bmin[1], g_cfg.bmin[2], + g_cfg.bmax[0], g_cfg.bmax[1], g_cfg.bmax[2], col); + } + + // Render GUI + glDisable(GL_DEPTH_TEST); + glMatrixMode(GL_PROJECTION); + glLoadIdentity(); + gluOrtho2D(0, width, 0, height); + glMatrixMode(GL_MODELVIEW); + glLoadIdentity(); + + + imguiBeginFrame(); + + mouseOverMenu = false; + + static int propScroll = 0; + if (imguiBeginScrollArea(GENID, "Properties", width - 250 - 10, 10, 250, height-20, &propScroll)) + mouseOverMenu = true; + + if (imguiButton(GENID, curLevel)) + { + showLevels = true; + scanDirectory("meshes", ".obj", fileList); + } + + imguiSeparator(); + + if (g_mesh) + { + if (imguiButton(GENID, "Build")) + { + memset(&g_cfg, 0, sizeof(g_cfg)); + g_cfg.cs = cellSize; + g_cfg.ch = cellHeight; + g_cfg.walkableSlopeAngle = agentMaxSlope; + g_cfg.walkableHeight = (int)ceilf(agentHeight / g_cfg.ch); + g_cfg.walkableClimb = (int)ceilf(agentMaxClimb / g_cfg.ch); + g_cfg.walkableRadius = (int)ceilf(agentRadius / g_cfg.cs); + g_cfg.maxEdgeLen = (int)(edgeMaxLen / cellSize); + g_cfg.maxSimplificationError = edgeMaxError; + g_cfg.minRegionSize = (int)rcSqr(regionMinSize); + g_cfg.mergeRegionSize = (int)rcSqr(regionMergeSize); + g_cfg.maxVertsPerPoly = (int)vertsPerPoly; + + buildNavigation(); + } + } + + imguiSeparator(); + + if (imguiCheck(GENID, "Show Log", showLog)) + showLog = !showLog; + + imguiSeparator(); + imguiLabel(GENID, "Rasterization"); + imguiSlider(GENID, "Cell Size", &cellSize, 0.1f, 1.0f, 0.01f); + imguiSlider(GENID, "Cell Height", &cellHeight, 0.1f, 1.0f, 0.01f); + + if (g_mesh) + { + int gw = 0, gh = 0; + rcCalcGridSize(g_cfg.bmin, g_cfg.bmax, cellSize, &gw, &gh); + char text[64]; + snprintf(text, 64, "Grid %d x %d", gw, gh); + imguiValue(GENID, text); + } + + imguiSeparator(); + imguiLabel(GENID, "Agent"); + imguiSlider(GENID, "Height", &agentHeight, 0.1f, 5.0f, 0.1f); + imguiSlider(GENID, "Ragius", &agentRadius, 0.1f, 5.0f, 0.1f); + imguiSlider(GENID, "Max Climb", &agentMaxClimb, 0.1f, 5.0f, 0.1f); + imguiSlider(GENID, "Max Slope", &agentMaxSlope, 0.0f, 90.0f, 1.0f); + + imguiSeparator(); + imguiLabel(GENID, "Region"); + imguiSlider(GENID, "Min Region Size", ®ionMinSize, 0.0f, 150.0f, 1.0f); + imguiSlider(GENID, "Merged Region Size", ®ionMergeSize, 0.0f, 150.0f, 1.0f); + + imguiSeparator(); + imguiLabel(GENID, "Polygonization"); + imguiSlider(GENID, "Max Edge Length", &edgeMaxLen, 0.0f, 50.0f, 1.0f); + imguiSlider(GENID, "Max Edge Error", &edgeMaxError, 0.1f, 3.0f, 0.1f); + imguiSlider(GENID, "Verts Per Poly", &vertsPerPoly, 3.0f, 12.0f, 1.0f); + + imguiSeparator(); + imguiLabel(GENID, "Draw"); + if (imguiCheck(GENID, "Input Mesh", drawMode == DRAWMODE_MESH)) + drawMode = DRAWMODE_MESH; + if (imguiCheck(GENID, "Navmesh", drawMode == DRAWMODE_POLYMESH)) + drawMode = DRAWMODE_POLYMESH; + if (imguiCheck(GENID, "Navmesh Trans", drawMode == DRAWMODE_POLYMESH_TRANS)) + drawMode = DRAWMODE_POLYMESH_TRANS; + if (imguiCheck(GENID, "Voxels", drawMode == DRAWMODE_VOXELS)) + drawMode = DRAWMODE_VOXELS; + if (imguiCheck(GENID, "Walkable Voxels", drawMode == DRAWMODE_VOXELS_WALKABLE)) + drawMode = DRAWMODE_VOXELS_WALKABLE; + if (imguiCheck(GENID, "Compact", drawMode == DRAWMODE_COMPACT)) + drawMode = DRAWMODE_COMPACT; + if (imguiCheck(GENID, "Compact Distance", drawMode == DRAWMODE_COMPACT_DISTANCE)) + drawMode = DRAWMODE_COMPACT_DISTANCE; + if (imguiCheck(GENID, "Compact Regions", drawMode == DRAWMODE_COMPACT_REGIONS)) + drawMode = DRAWMODE_COMPACT_REGIONS; + if (imguiCheck(GENID, "Raw Contours", drawMode == DRAWMODE_RAW_CONTOURS)) + drawMode = DRAWMODE_RAW_CONTOURS; + if (imguiCheck(GENID, "Contours", drawMode == DRAWMODE_CONTOURS)) + drawMode = DRAWMODE_CONTOURS; + + imguiEndScrollArea(); + + // Log + if (showLog) + { + static int logScroll = 0; + if (imguiBeginScrollArea(GENID, "Log", 10, 10, width - 300, 200, &logScroll)) + mouseOverMenu = true; + for (int i = 0; i < g_log.getMessageCount(); ++i) + imguiLabel(GENID1(i), g_log.getMessageText(i)); + imguiEndScrollArea(); + } + + // Level selection dialog. + if (showLevels) + { + static int scroll = 0; + if (imguiBeginScrollArea(GENID, "Choose Level", width-10-250-10-200, height-10-250, 200, 250, &scroll)) + mouseOverMenu = true; + + int levelToLoad = -1; + for (int i = 0; i < fileList.size; ++i) + { + if (imguiItem(GENID1(i), fileList.files[i])) + levelToLoad = i; + } + + if (levelToLoad != -1) + { + strncpy(curLevel, fileList.files[levelToLoad], sizeof(curLevel)); + curLevel[sizeof(curLevel)-1] = '\0'; + showLevels = false; + + delete g_mesh; + delete g_solid; + delete g_chf; + delete g_cset; + delete g_polyMesh; + delete [] g_triangleFlags; + g_mesh = 0; + g_solid = 0; + g_chf = 0; + g_cset = 0; + g_polyMesh = 0; + g_triangleFlags = 0; + + g_mesh = new rcMeshLoaderObj; + + char path[256]; + strcpy(path, "meshes/"); + strcat(path, curLevel); + + if (!g_mesh->load(path)) + { + printf("Could not load mesh\n"); + delete g_mesh; + g_mesh = 0; + } + + if (g_mesh) + { + rcCalcBounds(g_mesh->getVerts(), g_mesh->getVertCount(), g_cfg.bmin, g_cfg.bmax); + + // Reset camera. + camr = sqrtf(rcSqr(g_cfg.bmax[0]-g_cfg.bmin[0]) + + rcSqr(g_cfg.bmax[1]-g_cfg.bmin[1]) + + rcSqr(g_cfg.bmax[2]-g_cfg.bmin[2])) / 2; + camx = (g_cfg.bmax[0] + g_cfg.bmin[0]) / 2 + camr; + camy = (g_cfg.bmax[1] + g_cfg.bmin[1]) / 2 + camr; + camz = (g_cfg.bmax[2] + g_cfg.bmin[2]) / 2 + camr; + camr *= 3; + rx = 45; + ry = -45; + + glFogf(GL_FOG_START, camr*0.5f); + glFogf(GL_FOG_END, camr*2.5f); + } + + } + + imguiEndScrollArea(); + + } + + imguiEndFrame(); + imguiRender(&drawText); + + g_font.drawText(10.0f, (float)height-20.0f, "W/S/A/D: Move LMB: Rotate RMB: Place character", GLFont::RGBA(255,255,255,128)); + + glEnable(GL_DEPTH_TEST); + SDL_GL_SwapBuffers(); + } + + SDL_Quit(); + + delete g_mesh; + delete g_solid; + delete g_chf; + delete g_cset; + delete g_polyMesh; + delete [] g_triangleFlags; + + return 0; +} diff --git a/Recast/Examples/font.cfnt b/Recast/Examples/font.cfnt new file mode 100644 index 0000000000000000000000000000000000000000..96a2047861d9727cbe8f0ce6feac446968874145 GIT binary patch literal 90096 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 L;Ej@hL*@K`hNU;! literal 0 HcmV?d00001 diff --git a/Recast/Examples/glfont.cpp b/Recast/Examples/glfont.cpp new file mode 100644 index 0000000..cd99e42 --- /dev/null +++ b/Recast/Examples/glfont.cpp @@ -0,0 +1,285 @@ +// +// Copyright (c) 2009 Mikko Mononen memon@inside.org +// +// This software is provided 'as-is', without any express or implied +// warranty. In no event will the authors be held liable for any damages +// arising from the use of this software. +// Permission is granted to anyone to use this software for any purpose, +// including commercial applications, and to alter it and redistribute it +// freely, subject to the following restrictions: +// 1. The origin of this software must not be misrepresented; you must not +// claim that you wrote the original software. If you use this software +// in a product, an acknowledgment in the product documentation would be +// appreciated but is not required. +// 2. Altered source versions must be plainly marked as such, and must not be +// misrepresented as being the original software. +// 3. This notice may not be removed or altered from any source distribution. +// + +#include "GlFont.h" +#include +#define _USE_MATH_DEFINES +#include +#include +#include + +GLFont::GLFont(int renderVerts) : + m_fd(0), + m_texId(0), + m_verts(0), + m_nverts(0), + m_maxVerts(renderVerts) +{ +} + +GLFont::~GLFont() +{ + if (m_texId) + glDeleteTextures(1, (GLuint*)&m_texId); + unsigned char* data = (unsigned char*)m_fd; + if (data) + free(data); + if (m_verts) + free(m_verts); +} + +bool GLFont::create(const char* fileName) +{ + unsigned char* data = 0; + + FILE* fp = fopen(fileName, "rb"); + if (!fp) + return false; + + // Read cache file + fseek(fp, 0, SEEK_END); + unsigned n = ftell(fp); + fseek(fp, 0, SEEK_SET); + data = (unsigned char*)malloc(n); + fread(data, n, 1, fp); + fclose(fp); + + if (!m_verts) + m_verts = (RenderVertex*)malloc(m_maxVerts*sizeof(RenderVertex)); + + return createFontFromFontData(data); +} + +bool GLFont::createFontFromFontData(unsigned char* data) +{ + if (!data) + { + printf("GLFont::createFontFromFontData: No input data!\n"); + return false; + } + + m_fd = (FontData*)data; + + // Patch kern pointers. + for (int i = 0; i < m_fd->charCount; ++i) + m_fd->glyphs[i].kern = (KerningPair*)((int)m_fd->glyphs[i].kernOffset + data); + + unsigned char* texData = data + m_fd->textureOffset; + + // Create textures + glEnable(GL_TEXTURE_2D); + glGenTextures(1, (GLuint*)&m_texId); + glBindTexture(GL_TEXTURE_2D, m_texId); + + glPixelStorei(GL_UNPACK_ALIGNMENT, 1); + glTexImage2D(GL_TEXTURE_2D, 0, GL_ALPHA, m_fd->texWidth, m_fd->texHeight, 0, + GL_ALPHA, GL_UNSIGNED_BYTE, texData); + glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE); + glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE); + + glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR); + glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR); + + return true; +} + +int GLFont::getFontSize() const +{ + return m_fd ? m_fd->fontSize : 0; +} + +int GLFont::getDescender() const +{ + return m_fd ? m_fd->descender : 0; +} + +int GLFont::getAscender() const +{ + return m_fd ? m_fd->ascender : 0; +} + +float GLFont::getLineHeight() const +{ + return m_fd ? m_fd->lineHeight : 0.0f; +} + +float GLFont::getTextLength(const char* text, float size, float tracking) +{ + if (!m_texId) return 0.0f; + if (!m_fd) return 0.0f; + + float scale = size < 0 ? 1 : size / (float)m_fd->fontSize; + float track = scale * m_fd->ascender * tracking / 1000.0f; + + const unsigned char* src = (const unsigned char*)text; + + int prevc = -1; + float len = 0.0f; + float tx = 0.0f; + + for (; *src; ++src) + { + int c = (int)*src - m_fd->charMin; + if (c < 0 || c >= m_fd->charCount) + { + prevc = c; + continue; + } + + CachedGlyph& cg = m_fd->glyphs[c]; + if (prevc > 0 && prevc < m_fd->charCount) + { + CachedGlyph& prevcg = m_fd->glyphs[prevc]; + if (prevcg.nkern != 0) + { + for (int i = 0; i < prevcg.nkern; ++i) + { + if (prevcg.kern[i].c == c) + { + tx += prevcg.kern[i].dx * scale; + break; + } + } + } + } + + len = tx + (cg.ox + cg.w) * scale; + + tx += cg.adv * scale + track; + prevc = c; + } + + return len; +} + +void GLFont::drawText(float tx, float ty, const char* text, + unsigned int col, float size, float tracking) +{ + if (!m_fd) return; + if (!m_texId) return; + if (!m_verts) return; + + float scale = size < 0 ? 1 : size / (float)m_fd->fontSize; + float track = scale * m_fd->ascender * tracking / 1000.0f; + float su = 1.0f / m_fd->texWidth; + float sv = 1.0f / m_fd->texHeight; + + const unsigned char* src = (const unsigned char*)text; + + RenderVertex* v = &m_verts[m_nverts]; + + int prevc = -1; + + for (; *src; ++src) + { + int c = (int)*src - m_fd->charMin; + if (c == '\n') + { + ty -= getLineHeight(); + prevc = -1; + continue; + } + if (c < 0 || c >= m_fd->charCount) + { + prevc = c; + continue; + } + + CachedGlyph& cg = m_fd->glyphs[c]; + if (prevc > 0 && prevc < m_fd->charCount) + { + CachedGlyph& prevcg = m_fd->glyphs[prevc]; + if (prevcg.nkern != 0) + { + for (int i = 0; i < prevcg.nkern; ++i) + { + if (prevcg.kern[i].c == c) + { + tx += prevcg.kern[i].dx * scale; + break; + } + } + } + } + + float x0 = floorf(tx + (cg.ox - 1) * scale + 0.5f); + float y0 = floorf(ty + (cg.oy - 1) * scale + 0.5f); + float x1 = floorf(x0 + (cg.w + 2) * scale + 0.5f); + float y1 = floorf(y0 + (cg.h + 2) * scale + 0.5f); + + float u0 = (cg.tx - 1) * su; + float v0 = (cg.ty - 1) * sv; + float u1 = (cg.tx + cg.w + 1) * su; + float v1 = (cg.ty + cg.h + 1) * sv; + + if (m_nverts+6 > m_maxVerts) break; + + v->set(x0, y0, u0, v0, col); v++; + v->set(x1, y0, u1, v0, col); v++; + v->set(x1, y1, u1, v1, col); v++; + + v->set(x0, y0, u0, v0, col); v++; + v->set(x1, y1, u1, v1, col); v++; + v->set(x0, y1, u0, v1, col); v++; + + m_nverts += 6; + + tx += cg.adv * scale + track; + prevc = c; + } + + render(); +} + +void GLFont::render() +{ + if (!m_fd) return; + if (!m_texId) return; + if (!m_verts) return; + + // Render + glEnable(GL_TEXTURE_2D); + glBindTexture(GL_TEXTURE_2D, m_texId); + glTexEnvi(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE); + + glDisableClientState(GL_NORMAL_ARRAY); + glEnableClientState(GL_COLOR_ARRAY); + glEnableClientState(GL_VERTEX_ARRAY); + glEnableClientState(GL_TEXTURE_COORD_ARRAY); + glVertexPointer(2, GL_FLOAT, sizeof(RenderVertex), &m_verts[0].x); + glTexCoordPointer(2, GL_FLOAT, sizeof(RenderVertex), &m_verts[0].u); + glColorPointer(4, GL_UNSIGNED_BYTE, sizeof(RenderVertex), &m_verts[0].col); + + glDrawArrays(GL_TRIANGLES, 0, m_nverts); + m_nverts = 0; + + glDisableClientState(GL_COLOR_ARRAY); + glDisableClientState(GL_VERTEX_ARRAY); + glDisableClientState(GL_TEXTURE_COORD_ARRAY); + glDisable(GL_TEXTURE_2D); +} + +unsigned int GLFont::RGBA(unsigned char r, unsigned char g, unsigned char b, unsigned char a) +{ + return (a<<24) | (b<<16) | (g<<8) | r; +/*#ifdef WIN32 + return (a<<24) | (b<<16) | (g<<8) | r; +#else + return (r<<24) | (g<<16) | (b<<8) | a; +#endif*/ +} diff --git a/Recast/Examples/glfont.h b/Recast/Examples/glfont.h new file mode 100644 index 0000000..4d7a4e9 --- /dev/null +++ b/Recast/Examples/glfont.h @@ -0,0 +1,106 @@ +// +// Copyright (c) 2009 Mikko Mononen memon@inside.org +// +// This software is provided 'as-is', without any express or implied +// warranty. In no event will the authors be held liable for any damages +// arising from the use of this software. +// Permission is granted to anyone to use this software for any purpose, +// including commercial applications, and to alter it and redistribute it +// freely, subject to the following restrictions: +// 1. The origin of this software must not be misrepresented; you must not +// claim that you wrote the original software. If you use this software +// in a product, an acknowledgment in the product documentation would be +// appreciated but is not required. +// 2. Altered source versions must be plainly marked as such, and must not be +// misrepresented as being the original software. +// 3. This notice may not be removed or altered from any source distribution. +// + +#ifndef GLFONT_H +#define GLFONT_H + +class GLFont +{ +public: + GLFont(int renderVerts = 4096); + ~GLFont(); + + bool create(const char* fileName); + + int getFontSize() const; + int getDescender() const; + int getAscender() const; + float getLineHeight() const; + + float getTextLength(const char* text, float size = -1, float tracking = 0); + void drawText(float x, float y, const char* text, + unsigned int col, float size = -1, float tracking = 0); + + void render(); + + void debugDraw(); + + static unsigned int RGBA(unsigned char r, unsigned char g, unsigned char b, unsigned char a = 255); + +private: + bool createFontFromFontData(unsigned char* fd); + + struct KerningPair + { + inline KerningPair() {} + inline KerningPair(unsigned char c_, float dx_) : dx(dx_), c(c_) {} + inline void Set(unsigned char c_, float dx_) { dx = dx_; c = c_; } + float dx; + unsigned char c, pad[3]; + }; + + struct CachedGlyph + { + inline CachedGlyph() : w(0), h(0), ox(0), oy(0), tx(0), ty(0), adv(0.0f), nkern(0), kern(0) {} + int w, h; + int ox, oy; + int tx, ty; + float adv; + int nkern; + union + { + KerningPair* kern; + int kernOffset; + }; + }; + + struct FontData + { + unsigned int endian; + unsigned int version; + unsigned int dataSize; + unsigned int kernOffset; + unsigned int textureOffset; + int fontSize; + unsigned int texWidth; + unsigned int texHeight; + int numMipmaps; + int ascender; + int descender; + int lineHeight; + int charMin; + int charCount; + CachedGlyph glyphs[1]; + }; + + FontData* m_fd; + unsigned int m_texId; + + struct RenderVertex + { + inline void set(float x_, float y_, float u_, float v_, unsigned int c) { x=x_; y=y_; u=u_; v=v_; col=c; } + float x, y, u, v; + unsigned int col; + }; + RenderVertex* m_verts; + int m_nverts; + const int m_maxVerts; +}; + + +#endif // GLFONT_H diff --git a/Recast/Examples/imgui.cpp b/Recast/Examples/imgui.cpp new file mode 100644 index 0000000..2869452 --- /dev/null +++ b/Recast/Examples/imgui.cpp @@ -0,0 +1,851 @@ +// +// Copyright (c) 2009 Mikko Mononen memon@inside.org +// +// This software is provided 'as-is', without any express or implied +// warranty. In no event will the authors be held liable for any damages +// arising from the use of this software. +// Permission is granted to anyone to use this software for any purpose, +// including commercial applications, and to alter it and redistribute it +// freely, subject to the following restrictions: +// 1. The origin of this software must not be misrepresented; you must not +// claim that you wrote the original software. If you use this software +// in a product, an acknowledgment in the product documentation would be +// appreciated but is not required. +// 2. Altered source versions must be plainly marked as such, and must not be +// misrepresented as being the original software. +// 3. This notice may not be removed or altered from any source distribution. +// + +#include +#define _USE_MATH_DEFINES +#include +#include "imgui.h" +#include "SDL.h" +#include "SDL_opengl.h" + +#ifdef WIN32 +# define snprintf _snprintf +#endif + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +enum GfxCmdType +{ + GFXCMD_RECT, + GFXCMD_TRIANGLE, + GFXCMD_TEXT, + GFXCMD_SCISSOR, +}; + +struct GfxRect +{ + short x,y,w,h,r; +}; +struct GfxText +{ + short x,y,dir; + const char* text; +}; + +struct GfxCmd +{ + char type; + char flags; + char pad[2]; + unsigned int col; + union + { + GfxRect rect; + GfxText text; + }; +}; + +unsigned int RGBA(unsigned char r, unsigned char g, unsigned char b, unsigned char a) +{ + return (r) | (g << 8) | (b << 16) | (a << 24); +} + +static const unsigned TEXT_POOL_SIZE = 4096; +static char g_textPool[TEXT_POOL_SIZE]; +static unsigned g_textPoolSize = 0; +const char* allocText(const char* text) +{ + unsigned len = strlen(text)+1; + if (g_textPoolSize + len >= TEXT_POOL_SIZE) + return 0; + char* dst = &g_textPool[g_textPoolSize]; + memcpy(dst, text, len); + g_textPoolSize += len; + return dst; +} + +static const unsigned GFXCMD_QUEUE_SIZE = 1024; +static GfxCmd g_gfxCmdQueue[GFXCMD_QUEUE_SIZE]; +static unsigned g_gfxCmdQueueSize = 0; + +void resetGfxCmdQueue() +{ + g_gfxCmdQueueSize = 0; + g_textPoolSize = 0; +} + + +static const unsigned TEMP_COORD_COUNT = 100; +static float g_tempCoords[TEMP_COORD_COUNT*2]; +static float g_tempNormals[TEMP_COORD_COUNT*2]; + +static void drawPolygon(const float* coords, unsigned numCoords, float r, unsigned int col) +{ + if (numCoords > TEMP_COORD_COUNT) numCoords = TEMP_COORD_COUNT; + + for (unsigned i = 0, j = numCoords-1; i < numCoords; j=i++) + { + const float* v0 = &coords[j*2]; + const float* v1 = &coords[i*2]; + float dx = v1[0] - v0[0]; + float dy = v1[1] - v0[1]; + float d = sqrtf(dx*dx+dy*dy); + if (d > 0) + { + d = 1.0f/d; + dx *= d; + dy *= d; + } + g_tempNormals[j*2+0] = dy; + g_tempNormals[j*2+1] = -dx; + } + + for (unsigned i = 0, j = numCoords-1; i < numCoords; j=i++) + { + float dlx0 = g_tempNormals[j*2+0]; + float dly0 = g_tempNormals[j*2+1]; + float dlx1 = g_tempNormals[i*2+0]; + float dly1 = g_tempNormals[i*2+1]; + float dmx = (dlx0 + dlx1) * 0.5f; + float dmy = (dly0 + dly1) * 0.5f; + float dmr2 = dmx*dmx + dmy*dmy; + if (dmr2 > 0.000001f) + { + float scale = 1.0f / dmr2; + if (scale > 10.0f) scale = 10.0f; + dmx *= scale; + dmy *= scale; + } + g_tempCoords[i*2+0] = coords[i*2+0]+dmx*r; + g_tempCoords[i*2+1] = coords[i*2+1]+dmy*r; + } + + unsigned int colTrans = RGBA(col&0xff, (col>>8)&0xff, (col>>16)&0xff, 0); + + glBegin(GL_TRIANGLES); + + glColor4ubv((GLubyte*)&col); + + for (unsigned i = 0, j = numCoords-1; i < numCoords; j=i++) + { + glVertex2fv(&coords[i*2]); + glVertex2fv(&coords[j*2]); + glColor4ubv((GLubyte*)&colTrans); + glVertex2fv(&g_tempCoords[j*2]); + + glVertex2fv(&g_tempCoords[j*2]); + glVertex2fv(&g_tempCoords[i*2]); + + glColor4ubv((GLubyte*)&col); + glVertex2fv(&coords[i*2]); + } + + glColor4ubv((GLubyte*)&col); + for (unsigned i = 2; i < numCoords; ++i) + { + glVertex2fv(&coords[0]); + glVertex2fv(&coords[(i-1)*2]); + glVertex2fv(&coords[i*2]); + } + + glEnd(); +} + +static const int CIRCLE_VERTS = 8*4; +static float g_circleVerts[CIRCLE_VERTS*2]; +static bool g_circleVertsInitialized = false; + +const float* getCircleVerts() +{ + if (!g_circleVertsInitialized) + { + g_circleVertsInitialized = true; + for (unsigned i = 0; i < CIRCLE_VERTS; ++i) + { + float a = (float)i/(float)CIRCLE_VERTS * (float)M_PI*2; + g_circleVerts[i*2+0] = cosf(a); + g_circleVerts[i*2+1] = sinf(a); + } + } + return g_circleVerts; +} + +static void drawRect(float x, float y, float w, float h, float fth, unsigned int col) +{ + float verts[4*2] = + { + x, y, + x+w, y, + x+w, y+h, + x, y+h, + }; + drawPolygon(verts, 4, fth, col); +} + +static void drawEllipse(float x, float y, float w, float h, float fth, unsigned int col) +{ + float verts[CIRCLE_VERTS*2]; + const float* cverts = getCircleVerts(); + float* v = verts; + + for (unsigned i = 0; i < CIRCLE_VERTS; ++i) + { + *v++ = x + cverts[i*2]*w; + *v++ = y + cverts[i*2+1]*h; + } + + drawPolygon(verts, CIRCLE_VERTS, fth, col); +} + +static void drawRoundedRect(float x, float y, float w, float h, float r, float fth, unsigned int col) +{ + const unsigned n = CIRCLE_VERTS/4; + float verts[(n+1)*4*2]; + const float* cverts = getCircleVerts(); + float* v = verts; + + for (unsigned i = 0; i <= n; ++i) + { + *v++ = x+w-r + cverts[i*2]*r; + *v++ = y+h-r + cverts[i*2+1]*r; + } + + for (unsigned i = n; i <= n*2; ++i) + { + *v++ = x+r + cverts[i*2]*r; + *v++ = y+h-r + cverts[i*2+1]*r; + } + + for (unsigned i = n*2; i <= n*3; ++i) + { + *v++ = x+r + cverts[i*2]*r; + *v++ = y+r + cverts[i*2+1]*r; + } + + for (unsigned i = n*3; i < n*4; ++i) + { + *v++ = x+w-r + cverts[i*2]*r; + *v++ = y+r + cverts[i*2+1]*r; + } + *v++ = x+w-r + cverts[0]*r; + *v++ = y+r + cverts[1]*r; + + drawPolygon(verts, (n+1)*4, fth, col); +} + +static void drawLine(float x0, float y0, float x1, float y1, float r, float fth, unsigned int col) +{ + float dx = x1-x0; + float dy = y1-y0; + float d = sqrtf(dx*dx+dy*dy); + if (d > 0.0001f) + { + d = 1.0f/d; + dx *= d; + dy *= d; + } + float t = dx; + dx = dy; + dy = -t; + float verts[4*2]; + r -= fth; + r *= 0.5f; + if (r < 0.01f) r = 0.01f; + dx *= r; + dy *= r; + + verts[0] = x0-dx; + verts[1] = y0-dy; + + verts[2] = x0+dx; + verts[3] = y0+dy; + + verts[4] = x1+dx; + verts[5] = y1+dy; + + verts[6] = x1-dx; + verts[7] = y1-dy; + + drawPolygon(verts, 4, fth, col); +} + + +void renderGfxCmdQueue(void (*drawText)(int x, int y, int dir, const char* text, unsigned int col)) +{ + glDisable(GL_SCISSOR_TEST); + for (unsigned i = 0; i < g_gfxCmdQueueSize; ++i) + { + const GfxCmd& cmd = g_gfxCmdQueue[i]; + if (cmd.type == GFXCMD_RECT) + { + if (cmd.rect.r == 0) + { + drawRect((float)cmd.rect.x+0.5f, (float)cmd.rect.y+0.5f, + (float)cmd.rect.w-1, (float)cmd.rect.h-1, + 1.0f, cmd.col); + } + else + { + drawRoundedRect((float)cmd.rect.x+0.5f, (float)cmd.rect.y+0.5f, + (float)cmd.rect.w-1, (float)cmd.rect.h-1, + (float)cmd.rect.r, 1.0f, cmd.col); + } + } + else if (cmd.type == GFXCMD_TRIANGLE) + { + glColor4ub(cmd.col&0xff, (cmd.col>>8)&0xff, (cmd.col>>16)&0xff, (cmd.col>>24)&0xff); + if (cmd.flags == 1) + { + const float verts[3*2] = + { + (float)cmd.rect.x+0.5f, (float)cmd.rect.y+0.5f, + (float)cmd.rect.x+0.5f+(float)cmd.rect.w-1, (float)cmd.rect.y+0.5f+(float)cmd.rect.h/2-0.5f, + (float)cmd.rect.x+0.5f, (float)cmd.rect.y+0.5f+(float)cmd.rect.h-1, + }; + drawPolygon(verts, 3, 1.0f, cmd.col); + } + if (cmd.flags == 2) + { + const float verts[3*2] = + { + (float)cmd.rect.x+0.5f, (float)cmd.rect.y+(float)cmd.rect.h-1, + (float)cmd.rect.x+0.5f+(float)cmd.rect.w/2-0.5f, (float)cmd.rect.y+0.5f, + (float)cmd.rect.x+0.5f+(float)cmd.rect.w-1, (float)cmd.rect.y+0.5f+(float)cmd.rect.h-1, + }; + drawPolygon(verts, 3, 1.0f, cmd.col); + } + } + else if (cmd.type == GFXCMD_TEXT) + { + drawText(cmd.text.x, cmd.text.y, cmd.text.dir, cmd.text.text, cmd.col); + } + else if (cmd.type == GFXCMD_SCISSOR) + { + if (cmd.flags) + { + glEnable(GL_SCISSOR_TEST); + glScissor(cmd.rect.x, cmd.rect.y, cmd.rect.w, cmd.rect.h); + } + else + { + glDisable(GL_SCISSOR_TEST); + } + } + } + glDisable(GL_SCISSOR_TEST); +} + +void addGfxCmdScissor(int x, int y, int w, int h) +{ + if (g_gfxCmdQueueSize >= GFXCMD_QUEUE_SIZE) + return; + GfxCmd& cmd = g_gfxCmdQueue[g_gfxCmdQueueSize++]; + cmd.type = GFXCMD_SCISSOR; + cmd.flags = x < 0 ? 0 : 1; // on/off flag. + cmd.col = 0; + cmd.rect.x = (short)x; + cmd.rect.y = (short)y; + cmd.rect.w = (short)w; + cmd.rect.h = (short)h; +} + +void addGfxCmdRect(int x, int y, int w, int h, unsigned int color) +{ + if (g_gfxCmdQueueSize >= GFXCMD_QUEUE_SIZE) + return; + GfxCmd& cmd = g_gfxCmdQueue[g_gfxCmdQueueSize++]; + cmd.type = GFXCMD_RECT; + cmd.flags = 0; + cmd.col = color; + cmd.rect.x = (short)x; + cmd.rect.y = (short)y; + cmd.rect.w = (short)w; + cmd.rect.h = (short)h; + cmd.rect.r = 0; +} + +void addGfxCmdRoundedRect(int x, int y, int w, int h, int r, unsigned int color) +{ + if (g_gfxCmdQueueSize >= GFXCMD_QUEUE_SIZE) + return; + GfxCmd& cmd = g_gfxCmdQueue[g_gfxCmdQueueSize++]; + cmd.type = GFXCMD_RECT; + cmd.flags = 0; + cmd.col = color; + cmd.rect.x = (short)x; + cmd.rect.y = (short)y; + cmd.rect.w = (short)w; + cmd.rect.h = (short)h; + cmd.rect.r = (short)r; +} + +void addGfxCmdTriangle(int x, int y, int w, int h, int flags, unsigned int color) +{ + if (g_gfxCmdQueueSize >= GFXCMD_QUEUE_SIZE) + return; + GfxCmd& cmd = g_gfxCmdQueue[g_gfxCmdQueueSize++]; + cmd.type = GFXCMD_TRIANGLE; + cmd.flags = (char)flags; + cmd.col = color; + cmd.rect.x = (short)x; + cmd.rect.y = (short)y; + cmd.rect.w = (short)w; + cmd.rect.h = (short)h; +} + +void addGfxCmdText(int x, int y, int dir, const char* text, unsigned int color) +{ + if (g_gfxCmdQueueSize >= GFXCMD_QUEUE_SIZE) + return; + GfxCmd& cmd = g_gfxCmdQueue[g_gfxCmdQueueSize++]; + cmd.type = GFXCMD_TEXT; + cmd.flags = 0; + cmd.col = color; + cmd.text.x = (short)x; + cmd.text.y = (short)y; + cmd.text.dir = (short)dir; + cmd.text.text = allocText(text); +} + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +struct GuiState +{ + GuiState() : + mbutPressed(false), mbutReleased(false), mbut(false), mx(-1), my(-1), + isHot(false), isActive(false), wentActive(false), + dragX(0), dragY(0), dragOrig(0), + widgetX(0), widgetY(0), widgetW(100), + active(0), hot(0), hotToBe(0) + { + } + + bool mbutPressed, mbutReleased; + bool mbut; + int mx,my; + unsigned int active; + unsigned int hot; + unsigned int hotToBe; + bool isHot; + bool isActive; + bool wentActive; + int dragX, dragY; + float dragOrig; + int widgetX, widgetY, widgetW; +}; + +static GuiState g_state; + +inline bool anyActive() +{ + return g_state.active != 0; +} + +inline bool isActive(unsigned int id) +{ + return g_state.active == id; +} + +inline bool isHot(unsigned int id) +{ + return g_state.hot == id; +} + +inline bool inRect(int x, int y, int w, int h) +{ + return g_state.mx >= x && g_state.mx <= x+w && g_state.my >= y && g_state.my <= y+h; +} + +void clearInput() +{ + g_state.mbutPressed = false; + g_state.mbutReleased = false; +} + +void clearActive(void) +{ + g_state.active = 0; + // mark all UI for this frame as processed + clearInput(); +} + +void setActive(unsigned int id) +{ + g_state.active = id; + g_state.wentActive = true; +} + +void setHot(unsigned int id) +{ + g_state.hotToBe = id; +} + + +bool buttonLogic(unsigned int id, bool over) +{ + bool res = false; + // process down + if (!anyActive()) + { + if (over) + setHot(id); + if (isHot(id) && g_state.mbutPressed) + setActive(id); + } + + // if button is active, then react on left up + if (isActive(id)) + { + g_state.isActive = true; + if (over) + setHot(id); + if (g_state.mbutReleased) + { + if (isHot(id)) + res = true; + clearActive(); + } + } + + if (isHot(id)) + g_state.isHot = true; + + return res; +} + +static void updateInput() +{ + int mx, my; + Uint8 state = SDL_GetMouseState(&mx, &my); + bool mbut = (state & SDL_BUTTON_LMASK) != 0; + SDL_Surface* screen = SDL_GetVideoSurface(); + my = screen->h-1 - my; + + g_state.mx = mx; + g_state.my = my; + g_state.mbutPressed = !g_state.mbut && mbut; + g_state.mbutReleased = g_state.mbut && !mbut; + g_state.mbut = mbut; +} + +void imguiBeginFrame() +{ + updateInput(); + + g_state.hot = g_state.hotToBe; + g_state.hotToBe = 0; + + g_state.wentActive = false; + g_state.isActive = false; + g_state.isHot = false; + + g_state.widgetX = 0; + g_state.widgetY = 0; + g_state.widgetW = 0; + + resetGfxCmdQueue(); +} + +void imguiEndFrame() +{ + clearInput(); +} + +void imguiRender(void (*drawText)(int x, int y, int dir, const char* text, unsigned int col)) +{ + renderGfxCmdQueue(drawText); +} + + +////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// +static const int BUTTON_HEIGHT = 20; +static const int SLIDER_HEIGHT = 20; +static const int SLIDER_MARKER_WIDTH = 10; +static const int CHECK_SIZE = 8; +static const int DEFAULT_SPACING = 4; +static const int TEXT_HEIGHT = 8; +static const int SCROLL_AREA_PADDING = 6; +static const int INTEND_SIZE = 16; +static const int AREA_HEADER = 28; + +static int g_scrollTop = 0; +static int g_scrollBottom = 0; +static int g_scrollRight = 0; +static int g_scrollAreaTop = 0; +static int* g_scrollVal = 0; +static int g_focusTop = 0; +static int g_focusBottom = 0; +static unsigned int g_scrollId = 0; + +bool imguiBeginScrollArea(unsigned int id, const char* name, int x, int y, int w, int h, int* scroll) +{ + g_scrollId = id; + + g_state.widgetX = x + SCROLL_AREA_PADDING; + g_state.widgetY = y+h-AREA_HEADER + (*scroll); + g_state.widgetW = w - SCROLL_AREA_PADDING*4; + g_scrollTop = y-AREA_HEADER+h; + g_scrollBottom = y+SCROLL_AREA_PADDING; + g_scrollRight = x+w - SCROLL_AREA_PADDING*3; + g_scrollVal = scroll; + + g_scrollAreaTop = g_state.widgetY; + + g_focusTop = y-AREA_HEADER; + g_focusBottom = y-AREA_HEADER+h; + + addGfxCmdRoundedRect(x, y, w, h, 6, RGBA(0,0,0,192)); + + addGfxCmdText(x+AREA_HEADER/2, y+h-AREA_HEADER/2-TEXT_HEIGHT/2, 1, name, RGBA(255,255,255,128)); + + addGfxCmdScissor(x+SCROLL_AREA_PADDING, y+SCROLL_AREA_PADDING, w-SCROLL_AREA_PADDING*4, h-AREA_HEADER-SCROLL_AREA_PADDING); + + return inRect(x, y, w, h); +} + +void imguiEndScrollArea() +{ + // Disable scissoring. + addGfxCmdScissor(-1,-1,-1,-1); + + // Draw scroll bar + int x = g_scrollRight+SCROLL_AREA_PADDING/2; + int y = g_scrollBottom; + int w = SCROLL_AREA_PADDING*2; + int h = g_scrollTop - g_scrollBottom; + + int stop = g_scrollAreaTop; + int sbot = g_state.widgetY; + int sh = stop - sbot; // The scrollable area height. + + float barHeight = (float)h/(float)sh; + + if (barHeight < 1) + { + float barY = (float)(y - sbot)/(float)sh; + if (barY < 0) barY = 0; + if (barY > 1) barY = 1; + + // Handle scroll bar logic. + unsigned int hid = g_scrollId; + int hx = x; + int hy = y + (int)(barY*h); + int hw = w; + int hh = (int)(barHeight*h); + + const int range = h - (hh-1); + bool over = inRect(hx, hy, hw, hh); + buttonLogic(hid, over); + if (isActive(hid)) + { + float u = (float)(hy-y) / (float)range; + if (g_state.wentActive) + { + g_state.dragY = g_state.my; + g_state.dragOrig = u; + } + if (g_state.dragY != g_state.my) + { + u = g_state.dragOrig + (g_state.my - g_state.dragY) / (float)range; + if (u < 0) u = 0; + if (u > 1) u = 1; + *g_scrollVal = (int)((1-u) * (sh - h)); + } + } + + // BG + addGfxCmdRoundedRect(x, y, w, h, w/2-1, RGBA(0,0,0,196)); + // Bar + if (isActive(hid)) + addGfxCmdRoundedRect(hx, hy, hw, hh, w/2-1, RGBA(255,196,0,196)); + else + addGfxCmdRoundedRect(hx, hy, hw, hh, w/2-1, isHot(hid) ? RGBA(255,196,0,96) : RGBA(255,255,255,64)); + } +} + +bool imguiButton(unsigned int id, const char* text) +{ + int x = g_state.widgetX; + int y = g_state.widgetY - BUTTON_HEIGHT; + int w = g_state.widgetW; + int h = BUTTON_HEIGHT; + g_state.widgetY -= BUTTON_HEIGHT + DEFAULT_SPACING; + + bool over = inRect(x, y, w, h); + bool res = buttonLogic(id, over); + + addGfxCmdRoundedRect(x, y, w, h, BUTTON_HEIGHT/2-1, RGBA(128,128,128, isActive(id)?196:96)); + addGfxCmdText(x+BUTTON_HEIGHT/2, y+BUTTON_HEIGHT/2-TEXT_HEIGHT/2, 1, text, isHot(id) ? RGBA(255,196,0,255) : RGBA(255,255,255,200)); + + return res; +} + +bool imguiItem(unsigned int id, const char* text) +{ + int x = g_state.widgetX; + int y = g_state.widgetY - BUTTON_HEIGHT; + int w = g_state.widgetW; + int h = BUTTON_HEIGHT; + g_state.widgetY -= BUTTON_HEIGHT + DEFAULT_SPACING; + + bool over = inRect(x, y, w, h); + bool res = buttonLogic(id, over); + + if (isHot(id)) + addGfxCmdRoundedRect(x, y, w, h, 2, RGBA(255,196,0,isActive(id)?196:96)); + addGfxCmdText(x+BUTTON_HEIGHT/2, y+BUTTON_HEIGHT/2-TEXT_HEIGHT/2, 1, text, RGBA(255,255,255,200)); + + return res; +} + +bool imguiCheck(unsigned int id, const char* text, bool checked) +{ + int x = g_state.widgetX; + int y = g_state.widgetY - BUTTON_HEIGHT; + int w = g_state.widgetW; + int h = BUTTON_HEIGHT; + g_state.widgetY -= BUTTON_HEIGHT + DEFAULT_SPACING; + + bool over = inRect(x, y, w, h); + bool res = buttonLogic(id, over); + + const int cx = x+BUTTON_HEIGHT/2-CHECK_SIZE/2; + const int cy = y+BUTTON_HEIGHT/2-CHECK_SIZE/2; + addGfxCmdRoundedRect(cx-3, cy-3, CHECK_SIZE+6, CHECK_SIZE+6, 4, RGBA(128,128,128, isActive(id)?196:96)); + if (checked) + addGfxCmdRoundedRect(cx, cy, CHECK_SIZE, CHECK_SIZE, CHECK_SIZE/2-1, RGBA(255,255,255,isActive(id)?255:200)); + + addGfxCmdText(x+BUTTON_HEIGHT, y+BUTTON_HEIGHT/2-TEXT_HEIGHT/2, 1, text, isHot(id) ? RGBA(255,196,0,255) : RGBA(255,255,255,200)); + + return res; +} + +bool imguiCollapse(unsigned int id, const char* text, bool checked) +{ + int x = g_state.widgetX; + int y = g_state.widgetY - BUTTON_HEIGHT; + int w = g_state.widgetW; + int h = BUTTON_HEIGHT; + g_state.widgetY -= BUTTON_HEIGHT; // + DEFAULT_SPACING; + + const int cx = x+BUTTON_HEIGHT/2-CHECK_SIZE/2; + const int cy = y+BUTTON_HEIGHT/2-CHECK_SIZE/2; + + bool over = inRect(x, y, w, h); + bool res = buttonLogic(id, over); + + if (checked) + addGfxCmdTriangle(cx, cy, CHECK_SIZE, CHECK_SIZE, 1, RGBA(255,255,255,isActive(id)?255:200)); + else + addGfxCmdTriangle(cx, cy, CHECK_SIZE, CHECK_SIZE, 2, RGBA(255,255,255,isActive(id)?255:200)); + + addGfxCmdText(x+BUTTON_HEIGHT, y+BUTTON_HEIGHT/2-TEXT_HEIGHT/2, 1, text, isHot(id) ? RGBA(255,196,0,255) : RGBA(255,255,255,200)); + + return res; +} + +void imguiLabel(unsigned int /*id*/, const char* text) +{ + int x = g_state.widgetX; + int y = g_state.widgetY - BUTTON_HEIGHT; + g_state.widgetY -= BUTTON_HEIGHT; + addGfxCmdText(x, y+BUTTON_HEIGHT/2-TEXT_HEIGHT/2, 1, text, RGBA(255,255,255,255)); +} + +void imguiValue(unsigned int /*id*/, const char* text) +{ + const int x = g_state.widgetX; + const int y = g_state.widgetY - BUTTON_HEIGHT; + const int w = g_state.widgetW; + g_state.widgetY -= BUTTON_HEIGHT; + + addGfxCmdText(x+w-BUTTON_HEIGHT/2, y+BUTTON_HEIGHT/2-TEXT_HEIGHT/2, -1, text, RGBA(255,255,255,200)); +} + +bool imguiSlider(unsigned int id, const char* text, float* val, float vmin, float vmax, float vinc) +{ + int x = g_state.widgetX; + int y = g_state.widgetY - BUTTON_HEIGHT; + int w = g_state.widgetW; + int h = SLIDER_HEIGHT; + g_state.widgetY -= SLIDER_HEIGHT + DEFAULT_SPACING; + + addGfxCmdRoundedRect(x, y, w, h, 4, RGBA(0,0,0,128)); + + const int range = w - SLIDER_MARKER_WIDTH; + + float u = (*val - vmin) / (vmax-vmin); + if (u < 0) u = 0; + if (u > 1) u = 1; + int m = (int)(u * range); + + bool over = inRect(x+m, y, SLIDER_MARKER_WIDTH, SLIDER_HEIGHT); + bool res = buttonLogic(id, over); + bool valChanged = false; + + if (isActive(id)) + { + if (g_state.wentActive) + { + g_state.dragX = g_state.mx; + g_state.dragOrig = u; + } + if (g_state.dragX != g_state.mx) + { + u = g_state.dragOrig + (float)(g_state.mx - g_state.dragX) / (float)range; + if (u < 0) u = 0; + if (u > 1) u = 1; + *val = vmin + u*(vmax-vmin); + *val = floorf(*val / vinc)*vinc; // Snap to vinc + m = (int)(u * range); + valChanged = true; + } + } + + if (isActive(id)) + addGfxCmdRoundedRect(x+m, y, SLIDER_MARKER_WIDTH, SLIDER_HEIGHT, 4, RGBA(255,255,255,255)); + else + addGfxCmdRoundedRect(x+m, y, SLIDER_MARKER_WIDTH, SLIDER_HEIGHT, 4, isHot(id) ? RGBA(255,196,0,128) : RGBA(255,255,255,64)); + + int digits = (int)(ceilf(log10f(vinc))); + char fmt[16]; + snprintf(fmt, 16, "%%.%df", digits >= 0 ? 0 : -digits); + char msg[128]; + snprintf(msg, 128, fmt, *val); + + addGfxCmdText(x+SLIDER_HEIGHT/2, y+SLIDER_HEIGHT/2-TEXT_HEIGHT/2, 1, text, isHot(id) ? RGBA(255,196,0,255) : RGBA(255,255,255,200)); + addGfxCmdText(x+w-SLIDER_HEIGHT/2, y+SLIDER_HEIGHT/2-TEXT_HEIGHT/2, -1, msg, isHot(id) ? RGBA(255,196,0,255) : RGBA(255,255,255,200)); + + return res || valChanged; +} + + +void imguiIndent() +{ + g_state.widgetX += INTEND_SIZE; + g_state.widgetW -= INTEND_SIZE; +} + +void imguiUnindent() +{ + g_state.widgetX -= INTEND_SIZE; + g_state.widgetW += INTEND_SIZE; +} + +void imguiSeparator() +{ + g_state.widgetY -= DEFAULT_SPACING*3; +} \ No newline at end of file diff --git a/Recast/Examples/imgui.h b/Recast/Examples/imgui.h new file mode 100644 index 0000000..16e80e0 --- /dev/null +++ b/Recast/Examples/imgui.h @@ -0,0 +1,45 @@ +// +// Copyright (c) 2009 Mikko Mononen memon@inside.org +// +// This software is provided 'as-is', without any express or implied +// warranty. In no event will the authors be held liable for any damages +// arising from the use of this software. +// Permission is granted to anyone to use this software for any purpose, +// including commercial applications, and to alter it and redistribute it +// freely, subject to the following restrictions: +// 1. The origin of this software must not be misrepresented; you must not +// claim that you wrote the original software. If you use this software +// in a product, an acknowledgment in the product documentation would be +// appreciated but is not required. +// 2. Altered source versions must be plainly marked as such, and must not be +// misrepresented as being the original software. +// 3. This notice may not be removed or altered from any source distribution. +// + +#ifndef IMGUI_H +#define IMGUI_H + +#define GENID ((__LINE__) << 16) +#define GENID1(x) ((__LINE__) << 16 | (x)) + +void imguiBeginFrame(); +void imguiEndFrame(); +void imguiRender(void (*drawText)(int x, int y, int dir, const char* text, unsigned int col)); + +bool imguiBeginScrollArea(unsigned int id, const char* name, int x, int y, int w, int h, int* scroll); +void imguiEndScrollArea(); + +void imguiIndent(); +void imguiUnindent(); +void imguiSeparator(); + +bool imguiButton(unsigned int id, const char* text); +bool imguiItem(unsigned int id, const char* text); +bool imguiCheck(unsigned int id, const char* text, bool checked); +bool imguiCollapse(unsigned int id, const char* text, bool checked); +void imguiLabel(unsigned int id, const char* text); +void imguiValue(unsigned int id, const char* text); +bool imguiSlider(unsigned int id, const char* text, float* val, float vmin, float vmax, float vinc); + + +#endif // IMGUI_H \ No newline at end of file diff --git a/Recast/Include/Recast.h b/Recast/Include/Recast.h new file mode 100644 index 0000000..064304f --- /dev/null +++ b/Recast/Include/Recast.h @@ -0,0 +1,390 @@ +// +// Copyright (c) 2009 Mikko Mononen memon@inside.org +// +// This software is provided 'as-is', without any express or implied +// warranty. In no event will the authors be held liable for any damages +// arising from the use of this software. +// Permission is granted to anyone to use this software for any purpose, +// including commercial applications, and to alter it and redistribute it +// freely, subject to the following restrictions: +// 1. The origin of this software must not be misrepresented; you must not +// claim that you wrote the original software. If you use this software +// in a product, an acknowledgment in the product documentation would be +// appreciated but is not required. +// 2. Altered source versions must be plainly marked as such, and must not be +// misrepresented as being the original software. +// 3. This notice may not be removed or altered from any source distribution. +// + +#ifndef RECAST_H +#define RECAST_H + +struct rcConfig +{ + int width, height; // Dimensions of the rasterized heighfield + float cs, ch; // Grid cell size and height. + float bmin[3], bmax[3]; // Grid bounds. + float walkableSlopeAngle; // Maximum walkble slope angle in degrees. + int walkableHeight; // Minimum height where the agent can still walk. + int walkableClimb; // Maximum height between grid cells the agent can climb. + int walkableRadius; // Radius of the agent in cells. + int maxEdgeLen; // Maximum contour edge length in cells. + float maxSimplificationError; // Maximum distance error from contour to cells. + int minRegionSize; // Minimum regions size. Smaller regions will be deleted. + int mergeRegionSize; // Minimum regions size. Smaller regions will be merged. + int maxVertsPerPoly; // Max number of vertices per polygon. +}; + +struct rcSpan +{ + unsigned int smin : 15; // Span min height. + unsigned int smax : 15; // Span max height. + unsigned int flags : 2; // Span flags. + rcSpan* next; +}; + +struct rcSpanPool +{ + rcSpanPool* next; + rcSpan items[1]; +}; + +struct rcHeightfield +{ + inline rcHeightfield() : width(0), height(0), spans(0), pools(0), freelist(0) {} + inline ~rcHeightfield() + { + delete [] spans; + while (pools) + { + rcSpanPool* next = pools->next; + delete [] reinterpret_cast(pools); + pools = next; + } + } + int width, height; + rcSpan** spans; + rcSpanPool* pools; + rcSpan* freelist; +}; + +struct rcCompactCell +{ + unsigned int index : 24; + unsigned int count : 8; +}; + +struct rcCompactSpan +{ + unsigned short y; + unsigned short reg; + unsigned short dist; + unsigned short con; + unsigned char h; + unsigned char flags; +}; + +struct rcCompactHeightfield +{ + inline rcCompactHeightfield() : cells(0), spans(0), maxDistance(0), maxRegions(0) {} + inline ~rcCompactHeightfield() { delete [] cells; delete [] spans; } + int width, height; + int spanCount; + int walkableHeight, walkableClimb; + unsigned short maxDistance; + unsigned short maxRegions; + float minx, miny, minz; + float maxx, maxy, maxz; + float cs, ch; + rcCompactCell* cells; + rcCompactSpan* spans; +}; + +struct rcContour +{ + inline rcContour() : verts(0), nverts(0), rverts(0), nrverts(0), cx(0), cy(0), cz(0) { } + inline ~rcContour() { delete [] verts; delete [] rverts; } + int* verts; + int nverts; + int* rverts; + int nrverts; + int cx,cy,cz; + unsigned short reg; +}; + +struct rcContourSet +{ + inline rcContourSet() : conts(0), nconts(0) {} + inline ~rcContourSet() { delete [] conts; } + rcContour* conts; + int nconts; +}; + +struct rcPolyMesh +{ + inline rcPolyMesh() : verts(0), polys(0), nverts(0), npolys(0), nvp(3) {} + inline ~rcPolyMesh() { delete [] verts; delete [] polys; } + unsigned short* verts; + unsigned short* polys; + int nverts; + int npolys; + int nvp; +}; + +class rcIntArray +{ + int* m_data; + int m_size, m_cap; +public: + inline rcIntArray() : m_data(0), m_size(0), m_cap(0) {} + inline rcIntArray(int n) : m_data(0), m_size(0), m_cap(n) { m_data = new int[n]; } + inline ~rcIntArray() { delete [] m_data; } + void resize(int n); + inline void push(int item) { resize(m_size+1); m_data[m_size-1] = item; } + inline int pop() { if (m_size > 0) m_size--; return m_data[m_size]; } + inline const int& operator[](int i) const { return m_data[i]; } + inline int& operator[](int i) { return m_data[i]; } + inline int size() const { return m_size; } +}; + +enum rcSpanFlags +{ + RC_WALKABLE = 0x01, + RC_REACHABLE = 0x02, +}; + +// Comppact span neighbour helpers. +inline int rcGetCon(const rcCompactSpan& s, int dir) +{ + return (s.con >> (dir*4)) & 0xf; +} + +inline int rcGetDirOffsetX(int dir) +{ + const int offset[4] = { -1, 0, 1, 0, }; + return offset[dir&0x03]; +} + +inline int rcGetDirOffsetY(int dir) +{ + const int offset[4] = { 0, 1, 0, -1 }; + return offset[dir&0x03]; +} + +// Common helper functions +template inline void rcSwap(T& a, T& b) { T t = a; a = b; b = t; } +template inline T rcMin(T a, T b) { return a < b ? a : b; } +template inline T rcMax(T a, T b) { return a > b ? a : b; } +template inline T rcAbs(T a) { return a < 0 ? -a : a; } +template inline T rcSqr(T a) { return a*a; } +template inline T rcClamp(T v, T mn, T mx) { return v < mn ? mn : (v > mx ? mx : v); } + +// Common vector helper functions. +inline void vcross(float* dest, const float* v1, const float* v2) +{ + dest[0] = v1[1]*v2[2] - v1[2]*v2[1]; + dest[1] = v1[2]*v2[0] - v1[0]*v2[2]; + dest[2] = v1[0]*v2[1] - v1[1]*v2[0]; +} + +inline float vdot(const float* v1, const float* v2) +{ + return v1[0]*v2[0] + v1[1]*v2[1] + v1[2]*v2[2]; +} + +inline void vsub(float* dest, const float* v1, const float* v2) +{ + dest[0] = v1[0]-v2[0]; + dest[1] = v1[1]-v2[1]; + dest[2] = v1[2]-v2[2]; +} + +inline void vmin(float* mn, const float* v) +{ + mn[0] = rcMin(mn[0], v[0]); + mn[1] = rcMin(mn[1], v[1]); + mn[2] = rcMin(mn[2], v[2]); +} + +inline void vmax(float* mx, const float* v) +{ + mx[0] = rcMax(mx[0], v[0]); + mx[1] = rcMax(mx[1], v[1]); + mx[2] = rcMax(mx[2], v[2]); +} + +inline void vcopy(float* dest, const float* v) +{ + dest[0] = v[0]; + dest[1] = v[1]; + dest[2] = v[2]; +} + +inline float vdistSqr(const float* v1, const float* v2) +{ + float dx = v2[0] - v1[0]; + float dy = v2[1] - v1[1]; + float dz = v2[2] - v1[2]; + return dx*dx + dy*dy + dz*dz; +} + +inline void vnormalize(float* v) +{ + float d = 1.0f / sqrtf(rcSqr(v[0]) + rcSqr(v[1]) + rcSqr(v[2])); + v[0] *= d; + v[1] *= d; + v[2] *= d; +} + +inline bool vequal(const float* p0, const float* p1) +{ + static const float thr = rcSqr(1.0f/16384.0f); + const float d = vdistSqr(p0, p1); + return d < thr; +} + + +// Calculated bounding box of array of vertices. +// Params: +// verts - (in) array of vertices +// nv - (in) vertex count +// bmin, bmax - (out) bounding box +void rcCalcBounds(const float* verts, int nv, float* bmin, float* bmax); + +// Calculates grid size based on bounding box and grid cell size. +// Params: +// bmin, bmax - (in) bounding box +// cs - (in) grid cell size +// w - (out) grid width +// h - (out) grid height +void rcCalcGridSize(float* bmin, float* bmax, float cs, int* w, int* h); + +// Creates and initializes new heightfield. +// Params: +// hf - (in/out) heightfield to initialize. +// width - (in) width of the heightfield. +// height - (in) height of the heightfield. +bool rcCreateHeightfield(rcHeightfield& hf, int width, int height); + +// Sets the WALKABLE flag for every triangle whose slope is below +// the maximun walkable slope angle. +// Params: +// walkableSlopeAngle - (in) maximun slope angle in degrees. +// tris - (in) array of triangle vertex indices +// norms - (in) array of triangle normals +// nt - (in) triangle count +// flags - (out) array of triangle flags +void rcMarkWalkableTriangles(const float walkableSlopeAngle, + const int* tris, const float* norms, int nt, + unsigned char* flags); + +// Rasterizes the triangles into heightfield spans. +// Params: +// bmin, bmax - (in) bounding box of the heightfield +// cs - (in) grid cell size +// ch - (in) grid cell height +// verts - (in) array of vertices +// nv - (in) vertex count +// tris - (in) array of triangle vertex indices +// norms - (in) array of triangle normals +// flags - (in) array of triangle flags (uses WALKABLE) +// nt - (in) triangle count +// solid - (in) heighfield where the triangles are rasterized +void rcRasterizeTriangles(const float* bmin, const float* bmax, + float cs, float ch, + const float* verts, int nv, + const int* tris, const unsigned char* flags, int nt, + rcHeightfield& solid); + +void rcFilterWalkableBorderSpans(const int walkableHeight, + const int walkableClimb, + rcHeightfield& solid); + +// Removes WALKABLE flag from all spans which have smaller than +// 'walkableHeight' clearane above them. +// Params: +// walkableHeight - (in) minimum height where the agent can still walk +// solid - (in/out) heightfield describing the solid space +void rcFilterWalkableLowHeightSpans(int walkableHeight, + rcHeightfield& solid); + +// Marks spans which are reachable from any of the topmost spans. +// Params: +// walkableHeight - (in) minimum height where the agent can still walk +// walkableClimb - (in) maximum height between grid cells the agent can climb +// solid - (in/out) heightfield describing the solid space +// Returns false if operation ran out of memory. +bool rcMarkReachableSpans(const int walkableHeight, + const int walkableClimb, + rcHeightfield& solid); + +// Builds compact representation of the heightfield. +// Params: +// bmin, bmax - (in) bounding box of the heightfield +// cs - (in) grid cell size +// ch - (in) grid cell height +// walkableHeight - (in) minimum height where the agent can still walk +// walkableClimb - (in) maximum height between grid cells the agent can climb +// hf - (in) heightfield to be compacted +// chf - (out) compact heightfield representing the open space. +// Returns false if operation ran out of memory. +bool rcBuildCompactHeightfield(const float* bmin, const float* bmax, + const float cs, const float ch, + const int walkableHeight, const int walkableClimb, + unsigned char flags, + rcHeightfield& hf, + rcCompactHeightfield& chf); + +// Builds distance field and stores it into the combat heightfield. +// Params: +// chf - (in/out) compact heightfield representing the open space. +// Returns false if operation ran out of memory. +bool rcBuildDistanceField(rcCompactHeightfield& chf); + +// Divides the walkable heighfied into simple regions. +// Each region has only one contour and no overlaps. +// The regions are stored in the compact heightfield 'reg' field. +// The regions will be shrinked by the radius of the agent. +// The process sometimes creates small regions. The parameter +// 'minRegionSize' specifies the smallest allowed regions size. +// If the area of a regions is smaller than allowed, the regions is +// removed or merged to neighbour region. +// Params: +// chf - (in/out) compact heightfield representing the open space. +// walkableRadius - (in) the radius of the agent. +// minRegionSize - (in) the smallest allowed regions size. +// maxMergeRegionSize - (in) the largest allowed regions size which can be merged. +// Returns false if operation ran out of memory. +bool rcBuildRegions(rcCompactHeightfield& chf, + int walkableRadius, int minRegionSize, int mergeRegionSize); + +// Builds simplified contours from the regions outlines. +// Params: +// chf - (in) compact heightfield which has regions set. +// maxError - (in) maximum allowed distance between simplified countour and cells. +// maxEdgeLen - (in) maximum allowed contour edge length in cells. +// cset - (out) Resulting contour set. +// Returns false if operation ran out of memory. +bool rcBuildContours(rcCompactHeightfield& chf, + float maxError, int maxEdgeLen, + rcContourSet& cset); + +// Builds connected convex polygon mesh from contour polygons. +// Params: +// cset - (in) contour set. +// mesh - (out) poly mesh. +// nvp - (int) maximum number of vertices per polygon. +// Returns false if operation ran out of memory. +bool rcBuildPolyMesh(rcContourSet& cset, rcPolyMesh& mesh, int nvp); + + +bool rcBuildNavMesh(const rcConfig& cfg, + const float* verts, const int nverts, + const int* tris, const unsigned char* tflags, const int ntris, + rcHeightfield& solid, + rcCompactHeightfield& chf, + rcContourSet& cset, + rcPolyMesh& polyMesh); + + +#endif // RECAST_H diff --git a/Recast/Include/RecastDebugDraw.h b/Recast/Include/RecastDebugDraw.h new file mode 100644 index 0000000..31d6099 --- /dev/null +++ b/Recast/Include/RecastDebugDraw.h @@ -0,0 +1,59 @@ +// +// Copyright (c) 2009 Mikko Mononen memon@inside.org +// +// This software is provided 'as-is', without any express or implied +// warranty. In no event will the authors be held liable for any damages +// arising from the use of this software. +// Permission is granted to anyone to use this software for any purpose, +// including commercial applications, and to alter it and redistribute it +// freely, subject to the following restrictions: +// 1. The origin of this software must not be misrepresented; you must not +// claim that you wrote the original software. If you use this software +// in a product, an acknowledgment in the product documentation would be +// appreciated but is not required. +// 2. Altered source versions must be plainly marked as such, and must not be +// misrepresented as being the original software. +// 3. This notice may not be removed or altered from any source distribution. +// + +#ifndef RECAST_DEBUGDRAW_H +#define RECAST_DEBUGDRAW_H + +inline int bit(int a, int b) +{ + return (a & (1 << b)) >> b; +} + +inline void intToCol(int i, float* col) +{ + int r = bit(i, 0) + bit(i, 3) * 2 + 1; + int g = bit(i, 1) + bit(i, 4) * 2 + 1; + int b = bit(i, 2) + bit(i, 5) * 2 + 1; + col[0] = 1 - r*63.0f/255.0f; + col[1] = 1 - g*63.0f/255.0f; + col[2] = 1 - b*63.0f/255.0f; +} + +void rcDebugDrawHeightfieldSolid(const struct rcHeightfield& hf, + const float* orig, float cs, float ch); + +void rcDebugDrawHeightfieldWalkable(const struct rcHeightfield& hf, + const float* orig, float cs, float ch); + +void rcDebugDrawMesh(const class rcMeshLoaderObj& mesh, const unsigned char* flags); + +void rcDebugDrawCompactHeightfieldSolid(const struct rcCompactHeightfield& chf); +void rcDebugDrawCompactHeightfieldRegions(const struct rcCompactHeightfield& chf); +void rcDebugDrawCompactHeightfieldDistance(const struct rcCompactHeightfield& chf); + +void rcDebugDrawRawContours(const struct rcContourSet& cset, const float* orig, float cs, float ch); +void rcDebugDrawContours(const struct rcContourSet& cset, const float* orig, float cs, float ch); +void rcDebugDrawPolyMesh(const struct rcPolyMesh& mesh, const float* orig, float cs, float ch); + +void rcDebugDrawCylinderWire(float minx, float miny, float minz, float maxx, float maxy, float maxz, const float* col); +void rcDebugDrawBoxWire(float minx, float miny, float minz, float maxx, float maxy, float maxz, const float* col); +void rcDebugDrawBox(float minx, float miny, float minz, float maxx, float maxy, float maxz, + const float* col1, const float* col2); + + +#endif // RECAST_DEBUGDRAW_H \ No newline at end of file diff --git a/Recast/Include/RecastLog.h b/Recast/Include/RecastLog.h new file mode 100644 index 0000000..8dc432d --- /dev/null +++ b/Recast/Include/RecastLog.h @@ -0,0 +1,53 @@ +// +// Copyright (c) 2009 Mikko Mononen memon@inside.org +// +// This software is provided 'as-is', without any express or implied +// warranty. In no event will the authors be held liable for any damages +// arising from the use of this software. +// Permission is granted to anyone to use this software for any purpose, +// including commercial applications, and to alter it and redistribute it +// freely, subject to the following restrictions: +// 1. The origin of this software must not be misrepresented; you must not +// claim that you wrote the original software. If you use this software +// in a product, an acknowledgment in the product documentation would be +// appreciated but is not required. +// 2. Altered source versions must be plainly marked as such, and must not be +// misrepresented as being the original software. +// 3. This notice may not be removed or altered from any source distribution. +// + +#ifndef RECAST_LOG_H +#define RECAST_LOG_H + +enum rcLogCategory +{ + RC_LOG_PROGRESS = 1, + RC_LOG_WARNING, + RC_LOG_ERROR, +}; + +class rcLog +{ +public: + rcLog(); + ~rcLog(); + + void log(rcLogCategory category, const char* format, ...); + inline void clear() { m_messageCount = 0; m_textPoolSize = 0; } + inline int getMessageCount() const { return m_messageCount; } + inline char getMessageType(int i) const { return *m_messages[i]; } + inline const char* getMessageText(int i) const { return m_messages[i]+1; } + +private: + static const int MAX_MESSAGES = 1000; + const char* m_messages[MAX_MESSAGES]; + int m_messageCount; + static const int TEXT_POOL_SIZE = 8000; + char m_textPool[TEXT_POOL_SIZE]; + int m_textPoolSize; +}; + +void rcSetLog(rcLog* log); +rcLog* rcGetLog(); + +#endif // RECAST_LOG_H diff --git a/Recast/Include/RecastTimer.h b/Recast/Include/RecastTimer.h new file mode 100644 index 0000000..b065d6f --- /dev/null +++ b/Recast/Include/RecastTimer.h @@ -0,0 +1,38 @@ +// +// Copyright (c) 2009 Mikko Mononen memon@inside.org +// +// This software is provided 'as-is', without any express or implied +// warranty. In no event will the authors be held liable for any damages +// arising from the use of this software. +// Permission is granted to anyone to use this software for any purpose, +// including commercial applications, and to alter it and redistribute it +// freely, subject to the following restrictions: +// 1. The origin of this software must not be misrepresented; you must not +// claim that you wrote the original software. If you use this software +// in a product, an acknowledgment in the product documentation would be +// appreciated but is not required. +// 2. Altered source versions must be plainly marked as such, and must not be +// misrepresented as being the original software. +// 3. This notice may not be removed or altered from any source distribution. +// +#ifndef RECAST_TIMER_H +#define RECAST_TIMER_H + +#ifdef WIN32 + +//#include +typedef __int64 rcTimeVal; +rcTimeVal rcGetPerformanceTimer(); +int rcGetDeltaTimeUsec(rcTimeVal start, rcTimeVal end); + +#else + +// OSX +#include +typedef uint64_t rcTimeVal; +rcTimeVal rcGetPerformanceTimer(); +int rcGetDeltaTimeUsec(rcTimeVal start, rcTimeVal end); + +#endif + +#endif // RECAST_TIMER_H diff --git a/Recast/License.txt b/Recast/License.txt new file mode 100644 index 0000000..c259ddf --- /dev/null +++ b/Recast/License.txt @@ -0,0 +1,18 @@ +Copyright (c) 2009 Mikko Mononen memon@inside.org + +This software is provided 'as-is', without any express or implied +warranty. In no event will the authors be held liable for any damages +arising from the use of this software. + +Permission is granted to anyone to use this software for any purpose, +including commercial applications, and to alter it and redistribute it +freely, subject to the following restrictions: + +1. The origin of this software must not be misrepresented; you must not +claim that you wrote the original software. If you use this software +in a product, an acknowledgment in the product documentation would be +appreciated but is not required. +2. Altered source versions must be plainly marked as such, and must not be +misrepresented as being the original software. +3. This notice may not be removed or altered from any source distribution. + diff --git a/Recast/Readme.txt b/Recast/Readme.txt new file mode 100644 index 0000000..b29fe89 --- /dev/null +++ b/Recast/Readme.txt @@ -0,0 +1,13 @@ +Detour Version 1.0 + +Welcome to Detour! + +Detour is a navigation system for games. The system comes with two parts: 1) Automatic preprocess which generates navmesh automatically from a polygon soup and, 2) runtime library which allows to do spatic queries and pathfinding on the navmesh. + +The project files with this distribution with with Microsoft Visual C++ 2008 (you can download it for free) and XCode 3.1. + +You can find examples how to use the preprocess and runtime on the Examples directory. + + +Mikko Mononen +memon@inside.org diff --git a/Recast/Source/Recast.cpp b/Recast/Source/Recast.cpp new file mode 100644 index 0000000..c5bada5 --- /dev/null +++ b/Recast/Source/Recast.cpp @@ -0,0 +1,302 @@ +// +// Copyright (c) 2009 Mikko Mononen memon@inside.org +// +// This software is provided 'as-is', without any express or implied +// warranty. In no event will the authors be held liable for any damages +// arising from the use of this software. +// Permission is granted to anyone to use this software for any purpose, +// including commercial applications, and to alter it and redistribute it +// freely, subject to the following restrictions: +// 1. The origin of this software must not be misrepresented; you must not +// claim that you wrote the original software. If you use this software +// in a product, an acknowledgment in the product documentation would be +// appreciated but is not required. +// 2. Altered source versions must be plainly marked as such, and must not be +// misrepresented as being the original software. +// 3. This notice may not be removed or altered from any source distribution. +// + +#include +#define _USE_MATH_DEFINES +#include +#include +#include +#include +#include "Recast.h" +#include "RecastLog.h" +#include "RecastTimer.h" + + +void rcIntArray::resize(int n) +{ + if (n > m_cap) + { + if (!m_cap) m_cap = 8; + while (m_cap < n) m_cap *= 2; + int* newData = new int[m_cap]; + if (m_size && newData) memcpy(newData, m_data, m_size*sizeof(int)); + delete [] m_data; + m_data = newData; + } + m_size = n; +} + +void rcCalcBounds(const float* verts, int nv, float* bmin, float* bmax) +{ + // Calculate bounding box. + vcopy(bmin, verts); + vcopy(bmax, verts); + for (int i = 1; i < nv; ++i) + { + const float* v = &verts[i*3]; + vmin(bmin, v); + vmax(bmax, v); + } +} + +void rcCalcGridSize(float* bmin, float* bmax, float cs, int* w, int* h) +{ + *w = (int)((bmax[0] - bmin[0])/cs+0.5f); + *h = (int)((bmax[2] - bmin[2])/cs+0.5f); +} + +bool rcCreateHeightfield(rcHeightfield& hf, int width, int height) +{ + hf.width = width; + hf.height = height; + hf.spans = new rcSpan*[hf.width*hf.height]; + if (!hf.spans) + return false; + memset(hf.spans, 0, sizeof(rcSpan*)*hf.width*hf.height); + return true; +} + +void rcMarkWalkableTriangles(const float walkableSlopeAngle, + const int* tris, const float* norms, int nt, + unsigned char* flags) +{ + const float walkableThr = cosf(walkableSlopeAngle/180.0f*(float)M_PI); + + for (int i = 0; i < nt; ++i) + { + // Check if the face is walkable. + if (norms[i*3+1] > walkableThr) + flags[i] |= RC_WALKABLE; + } +} + +static int getSpanCount(unsigned char flags, rcHeightfield& hf) +{ + const int w = hf.width; + const int h = hf.height; + int spanCount = 0; + for (int y = 0; y < h; ++y) + { + for (int x = 0; x < w; ++x) + { + for (rcSpan* s = hf.spans[x + y*w]; s; s = s->next) + { + if (s->flags == flags) + spanCount++; + } + } + } + return spanCount; +} + +inline void setCon(rcCompactSpan& s, int dir, int i) +{ + s.con &= ~(0xf << (dir*4)); + s.con |= (i&0xf) << (dir*4); +} + +bool rcBuildCompactHeightfield(const float* bmin, const float* bmax, + const float cs, const float ch, + const int walkableHeight, const int walkableClimb, + unsigned char flags, rcHeightfield& hf, + rcCompactHeightfield& chf) +{ + rcTimeVal startTime = rcGetPerformanceTimer(); + + const int w = hf.width; + const int h = hf.height; + const int spanCount = getSpanCount(flags, hf); + + // Fill in header. + chf.width = w; + chf.height = h; + chf.spanCount = spanCount; + chf.walkableHeight = walkableHeight; + chf.walkableClimb = walkableClimb; + chf.maxRegions = 0; + chf.minx = bmin[0]; + chf.miny = bmin[1]; + chf.minz = bmin[2]; + chf.maxx = bmax[0]; + chf.maxy = bmax[1] + walkableHeight*ch; + chf.maxz = bmax[2]; + chf.cs = cs; + chf.ch = ch; + chf.cells = new rcCompactCell[w*h]; + if (!chf.cells) + { + if (rcGetLog()) + rcGetLog()->log(RC_LOG_ERROR, "rcBuildCompactHeightfield: Out of memory 'chf.cells' (%d)", w*h); + return false; + } + memset(chf.cells, 0, sizeof(rcCompactCell)*w*h); + chf.spans = new rcCompactSpan[spanCount]; + if (!chf.spans) + { + if (rcGetLog()) + rcGetLog()->log(RC_LOG_ERROR, "rcBuildCompactHeightfield: Out of memory 'chf.spans' (%d)", spanCount); + return false; + } + memset(chf.spans, 0, sizeof(rcCompactSpan)*spanCount); + + const int MAX_HEIGHT = 0xffff; + + // Fill in cells and spans. + int idx = 0; + for (int y = 0; y < h; ++y) + { + for (int x = 0; x < w; ++x) + { + const rcSpan* s = hf.spans[x + y*w]; + // If there are no spans at this cell, just leave the data to index=0, count=0. + if (!s) continue; + rcCompactCell& c = chf.cells[x+y*w]; + c.index = idx; + c.count = 0; + while (s) + { + if (s->flags == flags) + { + const int bot = (int)s->smax; + const int top = (int)s->next ? (int)s->next->smin : MAX_HEIGHT; + chf.spans[idx].y = (unsigned short)rcClamp(bot, 0, 0xffff); + chf.spans[idx].h = (unsigned char)rcClamp(top - bot, 0, 0xff); + idx++; + c.count++; + } + s = s->next; + } + } + } + + // Find neighbour connections. + for (int y = 0; y < h; ++y) + { + for (int x = 0; x < w; ++x) + { + const rcCompactCell& c = chf.cells[x+y*w]; + for (int i = (int)c.index, ni = (int)(c.index+c.count); i < ni; ++i) + { + rcCompactSpan& s = chf.spans[i]; + for (int dir = 0; dir < 4; ++dir) + { + setCon(s, dir, 0xf); + const int nx = x + rcGetDirOffsetX(dir); + const int ny = y + rcGetDirOffsetY(dir); + // First check that the neighbour cell is in bounds. + if (nx < 0 || ny < 0 || nx >= w || ny >= h) + continue; + // Iterate over all neighbour spans and check if any of the is + // accessible from current cell. + const rcCompactCell& nc = chf.cells[nx+ny*w]; + for (int k = (int)nc.index, nk = (int)(nc.index+nc.count); k < nk; ++k) + { + const rcCompactSpan& ns = chf.spans[k]; + const int bot = rcMax(s.y, ns.y); + const int top = rcMin(s.y+s.h, ns.y+ns.h); + + // Check that the gap between the spans is walkable, + // and that the climb height between the gaps is not too high. + if ((top - bot) >= walkableHeight && rcAbs((int)ns.y - (int)s.y) <= walkableClimb) + { + // Mark direction as walkable. + setCon(s, dir, k - (int)nc.index); + break; + } + } + } + } + } + } + + rcTimeVal endTime = rcGetPerformanceTimer(); + + if (rcGetLog()) + rcGetLog()->log(RC_LOG_PROGRESS, "Build compact: %.3f ms", rcGetDeltaTimeUsec(startTime, endTime)/1000.0f); + + return true; +} + +bool rcBuildNavMesh(const rcConfig& cfg, + const float* verts, const int nverts, + const int* tris, const unsigned char* tflags, const int ntris, + rcHeightfield& solid, + rcCompactHeightfield& chf, + rcContourSet& cset, + rcPolyMesh& polyMesh) +{ + if (!rcCreateHeightfield(solid, cfg.width, cfg.height)) + { + if (rcGetLog()) + rcGetLog()->log(RC_LOG_ERROR, "rcBuildNavMesh: Could not create solid heightfield."); + return false; + } + + rcRasterizeTriangles(cfg.bmin, cfg.bmax, cfg.cs, cfg.ch, + verts, nverts, tris, tflags, ntris, solid); + + rcFilterWalkableBorderSpans(cfg.walkableHeight, cfg.walkableClimb, solid); + + rcFilterWalkableLowHeightSpans(cfg.walkableHeight, solid); + + if (!rcMarkReachableSpans(cfg.walkableHeight, cfg.walkableClimb, solid)) + { + if (rcGetLog()) + rcGetLog()->log(RC_LOG_ERROR, "rcBuildNavMesh: Could not build navigable heightfield."); + return false; + } + + if (!rcBuildCompactHeightfield(cfg.bmin, cfg.bmax, cfg.cs, cfg.ch, + cfg.walkableHeight, cfg.walkableClimb, + RC_WALKABLE|RC_REACHABLE, solid, chf)) + { + if (rcGetLog()) + rcGetLog()->log(RC_LOG_ERROR, "rcBuildNavMesh: Could not build compact data."); + return false; + } + + if (!rcBuildDistanceField(chf)) + { + if (rcGetLog()) + rcGetLog()->log(RC_LOG_ERROR, "rcBuildNavMesh: Could not build distance fields."); + return false; + } + + if (!rcBuildRegions(chf, cfg.walkableRadius, cfg.minRegionSize, cfg.mergeRegionSize)) + { + if (rcGetLog()) + rcGetLog()->log(RC_LOG_ERROR, "rcBuildNavMesh: Could not build regions."); + return false; + } + + if (!rcBuildContours(chf, cfg.maxSimplificationError, cfg.maxEdgeLen, cset)) + { + if (rcGetLog()) + rcGetLog()->log(RC_LOG_ERROR, "rcBuildNavMesh: Could not create contours."); + return false; + } + + if (!rcBuildPolyMesh(cset, polyMesh, cfg.maxVertsPerPoly)) + { + if (rcGetLog()) + rcGetLog()->log(RC_LOG_ERROR, "rcBuildNavMesh: Could not triangulate contours."); + return false; + } + + return true; +} diff --git a/Recast/Source/RecastContour.cpp b/Recast/Source/RecastContour.cpp new file mode 100644 index 0000000..67112bb --- /dev/null +++ b/Recast/Source/RecastContour.cpp @@ -0,0 +1,665 @@ +// +// Copyright (c) 2009 Mikko Mononen memon@inside.org +// +// This software is provided 'as-is', without any express or implied +// warranty. In no event will the authors be held liable for any damages +// arising from the use of this software. +// Permission is granted to anyone to use this software for any purpose, +// including commercial applications, and to alter it and redistribute it +// freely, subject to the following restrictions: +// 1. The origin of this software must not be misrepresented; you must not +// claim that you wrote the original software. If you use this software +// in a product, an acknowledgment in the product documentation would be +// appreciated but is not required. +// 2. Altered source versions must be plainly marked as such, and must not be +// misrepresented as being the original software. +// 3. This notice may not be removed or altered from any source distribution. +// + +#define _USE_MATH_DEFINES +#include +#include +#include +#include "Recast.h" +#include "RecastLog.h" +#include "RecastTimer.h" + + +static int getCornerHeight(int x, int y, int i, int dir, + const rcCompactHeightfield& chf) +{ + const rcCompactSpan& s = chf.spans[i]; + int ch = (int)s.y; + int dirp = (dir+1) & 0x3; + if (rcGetCon(s, dir) != 0xf) + { + const int ax = x + rcGetDirOffsetX(dir); + const int ay = y + rcGetDirOffsetY(dir); + const int ai = (int)chf.cells[ax+ay*chf.width].index + rcGetCon(s, dir); + const rcCompactSpan& as = chf.spans[ai]; + ch = rcMax(ch, (int)as.y); + if (rcGetCon(as, dirp) != 0xf) + { + const int ax2 = ax + rcGetDirOffsetX(dirp); + const int ay2 = ay + rcGetDirOffsetY(dirp); + const int ai2 = (int)chf.cells[ax2+ay2*chf.width].index + rcGetCon(as, dirp); + const rcCompactSpan& as2 = chf.spans[ai2]; + ch = rcMax(ch, (int)as2.y); + } + } + if (rcGetCon(s, dirp) != 0xf) + { + const int ax = x + rcGetDirOffsetX(dirp); + const int ay = y + rcGetDirOffsetY(dirp); + const int ai = (int)chf.cells[ax+ay*chf.width].index + rcGetCon(s, dirp); + const rcCompactSpan& as = chf.spans[ai]; + ch = rcMax(ch, (int)as.y); + if (rcGetCon(as, dir) != 0xf) + { + const int ax2 = ax + rcGetDirOffsetX(dir); + const int ay2 = ay + rcGetDirOffsetY(dir); + const int ai2 = (int)chf.cells[ax2+ay2*chf.width].index + rcGetCon(as, dir); + const rcCompactSpan& as2 = chf.spans[ai2]; + ch = rcMax(ch, (int)as2.y); + } + } + + return ch; +} + +static void walkContour(int x, int y, int i, + rcCompactHeightfield& chf, + unsigned char* flags, rcIntArray& points) +{ + // Choose the first non-connected edge + unsigned char dir = 0; + while ((flags[i] & (1 << dir)) == 0) + dir++; + + unsigned char startDir = dir; + int starti = i; + + int iter = 0; + while (++iter < 40000) + { + if (flags[i] & (1 << dir)) + { + // Choose the edge corner + int px = x; + int py = getCornerHeight(x, y, i, dir, chf); + int pz = y; + switch(dir) + { + case 0: pz++; break; + case 1: px++; pz++; break; + case 2: px++; break; + } + int r = 0; + const rcCompactSpan& s = chf.spans[i]; + if (rcGetCon(s, dir) != 0xf) + { + const int ax = x + rcGetDirOffsetX(dir); + const int ay = y + rcGetDirOffsetY(dir); + const int ai = (int)chf.cells[ax+ay*chf.width].index + rcGetCon(s, dir); + const rcCompactSpan& as = chf.spans[ai]; + r = (int)as.reg; + } + + points.push(px); + points.push(py); + points.push(pz); + points.push(r); + + flags[i] &= ~(1 << dir); // Remove visited edges + dir = (dir+1) & 0x3; // Rotate CW + } + else + { + int ni = -1; + const int nx = x + rcGetDirOffsetX(dir); + const int ny = y + rcGetDirOffsetY(dir); + const rcCompactSpan& s = chf.spans[i]; + if (rcGetCon(s, dir) != 0xf) + { + const rcCompactCell& nc = chf.cells[nx+ny*chf.width]; + ni = (int)nc.index + rcGetCon(s, dir); + } + if (ni == -1) + { + // Should not happen. + return; + } + x = nx; + y = ny; + i = ni; + dir = (dir+3) & 0x3; // Rotate CCW + } + + if (starti == i && startDir == dir) + { + break; + } + } +} + +static float distancePtSeg(int x, int y, int z, + int px, int py, int pz, + int qx, int qy, int qz) +{ + float pqx = (float)(qx - px); + float pqy = (float)(qy - py); + float pqz = (float)(qz - pz); + float dx = (float)(x - px); + float dy = (float)(y - py); + float dz = (float)(z - pz); + float d = pqx*pqx + pqy*pqy + pqz*pqz; + float t = pqx*dx + pqy*dy + pqz*dz; + if (d > 0) + t /= d; + if (t < 0) + t = 0; + else if (t > 1) + t = 1; + + dx = px + t*pqx - x; + dy = py + t*pqy - y; + dz = pz + t*pqz - z; + + return dx*dx + dy*dy + dz*dz; +} + +static void simplifyContour(rcIntArray& points, rcIntArray& simplified, float maxError, int maxEdgeLen) +{ + // Add initial points. + bool noConnections = true; + for (int i = 0; i < points.size(); i += 4) + { + if (points[i+3] != 0) + { + noConnections = false; + break; + } + } + + if (noConnections) + { + // If there is no connections at all, + // create some initial points for the simplification process. + // Find lower-left and upper-right vertices of the contour. + int llx = points[0]; + int lly = points[1]; + int llz = points[2]; + int lli = 0; + int urx = points[0]; + int ury = points[1]; + int urz = points[2]; + int uri = 0; + for (int i = 0; i < points.size(); i += 4) + { + int x = points[i+0]; + int y = points[i+1]; + int z = points[i+2]; + if (x < llx || (x == llx && z < llz)) + { + llx = x; + lly = y; + llz = z; + lli = i/4; + } + if (x >= urx || (x == urx && z > urz)) + { + urx = x; + ury = y; + urz = z; + uri = i/4; + } + } + simplified.push(llx); + simplified.push(lly); + simplified.push(llz); + simplified.push(lli); + + simplified.push(urx); + simplified.push(ury); + simplified.push(urz); + simplified.push(uri); + } + else + { + // The contour has some portals to other regions. + // Add a new point to every location where the region changes. + for (int i = 0, ni = points.size()/4; i < ni; ++i) + { + int ii = (i+1) % ni; + if (points[i*4+3] != points[ii*4+3]) + { + simplified.push(points[i*4+0]); + simplified.push(points[i*4+1]); + simplified.push(points[i*4+2]); + simplified.push(i); + } + } + } + + // Add points until all raw points are within + // error tolerance to the simplified shape. + const int pn = points.size()/4; + for (int i = 0; i < simplified.size()/4; ) + { + int ii = (i+1) % (simplified.size()/4); + + int ax = simplified[i*4+0]; + int ay = simplified[i*4+1]; + int az = simplified[i*4+2]; + int ai = simplified[i*4+3]; + + int bx = simplified[ii*4+0]; + int by = simplified[ii*4+1]; + int bz = simplified[ii*4+2]; + int bi = simplified[ii*4+3]; + + // Find maximum deviation from the segment. + float maxd = 0; + int maxi = -1; + int ci = (ai+1) % pn; + + // Tesselate only outer edges. + if (points[ci*4+3] == 0) + { + while (ci != bi) + { + float d = distancePtSeg(points[ci*4+0], points[ci*4+1]/4, points[ci*4+2], + ax, ay/4, az, bx, by/4, bz); + if (d > maxd) + { + maxd = d; + maxi = ci; + } + ci = (ci+1) % pn; + } + } + + + // If the max deviation is larger than accepted error, + // add new point, else continue to next segment. + if (maxi != -1 && maxd > (maxError*maxError)) + { + // Add space for the new point. + simplified.resize(simplified.size()+4); + int n = simplified.size()/4; + for (int j = n-1; j > i; --j) + { + simplified[j*4+0] = simplified[(j-1)*4+0]; + simplified[j*4+1] = simplified[(j-1)*4+1]; + simplified[j*4+2] = simplified[(j-1)*4+2]; + simplified[j*4+3] = simplified[(j-1)*4+3]; + } + // Add the point. + simplified[(i+1)*4+0] = points[maxi*4+0]; + simplified[(i+1)*4+1] = points[maxi*4+1]; + simplified[(i+1)*4+2] = points[maxi*4+2]; + simplified[(i+1)*4+3] = maxi; + } + else + { + ++i; + } + } + + // Split too long edges. + if (maxEdgeLen > 0) + { + for (int i = 0; i < simplified.size()/4; ) + { + int ii = (i+1) % (simplified.size()/4); + + int ax = simplified[i*4+0]; + int az = simplified[i*4+2]; + int ai = simplified[i*4+3]; + + int bx = simplified[ii*4+0]; + int bz = simplified[ii*4+2]; + int bi = simplified[ii*4+3]; + + // Find maximum deviation from the segment. + int maxi = -1; + int ci = (ai+1) % pn; + + // Tesselate only outer edges. + if (points[ci*4+3] == 0) + { + int dx = bx - ax; + int dz = bz - az; + if (dx*dx + dz*dz > maxEdgeLen*maxEdgeLen) + { + int n = bi < ai ? (bi+pn - ai) : (bi - ai); + maxi = (ai + n/2) % pn; + } + } + + // If the max deviation is larger than accepted error, + // add new point, else continue to next segment. + if (maxi != -1) + { + // Add space for the new point. + simplified.resize(simplified.size()+4); + int n = simplified.size()/4; + for (int j = n-1; j > i; --j) + { + simplified[j*4+0] = simplified[(j-1)*4+0]; + simplified[j*4+1] = simplified[(j-1)*4+1]; + simplified[j*4+2] = simplified[(j-1)*4+2]; + simplified[j*4+3] = simplified[(j-1)*4+3]; + } + // Add the point. + simplified[(i+1)*4+0] = points[maxi*4+0]; + simplified[(i+1)*4+1] = points[maxi*4+1]; + simplified[(i+1)*4+2] = points[maxi*4+2]; + simplified[(i+1)*4+3] = maxi; + } + else + { + ++i; + } + } + } + + for (int i = 0; i < simplified.size()/4; ++i) + { + int ai = (simplified[i*4+3]+1) % pn; + simplified[i*4+3] = points[ai*4+3]; + } + +} + +static void removeDegenerateSegments(rcIntArray& simplified) +{ + // Remove adjacent vertices which are equal on xz-plane, + // or else the triangulator will get confused. + for (int i = 0; i < simplified.size()/4; ++i) + { + int ni = i+1; + if (ni >= (simplified.size()/4)) + ni = 0; + + if (simplified[i*4+0] == simplified[ni*4+0] && + simplified[i*4+2] == simplified[ni*4+2]) + { + // Degenerate segment, remove. + for (int j = i; j < simplified.size()/4-1; ++j) + { + simplified[j*4+0] = simplified[(j+1)*4+0]; + simplified[j*4+1] = simplified[(j+1)*4+1]; + simplified[j*4+2] = simplified[(j+1)*4+2]; + simplified[j*4+3] = simplified[(j+1)*4+3]; + } + simplified.pop(); + } + } +} + +static int calcAreaOfPolygon2D(const int* verts, const int nverts) +{ + int area = 0; + for (int i = 0, j = nverts-1; i < nverts; j=i++) + { + const int* vi = &verts[i*4]; + const int* vj = &verts[j*4]; + area += vi[0] * vj[2] - vj[0] * vi[2]; + } + return (area+1) / 2; +} + +static void getClosestIndices(const int* vertsa, const int nvertsa, + const int* vertsb, const int nvertsb, + int& ia, int& ib) +{ + int closestDist = 0xfffffff; + for (int i = 0; i < nvertsa; ++i) + { + const int* va = &vertsa[i*4]; + for (int j = 0; j < nvertsb; ++j) + { + const int* vb = &vertsb[j*4]; + const int dx = vb[0] - va[0]; + const int dz = vb[2] - va[2]; + const int d = dx*dx + dz*dz; + if (d < closestDist) + { + ia = i; + ib = j; + closestDist = d; + } + } + } +} + +static bool mergeContours(rcContour& ca, rcContour& cb, int ia, int ib) +{ + const int maxVerts = ca.nverts + cb.nverts + 2; + int* verts = new int[maxVerts*4]; + if (!verts) + return false; + + int nv = 0; + + // Copy contour A. + for (int i = 0; i <= ca.nverts; ++i) + { + int* dst = &verts[nv*4]; + const int* src = &ca.verts[((ia+i)%ca.nverts)*4]; + dst[0] = src[0]; + dst[1] = src[1]; + dst[2] = src[2]; + dst[3] = src[3]; + nv++; + } + + // Copy contour B + for (int i = 0; i <= cb.nverts; ++i) + { + int* dst = &verts[nv*4]; + const int* src = &cb.verts[((ib+i)%cb.nverts)*4]; + dst[0] = src[0]; + dst[1] = src[1]; + dst[2] = src[2]; + dst[3] = src[3]; + nv++; + } + + delete [] ca.verts; + ca.verts = verts; + ca.nverts = nv; + + delete [] cb.verts; + cb.verts = 0; + cb.nverts = 0; + + return true; +} + +bool rcBuildContours(rcCompactHeightfield& chf, + float maxError, int maxEdgeLen, + rcContourSet& cset) +{ + const int w = chf.width; + const int h = chf.height; + + rcTimeVal startTime = rcGetPerformanceTimer(); + + const int maxContours = chf.maxRegions*2; + cset.conts = new rcContour[maxContours]; + if (!cset.conts) + return false; + cset.nconts = 0; + + unsigned char* flags = new unsigned char[chf.spanCount]; + if (!flags) + { + if (rcGetLog()) + rcGetLog()->log(RC_LOG_ERROR, "rcBuildContours: Out of memory 'flags'."); + return false; + } + + rcTimeVal boundaryStartTime = rcGetPerformanceTimer(); + + // Mark boundaries. + for (int y = 0; y < h; ++y) + { + for (int x = 0; x < w; ++x) + { + const rcCompactCell& c = chf.cells[x+y*w]; + for (int i = (int)c.index, ni = (int)(c.index+c.count); i < ni; ++i) + { + unsigned char res = 0; + const rcCompactSpan& s = chf.spans[i]; + if (s.reg == 0) + { + flags[i] = 0; + continue; + } + for (int dir = 0; dir < 4; ++dir) + { + unsigned short r = 0; + if (rcGetCon(s, dir) != 0xf) + { + const int ax = x + rcGetDirOffsetX(dir); + const int ay = y + rcGetDirOffsetY(dir); + const int ai = (int)chf.cells[ax+ay*w].index + rcGetCon(s, dir); + const rcCompactSpan& as = chf.spans[ai]; + r = as.reg; + } + if (r == s.reg) + res |= (1 << dir); + } + flags[i] = res ^ 0xf; // Inverse, mark non connected edges. + } + } + } + + rcTimeVal boundaryEndTime = rcGetPerformanceTimer(); + + rcTimeVal contourStartTime = rcGetPerformanceTimer(); + + rcIntArray verts(256); + rcIntArray simplified(64); + + for (int y = 0; y < h; ++y) + { + for (int x = 0; x < w; ++x) + { + const rcCompactCell& c = chf.cells[x+y*w]; + for (int i = (int)c.index, ni = (int)(c.index+c.count); i < ni; ++i) + { + if (flags[i] == 0 || flags[i] == 0xf) + { + flags[i] = 0; + continue; + } + + verts.resize(0); + simplified.resize(0); + walkContour(x, y, i, chf, flags, verts); + simplifyContour(verts, simplified, maxError, maxEdgeLen); + removeDegenerateSegments(simplified); + + // Store region->contour remap info. + unsigned short reg = chf.spans[i].reg; + // Create contour. + if (simplified.size()/4 >= 3) + { + if (cset.nconts >= maxContours) + { + if (rcGetLog()) + rcGetLog()->log(RC_LOG_ERROR, "rcBuildContours: Too many contours %d, max %d.", cset.nconts, maxContours); + return false; + } + + rcContour* cont = &cset.conts[cset.nconts++]; + + cont->nverts = simplified.size()/4; + cont->verts = new int[cont->nverts*4]; + memcpy(cont->verts, &simplified[0], sizeof(int)*cont->nverts*4); + + cont->nrverts = verts.size()/4; + cont->rverts = new int[cont->nrverts*4]; + memcpy(cont->rverts, &verts[0], sizeof(int)*cont->nrverts*4); + + cont->cx = cont->cy = cont->cz = 0; + for (int i = 0; i < cont->nverts; ++i) + { + cont->cx += cont->verts[i*4+0]; + cont->cy += cont->verts[i*4+1]; + cont->cz += cont->verts[i*4+2]; + } + cont->cx /= cont->nverts; + cont->cy /= cont->nverts; + cont->cz /= cont->nverts; + + cont->reg = reg; + } + } + } + } + + // Check and merge droplings. + // Sometimes the previous algorithms can fail and create several countours + // per area. This pass will try to merge the holes into the main region. + for (int i = 0; i < cset.nconts; ++i) + { + rcContour& cont = cset.conts[i]; + // Check if the contour is would backwards. + if (calcAreaOfPolygon2D(cont.verts, cont.nverts) < 0) + { + // Find another contour which has the same region ID. + int mergeIdx = -1; + for (int j = 0; j < cset.nconts; ++j) + { + if (i == j) continue; + if (cset.conts[j].nverts && cset.conts[j].reg == cont.reg) + { + // Make sure the polygon is correctly oriented. + if (calcAreaOfPolygon2D(cset.conts[j].verts, cset.conts[j].nverts)) + { + mergeIdx = j; + break; + } + } + } + if (mergeIdx == -1) + { + if (rcGetLog()) + rcGetLog()->log(RC_LOG_WARNING, "rcBuildContours: Could not find merge target for bad contour %d.", i); + } + else + { + rcContour& mcont = cset.conts[mergeIdx]; + // Merge by closest points. + int ia, ib; + getClosestIndices(mcont.verts, mcont.nverts, cont.verts, cont.nverts, ia, ib); + if (!mergeContours(mcont, cont, ia, ib)) + { + if (rcGetLog()) + rcGetLog()->log(RC_LOG_WARNING, "rcBuildContours: Failed to merge contours %d and %d.", i, mergeIdx); + } + } + } + } + + + rcTimeVal contourEndTime = rcGetPerformanceTimer(); + + // Delete vertices. + delete [] flags; + + rcTimeVal endTime = rcGetPerformanceTimer(); + + if (rcGetLog()) + { + rcGetLog()->log(RC_LOG_PROGRESS, "Create contours: %.3f ms", rcGetDeltaTimeUsec(startTime, endTime)/1000.0f); + rcGetLog()->log(RC_LOG_PROGRESS, " - boundary: %.3f ms", rcGetDeltaTimeUsec(boundaryStartTime, boundaryEndTime)/1000.0f); + rcGetLog()->log(RC_LOG_PROGRESS, " - contour: %.3f ms", rcGetDeltaTimeUsec(contourStartTime, contourEndTime)/1000.0f); + } + + return true; +} diff --git a/Recast/Source/RecastDebugDraw.cpp b/Recast/Source/RecastDebugDraw.cpp new file mode 100644 index 0000000..1ba932c --- /dev/null +++ b/Recast/Source/RecastDebugDraw.cpp @@ -0,0 +1,491 @@ +// +// Copyright (c) 2009 Mikko Mononen memon@inside.org +// +// This software is provided 'as-is', without any express or implied +// warranty. In no event will the authors be held liable for any damages +// arising from the use of this software. +// Permission is granted to anyone to use this software for any purpose, +// including commercial applications, and to alter it and redistribute it +// freely, subject to the following restrictions: +// 1. The origin of this software must not be misrepresented; you must not +// claim that you wrote the original software. If you use this software +// in a product, an acknowledgment in the product documentation would be +// appreciated but is not required. +// 2. Altered source versions must be plainly marked as such, and must not be +// misrepresented as being the original software. +// 3. This notice may not be removed or altered from any source distribution. +// + +#define _USE_MATH_DEFINES +#include +#include "RecastDebugDraw.h" +#include "SDL.h" +#include "SDL_Opengl.h" +#include "MeshLoaderObj.h" +#include "Recast.h" + +void rcDebugDrawMesh(const rcMeshLoaderObj& mesh, const unsigned char* flags) +{ + int nt = mesh.getTriCount(); + const float* verts = mesh.getVerts(); + const float* normals = mesh.getNormals(); + const int* tris = mesh.getTris(); + glBegin(GL_TRIANGLES); + for (int i = 0; i < nt*3; i += 3) + { + float a = (2+normals[i+0]+normals[i+1])/4; + if (flags && !flags[i/3]) + glColor3f(a,a*0.3f,a*0.1f); + else + glColor3f(a,a,a); + glVertex3fv(&verts[tris[i]*3]); + glVertex3fv(&verts[tris[i+1]*3]); + glVertex3fv(&verts[tris[i+2]*3]); + } + glEnd(); +} + +void drawBoxWire(float minx, float miny, float minz, float maxx, float maxy, float maxz, const float* col) +{ + glColor4fv(col); + + // Top + glVertex3f(minx, miny, minz); + glVertex3f(maxx, miny, minz); + glVertex3f(maxx, miny, minz); + glVertex3f(maxx, miny, maxz); + glVertex3f(maxx, miny, maxz); + glVertex3f(minx, miny, maxz); + glVertex3f(minx, miny, maxz); + glVertex3f(minx, miny, minz); + + // bottom + glVertex3f(minx, maxy, minz); + glVertex3f(maxx, maxy, minz); + glVertex3f(maxx, maxy, minz); + glVertex3f(maxx, maxy, maxz); + glVertex3f(maxx, maxy, maxz); + glVertex3f(minx, maxy, maxz); + glVertex3f(minx, maxy, maxz); + glVertex3f(minx, maxy, minz); + + // Sides + glVertex3f(minx, miny, minz); + glVertex3f(minx, maxy, minz); + glVertex3f(maxx, miny, minz); + glVertex3f(maxx, maxy, minz); + glVertex3f(maxx, miny, maxz); + glVertex3f(maxx, maxy, maxz); + glVertex3f(minx, miny, maxz); + glVertex3f(minx, maxy, maxz); +} + +void drawBox(float minx, float miny, float minz, float maxx, float maxy, float maxz, + const float* col1, const float* col2) +{ + float verts[8*3] = + { + minx, miny, minz, + maxx, miny, minz, + maxx, miny, maxz, + minx, miny, maxz, + minx, maxy, minz, + maxx, maxy, minz, + maxx, maxy, maxz, + minx, maxy, maxz, + }; + static const float dim[6] = + { + 0.95f, 0.55f, 0.65f, 0.85f, 0.65f, 0.85f, + }; + static const unsigned char inds[6*5] = + { + 0, 7, 6, 5, 4, + 1, 0, 1, 2, 3, + 2, 1, 5, 6, 2, + 3, 3, 7, 4, 0, + 4, 2, 6, 7, 3, + 5, 0, 4, 5, 1, + }; + + const unsigned char* in = inds; + for (int i = 0; i < 6; ++i) + { + float d = dim[*in]; in++; + if (i == 0) + glColor4f(d*col2[0],d*col2[1],d*col2[2], col2[3]); + else + glColor4f(d*col1[0],d*col1[1],d*col1[2], col1[3]); + glVertex3fv(&verts[*in*3]); in++; + glVertex3fv(&verts[*in*3]); in++; + glVertex3fv(&verts[*in*3]); in++; + glVertex3fv(&verts[*in*3]); in++; + } +} + +void rcDebugDrawCylinderWire(float minx, float miny, float minz, float maxx, float maxy, float maxz, const float* col) +{ + static const int NUM_SEG = 16; + float dir[NUM_SEG*2]; + for (int i = 0; i < NUM_SEG; ++i) + { + const float a = (float)i/(float)NUM_SEG*(float)M_PI*2; + dir[i*2] = cosf(a); + dir[i*2+1] = sinf(a); + } + + const float cx = (maxx + minx)/2; + const float cz = (maxz + minz)/2; + const float rx = (maxx - minx)/2; + const float rz = (maxz - minz)/2; + + glColor4fv(col); + glBegin(GL_LINES); + for (int i = 0, j=NUM_SEG-1; i < NUM_SEG; j=i++) + { + glVertex3f(cx+dir[j*2+0]*rx, miny, cz+dir[j*2+1]*rz); + glVertex3f(cx+dir[i*2+0]*rx, miny, cz+dir[i*2+1]*rz); + glVertex3f(cx+dir[j*2+0]*rx, maxy, cz+dir[j*2+1]*rz); + glVertex3f(cx+dir[i*2+0]*rx, maxy, cz+dir[i*2+1]*rz); + } + for (int i = 0; i < NUM_SEG; i += NUM_SEG/4) + { + glVertex3f(cx+dir[i*2+0]*rx, miny, cz+dir[i*2+1]*rz); + glVertex3f(cx+dir[i*2+0]*rx, maxy, cz+dir[i*2+1]*rz); + } + glEnd(); +} + +void rcDebugDrawBoxWire(float minx, float miny, float minz, float maxx, float maxy, float maxz, const float* col) +{ + glBegin(GL_LINES); + drawBoxWire(minx, miny, minz, maxx, maxy, maxz, col); + glEnd(); +} + +void rcDebugDrawBox(float minx, float miny, float minz, float maxx, float maxy, float maxz, + const float* col1, const float* col2) +{ + glBegin(GL_QUADS); + drawBox(minx, miny, minz, maxx, maxy, maxz, col1, col2); + glEnd(); +} + + +void rcDebugDrawHeightfieldSolid(const rcHeightfield& hf, + const float* orig, float cs, float ch) +{ + static const float col0[4] = { 1,1,1,1 }; + + const int w = hf.width; + const int h = hf.height; + + glBegin(GL_QUADS); + + for (int y = 0; y < h; ++y) + { + for (int x = 0; x < w; ++x) + { + float fx = orig[0] + x*cs; + float fz = orig[2] + y*cs; + const rcSpan* s = hf.spans[x + y*w]; + while (s) + { + drawBox(fx, orig[1]+s->smin*ch, fz, fx+cs, orig[1] + s->smax*ch, fz+cs, col0, col0); + s = s->next; + } + } + } + glEnd(); +} + +void rcDebugDrawHeightfieldWalkable(const rcHeightfield& hf, + const float* orig, float cs, float ch) +{ + static const float col0[4] = { 1,1,1,1 }; + static const float col1[4] = { 0.25f,0.44f,0.5f,1 }; + + const int w = hf.width; + const int h = hf.height; + + glBegin(GL_QUADS); + + for (int y = 0; y < h; ++y) + { + for (int x = 0; x < w; ++x) + { + float fx = orig[0] + x*cs; + float fz = orig[2] + y*cs; + const rcSpan* s = hf.spans[x + y*w]; + while (s) + { + bool csel = (s->flags & 0x2) == 0; + drawBox(fx, orig[1]+s->smin*ch, fz, fx+cs, orig[1] + s->smax*ch, fz+cs, col0, csel ? col0 : col1); + s = s->next; + } + } + } + glEnd(); +} + +void rcDebugDrawCompactHeightfieldSolid(const rcCompactHeightfield& chf) +{ + const float cs = chf.cs; + const float ch = chf.ch; + + glColor3ub(64,112,128); + + glBegin(GL_QUADS); + for (int y = 0; y < chf.height; ++y) + { + for (int x = 0; x < chf.width; ++x) + { + const float fx = chf.minx + x*cs; + const float fz = chf.minz + y*cs; + const rcCompactCell& c = chf.cells[x+y*chf.width]; + + for (unsigned i = c.index, ni = c.index+c.count; i < ni; ++i) + { + const rcCompactSpan& s = chf.spans[i]; + const float fy = chf.miny + (s.y+1)*ch; + glVertex3f(fx, fy, fz); + glVertex3f(fx, fy, fz+cs); + glVertex3f(fx+cs, fy, fz+cs); + glVertex3f(fx+cs, fy, fz); + } + } + } + glEnd(); +} + +void rcDebugDrawCompactHeightfieldRegions(const rcCompactHeightfield& chf) +{ + const float cs = chf.cs; + const float ch = chf.ch; + + float col[4] = { 1,1,1,1 }; + + glBegin(GL_QUADS); + for (int y = 0; y < chf.height; ++y) + { + for (int x = 0; x < chf.width; ++x) + { + const float fx = chf.minx + x*cs; + const float fz = chf.minz + y*cs; + const rcCompactCell& c = chf.cells[x+y*chf.width]; + + for (unsigned i = c.index, ni = c.index+c.count; i < ni; ++i) + { + const rcCompactSpan& s = chf.spans[i]; + if (s.reg) + { + intToCol(s.reg, col); + glColor4fv(col); + } + else + glColor4ub(0,0,0,128); + const float fy = chf.miny + (s.y+1)*ch; + glVertex3f(fx, fy, fz); + glVertex3f(fx, fy, fz+cs); + glVertex3f(fx+cs, fy, fz+cs); + glVertex3f(fx+cs, fy, fz); + } + } + } + glEnd(); +} + + +void rcDebugDrawCompactHeightfieldDistance(const rcCompactHeightfield& chf) +{ + const float cs = chf.cs; + const float ch = chf.ch; + + float maxd = chf.maxDistance; + if (maxd < 1.0f) maxd = 1; + float dscale = 1.0f / maxd; + + glBegin(GL_QUADS); + for (int y = 0; y < chf.height; ++y) + { + for (int x = 0; x < chf.width; ++x) + { + const float fx = chf.minx + x*cs; + const float fz = chf.minz + y*cs; + const rcCompactCell& c = chf.cells[x+y*chf.width]; + + for (unsigned i = c.index, ni = c.index+c.count; i < ni; ++i) + { + const rcCompactSpan& s = chf.spans[i]; + const float fy = chf.miny + (s.y+1)*ch; + float cd = (float)s.dist * dscale; + glColor3f(cd, cd, cd); + glVertex3f(fx, fy, fz); + glVertex3f(fx, fy, fz+cs); + glVertex3f(fx+cs, fy, fz+cs); + glVertex3f(fx+cs, fy, fz); + } + } + } + glEnd(); +} + +void rcDebugDrawRawContours(const rcContourSet& cset, const float* orig, float cs, float ch) +{ + float col[4] = { 1,1,1,1 }; + glLineWidth(3.0f); + for (int i = 0; i < cset.nconts; ++i) + { + const rcContour& c = cset.conts[i]; + intToCol(c.reg, col); + glColor4fv(col); + glBegin(GL_LINE_LOOP); + for (int j = 0; j < c.nrverts; ++j) + { + const int* v = &c.rverts[j*4]; + float fx = orig[0] + v[0]*cs; + float fy = orig[1] + (v[1]+1+(i&1))*ch; + float fz = orig[2] + v[2]*cs; + glVertex3f(fx,fy,fz); + } + glEnd(); + } + glLineWidth(1.0f); +} + +void rcDebugDrawContours(const rcContourSet& cset, const float* orig, float cs, float ch) +{ + float col[4] = { 1,1,1,1 }; + glLineWidth(3.0f); + glPointSize(4.0f); + for (int i = 0; i < cset.nconts; ++i) + { + const rcContour& c = cset.conts[i]; + intToCol(c.reg, col); + glColor4fv(col); + glBegin(GL_LINE_LOOP); + for (int j = 0; j < c.nverts; ++j) + { + const int* v = &c.verts[j*4]; + float fx = orig[0] + v[0]*cs; + float fy = orig[1] + (v[1]+1+(i&1))*ch; + float fz = orig[2] + v[2]*cs; + glVertex3f(fx,fy,fz); + } + glEnd(); + glColor4ub(0,0,0,128); + glBegin(GL_POINTS); + for (int j = 0; j < c.nverts; ++j) + { + const int* v = &c.verts[j*4]; + float fx = orig[0] + v[0]*cs; + float fy = orig[1] + (v[1]+1+(i&1))*ch; + float fz = orig[2] + v[2]*cs; + glVertex3f(fx,fy,fz); + } + glEnd(); + } + glLineWidth(1.0f); + glPointSize(1.0f); +} + +void rcDebugDrawPolyMesh(const struct rcPolyMesh& mesh, const float* orig, float cs, float ch) +{ + const int nvp = mesh.nvp; + glColor4ub(0,196,255,64); + glBegin(GL_TRIANGLES); + for (int i = 0; i < mesh.npolys; ++i) + { + const unsigned short* p = &mesh.polys[i*nvp*2]; + unsigned short vi[3]; + for (int j = 2; j < nvp; ++j) + { + if (p[j] == 0xffff) break; + vi[0] = p[0]; + vi[1] = p[j-1]; + vi[2] = p[j]; + for (int k = 0; k < 3; ++k) + { + const unsigned short* v = &mesh.verts[vi[k]*3]; + const float x = orig[0] + v[0]*cs; + const float y = orig[1] + (v[1]+2)*ch; + const float z = orig[2] + v[2]*cs; + glVertex3f(x, y, z); + } + } + } + glEnd(); + + // Draw tri boundaries + glColor4ub(0,0,0,64); + glLineWidth(1.0f); + glBegin(GL_LINES); + for (int i = 0; i < mesh.npolys; ++i) + { + const unsigned short* poly = &mesh.polys[i*nvp*2]; + for (int j = 0; j < nvp; ++j) + { + if (poly[j] == 0xffff) break; + if (poly[nvp+j] == 0xffff) continue; + int vi[2]; + vi[0] = poly[j]; + if (j+1 >= nvp || poly[j+1] == 0xffff) + vi[1] = poly[0]; + else + vi[1] = poly[j+1]; + for (int k = 0; k < 2; ++k) + { + const unsigned short* v = &mesh.verts[vi[k]*3]; + const float x = orig[0] + v[0]*cs; + const float y = orig[1] + (v[1]+2)*ch + 0.1f; + const float z = orig[2] + v[2]*cs; + glVertex3f(x, y, z); + } + } + } + glEnd(); + + // Draw boundaries + glLineWidth(3.0f); + glColor4ub(0,0,0,128); + glBegin(GL_LINES); + for (int i = 0; i < mesh.npolys; ++i) + { + const unsigned short* poly = &mesh.polys[i*nvp*2]; + for (int j = 0; j < nvp; ++j) + { + if (poly[j] == 0xffff) break; + if (poly[nvp+j] != 0xffff) continue; + int vi[2]; + vi[0] = poly[j]; + if (j+1 >= nvp || poly[j+1] == 0xffff) + vi[1] = poly[0]; + else + vi[1] = poly[j+1]; + for (int k = 0; k < 2; ++k) + { + const unsigned short* v = &mesh.verts[vi[k]*3]; + const float x = orig[0] + v[0]*cs; + const float y = orig[1] + (v[1]+2)*ch + 0.1f; + const float z = orig[2] + v[2]*cs; + glVertex3f(x, y, z); + } + } + } + glEnd(); + glLineWidth(1.0f); + + glPointSize(4.0f); + glColor4ub(0,0,0,128); + glBegin(GL_POINTS); + for (int i = 0; i < mesh.nverts; ++i) + { + const unsigned short* v = &mesh.verts[i*3]; + const float x = orig[0] + v[0]*cs; + const float y = orig[1] + (v[1]+2)*ch + 0.1f; + const float z = orig[2] + v[2]*cs; + glVertex3f(x, y, z); + } + glEnd(); + glPointSize(1.0f); +} diff --git a/Recast/Source/RecastFilter.cpp b/Recast/Source/RecastFilter.cpp new file mode 100644 index 0000000..1077a1e --- /dev/null +++ b/Recast/Source/RecastFilter.cpp @@ -0,0 +1,232 @@ +// +// Copyright (c) 2009 Mikko Mononen memon@inside.org +// +// This software is provided 'as-is', without any express or implied +// warranty. In no event will the authors be held liable for any damages +// arising from the use of this software. +// Permission is granted to anyone to use this software for any purpose, +// including commercial applications, and to alter it and redistribute it +// freely, subject to the following restrictions: +// 1. The origin of this software must not be misrepresented; you must not +// claim that you wrote the original software. If you use this software +// in a product, an acknowledgment in the product documentation would be +// appreciated but is not required. +// 2. Altered source versions must be plainly marked as such, and must not be +// misrepresented as being the original software. +// 3. This notice may not be removed or altered from any source distribution. +// + +#define _USE_MATH_DEFINES +#include +#include +#include "Recast.h" +#include "RecastLog.h" +#include "RecastTimer.h" + + +void rcFilterWalkableBorderSpans(const int walkableHeight, + const int walkableClimb, + rcHeightfield& solid) +{ + rcTimeVal startTime = rcGetPerformanceTimer(); + + const int w = solid.width; + const int h = solid.height; + const int MAX_HEIGHT = 0xffff; + + // Mark border spans. + for (int y = 0; y < h; ++y) + { + for (int x = 0; x < w; ++x) + { + for (rcSpan* s = solid.spans[x + y*w]; s; s = s->next) + { + // Skip non walkable spans. + if ((s->flags & RC_WALKABLE) == 0) + continue; + + // The span is valid only if it has four neighbours. + int neighbourCount = 0; + + const int bot = (int)s->smax; + const int top = (int)s->next ? (int)s->next->smin : MAX_HEIGHT; + + // Visit neighbours in all 4 directions. + for (int dir = 0; dir < 4; ++dir) + { + int dx = x + rcGetDirOffsetX(dir); + int dy = y + rcGetDirOffsetY(dir); + // Skip neighbours which are out of bounds. + if (dx < 0 || dy < 0 || dx >= w || dy >= h) + continue; + for (rcSpan* ns = solid.spans[dx + dy*w]; ns; ns = ns->next) + { + const int nbot = (int)ns->smax; + const int ntop = (int)ns->next ? (int)ns->next->smin : MAX_HEIGHT; + // Skip neightbour if the gap between the spans is too small. + if (rcMin(top,ntop) - rcMax(bot,nbot) <= walkableHeight) + continue; + // Skip neightbour if the climb height to the neighbour is too high. + if (rcAbs(nbot - bot) >= walkableClimb) + continue; + // This neighbour is reachable. + neighbourCount++; + } + } + // Remove walkable flag. + if (neighbourCount != 4) + s->flags &= ~RC_WALKABLE; + } + } + } + + rcTimeVal endTime = rcGetPerformanceTimer(); + if (rcGetLog()) + rcGetLog()->log(RC_LOG_PROGRESS, "Filter border: %.3f ms", rcGetDeltaTimeUsec(startTime, endTime)/1000.0f); +} + +void rcFilterWalkableLowHeightSpans(int walkableHeight, + rcHeightfield& solid) +{ + rcTimeVal startTime = rcGetPerformanceTimer(); + + const int w = solid.width; + const int h = solid.height; + const int MAX_HEIGHT = 0xffff; + + // Remove walkable flag from spans which do not have enough + // space above them for the agent to stand there. + for (int y = 0; y < h; ++y) + { + for (int x = 0; x < w; ++x) + { + for (rcSpan* s = solid.spans[x + y*w]; s; s = s->next) + { + const int bot = (int)s->smax; + const int top = (int)s->next ? (int)s->next->smin : MAX_HEIGHT; + if ((top - bot) <= walkableHeight) + s->flags &= ~RC_WALKABLE; + } + } + } + + rcTimeVal endTime = rcGetPerformanceTimer(); + + if (rcGetLog()) + rcGetLog()->log(RC_LOG_PROGRESS, "Filter walkable: %.3f ms", rcGetDeltaTimeUsec(startTime, endTime)/1000.0f); +} + +struct rcReachableSeed +{ + inline void set(int ix, int iy, rcSpan* is) + { + x = (unsigned short)ix; + y = (unsigned short)iy; + s = is; + } + unsigned short x, y; + rcSpan* s; +}; + +bool rcMarkReachableSpans(const int walkableHeight, + const int walkableClimb, + rcHeightfield& solid) +{ + const int w = solid.width; + const int h = solid.height; + const int MAX_HEIGHT = 0xffff; + + rcTimeVal startTime = rcGetPerformanceTimer(); + + // Build navigable space. + const int MAX_SEEDS = w*h; + rcReachableSeed* stack = new rcReachableSeed[MAX_SEEDS]; + if (!stack) + { + if (rcGetLog()) + rcGetLog()->log(RC_LOG_ERROR, "rcMarkReachableSpans: Out of memory 'stack' (%d).", MAX_SEEDS); + return false; + } + int stackSize = 0; + + for (int y = 0; y < h; ++y) + { + for (int x = 0; x < w; ++x) + { + rcSpan* topSpan = solid.spans[x + y*w]; + if (!topSpan) + continue; + while (topSpan->next) + topSpan = topSpan->next; + + // If the span is not walkable, skip it. + if ((topSpan->flags & RC_WALKABLE) == 0) + continue; + // If the span has been visited already, skip it. + if (topSpan->flags & RC_REACHABLE) + continue; + + // Start flood fill. + topSpan->flags |= RC_REACHABLE; + stackSize = 0; + stack[stackSize].set(x, y, topSpan); + stackSize++; + + while (stackSize) + { + // Pop a seed from the stack. + stackSize--; + rcReachableSeed cur = stack[stackSize]; + + const int bot = (int)cur.s->smax; + const int top = (int)cur.s->next ? (int)cur.s->next->smin : MAX_HEIGHT; + + // Visit neighbours in all 4 directions. + for (int dir = 0; dir < 4; ++dir) + { + int dx = (int)cur.x + rcGetDirOffsetX(dir); + int dy = (int)cur.y + rcGetDirOffsetY(dir); + // Skip neighbour which are out of bounds. + if (dx < 0 || dy < 0 || dx >= w || dy >= h) + continue; + for (rcSpan* ns = solid.spans[dx + dy*w]; ns; ns = ns->next) + { + // Skip neighbour if it is not walkable. + if ((ns->flags & RC_WALKABLE) == 0) + continue; + // Skip the neighbour if it has been visited already. + if (ns->flags & RC_REACHABLE) + continue; + + const int nbot = (int)ns->smax; + const int ntop = (int)ns->next ? (int)ns->next->smin : MAX_HEIGHT; + // Skip neightbour if the gap between the spans is too small. + if (rcMin(top,ntop) - rcMax(bot,nbot) < walkableHeight) + continue; + // Skip neightbour if the climb height to the neighbour is too high. + if (rcAbs(nbot - bot) >= walkableClimb) + continue; + + // This neighbour has not been visited yet. + // Mark it as reachable and add it to the seed stack. + ns->flags |= RC_REACHABLE; + if (stackSize < MAX_SEEDS) + { + stack[stackSize].set(dx, dy, ns); + stackSize++; + } + } + } + } + } + } + + delete [] stack; + + rcTimeVal endTime = rcGetPerformanceTimer(); + + if (rcGetLog()) + rcGetLog()->log(RC_LOG_PROGRESS, "Mark reachable: %.3f ms", rcGetDeltaTimeUsec(startTime, endTime)/1000.0f); + + return true; +} diff --git a/Recast/Source/RecastLog.cpp b/Recast/Source/RecastLog.cpp new file mode 100644 index 0000000..cc05f22 --- /dev/null +++ b/Recast/Source/RecastLog.cpp @@ -0,0 +1,66 @@ +// +// Copyright (c) 2009 Mikko Mononen memon@inside.org +// +// This software is provided 'as-is', without any express or implied +// warranty. In no event will the authors be held liable for any damages +// arising from the use of this software. +// Permission is granted to anyone to use this software for any purpose, +// including commercial applications, and to alter it and redistribute it +// freely, subject to the following restrictions: +// 1. The origin of this software must not be misrepresented; you must not +// claim that you wrote the original software. If you use this software +// in a product, an acknowledgment in the product documentation would be +// appreciated but is not required. +// 2. Altered source versions must be plainly marked as such, and must not be +// misrepresented as being the original software. +// 3. This notice may not be removed or altered from any source distribution. +// + +#include "RecastLog.h" +#include +#include + +static rcLog* g_log = 0; + +rcLog::rcLog() : + m_messageCount(0), + m_textPoolSize(0) +{ +} + +rcLog::~rcLog() +{ + if (g_log == this) + g_log = 0; +} + +void rcLog::log(rcLogCategory category, const char* format, ...) +{ + if (m_messageCount >= MAX_MESSAGES) + return; + char* dst = &m_textPool[m_textPoolSize]; + int n = TEXT_POOL_SIZE - m_textPoolSize; + if (n < 2) + return; + // Store category + *dst = (char)category; + n--; + // Store message + va_list ap; + va_start(ap, format); + int ret = vsnprintf(dst+1, n-1, format, ap); + va_end(ap); + if (ret > 0) + m_textPoolSize += ret+2; + m_messages[m_messageCount++] = dst; +} + +void rcSetLog(rcLog* log) +{ + g_log = log; +} + +rcLog* rcGetLog() +{ + return g_log; +} diff --git a/Recast/Source/RecastMesh.cpp b/Recast/Source/RecastMesh.cpp new file mode 100644 index 0000000..243298d --- /dev/null +++ b/Recast/Source/RecastMesh.cpp @@ -0,0 +1,699 @@ +// +// Copyright (c) 2009 Mikko Mononen memon@inside.org +// +// This software is provided 'as-is', without any express or implied +// warranty. In no event will the authors be held liable for any damages +// arising from the use of this software. +// Permission is granted to anyone to use this software for any purpose, +// including commercial applications, and to alter it and redistribute it +// freely, subject to the following restrictions: +// 1. The origin of this software must not be misrepresented; you must not +// claim that you wrote the original software. If you use this software +// in a product, an acknowledgment in the product documentation would be +// appreciated but is not required. +// 2. Altered source versions must be plainly marked as such, and must not be +// misrepresented as being the original software. +// 3. This notice may not be removed or altered from any source distribution. +// + +#define _USE_MATH_DEFINES +#include +#include +#include +#include "Recast.h" +#include "RecastLog.h" +#include "RecastTimer.h" + + +struct rcEdge +{ + unsigned short vert[2]; + unsigned short polyEdge[2]; + unsigned short poly[2]; +}; + +static bool buildMeshAdjacency(unsigned short* polys, const int npolys, + const int nverts, const int vertsPerPoly) +{ + // Based on code by Eric Lengyel from: + // http://www.terathon.com/code/edges.php + + int maxEdgeCount = npolys*vertsPerPoly; + unsigned short* firstEdge = new unsigned short[nverts + maxEdgeCount]; + if (!firstEdge) + return false; + unsigned short* nextEdge = firstEdge + nverts; + int edgeCount = 0; + + rcEdge* edges = new rcEdge[maxEdgeCount]; + if (!edges) + return false; + + for (int i = 0; i < nverts; i++) + firstEdge[i] = 0xffff; + + // Invalida indices are marked as 0xffff, the following code + // handles them just fine. + + for (int i = 0; i < npolys; ++i) + { + unsigned short* t = &polys[i*vertsPerPoly*2]; + for (int j = 0; j < vertsPerPoly; ++j) + { + unsigned short v0 = t[j]; + unsigned short v1 = (j+1 >= vertsPerPoly || t[j+1] == 0xffff) ? t[0] : t[j+1]; + if (v0 < v1) + { + rcEdge& edge = edges[edgeCount]; + edge.vert[0] = v0; + edge.vert[1] = v1; + edge.poly[0] = (unsigned short)i; + edge.polyEdge[0] = (unsigned short)j; + edge.poly[1] = (unsigned short)i; + edge.polyEdge[1] = 0; + // Insert edge + nextEdge[edgeCount] = firstEdge[v0]; + firstEdge[v0] = edgeCount; + edgeCount++; + } + } + } + + for (int i = 0; i < npolys; ++i) + { + unsigned short* t = &polys[i*vertsPerPoly*2]; + for (int j = 0; j < vertsPerPoly; ++j) + { + unsigned short v0 = t[j]; + unsigned short v1 = (j+1 >= vertsPerPoly || t[j+1] == 0xffff) ? t[0] : t[j+1]; + if (v0 > v1) + { + for (unsigned short e = firstEdge[v1]; e != 0xffff; e = nextEdge[e]) + { + rcEdge& edge = edges[e]; + if (edge.vert[1] == v0 && edge.poly[0] == edge.poly[1]) + { + edge.poly[1] = (unsigned short)i; + edge.polyEdge[1] = (unsigned short)j; + break; + } + } + } + } + } + + // Store adjacency + for (int i = 0; i < edgeCount; ++i) + { + const rcEdge& e = edges[i]; + if (e.poly[0] != e.poly[1]) + { + unsigned short* p0 = &polys[e.poly[0]*vertsPerPoly*2]; + unsigned short* p1 = &polys[e.poly[1]*vertsPerPoly*2]; + p0[vertsPerPoly + e.polyEdge[0]] = e.poly[1]; + p1[vertsPerPoly + e.polyEdge[1]] = e.poly[0]; + } + } + + delete [] firstEdge; + delete [] edges; + + return true; +} + + +static const int VERTEX_BUCKET_COUNT = (1<<12); + +inline int computeVertexHash(int x, int y, int z) +{ + const unsigned int h1 = 0x8da6b343; // Large multiplicative constants; + const unsigned int h2 = 0xd8163841; // here arbitrarily chosen primes + const unsigned int h3 = 0xcb1ab31f; + unsigned int n = h1 * x + h2 * y + h3 * z; + return (int)(n & (VERTEX_BUCKET_COUNT-1)); +} + +static int addVertex(unsigned short x, unsigned short y, unsigned short z, + unsigned short* verts, int* firstVert, int* nextVert, int& nv) +{ + int bucket = computeVertexHash(x, y, z); + int i = firstVert[bucket]; + + while (i != -1) + { + const unsigned short* v = &verts[i*3]; + if (v[0] == x && v[1] == y && v[2] == z) + return i; + i = nextVert[i]; // next + } + + // Could not find, create new. + i = nv; nv++; + unsigned short* v = &verts[i*3]; + v[0] = x; + v[1] = y; + v[2] = z; + nextVert[i] = firstVert[bucket]; + firstVert[bucket] = i; + + return i; +} + +inline int prev(int i, int n) { return i-1 >= 0 ? i-1 : n-1; } +inline int next(int i, int n) { return i+1 < n ? i+1 : 0; } + +inline int area2(const int* a, const int* b, const int* c) +{ + return (b[0] - a[0]) * (c[2] - a[2]) - (c[0] - a[0]) * (b[2] - a[2]); +} + +// Exclusive or: true iff exactly one argument is true. +// The arguments are negated to ensure that they are 0/1 +// values. Then the bitwise Xor operator may apply. +// (This idea is due to Michael Baldwin.) +inline bool xorb(bool x, bool y) +{ + return !x ^ !y; +} + +// Returns true iff c is strictly to the left of the directed +// line through a to b. +inline bool left(const int* a, const int* b, const int* c) +{ + return area2(a, b, c) < 0; +} + +inline bool leftOn(const int* a, const int* b, const int* c) +{ + return area2(a, b, c) <= 0; +} + +inline bool collinear(const int* a, const int* b, const int* c) +{ + return area2(a, b, c) == 0; +} + +// Returns true iff ab properly intersects cd: they share +// a point interior to both segments. The properness of the +// intersection is ensured by using strict leftness. +bool intersectProp(const int* a, const int* b, const int* c, const int* d) +{ + // Eliminate improper cases. + if (collinear(a,b,c) || collinear(a,b,d) || + collinear(c,d,a) || collinear(c,d,b)) + return false; + + return xorb(left(a,b,c), left(a,b,d)) && xorb(left(c,d,a), left(c,d,b)); +} + +// Returns T iff (a,b,c) are collinear and point c lies +// on the closed segement ab. +static bool between(const int* a, const int* b, const int* c) +{ + if (!collinear(a, b, c)) + return false; + // If ab not vertical, check betweenness on x; else on y. + if (a[0] != b[0]) + return ((a[0] <= c[0]) && (c[0] <= b[0])) || ((a[0] >= c[0]) && (c[0] >= b[0])); + else + return ((a[2] <= c[2]) && (c[2] <= b[2])) || ((a[2] >= c[2]) && (c[2] >= b[2])); +} + +// Returns true iff segments ab and cd intersect, properly or improperly. +static bool intersect(const int* a, const int* b, const int* c, const int* d) +{ + if (intersectProp(a, b, c, d)) + return true; + else if (between(a, b, c) || between(a, b, d) || + between(c, d, a) || between(c, d, b)) + return true; + else + return false; +} + +static bool vequal(const int* a, const int* b) +{ + return a[0] == b[0] && a[2] == b[2]; +} + +// Returns T iff (v_i, v_j) is a proper internal *or* external +// diagonal of P, *ignoring edges incident to v_i and v_j*. +static bool diagonalie(int i, int j, int n, const int* verts, int* indices) +{ + const int* d0 = &verts[(indices[i] & 0x0fffffff) * 4]; + const int* d1 = &verts[(indices[j] & 0x0fffffff) * 4]; + + // For each edge (k,k+1) of P + for (int k = 0; k < n; k++) + { + int k1 = next(k, n); + // Skip edges incident to i or j + if (!((k == i) || (k1 == i) || (k == j) || (k1 == j))) + { + const int* p0 = &verts[(indices[k] & 0x0fffffff) * 4]; + const int* p1 = &verts[(indices[k1] & 0x0fffffff) * 4]; + + if (vequal(d0, p0) || vequal(d1, p0) || vequal(d0, p1) || vequal(d1, p1)) + continue; + + if (intersect(d0, d1, p0, p1)) + return false; + } + } + return true; +} + +// Returns true iff the diagonal (i,j) is strictly internal to the +// polygon P in the neighborhood of the i endpoint. +static bool inCone(int i, int j, int n, const int* verts, int* indices) +{ + const int* pi = &verts[(indices[i] & 0x0fffffff) * 4]; + const int* pj = &verts[(indices[j] & 0x0fffffff) * 4]; + const int* pi1 = &verts[(indices[next(i, n)] & 0x0fffffff) * 4]; + const int* pin1 = &verts[(indices[prev(i, n)] & 0x0fffffff) * 4]; + + // If P[i] is a convex vertex [ i+1 left or on (i-1,i) ]. + if (leftOn(pin1, pi, pi1)) + return left(pi, pj, pin1) && left(pj, pi, pi1); + // Assume (i-1,i,i+1) not collinear. + // else P[i] is reflex. + return !(leftOn(pi, pj, pi1) && leftOn(pj, pi, pin1)); +} + +// Returns T iff (v_i, v_j) is a proper internal +// diagonal of P. +static bool diagonal(int i, int j, int n, const int* verts, int* indices) +{ + return inCone(i, j, n, verts, indices) && diagonalie(i, j, n, verts, indices); +} + +int triangulate(int n, const int* verts, int* indices, int* tris) +{ + int ntris = 0; + int* dst = tris; + + // The last bit of the index is used to indicate if the vertex can be removed. + for (int i = 0; i < n; i++) + { + int i1 = next(i, n); + int i2 = next(i1, n); + if (diagonal(i, i2, n, verts, indices)) + indices[i1] |= 0x80000000; + } + + while (n > 3) + { + int minLen = -1; + int mini = -1; + for (int i = 0; i < n; i++) + { + int i1 = next(i, n); + if (indices[i1] & 0x80000000) + { + const int* p0 = &verts[(indices[i] & 0x0fffffff) * 4]; + const int* p2 = &verts[(indices[next(i1, n)] & 0x0fffffff) * 4]; + + int dx = p2[0] - p0[0]; + int dy = p2[2] - p0[2]; + int len = dx*dx + dy*dy; + + if (minLen < 0 || len < minLen) + { + minLen = len; + mini = i; + } + } + } + + if (mini == -1) + { + // Should not happen. + if (rcGetLog()) + rcGetLog()->log(RC_LOG_WARNING, "triangulate: Failed to triangulate polygon."); +/* printf("mini == -1 ntris=%d n=%d\n", ntris, n); + for (int i = 0; i < n; i++) + { + printf("%d ", indices[i] & 0x0fffffff); + } + printf("\n");*/ + return -ntris; + } + + int i = mini; + int i1 = next(i, n); + int i2 = next(i1, n); + + *dst++ = indices[i] & 0x0fffffff; + *dst++ = indices[i1] & 0x0fffffff; + *dst++ = indices[i2] & 0x0fffffff; + ntris++; + + // Removes P[i1] by copying P[i+1]...P[n-1] left one index. + n--; + for (int k = i1; k < n; k++) + indices[k] = indices[k+1]; + + if (i1 >= n) i1 = 0; + i = prev(i1,n); + // Update diagonal flags. + if (diagonal(prev(i, n), i1, n, verts, indices)) + indices[i] |= 0x80000000; + else + indices[i] &= 0x0fffffff; + + if (diagonal(i, next(i1, n), n, verts, indices)) + indices[i1] |= 0x80000000; + else + indices[i1] &= 0x0fffffff; + } + + // Append the remaining triangle. + *dst++ = indices[0] & 0x0fffffff; + *dst++ = indices[1] & 0x0fffffff; + *dst++ = indices[2] & 0x0fffffff; + ntris++; + + return ntris; +} + +static int countPolyVerts(const unsigned short* p, const int nvp) +{ + for (int i = 0; i < nvp; ++i) + if (p[i] == 0xffff) + return i; + return nvp; +} + +inline bool uleftOn(const unsigned short* a, const unsigned short* b, const unsigned short* c) +{ + return ((int)b[0] - (int)a[0]) * ((int)c[2] - (int)a[2]) - + ((int)c[0] - (int)a[0]) * ((int)b[2] - (int)a[2]) <= 0; +} + +static int getPolyMergeValue(unsigned short* pa, unsigned short* pb, + const unsigned short* verts, int& ea, int& eb, + const int nvp) +{ + const int na = countPolyVerts(pa, nvp); + const int nb = countPolyVerts(pb, nvp); + + // If the merged polygon would be too big, do not merge. + if (na+nb-2 > nvp) + return -1; + + // Check if the polygons share an edge. + ea = -1; + eb = -1; + + for (int i = 0; i < na; ++i) + { + unsigned short va0 = pa[i]; + unsigned short va1 = pa[(i+1) % na]; + if (va0 > va1) + rcSwap(va0, va1); + for (int j = 0; j < nb; ++j) + { + unsigned short vb0 = pb[j]; + unsigned short vb1 = pb[(j+1) % nb]; + if (vb0 > vb1) + rcSwap(vb0, vb1); + if (va0 == vb0 && va1 == vb1) + { + ea = i; + eb = j; + break; + } + } + } + + // No common edge, cannot merge. + if (ea == -1 || eb == -1) + return -1; + + // Check to see if the merged polygon would be convex. + unsigned short va, vb, vc; + + va = pa[(ea+na-1) % na]; + vb = pa[ea]; + vc = pb[(eb+2) % nb]; + if (!uleftOn(&verts[va*3], &verts[vb*3], &verts[vc*3])) + return -1; + + va = pb[(eb+nb-1) % nb]; + vb = pb[eb]; + vc = pa[(ea+2) % na]; + if (!uleftOn(&verts[va*3], &verts[vb*3], &verts[vc*3])) + return -1; + + va = pa[ea]; + vb = pa[(ea+1)%na]; + + int dx = (int)verts[va*3+0] - (int)verts[vb*3+0]; + int dy = (int)verts[va*3+2] - (int)verts[vb*3+2]; + + return dx*dx + dy*dy; +} + +static void mergePolys(unsigned short* pa, unsigned short* pb, + const unsigned short* verts, int ea, int eb, + unsigned short* tmp, const int nvp) +{ + const int na = countPolyVerts(pa, nvp); + const int nb = countPolyVerts(pb, nvp); + + // Merge polygons. + memset(tmp, 0xff, sizeof(unsigned short)*nvp); + int n = 0; + // Add pa + for (int i = 0; i < na-1; ++i) + tmp[n++] = pa[(ea+1+i) % na]; + // Add pb + for (int i = 0; i < nb-1; ++i) + tmp[n++] = pb[(eb+1+i) % nb]; + + memcpy(pa, tmp, sizeof(unsigned short)*nvp); +} + +bool rcBuildPolyMesh(rcContourSet& cset, rcPolyMesh& mesh, const int nvp) +{ + rcTimeVal startTime = rcGetPerformanceTimer(); + + int maxVertices = 0; + int maxTris = 0; + int maxVertsPerCont = 0; + for (int i = 0; i < cset.nconts; ++i) + { + maxVertices += cset.conts[i].nverts; + maxTris += cset.conts[i].nverts - 2; + maxVertsPerCont = rcMax(maxVertsPerCont, cset.conts[i].nverts); + } + + if (maxVertices >= 0xfffe) + { + if (rcGetLog()) + rcGetLog()->log(RC_LOG_ERROR, "rcBuildPolyMesh: Too many vertices %d.", maxVertices); + return false; + } + + mesh.verts = new unsigned short[maxVertices*3]; + if (!mesh.verts) + { + if (rcGetLog()) + rcGetLog()->log(RC_LOG_ERROR, "rcBuildPolyMesh: Out of memory 'mesh.verts' (%d).", maxVertices); + return false; + } + mesh.polys = new unsigned short[maxTris*nvp*2]; + if (!mesh.polys) + { + if (rcGetLog()) + rcGetLog()->log(RC_LOG_ERROR, "rcBuildPolyMesh: Out of memory 'mesh.verts' (%d).", maxTris*nvp); + return false; + } + mesh.nverts = 0; + mesh.npolys = 0; + mesh.nvp = nvp; + + memset(mesh.verts, 0, sizeof(unsigned short)*maxVertices*3); + memset(mesh.polys, 0xff, sizeof(unsigned short)*maxTris*nvp*2); + + int* nextVert = new int[maxVertices]; + if (!nextVert) + { + if (rcGetLog()) + rcGetLog()->log(RC_LOG_ERROR, "rcBuildPolyMesh: Out of memory 'nextVert' (%d).", maxVertices); + return false; + } + memset(nextVert, 0, sizeof(int)*maxVertices); + + int* firstVert = new int[VERTEX_BUCKET_COUNT]; + if (!firstVert) + { + if (rcGetLog()) + rcGetLog()->log(RC_LOG_ERROR, "rcBuildPolyMesh: Out of memory 'firstVert' (%d).", VERTEX_BUCKET_COUNT); + return false; + } + for (int i = 0; i < VERTEX_BUCKET_COUNT; ++i) + firstVert[i] = -1; + + int* indices = new int[maxVertsPerCont]; + if (!indices) + { + if (rcGetLog()) + rcGetLog()->log(RC_LOG_ERROR, "rcBuildPolyMesh: Out of memory 'indices' (%d).", maxVertsPerCont); + return false; + } + int* tris = new int[maxVertsPerCont*3]; + if (!tris) + { + if (rcGetLog()) + rcGetLog()->log(RC_LOG_ERROR, "rcBuildPolyMesh: Out of memory 'tris' (%d).", maxVertsPerCont*3); + return false; + } + unsigned short* polys = new unsigned short[maxVertsPerCont*nvp]; + if (!polys) + { + if (rcGetLog()) + rcGetLog()->log(RC_LOG_ERROR, "rcBuildPolyMesh: Out of memory 'polys' (%d).", maxVertsPerCont*nvp); + return false; + } + unsigned short* tmpPoly = new unsigned short[nvp]; + if (!tmpPoly) + { + if (rcGetLog()) + rcGetLog()->log(RC_LOG_ERROR, "rcBuildPolyMesh: Out of memory 'tmpPoly' (%d).", nvp); + return false; + } + + for (int i = 0; i < cset.nconts; ++i) + { + rcContour& cont = cset.conts[i]; + + // Skip empty contours. + if (cont.nverts < 3) + continue; + + // Triangulate contour + for (int j = 0; j < cont.nverts; ++j) + indices[j] = j; + + int ntris = triangulate(cont.nverts, cont.verts, &indices[0], &tris[0]); + if (ntris <= 0) + { + // Bad triangulation, should not happen. +/* for (int k = 0; k < cont.nverts; ++k) + { + const int* v = &cont.verts[k*4]; + printf("\t\t%d,%d,%d,%d,\n", v[0], v[1], v[2], v[3]); + if (nBadPos < 100) + { + badPos[nBadPos*3+0] = v[0]; + badPos[nBadPos*3+1] = v[1]; + badPos[nBadPos*3+2] = v[2]; + nBadPos++; + } + }*/ + ntris = -ntris; + } + // Add and merge vertices. + for (int j = 0; j < cont.nverts; ++j) + { + const int* v = &cont.verts[j*4]; + indices[j] = addVertex((unsigned short)v[0], (unsigned short)v[1], (unsigned short)v[2], + mesh.verts, firstVert, nextVert, mesh.nverts); + } + + // Build initial polygons. + int npolys = 0; + memset(polys, 0xff, maxVertsPerCont*nvp*sizeof(unsigned short)); + for (int j = 0; j < ntris; ++j) + { + int* t = &tris[j*3]; + if (t[0] != t[1] && t[0] != t[2] && t[1] != t[2]) + { + polys[npolys*nvp+0] = (unsigned short)indices[t[0]]; + polys[npolys*nvp+1] = (unsigned short)indices[t[1]]; + polys[npolys*nvp+2] = (unsigned short)indices[t[2]]; + npolys++; + } + } + if (!npolys) + continue; + + // Merge polygons. + if (nvp > 3) + { + while (true) + { + // Find best polygons to merge. + int bestMergeVal = 0; + int bestPa, bestPb, bestEa, bestEb; + + for (int j = 0; j < npolys-1; ++j) + { + unsigned short* pj = &polys[j*nvp]; + for (int k = j+1; k < npolys; ++k) + { + unsigned short* pk = &polys[k*nvp]; + int ea, eb; + int v = getPolyMergeValue(pj, pk, mesh.verts, ea, eb, nvp); + if (v > bestMergeVal) + { + bestMergeVal = v; + bestPa = j; + bestPb = k; + bestEa = ea; + bestEb = eb; + } + } + } + + if (bestMergeVal > 0) + { + // Found best, merge. + unsigned short* pa = &polys[bestPa*nvp]; + unsigned short* pb = &polys[bestPb*nvp]; + mergePolys(pa, pb, mesh.verts, bestEa, bestEb, tmpPoly, nvp); + memcpy(pb, &polys[(npolys-1)*nvp], sizeof(unsigned short)*nvp); + npolys--; + } + else + { + // Could not merge any polygons, stop. + break; + } + } + } + + + // Store polygons. + for (int j = 0; j < npolys; ++j) + { + unsigned short* p = &mesh.polys[mesh.npolys*nvp*2]; + unsigned short* q = &polys[j*nvp]; + for (int k = 0; k < nvp; ++k) + p[k] = q[k]; + mesh.npolys++; + } + } + + delete [] tmpPoly; + delete [] firstVert; + delete [] nextVert; + delete [] indices; + delete [] tris; + + // Calculate adjacency. + if (!buildMeshAdjacency(mesh.polys, mesh.npolys, mesh.nverts, nvp)) + { + if (rcGetLog()) + rcGetLog()->log(RC_LOG_ERROR, "rcBuildPolyMesh: Adjacency failed."); + return false; + } + + rcTimeVal endTime = rcGetPerformanceTimer(); + + if (rcGetLog()) + rcGetLog()->log(RC_LOG_ERROR, "Build polymesh: %.3f ms", rcGetDeltaTimeUsec(startTime, endTime)/1000.0f); + + return true; +} diff --git a/Recast/Source/RecastRasterization.cpp b/Recast/Source/RecastRasterization.cpp new file mode 100644 index 0000000..fc9e171 --- /dev/null +++ b/Recast/Source/RecastRasterization.cpp @@ -0,0 +1,295 @@ +// +// Copyright (c) 2009 Mikko Mononen memon@inside.org +// +// This software is provided 'as-is', without any express or implied +// warranty. In no event will the authors be held liable for any damages +// arising from the use of this software. +// Permission is granted to anyone to use this software for any purpose, +// including commercial applications, and to alter it and redistribute it +// freely, subject to the following restrictions: +// 1. The origin of this software must not be misrepresented; you must not +// claim that you wrote the original software. If you use this software +// in a product, an acknowledgment in the product documentation would be +// appreciated but is not required. +// 2. Altered source versions must be plainly marked as such, and must not be +// misrepresented as being the original software. +// 3. This notice may not be removed or altered from any source distribution. +// + +#define _USE_MATH_DEFINES +#include +#include +#include "Recast.h" +#include "RecastTimer.h" +#include "RecastLog.h" + +inline bool overlapBounds(const float* amin, const float* amax, const float* bmin, const float* bmax) +{ + bool overlap = true; + overlap = (amin[0] > bmax[0] || amax[0] < bmin[0]) ? false : overlap; + overlap = (amin[1] > bmax[1] || amax[1] < bmin[1]) ? false : overlap; + overlap = (amin[2] > bmax[2] || amax[2] < bmin[2]) ? false : overlap; + return overlap; +} + +inline bool overlapInterval(unsigned short amin, unsigned short amax, + unsigned short bmin, unsigned short bmax) +{ + if (amax < bmin) return false; + if (amin > bmax) return false; + return true; +} + + +static rcSpan* allocSpan(rcHeightfield& hf) +{ + static const int SPANS_PER_POOL = 2048; + // If running out of memory, allocate new page and update the freelist. + if (!hf.freelist || !hf.freelist->next) + { + // Create new page. + // Allocate memory for the new pool. + const int size = (sizeof(rcSpanPool)-sizeof(rcSpan)) + sizeof(rcSpan)*SPANS_PER_POOL; + rcSpanPool* pool = reinterpret_cast(new unsigned char[size]); + if (!pool) return 0; + pool->next = 0; + // Add the pool into the list of pools. + pool->next = hf.pools; + hf.pools = pool; + // Add new items to the free list. + rcSpan* freelist = hf.freelist; + rcSpan* head = &pool->items[0]; + rcSpan* it = &pool->items[SPANS_PER_POOL]; + do + { + --it; + it->next = freelist; + freelist = it; + } + while (it != head); + hf.freelist = it; + } + + // Pop item from in front of the free list. + rcSpan* it = hf.freelist; + hf.freelist = hf.freelist->next; + return it; +} + +static void freeSpan(rcHeightfield& hf, rcSpan* ptr) +{ + if (!ptr) return; + // Add the node in front of the free list. + ptr->next = hf.freelist; + hf.freelist = ptr; +} + +static void addSpan(rcHeightfield& hf, int x, int y, + unsigned short smin, unsigned short smax, + unsigned short flags) +{ + int idx = x + y*hf.width; + + rcSpan* s = allocSpan(hf); + s->smin = smin; + s->smax = smax; + s->flags = flags; + s->next = 0; + + // Empty cell, add he first span. + if (!hf.spans[idx]) + { + hf.spans[idx] = s; + return; + } + rcSpan* prev = 0; + rcSpan* cur = hf.spans[idx]; + + // Insert and merge spans. + while (cur) + { + if (cur->smin > s->smax) + { + // Current span is further than the new span, break. + break; + } + else if (cur->smax < s->smin) + { + // Current span is before the new span advance. + prev = cur; + cur = cur->next; + } + else + { + // Merge spans. + if (cur->smin < s->smin) + s->smin = cur->smin; + if (cur->smax > s->smax) + s->smax = cur->smax; + + // Merge flags. +// if (s->smax == cur->smax) + if (rcAbs((int)s->smax - (int)cur->smax) <= 1) + s->flags |= cur->flags; + + // Remove current span. + rcSpan* next = cur->next; + freeSpan(hf, cur); + if (prev) + prev->next = next; + else + hf.spans[idx] = next; + cur = next; + } + } + + // Insert new span. + if (prev) + { + s->next = prev->next; + prev->next = s; + } + else + { + s->next = hf.spans[idx]; + hf.spans[idx] = s; + } +} + +static int clipPoly(const float* in, int n, float* out, float pnx, float pnz, float pd) +{ + float d[12]; + for (int i = 0; i < n; ++i) + d[i] = pnx*in[i*3+0] + pnz*in[i*3+2] + pd; + + int m = 0; + for (int i = 0, j = n-1; i < n; j=i, ++i) + { + bool ina = d[j] >= 0; + bool inb = d[i] >= 0; + if (ina != inb) + { + float s = d[j] / (d[j] - d[i]); + out[m*3+0] = in[j*3+0] + (in[i*3+0] - in[j*3+0])*s; + out[m*3+1] = in[j*3+1] + (in[i*3+1] - in[j*3+1])*s; + out[m*3+2] = in[j*3+2] + (in[i*3+2] - in[j*3+2])*s; + m++; + } + if (inb) + { + out[m*3+0] = in[i*3+0]; + out[m*3+1] = in[i*3+1]; + out[m*3+2] = in[i*3+2]; + m++; + } + } + return m; +} + +static void rasterizeTri(const float* v0, const float* v1, const float* v2, + unsigned char flags, rcHeightfield& hf, + const float* bmin, const float* bmax, + const float cs, const float ics, const float ich) +{ + const int w = hf.width; + const int h = hf.height; + float tmin[3], tmax[3]; + const float by = bmax[1] - bmin[1]; + + // Calculate the bounding box of the triangle. + vcopy(tmin, v0); + vcopy(tmax, v0); + vmin(tmin, v1); + vmin(tmin, v2); + vmax(tmax, v1); + vmax(tmax, v2); + + // If the triangle does not touch the bbox of the heightfield, skip the triagle. + if (!overlapBounds(bmin, bmax, tmin, tmax)) + return; + + // Calculate the footpring of the triangle on the grid. + int x0 = (int)((tmin[0] - bmin[0])*ics); + int y0 = (int)((tmin[2] - bmin[2])*ics); + int x1 = (int)((tmax[0] - bmin[0])*ics); + int y1 = (int)((tmax[2] - bmin[2])*ics); + x0 = rcClamp(x0, 0, w-1); + y0 = rcClamp(y0, 0, h-1); + x1 = rcClamp(x1, 0, w-1); + y1 = rcClamp(y1, 0, h-1); + + // Clip the triangle into all grid cells it touches. + float in[7*3], out[7*3], inrow[7*3]; + + for (int y = y0; y <= y1; ++y) + { + // Clip polygon to row. + vcopy(&in[0], v0); + vcopy(&in[1*3], v1); + vcopy(&in[2*3], v2); + int nvrow = 3; + const float cz = bmin[2] + y*cs; + nvrow = clipPoly(in, nvrow, out, 0, 1, -cz); + if (nvrow < 3) continue; + nvrow = clipPoly(out, nvrow, inrow, 0, -1, cz+cs); + if (nvrow < 3) continue; + + for (int x = x0; x <= x1; ++x) + { + // Clip polygon to column. + int nv = nvrow; + const float cx = bmin[0] + x*cs; + nv = clipPoly(inrow, nv, out, 1, 0, -cx); + if (nv < 3) continue; + nv = clipPoly(out, nv, in, -1, 0, cx+cs); + if (nv < 3) continue; + + // Calculate min and max of the span. + float smin = in[1], smax = in[1]; + for (int i = 1; i < nv; ++i) + { + smin = rcMin(smin, in[i*3+1]); + smax = rcMax(smax, in[i*3+1]); + } + smin -= bmin[1]; + smax -= bmin[1]; + // Skip the span if it is outside the heightfield bbox + if (smax < 0.0f) continue; + if (smin > by) continue; + // Clamp the span to the heightfield bbox. + if (smin < 0.0f) smin = bmin[1]; + if (smax > by) smax = bmax[1]; + + // Snap the span to the heightfield height grid. + unsigned short ismin = (unsigned short)rcClamp((int)floorf(smin * ich), 0, 0x7fff); + unsigned short ismax = (unsigned short)rcClamp((int)ceilf(smax * ich), 0, 0x7fff); + + addSpan(hf, x, y, ismin, ismax, flags); + } + } +} + +void rcRasterizeTriangles(const float* bmin, const float* bmax, const float cs, const float ch, + const float* verts, int nv, + const int* tris, const unsigned char* flags, int nt, + rcHeightfield& solid) +{ + rcTimeVal startTime = rcGetPerformanceTimer(); + + const float ics = 1.0f/cs; + const float ich = 1.0f/ch; + // Rasterize triangles. + for (int i = 0; i < nt; ++i) + { + const float* v0 = &verts[tris[i*3+0]*3]; + const float* v1 = &verts[tris[i*3+1]*3]; + const float* v2 = &verts[tris[i*3+2]*3]; + // Rasterize. + rasterizeTri(v0, v1, v2, flags[i], solid, bmin, bmax, cs, ics, ich); + } + + rcTimeVal endTime = rcGetPerformanceTimer(); + + if (rcGetLog()) + rcGetLog()->log(RC_LOG_PROGRESS, "Rasterize: %.3f ms", rcGetDeltaTimeUsec(startTime, endTime)/1000.0f); +} diff --git a/Recast/Source/RecastRegion.cpp b/Recast/Source/RecastRegion.cpp new file mode 100644 index 0000000..9197283 --- /dev/null +++ b/Recast/Source/RecastRegion.cpp @@ -0,0 +1,1037 @@ +// +// Copyright (c) 2009 Mikko Mononen memon@inside.org +// +// This software is provided 'as-is', without any express or implied +// warranty. In no event will the authors be held liable for any damages +// arising from the use of this software. +// Permission is granted to anyone to use this software for any purpose, +// including commercial applications, and to alter it and redistribute it +// freely, subject to the following restrictions: +// 1. The origin of this software must not be misrepresented; you must not +// claim that you wrote the original software. If you use this software +// in a product, an acknowledgment in the product documentation would be +// appreciated but is not required. +// 2. Altered source versions must be plainly marked as such, and must not be +// misrepresented as being the original software. +// 3. This notice may not be removed or altered from any source distribution. +// + +#include +#define _USE_MATH_DEFINES +#include +#include +#include +#include +#include "Recast.h" +#include "RecastLog.h" +#include "RecastTimer.h" + + +static unsigned short* calculateDistanceField(rcCompactHeightfield& chf, + unsigned short* src, unsigned short* dst, + unsigned short& maxDist) +{ + const int w = chf.width; + const int h = chf.height; + + // Init distance and points. + for (int i = 0; i < chf.spanCount; ++i) + src[i] = 0xffff; + + // Mark boundary cells. + for (int y = 0; y < h; ++y) + { + for (int x = 0; x < w; ++x) + { + const rcCompactCell& c = chf.cells[x+y*w]; + for (int i = (int)c.index, ni = (int)(c.index+c.count); i < ni; ++i) + { + const rcCompactSpan& s = chf.spans[i]; + int nc = 0; + for (int dir = 0; dir < 4; ++dir) + { + if (rcGetCon(s, dir) != 0xf) + nc++; + } + if (nc != 4) + src[i] = 0; + } + } + } + + // Pass 1 + for (int y = 0; y < h; ++y) + { + for (int x = 0; x < w; ++x) + { + const rcCompactCell& c = chf.cells[x+y*w]; + for (int i = (int)c.index, ni = (int)(c.index+c.count); i < ni; ++i) + { + const rcCompactSpan& s = chf.spans[i]; + + if (rcGetCon(s, 0) != 0xf) + { + // (-1,0) + const int ax = x + rcGetDirOffsetX(0); + const int ay = y + rcGetDirOffsetY(0); + const int ai = (int)chf.cells[ax+ay*w].index + rcGetCon(s, 0); + const rcCompactSpan& as = chf.spans[ai]; + if (src[ai]+2 < src[i]) + src[i] = src[ai]+2; + + // (-1,-1) + if (rcGetCon(as, 3) != 0xf) + { + const int aax = ax + rcGetDirOffsetX(3); + const int aay = ay + rcGetDirOffsetY(3); + const int aai = (int)chf.cells[aax+aay*w].index + rcGetCon(as, 3); + if (src[aai]+3 < src[i]) + src[i] = src[aai]+3; + } + } + if (rcGetCon(s, 3) != 0xf) + { + // (0,-1) + const int ax = x + rcGetDirOffsetX(3); + const int ay = y + rcGetDirOffsetY(3); + const int ai = (int)chf.cells[ax+ay*w].index + rcGetCon(s, 3); + const rcCompactSpan& as = chf.spans[ai]; + if (src[ai]+2 < src[i]) + src[i] = src[ai]+2; + + // (1,-1) + if (rcGetCon(as, 2) != 0xf) + { + const int aax = ax + rcGetDirOffsetX(2); + const int aay = ay + rcGetDirOffsetY(2); + const int aai = (int)chf.cells[aax+aay*w].index + rcGetCon(as, 2); + if (src[aai]+3 < src[i]) + src[i] = src[aai]+3; + } + } + } + } + } + + // Pass 2 + for (int y = h-1; y >= 0; --y) + { + for (int x = w-1; x >= 0; --x) + { + const rcCompactCell& c = chf.cells[x+y*w]; + for (int i = (int)c.index, ni = (int)(c.index+c.count); i < ni; ++i) + { + const rcCompactSpan& s = chf.spans[i]; + + if (rcGetCon(s, 2) != 0xf) + { + // (1,0) + const int ax = x + rcGetDirOffsetX(2); + const int ay = y + rcGetDirOffsetY(2); + const int ai = (int)chf.cells[ax+ay*w].index + rcGetCon(s, 2); + const rcCompactSpan& as = chf.spans[ai]; + if (src[ai]+2 < src[i]) + src[i] = src[ai]+2; + + // (1,1) + if (rcGetCon(as, 1) != 0xf) + { + const int aax = ax + rcGetDirOffsetX(1); + const int aay = ay + rcGetDirOffsetY(1); + const int aai = (int)chf.cells[aax+aay*w].index + rcGetCon(as, 1); + if (src[aai]+3 < src[i]) + src[i] = src[aai]+3; + } + } + if (rcGetCon(s, 1) != 0xf) + { + // (0,1) + const int ax = x + rcGetDirOffsetX(1); + const int ay = y + rcGetDirOffsetY(1); + const int ai = (int)chf.cells[ax+ay*w].index + rcGetCon(s, 1); + const rcCompactSpan& as = chf.spans[ai]; + if (src[ai]+2 < src[i]) + src[i] = src[ai]+2; + + // (-1,1) + if (rcGetCon(as, 0) != 0xf) + { + const int aax = ax + rcGetDirOffsetX(0); + const int aay = ay + rcGetDirOffsetY(0); + const int aai = (int)chf.cells[aax+aay*w].index + rcGetCon(as, 0); + if (src[aai]+3 < src[i]) + src[i] = src[aai]+3; + } + } + } + } + } + + maxDist = 0; + for (int i = 0; i < chf.spanCount; ++i) + maxDist = rcMax(src[i], maxDist); + + return src; + +} + +static unsigned short* boxBlur(rcCompactHeightfield& chf, int thr, + unsigned short* src, unsigned short* dst) +{ + const int w = chf.width; + const int h = chf.height; + + thr *= 2; + + for (int y = 0; y < h; ++y) + { + for (int x = 0; x < w; ++x) + { + const rcCompactCell& c = chf.cells[x+y*w]; + for (int i = (int)c.index, ni = (int)(c.index+c.count); i < ni; ++i) + { + const rcCompactSpan& s = chf.spans[i]; + int cd = (int)src[i]; + if (cd <= thr) + { + dst[i] = cd; + continue; + } + + int d = cd; + for (int dir = 0; dir < 4; ++dir) + { + if (rcGetCon(s, dir) != 0xf) + { + const int ax = x + rcGetDirOffsetX(dir); + const int ay = y + rcGetDirOffsetY(dir); + const int ai = (int)chf.cells[ax+ay*w].index + rcGetCon(s, dir); + d += (int)src[ai]; + + const rcCompactSpan& as = chf.spans[ai]; + const int dir2 = (dir+1) & 0x3; + if (rcGetCon(as, dir2) != 0xf) + { + const int ax2 = ax + rcGetDirOffsetX(dir2); + const int ay2 = ay + rcGetDirOffsetY(dir2); + const int ai2 = (int)chf.cells[ax2+ay2*w].index + rcGetCon(as, dir2); + d += (int)src[ai2]; + } + else + { + d += cd; + } + } + else + { + d += cd*2; + } + } + dst[i] = (unsigned short)((d+5)/9); + } + } + } + return dst; +} + + +static bool floodRegion(int x, int y, int i, + unsigned short level, unsigned short minLevel, unsigned short r, + rcCompactHeightfield& chf, + unsigned short* src, + rcIntArray& stack) +{ + const int w = chf.width; + + // Flood fill mark region. + stack.resize(0); + stack.push((int)x); + stack.push((int)y); + stack.push((int)i); + src[i*2] = r; + src[i*2+1] = 0; + + unsigned short lev = level >= minLevel+2 ? level-2 : minLevel; + int count = 0; + + while (stack.size() > 0) + { + int ci = stack.pop(); + int cy = stack.pop(); + int cx = stack.pop(); + + const rcCompactSpan& cs = chf.spans[ci]; + + // Check if any of the neighbours already have a valid region set. + unsigned short ar = 0; + for (int dir = 0; dir < 4; ++dir) + { + // 8 connected + if (rcGetCon(cs, dir) != 0xf) + { + const int ax = cx + rcGetDirOffsetX(dir); + const int ay = cy + rcGetDirOffsetY(dir); + const int ai = (int)chf.cells[ax+ay*w].index + rcGetCon(cs, dir); + unsigned short nr = src[ai*2]; + if (nr != 0 && nr != r) + ar = nr; + + const rcCompactSpan& as = chf.spans[ai]; + + const int dir2 = (dir+1) & 0x3; + if (rcGetCon(as, dir2) != 0xf) + { + const int ax2 = ax + rcGetDirOffsetX(dir2); + const int ay2 = ay + rcGetDirOffsetY(dir2); + const int ai2 = (int)chf.cells[ax2+ay2*w].index + rcGetCon(as, dir2); + + unsigned short nr = src[ai2*2]; + if (nr != 0 && nr != r) + ar = nr; + } + } + } + if (ar != 0) + { + src[ci*2] = 0; + continue; + } + count++; + + // Expand neighbours. + for (int dir = 0; dir < 4; ++dir) + { + if (rcGetCon(cs, dir) != 0xf) + { + const int ax = cx + rcGetDirOffsetX(dir); + const int ay = cy + rcGetDirOffsetY(dir); + const int ai = (int)chf.cells[ax+ay*w].index + rcGetCon(cs, dir); + if (chf.spans[ai].dist >= lev) + { + if (src[ai*2] == 0) + { + src[ai*2] = r; + src[ai*2+1] = 0; + stack.push(ax); + stack.push(ay); + stack.push(ai); + } + } + } + } + } + + return count > 0; +} + +static unsigned short* expandRegions(int maxIter, unsigned short level, + rcCompactHeightfield& chf, + unsigned short* src, + unsigned short* dst, + rcIntArray& stack) +{ + const int w = chf.width; + const int h = chf.height; + + // Find cells revealed by the raised level. + stack.resize(0); + for (int y = 0; y < h; ++y) + { + for (int x = 0; x < w; ++x) + { + const rcCompactCell& c = chf.cells[x+y*w]; + for (int i = (int)c.index, ni = (int)(c.index+c.count); i < ni; ++i) + { + if (chf.spans[i].dist >= level && src[i*2] == 0) + { + stack.push(x); + stack.push(y); + stack.push(i); + } + } + } + } + + int iter = 0; + while (stack.size() > 0) + { + int failed = 0; + + memcpy(dst, src, sizeof(unsigned short)*chf.spanCount*2); + + for (int j = 0; j < stack.size(); j += 3) + { + int x = stack[j+0]; + int y = stack[j+1]; + int i = stack[j+2]; + if (i < 0) + { + failed++; + continue; + } + + unsigned short r = src[i*2]; + unsigned short d2 = 0xffff; + const rcCompactSpan& s = chf.spans[i]; + for (int dir = 0; dir < 4; ++dir) + { + if (rcGetCon(s, dir) == 0xf) continue; + const int ax = x + rcGetDirOffsetX(dir); + const int ay = y + rcGetDirOffsetY(dir); + const int ai = (int)chf.cells[ax+ay*w].index + rcGetCon(s, dir); + if (src[ai*2]) + { + if ((int)src[ai*2+1]+2 < (int)d2) + { + r = src[ai*2]; + d2 = src[ai*2+1]+2; + } + } + } + if (r) + { + stack[j+2] = -1; // mark as used + dst[i*2] = r; + dst[i*2+1] = d2; + } + else + { + failed++; + } + } + + // rcSwap source and dest. + rcSwap(src, dst); + + if (failed*3 == stack.size()) + break; + + if (level > 0) + { + ++iter; + if (iter >= maxIter) + break; + } + } + + return src; +} + + +struct rcRegion +{ + inline rcRegion() : count(0), id(0) {} + + int count; + unsigned short id; + rcIntArray connections; + rcIntArray floors; +}; + +static void removeAdjacentNeighbours(rcRegion& reg) +{ + // Remove adjacent duplicates. + for (int i = 0; i < reg.connections.size() && reg.connections.size() > 1; ) + { + int ni = (i+1) % reg.connections.size(); + if (reg.connections[i] == reg.connections[ni]) + { + // Remove duplicate + for (int j = i; j < reg.connections.size()-1; ++j) + reg.connections[j] = reg.connections[j+1]; + reg.connections.pop(); + } + else + ++i; + } +} + +void replaceNeighbour(rcRegion& reg, unsigned short oldId, unsigned short newId) +{ + bool neiChanged = false; + for (int i = 0; i < reg.connections.size(); ++i) + { + if (reg.connections[i] == oldId) + { + reg.connections[i] = newId; + neiChanged = true; + } + } + for (int i = 0; i < reg.floors.size(); ++i) + { + if (reg.floors[i] == oldId) + reg.floors[i] = newId; + } + if (neiChanged) + removeAdjacentNeighbours(reg); +} + +bool canMergeWithRegion(rcRegion& reg, unsigned short id) +{ + int n = 0; + for (int i = 0; i < reg.connections.size(); ++i) + { + if (reg.connections[i] == id) + n++; + } + if (n > 1) + return false; + for (int i = 0; i < reg.floors.size(); ++i) + { + if (reg.floors[i] == id) + return false; + } + return true; +} + +static void addUniqueFloorRegion(rcRegion& reg, unsigned short n) +{ + for (int i = 0; i < reg.floors.size(); ++i) + if (reg.floors[i] == n) + return; + reg.floors.push(n); +} + +static bool mergeRegions(rcRegion& rega, rcRegion& regb) +{ + unsigned short aid = rega.id; + unsigned short bid = regb.id; + + // Duplicate current neighbourhood. + rcIntArray acon; + acon.resize(rega.connections.size()); + for (int i = 0; i < rega.connections.size(); ++i) + acon[i] = rega.connections[i]; + rcIntArray& bcon = regb.connections; + + // Find insertion point on A. + int insa = -1; + for (int i = 0; i < acon.size(); ++i) + { + if (acon[i] == bid) + { + insa = i; + break; + } + } + if (insa == -1) + return false; + + // Find insertion point on B. + int insb = -1; + for (int i = 0; i < bcon.size(); ++i) + { + if (bcon[i] == aid) + { + insb = i; + break; + } + } + if (insb == -1) + return false; + + // Merge neighbours. + rega.connections.resize(0); + for (int i = 0, ni = acon.size(); i < ni-1; ++i) + rega.connections.push(acon[(insa+1+i) % ni]); + + for (int i = 0, ni = bcon.size(); i < ni-1; ++i) + rega.connections.push(bcon[(insb+1+i) % ni]); + + removeAdjacentNeighbours(rega); + + for (int j = 0; j < regb.floors.size(); ++j) + addUniqueFloorRegion(rega, regb.floors[j]); + rega.count += regb.count; + regb.count = 0; + regb.connections.resize(0); + + return true; +} + +static bool isRegionConnectedToBorder(const rcRegion& reg) +{ + // Region is connected to border if + // one of the neighbours is null id. + for (int i = 0; i < reg.connections.size(); ++i) + { + if (reg.connections[i] == 0) + return true; + } + return false; +} + +static bool isSolidEdge(rcCompactHeightfield& chf, unsigned short* src, + int x, int y, int i, int dir) +{ + const rcCompactSpan& s = chf.spans[i]; + unsigned short r = 0; + if (rcGetCon(s, dir) != 0xf) + { + const int ax = x + rcGetDirOffsetX(dir); + const int ay = y + rcGetDirOffsetY(dir); + const int ai = (int)chf.cells[ax+ay*chf.width].index + rcGetCon(s, dir); + r = src[ai*2]; + } + if (r == src[i*2]) + return false; + return true; +} + +static void walkContour(int x, int y, int i, int dir, + rcCompactHeightfield& chf, + unsigned short* src, + rcIntArray& cont) +{ + int startDir = dir; + int starti = i; + + const rcCompactSpan& ss = chf.spans[i]; + unsigned short curReg = 0; + if (rcGetCon(ss, dir) != 0xf) + { + const int ax = x + rcGetDirOffsetX(dir); + const int ay = y + rcGetDirOffsetY(dir); + const int ai = (int)chf.cells[ax+ay*chf.width].index + rcGetCon(ss, dir); + curReg = src[ai*2]; + } + cont.push(curReg); + + int iter = 0; + while (++iter < 40000) + { + const rcCompactSpan& s = chf.spans[i]; + + if (isSolidEdge(chf, src, x, y, i, dir)) + { + // Choose the edge corner + unsigned short r = 0; + if (rcGetCon(s, dir) != 0xf) + { + const int ax = x + rcGetDirOffsetX(dir); + const int ay = y + rcGetDirOffsetY(dir); + const int ai = (int)chf.cells[ax+ay*chf.width].index + rcGetCon(s, dir); + r = src[ai*2]; + } + if (r != curReg) + { + curReg = r; + cont.push(curReg); + } + + dir = (dir+1) & 0x3; // Rotate CW + } + else + { + int ni = -1; + const int nx = x + rcGetDirOffsetX(dir); + const int ny = y + rcGetDirOffsetY(dir); + if (rcGetCon(s, dir) != 0xf) + { + const rcCompactCell& nc = chf.cells[nx+ny*chf.width]; + ni = (int)nc.index + rcGetCon(s, dir); + } + if (ni == -1) + { + // Should not happen. + return; + } + x = nx; + y = ny; + i = ni; + dir = (dir+3) & 0x3; // Rotate CCW + } + + if (starti == i && startDir == dir) + { + break; + } + } + + // Remove adjacent duplicates. + if (cont.size() > 1) + { + for (int i = 0; i < cont.size(); ) + { + int ni = (i+1) % cont.size(); + if (cont[i] == cont[ni]) + { + for (int j = i; j < cont.size()-1; ++j) + cont[j] = cont[j+1]; + cont.pop(); + } + else + ++i; + } + } +} + +static bool filterSmallRegions(int minRegionSize, int mergeRegionSize, + unsigned short& maxRegionId, + rcCompactHeightfield& chf, + unsigned short* src) +{ + const int w = chf.width; + const int h = chf.height; + + int nreg = maxRegionId+1; + rcRegion* regions = new rcRegion[nreg]; + if (!regions) + { + if (rcGetLog()) + rcGetLog()->log(RC_LOG_ERROR, "filterSmallRegions: Out of memory 'regions' (%d).", nreg); + return false; + } + + for (int i = 0; i < nreg; ++i) + regions[i].id = (unsigned short)i; + + // Find edge of a region and find connections around the contour. + for (int y = 0; y < h; ++y) + { + for (int x = 0; x < w; ++x) + { + const rcCompactCell& c = chf.cells[x+y*w]; + for (int i = (int)c.index, ni = (int)(c.index+c.count); i < ni; ++i) + { + unsigned short r = src[i*2]; + if (r == 0 || r >= nreg) + continue; + + rcRegion& reg = regions[r]; + reg.count++; + + + // Update floors. + for (int j = (int)c.index; j < ni; ++j) + { + if (i == j) continue; + unsigned short floorId = src[j*2]; + if (floorId == 0 || floorId >= nreg) + continue; + addUniqueFloorRegion(reg, floorId); + } + + // Have found contour + if (reg.connections.size() > 0) + continue; + + // Check if this cell is next to a border. + int ndir = -1; + for (int dir = 0; dir < 4; ++dir) + { + if (isSolidEdge(chf, src, x, y, i, dir)) + { + ndir = dir; + break; + } + } + + if (ndir != -1) + { + // The cell is at border. + // Walk around the contour to find all the neighbours. + walkContour(x, y, i, ndir, chf, src, reg.connections); + } + } + } + } + + // Remove too small unconnected regions. + for (int i = 0; i < nreg; ++i) + { + rcRegion& reg = regions[i]; + if (reg.id == 0) + continue; + if (reg.count == 0) + continue; + + if (reg.connections.size() == 1 && reg.connections[0] == 0) + { + if (reg.count < minRegionSize) + { + // Non-connected small region, remove. + reg.count = 0; + reg.id = 0; + } + } + } + + + // Merge too small regions to neighbour regions. + int mergeCount = 0 ; + do + { + mergeCount = 0; + for (int i = 0; i < nreg; ++i) + { + rcRegion& reg = regions[i]; + if (reg.id == 0) + continue; + if (reg.count == 0) + continue; + + // Check to see if the region should be merged. + if (reg.count > mergeRegionSize && isRegionConnectedToBorder(reg)) + continue; + + // Small region with more than 1 connection. + // Or region which is not connected to a border at all. + // Find smallest neighbour region that connects to this one. + int smallest = 0xfffffff; + unsigned short mergeId = reg.id; + for (int j = 0; j < reg.connections.size(); ++j) + { + rcRegion& mreg = regions[reg.connections[j]]; + if (mreg.id == 0) continue; + if (mreg.count < smallest && + canMergeWithRegion(reg, mreg.id) && + canMergeWithRegion(mreg, reg.id)) + { + smallest = mreg.count; + mergeId = mreg.id; + } + } + // Found new id. + if (mergeId != reg.id) + { + unsigned short oldId = reg.id; + rcRegion& target = regions[mergeId]; + + // Merge neighbours. + if (mergeRegions(target, reg)) + { + // Fixup regions pointing to current region. + for (int j = 0; j < nreg; ++j) + { + if (regions[j].id == 0) continue; + // If another region was already merged into current region + // change the nid of the previous region too. + if (regions[j].id == oldId) + regions[j].id = mergeId; + // Replace the current region with the new one if the + // current regions is neighbour. + replaceNeighbour(regions[j], oldId, mergeId); + } + mergeCount++; + } + } + } + } + while (mergeCount > 0); + + // Compress region Ids. + for (int i = 0; i < nreg; ++i) + { + if (regions[i].id == 0) continue; + regions[i].id |= 0x8000; + } + + unsigned short regIdGen = 0; + for (int i = 0; i < nreg; ++i) + { + if ((regions[i].id & 0x8000) == 0) + continue; + unsigned short oldId = regions[i].id; + unsigned short newId = ++regIdGen; + for (int j = i; j < nreg; ++j) + { + if (regions[j].id == oldId) + regions[j].id = newId; + } + } + maxRegionId = regIdGen; + + // Remap regions. + for (int i = 0; i < chf.spanCount; ++i) + src[i*2] = regions[src[i*2]].id; + + delete [] regions; + + return true; +} + +bool rcBuildDistanceField(rcCompactHeightfield& chf) +{ + rcTimeVal startTime = rcGetPerformanceTimer(); + + unsigned short* dist0 = new unsigned short[chf.spanCount]; + if (!dist0) + { + if (rcGetLog()) + rcGetLog()->log(RC_LOG_ERROR, "rcBuildDistanceField: Out of memory 'dist0' (%d).", chf.spanCount); + return false; + } + unsigned short* dist1 = new unsigned short[chf.spanCount]; + if (!dist1) + { + if (rcGetLog()) + rcGetLog()->log(RC_LOG_ERROR, "rcBuildDistanceField: Out of memory 'dist1' (%d).", chf.spanCount); + delete [] dist0; + return false; + } + + unsigned short* src = dist0; + unsigned short* dst = dist1; + + unsigned short maxDist = 0; + + rcTimeVal distStartTime = rcGetPerformanceTimer(); + + if (calculateDistanceField(chf, src, dst, maxDist) != src) + rcSwap(src, dst); + + chf.maxDistance = maxDist; + + rcTimeVal distEndTime = rcGetPerformanceTimer(); + + rcTimeVal blurStartTime = rcGetPerformanceTimer(); + + // Blur + int blurThr[4] = { 2, 4, 8, 16 }; + for (int i = 0; i < 4; ++i) + { + if (boxBlur(chf, blurThr[i], src, dst) != src) + rcSwap(src, dst); + } + + // Store distance. + for (int i = 0; i < chf.spanCount; ++i) + chf.spans[i].dist = src[i]; + + rcTimeVal blurEndTime = rcGetPerformanceTimer(); + + delete [] dist0; + delete [] dist1; + + rcTimeVal endTime = rcGetPerformanceTimer(); + + if (rcGetLog()) + { + rcGetLog()->log(RC_LOG_PROGRESS, "Build distance field: %.3f ms", rcGetDeltaTimeUsec(startTime, endTime)/1000.0f); + rcGetLog()->log(RC_LOG_PROGRESS, " - dist: %.3f ms", rcGetDeltaTimeUsec(distStartTime, distEndTime)/1000.0f); + rcGetLog()->log(RC_LOG_PROGRESS, " - blur: %.3f ms", rcGetDeltaTimeUsec(blurStartTime, blurEndTime)/1000.0f); + } + + return true; +} + +bool rcBuildRegions(rcCompactHeightfield& chf, + int walkableRadius, int minRegionSize, int mergeRegionSize) +{ + rcTimeVal startTime = rcGetPerformanceTimer(); + + const int w = chf.width; + const int h = chf.height; + + unsigned short* tmp1 = new unsigned short[chf.spanCount*2]; + if (!tmp1) + { + if (rcGetLog()) + rcGetLog()->log(RC_LOG_ERROR, "rcBuildDistanceField: Out of memory 'tmp1' (%d).", chf.spanCount*2); + return false; + } + unsigned short* tmp2 = new unsigned short[chf.spanCount*2]; + if (!tmp2) + { + if (rcGetLog()) + rcGetLog()->log(RC_LOG_ERROR, "rcBuildDistanceField: Out of memory 'tmp2' (%d).", chf.spanCount*2); + delete [] tmp1; + return false; + } + + rcTimeVal regStartTime = rcGetPerformanceTimer(); + + rcIntArray stack(1024); + rcIntArray visited(1024); + + unsigned short* src = tmp1; + unsigned short* dst = tmp2; + + memset(src, 0, sizeof(unsigned short) * chf.spanCount*2); + + unsigned short regionId = 1; + unsigned short level = (chf.maxDistance+1) & ~1; + + unsigned short minLevel = (unsigned short)walkableRadius * 2; + + const int expandIters = 4 + walkableRadius * 2; + + rcTimeVal expTime = 0; + rcTimeVal marknewTime = 0; + rcTimeVal floodTime = 0; + + while (level > minLevel) + { + level = level >= 2 ? level-2 : 0; + + rcTimeVal expStartTime = rcGetPerformanceTimer(); + + // Expand current regions until no empty connected cells found. + if (expandRegions(expandIters, level, chf, src, dst, stack) != src) + rcSwap(src, dst); + + expTime += rcGetPerformanceTimer() - expStartTime; + + rcTimeVal floodStartTime = rcGetPerformanceTimer(); + + // Mark new regions with IDs. + for (int y = 0; y < h; ++y) + { + for (int x = 0; x < w; ++x) + { + const rcCompactCell& c = chf.cells[x+y*w]; + for (int i = (int)c.index, ni = (int)(c.index+c.count); i < ni; ++i) + { + if (chf.spans[i].dist < level || src[i*2] != 0) + continue; + + if (floodRegion(x, y, i, minLevel, level, regionId, chf, src, stack)) + regionId++; + } + } + } + + floodTime += rcGetPerformanceTimer() - floodStartTime; + + } + + // Expand current regions until no empty connected cells found. + if (expandRegions(expandIters, minLevel, chf, src, dst, stack) != src) + rcSwap(src, dst); + + + rcTimeVal regEndTime = rcGetPerformanceTimer(); + + rcTimeVal filterStartTime = rcGetPerformanceTimer(); + + // Filter out small regions. + chf.maxRegions = regionId; + if (!filterSmallRegions(minRegionSize, mergeRegionSize, chf.maxRegions, chf, src)) + return false; + + rcTimeVal filterEndTime = rcGetPerformanceTimer(); + + // Write the result out. + for (int i = 0; i < chf.spanCount; ++i) + chf.spans[i].reg = src[i*2]; + + delete [] tmp1; + delete [] tmp2; + + rcTimeVal endTime = rcGetPerformanceTimer(); + + if (rcGetLog()) + { + rcGetLog()->log(RC_LOG_PROGRESS, "Build regions: %.3f ms", rcGetDeltaTimeUsec(startTime, endTime)/1000.0f); + rcGetLog()->log(RC_LOG_PROGRESS, " - reg: %.3f ms", rcGetDeltaTimeUsec(regStartTime, regEndTime)/1000.0f); + rcGetLog()->log(RC_LOG_PROGRESS, " - exp: %.3f ms", rcGetDeltaTimeUsec(0, expTime)/1000.0f); + rcGetLog()->log(RC_LOG_PROGRESS, " - new: %.3f ms", rcGetDeltaTimeUsec(0, marknewTime)/1000.0f); + rcGetLog()->log(RC_LOG_PROGRESS, " - flood: %.3f ms", rcGetDeltaTimeUsec(0, floodTime)/1000.0f); + rcGetLog()->log(RC_LOG_PROGRESS, " - filter: %.3f ms", rcGetDeltaTimeUsec(filterStartTime, filterEndTime)/1000.0f); + } + + return true; +} + + diff --git a/Recast/Source/RecastTimer.cpp b/Recast/Source/RecastTimer.cpp new file mode 100644 index 0000000..e58df1b --- /dev/null +++ b/Recast/Source/RecastTimer.cpp @@ -0,0 +1,43 @@ +#include "RecastTimer.h" + +#ifdef WIN32 + +#include + +rcTimeVal rcGetPerformanceTimer() +{ + __int64 count; + QueryPerformanceCounter((LARGE_INTEGER*)&count); + return count; +} + +int rcGetDeltaTimeUsec(rcTimeVal start, rcTimeVal end) +{ + static __int64 freq = 0; + if (freq == 0) + QueryPerformanceFrequency((LARGE_INTEGER*)&freq); + __int64 elapsed = end - start; + return (int)(elapsed*1000000 / freq); +} + +#else + +#include + + +rcTimeVal rcGetPerformanceTimer() +{ + return mach_absolute_time(); +} + +int rcGetDeltaTimeUsec(rcTimeVal start, rcTimeVal end) +{ + static mach_timebase_info_data_t timebaseInfo; + if (timebaseInfo.denom == 0) + mach_timebase_info(&timebaseInfo); + uint64_t elapsed = end - start; + uint64_t nanosec = elapsed * timebaseInfo.numer / timebaseInfo.denom; + return (int)(nanosec / 1000); +} + +#endif \ No newline at end of file