From 8991a24204a303559e775d657cd710827d2a3537 Mon Sep 17 00:00:00 2001 From: Deniz <160037328+deniz6221@users.noreply.github.com> Date: Tue, 19 Nov 2024 21:50:09 +0300 Subject: [PATCH 01/28] Post Creation component connected to backend. --- .../src/main/resources/application.properties | 2 +- .../src/components/CreatePost/CreatePost.tsx | 73 ++++++++++++++----- .../components/RegisterPage/RegisterPage.tsx | 2 +- .../src/resources/json-files/Categories.json | 4 +- 4 files changed, 60 insertions(+), 21 deletions(-) diff --git a/3Design/backend/threedesign/src/main/resources/application.properties b/3Design/backend/threedesign/src/main/resources/application.properties index 63e6e4ba..2011cf49 100644 --- a/3Design/backend/threedesign/src/main/resources/application.properties +++ b/3Design/backend/threedesign/src/main/resources/application.properties @@ -3,7 +3,7 @@ spring.sql.init.platform=postgres #spring.datasource.url= spring.datasource.url=jdbc:postgresql://localhost:5432/threedesign spring.datasource.username=postgres -spring.datasource.password=psqldev2024 +spring.datasource.password=postgres spring.datasource.driver-class-name=org.postgresql.Driver # Hibernate Configuration diff --git a/3Design/frontend/src/components/CreatePost/CreatePost.tsx b/3Design/frontend/src/components/CreatePost/CreatePost.tsx index af5a1c5b..09ed7898 100644 --- a/3Design/frontend/src/components/CreatePost/CreatePost.tsx +++ b/3Design/frontend/src/components/CreatePost/CreatePost.tsx @@ -1,27 +1,35 @@ import { UploadOutlined,AddCircleOutline,Clear } from '@mui/icons-material' -import { FormControl, IconButton, InputLabel, MenuItem, Select, TextField } from '@mui/material' -import { Button, message, Upload, UploadFile } from 'antd' +import { CircularProgress, FormControl, IconButton, InputLabel, MenuItem, Select, TextField } from '@mui/material' +import { Button, GetProp, message, Upload, UploadFile, UploadProps } from 'antd' import React, { SetStateAction, useEffect, useState } from 'react' import { Category } from '../interfaces' +import axios, { AxiosError } from 'axios' const categories:Category[] = require('../../resources/json-files/Categories.json'); interface Props{ dialogFunction: React.Dispatch> } +type FileType = Parameters>[0]; + const CreatePost = ({dialogFunction} : Props) => { const [title, setTitle] = useState(""); const [titleError, setTitleError] = useState(""); + const [category, setCategory] = useState(categories[0].id); + const [tags, setTags] = useState([]); const [currentTag, setCurrentTag] = useState(""); const [content, setContent] = useState(""); const [contentError, setContentError] = useState(""); - const [fileList, setFileList] = useState([]); + const [joinToTournament, setTournament] = useState(false); + + const [creatingPost, setCreating] = useState(false); + const validateTitle = () => { if (title.length < 5){ return "Your title must be at least 5 characters."; @@ -45,13 +53,36 @@ const CreatePost = ({dialogFunction} : Props) => { setTitleError(titleCheck); return; } + setCreating(true); try{ - //AJAX Request - message.success("Your post is successfully sent."); - dialogFunction(false); + + const fd = new FormData(); + const isVisual = fileList.length == 1; + const tagString = tags.join(", "); + const fixedCategory = category; + fd.append("title", title); + fd.append("text", content); + fd.append("categoryId", fixedCategory); + fd.append("isVisualPost", isVisual ? "true" : "false"); + fd.append("tags", tagString); + isVisual && fd.append("file", fileList[0] as FileType); + fd.append("joinToTournament", joinToTournament ? "true": "false"); + await axios.post(`${process.env.REACT_APP_API_URL}/api/v1/posts`, fd, { + headers: {Authorization: `Bearer ${localStorage.getItem("jwt_token")}`,} + }) + message.success("Your post is successfully created."); + setTimeout(() => { + window.location.href = `/home/${fixedCategory}`; + }, 500); } catch(e){ - message.error("Something went wrong"); + if (e instanceof AxiosError && e.response && e.response.data && e.response.data.message && e.response.status != 500){ + message.error(e.response.data.message); + } + else{ + message.error("Something went wrong"); + } + setCreating(false); } } @@ -66,12 +97,19 @@ const CreatePost = ({dialogFunction} : Props) => { setTitleError(""); setTitle(e.target.value); }}/> - - Category - - +
+ + Category + + +
+

Join To Tournament

+ setTournament(e.target.checked)} type='checkbox' checked={joinToTournament} className='checkbox'/> +
+
+ { if (e.target.value.length > 512){ return; @@ -81,7 +119,7 @@ const CreatePost = ({dialogFunction} : Props) => { }}/>
- + { if (e.key === "Enter"){ if (currentTag.length > 0){ @@ -95,7 +133,7 @@ const CreatePost = ({dialogFunction} : Props) => { } setCurrentTag(e.target.value); }}/> -
+
{tags.map((tag,index) =>

{tag}

setTags(prev=>{ @@ -105,6 +143,7 @@ const CreatePost = ({dialogFunction} : Props) => { })} className='btn btn-outline'>
)}
+
{ @@ -136,8 +175,8 @@ const CreatePost = ({dialogFunction} : Props) => {
- - + + {creatingPost && }
diff --git a/3Design/frontend/src/components/RegisterPage/RegisterPage.tsx b/3Design/frontend/src/components/RegisterPage/RegisterPage.tsx index 91d28e4b..32da1bf4 100644 --- a/3Design/frontend/src/components/RegisterPage/RegisterPage.tsx +++ b/3Design/frontend/src/components/RegisterPage/RegisterPage.tsx @@ -63,7 +63,7 @@ const RegisterPage = () => { setRegisterLoading(true); try{ //AJAX POST Request - const response = await axios.post(`${process.env.REACT_APP_API_URL}/api/v1/auth/register`,{email:email,password:password,firstName:username,lastName:""}); + const response = await axios.post(`${process.env.REACT_APP_API_URL}/api/v1/auth/register`,{email:email,password:password,userName:username}); window.location.href = "/login"; } catch(e){ diff --git a/3Design/frontend/src/resources/json-files/Categories.json b/3Design/frontend/src/resources/json-files/Categories.json index a9e0776e..86da21ea 100644 --- a/3Design/frontend/src/resources/json-files/Categories.json +++ b/3Design/frontend/src/resources/json-files/Categories.json @@ -1,6 +1,6 @@ [ - {"text": "Characters", "id": "characters"}, - {"text": "Enviroments", "id": "enviroments"}, + {"text": "Characters", "id": "1"}, + {"text": "Enviroments", "id": "4"}, {"text": "Props", "id": "props"}, {"text": "Vehicles", "id": "vehicles"}, {"text": "Animations", "id": "animations"} From 4ef38e55834e12a9414dfcc592c9b3e3e0db223d Mon Sep 17 00:00:00 2001 From: Deniz <160037328+deniz6221@users.noreply.github.com> Date: Tue, 19 Nov 2024 21:56:16 +0300 Subject: [PATCH 02/28] Revert Backend password to avoid conflicts. --- .../threedesign/src/main/resources/application.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/3Design/backend/threedesign/src/main/resources/application.properties b/3Design/backend/threedesign/src/main/resources/application.properties index 2011cf49..63e6e4ba 100644 --- a/3Design/backend/threedesign/src/main/resources/application.properties +++ b/3Design/backend/threedesign/src/main/resources/application.properties @@ -3,7 +3,7 @@ spring.sql.init.platform=postgres #spring.datasource.url= spring.datasource.url=jdbc:postgresql://localhost:5432/threedesign spring.datasource.username=postgres -spring.datasource.password=postgres +spring.datasource.password=psqldev2024 spring.datasource.driver-class-name=org.postgresql.Driver # Hibernate Configuration From 0bf4d97879cfb756d00bb28610de47ff88c0cc08 Mon Sep 17 00:00:00 2001 From: Deniz <160037328+deniz6221@users.noreply.github.com> Date: Thu, 21 Nov 2024 20:13:11 +0300 Subject: [PATCH 03/28] Search results page added, interfaces reshaped. --- 3Design/frontend/src/App.tsx | 13 ++++ .../src/components/Comment/Comment.tsx | 18 ++--- .../Clickable/DiscussionPost.tsx | 26 +++---- .../DiscussionPost/Page/DiscussionPost.tsx | 24 +++---- 3Design/frontend/src/components/Feed/Feed.tsx | 22 +++++- .../GalleryPost/Clickable/GalleryPost.tsx | 28 ++++---- .../GalleryPost/Page/GalleryPost.tsx | 48 ++++++------- .../components/GenericFeed/GenericFeed.tsx | 16 +++-- .../src/components/PageHeader/PageHeader.tsx | 8 ++- .../src/components/PostPage/PostPage.tsx | 19 +++--- .../SearchResults/SearchResults.module.css | 10 +++ .../SearchResults/SearchResults.tsx | 67 +++++++++++++++++++ 3Design/frontend/src/components/interfaces.ts | 33 +++++---- .../frontend/src/components/tsfunctions.ts | 9 ++- .../src/resources/json-files/Categories.json | 6 +- .../src/resources/json-files/Comments.json | 30 ++++----- .../resources/json-files/MockDiscussions.json | 42 +++++++----- .../json-files/MockGenericPosts.json | 60 +++++++++-------- .../src/resources/json-files/MockPosts.json | 28 ++++---- 19 files changed, 323 insertions(+), 184 deletions(-) create mode 100644 3Design/frontend/src/components/SearchResults/SearchResults.module.css create mode 100644 3Design/frontend/src/components/SearchResults/SearchResults.tsx diff --git a/3Design/frontend/src/App.tsx b/3Design/frontend/src/App.tsx index 51796017..b26d3156 100644 --- a/3Design/frontend/src/App.tsx +++ b/3Design/frontend/src/App.tsx @@ -6,6 +6,7 @@ import LoginPage from './components/Login/LoginPage'; import HomePage from './components/HomePage/HomePage'; import RegisterPage from './components/RegisterPage/RegisterPage'; import PostPage from './components/PostPage/PostPage'; +import SearchResults from './components/SearchResults/SearchResults'; function App() { return ( @@ -42,6 +43,18 @@ function App() { } /> + + } + /> + + } + /> ); diff --git a/3Design/frontend/src/components/Comment/Comment.tsx b/3Design/frontend/src/components/Comment/Comment.tsx index bf645749..4b22c416 100644 --- a/3Design/frontend/src/components/Comment/Comment.tsx +++ b/3Design/frontend/src/components/Comment/Comment.tsx @@ -12,27 +12,27 @@ const Comment = ({commentData} : Props) => { const likeClicked = async (event:any) =>{ event.stopPropagation(); if (data.disliked){ - setData((prev) => ({...prev, disliked: false, liked: true, likeCount: prev.likeCount + 1, dislikeCount: prev.dislikeCount - 1})); + setData((prev) => ({...prev, disliked: false, liked: true, likeCount: prev.likes + 1, dislikes: prev.dislikes - 1})); return; } if (data.liked){ - setData((prev) => ({...prev, liked: false, likeCount: prev.likeCount - 1})); + setData((prev) => ({...prev, liked: false, likes: prev.likes - 1})); return; } - setData((prev) => ({...prev, disliked: false, liked: true, likeCount: prev.likeCount + 1})); + setData((prev) => ({...prev, disliked: false, liked: true, likes: prev.likes + 1})); } const dislikeClicked = async (event:any) =>{ event.stopPropagation(); if (data.liked){ - setData((prev) => ({...prev, liked: false, disliked: true, dislikeCount: prev.dislikeCount + 1, likeCount: prev.likeCount - 1})); + setData((prev) => ({...prev, liked: false, disliked: true, dislikeCount: prev.dislikes + 1, likes: prev.likes - 1})); return; } if (data.disliked){ - setData((prev) => ({...prev, disliked: false, dislikeCount: prev.dislikeCount - 1})); + setData((prev) => ({...prev, disliked: false, dislikes: prev.dislikes - 1})); return; } - setData((prev) => ({...prev, liked: false, disliked: true, dislikeCount: prev.dislikeCount + 1})); + setData((prev) => ({...prev, liked: false, disliked: true, dislikes: prev.dislikes + 1})); } return ( @@ -41,7 +41,7 @@ const Comment = ({commentData} : Props) => {

{data.user.username}

-

{data.body}

+

{data.text}

-

{formatInteractions(data.likeCount)}

+

{formatInteractions(data.likes)}

-

{formatInteractions(data.dislikeCount)}

+

{formatInteractions(data.dislikes)}

diff --git a/3Design/frontend/src/components/DiscussionPost/Clickable/DiscussionPost.tsx b/3Design/frontend/src/components/DiscussionPost/Clickable/DiscussionPost.tsx index 2b208f5f..e3b77480 100644 --- a/3Design/frontend/src/components/DiscussionPost/Clickable/DiscussionPost.tsx +++ b/3Design/frontend/src/components/DiscussionPost/Clickable/DiscussionPost.tsx @@ -13,7 +13,7 @@ const DiscussionPost = ({postData} : Props) => { const [data, setData] = useState(postData); const bodyRef = useRef(null); const [annotationData, setAnnotationData] = useState( - {body: "", target:{selector: {end: null, start: null}, source: postData.id}} + {body: "", target:{selector: {end: null, start: null}, source: postData.postId}} ); @@ -21,27 +21,27 @@ const DiscussionPost = ({postData} : Props) => { const likeClicked = async (event:any) =>{ event.stopPropagation(); if (data.disliked){ - setData((prev) => ({...prev, disliked: false, liked: true, likeCount: prev.likeCount + 1, dislikeCount: prev.dislikeCount - 1})); + setData((prev) => ({...prev, disliked: false, liked: true, likeCount: prev.likes + 1, dislikes: prev.dislikes - 1})); return; } if (data.liked){ - setData((prev) => ({...prev, liked: false, likeCount: prev.likeCount - 1})); + setData((prev) => ({...prev, liked: false, likes: prev.likes - 1})); return; } - setData((prev) => ({...prev, disliked: false, liked: true, likeCount: prev.likeCount + 1})); + setData((prev) => ({...prev, disliked: false, liked: true, likes: prev.likes + 1})); } const dislikeClicked = async (event:any) =>{ event.stopPropagation(); if (data.liked){ - setData((prev) => ({...prev, liked: false, disliked: true, dislikeCount: prev.dislikeCount + 1, likeCount: prev.likeCount - 1})); + setData((prev) => ({...prev, liked: false, disliked: true, dislikes: prev.dislikes + 1, likes: prev.likes - 1})); return; } if (data.disliked){ - setData((prev) => ({...prev, disliked: false, dislikeCount: prev.dislikeCount - 1})); + setData((prev) => ({...prev, disliked: false, dislikes: prev.dislikes - 1})); return; } - setData((prev) => ({...prev, liked: false, disliked: true, dislikeCount: prev.dislikeCount + 1})); + setData((prev) => ({...prev, liked: false, disliked: true, dislikes: prev.dislikes + 1})); } const setAnnotation = () =>{ @@ -54,9 +54,9 @@ const DiscussionPost = ({postData} : Props) => { if (selectedText && selection.anchorNode && bodyRef.current!.contains(selection.anchorNode)) { const startI = selection.anchorOffset; const endI = selection.focusOffset; - setAnnotationData(prev => ({...prev, target:{selector: {end: startI, start: endI}, source: postData.id}}) ); + setAnnotationData(prev => ({...prev, target:{selector: {end: startI, start: endI}, source: postData.postId}}) ); } else { - setAnnotationData(prev => ({...prev, target:{selector: {end: null, start: null}, source: postData.id}}) ); + setAnnotationData(prev => ({...prev, target:{selector: {end: null, start: null}, source: postData.postId}}) ); } } @@ -65,7 +65,7 @@ const DiscussionPost = ({postData} : Props) => { },[annotationData]) return ( -
{window.location.href = `/post/${postData.id}`}} > +
{window.location.href = `/post/${postData.postId}`}} >
{/* Profile picture and username div here */} @@ -73,7 +73,7 @@ const DiscussionPost = ({postData} : Props) => {

{data.title}

-

{data.body}

+

{data.text}

@@ -84,7 +84,7 @@ const DiscussionPost = ({postData} : Props) => { } -

{formatInteractions(data.likeCount)}

+

{formatInteractions(data.likes)}

-

{formatInteractions(data.dislikeCount)}

+

{formatInteractions(data.dislikes)}

{data.title}

-

{data.body}

+

{data.text}

@@ -105,7 +105,7 @@ const DiscussionPost = ({postData} : Props) => { } -

{formatInteractions(data.likeCount)}

+

{formatInteractions(data.likes)}

-

{formatInteractions(data.dislikeCount)}

+

{formatInteractions(data.dislikes)}

) : - feedType ? + postData.length == 0 ? +

There are currently no posts here.

+ : + (feedType ? postData.map((item, index) => ( - + )) : postData.map((item, index) => ( - + )) + ) }
diff --git a/3Design/frontend/src/components/GalleryPost/Clickable/GalleryPost.tsx b/3Design/frontend/src/components/GalleryPost/Clickable/GalleryPost.tsx index 807ba377..2d7c7334 100644 --- a/3Design/frontend/src/components/GalleryPost/Clickable/GalleryPost.tsx +++ b/3Design/frontend/src/components/GalleryPost/Clickable/GalleryPost.tsx @@ -15,7 +15,7 @@ const GalleryPost = ({postData} : Props) => { const [modelAppearence, setModelAppearence] = useState(false); const bodyRef = useRef(null); const [annotationData, setAnnotationData] = useState( - {body: "", target:{selector: {end: null, start: null}, source: postData.id}} + {body: "", target:{selector: {end: null, start: null}, source: postData.postId}} ); const [anchorEl, setAnchorEl] = React.useState(null); @@ -24,27 +24,27 @@ const GalleryPost = ({postData} : Props) => { const likeClicked = async (event:any) =>{ event.stopPropagation(); if (data.disliked){ - setData((prev) => ({...prev, disliked: false, liked: true, likeCount: prev.likeCount + 1, dislikeCount: prev.dislikeCount - 1})); + setData((prev) => ({...prev, disliked: false, liked: true, likeCount: prev.likes + 1, dislikes: prev.dislikes - 1})); return; } if (data.liked){ - setData((prev) => ({...prev, liked: false, likeCount: prev.likeCount - 1})); + setData((prev) => ({...prev, liked: false, likes: prev.likes - 1})); return; } - setData((prev) => ({...prev, disliked: false, liked: true, likeCount: prev.likeCount + 1})); + setData((prev) => ({...prev, disliked: false, liked: true, likes: prev.likes + 1})); } const dislikeClicked = async (event:any) =>{ event.stopPropagation(); if (data.liked){ - setData((prev) => ({...prev, liked: false, disliked: true, dislikeCount: prev.dislikeCount + 1, likeCount: prev.likeCount - 1})); + setData((prev) => ({...prev, liked: false, disliked: true, dislikes: prev.dislikes + 1, likes: prev.likes - 1})); return; } if (data.disliked){ - setData((prev) => ({...prev, disliked: false, dislikeCount: prev.dislikeCount - 1})); + setData((prev) => ({...prev, disliked: false, dislikes: prev.dislikes - 1})); return; } - setData((prev) => ({...prev, liked: false, disliked: true, dislikeCount: prev.dislikeCount + 1})); + setData((prev) => ({...prev, liked: false, disliked: true, dislikes: prev.dislikes + 1})); } const setAnnotation = () =>{ @@ -57,9 +57,9 @@ const GalleryPost = ({postData} : Props) => { if (selectedText && selection.anchorNode && bodyRef.current!.contains(selection.anchorNode)) { const startI = selection.anchorOffset; const endI = selection.focusOffset; - setAnnotationData(prev => ({...prev, target:{selector: {end: startI, start: endI}, source: postData.id}}) ); + setAnnotationData(prev => ({...prev, target:{selector: {end: startI, start: endI}, source: postData.postId}}) ); } else { - setAnnotationData(prev => ({...prev, target:{selector: {end: null, start: null}, source: postData.id}}) ); + setAnnotationData(prev => ({...prev, target:{selector: {end: null, start: null}, source: postData.postId}}) ); } } @@ -68,7 +68,7 @@ const GalleryPost = ({postData} : Props) => { setDownloadStatus(true); const lnk = document.createElement("a"); lnk.href = postData.fileUrl!; - lnk.download = `model_${postData.id}.${postData.fileUrl!.split(".").slice(-1)}`; + lnk.download = `model_${postData.postId}.${postData.fileUrl!.split(".").slice(-1)}`; lnk.click(); lnk.remove(); setTimeout(() => { @@ -77,7 +77,7 @@ const GalleryPost = ({postData} : Props) => { } return ( -
{window.location.href = `/post/${postData.id}`}}> +
{window.location.href = `/post/${postData.postId}`}}>
{/* Profile picture and username div here */}
@@ -94,7 +94,7 @@ const GalleryPost = ({postData} : Props) => {
}

{data.title}

-

{data.body}

+

{data.text}

@@ -105,7 +105,7 @@ const GalleryPost = ({postData} : Props) => { } -

{formatInteractions(data.likeCount)}

+

{formatInteractions(data.likes)}

-

{formatInteractions(data.dislikeCount)}

+

{formatInteractions(data.dislikes)}

}

{data.title}

-

{data.body}

+

{data.text}

@@ -141,7 +141,7 @@ const GalleryPost = ({postData} : Props) => { } -

{formatInteractions(data.likeCount)}

+

{formatInteractions(data.likes)}

-

{formatInteractions(data.dislikeCount)}

+

{formatInteractions(data.dislikes)}

{comments.map((item, index) => ( - item.postId === data.id ? - + item.postId === data.postId ? + : null )) } diff --git a/3Design/frontend/src/components/GenericFeed/GenericFeed.tsx b/3Design/frontend/src/components/GenericFeed/GenericFeed.tsx index 5c7973f9..dbd1cd59 100644 --- a/3Design/frontend/src/components/GenericFeed/GenericFeed.tsx +++ b/3Design/frontend/src/components/GenericFeed/GenericFeed.tsx @@ -39,12 +39,16 @@ const GenericFeed = ({pageNumber}:Props) => {
) : - postData.map((item, index) => ( - item.visual ? - - : - - )) + postData.length == 0 ? +

There are currently no posts here.

+ : + (postData.map((item, index) => ( + item.isVisualPost ? + + : + + )) + ) }
diff --git a/3Design/frontend/src/components/PageHeader/PageHeader.tsx b/3Design/frontend/src/components/PageHeader/PageHeader.tsx index a69dddd5..9e903173 100644 --- a/3Design/frontend/src/components/PageHeader/PageHeader.tsx +++ b/3Design/frontend/src/components/PageHeader/PageHeader.tsx @@ -32,7 +32,13 @@ const PageHeader = () => { size='large' style={{width: "80%"}} placeholder='Search...' - onSearch={(val) => window.location.href = `/search/${val}`} + onSearch={(val) => { + if (!val){ + return; + } + window.location.href = `/search/${val}` + } + } />
diff --git a/3Design/frontend/src/components/PostPage/PostPage.tsx b/3Design/frontend/src/components/PostPage/PostPage.tsx index 5e55b361..5c07706b 100644 --- a/3Design/frontend/src/components/PostPage/PostPage.tsx +++ b/3Design/frontend/src/components/PostPage/PostPage.tsx @@ -8,6 +8,7 @@ import DiscussionPost from "../DiscussionPost/Page/DiscussionPost"; import SideBar from "../SideBar/SideBar"; import PageHeader from "../PageHeader/PageHeader"; import styles from "./PostPage.module.css" +import { Skeleton } from "antd"; const PostPage = () => { @@ -22,23 +23,25 @@ const PostPage = () => { if (!id){ return
404
; } - if(!postData){ - return
Loading
; - } - return ( <>
- {postData.visual ? + { + postData ? + (postData.isVisualPost ? - - : - + + : + + ) + : + } +
diff --git a/3Design/frontend/src/components/SearchResults/SearchResults.module.css b/3Design/frontend/src/components/SearchResults/SearchResults.module.css new file mode 100644 index 00000000..1badbe59 --- /dev/null +++ b/3Design/frontend/src/components/SearchResults/SearchResults.module.css @@ -0,0 +1,10 @@ +.mainContainer{ + width: 60%; +} + +.spinnerContainer{ + height: 100vh; + width: 100%; + padding: 2%; + +} \ No newline at end of file diff --git a/3Design/frontend/src/components/SearchResults/SearchResults.tsx b/3Design/frontend/src/components/SearchResults/SearchResults.tsx new file mode 100644 index 00000000..3e9c08b4 --- /dev/null +++ b/3Design/frontend/src/components/SearchResults/SearchResults.tsx @@ -0,0 +1,67 @@ +import React, { useEffect, useState } from 'react' +import styles from "./SearchResults.module.css"; +import { useParams } from 'react-router-dom'; +import { DPost } from '../interfaces'; +import { Skeleton } from 'antd'; +import GalleryPost from '../GalleryPost/Clickable/GalleryPost'; +import DiscussionPost from '../DiscussionPost/Clickable/DiscussionPost'; +import SideBar from '../SideBar/SideBar'; +import PageHeader from '../PageHeader/PageHeader'; + +const SearchResults = () => { + const {query} = useParams(); + const [searchResults, setSearchResults] = useState([]); + const [searchLoading, setSearchLoading] = useState(true); + + if (!query){ + window.location.href = "/home"; + } + + useEffect(() => { + fetchPostData(); + }, []) + + const fetchPostData = async () => { + // AJAX Request + + const data = require("../../resources/json-files/MockGenericPosts.json"); + setSearchResults(data); + setSearchLoading(false); + + } + + + return ( + <> + +
+ +
+
+
+

Results for: {query}

+
+
+ { searchLoading ? + ( +
+ +
+ ) : + searchResults.map((item, index) => ( + item.isVisualPost ? + + : + + )) + } +
+ +
+ + + + ) +} + +export default SearchResults \ No newline at end of file diff --git a/3Design/frontend/src/components/interfaces.ts b/3Design/frontend/src/components/interfaces.ts index 111c40c6..7c2020e2 100644 --- a/3Design/frontend/src/components/interfaces.ts +++ b/3Design/frontend/src/components/interfaces.ts @@ -11,30 +11,31 @@ export interface Category{ export interface DComment{ - id: number, - user:CustomProfile, - body: string, + commentId: number, + user:CustomUser, + text: string, memberId: number, postId: number, - likeCount: number, - dislikeCount: number, + likes: number, + dislikes: number, liked: boolean, disliked: boolean } export interface DPost{ - id: number, + postId: number, title: string, - body: string, - memberId: number, + text: string, + user: CustomUser, tags: Tag[], - category: string, - visual: boolean, + categoryId: number, + isVisualPost: boolean, //reaction list, bookmark list, comment list - challangeTo: number|null, + challengedPostId: number|null, fileUrl: string|null, - likeCount: number, - dislikeCount: number, + likes: number, + dislikes: number, + comments: number, liked: boolean, disliked: boolean, bookmark: boolean @@ -59,4 +60,10 @@ export interface SendAnnotationTarget{ export interface SendAnnotationTargetSelector{ start: number | null, end: number | null +} + +export interface CustomUser{ + id : number, + profilePictureUrl: string | null, + username: string } \ No newline at end of file diff --git a/3Design/frontend/src/components/tsfunctions.ts b/3Design/frontend/src/components/tsfunctions.ts index 23c4609d..05ab3ce1 100644 --- a/3Design/frontend/src/components/tsfunctions.ts +++ b/3Design/frontend/src/components/tsfunctions.ts @@ -1,4 +1,4 @@ -import { Category } from "./interfaces"; +import { Category, DPost } from "./interfaces"; export function getCategoryById(id: string){ const categories = require("../resources/json-files/Categories.json") as Category[]; @@ -13,6 +13,9 @@ export function getCategoryById(id: string){ } export function formatInteractions(num: number): string { + if (!num){ + return "0"; + } if (num >= 1_000_000) { return (num / 1_000_000).toFixed(1).replace(/\.0$/, '') + 'M'; } else if (num >= 1_000) { @@ -28,8 +31,8 @@ export function getPostFromId(id: string | undefined){ const intId = parseInt(id); const posts = require("../resources/json-files/MockGenericPosts.json"); for (let i = 0; i < posts.length; i++) { - const element = posts[i]; - if (element.id == intId){ + const element: DPost = posts[i]; + if (element.postId == intId){ return element; } diff --git a/3Design/frontend/src/resources/json-files/Categories.json b/3Design/frontend/src/resources/json-files/Categories.json index 86da21ea..3859cb01 100644 --- a/3Design/frontend/src/resources/json-files/Categories.json +++ b/3Design/frontend/src/resources/json-files/Categories.json @@ -1,7 +1,7 @@ [ {"text": "Characters", "id": "1"}, {"text": "Enviroments", "id": "4"}, - {"text": "Props", "id": "props"}, - {"text": "Vehicles", "id": "vehicles"}, - {"text": "Animations", "id": "animations"} + {"text": "Props", "id": "5"}, + {"text": "Vehicles", "id": "7"}, + {"text": "Animations", "id": "9"} ] \ No newline at end of file diff --git a/3Design/frontend/src/resources/json-files/Comments.json b/3Design/frontend/src/resources/json-files/Comments.json index a10e742d..03ea0c00 100644 --- a/3Design/frontend/src/resources/json-files/Comments.json +++ b/3Design/frontend/src/resources/json-files/Comments.json @@ -1,32 +1,28 @@ [ { - "id": 1, + "commentId": 1, "user": { "username": "erselcanakcili", - "profilePhoto": "", - "tournamentPoints" : "1500" + "profilePictureUrl": null, + "id" : 1500 }, - "body": "This is a great post! Thanks for sharing.", - "memberId": 1, - "postId": 4, - "likeCount":10, - "dislikeCount": 2, + "text": "This is a great post! Thanks for sharing.", + "likes":10, + "dislikes": 2, "liked": true, "disliked": false }, { - "id": 2, + "commentId": 2, "user": { - "username": "oguzkagnici", - "profilePhoto": "", - "tournamentPoints" : "1500" + "username": "oguzkagnici", + "profilePictureUrl": null, + "id" : 1500 }, - "body": "Inspiring.", - "memberId": 1, - "postId": 4, - "likeCount":10, - "dislikeCount": 200, + "text": "Inspiring.", + "likes":10, + "dislikes": 200, "liked": false, "disliked": true } diff --git a/3Design/frontend/src/resources/json-files/MockDiscussions.json b/3Design/frontend/src/resources/json-files/MockDiscussions.json index 62df235e..187b6d48 100644 --- a/3Design/frontend/src/resources/json-files/MockDiscussions.json +++ b/3Design/frontend/src/resources/json-files/MockDiscussions.json @@ -1,32 +1,42 @@ [ { - "id": 7, + "postId": 7, "title": "How do I print a model?", - "body": "Which button should I press to start printing?", - "memberId": 2, + "text": "Which button should I press to start printing?", + "user": { + "username" : "Jim", + "profilePictureUrl" : null, + "id": 1 + }, "tags": [], - "category": "Printing", - "visual": true, - "challangeTo": null, + "categoryId": 1, + "isVisualPost": true, + "challengedPostId": null, "fileUrl": null, - "likeCount": 2, - "dislikeCount": 4, + "likes": 2, + "dislikes": 4, + "comments": 123, "liked": false, "disliked": true, "bookmark":false }, { - "id": 23, + "postId": 23, "title": "How can I log out from this site?", - "body": "I think they forgot to implented this feature.", - "memberId": 2, + "text": "I think they forgot to implented this feature.", + "user": { + "username" : "James", + "profilePictureUrl" : null, + "id": 2 + }, "tags": [], - "category": "General", - "visual": true, - "challangeTo": null, + "categoryId": 2, + "isVisualPost": true, + "challengedPostId": null, "fileUrl": null, - "likeCount": 21221, - "dislikeCount": 5, + "likes": 21221, + "dislikes": 5, + "comments": 123, "liked": false, "disliked": true, "bookmark":false diff --git a/3Design/frontend/src/resources/json-files/MockGenericPosts.json b/3Design/frontend/src/resources/json-files/MockGenericPosts.json index 5d254487..69bd553f 100644 --- a/3Design/frontend/src/resources/json-files/MockGenericPosts.json +++ b/3Design/frontend/src/resources/json-files/MockGenericPosts.json @@ -1,64 +1,68 @@ [ { - "id": 4, + "postId": 4, "title": "Human Model", - "body": "Check out this human model", + "text": "Check out this human model", "memberId": 2, "tags": [], - "category": "Human", - "visual": true, - "challangeTo": null, + "categoryId": 4, + "isVisualPost": true, + "challengedPostId": null, "fileUrl": "/3d.glb", - "likeCount": 62, - "dislikeCount": 129, + "likes": 62, + "dislikes": 129, + "comments": 123, "liked": true, "disliked": false, "bookmark":true }, { - "id": 7, + "postId": 7, "title": "How do I print a model?", - "body": "Which button should I press to start printing?", + "text": "Which button should I press to start printing?", "memberId": 2, "tags": [], - "category": "Printing", - "visual": false, - "challangeTo": null, + "categoryId": 2, + "isVisualPost": false, + "challengedPostId": null, "fileUrl": null, - "likeCount": 2, - "dislikeCount": 4, + "likes": 2, + "dislikes": 4, "liked": false, "disliked": true, + "comments": 123, "bookmark":false }, { - "id": 21, + "postId": 21, "title": "Car Model", - "body": "Check out this car model", + "text": "Check out this car model", "memberId": 2, "tags": [], - "category": "Car", - "visual": true, - "challangeTo": null, + "categoryId": 3, + "isVisualPost": true, + "challengedPostId": null, "fileUrl": "/mug.fbx", - "likeCount": 1, - "dislikeCount": 2000, + "likes": 1, + "dislikes": 2000, + "comments": 123, "liked": false, "disliked": true, "bookmark":false }, { - "id": 23, + "postId": 23, "title": "How can I log out from this site?", - "body": "I think they forgot to implented this feature.", + "text": "I think they forgot to implented this feature.", "memberId": 2, "tags": [], - "category": "General", - "visual": false, - "challangeTo": null, + "categoryId": 2, + "isVisualPost": false, + "challengedPostId": null, "fileUrl": null, - "likeCount": 21221, - "dislikeCount": 5, + "likes": 21221, + "dislikes": 5, + "comments": 123, "liked": false, "disliked": true, "bookmark":false diff --git a/3Design/frontend/src/resources/json-files/MockPosts.json b/3Design/frontend/src/resources/json-files/MockPosts.json index 18a81896..9061e5a8 100644 --- a/3Design/frontend/src/resources/json-files/MockPosts.json +++ b/3Design/frontend/src/resources/json-files/MockPosts.json @@ -1,32 +1,32 @@ [ { - "id": 4, + "postId": 4, "title": "Human Model", - "body": "Check out this human model", + "text": "Check out this human model", "memberId": 2, "tags": [], - "category": "Human", - "visual": true, - "challangeTo": null, + "categoryId": 10, + "isVisualPost": true, + "challengedPostId": null, "fileUrl": "/3d.glb", - "likeCount": 62, - "dislikeCount": 129, + "likes": 62, + "dislikes": 129, "liked": true, "disliked": false, "bookmark":true }, { - "id": 21, + "postId": 21, "title": "Car Model", - "body": "Check out this car model", + "text": "Check out this car model", "memberId": 2, "tags": [], - "category": "Car", - "visual": true, - "challangeTo": null, + "categoryId": 5, + "isVisualPost": true, + "challengedPostId": null, "fileUrl": "/mug.fbx", - "likeCount": 1, - "dislikeCount": 2000, + "likes": 1, + "dislikes": 2000, "liked": false, "disliked": true, "bookmark":false From bed378c2ba880576867931c0ca49509ef242ab18 Mon Sep 17 00:00:00 2001 From: Deniz <160037328+deniz6221@users.noreply.github.com> Date: Fri, 22 Nov 2024 18:54:03 +0300 Subject: [PATCH 04/28] ChallengePost component, Post Annotation component --- .../Annotations/Annotations.module.css | 0 .../components/Annotations/PostAnnotation.tsx | 61 +++++ .../components/CreatePost/ChallengePost.tsx | 194 ++++++++++++++ .../src/components/CreatePost/CreatePost.tsx | 3 +- .../DiscussionPost/DiscussionPost.module.css | 10 + .../DiscussionPost/Page/DiscussionPost.tsx | 2 +- 3Design/frontend/src/components/Feed/Feed.tsx | 6 + .../GalleryPost/GalleryPost.module.css | 30 +++ .../GalleryPost/Page/GalleryPost.tsx | 243 ++++++++++-------- .../components/PostPage/PostPage.module.css | 2 +- 3Design/frontend/src/components/interfaces.ts | 39 +++ .../frontend/src/components/tsfunctions.ts | 12 + .../resources/json-files/MockAnnotations.json | 42 +++ 13 files changed, 533 insertions(+), 111 deletions(-) create mode 100644 3Design/frontend/src/components/Annotations/Annotations.module.css create mode 100644 3Design/frontend/src/components/Annotations/PostAnnotation.tsx create mode 100644 3Design/frontend/src/components/CreatePost/ChallengePost.tsx create mode 100644 3Design/frontend/src/resources/json-files/MockAnnotations.json diff --git a/3Design/frontend/src/components/Annotations/Annotations.module.css b/3Design/frontend/src/components/Annotations/Annotations.module.css new file mode 100644 index 00000000..e69de29b diff --git a/3Design/frontend/src/components/Annotations/PostAnnotation.tsx b/3Design/frontend/src/components/Annotations/PostAnnotation.tsx new file mode 100644 index 00000000..938b4bd1 --- /dev/null +++ b/3Design/frontend/src/components/Annotations/PostAnnotation.tsx @@ -0,0 +1,61 @@ +import React from 'react' +import styles from "./Annotations.module.css"; +import { DisplayedAnnotationDataList, RecievedAnnotationData } from '../interfaces'; + + +interface Props{ + postBody : string, + annotations : RecievedAnnotationData[], + setAnnotationsVisible : (x: DisplayedAnnotationDataList) => void +} + +const PostAnnotation = ({postBody, annotations, setAnnotationsVisible}: Props) => { + const displayAnnotation = (x:number) => { + const annotationEl = annotations[x]; + } + const renderAnnotation = () => { + let annotatedText = []; + let lastIndex = 0; + + annotations.forEach((annotation, index) => { + const { start, end } = annotation.target.selector; + + if (start > lastIndex) { + annotatedText.push( + + {postBody.slice(lastIndex, start)} + + ); + } + + annotatedText.push( + displayAnnotation(index)} + style={{ backgroundColor: 'yellow', cursor: 'pointer' }} + > + {postBody.slice(start, end)} + + ); + + lastIndex = end; + }); + + if (lastIndex < postBody.length) { + annotatedText.push( + {postBody.slice(lastIndex)} + ); + } + + return annotatedText; + } + + return ( +
+ {renderAnnotation()} +
+ ) +} + +export default PostAnnotation \ No newline at end of file diff --git a/3Design/frontend/src/components/CreatePost/ChallengePost.tsx b/3Design/frontend/src/components/CreatePost/ChallengePost.tsx new file mode 100644 index 00000000..1a70c748 --- /dev/null +++ b/3Design/frontend/src/components/CreatePost/ChallengePost.tsx @@ -0,0 +1,194 @@ +import { UploadOutlined,AddCircleOutline,Clear } from '@mui/icons-material' +import { CircularProgress, FormControl, IconButton, InputLabel, MenuItem, Select, TextField } from '@mui/material' +import { Button, GetProp, message, Upload, UploadFile, UploadProps } from 'antd' +import React, { SetStateAction, useEffect, useState } from 'react' +import { Category } from '../interfaces' +import axios, { AxiosError } from 'axios' +import { limitPostBodies } from '../tsfunctions' + +const categories:Category[] = require('../../resources/json-files/Categories.json'); +interface Props{ + dialogFunction: React.Dispatch>, + challengedPostId: number, + categoryId: number +} + +type FileType = Parameters>[0]; + +const ChallengePost = ({dialogFunction, challengedPostId, categoryId} : Props) => { + const [title, setTitle] = useState(""); + const [titleError, setTitleError] = useState(""); + + const [category, setCategory] = useState(`${categoryId}`); + + const [tags, setTags] = useState([]); + const [currentTag, setCurrentTag] = useState(""); + + const [content, setContent] = useState(""); + const [contentError, setContentError] = useState(""); + + const [fileList, setFileList] = useState([]); + + const [joinToTournament, setTournament] = useState(false); + + const [creatingPost, setCreating] = useState(false); + + + const validateTitle = () => { + if (title.length < 5){ + return "Your title must be at least 5 characters."; + } + return ""; + } + + const validateContent = () => { + if (content.length < 10){ + return "Your content must be at least 10 characters."; + } + return ""; + } + + const sendPost = async () =>{ + const titleCheck = validateTitle(); + const contentCheck = validateContent(); + + if (!!titleCheck || !!contentCheck){ + setContentError(contentCheck); + setTitleError(titleCheck); + return; + } + if (fileList.length == 0){ + message.error("You need to add your 3D model to challenge this post."); + return; + } + setCreating(true); + try{ + + const fd = new FormData(); + const tagString = tags.join(", "); + const fixedCategory = `${categoryId}`; + fd.append("title", title); + fd.append("text", content); + fd.append("categoryId", fixedCategory); + fd.append("isVisualPost", "true"); + fd.append("challengedPostId", `${challengedPostId}`); + fd.append("tags", tagString); + fd.append("file", fileList[0] as FileType); + fd.append("joinToTournament", joinToTournament ? "true": "false"); + await axios.post(`${process.env.REACT_APP_API_URL}/api/v1/posts`, fd, { + headers: {Authorization: `Bearer ${localStorage.getItem("jwt_token")}`,} + }) + message.success("Your post is successfully created."); + setTimeout(() => { + window.location.href = `/home/${fixedCategory}`; + }, 500); + } + catch(e){ + if (e instanceof AxiosError && e.response && e.response.data && e.response.data.message && e.response.status != 500){ + message.error(e.response.data.message); + } + else{ + message.error("Something went wrong"); + } + setCreating(false); + + } + } + + return ( +
+

Challenge This Post

+ { + if (e.target.value.length > 128){ + return; + } + setTitleError(""); + setTitle(e.target.value); + }}/> +
+ + Category + + +
+

Join To Tournament

+ setTournament(e.target.checked)} type='checkbox' checked={joinToTournament} className='checkbox'/> +
+
+ + { + if (limitPostBodies(e.target.value)){ + return; + } + setContentError(""); + setContent(e.target.value); + }}/> +
+
+ + { + if (e.key === "Enter"){ + if (currentTag.length > 0){ + setTags([...tags, currentTag]); + setCurrentTag(""); + } + } + }} label="Add Tag" onChange={(e) => { + if(e.target.value.length > 20){ + return; + } + setCurrentTag(e.target.value); + }}/> +
+ {tags.map((tag,index) =>
+

{tag}

+ setTags(prev=>{ + const clone = [...prev]; + clone.splice(index,1); + return clone; + })} className='btn btn-outline'> +
)} +
+ +
+
+ { + const index = fileList.indexOf(file); + const newFileList = fileList.slice(); + newFileList.splice(index, 1); + setFileList(newFileList); + }} + beforeUpload={(file) => { + if (fileList.length >= 1){ + message.error("You can only upload up to 1 file."); + return false; + } + if (file.size > 10 * 1024 * 1024){ + message.error(`You can only upload up to 10 MBs`); + return false; + } + const fileExtension = file.name.split('.').pop(); + const allowedExtensions = ["obj", "dae"]; + if (!allowedExtensions.includes(fileExtension ?? "")){ + message.error(`You can only upload these file extensions: ${allowedExtensions.toString()}`); + return false; + } + setFileList([...fileList, file]); + return false; + }} + > + + +
+ + + {creatingPost && } +
+
+ + ) +} + +export default ChallengePost \ No newline at end of file diff --git a/3Design/frontend/src/components/CreatePost/CreatePost.tsx b/3Design/frontend/src/components/CreatePost/CreatePost.tsx index 09ed7898..6d5068cd 100644 --- a/3Design/frontend/src/components/CreatePost/CreatePost.tsx +++ b/3Design/frontend/src/components/CreatePost/CreatePost.tsx @@ -4,6 +4,7 @@ import { Button, GetProp, message, Upload, UploadFile, UploadProps } from 'antd' import React, { SetStateAction, useEffect, useState } from 'react' import { Category } from '../interfaces' import axios, { AxiosError } from 'axios' +import { limitPostBodies } from '../tsfunctions' const categories:Category[] = require('../../resources/json-files/Categories.json'); interface Props{ @@ -111,7 +112,7 @@ const CreatePost = ({dialogFunction} : Props) => { { - if (e.target.value.length > 512){ + if (limitPostBodies(e.target.value)){ return; } setContentError(""); diff --git a/3Design/frontend/src/components/DiscussionPost/DiscussionPost.module.css b/3Design/frontend/src/components/DiscussionPost/DiscussionPost.module.css index 20df88b0..8f980408 100644 --- a/3Design/frontend/src/components/DiscussionPost/DiscussionPost.module.css +++ b/3Design/frontend/src/components/DiscussionPost/DiscussionPost.module.css @@ -12,4 +12,14 @@ .interactionCount{ min-width: 39px; +} +.postPageCard{ + background-color: white; + padding: 20px; + width: 70%; + border-radius: 8px; + box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1), 0 6px 20px rgba(0, 0, 0, 0.1); + display: flex; + flex-direction: column; + gap: 20px; } \ No newline at end of file diff --git a/3Design/frontend/src/components/DiscussionPost/Page/DiscussionPost.tsx b/3Design/frontend/src/components/DiscussionPost/Page/DiscussionPost.tsx index 60af78f0..e61ccc1b 100644 --- a/3Design/frontend/src/components/DiscussionPost/Page/DiscussionPost.tsx +++ b/3Design/frontend/src/components/DiscussionPost/Page/DiscussionPost.tsx @@ -65,7 +65,7 @@ const DiscussionPost = ({postData} : Props) => { },[annotationData]) return ( -
+
{/* Profile picture and username div here */} diff --git a/3Design/frontend/src/components/Feed/Feed.tsx b/3Design/frontend/src/components/Feed/Feed.tsx index 164fc404..707ab56f 100644 --- a/3Design/frontend/src/components/Feed/Feed.tsx +++ b/3Design/frontend/src/components/Feed/Feed.tsx @@ -16,6 +16,7 @@ const Feed = ({category, pageNumber}: Props) => { const [postData, setPostData] = useState([]); const [feedType, setFeedType] = useState(true); const [feedLoading, setFeedLoading] = useState(true); + const [tabConfig, setTabConfig] = useState([0, 0]); useEffect(() => { fetchPostData(); @@ -63,6 +64,10 @@ const Feed = ({category, pageNumber}: Props) => { setFeedType(x); } + const renderTabs = () => { + return null; + } + return ( @@ -94,6 +99,7 @@ const Feed = ({category, pageNumber}: Props) => { )) ) } + {!feedLoading && postData.length != 0 && renderTabs()}
) diff --git a/3Design/frontend/src/components/GalleryPost/GalleryPost.module.css b/3Design/frontend/src/components/GalleryPost/GalleryPost.module.css index 6eba3e45..f46899b7 100644 --- a/3Design/frontend/src/components/GalleryPost/GalleryPost.module.css +++ b/3Design/frontend/src/components/GalleryPost/GalleryPost.module.css @@ -23,4 +23,34 @@ .interactionCount{ min-width: 39px; +} + +.postPageCard{ + background-color: white; + padding: 20px; + width: 70%; + border-radius: 8px; + box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1), 0 6px 20px rgba(0, 0, 0, 0.1); + display: flex; + flex-direction: column; + gap: 20px; +} + +.annotationContainer{ + height: 500px; + position: sticky; + top: 100px; + overflow-y: scroll; + width: 30%; + background-color: #E0D3AF; + border-radius: 10%; + padding: 2%; +} + +.annotationDataContainer{ + display: flex; + flex-direction: column; + gap: 10px; + border-bottom: black; + border-style: dashed; } \ No newline at end of file diff --git a/3Design/frontend/src/components/GalleryPost/Page/GalleryPost.tsx b/3Design/frontend/src/components/GalleryPost/Page/GalleryPost.tsx index 9f13698d..1179046e 100644 --- a/3Design/frontend/src/components/GalleryPost/Page/GalleryPost.tsx +++ b/3Design/frontend/src/components/GalleryPost/Page/GalleryPost.tsx @@ -1,12 +1,13 @@ -import React, { memo, SetStateAction, useEffect, useRef, useState } from 'react' -import { DPost, SendAnnotationData, DComment } from '../../interfaces' +import React, { memo, SetStateAction, useCallback, useEffect, useRef, useState } from 'react' +import { DPost, SendAnnotationData, DComment, DisplayedAnnotationDataList } from '../../interfaces' import styles from "../GalleryPost.module.css" import DViewer from '../../DViewer/DViewer' import { Bookmark, BookmarkBorderOutlined, BorderColor, Download, MoreVert, Shield, ThumbDown, ThumbDownOutlined, ThumbUp, ThumbUpOutlined, InsertCommentOutlined } from '@mui/icons-material' -import { IconButton, Menu, MenuItem } from '@mui/material' +import { Dialog, IconButton, Menu, MenuItem } from '@mui/material' import { formatInteractions } from '../../tsfunctions' import Comment from '../../Comment/Comment' import MockComments from '../../../resources/json-files/Comments.json' +import ChallengePost from '../../CreatePost/ChallengePost' interface Props{ postData: DPost, } @@ -25,6 +26,14 @@ const GalleryPost = ({postData} : Props) => { const [downloadStatus, setDownloadStatus] = useState(false); const [comment, setComment] = useState(""); + const [challengeDialog, setChallengeDialog] = useState(false); + + const [currentAnnotations, setCurrentAnnotations] = useState({annotatedText: "", annotations: []}); + + const setDisplayedAnnotation = useCallback((x: DisplayedAnnotationDataList) =>{ + setCurrentAnnotations(x); + }, []); + const handleComment = async (newComment: DComment) => { if(newComment.text !== ""){ comments.push(newComment); @@ -90,119 +99,137 @@ const GalleryPost = ({postData} : Props) => { } return ( -
-
- {/* Profile picture and username div here */} - -
- { - e.stopPropagation(); - setAnchorEl(e.currentTarget)}}> - - - setAnchorEl(null)}> - - - Download Model - - - - Challenge Post - - - - Annotate - - - -
-
-
- {modelAppearence ? -
- -
- : -
event.stopPropagation() } className={`flex justify-center items-center non-clickable-div ${styles.previewContainer}`} style={{backgroundImage: "url(/previewmodel.jpg)"}} > - +
+
+
+ {/* Profile picture and username div here */} +
+ { + e.stopPropagation(); + setAnchorEl(e.currentTarget)}}> + + + setAnchorEl(null)}> + + + Download Model + + setChallengeDialog(true)} className='gap-2'> + + Challenge Post + + + + Annotate + + + +
- } -

{data.title}

-

{data.text}

-
-
-
- -

{formatInteractions(data.likes)}

+
+ {modelAppearence ? +
+ +
+ : +
event.stopPropagation() } className={`flex justify-center items-center non-clickable-div ${styles.previewContainer}`} style={{backgroundImage: "url(/previewmodel.jpg)"}} > + +
+ } +

{data.title}

+

{data.text}

-
- +

{formatInteractions(data.likes)}

+
+
+ +

{formatInteractions(data.dislikes)}

+
+
+ +

{1453 /*comment sayısı buraya gelecek */}

+
+ -

{formatInteractions(data.dislikes)}

-
- -

{1453 /*comment sayısı buraya gelecek */}

+
+ setComment(e.target.value)} className='w-full border border-gray-300 rounded-lg p-2'/> +
- -
-
- setComment(e.target.value)} className='w-full border border-gray-300 rounded-lg p-2'/> - +
+ {comments.map((item, index) => ( + item.commentId === data.postId ? + + : + null + )) } +
+ setChallengeDialog(false)}> + +
-
- {comments.map((item, index) => ( - item.postId === data.postId ? - - : - null - )) } +
+
+

Annotations

+ +
+
+ {currentAnnotations.annotations.map((item, index) => ( +
+ {item.username} +

{item.annotation}

+
+ ))} +
) diff --git a/3Design/frontend/src/components/PostPage/PostPage.module.css b/3Design/frontend/src/components/PostPage/PostPage.module.css index 40b1ebff..f9c230bd 100644 --- a/3Design/frontend/src/components/PostPage/PostPage.module.css +++ b/3Design/frontend/src/components/PostPage/PostPage.module.css @@ -1,5 +1,5 @@ .mainContainer{ - width: 60%; + width: 100%; padding: 1rem; display: flex; flex-direction: column; diff --git a/3Design/frontend/src/components/interfaces.ts b/3Design/frontend/src/components/interfaces.ts index 7c2020e2..4fd08399 100644 --- a/3Design/frontend/src/components/interfaces.ts +++ b/3Design/frontend/src/components/interfaces.ts @@ -62,8 +62,47 @@ export interface SendAnnotationTargetSelector{ end: number | null } + export interface CustomUser{ id : number, profilePictureUrl: string | null, username: string +} + + +export interface DisplayedAnnotationData{ + userId: number, + username: string, + annotation: string +} + +export interface DisplayedAnnotationDataList{ + annotations: DisplayedAnnotationData[], + annotatedText : string +} + +export interface RecievedAnnotationData{ + context: string, + id : string, + type: string, + bodyValue: string, + created: string, + creator: RecievedAnnotationCreator, + target: RecievedAnnotationTarget +} + +interface RecievedAnnotationCreator{ + id: string, + type: string, + nickname: string +} + +interface RecievedAnnotationTarget{ + selector: RecievedAnnotationTargetSelector, + source: string +} +interface RecievedAnnotationTargetSelector{ + type: string, + start: number, + end: number } \ No newline at end of file diff --git a/3Design/frontend/src/components/tsfunctions.ts b/3Design/frontend/src/components/tsfunctions.ts index 05ab3ce1..d75972c0 100644 --- a/3Design/frontend/src/components/tsfunctions.ts +++ b/3Design/frontend/src/components/tsfunctions.ts @@ -38,4 +38,16 @@ export function getPostFromId(id: string | undefined){ } return null; +} + +export function limitPostBodies(x:string){ + let count = 0; + for (let i = 0; i < x.length; i++) { + if (x.charAt(i) == "\n"){ + count += 50; + continue; + } + count++; + } + return count > 1024; } \ No newline at end of file diff --git a/3Design/frontend/src/resources/json-files/MockAnnotations.json b/3Design/frontend/src/resources/json-files/MockAnnotations.json new file mode 100644 index 00000000..91c1575b --- /dev/null +++ b/3Design/frontend/src/resources/json-files/MockAnnotations.json @@ -0,0 +1,42 @@ +[ +{ + "@context": "http://www.w3.org/ns/anno.jsonld", + "id": "http://example.org/anno6", + "type": "Annotation", + "bodyValue": "This text means absolutely nothing. No one can interpret this in any meaningfull way.", + "creator": { + "id": "http://example.org/uer1s", + "type": "Person", + "nickname": "Some Guy" + }, + "created": "2021-06-01T12:00:00Z", + "target": { + "source": "http://example.org/ebook1", + "selector": { + "type": "TextPositionSelector", + "start": 5, + "end": 10 + } + } +}, +{ + "@context": "http://www.w3.org/ns/anno.jsonld", + "id": "http://example.org/anno6", + "type": "Annotation", + "bodyValue": "This text means something.", + "creator": { + "id": "http://example.org/uer1s", + "type": "Person", + "nickname": "Some Other Guy" + }, + "created": "2021-06-01T12:00:00Z", + "target": { + "source": "http://example.org/ebook1", + "selector": { + "type": "TextPositionSelector", + "start": 1, + "end": 3 + } + } +} +] \ No newline at end of file From 35b7aebc118d04fb3a9f8363b9ce21b37e705391 Mon Sep 17 00:00:00 2001 From: Deniz <160037328+deniz6221@users.noreply.github.com> Date: Fri, 22 Nov 2024 21:52:26 +0300 Subject: [PATCH 05/28] Annotation display logic, create annotation dialog --- .../components/Annotations/PostAnnotation.tsx | 110 ++++++++++++------ .../Clickable/DiscussionPost.tsx | 27 +---- .../DiscussionPost/Page/DiscussionPost.tsx | 12 +- .../GalleryPost/Clickable/GalleryPost.tsx | 24 +--- .../GalleryPost/GalleryPost.module.css | 12 ++ .../GalleryPost/Page/GalleryPost.tsx | 98 +++++++++++----- .../src/components/PostPage/PostPage.tsx | 4 +- 3Design/frontend/src/components/interfaces.ts | 25 ++-- .../resources/json-files/MockAnnotations.json | 8 +- 9 files changed, 181 insertions(+), 139 deletions(-) diff --git a/3Design/frontend/src/components/Annotations/PostAnnotation.tsx b/3Design/frontend/src/components/Annotations/PostAnnotation.tsx index 938b4bd1..b359b27c 100644 --- a/3Design/frontend/src/components/Annotations/PostAnnotation.tsx +++ b/3Design/frontend/src/components/Annotations/PostAnnotation.tsx @@ -1,59 +1,95 @@ import React from 'react' import styles from "./Annotations.module.css"; -import { DisplayedAnnotationDataList, RecievedAnnotationData } from '../interfaces'; +import { DisplayedAnnotationData, RecievedAnnotationData } from '../interfaces'; interface Props{ postBody : string, annotations : RecievedAnnotationData[], - setAnnotationsVisible : (x: DisplayedAnnotationDataList) => void + setAnnotationsVisible : (x: DisplayedAnnotationData[]) => void } const PostAnnotation = ({postBody, annotations, setAnnotationsVisible}: Props) => { - const displayAnnotation = (x:number) => { - const annotationEl = annotations[x]; + const displayAnnotation = (x:RecievedAnnotationData[]) => { + const displayedAnnotations: DisplayedAnnotationData[] = []; + x.forEach((annotation) => { + displayedAnnotations.push({annotatedText: postBody.slice(annotation.target.selector.start, annotation.target.selector.end), annotation: annotation.bodyValue, userId: annotation.creator.id, username: annotation.creator.nickname}) + }) + setAnnotationsVisible(displayedAnnotations); } - const renderAnnotation = () => { - let annotatedText = []; + + const mergeAnnotations = () => { + // Sort annotations by start index + const sortedAnnotations = annotations.sort( + (a, b) => a.target.selector.start - b.target.selector.start + ); + + const merged: any = []; + let currentRange: any = null; + + sortedAnnotations.forEach((annotation) => { + const { start, end } = annotation.target.selector; + + if (currentRange && start <= currentRange.end ) { + // Expand the current range + currentRange.end = Math.max(currentRange.end, end); + currentRange.annotations.push(annotation); + } else { + currentRange = { + start, + end, + annotations: [annotation], + }; + merged.push(currentRange); + } + }); + + return merged; + }; + + const renderText = () => { + const mergedAnnotations = mergeAnnotations(); + const segments = []; let lastIndex = 0; - - annotations.forEach((annotation, index) => { - const { start, end } = annotation.target.selector; - - if (start > lastIndex) { - annotatedText.push( - - {postBody.slice(lastIndex, start)} - - ); - } - - annotatedText.push( - displayAnnotation(index)} - style={{ backgroundColor: 'yellow', cursor: 'pointer' }} - > - {postBody.slice(start, end)} - + + mergedAnnotations.forEach(({ start, end, annotations } : any) => { + // Add plain text before the annotation + if (lastIndex < start) { + segments.push( + {postBody.slice(lastIndex, start)} ); - - lastIndex = end; + } + + // Add highlighted annotation + segments.push( + { + displayAnnotation(annotations); + }} + style={{ backgroundColor: 'yellow', cursor: 'pointer' }} + > + {postBody.slice(start, end)} + + ); + + lastIndex = end; }); - + + // Add remaining plain text if (lastIndex < postBody.length) { - annotatedText.push( - {postBody.slice(lastIndex)} - ); + segments.push( + {postBody.slice(lastIndex)} + ); } - - return annotatedText; - } + + return segments; + }; return (
- {renderAnnotation()} + {renderText()}
) } diff --git a/3Design/frontend/src/components/DiscussionPost/Clickable/DiscussionPost.tsx b/3Design/frontend/src/components/DiscussionPost/Clickable/DiscussionPost.tsx index e3b77480..4d75a801 100644 --- a/3Design/frontend/src/components/DiscussionPost/Clickable/DiscussionPost.tsx +++ b/3Design/frontend/src/components/DiscussionPost/Clickable/DiscussionPost.tsx @@ -12,11 +12,7 @@ interface Props{ const DiscussionPost = ({postData} : Props) => { const [data, setData] = useState(postData); const bodyRef = useRef(null); - const [annotationData, setAnnotationData] = useState( - {body: "", target:{selector: {end: null, start: null}, source: postData.postId}} - ); - const likeClicked = async (event:any) =>{ event.stopPropagation(); @@ -44,28 +40,9 @@ const DiscussionPost = ({postData} : Props) => { setData((prev) => ({...prev, liked: false, disliked: true, dislikes: prev.dislikes + 1})); } - const setAnnotation = () =>{ - const selection = window.getSelection(); - if (!selection){ - return; - } - const selectedText = selection.toString(); - - if (selectedText && selection.anchorNode && bodyRef.current!.contains(selection.anchorNode)) { - const startI = selection.anchorOffset; - const endI = selection.focusOffset; - setAnnotationData(prev => ({...prev, target:{selector: {end: startI, start: endI}, source: postData.postId}}) ); - } else { - setAnnotationData(prev => ({...prev, target:{selector: {end: null, start: null}, source: postData.postId}}) ); - } - } - - useEffect(() => { - console.log(annotationData) - },[annotationData]) return ( -
{window.location.href = `/post/${postData.postId}`}} > +
{window.location.href = `/post/${postData.postId}`}} >
{/* Profile picture and username div here */} @@ -73,7 +50,7 @@ const DiscussionPost = ({postData} : Props) => {

{data.title}

-

{data.text}

+

{data.text}

diff --git a/3Design/frontend/src/components/DiscussionPost/Page/DiscussionPost.tsx b/3Design/frontend/src/components/DiscussionPost/Page/DiscussionPost.tsx index e61ccc1b..fd0f9949 100644 --- a/3Design/frontend/src/components/DiscussionPost/Page/DiscussionPost.tsx +++ b/3Design/frontend/src/components/DiscussionPost/Page/DiscussionPost.tsx @@ -13,7 +13,7 @@ const DiscussionPost = ({postData} : Props) => { const [data, setData] = useState(postData); const bodyRef = useRef(null); const [annotationData, setAnnotationData] = useState( - {body: "", target:{selector: {end: null, start: null}, source: postData.postId}} + {content: "", endIndex: null, postId: postData.postId, startIndex: null, userId: 1} ); const [anchorEl, setAnchorEl] = React.useState(null); @@ -54,10 +54,10 @@ const DiscussionPost = ({postData} : Props) => { if (selectedText && selection.anchorNode && bodyRef.current!.contains(selection.anchorNode)) { const startI = selection.anchorOffset; const endI = selection.focusOffset; - setAnnotationData(prev => ({...prev, target:{selector: {end: startI, start: endI}, source: postData.postId}}) ); - } else { - setAnnotationData(prev => ({...prev, target:{selector: {end: null, start: null}, source: postData.postId}}) ); - } + setAnnotationData(prev => ({...prev, startIndex: startI,endIndex: endI}) ); + } else { + setAnnotationData(prev => ({...prev, startIndex: null,endIndex: null}) ); + } } useEffect(() => { @@ -84,7 +84,7 @@ const DiscussionPost = ({postData} : Props) => { Challenge Post */} - + Annotate diff --git a/3Design/frontend/src/components/GalleryPost/Clickable/GalleryPost.tsx b/3Design/frontend/src/components/GalleryPost/Clickable/GalleryPost.tsx index 2d7c7334..79d510f0 100644 --- a/3Design/frontend/src/components/GalleryPost/Clickable/GalleryPost.tsx +++ b/3Design/frontend/src/components/GalleryPost/Clickable/GalleryPost.tsx @@ -14,11 +14,7 @@ const GalleryPost = ({postData} : Props) => { const [data, setData] = useState(postData); const [modelAppearence, setModelAppearence] = useState(false); const bodyRef = useRef(null); - const [annotationData, setAnnotationData] = useState( - {body: "", target:{selector: {end: null, start: null}, source: postData.postId}} - ); - const [anchorEl, setAnchorEl] = React.useState(null); const [downloadStatus, setDownloadStatus] = useState(false); const likeClicked = async (event:any) =>{ @@ -47,22 +43,6 @@ const GalleryPost = ({postData} : Props) => { setData((prev) => ({...prev, liked: false, disliked: true, dislikes: prev.dislikes + 1})); } - const setAnnotation = () =>{ - const selection = window.getSelection(); - if (!selection){ - return; - } - const selectedText = selection.toString(); - - if (selectedText && selection.anchorNode && bodyRef.current!.contains(selection.anchorNode)) { - const startI = selection.anchorOffset; - const endI = selection.focusOffset; - setAnnotationData(prev => ({...prev, target:{selector: {end: startI, start: endI}, source: postData.postId}}) ); - } else { - setAnnotationData(prev => ({...prev, target:{selector: {end: null, start: null}, source: postData.postId}}) ); - } - } - const downloadModel = (event:any) => { event.stopPropagation(); setDownloadStatus(true); @@ -77,7 +57,7 @@ const GalleryPost = ({postData} : Props) => { } return ( -
{window.location.href = `/post/${postData.postId}`}}> +
{window.location.href = `/post/${postData.postId}`}}>
{/* Profile picture and username div here */}
@@ -94,7 +74,7 @@ const GalleryPost = ({postData} : Props) => {
}

{data.title}

-

{data.text}

+

{data.text}

diff --git a/3Design/frontend/src/components/GalleryPost/GalleryPost.module.css b/3Design/frontend/src/components/GalleryPost/GalleryPost.module.css index f46899b7..ec53b163 100644 --- a/3Design/frontend/src/components/GalleryPost/GalleryPost.module.css +++ b/3Design/frontend/src/components/GalleryPost/GalleryPost.module.css @@ -51,6 +51,18 @@ display: flex; flex-direction: column; gap: 10px; + +} + +.ellipsis { + width: 200px; + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; + position: relative; + } + +.singleAnnotationContainer{ border-bottom: black; border-style: dashed; } \ No newline at end of file diff --git a/3Design/frontend/src/components/GalleryPost/Page/GalleryPost.tsx b/3Design/frontend/src/components/GalleryPost/Page/GalleryPost.tsx index 1179046e..3de99b00 100644 --- a/3Design/frontend/src/components/GalleryPost/Page/GalleryPost.tsx +++ b/3Design/frontend/src/components/GalleryPost/Page/GalleryPost.tsx @@ -1,26 +1,27 @@ import React, { memo, SetStateAction, useCallback, useEffect, useRef, useState } from 'react' -import { DPost, SendAnnotationData, DComment, DisplayedAnnotationDataList } from '../../interfaces' +import { DPost, SendAnnotationData, DComment, DisplayedAnnotationData, RecievedAnnotationData } from '../../interfaces' import styles from "../GalleryPost.module.css" import DViewer from '../../DViewer/DViewer' import { Bookmark, BookmarkBorderOutlined, BorderColor, Download, MoreVert, Shield, ThumbDown, ThumbDownOutlined, ThumbUp, ThumbUpOutlined, InsertCommentOutlined } from '@mui/icons-material' -import { Dialog, IconButton, Menu, MenuItem } from '@mui/material' +import { Dialog, IconButton, Menu, MenuItem, TextField } from '@mui/material' import { formatInteractions } from '../../tsfunctions' import Comment from '../../Comment/Comment' import MockComments from '../../../resources/json-files/Comments.json' import ChallengePost from '../../CreatePost/ChallengePost' +import PostAnnotation from '../../Annotations/PostAnnotation' +import { message, Switch } from 'antd' interface Props{ postData: DPost, + publishedAnnotations: RecievedAnnotationData[] } -const GalleryPost = ({postData} : Props) => { +const GalleryPost = ({postData, publishedAnnotations} : Props) => { const comments: DComment[] = JSON.parse(localStorage.getItem("comments") || "[]") as DComment[]; const [data, setData] = useState(postData); const [modelAppearence, setModelAppearence] = useState(false); const bodyRef = useRef(null); - const [annotationData, setAnnotationData] = useState( - {body: "", target:{selector: {end: null, start: null}, source: postData.postId}} - ); + const [annotationData, setAnnotationData] = useState({content: "", endIndex: null, postId: postData.postId, startIndex: null, userId: 1}); const [anchorEl, setAnchorEl] = React.useState(null); const [downloadStatus, setDownloadStatus] = useState(false); @@ -28,9 +29,12 @@ const GalleryPost = ({postData} : Props) => { const [challengeDialog, setChallengeDialog] = useState(false); - const [currentAnnotations, setCurrentAnnotations] = useState({annotatedText: "", annotations: []}); + const [currentAnnotations, setCurrentAnnotations] = useState([]); + const [annotationsVisible, setAnnotationsVisible] = useState(false); - const setDisplayedAnnotation = useCallback((x: DisplayedAnnotationDataList) =>{ + const [annotatedText, setAnnotatedText] = useState(""); + + const setDisplayedAnnotation = useCallback((x: DisplayedAnnotationData[]) =>{ setCurrentAnnotations(x); }, []); @@ -79,9 +83,9 @@ const GalleryPost = ({postData} : Props) => { if (selectedText && selection.anchorNode && bodyRef.current!.contains(selection.anchorNode)) { const startI = selection.anchorOffset; const endI = selection.focusOffset; - setAnnotationData(prev => ({...prev, target:{selector: {end: startI, start: endI}, source: postData.postId}}) ); + setAnnotationData(prev => ({...prev, startIndex: Math.min(startI, endI),endIndex: Math.max(endI, startI)}) ); } else { - setAnnotationData(prev => ({...prev, target:{selector: {end: null, start: null}, source: postData.postId}}) ); + setAnnotationData(prev => ({...prev, startIndex: null,endIndex: null}) ); } } @@ -98,8 +102,23 @@ const GalleryPost = ({postData} : Props) => { }, 5000); } + const startAnnotation = () => { + console.log(`Start: ${annotationData.startIndex!} End: ${annotationData.endIndex!}`); + setAnnotatedText(postData.text.slice(annotationData.startIndex!, annotationData.endIndex!)); + } + + const postAnnotation = async () => { + try{ + + message.success("Annotation published successfully."); + setAnnotatedText(""); + }catch(e){ + message.success("Something went wrong."); + } + } + return ( -
+
(null)} className="w-full flex gap-2">
{/* Profile picture and username div here */} @@ -118,7 +137,7 @@ const GalleryPost = ({postData} : Props) => { Challenge Post - + Annotate @@ -139,7 +158,12 @@ const GalleryPost = ({postData} : Props) => {
}

{data.title}

-

{data.text}

+ { + annotationsVisible ? + + : +

(null)}>{data.text}

+ }
@@ -171,6 +195,7 @@ const GalleryPost = ({postData} : Props) => {

{1453 /*comment sayısı buraya gelecek */}

+ +
+ setAnnotationsVisible(e)} checkedChildren="Annotations Visible" unCheckedChildren="Annotations Disabled"/> +
setComment(e.target.value)} className='w-full border border-gray-300 rounded-lg p-2'/> @@ -217,20 +245,38 @@ const GalleryPost = ({postData} : Props) => {
-
-
-

Annotations

- -
-
- {currentAnnotations.annotations.map((item, index) => ( -
- {item.username} -

{item.annotation}

-
- ))} + {annotationsVisible && currentAnnotations.length != 0 && +
+
+

Annotations

+ +
+
+ {currentAnnotations.map((item, index) => ( +
+ {item.username} +
Annotated text: "{item.annotatedText}"
+

{item.annotation}

+
+ ))} +
+
} + setAnnotatedText("")}> +
+

Annotating Text: {annotatedText}

+ { + if (e.target.value.length > 256){ + return; + } + + setAnnotationData(prev => ({...prev, content: e.target.value})) + }}/> +
+ + +
-
+
) } diff --git a/3Design/frontend/src/components/PostPage/PostPage.tsx b/3Design/frontend/src/components/PostPage/PostPage.tsx index 5c07706b..61b2063b 100644 --- a/3Design/frontend/src/components/PostPage/PostPage.tsx +++ b/3Design/frontend/src/components/PostPage/PostPage.tsx @@ -14,9 +14,11 @@ import { Skeleton } from "antd"; const PostPage = () => { const { id } = useParams(); const [postData, setPostData] = useState(null); + const [publishedAnnotations, setPublishedAnnotations] = useState([]); useEffect(() => { setPostData(getPostFromId(id)); + setPublishedAnnotations(require("../../resources/json-files/MockAnnotations.json")); }, []); @@ -34,7 +36,7 @@ const PostPage = () => { postData ? (postData.isVisualPost ? - + : ) diff --git a/3Design/frontend/src/components/interfaces.ts b/3Design/frontend/src/components/interfaces.ts index 4fd08399..f2d2aa35 100644 --- a/3Design/frontend/src/components/interfaces.ts +++ b/3Design/frontend/src/components/interfaces.ts @@ -47,21 +47,14 @@ export interface Tag{ } export interface SendAnnotationData{ - target: SendAnnotationTarget, - body: string + postId : number, + userId : number, + startIndex: number | null, + endIndex: number | null, + content: string, } -export interface SendAnnotationTarget{ - selector: SendAnnotationTargetSelector, - source: number -} - -export interface SendAnnotationTargetSelector{ - start: number | null, - end: number | null -} - export interface CustomUser{ id : number, @@ -71,13 +64,9 @@ export interface CustomUser{ export interface DisplayedAnnotationData{ - userId: number, + userId: string, username: string, - annotation: string -} - -export interface DisplayedAnnotationDataList{ - annotations: DisplayedAnnotationData[], + annotation: string, annotatedText : string } diff --git a/3Design/frontend/src/resources/json-files/MockAnnotations.json b/3Design/frontend/src/resources/json-files/MockAnnotations.json index 91c1575b..72909149 100644 --- a/3Design/frontend/src/resources/json-files/MockAnnotations.json +++ b/3Design/frontend/src/resources/json-files/MockAnnotations.json @@ -3,11 +3,11 @@ "@context": "http://www.w3.org/ns/anno.jsonld", "id": "http://example.org/anno6", "type": "Annotation", - "bodyValue": "This text means absolutely nothing. No one can interpret this in any meaningfull way.", + "bodyValue": "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam", "creator": { "id": "http://example.org/uer1s", "type": "Person", - "nickname": "Some Guy" + "nickname": "User 1" }, "created": "2021-06-01T12:00:00Z", "target": { @@ -27,7 +27,7 @@ "creator": { "id": "http://example.org/uer1s", "type": "Person", - "nickname": "Some Other Guy" + "nickname": "User 2" }, "created": "2021-06-01T12:00:00Z", "target": { @@ -35,7 +35,7 @@ "selector": { "type": "TextPositionSelector", "start": 1, - "end": 3 + "end": 20 } } } From c6d47d3e15d4f6d3a7702f20cd079d357932873a Mon Sep 17 00:00:00 2001 From: Deniz <160037328+deniz6221@users.noreply.github.com> Date: Sat, 23 Nov 2024 13:56:12 +0300 Subject: [PATCH 06/28] Annotation connected to backend, change password --- 3Design/frontend/public/default_pp.png | Bin 0 -> 22734 bytes .../GalleryPost/GalleryPost.module.css | 6 +- .../GalleryPost/Page/GalleryPost.tsx | 48 +++++++-- .../src/components/Login/LoginPage.tsx | 3 +- .../src/components/PageHeader/PageHeader.tsx | 100 +++++++++++++++--- .../src/components/PostPage/PostPage.tsx | 2 +- 3Design/frontend/src/components/interfaces.ts | 3 +- 7 files changed, 132 insertions(+), 30 deletions(-) create mode 100644 3Design/frontend/public/default_pp.png diff --git a/3Design/frontend/public/default_pp.png b/3Design/frontend/public/default_pp.png new file mode 100644 index 0000000000000000000000000000000000000000..0bb1896804023ab2ba60dc4d703adc5b5b5c4263 GIT binary patch literal 22734 zcmeEtWl$VZ)9x&bTX0QqmjJg>Al8;w*Oynjcpx`tsM=m?e(qgbuA#;>RMXsn%nD|TWg!zYMVgWQrp;C)7Vne z*j(M%Tm{Mo5KUDL%~cIem7r1&qOr2Rsq#@aRMaNJj#l~vZ}(e%7U`0 zf=5}AUsjo4R#8w|Sx{P$Us{=8TJal135fDvAc{eh<$)*yQJPy=l3h?Ng_4{K09xgW zvQnB()4Q#n;I0P{X?MR!e<3}p|NrxUs(|SeT;#`b#H|sfl-B?M{0|lI6?=*IpK>0< zKO_GSw*SwEC-dRsOl?5u3Xfy$j-lU5U57l{PwUs!Gz4{(i)se?_|^fsNPdB=a(TWg z+PBqt(WtS~>E6qmG=VUZuO!Q3e}2jP%#XT$i)}#Z_grKk$@jYQ$f0f)JVg25b_^P$ zdb>wz?4auwOV&myHUPYQdN;Xl_@_#lKCxd&K8W5-e$XhcNz^f0zrM7>>2BKX)Bf^U zhf}Tnde+9%ZVEq(snDG(l&^H)ISE%1eZj$hH!0phC9MBlVX>&SsI7-~qm7{A^2>em zXL7?$>c)BJnYI=C9bY3E=HAP@yOdXYI69}laM-Uo6YHuV0}!eBO&imuRWJ1n_1#ZT z*ZfNoJA~DZ@f2!DuNl?%QTNp3gjHOQ=gzylf4Y3?t+^Zg5Ma%yym1Kk|01U+4= z2Cab5Hom&T1%^))D=KuUVzpYyFMslXp5PiX1^}M}eLsy9!-nds_kZ;FP|6%Gv#{F~ zn799RS$=lu*mjJ=h61S3hsjA=DMmBblOdTU$uSpCqNMWd3lc-trZSA*8UrmbeBayf zt>B6MX0@*s)$9gvt?4C}h{S4k#`bS{+yD&tVLTyl*L}S*QI|RWE%&TAi#W8|df`{7 zzR;h{HURMub2yg--&%L!9cH`inZIk+*821HX>-~|lHK6l(sBIo9&a#y$B1be-QcZ=e)f$j~9VrCoG z_fJ}b)$MKUF6NU5YX|>G94(*RpTE6gQS%+ybeeQD-_Y;cqiYm#&S4V;_J?ErVlF^0hzykrTc^G%-qrt6Ep zf2AU40l#fSdvh{LhzgKN*L5?0e|iG_Y;%3DCurOckpx>102MYqHYz3IY#M)A^)pFg|t z=svXak?2E~$ics&mlf{RlXz54@PN*51ON@2iE!<=hf3}Nko&kxwUIHd8wrp_5S>T4 zHc<;YEtxa(BH0D$%IFSFwxrTTJ;a+10!#1Ap|U_eV!#QyDB>W;3U$AKy_ z^K@%;1_b!W>|5Ee@=dp(_Vlj#S%b_=ItU<1tT8$7| zb>m<;_$15TsmVb+l^+0lUe%pZ&!?S>@;|#BGbL;V5M|-Nx>Uk0lT#uVW1sbXgaD>o zJEC@JvbQQm#-}|+eE8Tv+)v?+DH&|>!SG|WiyB#OU@;xzrn3mN8HhXfw{!SU54x+? zpi|-fcRquj(Y>%oW^%&s8V4_}n#%(gDXF;_ydVH?WaY%ujqNTD*1;WX8n9!OX)d?k z=`P0e_|h9S zob1m$YU$*jQ2^Yv1#|Y1T%4T|D38({fz7C$&T+r0%qaomPReR zTG=cIuMO1s7yzIqifCY;*0h-I7hcj#3m*xv_*~ER1Sr?}nbZDpa1;|2xRtL9a*+Wo zREd>@{N=%E3q(wxkoGTZt9d-QB!V3@5#cJMdcOz%Wwvv@#KQr?<99uIz-CrMx*+HF z5TG{W^H2Eiu3hD?#j)2aA0d)BQTt^pQnX=~lp~qX$fb~>k|6{tMIE``b~4TqwiV?V zfaG4pd7Xz}@p>q(D+PHM5+Z?q6vtohE?MI@Us;eb2av}zGT)QiY^M_9QJ)0nFcyv) zvG?JU4bwj0v4y*3eHpT0%a^y<@qwxpP@|O1iQ2a{$y;71oXtT-P|(cr--*IAv+$le zGiZQUSse)qYi=pc!x;_v#X_Q95SoFk`dhyG=HbkCD7k4VK-08cP^|=dC^(ZQ*5Kj* zJdC3uf1oMN_}O>oL}B1J9=(O_v*nq)O?8h2Op-`|#zVF$afWg@C#YUm0SOTovA+$8 z3CmDHk*Cha#sR+4?d{3s6lbV9L%H7ip&~Bv;$@VL;-yGuSY)7*$_kECLOp{yYOQ9t zpUinRrf&+9K3fw?_NYc9w^o+!q)C;#b-D`zG-hBVUfTh0h~^7EQVtk=IvKYSZwE9wzYE22)eArjAz% zIXAUHh9aCze*aw2d8IMmNoo!@EwYlaobM@Ao(!X-0_{IEN&hhS=iUhjfN3yfED`N3 zyi}9&mqUUgSSd!>pZ}b^4?*Fdjxr{~0{Up?a3;u`1F_bU^<+TQ;(lex z6L$G_US~EN8Syvr7fF$7SM;&RyB@>Wzz?RaU2H7pj_7-L2Vn^CgUVuq3?9mBX#RbN z5J3Eh5ZICD$qgzl$HNBR(ih6OHBmd#-;)rK0U3;m+s1c-_n7zJRlWf&61#H`L7yDR z(GG9gcW2{yTi2|IzXZpHR~SYe#p3Y$pubQw#OfV;M}t;o6PsILctdzET7O&gf|i&Jrkr8bpSokUN6vf=>7uW@ zb~vlTHxY-md4DQyH%hsOZ@&dui_A)wmYr$m; z$;Dtzb^+sYm8D?e!IvS(+!RO4)SNBL1y4-@vJj^w#M z#LLFr63#e^#<{pSD-CzFe-A~_zD~Hnl031IzQ7{+24HKvaIJpQ(op~Xd$#XWK!#|K zBCokX=6pNjpaqZ_t*gqtFMB?Pb@E87*f56%8)t{lx_cm&6iidK;d;eGhGpSU7+K`H z2X(k^Gk1+55d{oAqY-Jyx?_7g+e;Tn9G~8Ta#Kb%GW_F zSpGfT4-~bMEN4joONs;G#VLD(T!Pnu#G=0=4B-Hc0!g@@y8^H9u+m_PJEYrOAR~%W zLKr%X7WCtTa0r;4Ie?BKLB;qjAMDCV_5Fqb%ILo4T}a%U9%}2~EdXUCAN2{)XX<+& zD++~LE7<#^!31m_9EN$hTTnY<9mkCPXhgQT2wJWgdH;w4yhL-wgU|T@U9-E!1t@nr zKI%jz1yImCONxd%gsphq=4)*+2nFFSj9*~3zS~C*F?3I_{{6v$|33cZ>H?O z#*`s+(YXvlJ}g?!FHAG3DI+b+LN4)&Twc5RuhQmw|9r3o*dTJB!hG$=rK^bXMdc`z z|11{&uSZiS9>roo&70J^2|pJu`eR3Q1nJDSWI_V1Ogu zqX$TMtG7S*2_5IltKnpVpzqmqV% zw!aRzDg@rw)S#~y9g!e+=s+|`Hp`XyGiWGE&!7R=QQmDJ>fi0e% zloSCU)a^WH1*D+T?S%{!R7;koE^?27{@3P+C8eA&a|C($Je5%dVmiQfmn)ZBdr38d zge))KWIGNuuC(`H7zxThTK5kZw~MPnA`f(Dw774@#eGfFtOF+S8Z1cLrEleDeOTJ7 z$W7`dno=qfbtG(!Q+_2DR{x>;J^|b`fyk3-3fOBpkx6S{%!eI2TK?q`IVZOoVYi$+ z4tI9Mv+q%myny&SE7s`Fo<$dM1Zx0K{rOZWE2yINd&j7$v)vgMqDroH>Ld>V8f<$D zB1-6E2$9=pl?MUP#@Rr^LmjHzU14;HiLLqmBtiv~akNm-lP2JToAfW)X z1a6*zt@Kv2$`;9NMp8=zYv%5uJv6N?!*&|!4S8Ww&1)=dP2J;pLB5t-qo;C6U(n(( zF`2n$rh&XX2K`|`Lp>P^Ryr{7+(CmScgUzB7@C)tbwvu!;->`n43L*KzW*Nc6Y()t zMT;aOqsAW{4VJ=NgSXH$uVsU4)@U8`KVYG}24;?x9MM@TZ>hlKrH(exSfllH13;HE zzSI#w<6EN`?g{i~lv^LIM^Dk+ttK?>gK6_;EXHiX$t?z`8c(sAynCfN;IGf&T+FK7YX_}>I05Iu3?bY7huoBN4Y zfM(k*F>|a&9NyApG|1~Wg(kwP9Nc>5K?nI6-cgHALdYOuLd&OyVRuvDX&UJh6&oi7 zB`)E1cn9s1?LMdk*937XY?T(zL92_7quJ8u0Vc_Pmk8z+5G!jNC&_DEb`W3;A>^9> zghdj?gl*l9#Pt3|k-m{{ADpdxeFT`)K`KNcL~@RDCLm$lwd?#o~D0 zjlKqazo_SJ2Bcc1&o=2IB26_YSWq<#pq_D&un++}jI57&==|e9h$3Nxb>^ikj5c+7 zLHg+YLDIv9n@S|d3BGo5ok{UR@UG%Toi7R`7bl|43$ZmzwZ$7v1gq@a;dPzOVwSW* zEBr>Do>~0zW}I2M^$Ym`f%ZcW7N255(n~c6!%n;}8l5hK#foDuv1FNF@k<%Sgt~{* z&Ju(@=iDhqoa|oG*H8il?ec~-lmyuj8xeU71}mp|^4IGB-lUwP;$;1PNGCOqtUU9x ziECApsZOM0!M16d(rW3+oe%QqRl)>i4;Udj* zm2V-brcG-3mE){8Y9z1d4lduXovN5dDd;cq*<++P$MytB-4@sMTtf`D_8)&CDfAqU zW%-Ud7(Q%a(lGW;2<+=pAxW4KGW3J^`xr1|@;P-ybRWmV)hyozdm}DQp!HvK2@;b?`38rl z=jJtaadmk7e`aW{-D2_=^eYw;|4b|BfdpMDY*@nMBToA^&}#}oA%Tg_!6F3WETiUFKk-IM$=0WWA{ao6>u^_4dU2K zifTimGq{Y!CefR|4N>=?DOnGH;c+}Rx2FRb;|%UsglGB_LdnnznyRLxV{-mvmmq4c zsSO}etiB48Ccne~j&H83qu^T=t%R7b1}jM^&>4Fa~dXE^D-vTbPbQuna~^6i@=M?j?L3EZaZIk$m9(+ z#ScaFguX}rvwbY7DE|L?ykJJf@fmwc=*46^NBUu?B?Uvun~X1<5#$mSVME2~;H}|A zezX34AW#bG%7ly)X4L@3=on3{2(KP?{V*i?vcFUh%Xw!XBwoUXGa$b?&$(ekz|M`p z@UAD1c_my=n_|T$rf?%X8;`LtZe@^OR9praDVW&0Im1!#dZo>PsKyY-7Tb|8pp!XIX&z!1gZF0|igP z&TU%yzV3$Y%2UnHZ0tw_`RA=9#|_sMM8oH*+8r77T;Z97Xw%kLDA^B_Lo_g2+W(Wls#2n81-@)jcF+bRgQY+1>$G{&oD9R+mRk%iCc z$eA$)hwP03H0S8uZP_CNf^N-K8#3X)S+P!OOmyZsz_=4;QW*3De1R? z1H&w3N5MfZ%LwvR@6&najk=sS(Zxw*eBJ=T?kK$tm3d0^;oC6`1+Q~4<^=<0IxYs7 zr6)w0c8nGh!7=}@Q}RFB={{u(k@PbHyl&}>5?{JJ86>(X!O!W~+u;ZWziD*V&N^WR znov_MO4{tr`#N0+^6=A3kgV->b>KLRwYG_Ua9ouJE)E3YP+*blOex}fKlsBw( zaLZM+HggqaeHNLEN(i>k*TYZHxDU580BYOI!`~2Po-VLJU5BSCSiW)l`G6N$3J-#{ z3*P(|g3ROA59E;5<9-EQ zoX{dkboR*KhfDsbCO(=z<3V_`Z0G++<$qL-C|ZaN+$%zy51tN!L+LP*^(q3(O-pl)a_G@1-5LRTYc}rR5ayG28OTU_aO3wf?AARiXh^?Orhcd6B&cTLBN_b^m7c6x zm$C4XWT1EUsqp4zpot;oG@q6tBfwM2tu>UvLYG1Mur-h8FUzj{p3o0jcBK9{Fp5cN ztRTs9r!+!ljsj{N-i|~tedGI&DBzKQnZSptZ(KUaX-*S)ym4V=?uiyg0(eHFJ@wAP zv4O7>@!`Eb`&`Xp;k{0uo93yD`o!|@!eyk4t|Uit7acd}A|44||F#532>Uid%Rv)! zFBjBO(Xz{E1%7dPFW8KSHx}NFBRqAfgtiFKI7?=;0cdG7WjRHe-~lm^u6ZMO9M!y@ z!w-HbT27St&CWG0qhQOHFQX{mcWulr0U2BK73j+6OlAcT=5&ZdtzWIu951qx~Hl%AQ>B%M(QtTH?H=e+cwNwTb#gMFKL zSBZ+cQ) z*>02w_6Ozm!ys>e`oA%b$T!`_B16xgt}LKcbu4CSk$jhIkW=z^tWj{b6=`|f=nGbm za=$)R4z>fk)IT`};gr*m4 z03GFh4=e7AiZeqa@H%GAPmtci*Z5NauD;_IKbG!3CpfI?j6o zJ09snYeINl{!W&@>h9f${S1M!;`OMS`W!(m$Zpr)6&_h#m@CO3}X@7_fBs@@Mg)mOpx{03! zP#=DX0!zdrvWrEgAb%BU6}_4sA4rExp#IZN%)E@d$s7YiAwZ7d#n%Tj;UUS_um0rn zXBEdE40)oetM9!V4{tj9^wvjGpMfsIcMC&NK~n!|I~`V#7-*~ioB3HgoqNB0K8mD% z-2^9HL__zMF(jPi*R2WcC>ob9JYjpPkYZ$fmZ$^B%C%E^lF%{dDuYI$Ft}LQPZ22q zw`l|v-Z+1GFVmBdqX97FZik$uDNbMR>O;a)?u9(D89skkz=MWo9RE;*sgEoB$Alw@ zw8Ah^m_DtXWPn9FQS7W`^&-{jEK%BI@VV53T#1}V=G}((r|FvX-wzqmjU{!|p^zuwZ^f+<_{>6Ya#IDtPI$cRU`{yE+ z)822=AN)DzC?plfo?HiXF!5Y>OXH+*EX&DbOg)V>=I}y^mN#!;_v_4A#G_SvJ}i!v zK83BVYB>E10{**3Vic(yBMYt26SXJ1)CfE14UNGm8U{=3r9M_VYtyQsRhnnn)baEY z6;YDXt>jh3g)aJ=Va6$E3Rs%8babHc+b>%h;4{MV&mh#s#odl3I zi-ODCleOSz|2s}v((=x3W>#Kg^Q1IJw9XwdCpUO|#0ra1?fp@R-jhHUArcFO=P{;1 zDCm*3G|1l~8Q)oL;mMk@N^LX*#v@69Z(pQ+@oOFdpljpvy!%qa4DBbNS*>rELCjaR zm+fc<{D^Ns``_YHGZf4A!0@|mLhuPB4Q_Ad1b#$W(78~bYAHkR^C@j8OMS_nJ14jA z3#YQTP?qLRo8lHC#mGG{jusvXayo0|k__FDBtOR`R^Rm%6q}nfz4ik=pD)k5DrBs@ zK&RnX=7Dt1@I+LyyugyP5|TJCvbjPC>Tmk{`&Hd1m}w8=Uf@uu-40qs3sIZX1-OR7 z%lWF;fwGV+_BS}(YOEo-l`TY)Rb&&uZ-)CWU97&@Z2xLYglC|I_%;*tBu3fhF&Dz; zFVj&>2SyhD)$=0)E#~r3Oq(L3bU?dpjJXwk*t+FmG_Q{&v78d9vvxP_W7De18877( zEA$N?dYGYmT3Rkdl1uXncJt_vAp$Ya7A!sE6L-IZjo)P<-sPphA7* zcPXUb>`5ou&1iPqZWVgayrT0W>q@j*rBFwlG*33HGt#w^IB)R3!n%@`ow1>-C4UXC z^_8I5n(uZzggB04l#8NTkbXb6zR4$vOTtO1K&F5#{n2}J9F5JjIR=0OVhsLrMXw}4 ztGs{9?5Y&fQJMDHw4Nx3w*CHVC4W_4T%{nBv{#kTVy6rPP&bm%sR^h_Il2iZfVM%^6vs zl!UtJpK8dMo3fG{nF2V67U>R?cnRbbd%Or#T_v|)w0z}JR2CGH&;r(JGxYufhD=*> zu))a}MkdWm-@c}egQ)D(3C2#34>)yznj?6vIP3cdIT$hz$RwdjdgkDYV9|s9<$+vP zgb7ygc@lzm`(LU4#)%3St82@9U8g3!Y z3d$PSuMF-`bp6dO>Essp}Le%<8~=jkuMo|F1IZ+oh4> zdF2+lt1S@@6l5{jw)+>PAzwap#=4@epO85LsFUHF0)s8q@2<~%sSpqWI==m{F`gl> zUrk&>uuFK-&u#;#tYstj@LP~3^FAA0XVQ>RzHpNTuwX08wwNDi5h&r!=EHiZ$R)rx z(u8KB4ru_3#xecgD?}F^23ai{)x-a9*Uae8tw(3)H9NM}LQQ_p{i*Wrv57P#Dd!^XXXE?NE02=Ob>2Crke zJd52BVvg9_epT=GYI%3W@wqx2{Kdf+`+_*GeDg`sF$4p4ExjV8VLre?KDP=bXyNeL zBwz3piei{~h5>{0$>zG74|!KItQhfuq~rnh&*@8ZOfG9so&x2B@V#fmas1e+jv!0S zv<}WJ)2aq)aTmA<;JqOR%zoxQ&NF~6@+q-)E5YqG>}_xm?|iN^*|>8VGYvS> zkpHUYNu(p$)!je;-3&Nm4&SF^zH{z2iM_@OFCKEyM=7c^Ii|;AfgF?QH^24F=ZxQd z3x^y}Scpl8j%Sud?&5-JPzmoraZh!0BKI5sGMM=Cxf0tKEyk%xXbW&c06z-HeD_AN zO7#vUF15zasb)I!Tcouf*vhT3QzNN!=}U#IKev&{MbdfmqE_Y}6E-hgcvq#atpq=n zc?bj6xyGo!CYQVpt#1a@u+zU5W8M9Wz_n3>Ljq~}Vl)?jD?EG;xw!%4@Dm)BH5Xqi zJh)v+;~+B73k@?p!bX(B_RS{%mQcJoQ5Dzd*~Jj76$(I(AY(^^xMo({zxX@278zTw z7Ccl@o|l_Am1N!{5vjRu%&>iNW^CV>-sX~|?IbNs`jU{I6?qg@sDgu#4s5>7=p0&$ zHtBWP5d<*VZNzLC<;k-%4F|XYB0X~sz3#W-Ticc6sz^iz=5xY$ooultmtAt>w!m#r zW4%R4e&EVW@gS3dz7Xyd4&fxJBsmKV^Phfffgd8gMiREuzcp$AH&*1J=Ge30`$Z&tWq1^|-qvJUFIw{LN}P$rrISb%kz0+}#H zut<{WJraUH`m&}~?hA5F{+|E|DB?}DT}}^jRr0yV>IKN8Jm7p^r^J>0&;Fz5xfxIr z*7qPu)NA?=ajpoIL@Ey=|Kr!~(F`zxAhI>LIY?V$M&?J}F6#g=_BHJ1qus{zdxPKZ zumFLmcrIsrYwDHIp(Y6MU1Ql@+^i({T>JfpJ8YmzW8jE*d`MvUz7txI3ZX$VIj6HS zca1|`8wBw1Uk7U_TVNO(iFIC+0~yjnx!Q)ftt3Ms#V3!p(kAyJmZfcj$Qp|G_b3R3 zEme=YZVKVq3IidTD`G%4LNguB>*R~3xb(q`&WIW! zdD?x-(5OqB(MVaG`|=)15}Rd1HXcpU`0ZJ9Pmde;Tn5?;4eXc5{+{324-U_efDZrH z#5Uj1_r>?%b~RyFSO8CC?9|CquX^PPt4w=aKysGlYn}4bxn0F9rCWtk0G zt6@gtPeEA$@X-z0wWo$z&+6F6LnMCE-eLo#j8O;ougLOGD&SY-Rbai$*rLS#NVGo7 zY3xym+-3)U2>o<%2;kOcj)$Fpou`5T1TVxq{EaY0RSDbW%;(DI;}W83o)xjNS7_5}wxO<+GgslA-?^jk&PxlKqm z!yhA{iumi&}B6rg$?*hcVA_j6kR_$;tO3X~)_?2=#o%wN>zZCwsJ z1uecSe0(!T)>^1}2KNYB2IHtiM~TQ&Uu3hWjMIA`LDk_k!-UNp5BWXCOWLj`udl~Xu)yb|At4~lkO zq5!*5M9d^rWUcktjnnp_tGqxON|uwcNAD-(1Fv(B)W~2XKr%?-Xcr~bt0!5La);2( z85uCo_TbUw!|`}MogyIR+-D3%(pMG=3;yZ+vjS&tu2FNdn;XorF!zO+uae`GtVCYb zSJ(9);aA|3*n8oz%YXa!LZ&J9r^L9z%3M)_ir8;SPhzKJALL!{Z`HW!!KuvrQa%_G zjo*ZmJ&d19wc6eQh=K6s#Z&4gJ)TtSK%v8lyEmf9CZVy1%t;tp0pb~Vk^SQYUpb9Z8zJ+Pe%fIVo6IasoW zxNfX?Q081Tz1-H$1AF1|k|?Q$gD%U$lYWX7mrd>S#6TJ+nGuzEbNu%ke?@_wVwHwG zuX}L-nD!a|aB7hFeeZP)PNwzUZ20OjDKKP%>$Kf5yT`HJ#1&;-6ZJm7asP!2SkP=w z$soa8c+ZN>bWqjVYU)~mNB1rqGG*geBQ$-h4srkL^+0th28qA!*h6Te@6 zsK8mVc3O$4lGI4OB<|O&hmXasg?hnw4ZloD!Q2=rb;nwgYhc za4T?&_`hiS7Wyyd^MHIc<;L&x|BNV{Cn6AzH<7n)`s)dN=C`$Sf0Ea1TY*x*2j1- z`TUjs^X`J|wBOsvPQmBORIxTwf>3t=I0ZBcS(X~_t~wJfw1cx!Kl<-!lQGsd3X9yo zQv9}$0-UBmR$Plj&%66Z`kRkm5%?OMPf@v4uP|868yd#lFNV|e?}1h?2+h}o(d1QB zxeDe#n<_TkMQ@CZ`wgok{GnvGGwbp*r0uOB1rTCTrlC))vrDDrMuoQ|8+!Cp0U6vC z=K=W!Vap8t$Lrpe+40?kGK}dJs?HF=iHPtrg+S$Sdh=JeU3skb_PezSo61%xG(#9lTs*1C160+btd7l@Xn~d)a8@&)=dy;lcyFl zIu`(_Qmq7zzt>}B%(nOa@-+9<>n3s|=5;8&&zEe?*FVKntt9di9yi+m?Z=7lqq5o| zJ8@(0NkbXiUy=!8>6e_@hAKhkUq1!0MfaxUUTC^WnE#>}T|iqjI^Wsg?|zB9=p-s} zAsR$Q^<7sr*2|_7=8qyhw;Q>Hi)EPu`zzavPZ-hQQzL{G6TjT5KtPF1KPiQp*?>{+ z`~7A;T}%|3TD-6^aqoL5|186*uW}H4sO|(6KuB1La0Vg`+F{FR6uf}shO$nVlfR|PBNP0ULBfQ%4q9*ibd)@uy;hr6eswobNg!8# z8_m*PKJ)>s4&izvohp{7%wSE!{h#i4S0AxvVx&rnewi=l-#DU&7+5Ew)vv`4e(;ow zmF8)nX(I;To_J{y`)8?f^StxLS|j}pv+Ko#`k#2TFYjLbAvfbl65sN59|^JvZ?yPY zPMYI0mT2RvK2=AHRpinZQK^_9u_ihGlg%fELBN6rzt9Q)EuDi54M#oc2u+Y+(5d>k z3w~-67O#*}k`V8PvQfLXkdh+pFU5bn@TOG3qqU2^1839xy6-0WH+>{Cq2*H_9GAuw zo}aW*`j7!?SpN>kt%@5j9u8d++xNF$&wdW=d@uBclu7~xHT`+h6ShWJHKzpLij!VEO2dRRaSboKs~ z#>A?8ZvK)3#(|x*8~pe<{v#THWBS{0@I8y(h&Ici%5{m9df|Me)I%Gt4$2~GqKzg| zc*7?ncW*gA2*3r~X>c}D(%HXW2=qK4X@`3XzKbq240(-=A5>R zk-mCZ(iUYly$CoT-`4i)T?oc835^89*p1%Un8K`E7nHfy=4cJb&qw_EX4-u#Prl1ekoAeWek zSC}xY-~*xAHOWkWCd6MyK&JNn*YVtC?ZTE{XV^W2CTrD0X+q-GURvv&O7e>A zl+D%Am~WV}Ksi8TpH;Hm{}IY-6R+A-nq~dxV#BX~g!OTR==Y6w8S{hcg4u-7xc0ww z)A66myoq{%nw>hCzS6=!-Y zS}wh$0M1jCDX&Y@uhKf07fhyu50}@TYgC(a1G~hmePbdUOoj`zO#wN9DH2hxVWZ~2 zB-Wdl=Pt$Wy;}5|)tT%IA*OIG+dT<2G+?svCwt?^#n1zMqg#ck_uLY*zbGwGje*JJ zpZV3Qp~W{Uo*Rru8a+pI-Q|S^pCBy*kuf$@gAeSBv*d$@z4~?2^t!!Bh-6wh@9~(# z^V+ST&xN1d#SUq$^ngPpe!a67t|t=2RB;^wg~Un6?WJLf8Zj_VEZ}`0QO-Dz6Bld^ zlS^SL8%DeE>%@c+Xy|J#zxR(=d!gfgG-9Rq#Ma*6=__apR(Kn?t4-03C{KWqlSKEk zLChj%NK4h% zTji2O%{g;&r#X-}K2cIv#GdM3RB{u&Cq~uV@Y)-~0ItJw$0T7)QHkL1py4QLrN#(U zr~(ITuu*DVXAkdrLYY$Q-U+8LsSku9f~bq#U4x2!FfTxB2BS&*PS|W1h|KBc3k?(Q zYszDsIb(JyL_IQn1~7P6sPDy6sTqwWm5JT-s)Ps%0}P(ZJO1}&x~3cCOKH|{=gT=4 z3T&GBEN)!4Z@F#mMm_=G*iLFqlLuSDTV`*DVV{`XCf-A&a~6?#@4S9;0ACq63s36$ z{f&Ia5)8j})!9dFWI#FsE7U*B^opO!#j(z4&_BBsz>u_7NEh5_T59K_lO*napfX?c z#RYh1d}*)EkUYNm0ZxgO7pB>bE+Oc|&9a zDhirJu$zBCKE-Yfa-%|jAhVv*Upe?0b;z|k6v5R7$*^fwvp#(?Blo~(|E-(yu&Oox z7YXmZ`sTqZwafW7CLR~cMD6$hXqJ?fZDz}ROP8ZrdV8T!43eQ!vYw6yS%LKB^7~Qw z2fSbxp~V)nsnafbX>Q<}D>G;LFI>Q~Q1}+N&{DnAp;AdAPMw6puE3V|b2TPX zrKJ>ydB=y!yy4&6!RAfM!$R-v2i)WC@iQ)?r?YtDT@PmM26oO=8?Hp%o5ec0w1{Hg ziyV0rYa;E?D!;G1Q8qeK(&{XL+ZfT~x3-x3u5vzH6{cJ;{i^8PfAZj(Y0S+ntw9Js zD=o;p%s&2*LOnHor~~~HVSHcyP%_MQ>p|w`w&ADAOhHyPRJT1IRb1K0b^Ddf?Rzok z`Hog`Uv#4%r$%@DX5Uj287jj&H|uoBoa`&K=Bjg2P zj2|{OsHgar7Cc~kITQxC4?UZt+C11Emo7KDEfm=yR@7&ks0HWkZG{gJUgkgda7oYfDTdfgv5P9KYI-UY1w_Z9zOOvy<2fw4`WVzx7Wzf{ICVe4z7ZJ zw{eL(+cW!*IIzy6`n|YIUn$u`vxNg^4%pg}tDD|!o21Ddui#A)p6=V*Ce_8!hKydG6MqhNyFI=e=0CxgSHccAK%kQ!Lda$~4(8Po>GJl?h8HuDn!OzdvO=DvZhf+A zsS8LZb)5M8QL54>z$)ylldGV-z;T@kYgmnzw)Wb5Vw*SEv*4kFpClulPWm{;yLOJ9 z>aR&BA?Rq8{vd-DgzWE6o=@t@-gLw@|$O zGGNZGTJMM72xfm_7*~)HnUdbYX-LQ~3N>-ssY`fc)jn_VuPf`T(&o?GGBQ&>+$n#Pr1)OZ1^Tp1j1PShZ1fT z2J3ay@bn(i6U6zVrSuo>4Cl;PLgTphC;a`|u)4Mxu<1I;ty9(MO}z;R{Tsq1J*=JdP|7qyh`n&>E5H`sEqoDykIaD1Z# zY+Us~U(R)jCM9YLOhyK{<2$g;^?lH06pV$wwJHU2`CDJ*fz-0oHF6i^uj$uM9KqQ^ zd{*b`2G!U~FABu@g6qSpaGzhDlD=j#5I_FzZcb*V5n}Lu#NF>W;Oh371K6QMJLRT) zLEgi9F7BF4N7gl}dFLGj66ot)yia9lCBy7qUlBXPVgw&UHY`T>`x-TVpmr}k^=ZzV zFc3z@Ona3`*ki=fJn6jTmjk-L(r@0;TI14`9v8|&_v68j9ly1i;85!W%XUj!7>=;@}6S za@@hM^mXo$;NfQyM*@Pa+-}C-PFUBtz6`%P6nH>xFY)avqOP6;4cK;`=COMj=Z%a< z+_yb#k^69=k+}Pz_0VUPdT?!euq8EMuQsu<2h#q+aN%GNXEB8H{E1*?x-prlKJTB~ z`X}#R_odEQl47B9@tF;BbsH^?lx05=#_*F;O7y=5{XcciXO2z}aVyYHed{{nD)IW0 zUTr1QzUb4nht*>QLn#|*RPi!a8>tpIxxv(ppA@QfR>#MN;zh!phe307(&>}xml%GP ziN7CoaiK!nyf~ zi<_+UBwC8QKzV1Ix2w4&t>c#R!2}Q6_Bq3hk;NbcTX}r`BiLl(+dsZQ;?^yF7|s#k zd#63^)&eqBOgg)~LTdk1Apq|Jn+-Lm$2h31Us!3Uj@(y_U@T?l?;q$}DX~KCK-T` zpk!WxNzjFSG}pnmWey16D0S=c!|`*3nCT!I_ZYaE5fyb}2l4#UlD3X@@sf!{F`l?( z{&^-NF=pU;>QViNr4!$UCLL=YHgLT;^GDBlPd4A=qV{Wjccb1xvTHj+F0b)A$@MHR zsYv_U+9Z9do|;o6r+Yl5)))wPi7?Ymp0D#4q&Bq5v?e~xX?r;^nN;Js+Y&xzNm6T= zsdJ5D`=rUiPT{|APgk_t(Rzzs?Ee}NnSOy(WI83?gUB2$_7q>}A?C(E9gAWmuce%OOyC!hFq_3%3Ul&0^XIzuhHd8xI00)?E5XQO8-1)BF|8ZPw4MG znT7zN;gGx6TLq;mL%tv=5*Nm!tTT#Zg&CP(MJ%V*o+8=&we{(*OyDs}i!=EL$-LUc znM4k$xPAs9d^d+LUT~F)Q)PX=RIe}GAST5#s%^WMKznI$GQ5^I{?=Q!tQ(Yd58uaV zl<1G85CB>cXqBU}R9^Lua=|pDi2b|692@vitL){6TvUv&@kYO!HJR6|a@kyq#!zrx z>4-zJ{n;lnlR2c<&pDL`fQh2>$pfGhIxViO(;&<`3=VAh_J7-}DxUGy4X?5=QXNUHbv!LNy#Wt+boh%k*|aSA zNfif9IhyHbO@`ljVzXbAU^0i>$61~xz~EAc9| z(pKxrnlntPz@W&cX)0yy$zlj9q2yQLA?wpmTta66$946!8d2}|lf$Fh2`^VXf?VNx z2bbT59)l@8&G6eDc{(a4-*QV9Y(0N_*_`aVCdx0fb$FV0)W+v3j#$Nv?v^2*{`8)E zPvW*)yxCfh%73kpckEi8R76Lp`;Kh&#>O3y*7d!~*3t;k4z^8<$l0^PL5X+UtQS-g z^2sNZZHs-(VnSUK({74~eU44ZpeK^*FH+2x}MSpd{ ztyJJ$Wkg8p>Nmiv6QPWIAkotqsRAHlH>DrX7A#$xmf7FNYnEIb=vc2R9Lk1yTOLkdZ75%6S6D}*&@|guQM7Zao1zQ7-)!e z9e&pU@!PIM$rCkvrU`VkMA3{MtE~Xf3ciLQw=pBNB}{{Y-Xo-d+?|YHI`X?j{eTZi z;-ylmAIjg%ZaNuwoY3Pg86u4K8n{H|%+bqEUSt^m$&w=Qd__Q$?mOWga7xMvvS442 zM2pp^25ZrrkoysQLs#dE%4I=9ZD*Y+f{!fH@$6sbK-bhhBTZrv6jeCaZD~RNI|{S? zE4I{L_w57_^UVG$#xw5zOBRI69Tho$Cw^WKoN&)(pmc(pYsD9e+BPei_cYR6&#mqP zy$U^D;w^NSme1KOj?f`a+{X&t#be5}`D&oL(xMPu`bq$(C;JDtLJPii#zmM8i^?y1 zDrp;V^tm2<^W}5L^FoY#t^Vh#5Q5)%2`g0oEvGjhAZ^Oe%3^A|#AaG4pz769jEi^s zXB6<&Ael2_LgjBy2=dlIitR>IHc`B>Dq8Owp*Rxr+&P|OT_ay2CFqHFHzv$U78Xf& z3<;28qUPBp6*GJNr3DJKU&+Wp@L}G#qT|32ByrDUSyrf=#agYd6Vx%CP!lR=<~%wM z4imv_ST!F~_c2z65OK#=tl#V3{1I*3CrXFy_fc7m!nhd4D}pj_+#h>mG4$AbFcDh= z<=(c5t+799vIn$+GBK-SKIDV_+lt&fSIb0gl^2FHH-m`=w=oP?2CXqV1nT z%*eb2YhujT{y9dnH&3005F_>9))f3N5Hm{={6#0UO!ZXl*5u$iq(e$AeSNU5w%#h> z3Emo{{SWe(DRJ@gb~JuF^K7h5o)3nT-T;m4Un1#c@%o&R`3f~9j-<0OE~u|J@8=Vs z<@PWS-7M}8OB9*za)4^00>9%HoEn0G1*-H7OIR-JXI_jz;LmipeS%wSRVstk{yzQ7 zRj7Q5wR)KV86?RD-6|Q$SxE(@%qX>lJakWS-aU=sA#Hgt=Z8%0`SWxN4;!)VsJ2IH zJ^Se!3n(A2)*8Ll&6nHsJ*ib35ofgISD!nM;=^Z($@-y^?T4GL@RPLOyKd{-W_zgp zO%+gf^>hn~%Pn9XE;q#{I8R6}sUB2+ykQTao1S=Fs*-Xrh^*RNSnewTLyE;YYJZYZhQe8C))HG4ax6!BKM{}fgNzw}-3I7%yZ1$z*jsyj*!jDspG z=BMET3A7%B1Ea+=Ff&8~;;m8l?}=M$6xJcZoKRZ#7F+L2(Bb3Lsr;(98r=aivaNzF zT5g`xYpCu7H56Sbvmg46;Q;+C{P)ar$YhJPJY_QdniZ2J<#62GSrdj3+5h5=y8m&a zTp5zzR$}5nevKz#u@YQTBn~Wk>x~C~p0@|OsE(`eV);kgLaAElES){#Z{XH=AGS&x zWKmMusqQZs(RrH=Po%$ngNjvt@FwsAm1lVSzTi)*Q&?IeF#lF7Znd6*DqwjcvXHW9l^$}H6x|6yuPfZNd~uD7~Tds>?JFWtk0~~0R~z%Z9aHM*5}3# z_ecnlLnRWded5l+eN_Y~GRY<^>8IP&04K)9Qv&@n+%RK62GODvDVvI)5UD~cxiSJo z&4s$@3I%APYeJ5tF*NWKPEq)dCdWQdYa{W_wJ>K@>RsoUR_@E z`&M%)bM_LYFO+ry!kl^Oo22uiEAt~6hWxnEXFPy&4Dpyj^5fdM_8VD>(&r>85N2X1 zN4KDYpXhrhoery=+>j;K z>y}T09u59BupDx#+}Z*sg+41g2Y;ix$4~=`DBD=LY^F5nHZ2Z;Y=7iUPybG!9X?91 z9I~oR+^R$3eYQ)6p(t7X9m$_iJ90FPKT%?s$0}!|L6xS|_y@++c`Fx7pwcztep^!F zU{x}+mcgy1*-$itL$`*d%Jn3Wl5LwSUXEIy5>_$4-qPHY^UsEyf& zk;01-##JM-V1f5y_r1X*1rl1msu9L9V1_9aeseQHk}xjuf5Q@?@GYCDG)S&|@IN>S zOvwDp?f`7^TFV-oq`o#wXFb+J4sdN48Iqu)Z9 z(KZM>FzG1e)4jQ&M&^G0ied@)snx=pyp{`8Za#j}M26*+hBot*`&i0~0Yh1{TiHyW zf+jtgJ$B5!t02rmNQ`8ibQp}!20LtyhtGFQ|5&KM-U%m}4r@Fv^4ZCC;g!PQU*9Fj z@O^Rd_-4+UjJ=b-@6#1<-$h}?rRzubl zeAlsYL!>#rye&&-HgZH9T+43Z#7K5#8j&fEbA67Gb#G-$bip@SF!HJ8llpHRAOF93 pHy4LUn=2$Ga27Cp$Nrne*6`I}uNW-ESZHpt4_F*BFEk}z`wxU@Cl>$! literal 0 HcmV?d00001 diff --git a/3Design/frontend/src/components/GalleryPost/GalleryPost.module.css b/3Design/frontend/src/components/GalleryPost/GalleryPost.module.css index ec53b163..fbbbc26e 100644 --- a/3Design/frontend/src/components/GalleryPost/GalleryPost.module.css +++ b/3Design/frontend/src/components/GalleryPost/GalleryPost.module.css @@ -40,7 +40,7 @@ height: 500px; position: sticky; top: 100px; - overflow-y: scroll; + width: 30%; background-color: #E0D3AF; border-radius: 10%; @@ -51,11 +51,13 @@ display: flex; flex-direction: column; gap: 10px; + overflow-y: scroll; + height: 400px; } .ellipsis { - width: 200px; + width: 300px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; diff --git a/3Design/frontend/src/components/GalleryPost/Page/GalleryPost.tsx b/3Design/frontend/src/components/GalleryPost/Page/GalleryPost.tsx index 3de99b00..957ccc0b 100644 --- a/3Design/frontend/src/components/GalleryPost/Page/GalleryPost.tsx +++ b/3Design/frontend/src/components/GalleryPost/Page/GalleryPost.tsx @@ -10,18 +10,19 @@ import MockComments from '../../../resources/json-files/Comments.json' import ChallengePost from '../../CreatePost/ChallengePost' import PostAnnotation from '../../Annotations/PostAnnotation' import { message, Switch } from 'antd' +import axios from 'axios' interface Props{ postData: DPost, - publishedAnnotations: RecievedAnnotationData[] + publishedAnnotationsProps: RecievedAnnotationData[] } -const GalleryPost = ({postData, publishedAnnotations} : Props) => { +const GalleryPost = ({postData, publishedAnnotationsProps} : Props) => { const comments: DComment[] = JSON.parse(localStorage.getItem("comments") || "[]") as DComment[]; const [data, setData] = useState(postData); const [modelAppearence, setModelAppearence] = useState(false); const bodyRef = useRef(null); - const [annotationData, setAnnotationData] = useState({content: "", endIndex: null, postId: postData.postId, startIndex: null, userId: 1}); + const [annotationData, setAnnotationData] = useState({content: "", endIndex: null, postId: 9, startIndex: null, userId: 1}); const [anchorEl, setAnchorEl] = React.useState(null); const [downloadStatus, setDownloadStatus] = useState(false); @@ -33,6 +34,9 @@ const GalleryPost = ({postData, publishedAnnotations} : Props) => { const [annotationsVisible, setAnnotationsVisible] = useState(false); const [annotatedText, setAnnotatedText] = useState(""); + const [annotationSending, setAnnotatingSending] = useState(false); + + const [publishedAnnotations, setPublishedAnnotations] = useState(publishedAnnotationsProps); const setDisplayedAnnotation = useCallback((x: DisplayedAnnotationData[]) =>{ setCurrentAnnotations(x); @@ -74,6 +78,9 @@ const GalleryPost = ({postData, publishedAnnotations} : Props) => { } const setAnnotation = () =>{ + if (!!annotatedText){ + return; + } const selection = window.getSelection(); if (!selection){ return; @@ -83,6 +90,7 @@ const GalleryPost = ({postData, publishedAnnotations} : Props) => { if (selectedText && selection.anchorNode && bodyRef.current!.contains(selection.anchorNode)) { const startI = selection.anchorOffset; const endI = selection.focusOffset; + console.log(`Start: ${startI} End: ${endI}`); setAnnotationData(prev => ({...prev, startIndex: Math.min(startI, endI),endIndex: Math.max(endI, startI)}) ); } else { setAnnotationData(prev => ({...prev, startIndex: null,endIndex: null}) ); @@ -103,17 +111,38 @@ const GalleryPost = ({postData, publishedAnnotations} : Props) => { } const startAnnotation = () => { - console.log(`Start: ${annotationData.startIndex!} End: ${annotationData.endIndex!}`); setAnnotatedText(postData.text.slice(annotationData.startIndex!, annotationData.endIndex!)); } const postAnnotation = async () => { + let postPhase = false; + if (annotationData.content.length < 3){ + message.error("Your annotation must be at least 3 characters."); + return; + } try{ - + setAnnotatingSending(true); + await axios.post(`${process.env.REACT_APP_API_URL}/api/v1/annotations/add`, annotationData, { + headers: {Authorization: `Bearer ${localStorage.getItem("jwt_token")}`}} + ) message.success("Annotation published successfully."); + postPhase = true; setAnnotatedText(""); + const refreshedAnnotations = await axios.get(`${process.env.REACT_APP_API_URL}/api/v1/annotations/get?postId=${9}`, + {headers: {Authorization: `Bearer ${localStorage.getItem("jwt_token")}`}} + ); + setPublishedAnnotations(refreshedAnnotations.data); }catch(e){ - message.success("Something went wrong."); + if (!postPhase){ + message.error("Something went wrong while publishing your annotation."); + } + else{ + message.error("Something went wrong while fetching new annotations."); + } + + } + finally{ + setAnnotatingSending(false); } } @@ -137,7 +166,7 @@ const GalleryPost = ({postData, publishedAnnotations} : Props) => { Challenge Post - + Annotate @@ -209,7 +238,7 @@ const GalleryPost = ({postData, publishedAnnotations} : Props) => { }
- setAnnotationsVisible(e)} checkedChildren="Annotations Visible" unCheckedChildren="Annotations Disabled"/> + {setAnnotationsVisible(e); setCurrentAnnotations([])}} checkedChildren="Annotations Visible" unCheckedChildren="Annotations Disabled"/>
@@ -221,6 +250,7 @@ const GalleryPost = ({postData, publishedAnnotations} : Props) => { username: localStorage.getItem("username") || "Anonymous", profilePictureUrl: "", id: 1000, + userPoints: 100 }, "text": comment, "memberId": 1, @@ -273,7 +303,7 @@ const GalleryPost = ({postData, publishedAnnotations} : Props) => { }}/>
- +
diff --git a/3Design/frontend/src/components/Login/LoginPage.tsx b/3Design/frontend/src/components/Login/LoginPage.tsx index dd68f6e1..7976d8f3 100644 --- a/3Design/frontend/src/components/Login/LoginPage.tsx +++ b/3Design/frontend/src/components/Login/LoginPage.tsx @@ -51,7 +51,8 @@ const Login = () => { try{ //AJAX POST Request const response = await axios.post(`${process.env.REACT_APP_API_URL}/api/v1/auth/authenticate`,{email:email,password:password}); - localStorage.setItem("username",`${response.data.firstName} ${response.data.lastName}`); + console.log(response.data); + localStorage.setItem("username",`${response.data.userName}`); localStorage.setItem("user_id",response.data.userId); localStorage.setItem("jwt_token",response.data.accessToken); window.location.href = "/home"; diff --git a/3Design/frontend/src/components/PageHeader/PageHeader.tsx b/3Design/frontend/src/components/PageHeader/PageHeader.tsx index 9e903173..856dff7d 100644 --- a/3Design/frontend/src/components/PageHeader/PageHeader.tsx +++ b/3Design/frontend/src/components/PageHeader/PageHeader.tsx @@ -1,18 +1,21 @@ import { Logout, Person } from '@mui/icons-material' import React, { useEffect, useRef, useState } from 'react' import styles from "./PageHeader.module.css"; -import { Avatar, Dialog } from '@mui/material'; -import { CustomProfile } from '../interfaces'; +import { Avatar, CircularProgress, Dialog, TextField } from '@mui/material'; +import { CustomProfile, CustomUser } from '../interfaces'; import Search from 'antd/es/input/Search'; +import { message } from 'antd'; +import axios from 'axios'; const PageHeader = () => { const [profileDialog, setProfileDialog] = useState(false); - const [profileInfo, setProfileInfo] = useState({profilePhoto: "", tournamentPoints: "", username: ""}); + const [profileInfo, setProfileInfo] = useState(null); + const [changePasswordConfig, setChangePasswordConfig] = useState({dialog: false, newPassword: "", sending:false}) const imageRef = useRef(null); useEffect(() => { + fetchProfileInfo(); //Get profile info with an AJAX request. - setProfileInfo({profilePhoto: "/logo192.png", tournamentPoints: "1500", username: "User62"}) }, []) const logout=() => { @@ -21,6 +24,55 @@ const PageHeader = () => { localStorage.removeItem("username"); window.location.href = "/login"; } + + const validatePassword = () => { + if (!changePasswordConfig.newPassword){ + return "New password is required."; + } + if (changePasswordConfig.newPassword.length < 6){ + return "The password has to be at least 6 characters."; + } + if (!(/[A-Z]/.test(changePasswordConfig.newPassword)) || !(/[a-z]/.test(changePasswordConfig.newPassword)) || !(/\d/.test(changePasswordConfig.newPassword))){ + return "The password has to have at least 1 uppercase, 1 lowercase and 1 number."; + } + return ""; + } + + const fetchProfileInfo = async () => { + try{ + const res = await axios.get(`${process.env.REACT_APP_API_URL}/api/v1/users/${localStorage.getItem("user_id")}`, { + headers: {Authorization: `Bearer ${localStorage.getItem("jwt_token")}`} + }); + setProfileInfo(res.data); + }catch(e){ + message.error("Couldn't fetch user information. The site might not work as intended.") + } + } + + const changeProfilePicture = async (e:any) => { + if (!e.target.files || !e.target.files[0]){ + return; + } + const newUrl = URL.createObjectURL(e.target.files[0]); + setProfileInfo((prev) =>{ return {...prev!, profilePhoto: newUrl}}); + } + + const changePassword = async () => { + const passwordValid = validatePassword(); + if (!!passwordValid){ + message.error(passwordValid); + return; + } + try{ + setChangePasswordConfig(prev => ({...prev, sending: true})); + + // PUT Request + message.success("Password successfully changed."); + setChangePasswordConfig({dialog: false, newPassword: "", sending: false}) + }catch(e){ + message.error("Something went wrong.") + } + } return (
@@ -52,23 +104,39 @@ const PageHeader = () => {
setProfileDialog(false)}> + {profileInfo ?
- { - //Send AJAX here. - if (!e.target.files || !e.target.files[0]){ - return; - } - const newUrl = URL.createObjectURL(e.target.files[0]); - setProfileInfo((prev) =>{ return {...prev, profilePhoto: newUrl}}); - }}/> -

{profileInfo.username}

-

Tournament Points: {profileInfo.tournamentPoints}

+ + +

User Points: {profileInfo.userPoints}

- + +
+
+ : +
+ +
+ } +
+ setChangePasswordConfig(prev => ({...prev, dialog: false})) }> +
+
+

Change Your Password

+ setChangePasswordConfig(prev => ({...prev, newPassword: e.target.value}))} + /> +
+ +
+ +
diff --git a/3Design/frontend/src/components/PostPage/PostPage.tsx b/3Design/frontend/src/components/PostPage/PostPage.tsx index 61b2063b..5510ab02 100644 --- a/3Design/frontend/src/components/PostPage/PostPage.tsx +++ b/3Design/frontend/src/components/PostPage/PostPage.tsx @@ -36,7 +36,7 @@ const PostPage = () => { postData ? (postData.isVisualPost ? - + : ) diff --git a/3Design/frontend/src/components/interfaces.ts b/3Design/frontend/src/components/interfaces.ts index f2d2aa35..bf25a48f 100644 --- a/3Design/frontend/src/components/interfaces.ts +++ b/3Design/frontend/src/components/interfaces.ts @@ -59,7 +59,8 @@ export interface SendAnnotationData{ export interface CustomUser{ id : number, profilePictureUrl: string | null, - username: string + username: string, + userPoints: number } From c731eac68d57897e7d717ef497f3d11163bc89ee Mon Sep 17 00:00:00 2001 From: Deniz <160037328+deniz6221@users.noreply.github.com> Date: Sat, 23 Nov 2024 15:35:21 +0300 Subject: [PATCH 07/28] Minor photo and comment fixes --- .../frontend/src/components/GalleryPost/Page/GalleryPost.tsx | 2 +- 3Design/frontend/src/components/PageHeader/PageHeader.tsx | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/3Design/frontend/src/components/GalleryPost/Page/GalleryPost.tsx b/3Design/frontend/src/components/GalleryPost/Page/GalleryPost.tsx index 957ccc0b..daf23729 100644 --- a/3Design/frontend/src/components/GalleryPost/Page/GalleryPost.tsx +++ b/3Design/frontend/src/components/GalleryPost/Page/GalleryPost.tsx @@ -265,7 +265,7 @@ const GalleryPost = ({postData, publishedAnnotationsProps} : Props) => {
{comments.map((item, index) => ( - item.commentId === data.postId ? + item.postId === data.postId ? : null diff --git a/3Design/frontend/src/components/PageHeader/PageHeader.tsx b/3Design/frontend/src/components/PageHeader/PageHeader.tsx index 856dff7d..7393a111 100644 --- a/3Design/frontend/src/components/PageHeader/PageHeader.tsx +++ b/3Design/frontend/src/components/PageHeader/PageHeader.tsx @@ -54,7 +54,7 @@ const PageHeader = () => { return; } const newUrl = URL.createObjectURL(e.target.files[0]); - setProfileInfo((prev) =>{ return {...prev!, profilePhoto: newUrl}}); + setProfileInfo((prev) =>{ return {...prev!, profilePictureUrl: newUrl}}); } const changePassword = async () => { From 3b9c7a3d991543c9685a84c418f06ddac13bb8a1 Mon Sep 17 00:00:00 2001 From: Deniz <160037328+deniz6221@users.noreply.github.com> Date: Sat, 23 Nov 2024 17:59:04 +0300 Subject: [PATCH 08/28] Annotation for discussion posts --- .../DiscussionPost/DiscussionPost.module.css | 34 ++++ .../DiscussionPost/Page/DiscussionPost.tsx | 146 +++++++++++++++--- .../GalleryPost/Page/GalleryPost.tsx | 2 +- .../src/components/PageHeader/PageHeader.tsx | 2 +- .../src/components/PostPage/PostPage.tsx | 2 +- 5 files changed, 158 insertions(+), 28 deletions(-) diff --git a/3Design/frontend/src/components/DiscussionPost/DiscussionPost.module.css b/3Design/frontend/src/components/DiscussionPost/DiscussionPost.module.css index 8f980408..a3982f0b 100644 --- a/3Design/frontend/src/components/DiscussionPost/DiscussionPost.module.css +++ b/3Design/frontend/src/components/DiscussionPost/DiscussionPost.module.css @@ -22,4 +22,38 @@ display: flex; flex-direction: column; gap: 20px; +} + + +.annotationContainer{ + height: 500px; + position: sticky; + top: 100px; + + width: 30%; + background-color: #E0D3AF; + border-radius: 10%; + padding: 2%; +} + +.annotationDataContainer{ + display: flex; + flex-direction: column; + gap: 10px; + overflow-y: scroll; + height: 400px; + +} + +.ellipsis { + width: 300px; + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; + position: relative; + } + +.singleAnnotationContainer{ + border-bottom: black; + border-style: dashed; } \ No newline at end of file diff --git a/3Design/frontend/src/components/DiscussionPost/Page/DiscussionPost.tsx b/3Design/frontend/src/components/DiscussionPost/Page/DiscussionPost.tsx index fd0f9949..48785fdd 100644 --- a/3Design/frontend/src/components/DiscussionPost/Page/DiscussionPost.tsx +++ b/3Design/frontend/src/components/DiscussionPost/Page/DiscussionPost.tsx @@ -1,23 +1,38 @@ -import React, { memo, SetStateAction, useEffect, useRef, useState } from 'react' -import { DPost, SendAnnotationData } from '../../interfaces' +import React, { memo, SetStateAction, useCallback, useEffect, useRef, useState } from 'react' +import { DisplayedAnnotationData, DPost, RecievedAnnotationData, SendAnnotationData } from '../../interfaces' import styles from "../DiscussionPost.module.css" import DViewer from '../../DViewer/DViewer' import { Bookmark, BookmarkBorderOutlined, BorderColor, Download, MoreVert, Shield, ThumbDown, ThumbDownOutlined, ThumbUp, ThumbUpOutlined } from '@mui/icons-material' -import { IconButton, Menu, MenuItem } from '@mui/material' +import { Dialog, IconButton, Menu, MenuItem, TextField} from '@mui/material' import { formatInteractions } from '../../tsfunctions' +import { message, Switch } from 'antd' +import axios from 'axios' +import PostAnnotation from '../../Annotations/PostAnnotation' interface Props{ - postData: DPost + postData: DPost, + publishedAnnotationsProps: RecievedAnnotationData[] } -const DiscussionPost = ({postData} : Props) => { +const DiscussionPost = ({postData, publishedAnnotationsProps} : Props) => { const [data, setData] = useState(postData); const bodyRef = useRef(null); - const [annotationData, setAnnotationData] = useState( - {content: "", endIndex: null, postId: postData.postId, startIndex: null, userId: 1} - ); + const [annotationData, setAnnotationData] = useState({content: "", endIndex: null, postId: 9, startIndex: null, userId: parseInt(localStorage.getItem("user_id") ?? "-1")}); const [anchorEl, setAnchorEl] = React.useState(null); + const [currentAnnotations, setCurrentAnnotations] = useState([]); + const [annotationsVisible, setAnnotationsVisible] = useState(false); + + const [annotatedText, setAnnotatedText] = useState(""); + const [annotationSending, setAnnotatingSending] = useState(false); + + const [publishedAnnotations, setPublishedAnnotations] = useState(publishedAnnotationsProps); + + const setDisplayedAnnotation = useCallback((x: DisplayedAnnotationData[]) =>{ + setCurrentAnnotations(x); + }, []); + + const likeClicked = async (event:any) =>{ event.stopPropagation(); if (data.disliked){ @@ -45,27 +60,65 @@ const DiscussionPost = ({postData} : Props) => { } const setAnnotation = () =>{ - const selection = window.getSelection(); - if (!selection){ - return; - } - const selectedText = selection.toString(); - - if (selectedText && selection.anchorNode && bodyRef.current!.contains(selection.anchorNode)) { - const startI = selection.anchorOffset; - const endI = selection.focusOffset; - setAnnotationData(prev => ({...prev, startIndex: startI,endIndex: endI}) ); + if (!!annotatedText){ + return; + } + const selection = window.getSelection(); + if (!selection){ + return; + } + const selectedText = selection.toString(); + + if (selectedText && selection.anchorNode && bodyRef.current!.contains(selection.anchorNode)) { + const startI = selection.anchorOffset; + const endI = selection.focusOffset; + console.log(`Start: ${startI} End: ${endI}`); + setAnnotationData(prev => ({...prev, startIndex: Math.min(startI, endI),endIndex: Math.max(endI, startI)}) ); } else { - setAnnotationData(prev => ({...prev, startIndex: null,endIndex: null}) ); + setAnnotationData(prev => ({...prev, startIndex: null,endIndex: null}) ); + } + } + + const startAnnotation = () => { + setAnnotatedText(postData.text.slice(annotationData.startIndex!, annotationData.endIndex!)); + } + + const postAnnotation = async () => { + let postPhase = false; + if (annotationData.content.length < 3){ + message.error("Your annotation must be at least 3 characters."); + return; + } + try{ + setAnnotatingSending(true); + await axios.post(`${process.env.REACT_APP_API_URL}/api/v1/annotations/add`, annotationData, { + headers: {Authorization: `Bearer ${localStorage.getItem("jwt_token")}`}} + ) + message.success("Annotation published successfully."); + postPhase = true; + setAnnotatedText(""); + const refreshedAnnotations = await axios.get(`${process.env.REACT_APP_API_URL}/api/v1/annotations/get?postId=${9}`, + {headers: {Authorization: `Bearer ${localStorage.getItem("jwt_token")}`}} + ); + setPublishedAnnotations(refreshedAnnotations.data); + }catch(e){ + if (!postPhase){ + message.error("Something went wrong while publishing your annotation."); + } + else{ + message.error("Something went wrong while fetching new annotations."); + } + + } + finally{ + setAnnotatingSending(false); } } - useEffect(() => { - console.log(annotationData) - },[annotationData]) return ( -
+
(null)} className="w-full flex gap-2"> +
{/* Profile picture and username div here */} @@ -84,7 +137,7 @@ const DiscussionPost = ({postData} : Props) => { Challenge Post */} - + Annotate @@ -94,7 +147,12 @@ const DiscussionPost = ({postData} : Props) => {

{data.title}

-

{data.text}

+ { + annotationsVisible ? + + : +

(null)}>{data.text}

+ }
@@ -132,8 +190,46 @@ const DiscussionPost = ({postData} : Props) => { } +
+ {setAnnotationsVisible(e); setCurrentAnnotations([])}} checkedChildren="Annotations Visible" unCheckedChildren="Annotations Disabled"/> +
+ +
+ {annotationsVisible && currentAnnotations.length != 0 && +
+
+

Annotations

+ +
+
+ {currentAnnotations.map((item, index) => ( +
+ {item.username} +
Annotated text: "{item.annotatedText}"
+

{item.annotation}

+
+ ))} +
+
} + setAnnotatedText("")}> +
+

Annotating Text: {annotatedText}

+ { + if (e.target.value.length > 256){ + return; + } + + setAnnotationData(prev => ({...prev, content: e.target.value})) + }}/> +
+ + +
+
+
+ ) } diff --git a/3Design/frontend/src/components/GalleryPost/Page/GalleryPost.tsx b/3Design/frontend/src/components/GalleryPost/Page/GalleryPost.tsx index daf23729..9a463189 100644 --- a/3Design/frontend/src/components/GalleryPost/Page/GalleryPost.tsx +++ b/3Design/frontend/src/components/GalleryPost/Page/GalleryPost.tsx @@ -22,7 +22,7 @@ const GalleryPost = ({postData, publishedAnnotationsProps} : Props) => { const [data, setData] = useState(postData); const [modelAppearence, setModelAppearence] = useState(false); const bodyRef = useRef(null); - const [annotationData, setAnnotationData] = useState({content: "", endIndex: null, postId: 9, startIndex: null, userId: 1}); + const [annotationData, setAnnotationData] = useState({content: "", endIndex: null, postId: 9, startIndex: null, userId: parseInt(localStorage.getItem("user_id") ?? "-1")}); const [anchorEl, setAnchorEl] = React.useState(null); const [downloadStatus, setDownloadStatus] = useState(false); diff --git a/3Design/frontend/src/components/PageHeader/PageHeader.tsx b/3Design/frontend/src/components/PageHeader/PageHeader.tsx index 7393a111..1733ac99 100644 --- a/3Design/frontend/src/components/PageHeader/PageHeader.tsx +++ b/3Design/frontend/src/components/PageHeader/PageHeader.tsx @@ -118,7 +118,7 @@ const PageHeader = () => {
: -
+
} diff --git a/3Design/frontend/src/components/PostPage/PostPage.tsx b/3Design/frontend/src/components/PostPage/PostPage.tsx index 5510ab02..9c1fe53c 100644 --- a/3Design/frontend/src/components/PostPage/PostPage.tsx +++ b/3Design/frontend/src/components/PostPage/PostPage.tsx @@ -38,7 +38,7 @@ const PostPage = () => { : - + ) : From 18d079a221d249cf21a195725b8747059d4cfbcd Mon Sep 17 00:00:00 2001 From: Deniz <160037328+deniz6221@users.noreply.github.com> Date: Sun, 24 Nov 2024 12:16:47 +0300 Subject: [PATCH 09/28] Feed backend connection, category follow function --- .../src/components/Comment/Comment.tsx | 2 +- .../components/CreatePost/ChallengePost.tsx | 2 +- .../src/components/CreatePost/CreatePost.tsx | 4 +- .../DiscussionPost/Page/DiscussionPost.tsx | 4 +- 3Design/frontend/src/components/Feed/Feed.tsx | 74 ++++++++++++++++--- .../GalleryPost/Page/GalleryPost.tsx | 8 +- .../src/components/PageHeader/PageHeader.tsx | 4 +- .../src/components/PostPage/PostPage.tsx | 24 +++++- .../src/components/SideBar/SideBar.tsx | 2 +- 3Design/frontend/src/components/interfaces.ts | 10 ++- .../frontend/src/components/tsfunctions.ts | 2 +- .../src/resources/json-files/Categories.json | 7 +- 12 files changed, 107 insertions(+), 36 deletions(-) diff --git a/3Design/frontend/src/components/Comment/Comment.tsx b/3Design/frontend/src/components/Comment/Comment.tsx index 4b22c416..838ab201 100644 --- a/3Design/frontend/src/components/Comment/Comment.tsx +++ b/3Design/frontend/src/components/Comment/Comment.tsx @@ -39,7 +39,7 @@ const Comment = ({commentData} : Props) => {
-

{data.user.username}

+

{data.user.nickName}

{data.text}

diff --git a/3Design/frontend/src/components/CreatePost/ChallengePost.tsx b/3Design/frontend/src/components/CreatePost/ChallengePost.tsx index 1a70c748..54b1e72a 100644 --- a/3Design/frontend/src/components/CreatePost/ChallengePost.tsx +++ b/3Design/frontend/src/components/CreatePost/ChallengePost.tsx @@ -109,7 +109,7 @@ const ChallengePost = ({dialogFunction, challengedPostId, categoryId} : Props) = Category
diff --git a/3Design/frontend/src/components/CreatePost/CreatePost.tsx b/3Design/frontend/src/components/CreatePost/CreatePost.tsx index 6d5068cd..859db2c2 100644 --- a/3Design/frontend/src/components/CreatePost/CreatePost.tsx +++ b/3Design/frontend/src/components/CreatePost/CreatePost.tsx @@ -60,7 +60,7 @@ const CreatePost = ({dialogFunction} : Props) => { const fd = new FormData(); const isVisual = fileList.length == 1; const tagString = tags.join(", "); - const fixedCategory = category; + const fixedCategory = `${category}`; fd.append("title", title); fd.append("text", content); fd.append("categoryId", fixedCategory); @@ -102,7 +102,7 @@ const CreatePost = ({dialogFunction} : Props) => { Category
diff --git a/3Design/frontend/src/components/DiscussionPost/Page/DiscussionPost.tsx b/3Design/frontend/src/components/DiscussionPost/Page/DiscussionPost.tsx index 48785fdd..02e90810 100644 --- a/3Design/frontend/src/components/DiscussionPost/Page/DiscussionPost.tsx +++ b/3Design/frontend/src/components/DiscussionPost/Page/DiscussionPost.tsx @@ -16,7 +16,7 @@ interface Props{ const DiscussionPost = ({postData, publishedAnnotationsProps} : Props) => { const [data, setData] = useState(postData); const bodyRef = useRef(null); - const [annotationData, setAnnotationData] = useState({content: "", endIndex: null, postId: 9, startIndex: null, userId: parseInt(localStorage.getItem("user_id") ?? "-1")}); + const [annotationData, setAnnotationData] = useState({content: "", endIndex: null, postId: postData.postId, startIndex: null, userId: parseInt(localStorage.getItem("user_id") ?? "-1")}); const [anchorEl, setAnchorEl] = React.useState(null); @@ -97,7 +97,7 @@ const DiscussionPost = ({postData, publishedAnnotationsProps} : Props) => { message.success("Annotation published successfully."); postPhase = true; setAnnotatedText(""); - const refreshedAnnotations = await axios.get(`${process.env.REACT_APP_API_URL}/api/v1/annotations/get?postId=${9}`, + const refreshedAnnotations = await axios.get(`${process.env.REACT_APP_API_URL}/api/v1/annotations/get?postId=${postData.postId}`, {headers: {Authorization: `Bearer ${localStorage.getItem("jwt_token")}`}} ); setPublishedAnnotations(refreshedAnnotations.data); diff --git a/3Design/frontend/src/components/Feed/Feed.tsx b/3Design/frontend/src/components/Feed/Feed.tsx index 707ab56f..b51191ec 100644 --- a/3Design/frontend/src/components/Feed/Feed.tsx +++ b/3Design/frontend/src/components/Feed/Feed.tsx @@ -1,9 +1,9 @@ import React, { useEffect, useState } from 'react' -import { DPost } from '../interfaces' +import { Category, DPost } from '../interfaces' import GalleryPost from '../GalleryPost/Clickable/GalleryPost'; import styles from "./Feed.module.css" import DiscussionPost from '../DiscussionPost/Clickable/DiscussionPost'; -import { Skeleton } from 'antd'; +import { Button, message, Skeleton } from 'antd'; import { getCategoryById } from '../tsfunctions'; import axios from 'axios'; @@ -12,11 +12,19 @@ interface Props{ pageNumber: number } +interface CategoryInfo{ + category: Category |null, + isFollowed: boolean +} + const Feed = ({category, pageNumber}: Props) => { const [postData, setPostData] = useState([]); const [feedType, setFeedType] = useState(true); const [feedLoading, setFeedLoading] = useState(true); const [tabConfig, setTabConfig] = useState([0, 0]); + + const [categoryInfo, setCategoryInfo] = useState({category: null, isFollowed: false}) + const [followRequesting, setFollowRequesting] = useState(false); useEffect(() => { fetchPostData(); @@ -24,28 +32,41 @@ const Feed = ({category, pageNumber}: Props) => { const fetchPostData = async () => { - // AJAX Request with category - try{ - const res = await axios.get(`${process.env.REACT_APP_API_URL}/api/v1/posts/category/${category}/nonvisual`, + try{ + const followRes = await axios.get(`${process.env.REACT_APP_API_URL}/api/v1/categories/get/${category}`, {headers: { Authorization: `Bearer ${localStorage.getItem("jwt_token")}` }} ); - console.log(res.data); + console.log(followRes.data); + setCategoryInfo(followRes.data); } catch(e){ + setFeedLoading(false); console.log(e); } if (feedType){ const data = require("../../resources/json-files/MockPosts.json"); setPostData(data.slice(2*(pageNumber-1), 2*pageNumber)); setFeedLoading(false); + return; } - const data : DPost[] = require("../../resources/json-files/MockDiscussions.json"); - setPostData(data.slice(2*(pageNumber-1), 2*pageNumber)); - setFeedLoading(false); - + try{ + + const postRes = await axios.get(`${process.env.REACT_APP_API_URL}/api/v1/posts/category/${category}/nonvisual`, + {headers: { + Authorization: `Bearer ${localStorage.getItem("jwt_token")}` + }} + ); + setPostData(postRes.data); + setFeedLoading(false); + } + catch(e){ + setFeedLoading(false); + console.log(e); + } + } const changePostData = (newPost: DPost,index: number) => { @@ -68,13 +89,44 @@ const Feed = ({category, pageNumber}: Props) => { return null; } + const handleFollowLogic = async (x: boolean) => { + setFollowRequesting(true); + try{ + if (x){ + await axios.post(`${process.env.REACT_APP_API_URL}/api/v1/categories/follow/${category}`, {}, + {headers: { + Authorization: `Bearer ${localStorage.getItem("jwt_token")}` + }} + ); + setCategoryInfo(prev => ({...prev, isFollowed: true})); + return; + } + await axios.delete(`${process.env.REACT_APP_API_URL}/api/v1/categories/unfollow/${category}`, + {headers: { + Authorization: `Bearer ${localStorage.getItem("jwt_token")}` + }} + ); + setCategoryInfo(prev => ({...prev, isFollowed: false})); + } + catch(e){ + message.error("Something went wrong, your follow status can not be changed.") + } + finally{ + setFollowRequesting(false); + } + } + return (
-
+

{getCategoryById(category)} - {feedType ? "Gallery" : "Discussion"}

+ {categoryInfo.isFollowed ? + : + + }
diff --git a/3Design/frontend/src/components/GalleryPost/Page/GalleryPost.tsx b/3Design/frontend/src/components/GalleryPost/Page/GalleryPost.tsx index 9a463189..103e4388 100644 --- a/3Design/frontend/src/components/GalleryPost/Page/GalleryPost.tsx +++ b/3Design/frontend/src/components/GalleryPost/Page/GalleryPost.tsx @@ -22,7 +22,7 @@ const GalleryPost = ({postData, publishedAnnotationsProps} : Props) => { const [data, setData] = useState(postData); const [modelAppearence, setModelAppearence] = useState(false); const bodyRef = useRef(null); - const [annotationData, setAnnotationData] = useState({content: "", endIndex: null, postId: 9, startIndex: null, userId: parseInt(localStorage.getItem("user_id") ?? "-1")}); + const [annotationData, setAnnotationData] = useState({content: "", endIndex: null, postId: 1, startIndex: null, userId: parseInt(localStorage.getItem("user_id") ?? "-1")}); const [anchorEl, setAnchorEl] = React.useState(null); const [downloadStatus, setDownloadStatus] = useState(false); @@ -128,7 +128,7 @@ const GalleryPost = ({postData, publishedAnnotationsProps} : Props) => { message.success("Annotation published successfully."); postPhase = true; setAnnotatedText(""); - const refreshedAnnotations = await axios.get(`${process.env.REACT_APP_API_URL}/api/v1/annotations/get?postId=${9}`, + const refreshedAnnotations = await axios.get(`${process.env.REACT_APP_API_URL}/api/v1/annotations/get?postId=${1}`, {headers: {Authorization: `Bearer ${localStorage.getItem("jwt_token")}`}} ); setPublishedAnnotations(refreshedAnnotations.data); @@ -247,10 +247,10 @@ const GalleryPost = ({postData, publishedAnnotationsProps} : Props) => { const newComment: DComment = { commentId: comments.length + 1, user: { - username: localStorage.getItem("username") || "Anonymous", + nickName: localStorage.getItem("username") || "Anonymous", profilePictureUrl: "", id: 1000, - userPoints: 100 + experience: 1000 }, "text": comment, "memberId": 1, diff --git a/3Design/frontend/src/components/PageHeader/PageHeader.tsx b/3Design/frontend/src/components/PageHeader/PageHeader.tsx index 1733ac99..64a3f456 100644 --- a/3Design/frontend/src/components/PageHeader/PageHeader.tsx +++ b/3Design/frontend/src/components/PageHeader/PageHeader.tsx @@ -110,8 +110,8 @@ const PageHeader = () => { - -

User Points: {profileInfo.userPoints}

+ +

User Experience Points: {profileInfo.experience}

diff --git a/3Design/frontend/src/components/PostPage/PostPage.tsx b/3Design/frontend/src/components/PostPage/PostPage.tsx index 9c1fe53c..5e8103f3 100644 --- a/3Design/frontend/src/components/PostPage/PostPage.tsx +++ b/3Design/frontend/src/components/PostPage/PostPage.tsx @@ -9,6 +9,7 @@ import SideBar from "../SideBar/SideBar"; import PageHeader from "../PageHeader/PageHeader"; import styles from "./PostPage.module.css" import { Skeleton } from "antd"; +import axios from "axios"; const PostPage = () => { @@ -17,10 +18,29 @@ const PostPage = () => { const [publishedAnnotations, setPublishedAnnotations] = useState([]); useEffect(() => { - setPostData(getPostFromId(id)); - setPublishedAnnotations(require("../../resources/json-files/MockAnnotations.json")); + fetchPostData(); }, []); + const fetchPostData = async () =>{ + try{ + const postRes = await axios.get(`${process.env.REACT_APP_API_URL}/api/v1/posts/${id}`, + { + headers: {Authorization: `Bearer ${localStorage.getItem("jwt_token")}`} + } + ); + const annotationRes = await axios.get(`${process.env.REACT_APP_API_URL}/api/v1/annotations/get?postId=${id}`, + { + headers: {Authorization: `Bearer ${localStorage.getItem("jwt_token")}`} + } + ); + setPublishedAnnotations(annotationRes.data); + setPostData({...postRes.data, postId: postRes.data.id}); + } + catch(e){ + setPublishedAnnotations(require("../../resources/json-files/MockAnnotations.json")); + setPostData(getPostFromId(id)); + } + } if (!id){ return
404
; diff --git a/3Design/frontend/src/components/SideBar/SideBar.tsx b/3Design/frontend/src/components/SideBar/SideBar.tsx index 15a3185e..16822f70 100644 --- a/3Design/frontend/src/components/SideBar/SideBar.tsx +++ b/3Design/frontend/src/components/SideBar/SideBar.tsx @@ -13,7 +13,7 @@ const SideBar = ({active} : Props) => {

Categories

{categories.map((item, index) => ( - + ))}
diff --git a/3Design/frontend/src/components/interfaces.ts b/3Design/frontend/src/components/interfaces.ts index bf25a48f..e1726bf7 100644 --- a/3Design/frontend/src/components/interfaces.ts +++ b/3Design/frontend/src/components/interfaces.ts @@ -5,8 +5,10 @@ export interface CustomProfile{ } export interface Category{ - text: string, - id: string + name: string, + id: string, + description: string, + followerCount: number } @@ -59,8 +61,8 @@ export interface SendAnnotationData{ export interface CustomUser{ id : number, profilePictureUrl: string | null, - username: string, - userPoints: number + nickName: string, + experience: number } diff --git a/3Design/frontend/src/components/tsfunctions.ts b/3Design/frontend/src/components/tsfunctions.ts index d75972c0..ccc7204a 100644 --- a/3Design/frontend/src/components/tsfunctions.ts +++ b/3Design/frontend/src/components/tsfunctions.ts @@ -5,7 +5,7 @@ export function getCategoryById(id: string){ for (let i = 0; i < categories.length; i++) { const element = categories[i]; if (element.id == id){ - return element.text; + return element.name; } } diff --git a/3Design/frontend/src/resources/json-files/Categories.json b/3Design/frontend/src/resources/json-files/Categories.json index 3859cb01..afd05582 100644 --- a/3Design/frontend/src/resources/json-files/Categories.json +++ b/3Design/frontend/src/resources/json-files/Categories.json @@ -1,7 +1,4 @@ [ - {"text": "Characters", "id": "1"}, - {"text": "Enviroments", "id": "4"}, - {"text": "Props", "id": "5"}, - {"text": "Vehicles", "id": "7"}, - {"text": "Animations", "id": "9"} + {"name": "Testing", "id": "1", "description": "This is a test category1", "followerCount": 0}, + {"name": "Testing2", "id": "4", "description": "This is a test category2", "followerCount": 0} ] \ No newline at end of file From a99c808b58f53a90017e9d33b57d79bdbdf2f684 Mon Sep 17 00:00:00 2001 From: Deniz <160037328+deniz6221@users.noreply.github.com> Date: Sun, 24 Nov 2024 13:35:03 +0300 Subject: [PATCH 10/28] Tournament interfaces, new post endpoint --- 3Design/frontend/src/components/Feed/Feed.tsx | 2 ++ .../src/components/PostPage/PostPage.tsx | 4 ++-- 3Design/frontend/src/components/interfaces.ts | 18 ++++++++++++++++++ 3 files changed, 22 insertions(+), 2 deletions(-) diff --git a/3Design/frontend/src/components/Feed/Feed.tsx b/3Design/frontend/src/components/Feed/Feed.tsx index b51191ec..4cfbce28 100644 --- a/3Design/frontend/src/components/Feed/Feed.tsx +++ b/3Design/frontend/src/components/Feed/Feed.tsx @@ -26,6 +26,8 @@ const Feed = ({category, pageNumber}: Props) => { const [categoryInfo, setCategoryInfo] = useState({category: null, isFollowed: false}) const [followRequesting, setFollowRequesting] = useState(false); + const [tournamentInfo, setTournamentInfo] = useState(); + useEffect(() => { fetchPostData(); }, [feedType]) diff --git a/3Design/frontend/src/components/PostPage/PostPage.tsx b/3Design/frontend/src/components/PostPage/PostPage.tsx index 5e8103f3..e52bfb0e 100644 --- a/3Design/frontend/src/components/PostPage/PostPage.tsx +++ b/3Design/frontend/src/components/PostPage/PostPage.tsx @@ -23,7 +23,7 @@ const PostPage = () => { const fetchPostData = async () =>{ try{ - const postRes = await axios.get(`${process.env.REACT_APP_API_URL}/api/v1/posts/${id}`, + const postRes = await axios.get(`${process.env.REACT_APP_API_URL}/api/v1/posts/new/${id}`, { headers: {Authorization: `Bearer ${localStorage.getItem("jwt_token")}`} } @@ -34,7 +34,7 @@ const PostPage = () => { } ); setPublishedAnnotations(annotationRes.data); - setPostData({...postRes.data, postId: postRes.data.id}); + setPostData(postRes.data); } catch(e){ setPublishedAnnotations(require("../../resources/json-files/MockAnnotations.json")); diff --git a/3Design/frontend/src/components/interfaces.ts b/3Design/frontend/src/components/interfaces.ts index e1726bf7..4d49e7cf 100644 --- a/3Design/frontend/src/components/interfaces.ts +++ b/3Design/frontend/src/components/interfaces.ts @@ -83,6 +83,7 @@ export interface RecievedAnnotationData{ target: RecievedAnnotationTarget } + interface RecievedAnnotationCreator{ id: string, type: string, @@ -97,4 +98,21 @@ interface RecievedAnnotationTargetSelector{ type: string, start: number, end: number +} + +interface Tournament{ + id: number, + startTime: string, + endTime : string, + categoryId: number, + isFinished : boolean +} + +export interface TournamentEntry{ + id: number, + user: CustomUser, + postId: number, + tournament: Tournament, + score : number, + finishedPosition : number } \ No newline at end of file From cb75c7c1c038b8575ddf88b517ad9dbb8018357f Mon Sep 17 00:00:00 2001 From: Deniz <160037328+deniz6221@users.noreply.github.com> Date: Sun, 24 Nov 2024 17:51:06 +0300 Subject: [PATCH 11/28] Tournament page ready, search results connected --- 3Design/frontend/package-lock.json | 14 ++ 3Design/frontend/package.json | 1 + 3Design/frontend/src/App.tsx | 7 + 3Design/frontend/src/components/Feed/Feed.tsx | 95 ++++++----- .../SearchResults/SearchResults.tsx | 22 ++- .../TournamentInfo/TournamentInfo.module.css | 10 ++ .../TournamentInfo/TournamentInfo.tsx | 52 ++++++ .../LeaderboardPage.module.css | 0 .../TournamentLeaderboard/LeaderboardPage.tsx | 154 ++++++++++++++++++ 3Design/frontend/src/components/interfaces.ts | 2 +- 10 files changed, 314 insertions(+), 43 deletions(-) create mode 100644 3Design/frontend/src/components/TournamentInfo/TournamentInfo.module.css create mode 100644 3Design/frontend/src/components/TournamentInfo/TournamentInfo.tsx create mode 100644 3Design/frontend/src/components/TournamentLeaderboard/LeaderboardPage.module.css create mode 100644 3Design/frontend/src/components/TournamentLeaderboard/LeaderboardPage.tsx diff --git a/3Design/frontend/package-lock.json b/3Design/frontend/package-lock.json index cd17ee4b..de84dc50 100644 --- a/3Design/frontend/package-lock.json +++ b/3Design/frontend/package-lock.json @@ -27,6 +27,7 @@ "dotenv": "^16.4.5", "online-3d-viewer": "^0.15.0", "react": "^18.3.1", + "react-countdown": "^2.3.6", "react-dom": "^18.3.1", "react-router-dom": "^6.26.2", "react-scripts": "5.0.1", @@ -17821,6 +17822,19 @@ "react": "^15.0.0 || ^16.0.0 || ^17.0.0 || ^18.0.0" } }, + "node_modules/react-countdown": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/react-countdown/-/react-countdown-2.3.6.tgz", + "integrity": "sha512-ZfX6S08Hb6x6W6eCn1hMDvxPICI/T30fd+gaeVTCR/2cGZ2WJ3f26e4ImNIMX1fHkopJrUdnRpWXP13/D39+gg==", + "license": "MIT", + "dependencies": { + "prop-types": "^15.7.2" + }, + "peerDependencies": { + "react": ">= 15", + "react-dom": ">= 15" + } + }, "node_modules/react-dev-utils": { "version": "12.0.1", "resolved": "https://registry.npmjs.org/react-dev-utils/-/react-dev-utils-12.0.1.tgz", diff --git a/3Design/frontend/package.json b/3Design/frontend/package.json index ae32e99d..87b86427 100644 --- a/3Design/frontend/package.json +++ b/3Design/frontend/package.json @@ -22,6 +22,7 @@ "dotenv": "^16.4.5", "online-3d-viewer": "^0.15.0", "react": "^18.3.1", + "react-countdown": "^2.3.6", "react-dom": "^18.3.1", "react-router-dom": "^6.26.2", "react-scripts": "5.0.1", diff --git a/3Design/frontend/src/App.tsx b/3Design/frontend/src/App.tsx index b26d3156..cf92b7bc 100644 --- a/3Design/frontend/src/App.tsx +++ b/3Design/frontend/src/App.tsx @@ -7,6 +7,7 @@ import HomePage from './components/HomePage/HomePage'; import RegisterPage from './components/RegisterPage/RegisterPage'; import PostPage from './components/PostPage/PostPage'; import SearchResults from './components/SearchResults/SearchResults'; +import LeaderboardPage from './components/TournamentLeaderboard/LeaderboardPage'; function App() { return ( @@ -55,6 +56,12 @@ function App() { } /> + + } + /> ); diff --git a/3Design/frontend/src/components/Feed/Feed.tsx b/3Design/frontend/src/components/Feed/Feed.tsx index 4cfbce28..b5c08322 100644 --- a/3Design/frontend/src/components/Feed/Feed.tsx +++ b/3Design/frontend/src/components/Feed/Feed.tsx @@ -1,11 +1,12 @@ import React, { useEffect, useState } from 'react' -import { Category, DPost } from '../interfaces' +import { Category, DPost, Tournament } from '../interfaces' import GalleryPost from '../GalleryPost/Clickable/GalleryPost'; import styles from "./Feed.module.css" import DiscussionPost from '../DiscussionPost/Clickable/DiscussionPost'; import { Button, message, Skeleton } from 'antd'; import { getCategoryById } from '../tsfunctions'; import axios from 'axios'; +import TournamentInfo from '../TournamentInfo/TournamentInfo'; interface Props{ category: string, @@ -26,36 +27,41 @@ const Feed = ({category, pageNumber}: Props) => { const [categoryInfo, setCategoryInfo] = useState({category: null, isFollowed: false}) const [followRequesting, setFollowRequesting] = useState(false); - const [tournamentInfo, setTournamentInfo] = useState(); + const [tournamentInfo, setTournamentInfo] = useState(null); + const [tournamentLoading, setTournamentLoading] = useState(true); useEffect(() => { - fetchPostData(); + fetchServerData(); }, [feedType]) - const fetchPostData = async () => { - try{ - const followRes = await axios.get(`${process.env.REACT_APP_API_URL}/api/v1/categories/get/${category}`, - {headers: { - Authorization: `Bearer ${localStorage.getItem("jwt_token")}` - }} - ); - console.log(followRes.data); - setCategoryInfo(followRes.data); - } - catch(e){ - setFeedLoading(false); - console.log(e); + const fetchServerData = async () => { + fetchFollowData(); + fetchPostData(); + fetchTournamentData(); + } + + + const changeFeedType = (x : boolean) => { + if (x == feedType){ + return; } + setFeedLoading(true); + setFeedType(x); + } + + const renderTabs = () => { + return null; + } + + const fetchPostData = async () => { if (feedType){ const data = require("../../resources/json-files/MockPosts.json"); setPostData(data.slice(2*(pageNumber-1), 2*pageNumber)); - setFeedLoading(false); - + setFeedLoading(false); return; } - try{ - + try{ const postRes = await axios.get(`${process.env.REACT_APP_API_URL}/api/v1/posts/category/${category}/nonvisual`, {headers: { Authorization: `Bearer ${localStorage.getItem("jwt_token")}` @@ -68,27 +74,41 @@ const Feed = ({category, pageNumber}: Props) => { setFeedLoading(false); console.log(e); } - - } + } + useEffect(() => { + console.log(tournamentInfo); + }, [tournamentInfo]); - const changePostData = (newPost: DPost,index: number) => { - setPostData(prev => { - const clone = [...prev]; - clone[index] = newPost; - return clone; - }) - } - - const changeFeedType = (x : boolean) => { - if (x == feedType){ - return; + const fetchTournamentData = async () => { + try{ + const res = await axios.get(`${process.env.REACT_APP_API_URL}/api/v1/tournaments/category/${category}`, + {headers: { + Authorization: `Bearer ${localStorage.getItem("jwt_token")}` + }} + ) + setTournamentInfo(res.data); + } + catch(e){ + ; + } + finally{ + setTournamentLoading(false); } - setFeedLoading(true); - setFeedType(x); } - const renderTabs = () => { - return null; + const fetchFollowData = async () => { + try{ + const followRes = await axios.get(`${process.env.REACT_APP_API_URL}/api/v1/categories/get/${category}`, + {headers: { + Authorization: `Bearer ${localStorage.getItem("jwt_token")}` + }} + ); + console.log(followRes.data); + setCategoryInfo(followRes.data); + } + catch(e){ + console.log(e) + } } const handleFollowLogic = async (x: boolean) => { @@ -130,6 +150,7 @@ const Feed = ({category, pageNumber}: Props) => { }
+ {tournamentLoading ?
: }
diff --git a/3Design/frontend/src/components/SearchResults/SearchResults.tsx b/3Design/frontend/src/components/SearchResults/SearchResults.tsx index 3e9c08b4..6a20cf5d 100644 --- a/3Design/frontend/src/components/SearchResults/SearchResults.tsx +++ b/3Design/frontend/src/components/SearchResults/SearchResults.tsx @@ -7,13 +7,14 @@ import GalleryPost from '../GalleryPost/Clickable/GalleryPost'; import DiscussionPost from '../DiscussionPost/Clickable/DiscussionPost'; import SideBar from '../SideBar/SideBar'; import PageHeader from '../PageHeader/PageHeader'; +import axios from 'axios'; const SearchResults = () => { const {query} = useParams(); const [searchResults, setSearchResults] = useState([]); const [searchLoading, setSearchLoading] = useState(true); - if (!query){ + if (query == undefined || query == null){ window.location.href = "/home"; } @@ -22,11 +23,20 @@ const SearchResults = () => { }, []) const fetchPostData = async () => { - // AJAX Request + try{ + const res = await axios.get(`${process.env.REACT_APP_API_URL}/api/v1/posts?param=${query}`, { + headers: { + Authorization: `Bearer ${localStorage.getItem("jwt_token")}` + } + }); + setSearchResults(res.data); + } + catch(e){ - const data = require("../../resources/json-files/MockGenericPosts.json"); - setSearchResults(data); - setSearchLoading(false); + } + finally{ + setSearchLoading(false); + } } @@ -48,6 +58,8 @@ const SearchResults = () => {
) : + searchResults.length == 0 ? +

No results for this query

: searchResults.map((item, index) => ( item.isVisualPost ? diff --git a/3Design/frontend/src/components/TournamentInfo/TournamentInfo.module.css b/3Design/frontend/src/components/TournamentInfo/TournamentInfo.module.css new file mode 100644 index 00000000..ae921689 --- /dev/null +++ b/3Design/frontend/src/components/TournamentInfo/TournamentInfo.module.css @@ -0,0 +1,10 @@ +.mainContainer{ + display: flex; + align-items: center; + justify-content: space-between; + background-color: #FFFACD; + padding: 10px 20px; + border-left: 5px solid #FFA500; + border-radius: 5px; + width: 100%; +} \ No newline at end of file diff --git a/3Design/frontend/src/components/TournamentInfo/TournamentInfo.tsx b/3Design/frontend/src/components/TournamentInfo/TournamentInfo.tsx new file mode 100644 index 00000000..0c9801fe --- /dev/null +++ b/3Design/frontend/src/components/TournamentInfo/TournamentInfo.tsx @@ -0,0 +1,52 @@ +import React, { useEffect } from "react"; +import Countdown, { CountdownRendererFn } from "react-countdown"; +import styles from "./TournamentInfo.module.css" +import { Button } from "antd"; +import { Tournament } from "../interfaces"; + +interface Props{ + info: Tournament | null, + showButton: number +} + +const TournamentInfo = ({info, showButton}: Props) => { + + const renderer: CountdownRendererFn = ({ days, hours, minutes, seconds, completed }) => { + if (completed || info!.isFinished) { + return Tournament Over; + } else { + return ( + + {days}d {hours}h {minutes}m {seconds}s + + ); + } + }; + + + return ( +
+
+

+ Weekly Tournament +

+ { + !info ? +

Tournament has ended. Waiting for rewards.

: +

+ Time left:{" "} + +

+ } + +
+ {!!info && showButton == 0 && + + } +
+ ); +}; + +export default TournamentInfo; diff --git a/3Design/frontend/src/components/TournamentLeaderboard/LeaderboardPage.module.css b/3Design/frontend/src/components/TournamentLeaderboard/LeaderboardPage.module.css new file mode 100644 index 00000000..e69de29b diff --git a/3Design/frontend/src/components/TournamentLeaderboard/LeaderboardPage.tsx b/3Design/frontend/src/components/TournamentLeaderboard/LeaderboardPage.tsx new file mode 100644 index 00000000..1580198c --- /dev/null +++ b/3Design/frontend/src/components/TournamentLeaderboard/LeaderboardPage.tsx @@ -0,0 +1,154 @@ +import React, { useEffect, useState } from 'react' +import { useParams } from 'react-router-dom' +import { Category, Tournament, TournamentEntry } from '../interfaces'; +import axios from 'axios'; +import { CircularProgress } from '@mui/material'; +import { Avatar, Table, Typography } from 'antd'; +import styles from "./LeaderboardPage.module.css"; +import SideBar from '../SideBar/SideBar'; +import PageHeader from '../PageHeader/PageHeader'; +import TournamentInfo from '../TournamentInfo/TournamentInfo'; +import { getCategoryById } from '../tsfunctions'; + +const {Text} = Typography; + +const LeaderboardPage = () => { + const { category } = useParams(); + if ( category == undefined || !/^\d+$/.test(category)){ + window.location.href = "/home"; + } + + const [entries, setEntries] = useState([]); + const [entryFailed, setEntryFailed] = useState(true); + const categoryName = getCategoryById(category ?? "-1"); + + const [tournamenInfo, setTournamentInfo] = useState(null); + + const [dataLoading, setDataLoading] = useState(true); + + const columns = [ + { + title: "Ranking", + width: 100, + render: (_ : any, record : any, index : any) => index + 1, + }, + { + title: "User", + key: "user", + render: (_ : any, record: any) => ( + + ), + }, + { + title: "Score", + dataIndex: "score", + key: "score", + }, + { + title: "Post", + key: "postId", + render: (_ : any, record: any) => ( + + ), + }, + ]; + + + useEffect(() => { + fetchServerData(); + },[]); + + + useEffect(() => { + console.log(entries); + }, [entries]); + + const fetchServerData = async () => { + await fetchTournamentData(); + await fetchTournamentEntries(); + setDataLoading(false); + } + + + const fetchTournamentData = async () => { + try{ + const res = await axios.get(`${process.env.REACT_APP_API_URL}/api/v1/tournaments/category/${category}`, + {headers: { + Authorization: `Bearer ${localStorage.getItem("jwt_token")}` + }} + ) + setTournamentInfo(res.data); + } + catch(e){ + + } + } + + const fetchTournamentEntries = async () => { + try{ + const res = await axios.get(`${process.env.REACT_APP_API_URL}/api/v1/tournaments/leaderboard/${category}`, + {headers: { + Authorization: `Bearer ${localStorage.getItem("jwt_token")}` + }} + ) + setEntries(res.data); + setEntryFailed(false); + } + catch(e){ + ; + } + } + + + + const renderMain = () => { + if(dataLoading){ + return( +
+ +
+ ) + } + if (entryFailed){ + return( +
+

There are currently no tournaments for this category.

+
+ ) + } + return ( +
+ +

Leaderboard for {categoryName} category

+ + + ) + } + + + + + return ( + <> + +
+ + {renderMain()} + +
+ + ) +} + +export default LeaderboardPage \ No newline at end of file diff --git a/3Design/frontend/src/components/interfaces.ts b/3Design/frontend/src/components/interfaces.ts index 4d49e7cf..9905f996 100644 --- a/3Design/frontend/src/components/interfaces.ts +++ b/3Design/frontend/src/components/interfaces.ts @@ -100,7 +100,7 @@ interface RecievedAnnotationTargetSelector{ end: number } -interface Tournament{ +export interface Tournament{ id: number, startTime: string, endTime : string, From 1251235de5eec5281889c13a5e3c01d5b6bd19bc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ersel=20=C3=87anak=C3=A7=C4=B1l=C4=B1?= <73749586+erselcanakcili@users.noreply.github.com> Date: Sun, 24 Nov 2024 22:01:31 +0300 Subject: [PATCH 12/28] Post and comment features completed --- .../src/components/Comment/Comment.tsx | 120 +++++-- .../Clickable/DiscussionPost.tsx | 161 +++++++-- .../DiscussionPost/Page/DiscussionPost.tsx | 251 ++++++++++++-- .../GalleryPost/Clickable/GalleryPost.tsx | 22 +- .../GalleryPost/Page/GalleryPost.tsx | 310 +++++++++++++----- 3Design/frontend/src/components/interfaces.ts | 18 +- .../resources/json-files/MockDiscussions.json | 2 +- .../json-files/MockGenericPosts.json | 72 ++-- .../src/resources/json-files/MockPosts.json | 8 +- 9 files changed, 751 insertions(+), 213 deletions(-) diff --git a/3Design/frontend/src/components/Comment/Comment.tsx b/3Design/frontend/src/components/Comment/Comment.tsx index 838ab201..2702d20b 100644 --- a/3Design/frontend/src/components/Comment/Comment.tsx +++ b/3Design/frontend/src/components/Comment/Comment.tsx @@ -1,7 +1,8 @@ -import React,{useState} from "react"; +import React,{useEffect, useState} from "react"; import { ThumbDown, ThumbDownOutlined, ThumbUp, ThumbUpOutlined, AccountCircleOutlined } from '@mui/icons-material' import { DComment } from "../interfaces"; import { formatInteractions } from '../tsfunctions' +import axios from "axios"; interface Props{ commentData: DComment, @@ -9,44 +10,125 @@ interface Props{ const Comment = ({commentData} : Props) => { const [data, setData] = useState(commentData); + useEffect(() => { + }, [data.reactionType]); + const likeClicked = async (event:any) =>{ event.stopPropagation(); - if (data.disliked){ - setData((prev) => ({...prev, disliked: false, liked: true, likeCount: prev.likes + 1, dislikes: prev.dislikes - 1})); - return; + if (data.reactionType === 'LIKE'){ + try { + const response = await axios.post( + `${process.env.REACT_APP_API_URL}/api/v1/posts/comment/${data.commentId}/react?reactionType=NONE`, + null,{ + headers: { + Authorization: `Bearer ${localStorage.getItem("jwt_token")}` + } + } + ); + + console.log("Response:", response.data); + setData((prev) => ({ + ...prev, + reactionType: 'NONE', + likes: response.data.likes, + dislikes: response.data.dislikes + })); + } catch (error) { + console.error("Error reacting to comment:", error); + throw error; } - if (data.liked){ - setData((prev) => ({...prev, liked: false, likes: prev.likes - 1})); return; } - setData((prev) => ({...prev, disliked: false, liked: true, likes: prev.likes + 1})); + + try { + const response = await axios.post( + `${process.env.REACT_APP_API_URL}/api/v1/posts/comment/${data.commentId}/react?reactionType=LIKE`, + null,{ + headers: { + Authorization: `Bearer ${localStorage.getItem("jwt_token")}` + } + } + ); + + console.log("Response:", response.data); + setData((prev) => ({ + ...prev, + reactionType: 'LIKE', + likes: response.data.likes, + dislikes: response.data.dislikes + })); + } catch (error) { + console.error("Error reacting to comment:", error); + throw error; + } + + + } const dislikeClicked = async (event:any) =>{ event.stopPropagation(); - if (data.liked){ - setData((prev) => ({...prev, liked: false, disliked: true, dislikeCount: prev.dislikes + 1, likes: prev.likes - 1})); - return; + if (data.reactionType === 'DISLIKE'){ + try { + const response = await axios.post( + `${process.env.REACT_APP_API_URL}/api/v1/posts/comment/${data.commentId}/react?reactionType=NONE`, + null,{ + headers: { + Authorization: `Bearer ${localStorage.getItem("jwt_token")}` + } + } + ); + + console.log("Response:", response.data); + setData((prev) => ({ + ...prev, + reactionType: 'NONE', + likes: response.data.likes, + dislikes: response.data.dislikes + })); + } catch (error) { + console.error("Error reacting to comment:", error); + throw error; } - if (data.disliked){ - setData((prev) => ({...prev, disliked: false, dislikes: prev.dislikes - 1})); - return; + return; } - setData((prev) => ({...prev, liked: false, disliked: true, dislikes: prev.dislikes + 1})); + + try { + const response = await axios.post( + `${process.env.REACT_APP_API_URL}/api/v1/posts/comment/${data.commentId}/react?reactionType=DISLIKE`, + null,{ + headers: { + Authorization: `Bearer ${localStorage.getItem("jwt_token")}` + } + } + ); + + console.log("Response:", response.data); + setData((prev) => ({ + ...prev, + reactionType: 'DISLIKE', + likes: response.data.likes, + dislikes: response.data.dislikes + })); + } catch (error) { + console.error("Error reacting to comment:", error); + throw error; + } + } return ( -
+
- +

{data.user.nickName}

-

{data.text}

+

{data.text}

{formatInteractions(data.dislikes)}

+
+ +

{data.comments}

+

{formatInteractions(data.dislikes)}

+
+ +

{data.comments}

+
- +
+ setComment(e.target.value)} className='w-full border border-gray-300 rounded-lg p-2'/> + +
+
+ {comments.map((item, index) => ( + + )) } +
- {annotationsVisible && currentAnnotations.length != 0 && -
-
-

Annotations

- -
-
+ + {annotationsVisible && currentAnnotations.length != 0 && +
+
+

Annotations

+ +
+
{currentAnnotations.map((item, index) => (
{item.username} @@ -210,7 +395,7 @@ const DiscussionPost = ({postData, publishedAnnotationsProps} : Props) => {

{item.annotation}

))} -
+
} setAnnotatedText("")}>
diff --git a/3Design/frontend/src/components/GalleryPost/Clickable/GalleryPost.tsx b/3Design/frontend/src/components/GalleryPost/Clickable/GalleryPost.tsx index 79d510f0..3d2e7708 100644 --- a/3Design/frontend/src/components/GalleryPost/Clickable/GalleryPost.tsx +++ b/3Design/frontend/src/components/GalleryPost/Clickable/GalleryPost.tsx @@ -2,9 +2,10 @@ import React, { memo, SetStateAction, useEffect, useRef, useState } from 'react' import { DPost, SendAnnotationData } from '../../interfaces' import styles from "../GalleryPost.module.css" import DViewer from '../../DViewer/DViewer' -import { Bookmark, BookmarkBorderOutlined, BorderColor, Download, MoreVert, Shield, ThumbDown, ThumbDownOutlined, ThumbUp, ThumbUpOutlined, InsertCommentOutlined } from '@mui/icons-material' +import { ChevronRight,Bookmark, BookmarkBorderOutlined, BorderColor, Download, MoreVert, Shield, ThumbDown, ThumbDownOutlined, ThumbUp, ThumbUpOutlined, InsertCommentOutlined } from '@mui/icons-material' import { IconButton, Menu, MenuItem } from '@mui/material' -import { formatInteractions } from '../../tsfunctions' +import { grey } from '@mui/material/colors'; +import { formatInteractions,getCategoryById } from '../../tsfunctions' interface Props{ postData: DPost, } @@ -59,7 +60,20 @@ const GalleryPost = ({postData} : Props) => { return (
{window.location.href = `/post/${postData.postId}`}}>
- {/* Profile picture and username div here */} + +
+
+

{data.user?.nickName}

+ +

{getCategoryById(data.categoryId.toString())}

+
+ { data.isVisualPost && data.challengedPostId !== null ? +
+ +

Challenged to post

+
: null + } +
{modelAppearence ? @@ -104,7 +118,7 @@ const GalleryPost = ({postData} : Props) => { } -

{1453 /*comment sayısı buraya gelecek */}

+

{data.comments}

-

{formatInteractions(data.likes)}

-
-
- -

{formatInteractions(data.dislikes)}

-
-
- -

{1453 /*comment sayısı buraya gelecek */}

-
- - +
+ +

{formatInteractions(data.likes)}

+
+
+ +

{formatInteractions(data.dislikes)}

+
+
+ +

{data.comments}

+
+
{setAnnotationsVisible(e); setCurrentAnnotations([])}} checkedChildren="Annotations Visible" unCheckedChildren="Annotations Disabled"/>
@@ -244,31 +396,15 @@ const GalleryPost = ({postData, publishedAnnotationsProps} : Props) => {
setComment(e.target.value)} className='w-full border border-gray-300 rounded-lg p-2'/>
{comments.map((item, index) => ( - item.postId === data.postId ? - : - null )) }
setChallengeDialog(false)}> diff --git a/3Design/frontend/src/components/interfaces.ts b/3Design/frontend/src/components/interfaces.ts index 4d49e7cf..ae825b4d 100644 --- a/3Design/frontend/src/components/interfaces.ts +++ b/3Design/frontend/src/components/interfaces.ts @@ -13,15 +13,12 @@ export interface Category{ export interface DComment{ - commentId: number, - user:CustomUser, - text: string, - memberId: number, - postId: number, - likes: number, - dislikes: number, - liked: boolean, - disliked: boolean + commentId: number; + text: string; + user:CustomUser; + likes: number; + dislikes: number; + reactionType: string; } export interface DPost{ @@ -40,7 +37,8 @@ export interface DPost{ comments: number, liked: boolean, disliked: boolean, - bookmark: boolean + bookmark: boolean, + reactionType: string } export interface Tag{ diff --git a/3Design/frontend/src/resources/json-files/MockDiscussions.json b/3Design/frontend/src/resources/json-files/MockDiscussions.json index 187b6d48..655f6b41 100644 --- a/3Design/frontend/src/resources/json-files/MockDiscussions.json +++ b/3Design/frontend/src/resources/json-files/MockDiscussions.json @@ -15,7 +15,7 @@ "fileUrl": null, "likes": 2, "dislikes": 4, - "comments": 123, + "comments":1234, "liked": false, "disliked": true, "bookmark":false diff --git a/3Design/frontend/src/resources/json-files/MockGenericPosts.json b/3Design/frontend/src/resources/json-files/MockGenericPosts.json index 69bd553f..942a354e 100644 --- a/3Design/frontend/src/resources/json-files/MockGenericPosts.json +++ b/3Design/frontend/src/resources/json-files/MockGenericPosts.json @@ -1,68 +1,74 @@ [ { - "postId": 4, + "id": 4, "title": "Human Model", - "text": "Check out this human model", + "body": "Check out this human model", "memberId": 2, + "user":{ "nickName": "John Doe", "profilePicture": "/profile.jpg","id":2,"userPoints": 100}, "tags": [], - "categoryId": 4, - "isVisualPost": true, - "challengedPostId": null, + "category": "Human", + "categoryId":1, + "visual": true, + "challangeTo": null, "fileUrl": "/3d.glb", - "likes": 62, - "dislikes": 129, - "comments": 123, + "comments":1234, + "likeCount": 62, + "dislikeCount": 129, "liked": true, "disliked": false, "bookmark":true }, { - "postId": 7, + "id": 7, "title": "How do I print a model?", - "text": "Which button should I press to start printing?", + "body": "Which button should I press to start printing?", "memberId": 2, + "categoryId":1, + "user":{ "nickName": "John Doe", "profilePicture": "/profile.jpg","id":2,"userPoints": 100}, "tags": [], - "categoryId": 2, - "isVisualPost": false, - "challengedPostId": null, + "category": "Printing", + "visual": false, + "challangeTo": null, "fileUrl": null, - "likes": 2, - "dislikes": 4, + "likeCount": 2, + "dislikeCount": 4, "liked": false, - "disliked": true, - "comments": 123, + "disliked": false, + "comments":1234, "bookmark":false }, { - "postId": 21, + "id": 21, "title": "Car Model", - "text": "Check out this car model", + "body": "Check out this car model", "memberId": 2, + "categoryId":1, "tags": [], - "categoryId": 3, - "isVisualPost": true, - "challengedPostId": null, + "category": "Car", + "visual": true, + "challangeTo": null, "fileUrl": "/mug.fbx", - "likes": 1, - "dislikes": 2000, - "comments": 123, + "likeCount": 1, + "dislikeCount": 2000, + "comments":1234, "liked": false, "disliked": true, "bookmark":false }, { - "postId": 23, + "id": 23, "title": "How can I log out from this site?", - "text": "I think they forgot to implented this feature.", + "body": "I think they forgot to implented this feature.", "memberId": 2, + "categoryId":1, "tags": [], - "categoryId": 2, - "isVisualPost": false, - "challengedPostId": null, + "category": "General", + "visual": false, + "challangeTo": null, "fileUrl": null, - "likes": 21221, - "dislikes": 5, - "comments": 123, + "likeCount": 21221, + "comments":1234, + "dislikeCount": 5, "liked": false, "disliked": true, "bookmark":false diff --git a/3Design/frontend/src/resources/json-files/MockPosts.json b/3Design/frontend/src/resources/json-files/MockPosts.json index 9061e5a8..d0a2b589 100644 --- a/3Design/frontend/src/resources/json-files/MockPosts.json +++ b/3Design/frontend/src/resources/json-files/MockPosts.json @@ -4,13 +4,15 @@ "title": "Human Model", "text": "Check out this human model", "memberId": 2, + "user":{ "nickName": "John Doe", "profilePicture": "/profile.jpg","id":2,"userPoints": 100}, "tags": [], - "categoryId": 10, + "categoryId": 4, "isVisualPost": true, "challengedPostId": null, "fileUrl": "/3d.glb", "likes": 62, "dislikes": 129, + "comments":1234, "liked": true, "disliked": false, "bookmark":true @@ -19,14 +21,16 @@ "postId": 21, "title": "Car Model", "text": "Check out this car model", + "user":{ "nickName": "John Doe", "profilePicture": "/profile.jpg","id":2,"userPoints": 100}, "memberId": 2, "tags": [], - "categoryId": 5, + "categoryId": 4, "isVisualPost": true, "challengedPostId": null, "fileUrl": "/mug.fbx", "likes": 1, "dislikes": 2000, + "comments":1234, "liked": false, "disliked": true, "bookmark":false From 326d2f187a5611be9aec0d9864c1437ed34f0eab Mon Sep 17 00:00:00 2001 From: Deniz <160037328+deniz6221@users.noreply.github.com> Date: Sun, 24 Nov 2024 22:29:44 +0300 Subject: [PATCH 13/28] Minor annotation fix for gallery posts --- 3Design/frontend/public/untitled.obj | 15574 ++++++++++++++++ .../GalleryPost/Page/GalleryPost.tsx | 4 +- 2 files changed, 15576 insertions(+), 2 deletions(-) create mode 100644 3Design/frontend/public/untitled.obj diff --git a/3Design/frontend/public/untitled.obj b/3Design/frontend/public/untitled.obj new file mode 100644 index 00000000..97b8e540 --- /dev/null +++ b/3Design/frontend/public/untitled.obj @@ -0,0 +1,15574 @@ +# Blender 4.2.2 LTS +# www.blender.org +mtllib untitled.mtl +o HandCannon_Pistol_LOD0 +v -0.012656 0.104849 0.288466 +v -0.013554 0.107511 0.290358 +v -0.015618 0.107192 0.288486 +v -0.010452 0.105085 0.290358 +v 0.013554 0.107511 0.290358 +v 0.012656 0.104849 0.288466 +v 0.015618 0.107192 0.288486 +v 0.010452 0.105085 0.290358 +v 0.007859 0.105448 0.193111 +v -0.007859 0.105448 0.193111 +v -0.007859 0.089730 0.193111 +v 0.007859 0.089730 0.193111 +v -0.007859 0.105448 0.190394 +v 0.007859 0.105448 0.190394 +v 0.007859 0.089730 0.190394 +v -0.007859 0.089730 0.190394 +v -0.016034 0.113329 -0.002244 +v 0.016034 0.113329 -0.002244 +v 0.016397 0.110585 -0.003169 +v -0.016397 0.110585 -0.003169 +v 0.012397 0.116064 -0.003879 +v -0.012397 0.116064 -0.003879 +v -0.012397 0.116064 0.013315 +v 0.012397 0.116064 0.013315 +v 0.016034 0.113329 0.008359 +v -0.016034 0.113329 0.008359 +v -0.016397 0.110585 0.009284 +v 0.016397 0.110585 0.009284 +v 0.015192 0.080542 -0.023131 +v 0.016165 0.067235 -0.026761 +v 0.015193 0.067235 -0.025833 +v 0.016164 0.081460 -0.023758 +v -0.016165 0.067235 -0.026761 +v -0.015192 0.080542 -0.023131 +v -0.015193 0.067235 -0.025833 +v -0.016164 0.081460 -0.023758 +v 0.010024 0.095075 0.081751 +v 0.007404 0.091043 0.081751 +v 0.010892 0.094527 0.083961 +v 0.008245 0.090457 0.083961 +v -0.000000 0.082662 -0.016732 +v -0.006624 0.082662 -0.016732 +v -0.006624 0.082662 -0.007702 +v -0.000000 0.082662 -0.007702 +v -0.006624 0.082662 -0.007702 +v -0.006624 0.082662 -0.016732 +v -0.006624 0.080540 -0.016732 +v -0.006624 0.080540 -0.007702 +v -0.015042 0.066876 0.130940 +v -0.012849 0.060723 0.133956 +v -0.012849 0.064636 0.133956 +v -0.015042 0.058218 0.130940 +v 0.000000 0.073898 0.130940 +v -0.009601 0.073898 0.130940 +v -0.009601 0.067979 0.135983 +v 0.000000 0.067979 0.135983 +v 0.000000 0.073898 0.071189 +v -0.015042 0.067110 0.071189 +v -0.015042 0.073898 0.071189 +v 0.000000 0.067110 0.071189 +v -0.015042 0.067115 -0.007702 +v -0.015042 0.067110 0.071189 +v -0.000000 0.067110 -0.007702 +v 0.000000 0.067110 0.071189 +v -0.000000 0.082662 -0.016732 +v 0.006624 0.082662 -0.007702 +v 0.006624 0.082662 -0.016732 +v -0.000000 0.082662 -0.007702 +v 0.006624 0.082662 -0.007702 +v 0.006624 0.080540 -0.016732 +v 0.006624 0.082662 -0.016732 +v 0.006624 0.080540 -0.007702 +v 0.015042 0.066876 0.130940 +v 0.012849 0.060723 0.133956 +v 0.015042 0.058218 0.130940 +v 0.012849 0.064636 0.133956 +v 0.000000 0.073898 0.130940 +v 0.009601 0.067979 0.135983 +v 0.009601 0.073898 0.130940 +v 0.000000 0.067979 0.135983 +v 0.000000 0.073898 0.071189 +v 0.015042 0.073898 0.071189 +v 0.015042 0.067110 0.071189 +v 0.000000 0.067110 0.071189 +v -0.000000 0.067110 -0.007702 +v 0.015042 0.067110 0.071189 +v 0.015042 0.067115 -0.007702 +v 0.000000 0.067110 0.071189 +v -0.010386 0.092755 0.074853 +v -0.014084 0.091956 0.074853 +v -0.013727 0.092554 0.075363 +v -0.010113 0.093335 0.075363 +v -0.013727 0.092554 0.084763 +v -0.010112 0.093335 0.084763 +v 0.011907 0.094525 0.074853 +v 0.015158 0.092501 0.074853 +v 0.014450 0.092341 0.075363 +v 0.011314 0.094295 0.075363 +v 0.014444 0.092331 0.084763 +v 0.011311 0.094290 0.084763 +v 0.006604 0.064851 -0.019674 +v 0.006604 0.064851 -0.024365 +v 0.006604 0.069655 -0.028786 +v 0.006604 0.078033 -0.019674 +v 0.006604 0.086073 -0.027965 +v 0.006604 0.100184 -0.019674 +v 0.006604 0.091230 -0.030707 +v 0.006604 0.101109 -0.020321 +v 0.006604 0.094409 -0.034428 +v 0.006604 0.104451 -0.038387 +v 0.006604 0.098421 -0.041958 +v 0.006604 0.104314 -0.040560 +v 0.006604 0.100478 -0.043042 +v 0.006604 0.103093 -0.042399 +v -0.002700 0.116153 0.285645 +v 0.002700 0.116153 0.285645 +v -0.002700 0.116153 0.286909 +v 0.002700 0.116153 0.286909 +v -0.002268 0.116153 0.287319 +v 0.002268 0.116153 0.287319 +v 0.002700 0.116153 0.274513 +v -0.002700 0.116153 0.274513 +v 0.002700 0.116153 0.272509 +v -0.002700 0.116153 0.272509 +v 0.002268 0.116153 0.272099 +v -0.002268 0.116153 0.272099 +v 0.003435 0.123610 0.008381 +v 0.003435 0.123610 -0.003879 +v 0.005510 0.123610 -0.003879 +v 0.005510 0.123610 0.008381 +v 0.007595 0.123610 -0.003879 +v 0.007595 0.123610 0.008381 +v 0.009601 0.123333 -0.003879 +v 0.009601 0.123333 0.008560 +v 0.010512 0.122830 -0.003879 +v 0.010512 0.122830 0.008887 +v 0.011191 0.121891 -0.003879 +v 0.011191 0.121891 0.009495 +v 0.011727 0.119797 -0.003879 +v 0.011727 0.119797 0.010851 +v 0.012397 0.116064 -0.003879 +v 0.012397 0.116064 0.013315 +v -0.012397 0.116064 0.013315 +v -0.012397 0.116064 -0.003879 +v -0.011726 0.119797 0.010851 +v -0.011726 0.119797 -0.003879 +v -0.011191 0.121891 0.009495 +v -0.011191 0.121891 -0.003879 +v -0.010512 0.122830 0.008887 +v -0.010512 0.122830 -0.003879 +v -0.009601 0.123333 0.008560 +v -0.009601 0.123333 -0.003879 +v -0.007595 0.123610 0.008381 +v -0.007595 0.123610 -0.003879 +v -0.005510 0.123610 0.008381 +v -0.005510 0.123610 -0.003879 +v -0.003435 0.123610 0.008381 +v -0.003435 0.123610 -0.003879 +v 0.006590 0.099899 -0.016896 +v 0.006590 0.103440 -0.018389 +v 0.006590 0.097877 -0.019534 +v 0.006590 0.092556 -0.016935 +v 0.006590 0.092535 -0.020633 +v 0.006590 0.083181 -0.016985 +v 0.006590 0.081627 -0.022861 +v 0.006589 0.080712 -0.022139 +v 0.006571 0.082522 -0.015909 +v 0.006588 0.080705 -0.014688 +v 0.006577 0.082521 0.010123 +v 0.006588 0.080716 0.010176 +v 0.006572 0.082520 0.037455 +v 0.006588 0.080724 0.037831 +v 0.006565 0.082520 0.054636 +v 0.006570 0.080325 0.054662 +v 0.000000 0.082520 0.054619 +v 0.006565 0.082520 0.054636 +v 0.000000 0.080679 0.054682 +v 0.006570 0.080325 0.054662 +v 0.000000 0.063635 0.054798 +v 0.006410 0.063702 0.054751 +v 0.015192 0.079942 0.054629 +v 0.015193 0.063652 0.054603 +v 0.021082 0.097748 0.036931 +v 0.019667 0.103541 0.038900 +v 0.019695 0.097826 0.037906 +v 0.021077 0.096268 0.036663 +v 0.019471 0.065711 0.032013 +v 0.020968 0.067235 0.031330 +v 0.021079 0.097746 0.023217 +v 0.019615 0.103715 0.025567 +v 0.019661 0.097973 0.024499 +v 0.021074 0.096232 0.022942 +v 0.019498 0.065687 0.018212 +v 0.020965 0.067235 0.017478 +v 0.021088 0.098341 0.051301 +v 0.019692 0.103541 0.053080 +v 0.019707 0.098330 0.052384 +v 0.021081 0.096700 0.051008 +v 0.019414 0.065644 0.046526 +v 0.020970 0.067234 0.045309 +v 0.019418 0.065609 0.010125 +v 0.019578 0.065881 0.003873 +v 0.019752 0.096651 0.009655 +v 0.019651 0.096338 0.015512 +v 0.019536 0.103994 0.011131 +v 0.019539 0.103995 0.017027 +v 0.013550 0.077569 0.130822 +v 0.016197 0.077933 0.130452 +v 0.016197 0.068142 0.130732 +v 0.009694 0.074948 0.130875 +v 0.006034 0.068121 0.130762 +v 0.005001 0.073267 0.130836 +v 0.000000 0.068154 0.130765 +v 0.000000 0.072738 0.130825 +v -0.006565 0.082520 0.054636 +v 0.000000 0.082520 0.054619 +v 0.000000 0.080679 0.054682 +v -0.006570 0.080325 0.054662 +v 0.000000 0.063635 0.054798 +v -0.006410 0.063702 0.054751 +v -0.015192 0.079942 0.054629 +v -0.015193 0.063652 0.054603 +v -0.014933 0.091042 0.075428 +v -0.016197 0.094062 0.075428 +v -0.016197 0.090912 0.075428 +v -0.012981 0.087670 0.075428 +v -0.016197 0.080918 0.075428 +v -0.009275 0.084449 0.075428 +v -0.016197 0.068299 0.075427 +v -0.005680 0.068120 0.075428 +v -0.004960 0.082476 0.075428 +v 0.000000 0.081737 0.075428 +v 0.000000 0.068034 0.075428 +v 0.014326 0.092388 0.083961 +v 0.010892 0.094527 0.083961 +v 0.013082 0.090208 0.083961 +v 0.008245 0.090457 0.083961 +v 0.011565 0.088134 0.083961 +v 0.002654 0.108621 0.083961 +v 0.002270 0.107655 0.081751 +v 0.004499 0.106889 0.081751 +v 0.005201 0.107691 0.083961 +v 0.007387 0.104898 0.081751 +v 0.007984 0.105718 0.083961 +v 0.009723 0.103609 0.083961 +v 0.008995 0.102961 0.081751 +v 0.000000 0.023066 0.005182 +v 0.000000 0.013135 0.044737 +v -0.005274 0.013135 0.044737 +v -0.009489 0.023066 0.005182 +v -0.009489 0.013685 0.042458 +v -0.000000 0.082662 -0.016732 +v 0.006624 0.082662 -0.016732 +v 0.006624 0.080540 -0.016732 +v -0.000000 0.080540 -0.016732 +v 0.006624 0.073910 -0.016732 +v -0.000000 0.073910 -0.016732 +v -0.000000 0.066294 -0.017676 +v 0.006624 0.066294 -0.017676 +v -0.000000 0.063898 -0.020873 +v 0.006624 0.063898 -0.020873 +v 0.006624 0.063753 -0.030246 +v -0.000000 0.063753 -0.030246 +v 0.015042 0.058218 0.272421 +v 0.015042 0.054201 0.272421 +v 0.015042 0.054201 0.237989 +v 0.015042 0.058218 0.236416 +v 0.015042 0.056171 0.236416 +v 0.015042 0.056171 0.229996 +v 0.015042 0.058218 0.229996 +v 0.015042 0.054201 0.228430 +v 0.015042 0.058218 0.130940 +v 0.015042 0.054201 0.130940 +v 0.000000 0.050420 0.228473 +v 0.000000 0.050420 0.130940 +v 0.011285 0.050420 0.228473 +v 0.011285 0.050420 0.130940 +v 0.015042 0.054201 0.228430 +v 0.015042 0.054201 0.130940 +v -0.013481 0.104855 0.119684 +v -0.015688 0.107229 0.135749 +v -0.015757 0.107274 0.116080 +v -0.013333 0.104853 0.135749 +v -0.015664 0.107216 0.172637 +v -0.013111 0.104852 0.172637 +v -0.015661 0.107213 0.178922 +v -0.013034 0.104851 0.185550 +v -0.015652 0.107209 0.192178 +v -0.012915 0.104851 0.205254 +v -0.015644 0.107204 0.205254 +v -0.012762 0.104849 0.230762 +v -0.015628 0.107195 0.231184 +v -0.012737 0.104849 0.244486 +v -0.015625 0.107194 0.244486 +v -0.015622 0.107193 0.266583 +v -0.012696 0.104849 0.266583 +v -0.015621 0.107193 0.274513 +v -0.012682 0.104849 0.274513 +v -0.012656 0.104849 0.288466 +v -0.015618 0.107192 0.288486 +v -0.013727 0.103141 0.084763 +v -0.010111 0.102354 0.075363 +v -0.010108 0.102353 0.084763 +v -0.013726 0.103143 0.075363 +v -0.010385 0.102936 0.074853 +v -0.014096 0.103745 0.074853 +v 0.008763 0.089435 0.074853 +v 0.011655 0.088033 0.075363 +v 0.011793 0.087315 0.074853 +v 0.008707 0.090094 0.075363 +v 0.011656 0.088035 0.084763 +v 0.008698 0.090102 0.084763 +v 0.015688 0.107229 0.135749 +v 0.013481 0.104855 0.119684 +v 0.015757 0.107274 0.116080 +v 0.013333 0.104853 0.135749 +v 0.015664 0.107216 0.172637 +v 0.013111 0.104852 0.172637 +v 0.015661 0.107213 0.178922 +v 0.013034 0.104851 0.185550 +v 0.015652 0.107209 0.192178 +v 0.012915 0.104851 0.205254 +v 0.015644 0.107204 0.205254 +v 0.012762 0.104849 0.230762 +v 0.015628 0.107195 0.231184 +v 0.012737 0.104849 0.244486 +v 0.015625 0.107194 0.244486 +v 0.015622 0.107193 0.266583 +v 0.012696 0.104849 0.266583 +v 0.015621 0.107193 0.274513 +v 0.012682 0.104849 0.274513 +v 0.012656 0.104849 0.288466 +v 0.015618 0.107192 0.288486 +v 0.006604 0.064851 -0.019674 +v 0.005003 0.063683 -0.024914 +v 0.006604 0.064851 -0.024365 +v 0.005003 0.063683 -0.018506 +v -0.005003 0.063683 -0.024914 +v -0.005003 0.063683 -0.018506 +v -0.006604 0.064851 -0.019674 +v -0.006604 0.064851 -0.024365 +v -0.006604 0.064851 -0.019674 +v -0.006604 0.069655 -0.028786 +v -0.006604 0.064851 -0.024365 +v -0.006604 0.078033 -0.019674 +v -0.006604 0.086073 -0.027965 +v -0.006604 0.100184 -0.019674 +v -0.006604 0.091230 -0.030707 +v -0.006604 0.101109 -0.020321 +v -0.006604 0.094409 -0.034428 +v -0.006604 0.104451 -0.038387 +v -0.006604 0.098421 -0.041958 +v -0.006604 0.104314 -0.040560 +v -0.006604 0.100478 -0.043042 +v -0.006604 0.103093 -0.042399 +v 0.010989 0.115317 0.274513 +v 0.011324 0.114676 0.285645 +v 0.011324 0.114676 0.274513 +v 0.010989 0.115317 0.285645 +v 0.010345 0.115910 0.274513 +v 0.010345 0.115910 0.285645 +v 0.009719 0.116153 0.285645 +v 0.009719 0.116153 0.274513 +v 0.008995 0.116153 0.274513 +v 0.008995 0.116153 0.285645 +v 0.002700 0.116153 0.285645 +v 0.002700 0.116153 0.274513 +v 0.002700 0.116153 0.285645 +v 0.002700 0.119031 0.286909 +v 0.002700 0.116153 0.286909 +v 0.002700 0.124044 0.282491 +v 0.002700 0.116153 0.274513 +v 0.002700 0.123438 0.272509 +v 0.002700 0.116153 0.272509 +v 0.002700 0.125339 0.281136 +v 0.002700 0.125010 0.272866 +v 0.002700 0.125941 0.279131 +v 0.002700 0.125941 0.273625 +v -0.011324 0.114676 0.285645 +v -0.010989 0.115317 0.274513 +v -0.011324 0.114676 0.274513 +v -0.010989 0.115317 0.285645 +v -0.010345 0.115910 0.274513 +v -0.010345 0.115910 0.285645 +v -0.009719 0.116153 0.285645 +v -0.009719 0.116153 0.274513 +v -0.008995 0.116153 0.274513 +v -0.008995 0.116153 0.285645 +v -0.002700 0.116153 0.285645 +v -0.002700 0.116153 0.274513 +v -0.002700 0.119031 0.286909 +v -0.002700 0.116153 0.285645 +v -0.002700 0.116153 0.286909 +v -0.002700 0.124044 0.282491 +v -0.002700 0.116153 0.274513 +v -0.002700 0.123438 0.272509 +v -0.002700 0.116153 0.272509 +v -0.002700 0.125339 0.281136 +v -0.002700 0.125010 0.272866 +v -0.002700 0.125941 0.279131 +v -0.002700 0.125941 0.273625 +v 0.004828 0.020566 0.074493 +v 0.004828 0.024570 0.073845 +v 0.004828 0.020086 0.077087 +v 0.004828 0.024406 0.069961 +v 0.004828 0.028857 0.072184 +v 0.004828 0.028330 0.067267 +v 0.004828 0.033990 0.071338 +v 0.004828 0.033605 0.065450 +v 0.004828 0.039194 0.071574 +v 0.004828 0.039222 0.064699 +v 0.004828 0.045315 0.064563 +v 0.004828 0.044995 0.072980 +v 0.004828 0.053210 0.065152 +v 0.004828 0.053210 0.076056 +v 0.004828 0.061393 0.072172 +v 0.004828 0.061393 0.061268 +v 0.002663 0.024533 0.072490 +v 0.002663 0.020566 0.074493 +v 0.002663 0.020239 0.076108 +v 0.002663 0.024406 0.069961 +v 0.002663 0.028826 0.070825 +v 0.002663 0.028330 0.067267 +v 0.002663 0.034133 0.070093 +v 0.002663 0.033605 0.065450 +v 0.002663 0.039222 0.064699 +v 0.002663 0.039514 0.070478 +v 0.002663 0.045315 0.064563 +v 0.002663 0.045480 0.071923 +v 0.002663 0.053210 0.065152 +v 0.002663 0.053210 0.075161 +v 0.002663 0.061393 0.071277 +v 0.002663 0.061393 0.061268 +v 0.002663 0.024406 0.069961 +v 0.004828 0.020566 0.074493 +v 0.002663 0.020566 0.074493 +v 0.004828 0.024406 0.069961 +v 0.002663 0.028330 0.067267 +v 0.004828 0.028330 0.067267 +v 0.002663 0.033605 0.065450 +v 0.004828 0.033605 0.065450 +v 0.002663 0.039222 0.064699 +v 0.004828 0.039222 0.064699 +v 0.002663 0.045315 0.064563 +v 0.004828 0.045315 0.064563 +v 0.002663 0.053210 0.065152 +v 0.004828 0.053210 0.065152 +v 0.004828 0.061393 0.061268 +v 0.002663 0.061393 0.061268 +v -0.004828 0.020086 0.077087 +v -0.004828 0.024570 0.073845 +v -0.004828 0.020566 0.074493 +v -0.004828 0.024406 0.069961 +v -0.004828 0.028857 0.072184 +v -0.004828 0.028330 0.067267 +v -0.004828 0.033990 0.071338 +v -0.004828 0.033605 0.065450 +v -0.004828 0.039194 0.071574 +v -0.004828 0.039222 0.064699 +v -0.004828 0.045315 0.064563 +v -0.004828 0.044995 0.072980 +v -0.004828 0.053210 0.065152 +v -0.004828 0.053210 0.076056 +v -0.004828 0.061393 0.072172 +v -0.004828 0.061393 0.061268 +v -0.002663 0.024533 0.072490 +v -0.002663 0.020239 0.076108 +v -0.002663 0.020566 0.074493 +v -0.002663 0.024406 0.069961 +v -0.002663 0.028826 0.070825 +v -0.002663 0.028330 0.067267 +v -0.002663 0.034133 0.070093 +v -0.002663 0.033605 0.065450 +v -0.002663 0.039222 0.064699 +v -0.002663 0.039514 0.070478 +v -0.002663 0.045315 0.064563 +v -0.002663 0.045480 0.071923 +v -0.002663 0.053210 0.065152 +v -0.002663 0.053210 0.075161 +v -0.002663 0.061393 0.071277 +v -0.002663 0.061393 0.061268 +v -0.002663 0.024406 0.069961 +v -0.002663 0.020566 0.074493 +v -0.004828 0.020566 0.074493 +v -0.004828 0.024406 0.069961 +v -0.002663 0.028330 0.067267 +v -0.004828 0.028330 0.067267 +v -0.002663 0.033605 0.065450 +v -0.004828 0.033605 0.065450 +v -0.002663 0.039222 0.064699 +v -0.004828 0.039222 0.064699 +v -0.002663 0.045315 0.064563 +v -0.004828 0.045315 0.064563 +v -0.002663 0.053210 0.065152 +v -0.004828 0.053210 0.065152 +v -0.004828 0.061393 0.061268 +v -0.002663 0.061393 0.061268 +v 0.002663 0.061393 0.071277 +v -0.002663 0.053210 0.075161 +v -0.002663 0.061393 0.071277 +v 0.002663 0.053210 0.075161 +v -0.002663 0.045480 0.071923 +v 0.002663 0.045480 0.071923 +v -0.002663 0.039514 0.070478 +v 0.002663 0.039514 0.070478 +v -0.002663 0.034133 0.070093 +v 0.002663 0.034133 0.070093 +v -0.002663 0.028826 0.070825 +v 0.002663 0.028826 0.070825 +v -0.002663 0.024533 0.072490 +v 0.002663 0.024533 0.072490 +v -0.002663 0.020239 0.076108 +v 0.002663 0.020239 0.076108 +v -0.016034 0.113329 -0.006732 +v 0.016034 0.113329 -0.002244 +v -0.016034 0.113329 -0.002244 +v 0.016034 0.113329 -0.006732 +v -0.014893 0.114329 -0.007741 +v 0.014893 0.114329 -0.007741 +v 0.021010 0.067448 0.223636 +v 0.021035 0.078870 0.143824 +v 0.021053 0.078952 0.223422 +v 0.020990 0.067448 0.133935 +v 0.021031 0.078850 0.124492 +v 0.020980 0.067448 0.083230 +v 0.021022 0.078810 0.083945 +v 0.021029 0.080830 0.079524 +v 0.020973 0.067448 0.058280 +v 0.021042 0.084625 0.075507 +v 0.021070 0.093046 0.058316 +v 0.020972 0.067448 0.053818 +v 0.021059 0.089220 0.073691 +v 0.021075 0.093541 0.072919 +v 0.021087 0.097647 0.059151 +v 0.021089 0.097333 0.072763 +v 0.020896 0.098150 0.072772 +v 0.020862 0.098585 0.059177 +v 0.019688 0.103541 0.059311 +v 0.019601 0.103660 0.072834 +v 0.018168 0.109393 0.072859 +v 0.018069 0.109738 0.057100 +v 0.019692 0.103541 0.053080 +v 0.017181 0.113445 0.058033 +v 0.017181 0.113445 0.072859 +v 0.018014 0.109925 0.043746 +v 0.017181 0.113445 0.040296 +v 0.019673 0.103529 0.045088 +v 0.021088 0.098341 0.051301 +v 0.021087 0.098523 0.044674 +v 0.021081 0.096700 0.051008 +v 0.021081 0.096898 0.044365 +v 0.020970 0.067234 0.045309 +v 0.020969 0.067235 0.039022 +v 0.019667 0.103541 0.038900 +v 0.017974 0.110066 0.037228 +v 0.017181 0.113445 0.037279 +v 0.017125 0.113445 0.023823 +v 0.019668 0.103524 0.031252 +v 0.021082 0.097748 0.036931 +v 0.017925 0.110226 0.023047 +v 0.017141 0.113445 0.008755 +v 0.021082 0.097945 0.031085 +v 0.021077 0.096268 0.036663 +v 0.019615 0.103715 0.025567 +v 0.021076 0.096447 0.030813 +v 0.020968 0.067235 0.031330 +v 0.020967 0.067235 0.025619 +v 0.017834 0.110552 0.009130 +v 0.019539 0.103995 0.017027 +v 0.021079 0.097746 0.023217 +v 0.019536 0.103994 0.011131 +v 0.021079 0.097945 0.016865 +v 0.021074 0.096232 0.022942 +v 0.021073 0.096384 0.016582 +v 0.020965 0.067235 0.017478 +v 0.020963 0.067235 0.011379 +v 0.017885 0.110330 -0.003547 +v 0.017124 0.113289 -0.007780 +v 0.017167 0.113289 -0.002550 +v 0.019597 0.103727 -0.005806 +v 0.021074 0.098060 0.008545 +v 0.017852 0.110445 -0.010668 +v 0.016237 0.112656 -0.009343 +v 0.016900 0.110407 -0.011857 +v 0.021046 0.098133 -0.007617 +v 0.021072 0.096684 0.008230 +v 0.019660 0.103457 -0.018331 +v 0.018710 0.103627 -0.019136 +v 0.020050 0.098387 -0.020234 +v 0.021024 0.098196 -0.019344 +v 0.020220 0.097033 -0.020517 +v 0.021069 0.096777 -0.007930 +v 0.020962 0.067235 0.002671 +v 0.020959 0.067235 -0.013498 +v 0.021067 0.096838 -0.019656 +v 0.020956 0.067235 -0.025773 +v 0.020197 0.067235 -0.026694 +v 0.007449 0.081483 -0.023727 +v 0.016164 0.081460 -0.023758 +v 0.015192 0.080542 -0.023131 +v 0.007541 0.080539 -0.022953 +v 0.006590 0.081627 -0.022861 +v 0.006589 0.080712 -0.022139 +v 0.006570 0.080325 0.054662 +v 0.015192 0.080309 0.038648 +v 0.015192 0.079942 0.054629 +v 0.006588 0.080724 0.037831 +v 0.015192 0.080341 0.025472 +v 0.006588 0.080716 0.010176 +v 0.015192 0.080373 0.012390 +v 0.015192 0.080394 0.003332 +v 0.006588 0.080705 -0.014688 +v 0.015192 0.080415 -0.011217 +v 0.015192 0.080426 -0.019062 +v 0.006589 0.080712 -0.022139 +v 0.007541 0.080539 -0.022953 +v 0.015192 0.080542 -0.023131 +v 0.015192 0.080309 0.038648 +v 0.015193 0.063652 0.054603 +v 0.015192 0.079942 0.054629 +v 0.015193 0.063655 0.037834 +v 0.015192 0.080341 0.025472 +v 0.015193 0.063658 0.024012 +v 0.015192 0.080373 0.012390 +v 0.015193 0.063661 0.010287 +v 0.015192 0.080394 0.003332 +v 0.015193 0.063664 0.000785 +v 0.015192 0.080415 -0.011217 +v 0.015193 0.063667 -0.014479 +v 0.015192 0.080426 -0.019062 +v 0.015193 0.063669 -0.022709 +v 0.015193 0.067235 -0.025833 +v 0.015192 0.080542 -0.023131 +v 0.020959 0.067235 -0.013498 +v 0.017085 0.063606 -0.022549 +v 0.020956 0.067235 -0.025773 +v 0.017085 0.063622 -0.013961 +v 0.020962 0.067235 0.002671 +v 0.017085 0.063618 0.001318 +v 0.019578 0.065881 0.003873 +v 0.017085 0.063626 0.009870 +v 0.019418 0.065609 0.010125 +v 0.019498 0.065687 0.018212 +v 0.020963 0.067235 0.011379 +v 0.020965 0.067235 0.017478 +v 0.017085 0.063654 0.024246 +v 0.019605 0.065794 0.024650 +v 0.019471 0.065711 0.032013 +v 0.020967 0.067235 0.025619 +v 0.020968 0.067235 0.031330 +v 0.017085 0.063606 0.037534 +v 0.019436 0.065630 0.037964 +v 0.020970 0.067234 0.045309 +v 0.020969 0.067235 0.039022 +v 0.019414 0.065644 0.046526 +v 0.017084 0.063535 0.058424 +v 0.019568 0.065777 0.052627 +v 0.020972 0.067448 0.053818 +v 0.020973 0.067448 0.058280 +v 0.020980 0.067448 0.083230 +v 0.017084 0.063540 0.083563 +v 0.020990 0.067448 0.133935 +v 0.017084 0.063548 0.134049 +v 0.021010 0.067448 0.223636 +v 0.017084 0.063605 0.223608 +v 0.019678 0.097835 0.030222 +v 0.019615 0.103715 0.025567 +v 0.019668 0.103524 0.031252 +v 0.019661 0.097973 0.024499 +v 0.019605 0.065794 0.024650 +v 0.019498 0.065687 0.018212 +v 0.019775 0.097832 0.043914 +v 0.019667 0.103541 0.038900 +v 0.019673 0.103529 0.045088 +v 0.019695 0.097826 0.037906 +v 0.019436 0.065630 0.037964 +v 0.019471 0.065711 0.032013 +v 0.019568 0.065777 0.052627 +v 0.021070 0.093046 0.058316 +v 0.020972 0.067448 0.053818 +v 0.019681 0.098116 0.058255 +v 0.021087 0.097647 0.059151 +v 0.020862 0.098585 0.059177 +v 0.019688 0.103541 0.059311 +v 0.019681 0.098116 0.058255 +v 0.019692 0.103541 0.053080 +v 0.019688 0.103541 0.059311 +v 0.019707 0.098330 0.052384 +v 0.019568 0.065777 0.052627 +v 0.019414 0.065644 0.046526 +v 0.021053 0.078952 0.223422 +v 0.019107 0.087157 0.143824 +v 0.019220 0.087157 0.223562 +v 0.021035 0.078870 0.143824 +v 0.019080 0.087157 0.124972 +v 0.021031 0.078850 0.124492 +v 0.019104 0.087157 0.085103 +v 0.021022 0.078810 0.083945 +v 0.021029 0.080830 0.079524 +v 0.019213 0.087595 0.081898 +v 0.021042 0.084625 0.075507 +v 0.019391 0.089003 0.079452 +v 0.021059 0.089220 0.073691 +v 0.019538 0.091650 0.077434 +v 0.021075 0.093541 0.072919 +v 0.019617 0.094523 0.076154 +v 0.021089 0.097333 0.072763 +v 0.019519 0.097821 0.075206 +v 0.020896 0.098150 0.072772 +v 0.019006 0.100353 0.075173 +v 0.019601 0.103660 0.072834 +v 0.017996 0.105333 0.075173 +v 0.018168 0.109393 0.072859 +v 0.017177 0.109049 0.075173 +v 0.016359 0.112219 0.075173 +v 0.017181 0.113445 0.072859 +v 0.016197 0.094062 0.075428 +v 0.016197 0.094351 0.076262 +v 0.016197 0.096526 0.075360 +v 0.016197 0.091604 0.077633 +v 0.016197 0.090912 0.075428 +v 0.016197 0.088935 0.079717 +v 0.016197 0.080918 0.075428 +v 0.016197 0.087587 0.082092 +v 0.016197 0.087160 0.085230 +v 0.016197 0.077933 0.130452 +v 0.016197 0.068299 0.075427 +v 0.016197 0.068142 0.130732 +v 0.016197 0.087156 0.125874 +v 0.016197 0.078927 0.131731 +v 0.016197 0.078927 0.146523 +v 0.016197 0.087154 0.143824 +v 0.016197 0.087150 0.223637 +v 0.016197 0.078927 0.223787 +v 0.003056 0.114019 0.075173 +v 0.000000 0.118976 0.075173 +v 0.000000 0.114271 0.075173 +v 0.004373 0.118561 0.075173 +v 0.007346 0.112853 0.075173 +v 0.009183 0.117392 0.075173 +v 0.012465 0.115752 0.075173 +v 0.010821 0.110690 0.075173 +v 0.014800 0.114014 0.075173 +v 0.016359 0.112219 0.075173 +v 0.013844 0.107084 0.075173 +v 0.017177 0.109049 0.075173 +v 0.017996 0.105333 0.075173 +v 0.015324 0.103497 0.075173 +v 0.019006 0.100353 0.075173 +v 0.016101 0.100671 0.075173 +v 0.019519 0.097821 0.075206 +v 0.016197 0.096526 0.075360 +v 0.019617 0.094523 0.076154 +v 0.016197 0.094351 0.076262 +v 0.019538 0.091650 0.077434 +v 0.016197 0.091604 0.077633 +v 0.019391 0.089003 0.079452 +v 0.016197 0.088935 0.079717 +v 0.019213 0.087595 0.081898 +v 0.016197 0.087587 0.082092 +v 0.019104 0.087157 0.085103 +v 0.016197 0.087160 0.085230 +v 0.014933 0.091042 0.075428 +v 0.016197 0.090912 0.075428 +v 0.016197 0.094062 0.075428 +v 0.012981 0.087670 0.075428 +v 0.016197 0.080918 0.075428 +v 0.009275 0.084449 0.075428 +v 0.016197 0.068299 0.075427 +v 0.005680 0.068120 0.075428 +v 0.004960 0.082476 0.075428 +v 0.000000 0.081737 0.075428 +v 0.000000 0.068034 0.075428 +v 0.016197 0.068299 0.075427 +v 0.006034 0.068121 0.130762 +v 0.016197 0.068142 0.130732 +v 0.005680 0.068120 0.075428 +v 0.000000 0.068154 0.130765 +v 0.000000 0.068034 0.075428 +v -0.020968 0.067235 0.031330 +v -0.021076 0.096447 0.030813 +v -0.020967 0.067235 0.025619 +v -0.021077 0.096268 0.036663 +v -0.021082 0.097945 0.031085 +v -0.021082 0.097748 0.036931 +v -0.019668 0.103524 0.031252 +v -0.019667 0.103541 0.038900 +v -0.017974 0.110066 0.037228 +v -0.018014 0.109925 0.043746 +v -0.019673 0.103529 0.045088 +v -0.017925 0.110226 0.023047 +v -0.019615 0.103715 0.025567 +v -0.017181 0.113445 0.040296 +v -0.017181 0.113445 0.037279 +v -0.017125 0.113445 0.023823 +v -0.017141 0.113445 0.008755 +v -0.017181 0.113445 0.058033 +v -0.017834 0.110552 0.009130 +v -0.018069 0.109738 0.057100 +v -0.019539 0.103995 0.017027 +v -0.021079 0.097746 0.023217 +v -0.019536 0.103994 0.011131 +v -0.021079 0.097945 0.016865 +v -0.021074 0.096232 0.022942 +v -0.021073 0.096384 0.016582 +v -0.020965 0.067235 0.017478 +v -0.020963 0.067235 0.011379 +v -0.017885 0.110330 -0.003547 +v -0.018168 0.109393 0.072859 +v -0.017181 0.113445 0.072859 +v -0.017124 0.113289 -0.007780 +v -0.017167 0.113289 -0.002550 +v -0.019688 0.103541 0.059311 +v -0.019601 0.103660 0.072834 +v -0.020896 0.098150 0.072772 +v -0.019692 0.103541 0.053080 +v -0.020862 0.098585 0.059177 +v -0.021087 0.097647 0.059151 +v -0.021088 0.098341 0.051301 +v -0.021089 0.097333 0.072763 +v -0.021087 0.098523 0.044674 +v -0.021075 0.093541 0.072919 +v -0.021081 0.096700 0.051008 +v -0.021070 0.093046 0.058316 +v -0.021081 0.096898 0.044365 +v -0.020970 0.067234 0.045309 +v -0.020969 0.067235 0.039022 +v -0.021059 0.089220 0.073691 +v -0.021042 0.084625 0.075507 +v -0.020973 0.067448 0.058280 +v -0.020972 0.067448 0.053818 +v -0.021029 0.080830 0.079524 +v -0.020980 0.067448 0.083230 +v -0.021022 0.078810 0.083945 +v -0.021031 0.078850 0.124492 +v -0.020990 0.067448 0.133935 +v -0.021035 0.078870 0.143824 +v -0.021010 0.067448 0.223636 +v -0.021053 0.078952 0.223422 +v -0.016237 0.112656 -0.009343 +v -0.017852 0.110445 -0.010668 +v -0.016900 0.110407 -0.011857 +v -0.019660 0.103457 -0.018331 +v -0.018710 0.103627 -0.019136 +v -0.019597 0.103727 -0.005806 +v -0.020050 0.098387 -0.020234 +v -0.021074 0.098060 0.008545 +v -0.021024 0.098196 -0.019344 +v -0.021046 0.098133 -0.007617 +v -0.021072 0.096684 0.008230 +v -0.020220 0.097033 -0.020517 +v -0.021069 0.096777 -0.007930 +v -0.020962 0.067235 0.002671 +v -0.020959 0.067235 -0.013498 +v -0.021067 0.096838 -0.019656 +v -0.020956 0.067235 -0.025773 +v -0.020197 0.067235 -0.026694 +v -0.016164 0.081460 -0.023758 +v -0.007449 0.081483 -0.023727 +v -0.015192 0.080542 -0.023131 +v -0.007541 0.080539 -0.022953 +v -0.006590 0.081627 -0.022861 +v -0.006589 0.080712 -0.022139 +v -0.006588 0.080724 0.037831 +v -0.006565 0.082520 0.054636 +v -0.006570 0.080325 0.054662 +v -0.006572 0.082520 0.037455 +v -0.006588 0.080716 0.010176 +v -0.006577 0.082521 0.010123 +v -0.006588 0.080705 -0.014688 +v -0.006571 0.082522 -0.015909 +v -0.006589 0.080712 -0.022139 +v -0.006590 0.083181 -0.016985 +v -0.006590 0.081627 -0.022861 +v -0.006590 0.092535 -0.020633 +v -0.006590 0.092556 -0.016935 +v -0.006590 0.097877 -0.019534 +v -0.006590 0.099899 -0.016896 +v -0.006590 0.103440 -0.018389 +v -0.006590 0.103440 -0.018389 +v -0.006122 0.099899 -0.016874 +v -0.006590 0.099899 -0.016896 +v -0.006117 0.103444 -0.018917 +v 0.000000 0.099899 -0.016816 +v 0.000000 0.103531 -0.018984 +v 0.006117 0.103444 -0.018917 +v 0.006122 0.099899 -0.016874 +v 0.006590 0.103440 -0.018389 +v 0.006590 0.099899 -0.016896 +v -0.015192 0.079942 0.054629 +v -0.015192 0.080309 0.038648 +v -0.006570 0.080325 0.054662 +v -0.006588 0.080724 0.037831 +v -0.015192 0.080341 0.025472 +v -0.006588 0.080716 0.010176 +v -0.015192 0.080373 0.012390 +v -0.015192 0.080394 0.003332 +v -0.006588 0.080705 -0.014688 +v -0.015192 0.080415 -0.011217 +v -0.015192 0.080426 -0.019062 +v -0.006589 0.080712 -0.022139 +v -0.007541 0.080539 -0.022953 +v -0.015192 0.080542 -0.023131 +v -0.015193 0.063652 0.054603 +v -0.015192 0.080309 0.038648 +v -0.015192 0.079942 0.054629 +v -0.015193 0.063655 0.037834 +v -0.015192 0.080341 0.025472 +v -0.015193 0.063658 0.024012 +v -0.015192 0.080373 0.012390 +v -0.015193 0.063661 0.010287 +v -0.015192 0.080394 0.003332 +v -0.015193 0.063664 0.000785 +v -0.015192 0.080415 -0.011217 +v -0.015193 0.063667 -0.014479 +v -0.015192 0.080426 -0.019062 +v -0.015193 0.063669 -0.022709 +v -0.015193 0.067235 -0.025833 +v -0.015192 0.080542 -0.023131 +v -0.019471 0.065711 0.032013 +v -0.021077 0.096268 0.036663 +v -0.020968 0.067235 0.031330 +v -0.019695 0.097826 0.037906 +v -0.021082 0.097748 0.036931 +v -0.019667 0.103541 0.038900 +v -0.019498 0.065687 0.018212 +v -0.021074 0.096232 0.022942 +v -0.020965 0.067235 0.017478 +v -0.019661 0.097973 0.024499 +v -0.021079 0.097746 0.023217 +v -0.019615 0.103715 0.025567 +v -0.017085 0.063606 -0.022549 +v -0.020959 0.067235 -0.013498 +v -0.020956 0.067235 -0.025773 +v -0.017085 0.063622 -0.013961 +v -0.020962 0.067235 0.002671 +v -0.017085 0.063618 0.001318 +v -0.019578 0.065881 0.003873 +v -0.017085 0.063626 0.009870 +v -0.019418 0.065609 0.010125 +v -0.019498 0.065687 0.018212 +v -0.020963 0.067235 0.011379 +v -0.020965 0.067235 0.017478 +v -0.017085 0.063654 0.024246 +v -0.019605 0.065794 0.024650 +v -0.019471 0.065711 0.032013 +v -0.020967 0.067235 0.025619 +v -0.020968 0.067235 0.031330 +v -0.017085 0.063606 0.037534 +v -0.019436 0.065630 0.037964 +v -0.020970 0.067234 0.045309 +v -0.020969 0.067235 0.039022 +v -0.019414 0.065644 0.046526 +v -0.017084 0.063535 0.058424 +v -0.019568 0.065777 0.052627 +v -0.020972 0.067448 0.053818 +v -0.020973 0.067448 0.058280 +v -0.020980 0.067448 0.083230 +v -0.017084 0.063540 0.083563 +v -0.020990 0.067448 0.133935 +v -0.017084 0.063548 0.134049 +v -0.021010 0.067448 0.223636 +v -0.017084 0.063605 0.223608 +v -0.019615 0.103715 0.025567 +v -0.019678 0.097835 0.030222 +v -0.019668 0.103524 0.031252 +v -0.019661 0.097973 0.024499 +v -0.019605 0.065794 0.024650 +v -0.019498 0.065687 0.018212 +v -0.019414 0.065644 0.046526 +v -0.021081 0.096700 0.051008 +v -0.020970 0.067234 0.045309 +v -0.019707 0.098330 0.052384 +v -0.021088 0.098341 0.051301 +v -0.019692 0.103541 0.053080 +v -0.019667 0.103541 0.038900 +v -0.019775 0.097832 0.043914 +v -0.019673 0.103529 0.045088 +v -0.019695 0.097826 0.037906 +v -0.019436 0.065630 0.037964 +v -0.019471 0.065711 0.032013 +v -0.021070 0.093046 0.058316 +v -0.019568 0.065777 0.052627 +v -0.020972 0.067448 0.053818 +v -0.019681 0.098116 0.058255 +v -0.021087 0.097647 0.059151 +v -0.020862 0.098585 0.059177 +v -0.019688 0.103541 0.059311 +v -0.019692 0.103541 0.053080 +v -0.019681 0.098116 0.058255 +v -0.019688 0.103541 0.059311 +v -0.019707 0.098330 0.052384 +v -0.019568 0.065777 0.052627 +v -0.019414 0.065644 0.046526 +v -0.019107 0.087157 0.143824 +v -0.021053 0.078952 0.223422 +v -0.019220 0.087157 0.223562 +v -0.021035 0.078870 0.143824 +v -0.019080 0.087157 0.124972 +v -0.021031 0.078850 0.124492 +v -0.019104 0.087157 0.085103 +v -0.021022 0.078810 0.083945 +v -0.021029 0.080830 0.079524 +v -0.019213 0.087595 0.081898 +v -0.021042 0.084625 0.075507 +v -0.019391 0.089003 0.079452 +v -0.021059 0.089220 0.073691 +v -0.019538 0.091650 0.077434 +v -0.021075 0.093541 0.072919 +v -0.019617 0.094523 0.076154 +v -0.021089 0.097333 0.072763 +v -0.019519 0.097821 0.075206 +v -0.020896 0.098150 0.072772 +v -0.019006 0.100353 0.075173 +v -0.019601 0.103660 0.072834 +v -0.017996 0.105333 0.075173 +v -0.018168 0.109393 0.072859 +v -0.017177 0.109049 0.075173 +v -0.016359 0.112219 0.075173 +v -0.017181 0.113445 0.072859 +v -0.019536 0.103994 0.011131 +v -0.019651 0.096338 0.015512 +v -0.019539 0.103995 0.017027 +v -0.019752 0.096651 0.009655 +v -0.019418 0.065609 0.010125 +v -0.019578 0.065881 0.003873 +v -0.016197 0.094062 0.075428 +v -0.016197 0.096526 0.075360 +v -0.016197 0.094351 0.076262 +v -0.016197 0.091604 0.077633 +v -0.016197 0.090912 0.075428 +v -0.016197 0.088935 0.079717 +v -0.016197 0.080918 0.075428 +v -0.016197 0.087587 0.082092 +v -0.016197 0.087160 0.085230 +v -0.016197 0.077933 0.130452 +v -0.016197 0.068299 0.075427 +v -0.016197 0.068142 0.130732 +v -0.016197 0.087156 0.125874 +v -0.016197 0.078927 0.131731 +v -0.016197 0.078927 0.146523 +v -0.016197 0.087154 0.143824 +v -0.016197 0.087150 0.223637 +v -0.016197 0.078927 0.223787 +v -0.013550 0.077569 0.130822 +v -0.016197 0.068142 0.130732 +v -0.016197 0.077933 0.130452 +v -0.009694 0.074948 0.130875 +v -0.006034 0.068121 0.130762 +v -0.005001 0.073267 0.130836 +v 0.000000 0.068154 0.130765 +v 0.000000 0.072738 0.130825 +v -0.016197 0.087587 0.082092 +v -0.019104 0.087157 0.085103 +v -0.016197 0.087160 0.085230 +v -0.019213 0.087595 0.081898 +v -0.016197 0.088935 0.079717 +v -0.019391 0.089003 0.079452 +v -0.016197 0.091604 0.077633 +v -0.019538 0.091650 0.077434 +v -0.016197 0.094351 0.076262 +v -0.019617 0.094523 0.076154 +v -0.016197 0.096526 0.075360 +v -0.019519 0.097821 0.075206 +v -0.016101 0.100671 0.075173 +v -0.019006 0.100353 0.075173 +v -0.015324 0.103497 0.075173 +v -0.017996 0.105333 0.075173 +v -0.013844 0.107084 0.075173 +v -0.017177 0.109049 0.075173 +v -0.016359 0.112219 0.075173 +v -0.010821 0.110690 0.075173 +v -0.014800 0.114014 0.075173 +v -0.012465 0.115752 0.075173 +v -0.007346 0.112853 0.075173 +v -0.009183 0.117392 0.075173 +v -0.004373 0.118561 0.075173 +v -0.003056 0.114019 0.075173 +v 0.000000 0.118976 0.075173 +v 0.000000 0.114271 0.075173 +v -0.005680 0.068120 0.075428 +v 0.000000 0.068154 0.130765 +v 0.000000 0.068034 0.075428 +v -0.006034 0.068121 0.130762 +v -0.016197 0.068299 0.075427 +v -0.016197 0.068142 0.130732 +v 0.011212 0.094358 0.074698 +v 0.010042 0.095106 0.069163 +v 0.010148 0.095027 0.072802 +v 0.014336 0.092403 0.077674 +v 0.011224 0.094328 0.081751 +v 0.014326 0.092388 0.083961 +v 0.010892 0.094527 0.083961 +v 0.010024 0.095075 0.081751 +v 0.012761 0.106348 0.083961 +v 0.007984 0.105718 0.083961 +v 0.009723 0.103609 0.083961 +v 0.010264 0.108854 0.083961 +v 0.005201 0.107691 0.083961 +v 0.007350 0.110895 0.083961 +v 0.004149 0.112381 0.083961 +v 0.002654 0.108621 0.083961 +v 0.008979 0.102991 0.069163 +v 0.009958 0.103854 0.074670 +v 0.008971 0.102971 0.072801 +v 0.012750 0.106361 0.077674 +v 0.009971 0.103840 0.081751 +v 0.012761 0.106348 0.083961 +v 0.009723 0.103609 0.083961 +v 0.008995 0.102961 0.081751 +v 0.002743 0.108841 0.074670 +v 0.002269 0.107646 0.069163 +v 0.002268 0.107646 0.072801 +v 0.004150 0.112380 0.077674 +v 0.002742 0.108842 0.081751 +v 0.004149 0.112381 0.083961 +v 0.002654 0.108621 0.083961 +v 0.002270 0.107655 0.081751 +v -0.013566 0.103091 0.083961 +v -0.010307 0.099555 0.083961 +v -0.009569 0.102219 0.083961 +v -0.014183 0.099628 0.083961 +v -0.010325 0.096142 0.083961 +v -0.014183 0.096070 0.083961 +v -0.013567 0.092608 0.083961 +v -0.009611 0.093463 0.083961 +v -0.009569 0.102219 0.083961 +v -0.010307 0.099555 0.083961 +v -0.008610 0.102011 0.081751 +v -0.009291 0.099572 0.081751 +v -0.010325 0.096142 0.083961 +v -0.009279 0.096067 0.081751 +v -0.008600 0.093681 0.081751 +v -0.009611 0.093463 0.083961 +v -0.008713 0.102039 0.069163 +v -0.009994 0.102316 0.074670 +v -0.008711 0.102037 0.072801 +v -0.013566 0.103093 0.077674 +v -0.009984 0.102310 0.081751 +v -0.013566 0.103091 0.083961 +v -0.009569 0.102219 0.083961 +v -0.008610 0.102011 0.081751 +v -0.009990 0.093382 0.074670 +v -0.008710 0.093659 0.069163 +v -0.008704 0.093660 0.072801 +v -0.013567 0.092609 0.077674 +v -0.009988 0.093382 0.081751 +v -0.013567 0.092608 0.083961 +v -0.009611 0.093463 0.083961 +v -0.008600 0.093681 0.081751 +v 0.007566 0.090920 0.069199 +v 0.008635 0.090177 0.074670 +v 0.007581 0.090913 0.072793 +v 0.011563 0.088131 0.077674 +v 0.008637 0.090181 0.081751 +v 0.011565 0.088134 0.083961 +v 0.008245 0.090457 0.083961 +v 0.007404 0.091043 0.081751 +v -0.015063 -0.066084 -0.034262 +v -0.015041 -0.082614 0.027876 +v -0.015042 -0.079572 0.028474 +v -0.015042 -0.075152 0.026539 +v -0.015042 -0.054817 -0.030678 +v -0.015042 -0.069058 0.025373 +v -0.015042 -0.061311 0.025865 +v -0.015042 -0.005112 0.041088 +v -0.015042 0.013914 -0.008466 +v -0.015042 0.000465 0.043737 +v -0.015042 0.021261 -0.006786 +v -0.015042 0.004752 0.047086 +v -0.015042 0.025504 0.051096 +v -0.015042 0.008296 0.051736 +v -0.015042 0.028474 -0.005878 +v -0.015042 0.021306 0.055250 +v -0.015042 0.032316 0.049058 +v -0.015042 0.010155 0.056855 +v -0.015042 0.036821 -0.006490 +v -0.015042 0.019251 0.058757 +v -0.015042 0.039431 0.049426 +v -0.015042 0.011143 0.062346 +v -0.015042 0.044592 -0.009219 +v -0.015042 0.017835 0.062638 +v -0.015042 0.046315 0.052679 +v -0.015042 0.017073 0.065435 +v -0.015042 0.050867 -0.014053 +v -0.015042 0.011577 0.065138 +v -0.011447 0.011577 0.068899 +v -0.011435 0.017206 0.069060 +v -0.007830 0.011577 0.072684 +v -0.007828 0.017339 0.072684 +v -0.007830 0.017339 0.096338 +v -0.007830 0.011577 0.096338 +v -0.007830 0.017450 0.098553 +v -0.007830 0.011577 0.099828 +v -0.007830 0.017762 0.100810 +v -0.007830 0.011863 0.103379 +v -0.007830 0.018471 0.102936 +v -0.007830 0.012853 0.106707 +v -0.007830 0.019707 0.104792 +v -0.007830 0.014803 0.109481 +v -0.007829 0.021290 0.106360 +v -0.007830 0.017399 0.111664 +v -0.007830 0.020669 0.113233 +v -0.007829 0.023200 0.107616 +v -0.007831 0.029882 0.109258 +v -0.007852 0.029688 0.115832 +v -0.015042 0.067115 -0.007702 +v -0.015042 0.050238 0.059715 +v -0.015042 0.055455 -0.020312 +v -0.015042 0.067110 0.071189 +v -0.015042 0.051457 0.065926 +v -0.015042 0.052065 0.071012 +v -0.015042 0.052366 0.075939 +v -0.015042 0.052225 0.095069 +v -0.015042 0.073898 0.104950 +v -0.015042 0.073898 0.071189 +v -0.015042 0.066978 0.104950 +v -0.015042 0.073898 0.130940 +v -0.015042 0.066876 0.130940 +v -0.015042 0.050971 0.102460 +v -0.015042 0.058218 0.130940 +v -0.015042 0.051382 0.124631 +v -0.015042 0.054201 0.130940 +v -0.015042 0.047554 0.107776 +v -0.015042 0.047147 0.120009 +v -0.015042 0.042773 0.110072 +v -0.015042 0.041902 0.116294 +v -0.015066 0.038013 0.114050 +v -0.015017 0.038073 0.110544 +v -0.015042 0.080540 -0.007702 +v -0.015042 0.068613 -0.016732 +v -0.015042 0.080540 -0.016732 +v -0.015042 0.080540 -0.022936 +v -0.015042 0.069428 -0.025245 +v -0.015042 0.066179 -0.026607 +v -0.015042 0.057289 -0.026494 +v -0.015042 0.062808 -0.029628 +v -0.015042 0.057906 -0.034831 +v -0.015058 0.061135 -0.034776 +v -0.013174 0.058512 -0.042457 +v -0.013107 0.056768 -0.042366 +v -0.009562 0.056437 -0.047778 +v -0.009472 0.055182 -0.047560 +v -0.005053 0.055140 -0.050918 +v -0.004987 0.053899 -0.050568 +v -0.000000 0.054619 -0.051954 +v -0.000000 0.053319 -0.051513 +v -0.000000 0.082662 -0.016732 +v -0.006624 0.080540 -0.016732 +v -0.006624 0.082662 -0.016732 +v -0.000000 0.080540 -0.016732 +v -0.006624 0.073910 -0.016732 +v -0.000000 0.073910 -0.016732 +v -0.000000 0.066294 -0.017676 +v -0.006624 0.066294 -0.017676 +v -0.000000 0.063898 -0.020873 +v -0.006624 0.063898 -0.020873 +v -0.006624 0.063753 -0.030246 +v -0.000000 0.063753 -0.030246 +v -0.000000 -0.065870 -0.019186 +v 0.000000 0.023066 0.005182 +v -0.009489 0.023066 0.005182 +v -0.009489 -0.065870 -0.019186 +v -0.000000 -0.070763 -0.023866 +v -0.010731 -0.070614 -0.023827 +v -0.015042 0.058218 0.272421 +v -0.015042 0.054201 0.237989 +v -0.015042 0.054201 0.272421 +v -0.015042 0.058218 0.236416 +v -0.015042 0.056171 0.236416 +v -0.015042 0.056171 0.229996 +v -0.015042 0.058218 0.229996 +v -0.015042 0.054201 0.228430 +v -0.015042 0.058218 0.130940 +v -0.015042 0.054201 0.130940 +v -0.012849 0.064636 0.233206 +v -0.012849 0.060723 0.272421 +v -0.012849 0.064636 0.272421 +v -0.012849 0.060723 0.233206 +v -0.012849 0.064636 0.133956 +v -0.012849 0.060723 0.133956 +v -0.012849 0.060723 0.272421 +v -0.015042 0.058218 0.236416 +v -0.015042 0.058218 0.272421 +v -0.012849 0.060723 0.233206 +v -0.015042 0.058218 0.229996 +v -0.012849 0.060723 0.133956 +v -0.015042 0.058218 0.130940 +v -0.011285 0.050420 0.130940 +v -0.015042 0.054201 0.228430 +v -0.015042 0.054201 0.130940 +v -0.011285 0.050420 0.228473 +v 0.000000 0.050420 0.130940 +v 0.000000 0.050420 0.228473 +v -0.011285 0.050420 0.237951 +v 0.000000 0.054201 0.237989 +v 0.000000 0.050420 0.237951 +v -0.015042 0.054201 0.237989 +v 0.000000 0.056171 0.236416 +v -0.015042 0.056171 0.236416 +v 0.000000 0.056171 0.229996 +v -0.015042 0.056171 0.229996 +v 0.000000 0.054201 0.228430 +v -0.015042 0.054201 0.228430 +v -0.011285 0.050420 0.228473 +v 0.000000 0.050420 0.228473 +v -0.006624 0.063898 -0.020873 +v -0.006624 0.063753 -0.030246 +v -0.006599 0.066770 -0.027542 +v -0.006594 0.069898 -0.026258 +v -0.006624 0.066294 -0.017676 +v -0.006624 0.073910 -0.016732 +v -0.006574 0.080540 -0.024048 +v -0.006624 0.080540 -0.016732 +v -0.009601 0.067979 0.272421 +v -0.009601 0.067979 0.233206 +v -0.009601 0.073898 0.272421 +v -0.009601 0.073898 0.233206 +v -0.009601 0.067979 0.135983 +v -0.009601 0.073898 0.130940 +v -0.000000 0.054619 -0.051954 +v 0.004987 0.053899 -0.050568 +v -0.000000 0.053319 -0.051513 +v 0.005053 0.055140 -0.050918 +v 0.009472 0.055182 -0.047560 +v 0.009562 0.056437 -0.047778 +v 0.013107 0.056768 -0.042366 +v 0.013174 0.058512 -0.042457 +v 0.015042 0.057906 -0.034831 +v 0.015058 0.061135 -0.034776 +v 0.015042 0.062808 -0.029628 +v 0.015042 0.057289 -0.026494 +v 0.015042 0.066179 -0.026607 +v 0.015042 0.055455 -0.020312 +v 0.015042 0.068613 -0.016732 +v 0.015042 0.069428 -0.025245 +v 0.015042 0.080540 -0.022936 +v 0.015042 0.080540 -0.016732 +v 0.015042 0.080540 -0.007702 +v 0.015042 0.067115 -0.007702 +v 0.015042 0.050867 -0.014053 +v 0.015042 0.046315 0.052679 +v 0.015042 0.044592 -0.009219 +v 0.015042 0.050238 0.059715 +v 0.015042 0.039431 0.049426 +v 0.015042 0.067110 0.071189 +v 0.015042 0.036821 -0.006490 +v 0.015042 0.032316 0.049058 +v 0.015042 0.028474 -0.005878 +v 0.015042 0.051457 0.065926 +v 0.015042 0.025504 0.051096 +v 0.015042 0.052065 0.071012 +v 0.015042 0.021261 -0.006786 +v 0.015042 0.052366 0.075939 +v 0.015042 0.052225 0.095069 +v 0.015042 0.004752 0.047086 +v 0.015042 0.008296 0.051736 +v 0.015042 0.000465 0.043737 +v 0.015042 0.021306 0.055250 +v 0.015042 0.013914 -0.008466 +v 0.015042 0.010155 0.056855 +v 0.015042 -0.005112 0.041088 +v 0.015042 0.019251 0.058757 +v 0.015042 -0.054817 -0.030678 +v 0.015042 0.011143 0.062346 +v 0.015042 -0.061311 0.025865 +v 0.015042 0.017835 0.062638 +v 0.015042 -0.069058 0.025373 +v 0.015042 0.017073 0.065435 +v 0.015042 -0.075152 0.026539 +v 0.015042 0.011577 0.065138 +v 0.015063 -0.066084 -0.034262 +v 0.011447 0.011577 0.068899 +v 0.015042 -0.079572 0.028474 +v 0.015041 -0.082614 0.027876 +v 0.011435 0.017206 0.069060 +v 0.007830 0.011577 0.072684 +v 0.007828 0.017339 0.072684 +v 0.007830 0.017339 0.096338 +v 0.007830 0.011577 0.096338 +v 0.007830 0.017450 0.098553 +v 0.007830 0.011577 0.099828 +v 0.007830 0.017762 0.100810 +v 0.007830 0.011863 0.103379 +v 0.007830 0.018471 0.102936 +v 0.007830 0.012853 0.106707 +v 0.007830 0.019707 0.104792 +v 0.007830 0.014803 0.109481 +v 0.007829 0.021290 0.106360 +v 0.007830 0.017399 0.111664 +v 0.007830 0.020669 0.113233 +v 0.007829 0.023200 0.107616 +v 0.007831 0.029882 0.109258 +v 0.007852 0.029688 0.115832 +v 0.000000 0.023066 0.005182 +v -0.000000 -0.065870 -0.019186 +v 0.009489 0.023066 0.005182 +v 0.009489 -0.065870 -0.019186 +v -0.000000 -0.070763 -0.023866 +v 0.010731 -0.070614 -0.023827 +v 0.012849 0.064636 0.233206 +v 0.012849 0.064636 0.272421 +v 0.012849 0.060723 0.272421 +v 0.012849 0.060723 0.233206 +v 0.012849 0.064636 0.133956 +v 0.012849 0.060723 0.133956 +v 0.015042 0.058218 0.236416 +v 0.012849 0.060723 0.272421 +v 0.015042 0.058218 0.272421 +v 0.012849 0.060723 0.233206 +v 0.015042 0.058218 0.229996 +v 0.012849 0.060723 0.133956 +v 0.015042 0.058218 0.130940 +v 0.000000 0.054201 0.237989 +v 0.011285 0.050420 0.237951 +v 0.000000 0.050420 0.237951 +v 0.015042 0.054201 0.237989 +v 0.000000 0.056171 0.236416 +v 0.015042 0.056171 0.236416 +v 0.000000 0.056171 0.229996 +v 0.015042 0.056171 0.229996 +v 0.000000 0.054201 0.228430 +v 0.015042 0.054201 0.228430 +v 0.011285 0.050420 0.228473 +v 0.000000 0.050420 0.228473 +v 0.006574 0.080540 -0.024048 +v 0.006624 0.073910 -0.016732 +v 0.006624 0.080540 -0.016732 +v 0.006594 0.069898 -0.026258 +v 0.006624 0.066294 -0.017676 +v 0.006624 0.063898 -0.020873 +v 0.006599 0.066770 -0.027542 +v 0.006624 0.063753 -0.030246 +v 0.005274 0.013135 0.044737 +v 0.009489 0.023066 0.005182 +v 0.009489 0.013685 0.042458 +v 0.000000 0.023066 0.005182 +v 0.000000 0.013135 0.044737 +v 0.009601 0.067979 0.135983 +v 0.009601 0.073898 0.233206 +v 0.009601 0.073898 0.130940 +v 0.009601 0.067979 0.233206 +v 0.009601 0.073898 0.272421 +v 0.009601 0.067979 0.272421 +v -0.010244 0.115808 0.288486 +v -0.011286 0.114676 0.285660 +v -0.011317 0.114659 0.288486 +v -0.010244 0.115808 0.285660 +v -0.009736 0.116128 0.285660 +v -0.009736 0.116128 0.288486 +v 0.000000 0.116084 0.288466 +v 0.000000 0.116128 0.285660 +v 0.009736 0.116128 0.285660 +v 0.009736 0.116128 0.288486 +v 0.010244 0.115808 0.288486 +v 0.010244 0.115808 0.285660 +v 0.011286 0.114676 0.285660 +v 0.011317 0.114659 0.288486 +v -0.011286 0.114676 0.274513 +v 0.000000 0.114676 0.274513 +v -0.009945 0.116128 0.274513 +v 0.000000 0.116128 0.274513 +v 0.009945 0.116128 0.274513 +v 0.011286 0.114676 0.274513 +v -0.011286 0.114676 0.274513 +v -0.011286 0.114676 0.285660 +v 0.000000 0.114676 0.274513 +v 0.000000 0.114676 0.285660 +v 0.011286 0.114676 0.285660 +v 0.011286 0.114676 0.274513 +v 0.015618 0.107192 0.288486 +v 0.013133 0.109226 0.290358 +v 0.013554 0.107511 0.290358 +v 0.014700 0.111039 0.288486 +v 0.011317 0.114659 0.288486 +v 0.009058 0.114028 0.290358 +v 0.010244 0.115808 0.288486 +v 0.009736 0.116128 0.288486 +v 0.008316 0.114227 0.290358 +v 0.000000 0.116084 0.288466 +v 0.000000 0.114155 0.290358 +v -0.008316 0.114227 0.290358 +v -0.009736 0.116128 0.288486 +v -0.009058 0.114028 0.290358 +v -0.010244 0.115808 0.288486 +v -0.011317 0.114659 0.288486 +v -0.013133 0.109226 0.290358 +v -0.014700 0.111039 0.288486 +v -0.015618 0.107192 0.288486 +v -0.013554 0.107511 0.290358 +v 0.002744 0.108949 0.084763 +v 0.004166 0.112523 0.075363 +v 0.004166 0.112524 0.084763 +v 0.002744 0.108949 0.075363 +v 0.002428 0.109522 0.074853 +v 0.003873 0.113154 0.074853 +v 0.011655 0.088033 0.075363 +v 0.015158 0.092501 0.074853 +v 0.011793 0.087315 0.074853 +v 0.014450 0.092341 0.075363 +v 0.014444 0.092331 0.084763 +v 0.011656 0.088035 0.084763 +v 0.010688 0.103802 0.074853 +v 0.012857 0.106438 0.075363 +v 0.013567 0.106397 0.074853 +v 0.010042 0.103902 0.075363 +v 0.010045 0.103898 0.084763 +v 0.012864 0.106431 0.084763 +v -0.002663 0.020239 0.076108 +v -0.004828 0.020566 0.074493 +v -0.002663 0.020566 0.074493 +v -0.004828 0.020086 0.077087 +v -0.002578 0.020461 0.079089 +v 0.002663 0.020239 0.076108 +v 0.002578 0.020461 0.079089 +v 0.004828 0.020086 0.077087 +v 0.004828 0.020566 0.074493 +v 0.002663 0.020566 0.074493 +v 0.016034 0.113329 -0.002244 +v 0.016397 0.110585 0.009284 +v 0.016397 0.110585 -0.003169 +v 0.016034 0.113329 0.008359 +v 0.015678 0.116021 0.013315 +v 0.016034 0.113329 0.013315 +v 0.015672 0.116064 -0.006732 +v 0.016034 0.113329 -0.006732 +v 0.014893 0.114329 -0.007741 +v 0.014826 0.119977 0.010734 +v 0.014686 0.115893 -0.007741 +v 0.014826 0.119977 -0.006732 +v 0.013855 0.119737 -0.007741 +v 0.014047 0.122766 0.008928 +v 0.013133 0.122320 -0.007741 +v 0.014047 0.122766 -0.006732 +v 0.012579 0.124758 0.007637 +v 0.011903 0.123990 -0.007741 +v 0.012579 0.124758 -0.006732 +v 0.010439 0.125953 0.006863 +v 0.010439 0.125953 -0.006732 +v 0.010114 0.124989 -0.007741 +v 0.007609 0.126351 0.006605 +v 0.007609 0.126351 -0.006732 +v 0.007539 0.125351 -0.007741 +v 0.005510 0.126351 -0.006732 +v 0.005510 0.125351 -0.007741 +v 0.004435 0.125351 -0.007741 +v 0.005510 0.126351 0.006605 +v 0.003435 0.126351 -0.006732 +v 0.003435 0.126351 0.006605 +v 0.003435 0.120830 -0.006732 +v 0.004435 0.125351 -0.007741 +v 0.004435 0.119830 -0.007741 +v 0.003435 0.126351 -0.006732 +v 0.003435 0.123610 -0.003879 +v 0.003435 0.120830 -0.003879 +v 0.003435 0.126351 0.006605 +v 0.003435 0.123610 0.008381 +v -0.003435 0.120830 -0.003879 +v 0.003435 0.120830 -0.003879 +v -0.003435 0.120830 -0.006732 +v 0.003435 0.120830 -0.006732 +v 0.004435 0.119830 -0.007741 +v -0.004435 0.119830 -0.007741 +v -0.016397 0.110585 0.009284 +v -0.016034 0.113329 -0.002244 +v -0.016397 0.110585 -0.003169 +v -0.016034 0.113329 0.008359 +v -0.016034 0.113329 0.013315 +v -0.015678 0.116021 0.013315 +v -0.015672 0.116064 -0.006732 +v -0.016034 0.113329 -0.006732 +v -0.014893 0.114329 -0.007741 +v -0.014826 0.119977 0.010734 +v -0.014686 0.115893 -0.007741 +v -0.014826 0.119977 -0.006732 +v -0.013855 0.119737 -0.007741 +v -0.014047 0.122766 0.008928 +v -0.013133 0.122320 -0.007741 +v -0.014047 0.122766 -0.006732 +v -0.012579 0.124758 0.007637 +v -0.011903 0.123990 -0.007741 +v -0.012579 0.124758 -0.006732 +v -0.010439 0.125953 0.006863 +v -0.010439 0.125953 -0.006732 +v -0.010114 0.124989 -0.007741 +v -0.007609 0.126351 0.006605 +v -0.007609 0.126351 -0.006732 +v -0.007539 0.125351 -0.007741 +v -0.005510 0.126351 -0.006732 +v -0.005510 0.125351 -0.007741 +v -0.004435 0.125351 -0.007741 +v -0.005510 0.126351 0.006605 +v -0.003435 0.126351 -0.006732 +v -0.003435 0.126351 0.006605 +v -0.004435 0.125351 -0.007741 +v -0.003435 0.120830 -0.006732 +v -0.004435 0.119830 -0.007741 +v -0.003435 0.126351 -0.006732 +v -0.003435 0.123610 -0.003879 +v -0.003435 0.120830 -0.003879 +v -0.003435 0.126351 0.006605 +v -0.003435 0.123610 0.008381 +v 0.005510 0.126351 0.006605 +v 0.003435 0.126351 0.006605 +v 0.003435 0.123610 0.008381 +v 0.005510 0.123610 0.008381 +v 0.007595 0.123610 0.008381 +v 0.007609 0.126351 0.006605 +v 0.009601 0.123333 0.008560 +v 0.010439 0.125953 0.006863 +v 0.010512 0.122830 0.008887 +v 0.012579 0.124758 0.007637 +v 0.011191 0.121891 0.009495 +v 0.014047 0.122766 0.008928 +v 0.011727 0.119797 0.010851 +v 0.014826 0.119977 0.010734 +v 0.012397 0.116064 0.013315 +v 0.015678 0.116021 0.013315 +v 0.016034 0.113329 0.013315 +v -0.016034 0.113329 0.013315 +v -0.012397 0.116064 0.013315 +v -0.015678 0.116021 0.013315 +v -0.014826 0.119977 0.010734 +v -0.011726 0.119797 0.010851 +v -0.014047 0.122766 0.008928 +v -0.011191 0.121891 0.009495 +v -0.012579 0.124758 0.007637 +v -0.010512 0.122830 0.008887 +v -0.010439 0.125953 0.006863 +v -0.009601 0.123333 0.008560 +v -0.007609 0.126351 0.006605 +v -0.007595 0.123610 0.008381 +v -0.005510 0.126351 0.006605 +v -0.005510 0.123610 0.008381 +v -0.003435 0.123610 0.008381 +v -0.003435 0.126351 0.006605 +v 0.020956 0.067235 -0.025773 +v 0.017085 0.063606 -0.022549 +v 0.016651 0.063532 -0.023457 +v 0.020197 0.067235 -0.026694 +v 0.016165 0.067235 -0.026761 +v 0.016145 0.063609 -0.023558 +v 0.015193 0.063669 -0.022709 +v 0.015193 0.067235 -0.025833 +v 0.016164 0.081460 -0.023758 +v 0.020197 0.067235 -0.026694 +v 0.016165 0.067235 -0.026761 +v 0.020220 0.097033 -0.020517 +v 0.007511 0.092428 -0.021441 +v 0.007449 0.081483 -0.023727 +v 0.006590 0.081627 -0.022861 +v 0.006590 0.092535 -0.020633 +v 0.006590 0.097877 -0.019534 +v 0.007551 0.098081 -0.020261 +v 0.020050 0.098387 -0.020234 +v 0.006590 0.103440 -0.018389 +v 0.018710 0.103627 -0.019136 +v 0.007588 0.103429 -0.019144 +v 0.019651 0.096338 0.015512 +v 0.020963 0.067235 0.011379 +v 0.019418 0.065609 0.010125 +v 0.021073 0.096384 0.016582 +v 0.021079 0.097945 0.016865 +v 0.019539 0.103995 0.017027 +v 0.019678 0.097835 0.030222 +v 0.020967 0.067235 0.025619 +v 0.019605 0.065794 0.024650 +v 0.021076 0.096447 0.030813 +v 0.021082 0.097945 0.031085 +v 0.019668 0.103524 0.031252 +v 0.019775 0.097832 0.043914 +v 0.019673 0.103529 0.045088 +v 0.021087 0.098523 0.044674 +v 0.021081 0.096898 0.044365 +v 0.020969 0.067235 0.039022 +v 0.019436 0.065630 0.037964 +v 0.019752 0.096651 0.009655 +v 0.021074 0.098060 0.008545 +v 0.019536 0.103994 0.011131 +v 0.021072 0.096684 0.008230 +v 0.020962 0.067235 0.002671 +v 0.019578 0.065881 0.003873 +v 0.019080 0.087157 0.124972 +v 0.019104 0.087157 0.085103 +v 0.016197 0.087160 0.085230 +v 0.016197 0.087156 0.125874 +v 0.016197 0.087154 0.143824 +v 0.019107 0.087157 0.143824 +v 0.019220 0.087157 0.223562 +v 0.016197 0.087150 0.223637 +v 0.016995 0.086316 0.225302 +v 0.018603 0.086360 0.225283 +v 0.000000 0.078927 0.146611 +v 0.000000 0.078927 0.223891 +v 0.016197 0.078927 0.223787 +v 0.016197 0.078927 0.146523 +v 0.003784 0.078927 0.143342 +v 0.000000 0.078927 0.144018 +v 0.007297 0.078927 0.141393 +v 0.010894 0.078927 0.137027 +v 0.016197 0.078927 0.131731 +v 0.012603 0.078927 0.132039 +v 0.013550 0.077569 0.130822 +v 0.016197 0.077933 0.130452 +v -0.015193 0.063669 -0.022709 +v -0.016165 0.067235 -0.026761 +v -0.015193 0.067235 -0.025833 +v -0.016145 0.063609 -0.023558 +v -0.016651 0.063532 -0.023457 +v -0.020197 0.067235 -0.026694 +v -0.020956 0.067235 -0.025773 +v -0.017085 0.063606 -0.022549 +v -0.016164 0.081460 -0.023758 +v -0.016165 0.067235 -0.026761 +v -0.020197 0.067235 -0.026694 +v -0.020220 0.097033 -0.020517 +v -0.007511 0.092428 -0.021441 +v -0.007449 0.081483 -0.023727 +v -0.006590 0.081627 -0.022861 +v -0.006590 0.092535 -0.020633 +v -0.006590 0.097877 -0.019534 +v -0.007551 0.098081 -0.020261 +v -0.020050 0.098387 -0.020234 +v -0.006590 0.103440 -0.018389 +v -0.018710 0.103627 -0.019136 +v -0.007588 0.103429 -0.019144 +v -0.017181 0.113445 0.040296 +v -0.016116 0.114109 0.038704 +v -0.017181 0.113445 0.037279 +v -0.014829 0.115276 0.040006 +v -0.015505 0.114900 0.042444 +v -0.012724 0.116649 0.041356 +v -0.017181 0.113445 0.058033 +v -0.013104 0.116605 0.044245 +v -0.009598 0.117930 0.042175 +v -0.015515 0.114881 0.058399 +v -0.017181 0.113445 0.072859 +v -0.009835 0.117988 0.045278 +v -0.004622 0.119168 0.042717 +v -0.013168 0.116586 0.058783 +v -0.015515 0.114881 0.072859 +v -0.016359 0.112219 0.075173 +v -0.014800 0.114014 0.075173 +v -0.013254 0.116398 0.072859 +v -0.012465 0.115752 0.075173 +v -0.009802 0.118038 0.059159 +v -0.009731 0.117984 0.072859 +v -0.009183 0.117392 0.075173 +v -0.004674 0.119310 0.045855 +v 0.000000 0.119552 0.042903 +v -0.004772 0.119334 0.059415 +v -0.004855 0.119263 0.072859 +v -0.004373 0.118561 0.075173 +v 0.000000 0.119695 0.045996 +v 0.000000 0.119733 0.059483 +v 0.000000 0.119680 0.072859 +v 0.000000 0.118976 0.075173 +v 0.004373 0.118561 0.075173 +v 0.004855 0.119263 0.072859 +v 0.009183 0.117392 0.075173 +v 0.004772 0.119334 0.059415 +v 0.009731 0.117984 0.072859 +v 0.012465 0.115752 0.075173 +v 0.004674 0.119310 0.045855 +v 0.004622 0.119168 0.042717 +v 0.009802 0.118038 0.059159 +v 0.013254 0.116398 0.072859 +v 0.014800 0.114014 0.075173 +v 0.009835 0.117988 0.045278 +v 0.009598 0.117930 0.042175 +v 0.013168 0.116586 0.058783 +v 0.013104 0.116605 0.044245 +v 0.012724 0.116649 0.041356 +v 0.015515 0.114881 0.072859 +v 0.015515 0.114881 0.058399 +v 0.017181 0.113445 0.072859 +v 0.016359 0.112219 0.075173 +v 0.017181 0.113445 0.058033 +v 0.015505 0.114900 0.042444 +v 0.017181 0.113445 0.040296 +v 0.014829 0.115276 0.040006 +v 0.016116 0.114109 0.038704 +v 0.017181 0.113445 0.037279 +v -0.019651 0.096338 0.015512 +v -0.021079 0.097945 0.016865 +v -0.019539 0.103995 0.017027 +v -0.021073 0.096384 0.016582 +v -0.020963 0.067235 0.011379 +v -0.019418 0.065609 0.010125 +v -0.021082 0.097945 0.031085 +v -0.019668 0.103524 0.031252 +v -0.019678 0.097835 0.030222 +v -0.021076 0.096447 0.030813 +v -0.020967 0.067235 0.025619 +v -0.019605 0.065794 0.024650 +v -0.021087 0.098523 0.044674 +v -0.019673 0.103529 0.045088 +v -0.019775 0.097832 0.043914 +v -0.021081 0.096898 0.044365 +v -0.020969 0.067235 0.039022 +v -0.019436 0.065630 0.037964 +v -0.019752 0.096651 0.009655 +v -0.019536 0.103994 0.011131 +v -0.021074 0.098060 0.008545 +v -0.021072 0.096684 0.008230 +v -0.020962 0.067235 0.002671 +v -0.019578 0.065881 0.003873 +v -0.019220 0.087157 0.223562 +v -0.018603 0.086360 0.225283 +v -0.016995 0.086316 0.225302 +v -0.016197 0.087150 0.223637 +v -0.016197 0.087154 0.143824 +v -0.019107 0.087157 0.143824 +v -0.019080 0.087157 0.124972 +v -0.016197 0.087156 0.125874 +v -0.016197 0.087160 0.085230 +v -0.019104 0.087157 0.085103 +v -0.016145 0.063609 -0.023558 +v -0.017085 0.063606 -0.022549 +v -0.016651 0.063532 -0.023457 +v -0.015193 0.063669 -0.022709 +v -0.015193 0.063667 -0.014479 +v -0.017085 0.063622 -0.013961 +v -0.015193 0.063664 0.000785 +v -0.017085 0.063618 0.001318 +v -0.015193 0.063661 0.010287 +v -0.017085 0.063626 0.009870 +v -0.017085 0.063654 0.024246 +v -0.015193 0.063658 0.024012 +v -0.017085 0.063606 0.037534 +v -0.015193 0.063655 0.037834 +v -0.015193 0.063652 0.054603 +v -0.017084 0.063535 0.058424 +v -0.006410 0.063702 0.054751 +v 0.000000 0.063535 0.058475 +v 0.000000 0.063635 0.054798 +v -0.017084 0.063540 0.083563 +v 0.006410 0.063702 0.054751 +v 0.000000 0.063535 0.083678 +v -0.017084 0.063548 0.134049 +v 0.017084 0.063535 0.058424 +v 0.015193 0.063652 0.054603 +v 0.017084 0.063540 0.083563 +v 0.017085 0.063606 0.037534 +v 0.017084 0.063548 0.134049 +v 0.015193 0.063655 0.037834 +v 0.015193 0.063658 0.024012 +v 0.017085 0.063654 0.024246 +v 0.015193 0.063661 0.010287 +v 0.017085 0.063626 0.009870 +v 0.017085 0.063618 0.001318 +v 0.015193 0.063664 0.000785 +v 0.017085 0.063622 -0.013961 +v 0.015193 0.063667 -0.014479 +v 0.017085 0.063606 -0.022549 +v 0.015193 0.063669 -0.022709 +v 0.016145 0.063609 -0.023558 +v 0.016651 0.063532 -0.023457 +v 0.000000 0.063539 0.134107 +v 0.017084 0.063605 0.223608 +v -0.017084 0.063605 0.223608 +v 0.000000 0.063581 0.223728 +v 0.000000 0.078927 0.146611 +v -0.016197 0.078927 0.223787 +v 0.000000 0.078927 0.223891 +v -0.016197 0.078927 0.146523 +v -0.003784 0.078927 0.143342 +v 0.000000 0.078927 0.144018 +v -0.007297 0.078927 0.141393 +v -0.010894 0.078927 0.137027 +v -0.016197 0.078927 0.131731 +v -0.012603 0.078927 0.132039 +v -0.013550 0.077569 0.130822 +v -0.016197 0.077933 0.130452 +v 0.017834 0.110552 0.009130 +v 0.000000 0.110552 0.008844 +v 0.017141 0.113445 0.008755 +v 0.000000 0.113445 0.008755 +v -0.017141 0.113445 0.008755 +v -0.017834 0.110552 0.009130 +v 0.017885 0.110330 -0.003547 +v 0.000000 0.110552 0.008844 +v 0.017834 0.110552 0.009130 +v 0.000000 0.110330 -0.003547 +v -0.017885 0.110330 -0.003547 +v -0.017834 0.110552 0.009130 +v 0.017167 0.113289 -0.002550 +v 0.000000 0.110330 -0.003547 +v 0.017885 0.110330 -0.003547 +v 0.000000 0.113289 -0.002550 +v -0.017167 0.113289 -0.002550 +v -0.017885 0.110330 -0.003547 +v 0.016164 0.081460 -0.023758 +v 0.020197 0.067235 -0.026694 +v 0.016165 0.067235 -0.026761 +v 0.020220 0.097033 -0.020517 +v 0.007511 0.092428 -0.021441 +v 0.007449 0.081483 -0.023727 +v 0.006590 0.081627 -0.022861 +v 0.006590 0.092535 -0.020633 +v 0.006590 0.097877 -0.019534 +v 0.007551 0.098081 -0.020261 +v 0.020050 0.098387 -0.020234 +v 0.006590 0.103440 -0.018389 +v 0.018710 0.103627 -0.019136 +v 0.007588 0.103429 -0.019144 +v -0.010955 0.033438 0.109930 +v -0.015066 0.038013 0.114050 +v -0.015017 0.038073 0.110544 +v -0.011143 0.033415 0.117181 +v -0.007852 0.029688 0.115832 +v -0.007831 0.029882 0.109258 +v -0.015042 0.073898 0.071189 +v 0.000000 0.073898 0.104950 +v 0.000000 0.073898 0.071189 +v -0.015042 0.073898 0.104950 +v -0.009601 0.073898 0.130940 +v 0.000000 0.073898 0.130940 +v -0.015042 0.073898 0.130940 +v -0.009601 0.073898 0.233206 +v -0.015042 0.073898 0.233206 +v -0.015042 0.073898 0.272421 +v -0.009601 0.073898 0.272421 +v -0.009489 0.013685 0.042458 +v -0.009489 -0.075867 0.017840 +v -0.009489 0.023066 0.005182 +v -0.009489 -0.065870 -0.019186 +v -0.010731 -0.070614 -0.023827 +v -0.010733 -0.083215 0.023605 +v -0.015042 0.054201 0.272421 +v -0.015042 0.054201 0.237989 +v -0.011285 0.050420 0.269313 +v -0.011285 0.050420 0.237951 +v 0.000000 0.050420 0.237951 +v 0.000000 0.050420 0.269313 +v 0.000000 0.054201 0.272421 +v -0.011285 0.050420 0.269313 +v 0.000000 0.050420 0.269313 +v -0.015042 0.054201 0.272421 +v -0.015042 0.058218 0.272421 +v 0.000000 0.058218 0.272421 +v -0.012849 0.060723 0.272421 +v 0.000000 0.060723 0.272421 +v -0.012849 0.064636 0.272421 +v 0.000000 0.064636 0.272421 +v -0.009601 0.067979 0.272421 +v 0.000000 0.067979 0.272421 +v -0.015042 0.066876 0.272421 +v -0.015042 0.073898 0.272421 +v -0.009601 0.073898 0.272421 +v 0.000000 0.067979 0.233206 +v 0.000000 0.067979 0.135983 +v -0.009601 0.067979 0.135983 +v -0.009601 0.067979 0.233206 +v -0.009601 0.067979 0.272421 +v 0.000000 0.067979 0.272421 +v -0.012849 0.064636 0.133956 +v -0.015042 0.066876 0.233206 +v -0.015042 0.066876 0.130940 +v -0.012849 0.064636 0.233206 +v -0.012849 0.064636 0.272421 +v -0.015042 0.066876 0.272421 +v -0.015042 0.073898 0.233206 +v -0.015042 0.073898 0.130940 +v -0.015042 0.066876 0.130940 +v -0.015042 0.066876 0.233206 +v -0.015042 0.066876 0.272421 +v -0.015042 0.073898 0.272421 +v 0.015042 0.042773 0.110072 +v 0.015066 0.038013 0.114050 +v 0.015017 0.038073 0.110544 +v 0.015042 0.041902 0.116294 +v 0.015042 0.047147 0.120009 +v 0.015042 0.047554 0.107776 +v 0.015042 0.051382 0.124631 +v 0.015042 0.050971 0.102460 +v 0.015042 0.058218 0.130940 +v 0.015042 0.054201 0.130940 +v 0.015042 0.066978 0.104950 +v 0.015042 0.066876 0.130940 +v 0.015042 0.073898 0.130940 +v 0.015042 0.073898 0.104950 +v 0.015042 0.073898 0.071189 +v 0.010955 0.033438 0.109930 +v 0.007852 0.029688 0.115832 +v 0.007831 0.029882 0.109258 +v 0.011143 0.033415 0.117181 +v 0.015066 0.038013 0.114050 +v 0.015017 0.038073 0.110544 +v 0.000000 0.073898 0.071189 +v 0.000000 0.073898 0.104950 +v 0.015042 0.073898 0.071189 +v 0.015042 0.073898 0.104950 +v 0.009601 0.073898 0.130940 +v 0.000000 0.073898 0.130940 +v 0.015042 0.073898 0.130940 +v 0.009601 0.073898 0.233206 +v 0.015042 0.073898 0.233206 +v 0.015042 0.073898 0.272421 +v 0.009601 0.073898 0.272421 +v 0.009489 0.023066 0.005182 +v 0.009489 -0.075867 0.017840 +v 0.009489 0.013685 0.042458 +v 0.009489 -0.065870 -0.019186 +v 0.010731 -0.070614 -0.023827 +v 0.010733 -0.083215 0.023605 +v 0.015042 0.054201 0.237989 +v 0.015042 0.054201 0.272421 +v 0.011285 0.050420 0.269313 +v 0.011285 0.050420 0.237951 +v 0.000000 0.050420 0.237951 +v 0.000000 0.050420 0.269313 +v 0.011285 0.050420 0.269313 +v 0.000000 0.054201 0.272421 +v 0.000000 0.050420 0.269313 +v 0.015042 0.054201 0.272421 +v 0.015042 0.058218 0.272421 +v 0.000000 0.058218 0.272421 +v 0.012849 0.060723 0.272421 +v 0.000000 0.060723 0.272421 +v 0.012849 0.064636 0.272421 +v 0.000000 0.064636 0.272421 +v 0.009601 0.067979 0.272421 +v 0.000000 0.067979 0.272421 +v 0.015042 0.066876 0.272421 +v 0.015042 0.073898 0.272421 +v 0.009601 0.073898 0.272421 +v 0.000000 0.067979 0.233206 +v 0.009601 0.067979 0.135983 +v 0.000000 0.067979 0.135983 +v 0.009601 0.067979 0.233206 +v 0.009601 0.067979 0.272421 +v 0.000000 0.067979 0.272421 +v 0.015042 0.066876 0.233206 +v 0.012849 0.064636 0.133956 +v 0.015042 0.066876 0.130940 +v 0.012849 0.064636 0.233206 +v 0.012849 0.064636 0.272421 +v 0.015042 0.066876 0.272421 +v 0.015042 0.073898 0.233206 +v 0.015042 0.066876 0.130940 +v 0.015042 0.073898 0.130940 +v 0.015042 0.066876 0.233206 +v 0.015042 0.066876 0.272421 +v 0.015042 0.073898 0.272421 +v 0.019248 0.078956 0.225335 +v 0.014052 0.083735 0.225335 +v 0.016691 0.086822 0.225335 +v 0.012586 0.077742 0.225335 +v 0.010806 0.080766 0.225335 +v 0.019499 0.077131 0.225335 +v 0.019583 0.067454 0.225335 +v 0.006923 0.078936 0.225335 +v 0.016629 0.065347 0.225335 +v 0.005900 0.075652 0.225335 +v 0.003442 0.077805 0.225335 +v 0.000000 0.065347 0.225335 +v 0.000000 0.074759 0.225335 +v 0.000000 0.077586 0.225335 +v -0.003442 0.077805 0.225335 +v -0.005900 0.075652 0.225335 +v -0.016629 0.065347 0.225335 +v -0.006923 0.078936 0.225335 +v -0.012586 0.077742 0.225335 +v -0.019583 0.067454 0.225335 +v -0.010806 0.080766 0.225335 +v -0.019499 0.077131 0.225335 +v -0.014052 0.083735 0.225335 +v -0.019248 0.078956 0.225335 +v -0.016691 0.086822 0.225335 +v -0.015044 0.108921 0.172637 +v -0.015688 0.107229 0.135749 +v -0.015664 0.107216 0.172637 +v -0.015043 0.109184 0.135749 +v -0.013691 0.111647 0.170776 +v -0.015757 0.107274 0.116080 +v -0.013751 0.111780 0.135749 +v -0.011274 0.113788 0.170533 +v -0.015042 0.109324 0.116080 +v -0.015032 0.109344 0.111920 +v -0.013784 0.111854 0.116080 +v -0.011656 0.113788 0.135749 +v -0.011689 0.113788 0.116080 +v -0.013792 0.111795 0.076238 +v -0.015653 0.107174 0.111667 +v -0.016776 0.102254 0.115621 +v -0.014951 0.109508 0.076238 +v -0.012612 0.110442 0.074853 +v -0.013581 0.108306 0.074853 +v -0.011648 0.113788 0.076238 +v -0.010431 0.112863 0.074853 +v -0.015557 0.107519 0.076238 +v -0.013990 0.106817 0.074853 +v -0.016677 0.102835 0.076238 +v -0.015014 0.102655 0.074853 +v -0.016070 0.098516 0.074853 +v -0.016867 0.102089 0.111521 +v -0.017689 0.098558 0.076238 +v -0.016952 0.094045 0.074853 +v -0.017866 0.097905 0.111840 +v -0.017770 0.098054 0.116490 +v -0.018520 0.094142 0.076238 +v -0.018701 0.094282 0.112385 +v -0.018680 0.094244 0.118436 +v -0.017764 0.089620 0.076238 +v -0.016266 0.090188 0.074853 +v -0.017906 0.089866 0.115310 +v -0.018606 0.092378 0.119826 +v -0.016468 0.086850 0.076238 +v -0.014895 0.087333 0.074853 +v -0.016824 0.087277 0.122720 +v -0.018099 0.090177 0.123969 +v -0.014283 0.084008 0.076238 +v -0.013035 0.084965 0.074853 +v -0.016804 0.087186 0.135749 +v -0.018105 0.090101 0.135749 +v -0.018064 0.089951 0.172637 +v -0.014580 0.084291 0.123232 +v -0.011432 0.081514 0.076238 +v -0.010486 0.082756 0.074853 +v -0.016757 0.087036 0.172637 +v -0.018050 0.089899 0.185550 +v -0.014482 0.084188 0.135749 +v -0.011446 0.081497 0.123590 +v -0.007438 0.079369 0.076238 +v -0.006924 0.080978 0.074853 +v -0.003395 0.079923 0.074853 +v -0.011345 0.081427 0.135749 +v -0.003494 0.078351 0.076238 +v -0.000004 0.079617 0.074853 +v 0.000000 0.078054 0.076238 +v -0.007647 0.079427 0.123893 +v -0.003624 0.078316 0.123975 +v 0.000000 0.078051 0.123999 +v -0.007557 0.079393 0.135749 +v -0.003596 0.078311 0.135749 +v 0.000000 0.078073 0.135749 +v -0.011123 0.081155 0.172637 +v -0.003533 0.078102 0.172637 +v 0.000000 0.077873 0.172637 +v -0.007296 0.079205 0.172637 +v -0.003511 0.078029 0.185550 +v 0.000000 0.077802 0.185550 +v -0.007205 0.079139 0.185550 +v -0.011046 0.081059 0.185550 +v -0.003477 0.077918 0.205254 +v 0.000000 0.077695 0.205254 +v -0.003442 0.077805 0.225335 +v 0.000000 0.077586 0.225335 +v -0.006923 0.078936 0.225335 +v -0.007066 0.079039 0.205254 +v -0.010806 0.080766 0.225335 +v -0.010927 0.080914 0.205254 +v -0.014052 0.083735 0.225335 +v -0.014148 0.083836 0.205254 +v -0.016691 0.086822 0.225335 +v -0.014243 0.083936 0.185550 +v -0.016716 0.086903 0.205254 +v -0.018028 0.089819 0.205254 +v -0.018003 0.089727 0.227757 +v -0.014305 0.084001 0.172637 +v -0.016741 0.086984 0.185550 +v 0.015688 0.107229 0.135749 +v 0.015044 0.108921 0.172637 +v 0.015664 0.107216 0.172637 +v 0.015043 0.109184 0.135749 +v 0.013691 0.111647 0.170776 +v 0.015757 0.107274 0.116080 +v 0.013751 0.111780 0.135749 +v 0.011274 0.113788 0.170533 +v 0.015042 0.109324 0.116080 +v 0.015032 0.109344 0.111920 +v 0.013784 0.111854 0.116080 +v 0.011656 0.113788 0.135749 +v 0.011689 0.113788 0.116080 +v 0.013792 0.111795 0.076238 +v 0.015653 0.107174 0.111667 +v 0.016776 0.102254 0.115621 +v 0.014951 0.109508 0.076238 +v 0.012612 0.110442 0.074853 +v 0.013581 0.108306 0.074853 +v 0.011648 0.113788 0.076238 +v 0.010431 0.112863 0.074853 +v 0.015557 0.107519 0.076238 +v 0.013990 0.106817 0.074853 +v 0.016677 0.102835 0.076238 +v 0.015014 0.102655 0.074853 +v 0.016070 0.098516 0.074853 +v 0.016867 0.102089 0.111521 +v 0.017689 0.098558 0.076238 +v 0.016952 0.094045 0.074853 +v 0.017866 0.097905 0.111840 +v 0.017770 0.098054 0.116490 +v 0.018520 0.094142 0.076238 +v 0.018701 0.094282 0.112385 +v 0.018680 0.094244 0.118436 +v 0.017764 0.089620 0.076238 +v 0.016266 0.090188 0.074853 +v 0.017906 0.089866 0.115310 +v 0.018607 0.092378 0.119826 +v 0.016468 0.086850 0.076238 +v 0.014895 0.087333 0.074853 +v 0.016824 0.087277 0.122720 +v 0.018099 0.090177 0.123969 +v 0.014283 0.084008 0.076238 +v 0.013035 0.084965 0.074853 +v 0.016804 0.087186 0.135749 +v 0.018105 0.090101 0.135749 +v 0.018064 0.089951 0.172637 +v 0.014580 0.084291 0.123232 +v 0.011432 0.081514 0.076238 +v 0.010481 0.082756 0.074853 +v 0.016757 0.087036 0.172637 +v 0.018050 0.089899 0.185550 +v 0.014482 0.084188 0.135749 +v 0.011446 0.081497 0.123590 +v 0.007438 0.079369 0.076238 +v 0.006915 0.080978 0.074853 +v 0.003387 0.079923 0.074853 +v 0.011345 0.081427 0.135749 +v 0.003494 0.078351 0.076238 +v -0.000004 0.079617 0.074853 +v 0.000000 0.078054 0.076238 +v 0.007647 0.079427 0.123893 +v 0.003624 0.078316 0.123975 +v 0.000000 0.078051 0.123999 +v 0.007557 0.079393 0.135749 +v 0.003596 0.078311 0.135749 +v 0.000000 0.078073 0.135749 +v 0.011123 0.081155 0.172637 +v 0.003533 0.078102 0.172637 +v 0.000000 0.077873 0.172637 +v 0.007296 0.079205 0.172637 +v 0.003511 0.078029 0.185550 +v 0.000000 0.077802 0.185550 +v 0.007205 0.079139 0.185550 +v 0.003477 0.077918 0.205254 +v 0.000000 0.077695 0.205254 +v 0.000000 0.077586 0.225335 +v 0.003442 0.077805 0.225335 +v 0.006923 0.078936 0.225335 +v 0.007066 0.079039 0.205254 +v 0.010806 0.080766 0.225335 +v 0.010927 0.080914 0.205254 +v 0.014052 0.083735 0.225335 +v 0.011046 0.081059 0.185550 +v 0.014148 0.083836 0.205254 +v 0.016691 0.086822 0.225335 +v 0.014243 0.083936 0.185550 +v 0.016716 0.086903 0.205254 +v 0.018028 0.089819 0.205254 +v 0.018003 0.089727 0.227757 +v 0.016741 0.086984 0.185550 +v 0.014305 0.084001 0.172637 +v -0.012656 0.104849 0.288466 +v -0.012185 0.100369 0.290358 +v -0.010452 0.105085 0.290358 +v -0.015027 0.097782 0.288446 +v -0.014416 0.094031 0.290358 +v -0.012682 0.104849 0.274513 +v -0.017808 0.089727 0.288446 +v -0.015905 0.089727 0.290358 +v -0.015103 0.097691 0.274513 +v -0.012696 0.104849 0.266583 +v -0.019113 0.079357 0.290358 +v -0.012737 0.104849 0.244486 +v -0.021303 0.079604 0.288446 +v -0.019672 0.077209 0.289755 +v -0.015351 0.097395 0.229275 +v -0.012762 0.104849 0.230762 +v -0.012915 0.104851 0.205254 +v -0.021757 0.077892 0.287899 +v -0.019337 0.068125 0.285465 +v -0.015514 0.097301 0.205254 +v -0.013034 0.104851 0.185550 +v -0.017853 0.089727 0.274513 +v -0.018003 0.089727 0.227757 +v -0.018028 0.089819 0.205254 +v -0.018050 0.089899 0.185550 +v -0.021428 0.079807 0.227757 +v -0.016691 0.086822 0.225335 +v -0.019248 0.078956 0.225335 +v -0.015647 0.097225 0.185550 +v -0.018064 0.089951 0.172637 +v -0.013111 0.104852 0.172637 +v -0.015735 0.097174 0.172637 +v -0.016911 0.094031 0.135749 +v -0.018105 0.090101 0.135749 +v -0.018099 0.090177 0.123969 +v -0.014302 0.102202 0.135749 +v -0.013333 0.104853 0.135749 +v -0.013481 0.104855 0.119684 +v -0.015814 0.097861 0.135749 +v -0.017021 0.094030 0.123578 +v -0.018606 0.092378 0.119826 +v -0.016370 0.096397 0.120522 +v -0.018680 0.094244 0.118436 +v -0.017770 0.098054 0.116490 +v -0.015626 0.099024 0.119495 +v -0.014480 0.102184 0.119176 +v -0.016776 0.102254 0.115621 +v -0.015757 0.107274 0.116080 +v -0.021332 0.079650 0.274513 +v -0.021663 0.077965 0.227757 +v -0.019499 0.077131 0.225335 +v -0.021736 0.077908 0.274513 +v -0.021400 0.066971 0.282668 +v -0.021402 0.066958 0.274513 +v -0.021411 0.066888 0.227757 +v -0.019583 0.067454 0.225335 +v -0.017109 0.063567 0.280645 +v -0.015540 0.065016 0.283907 +v -0.017109 0.063567 0.227757 +v -0.016629 0.065347 0.225335 +v 0.000000 0.063567 0.280645 +v 0.000000 0.065015 0.283904 +v 0.000000 0.063567 0.274513 +v 0.000000 0.063567 0.227757 +v 0.000000 0.065347 0.225335 +v -0.017109 0.063567 0.274513 +v -0.010108 0.102353 0.084763 +v -0.010111 0.102354 0.075363 +v -0.009163 0.104228 0.084763 +v -0.009163 0.104228 0.075363 +v -0.010385 0.102936 0.074853 +v -0.008420 0.105440 0.084763 +v -0.009593 0.104497 0.074853 +v -0.008420 0.105440 0.075363 +v -0.007323 0.106686 0.084763 +v -0.008826 0.105746 0.074853 +v -0.007322 0.106686 0.075363 +v -0.006017 0.107702 0.084763 +v -0.007668 0.107060 0.074853 +v -0.006016 0.107702 0.075363 +v -0.004319 0.108580 0.084763 +v -0.006287 0.108135 0.074853 +v -0.004319 0.108580 0.075363 +v -0.002236 0.109230 0.084763 +v -0.004510 0.109054 0.074853 +v -0.002236 0.109230 0.075363 +v -0.002325 0.109736 0.074853 +v 0.000354 0.109367 0.084763 +v 0.000384 0.109879 0.074853 +v 0.000354 0.109367 0.075363 +v 0.002744 0.108949 0.084763 +v 0.002428 0.109522 0.074853 +v 0.002744 0.108949 0.075363 +v 0.011852 0.096143 0.084763 +v 0.011314 0.094295 0.075363 +v 0.011311 0.094290 0.084763 +v 0.011851 0.096143 0.075363 +v 0.011907 0.094525 0.074853 +v 0.012350 0.096048 0.074853 +v 0.012022 0.098062 0.084763 +v 0.012529 0.098069 0.074853 +v 0.012021 0.098063 0.075363 +v 0.011807 0.099979 0.084763 +v 0.011807 0.099979 0.075363 +v 0.012303 0.100084 0.074853 +v 0.011210 0.101918 0.075363 +v 0.011210 0.101918 0.084763 +v 0.011674 0.102127 0.074853 +v 0.010045 0.103898 0.084763 +v 0.010688 0.103802 0.074853 +v 0.010042 0.103902 0.075363 +v -0.008966 0.091075 0.084763 +v -0.010113 0.093335 0.075363 +v -0.010112 0.093335 0.084763 +v -0.008966 0.091075 0.075363 +v -0.010386 0.092755 0.074853 +v -0.007669 0.089504 0.084763 +v -0.009390 0.090792 0.074853 +v -0.007669 0.089504 0.075363 +v -0.008024 0.089139 0.074853 +v -0.005991 0.088143 0.075363 +v -0.005991 0.088143 0.084763 +v -0.006270 0.087716 0.074853 +v -0.004089 0.087121 0.084763 +v -0.004088 0.087121 0.075363 +v -0.004281 0.086647 0.074853 +v -0.002059 0.086514 0.084763 +v -0.002158 0.086012 0.074853 +v -0.002058 0.086514 0.075363 +v -0.000028 0.086290 0.084763 +v -0.000040 0.085778 0.074853 +v -0.000028 0.086290 0.075363 +v 0.002016 0.086420 0.084763 +v 0.002085 0.085914 0.074853 +v 0.002016 0.086420 0.075363 +v 0.003863 0.086817 0.075363 +v 0.003864 0.086816 0.084763 +v 0.004009 0.086327 0.074853 +v 0.006416 0.087833 0.075363 +v 0.006418 0.087831 0.084763 +v 0.006696 0.087396 0.074853 +v 0.008698 0.090102 0.084763 +v 0.008763 0.089435 0.074853 +v 0.008707 0.090094 0.075363 +v 0.012185 0.100369 0.290358 +v 0.012656 0.104849 0.288466 +v 0.010452 0.105085 0.290358 +v 0.015027 0.097782 0.288446 +v 0.012682 0.104849 0.274513 +v 0.014416 0.094031 0.290358 +v 0.015103 0.097691 0.274513 +v 0.012696 0.104849 0.266583 +v 0.012737 0.104849 0.244486 +v 0.017808 0.089727 0.288446 +v 0.015905 0.089727 0.290358 +v 0.019113 0.079357 0.290358 +v 0.015351 0.097395 0.229275 +v 0.012762 0.104849 0.230762 +v 0.012915 0.104851 0.205254 +v 0.017853 0.089727 0.274513 +v 0.021303 0.079604 0.288446 +v 0.019672 0.077209 0.289755 +v 0.021332 0.079650 0.274513 +v 0.021757 0.077892 0.287899 +v 0.019337 0.068125 0.285465 +v 0.021428 0.079807 0.227757 +v 0.021400 0.066971 0.282668 +v 0.018003 0.089727 0.227757 +v 0.016691 0.086822 0.225335 +v 0.019248 0.078956 0.225335 +v 0.015514 0.097301 0.205254 +v 0.018028 0.089819 0.205254 +v 0.013034 0.104851 0.185550 +v 0.018050 0.089899 0.185550 +v 0.015647 0.097225 0.185550 +v 0.013111 0.104852 0.172637 +v 0.018064 0.089951 0.172637 +v 0.015735 0.097174 0.172637 +v 0.014302 0.102202 0.135749 +v 0.013333 0.104853 0.135749 +v 0.013481 0.104855 0.119684 +v 0.016911 0.094031 0.135749 +v 0.018105 0.090101 0.135749 +v 0.018099 0.090177 0.123969 +v 0.016776 0.102254 0.115621 +v 0.015757 0.107274 0.116080 +v 0.017021 0.094030 0.123578 +v 0.014480 0.102184 0.119176 +v 0.017770 0.098054 0.116490 +v 0.018606 0.092378 0.119826 +v 0.015626 0.099024 0.119495 +v 0.016370 0.096397 0.120522 +v 0.018680 0.094244 0.118436 +v 0.015814 0.097861 0.135749 +v 0.021663 0.077965 0.227757 +v 0.019499 0.077131 0.225335 +v 0.021411 0.066888 0.227757 +v 0.019583 0.067454 0.225335 +v 0.021736 0.077908 0.274513 +v 0.021402 0.066958 0.274513 +v 0.017109 0.063567 0.227757 +v 0.016629 0.065347 0.225335 +v 0.000000 0.063567 0.227757 +v 0.000000 0.065347 0.225335 +v 0.017109 0.063567 0.274513 +v 0.000000 0.063567 0.274513 +v 0.017109 0.063567 0.280645 +v 0.000000 0.063567 0.280645 +v 0.015540 0.065016 0.283907 +v 0.000000 0.065015 0.283904 +v 0.002700 0.123438 0.272509 +v 0.002700 0.116153 0.272509 +v 0.002268 0.116153 0.272099 +v 0.002268 0.123484 0.272099 +v 0.002700 0.125010 0.272866 +v -0.002268 0.116153 0.272099 +v 0.002268 0.125194 0.272488 +v 0.002700 0.125941 0.273625 +v -0.002268 0.123484 0.272099 +v -0.002700 0.123438 0.272509 +v -0.002700 0.116153 0.272509 +v -0.002700 0.125010 0.272866 +v -0.002268 0.125194 0.272488 +v -0.002700 0.125941 0.273625 +v -0.002268 0.126351 0.273430 +v 0.002268 0.126351 0.273430 +v 0.002268 0.126351 0.279191 +v 0.002700 0.125941 0.279131 +v 0.002700 0.125339 0.281136 +v -0.002268 0.126351 0.279191 +v -0.002700 0.125941 0.279131 +v -0.002700 0.125339 0.281136 +v 0.002268 0.125703 0.281349 +v -0.002268 0.125703 0.281349 +v 0.002268 0.124315 0.282798 +v 0.002700 0.124044 0.282491 +v 0.002700 0.119031 0.286909 +v -0.002268 0.124315 0.282798 +v -0.002700 0.124044 0.282491 +v -0.002700 0.119031 0.286909 +v 0.002268 0.119186 0.287319 +v 0.002268 0.116153 0.287319 +v 0.002700 0.116153 0.286909 +v -0.002268 0.119186 0.287319 +v -0.002268 0.116153 0.287319 +v -0.002700 0.116153 0.286909 +v 0.003784 0.078927 0.143342 +v 0.000000 0.077153 0.141156 +v 0.000000 0.078927 0.144018 +v 0.003141 0.076931 0.140443 +v 0.000000 0.074629 0.135727 +v 0.007297 0.078927 0.141393 +v 0.004343 0.075127 0.135708 +v 0.000000 0.073918 0.132113 +v 0.005914 0.076898 0.138793 +v 0.010894 0.078927 0.137027 +v 0.004755 0.074496 0.132070 +v 0.000000 0.072738 0.130825 +v 0.005001 0.073267 0.130836 +v 0.009694 0.074948 0.130875 +v 0.008585 0.076891 0.134919 +v 0.012603 0.078927 0.132039 +v 0.009248 0.076254 0.131951 +v 0.013550 0.077569 0.130822 +v 0.000000 0.077153 0.141156 +v -0.003784 0.078927 0.143342 +v 0.000000 0.078927 0.144018 +v -0.003141 0.076931 0.140443 +v -0.007297 0.078927 0.141393 +v 0.000000 0.074629 0.135727 +v -0.005914 0.076898 0.138793 +v -0.010894 0.078927 0.137027 +v -0.004343 0.075127 0.135708 +v 0.000000 0.073918 0.132113 +v -0.008585 0.076891 0.134919 +v -0.012603 0.078927 0.132039 +v -0.004755 0.074496 0.132070 +v 0.000000 0.072738 0.130825 +v -0.005001 0.073267 0.130836 +v -0.009694 0.074948 0.130875 +v -0.009248 0.076254 0.131951 +v -0.013550 0.077569 0.130822 +v 0.014336 0.092403 0.077674 +v 0.008940 0.092961 0.069181 +v 0.010042 0.095106 0.069163 +v 0.013086 0.090214 0.077674 +v 0.007566 0.090920 0.069199 +v 0.014326 0.092388 0.083961 +v 0.011563 0.088131 0.077674 +v 0.013082 0.090208 0.083961 +v 0.011565 0.088134 0.083961 +v 0.002269 0.107646 0.069163 +v 0.004150 0.112380 0.077674 +v 0.004653 0.106711 0.069203 +v 0.007351 0.110899 0.077704 +v 0.004149 0.112381 0.083961 +v 0.007522 0.104683 0.069209 +v 0.007350 0.110895 0.083961 +v 0.012750 0.106361 0.077674 +v 0.008979 0.102991 0.069163 +v 0.010266 0.108866 0.077722 +v 0.010264 0.108854 0.083961 +v 0.012761 0.106348 0.083961 +v 0.003501 0.088228 0.064115 +v 0.000375 0.087733 0.072801 +v 0.000375 0.087733 0.064115 +v 0.003501 0.088228 0.072801 +v 0.000375 0.086442 0.074670 +v 0.006321 0.089665 0.064115 +v 0.000375 0.086442 0.081751 +v 0.003900 0.087001 0.081751 +v 0.003900 0.087001 0.074670 +v 0.007080 0.088621 0.081751 +v 0.006321 0.089665 0.072801 +v 0.008635 0.090177 0.074670 +v 0.008637 0.090181 0.081751 +v 0.007080 0.088621 0.074670 +v 0.007581 0.090913 0.072793 +v 0.007566 0.090920 0.069199 +v 0.007518 0.090862 0.064115 +v 0.008931 0.092974 0.064115 +v 0.008940 0.092961 0.069181 +v 0.010042 0.095106 0.069163 +v 0.010070 0.095191 0.064115 +v 0.010491 0.097849 0.064115 +v 0.010491 0.097849 0.072801 +v 0.010148 0.095027 0.072802 +v 0.009996 0.100975 0.064115 +v 0.011782 0.097849 0.074670 +v 0.011212 0.094358 0.074698 +v 0.009996 0.100975 0.072801 +v 0.011782 0.097849 0.081751 +v 0.011224 0.094328 0.081751 +v 0.011223 0.101374 0.081751 +v 0.011223 0.101374 0.074670 +v 0.009971 0.103840 0.081751 +v 0.009958 0.103854 0.074670 +v 0.008971 0.102971 0.072801 +v 0.008979 0.102991 0.069163 +v 0.008955 0.103018 0.064115 +v 0.007510 0.104672 0.064115 +v 0.007522 0.104683 0.069209 +v 0.004653 0.106711 0.069203 +v 0.004642 0.106701 0.064115 +v 0.002269 0.107646 0.069163 +v 0.002189 0.107678 0.064115 +v 0.000375 0.107965 0.064115 +v 0.000375 0.107965 0.072801 +v 0.002268 0.107646 0.072801 +v -0.002751 0.107470 0.064115 +v 0.000375 0.109255 0.074670 +v 0.002743 0.108841 0.074670 +v 0.002742 0.108842 0.081751 +v 0.000375 0.109255 0.081751 +v -0.003150 0.108697 0.081751 +v -0.002751 0.107470 0.072801 +v -0.005571 0.106033 0.064115 +v -0.003150 0.108697 0.074670 +v -0.006329 0.107077 0.081751 +v -0.005571 0.106033 0.072801 +v -0.007809 0.103795 0.064115 +v -0.006329 0.107077 0.074670 +v -0.008853 0.104553 0.081751 +v -0.007809 0.103795 0.072801 +v -0.008853 0.104553 0.074670 +v -0.009994 0.102316 0.074670 +v -0.009984 0.102310 0.081751 +v -0.008711 0.102037 0.072801 +v -0.008713 0.102039 0.069163 +v -0.008728 0.101991 0.064115 +v -0.009327 0.099604 0.064115 +v -0.009327 0.099607 0.069196 +v -0.009327 0.096091 0.069196 +v -0.009327 0.096093 0.064115 +v -0.008710 0.093659 0.069163 +v -0.008729 0.093708 0.064115 +v -0.007809 0.091903 0.064115 +v -0.007809 0.091903 0.072801 +v -0.008704 0.093660 0.072801 +v -0.005571 0.089665 0.064115 +v -0.009990 0.093382 0.074670 +v -0.009988 0.093382 0.081751 +v -0.008853 0.091144 0.081751 +v -0.008853 0.091144 0.074670 +v -0.006329 0.088621 0.081751 +v -0.006329 0.088621 0.074670 +v -0.003150 0.087000 0.081751 +v -0.005571 0.089665 0.072801 +v -0.002751 0.088228 0.064115 +v -0.003150 0.087000 0.074670 +v 0.000375 0.086442 0.081751 +v 0.000375 0.086442 0.074670 +v -0.002751 0.088228 0.072801 +v 0.000375 0.087733 0.064115 +v 0.000375 0.087733 0.072801 +v 0.011223 0.101374 0.081751 +v 0.009971 0.103840 0.081751 +v 0.008995 0.102961 0.081751 +v 0.000468 0.097801 0.081751 +v 0.007387 0.104898 0.081751 +v 0.004499 0.106889 0.081751 +v 0.011782 0.097849 0.081751 +v 0.002270 0.107655 0.081751 +v 0.011224 0.094328 0.081751 +v 0.010024 0.095075 0.081751 +v 0.002742 0.108842 0.081751 +v 0.000375 0.109255 0.081751 +v -0.003150 0.108697 0.081751 +v -0.006329 0.107077 0.081751 +v 0.007404 0.091043 0.081751 +v -0.008853 0.104553 0.081751 +v 0.007080 0.088621 0.081751 +v 0.008637 0.090181 0.081751 +v 0.003900 0.087001 0.081751 +v 0.000375 0.086442 0.081751 +v -0.003150 0.087000 0.081751 +v -0.006329 0.088621 0.081751 +v -0.008853 0.091144 0.081751 +v -0.009988 0.093382 0.081751 +v -0.008600 0.093681 0.081751 +v -0.009279 0.096067 0.081751 +v -0.009291 0.099572 0.081751 +v -0.008610 0.102011 0.081751 +v -0.009984 0.102310 0.081751 +v 0.000000 0.064586 0.220858 +v 0.001946 0.065907 0.225576 +v 0.000000 0.065520 0.225576 +v 0.002303 0.065044 0.220858 +v 0.000000 0.064586 0.130940 +v 0.003595 0.067009 0.225576 +v 0.002303 0.065044 0.130940 +v 0.004256 0.066349 0.220858 +v 0.004256 0.066349 0.130940 +v 0.005561 0.068301 0.220858 +v 0.004698 0.068659 0.225576 +v 0.005561 0.068301 0.130940 +v 0.006019 0.070605 0.220858 +v 0.005085 0.070605 0.225576 +v 0.006019 0.070605 0.130940 +v 0.004698 0.072551 0.225576 +v 0.005561 0.072908 0.220858 +v 0.005561 0.072908 0.130940 +v 0.003595 0.074200 0.225576 +v 0.004256 0.074861 0.220858 +v 0.004256 0.074861 0.130940 +v 0.002303 0.076166 0.220858 +v 0.001946 0.075303 0.225576 +v 0.002303 0.076166 0.130940 +v 0.000000 0.076624 0.220858 +v 0.000000 0.075690 0.225576 +v 0.000000 0.076624 0.130940 +v -0.001946 0.075303 0.225576 +v -0.002304 0.076166 0.220858 +v -0.002304 0.076166 0.130940 +v -0.003595 0.074200 0.225576 +v -0.004256 0.074861 0.220858 +v -0.004256 0.074861 0.130940 +v -0.005561 0.072908 0.220858 +v -0.004698 0.072551 0.225576 +v -0.005561 0.072908 0.130940 +v -0.006019 0.070605 0.220858 +v -0.005085 0.070605 0.225576 +v -0.006019 0.070605 0.130940 +v -0.004698 0.068659 0.225576 +v -0.005561 0.068301 0.220858 +v -0.005561 0.068301 0.130940 +v -0.003595 0.067009 0.225576 +v -0.004256 0.066349 0.220858 +v -0.004256 0.066349 0.130940 +v -0.002304 0.065044 0.220858 +v -0.001946 0.065907 0.225576 +v -0.002304 0.065044 0.130940 +v 0.000000 0.064586 0.220858 +v 0.000000 0.065520 0.225576 +v 0.000000 0.064586 0.130940 +v -0.015037 0.024407 0.039913 +v -0.015037 0.026841 0.044367 +v -0.016580 0.026831 0.044248 +v -0.016578 0.024412 0.039911 +v -0.020465 0.026565 0.039438 +v -0.015037 0.023150 0.038454 +v -0.016578 0.023152 0.038451 +v -0.020639 0.025744 0.036385 +v -0.016578 0.021573 0.037400 +v -0.015037 0.021570 0.037406 +v -0.020815 0.023973 0.033759 +v -0.016578 0.019249 0.036412 +v -0.020857 0.020936 0.031666 +v -0.015037 0.019247 0.036420 +v -0.020804 0.017176 0.030981 +v -0.016578 0.016708 0.036106 +v -0.015037 0.016708 0.036113 +v -0.015037 0.014743 0.036083 +v -0.016578 0.014742 0.036075 +v -0.020747 0.013866 0.030945 +v -0.015037 0.012834 0.036546 +v -0.020672 0.010863 0.032179 +v -0.016578 0.012832 0.036540 +v -0.015037 0.011267 0.037136 +v -0.016578 0.011266 0.037134 +v -0.020599 0.008543 0.034002 +v -0.015037 0.009898 0.038102 +v -0.016578 0.009894 0.038100 +v -0.020493 0.006943 0.036765 +v -0.016578 0.007426 0.040897 +v -0.015037 0.007398 0.041004 +v -0.016960 0.043797 0.005934 +v -0.015047 0.045133 0.006049 +v -0.015047 0.044544 0.005307 +v -0.016570 0.044507 0.006552 +v -0.015039 0.045790 0.013823 +v -0.020089 0.044135 0.013719 +v -0.019540 0.044803 0.013900 +v -0.015037 0.045841 0.020942 +v -0.021358 0.044045 0.020572 +v -0.020812 0.044691 0.020707 +v -0.021813 0.043537 0.028365 +v -0.021281 0.044180 0.028500 +v -0.015037 0.045379 0.028862 +v -0.021624 0.042679 0.033782 +v -0.021099 0.043332 0.033883 +v -0.015037 0.044476 0.034248 +v -0.020687 0.042319 0.038166 +v -0.021209 0.041650 0.038099 +v -0.015037 0.043357 0.038528 +v -0.020280 0.041305 0.041849 +v -0.020794 0.040612 0.041831 +v -0.015037 0.042246 0.042132 +v -0.016392 0.039432 0.045121 +v -0.016575 0.038452 0.045485 +v -0.015038 0.039946 0.045275 +v -0.015038 0.039029 0.045664 +v -0.016578 -0.065624 0.020452 +v -0.015037 -0.066824 0.019775 +v -0.015037 -0.065350 0.020725 +v -0.016541 -0.066972 0.019621 +v -0.015037 -0.071096 0.014701 +v -0.018835 -0.066614 0.016085 +v -0.016578 -0.071096 0.014701 +v -0.015037 -0.069796 0.009996 +v -0.018332 -0.068293 0.015599 +v -0.016713 -0.069797 0.009996 +v -0.015037 -0.067965 0.003380 +v -0.019275 -0.065699 0.011026 +v -0.019766 -0.064102 0.011615 +v -0.016905 -0.067969 0.003379 +v -0.015037 -0.065715 -0.004753 +v -0.020445 -0.062553 0.004937 +v -0.020954 -0.060922 0.005420 +v -0.017060 -0.065723 -0.004755 +v -0.015037 -0.063622 -0.012341 +v -0.021249 -0.059594 -0.002905 +v -0.021743 -0.057998 -0.002442 +v -0.020951 -0.058136 -0.010439 +v -0.021426 -0.056486 -0.010300 +v -0.017058 -0.063626 -0.012345 +v -0.019668 -0.058152 -0.017246 +v -0.020041 -0.056523 -0.017467 +v -0.016972 -0.061697 -0.019331 +v -0.015038 -0.061724 -0.019332 +v -0.016967 -0.059910 -0.025806 +v -0.016964 -0.058886 -0.026221 +v -0.015041 -0.059887 -0.026369 +v -0.015042 -0.058777 -0.027047 +v 0.015037 0.026841 0.044367 +v 0.015037 0.024407 0.039913 +v 0.016580 0.026831 0.044248 +v 0.016578 0.024412 0.039911 +v 0.020465 0.026565 0.039438 +v 0.015037 0.023150 0.038454 +v 0.016578 0.023152 0.038451 +v 0.020639 0.025744 0.036385 +v 0.016578 0.021573 0.037400 +v 0.015037 0.021570 0.037406 +v 0.020815 0.023973 0.033759 +v 0.016578 0.019249 0.036412 +v 0.020857 0.020936 0.031666 +v 0.015037 0.019247 0.036420 +v 0.020804 0.017176 0.030981 +v 0.016578 0.016708 0.036106 +v 0.015037 0.016708 0.036113 +v 0.015037 0.014743 0.036083 +v 0.016578 0.014742 0.036075 +v 0.020747 0.013866 0.030945 +v 0.015037 0.012834 0.036546 +v 0.020672 0.010863 0.032179 +v 0.016578 0.012832 0.036540 +v 0.015037 0.011267 0.037136 +v 0.016578 0.011266 0.037134 +v 0.020599 0.008543 0.034002 +v 0.015037 0.009898 0.038102 +v 0.016578 0.009894 0.038100 +v 0.020493 0.006943 0.036765 +v 0.016578 0.007426 0.040897 +v 0.015037 0.007398 0.041004 +v 0.015047 0.045133 0.006049 +v 0.016960 0.043797 0.005934 +v 0.015047 0.044544 0.005307 +v 0.016570 0.044507 0.006552 +v 0.020089 0.044135 0.013719 +v 0.015039 0.045790 0.013823 +v 0.019540 0.044803 0.013900 +v 0.021358 0.044045 0.020572 +v 0.015037 0.045841 0.020942 +v 0.020812 0.044691 0.020707 +v 0.021813 0.043537 0.028365 +v 0.021281 0.044180 0.028500 +v 0.015037 0.045379 0.028862 +v 0.021624 0.042679 0.033782 +v 0.021099 0.043332 0.033883 +v 0.015037 0.044476 0.034248 +v 0.020687 0.042319 0.038166 +v 0.021209 0.041650 0.038099 +v 0.015037 0.043357 0.038528 +v 0.020280 0.041305 0.041849 +v 0.020794 0.040612 0.041831 +v 0.015037 0.042246 0.042132 +v 0.016392 0.039432 0.045121 +v 0.016575 0.038452 0.045485 +v 0.015038 0.039946 0.045275 +v 0.015038 0.039029 0.045664 +v 0.015037 -0.066824 0.019775 +v 0.016578 -0.065624 0.020452 +v 0.015037 -0.065350 0.020725 +v 0.016541 -0.066972 0.019621 +v 0.015037 -0.071096 0.014701 +v 0.018835 -0.066614 0.016085 +v 0.016578 -0.071096 0.014701 +v 0.015037 -0.069796 0.009996 +v 0.018332 -0.068293 0.015599 +v 0.016713 -0.069797 0.009996 +v 0.015037 -0.067965 0.003380 +v 0.019275 -0.065699 0.011026 +v 0.019766 -0.064102 0.011615 +v 0.016905 -0.067969 0.003379 +v 0.015037 -0.065715 -0.004753 +v 0.020445 -0.062553 0.004937 +v 0.020954 -0.060922 0.005420 +v 0.017060 -0.065723 -0.004755 +v 0.015037 -0.063622 -0.012341 +v 0.021249 -0.059594 -0.002905 +v 0.021743 -0.057998 -0.002442 +v 0.020951 -0.058136 -0.010439 +v 0.021426 -0.056486 -0.010300 +v 0.017058 -0.063626 -0.012345 +v 0.019668 -0.058152 -0.017246 +v 0.020041 -0.056523 -0.017467 +v 0.016972 -0.061697 -0.019331 +v 0.015038 -0.061724 -0.019332 +v 0.016967 -0.059910 -0.025806 +v 0.016964 -0.058886 -0.026221 +v 0.015041 -0.059887 -0.026369 +v 0.015042 -0.058777 -0.027047 +v -0.015042 0.051382 0.124631 +v -0.011285 0.050420 0.130940 +v -0.015042 0.054201 0.130940 +v -0.011285 0.048033 0.126546 +v 0.000000 0.050420 0.130940 +v -0.015042 0.047147 0.120009 +v 0.000000 0.048033 0.126546 +v -0.011285 0.044651 0.123030 +v 0.000000 0.044651 0.123030 +v 0.000000 0.040572 0.120220 +v -0.011285 0.040572 0.120220 +v -0.015042 0.041902 0.116294 +v -0.011255 0.036979 0.118501 +v -0.015066 0.038013 0.114050 +v 0.000000 0.036978 0.118504 +v -0.011143 0.033415 0.117181 +v 0.000000 0.033327 0.117162 +v -0.007852 0.029688 0.115832 +v 0.000000 0.029708 0.115833 +v 0.000000 0.020669 0.113233 +v -0.007830 0.020669 0.113233 +v -0.007830 0.017399 0.111664 +v 0.000000 0.017399 0.111664 +v -0.007830 0.014803 0.109481 +v 0.000000 0.014803 0.109481 +v -0.007830 0.012853 0.106707 +v 0.000000 0.012853 0.106707 +v -0.007830 0.011863 0.103379 +v 0.000000 0.011863 0.103379 +v -0.007830 0.011577 0.099828 +v 0.000000 0.011577 0.099828 +v -0.007830 0.011577 0.096338 +v 0.000000 0.011577 0.096338 +v 0.000000 0.011577 0.072684 +v -0.007830 0.011577 0.072684 +v -0.006928 0.011016 0.068644 +v 0.000000 0.010718 0.068508 +v -0.011447 0.011577 0.068899 +v 0.000000 0.010209 0.064595 +v -0.007558 0.010569 0.064737 +v -0.015042 0.011577 0.065138 +v -0.015042 0.011143 0.062346 +v -0.007558 0.009802 0.062245 +v 0.000000 0.009326 0.062209 +v 0.000000 0.007612 0.057958 +v -0.007558 0.008273 0.057672 +v -0.015042 0.010155 0.056855 +v 0.000000 0.005300 0.054106 +v -0.007558 0.006067 0.053499 +v -0.015042 0.008296 0.051736 +v -0.007558 0.002673 0.050019 +v -0.015042 0.004752 0.047086 +v 0.000000 0.001972 0.051007 +v -0.015042 0.000465 0.043737 +v -0.007558 -0.001382 0.047090 +v 0.000000 -0.001999 0.048210 +v -0.015042 -0.005112 0.041088 +v -0.007558 -0.006437 0.044604 +v 0.000000 -0.006881 0.045782 +v -0.015042 -0.061311 0.025865 +v -0.007558 -0.061804 0.029552 +v 0.000000 -0.061969 0.030789 +v 0.000000 -0.068292 0.030384 +v -0.007558 -0.068484 0.029128 +v -0.015042 -0.069058 0.025373 +v 0.000000 -0.074583 0.031582 +v -0.007558 -0.074726 0.030318 +v -0.015042 -0.075152 0.026539 +v 0.000000 -0.079200 0.033549 +v -0.007558 -0.079293 0.032278 +v -0.015042 -0.079572 0.028474 +v -0.015041 -0.082614 0.027876 +v -0.007521 -0.083724 0.031392 +v 0.000000 -0.084093 0.032563 +v -0.015042 -0.054817 -0.030678 +v -0.011046 -0.061223 -0.038830 +v -0.015063 -0.066084 -0.034262 +v -0.010956 -0.051756 -0.035895 +v -0.005941 -0.059523 -0.040270 +v -0.015042 0.013914 -0.008466 +v -0.005760 -0.050803 -0.037552 +v -0.000000 -0.058889 -0.040807 +v -0.010956 0.015979 -0.014440 +v -0.015042 0.021261 -0.006786 +v -0.000000 -0.050455 -0.038155 +v -0.010956 0.022239 -0.012804 +v -0.005774 0.016533 -0.015989 +v -0.010956 0.028280 -0.011911 +v -0.015042 0.028474 -0.005878 +v -0.005762 0.022508 -0.014383 +v -0.000000 0.016739 -0.016565 +v 0.005760 -0.050803 -0.037552 +v 0.005941 -0.059523 -0.040270 +v 0.005774 0.016533 -0.015989 +v 0.010956 -0.051756 -0.035895 +v 0.011046 -0.061223 -0.038830 +v 0.015042 -0.054817 -0.030678 +v 0.015063 -0.066084 -0.034262 +v 0.015042 0.013914 -0.008466 +v 0.010956 0.015979 -0.014440 +v 0.015042 0.021261 -0.006786 +v 0.010956 0.022239 -0.012804 +v 0.005762 0.022508 -0.014383 +v 0.010956 0.028280 -0.011911 +v 0.015042 0.028474 -0.005878 +v -0.000000 0.022607 -0.014969 +v 0.005759 0.028227 -0.013507 +v 0.010960 0.034973 -0.012249 +v 0.015042 0.036821 -0.006490 +v 0.005763 0.034524 -0.013742 +v -0.000000 0.028207 -0.014099 +v 0.010956 0.041173 -0.014375 +v 0.015042 0.044592 -0.009219 +v -0.000000 0.034357 -0.014297 +v -0.005759 0.028227 -0.013507 +v -0.005763 0.034524 -0.013742 +v -0.000000 0.040072 -0.016130 +v 0.005770 0.040372 -0.015652 +v -0.010960 0.034973 -0.012249 +v -0.015042 0.036821 -0.006490 +v -0.005770 0.040372 -0.015652 +v -0.010956 0.041173 -0.014375 +v -0.015042 0.044592 -0.009219 +v -0.000000 0.044440 -0.019607 +v -0.005774 0.044847 -0.019239 +v -0.010936 0.045929 -0.018259 +v -0.015042 0.050867 -0.014053 +v -0.010956 0.049469 -0.023169 +v -0.015042 0.055455 -0.020312 +v -0.015042 0.057289 -0.026494 +v -0.005793 0.048152 -0.023801 +v -0.011054 0.051121 -0.028063 +v -0.015042 0.057906 -0.034831 +v -0.005838 0.049620 -0.028442 +v -0.010974 0.051917 -0.034798 +v -0.009710 0.051938 -0.040894 +v -0.013107 0.056768 -0.042366 +v -0.005769 0.050391 -0.034852 +v -0.000000 0.047654 -0.024040 +v -0.000000 0.049057 -0.028585 +v -0.005256 0.050603 -0.039509 +v 0.005793 0.048152 -0.023801 +v -0.000000 0.049811 -0.034872 +v 0.005838 0.049620 -0.028442 +v 0.005769 0.050391 -0.034852 +v -0.000000 0.050074 -0.038961 +v 0.005256 0.050603 -0.039509 +v 0.010974 0.051917 -0.034798 +v 0.009710 0.051938 -0.040894 +v 0.011054 0.051121 -0.028063 +v 0.015042 0.057906 -0.034831 +v 0.013107 0.056768 -0.042366 +v 0.015042 0.057289 -0.026494 +v 0.006980 0.051659 -0.045438 +v 0.009472 0.055182 -0.047560 +v 0.004987 0.053899 -0.050568 +v 0.010956 0.049469 -0.023169 +v 0.015042 0.055455 -0.020312 +v 0.015042 0.050867 -0.014053 +v 0.005774 0.044847 -0.019239 +v 0.010936 0.045929 -0.018259 +v 0.003699 0.051445 -0.048306 +v -0.000000 0.053319 -0.051513 +v 0.002154 0.050802 -0.045042 +v -0.000000 0.051372 -0.049277 +v -0.003699 0.051445 -0.048306 +v -0.004987 0.053899 -0.050568 +v -0.000000 0.050661 -0.045061 +v -0.006980 0.051659 -0.045438 +v -0.009472 0.055182 -0.047560 +v -0.002154 0.050802 -0.045042 +v -0.003936 0.050729 -0.042638 +v -0.000000 0.050378 -0.041580 +v 0.003936 0.050729 -0.042638 +v 0.011285 0.050420 0.130940 +v 0.015042 0.051382 0.124631 +v 0.015042 0.054201 0.130940 +v 0.011285 0.048033 0.126546 +v 0.000000 0.050420 0.130940 +v 0.015042 0.047147 0.120009 +v 0.000000 0.048033 0.126546 +v 0.011285 0.044651 0.123030 +v 0.000000 0.044651 0.123030 +v 0.000000 0.040572 0.120220 +v 0.011285 0.040572 0.120220 +v 0.015042 0.041902 0.116294 +v 0.011255 0.036979 0.118501 +v 0.015066 0.038013 0.114050 +v 0.000000 0.036978 0.118504 +v 0.011143 0.033415 0.117181 +v 0.000000 0.033327 0.117162 +v 0.007852 0.029688 0.115832 +v 0.000000 0.029708 0.115833 +v 0.000000 0.020669 0.113233 +v 0.007830 0.020669 0.113233 +v 0.007830 0.017399 0.111664 +v 0.000000 0.017399 0.111664 +v 0.007830 0.014803 0.109481 +v 0.000000 0.014803 0.109481 +v 0.007830 0.012853 0.106707 +v 0.000000 0.012853 0.106707 +v 0.000000 0.011863 0.103379 +v 0.007830 0.011863 0.103379 +v 0.007830 0.011577 0.099828 +v 0.000000 0.011577 0.099828 +v 0.000000 0.011577 0.096338 +v 0.007830 0.011577 0.096338 +v 0.000000 0.011577 0.072684 +v 0.007830 0.011577 0.072684 +v 0.006928 0.011016 0.068644 +v 0.000000 0.010718 0.068508 +v 0.011447 0.011577 0.068899 +v 0.000000 0.010209 0.064595 +v 0.007558 0.010569 0.064737 +v 0.015042 0.011577 0.065138 +v 0.015042 0.011143 0.062346 +v 0.007558 0.009802 0.062245 +v 0.000000 0.009326 0.062209 +v 0.000000 0.007612 0.057958 +v 0.007558 0.008273 0.057672 +v 0.015042 0.010155 0.056855 +v 0.000000 0.005300 0.054106 +v 0.007558 0.006067 0.053499 +v 0.015042 0.008296 0.051736 +v 0.007558 0.002673 0.050019 +v 0.015042 0.004752 0.047086 +v 0.000000 0.001972 0.051007 +v 0.015042 0.000465 0.043737 +v 0.007558 -0.001382 0.047090 +v 0.000000 -0.001999 0.048210 +v 0.015042 -0.005112 0.041088 +v 0.007558 -0.006437 0.044604 +v 0.000000 -0.006881 0.045782 +v 0.015042 -0.061311 0.025865 +v 0.007558 -0.061804 0.029552 +v 0.000000 -0.061969 0.030789 +v 0.000000 -0.068292 0.030384 +v 0.007558 -0.068484 0.029128 +v 0.015042 -0.069058 0.025373 +v 0.000000 -0.074583 0.031582 +v 0.007558 -0.074726 0.030318 +v 0.015042 -0.075152 0.026539 +v 0.000000 -0.079200 0.033549 +v 0.007558 -0.079293 0.032278 +v 0.015042 -0.079572 0.028474 +v 0.015041 -0.082614 0.027876 +v 0.007521 -0.083724 0.031392 +v 0.000000 -0.084093 0.032563 +v -0.015224 0.108921 0.178922 +v -0.015044 0.108921 0.172637 +v -0.015664 0.107216 0.172637 +v -0.015661 0.107213 0.178922 +v -0.015222 0.108920 0.192178 +v -0.015652 0.107209 0.192178 +v -0.015220 0.111008 0.190562 +v -0.015221 0.108920 0.198650 +v -0.015220 0.111008 0.180488 +v -0.011175 0.114789 0.190562 +v -0.011175 0.114789 0.180488 +v 0.000000 0.114789 0.190562 +v 0.000000 0.114789 0.180488 +v 0.011175 0.114789 0.180488 +v 0.011175 0.114789 0.190562 +v 0.015220 0.111008 0.180488 +v 0.015220 0.111008 0.190562 +v 0.015224 0.108921 0.178922 +v 0.015222 0.108920 0.192178 +v 0.015664 0.107216 0.172637 +v 0.015044 0.108921 0.172637 +v 0.015661 0.107213 0.178922 +v 0.015652 0.107209 0.192178 +v 0.015221 0.108920 0.198650 +v 0.015644 0.107204 0.205254 +v 0.015219 0.108919 0.211857 +v 0.015220 0.111008 0.200216 +v 0.015220 0.111008 0.210291 +v 0.011175 0.114789 0.210291 +v 0.015218 0.108919 0.218304 +v 0.011175 0.114789 0.200216 +v 0.015628 0.107195 0.231184 +v 0.000000 0.114789 0.210291 +v 0.000000 0.114789 0.200216 +v -0.011175 0.114789 0.200216 +v -0.011175 0.114789 0.210291 +v -0.015220 0.111008 0.200216 +v -0.015220 0.111008 0.210291 +v -0.015219 0.108919 0.211857 +v -0.015644 0.107204 0.205254 +v -0.015218 0.108919 0.218304 +v -0.015628 0.107195 0.231184 +v -0.015216 0.108918 0.231525 +v -0.015215 0.108918 0.237870 +v -0.015220 0.111008 0.229913 +v -0.015625 0.107194 0.244486 +v -0.015220 0.111008 0.219838 +v -0.011175 0.114789 0.219838 +v -0.011175 0.114789 0.229913 +v 0.000000 0.114789 0.229913 +v 0.000000 0.114789 0.219838 +v 0.011175 0.114789 0.219838 +v 0.011175 0.114789 0.229913 +v 0.015220 0.111008 0.229913 +v 0.015220 0.111008 0.219838 +v 0.015216 0.108918 0.231525 +v 0.015215 0.108918 0.237870 +v 0.015625 0.107194 0.244486 +v 0.015213 0.108918 0.251101 +v 0.015220 0.111008 0.239460 +v 0.015212 0.108917 0.257748 +v 0.015220 0.111008 0.249535 +v 0.015622 0.107193 0.266583 +v 0.011175 0.114789 0.239460 +v 0.011175 0.114789 0.249535 +v 0.000000 0.114789 0.249535 +v 0.000000 0.114789 0.239460 +v -0.011175 0.114789 0.239460 +v -0.011175 0.114789 0.249535 +v -0.015220 0.111008 0.249535 +v -0.015220 0.111008 0.239460 +v -0.015213 0.108918 0.251101 +v -0.015212 0.108917 0.257748 +v -0.015622 0.107193 0.266583 +v -0.014704 0.111040 0.259260 +v -0.011286 0.114676 0.266583 +v -0.011286 0.114676 0.259106 +v -0.014703 0.111040 0.266583 +v -0.014702 0.111039 0.274513 +v -0.015621 0.107193 0.274513 +v -0.011286 0.114676 0.274513 +v -0.009945 0.116128 0.269550 +v -0.009945 0.116128 0.274513 +v -0.011286 0.114676 0.285660 +v -0.014700 0.111039 0.288486 +v -0.015618 0.107192 0.288486 +v -0.011317 0.114659 0.288486 +v 0.014704 0.111040 0.259260 +v 0.011286 0.114676 0.266583 +v 0.011286 0.114676 0.259106 +v 0.014703 0.111040 0.266583 +v 0.014702 0.111039 0.274513 +v 0.015621 0.107193 0.274513 +v 0.011286 0.114676 0.274513 +v 0.009945 0.116128 0.269550 +v 0.009945 0.116128 0.274513 +v 0.011286 0.114676 0.285660 +v 0.014700 0.111039 0.288486 +v 0.015618 0.107192 0.288486 +v 0.011317 0.114659 0.288486 +v -0.015042 0.080540 -0.007702 +v -0.015042 0.067115 -0.007702 +v -0.006624 0.080540 -0.007702 +v -0.000000 0.067110 -0.007702 +v -0.000000 0.080540 -0.007702 +v -0.000000 0.082662 -0.007702 +v -0.006624 0.082662 -0.007702 +v 0.006624 0.080540 -0.016732 +v 0.006624 0.080540 -0.007702 +v 0.015042 0.080540 -0.007702 +v 0.015042 0.080540 -0.016732 +v 0.015042 0.080540 -0.022936 +v 0.013952 0.080540 -0.024048 +v 0.006574 0.080540 -0.024048 +v 0.006624 0.082662 -0.007702 +v -0.000000 0.082662 -0.007702 +v 0.006624 0.080540 -0.007702 +v -0.000000 0.080540 -0.007702 +v -0.000000 0.067110 -0.007702 +v 0.015042 0.067115 -0.007702 +v 0.015042 0.080540 -0.007702 +v 0.008698 0.090102 0.084763 +v 0.014444 0.092331 0.084763 +v 0.011656 0.088035 0.084763 +v 0.011311 0.094290 0.084763 +v 0.007276 0.093293 0.084763 +v 0.008115 0.095319 0.084763 +v 0.005940 0.091553 0.084763 +v 0.011852 0.096143 0.084763 +v 0.006418 0.087831 0.084763 +v 0.008401 0.097493 0.084763 +v 0.004201 0.090218 0.084763 +v 0.012022 0.098062 0.084763 +v 0.003864 0.086816 0.084763 +v 0.011807 0.099979 0.084763 +v 0.002174 0.089379 0.084763 +v 0.008115 0.099668 0.084763 +v 0.002016 0.086420 0.084763 +v 0.011210 0.101918 0.084763 +v 0.000000 0.089093 0.084763 +v 0.007276 0.101694 0.084763 +v -0.000028 0.086290 0.084763 +v 0.010045 0.103898 0.084763 +v -0.002059 0.086514 0.084763 +v -0.002174 0.089379 0.084763 +v -0.004089 0.087121 0.084763 +v -0.004201 0.090218 0.084763 +v -0.005991 0.088143 0.084763 +v -0.005940 0.091553 0.084763 +v -0.007669 0.089504 0.084763 +v -0.008966 0.091075 0.084763 +v -0.007276 0.093293 0.084763 +v -0.010112 0.093335 0.084763 +v -0.008115 0.095319 0.084763 +v 0.005940 0.103434 0.084763 +v -0.011187 0.098194 0.084763 +v -0.008401 0.097493 0.084763 +v -0.014361 0.094821 0.084763 +v -0.013727 0.092554 0.084763 +v -0.008115 0.099668 0.084763 +v -0.014515 0.099228 0.084763 +v -0.010108 0.102353 0.084763 +v -0.013727 0.103141 0.084763 +v -0.007276 0.101694 0.084763 +v -0.009163 0.104228 0.084763 +v -0.005940 0.103434 0.084763 +v -0.008420 0.105440 0.084763 +v -0.007323 0.106686 0.084763 +v -0.004201 0.104769 0.084763 +v -0.006017 0.107702 0.084763 +v -0.002174 0.105608 0.084763 +v -0.004319 0.108580 0.084763 +v -0.002236 0.109230 0.084763 +v 0.000000 0.105894 0.084763 +v 0.000354 0.109367 0.084763 +v 0.002744 0.108949 0.084763 +v 0.002174 0.105608 0.084763 +v 0.004201 0.104769 0.084763 +v 0.006475 0.111631 0.084763 +v 0.004166 0.112524 0.084763 +v 0.006769 0.106165 0.084763 +v 0.008715 0.110379 0.084763 +v 0.010549 0.108926 0.084763 +v 0.012193 0.107240 0.084763 +v 0.012864 0.106431 0.084763 +v -0.013952 0.080540 -0.024048 +v -0.006624 0.080540 -0.016732 +v -0.006574 0.080540 -0.024048 +v -0.015042 0.080540 -0.022936 +v -0.015042 0.080540 -0.016732 +v -0.015042 0.080540 -0.007702 +v -0.006624 0.080540 -0.007702 +v 0.000000 0.114676 0.285660 +v -0.011286 0.114676 0.285660 +v -0.010244 0.115808 0.285660 +v -0.009736 0.116128 0.285660 +v 0.000000 0.116128 0.285660 +v 0.009736 0.116128 0.285660 +v 0.010244 0.115808 0.285660 +v 0.011286 0.114676 0.285660 +v -0.010989 0.115317 0.274513 +v -0.008995 0.114676 0.274513 +v -0.011324 0.114676 0.274513 +v -0.010345 0.115910 0.274513 +v -0.009719 0.116153 0.274513 +v -0.008995 0.116153 0.274513 +v -0.002700 0.116153 0.274513 +v 0.000000 0.114676 0.274513 +v 0.002700 0.116153 0.274513 +v 0.008995 0.114676 0.274513 +v 0.008995 0.116153 0.274513 +v 0.009719 0.116153 0.274513 +v 0.010345 0.115910 0.274513 +v 0.010989 0.115317 0.274513 +v 0.011324 0.114676 0.274513 +v -0.010989 0.115317 0.285645 +v -0.011324 0.114676 0.285645 +v -0.008995 0.114676 0.285645 +v -0.010345 0.115910 0.285645 +v -0.009719 0.116153 0.285645 +v -0.008995 0.116153 0.285645 +v -0.002700 0.116153 0.285645 +v 0.000000 0.114676 0.285645 +v 0.002700 0.116153 0.285645 +v 0.008995 0.114676 0.285645 +v 0.008995 0.116153 0.285645 +v 0.009719 0.116153 0.285645 +v 0.010345 0.115910 0.285645 +v 0.010989 0.115317 0.285645 +v 0.011324 0.114676 0.285645 +v 0.000000 0.114676 0.259106 +v -0.011286 0.114676 0.259106 +v -0.011286 0.114676 0.266583 +v 0.011286 0.114676 0.266583 +v 0.011286 0.114676 0.259106 +v 0.000000 0.114676 0.266583 +v -0.009945 0.116128 0.269550 +v 0.009945 0.116128 0.269550 +v 0.000000 0.116128 0.269550 +v -0.009945 0.116128 0.274513 +v 0.009945 0.116128 0.274513 +v 0.000000 0.116128 0.274513 +v 0.011674 0.102127 0.074853 +v 0.010688 0.103802 0.074853 +v 0.013567 0.106397 0.074853 +v 0.015014 0.102655 0.074853 +v 0.012303 0.100084 0.074853 +v 0.013990 0.106817 0.074853 +v 0.016070 0.098516 0.074853 +v 0.012257 0.107895 0.074853 +v 0.012529 0.098069 0.074853 +v 0.013581 0.108306 0.074853 +v 0.012350 0.096048 0.074853 +v 0.012612 0.110442 0.074853 +v 0.016952 0.094045 0.074853 +v 0.010652 0.109503 0.074853 +v 0.010431 0.112863 0.074853 +v 0.008876 0.110894 0.074853 +v 0.006701 0.112082 0.074853 +v 0.006934 0.114667 0.074853 +v 0.003873 0.113154 0.074853 +v 0.003894 0.115511 0.074853 +v 0.000000 0.115896 0.074853 +v 0.000384 0.109879 0.074853 +v 0.002428 0.109522 0.074853 +v -0.002325 0.109736 0.074853 +v -0.003894 0.115511 0.074853 +v -0.004510 0.109054 0.074853 +v -0.006934 0.114667 0.074853 +v -0.006287 0.108135 0.074853 +v -0.010431 0.112863 0.074853 +v -0.007668 0.107060 0.074853 +v -0.012612 0.110442 0.074853 +v -0.008826 0.105746 0.074853 +v -0.013581 0.108306 0.074853 +v -0.009593 0.104497 0.074853 +v -0.013990 0.106817 0.074853 +v -0.010385 0.102936 0.074853 +v -0.014096 0.103745 0.074853 +v -0.015014 0.102655 0.074853 +v -0.015018 0.099275 0.074853 +v -0.016070 0.098516 0.074853 +v -0.014859 0.094725 0.074853 +v -0.016952 0.094045 0.074853 +v -0.014084 0.091956 0.074853 +v -0.016266 0.090188 0.074853 +v -0.014895 0.087333 0.074853 +v -0.009390 0.090792 0.074853 +v -0.010386 0.092755 0.074853 +v -0.013035 0.084965 0.074853 +v -0.008024 0.089139 0.074853 +v -0.010486 0.082756 0.074853 +v -0.006270 0.087716 0.074853 +v -0.006924 0.080978 0.074853 +v -0.004281 0.086647 0.074853 +v -0.003395 0.079923 0.074853 +v -0.002158 0.086012 0.074853 +v -0.000040 0.085778 0.074853 +v -0.000004 0.079617 0.074853 +v 0.002085 0.085914 0.074853 +v 0.003387 0.079923 0.074853 +v 0.004009 0.086327 0.074853 +v 0.006915 0.080978 0.074853 +v 0.006696 0.087396 0.074853 +v 0.010481 0.082756 0.074853 +v 0.011793 0.087315 0.074853 +v 0.008763 0.089435 0.074853 +v 0.013035 0.084965 0.074853 +v 0.014895 0.087333 0.074853 +v 0.016266 0.090188 0.074853 +v 0.015158 0.092501 0.074853 +v 0.011907 0.094525 0.074853 +v -0.015018 0.099275 0.074853 +v -0.014096 0.103745 0.074853 +v -0.013726 0.103143 0.075363 +v -0.014515 0.099228 0.075363 +v -0.013727 0.103141 0.084763 +v -0.014515 0.099228 0.084763 +v -0.014361 0.094821 0.075363 +v -0.014859 0.094725 0.074853 +v -0.014361 0.094821 0.084763 +v -0.013727 0.092554 0.075363 +v -0.014084 0.091956 0.074853 +v -0.013727 0.092554 0.084763 +v 0.012193 0.107240 0.084763 +v 0.012857 0.106438 0.075363 +v 0.012864 0.106431 0.084763 +v 0.011880 0.107558 0.075363 +v 0.010549 0.108926 0.084763 +v 0.012257 0.107895 0.074853 +v 0.013567 0.106397 0.074853 +v 0.010319 0.109120 0.075363 +v 0.008715 0.110379 0.084763 +v 0.010652 0.109503 0.074853 +v 0.008591 0.110470 0.075363 +v 0.008876 0.110894 0.074853 +v 0.006475 0.111631 0.084763 +v 0.006701 0.112082 0.074853 +v 0.006475 0.111630 0.075363 +v 0.004166 0.112523 0.075363 +v 0.004166 0.112524 0.084763 +v 0.003873 0.113154 0.074853 +v -0.005003 0.100552 -0.018506 +v -0.006604 0.101109 -0.020321 +v -0.006604 0.100184 -0.019674 +v -0.005003 0.102147 -0.019620 +v 0.005003 0.100552 -0.018506 +v -0.005003 0.105653 -0.038399 +v -0.006604 0.104451 -0.038387 +v -0.006604 0.104314 -0.040560 +v 0.005003 0.102147 -0.019620 +v -0.005003 0.105385 -0.041089 +v 0.006604 0.101109 -0.020321 +v 0.006604 0.100184 -0.019674 +v -0.006604 0.103093 -0.042399 +v 0.005003 0.105653 -0.038399 +v 0.006604 0.104451 -0.038387 +v 0.006604 0.104314 -0.040560 +v 0.005003 0.105385 -0.041089 +v 0.006604 0.103093 -0.042399 +v -0.005003 0.103840 -0.043337 +v 0.005003 0.103840 -0.043337 +v -0.005003 0.100679 -0.044241 +v -0.006604 0.100478 -0.043042 +v -0.006604 0.098421 -0.041958 +v 0.005003 0.100679 -0.044241 +v 0.006604 0.100478 -0.043042 +v 0.006604 0.098421 -0.041958 +v -0.005003 0.097835 -0.043067 +v 0.005003 0.097835 -0.043067 +v 0.005003 0.093601 -0.035279 +v 0.006604 0.094409 -0.034428 +v -0.005003 0.093601 -0.035279 +v -0.006604 0.094409 -0.034428 +v 0.005003 0.090482 -0.031622 +v 0.006604 0.091230 -0.030707 +v 0.006604 0.086073 -0.027965 +v -0.005003 0.090482 -0.031622 +v -0.006604 0.091230 -0.030707 +v -0.006604 0.086073 -0.027965 +v -0.005003 0.085692 -0.029070 +v -0.006604 0.069655 -0.028786 +v 0.005003 0.085692 -0.029070 +v 0.006604 0.069655 -0.028786 +v -0.005003 0.069180 -0.029891 +v -0.006604 0.064851 -0.024365 +v -0.005003 0.063683 -0.024914 +v 0.005003 0.063683 -0.024914 +v 0.005003 0.069180 -0.029891 +v 0.006604 0.064851 -0.024365 +v 0.002578 0.061393 0.075157 +v 0.004828 0.053210 0.076056 +v 0.004828 0.061393 0.072172 +v 0.002578 0.053210 0.079040 +v -0.002578 0.061393 0.075157 +v 0.002578 0.044482 0.075318 +v 0.004828 0.044995 0.072980 +v -0.002578 0.053210 0.079040 +v -0.004828 0.061393 0.072172 +v -0.004828 0.053210 0.076056 +v -0.002578 0.044482 0.075318 +v -0.004828 0.044995 0.072980 +v -0.002578 0.039148 0.073999 +v -0.004828 0.039194 0.071574 +v 0.002578 0.039148 0.073999 +v 0.004828 0.039194 0.071574 +v -0.002578 0.034147 0.073674 +v -0.004828 0.033990 0.071338 +v -0.004828 0.028857 0.072184 +v 0.002578 0.034147 0.073674 +v 0.004828 0.033990 0.071338 +v 0.004828 0.028857 0.072184 +v -0.002578 0.029216 0.074402 +v -0.004828 0.024570 0.073845 +v 0.002578 0.029216 0.074402 +v 0.004828 0.024570 0.073845 +v -0.002578 0.024998 0.076055 +v -0.004828 0.020086 0.077087 +v -0.002578 0.020461 0.079089 +v 0.002578 0.020461 0.079089 +v 0.002578 0.024998 0.076055 +v 0.004828 0.020086 0.077087 +v 0.018603 0.086360 0.225283 +v 0.021053 0.078952 0.223422 +v 0.019220 0.087157 0.223562 +v 0.020321 0.079004 0.225241 +v 0.016995 0.086316 0.225302 +v 0.020214 0.067448 0.225260 +v 0.021010 0.067448 0.223636 +v 0.017084 0.063605 0.223608 +v 0.017084 0.077920 0.225353 +v 0.016197 0.078927 0.223787 +v 0.016197 0.087150 0.223637 +v 0.017084 0.064684 0.225339 +v 0.000000 0.063581 0.223728 +v 0.000000 0.064650 0.225364 +v 0.000000 0.077920 0.225326 +v 0.000000 0.078927 0.223891 +v -0.017167 0.113289 -0.002550 +v 0.000000 0.113289 -0.002550 +v -0.017124 0.113289 -0.007780 +v 0.017124 0.113289 -0.007780 +v 0.017167 0.113289 -0.002550 +v 0.000000 0.113289 -0.007830 +v -0.016237 0.112656 -0.009343 +v 0.016237 0.112656 -0.009343 +v 0.000000 0.112637 -0.009377 +v 0.006590 0.092556 -0.016935 +v 0.006122 0.099899 -0.016874 +v 0.006590 0.099899 -0.016896 +v 0.000000 0.083257 -0.016905 +v 0.006590 0.083181 -0.016985 +v 0.000000 0.092533 -0.016856 +v 0.000000 0.099899 -0.016816 +v -0.006122 0.099899 -0.016874 +v -0.006590 0.092556 -0.016935 +v -0.006590 0.083181 -0.016985 +v -0.006590 0.099899 -0.016896 +v -0.006590 0.083181 -0.016985 +v 0.000000 0.083257 -0.016905 +v -0.006571 0.082522 -0.015909 +v 0.006571 0.082522 -0.015909 +v 0.006590 0.083181 -0.016985 +v 0.000000 0.082522 -0.015909 +v -0.006577 0.082521 0.010123 +v 0.006577 0.082521 0.010123 +v 0.000000 0.082521 0.010267 +v -0.006572 0.082520 0.037455 +v 0.006572 0.082520 0.037455 +v 0.000000 0.082521 0.037497 +v -0.006565 0.082520 0.054636 +v 0.006565 0.082520 0.054636 +v 0.000000 0.082520 0.054619 +v -0.019220 0.087157 0.223562 +v -0.021053 0.078952 0.223422 +v -0.018603 0.086360 0.225283 +v -0.020321 0.079004 0.225241 +v -0.016995 0.086316 0.225302 +v -0.020214 0.067448 0.225260 +v -0.021010 0.067448 0.223636 +v -0.017084 0.063605 0.223608 +v -0.017084 0.077920 0.225353 +v -0.016197 0.078927 0.223787 +v -0.016197 0.087150 0.223637 +v -0.017084 0.064684 0.225339 +v 0.000000 0.063581 0.223728 +v 0.000000 0.064650 0.225364 +v 0.000000 0.077920 0.225326 +v 0.000000 0.078927 0.223891 +v -0.015037 0.031243 0.044836 +v -0.015038 0.039029 0.045664 +v -0.016575 0.038452 0.045485 +v -0.016578 0.031243 0.044718 +v -0.015037 0.026841 0.044367 +v -0.016580 0.026831 0.044248 +v -0.020735 0.031229 0.040187 +v -0.020794 0.040612 0.041831 +v -0.020465 0.026565 0.039438 +v -0.020938 0.031236 0.037183 +v -0.021209 0.041650 0.038099 +v -0.020639 0.025744 0.036385 +v -0.021624 0.042679 0.033782 +v -0.021262 0.031245 0.031337 +v -0.020815 0.023973 0.033759 +v -0.021813 0.043537 0.028365 +v -0.021254 0.020804 0.026909 +v -0.020857 0.020936 0.031666 +v -0.020804 0.017176 0.030981 +v -0.020747 0.013866 0.030945 +v -0.021631 0.031245 0.024527 +v -0.021358 0.044045 0.020572 +v -0.020990 0.007398 0.026000 +v -0.020672 0.010863 0.032179 +v -0.020599 0.008543 0.034002 +v -0.021361 0.021070 0.021045 +v -0.021252 0.031262 0.016299 +v -0.020089 0.044135 0.013719 +v -0.020710 0.003266 0.032082 +v -0.020493 0.006943 0.036765 +v -0.020049 0.031263 0.009583 +v -0.016960 0.043797 0.005934 +v -0.021151 0.021096 0.013213 +v -0.015035 0.031262 0.001146 +v -0.015047 0.044544 0.005307 +v -0.016949 0.031262 0.002006 +v -0.015030 0.021077 -0.002045 +v -0.020051 0.021088 0.006440 +v -0.016946 0.021073 -0.001185 +v -0.015031 0.007580 -0.006271 +v -0.021423 0.007616 0.009358 +v -0.016948 0.007578 -0.005411 +v -0.015042 -0.058777 -0.027047 +v -0.016964 -0.058886 -0.026221 +v -0.020041 -0.056523 -0.017467 +v -0.020056 0.007588 0.002304 +v -0.021426 -0.056486 -0.010300 +v -0.021743 -0.057998 -0.002442 +v -0.021669 0.007590 0.016587 +v -0.020954 -0.060922 0.005420 +v -0.019766 -0.064102 0.011615 +v -0.020572 0.001621 0.035409 +v -0.018835 -0.066614 0.016085 +v -0.016578 -0.065624 0.020452 +v -0.016578 0.001494 0.039237 +v -0.016578 0.007426 0.040897 +v -0.015037 -0.065350 0.020725 +v -0.015037 0.007398 0.041004 +v -0.015037 0.001494 0.039358 +v 0.015038 0.039029 0.045664 +v 0.015037 0.031243 0.044836 +v 0.016575 0.038452 0.045485 +v 0.016578 0.031243 0.044718 +v 0.015037 0.026841 0.044367 +v 0.016580 0.026831 0.044248 +v 0.020735 0.031229 0.040187 +v 0.020794 0.040612 0.041831 +v 0.020465 0.026565 0.039438 +v 0.020938 0.031236 0.037183 +v 0.021209 0.041650 0.038099 +v 0.020639 0.025744 0.036385 +v 0.021624 0.042679 0.033782 +v 0.021262 0.031245 0.031337 +v 0.020815 0.023973 0.033759 +v 0.021813 0.043537 0.028365 +v 0.021254 0.020804 0.026909 +v 0.020857 0.020936 0.031666 +v 0.020804 0.017176 0.030981 +v 0.020747 0.013866 0.030945 +v 0.021631 0.031245 0.024527 +v 0.021358 0.044045 0.020572 +v 0.020990 0.007398 0.026000 +v 0.020672 0.010863 0.032179 +v 0.020599 0.008543 0.034002 +v 0.021361 0.021070 0.021045 +v 0.021252 0.031262 0.016299 +v 0.020089 0.044135 0.013719 +v 0.020049 0.031263 0.009583 +v 0.016960 0.043797 0.005934 +v 0.021151 0.021096 0.013213 +v 0.015035 0.031262 0.001146 +v 0.015047 0.044544 0.005307 +v 0.016949 0.031262 0.002006 +v 0.015030 0.021077 -0.002045 +v 0.020051 0.021088 0.006440 +v 0.016946 0.021073 -0.001185 +v 0.015031 0.007580 -0.006271 +v 0.021423 0.007616 0.009358 +v 0.016948 0.007578 -0.005411 +v 0.015042 -0.058777 -0.027047 +v 0.016964 -0.058886 -0.026221 +v 0.020041 -0.056523 -0.017467 +v 0.020056 0.007588 0.002304 +v 0.021426 -0.056486 -0.010300 +v 0.021743 -0.057998 -0.002442 +v 0.021669 0.007590 0.016587 +v 0.020954 -0.060922 0.005420 +v 0.020710 0.003266 0.032082 +v 0.019766 -0.064102 0.011615 +v 0.020493 0.006943 0.036765 +v 0.020572 0.001621 0.035409 +v 0.018835 -0.066614 0.016085 +v 0.016578 -0.065624 0.020452 +v 0.016578 0.001494 0.039237 +v 0.016578 0.007426 0.040897 +v 0.015037 -0.065350 0.020725 +v 0.015037 0.007398 0.041004 +v 0.015037 0.001494 0.039358 +v 0.013952 0.080540 -0.024048 +v 0.006594 0.069898 -0.026258 +v 0.006574 0.080540 -0.024048 +v 0.013952 0.069761 -0.026289 +v 0.006599 0.066770 -0.027542 +v 0.015042 0.069428 -0.025245 +v 0.015042 0.080540 -0.022936 +v 0.013952 0.066770 -0.027542 +v 0.015042 0.066179 -0.026607 +v 0.006624 0.063753 -0.030246 +v 0.013952 0.063753 -0.030246 +v 0.015042 0.062808 -0.029628 +v 0.015058 0.061135 -0.034776 +v 0.013952 0.062226 -0.034897 +v 0.006378 0.062220 -0.034897 +v -0.000000 0.063753 -0.030246 +v 0.012167 0.059734 -0.042254 +v 0.013174 0.058512 -0.042457 +v 0.009562 0.056437 -0.047778 +v 0.008793 0.057788 -0.047326 +v 0.005053 0.055140 -0.050918 +v 0.005181 0.059979 -0.041616 +v 0.004653 0.056511 -0.050303 +v -0.000000 0.054619 -0.051954 +v -0.000000 0.062219 -0.034897 +v -0.000000 0.059979 -0.041616 +v -0.000000 0.056024 -0.051313 +v -0.004653 0.056511 -0.050303 +v -0.005053 0.055140 -0.050918 +v -0.005181 0.059979 -0.041616 +v -0.008793 0.057788 -0.047326 +v -0.009562 0.056437 -0.047778 +v -0.006378 0.062220 -0.034897 +v -0.012167 0.059734 -0.042254 +v -0.013174 0.058512 -0.042457 +v -0.006624 0.063753 -0.030246 +v -0.015058 0.061135 -0.034776 +v -0.013952 0.062226 -0.034897 +v -0.013952 0.063753 -0.030246 +v -0.015042 0.062808 -0.029628 +v -0.015042 0.066179 -0.026607 +v -0.013952 0.066770 -0.027542 +v -0.006599 0.066770 -0.027542 +v -0.015042 0.069428 -0.025245 +v -0.013952 0.069761 -0.026289 +v -0.006594 0.069898 -0.026258 +v -0.013952 0.080540 -0.024048 +v -0.015042 0.080540 -0.022936 +v -0.006574 0.080540 -0.024048 +v -0.005275 -0.083997 0.026101 +v 0.000000 -0.076417 0.020119 +v 0.000000 -0.084231 0.026581 +v -0.005274 -0.076417 0.020119 +v -0.010733 -0.083215 0.023605 +v -0.009489 -0.075867 0.017840 +v -0.005274 0.013135 0.044737 +v 0.000000 0.013135 0.044737 +v -0.009489 0.013685 0.042458 +v 0.000000 -0.085238 0.030656 +v -0.005275 -0.083997 0.026101 +v 0.000000 -0.084231 0.026581 +v -0.007136 -0.084885 0.029543 +v -0.010733 -0.083215 0.023605 +v 0.000000 -0.084093 0.032563 +v -0.007521 -0.083724 0.031392 +v -0.013447 -0.083941 0.026563 +v -0.015041 -0.082614 0.027876 +v -0.010731 -0.070614 -0.023827 +v -0.015063 -0.066084 -0.034262 +v -0.013448 -0.067692 -0.034735 +v -0.000000 -0.067834 -0.034890 +v -0.000000 -0.070763 -0.023866 +v -0.009864 -0.063607 -0.038522 +v -0.011046 -0.061223 -0.038830 +v -0.005941 -0.059523 -0.040270 +v -0.005363 -0.062191 -0.039766 +v -0.000000 -0.061646 -0.040244 +v -0.000000 -0.058889 -0.040807 +v 0.000000 -0.076417 0.020119 +v 0.005275 -0.083997 0.026101 +v 0.000000 -0.084231 0.026581 +v 0.005274 -0.076417 0.020119 +v 0.010733 -0.083215 0.023605 +v 0.009489 -0.075867 0.017840 +v 0.005274 0.013135 0.044737 +v 0.000000 0.013135 0.044737 +v 0.009489 0.013685 0.042458 +v 0.000000 -0.085238 0.030656 +v 0.000000 -0.084231 0.026581 +v 0.005275 -0.083997 0.026101 +v 0.007136 -0.084885 0.029543 +v 0.010733 -0.083215 0.023605 +v 0.007521 -0.083724 0.031392 +v 0.000000 -0.084093 0.032563 +v 0.013447 -0.083941 0.026563 +v 0.015041 -0.082614 0.027876 +v 0.010731 -0.070614 -0.023827 +v 0.015063 -0.066084 -0.034262 +v 0.013448 -0.067692 -0.034735 +v -0.000000 -0.067834 -0.034890 +v -0.000000 -0.070763 -0.023866 +v 0.009864 -0.063607 -0.038522 +v 0.011046 -0.061223 -0.038830 +v 0.005941 -0.059523 -0.040270 +v 0.005363 -0.062191 -0.039766 +v -0.000000 -0.061646 -0.040244 +v -0.000000 -0.058889 -0.040807 +v -0.003435 0.120830 -0.003879 +v -0.003435 0.123610 -0.003879 +v -0.005510 0.123610 -0.003879 +v -0.007595 0.123610 -0.003879 +v -0.009601 0.123333 -0.003879 +v -0.010512 0.122830 -0.003879 +v -0.011191 0.121891 -0.003879 +v -0.011726 0.119797 -0.003879 +v -0.012397 0.116064 -0.003879 +v 0.003435 0.120830 -0.003879 +v 0.012397 0.116064 -0.003879 +v 0.011727 0.119797 -0.003879 +v 0.011191 0.121891 -0.003879 +v 0.010512 0.122830 -0.003879 +v 0.009601 0.123333 -0.003879 +v 0.007595 0.123610 -0.003879 +v 0.005510 0.123610 -0.003879 +v 0.003435 0.123610 -0.003879 +v -0.005510 0.125351 -0.007741 +v -0.004435 0.125351 -0.007741 +v -0.004435 0.119830 -0.007741 +v -0.007539 0.125351 -0.007741 +v -0.010114 0.124989 -0.007741 +v -0.011903 0.123990 -0.007741 +v -0.013133 0.122320 -0.007741 +v -0.013855 0.119737 -0.007741 +v -0.014686 0.115893 -0.007741 +v -0.014893 0.114329 -0.007741 +v 0.004435 0.119830 -0.007741 +v 0.014893 0.114329 -0.007741 +v 0.014686 0.115893 -0.007741 +v 0.013855 0.119737 -0.007741 +v 0.013133 0.122320 -0.007741 +v 0.011903 0.123990 -0.007741 +v 0.010114 0.124989 -0.007741 +v 0.007539 0.125351 -0.007741 +v 0.005510 0.125351 -0.007741 +v 0.004435 0.125351 -0.007741 +v 0.000000 0.113445 0.008755 +v 0.017125 0.113445 0.023823 +v 0.017141 0.113445 0.008755 +v -0.017141 0.113445 0.008755 +v -0.017125 0.113445 0.023823 +v 0.000000 0.113445 0.023823 +v 0.000000 0.113445 0.037279 +v 0.017181 0.113445 0.037279 +v -0.017181 0.113445 0.037279 +v 0.016116 0.114109 0.038704 +v -0.016116 0.114109 0.038704 +v 0.000000 0.114109 0.038704 +v 0.014829 0.115276 0.040006 +v -0.014829 0.115276 0.040006 +v 0.012724 0.116649 0.041356 +v -0.012724 0.116649 0.041356 +v 0.009598 0.117930 0.042175 +v -0.009598 0.117930 0.042175 +v 0.004622 0.119168 0.042717 +v -0.004622 0.119168 0.042717 +v 0.000000 0.119552 0.042903 +v 0.000000 0.111036 0.259260 +v -0.011286 0.114676 0.259106 +v 0.000000 0.114676 0.259106 +v 0.011286 0.114676 0.259106 +v -0.014704 0.111040 0.259260 +v 0.014704 0.111040 0.259260 +v 0.000000 0.108919 0.257748 +v -0.015212 0.108917 0.257748 +v 0.015212 0.108917 0.257748 +v 0.000000 0.108920 0.251101 +v -0.015213 0.108918 0.251101 +v 0.015213 0.108918 0.251101 +v 0.000000 0.111008 0.249535 +v -0.015220 0.111008 0.249535 +v 0.015220 0.111008 0.249535 +v -0.011175 0.114789 0.249535 +v 0.011175 0.114789 0.249535 +v 0.000000 0.114789 0.249535 +v 0.000000 0.113697 0.170648 +v 0.009620 0.114494 0.170461 +v 0.000000 0.114506 0.170548 +v -0.009620 0.114494 0.170461 +v 0.011274 0.113788 0.170533 +v -0.011274 0.113788 0.170533 +v 0.000000 0.111761 0.170887 +v 0.013691 0.111647 0.170776 +v -0.013691 0.111647 0.170776 +v 0.000000 0.108921 0.172729 +v 0.015044 0.108921 0.172637 +v -0.015044 0.108921 0.172637 +v 0.000000 0.108920 0.178922 +v 0.015224 0.108921 0.178922 +v -0.015224 0.108921 0.178922 +v 0.015220 0.111008 0.180488 +v -0.015220 0.111008 0.180488 +v 0.000000 0.111008 0.180488 +v 0.011175 0.114789 0.180488 +v -0.011175 0.114789 0.180488 +v 0.000000 0.114789 0.180488 +v 0.011175 0.114789 0.200216 +v 0.000000 0.111008 0.200216 +v 0.000000 0.114789 0.200216 +v -0.011175 0.114789 0.200216 +v 0.015220 0.111008 0.200216 +v -0.015220 0.111008 0.200216 +v 0.000000 0.108920 0.198650 +v 0.015221 0.108920 0.198650 +v -0.015221 0.108920 0.198650 +v 0.015222 0.108920 0.192178 +v -0.015222 0.108920 0.192178 +v 0.000000 0.108920 0.192129 +v 0.015220 0.111008 0.190562 +v -0.015220 0.111008 0.190562 +v 0.000000 0.111008 0.190562 +v 0.011175 0.114789 0.190562 +v -0.011175 0.114789 0.190562 +v 0.000000 0.114789 0.190562 +v 0.015540 0.065016 0.283907 +v 0.000000 0.068158 0.285571 +v 0.000000 0.065015 0.283904 +v -0.015540 0.065016 0.283907 +v 0.019337 0.068125 0.285465 +v -0.019337 0.068125 0.285465 +v 0.000000 0.077154 0.289905 +v 0.019672 0.077209 0.289755 +v -0.019672 0.077209 0.289755 +v 0.019113 0.079357 0.290358 +v -0.019113 0.079357 0.290358 +v 0.000000 0.079331 0.290358 +v 0.014416 0.094031 0.290358 +v 0.007520 0.095497 0.290358 +v 0.006742 0.093619 0.290358 +v 0.007785 0.097512 0.290358 +v 0.005505 0.092007 0.290358 +v 0.012185 0.100369 0.290358 +v 0.007520 0.099526 0.290358 +v 0.006742 0.101404 0.290358 +v 0.010452 0.105085 0.290358 +v 0.005505 0.103016 0.290358 +v 0.008958 0.107009 0.290358 +v 0.013554 0.107511 0.290358 +v 0.003893 0.104254 0.290358 +v 0.013133 0.109226 0.290358 +v 0.006833 0.108891 0.290358 +v 0.009058 0.114028 0.290358 +v 0.008316 0.114227 0.290358 +v 0.004957 0.109872 0.290358 +v 0.002015 0.105031 0.290358 +v 0.000000 0.114155 0.290358 +v 0.000000 0.110001 0.290358 +v 0.000000 0.105297 0.290358 +v -0.002015 0.105031 0.290358 +v -0.004957 0.109872 0.290358 +v -0.008316 0.114227 0.290358 +v -0.003893 0.104254 0.290358 +v -0.006833 0.108891 0.290358 +v -0.009058 0.114028 0.290358 +v -0.013133 0.109226 0.290358 +v -0.008958 0.107009 0.290358 +v -0.013554 0.107511 0.290358 +v -0.005505 0.103016 0.290358 +v -0.010452 0.105085 0.290358 +v -0.006742 0.101404 0.290358 +v -0.012185 0.100369 0.290358 +v -0.007520 0.099526 0.290358 +v -0.007785 0.097512 0.290358 +v -0.014416 0.094031 0.290358 +v -0.007520 0.095497 0.290358 +v -0.006742 0.093619 0.290358 +v -0.005505 0.092007 0.290358 +v -0.008122 0.085922 0.290358 +v -0.015905 0.089727 0.290358 +v -0.003893 0.090769 0.290358 +v -0.019113 0.079357 0.290358 +v -0.002015 0.089992 0.290358 +v 0.000000 0.079331 0.290358 +v 0.000000 0.084623 0.290358 +v 0.000000 0.089726 0.290358 +v 0.002015 0.089992 0.290358 +v 0.008122 0.085922 0.290358 +v 0.019113 0.079357 0.290358 +v 0.003893 0.090769 0.290358 +v 0.015905 0.089727 0.290358 +v 0.000000 0.089093 0.084763 +v -0.002015 0.089992 0.085708 +v 0.000000 0.089726 0.085708 +v 0.000000 0.089726 0.290358 +v -0.002174 0.089379 0.084763 +v -0.002015 0.089992 0.290358 +v -0.003893 0.090769 0.085708 +v -0.004201 0.090218 0.084763 +v -0.003893 0.090769 0.290358 +v -0.005505 0.092007 0.085708 +v -0.005940 0.091553 0.084763 +v -0.005505 0.092007 0.290358 +v -0.007276 0.093293 0.084763 +v -0.006742 0.093619 0.085708 +v -0.006742 0.093619 0.290358 +v -0.008115 0.095319 0.084763 +v -0.007520 0.095497 0.085708 +v -0.007520 0.095497 0.290358 +v -0.008401 0.097493 0.084763 +v -0.007785 0.097512 0.085708 +v -0.007785 0.097512 0.290358 +v -0.007520 0.099526 0.085708 +v -0.008115 0.099668 0.084763 +v -0.007520 0.099526 0.290358 +v -0.006742 0.101404 0.085708 +v -0.007276 0.101694 0.084763 +v -0.006742 0.101404 0.290358 +v -0.005505 0.103016 0.085708 +v -0.005940 0.103434 0.084763 +v -0.005505 0.103016 0.290358 +v -0.004201 0.104769 0.084763 +v -0.003893 0.104254 0.085708 +v -0.003893 0.104254 0.290358 +v -0.002174 0.105608 0.084763 +v -0.002015 0.105031 0.085708 +v -0.002015 0.105031 0.290358 +v 0.000000 0.105894 0.084763 +v 0.000000 0.105297 0.290358 +v 0.000000 0.105297 0.085708 +v 0.002015 0.089992 0.085708 +v 0.000000 0.089093 0.084763 +v 0.000000 0.089726 0.085708 +v 0.000000 0.089726 0.290358 +v 0.002174 0.089379 0.084763 +v 0.002015 0.089992 0.290358 +v 0.003893 0.090769 0.085708 +v 0.004201 0.090218 0.084763 +v 0.003893 0.090769 0.290358 +v 0.005505 0.092007 0.085708 +v 0.005940 0.091553 0.084763 +v 0.005505 0.092007 0.290358 +v 0.007276 0.093293 0.084763 +v 0.006742 0.093619 0.085708 +v 0.006742 0.093619 0.290358 +v 0.008115 0.095319 0.084763 +v 0.007520 0.095497 0.085708 +v 0.007520 0.095497 0.290358 +v 0.008401 0.097493 0.084763 +v 0.007785 0.097512 0.085708 +v 0.007785 0.097512 0.290358 +v 0.007520 0.099526 0.085708 +v 0.008115 0.099668 0.084763 +v 0.007520 0.099526 0.290358 +v 0.006742 0.101404 0.085708 +v 0.007276 0.101694 0.084763 +v 0.006742 0.101404 0.290358 +v 0.005505 0.103016 0.085708 +v 0.005940 0.103434 0.084763 +v 0.005505 0.103016 0.290358 +v 0.004201 0.104769 0.084763 +v 0.003893 0.104254 0.085708 +v 0.003893 0.104254 0.290358 +v 0.002174 0.105608 0.084763 +v 0.002015 0.105031 0.085708 +v 0.002015 0.105031 0.290358 +v 0.000000 0.105894 0.084763 +v 0.000000 0.105297 0.290358 +v 0.000000 0.105297 0.085708 +v 0.005003 0.078033 -0.018506 +v 0.006604 0.064851 -0.019674 +v 0.006604 0.078033 -0.019674 +v 0.006604 0.100184 -0.019674 +v 0.005003 0.063683 -0.018506 +v 0.005003 0.100552 -0.018506 +v -0.005003 0.078033 -0.018506 +v -0.005003 0.063683 -0.018506 +v -0.005003 0.100552 -0.018506 +v -0.006604 0.064851 -0.019674 +v -0.006604 0.100184 -0.019674 +v -0.006604 0.078033 -0.019674 +v -0.014183 0.096069 0.077702 +v -0.008710 0.093659 0.069163 +v -0.013567 0.092609 0.077674 +v -0.013567 0.092608 0.083961 +v -0.009327 0.096091 0.069196 +v -0.014183 0.096070 0.083961 +v -0.014183 0.099628 0.077702 +v -0.009327 0.099607 0.069196 +v -0.014183 0.099628 0.083961 +v -0.008713 0.102039 0.069163 +v -0.013566 0.103091 0.083961 +v -0.013566 0.103093 0.077674 +v -0.005872 0.018408 0.096338 +v -0.006459 0.018677 0.071710 +v -0.007828 0.017339 0.072684 +v -0.007830 0.017339 0.096338 +v 0.000000 0.018680 0.071711 +v -0.005872 0.018620 0.098499 +v -0.007830 0.017450 0.098553 +v 0.000000 0.018408 0.096338 +v 0.005872 0.018408 0.096338 +v 0.006459 0.018677 0.071710 +v 0.007828 0.017339 0.072684 +v 0.007830 0.017339 0.096338 +v 0.000000 0.018620 0.098499 +v 0.005872 0.018620 0.098499 +v 0.007830 0.017450 0.098553 +v 0.005872 0.018983 0.100615 +v 0.007830 0.017762 0.100810 +v -0.005872 0.018983 0.100615 +v -0.007830 0.017762 0.100810 +v 0.000000 0.018983 0.100615 +v -0.005872 0.019687 0.102608 +v -0.007830 0.018471 0.102936 +v 0.000000 0.019687 0.102608 +v 0.005872 0.019687 0.102608 +v 0.007830 0.018471 0.102936 +v -0.005872 0.020770 0.104228 +v -0.007830 0.019707 0.104792 +v -0.007829 0.021290 0.106360 +v 0.005872 0.020770 0.104228 +v 0.007830 0.019707 0.104792 +v 0.007829 0.021290 0.106360 +v 0.000000 0.020770 0.104228 +v -0.005872 0.022150 0.105597 +v -0.007829 0.023200 0.107616 +v 0.000000 0.022150 0.105597 +v 0.005872 0.022150 0.105596 +v 0.007829 0.023200 0.107616 +v -0.005872 0.023759 0.106638 +v -0.007831 0.029882 0.109258 +v 0.005872 0.023759 0.106638 +v 0.007831 0.029882 0.109258 +v 0.000000 0.023759 0.106638 +v 0.000000 0.030619 0.108204 +v -0.005872 0.030619 0.108242 +v 0.005872 0.030619 0.108242 +v -0.008831 0.033920 0.108938 +v -0.010955 0.033438 0.109930 +v 0.000000 0.033920 0.108928 +v 0.008831 0.033920 0.108938 +v 0.010955 0.033438 0.109930 +v 0.000000 0.038588 0.109222 +v 0.012775 0.038588 0.109222 +v 0.015017 0.038073 0.110544 +v 0.015042 0.042773 0.110072 +v -0.012775 0.038588 0.109222 +v -0.015017 0.038073 0.110544 +v -0.015042 0.042773 0.110072 +v 0.000000 0.042593 0.108555 +v 0.012775 0.042593 0.108555 +v -0.012775 0.042593 0.108555 +v 0.012775 0.046176 0.106110 +v 0.015042 0.047554 0.107776 +v 0.015042 0.050971 0.102460 +v 0.000000 0.046176 0.106110 +v 0.013005 0.048808 0.101575 +v 0.015042 0.052225 0.095069 +v 0.000000 0.048808 0.101575 +v -0.012775 0.046176 0.106110 +v -0.015042 0.047554 0.107776 +v -0.015042 0.050971 0.102460 +v -0.013005 0.048808 0.101575 +v -0.015042 0.052225 0.095069 +v 0.000000 0.049641 0.095069 +v -0.013005 0.049641 0.095069 +v -0.013005 0.049746 0.075953 +v -0.015042 0.052366 0.075939 +v -0.015042 0.052065 0.071012 +v 0.013005 0.049641 0.095069 +v 0.013005 0.049746 0.075953 +v 0.015042 0.052366 0.075939 +v 0.015042 0.052065 0.071012 +v 0.000000 0.049888 0.075939 +v -0.013005 0.049395 0.071271 +v 0.013005 0.049395 0.071271 +v 0.000000 0.049571 0.071240 +v -0.013103 0.048727 0.066590 +v -0.015042 0.051457 0.065926 +v 0.000000 0.048864 0.066584 +v 0.013103 0.048727 0.066590 +v 0.015042 0.051457 0.065926 +v 0.000000 0.047530 0.060851 +v -0.013103 0.047533 0.060833 +v -0.015042 0.050238 0.059715 +v 0.013103 0.047533 0.060833 +v 0.015042 0.050238 0.059715 +v 0.000000 0.044433 0.055228 +v -0.013165 0.044468 0.055211 +v -0.015042 0.046315 0.052679 +v -0.015042 0.039431 0.049426 +v 0.013165 0.044468 0.055211 +v 0.015042 0.046315 0.052679 +v 0.015042 0.039431 0.049426 +v -0.013165 0.038662 0.053174 +v -0.015042 0.032316 0.049058 +v 0.013165 0.038662 0.053174 +v 0.015042 0.032316 0.049058 +v 0.000000 0.038627 0.053237 +v -0.013165 0.032319 0.052904 +v -0.015042 0.025504 0.051096 +v 0.013165 0.032319 0.052904 +v 0.015042 0.025504 0.051096 +v 0.000000 0.032339 0.052923 +v -0.013165 0.026590 0.054168 +v -0.015042 0.021306 0.055250 +v 0.000000 0.026592 0.054193 +v 0.013165 0.026590 0.054168 +v 0.015042 0.021306 0.055250 +v 0.000000 0.023138 0.056981 +v -0.013165 0.023134 0.056967 +v -0.015042 0.019251 0.058757 +v 0.013165 0.023134 0.056967 +v 0.015042 0.019251 0.058757 +v -0.013046 0.021250 0.059901 +v -0.015042 0.017835 0.062638 +v 0.013046 0.021250 0.059901 +v 0.015042 0.017835 0.062638 +v 0.000000 0.021257 0.059904 +v -0.012736 0.019977 0.063226 +v -0.015042 0.017073 0.065435 +v 0.012736 0.019977 0.063226 +v 0.015042 0.017073 0.065435 +v 0.000000 0.019981 0.063233 +v -0.012287 0.019161 0.065980 +v -0.011435 0.017206 0.069060 +v 0.012287 0.019161 0.065980 +v 0.011435 0.017206 0.069060 +v 0.000000 0.019165 0.065990 +v -0.009373 0.018919 0.068845 +v -0.007828 0.017339 0.072684 +v -0.006459 0.018677 0.071710 +v 0.009373 0.018919 0.068845 +v 0.007828 0.017339 0.072684 +v 0.006459 0.018677 0.071710 +v 0.000000 0.018922 0.068850 +v 0.000000 0.018680 0.071711 +v 0.009302 0.114494 0.135867 +v 0.009620 0.114494 0.170461 +v 0.000000 0.114506 0.170548 +v 0.007757 0.116145 0.132204 +v 0.000000 0.114494 0.135867 +v 0.007757 0.116196 0.116080 +v 0.007018 0.116004 0.133376 +v 0.007757 0.115969 0.076238 +v 0.006934 0.114667 0.074853 +v 0.004119 0.117193 0.130784 +v 0.004170 0.117216 0.116080 +v 0.004131 0.117146 0.076238 +v 0.003894 0.115511 0.074853 +v 0.000000 0.115896 0.074853 +v 0.000000 0.117549 0.116080 +v 0.000000 0.117504 0.076238 +v -0.004131 0.117146 0.076238 +v -0.003894 0.115511 0.074853 +v -0.006934 0.114667 0.074853 +v 0.000000 0.117529 0.130104 +v -0.004170 0.117216 0.116080 +v -0.007757 0.115969 0.076238 +v -0.007757 0.116196 0.116080 +v -0.004119 0.117193 0.130784 +v -0.007757 0.116145 0.132204 +v 0.000000 0.117279 0.131433 +v -0.009302 0.114494 0.135867 +v -0.009620 0.114494 0.170461 +v -0.007018 0.116004 0.133376 +v 0.000000 0.115996 0.133376 +v -0.003750 0.116878 0.132072 +v 0.003750 0.116878 0.132072 +v 0.000000 0.114271 0.075173 +v 0.000000 0.112254 0.069899 +v 0.003056 0.114019 0.075173 +v -0.003056 0.114019 0.075173 +v 0.003103 0.111984 0.069899 +v -0.003103 0.111984 0.069899 +v 0.007346 0.112853 0.075173 +v -0.007346 0.112853 0.075173 +v 0.007360 0.110643 0.069899 +v -0.007360 0.110643 0.069899 +v 0.010550 0.108019 0.069899 +v -0.010550 0.108019 0.069899 +v 0.010821 0.110690 0.075173 +v -0.010821 0.110690 0.075173 +v 0.013844 0.107084 0.075173 +v -0.013844 0.107084 0.075173 +v 0.012435 0.105609 0.069899 +v -0.012435 0.105609 0.069899 +v 0.015324 0.103497 0.075173 +v -0.015324 0.103497 0.075173 +v 0.013575 0.102653 0.069899 +v -0.013575 0.102653 0.069899 +v 0.016101 0.100671 0.075173 +v -0.016101 0.100671 0.075173 +v 0.014148 0.100513 0.069899 +v -0.014148 0.100513 0.069899 +v 0.014349 0.096999 0.069899 +v -0.014349 0.096999 0.069899 +v 0.016197 0.096526 0.075360 +v -0.016197 0.096526 0.075360 +v 0.014059 0.094634 0.069899 +v -0.014059 0.094634 0.069899 +v 0.016197 0.094062 0.075428 +v -0.016197 0.094062 0.075428 +v 0.013057 0.091446 0.069899 +v -0.013057 0.091446 0.069899 +v 0.014933 0.091042 0.075428 +v -0.014933 0.091042 0.075428 +v 0.011108 0.088201 0.069899 +v -0.011108 0.088201 0.069899 +v 0.012981 0.087670 0.075428 +v -0.012981 0.087670 0.075428 +v 0.009275 0.084449 0.075428 +v -0.009275 0.084449 0.075428 +v 0.008055 0.085686 0.069899 +v -0.008055 0.085686 0.069899 +v 0.004960 0.082476 0.075428 +v -0.004960 0.082476 0.075428 +v 0.004165 0.084025 0.069899 +v -0.004165 0.084025 0.069899 +v 0.000000 0.081737 0.075428 +v 0.000000 0.083391 0.069899 +v -0.011175 0.114789 0.239460 +v 0.000000 0.111008 0.239460 +v -0.015220 0.111008 0.239460 +v 0.000000 0.114789 0.239460 +v 0.011175 0.114789 0.239460 +v 0.015220 0.111008 0.239460 +v -0.015215 0.108918 0.237870 +v 0.015215 0.108918 0.237870 +v 0.000000 0.108920 0.237894 +v -0.015216 0.108918 0.231525 +v 0.015216 0.108918 0.231525 +v 0.000000 0.108920 0.231479 +v 0.000000 0.111008 0.229913 +v -0.015220 0.111008 0.229913 +v 0.015220 0.111008 0.229913 +v -0.011175 0.114789 0.229913 +v 0.011175 0.114789 0.229913 +v 0.000000 0.114789 0.229913 +v 0.000000 0.111008 0.210291 +v -0.011175 0.114789 0.210291 +v -0.015220 0.111008 0.210291 +v 0.000000 0.114789 0.210291 +v 0.011175 0.114789 0.210291 +v 0.015220 0.111008 0.210291 +v -0.015219 0.108919 0.211857 +v 0.015219 0.108919 0.211857 +v 0.000000 0.108920 0.211857 +v 0.000000 0.108920 0.218272 +v -0.015218 0.108919 0.218304 +v 0.015218 0.108919 0.218304 +v 0.000000 0.111008 0.219838 +v -0.015220 0.111008 0.219838 +v 0.015220 0.111008 0.219838 +v -0.011175 0.114789 0.219838 +v 0.011175 0.114789 0.219838 +v 0.000000 0.114789 0.219838 +v -0.007559 0.104233 -0.018600 +v -0.018710 0.103627 -0.019136 +v -0.016900 0.110407 -0.011857 +v -0.007588 0.103429 -0.019144 +v -0.006320 0.106160 -0.016586 +v -0.006590 0.104161 -0.017943 +v -0.006590 0.103440 -0.018389 +v -0.016237 0.112656 -0.009343 +v -0.006117 0.104253 -0.018781 +v -0.006117 0.103444 -0.018917 +v 0.000000 0.103531 -0.018984 +v -0.004512 0.107694 -0.014884 +v 0.000000 0.104332 -0.018734 +v -0.001859 0.108445 -0.014076 +v 0.000000 0.112637 -0.009377 +v 0.000000 0.106022 -0.016859 +v 0.000000 0.108585 -0.013924 +v 0.001859 0.108445 -0.014076 +v 0.016237 0.112656 -0.009343 +v 0.004512 0.107694 -0.014884 +v 0.006320 0.106160 -0.016586 +v 0.016900 0.110407 -0.011857 +v 0.006117 0.104253 -0.018781 +v 0.006117 0.103444 -0.018917 +v 0.006590 0.103440 -0.018389 +v 0.006590 0.104161 -0.017943 +v 0.007588 0.103429 -0.019144 +v 0.007559 0.104233 -0.018600 +v 0.018710 0.103627 -0.019136 +v -0.001657 0.066604 0.226272 +v -0.003595 0.067009 0.225576 +v -0.001946 0.065907 0.225576 +v 0.000000 0.065520 0.225576 +v -0.003062 0.067543 0.226272 +v -0.004698 0.068659 0.225576 +v 0.000000 0.066274 0.226272 +v -0.004001 0.068948 0.226272 +v -0.005085 0.070605 0.225576 +v 0.000000 0.070605 0.226272 +v -0.004331 0.070605 0.226272 +v -0.004001 0.072262 0.226272 +v -0.004698 0.072551 0.225576 +v -0.003595 0.074200 0.225576 +v -0.003062 0.073667 0.226272 +v -0.001657 0.074606 0.226272 +v -0.001946 0.075303 0.225576 +v 0.000000 0.075690 0.225576 +v 0.000000 0.074935 0.226272 +v 0.001657 0.074606 0.226272 +v 0.001946 0.075303 0.225576 +v 0.003595 0.074200 0.225576 +v 0.003062 0.073667 0.226272 +v 0.004001 0.072262 0.226272 +v 0.004698 0.072551 0.225576 +v 0.005085 0.070605 0.225576 +v 0.004330 0.070605 0.226272 +v 0.004001 0.068948 0.226272 +v 0.004698 0.068659 0.225576 +v 0.003062 0.067543 0.226272 +v 0.003595 0.067009 0.225576 +v 0.001657 0.066604 0.226272 +v 0.001946 0.065907 0.225576 +v -0.015042 0.010708 0.039941 +v -0.016914 0.011725 0.040744 +v -0.015042 0.012257 0.038887 +v -0.015042 0.009994 0.041398 +v -0.016912 0.012940 0.039944 +v -0.015042 0.014101 0.038323 +v -0.016912 0.011258 0.041819 +v -0.016911 0.014368 0.039529 +v -0.015042 0.016495 0.038101 +v -0.017251 0.012171 0.041183 +v -0.017251 0.013215 0.040496 +v -0.016908 0.012839 0.051270 +v -0.015042 0.011721 0.051714 +v -0.017251 0.011863 0.042011 +v -0.017251 0.016171 0.042743 +v -0.017251 0.014494 0.040125 +v -0.017251 0.016374 0.039950 +v -0.016911 0.016405 0.039339 +v -0.017251 0.018213 0.040303 +v -0.016912 0.018412 0.039724 +v -0.015042 0.018849 0.038553 +v -0.017251 0.019751 0.041030 +v -0.016913 0.020121 0.040533 +v -0.015042 0.020979 0.039589 +v -0.015042 0.022589 0.041231 +v -0.017251 0.020893 0.042168 +v -0.016915 0.021426 0.041833 +v -0.015042 0.023151 0.043429 +v -0.016912 0.021820 0.043557 +v -0.017251 0.021183 0.043595 +v -0.016908 0.018346 0.051802 +v -0.015042 0.019321 0.052516 +v -0.015042 0.017385 0.054165 +v -0.017251 0.017900 0.051386 +v -0.016911 0.017006 0.052944 +v -0.015042 0.015170 0.054530 +v -0.017251 0.016787 0.052334 +v -0.017251 0.015519 0.051179 +v -0.017251 0.013363 0.050991 +v -0.017251 0.015395 0.052563 +v -0.017251 0.014118 0.052101 +v -0.016914 0.015330 0.053221 +v -0.016912 0.013768 0.052655 +v -0.015042 0.013109 0.053784 +v 0.015042 0.010708 0.039941 +v 0.015042 0.012257 0.038887 +v 0.016914 0.011725 0.040744 +v 0.015042 0.009994 0.041398 +v 0.016912 0.012940 0.039944 +v 0.015042 0.014101 0.038323 +v 0.016912 0.011258 0.041819 +v 0.016911 0.014368 0.039529 +v 0.015042 0.016495 0.038101 +v 0.017251 0.012171 0.041183 +v 0.017251 0.013215 0.040496 +v 0.016908 0.012839 0.051270 +v 0.015042 0.011721 0.051714 +v 0.017251 0.011863 0.042011 +v 0.017251 0.016171 0.042743 +v 0.017251 0.014494 0.040125 +v 0.017251 0.016374 0.039950 +v 0.016911 0.016405 0.039339 +v 0.017251 0.018213 0.040303 +v 0.016912 0.018412 0.039724 +v 0.015042 0.018849 0.038553 +v 0.017251 0.019751 0.041030 +v 0.016913 0.020121 0.040533 +v 0.015042 0.020979 0.039589 +v 0.015042 0.022589 0.041231 +v 0.017251 0.020893 0.042168 +v 0.016915 0.021426 0.041833 +v 0.015042 0.023151 0.043429 +v 0.016912 0.021820 0.043557 +v 0.017251 0.021183 0.043595 +v 0.016908 0.018346 0.051802 +v 0.015042 0.019321 0.052516 +v 0.015042 0.017385 0.054165 +v 0.017251 0.017900 0.051386 +v 0.016911 0.017006 0.052944 +v 0.015042 0.015170 0.054530 +v 0.017251 0.016787 0.052334 +v 0.017251 0.015519 0.051179 +v 0.017251 0.013363 0.050991 +v 0.017251 0.015395 0.052563 +v 0.017251 0.014118 0.052101 +v 0.016912 0.013768 0.052655 +v 0.015042 0.013109 0.053784 +v 0.016914 0.015330 0.053221 +v -0.004165 0.084025 0.069899 +v 0.000000 0.083391 0.069899 +v 0.000000 0.098326 0.069899 +v -0.008055 0.085686 0.069899 +v 0.004165 0.084025 0.069899 +v -0.011108 0.088201 0.069899 +v 0.008055 0.085686 0.069899 +v -0.013057 0.091446 0.069899 +v 0.011108 0.088201 0.069899 +v -0.014059 0.094634 0.069899 +v 0.013057 0.091446 0.069899 +v -0.014349 0.096999 0.069899 +v 0.014059 0.094634 0.069899 +v -0.014148 0.100513 0.069899 +v 0.014349 0.096999 0.069899 +v -0.013575 0.102653 0.069899 +v 0.014148 0.100513 0.069899 +v -0.012435 0.105609 0.069899 +v 0.013575 0.102653 0.069899 +v -0.010550 0.108019 0.069899 +v 0.012435 0.105609 0.069899 +v -0.007360 0.110643 0.069899 +v 0.010550 0.108019 0.069899 +v -0.003103 0.111984 0.069899 +v 0.007360 0.110643 0.069899 +v 0.000000 0.112254 0.069899 +v 0.003103 0.111984 0.069899 +v 0.015814 0.097861 0.135749 +v 0.016911 0.094031 0.135749 +v 0.014302 0.102202 0.135749 +v 0.015735 0.097174 0.172637 +vn -0.4762 -0.6099 0.6334 +vn -0.4761 -0.6099 0.6335 +vn -0.4784 -0.6049 0.6365 +vn -0.4763 -0.6100 0.6334 +vn 0.4821 -0.6076 0.6311 +vn 0.4822 -0.6076 0.6311 +vn 0.4845 -0.6026 0.6341 +vn 0.0039 0.0039 1.0000 +vn 0.0040 0.0040 -1.0000 +vn 0.0039 0.3280 -0.9447 +vn 0.0039 0.3281 -0.9447 +vn 0.0039 1.0000 0.0039 +vn 0.0039 0.3256 0.9455 +vn -0.6360 0.1620 -0.7545 +vn -0.0652 0.2093 -0.9757 +vn -0.6835 0.1462 -0.7152 +vn -0.0020 0.2098 -0.9777 +vn 0.6827 0.1539 -0.7143 +vn 0.6406 0.1611 -0.7508 +vn 0.6877 0.1454 -0.7113 +vn 0.6407 0.1612 -0.7507 +vn -0.7580 0.4988 0.4203 +vn -0.7581 0.4986 0.4203 +vn -1.0000 0.0040 0.0040 +vn -0.8052 0.0039 0.5930 +vn 0.0039 0.6459 0.7634 +vn 0.0038 0.6460 0.7633 +vn 0.0039 1.0000 0.0038 +vn 1.0000 0.0039 0.0039 +vn 0.8079 0.0039 0.5893 +vn 0.8080 0.0036 0.5892 +vn 0.0039 0.6460 0.7634 +vn -0.1454 0.6957 -0.7035 +vn -0.1454 0.6956 -0.7035 +vn -0.2107 0.9751 -0.0688 +vn -0.2081 0.9774 -0.0376 +vn -0.2082 0.9781 0.0039 +vn -0.3759 -0.5975 -0.7083 +vn -0.3691 -0.5993 -0.7104 +vn -0.5274 -0.8468 -0.0697 +vn -0.5257 -0.8498 -0.0378 +vn -0.5261 -0.8504 0.0040 +vn 0.0040 -1.0000 0.0040 +vn 0.0039 -1.0000 0.0039 +vn -0.0670 -0.9977 0.0039 +vn -0.2565 -0.9665 0.0039 +vn -0.2805 -0.9599 0.0039 +vn -0.6748 -0.7380 0.0039 +vn -0.7149 -0.6992 0.0039 +vn -0.9298 -0.3680 0.0040 +vn -0.9471 -0.3210 0.0040 +vn -0.9793 -0.2022 0.0040 +vn -0.9826 -0.1855 0.0039 +vn -0.9854 -0.1702 0.0039 +vn -0.9854 -0.1702 0.0040 +vn 0.9856 -0.1689 0.0039 +vn 0.9829 -0.1840 0.0039 +vn 0.9797 -0.2007 0.0039 +vn 0.9502 -0.3115 0.0039 +vn 0.9309 -0.3653 0.0039 +vn 0.7188 -0.6952 0.0039 +vn 0.6791 -0.7340 0.0039 +vn 0.2877 -0.9577 0.0039 +vn 0.2638 -0.9646 0.0039 +vn 0.0749 -0.9972 0.0039 +vn -1.0000 0.0039 0.0039 +vn -1.0000 0.0040 0.0039 +vn -1.0000 0.0039 0.0040 +vn -1.0000 -0.0040 0.0039 +vn -1.0000 -0.0039 0.0040 +vn -1.0000 -0.0040 0.0040 +vn 0.0039 -0.0277 -0.9996 +vn 0.0040 -0.0119 -0.9999 +vn 0.0040 -0.0039 -1.0000 +vn -0.0039 -0.0042 -1.0000 +vn -0.0039 -0.0039 -1.0000 +vn -0.0040 0.0039 -1.0000 +vn -0.0039 0.0040 -1.0000 +vn -0.0119 0.0040 -0.9999 +vn 0.5683 -0.1372 0.8113 +vn 0.5627 -0.1449 0.8139 +vn 0.5623 -0.1455 0.8140 +vn 0.5374 -0.1544 0.8291 +vn 0.5381 -0.1532 0.8288 +vn 0.6527 -0.1290 0.7465 +vn 0.6475 -0.1374 0.7495 +vn 0.6431 -0.1444 0.7520 +vn 0.5759 -0.1528 0.8031 +vn 0.5670 -0.1525 0.8095 +vn 0.6154 -0.1137 0.7800 +vn 0.6164 -0.0981 0.7813 +vn 0.6142 -0.1291 0.7785 +vn 0.6136 -0.1368 0.7777 +vn 0.6925 -0.1370 0.7083 +vn 0.6922 -0.1366 0.7086 +vn 0.9996 -0.0039 0.0274 +vn 0.9998 -0.0039 0.0196 +vn 0.9998 0.0039 0.0196 +vn 0.9997 0.0196 0.0118 +vn 0.9998 0.0196 0.0039 +vn -0.0592 -0.0040 -0.9982 +vn -0.1303 -0.0276 -0.9911 +vn -0.0119 0.0118 -0.9999 +vn -0.0040 0.0197 -0.9998 +vn 0.0039 0.0197 -0.9998 +vn 0.0040 0.0198 -0.9998 +vn 0.0039 -0.0120 -0.9999 +vn 0.0040 -0.0277 -0.9996 +vn 0.0039 -0.0040 -1.0000 +vn 0.0119 -0.0039 -0.9999 +vn 0.0118 -0.0040 -0.9999 +vn 0.0119 0.0040 -0.9999 +vn 0.0198 0.0040 -0.9998 +vn -0.3033 -0.8547 0.4214 +vn -0.2879 -0.8558 0.4299 +vn -0.4212 -0.7991 0.4291 +vn -0.4367 -0.7908 0.4288 +vn -0.6043 -0.6754 0.4226 +vn -0.7022 -0.5831 0.4086 +vn 0.0039 -0.9704 -0.2416 +vn 0.0020 -0.9698 -0.2437 +vn 0.0040 -0.9704 -0.2416 +vn 0.0119 -0.9703 -0.2416 +vn -0.6467 0.0039 -0.7627 +vn 0.0039 0.0039 -1.0000 +vn -0.8282 0.0435 -0.5587 +vn 0.0039 0.0670 -0.9977 +vn 0.0039 0.3925 -0.9197 +vn -0.7397 0.2639 -0.6191 +vn 0.0039 0.9808 -0.1947 +vn -0.4920 0.8540 -0.1692 +vn -0.2212 0.9751 -0.0118 +vn 0.0039 0.9999 -0.0118 +vn 0.2512 -0.9679 0.0039 +vn 0.2511 -0.9679 0.0039 +vn 0.7110 -0.7032 0.0039 +vn -0.7267 -0.6870 0.0040 +vn -0.7115 -0.7027 0.0030 +vn -0.7304 -0.6830 0.0040 +vn -0.7072 -0.7070 0.0039 +vn -0.6788 -0.7343 0.0040 +vn -0.6703 -0.7421 0.0037 +vn -0.6621 -0.7494 0.0040 +vn -0.6537 -0.7567 0.0040 +vn -0.6367 -0.7711 0.0039 +vn -0.6319 -0.7750 0.0040 +vn -0.6281 -0.7782 0.0040 +vn -0.6281 -0.7781 0.0039 +vn -0.6232 -0.7820 0.0040 +vn -0.6232 -0.7820 0.0039 +vn -0.6194 -0.7851 0.0039 +vn -0.2098 -0.9777 0.0040 +vn -0.2129 -0.9763 -0.0378 +vn -0.2093 -0.9754 -0.0693 +vn -0.1461 -0.6916 -0.7074 +vn -0.1462 -0.6916 -0.7074 +vn 0.4110 0.5832 -0.7007 +vn 0.5740 0.8160 -0.0686 +vn 0.5724 0.8194 -0.0297 +vn 0.5753 0.8180 0.0039 +vn 0.5753 0.8179 0.0039 +vn 0.7150 -0.6992 0.0040 +vn 0.7304 -0.6830 0.0040 +vn 0.7340 -0.6791 0.0039 +vn 0.7109 -0.7032 0.0039 +vn 0.6830 -0.7304 0.0040 +vn 0.8606 -0.5092 0.0039 +vn 0.6748 -0.7380 0.0039 +vn 0.8142 -0.5806 0.0039 +vn 0.6582 -0.7528 0.0039 +vn 0.8267 -0.5627 0.0039 +vn 0.6414 -0.7672 0.0039 +vn 0.7907 -0.6122 0.0039 +vn 0.6328 -0.7743 0.0039 +vn 0.8205 -0.5717 0.0039 +vn 0.8695 -0.4940 0.0039 +vn 0.6281 -0.7782 0.0040 +vn 0.9533 -0.3021 0.0039 +vn 0.6242 -0.7812 0.0039 +vn 0.9510 -0.3092 0.0039 +vn 0.5931 -0.8051 0.0039 +vn 0.0771 -0.9970 0.0033 +vn 0.0771 -0.9970 0.0039 +vn -0.0692 -0.9976 0.0039 +vn -0.5879 -0.8089 0.0039 +vn 0.7812 0.6242 0.0039 +vn 0.8857 0.4643 0.0039 +vn 0.5520 0.8339 0.0039 +vn 0.1765 0.9843 0.0039 +vn -0.8840 0.4675 0.0039 +vn -0.7782 0.6281 0.0039 +vn -0.7781 0.6281 0.0040 +vn -0.5465 0.8374 0.0039 +vn -0.5465 0.8375 0.0039 +vn -0.1689 0.9856 0.0039 +vn -0.1688 0.9856 0.0039 +vn 0.0039 -0.6830 -0.7304 +vn 0.0040 -0.7640 -0.6452 +vn 0.0040 -0.6830 -0.7304 +vn 0.0039 -0.4393 -0.8983 +vn 0.0040 -0.4393 -0.8983 +vn 0.0039 -0.2249 -0.9744 +vn 0.0039 -0.0749 -0.9972 +vn 0.0039 0.0355 -0.9994 +vn 0.0040 0.0356 -0.9994 +vn 0.0040 -0.1946 -0.9809 +vn 0.0040 -0.4233 -0.9060 +vn 0.0039 -0.2250 -0.9744 +vn 0.0040 -0.0356 -0.9994 +vn 0.0039 -0.0355 -0.9994 +vn 0.0040 0.3281 -0.9446 +vn 0.0040 0.1625 -0.9867 +vn 0.0040 -0.0276 -0.9996 +vn 0.0040 -0.2416 -0.9704 +vn 0.0040 -0.5261 -0.8504 +vn 0.0040 -0.6452 -0.7640 +vn 0.0039 -0.6452 -0.7640 +vn 0.0044 -0.9940 -0.1091 +vn 0.0039 -0.9949 -0.1012 +vn 0.0039 -0.7110 -0.7031 +vn 0.0040 -0.7111 -0.7031 +vn 0.9994 0.0353 0.0039 +vn 0.9991 0.0431 0.0039 +vn 0.9730 0.2305 0.0117 +vn 0.9690 0.2471 0.0039 +vn 0.9708 0.2397 0.0118 +vn 0.9690 0.2472 0.0039 +vn 0.9671 0.2545 0.0039 +vn 0.9708 0.2398 0.0039 +vn 0.9731 0.2305 0.0039 +vn 0.9748 0.2231 0.0039 +vn 0.9796 0.2006 0.0118 +vn 0.9730 0.2306 0.0039 +vn 0.9781 0.2082 0.0039 +vn 0.9692 0.2464 0.0017 +vn 0.9814 0.1916 0.0117 +vn 0.9765 0.2156 0.0039 +vn 0.9799 0.1991 0.0117 +vn 0.9541 0.2960 -0.0448 +vn 0.9708 0.2398 -0.0039 +vn 0.9671 0.2544 0.0038 +vn 0.9492 0.3102 -0.0523 +vn 0.4982 0.6865 -0.5296 +vn 0.5692 0.6712 -0.4749 +vn 0.9435 0.3182 -0.0921 +vn 0.5929 0.5615 -0.5772 +vn 0.6754 0.2962 -0.6754 +vn 0.9742 0.2152 -0.0688 +vn 0.0730 0.2091 -0.9752 +vn 0.9981 0.0123 -0.0608 +vn 0.9976 0.0122 -0.0686 +vn 0.1671 0.2085 -0.9636 +vn -0.0933 -0.6293 -0.7715 +vn -0.0040 -0.5592 -0.8290 +vn -0.0040 -0.5647 -0.8253 +vn -0.1096 -0.6321 -0.7671 +vn -0.6304 -0.5036 -0.5908 +vn -0.6167 -0.4894 -0.6166 +vn -0.0434 -0.9989 -0.0198 +vn -0.0434 -0.9990 -0.0118 +vn -0.0434 -0.9990 -0.0040 +vn -0.0434 -0.9990 0.0040 +vn -0.0355 -0.9994 0.0040 +vn -0.0277 -0.9996 0.0039 +vn -0.0277 -0.9996 0.0040 +vn -0.0198 -0.9998 -0.0040 +vn -0.0355 -0.9992 0.0197 +vn -0.0355 -0.9976 0.0591 +vn 0.0039 -0.9996 -0.0277 +vn 0.6872 -0.7265 0.0039 +vn 0.6871 -0.7265 0.0039 +vn 0.6830 -0.7304 0.0039 +vn 0.6748 -0.7380 -0.0039 +vn 0.6666 -0.7454 -0.0040 +vn 0.7304 -0.6830 0.0039 +vn 0.6498 -0.7601 0.0039 +vn 0.6665 -0.7455 0.0039 +vn 0.6666 -0.7454 0.0039 +vn 0.7264 -0.6872 0.0118 +vn 0.6709 -0.7415 0.0039 +vn 0.7265 -0.6872 0.0039 +vn 0.6748 -0.7379 0.0039 +vn 0.7110 -0.7032 0.0040 +vn 0.6990 -0.7148 0.0198 +vn 0.7291 -0.6835 0.0348 +vn 0.7032 -0.7110 0.0039 +vn 0.9999 0.0118 -0.0039 +vn 1.0000 0.0039 -0.0039 +vn 1.0000 0.0028 -0.0038 +vn 0.9999 0.0039 -0.0118 +vn 0.9999 -0.0039 -0.0118 +vn 0.9998 0.0196 -0.0039 +vn 1.0000 -0.0039 -0.0039 +vn 1.0000 -0.0042 0.0039 +vn 0.9999 -0.0039 0.0117 +vn 0.5388 0.1455 -0.8298 +vn 0.5569 0.1461 -0.8176 +vn 0.5617 0.1532 -0.8130 +vn 0.5706 0.1535 -0.8067 +vn 0.5699 0.1611 -0.8057 +vn 0.5699 0.1612 -0.8057 +vn 0.9998 -0.0040 -0.0202 +vn 0.9998 -0.0039 -0.0196 +vn 0.9731 0.2306 0.0039 +vn 0.9747 0.2231 0.0118 +vn 0.9685 0.2078 0.1372 +vn 0.9679 0.2155 0.1293 +vn 0.9601 0.1685 0.2233 +vn 0.9578 0.1603 0.2385 +vn 0.9479 0.0983 0.3029 +vn 0.9391 0.1296 0.3183 +vn 0.9239 0.0560 0.3785 +vn 0.9053 0.1058 0.4115 +vn 0.8829 0.0981 0.4591 +vn 0.8440 0.1766 0.5064 +vn 0.8471 0.1913 0.4958 +vn 0.8504 0.1920 0.4899 +vn 0.8641 0.1916 0.4654 +vn 0.8696 0.2067 0.4484 +vn 0.8789 0.2148 0.4258 +vn 0.8864 0.2148 0.4100 +vn 0.8774 0.2223 0.4251 +vn 0.8791 0.2141 0.4258 +vn 0.0039 0.0117 0.9999 +vn 0.0117 0.0196 0.9997 +vn -0.0118 0.1370 0.9905 +vn 0.0039 0.1916 0.9815 +vn -0.0117 0.3558 0.9345 +vn 0.0274 0.4107 0.9114 +vn 0.0352 0.5130 0.8576 +vn 0.0509 0.5367 0.8422 +vn 0.0432 0.7258 0.6866 +vn 0.0431 0.7482 0.6620 +vn 0.0196 0.9453 0.3256 +vn 0.0196 0.9531 0.3020 +vn 0.0118 0.9905 0.1370 +vn 0.0117 0.9905 0.1370 +vn -0.0118 0.9999 0.0039 +vn 0.0118 0.9999 0.0039 +vn -0.9811 0.1930 0.0118 +vn -0.9777 0.2098 0.0040 +vn -0.9666 0.2564 0.0039 +vn -0.9685 0.2490 0.0040 +vn -0.9685 0.2490 0.0039 +vn -0.9726 0.2323 0.0039 +vn -0.9726 0.2323 0.0040 +vn -0.9704 0.2416 0.0040 +vn -0.9761 0.2173 0.0040 +vn -0.9796 0.2006 0.0118 +vn -0.9534 0.2982 -0.0452 +vn -0.9704 0.2416 -0.0040 +vn -0.9685 0.2491 0.0040 +vn -0.9703 0.2416 0.0119 +vn -0.9726 0.2323 0.0118 +vn -0.9994 0.0356 0.0039 +vn -0.9744 0.2248 0.0039 +vn -0.9990 0.0435 0.0039 +vn -0.9793 0.2022 0.0119 +vn -0.4923 0.6892 -0.5317 +vn -0.9484 0.3126 -0.0527 +vn -0.5638 0.6742 -0.4771 +vn -0.9427 0.3206 -0.0928 +vn -0.5878 0.5641 -0.5799 +vn -0.6710 0.2978 -0.6790 +vn -0.9737 0.2168 -0.0693 +vn -0.7228 0.1462 -0.6754 +vn -0.9980 0.0124 -0.0613 +vn -0.9975 0.0123 -0.0691 +vn -0.7644 0.1386 -0.6297 +vn 0.0119 -0.5592 -0.8289 +vn 0.1011 -0.6289 -0.7709 +vn 0.0119 -0.5646 -0.8253 +vn 0.1174 -0.6315 -0.7664 +vn 0.6352 -0.5010 -0.5878 +vn 0.6216 -0.4870 -0.6136 +vn 1.0000 -0.0039 0.0039 +vn -0.6711 -0.3614 -0.6473 +vn 0.0039 -0.4923 -0.8704 +vn 0.0435 -0.3840 -0.9223 +vn -0.0457 -0.5011 -0.8642 +vn 0.0040 -0.5051 -0.8631 +vn 0.0039 -0.5110 -0.8596 +vn 0.0535 -0.5009 -0.8638 +vn 0.6755 -0.3595 -0.6439 +vn -0.0356 -0.3841 -0.9226 +vn 0.0513 -0.9985 -0.0197 +vn 0.0513 -0.9986 -0.0119 +vn 0.0513 -0.9987 -0.0039 +vn 0.0513 -0.9987 0.0039 +vn 0.0434 -0.9990 0.0040 +vn 0.0434 -0.9990 0.0039 +vn 0.0356 -0.9994 0.0040 +vn 0.0355 -0.9994 0.0039 +vn 0.0276 -0.9996 -0.0040 +vn 0.0434 -0.9989 0.0198 +vn 0.0434 -0.9973 0.0591 +vn 0.0040 -0.9996 -0.0277 +vn -0.5325 -0.1538 0.8323 +vn -0.5569 -0.1462 0.8176 +vn -0.5326 -0.1538 0.8323 +vn -0.5569 -0.1461 0.8176 +vn -0.5630 -0.1378 0.8149 +vn -0.5706 -0.1535 0.8068 +vn -0.6384 -0.1449 0.7559 +vn -0.5617 -0.1532 0.8130 +vn -0.6429 -0.1381 0.7534 +vn -0.6482 -0.1297 0.7503 +vn -0.6482 -0.1296 0.7503 +vn -0.6830 -0.7304 0.0040 +vn -0.6830 -0.7304 0.0039 +vn -0.6705 -0.7419 -0.0040 +vn -0.6621 -0.7494 -0.0040 +vn -0.6453 -0.7640 0.0039 +vn -0.6622 -0.7494 0.0040 +vn -0.7227 -0.6911 0.0118 +vn -0.7150 -0.6992 0.0039 +vn -0.6666 -0.7454 0.0039 +vn -0.7150 -0.6991 0.0039 +vn -0.7227 -0.6911 0.0039 +vn -0.6705 -0.7419 0.0040 +vn -0.7071 -0.7071 0.0040 +vn -0.6950 -0.7188 0.0199 +vn -0.7269 -0.6858 0.0355 +vn -0.7071 -0.7071 0.0039 +vn -0.7071 -0.7071 0.0037 +vn -0.6992 -0.7150 0.0040 +vn -0.6992 -0.7150 0.0039 +vn -0.9999 0.0118 -0.0040 +vn -1.0000 0.0040 -0.0040 +vn -1.0000 0.0028 -0.0038 +vn -0.9999 0.0039 -0.0119 +vn -0.9999 0.0040 -0.0119 +vn -0.6885 -0.1377 0.7120 +vn -0.6087 -0.1374 0.7814 +vn -0.6885 -0.1377 0.7121 +vn -0.6093 -0.1297 0.7823 +vn -0.6105 -0.1142 0.7838 +vn -0.6115 -0.0986 0.7851 +vn -0.9998 0.0198 -0.0040 +vn -0.9999 -0.0039 -0.0118 +vn -0.9998 0.0198 0.0040 +vn -1.0000 -0.0039 -0.0040 +vn -1.0000 -0.0042 0.0040 +vn -0.9999 -0.0040 0.0118 +vn -0.5514 0.1468 -0.8212 +vn -0.5331 0.1461 -0.8333 +vn -0.5334 0.1458 -0.8332 +vn -0.5563 0.1539 -0.8166 +vn -0.5653 0.1542 -0.8104 +vn -0.5646 0.1619 -0.8094 +vn -0.9998 -0.0040 -0.0198 +vn -0.9998 -0.0040 -0.0197 +vn -0.9744 0.2249 0.0039 +vn -0.9743 0.2248 0.0118 +vn -0.9680 0.2094 0.1383 +vn -0.9674 0.2172 0.1303 +vn -0.9594 0.1698 0.2251 +vn -0.9572 0.1615 0.2403 +vn -0.9471 0.0990 0.3052 +vn -0.9381 0.1306 0.3206 +vn -0.9228 0.0588 0.3808 +vn -0.9038 0.1066 0.4144 +vn -0.8812 0.0988 0.4623 +vn -0.8417 0.1778 0.5098 +vn -0.8449 0.1923 0.4991 +vn -0.8482 0.1933 0.4931 +vn -0.8622 0.1928 0.4684 +vn -0.8677 0.2081 0.4515 +vn -0.8771 0.2163 0.4287 +vn -0.8847 0.2163 0.4129 +vn -0.8756 0.2238 0.4280 +vn -0.9997 0.0198 0.0118 +vn -0.9998 0.0040 0.0198 +vn -0.9998 0.0197 0.0039 +vn -0.9998 -0.0039 0.0198 +vn -0.9996 -0.0040 0.0276 +vn -0.9996 -0.0040 0.0277 +vn 0.0671 -0.0040 -0.9977 +vn 0.0197 0.0119 -0.9997 +vn 0.1381 -0.0276 -0.9900 +vn 0.0119 0.0198 -0.9997 +vn 0.0039 0.0198 -0.9998 +vn -0.0118 0.9532 0.3021 +vn -0.0039 0.9906 0.1370 +vn -0.0118 0.9454 0.3256 +vn -0.0353 0.7485 0.6623 +vn -0.0353 0.7260 0.6868 +vn -0.0431 0.5369 0.8426 +vn -0.0274 0.5131 0.8579 +vn -0.0196 0.4108 0.9115 +vn 0.0195 0.3558 0.9344 +vn 0.0195 0.1370 0.9904 +vn -0.0040 0.0194 0.9998 +vn 0.0039 0.0118 0.9999 +vn 0.0196 0.9998 0.0039 +vn -0.0039 1.0000 0.0039 +vn 0.5285 0.8490 0.0030 +vn 0.5282 0.8491 0.0040 +vn 0.5283 0.8491 0.0038 +vn 0.5282 0.8491 0.0039 +vn 0.5286 0.8488 0.0029 +vn 0.6748 -0.7380 0.0040 +vn -0.9271 0.3748 0.0039 +vn -0.9271 0.3748 0.0040 +vn -0.9271 0.3747 0.0039 +vn 0.8828 -0.2393 0.4041 +vn 0.9030 -0.0977 0.4183 +vn 0.9023 -0.1055 0.4180 +vn 0.8986 0.0981 0.4277 +vn 0.8971 0.1136 0.4270 +vn 0.8737 0.2468 0.4192 +vn 0.8725 0.2386 0.4264 +vn 0.2157 0.9765 0.0039 +vn 0.2174 -0.9761 0.0040 +vn 0.2173 -0.9761 0.0039 +vn 0.2173 -0.9761 0.0040 +vn -0.5737 -0.8190 0.0040 +vn -0.5737 -0.8191 0.0038 +vn -0.5737 -0.8190 0.0039 +vn -0.8920 -0.0118 0.4519 +vn -0.8881 -0.0195 0.4592 +vn -0.7148 -0.0198 0.6990 +vn -0.7071 -0.0119 0.7070 +vn -0.9912 0.0039 0.1320 +vn -0.9999 -0.0040 -0.0119 +vn -0.9943 0.0040 -0.1069 +vn -0.9934 0.0040 -0.1148 +vn -0.9381 -0.0356 -0.3444 +vn -0.9175 -0.0596 -0.3932 +vn -0.7520 -0.1552 -0.6406 +vn -0.7201 -0.1711 -0.6724 +vn -0.4306 -0.2568 -0.8652 +vn -0.4007 -0.2658 -0.8768 +vn -0.2096 -0.3045 -0.9292 +vn -0.2091 -0.3116 -0.9269 +vn 0.0039 0.3926 -0.9197 +vn 0.0039 -0.2970 0.9549 +vn 0.0039 -0.2638 0.9646 +vn 0.0039 -0.6911 0.7227 +vn -0.0039 -0.6952 0.7188 +vn -0.7489 0.6626 0.0039 +vn -0.2437 -0.9698 0.0039 +vn -0.2438 -0.9698 0.0039 +vn 0.0040 0.0119 -0.9999 +vn 0.0040 -0.2899 -0.9570 +vn 0.0040 -0.3680 -0.9298 +vn 0.0039 -0.9718 -0.2357 +vn 0.0039 -0.9700 0.2432 +vn 0.0039 -0.2877 0.9577 +vn 0.0039 -0.3653 0.9309 +vn 0.0040 0.0118 0.9999 +vn 1.0000 -0.0040 0.0039 +vn 0.9999 0.0039 0.0117 +vn 0.9999 0.0039 0.0118 +vn 0.2171 -0.3039 -0.9276 +vn 0.4073 -0.2650 -0.8740 +vn 0.2165 -0.3111 -0.9254 +vn 0.4370 -0.2559 -0.8623 +vn 0.7239 -0.1701 -0.6686 +vn 0.7555 -0.1542 -0.6368 +vn 0.9188 -0.0591 -0.3904 +vn 0.9391 -0.0354 -0.3419 +vn 0.9943 0.0039 -0.1061 +vn 0.9935 0.0039 -0.1139 +vn 0.8936 -0.0120 0.4487 +vn 0.8898 -0.0195 0.4560 +vn 0.7187 -0.0196 0.6951 +vn 0.7120 -0.0134 0.7020 +vn 0.9914 0.0039 0.1309 +vn 0.9914 0.0039 0.1310 +vn 1.0000 0.0038 0.0038 +vn 1.0000 0.0040 0.0039 +vn 0.0026 -0.2970 0.9549 +vn 0.0040 -0.6911 0.7227 +vn 0.0118 -0.6952 0.7187 +vn 0.7523 0.6588 0.0039 +vn 0.7523 0.6588 0.0038 +vn 0.7523 0.6588 0.0032 +vn 0.0039 0.0118 -0.9999 +vn 0.0039 -0.3680 -0.9298 +vn -0.9999 0.0039 0.0118 +vn -0.8282 0.0436 -0.5588 +vn -0.6437 -0.0000 -0.7653 +vn -0.7373 0.2652 -0.6214 +vn -0.2231 0.9747 -0.0118 +vn -0.0040 -0.9703 -0.2417 +vn -0.6791 0.7340 0.0039 +vn -0.7304 0.6830 0.0039 +vn -0.7265 0.6872 0.0039 +vn -0.6791 0.7341 0.0039 +vn -0.0296 0.9996 0.0039 +vn -0.0218 0.9998 0.0039 +vn 0.0039 0.9998 0.0196 +vn 0.0374 0.9993 0.0015 +vn 0.0296 0.9996 0.0039 +vn 0.6833 0.7301 0.0039 +vn 0.6833 0.7302 0.0039 +vn 0.7341 0.6791 0.0035 +vn 0.7301 0.6833 0.0039 +vn 0.6772 0.1683 0.7163 +vn 0.5661 0.3162 0.7613 +vn 0.5265 0.3471 0.7761 +vn 0.4896 0.4347 0.7559 +vn 0.4647 0.4598 0.7567 +vn 0.4499 0.4890 0.7473 +vn 0.0294 0.6944 0.7190 +vn 0.0117 0.6992 0.7148 +vn 0.0039 0.6992 0.7149 +vn -0.0039 0.6992 0.7149 +vn -0.0216 0.6945 0.7191 +vn -0.4586 0.4615 0.7594 +vn -0.4437 0.4908 0.7499 +vn -0.4836 0.4364 0.7588 +vn -0.5607 0.3176 0.7646 +vn -0.5208 0.3485 0.7793 +vn -0.6729 0.1692 0.7201 +vn 0.9270 -0.3688 -0.0688 +vn 0.9305 -0.3652 -0.0298 +vn 0.6674 -0.2567 -0.6990 +vn -0.8326 0.5485 -0.0772 +vn -0.5939 0.3894 -0.7040 +vn -0.8331 0.5488 -0.0694 +vn -0.8374 0.5465 0.0039 +vn -0.4688 0.5319 -0.7052 +vn -0.6650 0.7437 -0.0691 +vn -0.4714 0.5348 -0.7012 +vn -0.6690 0.7426 -0.0298 +vn -0.6666 0.7454 0.0039 +vn 0.0198 -0.9996 0.0198 +vn -0.0039 -0.9826 -0.1855 +vn 0.0040 -0.9809 -0.1946 +vn 0.0513 -0.9977 -0.0434 +vn 0.0197 -0.9970 0.0749 +vn -0.0119 -0.9997 0.0197 +vn -0.0118 -0.9971 0.0749 +vn -0.0434 -0.9981 -0.0434 +vn 0.0118 -0.9826 -0.1855 +vn 0.9906 0.1370 0.0039 +vn 0.9829 0.1840 0.0039 +vn 0.9794 0.1925 -0.0613 +vn 0.9845 0.1377 -0.1082 +vn 0.7076 0.0989 -0.6997 +vn 0.7043 0.1377 -0.6964 +vn 0.9693 0.2400 -0.0532 +vn 0.6969 0.1693 -0.6969 +vn 0.9309 0.3653 0.0039 +vn 0.6477 0.2944 -0.7027 +vn 0.9060 0.4198 -0.0533 +vn 0.7071 0.7071 0.0039 +vn 0.4688 0.5319 -0.7052 +vn 0.6600 0.7488 -0.0611 +vn 0.3326 0.9430 0.0039 +vn 0.3087 0.9492 -0.0610 +vn 0.2083 0.6797 -0.7033 +vn 0.0898 0.9959 0.0039 +vn 0.0825 0.9947 -0.0612 +vn 0.0588 0.7098 -0.7020 +vn 0.0039 0.9981 -0.0610 +vn 0.0039 0.7150 -0.6992 +vn 0.0039 0.9990 -0.0454 +vn -0.9325 0.0040 -0.3611 +vn -0.7111 0.0040 -0.7031 +vn -0.9940 0.0039 -0.1092 +vn 0.0039 0.9371 -0.3490 +vn 0.0039 0.9526 -0.3042 +vn -0.9904 0.1381 0.0039 +vn -0.9904 0.1381 0.0040 +vn -0.9826 0.1854 0.0039 +vn -0.9790 0.1941 -0.0618 +vn -0.9844 0.1383 -0.1090 +vn -0.7036 0.0994 -0.7036 +vn -0.7003 0.1385 -0.7003 +vn -0.9690 0.2413 -0.0536 +vn -0.6928 0.1702 -0.7008 +vn -0.9298 0.3680 0.0040 +vn -0.6431 0.2959 -0.7063 +vn -0.9046 0.4228 -0.0537 +vn -0.7032 0.7110 0.0039 +vn -0.4626 0.5338 -0.7078 +vn -0.6570 0.7514 -0.0613 +vn -0.3256 0.9455 0.0039 +vn -0.3016 0.9515 -0.0611 +vn -0.2007 0.6808 -0.7044 +vn -0.0821 0.9966 0.0039 +vn -0.0747 0.9953 -0.0613 +vn -0.0509 0.7100 -0.7024 +vn 0.7150 0.0039 -0.6992 +vn 0.9335 0.0039 -0.3585 +vn 0.9941 0.0039 -0.1083 +vn 0.0039 0.5429 0.8398 +vn 0.0037 0.5430 0.8397 +vn 0.0039 0.5520 0.8339 +vn 0.0035 0.5466 0.8374 +vn 0.0039 0.0609 0.9981 +vn 0.0117 0.3326 0.9430 +vn 0.0038 0.0764 0.9971 +vn -0.0039 0.3326 0.9431 +vn 0.0039 0.5465 0.8374 +vn 0.0039 0.5519 0.8339 +vn 0.4855 -0.7934 -0.3671 +vn 0.5783 -0.7908 -0.2006 +vn 0.2486 -0.7696 -0.5881 +vn 0.1954 -0.7402 -0.6434 +vn -0.0929 -0.6593 -0.7461 +vn -0.4161 -0.6019 -0.6816 +vn -0.5817 -0.5343 -0.6133 +vn -0.5817 -0.5342 -0.6134 +vn -0.0040 0.2098 -0.9777 +vn 0.1671 0.2084 -0.9637 +vn -0.0671 0.2093 -0.9755 +vn 0.0750 0.2092 -0.9750 +vn -0.0535 0.2095 -0.9763 +vn -0.0772 0.2082 -0.9750 +vn -0.6866 0.1548 -0.7104 +vn -0.6398 0.1629 -0.7511 +vn -0.6186 0.1612 -0.7690 +vn -0.0614 0.2094 -0.9759 +vn 0.0040 0.2098 -0.9777 +vn -0.5432 0.2102 -0.8129 +vn 0.0039 0.5209 -0.8536 +vn -0.0616 0.2648 -0.9623 +vn 0.5942 0.1456 -0.7910 +vn 0.5332 0.1461 -0.8333 +vn 0.5781 0.1691 -0.7983 +vn 0.5083 0.1536 -0.8473 +vn 0.4685 0.1535 -0.8700 +vn 0.5084 0.1536 -0.8473 +vn 0.5136 0.1607 -0.8429 +vn 0.5135 0.1607 -0.8429 +vn 0.4297 0.1695 -0.8869 +vn 0.4214 0.1930 -0.8861 +vn 0.4302 0.1618 -0.8881 +vn 0.4460 0.1618 -0.8803 +vn 0.7250 -0.1215 0.6780 +vn 0.7097 -0.1215 0.6940 +vn 0.7103 -0.1139 0.6946 +vn 0.7318 -0.1291 0.6692 +vn 0.7243 -0.1292 0.6773 +vn 0.7205 -0.1299 0.6812 +vn 0.0038 0.9999 0.0139 +vn 0.0039 0.9999 0.0139 +vn 0.0039 0.8968 0.4425 +vn -0.0195 0.9086 0.4172 +vn -0.0122 0.9976 -0.0687 +vn -0.0042 0.9923 -0.1238 +vn -0.0904 0.6721 -0.7349 +vn -0.1852 0.7761 -0.6028 +vn 0.5869 -0.5318 -0.6106 +vn 0.1007 -0.6588 -0.7456 +vn 0.5869 -0.5318 -0.6105 +vn 0.4226 -0.5999 -0.6794 +vn -0.2412 -0.7711 -0.5892 +vn -0.1879 -0.7412 -0.6444 +vn -0.4795 -0.7964 -0.3685 +vn -0.5730 -0.7944 -0.2016 +vn -0.0119 0.2098 -0.9777 +vn 0.0614 0.2093 -0.9759 +vn 0.0851 0.2090 -0.9742 +vn 0.6907 0.1539 -0.7065 +vn 0.6445 0.1621 -0.7473 +vn 0.6237 0.1608 -0.7650 +vn 0.0693 0.2093 -0.9754 +vn 0.6008 0.1688 -0.7814 +vn 0.0039 0.2097 -0.9777 +vn -0.6366 0.7711 -0.0119 +vn -0.5695 0.8209 -0.0432 +vn -0.5226 0.8526 0.0039 +vn -0.5786 0.8148 -0.0354 +vn -0.6194 0.7851 -0.0039 +vn -0.4610 0.8867 -0.0355 +vn -0.6498 0.7601 0.0039 +vn -0.4923 0.8704 -0.0039 +vn -0.2947 0.9549 -0.0354 +vn -0.6107 0.7919 0.0039 +vn -0.6561 0.7499 0.0846 +vn -0.3092 0.9510 -0.0039 +vn -0.1682 0.9848 -0.0434 +vn -0.4769 0.8789 0.0039 +vn -0.5952 0.7999 0.0770 +vn -0.6382 0.5598 0.5285 +vn -0.5693 0.6871 0.4515 +vn -0.4700 0.8799 0.0692 +vn -0.4507 0.8113 0.3723 +vn -0.3092 0.9510 0.0039 +vn -0.3186 0.9464 0.0532 +vn -0.3029 0.9009 0.3108 +vn -0.1688 0.9856 -0.0039 +vn 0.0039 0.9991 -0.0431 +vn -0.1686 0.9843 0.0520 +vn -0.1451 0.9371 0.3176 +vn 0.0039 1.0000 -0.0039 +vn 0.0039 0.9987 0.0510 +vn 0.0039 0.9562 0.2927 +vn 0.1527 0.9360 0.3172 +vn 0.1761 0.9830 0.0525 +vn 0.3100 0.8987 0.3100 +vn 0.3255 0.9441 0.0530 +vn 0.4569 0.8084 0.3710 +vn 0.1765 0.9843 -0.0039 +vn 0.1763 0.9834 -0.0431 +vn 0.3162 0.9487 0.0039 +vn 0.4761 0.8767 0.0690 +vn 0.5746 0.6840 0.4495 +vn 0.3162 0.9487 -0.0039 +vn 0.3019 0.9527 -0.0353 +vn 0.4830 0.8756 0.0039 +vn 0.4982 0.8670 -0.0039 +vn 0.4672 0.8834 -0.0353 +vn 0.6002 0.7962 0.0767 +vn 0.6156 0.7881 0.0039 +vn 0.6605 0.7461 0.0843 +vn 0.6428 0.5571 0.5259 +vn 0.6543 0.7562 0.0039 +vn 0.6242 0.7812 -0.0039 +vn 0.6413 0.7672 -0.0118 +vn 0.5838 0.8111 -0.0353 +vn 0.5747 0.8172 -0.0430 +vn -0.5891 0.1463 -0.7947 +vn -0.5728 0.1699 -0.8019 +vn -0.5728 0.1698 -0.8019 +vn -0.5275 0.1467 -0.8368 +vn -0.5275 0.1468 -0.8368 +vn -0.5078 0.1614 -0.8463 +vn -0.5025 0.1543 -0.8507 +vn -0.4623 0.1539 -0.8732 +vn -0.4623 0.1538 -0.8733 +vn -0.4149 0.1936 -0.8890 +vn -0.4232 0.1701 -0.8899 +vn -0.4237 0.1622 -0.8912 +vn -0.4403 0.1616 -0.8832 +vn -0.4397 0.1624 -0.8833 +vn -0.7212 -0.1222 0.6818 +vn -0.7064 -0.1144 0.6985 +vn -0.7057 -0.1222 0.6978 +vn -0.7281 -0.1299 0.6730 +vn -0.7206 -0.1306 0.6810 +vn -0.7167 -0.1307 0.6850 +vn 0.0273 0.9084 0.4172 +vn 0.0513 -0.9977 0.0434 +vn 0.1857 -0.9678 0.1699 +vn 0.0355 -0.9994 0.0040 +vn 0.0276 -0.9996 0.0039 +vn 0.0277 -0.9996 0.0039 +vn 0.0277 -0.9996 0.0040 +vn 0.0197 -0.9998 0.0039 +vn 0.0355 -0.9993 -0.0119 +vn 0.0040 -1.0000 0.0039 +vn 0.0039 -0.9994 -0.0356 +vn 0.0039 -0.9998 -0.0198 +vn 0.0040 -0.9994 -0.0355 +vn -0.0276 -0.9995 -0.0118 +vn -0.0198 -0.9998 0.0039 +vn -0.0198 -0.9998 0.0040 +vn -0.0118 -0.9999 0.0040 +vn -0.0119 -0.9999 0.0039 +vn -0.0434 -0.9981 0.0434 +vn -0.1780 -0.9692 0.1701 +vn 0.0038 -1.0000 0.0038 +vn 0.0200 0.9974 -0.0686 +vn 0.0119 0.9922 -0.1238 +vn 0.0982 0.6716 -0.7344 +vn 0.1928 0.7750 -0.6019 +vn 0.0198 -0.1226 -0.9923 +vn 0.0039 -0.0356 -0.9994 +vn 0.0198 -0.1147 -0.9932 +vn -0.0119 -0.1148 -0.9933 +vn -0.0119 -0.1226 -0.9924 +vn 0.0039 0.9999 -0.0117 +vn 0.0040 -0.3186 0.9479 +vn 0.0038 -0.3186 0.9479 +vn -0.0615 0.2111 -0.9755 +vn -0.7566 -0.6536 -0.0198 +vn -0.7527 -0.6581 -0.0196 +vn 0.9998 -0.0216 -0.0045 +vn 0.9999 -0.0140 -0.0034 +vn 0.9784 -0.2004 -0.0511 +vn 0.9768 -0.2079 -0.0510 +vn -0.3136 -0.9496 0.0039 +vn 0.0039 -0.3326 0.9431 +vn 0.0040 -0.6328 0.7743 +vn 0.0039 -0.6328 0.7743 +vn 0.0039 -0.2783 0.9605 +vn -0.7150 -0.6992 0.0040 +vn 0.7599 -0.6497 -0.0197 +vn 0.7559 -0.6544 -0.0197 +vn -0.9998 -0.0216 -0.0048 +vn -0.9999 -0.0138 -0.0045 +vn -0.9780 -0.2020 -0.0515 +vn -0.9765 -0.2095 -0.0514 +vn 0.3207 -0.9472 0.0039 +vn 0.0039 0.0040 1.0000 +vn -0.9175 0.3977 0.0039 +vn -0.9479 0.3186 0.0039 +vn -0.9387 0.3446 0.0040 +vn -0.8089 0.5879 0.0039 +vn -0.9555 0.2949 -0.0039 +vn -0.8023 0.5968 0.0118 +vn -0.5700 0.8216 0.0039 +vn -0.7673 0.6413 0.0039 +vn -0.5519 0.8338 0.0118 +vn -0.5790 0.8153 0.0039 +vn -0.7846 0.6189 -0.0378 +vn -0.9226 0.3840 -0.0379 +vn -0.5095 0.3673 -0.7781 +vn -0.5888 0.2173 -0.7785 +vn -0.5698 0.8209 -0.0377 +vn -0.3983 0.5560 -0.7295 +vn -0.9659 0.2563 -0.0378 +vn -0.6145 0.1575 -0.7730 +vn -0.9715 0.2339 -0.0379 +vn -0.6226 0.1626 -0.7654 +vn -0.6375 0.1465 -0.7563 +vn -0.9767 0.2096 -0.0458 +vn -0.6582 0.0118 -0.7528 +vn -0.9727 0.2322 0.0040 +vn -0.9708 0.2397 0.0118 +vn -0.9992 0.0118 -0.0379 +vn -0.9996 -0.0276 0.0040 +vn -0.9612 -0.2731 -0.0379 +vn -0.6286 -0.1858 -0.7552 +vn -0.9495 -0.3138 0.0040 +vn -0.9619 -0.2731 -0.0119 +vn -0.8443 -0.5350 -0.0301 +vn -0.5506 -0.3526 -0.7566 +vn -0.8387 -0.5446 0.0040 +vn -0.9202 -0.3910 -0.0197 +vn -0.7264 -0.6867 -0.0301 +vn -0.4720 -0.4640 -0.7496 +vn -0.8540 -0.5203 0.0040 +vn -0.9133 -0.4072 0.0039 +vn -0.7304 -0.6830 0.0039 +vn -0.5591 -0.8285 -0.0300 +vn -0.3616 -0.5524 -0.7511 +vn -0.8446 -0.5353 0.0040 +vn -0.7267 -0.6870 0.0039 +vn -0.3678 -0.9294 -0.0300 +vn -0.2339 -0.5903 -0.7726 +vn -0.1225 -0.6443 -0.7549 +vn -0.5684 -0.8227 0.0040 +vn -0.1701 -0.9850 -0.0300 +vn 0.0040 -0.6621 -0.7494 +vn 0.0035 -0.9995 -0.0300 +vn -0.3748 -0.9271 0.0039 +vn -0.1702 -0.9854 0.0039 +vn -0.3680 -0.9298 0.0039 +vn -0.1702 -0.9854 0.0040 +vn -0.5647 -0.8253 0.0039 +vn -0.1778 -0.9840 -0.0039 +vn 0.0039 -1.0000 -0.0040 +vn -0.1776 -0.9841 -0.0048 +vn 0.0040 -1.0000 -0.0040 +vn -0.3680 -0.9298 0.0040 +vn -0.1854 -0.9827 -0.0040 +vn -0.1855 -0.9826 -0.0040 +vn 0.0039 -1.0000 -0.0039 +vn -0.5593 -0.8290 0.0040 +vn -0.7189 -0.6951 0.0039 +vn -0.8411 -0.5409 0.0039 +vn 0.9487 0.3161 0.0039 +vn 0.9187 0.3949 0.0039 +vn 0.9397 0.3421 0.0040 +vn 0.8116 0.5842 0.0039 +vn 0.9562 0.2927 -0.0039 +vn 0.8051 0.5930 0.0118 +vn 0.5753 0.8179 0.0040 +vn 0.9187 0.3948 0.0039 +vn 0.7704 0.6375 0.0039 +vn 0.5574 0.8302 0.0117 +vn 0.5842 0.8116 0.0039 +vn 0.7876 0.6151 -0.0376 +vn 0.9237 0.3812 -0.0377 +vn 0.5153 0.3658 -0.7750 +vn 0.5939 0.2163 -0.7749 +vn 0.5751 0.8173 -0.0375 +vn 0.4049 0.5542 -0.7272 +vn 0.9664 0.2543 -0.0375 +vn 0.6196 0.1539 -0.7696 +vn 0.9719 0.2322 -0.0377 +vn 0.6275 0.1618 -0.7616 +vn 0.6422 0.1458 -0.7525 +vn 0.9771 0.2080 -0.0454 +vn 0.6626 0.0117 -0.7489 +vn 0.9713 0.2377 0.0116 +vn 0.9992 0.0118 -0.0376 +vn 0.9996 -0.0274 0.0039 +vn 0.9618 -0.2710 -0.0377 +vn 0.6334 -0.1849 -0.7514 +vn 0.9625 -0.2711 -0.0118 +vn 0.8466 -0.5314 -0.0299 +vn 0.5560 -0.3511 -0.7534 +vn 0.8410 -0.5409 0.0040 +vn 0.9214 -0.3882 -0.0196 +vn 0.7301 -0.6827 -0.0299 +vn 0.4781 -0.4623 -0.7468 +vn 0.8561 -0.5168 0.0039 +vn 0.9146 -0.4043 0.0039 +vn 0.5644 -0.8249 -0.0300 +vn 0.3663 -0.5475 -0.7523 +vn 0.8469 -0.5318 0.0039 +vn 0.5790 -0.8153 0.0039 +vn 0.3745 -0.9267 -0.0299 +vn 0.2412 -0.5892 -0.7711 +vn 0.1303 -0.6436 -0.7542 +vn 0.5737 -0.8190 0.0039 +vn 0.1777 -0.9836 -0.0299 +vn 0.0044 -0.9995 -0.0300 +vn 0.3815 -0.9243 0.0039 +vn 0.1778 -0.9841 0.0039 +vn 0.3747 -0.9271 0.0039 +vn 0.5700 -0.8216 0.0039 +vn 0.1855 -0.9826 -0.0039 +vn 0.3748 -0.9271 0.0039 +vn 0.1931 -0.9812 -0.0039 +vn 0.5647 -0.8253 0.0040 +vn 0.5647 -0.8253 0.0039 +vn 0.7227 -0.6911 0.0040 +vn 0.8433 -0.5374 0.0039 +vn 0.7264 -0.6872 0.0039 +vn -0.9397 0.3185 0.1242 +vn -0.6724 0.2307 0.7033 +vn -0.6417 0.2402 0.7284 +vn -0.9373 0.3282 0.1169 +vn -0.6824 0.2406 0.6902 +vn -0.9446 0.3281 0.0040 +vn -0.6891 0.2244 0.6891 +vn -0.9447 0.3280 0.0039 +vn -0.6418 0.1850 0.7442 +vn -0.9447 0.3278 0.0038 +vn -0.9403 0.3101 0.1399 +vn -0.6827 -0.2801 0.6748 +vn -0.9447 0.3280 0.0040 +vn -0.9421 0.3351 0.0118 +vn -0.9446 0.3280 0.0118 +vn -0.9872 -0.0354 0.1557 +vn -0.6041 -0.4699 0.6436 +vn -0.9446 0.3281 0.0119 +vn -0.9446 0.3280 0.0119 +vn -0.9447 0.3280 -0.0060 +vn -0.9471 0.3209 0.0039 +vn -0.9522 0.3032 -0.0377 +vn -0.6981 0.2405 -0.6744 +vn -0.6926 0.2018 -0.6926 +vn -0.9470 0.3209 0.0118 +vn -0.9502 0.3115 0.0119 +vn -0.9478 0.3186 0.0118 +vn -0.9577 0.2877 0.0118 +vn -0.9555 0.2949 0.0039 +vn -0.9582 0.2800 0.0592 +vn -0.9361 0.3515 0.0119 +vn -0.9358 0.3036 0.1793 +vn -0.9502 0.3115 0.0118 +vn -0.9536 0.2967 0.0514 +vn -0.8809 0.3753 0.2884 +vn -0.9363 0.3287 0.1241 +vn -0.7864 0.3912 0.4781 +vn -0.7963 0.3648 0.4825 +vn -0.9332 0.3428 0.1081 +vn -0.9322 0.3341 0.1394 +vn -0.8045 0.2159 0.5533 +vn -0.8008 0.1144 0.5878 +vn -0.9993 0.0043 -0.0378 +vn -0.7528 0.0040 -0.6582 +vn -0.9999 0.0119 0.0040 +vn -0.9545 -0.2675 0.1322 +vn -0.9542 -0.2992 0.0039 +vn -0.9541 -0.2981 -0.0299 +vn -0.7423 -0.2445 -0.6239 +vn -0.1795 -0.9739 0.1392 +vn -0.0922 -0.8896 0.4473 +vn -0.1481 -0.9885 -0.0298 +vn -0.0854 -0.7964 -0.5987 +vn 0.0039 -0.9893 0.1458 +vn 0.0039 -0.9104 0.4138 +vn -0.0000 -0.9996 -0.0298 +vn 0.0039 -0.8061 -0.5917 +vn -0.1569 -0.9876 0.0039 +vn 0.8952 -0.4456 0.0039 +vn 0.8948 -0.4455 -0.0299 +vn 0.8789 -0.4769 0.0039 +vn 0.8780 -0.4765 -0.0455 +vn 0.6338 -0.3189 -0.7047 +vn 0.8051 -0.5931 0.0039 +vn 0.6276 -0.3434 -0.6987 +vn 0.8033 -0.5932 -0.0532 +vn 0.6911 -0.7227 0.0039 +vn 0.5708 -0.4213 -0.7047 +vn 0.6901 -0.7217 -0.0534 +vn 0.5409 -0.8411 0.0039 +vn 0.4929 -0.5087 -0.7059 +vn 0.5384 -0.8410 -0.0534 +vn 0.3827 -0.5957 -0.7062 +vn 0.3797 -0.9236 -0.0532 +vn 0.1702 -0.9854 0.0040 +vn 0.2727 -0.6521 -0.7074 +vn 0.1700 -0.9840 -0.0535 +vn 0.1228 -0.6938 -0.7096 +vn -0.0513 -0.9987 0.0039 +vn -0.0278 -0.7029 -0.7108 +vn -0.0513 -0.9973 -0.0534 +vn -0.1151 -0.6944 -0.7103 +vn -0.1722 -0.9846 -0.0299 +vn -0.9812 0.1931 0.0039 +vn -0.9599 0.2789 -0.0299 +vn -0.9577 0.2877 0.0039 +vn -0.9816 0.1853 -0.0455 +vn -0.6846 0.2018 -0.7004 +vn -0.6971 0.1300 -0.7051 +vn -0.7071 -0.0039 -0.7071 +vn -0.9986 -0.0040 -0.0535 +vn -0.9779 -0.2019 -0.0536 +vn -0.6923 -0.1385 -0.7082 +vn -0.9120 -0.4066 -0.0535 +vn -0.6461 -0.2814 -0.7095 +vn -0.8631 -0.5051 0.0040 +vn -0.6144 -0.3607 -0.7017 +vn -0.8627 -0.5049 -0.0301 +vn 0.8433 0.5374 0.0039 +vn 0.8914 0.4523 -0.0298 +vn 0.8920 0.4519 0.0039 +vn 0.8424 0.5369 -0.0453 +vn 0.6357 0.3277 -0.6989 +vn 0.7032 0.7110 0.0039 +vn 0.5939 0.3894 -0.7040 +vn 0.7022 0.7100 -0.0531 +vn 0.4989 0.5067 -0.7031 +vn 0.5512 0.8327 -0.0530 +vn 0.5520 0.8338 0.0039 +vn 0.3960 0.5921 -0.7019 +vn 0.3882 0.9216 0.0039 +vn 0.3877 0.9203 -0.0531 +vn 0.2713 0.6566 -0.7038 +vn 0.2007 0.9797 0.0039 +vn 0.1454 0.6956 -0.7035 +vn 0.2004 0.9783 -0.0533 +vn 0.0274 0.9996 0.0039 +vn 0.0196 0.7109 -0.7030 +vn 0.0274 0.9982 -0.0531 +vn -0.1293 0.9916 0.0039 +vn -0.0905 0.7042 -0.7042 +vn -0.1292 0.9902 -0.0530 +vn -0.3016 0.9520 -0.0531 +vn -0.3021 0.9533 0.0039 +vn -0.2088 0.6755 -0.7072 +vn -0.5548 0.8303 -0.0532 +vn -0.5556 0.8315 0.0039 +vn -0.3805 0.5924 -0.7101 +vn -0.4929 0.5087 -0.7059 +vn -0.6987 0.7144 -0.0378 +vn 0.6762 0.2306 0.6997 +vn 0.9407 0.3162 0.1233 +vn 0.6463 0.2390 0.7247 +vn 0.9383 0.3258 0.1160 +vn 0.9455 0.3256 0.0039 +vn 0.6866 0.2393 0.6866 +vn 0.9456 0.3254 0.0027 +vn 0.9383 0.3258 0.1161 +vn 0.6932 0.2232 0.6853 +vn 0.6464 0.1841 0.7404 +vn 0.9455 0.3257 0.0039 +vn 0.9430 0.3326 0.0118 +vn 0.9454 0.3256 0.0117 +vn 0.9412 0.3079 0.1389 +vn 0.6868 -0.2782 0.6715 +vn 0.9487 0.3162 0.0039 +vn 0.9874 -0.0351 0.1546 +vn 0.6091 -0.4677 0.6405 +vn 0.9522 0.3032 -0.0379 +vn 0.9552 -0.2655 0.1312 +vn 0.9455 0.3256 -0.0059 +vn 0.7021 0.2392 -0.6707 +vn 0.6966 0.2007 -0.6888 +vn 0.9479 0.3186 0.0039 +vn 0.9454 0.3256 0.0118 +vn 0.9478 0.3186 0.0118 +vn 0.9509 0.3091 0.0117 +vn 0.9486 0.3162 0.0117 +vn 0.9430 0.3326 0.0117 +vn 0.9371 0.3490 0.0118 +vn 0.9368 0.3014 0.1780 +vn 0.9583 0.2856 0.0116 +vn 0.9562 0.2927 0.0039 +vn 0.9588 0.2779 0.0587 +vn 0.8072 0.2145 0.5499 +vn 0.8037 0.1136 0.5841 +vn 0.9543 0.2945 0.0511 +vn 0.9332 0.3317 0.1384 +vn 0.7992 0.3625 0.4795 +vn 0.8827 0.3727 0.2864 +vn 0.9342 0.3403 0.1073 +vn 0.9372 0.3263 0.1232 +vn 0.7893 0.3888 0.4752 +vn 0.9510 0.3091 0.0117 +vn 0.9993 0.0043 -0.0376 +vn 0.7562 0.0039 -0.6543 +vn 0.9548 -0.2959 -0.0297 +vn 0.7458 -0.2431 -0.6203 +vn 0.9999 0.0118 0.0039 +vn 0.9549 -0.2970 0.0039 +vn 0.1559 -0.9873 -0.0298 +vn 0.0933 -0.7958 -0.5983 +vn 0.0039 -0.9995 -0.0299 +vn 0.0036 -0.8061 -0.5918 +vn 0.1646 -0.9864 0.0039 +vn 0.1870 -0.9725 0.1391 +vn 0.0988 -0.8892 0.4466 +vn 0.6948 0.0353 -0.7183 +vn 0.6911 0.0040 -0.7227 +vn 0.0849 -0.0000 -0.9964 +vn 0.0855 0.0441 -0.9954 +vn 0.7043 0.2872 -0.6492 +vn -0.0771 0.0039 -0.9970 +vn 0.0774 0.4222 -0.9032 +vn 0.7106 0.6939 -0.1160 +vn -0.0777 0.0442 -0.9960 +vn -0.6907 0.0355 -0.7223 +vn -0.6870 0.0040 -0.7267 +vn -0.7003 0.2888 -0.6528 +vn -0.0695 0.4224 -0.9037 +vn -0.7068 0.6978 -0.1165 +vn -0.0666 0.9834 -0.1685 +vn 0.0762 0.9825 -0.1699 +vn 0.0847 0.9930 0.0829 +vn 0.6940 0.7175 0.0588 +vn 0.6989 0.6208 0.3553 +vn -0.0768 0.9936 0.0829 +vn -0.6899 0.7215 0.0591 +vn -0.6948 0.6242 0.3572 +vn 0.0848 0.8672 0.4907 +vn -0.0770 0.8678 0.4909 +vn 0.0843 0.6768 0.7313 +vn 0.6863 0.4902 0.5373 +vn 0.7101 0.3413 0.6159 +vn -0.0765 0.6772 0.7318 +vn -0.6821 0.4929 0.5402 +vn -0.7061 0.3432 0.6194 +vn 0.0766 0.4806 0.8736 +vn 0.0843 0.0039 0.9964 +vn 0.6872 0.0039 0.7265 +vn -0.0688 0.4810 0.8740 +vn -0.0765 -0.0000 0.9971 +vn -0.6830 0.0040 0.7304 +vn -0.1771 0.8383 -0.5156 +vn -0.0512 0.8778 -0.4763 +vn -0.0909 0.8469 -0.5240 +vn -0.1382 0.8803 -0.4539 +vn -0.0905 0.9487 -0.3031 +vn -0.3738 0.8224 -0.4289 +vn -0.2320 0.9318 -0.2791 +vn -0.1062 0.9246 -0.3659 +vn -0.3654 0.8527 -0.3733 +vn -0.4939 0.8257 -0.2726 +vn -0.2251 0.8881 -0.4009 +vn -0.0826 0.7279 -0.6807 +vn -0.1462 0.6916 -0.7074 +vn -0.2962 0.5648 -0.7702 +vn -0.4620 0.8489 -0.2567 +vn -0.5112 0.7169 -0.4739 +vn -0.4211 0.7516 -0.5077 +vn -0.3533 0.4883 -0.7980 +vn 0.0590 0.8774 -0.4761 +vn 0.1847 0.8371 -0.5149 +vn 0.0984 0.8463 -0.5235 +vn 0.1459 0.8793 -0.4534 +vn 0.3805 0.8199 -0.4276 +vn 0.0983 0.9479 -0.3029 +vn 0.3722 0.8502 -0.3722 +vn 0.4998 0.8225 -0.2715 +vn 0.2394 0.9301 -0.2786 +vn 0.1140 0.9238 -0.3656 +vn 0.4682 0.8458 -0.2557 +vn 0.5170 0.7141 -0.4720 +vn 0.2324 0.8865 -0.4001 +vn 0.0904 0.7275 -0.6802 +vn 0.1539 0.6907 -0.7065 +vn 0.3034 0.5635 -0.7684 +vn 0.4275 0.7491 -0.5060 +vn 0.3602 0.4869 -0.7957 +vn 0.8291 -0.4597 -0.3182 +vn 0.7432 -0.4364 -0.5072 +vn 0.7680 -0.3899 -0.5081 +vn 0.8019 -0.5096 -0.3121 +vn 0.7154 -0.4861 -0.5019 +vn 0.8704 -0.4923 0.0040 +vn 0.7699 -0.5567 -0.3119 +vn 0.8116 -0.5842 0.0039 +vn 0.3262 0.7978 -0.5070 +vn 0.4019 0.8623 -0.3082 +vn 0.4275 0.7492 -0.5060 +vn 0.4762 0.8225 -0.3109 +vn 0.4203 0.9074 0.0039 +vn 0.5610 0.6551 -0.5061 +vn 0.4983 0.8670 0.0037 +vn 0.6780 0.6702 -0.3018 +vn 0.6477 0.5692 -0.5064 +vn 0.6069 0.7322 -0.3093 +vn 0.6459 0.7634 0.0039 +vn 0.3115 -0.9502 0.0039 +vn 0.0050 -0.9923 -0.1239 +vn 0.0059 -1.0000 0.0039 +vn 0.3110 -0.9412 -0.1318 +vn 0.0054 -0.9922 -0.1242 +vn 0.5318 -0.8469 0.0039 +vn 0.3110 -0.9412 -0.1322 +vn 0.5244 -0.8386 -0.1475 +vn 0.7048 -0.6970 -0.1322 +vn 0.5548 -0.8215 -0.1320 +vn 0.6889 -0.6811 -0.2480 +vn 0.7528 -0.6582 0.0039 +vn 0.7881 -0.6156 0.0039 +vn 0.8616 -0.5075 0.0039 +vn 0.8616 -0.5075 0.0040 +vn 0.9748 -0.2232 0.0039 +vn 0.9555 -0.2949 0.0039 +vn 0.9881 0.0430 -0.1475 +vn 0.9568 -0.1221 -0.2638 +vn 0.9651 0.2618 0.0039 +vn 0.9923 0.0039 -0.1239 +vn 0.9823 -0.1531 -0.1079 +vn 0.9554 0.2561 -0.1473 +vn 0.9881 -0.1535 0.0040 +vn 0.9494 0.2855 -0.1312 +vn 0.8889 0.4582 0.0039 +vn 0.8832 0.4501 -0.1317 +vn 0.8610 0.4443 -0.2477 +vn 0.8636 0.5041 0.0039 +vn 0.8278 0.5610 0.0039 +vn 0.6505 0.7595 0.0039 +vn 0.4889 0.8723 0.0039 +vn 0.4890 0.8723 0.0039 +vn 0.2306 0.9731 0.0039 +vn 0.2856 0.9584 0.0039 +vn -0.0587 0.9983 0.0039 +vn -0.0585 0.9885 -0.1396 +vn 0.1688 0.9541 -0.2474 +vn -0.0193 0.9921 -0.1238 +vn 0.1762 0.9755 -0.1315 +vn -0.0196 0.9998 0.0039 +vn -0.3017 0.9443 -0.1312 +vn -0.5842 0.8116 0.0039 +vn -0.3018 0.9443 -0.1316 +vn -0.5777 0.8056 -0.1315 +vn -0.5777 0.8055 -0.1320 +vn -0.7919 0.6106 0.0039 +vn -0.7590 0.6323 -0.1550 +vn -0.7823 0.6088 -0.1319 +vn -0.8827 0.4551 -0.1170 +vn -0.8904 0.4551 0.0039 +vn -0.8642 0.4459 -0.2329 +vn -0.9943 0.1070 0.0040 +vn -0.9951 -0.0991 0.0040 +vn -0.9204 -0.3911 0.0039 +vn -0.9413 -0.3376 0.0040 +vn -0.7711 -0.6367 0.0040 +vn -0.7628 -0.6276 -0.1558 +vn -0.8673 -0.4396 -0.2337 +vn -0.8858 -0.4489 -0.1174 +vn -0.8936 -0.4488 0.0039 +vn -0.7957 -0.6057 0.0040 +vn -0.7860 -0.6039 -0.1325 +vn -0.5826 -0.8018 -0.1328 +vn -0.3044 -0.9525 0.0039 +vn -0.5814 -0.8028 -0.1324 +vn -0.3044 -0.9526 0.0039 +vn -0.3040 -0.9434 -0.1325 +vn 0.0020 -1.0000 0.0039 +vn 0.0025 -0.9923 -0.1242 +vn -0.3040 -0.9435 -0.1321 +vn 0.0029 -0.9923 -0.1239 +vn 0.0058 -0.9999 0.0127 +vn 0.3753 -0.9047 0.2015 +vn 0.0059 -0.9797 0.2006 +vn 0.3910 -0.9203 0.0119 +vn 0.6966 -0.6888 0.2007 +vn 0.3910 -0.9204 0.0039 +vn 0.7110 -0.7031 0.0118 +vn 0.9243 -0.3815 0.0118 +vn 0.9088 -0.3659 0.2006 +vn 0.9243 -0.3815 0.0039 +vn 0.9800 0.0039 0.1991 +vn 0.9061 0.3727 0.2001 +vn 0.9215 0.3882 0.0118 +vn 0.9216 0.3882 0.0039 +vn 0.6929 0.6929 0.1996 +vn 0.7071 0.7071 0.0118 +vn 0.3882 0.9215 0.0118 +vn 0.3727 0.9061 0.2001 +vn 0.0039 0.9999 0.0118 +vn 0.0039 0.9800 0.1991 +vn -0.3659 0.9088 0.2006 +vn -0.3815 0.9243 0.0118 +vn -0.3815 0.9243 0.0039 +vn -0.6888 0.6966 0.2007 +vn -0.7031 0.7110 0.0118 +vn -0.9203 0.3910 0.0119 +vn -0.9047 0.3753 0.2015 +vn -0.9204 0.3911 0.0040 +vn -0.9999 0.0039 0.0119 +vn -0.9797 0.0039 0.2007 +vn -0.9074 -0.3685 0.2021 +vn -0.9231 -0.3843 0.0119 +vn -0.9232 -0.3843 0.0039 +vn -0.6926 -0.6926 0.2018 +vn -0.7071 -0.7071 0.0119 +vn -0.3843 -0.9231 0.0119 +vn -0.3685 -0.9074 0.2021 +vn -0.3843 -0.9232 0.0039 +vn 0.0021 -0.9999 0.0126 +vn 0.0020 -0.9797 0.2006 +vn -0.0039 -0.8410 0.5409 +vn -0.0277 -0.8735 0.4861 +vn -0.2866 -0.8346 0.4705 +vn -0.3496 -0.7858 0.5102 +vn -0.5346 -0.7644 0.3604 +vn 0.0039 -0.6582 0.7528 +vn -0.4743 -0.6338 0.6110 +vn -0.6594 -0.6515 0.3751 +vn -0.5847 -0.4138 0.6978 +vn -0.0039 -0.4581 0.8889 +vn -0.7299 -0.4379 0.5248 +vn -0.6608 -0.2159 0.7188 +vn -0.7607 -0.2404 0.6030 +vn -0.0039 -0.2545 0.9671 +vn -0.7656 -0.0667 0.6399 +vn -0.6640 -0.0513 0.7459 +vn -0.0039 -0.0665 0.9978 +vn -0.0039 0.1139 0.9935 +vn -0.6786 0.0906 0.7289 +vn -0.7782 0.0988 0.6202 +vn -0.0039 0.2928 0.9562 +vn -0.7497 0.2944 0.5927 +vn -0.6387 0.2244 0.7360 +vn 0.0039 0.4736 0.8807 +vn -0.6300 0.3889 0.6722 +vn -0.6867 0.5140 0.5140 +vn -0.0039 0.7032 0.7110 +vn -0.5274 0.6158 0.5853 +vn -0.6233 0.6390 0.4508 +vn -0.4419 0.6725 0.5937 +vn -0.0275 0.7559 0.6541 +vn -0.6494 0.6742 -0.3518 +vn -0.4130 0.8987 -0.1473 +vn -0.4525 0.7043 -0.5469 +vn -0.4302 0.8849 -0.1787 +vn -0.2153 0.9748 -0.0587 +vn -0.7199 0.6569 -0.2242 +vn -0.3053 0.9486 -0.0834 +vn -0.1930 0.9808 0.0276 +vn -0.7515 0.6571 -0.0590 +vn -0.2731 0.9619 0.0115 +vn -0.7701 0.6358 0.0513 +vn -0.2647 0.9594 0.0979 +vn -0.1844 0.9771 0.1059 +vn -0.7746 0.6094 0.1691 +vn -0.2646 0.9434 0.1998 +vn -0.1846 0.9622 0.2003 +vn -0.2719 0.9260 0.2620 +vn -0.7757 0.5867 0.2323 +vn -0.1843 0.9449 0.2705 +vn -0.2878 0.8407 0.4587 +vn -0.6416 0.4755 0.6019 +vn -0.1835 0.8705 0.4567 +vn -0.2865 0.6521 0.7019 +vn -0.4355 0.3884 0.8121 +vn -0.3341 0.7106 0.6192 +vn -0.2399 0.3815 0.8927 +vn -0.5145 -0.4619 0.7224 +vn 0.0039 -0.7110 0.7032 +vn -0.0509 -0.5367 0.8422 +vn -0.4467 -0.6206 0.6444 +vn 0.0039 -0.9577 0.2877 +vn -0.9109 -0.3352 0.2406 +vn -0.5646 -0.8059 0.1783 +vn 0.0038 -0.9640 -0.2658 +vn -0.8429 -0.5105 0.1702 +vn -0.6991 -0.6943 -0.1707 +vn 0.0037 -0.9640 -0.2659 +vn -0.8830 -0.4633 -0.0752 +vn -0.9545 -0.2970 0.0277 +vn -0.7157 -0.6792 -0.1630 +vn 0.0119 -0.9640 -0.2658 +vn -0.8741 -0.4786 -0.0831 +vn -0.9548 -0.2972 0.0040 +vn -0.7108 -0.6821 -0.1716 +vn 0.0040 -0.9640 -0.2658 +vn -0.8670 -0.4868 -0.1068 +vn -0.9590 -0.2802 -0.0434 +vn -0.8669 -0.4789 -0.1385 +vn -0.9572 -0.2582 -0.1311 +vn -0.6840 -0.7030 -0.1946 +vn -0.8742 -0.4549 -0.1701 +vn -0.9457 -0.2414 -0.2176 +vn -0.6503 -0.7324 -0.2019 +vn -0.0118 -0.9665 -0.2564 +vn -0.6403 -0.6961 -0.3248 +vn -0.8673 -0.1952 -0.4579 +vn -0.1158 -0.9150 -0.3865 +vn -0.3197 -0.4932 -0.8090 +vn 0.0356 -0.8732 0.4860 +vn 0.0118 -0.8410 0.5409 +vn 0.2938 -0.8327 0.4694 +vn 0.3564 -0.7837 0.5087 +vn 0.5403 -0.7611 0.3589 +vn 0.4804 -0.6315 0.6087 +vn 0.6638 -0.6481 0.3731 +vn 0.5898 -0.4119 0.6946 +vn 0.0117 -0.4581 0.8888 +vn 0.7336 -0.4355 0.5218 +vn 0.6652 -0.2148 0.7151 +vn 0.7639 -0.2390 0.5994 +vn 0.0117 -0.2545 0.9670 +vn 0.7689 -0.0668 0.6358 +vn 0.6684 -0.0510 0.7420 +vn 0.0117 -0.0665 0.9977 +vn 0.0118 0.1139 0.9934 +vn 0.6828 0.0901 0.7251 +vn 0.7813 0.0982 0.6164 +vn 0.0117 0.2927 0.9561 +vn 0.7531 0.2927 0.5892 +vn 0.6433 0.2233 0.7323 +vn 0.6347 0.3870 0.6689 +vn 0.6908 0.5113 0.5113 +vn 0.0118 0.7031 0.7110 +vn 0.5331 0.6133 0.5829 +vn 0.6281 0.6359 0.4486 +vn 0.4482 0.6701 0.5916 +vn 0.0352 0.7558 0.6539 +vn 0.4192 0.8959 -0.1469 +vn 0.6535 0.6709 -0.3505 +vn 0.4587 0.7018 -0.5450 +vn 0.4366 0.8819 -0.1782 +vn 0.7236 0.6532 -0.2229 +vn 0.2228 0.9731 -0.0586 +vn 0.3124 0.9463 -0.0832 +vn 0.7549 0.6532 -0.0587 +vn 0.2006 0.9793 0.0275 +vn 0.2804 0.9598 0.0114 +vn 0.7733 0.6320 0.0510 +vn 0.2719 0.9574 0.0977 +vn 0.1920 0.9757 0.1058 +vn 0.7777 0.6057 0.1680 +vn 0.2718 0.9415 0.1994 +vn 0.1922 0.9608 0.2000 +vn 0.2791 0.9240 0.2615 +vn 0.7786 0.5835 0.2310 +vn 0.1918 0.9435 0.2701 +vn 0.2949 0.8387 0.4578 +vn 0.6458 0.4736 0.5988 +vn 0.1910 0.8692 0.4561 +vn 0.2936 0.6506 0.7003 +vn 0.4418 0.3871 0.8093 +vn 0.3410 0.7088 0.6176 +vn 0.2473 0.3807 0.8910 +vn 0.5203 -0.4600 0.7195 +vn 0.0587 -0.5365 0.8419 +vn 0.4530 -0.6184 0.6421 +vn 0.9122 -0.3328 0.2388 +vn 0.5700 -0.8023 0.1775 +vn 0.0039 -0.9640 -0.2658 +vn 0.8452 -0.5071 0.1690 +vn 0.7031 -0.6905 -0.1698 +vn 0.8847 -0.4601 -0.0747 +vn 0.9552 -0.2948 0.0275 +vn 0.7195 -0.6753 -0.1620 +vn -0.0039 -0.9639 -0.2661 +vn 0.8760 -0.4753 -0.0825 +vn 0.7147 -0.6783 -0.1707 +vn 0.8689 -0.4835 -0.1061 +vn 0.9596 -0.2781 -0.0431 +vn 0.8688 -0.4756 -0.1376 +vn 0.9578 -0.2562 -0.1301 +vn 0.6882 -0.6992 -0.1936 +vn 0.8760 -0.4517 -0.1689 +vn 0.9465 -0.2400 -0.2155 +vn 0.6548 -0.7286 -0.2009 +vn 0.0197 -0.9664 -0.2564 +vn 0.6449 -0.6926 -0.3232 +vn 0.8693 -0.1939 -0.4547 +vn 0.1235 -0.9141 -0.3862 +vn 0.3267 -0.4920 -0.8069 +vn -0.6989 -0.5883 0.4067 +vn -0.2991 -0.8430 0.4470 +vn -0.6774 -0.6694 0.3050 +vn -0.2736 -0.7747 0.5701 +vn 0.0039 -0.8756 0.4830 +vn -0.7181 -0.4513 0.5298 +vn 0.0038 -0.8052 0.5930 +vn -0.2579 -0.6175 0.7431 +vn 0.0039 -0.6413 0.7672 +vn 0.0039 -0.5075 0.8616 +vn -0.2820 -0.4924 0.8234 +vn -0.7343 -0.3573 0.5772 +vn -0.2897 -0.3818 0.8777 +vn -0.7567 -0.2971 0.5824 +vn 0.0039 -0.3815 0.9243 +vn -0.1450 -0.3410 0.9288 +vn 0.0039 -0.3421 0.9397 +vn 0.0039 -0.3021 0.9533 +vn 0.0039 -0.2949 0.9555 +vn 0.0039 -0.3186 0.9479 +vn 0.0039 -0.5318 0.8469 +vn 0.0039 -0.7341 0.6791 +vn 0.0040 -0.8983 0.4393 +vn 0.0039 -0.9826 0.1855 +vn 0.0039 -0.9991 0.0434 +vn 0.0039 -0.9996 0.0277 +vn -0.0040 -0.9996 0.0277 +vn -0.0512 -0.9891 0.1379 +vn 0.0040 -0.9854 0.1702 +vn -0.1148 -0.9858 0.1227 +vn 0.0039 -0.9761 0.2173 +vn -0.0831 -0.9775 0.1939 +vn -0.1222 -0.9817 0.1459 +vn -0.1933 -0.9586 0.2091 +vn -0.1142 -0.9409 0.3189 +vn 0.0039 -0.9298 0.3680 +vn -0.1697 -0.9114 0.3749 +vn -0.2878 -0.9182 0.2721 +vn 0.0021 -0.7851 0.6193 +vn -0.2326 -0.7925 0.5638 +vn -0.3744 -0.8000 0.4689 +vn -0.2941 -0.6313 0.7176 +vn -0.4210 -0.6414 0.6414 +vn 0.0020 -0.6243 0.7812 +vn -0.4466 -0.4545 0.7707 +vn -0.3180 -0.4750 0.8205 +vn 0.0021 -0.5018 0.8650 +vn -0.4443 -0.2477 0.8610 +vn -0.3105 -0.2554 0.9156 +vn 0.0023 -0.2719 0.9623 +vn -0.4359 -0.2081 0.8756 +vn -0.3105 -0.2241 0.9238 +vn 0.0022 -0.2390 0.9710 +vn 0.0021 0.0664 0.9978 +vn -0.3180 0.0589 0.9463 +vn -0.4450 0.0512 0.8940 +vn 0.0020 0.2856 0.9583 +vn -0.3092 0.2700 0.9119 +vn -0.4442 0.2477 0.8610 +vn 0.0018 0.1137 0.9935 +vn -0.3021 0.1216 0.9455 +vn -0.4460 0.1618 0.8803 +vn -0.4361 -0.1689 0.8839 +vn -0.2943 -0.1844 0.9378 +vn 0.0020 -0.1931 0.9812 +vn -0.8205 0.1784 -0.5431 +vn -0.7019 0.2181 -0.6781 +vn -0.8231 0.1771 -0.5395 +vn -0.6594 0.2330 -0.7147 +vn -0.2402 0.2950 -0.9248 +vn -0.8406 0.1618 -0.5170 +vn -0.2246 0.3034 -0.9260 +vn 0.0039 0.3043 -0.9526 +vn -0.6512 0.2329 -0.7223 +vn -0.8339 0.1067 -0.5415 +vn 0.0039 0.3115 -0.9502 +vn -0.6445 0.1621 -0.7473 +vn -0.2005 0.3027 -0.9318 +vn -0.6533 0.0356 -0.7563 +vn -0.8252 0.0197 -0.5646 +vn -0.1933 0.2091 -0.9586 +vn 0.0040 0.3043 -0.9526 +vn 0.2321 0.3029 -0.9244 +vn 0.2474 0.2946 -0.9230 +vn 0.2080 0.3022 -0.9303 +vn 0.6639 0.2318 -0.7110 +vn 0.7059 0.2169 -0.6743 +vn 0.8231 0.1771 -0.5396 +vn 0.8256 0.1761 -0.5361 +vn 0.8429 0.1607 -0.5136 +vn 0.6557 0.2317 -0.7186 +vn 0.8363 0.1060 -0.5379 +vn 0.6490 0.1613 -0.7435 +vn 0.2009 0.2088 -0.9571 +vn 0.6578 0.0355 -0.7524 +vn 0.8277 0.0196 -0.5609 +vn 0.0040 0.2174 -0.9761 +vn 0.2017 0.0593 -0.9777 +vn 0.6604 -0.1305 -0.7395 +vn 0.8303 -0.1063 -0.5470 +vn 0.2009 -0.1693 -0.9649 +vn 0.0040 0.0592 -0.9982 +vn 0.6704 -0.3490 -0.6548 +vn 0.8404 -0.2565 -0.4774 +vn 0.0040 -0.1625 -0.9867 +vn -0.1944 0.0594 -0.9791 +vn -0.1933 -0.1697 -0.9664 +vn 0.0040 -0.4646 -0.8855 +vn 0.1936 -0.4623 -0.8653 +vn -0.6559 -0.1312 -0.7434 +vn -0.8279 -0.1069 -0.5506 +vn -0.1860 -0.4630 -0.8666 +vn -0.6661 -0.3508 -0.6582 +vn -0.8381 -0.2582 -0.4806 +vn 0.0039 -0.7227 -0.6911 +vn -0.1788 -0.7114 -0.6796 +vn -0.6710 -0.5360 -0.5122 +vn -0.8458 -0.3852 -0.3692 +vn -0.6853 -0.6457 -0.3367 +vn -0.8539 -0.4647 -0.2343 +vn -0.8475 -0.5243 -0.0828 +vn -0.1861 -0.8748 -0.4472 +vn -0.6680 -0.7312 -0.1383 +vn -0.8256 -0.5570 -0.0908 +vn -0.1863 -0.9631 -0.1942 +vn -0.6448 -0.7557 -0.1147 +vn -0.6229 -0.7578 -0.1944 +vn -0.7660 -0.6152 -0.1866 +vn -0.1862 -0.9783 -0.0911 +vn 0.0039 -0.8904 -0.4551 +vn 0.0039 -0.9812 -0.1931 +vn -0.1786 -0.9804 -0.0833 +vn 0.1937 -0.8735 -0.4466 +vn 0.0039 -0.9958 -0.0912 +vn 0.1939 -0.9617 -0.1939 +vn 0.1938 -0.9768 -0.0910 +vn 0.0039 -0.9972 -0.0749 +vn 0.1863 -0.9790 -0.0833 +vn 0.6494 -0.7518 -0.1141 +vn 0.6277 -0.7541 -0.1934 +vn 0.6723 -0.7274 -0.1376 +vn 0.8280 -0.5534 -0.0903 +vn 0.7693 -0.6115 -0.1854 +vn 0.8497 -0.5208 -0.0822 +vn 0.5017 -0.8098 -0.3042 +vn 0.6420 -0.6735 -0.3663 +vn 0.4059 -0.7133 -0.5714 +vn 0.6895 -0.6422 -0.3349 +vn 0.8560 -0.4615 -0.2327 +vn 0.8480 -0.3826 -0.3668 +vn 0.1865 -0.7104 -0.6786 +vn 0.6754 -0.5332 -0.5095 +vn 0.2649 -0.8740 -0.4073 +vn 0.0040 -0.7419 -0.6705 +vn 0.1070 -0.9866 -0.1228 +vn 0.0040 -0.8936 -0.4488 +vn -0.2576 -0.8758 -0.4082 +vn -0.3993 -0.7155 -0.5732 +vn 0.0039 -0.9925 -0.1226 +vn -0.4957 -0.8130 -0.3054 +vn -0.6374 -0.6769 -0.3682 +vn -0.0991 -0.9874 -0.1230 +vn -0.1540 -0.9831 -0.0987 +vn 0.0039 -0.9951 -0.0991 +vn 0.1617 -0.9819 -0.0986 +vn 0.3063 -0.8410 0.4459 +vn 0.7029 -0.5851 0.4044 +vn 0.6816 -0.6659 0.3034 +vn 0.2808 -0.7730 0.5689 +vn 0.7219 -0.4489 0.5267 +vn 0.2652 -0.6162 0.7416 +vn 0.2892 -0.4912 0.8216 +vn 0.7379 -0.3553 0.5739 +vn 0.2969 -0.3810 0.8756 +vn 0.7600 -0.2954 0.5789 +vn 0.0039 -0.3816 0.9243 +vn 0.1527 -0.3406 0.9277 +vn 0.0039 -0.9990 0.0434 +vn 0.0040 -0.9990 0.0434 +vn 0.0040 -0.9996 0.0277 +vn 0.0119 -0.9995 0.0277 +vn 0.0591 -0.9887 0.1379 +vn 0.1226 -0.9849 0.1226 +vn 0.0910 -0.9768 0.1938 +vn 0.1300 -0.9808 0.1457 +vn 0.2008 -0.9571 0.2087 +vn 0.1219 -0.9400 0.3186 +vn 0.0040 -0.9298 0.3680 +vn 0.1773 -0.9102 0.3743 +vn 0.2949 -0.9162 0.2713 +vn 0.0058 -0.7851 0.6193 +vn 0.2401 -0.7910 0.5628 +vn 0.3811 -0.7976 0.4675 +vn 0.3012 -0.6299 0.7159 +vn 0.4275 -0.6392 0.6392 +vn 0.0058 -0.6243 0.7812 +vn 0.4529 -0.4529 0.7680 +vn 0.3250 -0.4738 0.8184 +vn 0.0058 -0.5018 0.8650 +vn 0.4505 -0.2468 0.8580 +vn 0.3175 -0.2548 0.9134 +vn 0.0056 -0.2719 0.9623 +vn 0.4422 -0.2074 0.8726 +vn 0.3176 -0.2235 0.9215 +vn 0.0056 -0.2390 0.9710 +vn 0.0058 0.0665 0.9978 +vn 0.3250 0.0587 0.9439 +vn 0.4513 0.0510 0.8909 +vn 0.0058 0.2856 0.9583 +vn 0.3162 0.2694 0.9096 +vn 0.4505 0.2468 0.8580 +vn 0.0061 0.1137 0.9935 +vn 0.3092 0.1213 0.9432 +vn 0.4523 0.1612 0.8771 +vn 0.4424 -0.1684 0.8809 +vn 0.3014 -0.1840 0.9356 +vn 0.0059 -0.1931 0.9812 +vn -0.9386 0.3445 -0.0198 +vn -0.9446 0.3276 -0.0202 +vn -0.9854 0.1702 0.0040 +vn -0.8800 0.4750 0.0039 +vn -0.9826 0.1855 0.0039 +vn -0.8538 0.5206 0.0039 +vn -0.2419 0.9703 0.0039 +vn 0.2493 0.9684 0.0038 +vn 0.2493 0.9684 0.0039 +vn 0.8559 0.5171 0.0039 +vn 0.8818 0.4717 0.0043 +vn 0.9815 0.1916 0.0039 +vn 0.9856 0.1689 0.0039 +vn 0.7354 -0.6777 0.0039 +vn 0.9395 0.3420 -0.0196 +vn 0.8267 -0.5626 0.0039 +vn 0.9869 0.1612 0.0039 +vn 0.8818 0.4717 0.0039 +vn 0.8593 0.5114 0.0045 +vn 0.7907 -0.6122 0.0040 +vn -0.8572 0.5149 0.0039 +vn -0.9867 0.1625 0.0040 +vn -0.9777 0.2098 0.0039 +vn -0.9708 0.2398 0.0039 +vn -0.9840 0.1779 0.0039 +vn -0.2420 0.9703 0.0039 +vn 0.9843 0.1765 0.0039 +vn 0.8205 -0.5716 0.0039 +vn 0.9883 0.1524 0.0039 +vn 0.8817 0.4717 0.0039 +vn 0.8694 -0.4940 0.0039 +vn -0.8573 0.5149 0.0039 +vn -0.9881 0.1535 0.0039 +vn -0.9708 0.2397 0.0039 +vn -0.8704 0.4923 0.0039 +vn -0.8616 0.5075 0.0039 +vn -0.7304 0.6830 0.0040 +vn -0.8822 0.4708 0.0040 +vn 0.8723 0.4889 0.0039 +vn 0.8723 0.4890 0.0039 +vn 0.7341 0.6791 0.0039 +vn 0.7340 0.6791 0.0039 +vn 0.8840 0.4675 0.0039 +vn 0.0039 0.9942 -0.1079 +vn 0.0039 0.9942 -0.1075 +vn 0.0038 0.9923 -0.1234 +vn 0.0039 0.9781 -0.2082 +vn 0.0039 0.9843 -0.1765 +vn 0.0040 0.0039 -1.0000 +vn 0.7140 -0.0513 -0.6982 +vn 0.7151 -0.1462 -0.6835 +vn 0.9783 -0.1926 -0.0768 +vn 0.9958 -0.0748 -0.0534 +vn 0.9812 -0.1931 0.0039 +vn 0.9972 -0.0743 0.0039 +vn 0.9912 0.1216 -0.0531 +vn 0.7120 0.0905 -0.6963 +vn 0.9926 0.1216 0.0039 +vn 0.9597 0.2703 -0.0767 +vn 0.6899 0.1932 -0.6977 +vn 0.9625 0.2711 0.0039 +vn -0.7343 -0.6788 0.0040 +vn -0.7508 -0.6550 -0.0857 +vn -0.7259 -0.6862 -0.0459 +vn -0.6705 -0.7419 0.0039 +vn -0.5194 -0.4876 -0.7018 +vn -0.5338 -0.4626 -0.7078 +vn -0.6612 -0.7483 -0.0536 +vn -0.5501 -0.8351 0.0039 +vn -0.4708 -0.5262 -0.7082 +vn -0.5438 -0.8375 -0.0537 +vn -0.3845 -0.5906 -0.7095 +vn -0.4233 -0.9060 0.0039 +vn -0.2977 -0.6467 -0.7023 +vn -0.4162 -0.9077 -0.0537 +vn -0.3600 -0.9297 -0.0774 +vn -0.3611 -0.9325 0.0040 +vn -0.2568 -0.6754 -0.6913 +vn -0.0767 0.5684 0.8192 +vn -0.5849 0.7875 0.1942 +vn -0.5848 0.4670 0.6633 +vn -0.0836 0.9651 0.2482 +vn 0.0845 0.5680 0.8187 +vn -0.0922 0.9841 0.1519 +vn -0.5918 0.7956 0.1293 +vn -0.5943 0.7675 -0.2401 +vn 0.0913 0.9645 0.2480 +vn -0.0846 0.9363 -0.3409 +vn 0.5900 0.7839 0.1934 +vn 0.5899 0.4648 0.6603 +vn -0.6034 0.4378 -0.6665 +vn 0.1000 0.9833 0.1518 +vn 0.5969 0.7919 0.1287 +vn 0.5994 0.7639 -0.2390 +vn 0.0924 0.9356 -0.3406 +vn 0.6084 0.4357 -0.6633 +vn -0.0932 0.5571 -0.8252 +vn 0.1010 0.5567 -0.8245 +vn -0.0857 -0.0438 -0.9954 +vn -0.5888 -0.0988 -0.8022 +vn -0.5754 -0.6610 -0.4816 +vn 0.0936 -0.0437 -0.9947 +vn 0.5939 -0.0984 -0.7985 +vn 0.5806 -0.6581 -0.4795 +vn -0.0850 -0.7783 -0.6221 +vn 0.0927 -0.7777 -0.6217 +vn 0.1092 -0.8372 -0.5360 +vn 0.5869 -0.6814 -0.4372 +vn -0.1013 -0.8379 -0.5364 +vn -0.5817 -0.6846 -0.4392 +vn 0.1169 -0.6142 -0.7804 +vn 0.5953 -0.4928 -0.6347 +vn 0.5813 -0.0768 -0.8101 +vn -0.1091 -0.6147 -0.7811 +vn -0.5901 -0.4951 -0.6377 +vn -0.5761 -0.0772 -0.8138 +vn -0.1083 -0.0760 -0.9912 +vn -0.5912 -0.1251 -0.7967 +vn 0.1161 -0.0760 -0.9903 +vn 0.5963 -0.1246 -0.7931 +vn -0.0853 -0.1800 -0.9800 +vn -0.5901 -0.5425 -0.5979 +vn -0.0852 -0.6686 -0.7387 +vn 0.0931 -0.6683 -0.7381 +vn 0.0932 -0.1799 -0.9793 +vn 0.5952 -0.5399 -0.5951 +vn 0.3872 0.3953 0.8329 +vn 0.7946 0.0195 0.6068 +vn 0.7666 0.2762 0.5797 +vn 0.3256 0.0118 0.9454 +vn -0.3805 0.3962 0.8356 +vn 0.3172 -0.3093 0.8965 +vn 0.7261 -0.2080 0.6554 +vn -0.3186 0.0118 0.9478 +vn -0.7633 0.2779 0.5832 +vn -0.7917 0.0197 0.6105 +vn -0.3105 -0.3099 0.8986 +vn -0.7223 -0.2092 0.6592 +vn -0.3176 -0.1451 0.9371 +vn -0.7231 -0.0988 0.6836 +vn 0.3246 -0.1447 0.9347 +vn 0.7270 -0.0981 0.6796 +vn -0.3113 0.0433 0.9493 +vn -0.7182 0.0431 0.6945 +vn -0.7038 0.1769 0.6880 +vn 0.3183 0.0432 0.9470 +vn 0.7217 0.0426 0.6909 +vn 0.7077 0.1759 0.6843 +vn -0.2947 0.2474 0.9230 +vn -0.6877 0.3419 0.6405 +vn 0.3017 0.2469 0.9209 +vn 0.6918 0.3400 0.6371 +vn -0.2786 0.4591 0.8436 +vn -0.6449 0.4338 0.6292 +vn -0.2079 0.5453 0.8120 +vn 0.2154 0.5444 0.8107 +vn 0.2858 0.4580 0.8417 +vn 0.6500 0.4295 0.6269 +vn 0.6221 0.1369 0.7709 +vn 0.9218 0.0745 0.3805 +vn 0.8907 0.1923 0.4119 +vn 0.4691 0.0436 0.8821 +vn -0.5610 0.0119 0.8277 +vn 0.3588 -0.0916 0.9289 +vn 0.8811 -0.1863 0.4346 +vn 0.1092 -0.8432 0.5263 +vn -0.0212 0.0678 0.9975 +vn -0.3499 0.6851 0.6389 +vn -0.8983 0.0119 0.4392 +vn 0.0275 -0.1293 0.9912 +vn 0.0040 -0.8351 0.5501 +vn 0.0039 -0.1085 0.9941 +vn 0.0022 0.1006 0.9949 +vn 0.0037 0.8186 0.5744 +vn 0.0039 0.9978 -0.0666 +vn 0.0039 0.9978 -0.0665 +vn 0.0039 0.9957 -0.0926 +vn 0.0039 0.9282 -0.3721 +vn 0.0039 0.9243 -0.3815 +vn -0.0119 0.0119 -0.9999 +vn -0.0434 0.0118 -0.9990 +vn 0.0198 0.0119 -0.9997 +vn 0.0198 0.0118 -0.9997 +vn 0.0513 0.0118 -0.9986 +vn 0.0198 -0.8538 -0.5202 +vn 0.0040 -0.8127 -0.5827 +vn 0.0040 -0.9998 -0.0219 +vn 0.0039 -0.9998 -0.0219 +vn -0.0119 -0.8539 -0.5203 +vn 0.0039 -0.9998 -0.0220 +vn -0.8890 0.1936 0.4149 +vn -0.9206 0.0751 0.3832 +vn -0.6173 0.1376 0.7746 +vn -0.4630 0.0437 0.8853 +vn 0.5663 0.0117 0.8241 +vn -0.3519 -0.0919 0.9315 +vn -0.8794 -0.1876 0.4376 +vn -0.1013 -0.8439 0.5268 +vn 0.0290 0.0679 0.9973 +vn 0.3568 0.6832 0.6372 +vn 0.8998 0.0118 0.4361 +vn -0.0196 -0.1294 0.9914 +vn 0.0039 0.1006 0.9949 +vn 0.0039 0.8179 0.5753 +vn -0.0745 -0.0981 0.9924 +vn -0.6000 -0.1141 0.7918 +vn -0.6246 -0.0750 0.7773 +vn -0.6483 -0.1065 0.7539 +vn -0.8741 -0.0831 0.4785 +vn -0.8842 -0.0825 0.4598 +vn -0.9030 -0.1144 0.4141 +vn -0.9968 -0.0434 0.0670 +vn -0.9947 -0.0277 0.0991 +vn -0.9962 -0.0437 0.0754 +vn -0.9979 -0.0373 0.0533 +vn -0.9976 -0.0356 0.0591 +vn -0.9961 -0.0278 0.0833 +vn -0.9999 -0.0119 -0.0040 +vn -0.9989 -0.0197 0.0434 +vn -0.9952 -0.0357 0.0912 +vn -0.9956 -0.0199 0.0912 +vn -0.9964 -0.0197 0.0827 +vn -0.9999 -0.0119 -0.0039 +vn -0.9947 0.0277 -0.0991 +vn -0.9982 -0.0118 0.0592 +vn -0.9987 0.0040 0.0513 +vn -0.9986 0.0118 0.0513 +vn -0.9607 0.0830 -0.2649 +vn -0.9990 -0.0118 0.0434 +vn -0.8620 -0.1220 0.4919 +vn -0.9531 0.0910 -0.2887 +vn -0.8485 0.1625 -0.5037 +vn -0.9956 0.0436 -0.0833 +vn -0.3923 0.2813 -0.8758 +vn -0.3923 0.2814 -0.8758 +vn -0.3923 0.2814 -0.8757 +vn -0.9574 0.0913 -0.2741 +vn -0.8519 0.1631 -0.4977 +vn -0.9944 0.0357 -0.0991 +vn -0.8584 0.1550 -0.4890 +vn -0.8265 0.1708 -0.5364 +vn -0.9494 0.0993 -0.2979 +vn -0.9574 0.0914 -0.2741 +vn -0.9925 0.0435 -0.1146 +vn -0.9994 -0.0040 0.0355 +vn -0.9994 -0.0040 0.0356 +vn -0.9918 -0.0356 0.1225 +vn -0.9850 -0.0594 0.1622 +vn -0.8780 -0.1299 0.4606 +vn -0.9441 -0.1067 0.3120 +vn -0.7608 -0.1861 0.6217 +vn -0.5551 -0.2176 0.8028 +vn -0.5604 -0.2167 0.7994 +vn -0.1143 -0.2641 0.9577 +vn -0.0668 -0.2632 0.9624 +vn -0.0746 -0.2630 0.9619 +vn 0.0823 -0.0980 0.9918 +vn 0.6050 -0.1136 0.7881 +vn 0.6293 -0.0747 0.7735 +vn 0.6528 -0.1059 0.7501 +vn 0.8760 -0.0825 0.4753 +vn 0.8859 -0.0820 0.4566 +vn 0.9045 -0.1135 0.4111 +vn 0.9969 -0.0430 0.0665 +vn 0.9948 -0.0275 0.0983 +vn 0.9963 -0.0433 0.0748 +vn 0.9979 -0.0373 0.0533 +vn 0.9977 -0.0355 0.0586 +vn 0.9962 -0.0276 0.0827 +vn 0.9999 -0.0118 -0.0039 +vn 0.9989 -0.0196 0.0431 +vn 0.9953 -0.0354 0.0905 +vn 0.9957 -0.0197 0.0905 +vn 0.9964 -0.0195 0.0821 +vn 0.9999 -0.0118 -0.0038 +vn 0.9948 0.0275 -0.0983 +vn 0.9982 -0.0117 0.0587 +vn 0.9987 0.0039 0.0509 +vn 0.9986 0.0117 0.0509 +vn 0.9613 0.0824 -0.2629 +vn 0.9538 0.0903 -0.2865 +vn 0.8506 0.1615 -0.5003 +vn 0.9956 0.0433 -0.0827 +vn 0.3990 0.2805 -0.8730 +vn 0.8507 0.1614 -0.5003 +vn 0.9580 0.0907 -0.2720 +vn 0.8540 0.1621 -0.4944 +vn 0.3990 0.2804 -0.8730 +vn 0.9945 0.0354 -0.0983 +vn 0.8605 0.1540 -0.4857 +vn 0.8289 0.1697 -0.5330 +vn 0.9502 0.0986 -0.2957 +vn 0.9926 0.0432 -0.1138 +vn 0.9994 -0.0039 0.0353 +vn 0.9920 -0.0353 0.1215 +vn 0.9990 -0.0118 0.0431 +vn 0.9852 -0.0589 0.1609 +vn 0.8640 -0.1212 0.4887 +vn 0.8798 -0.1290 0.4575 +vn 0.9449 -0.1059 0.3098 +vn 0.7641 -0.1850 0.6180 +vn 0.5605 -0.2166 0.7993 +vn 0.5657 -0.2157 0.7959 +vn 0.1221 -0.2638 0.9568 +vn 0.0746 -0.2631 0.9619 +vn 0.0824 -0.2629 0.9613 +vn 0.1482 0.2090 -0.9666 +vn 0.0040 0.2491 -0.9685 +vn 0.1402 0.2488 -0.9583 +vn 0.0040 0.5501 -0.8351 +vn 0.7115 0.1769 -0.6801 +vn 0.7113 0.1454 -0.6877 +vn 0.1479 0.5476 -0.8236 +vn 0.7112 0.3890 -0.5855 +vn 0.0039 0.8920 -0.4519 +vn 0.1627 0.8425 -0.5136 +vn 0.7202 0.5942 -0.3581 +vn 0.6860 0.6547 -0.3175 +vn 0.1392 0.9354 -0.3251 +vn 0.0040 0.9502 -0.3115 +vn 0.0039 0.9510 -0.3092 +vn 0.1547 0.9117 -0.3806 +vn 0.6317 0.6003 -0.4904 +vn 0.5003 0.5239 -0.6894 +vn 0.1230 0.8798 -0.4592 +vn 0.2794 0.4683 -0.8382 +vn 0.0039 0.9422 -0.3351 +vn 0.0443 0.8771 -0.4783 +vn 0.0039 0.4298 -0.9029 +vn 0.0039 0.9397 -0.3421 +vn 0.0039 0.8779 -0.4789 +vn -0.0365 0.8774 -0.4784 +vn -0.2721 0.4693 -0.8401 +vn -0.1153 0.8806 -0.4596 +vn -0.4943 0.5260 -0.6921 +vn -0.1471 0.9128 -0.3810 +vn -0.6270 0.6033 -0.4929 +vn 0.0039 0.8921 -0.4519 +vn -0.6818 0.6582 -0.3192 +vn -0.1316 0.9364 -0.3255 +vn -0.1550 0.8435 -0.5142 +vn -0.7161 0.5978 -0.3603 +vn -0.7073 0.3912 -0.5888 +vn -0.1402 0.5482 -0.8245 +vn -0.7076 0.1779 -0.6839 +vn -0.1325 0.2491 -0.9594 +vn 0.0039 0.2491 -0.9685 +vn -0.1405 0.2093 -0.9677 +vn -0.7074 0.1463 -0.6915 +vn 0.1305 -0.6217 -0.7723 +vn 0.0040 0.1907 -0.9816 +vn 0.0433 -0.6361 -0.7704 +vn 0.2488 0.1777 -0.9521 +vn 0.2803 -0.6040 -0.7461 +vn 0.4909 0.1746 -0.8535 +vn 0.2404 0.2641 -0.9341 +vn 0.0039 0.2731 -0.9620 +vn 0.4923 0.2324 -0.8388 +vn -0.0672 -0.9920 0.1067 +vn -0.0118 -0.9684 -0.2490 +vn -0.0198 -0.9720 -0.2341 +vn -0.1069 -0.9929 0.0516 +vn -0.0197 -0.9664 -0.2564 +vn -0.1144 -0.8484 0.5169 +vn -0.2258 -0.8436 0.4872 +vn -0.5158 -0.8416 -0.1601 +vn -0.6898 -0.7152 -0.1126 +vn -0.0121 -0.9665 -0.2562 +vn -0.7170 -0.6530 -0.2439 +vn -0.3539 -0.8683 -0.3475 +vn -0.0107 -0.9124 -0.4092 +vn -0.0123 -0.9665 -0.2565 +vn -0.1164 -0.5812 -0.8054 +vn -0.3521 -0.2888 -0.8903 +vn -0.1227 -0.2098 -0.9700 +vn -0.0364 -0.5425 -0.8393 +vn -0.0201 -0.5334 -0.8456 +vn -0.0674 -0.1942 -0.9787 +vn 0.0039 0.1907 -0.9816 +vn -0.1229 -0.6224 -0.7730 +vn -0.0356 -0.6363 -0.7706 +vn -0.2414 0.1781 -0.9539 +vn -0.2730 -0.6053 -0.7477 +vn -0.4852 0.1752 -0.8566 +vn -0.2330 0.2646 -0.9358 +vn -0.4863 0.2331 -0.8421 +vn 0.0751 -0.9915 0.1067 +vn 0.0277 -0.9718 -0.2340 +vn 0.0198 -0.9683 -0.2490 +vn 0.1146 -0.9921 0.0514 +vn 0.0276 -0.9662 -0.2563 +vn 0.2332 -0.8421 0.4863 +vn 0.1222 -0.8476 0.5164 +vn 0.5215 -0.8382 -0.1595 +vn 0.6939 -0.7113 -0.1119 +vn 0.7208 -0.6493 -0.2425 +vn 0.3607 -0.8659 -0.3465 +vn 0.0196 -0.9123 -0.4092 +vn 0.1241 -0.5806 -0.8047 +vn 0.3591 -0.2880 -0.8878 +vn 0.1303 -0.2099 -0.9690 +vn 0.0442 -0.5423 -0.8390 +vn 0.0279 -0.5333 -0.8455 +vn 0.0752 -0.1940 -0.9781 +vn 0.0039 0.9993 -0.0371 +vn 0.0039 0.9996 -0.0292 +vn 0.0039 0.8670 -0.4982 +vn 0.0039 0.7672 -0.6413 +vn 0.0039 0.7379 -0.6748 +vn 0.0039 0.7380 -0.6748 +vn 0.0196 0.6871 -0.7263 +vn -0.0118 0.6871 -0.7264 +vn 0.0512 0.6099 -0.7908 +vn -0.0433 0.6101 -0.7912 +vn 0.0511 0.6011 -0.7975 +vn -0.0432 0.6013 -0.7978 +vn 0.0039 0.6156 -0.7881 +vn 0.0039 0.2638 -0.9646 +vn 0.0040 -0.0355 -0.9994 +vn 0.0039 0.3653 -0.9309 +vn 0.0039 0.9704 -0.2414 +vn 0.0039 0.9744 -0.2247 +vn 0.0039 0.9685 0.2488 +vn 0.0039 0.9686 0.2487 +vn 0.0039 0.2949 0.9555 +vn 0.0039 0.3721 0.9282 +vn 0.0039 0.1293 0.9916 +vn 0.0118 0.1293 0.9915 +vn -0.0039 0.1293 0.9916 +vn 0.0039 0.4173 0.9088 +vn 0.0117 0.4948 0.8689 +vn -0.0039 0.4949 0.8690 +vn 0.0039 0.9481 0.3178 +vn 0.0039 0.9667 0.2561 +vn 0.0038 0.9667 0.2561 +vn 0.0039 0.9666 -0.2562 +vn 0.0039 0.9667 -0.2560 +vn 0.0039 0.3748 -0.9271 +vn 0.0040 0.2972 -0.9548 +vn 0.0039 0.9685 -0.2488 +vn 0.0039 0.9686 -0.2487 +vn 0.0039 0.9666 0.2561 +vn 0.0039 0.9666 0.2562 +vn 0.0039 0.3882 0.9216 +vn 0.0039 -0.4524 0.8918 +vn 0.0039 -0.4362 0.8999 +vn 0.0039 -0.4675 0.8840 +vn 0.0039 -0.4519 0.8920 +vn 0.0117 -0.4267 0.9043 +vn -0.0039 -0.4267 0.9044 +vn 0.0039 -0.3882 0.9216 +vn 0.0118 -0.3977 0.9175 +vn -0.0039 -0.3977 0.9175 +vn 0.0117 -0.2638 0.9645 +vn -0.0040 -0.2638 0.9646 +vn 0.0039 -0.2006 0.9797 +vn 0.1140 0.8296 -0.5465 +vn 0.2618 0.9651 0.0018 +vn 0.1370 0.9906 0.0017 +vn 0.1370 0.9906 0.0039 +vn 0.2158 0.8045 -0.5534 +vn 0.2618 0.9651 0.0039 +vn 0.4982 0.8670 0.0018 +vn 0.4114 0.7249 -0.5525 +vn 0.5041 0.8636 0.0039 +vn 0.7071 0.7071 0.0018 +vn 0.5926 0.5926 -0.5455 +vn 0.7256 0.4197 -0.5453 +vn 0.8678 0.4969 0.0018 +vn 0.8107 0.2154 -0.5444 +vn 0.9651 0.2618 0.0018 +vn 0.8410 0.0040 -0.5409 +vn 1.0000 0.0039 0.0018 +vn 0.9671 -0.2545 0.0018 +vn 0.8155 -0.2088 -0.5397 +vn 0.9671 -0.2545 0.0039 +vn 0.8704 -0.4924 0.0019 +vn 0.7348 -0.4126 -0.5383 +vn 0.8670 -0.4982 0.0039 +vn 0.7110 -0.7032 0.0018 +vn 0.6027 -0.5949 -0.5318 +vn 0.4232 -0.7317 -0.5344 +vn 0.5017 -0.8651 0.0019 +vn 0.5075 -0.8616 0.0039 +vn 0.2173 -0.8176 -0.5332 +vn 0.2637 -0.9646 0.0018 +vn 0.1147 -0.8426 -0.5261 +vn 0.1381 -0.9904 0.0039 +vn 0.1381 -0.9904 0.0017 +vn -0.2545 0.9671 0.0018 +vn -0.1063 0.8304 -0.5470 +vn -0.1309 0.9914 0.0017 +vn -0.2083 0.8058 -0.5543 +vn -0.2545 0.9671 0.0039 +vn -0.4924 0.8704 0.0018 +vn -0.4049 0.7272 -0.5543 +vn -0.4982 0.8670 0.0039 +vn -0.7032 0.7110 0.0018 +vn -0.5875 0.5954 -0.5481 +vn -0.7219 0.4221 -0.5483 +vn -0.8651 0.5017 0.0019 +vn -0.8079 0.2168 -0.5479 +vn -0.9646 0.2638 0.0018 +vn -0.9646 0.2638 0.0039 +vn -0.8387 0.0040 -0.5446 +vn -1.0000 0.0039 0.0019 +vn -0.9666 -0.2564 0.0019 +vn -0.8128 -0.2103 -0.5432 +vn -0.9666 -0.2564 0.0039 +vn -0.8685 -0.4957 0.0019 +vn -0.7312 -0.4150 -0.5415 +vn -0.8651 -0.5017 0.0039 +vn -0.7071 -0.7071 0.0019 +vn -0.5977 -0.5977 -0.5344 +vn -0.4167 -0.7343 -0.5358 +vn -0.4957 -0.8685 0.0019 +vn -0.5017 -0.8651 0.0040 +vn -0.2097 -0.8190 -0.5341 +vn -0.2565 -0.9666 0.0018 +vn -0.2564 -0.9666 0.0040 +vn -0.1069 -0.8434 -0.5266 +vn -0.1303 -0.9915 0.0040 +vn -0.1303 -0.9915 0.0018 +vn 0.1004 0.0039 0.9949 +vn 0.5894 0.0039 0.8079 +vn 0.5893 0.0039 0.8079 +vn 0.0765 0.0039 0.9971 +vn 0.0927 0.0039 0.9957 +vn -0.0926 0.0039 0.9957 +vn -0.0687 0.0039 0.9976 +vn -0.0850 0.0039 0.9964 +vn -0.5842 0.0039 0.8116 +vn -0.9491 -0.0755 -0.3058 +vn -0.8528 -0.1864 -0.4879 +vn -0.9362 -0.1620 -0.3121 +vn -0.8649 -0.0908 -0.4937 +vn -0.9966 -0.0827 0.0039 +vn -0.9485 0.0833 -0.3056 +vn -0.8643 0.0986 -0.4933 +vn -0.9959 0.0905 0.0039 +vn -0.8513 0.1941 -0.4875 +vn -0.9841 0.1778 0.0039 +vn -0.9349 0.1696 -0.3116 +vn -0.1312 0.9914 0.0032 +vn -0.1160 0.9923 0.0429 +vn -0.6551 0.7492 0.0980 +vn -0.4769 0.8789 -0.0040 +vn -0.1469 0.9817 -0.1213 +vn -0.5151 0.8531 -0.0826 +vn 0.1389 0.9903 0.0031 +vn 0.1237 0.9914 0.0428 +vn 0.6595 0.7453 0.0975 +vn 0.4830 0.8756 -0.0039 +vn 0.0039 0.9916 -0.1294 +vn 0.1545 0.9805 -0.1212 +vn 0.5208 0.8497 -0.0822 +vn 0.1636 0.9568 -0.2403 +vn 0.5388 0.8219 -0.1849 +vn -0.1559 0.9580 -0.2406 +vn -0.5332 0.8254 -0.1856 +vn 0.0039 0.9690 -0.2471 +vn -0.1556 0.8858 -0.4372 +vn -0.5314 0.7676 -0.3582 +vn 0.0039 0.8998 -0.4362 +vn 0.1633 0.8847 -0.4366 +vn 0.5370 0.7644 -0.3568 +vn -0.1553 0.7655 -0.6244 +vn -0.5158 0.6656 -0.5394 +vn -0.5020 0.5494 -0.6680 +vn 0.1629 0.7646 -0.6236 +vn 0.5216 0.6628 -0.5373 +vn 0.5078 0.5472 -0.6653 +vn 0.0039 0.7743 -0.6328 +vn -0.1475 0.6249 -0.7666 +vn -0.4868 0.2810 -0.8271 +vn 0.0039 0.6328 -0.7743 +vn 0.1552 0.6242 -0.7657 +vn 0.4928 0.2799 -0.8239 +vn -0.1477 0.2973 -0.9433 +vn -0.4702 0.0514 -0.8811 +vn 0.1554 0.2970 -0.9422 +vn 0.4763 0.0512 -0.8778 +vn 0.0039 0.2989 -0.9543 +vn 0.0040 0.2249 -0.9744 +vn -0.0997 0.1932 -0.9761 +vn 0.1066 0.1935 -0.9753 +vn -0.0688 0.0343 -0.9970 +vn -0.3828 -0.2251 -0.8960 +vn 0.0040 0.1226 -0.9925 +vn 0.0765 0.0343 -0.9965 +vn 0.3896 -0.2243 -0.8933 +vn 0.0037 -0.0513 -0.9987 +vn 0.1404 -0.1074 -0.9843 +vn 0.4699 -0.1777 -0.8647 +vn 0.5805 -0.2646 -0.7701 +vn -0.1327 -0.1075 -0.9853 +vn -0.4637 -0.1783 -0.8679 +vn -0.5752 -0.2658 -0.7736 +vn 0.0039 -0.3748 -0.9271 +vn 0.1087 -0.3754 -0.9205 +vn -0.1009 -0.3757 -0.9212 +vn 0.1720 -0.7310 -0.6604 +vn 0.6960 -0.4836 -0.5308 +vn 0.7445 -0.6342 -0.2088 +vn 0.0040 -0.7494 -0.6622 +vn 0.1883 -0.9386 -0.2892 +vn 0.7849 -0.6193 -0.0197 +vn 0.0040 -0.9548 -0.2972 +vn -0.1643 -0.7320 -0.6612 +vn -0.6919 -0.4863 -0.5337 +vn -0.7409 -0.6379 -0.2100 +vn -0.1807 -0.9399 -0.2896 +vn -0.7819 -0.6231 -0.0199 +vn -0.1722 -0.9844 -0.0358 +vn -0.1646 -0.9863 0.0120 +vn -0.7889 -0.6145 0.0040 +vn -0.8006 -0.5955 0.0671 +vn 0.1799 -0.9830 -0.0358 +vn 0.1723 -0.9850 0.0120 +vn 0.7919 -0.6107 0.0040 +vn 0.8034 -0.5918 0.0666 +vn -0.1649 -0.9796 0.1150 +vn 0.1727 -0.9783 0.1148 +vn 0.0040 -0.9934 0.1148 +vn -0.1800 -0.9675 0.1776 +vn -0.8249 -0.5565 0.0987 +vn 0.0039 -0.9812 0.1931 +vn 0.1876 -0.9661 0.1774 +vn 0.8274 -0.5529 0.0980 +vn -0.2040 -0.9136 0.3519 +vn -0.8356 -0.5109 0.2020 +vn 0.2115 -0.9121 0.3513 +vn 0.8380 -0.5075 0.2006 +vn 0.0039 -0.6498 0.7601 +vn -0.2814 -0.6255 0.7277 +vn -0.8547 -0.3427 0.3899 +vn -0.8899 -0.0910 0.4469 +vn 0.2886 -0.6242 0.7260 +vn 0.8568 -0.3404 0.3873 +vn 0.8916 -0.0904 0.4438 +vn -0.2731 -0.1766 0.9456 +vn -0.8940 0.0512 0.4451 +vn 0.2803 -0.1762 0.9436 +vn 0.8956 0.0508 0.4419 +vn 0.0039 -0.1841 0.9829 +vn -0.2722 0.0900 0.9580 +vn -0.8708 0.2246 0.4374 +vn 0.2794 0.0898 0.9560 +vn 0.8727 0.2231 0.4344 +vn 0.0039 0.0821 0.9966 +vn -0.2415 0.4042 0.8822 +vn -0.8091 0.4460 0.3828 +vn 0.0039 0.4043 0.9146 +vn 0.2488 0.4034 0.8806 +vn 0.8118 0.4431 0.3804 +vn 0.0039 0.7301 0.6833 +vn -0.1789 0.7190 0.6716 +vn -0.7619 0.5801 0.2882 +vn 0.1865 0.7179 0.6707 +vn 0.7650 0.5767 0.2867 +vn -0.1635 0.8768 0.4522 +vn -0.7058 0.6664 0.2405 +vn 0.1711 0.8757 0.4516 +vn 0.7097 0.6627 0.2392 +vn 0.0038 0.8921 0.4519 +vn -0.1472 0.9285 0.3409 +vn -0.6255 0.6806 0.3816 +vn 0.1549 0.9274 0.3405 +vn 0.6302 0.6772 0.3797 +vn 0.0039 0.9455 0.3256 +vn -0.1935 0.9256 0.3252 +vn -0.5217 0.6628 0.5372 +vn 0.2010 0.9242 0.3247 +vn 0.5273 0.6601 0.5351 +vn -0.1311 0.9690 0.2094 +vn -0.6557 0.7486 0.0984 +vn -0.1143 0.9924 0.0453 +vn 0.1388 0.9680 0.2092 +vn 0.6601 0.7448 0.0979 +vn 0.1220 0.9915 0.0453 +vn 0.0038 0.9960 0.0897 +vn 0.0676 0.9970 0.0367 +vn 0.0686 0.9976 0.0038 +vn 0.4411 0.8972 0.0211 +vn 0.0039 0.9993 0.0371 +vn 0.4173 0.9087 0.0039 +vn 0.0602 0.8831 0.4653 +vn 0.4105 0.9111 -0.0375 +vn 0.2560 0.6262 -0.7365 +vn 0.1915 0.9811 0.0274 +vn 0.1989 0.9793 -0.0374 +vn 0.1146 0.6364 -0.7628 +vn 0.0039 0.6498 -0.7601 +vn 0.0039 0.9993 -0.0375 +vn -0.1915 0.9808 -0.0375 +vn -0.1068 0.6369 -0.7635 +vn -0.2486 0.6275 -0.7379 +vn -0.4040 0.9140 -0.0376 +vn -0.4109 0.9117 0.0039 +vn -0.1840 0.9825 0.0275 +vn -0.4348 0.9003 0.0212 +vn 0.0039 0.9146 0.4043 +vn -0.0599 0.9975 0.0366 +vn -0.0608 0.9981 0.0038 +vn -0.0525 0.8835 0.4656 +vn 0.0039 0.8491 0.5282 +vn -0.0352 0.8883 0.4579 +vn 0.0430 0.8881 0.4577 +vn 0.0040 -0.9335 0.3585 +vn 0.0039 -0.9309 0.3653 +vn -0.1694 -0.9180 0.3585 +vn 0.1770 -0.9168 0.3580 +vn -0.1931 -0.9102 0.3664 +vn 0.2006 -0.9088 0.3659 +vn -0.3747 -0.8480 0.3747 +vn 0.3815 -0.8455 0.3736 +vn -0.4559 -0.8205 0.3449 +vn 0.4621 -0.8176 0.3436 +vn -0.6598 -0.6598 0.3596 +vn 0.6643 -0.6564 0.3577 +vn -0.5888 -0.7073 0.3912 +vn 0.5939 -0.7041 0.3894 +vn -0.7949 -0.4943 0.3519 +vn 0.7977 -0.4912 0.3497 +vn -0.8189 -0.4470 0.3600 +vn 0.8215 -0.4442 0.3577 +vn -0.8886 -0.3041 0.3435 +vn 0.8902 -0.3020 0.3411 +vn -0.8882 -0.2961 0.3513 +vn 0.8898 -0.2940 0.3489 +vn -0.9334 -0.1063 0.3427 +vn 0.9344 -0.1056 0.3401 +vn -0.9281 -0.1224 0.3515 +vn 0.9292 -0.1216 0.3489 +vn -0.9418 0.0276 0.3350 +vn 0.9427 0.0274 0.3325 +vn -0.9421 0.0118 0.3351 +vn 0.9430 0.0117 0.3326 +vn -0.9088 0.2006 0.3659 +vn 0.9101 0.1992 0.3633 +vn -0.9099 0.2088 0.3584 +vn 0.9112 0.2073 0.3559 +vn -0.8467 0.4135 0.3348 +vn 0.8489 0.4107 0.3325 +vn -0.8410 0.4304 0.3277 +vn 0.8433 0.4276 0.3256 +vn -0.7065 0.6354 0.3118 +vn 0.7104 0.6319 0.3100 +vn -0.7285 0.6103 0.3111 +vn 0.7322 0.6068 0.3093 +vn -0.5146 0.8052 0.2946 +vn 0.5203 0.8020 0.2934 +vn -0.4834 0.8214 0.3026 +vn 0.4894 0.8183 0.3015 +vn -0.2621 0.9193 0.2934 +vn 0.2694 0.9174 0.2928 +vn -0.2475 0.9230 0.2946 +vn 0.2548 0.9212 0.2940 +vn 0.0037 0.9583 0.2856 +vn 0.0039 0.3816 -0.9243 +vn 0.0039 0.3021 0.9533 +vn 0.0039 0.9686 -0.2488 +vn 0.0040 0.3680 -0.9298 +vn 0.0137 0.7141 -0.6999 +vn -0.0039 0.7340 -0.6791 +vn -0.0039 0.7415 -0.6709 +vn 0.0534 0.5637 -0.8242 +vn -0.0925 0.5658 -0.8193 +vn -0.0210 0.4826 -0.8756 +vn 0.0039 0.7489 -0.6627 +vn -0.0751 0.6519 -0.7546 +vn -0.0851 0.1695 -0.9818 +vn 0.0039 0.2877 -0.9577 +vn -0.0069 0.7449 -0.6671 +vn 0.0039 0.6566 -0.7542 +vn 0.0039 0.7489 -0.6626 +vn 0.0039 0.7528 -0.6582 +vn 0.0045 0.7480 -0.6637 +vn 0.0118 0.7454 -0.6665 +vn 0.0118 0.7415 -0.6709 +vn 0.0830 0.6514 -0.7542 +vn 0.0930 0.1691 -0.9812 +vn -0.5444 0.2096 -0.8122 +vn 0.1004 0.5654 -0.8187 +vn -0.0606 0.2671 -0.9618 +vn -0.0059 0.7142 -0.6999 +vn 0.0040 0.5242 -0.8516 +vn -0.0675 -0.1629 0.9843 +vn -0.4792 -0.4713 0.7405 +vn -0.2562 -0.6262 0.7364 +vn 0.0040 -0.6748 0.7380 +vn -0.1157 -0.1154 0.9866 +vn -0.6274 -0.2486 0.7379 +vn 0.0039 -0.1634 0.9865 +vn -0.1553 -0.0598 0.9861 +vn -0.6748 0.0040 0.7380 +vn -0.1634 0.0039 0.9865 +vn -0.1628 0.0753 0.9838 +vn -0.6249 0.2633 0.7350 +vn -0.4756 0.4834 0.7350 +vn -0.1155 0.1233 0.9856 +vn -0.0675 0.1705 0.9830 +vn -0.2547 0.6309 0.7328 +vn 0.0039 0.6791 0.7340 +vn 0.0039 0.1711 0.9853 +vn 0.0752 0.1704 0.9825 +vn 0.2620 0.6296 0.7314 +vn 0.4816 0.4816 0.7322 +vn 0.1234 0.1230 0.9847 +vn 0.1704 0.0752 0.9825 +vn 0.6297 0.2620 0.7314 +vn 0.6791 0.0039 0.7340 +vn 0.1711 0.0039 0.9853 +vn 0.1629 -0.0598 0.9848 +vn 0.6322 -0.2474 0.7343 +vn 0.1233 -0.1155 0.9856 +vn 0.4852 -0.4694 0.7377 +vn 0.0753 -0.1628 0.9838 +vn 0.2633 -0.6249 0.7350 +vn -0.5662 -0.6137 -0.5503 +vn -0.6405 -0.5665 -0.5185 +vn -0.5437 -0.8367 0.0653 +vn -0.6323 -0.3129 -0.7087 +vn -0.5514 -0.1468 -0.8212 +vn -0.6045 -0.7916 0.0891 +vn -0.6283 -0.1300 -0.7671 +vn -0.5496 0.0435 -0.8343 +vn -0.9940 -0.0849 -0.0687 +vn -0.9950 -0.0366 -0.0931 +vn -0.5992 -0.7785 0.1870 +vn -0.5352 -0.8197 0.2041 +vn -0.9939 -0.1090 0.0194 +vn -0.9940 -0.0124 -0.1090 +vn -0.9931 0.0119 -0.1169 +vn -0.6330 0.0435 -0.7729 +vn -0.9942 0.0363 -0.1011 +vn -0.6315 0.2334 -0.7394 +vn -0.5486 0.2644 -0.7932 +vn -0.9952 0.0606 -0.0771 +vn -0.6304 0.4460 -0.6354 +vn -0.5571 0.4938 -0.6677 +vn -0.5718 0.7216 -0.3904 +vn -0.9947 0.0930 -0.0447 +vn -0.6437 0.6722 -0.3658 +vn -0.5473 0.8069 0.2221 +vn -0.6093 0.7565 0.2376 +vn -0.9951 0.0926 0.0354 +vn -0.5956 0.7107 0.3744 +vn -0.5371 0.7396 0.4055 +vn -0.5543 0.3420 0.7588 +vn -0.9947 0.0928 0.0450 +vn -0.6258 0.3244 0.7094 +vn -0.5721 -0.0750 0.8168 +vn -0.9800 0.0905 0.1771 +vn -0.9936 -0.1088 0.0286 +vn -0.9760 -0.0119 0.2173 +vn -0.9793 -0.1308 0.1546 +vn -0.6504 -0.0590 0.7573 +vn -0.6287 -0.4919 0.6023 +vn -0.5639 -0.5087 0.6506 +vn 0.5715 -0.6109 -0.5478 +vn 0.5561 -0.3510 -0.7533 +vn 0.6451 -0.5637 -0.5158 +vn 0.5492 -0.8331 0.0650 +vn 0.6371 -0.3114 -0.7051 +vn 0.5569 -0.1462 -0.8176 +vn 0.6095 -0.7878 0.0886 +vn 0.6330 -0.1294 -0.7633 +vn 0.5551 0.0433 -0.8307 +vn 0.9941 -0.0842 -0.0681 +vn 0.9951 -0.0363 -0.0924 +vn 0.6042 -0.7748 0.1862 +vn 0.5407 -0.8163 0.2033 +vn 0.9939 -0.1082 0.0193 +vn 0.9941 -0.0123 -0.1082 +vn 0.9932 0.0118 -0.1160 +vn 0.6378 0.0433 -0.7690 +vn 0.9943 0.0360 -0.1003 +vn 0.6362 0.2322 -0.7357 +vn 0.5537 0.2622 -0.7903 +vn 0.9953 0.0602 -0.0765 +vn 0.6351 0.4437 -0.6323 +vn 0.5625 0.4917 -0.6647 +vn 0.5770 0.7183 -0.3886 +vn 0.9947 0.0923 -0.0443 +vn 0.6469 0.6699 -0.3644 +vn 0.5527 0.8035 0.2212 +vn 0.6142 0.7529 0.2364 +vn 0.9951 0.0919 0.0352 +vn 0.6007 0.7073 0.3727 +vn 0.5426 0.7366 0.4038 +vn 0.5597 0.3406 0.7555 +vn 0.9948 0.0921 0.0447 +vn 0.6305 0.3237 0.7055 +vn 0.5774 -0.0746 0.8130 +vn 0.9803 0.0898 0.1758 +vn 0.9937 -0.1080 0.0284 +vn 0.9764 -0.0118 0.2157 +vn 0.9796 -0.1298 0.1534 +vn 0.6335 -0.4894 0.5993 +vn 0.5692 -0.5064 0.6477 +vn 0.6548 -0.0587 0.7535 +vn 0.9583 0.2855 0.0117 +vt 0.426514 0.126953 +vt 0.404541 0.149414 +vt 0.391846 0.126953 +vt 0.440430 0.149414 +vt 0.804688 0.736572 +vt 0.772949 0.736572 +vt 0.772949 0.705078 +vt 0.804688 0.705078 +vt 0.674805 0.162598 +vt 0.775879 0.162598 +vt 0.775879 0.171875 +vt 0.674805 0.171875 +vt 0.847656 0.558350 +vt 0.847656 0.596680 +vt 0.820801 0.596680 +vt 0.820801 0.558350 +vt 0.203979 0.326660 +vt 0.071289 0.395508 +vt 0.078430 0.318848 +vt 0.071289 0.318848 +vt 0.078430 0.400879 +vt 0.260254 0.294922 +vt 0.260254 0.264160 +vt 0.275635 0.294922 +vt 0.275635 0.264160 +vt 0.653809 0.580811 +vt 0.653809 0.610596 +vt 0.621094 0.610596 +vt 0.621094 0.580811 +vt 0.519531 0.422363 +vt 0.519531 0.465332 +vt 0.509277 0.465332 +vt 0.509277 0.422363 +vt 0.511719 0.881348 +vt 0.524902 0.859863 +vt 0.524902 0.873535 +vt 0.511719 0.851196 +vt 0.454834 0.099609 +vt 0.480469 0.099609 +vt 0.480469 0.120605 +vt 0.454834 0.120605 +vt 0.148071 0.876221 +vt 0.133423 0.843628 +vt 0.148071 0.843628 +vt 0.133423 0.876221 +vt 0.886230 0.322266 +vt 0.886230 0.406738 +vt 0.870117 0.322266 +vt 0.870117 0.406738 +vt 0.889648 0.054199 +vt 0.871582 0.054199 +vt 0.871582 0.050781 +vt 0.889648 0.050781 +vt 0.871582 0.006348 +vt 0.889648 0.006348 +vt 0.930176 0.054199 +vt 0.912109 0.054199 +vt 0.912109 0.050781 +vt 0.930176 0.050781 +vt 0.912109 0.006836 +vt 0.930176 0.006836 +vt 0.350830 0.261719 +vt 0.363525 0.261719 +vt 0.375488 0.249023 +vt 0.350830 0.226074 +vt 0.373291 0.204590 +vt 0.350830 0.166504 +vt 0.380615 0.190430 +vt 0.352539 0.163574 +vt 0.390625 0.182129 +vt 0.401367 0.154785 +vt 0.411133 0.170898 +vt 0.407227 0.155273 +vt 0.414062 0.165527 +vt 0.412354 0.158691 +vt 0.202026 0.518311 +vt 0.202026 0.477051 +vt 0.212280 0.518311 +vt 0.212280 0.477051 +vt 0.215576 0.514893 +vt 0.215576 0.479980 +vt 0.884766 0.995335 +vt 0.841797 0.995335 +vt 0.884766 0.979935 +vt 0.841797 0.979935 +vt 0.881348 0.976517 +vt 0.845215 0.976517 +vt 0.716309 0.968018 +vt 0.716309 0.996681 +vt 0.721191 0.996681 +vt 0.721191 0.968109 +vt 0.726074 0.996681 +vt 0.726074 0.968170 +vt 0.730957 0.996681 +vt 0.730957 0.967834 +vt 0.733398 0.996681 +vt 0.733398 0.967133 +vt 0.735840 0.996681 +vt 0.735840 0.965759 +vt 0.741211 0.996681 +vt 0.741211 0.962708 +vt 0.750000 0.996681 +vt 0.750000 0.957153 +vt 0.579590 0.946381 +vt 0.577148 0.940582 +vt 0.575195 0.949677 +vt 0.579590 0.958374 +vt 0.573242 0.958374 +vt 0.579102 0.972687 +vt 0.569824 0.976395 +vt 0.570801 0.978806 +vt 0.581055 0.974167 +vt 0.583008 0.978806 +vt 0.623535 0.974167 +vt 0.623535 0.978806 +vt 0.667969 0.974167 +vt 0.668945 0.978806 +vt 0.696289 0.974167 +vt 0.696289 0.978806 +vt 0.242554 0.314941 +vt 0.242554 0.330566 +vt 0.247925 0.314941 +vt 0.247925 0.330566 +vt 0.288330 0.314941 +vt 0.288330 0.330566 +vt 0.247925 0.351562 +vt 0.288330 0.351562 +vt 0.276123 0.604980 +vt 0.270020 0.586182 +vt 0.270020 0.604248 +vt 0.276123 0.609863 +vt 0.270020 0.706787 +vt 0.276123 0.702148 +vt 0.292725 0.522461 +vt 0.298340 0.542236 +vt 0.298340 0.523926 +vt 0.292725 0.517822 +vt 0.298340 0.421387 +vt 0.292725 0.425781 +vt 0.304199 0.537842 +vt 0.310547 0.555908 +vt 0.310547 0.538574 +vt 0.304199 0.532471 +vt 0.310547 0.428223 +vt 0.304199 0.432617 +vt 0.267822 0.158691 +vt 0.254395 0.158691 +vt 0.254395 0.228516 +vt 0.267822 0.228516 +vt 0.254395 0.245117 +vt 0.267822 0.245117 +vt 0.588379 0.965118 +vt 0.587402 0.970093 +vt 0.605957 0.970093 +vt 0.593262 0.957916 +vt 0.605957 0.951111 +vt 0.596191 0.949158 +vt 0.605957 0.939911 +vt 0.597168 0.939911 +vt 0.564453 0.768921 +vt 0.557617 0.771362 +vt 0.564941 0.771362 +vt 0.572266 0.764282 +vt 0.587891 0.771362 +vt 0.579590 0.755737 +vt 0.616211 0.771362 +vt 0.616211 0.747070 +vt 0.583984 0.745850 +vt 0.585449 0.734375 +vt 0.616211 0.734375 +vt 0.061676 0.705078 +vt 0.061676 0.693604 +vt 0.068481 0.705078 +vt 0.075867 0.693604 +vt 0.075867 0.705078 +vt 0.060760 0.659912 +vt 0.060760 0.667969 +vt 0.052582 0.667969 +vt 0.052582 0.659912 +vt 0.041321 0.667969 +vt 0.041321 0.659912 +vt 0.032806 0.659912 +vt 0.032806 0.667969 +vt 0.434326 0.100098 +vt 0.358154 0.100098 +vt 0.358154 0.090332 +vt 0.434326 0.082520 +vt 0.362549 0.082520 +vt 0.616699 0.129883 +vt 0.616699 0.109375 +vt 0.609863 0.109375 +vt 0.609863 0.129883 +vt 0.588867 0.109375 +vt 0.588867 0.129883 +vt 0.564941 0.129883 +vt 0.564941 0.109375 +vt 0.552246 0.129883 +vt 0.552246 0.109375 +vt 0.522461 0.109375 +vt 0.522461 0.129883 +vt 0.998047 0.174316 +vt 0.985352 0.174316 +vt 0.985352 0.249512 +vt 0.998047 0.252930 +vt 0.992188 0.252930 +vt 0.992188 0.267090 +vt 0.998047 0.267090 +vt 0.985352 0.270508 +vt 0.998047 0.483887 +vt 0.985352 0.483887 +vt 0.936035 0.802002 +vt 0.936035 0.594482 +vt 0.912109 0.802002 +vt 0.912109 0.594482 +vt 0.900391 0.802002 +vt 0.900391 0.594482 +vt 0.588379 0.229004 +vt 0.578125 0.275879 +vt 0.578125 0.218262 +vt 0.588379 0.275879 +vt 0.578125 0.383789 +vt 0.588379 0.383789 +vt 0.578125 0.402344 +vt 0.588379 0.421387 +vt 0.578125 0.440918 +vt 0.588379 0.479004 +vt 0.578125 0.479004 +vt 0.588379 0.553711 +vt 0.578125 0.554932 +vt 0.588379 0.593994 +vt 0.578125 0.593994 +vt 0.578125 0.658691 +vt 0.588379 0.658691 +vt 0.578125 0.681885 +vt 0.588379 0.681885 +vt 0.588379 0.722656 +vt 0.578125 0.722656 +vt 0.892090 0.054199 +vt 0.910156 0.009766 +vt 0.910156 0.054199 +vt 0.892090 0.009766 +vt 0.910156 0.006348 +vt 0.892090 0.006348 +vt 0.949707 0.007324 +vt 0.932617 0.010742 +vt 0.932617 0.007324 +vt 0.949707 0.010742 +vt 0.932617 0.054199 +vt 0.949707 0.054199 +vt 0.271240 0.571777 +vt 0.275391 0.582031 +vt 0.271240 0.580811 +vt 0.275391 0.569824 +vt 0.293945 0.582031 +vt 0.293945 0.569824 +vt 0.298096 0.572021 +vt 0.298096 0.581299 +vt 0.753418 0.942505 +vt 0.795410 0.939362 +vt 0.753418 0.939362 +vt 0.795410 0.942505 +vt 0.753418 0.945679 +vt 0.795410 0.945679 +vt 0.795410 0.948090 +vt 0.753418 0.948090 +vt 0.753418 0.950653 +vt 0.795410 0.950653 +vt 0.795410 0.972977 +vt 0.753418 0.972977 +vt 0.485840 0.781250 +vt 0.489746 0.790039 +vt 0.489746 0.781250 +vt 0.476318 0.805420 +vt 0.451416 0.781250 +vt 0.445557 0.803589 +vt 0.445557 0.781250 +vt 0.472168 0.809326 +vt 0.446777 0.808350 +vt 0.466064 0.811157 +vt 0.449219 0.811157 +vt 0.291260 0.893860 +vt 0.302002 0.895813 +vt 0.290039 0.886902 +vt 0.300781 0.905334 +vt 0.313477 0.900330 +vt 0.311523 0.912659 +vt 0.327393 0.902588 +vt 0.325684 0.917603 +vt 0.341309 0.901855 +vt 0.341064 0.919617 +vt 0.357422 0.919983 +vt 0.356934 0.898010 +vt 0.378906 0.918396 +vt 0.378906 0.890076 +vt 0.401123 0.898560 +vt 0.401123 0.926880 +vt 0.361572 0.882812 +vt 0.369141 0.884155 +vt 0.369873 0.888977 +vt 0.362305 0.876160 +vt 0.353516 0.879639 +vt 0.354980 0.871094 +vt 0.343994 0.878113 +vt 0.344971 0.867676 +vt 0.334473 0.866211 +vt 0.334229 0.878601 +vt 0.322998 0.865967 +vt 0.323486 0.881287 +vt 0.308105 0.867065 +vt 0.308105 0.886780 +vt 0.292725 0.879456 +vt 0.292725 0.859741 +vt 0.165649 0.623779 +vt 0.172729 0.604248 +vt 0.165649 0.604248 +vt 0.172729 0.623779 +vt 0.165649 0.639404 +vt 0.172729 0.639404 +vt 0.165649 0.657959 +vt 0.172729 0.657959 +vt 0.165649 0.676514 +vt 0.172729 0.676514 +vt 0.165649 0.696533 +vt 0.172729 0.696533 +vt 0.165649 0.722656 +vt 0.172729 0.722656 +vt 0.172729 0.752319 +vt 0.165649 0.752319 +vt 0.082886 0.125488 +vt 0.071106 0.148926 +vt 0.071106 0.125488 +vt 0.082886 0.148926 +vt 0.071106 0.170410 +vt 0.082886 0.170410 +vt 0.071106 0.186035 +vt 0.082886 0.186035 +vt 0.071106 0.200195 +vt 0.082886 0.200195 +vt 0.071106 0.213867 +vt 0.082886 0.213867 +vt 0.071106 0.225586 +vt 0.082886 0.225586 +vt 0.071106 0.239746 +vt 0.082886 0.239746 +vt 0.524902 0.886230 +vt 0.604980 0.897461 +vt 0.524902 0.897461 +vt 0.604980 0.886230 +vt 0.527832 0.882690 +vt 0.602051 0.882690 +vt 0.035797 0.113770 +vt 0.067444 0.332031 +vt 0.067444 0.113770 +vt 0.035797 0.358887 +vt 0.067444 0.384766 +vt 0.035797 0.497559 +vt 0.067444 0.496094 +vt 0.071350 0.508057 +vt 0.035797 0.566162 +vt 0.081604 0.519287 +vt 0.104309 0.566406 +vt 0.035797 0.578125 +vt 0.094238 0.524170 +vt 0.106079 0.526367 +vt 0.116943 0.564209 +vt 0.116455 0.527100 +vt 0.118774 0.527100 +vt 0.119629 0.564209 +vt 0.133423 0.563965 +vt 0.133423 0.527100 +vt 0.150513 0.527100 +vt 0.150513 0.570068 +vt 0.133423 0.581055 +vt 0.160767 0.567871 +vt 0.160767 0.527100 +vt 0.150513 0.606689 +vt 0.160767 0.616455 +vt 0.133423 0.602783 +vt 0.118652 0.585693 +vt 0.118835 0.604004 +vt 0.114075 0.586426 +vt 0.114441 0.604736 +vt 0.033081 0.601074 +vt 0.033081 0.618408 +vt 0.133423 0.619873 +vt 0.150513 0.624512 +vt 0.160767 0.624512 +vt 0.160767 0.661621 +vt 0.133423 0.640869 +vt 0.116516 0.625000 +vt 0.150513 0.663574 +vt 0.160767 0.702881 +vt 0.116882 0.640869 +vt 0.112427 0.625732 +vt 0.133423 0.656250 +vt 0.112732 0.641846 +vt 0.032684 0.639160 +vt 0.032684 0.654785 +vt 0.150513 0.701660 +vt 0.133423 0.679932 +vt 0.116028 0.662598 +vt 0.133423 0.695801 +vt 0.116211 0.679932 +vt 0.111877 0.663330 +vt 0.111938 0.680664 +vt 0.032074 0.677002 +vt 0.032074 0.693604 +vt 0.150513 0.736572 +vt 0.158447 0.748291 +vt 0.158447 0.733887 +vt 0.131470 0.742188 +vt 0.116211 0.702637 +vt 0.150513 0.755981 +vt 0.158447 0.753662 +vt 0.151123 0.760010 +vt 0.115784 0.746582 +vt 0.112549 0.703613 +vt 0.129761 0.775024 +vt 0.131226 0.778076 +vt 0.116882 0.780884 +vt 0.115723 0.777466 +vt 0.113037 0.781616 +vt 0.112061 0.747559 +vt 0.032440 0.718750 +vt 0.032440 0.762817 +vt 0.112183 0.778442 +vt 0.032440 0.796509 +vt 0.032440 0.799561 +vt 0.089966 0.400391 +vt 0.089966 0.345215 +vt 0.082703 0.351074 +vt 0.082703 0.400391 +vt 0.089966 0.407715 +vt 0.082703 0.407715 +vt 0.292480 0.268066 +vt 0.308838 0.298340 +vt 0.308838 0.268066 +vt 0.292480 0.299805 +vt 0.308838 0.323242 +vt 0.292480 0.352539 +vt 0.308838 0.348145 +vt 0.308838 0.365234 +vt 0.292480 0.399414 +vt 0.308838 0.392578 +vt 0.308838 0.407715 +vt 0.292480 0.413574 +vt 0.294189 0.415039 +vt 0.308838 0.415039 +vt 0.252930 0.868774 +vt 0.282715 0.839966 +vt 0.252930 0.839966 +vt 0.282715 0.870239 +vt 0.252930 0.892578 +vt 0.282715 0.895203 +vt 0.252930 0.916138 +vt 0.282715 0.919861 +vt 0.252930 0.932495 +vt 0.282715 0.937012 +vt 0.252930 0.958679 +vt 0.282715 0.964600 +vt 0.252930 0.972900 +vt 0.282715 0.979401 +vt 0.276367 0.985046 +vt 0.252930 0.980240 +vt 0.022385 0.960480 +vt 0.006233 0.986946 +vt 0.022385 0.996462 +vt 0.006233 0.961731 +vt 0.022385 0.912903 +vt 0.006233 0.916870 +vt 0.016449 0.909302 +vt 0.006233 0.891663 +vt 0.016449 0.890991 +vt 0.016449 0.867188 +vt 0.022644 0.887207 +vt 0.022644 0.869263 +vt 0.006233 0.849487 +vt 0.016449 0.848267 +vt 0.016449 0.826538 +vt 0.022629 0.845459 +vt 0.022629 0.828613 +vt 0.006233 0.810425 +vt 0.016449 0.809204 +vt 0.022629 0.787354 +vt 0.022629 0.805908 +vt 0.016449 0.783813 +vt 0.006233 0.749268 +vt 0.016449 0.765991 +vt 0.022263 0.762451 +vt 0.022263 0.749268 +vt 0.022263 0.675537 +vt 0.006233 0.675537 +vt 0.022263 0.526611 +vt 0.006233 0.526611 +vt 0.022263 0.262695 +vt 0.006233 0.262695 +vt 0.251709 0.230469 +vt 0.238159 0.245117 +vt 0.251709 0.245117 +vt 0.238159 0.230469 +vt 0.251709 0.158691 +vt 0.238159 0.158691 +vt 0.234497 0.229492 +vt 0.220947 0.245117 +vt 0.234497 0.245117 +vt 0.220947 0.229492 +vt 0.234497 0.158691 +vt 0.220947 0.158691 +vt 0.290527 0.599365 +vt 0.295898 0.677246 +vt 0.295898 0.604248 +vt 0.290527 0.691162 +vt 0.295898 0.690430 +vt 0.295898 0.692871 +vt 0.290527 0.706787 +vt 0.284668 0.229980 +vt 0.270996 0.245117 +vt 0.284668 0.245117 +vt 0.270996 0.229980 +vt 0.284668 0.158691 +vt 0.270996 0.158691 +vt 0.248657 0.477539 +vt 0.220459 0.742188 +vt 0.220459 0.477539 +vt 0.248657 0.742188 +vt 0.220459 0.805542 +vt 0.248657 0.805542 +vt 0.220459 0.937134 +vt 0.248657 0.940979 +vt 0.242188 0.955750 +vt 0.218994 0.947784 +vt 0.229858 0.969391 +vt 0.214478 0.956085 +vt 0.214844 0.976059 +vt 0.205933 0.963165 +vt 0.200562 0.980850 +vt 0.196533 0.967804 +vt 0.187988 0.982178 +vt 0.185669 0.970459 +vt 0.185303 0.982178 +vt 0.177124 0.970459 +vt 0.166504 0.982178 +vt 0.160156 0.970459 +vt 0.146851 0.982178 +vt 0.147583 0.970459 +vt 0.136719 0.970459 +vt 0.133057 0.982178 +vt 0.341797 0.159668 +vt 0.342285 0.161133 +vt 0.346191 0.159668 +vt 0.337158 0.163574 +vt 0.335938 0.159668 +vt 0.332031 0.167480 +vt 0.317139 0.159668 +vt 0.329590 0.171875 +vt 0.328857 0.177734 +vt 0.311523 0.262695 +vt 0.293457 0.159668 +vt 0.293457 0.262695 +vt 0.328857 0.253906 +vt 0.313477 0.264648 +vt 0.313477 0.292480 +vt 0.328857 0.287109 +vt 0.328857 0.436523 +vt 0.313477 0.436523 +vt 0.416992 0.911438 +vt 0.436035 0.924011 +vt 0.417480 0.924011 +vt 0.435303 0.906982 +vt 0.413086 0.894165 +vt 0.431396 0.887695 +vt 0.425537 0.874390 +vt 0.405029 0.880005 +vt 0.418945 0.864746 +vt 0.412109 0.858276 +vt 0.391357 0.867310 +vt 0.400146 0.853394 +vt 0.384766 0.848633 +vt 0.377441 0.860840 +vt 0.365723 0.844971 +vt 0.366211 0.857178 +vt 0.355469 0.843140 +vt 0.349854 0.856079 +vt 0.342041 0.842163 +vt 0.340332 0.855591 +vt 0.329346 0.842041 +vt 0.328369 0.855591 +vt 0.316162 0.842041 +vt 0.314697 0.855591 +vt 0.304932 0.842041 +vt 0.303955 0.855591 +vt 0.291748 0.842041 +vt 0.291748 0.855591 +vt 0.713379 0.969666 +vt 0.613281 0.950897 +vt 0.613281 0.969666 +vt 0.713379 0.950897 +vt 0.613281 0.940277 +vt 0.713379 0.940277 +vt 0.087830 0.263672 +vt 0.073181 0.270020 +vt 0.073181 0.262695 +vt 0.088318 0.266113 +vt 0.073181 0.288086 +vt 0.088318 0.288086 +vt 0.088318 0.309570 +vt 0.073181 0.305664 +vt 0.087830 0.312012 +vt 0.073181 0.313477 +vt 0.479980 0.876892 +vt 0.496582 0.880554 +vt 0.485596 0.880554 +vt 0.471191 0.865723 +vt 0.458740 0.876892 +vt 0.452148 0.865723 +vt 0.452148 0.877869 +vt 0.458740 0.881042 +vt 0.057587 0.708984 +vt 0.049225 0.698486 +vt 0.057587 0.698486 +vt 0.049225 0.708984 +vt 0.039795 0.698486 +vt 0.039795 0.708984 +vt 0.031616 0.708984 +vt 0.031616 0.698486 +vt 0.345459 0.834229 +vt 0.342041 0.818726 +vt 0.345459 0.823975 +vt 0.331543 0.810303 +vt 0.342041 0.798950 +vt 0.331543 0.792725 +vt 0.343018 0.792725 +vt 0.345703 0.798950 +vt 0.191650 0.262695 +vt 0.195312 0.248535 +vt 0.195312 0.258301 +vt 0.181763 0.270508 +vt 0.191650 0.281250 +vt 0.181763 0.286621 +vt 0.192017 0.286621 +vt 0.194824 0.281250 +vt 0.092834 0.370117 +vt 0.104248 0.360840 +vt 0.104248 0.370117 +vt 0.092834 0.360840 +vt 0.104248 0.351074 +vt 0.092834 0.351074 +vt 0.092834 0.341797 +vt 0.104248 0.341797 +vt 0.056000 0.631104 +vt 0.049042 0.631104 +vt 0.056000 0.624756 +vt 0.049042 0.624756 +vt 0.039825 0.631104 +vt 0.039825 0.624756 +vt 0.032837 0.624756 +vt 0.032837 0.631104 +vt 0.135986 0.257812 +vt 0.152100 0.254395 +vt 0.146606 0.257812 +vt 0.161011 0.243652 +vt 0.172607 0.254395 +vt 0.179199 0.243652 +vt 0.179199 0.255859 +vt 0.172607 0.258789 +vt 0.335693 0.755615 +vt 0.331787 0.772461 +vt 0.331787 0.761353 +vt 0.346924 0.746338 +vt 0.335693 0.733887 +vt 0.346924 0.727051 +vt 0.334473 0.727295 +vt 0.331299 0.733887 +vt 0.331787 0.676514 +vt 0.335693 0.694336 +vt 0.331787 0.688232 +vt 0.347412 0.704346 +vt 0.335693 0.717529 +vt 0.347412 0.724854 +vt 0.333984 0.724854 +vt 0.330811 0.717529 +vt 0.596680 0.649902 +vt 0.703613 0.620850 +vt 0.704590 0.625977 +vt 0.701172 0.633545 +vt 0.603027 0.669434 +vt 0.699219 0.644043 +vt 0.700195 0.657471 +vt 0.727051 0.752930 +vt 0.642090 0.787354 +vt 0.731934 0.762451 +vt 0.645020 0.799927 +vt 0.737305 0.769897 +vt 0.744629 0.806519 +vt 0.745605 0.775879 +vt 0.646484 0.812378 +vt 0.751953 0.799194 +vt 0.741211 0.818237 +vt 0.754395 0.778931 +vt 0.645996 0.826660 +vt 0.757812 0.795654 +vt 0.742188 0.830566 +vt 0.763672 0.780640 +vt 0.641113 0.840088 +vt 0.764648 0.793213 +vt 0.747559 0.842285 +vt 0.769043 0.791260 +vt 0.632812 0.850098 +vt 0.768555 0.781494 +vt 0.777832 0.781494 +vt 0.777832 0.791260 +vt 0.786621 0.781494 +vt 0.786621 0.791260 +vt 0.827637 0.791260 +vt 0.827148 0.781494 +vt 0.831543 0.791260 +vt 0.833496 0.781494 +vt 0.834961 0.791260 +vt 0.839355 0.781494 +vt 0.839355 0.792236 +vt 0.845215 0.782715 +vt 0.842285 0.794678 +vt 0.850586 0.785400 +vt 0.845215 0.796875 +vt 0.854004 0.790039 +vt 0.856934 0.796021 +vt 0.847168 0.800659 +vt 0.850098 0.812134 +vt 0.861816 0.811523 +vt 0.644043 0.877747 +vt 0.759766 0.848999 +vt 0.622070 0.855835 +vt 0.779785 0.877747 +vt 0.770508 0.850952 +vt 0.779297 0.852173 +vt 0.787598 0.852173 +vt 0.820801 0.852173 +vt 0.837891 0.889160 +vt 0.779785 0.889160 +vt 0.837891 0.877747 +vt 0.882324 0.889160 +vt 0.882324 0.877747 +vt 0.833496 0.849609 +vt 0.882324 0.861816 +vt 0.871582 0.850098 +vt 0.882324 0.854858 +vt 0.842285 0.843750 +vt 0.863281 0.842896 +vt 0.846191 0.835571 +vt 0.856934 0.833984 +vt 0.853027 0.827271 +vt 0.847168 0.827393 +vt 0.644043 0.902039 +vt 0.628418 0.881531 +vt 0.628418 0.902039 +vt 0.618164 0.902039 +vt 0.613770 0.883057 +vt 0.611328 0.877441 +vt 0.612305 0.858887 +vt 0.606445 0.871704 +vt 0.598145 0.860107 +vt 0.597168 0.868896 +vt 0.583984 0.864502 +vt 0.584473 0.858154 +vt 0.572754 0.860840 +vt 0.573730 0.855225 +vt 0.563477 0.857788 +vt 0.564453 0.852295 +vt 0.554688 0.855347 +vt 0.556152 0.849731 +vt 0.807129 0.148438 +vt 0.996094 0.148438 +vt 0.996094 0.169434 +vt 0.807129 0.169434 +vt 0.793457 0.148438 +vt 0.793457 0.169434 +vt 0.340576 0.018555 +vt 0.472412 0.005371 +vt 0.472412 0.018555 +vt 0.340576 0.005371 +vt 0.006786 0.018555 +vt 0.006786 0.005371 +vt 0.712891 0.997828 +vt 0.636230 0.990738 +vt 0.712891 0.990738 +vt 0.629395 0.997828 +vt 0.622559 0.990738 +vt 0.417725 0.997828 +vt 0.411377 0.990738 +vt 0.874023 0.471191 +vt 0.880371 0.491211 +vt 0.874023 0.491211 +vt 0.880371 0.465332 +vt 0.884766 0.491211 +vt 0.884766 0.465332 +vt 0.895996 0.491211 +vt 0.895996 0.465332 +vt 0.900391 0.491211 +vt 0.900391 0.465332 +vt 0.906738 0.472168 +vt 0.906738 0.491211 +vt 0.507812 0.211914 +vt 0.473633 0.212402 +vt 0.483398 0.201172 +vt 0.488281 0.189941 +vt 0.519531 0.203125 +vt 0.522949 0.175293 +vt 0.496338 0.150879 +vt 0.522949 0.150879 +vt 0.654297 0.551514 +vt 0.654297 0.495117 +vt 0.662598 0.551514 +vt 0.662598 0.495117 +vt 0.654297 0.354980 +vt 0.662598 0.347656 +vt 0.497803 0.573486 +vt 0.510742 0.580566 +vt 0.497803 0.580566 +vt 0.510742 0.573486 +vt 0.510742 0.570801 +vt 0.497803 0.570801 +vt 0.497803 0.525635 +vt 0.510742 0.525635 +vt 0.510742 0.480469 +vt 0.497803 0.480469 +vt 0.497803 0.477539 +vt 0.510742 0.477539 +vt 0.510742 0.470215 +vt 0.497803 0.470215 +vt 0.388184 0.261230 +vt 0.388184 0.311035 +vt 0.382080 0.267578 +vt 0.382080 0.311035 +vt 0.382080 0.354980 +vt 0.388184 0.360840 +vt 0.503418 0.422363 +vt 0.503418 0.444336 +vt 0.480957 0.422363 +vt 0.480957 0.444336 +vt 0.458496 0.444336 +vt 0.458496 0.422363 +vt 0.319580 0.092285 +vt 0.335693 0.088867 +vt 0.331543 0.095215 +vt 0.328857 0.077148 +vt 0.346680 0.064453 +vt 0.357910 0.072266 +vt 0.352539 0.060547 +vt 0.354980 0.059570 +vt 0.361084 0.071289 +vt 0.397949 0.059570 +vt 0.397949 0.071289 +vt 0.434814 0.071289 +vt 0.441162 0.059570 +vt 0.438232 0.071777 +vt 0.443604 0.060547 +vt 0.449463 0.064453 +vt 0.460449 0.088867 +vt 0.467285 0.077148 +vt 0.476562 0.091797 +vt 0.464600 0.095215 +vt 0.990234 0.007324 +vt 0.972168 0.050781 +vt 0.972168 0.007324 +vt 0.990234 0.050781 +vt 0.990234 0.054199 +vt 0.972168 0.054199 +vt 0.493408 0.718018 +vt 0.491211 0.734863 +vt 0.491211 0.718018 +vt 0.493408 0.734863 +vt 0.521484 0.734863 +vt 0.521484 0.718018 +vt 0.970215 0.007324 +vt 0.952148 0.010742 +vt 0.952148 0.007324 +vt 0.970215 0.010742 +vt 0.970215 0.054199 +vt 0.952148 0.054199 +vt 0.312012 0.620850 +vt 0.303223 0.632568 +vt 0.303223 0.620850 +vt 0.316895 0.632568 +vt 0.327637 0.620850 +vt 0.312012 0.593506 +vt 0.327637 0.593506 +vt 0.316895 0.582031 +vt 0.303223 0.582031 +vt 0.303223 0.593506 +vt 0.101929 0.303711 +vt 0.093567 0.269043 +vt 0.093567 0.306641 +vt 0.101929 0.271973 +vt 0.110168 0.256836 +vt 0.101929 0.256836 +vt 0.110168 0.317383 +vt 0.101929 0.317383 +vt 0.105591 0.321777 +vt 0.122253 0.264648 +vt 0.110168 0.321777 +vt 0.122253 0.317383 +vt 0.122253 0.321777 +vt 0.130981 0.270020 +vt 0.130981 0.321777 +vt 0.130981 0.317383 +vt 0.138184 0.273926 +vt 0.138184 0.321777 +vt 0.138184 0.317383 +vt 0.145508 0.276367 +vt 0.145508 0.317383 +vt 0.145508 0.321777 +vt 0.153931 0.277344 +vt 0.153931 0.317383 +vt 0.153931 0.321777 +vt 0.160278 0.317383 +vt 0.160278 0.321777 +vt 0.162598 0.321777 +vt 0.160278 0.277832 +vt 0.166626 0.317383 +vt 0.166626 0.277832 +vt 0.161133 0.266602 +vt 0.175781 0.261719 +vt 0.157837 0.261719 +vt 0.178955 0.266602 +vt 0.170044 0.275879 +vt 0.161133 0.275879 +vt 0.178955 0.309570 +vt 0.170044 0.315430 +vt 0.189087 0.326660 +vt 0.189087 0.291016 +vt 0.203979 0.291016 +vt 0.211304 0.286133 +vt 0.211304 0.332031 +vt 0.459229 0.855225 +vt 0.464111 0.855225 +vt 0.464111 0.862793 +vt 0.459229 0.862793 +vt 0.454590 0.862793 +vt 0.454346 0.855225 +vt 0.449951 0.863525 +vt 0.447998 0.856323 +vt 0.447754 0.864868 +vt 0.443115 0.859619 +vt 0.446289 0.867432 +vt 0.439697 0.865112 +vt 0.445068 0.873169 +vt 0.437988 0.872681 +vt 0.443359 0.883484 +vt 0.436035 0.883545 +vt 0.435059 0.889771 +vt 0.508789 0.889771 +vt 0.500488 0.883484 +vt 0.507812 0.883606 +vt 0.505859 0.872803 +vt 0.499023 0.873169 +vt 0.504395 0.865112 +vt 0.497803 0.867432 +vt 0.500977 0.859619 +vt 0.496094 0.864868 +vt 0.496094 0.856323 +vt 0.494141 0.863525 +vt 0.489502 0.855225 +vt 0.489502 0.862793 +vt 0.484619 0.855225 +vt 0.484619 0.862793 +vt 0.479980 0.862793 +vt 0.479980 0.855225 +vt 0.664551 0.334961 +vt 0.648438 0.314941 +vt 0.645508 0.318359 +vt 0.660645 0.338867 +vt 0.643555 0.338867 +vt 0.643555 0.319336 +vt 0.638672 0.317383 +vt 0.638672 0.336914 +vt 0.307617 0.712646 +vt 0.328125 0.638428 +vt 0.307617 0.638428 +vt 0.328125 0.794312 +vt 0.262939 0.769775 +vt 0.262939 0.712646 +vt 0.256836 0.714355 +vt 0.256836 0.771118 +vt 0.256836 0.800293 +vt 0.262939 0.800293 +vt 0.326660 0.800293 +vt 0.256836 0.828003 +vt 0.319824 0.828003 +vt 0.262939 0.828003 +vt 0.286865 0.621826 +vt 0.279541 0.702881 +vt 0.286865 0.707764 +vt 0.279541 0.621338 +vt 0.279541 0.616943 +vt 0.286865 0.600098 +vt 0.331787 0.461914 +vt 0.325439 0.560303 +vt 0.331787 0.565430 +vt 0.325439 0.466309 +vt 0.325439 0.461426 +vt 0.331787 0.443848 +vt 0.282471 0.523926 +vt 0.282471 0.542725 +vt 0.288574 0.526611 +vt 0.288574 0.521240 +vt 0.288574 0.424316 +vt 0.282471 0.418457 +vt 0.321289 0.542236 +vt 0.314697 0.546143 +vt 0.321289 0.566406 +vt 0.314697 0.541748 +vt 0.314697 0.445801 +vt 0.321289 0.441895 +vt 0.334961 0.528809 +vt 0.334961 0.672363 +vt 0.345459 0.672363 +vt 0.345459 0.528809 +vt 0.345459 0.463379 +vt 0.334961 0.463379 +vt 0.334961 0.178711 +vt 0.345459 0.178711 +vt 0.343262 0.171875 +vt 0.337158 0.171875 +vt 0.216309 0.702881 +vt 0.216309 0.522705 +vt 0.178589 0.522705 +vt 0.178589 0.702881 +vt 0.207764 0.710449 +vt 0.216309 0.708740 +vt 0.199585 0.714844 +vt 0.191284 0.725098 +vt 0.178589 0.737061 +vt 0.187378 0.737061 +vt 0.185303 0.741211 +vt 0.178589 0.741211 +vt 0.088257 0.242676 +vt 0.092529 0.248047 +vt 0.088257 0.252930 +vt 0.098450 0.243652 +vt 0.095947 0.235352 +vt 0.107178 0.238770 +vt 0.088257 0.181152 +vt 0.105896 0.229004 +vt 0.118896 0.236328 +vt 0.095947 0.180176 +vt 0.088257 0.129883 +vt 0.118713 0.225586 +vt 0.136719 0.234375 +vt 0.105896 0.178711 +vt 0.095947 0.129883 +vt 0.088257 0.121094 +vt 0.095947 0.121094 +vt 0.105896 0.129883 +vt 0.105896 0.121094 +vt 0.118713 0.177734 +vt 0.118713 0.129883 +vt 0.118713 0.121094 +vt 0.136353 0.223633 +vt 0.152710 0.233398 +vt 0.136353 0.176758 +vt 0.136353 0.129883 +vt 0.136353 0.121094 +vt 0.152710 0.222656 +vt 0.152710 0.176270 +vt 0.152710 0.129883 +vt 0.152710 0.121094 +vt 0.168823 0.121094 +vt 0.168823 0.129883 +vt 0.186646 0.121094 +vt 0.168823 0.176758 +vt 0.186646 0.129883 +vt 0.199341 0.121094 +vt 0.168823 0.223145 +vt 0.168945 0.233887 +vt 0.186646 0.177246 +vt 0.199341 0.129883 +vt 0.209229 0.121094 +vt 0.186646 0.225098 +vt 0.186768 0.235840 +vt 0.199341 0.178711 +vt 0.199341 0.228516 +vt 0.198486 0.238770 +vt 0.209229 0.129883 +vt 0.209229 0.179688 +vt 0.217041 0.129883 +vt 0.217041 0.121094 +vt 0.217041 0.181152 +vt 0.209229 0.234863 +vt 0.217041 0.242188 +vt 0.207275 0.243164 +vt 0.213257 0.247559 +vt 0.217041 0.252441 +vt 0.689453 0.933411 +vt 0.687988 0.931946 +vt 0.689453 0.932617 +vt 0.687988 0.935974 +vt 0.674805 0.935974 +vt 0.673828 0.931946 +vt 0.650391 0.935974 +vt 0.649414 0.931946 +vt 0.634766 0.935974 +vt 0.635254 0.931946 +vt 0.612305 0.932007 +vt 0.612305 0.935974 +vt 0.590332 0.932007 +vt 0.590332 0.935974 +vt 0.562988 0.935974 +vt 0.556641 0.932007 +vt 0.562988 0.949341 +vt 0.556641 0.959717 +vt 0.562988 0.959717 +vt 0.516113 0.932068 +vt 0.562988 0.970108 +vt 0.516113 0.959717 +vt 0.434326 0.932068 +vt 0.556641 0.987885 +vt 0.562988 0.983582 +vt 0.516113 0.987885 +vt 0.590332 0.987885 +vt 0.434326 0.987885 +vt 0.590332 0.983582 +vt 0.612305 0.983582 +vt 0.612305 0.987885 +vt 0.634766 0.983582 +vt 0.635254 0.987885 +vt 0.649414 0.987885 +vt 0.650391 0.983582 +vt 0.673828 0.987885 +vt 0.674805 0.983582 +vt 0.687988 0.987885 +vt 0.687988 0.983582 +vt 0.689453 0.985992 +vt 0.689453 0.987885 +vt 0.434082 0.959717 +vt 0.289062 0.987885 +vt 0.289062 0.932007 +vt 0.289062 0.959717 +vt 0.255127 0.704590 +vt 0.255127 0.641357 +vt 0.265381 0.702148 +vt 0.265381 0.641357 +vt 0.265381 0.580811 +vt 0.255127 0.578369 +vt 0.546875 0.826904 +vt 0.530273 0.850342 +vt 0.530273 0.826904 +vt 0.546875 0.850342 +vt 0.546875 0.873901 +vt 0.530273 0.873901 +vt 0.188599 0.515137 +vt 0.197754 0.464844 +vt 0.197754 0.517334 +vt 0.188599 0.464844 +vt 0.188599 0.414062 +vt 0.197754 0.412109 +vt 0.256592 0.471191 +vt 0.276855 0.545166 +vt 0.256592 0.545166 +vt 0.276855 0.389648 +vt 0.211548 0.414062 +vt 0.211548 0.471191 +vt 0.205322 0.469727 +vt 0.205322 0.412598 +vt 0.205322 0.383789 +vt 0.211548 0.383789 +vt 0.275391 0.383789 +vt 0.205322 0.355957 +vt 0.268311 0.355957 +vt 0.211548 0.355957 +vt 0.859863 0.973221 +vt 0.881348 0.959595 +vt 0.881348 0.973221 +vt 0.859863 0.947113 +vt 0.842285 0.950836 +vt 0.842285 0.973221 +vt 0.867676 0.840576 +vt 0.890625 0.788940 +vt 0.890625 0.840576 +vt 0.867676 0.788940 +vt 0.875977 0.749268 +vt 0.890625 0.749023 +vt 0.867676 0.749268 +vt 0.875977 0.592773 +vt 0.867676 0.592529 +vt 0.867676 0.532715 +vt 0.875977 0.532715 +vt 0.906250 0.495117 +vt 0.906250 0.547852 +vt 0.881348 0.495117 +vt 0.881348 0.547852 +vt 0.881348 0.551270 +vt 0.906250 0.551270 +vt 0.581543 0.165527 +vt 0.660645 0.165527 +vt 0.589355 0.177734 +vt 0.660645 0.177734 +vt 0.660645 0.203125 +vt 0.589355 0.203125 +vt 0.898438 0.876221 +vt 0.937012 0.892944 +vt 0.898438 0.892944 +vt 0.949707 0.876221 +vt 0.949707 0.862549 +vt 0.898438 0.862549 +vt 0.941895 0.854126 +vt 0.898438 0.854126 +vt 0.941895 0.840576 +vt 0.898438 0.840698 +vt 0.930664 0.829346 +vt 0.898438 0.829346 +vt 0.949219 0.832886 +vt 0.949219 0.809082 +vt 0.930664 0.809082 +vt 0.749512 0.438965 +vt 0.749512 0.302734 +vt 0.762695 0.302734 +vt 0.762695 0.438965 +vt 0.762695 0.493652 +vt 0.749512 0.493652 +vt 0.863281 0.448730 +vt 0.853516 0.685547 +vt 0.853516 0.441406 +vt 0.863281 0.685547 +vt 0.863281 0.779053 +vt 0.853516 0.779053 +vt 0.980469 0.287598 +vt 0.980469 0.463379 +vt 0.968262 0.463379 +vt 0.968262 0.287598 +vt 0.968262 0.219727 +vt 0.980469 0.219727 +vt 0.688477 0.920959 +vt 0.697754 0.929138 +vt 0.692871 0.934326 +vt 0.700195 0.919006 +vt 0.703125 0.924194 +vt 0.688477 0.917908 +vt 0.688477 0.901550 +vt 0.709961 0.921143 +vt 0.693359 0.898254 +vt 0.711426 0.915588 +vt 0.715820 0.919250 +vt 0.721680 0.898254 +vt 0.721680 0.914124 +vt 0.721680 0.918945 +vt 0.727539 0.919312 +vt 0.731934 0.915710 +vt 0.750000 0.898254 +vt 0.733398 0.921265 +vt 0.743164 0.919312 +vt 0.754883 0.902039 +vt 0.739746 0.924500 +vt 0.754883 0.918396 +vt 0.745605 0.929504 +vt 0.754883 0.921509 +vt 0.750000 0.934753 +vt 0.859863 0.415527 +vt 0.864746 0.327148 +vt 0.864746 0.415527 +vt 0.859863 0.327148 +vt 0.853027 0.410645 +vt 0.864746 0.279785 +vt 0.853027 0.327148 +vt 0.845703 0.410645 +vt 0.859863 0.279785 +vt 0.860840 0.269531 +vt 0.853027 0.279785 +vt 0.845703 0.327148 +vt 0.845703 0.279785 +vt 0.854492 0.182617 +vt 0.866211 0.269043 +vt 0.879395 0.279297 +vt 0.860840 0.182617 +vt 0.854492 0.177734 +vt 0.860840 0.177734 +vt 0.846191 0.182617 +vt 0.846191 0.177734 +vt 0.865234 0.182617 +vt 0.865234 0.177734 +vt 0.876465 0.182617 +vt 0.876465 0.177734 +vt 0.887207 0.177734 +vt 0.879395 0.268555 +vt 0.887207 0.182617 +vt 0.898438 0.177734 +vt 0.890137 0.269043 +vt 0.891602 0.280273 +vt 0.898438 0.182617 +vt 0.899414 0.270020 +vt 0.899902 0.284180 +vt 0.909180 0.182617 +vt 0.909180 0.177734 +vt 0.910156 0.276855 +vt 0.903809 0.287109 +vt 0.917969 0.182617 +vt 0.917969 0.177734 +vt 0.917969 0.295410 +vt 0.910645 0.297363 +vt 0.927246 0.182617 +vt 0.927246 0.177734 +vt 0.917969 0.325195 +vt 0.910645 0.325195 +vt 0.910645 0.413574 +vt 0.927246 0.295410 +vt 0.937012 0.182617 +vt 0.937012 0.177734 +vt 0.917969 0.413574 +vt 0.910645 0.444336 +vt 0.927246 0.325195 +vt 0.937012 0.295410 +vt 0.947266 0.182617 +vt 0.947266 0.177734 +vt 0.956543 0.177734 +vt 0.937012 0.325195 +vt 0.956543 0.182617 +vt 0.964844 0.177734 +vt 0.964844 0.182617 +vt 0.947266 0.295410 +vt 0.956543 0.295410 +vt 0.964844 0.295410 +vt 0.947266 0.325195 +vt 0.956543 0.325195 +vt 0.964844 0.325195 +vt 0.937012 0.413574 +vt 0.956543 0.413574 +vt 0.964844 0.413574 +vt 0.947266 0.413574 +vt 0.956543 0.444336 +vt 0.964844 0.444336 +vt 0.947266 0.444336 +vt 0.937012 0.444336 +vt 0.956543 0.491699 +vt 0.964844 0.491699 +vt 0.956543 0.539551 +vt 0.964844 0.539551 +vt 0.947266 0.539551 +vt 0.947266 0.491699 +vt 0.937012 0.539551 +vt 0.937012 0.491699 +vt 0.927246 0.539551 +vt 0.927246 0.491699 +vt 0.917969 0.539551 +vt 0.927246 0.444336 +vt 0.917969 0.491699 +vt 0.910645 0.491699 +vt 0.910645 0.545654 +vt 0.927246 0.413574 +vt 0.917969 0.444336 +vt 0.768555 0.327148 +vt 0.773438 0.415527 +vt 0.768555 0.415527 +vt 0.773438 0.327148 +vt 0.780273 0.410645 +vt 0.768555 0.279785 +vt 0.780273 0.327148 +vt 0.787598 0.410645 +vt 0.773438 0.279785 +vt 0.772461 0.269531 +vt 0.780273 0.279785 +vt 0.787598 0.327148 +vt 0.787598 0.279785 +vt 0.778809 0.182617 +vt 0.767090 0.269043 +vt 0.753418 0.279297 +vt 0.772461 0.182617 +vt 0.778809 0.177734 +vt 0.772461 0.177734 +vt 0.787109 0.182617 +vt 0.787109 0.177734 +vt 0.768066 0.182617 +vt 0.768066 0.177734 +vt 0.756836 0.182617 +vt 0.756836 0.177734 +vt 0.746094 0.177734 +vt 0.753906 0.268555 +vt 0.746094 0.182617 +vt 0.734863 0.177734 +vt 0.743164 0.269043 +vt 0.741211 0.280273 +vt 0.734863 0.182617 +vt 0.733887 0.270020 +vt 0.732910 0.283691 +vt 0.724121 0.182617 +vt 0.724121 0.177734 +vt 0.723145 0.276367 +vt 0.729004 0.287109 +vt 0.714844 0.182617 +vt 0.714844 0.177734 +vt 0.714844 0.295410 +vt 0.722656 0.296875 +vt 0.706055 0.182617 +vt 0.706055 0.177734 +vt 0.714844 0.324707 +vt 0.722656 0.325195 +vt 0.722656 0.413086 +vt 0.706055 0.295410 +vt 0.696289 0.182617 +vt 0.696289 0.177734 +vt 0.714844 0.413086 +vt 0.722656 0.444336 +vt 0.706055 0.324707 +vt 0.696289 0.295410 +vt 0.686035 0.182617 +vt 0.686035 0.177734 +vt 0.676758 0.177734 +vt 0.696289 0.324707 +vt 0.676758 0.182617 +vt 0.668457 0.177734 +vt 0.668457 0.182617 +vt 0.686035 0.295410 +vt 0.676758 0.295410 +vt 0.668457 0.295410 +vt 0.686035 0.324707 +vt 0.676758 0.324707 +vt 0.668457 0.324707 +vt 0.696289 0.413086 +vt 0.676758 0.413086 +vt 0.668457 0.413086 +vt 0.686035 0.413086 +vt 0.676758 0.443848 +vt 0.668457 0.443848 +vt 0.686035 0.443848 +vt 0.676758 0.491211 +vt 0.668457 0.491211 +vt 0.668457 0.539062 +vt 0.676758 0.539062 +vt 0.686035 0.539062 +vt 0.686035 0.491211 +vt 0.696289 0.539062 +vt 0.696289 0.491211 +vt 0.706055 0.539062 +vt 0.696289 0.443848 +vt 0.706055 0.491211 +vt 0.714844 0.539062 +vt 0.706055 0.443848 +vt 0.714844 0.491211 +vt 0.722656 0.491211 +vt 0.722656 0.545410 +vt 0.714844 0.443848 +vt 0.706055 0.413086 +vt 0.572266 0.228027 +vt 0.558105 0.219727 +vt 0.572266 0.219727 +vt 0.549805 0.228027 +vt 0.538086 0.219727 +vt 0.572266 0.269043 +vt 0.526367 0.228027 +vt 0.526367 0.219727 +vt 0.549805 0.269043 +vt 0.572266 0.291504 +vt 0.493408 0.219727 +vt 0.572266 0.357422 +vt 0.493408 0.228027 +vt 0.486816 0.221680 +vt 0.549805 0.402344 +vt 0.572266 0.397949 +vt 0.572266 0.473145 +vt 0.486816 0.229492 +vt 0.457031 0.237793 +vt 0.549805 0.473145 +vt 0.572266 0.530762 +vt 0.526367 0.269043 +vt 0.526367 0.406738 +vt 0.526367 0.473145 +vt 0.526367 0.530762 +vt 0.493408 0.406738 +vt 0.517578 0.417480 +vt 0.493408 0.417480 +vt 0.549805 0.530762 +vt 0.526367 0.568604 +vt 0.572266 0.568604 +vt 0.549805 0.568604 +vt 0.539062 0.676758 +vt 0.526367 0.676758 +vt 0.526367 0.711426 +vt 0.563965 0.676758 +vt 0.572266 0.676758 +vt 0.572266 0.723877 +vt 0.549805 0.676758 +vt 0.539062 0.712402 +vt 0.532715 0.723877 +vt 0.545898 0.721436 +vt 0.537598 0.728516 +vt 0.549316 0.734375 +vt 0.554199 0.724365 +vt 0.563965 0.725342 +vt 0.562012 0.737549 +vt 0.577148 0.737549 +vt 0.493408 0.269043 +vt 0.486816 0.406738 +vt 0.486816 0.417480 +vt 0.486816 0.269043 +vt 0.457031 0.248047 +vt 0.457031 0.269043 +vt 0.457031 0.406738 +vt 0.457031 0.417480 +vt 0.441650 0.250977 +vt 0.441650 0.240234 +vt 0.441650 0.406738 +vt 0.441650 0.417480 +vt 0.392578 0.250977 +vt 0.392578 0.240234 +vt 0.392578 0.269043 +vt 0.392578 0.406738 +vt 0.392578 0.417480 +vt 0.441650 0.269043 +vt 0.487793 0.080566 +vt 0.516602 0.080566 +vt 0.487793 0.086426 +vt 0.516602 0.086426 +vt 0.518555 0.080566 +vt 0.487793 0.090820 +vt 0.518555 0.086426 +vt 0.516602 0.090820 +vt 0.487793 0.095703 +vt 0.518555 0.090820 +vt 0.516602 0.095703 +vt 0.487793 0.101074 +vt 0.518555 0.095703 +vt 0.516602 0.101074 +vt 0.487793 0.106934 +vt 0.518555 0.101074 +vt 0.516602 0.106934 +vt 0.487793 0.113281 +vt 0.518555 0.106934 +vt 0.516602 0.113281 +vt 0.518555 0.113281 +vt 0.487793 0.121582 +vt 0.518555 0.121582 +vt 0.516602 0.121582 +vt 0.487793 0.128418 +vt 0.518555 0.128418 +vt 0.516602 0.128418 +vt 0.520996 0.691162 +vt 0.493408 0.686035 +vt 0.520996 0.686035 +vt 0.493408 0.691162 +vt 0.491211 0.686035 +vt 0.491211 0.691162 +vt 0.520996 0.696777 +vt 0.491211 0.696777 +vt 0.493408 0.696777 +vt 0.520996 0.702637 +vt 0.493408 0.702637 +vt 0.491211 0.702637 +vt 0.493408 0.708740 +vt 0.520996 0.708740 +vt 0.491211 0.708740 +vt 0.520996 0.715332 +vt 0.491211 0.715332 +vt 0.493408 0.715332 +vt 0.438477 0.236328 +vt 0.445801 0.208984 +vt 0.445801 0.236328 +vt 0.438477 0.208984 +vt 0.445801 0.207031 +vt 0.432617 0.236328 +vt 0.438477 0.207031 +vt 0.432617 0.208984 +vt 0.432617 0.207031 +vt 0.426270 0.208984 +vt 0.426270 0.236328 +vt 0.426270 0.207031 +vt 0.419922 0.236328 +vt 0.419922 0.208984 +vt 0.419922 0.207031 +vt 0.413574 0.236328 +vt 0.413574 0.207031 +vt 0.413574 0.208984 +vt 0.407715 0.236328 +vt 0.407715 0.207031 +vt 0.407715 0.208984 +vt 0.401855 0.236328 +vt 0.401855 0.207031 +vt 0.401855 0.208984 +vt 0.396240 0.208984 +vt 0.396240 0.236328 +vt 0.396240 0.207031 +vt 0.388184 0.208984 +vt 0.388184 0.236328 +vt 0.388184 0.207031 +vt 0.379150 0.236328 +vt 0.379150 0.207031 +vt 0.379150 0.208984 +vt 0.772461 0.995140 +vt 0.752930 0.995140 +vt 0.752930 0.993523 +vt 0.772461 0.993523 +vt 0.776855 0.995140 +vt 0.752930 0.981659 +vt 0.776855 0.993523 +vt 0.780273 0.995140 +vt 0.772461 0.981659 +vt 0.772461 0.980057 +vt 0.752930 0.980057 +vt 0.776855 0.980057 +vt 0.776855 0.981659 +vt 0.780273 0.980057 +vt 0.780273 0.981659 +vt 0.780273 0.993523 +vt 0.795410 0.993523 +vt 0.795410 0.995140 +vt 0.801270 0.995140 +vt 0.795410 0.981659 +vt 0.795410 0.980057 +vt 0.801270 0.980057 +vt 0.801270 0.993523 +vt 0.801270 0.981659 +vt 0.806641 0.993523 +vt 0.806641 0.995140 +vt 0.825684 0.995140 +vt 0.806641 0.981659 +vt 0.806641 0.980057 +vt 0.825684 0.980057 +vt 0.825684 0.993523 +vt 0.833496 0.993523 +vt 0.833496 0.995140 +vt 0.825684 0.981659 +vt 0.833496 0.981659 +vt 0.833496 0.980057 +vt 0.202271 0.736572 +vt 0.215942 0.745605 +vt 0.215942 0.734131 +vt 0.204956 0.748535 +vt 0.215942 0.765503 +vt 0.190063 0.742920 +vt 0.201172 0.765503 +vt 0.215942 0.778442 +vt 0.195679 0.753662 +vt 0.176758 0.756714 +vt 0.199463 0.778442 +vt 0.215942 0.784546 +vt 0.199219 0.784546 +vt 0.182007 0.782349 +vt 0.185303 0.765991 +vt 0.168335 0.772217 +vt 0.182373 0.776367 +vt 0.166748 0.779053 +vt 0.093445 0.386230 +vt 0.098816 0.407715 +vt 0.093445 0.407715 +vt 0.098816 0.386230 +vt 0.104248 0.407715 +vt 0.093445 0.373047 +vt 0.104248 0.386230 +vt 0.098816 0.373047 +vt 0.104248 0.373047 +vt 0.713379 0.654053 +vt 0.713379 0.630859 +vt 0.720703 0.654053 +vt 0.720703 0.630859 +vt 0.713379 0.615967 +vt 0.729004 0.654053 +vt 0.720703 0.615967 +vt 0.735840 0.630859 +vt 0.735840 0.654053 +vt 0.729004 0.630859 +vt 0.729004 0.615967 +vt 0.735840 0.615967 +vt 0.459229 0.571289 +vt 0.475098 0.577637 +vt 0.459229 0.577637 +vt 0.475098 0.571289 +vt 0.479492 0.577637 +vt 0.459229 0.564697 +vt 0.493164 0.577637 +vt 0.493164 0.571289 +vt 0.479492 0.571289 +vt 0.493164 0.564697 +vt 0.475098 0.564697 +vt 0.479492 0.561035 +vt 0.493164 0.561035 +vt 0.479492 0.564697 +vt 0.475098 0.561035 +vt 0.468750 0.561035 +vt 0.459229 0.561035 +vt 0.459229 0.556152 +vt 0.468750 0.556152 +vt 0.468750 0.551758 +vt 0.459229 0.551758 +vt 0.459229 0.546387 +vt 0.476074 0.546387 +vt 0.476074 0.551758 +vt 0.459229 0.540039 +vt 0.480469 0.546387 +vt 0.480469 0.551758 +vt 0.476074 0.539795 +vt 0.494141 0.546387 +vt 0.494141 0.551758 +vt 0.494141 0.539795 +vt 0.480469 0.539795 +vt 0.494141 0.535156 +vt 0.480469 0.535156 +vt 0.476074 0.535156 +vt 0.469482 0.535156 +vt 0.459229 0.535156 +vt 0.459229 0.531006 +vt 0.469482 0.531006 +vt 0.469482 0.523926 +vt 0.459229 0.523926 +vt 0.469482 0.519531 +vt 0.459229 0.519531 +vt 0.459229 0.515625 +vt 0.476807 0.515625 +vt 0.476807 0.519531 +vt 0.459229 0.509033 +vt 0.481201 0.515625 +vt 0.481201 0.519531 +vt 0.494873 0.519531 +vt 0.494873 0.515625 +vt 0.494873 0.509033 +vt 0.476807 0.509033 +vt 0.459229 0.502686 +vt 0.481201 0.509033 +vt 0.494873 0.502686 +vt 0.476807 0.502686 +vt 0.459229 0.496094 +vt 0.481201 0.502686 +vt 0.494873 0.496094 +vt 0.476807 0.496094 +vt 0.481201 0.496094 +vt 0.481201 0.492188 +vt 0.494873 0.492188 +vt 0.476807 0.492188 +vt 0.469482 0.492188 +vt 0.459229 0.492188 +vt 0.459229 0.487793 +vt 0.469482 0.487793 +vt 0.469482 0.480469 +vt 0.459229 0.480469 +vt 0.469482 0.476074 +vt 0.459229 0.476074 +vt 0.459229 0.471680 +vt 0.475830 0.471680 +vt 0.475830 0.476074 +vt 0.459229 0.465332 +vt 0.480225 0.476074 +vt 0.493896 0.476074 +vt 0.493896 0.471680 +vt 0.480225 0.471680 +vt 0.493896 0.465820 +vt 0.480225 0.465332 +vt 0.493896 0.458984 +vt 0.475830 0.465332 +vt 0.459229 0.458496 +vt 0.480225 0.458984 +vt 0.493896 0.452637 +vt 0.480225 0.452637 +vt 0.475830 0.458984 +vt 0.459229 0.452637 +vt 0.475830 0.452637 +vt 0.591797 0.852661 +vt 0.583008 0.849243 +vt 0.585449 0.845581 +vt 0.600098 0.814331 +vt 0.578125 0.840698 +vt 0.570312 0.831421 +vt 0.604004 0.853394 +vt 0.566895 0.824097 +vt 0.616211 0.850220 +vt 0.613281 0.846313 +vt 0.562988 0.826050 +vt 0.560547 0.818115 +vt 0.561523 0.805786 +vt 0.565918 0.794189 +vt 0.625977 0.835815 +vt 0.573730 0.784546 +vt 0.634277 0.833862 +vt 0.629395 0.839844 +vt 0.638672 0.822388 +vt 0.639160 0.809937 +vt 0.636230 0.797974 +vt 0.629395 0.787598 +vt 0.620117 0.779785 +vt 0.611816 0.776733 +vt 0.611328 0.781616 +vt 0.602539 0.780151 +vt 0.590820 0.781250 +vt 0.582520 0.784546 +vt 0.581055 0.779907 +vt 0.452393 0.432129 +vt 0.448975 0.424316 +vt 0.452393 0.424316 +vt 0.448975 0.432129 +vt 0.452393 0.578613 +vt 0.445312 0.424316 +vt 0.448975 0.578613 +vt 0.445312 0.432129 +vt 0.445312 0.578613 +vt 0.441650 0.432129 +vt 0.441650 0.424316 +vt 0.441650 0.578613 +vt 0.437988 0.432129 +vt 0.437988 0.424316 +vt 0.437988 0.578613 +vt 0.434082 0.424316 +vt 0.434082 0.432129 +vt 0.434082 0.578613 +vt 0.430420 0.424316 +vt 0.430420 0.432129 +vt 0.430420 0.578613 +vt 0.426514 0.432129 +vt 0.426514 0.424316 +vt 0.426514 0.578613 +vt 0.422852 0.432129 +vt 0.422852 0.424316 +vt 0.422852 0.578613 +vt 0.418945 0.424316 +vt 0.418945 0.432129 +vt 0.418945 0.578613 +vt 0.415283 0.424316 +vt 0.415283 0.432129 +vt 0.415283 0.578613 +vt 0.411377 0.432129 +vt 0.411377 0.424316 +vt 0.411377 0.578613 +vt 0.407715 0.432129 +vt 0.407715 0.424316 +vt 0.407715 0.578613 +vt 0.404053 0.424316 +vt 0.404053 0.432129 +vt 0.404053 0.578613 +vt 0.400391 0.424316 +vt 0.400391 0.432129 +vt 0.400391 0.578613 +vt 0.396729 0.432129 +vt 0.396729 0.424316 +vt 0.396729 0.578613 +vt 0.393066 0.432129 +vt 0.393066 0.424316 +vt 0.393066 0.578613 +vt 0.496826 0.900269 +vt 0.510254 0.893372 +vt 0.511719 0.897583 +vt 0.498779 0.904358 +vt 0.506836 0.914734 +vt 0.491699 0.902405 +vt 0.493164 0.906738 +vt 0.500000 0.920715 +vt 0.487549 0.908264 +vt 0.486572 0.903809 +vt 0.492432 0.925659 +vt 0.479980 0.909363 +vt 0.482422 0.929016 +vt 0.479492 0.904846 +vt 0.471680 0.929138 +vt 0.472168 0.909363 +vt 0.472412 0.904846 +vt 0.466797 0.904297 +vt 0.466064 0.908813 +vt 0.462158 0.928406 +vt 0.461426 0.903015 +vt 0.453369 0.924988 +vt 0.460205 0.907410 +vt 0.457031 0.901489 +vt 0.455322 0.905884 +vt 0.446289 0.920532 +vt 0.452881 0.899536 +vt 0.450684 0.903564 +vt 0.439941 0.914001 +vt 0.441162 0.897644 +vt 0.443359 0.893616 +vt 0.512207 0.916016 +vt 0.512207 0.923401 +vt 0.509766 0.922241 +vt 0.514648 0.918396 +vt 0.537109 0.926086 +vt 0.537598 0.909058 +vt 0.538086 0.911743 +vt 0.559570 0.927551 +vt 0.559082 0.906372 +vt 0.559570 0.908997 +vt 0.583496 0.905518 +vt 0.583984 0.908142 +vt 0.584473 0.928101 +vt 0.600586 0.905640 +vt 0.600586 0.908264 +vt 0.602051 0.927612 +vt 0.614258 0.908752 +vt 0.614746 0.906067 +vt 0.616211 0.926819 +vt 0.625977 0.909302 +vt 0.626953 0.906677 +vt 0.627930 0.925598 +vt 0.640137 0.918457 +vt 0.642578 0.916626 +vt 0.640625 0.922974 +vt 0.643066 0.921753 +vt 0.361816 0.268066 +vt 0.357666 0.267578 +vt 0.360107 0.265625 +vt 0.359619 0.270020 +vt 0.348633 0.277832 +vt 0.361816 0.277832 +vt 0.351807 0.278809 +vt 0.348633 0.287598 +vt 0.358398 0.278320 +vt 0.351807 0.287598 +vt 0.348633 0.300293 +vt 0.361328 0.288086 +vt 0.364746 0.287598 +vt 0.351807 0.300781 +vt 0.348633 0.316406 +vt 0.364502 0.300781 +vt 0.367920 0.300781 +vt 0.351807 0.316406 +vt 0.348633 0.331055 +vt 0.366211 0.316406 +vt 0.369629 0.316406 +vt 0.364746 0.330566 +vt 0.367920 0.331543 +vt 0.351807 0.331055 +vt 0.360596 0.342773 +vt 0.363281 0.344238 +vt 0.351807 0.345215 +vt 0.348633 0.345215 +vt 0.351807 0.357422 +vt 0.353027 0.358887 +vt 0.348633 0.358887 +vt 0.349609 0.361328 +vt 0.941895 0.982117 +vt 0.952637 0.990547 +vt 0.941895 0.995934 +vt 0.952637 0.979614 +vt 0.977539 0.990547 +vt 0.941895 0.969238 +vt 0.977539 0.979614 +vt 0.952637 0.968811 +vt 0.977539 0.968811 +vt 0.977539 0.957855 +vt 0.952637 0.957855 +vt 0.941895 0.956055 +vt 0.952637 0.949005 +vt 0.941895 0.946686 +vt 0.977539 0.949005 +vt 0.952637 0.940521 +vt 0.977539 0.940521 +vt 0.960449 0.931885 +vt 0.977539 0.931885 +vt 0.977539 0.911072 +vt 0.960449 0.911072 +vt 0.960449 0.902954 +vt 0.977539 0.902954 +vt 0.960449 0.894897 +vt 0.977539 0.894897 +vt 0.960449 0.886841 +vt 0.977539 0.886841 +vt 0.960449 0.878784 +vt 0.977539 0.878784 +vt 0.960449 0.870972 +vt 0.977539 0.870972 +vt 0.960449 0.863281 +vt 0.977539 0.863281 +vt 0.977539 0.810547 +vt 0.960449 0.810547 +vt 0.961426 0.801636 +vt 0.977539 0.801636 +vt 0.951660 0.801636 +vt 0.977539 0.793335 +vt 0.961426 0.793335 +vt 0.943848 0.793335 +vt 0.943848 0.787720 +vt 0.961426 0.787720 +vt 0.977539 0.787720 +vt 0.977539 0.777344 +vt 0.961426 0.777344 +vt 0.943848 0.777344 +vt 0.977539 0.767334 +vt 0.961426 0.767334 +vt 0.943848 0.767334 +vt 0.961426 0.757080 +vt 0.943848 0.757080 +vt 0.977539 0.757080 +vt 0.943848 0.746826 +vt 0.961426 0.746826 +vt 0.977539 0.746826 +vt 0.943848 0.734863 +vt 0.961426 0.734863 +vt 0.977539 0.734863 +vt 0.943848 0.608154 +vt 0.961426 0.608154 +vt 0.977539 0.608154 +vt 0.977539 0.593018 +vt 0.961426 0.593018 +vt 0.943848 0.593018 +vt 0.977539 0.579590 +vt 0.961426 0.579590 +vt 0.943848 0.579590 +vt 0.977539 0.568848 +vt 0.961426 0.568848 +vt 0.943848 0.568848 +vt 0.943848 0.562500 +vt 0.961426 0.559082 +vt 0.977539 0.557373 +vt 0.978516 0.144531 +vt 0.991699 0.133301 +vt 0.996582 0.144531 +vt 0.976074 0.133301 +vt 0.989746 0.123535 +vt 0.866211 0.144531 +vt 0.975586 0.123535 +vt 0.989258 0.112305 +vt 0.865234 0.133301 +vt 0.855469 0.144531 +vt 0.975586 0.112305 +vt 0.854492 0.133301 +vt 0.864258 0.123535 +vt 0.844727 0.133301 +vt 0.845215 0.144531 +vt 0.854004 0.123535 +vt 0.864258 0.112305 +vt 0.975586 0.101074 +vt 0.989746 0.101074 +vt 0.864258 0.101074 +vt 0.976074 0.091309 +vt 0.991699 0.091309 +vt 0.978516 0.080078 +vt 0.996582 0.080078 +vt 0.866211 0.080078 +vt 0.864746 0.091309 +vt 0.855469 0.080078 +vt 0.854492 0.091309 +vt 0.854004 0.101074 +vt 0.844727 0.091309 +vt 0.845215 0.080078 +vt 0.854004 0.112305 +vt 0.844238 0.101074 +vt 0.833008 0.091309 +vt 0.833496 0.080078 +vt 0.833008 0.101074 +vt 0.844238 0.112305 +vt 0.821289 0.091309 +vt 0.821289 0.080078 +vt 0.832520 0.112305 +vt 0.844238 0.123535 +vt 0.833008 0.123535 +vt 0.821289 0.112305 +vt 0.821289 0.101074 +vt 0.833008 0.133301 +vt 0.833496 0.144531 +vt 0.821289 0.123535 +vt 0.821289 0.133301 +vt 0.821289 0.144531 +vt 0.810547 0.112305 +vt 0.810547 0.123535 +vt 0.810059 0.133301 +vt 0.809570 0.144531 +vt 0.799316 0.132812 +vt 0.797852 0.144531 +vt 0.788086 0.144043 +vt 0.799805 0.123047 +vt 0.790039 0.131836 +vt 0.775879 0.140625 +vt 0.791016 0.122559 +vt 0.779297 0.130371 +vt 0.770020 0.126953 +vt 0.766113 0.134766 +vt 0.780273 0.121582 +vt 0.799805 0.112305 +vt 0.791504 0.112305 +vt 0.772949 0.120605 +vt 0.799805 0.101562 +vt 0.780762 0.112305 +vt 0.791016 0.102051 +vt 0.780273 0.103027 +vt 0.773926 0.112305 +vt 0.772949 0.104492 +vt 0.779297 0.094238 +vt 0.770020 0.097656 +vt 0.790039 0.092773 +vt 0.775879 0.083984 +vt 0.766113 0.089844 +vt 0.788086 0.080566 +vt 0.764160 0.102051 +vt 0.759277 0.096680 +vt 0.755371 0.104492 +vt 0.799316 0.091797 +vt 0.797852 0.080078 +vt 0.809570 0.080078 +vt 0.810547 0.101074 +vt 0.810059 0.091309 +vt 0.760254 0.106934 +vt 0.754395 0.112305 +vt 0.765137 0.109375 +vt 0.758789 0.112305 +vt 0.760254 0.117676 +vt 0.755371 0.120117 +vt 0.765137 0.112305 +vt 0.764160 0.122559 +vt 0.759277 0.127930 +vt 0.765137 0.115234 +vt 0.768555 0.118164 +vt 0.770020 0.112305 +vt 0.768555 0.106445 +vt 0.753906 0.154297 +vt 0.765625 0.154297 +vt 0.765625 0.157715 +vt 0.753906 0.157715 +vt 0.729004 0.154297 +vt 0.729004 0.157715 +vt 0.731934 0.150391 +vt 0.716797 0.154297 +vt 0.750977 0.150391 +vt 0.731934 0.140137 +vt 0.750977 0.140137 +vt 0.731934 0.118652 +vt 0.750977 0.118652 +vt 0.750977 0.097656 +vt 0.731934 0.097656 +vt 0.750977 0.087402 +vt 0.731934 0.087402 +vt 0.753906 0.083496 +vt 0.729004 0.083496 +vt 0.765625 0.080078 +vt 0.765625 0.083496 +vt 0.753906 0.080078 +vt 0.729004 0.080078 +vt 0.716797 0.083496 +vt 0.704590 0.080078 +vt 0.692383 0.083496 +vt 0.713867 0.087402 +vt 0.695312 0.087402 +vt 0.695312 0.097656 +vt 0.680176 0.083496 +vt 0.713867 0.097656 +vt 0.656250 0.080078 +vt 0.695312 0.118652 +vt 0.713867 0.118652 +vt 0.713867 0.140137 +vt 0.695312 0.140137 +vt 0.713867 0.150391 +vt 0.695312 0.150391 +vt 0.692383 0.154297 +vt 0.704590 0.157715 +vt 0.680176 0.154297 +vt 0.655762 0.157715 +vt 0.655273 0.154297 +vt 0.643555 0.154297 +vt 0.658203 0.150391 +vt 0.630859 0.157715 +vt 0.677246 0.150391 +vt 0.677246 0.140137 +vt 0.658203 0.140137 +vt 0.658203 0.118652 +vt 0.677246 0.118652 +vt 0.677246 0.097656 +vt 0.658203 0.097656 +vt 0.658203 0.087402 +vt 0.677246 0.087402 +vt 0.655273 0.083496 +vt 0.643555 0.083496 +vt 0.630859 0.080078 +vt 0.618652 0.083496 +vt 0.640625 0.087402 +vt 0.606445 0.083496 +vt 0.621582 0.087402 +vt 0.589844 0.080078 +vt 0.640625 0.097656 +vt 0.621582 0.097656 +vt 0.621582 0.118652 +vt 0.640625 0.118652 +vt 0.640625 0.140137 +vt 0.621582 0.140137 +vt 0.621582 0.150391 +vt 0.640625 0.150391 +vt 0.618652 0.154297 +vt 0.605957 0.154297 +vt 0.589844 0.157715 +vt 0.603516 0.150391 +vt 0.589844 0.140625 +vt 0.603516 0.140625 +vt 0.589844 0.150391 +vt 0.574707 0.150391 +vt 0.574707 0.157715 +vt 0.574707 0.140625 +vt 0.583984 0.137207 +vt 0.574707 0.137207 +vt 0.553711 0.140625 +vt 0.548828 0.150391 +vt 0.548828 0.157715 +vt 0.548828 0.140625 +vt 0.603516 0.087402 +vt 0.589844 0.096680 +vt 0.603516 0.096680 +vt 0.589844 0.087402 +vt 0.574707 0.087402 +vt 0.574707 0.080078 +vt 0.574707 0.096680 +vt 0.583984 0.100586 +vt 0.574707 0.100586 +vt 0.553711 0.096680 +vt 0.548340 0.087402 +vt 0.548340 0.080078 +vt 0.548340 0.096680 +vt 0.533203 0.164062 +vt 0.575195 0.164062 +vt 0.533203 0.190430 +vt 0.575195 0.210938 +vt 0.533203 0.210938 +vt 0.526855 0.210938 +vt 0.526855 0.190430 +vt 0.493164 0.845581 +vt 0.517578 0.845581 +vt 0.517578 0.822632 +vt 0.493164 0.822632 +vt 0.476562 0.822632 +vt 0.473145 0.825195 +vt 0.473145 0.845581 +vt 0.744629 0.602539 +vt 0.759766 0.596680 +vt 0.752441 0.607910 +vt 0.751465 0.591553 +vt 0.740723 0.593994 +vt 0.743164 0.588623 +vt 0.737305 0.598633 +vt 0.752930 0.586426 +vt 0.738281 0.608398 +vt 0.743652 0.583008 +vt 0.732422 0.602051 +vt 0.753418 0.581543 +vt 0.731445 0.611084 +vt 0.752930 0.576416 +vt 0.727051 0.604248 +vt 0.743164 0.577148 +vt 0.726562 0.612061 +vt 0.751465 0.571289 +vt 0.721191 0.604980 +vt 0.740723 0.571777 +vt 0.721191 0.612549 +vt 0.748047 0.566162 +vt 0.715820 0.611816 +vt 0.715332 0.604248 +vt 0.710449 0.610107 +vt 0.709961 0.602051 +vt 0.705566 0.607422 +vt 0.705566 0.598389 +vt 0.700684 0.604004 +vt 0.697266 0.599609 +vt 0.702148 0.593994 +vt 0.694336 0.593750 +vt 0.699707 0.588623 +vt 0.737305 0.567383 +vt 0.691895 0.580811 +vt 0.699219 0.582764 +vt 0.683105 0.589844 +vt 0.684570 0.595703 +vt 0.699707 0.577148 +vt 0.682617 0.578125 +vt 0.694336 0.569824 +vt 0.685059 0.567871 +vt 0.702148 0.571777 +vt 0.697266 0.565186 +vt 0.705566 0.567139 +vt 0.699219 0.562012 +vt 0.702148 0.558594 +vt 0.710449 0.563721 +vt 0.705566 0.555908 +vt 0.715820 0.561523 +vt 0.709961 0.553711 +vt 0.715332 0.552002 +vt 0.721680 0.560791 +vt 0.722656 0.551514 +vt 0.729004 0.552734 +vt 0.727051 0.561523 +vt 0.732422 0.563721 +vt 0.738770 0.545654 +vt 0.732422 0.543457 +vt 0.739258 0.560059 +vt 0.744629 0.549072 +vt 0.749512 0.552979 +vt 0.753906 0.557373 +vt 0.755859 0.559570 +vt 0.479492 0.688965 +vt 0.479492 0.639160 +vt 0.484619 0.644043 +vt 0.485840 0.646240 +vt 0.485840 0.688965 +vt 0.485840 0.731689 +vt 0.484375 0.734131 +vt 0.479492 0.738525 +vt 0.075073 0.496582 +vt 0.078369 0.488281 +vt 0.078369 0.498047 +vt 0.072571 0.494141 +vt 0.071533 0.491211 +vt 0.071533 0.488281 +vt 0.071533 0.462891 +vt 0.078369 0.452148 +vt 0.071533 0.441406 +vt 0.078369 0.416016 +vt 0.071533 0.416016 +vt 0.071533 0.413086 +vt 0.072571 0.410645 +vt 0.075073 0.407715 +vt 0.078369 0.406250 +vt 0.169189 0.599365 +vt 0.166260 0.600586 +vt 0.166260 0.592285 +vt 0.171387 0.597168 +vt 0.172241 0.594971 +vt 0.172241 0.592285 +vt 0.172241 0.570068 +vt 0.166260 0.560303 +vt 0.172241 0.550781 +vt 0.166260 0.528564 +vt 0.172241 0.528564 +vt 0.172241 0.525879 +vt 0.171387 0.523682 +vt 0.169189 0.521240 +vt 0.166260 0.520264 +vt 0.520996 0.782471 +vt 0.546387 0.782471 +vt 0.546387 0.799072 +vt 0.495850 0.799072 +vt 0.495850 0.782471 +vt 0.520996 0.799072 +vt 0.543457 0.806396 +vt 0.498779 0.806396 +vt 0.520996 0.806396 +vt 0.543457 0.817383 +vt 0.498779 0.817383 +vt 0.520996 0.817383 +vt 0.646973 0.622559 +vt 0.650879 0.620117 +vt 0.657227 0.627197 +vt 0.648438 0.630615 +vt 0.642090 0.624023 +vt 0.658203 0.628174 +vt 0.638672 0.633057 +vt 0.660645 0.624023 +vt 0.637207 0.624512 +vt 0.661621 0.627197 +vt 0.632812 0.624023 +vt 0.666992 0.624756 +vt 0.627930 0.635010 +vt 0.664551 0.620117 +vt 0.672852 0.619629 +vt 0.667969 0.615967 +vt 0.670898 0.610596 +vt 0.677246 0.611328 +vt 0.673340 0.603760 +vt 0.679199 0.604004 +vt 0.680176 0.594482 +vt 0.665527 0.595459 +vt 0.665039 0.600342 +vt 0.665527 0.588867 +vt 0.679199 0.585205 +vt 0.663574 0.583740 +vt 0.677246 0.577881 +vt 0.661621 0.579346 +vt 0.672852 0.569580 +vt 0.659180 0.576172 +vt 0.666992 0.564209 +vt 0.655762 0.573242 +vt 0.662109 0.561768 +vt 0.652832 0.571533 +vt 0.658691 0.560791 +vt 0.649414 0.569580 +vt 0.651367 0.560547 +vt 0.648926 0.558350 +vt 0.640625 0.558350 +vt 0.638672 0.555664 +vt 0.629883 0.558594 +vt 0.628418 0.553467 +vt 0.623047 0.560547 +vt 0.619141 0.555176 +vt 0.612305 0.558350 +vt 0.620117 0.571777 +vt 0.625000 0.569336 +vt 0.606445 0.562744 +vt 0.616211 0.574951 +vt 0.601074 0.569092 +vt 0.612793 0.579102 +vt 0.596680 0.577393 +vt 0.610352 0.583984 +vt 0.594238 0.585938 +vt 0.608887 0.589111 +vt 0.608398 0.594238 +vt 0.593750 0.594238 +vt 0.608398 0.599121 +vt 0.594238 0.602295 +vt 0.609375 0.603760 +vt 0.596680 0.610840 +vt 0.612305 0.610352 +vt 0.601074 0.619385 +vt 0.611816 0.622559 +vt 0.616699 0.615234 +vt 0.606445 0.625488 +vt 0.611816 0.630127 +vt 0.618652 0.633301 +vt 0.624023 0.630859 +vt 0.628906 0.623047 +vt 0.662109 0.928955 +vt 0.648926 0.928955 +vt 0.648926 0.926819 +vt 0.662109 0.926819 +vt 0.648926 0.898010 +vt 0.662109 0.898010 +vt 0.675293 0.926819 +vt 0.675293 0.928955 +vt 0.675293 0.898010 +vt 0.683594 0.926819 +vt 0.683594 0.928955 +vt 0.683594 0.898010 +vt 0.520996 0.653076 +vt 0.493164 0.648682 +vt 0.520996 0.648682 +vt 0.493164 0.653076 +vt 0.520996 0.659912 +vt 0.490967 0.653076 +vt 0.490967 0.648682 +vt 0.493164 0.659912 +vt 0.520996 0.666748 +vt 0.490967 0.659912 +vt 0.493164 0.666748 +vt 0.490967 0.666748 +vt 0.520996 0.674072 +vt 0.490967 0.674072 +vt 0.493164 0.674072 +vt 0.493164 0.682129 +vt 0.520996 0.682129 +vt 0.490967 0.682129 +vt 0.354736 0.362793 +vt 0.349121 0.368652 +vt 0.349121 0.365234 +vt 0.354736 0.367676 +vt 0.381592 0.362793 +vt 0.354736 0.418945 +vt 0.349121 0.418457 +vt 0.349121 0.425781 +vt 0.381592 0.367676 +vt 0.354736 0.426270 +vt 0.386719 0.368652 +vt 0.386719 0.365234 +vt 0.349121 0.433105 +vt 0.381592 0.418945 +vt 0.386719 0.418457 +vt 0.386719 0.425781 +vt 0.381592 0.426270 +vt 0.386719 0.433105 +vt 0.354736 0.433105 +vt 0.381592 0.433105 +vt 0.354736 0.441406 +vt 0.349121 0.442383 +vt 0.349121 0.450684 +vt 0.381592 0.441406 +vt 0.386719 0.442383 +vt 0.386719 0.450684 +vt 0.354736 0.449219 +vt 0.381592 0.449219 +vt 0.381592 0.473633 +vt 0.386719 0.473633 +vt 0.354736 0.473633 +vt 0.349121 0.473633 +vt 0.381592 0.486328 +vt 0.386719 0.486328 +vt 0.386719 0.500732 +vt 0.354736 0.486328 +vt 0.349121 0.486328 +vt 0.349121 0.500732 +vt 0.354736 0.500732 +vt 0.349121 0.545166 +vt 0.381592 0.500732 +vt 0.386719 0.545166 +vt 0.354736 0.545166 +vt 0.349121 0.564453 +vt 0.354736 0.564453 +vt 0.381592 0.564453 +vt 0.381592 0.545166 +vt 0.386719 0.564453 +vt 0.231934 0.351074 +vt 0.238159 0.333496 +vt 0.238159 0.351074 +vt 0.231934 0.333496 +vt 0.222168 0.351074 +vt 0.231934 0.315918 +vt 0.238159 0.315918 +vt 0.222168 0.333496 +vt 0.215820 0.351074 +vt 0.215820 0.333496 +vt 0.222168 0.315918 +vt 0.215820 0.315918 +vt 0.222168 0.304688 +vt 0.215820 0.304688 +vt 0.231934 0.304688 +vt 0.238159 0.304688 +vt 0.222168 0.294922 +vt 0.215820 0.294922 +vt 0.215820 0.285645 +vt 0.231934 0.294922 +vt 0.238159 0.294922 +vt 0.238159 0.285645 +vt 0.222168 0.285645 +vt 0.215820 0.276855 +vt 0.231934 0.285645 +vt 0.238159 0.276855 +vt 0.222168 0.276855 +vt 0.215820 0.266602 +vt 0.222168 0.266602 +vt 0.231934 0.266602 +vt 0.231934 0.276855 +vt 0.238159 0.266602 +vt 0.138550 0.787842 +vt 0.163696 0.785522 +vt 0.137573 0.781616 +vt 0.162476 0.791748 +vt 0.136719 0.792725 +vt 0.198853 0.795532 +vt 0.200317 0.790039 +vt 0.213501 0.804688 +vt 0.162964 0.803223 +vt 0.157104 0.806641 +vt 0.131958 0.797363 +vt 0.207031 0.805298 +vt 0.213501 0.860962 +vt 0.207031 0.860962 +vt 0.162964 0.860962 +vt 0.157104 0.860962 +vt 0.029556 0.144043 +vt 0.029556 0.201172 +vt 0.011955 0.144043 +vt 0.011955 0.258301 +vt 0.029556 0.258301 +vt 0.011955 0.201172 +vt 0.006355 0.146973 +vt 0.006355 0.255371 +vt 0.006355 0.201172 +vt 0.107910 0.370117 +vt 0.116760 0.404297 +vt 0.107910 0.404297 +vt 0.139038 0.325684 +vt 0.107910 0.325684 +vt 0.139038 0.370117 +vt 0.139038 0.404297 +vt 0.161743 0.404297 +vt 0.170044 0.370117 +vt 0.170044 0.325684 +vt 0.170044 0.404297 +vt 0.387695 0.123047 +vt 0.387695 0.138184 +vt 0.384766 0.123047 +vt 0.384766 0.152832 +vt 0.387695 0.152832 +vt 0.384766 0.138184 +vt 0.326416 0.123047 +vt 0.326416 0.152832 +vt 0.326416 0.138184 +vt 0.265137 0.123047 +vt 0.265137 0.152832 +vt 0.265137 0.138184 +vt 0.226685 0.123047 +vt 0.226685 0.152832 +vt 0.226685 0.138184 +vt 0.465332 0.833374 +vt 0.462402 0.852417 +vt 0.458740 0.850342 +vt 0.461670 0.832764 +vt 0.467285 0.822632 +vt 0.463379 0.822021 +vt 0.447021 0.829224 +vt 0.444336 0.852295 +vt 0.448730 0.817749 +vt 0.439941 0.827026 +vt 0.434570 0.852051 +vt 0.442139 0.813599 +vt 0.423828 0.851318 +vt 0.426270 0.822754 +vt 0.437256 0.807495 +vt 0.410645 0.849487 +vt 0.423584 0.795166 +vt 0.434570 0.798950 +vt 0.435791 0.789551 +vt 0.438232 0.781860 +vt 0.410645 0.817871 +vt 0.391846 0.844971 +vt 0.431885 0.763062 +vt 0.443115 0.775635 +vt 0.449219 0.771606 +vt 0.410645 0.791504 +vt 0.391846 0.811890 +vt 0.375244 0.840210 +vt 0.449219 0.757812 +vt 0.459717 0.769775 +vt 0.375244 0.807007 +vt 0.355713 0.833740 +vt 0.391846 0.785889 +vt 0.350586 0.800903 +vt 0.350586 0.834961 +vt 0.355713 0.801514 +vt 0.350586 0.774780 +vt 0.375244 0.780884 +vt 0.355713 0.775391 +vt 0.350586 0.739990 +vt 0.391846 0.751465 +vt 0.355713 0.740723 +vt 0.350586 0.569580 +vt 0.355713 0.569824 +vt 0.375244 0.581787 +vt 0.375244 0.746338 +vt 0.391846 0.587158 +vt 0.410645 0.589355 +vt 0.410645 0.756714 +vt 0.431885 0.588135 +vt 0.449219 0.585205 +vt 0.459717 0.756348 +vt 0.459717 0.582520 +vt 0.471924 0.588135 +vt 0.471924 0.758911 +vt 0.471924 0.773926 +vt 0.475586 0.588867 +vt 0.475586 0.774048 +vt 0.475586 0.759033 +vt 0.599121 0.295898 +vt 0.616211 0.272949 +vt 0.616211 0.295898 +vt 0.599121 0.272949 +vt 0.616211 0.266113 +vt 0.595703 0.272949 +vt 0.595703 0.295898 +vt 0.599121 0.266113 +vt 0.595703 0.266113 +vt 0.616211 0.257324 +vt 0.599121 0.257324 +vt 0.595703 0.257324 +vt 0.597168 0.246582 +vt 0.600098 0.247070 +vt 0.616699 0.247070 +vt 0.629395 0.257324 +vt 0.604004 0.230957 +vt 0.601074 0.229492 +vt 0.608398 0.217285 +vt 0.610840 0.219727 +vt 0.618164 0.209961 +vt 0.618652 0.232422 +vt 0.619629 0.212891 +vt 0.629395 0.207031 +vt 0.629395 0.247070 +vt 0.629395 0.232422 +vt 0.629395 0.210449 +vt 0.639160 0.212891 +vt 0.640137 0.209961 +vt 0.640137 0.232422 +vt 0.647461 0.219727 +vt 0.649902 0.217285 +vt 0.641602 0.247070 +vt 0.654785 0.230957 +vt 0.657715 0.229492 +vt 0.642090 0.257324 +vt 0.661621 0.246582 +vt 0.658203 0.247070 +vt 0.658203 0.257324 +vt 0.661621 0.257324 +vt 0.661621 0.266113 +vt 0.658203 0.266113 +vt 0.642090 0.266113 +vt 0.661621 0.272949 +vt 0.658203 0.272949 +vt 0.642090 0.272949 +vt 0.658203 0.295898 +vt 0.661621 0.295898 +vt 0.642090 0.295898 +vt 0.734863 0.395020 +vt 0.727539 0.408691 +vt 0.727539 0.395020 +vt 0.734863 0.408691 +vt 0.742188 0.395020 +vt 0.742188 0.408691 +vt 0.734863 0.539795 +vt 0.727539 0.539795 +vt 0.742188 0.539795 +vt 0.874023 0.292969 +vt 0.883301 0.304688 +vt 0.874023 0.301758 +vt 0.888184 0.297852 +vt 0.891602 0.312012 +vt 0.874023 0.288574 +vt 0.890137 0.293945 +vt 0.897949 0.306152 +vt 0.902832 0.304199 +vt 0.891602 0.414551 +vt 0.902832 0.437988 +vt 0.897949 0.437500 +vt 0.870605 0.439453 +vt 0.870605 0.414551 +vt 0.891113 0.449219 +vt 0.894531 0.453613 +vt 0.884277 0.459473 +vt 0.882324 0.454102 +vt 0.870605 0.457031 +vt 0.870605 0.462891 +vt 0.247437 0.272461 +vt 0.241577 0.272461 +vt 0.241577 0.268066 +vt 0.241577 0.263672 +vt 0.242188 0.259766 +vt 0.243286 0.257812 +vt 0.245239 0.256348 +vt 0.249634 0.254883 +vt 0.257568 0.253418 +vt 0.247437 0.287109 +vt 0.257568 0.306152 +vt 0.249634 0.304688 +vt 0.245239 0.303711 +vt 0.243286 0.302246 +vt 0.242188 0.300293 +vt 0.241577 0.295898 +vt 0.241577 0.291504 +vt 0.241577 0.287109 +vt 0.173218 0.384766 +vt 0.173218 0.382324 +vt 0.187622 0.382324 +vt 0.173218 0.390137 +vt 0.174194 0.396973 +vt 0.176758 0.401367 +vt 0.181152 0.404785 +vt 0.187866 0.406738 +vt 0.197754 0.408691 +vt 0.201782 0.409180 +vt 0.187622 0.359375 +vt 0.201782 0.332031 +vt 0.197754 0.332520 +vt 0.187866 0.334473 +vt 0.181152 0.336426 +vt 0.176758 0.339844 +vt 0.174194 0.344238 +vt 0.173218 0.351074 +vt 0.173218 0.356445 +vt 0.173218 0.359375 +vt 0.133667 0.411621 +vt 0.082703 0.456055 +vt 0.082703 0.411621 +vt 0.183472 0.411621 +vt 0.183472 0.456055 +vt 0.133667 0.456055 +vt 0.133667 0.496094 +vt 0.082703 0.496094 +vt 0.183472 0.496094 +vt 0.085754 0.500732 +vt 0.181396 0.500732 +vt 0.133667 0.500732 +vt 0.089600 0.506104 +vt 0.177612 0.506104 +vt 0.095825 0.511719 +vt 0.171387 0.511719 +vt 0.105103 0.516113 +vt 0.162109 0.516113 +vt 0.119812 0.520020 +vt 0.147217 0.520020 +vt 0.133667 0.521240 +vt 0.789062 0.904419 +vt 0.766602 0.896973 +vt 0.789062 0.896973 +vt 0.811523 0.896973 +vt 0.758301 0.904419 +vt 0.819824 0.904419 +vt 0.789062 0.909668 +vt 0.758301 0.909668 +vt 0.819824 0.909668 +vt 0.789062 0.922668 +vt 0.758301 0.922668 +vt 0.819824 0.922668 +vt 0.789062 0.927917 +vt 0.758301 0.927917 +vt 0.819824 0.927917 +vt 0.766602 0.935486 +vt 0.811523 0.935486 +vt 0.789062 0.935486 +vt 0.483643 0.614014 +vt 0.481934 0.632568 +vt 0.481934 0.614014 +vt 0.481934 0.595459 +vt 0.483643 0.635742 +vt 0.483643 0.592529 +vt 0.488037 0.614014 +vt 0.488037 0.640381 +vt 0.488037 0.587646 +vt 0.494873 0.614014 +vt 0.494873 0.643066 +vt 0.494873 0.584961 +vt 0.507812 0.614014 +vt 0.507812 0.643066 +vt 0.507812 0.584961 +vt 0.513184 0.643066 +vt 0.513184 0.584961 +vt 0.513184 0.614014 +vt 0.520996 0.635254 +vt 0.520996 0.592529 +vt 0.520996 0.614014 +vt 0.918457 0.898987 +vt 0.876465 0.908386 +vt 0.876465 0.898987 +vt 0.834473 0.898987 +vt 0.928711 0.908386 +vt 0.824219 0.908386 +vt 0.876465 0.935181 +vt 0.928711 0.935181 +vt 0.824219 0.935181 +vt 0.928711 0.941193 +vt 0.824219 0.941193 +vt 0.876465 0.941193 +vt 0.835938 0.708740 +vt 0.813477 0.713623 +vt 0.811035 0.707275 +vt 0.814453 0.720215 +vt 0.806641 0.701904 +vt 0.828613 0.729736 +vt 0.813477 0.727051 +vt 0.811035 0.733154 +vt 0.822754 0.745605 +vt 0.806641 0.738525 +vt 0.817871 0.751953 +vt 0.833008 0.753662 +vt 0.801758 0.742676 +vt 0.831543 0.759399 +vt 0.811035 0.758301 +vt 0.818359 0.775391 +vt 0.815918 0.776245 +vt 0.805176 0.761597 +vt 0.795410 0.745361 +vt 0.789062 0.776245 +vt 0.789062 0.761963 +vt 0.789062 0.746338 +vt 0.782227 0.745361 +vt 0.772949 0.761597 +vt 0.762207 0.776245 +vt 0.776367 0.742676 +vt 0.766602 0.758301 +vt 0.759766 0.775391 +vt 0.746582 0.759399 +vt 0.759766 0.751953 +vt 0.745117 0.753662 +vt 0.770996 0.738525 +vt 0.754883 0.745605 +vt 0.767090 0.733154 +vt 0.749512 0.729736 +vt 0.764648 0.727051 +vt 0.763672 0.720215 +vt 0.742188 0.708740 +vt 0.764648 0.713623 +vt 0.767090 0.707275 +vt 0.770996 0.701904 +vt 0.762695 0.681396 +vt 0.737305 0.694336 +vt 0.776367 0.697754 +vt 0.727051 0.660645 +vt 0.782227 0.695068 +vt 0.789062 0.660645 +vt 0.789062 0.677246 +vt 0.789062 0.694336 +vt 0.795410 0.695068 +vt 0.815430 0.681396 +vt 0.851074 0.660645 +vt 0.801758 0.697754 +vt 0.840820 0.694336 +vt 0.849609 0.494141 +vt 0.847168 0.492676 +vt 0.849609 0.492676 +vt 0.849609 0.414062 +vt 0.847168 0.494141 +vt 0.847168 0.414062 +vt 0.844727 0.492676 +vt 0.844727 0.494141 +vt 0.844727 0.414062 +vt 0.842773 0.492676 +vt 0.842773 0.494141 +vt 0.842773 0.414062 +vt 0.840332 0.494141 +vt 0.840332 0.492676 +vt 0.840332 0.414062 +vt 0.837891 0.494141 +vt 0.837891 0.492676 +vt 0.837891 0.414062 +vt 0.835938 0.494141 +vt 0.835938 0.492676 +vt 0.835938 0.414062 +vt 0.833496 0.492676 +vt 0.833496 0.494141 +vt 0.833496 0.414062 +vt 0.831055 0.492676 +vt 0.831055 0.494141 +vt 0.831055 0.414062 +vt 0.828613 0.492676 +vt 0.828613 0.494141 +vt 0.828613 0.414062 +vt 0.826660 0.494141 +vt 0.826660 0.492676 +vt 0.826660 0.414062 +vt 0.824219 0.494141 +vt 0.824219 0.492676 +vt 0.824219 0.414062 +vt 0.821777 0.494141 +vt 0.821777 0.414062 +vt 0.821777 0.492676 +vt 0.268555 0.551758 +vt 0.254639 0.549805 +vt 0.268555 0.549805 +vt 0.291748 0.549805 +vt 0.253418 0.551758 +vt 0.292236 0.551758 +vt 0.268555 0.562256 +vt 0.253418 0.562256 +vt 0.292236 0.562256 +vt 0.254639 0.564453 +vt 0.291748 0.564453 +vt 0.268555 0.564453 +vt 0.822754 0.959351 +vt 0.801758 0.952881 +vt 0.822754 0.952881 +vt 0.836426 0.952881 +vt 0.801758 0.959351 +vt 0.836426 0.959351 +vt 0.822754 0.966980 +vt 0.801758 0.966980 +vt 0.836426 0.966980 +vt 0.801758 0.973450 +vt 0.836426 0.973450 +vt 0.822754 0.973450 +vt 0.631836 0.343750 +vt 0.631836 0.304688 +vt 0.635254 0.306152 +vt 0.635254 0.343750 +vt 0.622070 0.304688 +vt 0.631836 0.347168 +vt 0.635254 0.347168 +vt 0.622070 0.343750 +vt 0.612305 0.343750 +vt 0.612305 0.304688 +vt 0.608887 0.306152 +vt 0.608887 0.343750 +vt 0.622070 0.347168 +vt 0.612305 0.347168 +vt 0.608887 0.347168 +vt 0.612305 0.350586 +vt 0.608887 0.350586 +vt 0.631836 0.350586 +vt 0.635254 0.350586 +vt 0.622070 0.350586 +vt 0.631836 0.354004 +vt 0.635254 0.354004 +vt 0.622070 0.354004 +vt 0.612305 0.354004 +vt 0.608887 0.354004 +vt 0.631836 0.357422 +vt 0.635254 0.357422 +vt 0.635254 0.360352 +vt 0.612305 0.357422 +vt 0.608887 0.357422 +vt 0.608887 0.360352 +vt 0.622070 0.357422 +vt 0.631836 0.360352 +vt 0.635254 0.363770 +vt 0.622070 0.360352 +vt 0.612305 0.360352 +vt 0.608887 0.363770 +vt 0.631836 0.363770 +vt 0.635254 0.374023 +vt 0.612305 0.363770 +vt 0.608887 0.374023 +vt 0.622070 0.363770 +vt 0.622070 0.375000 +vt 0.631836 0.375000 +vt 0.612305 0.375000 +vt 0.636230 0.380371 +vt 0.639648 0.379883 +vt 0.622070 0.380371 +vt 0.607910 0.380371 +vt 0.604492 0.379883 +vt 0.622070 0.388184 +vt 0.602051 0.387695 +vt 0.598145 0.386719 +vt 0.596191 0.394043 +vt 0.642090 0.387695 +vt 0.645996 0.386719 +vt 0.647949 0.394043 +vt 0.622070 0.394043 +vt 0.601562 0.394043 +vt 0.642578 0.394043 +vt 0.601562 0.400879 +vt 0.596191 0.400879 +vt 0.596191 0.409180 +vt 0.622070 0.400879 +vt 0.601562 0.409180 +vt 0.596191 0.420410 +vt 0.622070 0.409180 +vt 0.642578 0.400879 +vt 0.647949 0.400879 +vt 0.647949 0.409180 +vt 0.642578 0.409180 +vt 0.647949 0.420410 +vt 0.622070 0.420410 +vt 0.642578 0.420410 +vt 0.642578 0.450684 +vt 0.647949 0.450684 +vt 0.647949 0.458496 +vt 0.601562 0.420410 +vt 0.601562 0.450684 +vt 0.596191 0.450684 +vt 0.596191 0.458496 +vt 0.622070 0.450684 +vt 0.642578 0.458496 +vt 0.601562 0.458496 +vt 0.622070 0.458496 +vt 0.642578 0.466309 +vt 0.647949 0.466309 +vt 0.622070 0.466309 +vt 0.601562 0.466309 +vt 0.596191 0.466309 +vt 0.622070 0.475586 +vt 0.642578 0.475586 +vt 0.647949 0.475586 +vt 0.601562 0.475586 +vt 0.596191 0.475586 +vt 0.622070 0.485840 +vt 0.642578 0.485840 +vt 0.647949 0.485840 +vt 0.647949 0.495605 +vt 0.601562 0.485840 +vt 0.596191 0.485840 +vt 0.596191 0.495605 +vt 0.642578 0.495605 +vt 0.647949 0.505371 +vt 0.601562 0.495605 +vt 0.596191 0.505371 +vt 0.622070 0.495605 +vt 0.642578 0.505371 +vt 0.647949 0.514648 +vt 0.601562 0.505371 +vt 0.596191 0.514648 +vt 0.622070 0.505371 +vt 0.642578 0.514648 +vt 0.647949 0.521973 +vt 0.622070 0.514648 +vt 0.601562 0.514648 +vt 0.596191 0.521973 +vt 0.622070 0.521973 +vt 0.642578 0.521973 +vt 0.647949 0.527588 +vt 0.601562 0.521973 +vt 0.596191 0.527588 +vt 0.642578 0.527588 +vt 0.647949 0.533447 +vt 0.601562 0.527588 +vt 0.596191 0.533447 +vt 0.622070 0.527588 +vt 0.642578 0.533447 +vt 0.646973 0.538086 +vt 0.601562 0.533447 +vt 0.597656 0.538086 +vt 0.622070 0.533447 +vt 0.641602 0.537842 +vt 0.641113 0.543457 +vt 0.602539 0.537842 +vt 0.603027 0.543457 +vt 0.622070 0.537842 +vt 0.636719 0.542236 +vt 0.634766 0.549072 +vt 0.632324 0.546875 +vt 0.607422 0.542236 +vt 0.609375 0.549072 +vt 0.611816 0.546875 +vt 0.622070 0.542480 +vt 0.622070 0.546875 +vt 0.793457 0.327148 +vt 0.793457 0.410645 +vt 0.816406 0.410645 +vt 0.797852 0.317871 +vt 0.816406 0.327148 +vt 0.797852 0.279785 +vt 0.800293 0.320312 +vt 0.797852 0.182617 +vt 0.797852 0.177734 +vt 0.806641 0.313965 +vt 0.806641 0.279785 +vt 0.806641 0.182617 +vt 0.806641 0.177734 +vt 0.816406 0.177734 +vt 0.816406 0.279785 +vt 0.816406 0.182617 +vt 0.826660 0.182617 +vt 0.826660 0.177734 +vt 0.835449 0.177734 +vt 0.816406 0.312500 +vt 0.826172 0.279785 +vt 0.835449 0.182617 +vt 0.835449 0.279785 +vt 0.826172 0.313965 +vt 0.835449 0.317871 +vt 0.816406 0.315430 +vt 0.839355 0.327148 +vt 0.839355 0.410645 +vt 0.833008 0.320312 +vt 0.816406 0.320801 +vt 0.825195 0.316895 +vt 0.808105 0.316895 +vt 0.150391 0.898254 +vt 0.159668 0.898193 +vt 0.150879 0.904419 +vt 0.150757 0.892090 +vt 0.160156 0.903442 +vt 0.160156 0.893005 +vt 0.153320 0.913025 +vt 0.153076 0.883423 +vt 0.162476 0.910522 +vt 0.162354 0.885864 +vt 0.166870 0.915771 +vt 0.166626 0.880554 +vt 0.157837 0.920166 +vt 0.157593 0.876221 +vt 0.165283 0.926453 +vt 0.165039 0.869873 +vt 0.170898 0.918884 +vt 0.170776 0.877441 +vt 0.172485 0.929810 +vt 0.172241 0.866577 +vt 0.175903 0.920776 +vt 0.175659 0.875488 +vt 0.178345 0.931091 +vt 0.178101 0.865112 +vt 0.179443 0.921692 +vt 0.179199 0.874512 +vt 0.185303 0.921997 +vt 0.185059 0.874268 +vt 0.186768 0.931458 +vt 0.186401 0.864746 +vt 0.189331 0.921509 +vt 0.189087 0.874756 +vt 0.191772 0.930908 +vt 0.191406 0.865234 +vt 0.194702 0.919739 +vt 0.194336 0.876404 +vt 0.197998 0.928772 +vt 0.197632 0.867310 +vt 0.200073 0.916443 +vt 0.199707 0.879578 +vt 0.204956 0.924805 +vt 0.204590 0.871216 +vt 0.211792 0.917236 +vt 0.211548 0.878601 +vt 0.204224 0.911377 +vt 0.203979 0.884583 +vt 0.216064 0.908264 +vt 0.215942 0.887512 +vt 0.206909 0.904907 +vt 0.206787 0.890991 +vt 0.217407 0.897888 +vt 0.207886 0.897949 +vt 0.109253 0.903748 +vt 0.112915 0.952820 +vt 0.068298 0.944153 +vt 0.112915 0.903870 +vt 0.097046 0.897461 +vt 0.107727 0.898926 +vt 0.111633 0.898682 +vt 0.054138 0.941040 +vt 0.109497 0.894958 +vt 0.112976 0.895691 +vt 0.112976 0.870239 +vt 0.087158 0.889648 +vt 0.109375 0.870239 +vt 0.082397 0.878174 +vt 0.054138 0.870117 +vt 0.098572 0.870239 +vt 0.081482 0.870117 +vt 0.082397 0.862183 +vt 0.054138 0.799194 +vt 0.087219 0.850708 +vt 0.097107 0.842896 +vt 0.068481 0.796143 +vt 0.109558 0.845459 +vt 0.112976 0.844727 +vt 0.111694 0.841675 +vt 0.107788 0.841431 +vt 0.112915 0.836548 +vt 0.109314 0.836670 +vt 0.112915 0.787598 +vt 0.726562 0.931030 +vt 0.720703 0.931580 +vt 0.725586 0.928406 +vt 0.731445 0.927246 +vt 0.723145 0.933594 +vt 0.717773 0.936401 +vt 0.731445 0.930115 +vt 0.720215 0.937439 +vt 0.716797 0.942047 +vt 0.731445 0.942017 +vt 0.719238 0.942017 +vt 0.720215 0.946564 +vt 0.717773 0.947662 +vt 0.720703 0.952454 +vt 0.723145 0.950439 +vt 0.726562 0.953003 +vt 0.725586 0.955627 +vt 0.731445 0.956757 +vt 0.731445 0.953918 +vt 0.735840 0.953003 +vt 0.736816 0.955627 +vt 0.741699 0.952393 +vt 0.739746 0.950409 +vt 0.742188 0.946564 +vt 0.745117 0.947601 +vt 0.746094 0.941986 +vt 0.743164 0.941986 +vt 0.742188 0.937439 +vt 0.745117 0.936340 +vt 0.739746 0.933594 +vt 0.741699 0.931580 +vt 0.735840 0.930969 +vt 0.736816 0.928345 +vt 0.789062 0.796753 +vt 0.792969 0.804077 +vt 0.783203 0.802490 +vt 0.794922 0.794312 +vt 0.790039 0.807983 +vt 0.779785 0.809937 +vt 0.796875 0.802856 +vt 0.788086 0.812988 +vt 0.777832 0.820068 +vt 0.794434 0.805786 +vt 0.791504 0.809204 +vt 0.828125 0.811401 +vt 0.832520 0.803955 +vt 0.797363 0.805054 +vt 0.798340 0.820435 +vt 0.790039 0.813599 +vt 0.788574 0.820312 +vt 0.786621 0.820190 +vt 0.789062 0.827026 +vt 0.787109 0.827515 +vt 0.779297 0.830078 +vt 0.791504 0.832764 +vt 0.789551 0.833862 +vt 0.783203 0.839233 +vt 0.789551 0.846069 +vt 0.794922 0.837036 +vt 0.793945 0.838745 +vt 0.798340 0.849243 +vt 0.799805 0.840454 +vt 0.799805 0.838379 +vt 0.828125 0.830811 +vt 0.833008 0.838013 +vt 0.840332 0.829834 +vt 0.827148 0.829102 +vt 0.832520 0.826538 +vt 0.842285 0.820557 +vt 0.830566 0.825562 +vt 0.827148 0.820801 +vt 0.827148 0.813232 +vt 0.832031 0.820801 +vt 0.830566 0.816284 +vt 0.833984 0.820801 +vt 0.832520 0.815186 +vt 0.840332 0.811523 +vt 0.203613 0.891968 +vt 0.204590 0.897949 +vt 0.183105 0.897949 +vt 0.201294 0.886353 +vt 0.203613 0.903992 +vt 0.197632 0.881958 +vt 0.201294 0.909546 +vt 0.192993 0.879211 +vt 0.197632 0.913940 +vt 0.188354 0.877747 +vt 0.192993 0.916748 +vt 0.184937 0.877319 +vt 0.188354 0.918213 +vt 0.179932 0.877625 +vt 0.184937 0.918640 +vt 0.176880 0.878418 +vt 0.179932 0.918335 +vt 0.172607 0.880066 +vt 0.176880 0.917542 +vt 0.169067 0.882812 +vt 0.172607 0.915894 +vt 0.165405 0.887390 +vt 0.169067 0.913147 +vt 0.163452 0.893494 +vt 0.165405 0.908569 +vt 0.163086 0.897949 +vt 0.163452 0.902466 +s 1 +usemtl MI_HandCannon +f 1/1/1 2/2/2 3/3/3 +f 2/2/2 1/1/1 4/4/4 +f 5/2/5 6/1/6 7/3/7 +f 6/1/6 5/2/5 8/4/5 +f 9/5/8 10/6/8 11/7/8 +f 9/5/8 11/7/8 12/8/8 +f 13/5/9 14/6/9 15/7/9 +f 13/5/9 15/7/9 16/8/9 +f 17/9/10 18/10/10 19/11/10 +f 17/9/10 19/11/10 20/12/11 +f 21/13/12 22/14/12 23/15/12 +f 21/13/12 23/15/12 24/16/12 +f 25/17/13 26/17/13 27/17/13 +f 25/17/13 27/17/13 28/17/13 +f 29/18/14 30/19/15 31/20/16 +f 30/19/15 29/18/14 32/21/17 +f 33/19/18 34/18/19 35/20/20 +f 34/18/19 33/19/18 36/21/21 +f 37/22/22 38/23/22 39/24/22 +f 39/24/22 38/23/22 40/25/23 +f 41/26/12 42/27/12 43/28/12 +f 41/26/12 43/28/12 44/29/12 +f 45/30/24 46/31/24 47/32/24 +f 45/30/24 47/32/24 48/33/24 +f 49/34/25 50/35/25 51/36/25 +f 50/35/25 49/34/25 52/37/25 +f 53/38/26 54/39/27 55/40/26 +f 53/38/26 55/40/26 56/41/26 +f 57/42/9 58/43/9 59/44/9 +f 58/43/9 57/42/9 60/45/9 +f 61/46/28 62/47/12 63/48/12 +f 63/48/12 62/47/12 64/49/12 +f 65/26/12 66/28/12 67/27/12 +f 66/28/12 65/26/12 68/29/12 +f 69/30/29 70/32/29 71/31/29 +f 70/32/29 69/30/29 72/33/29 +f 73/34/30 74/35/30 75/37/31 +f 74/35/30 73/34/30 76/36/30 +f 77/38/26 78/40/32 79/39/32 +f 78/40/32 77/38/26 80/41/26 +f 81/42/9 82/44/9 83/43/9 +f 81/42/9 83/43/9 84/45/9 +f 85/48/12 86/47/12 87/46/12 +f 86/47/12 85/48/12 88/49/12 +f 89/50/33 90/51/34 91/52/35 +f 91/52/35 92/53/36 89/50/33 +f 93/54/37 92/53/36 91/52/35 +f 92/53/36 93/54/37 94/55/37 +f 95/56/38 96/57/39 97/58/40 +f 97/58/40 98/59/41 95/56/38 +f 99/60/42 98/59/41 97/58/40 +f 98/59/41 99/60/42 100/61/42 +f 101/62/29 102/63/29 103/64/29 +f 101/62/29 103/64/29 104/65/29 +f 104/65/29 103/64/29 105/66/29 +f 104/65/29 105/66/29 106/67/29 +f 106/67/29 105/66/29 107/68/29 +f 107/68/29 108/69/29 106/67/29 +f 108/69/29 107/68/29 109/70/29 +f 109/70/29 110/71/29 108/69/29 +f 110/71/29 109/70/29 111/72/29 +f 111/72/29 112/73/29 110/71/29 +f 112/73/29 111/72/29 113/74/29 +f 112/73/29 113/74/29 114/75/29 +f 115/76/43 116/77/43 117/78/44 +f 118/79/44 117/78/44 116/77/43 +f 117/78/44 118/79/44 119/80/43 +f 119/80/43 118/79/44 120/81/43 +f 121/82/43 122/83/43 123/84/44 +f 124/85/44 123/84/44 122/83/43 +f 123/84/44 124/85/44 125/86/43 +f 125/86/43 124/85/44 126/87/43 +f 127/88/43 128/89/43 129/90/44 +f 129/90/44 130/91/44 127/88/43 +f 130/91/44 129/90/44 131/92/45 +f 131/92/45 132/93/45 130/91/44 +f 132/93/45 131/92/45 133/94/46 +f 133/94/46 134/95/47 132/93/45 +f 134/95/47 133/94/46 135/96/48 +f 135/96/48 136/97/49 134/95/47 +f 136/97/49 135/96/48 137/98/50 +f 136/97/49 137/98/50 138/99/51 +f 138/99/51 137/98/50 139/100/52 +f 138/99/51 139/100/52 140/101/53 +f 140/101/53 139/100/52 141/102/54 +f 140/101/53 141/102/54 142/103/55 +f 143/103/56 144/102/56 145/101/57 +f 146/100/58 145/101/57 144/102/56 +f 145/101/57 146/100/58 147/99/59 +f 148/98/60 147/99/59 146/100/58 +f 147/99/59 148/98/60 149/97/61 +f 150/96/62 149/97/61 148/98/60 +f 149/97/61 150/96/62 151/95/63 +f 151/95/63 150/96/62 152/94/64 +f 151/95/63 152/94/64 153/93/65 +f 153/93/65 152/94/64 154/92/65 +f 153/93/65 154/92/65 155/91/44 +f 155/91/44 154/92/65 156/90/44 +f 155/91/44 156/90/44 157/88/43 +f 157/88/43 156/90/44 158/89/43 +f 159/104/24 160/105/24 161/106/66 +f 159/104/24 161/106/66 162/107/66 +f 162/107/66 161/106/66 163/108/66 +f 163/108/66 164/109/67 162/107/66 +f 164/109/67 163/108/66 165/110/68 +f 166/111/66 164/109/67 165/110/68 +f 164/109/67 166/111/66 167/112/69 +f 166/111/66 168/113/70 167/112/69 +f 169/114/71 167/112/69 168/113/70 +f 169/114/71 168/113/70 170/115/71 +f 171/116/69 169/114/71 170/115/71 +f 171/116/69 170/115/71 172/117/69 +f 173/118/66 171/116/69 172/117/69 +f 173/118/66 172/117/69 174/119/24 +f 175/120/72 176/121/73 177/122/74 +f 178/123/75 177/122/74 176/121/73 +f 179/124/76 177/122/74 178/123/75 +f 178/123/75 180/125/77 179/124/76 +f 181/126/78 180/125/77 178/123/75 +f 180/125/77 181/126/78 182/127/79 +f 183/128/80 184/129/80 185/130/81 +f 185/130/81 186/131/82 183/128/80 +f 187/132/83 186/131/82 185/130/81 +f 186/131/82 187/132/83 188/133/84 +f 189/134/85 190/135/85 191/136/86 +f 191/136/86 192/137/87 189/134/85 +f 193/138/88 192/137/87 191/136/86 +f 192/137/87 193/138/88 194/139/89 +f 195/140/90 196/141/91 197/142/92 +f 197/142/92 198/143/93 195/140/90 +f 199/144/94 198/143/93 197/142/92 +f 198/143/93 199/144/94 200/145/95 +f 201/146/96 202/147/96 203/148/97 +f 204/149/98 201/146/96 203/148/97 +f 204/149/98 203/148/97 205/150/99 +f 206/151/100 204/149/98 205/150/99 +f 207/152/101 208/153/102 209/154/103 +f 209/154/103 210/155/104 207/152/101 +f 210/155/104 209/154/103 211/156/105 +f 211/156/105 212/157/105 210/155/104 +f 212/157/105 211/156/105 213/158/106 +f 214/159/105 212/157/105 213/158/106 +f 215/121/107 216/120/108 217/122/109 +f 215/121/107 217/122/109 218/123/110 +f 217/122/109 219/124/111 218/123/110 +f 218/123/110 219/124/111 220/125/112 +f 220/125/112 221/126/112 218/123/110 +f 221/126/112 220/125/112 222/127/113 +f 223/160/8 224/161/8 225/162/8 +f 225/162/8 226/163/8 223/160/8 +f 226/163/8 225/162/8 227/164/8 +f 227/164/8 228/165/8 226/163/8 +f 228/165/8 227/164/8 229/166/8 +f 230/167/8 228/165/8 229/166/8 +f 228/165/8 230/167/8 231/168/8 +f 231/168/8 230/167/8 232/169/8 +f 232/169/8 230/167/8 233/170/8 +f 234/171/8 235/172/8 236/173/8 +f 236/173/8 235/172/8 237/174/8 +f 236/173/8 237/174/8 238/175/8 +f 239/176/114 240/177/115 241/178/116 +f 242/179/117 239/176/114 241/178/116 +f 242/179/117 241/178/116 243/180/118 +f 244/181/118 242/179/117 243/180/118 +f 243/180/118 245/182/119 244/181/118 +f 245/182/119 243/180/118 246/183/119 +f 247/184/120 248/185/120 249/186/121 +f 249/186/121 250/187/122 247/184/120 +f 249/186/121 251/188/123 250/187/122 +f 252/189/9 253/190/9 254/191/124 +f 252/189/9 254/191/124 255/192/125 +f 254/191/124 256/193/126 255/192/125 +f 255/192/125 256/193/126 257/194/127 +f 256/193/126 258/195/128 257/194/127 +f 258/195/128 256/193/126 259/196/129 +f 258/195/128 259/196/129 260/197/130 +f 261/198/131 260/197/130 259/196/129 +f 262/199/132 260/197/130 261/198/131 +f 260/197/130 262/199/132 263/200/133 +f 264/201/29 265/202/29 266/203/29 +f 266/203/29 267/204/29 264/201/29 +f 267/204/29 266/203/29 268/205/29 +f 269/206/29 267/204/29 268/205/29 +f 267/204/29 269/206/29 270/207/29 +f 271/208/29 270/207/29 269/206/29 +f 272/209/29 270/207/29 271/208/29 +f 273/210/29 272/209/29 271/208/29 +f 274/211/43 275/212/43 276/213/134 +f 276/213/134 275/212/43 277/214/135 +f 277/214/135 278/215/136 276/213/134 +f 278/215/136 277/214/135 279/216/136 +f 280/217/137 281/218/138 282/219/139 +f 281/218/138 280/217/137 283/220/140 +f 283/220/140 284/221/141 281/218/138 +f 284/221/141 283/220/140 285/222/141 +f 285/222/141 286/223/48 284/221/141 +f 285/222/141 287/224/142 286/223/48 +f 287/224/142 288/225/143 286/223/48 +f 289/226/144 288/225/143 287/224/142 +f 288/225/143 289/226/144 290/227/144 +f 291/228/145 290/227/144 289/226/144 +f 290/227/144 291/228/145 292/229/146 +f 293/230/147 292/229/146 291/228/145 +f 292/229/146 293/230/147 294/231/148 +f 293/230/147 295/232/149 294/231/148 +f 295/232/149 293/230/147 296/233/149 +f 296/233/149 297/234/150 295/232/149 +f 297/234/150 296/233/149 298/235/149 +f 299/236/151 297/234/150 298/235/149 +f 297/234/150 299/236/151 300/237/151 +f 301/238/152 302/239/153 303/240/152 +f 302/239/153 301/238/152 304/241/154 +f 304/241/154 305/242/155 302/239/153 +f 305/242/155 304/241/154 306/243/156 +f 307/244/157 308/245/158 309/246/157 +f 308/245/158 307/244/157 310/247/159 +f 311/248/160 308/245/158 310/247/159 +f 310/247/159 312/249/161 311/248/160 +f 313/218/162 314/217/163 315/219/164 +f 314/217/163 313/218/162 316/220/165 +f 317/221/164 316/220/165 313/218/162 +f 318/222/166 316/220/165 317/221/164 +f 319/223/167 318/222/166 317/221/164 +f 320/224/168 318/222/166 319/223/167 +f 320/224/168 319/223/167 321/225/169 +f 322/226/170 320/224/168 321/225/169 +f 322/226/170 321/225/169 323/227/171 +f 323/227/171 324/228/172 322/226/170 +f 324/228/172 323/227/171 325/229/173 +f 325/229/173 326/230/174 324/228/172 +f 326/230/174 325/229/173 327/231/175 +f 328/232/176 326/230/174 327/231/175 +f 329/233/177 326/230/174 328/232/176 +f 330/234/178 329/233/177 328/232/176 +f 331/235/177 329/233/177 330/234/178 +f 330/234/178 332/236/179 331/235/177 +f 332/236/179 330/234/178 333/237/180 +f 334/250/181 335/251/182 336/252/181 +f 337/253/183 335/251/182 334/250/181 +f 337/253/183 338/254/184 335/251/182 +f 339/255/184 338/254/184 337/253/183 +f 340/256/185 338/254/184 339/255/184 +f 338/254/184 340/256/185 341/257/185 +f 342/62/24 343/64/66 344/63/24 +f 342/62/24 345/65/66 343/64/66 +f 345/65/66 346/66/66 343/64/66 +f 345/65/66 347/67/66 346/66/66 +f 347/67/66 348/68/66 346/66/66 +f 349/69/66 348/68/66 347/67/66 +f 348/68/66 349/69/66 350/70/66 +f 351/71/66 350/70/66 349/69/66 +f 350/70/66 351/71/66 352/72/66 +f 353/73/66 352/72/66 351/71/66 +f 352/72/66 353/73/66 354/74/24 +f 353/73/66 355/75/24 354/74/24 +f 356/258/186 357/259/187 358/260/187 +f 356/258/186 359/261/186 357/259/187 +f 360/262/188 359/261/186 356/258/186 +f 359/261/186 360/262/188 361/263/188 +f 360/262/188 362/264/189 361/263/188 +f 363/265/189 362/264/189 360/262/188 +f 364/266/12 362/264/189 363/265/189 +f 362/264/189 364/266/12 365/267/12 +f 364/266/12 366/268/12 365/267/12 +f 367/269/12 366/268/12 364/266/12 +f 368/270/29 369/271/29 370/272/29 +f 369/271/29 368/270/29 371/273/29 +f 371/273/29 368/270/29 372/274/29 +f 372/274/29 373/275/29 371/273/29 +f 373/275/29 372/274/29 374/276/29 +f 373/275/29 375/277/29 371/273/29 +f 375/277/29 373/275/29 376/278/29 +f 376/278/29 377/279/29 375/277/29 +f 377/279/29 376/278/29 378/280/29 +f 379/259/190 380/258/191 381/260/190 +f 380/258/191 379/259/190 382/261/192 +f 380/258/191 382/261/192 383/262/193 +f 383/262/193 382/261/192 384/263/194 +f 385/264/195 383/262/193 384/263/194 +f 383/262/193 385/264/195 386/265/196 +f 386/265/196 385/264/195 387/266/12 +f 387/266/12 385/264/195 388/267/12 +f 389/268/12 387/266/12 388/267/12 +f 387/266/12 389/268/12 390/269/12 +f 391/271/24 392/270/66 393/272/24 +f 392/270/66 391/271/24 394/273/24 +f 394/273/24 395/274/66 392/270/66 +f 396/275/24 395/274/66 394/273/24 +f 395/274/66 396/275/24 397/276/24 +f 398/277/66 396/275/24 394/273/24 +f 396/275/24 398/277/66 399/278/66 +f 400/279/24 399/278/66 398/277/66 +f 399/278/66 400/279/24 401/280/24 +f 402/281/29 403/282/29 404/283/29 +f 402/281/29 405/284/29 403/282/29 +f 405/284/29 406/285/29 403/282/29 +f 406/285/29 405/284/29 407/286/29 +f 408/287/29 406/285/29 407/286/29 +f 409/288/29 408/287/29 407/286/29 +f 409/288/29 410/289/29 408/287/29 +f 410/289/29 409/288/29 411/290/29 +f 412/291/29 410/289/29 411/290/29 +f 412/291/29 413/292/29 410/289/29 +f 414/293/29 413/292/29 412/291/29 +f 414/293/29 415/294/29 413/292/29 +f 414/293/29 416/295/29 415/294/29 +f 417/296/29 416/295/29 414/293/29 +f 418/297/66 419/298/24 420/299/24 +f 421/300/66 419/298/24 418/297/66 +f 422/301/66 421/300/66 418/297/66 +f 421/300/66 422/301/66 423/302/66 +f 424/303/24 423/302/66 422/301/66 +f 425/304/24 423/302/66 424/303/24 +f 426/305/66 425/304/24 424/303/24 +f 427/306/66 426/305/66 424/303/24 +f 428/307/66 426/305/66 427/306/66 +f 429/308/66 428/307/66 427/306/66 +f 430/309/24 428/307/66 429/308/66 +f 431/310/24 430/309/24 429/308/66 +f 432/311/24 430/309/24 431/310/24 +f 430/309/24 432/311/24 433/312/24 +f 434/313/197 435/314/198 436/315/198 +f 435/314/198 434/313/197 437/316/199 +f 438/317/200 437/316/199 434/313/197 +f 439/318/201 437/316/199 438/317/200 +f 440/319/202 439/318/201 438/317/200 +f 441/320/202 439/318/201 440/319/202 +f 442/321/203 441/320/202 440/319/202 +f 443/322/203 441/320/202 442/321/203 +f 444/323/204 443/322/203 442/321/203 +f 445/324/205 443/322/203 444/323/204 +f 446/325/206 445/324/205 444/323/204 +f 447/326/206 445/324/205 446/325/206 +f 446/325/206 448/327/207 447/326/206 +f 448/327/207 446/325/206 449/328/207 +f 450/283/24 451/282/66 452/281/24 +f 453/284/66 452/281/24 451/282/66 +f 454/285/66 453/284/66 451/282/66 +f 453/284/66 454/285/66 455/286/66 +f 456/287/66 455/286/66 454/285/66 +f 455/286/66 456/287/66 457/288/66 +f 458/289/24 457/288/66 456/287/66 +f 457/288/66 458/289/24 459/290/24 +f 458/289/24 460/291/66 459/290/24 +f 460/291/66 458/289/24 461/292/66 +f 461/292/66 462/293/24 460/291/66 +f 462/293/24 461/292/66 463/294/24 +f 462/293/24 463/294/24 464/295/24 +f 464/295/24 465/296/24 462/293/24 +f 466/297/29 467/299/29 468/298/29 +f 468/298/29 469/300/29 466/297/29 +f 469/300/29 470/301/29 466/297/29 +f 470/301/29 469/300/29 471/302/29 +f 471/302/29 472/303/29 470/301/29 +f 472/303/29 471/302/29 473/304/29 +f 474/305/29 472/303/29 473/304/29 +f 475/306/29 472/303/29 474/305/29 +f 476/307/29 475/306/29 474/305/29 +f 477/308/29 475/306/29 476/307/29 +f 478/309/29 477/308/29 476/307/29 +f 479/310/29 477/308/29 478/309/29 +f 478/309/29 480/311/29 479/310/29 +f 480/311/29 478/309/29 481/312/29 +f 482/313/199 483/315/198 484/314/198 +f 484/314/198 485/316/199 482/313/199 +f 485/316/199 486/317/201 482/313/199 +f 486/317/201 485/316/199 487/318/201 +f 487/318/201 488/319/202 486/317/201 +f 488/319/202 487/318/201 489/320/208 +f 489/320/208 490/321/203 488/319/202 +f 490/321/203 489/320/208 491/322/203 +f 491/322/203 492/323/204 490/321/203 +f 492/323/204 491/322/203 493/324/205 +f 493/324/205 494/325/206 492/323/204 +f 494/325/206 493/324/205 495/326/206 +f 496/327/207 494/325/206 495/326/206 +f 497/328/207 494/325/206 496/327/207 +f 498/329/207 499/330/209 500/331/207 +f 499/330/209 498/329/207 501/332/210 +f 501/332/210 502/333/10 499/330/209 +f 502/333/10 501/332/210 503/334/211 +f 503/334/211 504/335/212 502/333/10 +f 504/335/212 503/334/211 505/336/212 +f 505/336/212 506/337/72 504/335/212 +f 506/337/72 505/336/212 507/338/213 +f 507/338/213 508/339/214 506/337/72 +f 508/339/214 507/338/213 509/340/214 +f 509/340/214 510/341/215 508/339/214 +f 510/341/215 509/340/214 511/342/215 +f 511/342/215 512/343/216 510/341/215 +f 512/343/216 511/342/215 513/344/217 +f 514/345/218 515/346/43 516/347/43 +f 515/346/43 514/345/218 517/348/219 +f 518/349/220 517/348/219 514/345/218 +f 517/348/219 518/349/220 519/350/221 +f 520/351/29 521/352/29 522/353/29 +f 521/352/29 520/351/29 523/354/29 +f 524/355/29 521/352/29 523/354/29 +f 525/356/29 524/355/29 523/354/29 +f 524/355/29 525/356/29 526/357/29 +f 525/356/29 527/358/29 526/357/29 +f 527/358/29 525/356/29 528/359/29 +f 528/359/29 529/360/29 527/358/29 +f 530/361/29 529/360/29 528/359/29 +f 530/361/29 528/359/29 531/362/29 +f 529/360/29 530/361/29 532/363/29 +f 530/361/29 533/364/29 532/363/29 +f 534/365/222 533/364/29 530/361/29 +f 533/364/29 534/365/222 535/366/223 +f 534/365/222 536/367/224 535/366/223 +f 536/367/224 534/365/222 537/368/224 +f 538/369/225 536/367/224 537/368/224 +f 538/369/225 539/370/226 536/367/224 +f 538/369/225 540/371/227 539/370/226 +f 540/371/227 538/369/225 541/372/227 +f 538/369/225 542/373/228 541/372/227 +f 540/371/227 543/374/229 544/375/229 +f 543/374/229 540/371/227 541/372/227 +f 541/372/227 545/376/225 543/374/229 +f 542/373/228 545/376/225 541/372/227 +f 546/377/230 543/374/229 545/376/225 +f 545/376/225 542/373/228 547/378/228 +f 542/373/228 548/379/231 547/378/228 +f 547/378/228 548/379/231 549/380/232 +f 550/381/29 549/380/232 548/379/231 +f 549/380/232 550/381/29 551/382/29 +f 552/383/29 551/382/29 550/381/29 +f 551/382/29 552/383/29 553/384/29 +f 554/385/225 545/376/225 547/378/228 +f 555/386/225 546/377/230 545/376/225 +f 545/376/225 554/385/225 555/386/225 +f 546/377/230 555/386/225 556/387/233 +f 557/388/227 556/387/233 555/386/225 +f 554/385/225 558/389/228 555/386/225 +f 554/385/225 559/390/234 558/389/228 +f 557/388/227 555/386/225 560/391/235 +f 558/389/228 560/391/235 555/386/225 +f 560/391/235 561/392/229 557/388/227 +f 558/389/228 559/390/234 562/393/236 +f 563/394/29 562/393/236 559/390/234 +f 560/391/235 558/389/228 564/395/227 +f 562/393/236 563/394/29 565/396/29 +f 566/397/29 565/396/29 563/394/29 +f 565/396/29 566/397/29 567/398/29 +f 561/392/229 560/391/235 568/399/225 +f 569/400/228 560/391/235 564/395/227 +f 569/400/228 568/399/225 560/391/235 +f 570/401/237 569/400/228 564/395/227 +f 568/399/225 569/400/228 571/402/228 +f 569/400/228 570/401/237 572/403/238 +f 573/404/29 572/403/238 570/401/237 +f 572/403/238 573/404/29 574/405/29 +f 575/406/29 574/405/29 573/404/29 +f 574/405/29 575/406/29 576/407/29 +f 577/408/228 568/399/225 571/402/228 +f 577/408/228 578/409/239 579/410/240 +f 577/408/228 571/402/228 580/411/241 +f 581/412/231 580/411/241 571/402/228 +f 578/409/239 577/408/228 582/413/242 +f 577/408/228 580/411/241 582/413/242 +f 582/413/242 583/414/243 578/409/239 +f 583/414/243 582/413/242 584/415/244 +f 580/411/241 581/412/231 585/416/234 +f 585/416/234 581/412/231 586/417/29 +f 582/413/242 580/411/241 587/418/245 +f 587/418/245 584/415/244 582/413/242 +f 585/416/234 587/418/245 580/411/241 +f 584/415/244 587/418/245 588/419/246 +f 589/420/247 588/419/246 587/418/245 +f 587/418/245 590/421/248 589/420/247 +f 587/418/245 585/416/234 590/421/248 +f 590/421/248 591/422/249 589/420/247 +f 585/416/234 586/417/29 592/423/29 +f 590/421/248 585/416/234 592/423/29 +f 586/417/29 593/424/29 592/423/29 +f 593/424/29 594/425/29 592/423/29 +f 590/421/248 592/423/29 595/426/250 +f 594/425/29 595/426/250 592/423/29 +f 590/421/248 595/426/250 591/422/249 +f 595/426/250 594/425/29 596/427/251 +f 596/427/251 591/422/249 595/426/250 +f 591/422/249 596/427/251 597/428/252 +f 598/429/253 599/430/254 600/431/255 +f 598/429/253 600/431/255 601/432/256 +f 598/429/253 601/432/256 602/433/257 +f 601/432/256 603/434/258 602/433/257 +f 604/435/259 605/436/260 606/437/259 +f 605/436/260 604/435/259 607/438/261 +f 607/438/261 608/439/262 605/436/260 +f 607/438/261 609/440/263 608/439/262 +f 610/441/263 608/439/262 609/440/263 +f 611/442/263 610/441/263 609/440/263 +f 612/443/264 611/442/263 609/440/263 +f 611/442/263 612/443/264 613/444/265 +f 612/443/264 614/445/266 613/444/265 +f 614/445/266 612/443/264 615/446/267 +f 616/447/268 614/445/266 615/446/267 +f 614/445/266 616/447/268 617/448/269 +f 618/449/66 619/450/66 620/451/66 +f 619/450/66 618/449/66 621/452/66 +f 622/453/66 621/452/66 618/449/66 +f 621/452/66 622/453/66 623/454/66 +f 624/455/66 623/454/66 622/453/66 +f 623/454/66 624/455/66 625/456/66 +f 626/457/66 625/456/66 624/455/66 +f 625/456/66 626/457/66 627/458/66 +f 628/459/66 627/458/66 626/457/66 +f 627/458/66 628/459/66 629/460/66 +f 630/461/66 629/460/66 628/459/66 +f 629/460/66 630/461/66 631/462/67 +f 630/461/66 632/463/68 631/462/67 +f 633/464/24 632/463/68 630/461/66 +f 634/465/270 635/466/271 636/467/270 +f 635/466/271 634/465/270 637/468/271 +f 637/468/271 634/465/270 638/469/270 +f 638/469/270 639/470/272 637/468/271 +f 639/470/272 638/469/270 640/471/273 +f 640/471/273 641/472/170 639/470/272 +f 641/472/170 640/471/273 642/473/274 +f 643/474/170 641/472/170 642/473/274 +f 644/475/275 643/474/170 642/473/274 +f 643/474/170 644/475/275 645/476/275 +f 646/477/276 641/472/170 643/474/170 +f 646/477/276 643/474/170 647/478/277 +f 648/479/278 646/477/276 647/478/277 +f 649/480/279 648/479/278 647/478/277 +f 648/479/278 649/480/279 650/481/61 +f 651/482/170 646/477/276 648/479/278 +f 651/482/170 648/479/278 652/483/280 +f 653/484/61 652/483/280 654/485/281 +f 655/486/282 652/483/280 653/484/61 +f 655/486/282 651/482/170 652/483/280 +f 655/486/282 656/487/283 651/482/170 +f 656/487/283 655/486/282 657/488/284 +f 656/487/283 657/488/284 658/489/285 +f 658/489/285 659/490/136 656/487/283 +f 660/491/136 656/487/283 659/490/136 +f 656/487/283 660/491/136 661/492/136 +f 662/493/136 661/492/136 660/491/136 +f 661/492/136 662/493/136 663/494/136 +f 664/495/286 663/494/136 662/493/136 +f 663/494/136 664/495/286 665/496/286 +f 666/497/29 667/498/287 668/499/288 +f 667/498/287 666/497/29 669/500/289 +f 670/501/290 669/500/289 666/497/29 +f 669/500/289 670/501/290 671/502/290 +f 672/503/291 673/504/292 674/505/100 +f 673/504/292 672/503/291 675/506/293 +f 676/507/294 675/506/293 672/503/291 +f 675/506/293 676/507/294 677/508/295 +f 678/509/296 679/510/297 680/511/296 +f 678/509/296 681/512/298 679/510/297 +f 681/512/298 682/513/299 679/510/297 +f 681/512/298 683/514/300 682/513/299 +f 681/512/298 684/515/301 683/514/300 +f 685/516/29 686/517/29 687/518/29 +f 686/517/29 685/516/29 688/519/29 +f 689/520/302 688/519/29 685/516/29 +f 688/519/29 689/520/302 690/521/303 +f 691/522/231 692/523/230 693/524/231 +f 692/523/230 691/522/231 694/525/233 +f 695/526/233 692/523/230 694/525/233 +f 695/526/233 694/525/233 696/527/304 +f 697/528/224 695/526/233 696/527/304 +f 697/528/224 696/527/304 698/529/305 +f 699/530/306 697/528/224 698/529/305 +f 697/528/224 699/530/306 700/531/307 +f 701/532/308 700/531/307 699/530/306 +f 700/531/307 701/532/308 702/533/309 +f 703/534/310 702/533/309 701/532/308 +f 702/533/309 703/534/310 704/535/311 +f 705/536/312 704/535/311 703/534/310 +f 704/535/311 705/536/312 706/537/313 +f 707/538/314 706/537/313 705/536/312 +f 708/539/315 706/537/313 707/538/314 +f 709/540/316 708/539/315 707/538/314 +f 709/540/316 710/541/317 708/539/315 +f 711/542/318 710/541/317 709/540/316 +f 711/542/318 712/543/319 710/541/317 +f 713/544/320 712/543/319 711/542/318 +f 713/544/320 714/545/321 712/543/319 +f 713/544/320 715/546/322 714/545/321 +f 715/546/322 713/544/320 716/547/323 +f 717/548/66 718/549/24 719/550/24 +f 717/548/66 720/551/66 718/549/24 +f 717/548/66 721/552/66 720/551/66 +f 721/552/66 722/553/66 720/551/66 +f 722/553/66 721/552/66 723/554/24 +f 723/554/24 724/555/24 722/553/66 +f 725/556/66 724/555/24 723/554/24 +f 726/557/24 725/556/66 723/554/24 +f 726/557/24 723/554/24 727/558/24 +f 726/557/24 727/558/24 728/559/24 +f 725/556/66 726/557/24 729/560/24 +f 729/560/24 726/557/24 730/561/24 +f 729/560/24 730/561/24 731/562/24 +f 729/560/24 731/562/24 732/563/24 +f 731/562/24 733/564/24 732/563/24 +f 733/564/24 731/562/24 734/565/24 +f 735/566/8 736/567/8 737/568/8 +f 736/567/8 735/566/8 738/569/8 +f 739/570/8 738/569/8 735/566/8 +f 738/569/8 739/570/8 740/571/8 +f 739/570/8 741/572/8 740/571/8 +f 741/572/8 739/570/8 742/573/8 +f 743/574/8 741/572/8 742/573/8 +f 742/573/8 744/575/8 743/574/8 +f 744/575/8 742/573/8 745/576/8 +f 746/577/8 744/575/8 745/576/8 +f 745/576/8 747/578/8 746/577/8 +f 748/579/8 747/578/8 745/576/8 +f 748/579/8 749/580/324 747/578/8 +f 749/580/324 748/579/8 750/581/325 +f 750/581/325 751/582/326 749/580/324 +f 750/581/325 752/583/327 751/582/326 +f 752/583/327 753/584/328 751/582/326 +f 753/584/328 752/583/327 754/585/329 +f 754/585/329 755/586/330 753/584/328 +f 755/586/330 754/585/329 756/587/331 +f 756/587/331 757/588/332 755/586/330 +f 757/588/332 756/587/331 758/589/333 +f 758/589/333 759/590/334 757/588/332 +f 759/590/334 758/589/333 760/591/335 +f 760/591/335 761/592/336 759/590/334 +f 761/592/336 760/591/335 762/593/337 +f 763/160/8 764/162/8 765/161/8 +f 766/163/8 764/162/8 763/160/8 +f 764/162/8 766/163/8 767/164/8 +f 768/165/8 767/164/8 766/163/8 +f 767/164/8 768/165/8 769/166/8 +f 770/167/8 769/166/8 768/165/8 +f 771/168/8 770/167/8 768/165/8 +f 770/167/8 771/168/8 772/169/8 +f 772/169/8 773/170/8 770/167/8 +f 774/594/338 775/595/12 776/596/12 +f 775/595/12 774/594/338 777/597/338 +f 777/597/338 778/598/339 775/595/12 +f 778/598/339 777/597/338 779/599/338 +f 780/397/66 781/396/66 782/398/68 +f 781/396/66 780/397/66 783/394/66 +f 783/394/66 784/393/340 781/396/66 +f 784/393/340 783/394/66 785/390/341 +f 786/389/342 784/393/340 785/390/341 +f 787/385/343 786/389/342 785/390/341 +f 787/385/343 788/386/343 786/389/342 +f 787/385/343 789/376/343 788/386/343 +f 789/376/343 787/385/343 790/378/342 +f 791/391/344 786/389/342 788/386/343 +f 786/389/342 791/391/344 792/395/344 +f 793/377/345 788/386/343 789/376/343 +f 788/386/343 793/377/345 794/387/346 +f 794/387/346 795/388/344 788/386/343 +f 791/391/344 788/386/343 795/388/344 +f 796/392/347 791/391/344 795/388/344 +f 789/376/343 797/374/347 793/377/345 +f 791/391/344 796/392/347 798/399/343 +f 797/374/347 789/376/343 799/372/343 +f 798/399/343 800/400/342 791/391/344 +f 800/400/342 792/395/344 791/391/344 +f 792/395/344 800/400/342 801/401/348 +f 800/400/342 798/399/343 802/402/342 +f 800/400/342 803/403/349 801/401/348 +f 803/403/349 804/404/24 801/401/348 +f 804/404/24 803/403/349 805/405/68 +f 805/405/68 806/406/68 804/404/24 +f 806/406/68 805/405/68 807/407/68 +f 808/408/342 802/402/342 798/399/343 +f 797/374/347 809/371/344 810/375/347 +f 809/371/344 797/374/347 799/372/343 +f 811/409/350 808/408/342 812/410/351 +f 809/371/344 799/372/343 813/369/352 +f 809/371/344 813/369/352 814/370/353 +f 814/370/353 813/369/352 815/367/354 +f 813/369/352 799/372/343 816/373/342 +f 789/376/343 816/373/342 799/372/343 +f 817/368/354 815/367/354 813/369/352 +f 816/373/342 789/376/343 790/378/342 +f 818/365/355 815/367/354 817/368/354 +f 816/373/342 790/378/342 819/379/356 +f 815/367/354 818/365/355 820/366/357 +f 790/378/342 821/380/358 819/379/356 +f 818/365/355 822/364/66 820/366/357 +f 821/380/358 823/381/66 819/379/356 +f 822/364/66 818/365/355 824/361/66 +f 823/381/66 821/380/358 825/382/24 +f 825/382/24 826/383/24 823/381/66 +f 826/383/24 825/382/24 827/384/68 +f 824/361/66 828/363/66 822/364/66 +f 824/361/66 829/360/66 828/363/66 +f 829/360/66 824/361/66 830/359/66 +f 824/361/66 831/362/68 830/359/66 +f 830/359/66 832/358/66 829/360/66 +f 833/356/66 832/358/66 830/359/66 +f 832/358/66 833/356/66 834/357/67 +f 833/356/66 835/355/66 834/357/67 +f 835/355/66 833/356/66 836/354/66 +f 835/355/66 836/354/66 837/352/66 +f 838/351/66 837/352/66 836/354/66 +f 837/352/66 838/351/66 839/353/24 +f 840/414/359 841/413/360 811/409/350 +f 841/413/360 840/414/359 842/415/361 +f 808/408/342 811/409/350 841/413/360 +f 842/415/361 843/418/362 841/413/360 +f 843/418/362 842/415/361 844/419/363 +f 808/408/342 841/413/360 845/411/342 +f 841/413/360 843/418/362 845/411/342 +f 845/411/342 802/402/342 808/408/342 +f 844/419/363 846/420/364 843/418/362 +f 845/411/342 847/412/356 802/402/342 +f 843/418/362 846/420/364 848/421/365 +f 847/412/356 845/411/342 849/416/341 +f 843/418/362 849/416/341 845/411/342 +f 849/416/341 843/418/362 848/421/365 +f 847/412/356 849/416/341 850/417/66 +f 846/420/364 851/422/366 848/421/365 +f 852/423/24 850/417/66 849/416/341 +f 849/416/341 848/421/365 852/423/24 +f 852/423/24 853/424/66 850/417/66 +f 853/424/66 852/423/24 854/425/66 +f 855/426/367 852/423/24 848/421/365 +f 855/426/367 854/425/66 852/423/24 +f 848/421/365 851/422/366 855/426/367 +f 854/425/66 855/426/367 856/427/368 +f 851/422/366 856/427/368 855/426/367 +f 856/427/368 851/422/366 857/428/369 +f 858/430/370 859/429/371 860/431/372 +f 860/431/372 859/429/371 861/432/373 +f 859/429/371 862/433/374 861/432/373 +f 861/432/373 862/433/374 863/434/375 +f 864/117/376 865/118/29 866/119/29 +f 865/118/29 864/117/376 867/116/376 +f 868/115/376 867/116/376 864/117/376 +f 867/116/376 868/115/376 869/114/376 +f 870/113/376 869/114/376 868/115/376 +f 871/112/376 869/114/376 870/113/376 +f 872/111/29 871/112/376 870/113/376 +f 872/111/29 873/109/29 871/112/376 +f 873/109/29 872/111/29 874/110/29 +f 875/108/29 873/109/29 874/110/29 +f 873/109/29 875/108/29 876/107/29 +f 876/107/29 875/108/29 877/106/29 +f 878/104/29 876/107/29 877/106/29 +f 878/104/29 877/106/29 879/105/29 +f 880/600/377 881/601/378 882/602/379 +f 881/601/378 880/600/377 883/603/380 +f 883/603/380 884/604/381 881/601/378 +f 885/605/382 884/604/381 883/603/380 +f 885/605/382 886/606/383 884/604/381 +f 886/606/383 887/607/378 884/604/381 +f 888/608/384 887/607/378 886/606/383 +f 887/607/378 888/608/384 889/609/385 +f 890/437/386 891/436/387 892/435/386 +f 892/435/386 891/436/387 893/438/388 +f 893/438/388 891/436/387 894/439/389 +f 895/440/390 893/438/388 894/439/389 +f 896/441/390 895/440/390 894/439/389 +f 897/442/391 895/440/390 896/441/390 +f 897/442/391 898/443/392 895/440/390 +f 898/443/392 897/442/391 899/444/393 +f 900/445/394 898/443/392 899/444/393 +f 898/443/392 900/445/394 901/446/395 +f 900/445/394 902/447/396 901/446/395 +f 902/447/396 900/445/394 903/448/397 +f 904/450/29 905/449/29 906/451/29 +f 905/449/29 904/450/29 907/452/29 +f 907/452/29 908/453/29 905/449/29 +f 908/453/29 907/452/29 909/454/29 +f 909/454/29 910/455/29 908/453/29 +f 910/455/29 909/454/29 911/456/29 +f 911/456/29 912/457/29 910/455/29 +f 912/457/29 911/456/29 913/458/29 +f 913/458/29 914/459/29 912/457/29 +f 914/459/29 913/458/29 915/460/29 +f 915/460/29 916/461/29 914/459/29 +f 916/461/29 915/460/29 917/462/29 +f 916/461/29 917/462/29 918/463/29 +f 916/461/29 918/463/29 919/464/29 +f 920/132/398 921/131/399 922/133/400 +f 921/131/399 920/132/398 923/130/401 +f 923/130/401 924/128/402 921/131/399 +f 924/128/402 923/130/401 925/129/402 +f 926/138/403 927/137/404 928/139/405 +f 927/137/404 926/138/403 929/136/406 +f 929/136/406 930/134/407 927/137/404 +f 930/134/407 929/136/406 931/135/408 +f 932/466/409 933/465/410 934/467/410 +f 933/465/410 932/466/409 935/468/409 +f 935/468/409 936/469/409 933/465/410 +f 936/469/409 935/468/409 937/470/141 +f 937/470/141 938/471/411 936/469/409 +f 939/472/144 938/471/411 937/470/141 +f 938/471/411 939/472/144 940/473/412 +f 941/474/144 940/473/412 939/472/144 +f 941/474/144 942/475/137 940/473/412 +f 942/475/137 941/474/144 943/476/137 +f 944/477/413 941/474/144 939/472/144 +f 941/474/144 944/477/413 945/478/143 +f 946/479/414 945/478/143 944/477/413 +f 946/479/414 947/480/415 945/478/143 +f 947/480/415 946/479/414 948/481/416 +f 949/482/144 946/479/414 944/477/413 +f 946/479/414 949/482/144 950/483/417 +f 951/484/418 952/485/419 950/483/417 +f 951/484/418 950/483/417 953/486/420 +f 953/486/420 950/483/417 949/482/144 +f 949/482/144 954/487/421 953/486/420 +f 953/486/420 954/487/421 955/488/422 +f 954/487/421 956/489/423 955/488/422 +f 956/489/423 954/487/421 957/490/424 +f 954/487/421 958/491/424 957/490/424 +f 958/491/424 954/487/421 959/492/421 +f 959/492/421 960/493/425 958/491/424 +f 960/493/425 959/492/421 961/494/424 +f 961/494/424 962/495/426 960/493/425 +f 962/495/426 961/494/424 963/496/427 +f 964/498/428 965/497/67 966/499/429 +f 965/497/67 964/498/428 967/500/430 +f 967/500/430 968/501/431 965/497/67 +f 968/501/431 967/500/430 969/502/432 +f 970/144/433 971/143/434 972/145/435 +f 971/143/434 970/144/433 973/142/436 +f 973/142/436 974/140/437 971/143/434 +f 974/140/437 973/142/436 975/141/438 +f 976/504/439 977/503/440 978/505/441 +f 977/503/440 976/504/439 979/506/442 +f 979/506/442 980/507/443 977/503/440 +f 980/507/443 979/506/442 981/508/444 +f 982/510/445 983/509/446 984/511/447 +f 985/512/448 983/509/446 982/510/445 +f 985/512/448 982/510/445 986/513/449 +f 985/512/448 986/513/449 987/514/450 +f 985/512/448 987/514/450 988/515/450 +f 989/517/66 990/516/66 991/518/66 +f 990/516/66 989/517/66 992/519/68 +f 992/519/68 993/520/451 990/516/66 +f 993/520/451 992/519/68 994/521/452 +f 995/523/345 996/522/453 997/524/356 +f 996/522/453 995/523/345 998/525/345 +f 995/523/345 999/526/345 998/525/345 +f 1000/527/345 998/525/345 999/526/345 +f 999/526/345 1001/528/354 1000/527/345 +f 1002/529/454 1000/527/345 1001/528/354 +f 1001/528/354 1003/530/455 1002/529/454 +f 1003/530/455 1001/528/354 1004/531/456 +f 1004/531/456 1005/532/457 1003/530/455 +f 1005/532/457 1004/531/456 1006/533/458 +f 1006/533/458 1007/534/459 1005/532/457 +f 1007/534/459 1006/533/458 1008/535/460 +f 1008/535/460 1009/536/461 1007/534/459 +f 1009/536/461 1008/535/460 1010/537/462 +f 1011/538/463 1009/536/461 1010/537/462 +f 1011/538/463 1010/537/462 1012/539/464 +f 1011/538/463 1012/539/464 1013/540/465 +f 1014/541/466 1013/540/465 1012/539/464 +f 1015/542/467 1013/540/465 1014/541/466 +f 1015/542/467 1014/541/466 1016/543/468 +f 1017/544/469 1015/542/467 1016/543/468 +f 1017/544/469 1016/543/468 1018/545/470 +f 1019/546/471 1017/544/469 1018/545/470 +f 1017/544/469 1019/546/471 1020/547/469 +f 1021/150/472 1022/149/473 1023/151/474 +f 1022/149/473 1021/150/472 1024/148/475 +f 1024/148/475 1025/146/476 1022/149/473 +f 1025/146/476 1024/148/475 1026/147/477 +f 1027/548/29 1028/550/29 1029/549/29 +f 1029/549/29 1030/551/29 1027/548/29 +f 1027/548/29 1030/551/29 1031/552/29 +f 1032/553/29 1031/552/29 1030/551/29 +f 1031/552/29 1032/553/29 1033/554/29 +f 1033/554/29 1032/553/29 1034/555/29 +f 1035/556/29 1033/554/29 1034/555/29 +f 1035/556/29 1036/557/29 1033/554/29 +f 1033/554/29 1036/557/29 1037/558/29 +f 1038/559/29 1037/558/29 1036/557/29 +f 1036/557/29 1035/556/29 1039/560/29 +f 1039/560/29 1040/561/29 1036/557/29 +f 1039/560/29 1041/562/29 1040/561/29 +f 1039/560/29 1042/563/29 1041/562/29 +f 1043/564/29 1041/562/29 1042/563/29 +f 1041/562/29 1043/564/29 1044/565/29 +f 1045/152/478 1046/154/479 1047/153/480 +f 1048/155/481 1046/154/479 1045/152/478 +f 1046/154/479 1048/155/481 1049/156/105 +f 1049/156/105 1048/155/481 1050/157/482 +f 1050/157/482 1051/158/482 1049/156/105 +f 1051/158/482 1050/157/482 1052/159/482 +f 1053/591/483 1054/592/484 1055/593/484 +f 1054/592/484 1053/591/483 1056/590/485 +f 1057/589/486 1056/590/485 1053/591/483 +f 1056/590/485 1057/589/486 1058/588/487 +f 1059/587/488 1058/588/487 1057/589/486 +f 1058/588/487 1059/587/488 1060/586/489 +f 1061/585/490 1060/586/489 1059/587/488 +f 1060/586/489 1061/585/490 1062/584/491 +f 1063/583/327 1062/584/491 1061/585/490 +f 1063/583/327 1064/582/492 1062/584/491 +f 1065/581/493 1064/582/492 1063/583/327 +f 1065/581/493 1066/580/494 1064/582/492 +f 1067/579/8 1066/580/494 1065/581/493 +f 1066/580/494 1067/579/8 1068/578/8 +f 1067/579/8 1069/576/8 1068/578/8 +f 1069/576/8 1070/577/8 1068/578/8 +f 1070/577/8 1069/576/8 1071/575/8 +f 1071/575/8 1069/576/8 1072/573/8 +f 1072/573/8 1073/574/8 1071/575/8 +f 1073/574/8 1072/573/8 1074/572/8 +f 1074/572/8 1072/573/8 1075/570/8 +f 1074/572/8 1075/570/8 1076/571/8 +f 1075/570/8 1077/569/8 1076/571/8 +f 1077/569/8 1075/570/8 1078/566/8 +f 1078/566/8 1079/567/8 1077/569/8 +f 1079/567/8 1078/566/8 1080/568/8 +f 1081/597/495 1082/598/496 1083/599/495 +f 1082/598/496 1081/597/495 1084/595/12 +f 1085/594/495 1084/595/12 1081/597/495 +f 1084/595/12 1085/594/495 1086/596/12 +f 1087/610/497 1088/611/498 1089/612/499 +f 1088/611/498 1087/610/497 1090/613/500 +f 1090/613/500 1087/610/497 1091/614/501 +f 1092/615/500 1090/613/500 1091/614/501 +f 1091/614/501 1093/616/498 1092/615/500 +f 1094/617/500 1093/616/498 1091/614/501 +f 1095/618/8 1096/619/8 1097/620/8 +f 1096/619/8 1095/618/8 1098/621/8 +f 1098/621/8 1099/622/8 1096/619/8 +f 1099/622/8 1098/621/8 1100/623/8 +f 1099/622/8 1100/623/8 1101/624/8 +f 1101/624/8 1102/625/8 1099/622/8 +f 1103/626/168 1104/627/168 1105/628/168 +f 1103/626/168 1106/629/168 1104/627/168 +f 1107/630/168 1104/627/168 1106/629/168 +f 1108/631/502 1107/630/168 1106/629/168 +f 1107/630/168 1108/631/502 1109/632/502 +f 1109/632/502 1110/633/502 1107/630/168 +f 1111/634/503 1112/635/504 1113/636/505 +f 1112/635/504 1111/634/503 1114/637/504 +f 1115/638/504 1114/637/504 1111/634/503 +f 1114/637/504 1115/638/504 1116/639/503 +f 1116/639/503 1115/638/504 1117/640/503 +f 1118/641/503 1117/640/503 1115/638/504 +f 1119/642/8 1120/643/8 1121/644/8 +f 1120/643/8 1119/642/8 1122/645/8 +f 1122/645/8 1123/646/8 1120/643/8 +f 1123/646/8 1122/645/8 1124/647/8 +f 1123/646/8 1124/647/8 1125/648/8 +f 1125/648/8 1126/649/8 1123/646/8 +f 1127/650/506 1128/651/507 1129/652/506 +f 1129/652/506 1128/651/507 1130/653/508 +f 1130/653/508 1128/651/507 1131/654/509 +f 1130/653/508 1131/654/509 1132/655/510 +f 1131/654/509 1133/656/511 1132/655/510 +f 1133/656/511 1131/654/509 1134/657/512 +f 1135/658/513 1136/659/513 1137/660/513 +f 1135/658/513 1138/661/513 1136/659/513 +f 1139/662/513 1136/659/513 1138/661/513 +f 1138/661/513 1140/663/513 1139/662/513 +f 1140/663/513 1141/664/513 1139/662/513 +f 1139/662/513 1141/664/513 1142/665/513 +f 1143/666/514 1144/667/514 1145/668/515 +f 1144/667/514 1143/666/514 1146/669/516 +f 1147/670/515 1146/669/516 1143/666/514 +f 1146/669/516 1147/670/515 1148/671/514 +f 1148/671/514 1147/670/515 1149/672/514 +f 1147/670/515 1150/673/515 1149/672/514 +f 1151/674/517 1152/675/518 1153/676/519 +f 1151/674/517 1154/677/518 1152/675/518 +f 1155/678/517 1152/675/518 1154/677/518 +f 1156/679/517 1155/678/517 1154/677/518 +f 1155/678/517 1156/679/517 1157/680/517 +f 1157/680/517 1158/681/517 1155/678/517 +f 1159/682/66 1160/683/24 1161/684/24 +f 1162/685/66 1159/682/66 1161/684/24 +f 1159/682/66 1162/685/66 1163/686/24 +f 1163/686/24 1162/685/66 1164/687/24 +f 1163/686/24 1164/687/24 1165/688/24 +f 1163/686/24 1165/688/24 1166/689/66 +f 1167/690/66 1163/686/24 1166/689/66 +f 1166/689/66 1168/691/66 1167/690/66 +f 1168/691/66 1169/692/24 1167/690/66 +f 1169/692/24 1168/691/66 1170/693/66 +f 1171/694/24 1169/692/24 1170/693/66 +f 1171/694/24 1170/693/66 1172/695/66 +f 1171/694/24 1173/696/66 1169/692/24 +f 1171/694/24 1172/695/66 1174/697/66 +f 1175/698/66 1173/696/66 1171/694/24 +f 1176/699/66 1174/697/66 1172/695/66 +f 1173/696/66 1175/698/66 1177/700/66 +f 1174/697/66 1176/699/66 1178/701/66 +f 1179/702/66 1177/700/66 1175/698/66 +f 1180/703/24 1178/701/66 1176/699/66 +f 1177/700/66 1179/702/66 1181/704/66 +f 1178/701/66 1180/703/24 1182/705/24 +f 1183/706/24 1181/704/66 1179/702/66 +f 1182/705/24 1180/703/24 1184/707/520 +f 1181/704/66 1183/706/24 1185/708/66 +f 1184/707/520 1180/703/24 1186/709/521 +f 1187/710/522 1184/707/520 1186/709/521 +f 1184/707/520 1187/710/522 1188/711/523 +f 1189/712/524 1188/711/523 1187/710/522 +f 1188/711/523 1189/712/524 1190/713/524 +f 1191/714/66 1190/713/524 1189/712/524 +f 1191/714/66 1189/712/524 1192/715/66 +f 1191/714/66 1192/715/66 1193/716/66 +f 1193/716/66 1192/715/66 1194/717/66 +f 1194/717/66 1195/718/66 1193/716/66 +f 1195/718/66 1194/717/66 1196/719/66 +f 1196/719/66 1197/720/24 1195/718/66 +f 1197/720/24 1196/719/66 1198/721/66 +f 1198/721/66 1199/722/66 1197/720/24 +f 1199/722/66 1198/721/66 1200/723/66 +f 1200/723/66 1201/724/66 1199/722/66 +f 1201/724/66 1200/723/66 1202/725/24 +f 1203/726/24 1201/724/66 1202/725/24 +f 1201/724/66 1203/726/24 1204/727/24 +f 1203/726/24 1205/728/24 1204/727/24 +f 1203/726/24 1206/729/66 1205/728/24 +f 1183/706/24 1207/730/24 1185/708/66 +f 1183/706/24 1208/731/66 1207/730/24 +f 1185/708/66 1207/730/24 1209/732/24 +f 1208/731/66 1210/733/24 1207/730/24 +f 1208/731/66 1211/734/24 1210/733/24 +f 1211/734/24 1212/735/24 1210/733/24 +f 1212/735/24 1213/736/24 1210/733/24 +f 1214/737/66 1210/733/24 1213/736/24 +f 1215/738/66 1216/739/24 1210/733/24 +f 1210/733/24 1214/737/66 1217/740/24 +f 1215/738/66 1210/733/24 1217/740/24 +f 1217/740/24 1218/741/24 1215/738/66 +f 1218/741/24 1217/740/24 1219/742/24 +f 1217/740/24 1214/737/66 1220/743/66 +f 1221/744/66 1219/742/24 1217/740/24 +f 1222/745/24 1217/740/24 1220/743/66 +f 1221/744/66 1217/740/24 1222/745/24 +f 1221/744/66 1222/745/24 1223/746/24 +f 1224/747/66 1222/745/24 1220/743/66 +f 1222/745/24 1224/747/66 1225/748/66 +f 1225/748/66 1224/747/66 1226/749/66 +f 1225/748/66 1226/749/66 1227/750/24 +f 1227/750/24 1226/749/66 1228/751/24 +f 1226/749/66 1229/752/525 1228/751/24 +f 1230/753/24 1231/754/24 1207/730/24 +f 1230/753/24 1232/755/24 1231/754/24 +f 1231/754/24 1209/732/24 1207/730/24 +f 1231/754/24 1232/755/24 1233/756/24 +f 1233/756/24 1234/757/24 1231/754/24 +f 1234/757/24 1235/758/24 1231/754/24 +f 1231/754/24 1235/758/24 1209/732/24 +f 1235/758/24 1236/759/66 1209/732/24 +f 1235/758/24 1237/760/66 1236/759/66 +f 1237/760/66 1238/761/526 1236/759/66 +f 1238/761/526 1237/760/66 1239/762/527 +f 1240/763/528 1238/761/526 1239/762/527 +f 1238/761/526 1240/763/528 1241/764/529 +f 1242/765/530 1241/764/529 1240/763/528 +f 1241/764/529 1242/765/530 1243/766/531 +f 1244/767/532 1243/766/531 1242/765/530 +f 1245/768/533 1243/766/531 1244/767/532 +f 1246/769/534 1245/768/533 1244/767/532 +f 1245/768/533 1246/769/534 1247/770/535 +f 1248/189/9 1249/191/125 1250/190/9 +f 1249/191/125 1248/189/9 1251/192/125 +f 1249/191/125 1251/192/125 1252/193/127 +f 1251/192/125 1253/194/127 1252/193/127 +f 1252/193/127 1253/194/127 1254/195/128 +f 1252/193/127 1254/195/128 1255/196/536 +f 1256/197/130 1255/196/536 1254/195/128 +f 1256/197/130 1257/198/130 1255/196/536 +f 1258/199/133 1257/198/130 1256/197/130 +f 1259/200/133 1258/199/133 1256/197/130 +f 1260/771/537 1261/772/538 1262/773/538 +f 1262/773/538 1263/774/537 1260/771/537 +f 1263/774/537 1264/775/539 1260/771/537 +f 1264/775/539 1263/774/537 1265/776/540 +f 1266/201/24 1267/203/66 1268/202/24 +f 1269/204/24 1267/203/66 1266/201/24 +f 1267/203/66 1269/204/24 1270/205/24 +f 1269/204/24 1271/206/66 1270/205/24 +f 1269/204/24 1272/207/66 1271/206/66 +f 1272/207/66 1273/208/66 1271/206/66 +f 1274/209/24 1273/208/66 1272/207/66 +f 1275/210/24 1273/208/66 1274/209/24 +f 1276/777/66 1277/778/24 1278/779/24 +f 1277/778/24 1276/777/66 1279/780/66 +f 1280/781/24 1279/780/66 1276/777/66 +f 1279/780/66 1280/781/24 1281/782/24 +f 1282/783/541 1283/784/541 1284/785/541 +f 1283/784/541 1282/783/541 1285/786/541 +f 1285/786/541 1286/787/541 1283/784/541 +f 1285/786/541 1287/788/541 1286/787/541 +f 1286/787/541 1287/788/541 1288/789/541 +f 1289/214/542 1290/215/421 1291/216/421 +f 1290/215/421 1289/214/542 1292/213/543 +f 1293/212/43 1292/213/543 1289/214/542 +f 1292/213/543 1293/212/43 1294/211/43 +f 1295/790/544 1296/791/545 1297/792/544 +f 1298/793/546 1296/791/545 1295/790/544 +f 1298/793/546 1299/794/547 1296/791/545 +f 1299/794/547 1298/793/546 1300/795/547 +f 1299/794/547 1300/795/547 1301/796/548 +f 1302/797/548 1301/796/548 1300/795/547 +f 1301/796/548 1302/797/548 1303/798/549 +f 1304/799/550 1303/798/549 1302/797/548 +f 1305/800/551 1303/798/549 1304/799/550 +f 1303/798/549 1305/800/551 1306/801/551 +f 1307/802/29 1308/803/376 1309/804/552 +f 1307/802/29 1309/804/552 1310/805/29 +f 1310/805/29 1311/806/29 1307/802/29 +f 1310/805/29 1312/807/553 1311/806/29 +f 1313/808/554 1312/807/553 1310/805/29 +f 1312/807/553 1313/808/554 1314/809/553 +f 1315/810/29 1316/811/29 1317/812/29 +f 1318/813/29 1317/812/29 1316/811/29 +f 1319/814/29 1318/813/29 1316/811/29 +f 1318/813/29 1319/814/29 1320/815/29 +f 1321/769/555 1322/768/556 1323/770/557 +f 1321/769/555 1324/767/558 1322/768/556 +f 1324/767/558 1325/766/559 1322/768/556 +f 1324/767/558 1326/765/560 1325/766/559 +f 1326/765/560 1327/764/561 1325/766/559 +f 1327/764/561 1326/765/560 1328/763/562 +f 1328/763/562 1329/761/563 1327/764/561 +f 1329/761/563 1328/763/562 1330/762/564 +f 1330/762/564 1331/760/29 1329/761/563 +f 1331/760/29 1332/759/29 1329/761/563 +f 1333/758/29 1332/759/29 1331/760/29 +f 1333/758/29 1334/732/29 1332/759/29 +f 1335/754/29 1334/732/29 1333/758/29 +f 1336/757/29 1335/754/29 1333/758/29 +f 1337/756/29 1335/754/29 1336/757/29 +f 1338/755/29 1335/754/29 1337/756/29 +f 1339/753/29 1335/754/29 1338/755/29 +f 1335/754/29 1339/753/29 1340/730/29 +f 1340/730/29 1334/732/29 1335/754/29 +f 1340/730/29 1341/708/29 1334/732/29 +f 1342/706/29 1341/708/29 1340/730/29 +f 1342/706/29 1343/704/29 1341/708/29 +f 1342/706/29 1340/730/29 1344/731/29 +f 1343/704/29 1342/706/29 1345/702/29 +f 1344/731/29 1340/730/29 1346/733/29 +f 1345/702/29 1347/700/29 1343/704/29 +f 1347/700/29 1345/702/29 1348/698/29 +f 1348/698/29 1349/696/29 1347/700/29 +f 1344/731/29 1346/733/29 1350/734/29 +f 1349/696/29 1348/698/29 1351/694/29 +f 1350/734/29 1346/733/29 1352/735/29 +f 1349/696/29 1351/694/29 1353/692/29 +f 1352/735/29 1346/733/29 1354/736/29 +f 1346/733/29 1355/737/29 1354/736/29 +f 1356/693/29 1353/692/29 1351/694/29 +f 1357/695/29 1356/693/29 1351/694/29 +f 1358/691/29 1353/692/29 1356/693/29 +f 1357/695/29 1351/694/29 1359/697/29 +f 1353/692/29 1358/691/29 1360/690/29 +f 1361/699/29 1357/695/29 1359/697/29 +f 1362/689/29 1360/690/29 1358/691/29 +f 1363/701/29 1361/699/29 1359/697/29 +f 1360/690/29 1362/689/29 1364/686/29 +f 1363/701/29 1365/703/29 1361/699/29 +f 1364/686/29 1362/689/29 1366/688/29 +f 1365/703/29 1363/701/29 1367/705/29 +f 1364/686/29 1366/688/29 1368/687/29 +f 1369/707/565 1365/703/29 1367/705/29 +f 1364/686/29 1368/687/29 1370/685/29 +f 1365/703/29 1369/707/565 1371/709/566 +f 1370/685/29 1372/682/29 1364/686/29 +f 1369/707/565 1373/710/567 1371/709/566 +f 1372/682/29 1370/685/29 1374/684/29 +f 1372/682/29 1374/684/29 1375/683/29 +f 1373/710/567 1369/707/565 1376/711/568 +f 1376/711/568 1377/712/569 1373/710/567 +f 1377/712/569 1376/711/568 1378/713/570 +f 1379/714/571 1377/712/569 1378/713/570 +f 1377/712/569 1379/714/571 1380/715/29 +f 1381/716/29 1380/715/29 1379/714/571 +f 1380/715/29 1381/716/29 1382/717/29 +f 1382/717/29 1381/716/29 1383/718/29 +f 1383/718/29 1384/719/29 1382/717/29 +f 1385/720/29 1384/719/29 1383/718/29 +f 1384/719/29 1385/720/29 1386/721/29 +f 1386/721/29 1385/720/29 1387/722/572 +f 1386/721/29 1387/722/572 1388/723/571 +f 1389/724/29 1388/723/571 1387/722/572 +f 1388/723/571 1389/724/29 1390/725/29 +f 1390/725/29 1389/724/29 1391/726/29 +f 1391/726/29 1389/724/29 1392/727/29 +f 1393/728/29 1391/726/29 1392/727/29 +f 1394/729/29 1391/726/29 1393/728/29 +f 1395/772/538 1396/771/537 1397/773/538 +f 1397/773/538 1396/771/537 1398/774/573 +f 1399/775/574 1398/774/573 1396/771/537 +f 1398/774/573 1399/775/574 1400/776/575 +f 1401/777/29 1402/779/29 1403/778/29 +f 1401/777/29 1403/778/29 1404/780/29 +f 1405/781/29 1401/777/29 1404/780/29 +f 1405/781/29 1404/780/29 1406/782/29 +f 1407/784/576 1408/783/576 1409/785/576 +f 1408/783/576 1407/784/576 1410/786/576 +f 1410/786/576 1407/784/576 1411/787/577 +f 1412/788/576 1410/786/576 1411/787/577 +f 1411/787/577 1413/789/578 1412/788/576 +f 1414/791/545 1415/790/579 1416/792/544 +f 1414/791/545 1417/793/580 1415/790/579 +f 1418/794/547 1417/793/580 1414/791/545 +f 1418/794/547 1419/795/547 1417/793/580 +f 1420/796/548 1419/795/547 1418/794/547 +f 1419/795/547 1420/796/548 1421/797/548 +f 1421/797/548 1420/796/548 1422/798/549 +f 1421/797/548 1422/798/549 1423/799/550 +f 1422/798/549 1424/800/551 1423/799/550 +f 1424/800/551 1422/798/549 1425/801/494 +f 1426/808/581 1427/807/582 1428/809/583 +f 1427/807/582 1426/808/581 1429/805/68 +f 1429/805/68 1430/806/584 1427/807/582 +f 1430/806/584 1429/805/68 1431/802/131 +f 1431/802/131 1429/805/68 1432/804/69 +f 1431/802/131 1432/804/69 1433/803/585 +f 1434/186/122 1435/187/120 1436/188/586 +f 1434/186/122 1437/184/122 1435/187/120 +f 1437/184/122 1434/186/122 1438/185/120 +f 1439/814/24 1440/813/66 1441/815/24 +f 1440/813/66 1439/814/24 1442/811/66 +f 1443/812/24 1440/813/66 1442/811/66 +f 1443/812/24 1442/811/66 1444/810/24 +f 1445/816/587 1446/817/588 1447/818/589 +f 1445/816/587 1448/819/590 1446/817/588 +f 1448/819/590 1445/816/587 1449/820/591 +f 1449/820/591 1445/816/587 1450/821/592 +f 1451/822/593 1449/820/591 1450/821/592 +f 1449/820/591 1451/822/593 1452/823/593 +f 1451/822/593 1453/824/594 1452/823/593 +f 1453/824/594 1451/822/593 1454/825/595 +f 1455/826/596 1453/824/594 1454/825/595 +f 1453/824/594 1455/826/596 1456/827/597 +f 1455/826/596 1457/828/598 1456/827/597 +f 1457/828/598 1455/826/596 1458/829/599 +f 1459/830/8 1460/831/8 1461/832/8 +f 1462/833/8 1461/832/8 1460/831/8 +f 1463/834/8 1462/833/8 1460/831/8 +f 1463/834/8 1460/831/8 1464/835/8 +f 1465/836/12 1466/837/12 1467/838/12 +f 1467/838/12 1466/837/12 1468/839/12 +f 1467/838/12 1468/839/12 1469/840/12 +f 1470/841/12 1467/838/12 1469/840/12 +f 1471/842/600 1472/843/601 1473/844/600 +f 1471/842/600 1474/845/602 1472/843/601 +f 1475/846/603 1472/843/601 1474/845/602 +f 1472/843/601 1475/846/603 1476/847/604 +f 1475/846/603 1477/848/605 1476/847/604 +f 1478/849/606 1476/847/604 1477/848/605 +f 1476/847/604 1478/849/606 1479/850/607 +f 1480/851/608 1479/850/607 1478/849/606 +f 1479/850/607 1480/851/608 1481/852/608 +f 1480/851/608 1482/853/609 1481/852/608 +f 1482/853/609 1480/851/608 1483/854/610 +f 1483/854/610 1484/855/611 1482/853/609 +f 1484/855/611 1483/854/610 1485/856/612 +f 1486/857/613 1484/855/611 1485/856/612 +f 1487/858/614 1484/855/611 1486/857/613 +f 1487/858/614 1486/857/613 1488/859/615 +f 1489/860/616 1487/858/614 1488/859/615 +f 1487/858/614 1489/860/616 1490/861/616 +f 1491/862/60 1492/863/617 1493/864/60 +f 1492/863/617 1491/862/60 1494/865/618 +f 1492/863/617 1494/865/618 1495/866/619 +f 1495/866/619 1496/867/619 1492/863/617 +f 1497/868/620 1498/869/621 1499/870/621 +f 1498/869/621 1497/868/620 1500/871/622 +f 1501/872/623 1500/871/622 1497/868/620 +f 1501/872/623 1497/868/620 1502/873/623 +f 1503/874/624 1504/875/625 1505/876/626 +f 1504/875/625 1503/874/624 1506/877/627 +f 1507/878/628 1504/875/625 1506/877/627 +f 1504/875/625 1507/878/628 1508/879/628 +f 1509/880/629 1510/881/630 1511/882/631 +f 1510/881/630 1509/880/629 1512/883/632 +f 1513/884/633 1512/883/632 1509/880/629 +f 1509/880/629 1514/885/634 1513/884/633 +f 1515/886/635 1513/884/633 1514/885/634 +f 1515/886/635 1514/885/634 1516/887/636 +f 1514/885/634 1517/888/637 1516/887/636 +f 1517/888/637 1514/885/634 1518/889/631 +f 1519/890/638 1520/891/638 1521/892/638 +f 1520/891/638 1519/890/638 1522/893/638 +f 1522/893/638 1523/894/639 1524/895/638 +f 1525/896/640 1522/893/638 1519/890/638 +f 1522/893/638 1525/896/640 1523/894/639 +f 1525/896/640 1519/890/638 1526/897/641 +f 1527/898/642 1525/896/640 1526/897/641 +f 1525/896/640 1528/899/231 1523/894/639 +f 1525/896/640 1527/898/642 1529/900/643 +f 1528/899/231 1525/896/640 1530/901/644 +f 1529/900/643 1530/901/644 1525/896/640 +f 1530/901/644 1529/900/643 1531/902/645 +f 1530/901/644 1532/903/646 1528/899/231 +f 1533/904/647 1530/901/644 1531/902/645 +f 1532/903/646 1530/901/644 1534/905/648 +f 1530/901/644 1533/904/647 1534/905/648 +f 1534/905/648 1535/906/649 1532/903/646 +f 1536/907/650 1534/905/648 1533/904/647 +f 1535/906/649 1534/905/648 1537/908/651 +f 1534/905/648 1536/907/650 1537/908/651 +f 1537/908/651 1538/909/652 1535/906/649 +f 1536/907/650 1539/910/653 1537/908/651 +f 1539/910/653 1538/909/652 1537/908/651 +f 1539/910/653 1536/907/650 1540/911/654 +f 1539/910/653 1541/912/655 1538/909/652 +f 1540/911/654 1542/913/656 1539/910/653 +f 1542/913/656 1541/912/655 1539/910/653 +f 1542/913/656 1540/911/654 1543/914/657 +f 1541/912/655 1542/913/656 1544/915/658 +f 1543/914/657 1544/915/658 1542/913/656 +f 1544/915/658 1543/914/657 1545/916/659 +f 1546/917/659 1544/915/658 1545/916/659 +f 1544/915/658 1547/918/12 1541/912/655 +f 1544/915/658 1546/917/659 1548/919/660 +f 1547/918/12 1544/915/658 1548/919/660 +f 1548/919/660 1549/920/12 1547/918/12 +f 1550/921/661 1551/922/662 1552/923/662 +f 1551/922/662 1550/921/661 1553/924/663 +f 1553/924/663 1550/921/661 1554/925/24 +f 1554/925/24 1550/921/661 1555/926/24 +f 1556/927/24 1553/924/663 1554/925/24 +f 1554/925/24 1557/928/24 1556/927/24 +f 1558/929/12 1559/930/12 1560/17/664 +f 1561/931/665 1560/17/664 1559/930/12 +f 1562/932/659 1560/17/664 1561/931/665 +f 1560/17/664 1562/932/659 1563/933/659 +f 1564/891/666 1565/890/666 1566/892/667 +f 1565/890/666 1564/891/666 1567/893/666 +f 1567/893/666 1568/895/666 1569/894/668 +f 1567/893/666 1570/896/669 1565/890/666 +f 1569/894/668 1570/896/669 1567/893/666 +f 1570/896/669 1571/897/670 1565/890/666 +f 1570/896/669 1572/898/671 1571/897/670 +f 1573/899/453 1570/896/669 1569/894/668 +f 1572/898/671 1570/896/669 1574/900/672 +f 1570/896/669 1573/899/453 1575/901/673 +f 1575/901/673 1574/900/672 1570/896/669 +f 1574/900/672 1575/901/673 1576/902/674 +f 1575/901/673 1573/899/453 1577/903/675 +f 1575/901/673 1578/904/676 1576/902/674 +f 1577/903/675 1579/905/677 1575/901/673 +f 1578/904/676 1575/901/673 1579/905/677 +f 1579/905/677 1577/903/675 1580/906/678 +f 1581/907/679 1578/904/676 1579/905/677 +f 1580/906/678 1582/908/680 1579/905/677 +f 1579/905/677 1582/908/680 1581/907/679 +f 1582/908/680 1580/906/678 1583/909/681 +f 1584/910/682 1581/907/679 1582/908/680 +f 1582/908/680 1583/909/681 1584/910/682 +f 1581/907/679 1584/910/682 1585/911/683 +f 1586/912/684 1584/910/682 1583/909/681 +f 1587/913/685 1585/911/683 1584/910/682 +f 1584/910/682 1586/912/684 1587/913/685 +f 1585/911/683 1587/913/685 1588/914/686 +f 1587/913/685 1586/912/684 1589/915/658 +f 1589/915/658 1588/914/686 1587/913/685 +f 1588/914/686 1589/915/658 1590/916/659 +f 1591/917/659 1590/916/659 1589/915/658 +f 1589/915/658 1586/912/684 1592/918/12 +f 1589/915/658 1593/919/660 1591/917/659 +f 1589/915/658 1592/918/12 1593/919/660 +f 1593/919/660 1592/918/12 1594/920/12 +f 1595/922/687 1596/921/688 1597/923/687 +f 1596/921/688 1595/922/687 1598/924/689 +f 1598/924/689 1599/925/29 1596/921/688 +f 1599/925/29 1600/926/29 1596/921/688 +f 1598/924/689 1601/927/29 1599/925/29 +f 1599/925/29 1601/927/29 1602/928/29 +f 1603/934/690 1604/935/691 1605/936/690 +f 1603/934/690 1605/936/690 1606/937/690 +f 1603/934/690 1606/937/690 1607/938/690 +f 1608/939/690 1603/934/690 1607/938/690 +f 1608/939/690 1607/938/690 1609/940/690 +f 1610/941/690 1608/939/690 1609/940/690 +f 1611/942/690 1610/941/690 1609/940/690 +f 1611/942/690 1612/943/690 1610/941/690 +f 1613/944/690 1612/943/690 1611/942/690 +f 1612/943/690 1613/944/690 1614/945/690 +f 1615/946/692 1614/945/690 1613/944/690 +f 1614/945/690 1615/946/692 1616/947/693 +f 1617/948/694 1616/947/693 1615/946/692 +f 1616/947/693 1617/948/694 1618/949/695 +f 1618/949/695 1617/948/694 1619/950/8 +f 1617/948/694 1620/951/8 1619/950/8 +f 1620/951/8 1617/948/694 1621/952/696 +f 1622/953/697 1620/951/8 1621/952/696 +f 1623/954/698 1622/953/697 1621/952/696 +f 1624/955/699 1623/954/698 1621/952/696 +f 1625/956/690 1623/954/698 1624/955/699 +f 1626/957/690 1625/956/690 1624/955/699 +f 1627/958/691 1625/956/690 1626/957/690 +f 1627/958/691 1626/957/690 1628/959/690 +f 1628/959/690 1629/960/690 1627/958/691 +f 1629/960/690 1628/959/690 1630/961/690 +f 1630/961/690 1631/962/690 1629/960/690 +f 1631/962/690 1630/961/690 1632/963/690 +f 1631/962/690 1632/963/690 1633/964/690 +f 1633/964/690 1632/963/690 1634/965/690 +f 1635/966/690 1633/964/690 1634/965/690 +f 1633/964/690 1635/966/690 1636/967/690 +f 1637/968/700 1638/969/701 1639/970/702 +f 1639/970/702 1640/971/703 1637/968/700 +f 1640/971/703 1639/970/702 1641/972/704 +f 1641/972/704 1639/970/702 1642/973/705 +f 1643/974/706 1641/972/704 1642/973/705 +f 1641/972/704 1643/974/706 1644/975/707 +f 1645/976/708 1646/977/709 1647/978/710 +f 1646/977/709 1645/976/708 1648/979/711 +f 1645/976/708 1649/980/712 1648/979/711 +f 1649/980/712 1645/976/708 1650/981/713 +f 1651/982/714 1649/980/712 1650/981/713 +f 1649/980/712 1651/982/714 1652/983/715 +f 1653/984/716 1649/980/712 1652/983/715 +f 1654/985/717 1648/979/711 1649/980/712 +f 1654/985/717 1649/980/712 1653/984/716 +f 1654/985/717 1655/986/718 1648/979/711 +f 1656/987/719 1654/985/717 1653/984/716 +f 1654/985/717 1657/988/720 1655/986/718 +f 1658/989/721 1654/985/717 1656/987/719 +f 1657/988/720 1654/985/717 1658/989/721 +f 1659/990/722 1660/991/723 1661/992/723 +f 1660/991/723 1659/990/722 1662/993/722 +f 1663/994/724 1662/993/722 1659/990/722 +f 1659/990/722 1664/995/724 1663/994/724 +f 1665/996/725 1666/997/726 1667/998/726 +f 1666/997/726 1665/996/725 1668/999/727 +f 1669/1000/728 1668/999/727 1665/996/725 +f 1665/996/725 1670/1001/729 1669/1000/728 +f 1671/1002/730 1672/1003/731 1673/1004/731 +f 1673/1004/731 1674/1005/732 1671/1002/730 +f 1675/1006/733 1671/1002/730 1674/1005/732 +f 1671/1002/730 1675/1006/733 1676/1007/733 +f 1677/1008/734 1678/1009/735 1679/1010/736 +f 1680/1011/737 1678/1009/735 1677/1008/734 +f 1677/1008/734 1681/1012/738 1680/1011/737 +f 1681/1012/738 1677/1008/734 1682/1013/739 +f 1683/1014/12 1684/1015/12 1685/1016/12 +f 1685/1016/12 1686/1017/12 1683/1014/12 +f 1686/1017/12 1687/1018/12 1683/1014/12 +f 1687/1018/12 1688/1019/12 1683/1014/12 +f 1689/1020/740 1688/1019/12 1687/1018/12 +f 1687/1018/12 1690/1021/741 1689/1020/740 +f 1691/1022/742 1689/1020/740 1690/1021/741 +f 1689/1020/740 1691/1022/742 1692/1023/743 +f 1693/1024/12 1694/1025/12 1695/1026/12 +f 1695/1026/12 1696/1027/12 1693/1024/12 +f 1693/1024/12 1697/1028/12 1698/1029/12 +f 1697/1028/12 1693/1024/12 1696/1027/12 +f 1696/1027/12 1699/1030/12 1697/1028/12 +f 1700/1031/12 1699/1030/12 1696/1027/12 +f 1696/1027/12 1701/1032/744 1700/1031/12 +f 1700/1031/12 1701/1032/744 1702/1033/745 +f 1701/1032/744 1703/1034/746 1702/1033/745 +f 1703/1034/746 1701/1032/744 1704/1035/747 +f 1705/974/748 1706/972/749 1707/975/750 +f 1706/972/749 1705/974/748 1708/973/751 +f 1709/970/752 1706/972/749 1708/973/751 +f 1710/971/753 1706/972/749 1709/970/752 +f 1709/970/752 1711/968/754 1710/971/753 +f 1711/968/754 1709/970/752 1712/969/755 +f 1713/976/718 1714/978/756 1715/977/756 +f 1715/977/756 1716/979/718 1713/976/718 +f 1717/980/757 1713/976/718 1716/979/718 +f 1713/976/718 1717/980/757 1718/981/758 +f 1717/980/757 1719/982/759 1718/981/758 +f 1720/983/760 1719/982/759 1717/980/757 +f 1721/984/761 1720/983/760 1717/980/757 +f 1717/980/757 1716/979/718 1722/985/762 +f 1717/980/757 1722/985/762 1721/984/761 +f 1723/986/718 1722/985/762 1716/979/718 +f 1722/985/762 1724/987/763 1721/984/761 +f 1725/988/764 1722/985/762 1723/986/718 +f 1724/987/763 1722/985/762 1726/989/762 +f 1722/985/762 1725/988/764 1726/989/762 +f 1727/1036/765 1728/1037/766 1729/1038/767 +f 1727/1036/765 1730/1039/768 1728/1037/766 +f 1730/1039/768 1727/1036/765 1731/1040/769 +f 1731/1040/769 1732/1041/770 1730/1039/768 +f 1733/1042/771 1731/1040/769 1727/1036/765 +f 1732/1041/770 1731/1040/769 1734/1043/772 +f 1734/1043/772 1735/1044/773 1732/1041/770 +f 1731/1040/769 1733/1042/771 1736/1045/774 +f 1731/1040/769 1736/1045/774 1734/1043/772 +f 1737/1046/775 1736/1045/774 1733/1042/771 +f 1735/1044/773 1734/1043/772 1738/1047/776 +f 1738/1047/776 1739/1048/777 1735/1044/773 +f 1734/1043/772 1736/1045/774 1740/1049/778 +f 1734/1043/772 1740/1049/778 1738/1047/776 +f 1736/1045/774 1737/1046/775 1741/1050/779 +f 1736/1045/774 1741/1050/779 1740/1049/778 +f 1742/1051/780 1743/1052/781 1737/1046/775 +f 1743/1052/781 1741/1050/779 1737/1046/775 +f 1741/1050/779 1743/1052/781 1744/1053/782 +f 1740/1049/778 1741/1050/779 1744/1053/782 +f 1744/1053/782 1743/1052/781 1745/1054/783 +f 1740/1049/778 1744/1053/782 1746/1055/784 +f 1738/1047/776 1740/1049/778 1746/1055/784 +f 1744/1053/782 1745/1054/783 1747/1056/785 +f 1746/1055/784 1744/1053/782 1747/1056/785 +f 1747/1056/785 1745/1054/783 1748/1057/786 +f 1738/1047/776 1746/1055/784 1749/1058/787 +f 1739/1048/777 1738/1047/776 1749/1058/787 +f 1749/1058/787 1750/1059/788 1739/1048/777 +f 1746/1055/784 1747/1056/785 1751/1060/195 +f 1749/1058/787 1746/1055/784 1751/1060/195 +f 1752/1061/789 1747/1056/785 1748/1057/786 +f 1751/1060/195 1747/1056/785 1752/1061/789 +f 1752/1061/789 1748/1057/786 1753/1062/790 +f 1749/1058/787 1751/1060/195 1754/1063/791 +f 1750/1059/788 1749/1058/787 1754/1063/791 +f 1751/1060/195 1752/1061/789 1755/1064/12 +f 1754/1063/791 1751/1060/195 1755/1064/12 +f 1756/1065/792 1752/1061/789 1753/1062/790 +f 1755/1064/12 1752/1061/789 1756/1065/792 +f 1756/1065/792 1753/1062/790 1757/1066/793 +f 1758/1067/794 1756/1065/792 1757/1066/793 +f 1756/1065/792 1758/1067/794 1759/1068/795 +f 1755/1064/12 1756/1065/792 1759/1068/795 +f 1758/1067/794 1760/1069/796 1759/1068/795 +f 1754/1063/791 1755/1064/12 1761/1070/189 +f 1759/1068/795 1761/1070/189 1755/1064/12 +f 1762/1071/797 1759/1068/795 1760/1069/796 +f 1761/1070/189 1759/1068/795 1762/1071/797 +f 1762/1071/797 1760/1069/796 1763/1072/798 +f 1761/1070/189 1764/1073/799 1754/1063/791 +f 1764/1073/799 1750/1059/788 1754/1063/791 +f 1750/1059/788 1764/1073/799 1765/1074/800 +f 1762/1071/797 1766/1075/801 1761/1070/189 +f 1764/1073/799 1761/1070/189 1766/1075/801 +f 1767/1076/802 1762/1071/797 1763/1072/798 +f 1766/1075/801 1762/1071/797 1767/1076/802 +f 1767/1076/802 1763/1072/798 1768/1077/803 +f 1769/1078/804 1765/1074/800 1764/1073/799 +f 1766/1075/801 1769/1078/804 1764/1073/799 +f 1765/1074/800 1769/1078/804 1770/1079/805 +f 1767/1076/802 1771/1080/806 1766/1075/801 +f 1769/1078/804 1766/1075/801 1771/1080/806 +f 1772/1081/807 1770/1079/805 1769/1078/804 +f 1771/1080/806 1772/1081/807 1769/1078/804 +f 1770/1079/805 1772/1081/807 1773/1082/808 +f 1771/1080/806 1767/1076/802 1774/1083/809 +f 1774/1083/809 1767/1076/802 1768/1077/803 +f 1772/1081/807 1771/1080/806 1775/1084/810 +f 1774/1083/809 1775/1084/810 1771/1080/806 +f 1774/1083/809 1768/1077/803 1776/1085/811 +f 1776/1085/811 1775/1084/810 1774/1083/809 +f 1777/1086/812 1776/1085/811 1768/1077/803 +f 1775/1084/810 1776/1085/811 1778/1087/813 +f 1775/1084/810 1779/1088/814 1772/1081/807 +f 1778/1087/813 1779/1088/814 1775/1084/810 +f 1779/1088/814 1773/1082/808 1772/1081/807 +f 1779/1088/814 1778/1087/813 1780/1089/815 +f 1773/1082/808 1779/1088/814 1781/1090/816 +f 1780/1089/815 1781/1090/816 1779/1088/814 +f 1781/1090/816 1780/1089/815 1782/1091/817 +f 1780/1089/815 1783/1092/500 1782/1091/817 +f 1784/990/818 1785/994/819 1786/995/820 +f 1785/994/819 1784/990/818 1787/993/818 +f 1784/990/818 1788/991/821 1787/993/818 +f 1788/991/821 1784/990/818 1789/992/822 +f 1790/1000/823 1791/1001/823 1792/996/824 +f 1790/1000/823 1792/996/824 1793/999/824 +f 1792/996/824 1794/997/825 1793/999/824 +f 1794/997/825 1792/996/824 1795/998/826 +f 1796/1004/827 1797/1003/827 1798/1002/828 +f 1796/1004/827 1798/1002/828 1799/1005/829 +f 1798/1002/828 1800/1006/830 1799/1005/829 +f 1800/1006/830 1798/1002/828 1801/1007/831 +f 1802/1008/832 1803/1010/833 1804/1009/834 +f 1805/1011/835 1802/1008/832 1804/1009/834 +f 1806/1012/836 1802/1008/832 1805/1011/835 +f 1802/1008/832 1806/1012/836 1807/1013/837 +f 1808/1020/741 1809/1023/838 1810/1022/742 +f 1811/1021/740 1808/1020/741 1810/1022/742 +f 1812/1018/12 1808/1020/741 1811/1021/740 +f 1808/1020/741 1812/1018/12 1813/1019/12 +f 1812/1018/12 1814/1014/12 1813/1019/12 +f 1815/1017/12 1814/1014/12 1812/1018/12 +f 1815/1017/12 1816/1016/12 1814/1014/12 +f 1817/1015/12 1814/1014/12 1816/1016/12 +f 1818/1093/839 1819/1094/393 1820/1095/840 +f 1821/1096/841 1819/1094/393 1818/1093/839 +f 1822/1097/842 1819/1094/393 1821/1096/841 +f 1819/1094/393 1822/1097/842 1823/1098/843 +f 1824/1099/844 1823/1098/843 1822/1097/842 +f 1823/1098/843 1824/1099/844 1825/1100/842 +f 1826/1101/845 1825/1100/842 1824/1099/844 +f 1825/1100/842 1826/1101/845 1827/1102/845 +f 1826/1101/845 1828/1103/43 1827/1102/845 +f 1828/1103/43 1826/1101/845 1829/1104/44 +f 1830/1105/843 1828/1103/43 1829/1104/44 +f 1829/1104/44 1831/1106/844 1830/1105/843 +f 1832/1107/846 1830/1105/843 1831/1106/844 +f 1830/1105/843 1832/1107/846 1833/1108/847 +f 1834/1109/848 1833/1108/847 1832/1107/846 +f 1833/1108/847 1834/1109/848 1835/1110/847 +f 1835/1110/847 1834/1109/848 1836/1111/849 +f 1835/1110/847 1837/1112/44 1833/1108/847 +f 1835/1110/847 1836/1111/849 1838/1113/850 +f 1837/1112/44 1835/1110/847 1839/1114/44 +f 1839/1114/44 1840/1115/44 1837/1112/44 +f 1838/1113/850 1841/1116/44 1835/1110/847 +f 1841/1116/44 1838/1113/850 1842/1117/851 +f 1843/1118/44 1835/1110/847 1841/1116/44 +f 1835/1110/847 1843/1118/44 1839/1114/44 +f 1842/1117/851 1844/1119/852 1841/1116/44 +f 1845/1120/44 1839/1114/44 1843/1118/44 +f 1844/1119/852 1842/1117/851 1846/1121/853 +f 1846/1121/853 1847/1122/44 1844/1119/852 +f 1844/1119/852 1847/1122/44 1848/1123/44 +f 1847/1122/44 1849/1124/854 1848/1123/44 +f 1848/1123/44 1849/1124/854 1850/1125/855 +f 1849/1124/854 1851/1126/852 1850/1125/855 +f 1851/1126/852 1849/1124/854 1852/1127/852 +f 1852/1127/852 1853/1128/853 1851/1126/852 +f 1853/1128/853 1852/1127/852 1854/1129/853 +f 1854/1129/853 1855/1130/264 1853/1128/853 +f 1855/1130/264 1854/1129/853 1856/1131/265 +f 1857/1132/856 1855/1130/264 1856/1131/265 +f 1855/1130/264 1857/1132/856 1858/1133/857 +f 1839/1114/44 1845/1120/44 1859/1134/858 +f 1840/1115/44 1839/1114/44 1859/1134/858 +f 1860/1135/43 1859/1134/858 1845/1120/44 +f 1859/1134/858 1861/1136/44 1840/1115/44 +f 1862/1137/43 1859/1134/858 1860/1135/43 +f 1861/1136/44 1859/1134/858 1862/1137/43 +f 1863/1024/12 1864/1026/12 1865/1025/12 +f 1866/1027/12 1864/1026/12 1863/1024/12 +f 1867/1028/12 1863/1024/12 1868/1029/12 +f 1863/1024/12 1867/1028/12 1866/1027/12 +f 1866/1027/12 1867/1028/12 1869/1030/12 +f 1870/1031/12 1866/1027/12 1869/1030/12 +f 1871/1032/859 1866/1027/12 1870/1031/12 +f 1871/1032/859 1870/1031/12 1872/1033/860 +f 1873/1034/861 1871/1032/859 1872/1033/860 +f 1871/1032/859 1873/1034/861 1874/1035/862 +f 1875/1138/863 1876/1139/864 1877/1140/865 +f 1878/1141/213 1877/1140/865 1876/1139/864 +f 1879/1142/866 1878/1141/213 1876/1139/864 +f 1879/1142/866 1876/1139/864 1880/1143/867 +f 1881/1144/133 1882/1145/133 1883/1146/133 +f 1882/1145/133 1881/1144/133 1884/1147/133 +f 1885/1148/133 1882/1145/133 1884/1147/133 +f 1882/1145/133 1885/1148/133 1886/1149/868 +f 1887/1150/869 1888/1151/870 1889/1152/869 +f 1888/1151/870 1887/1150/869 1890/1153/869 +f 1891/1154/869 1888/1151/870 1890/1153/869 +f 1888/1151/870 1891/1154/869 1892/1155/870 +f 1893/1156/708 1894/1157/709 1895/1158/710 +f 1894/1157/709 1893/1156/708 1896/1159/711 +f 1893/1156/708 1897/1160/712 1896/1159/711 +f 1897/1160/712 1893/1156/708 1898/1161/713 +f 1899/1162/714 1897/1160/712 1898/1161/713 +f 1897/1160/712 1899/1162/714 1900/1163/715 +f 1901/1164/716 1897/1160/712 1900/1163/715 +f 1902/1165/717 1896/1159/711 1897/1160/712 +f 1902/1165/717 1897/1160/712 1901/1164/716 +f 1902/1165/717 1903/1166/718 1896/1159/711 +f 1904/1167/719 1902/1165/717 1901/1164/716 +f 1902/1165/717 1905/1168/718 1903/1166/718 +f 1906/1169/871 1902/1165/717 1904/1167/719 +f 1905/1168/718 1902/1165/717 1906/1169/871 +f 1907/1170/872 1908/1171/872 1909/1172/872 +f 1908/1171/872 1907/1170/872 1910/1173/872 +f 1907/1170/872 1911/1174/872 1910/1173/872 +f 1911/1174/872 1907/1170/872 1912/1175/873 +f 1913/1176/12 1914/1177/12 1915/1178/12 +f 1914/1177/12 1913/1176/12 1916/1179/12 +f 1916/1179/12 1917/1180/12 1914/1177/12 +f 1917/1180/12 1918/1181/12 1914/1177/12 +f 1916/1179/12 1919/1182/12 1917/1180/12 +f 1920/1183/12 1917/1180/12 1919/1182/12 +f 1919/1182/12 1921/1184/12 1920/1183/12 +f 1921/1184/12 1922/1185/12 1920/1183/12 +f 1920/1183/12 1922/1185/12 1923/1186/12 +f 1924/1187/29 1925/1188/874 1926/1189/29 +f 1925/1188/874 1927/1190/875 1926/1189/29 +f 1925/1188/874 1928/1191/876 1927/1190/875 +f 1928/1191/876 1925/1188/874 1929/1192/877 +f 1930/1193/421 1931/1194/421 1932/1195/878 +f 1933/1196/543 1932/1195/878 1931/1194/421 +f 1932/1195/878 1933/1196/543 1934/1197/43 +f 1934/1197/43 1935/1198/43 1932/1195/878 +f 1936/1199/879 1937/1200/880 1938/1201/881 +f 1937/1200/880 1936/1199/879 1939/1202/882 +f 1939/1202/882 1936/1199/879 1940/1203/8 +f 1941/1204/8 1940/1203/8 1936/1199/879 +f 1940/1203/8 1941/1204/8 1942/1205/8 +f 1943/1206/8 1942/1205/8 1941/1204/8 +f 1943/1206/8 1944/1207/8 1942/1205/8 +f 1944/1207/8 1943/1206/8 1945/1208/8 +f 1945/1208/8 1946/1209/8 1944/1207/8 +f 1946/1209/8 1945/1208/8 1947/1210/8 +f 1948/1211/8 1944/1207/8 1946/1209/8 +f 1946/1209/8 1949/1212/8 1948/1211/8 +f 1949/1212/8 1946/1209/8 1950/1213/8 +f 1951/1214/12 1952/1215/12 1953/1216/12 +f 1953/1216/12 1954/1217/12 1951/1214/12 +f 1954/1217/12 1955/1218/12 1951/1214/12 +f 1951/1214/12 1955/1218/12 1956/1219/12 +f 1957/1220/416 1958/1221/416 1959/1222/416 +f 1958/1221/416 1957/1220/416 1960/1223/883 +f 1960/1223/883 1961/1224/416 1958/1221/416 +f 1962/1225/416 1958/1221/416 1961/1224/416 +f 1963/1226/24 1964/1227/24 1965/1228/24 +f 1963/1226/24 1965/1228/24 1966/1229/24 +f 1967/1230/24 1963/1226/24 1966/1229/24 +f 1963/1226/24 1967/1230/24 1968/1231/24 +f 1969/749/29 1970/751/29 1971/752/291 +f 1970/751/29 1969/749/29 1972/750/29 +f 1969/749/29 1973/748/29 1972/750/29 +f 1974/747/29 1973/748/29 1969/749/29 +f 1974/747/29 1975/745/29 1973/748/29 +f 1975/745/29 1974/747/29 1976/743/29 +f 1975/745/29 1977/744/29 1978/746/29 +f 1975/745/29 1976/743/29 1979/740/29 +f 1979/740/29 1977/744/29 1975/745/29 +f 1979/740/29 1976/743/29 1355/737/29 +f 1977/744/29 1979/740/29 1980/742/29 +f 1979/740/29 1981/741/29 1980/742/29 +f 1355/737/29 1346/733/29 1979/740/29 +f 1981/741/29 1979/740/29 1982/738/29 +f 1979/740/29 1346/733/29 1982/738/29 +f 1983/739/29 1982/738/29 1346/733/29 +f 1984/1170/884 1985/1174/884 1986/1175/885 +f 1984/1170/884 1987/1173/884 1985/1174/884 +f 1984/1170/884 1988/1171/884 1987/1173/884 +f 1988/1171/884 1984/1170/884 1989/1172/884 +f 1990/1178/12 1991/1177/12 1992/1176/12 +f 1992/1176/12 1991/1177/12 1993/1179/12 +f 1993/1179/12 1991/1177/12 1994/1180/12 +f 1994/1180/12 1991/1177/12 1995/1181/12 +f 1993/1179/12 1994/1180/12 1996/1182/12 +f 1994/1180/12 1997/1183/12 1996/1182/12 +f 1996/1182/12 1997/1183/12 1998/1184/12 +f 1997/1183/12 1999/1185/12 1998/1184/12 +f 1999/1185/12 1997/1183/12 2000/1186/12 +f 2001/1189/24 2002/1188/886 2003/1187/24 +f 2002/1188/886 2001/1189/24 2004/1190/887 +f 2005/1191/888 2002/1188/886 2004/1190/887 +f 2002/1188/886 2005/1191/888 2006/1192/889 +f 2007/1194/136 2008/1193/136 2009/1195/890 +f 2007/1194/136 2009/1195/890 2010/1196/134 +f 2009/1195/890 2011/1197/43 2010/1196/134 +f 2012/1198/43 2011/1197/43 2009/1195/890 +f 2013/1200/880 2014/1199/879 2015/1201/881 +f 2014/1199/879 2013/1200/880 2016/1202/882 +f 2017/1203/8 2014/1199/879 2016/1202/882 +f 2017/1203/8 2018/1204/8 2014/1199/879 +f 2019/1205/8 2018/1204/8 2017/1203/8 +f 2019/1205/8 2020/1206/8 2018/1204/8 +f 2021/1207/891 2020/1206/8 2019/1205/8 +f 2021/1207/891 2022/1208/8 2020/1206/8 +f 2023/1209/8 2022/1208/8 2021/1207/891 +f 2022/1208/8 2023/1209/8 2024/1210/8 +f 2025/1211/8 2023/1209/8 2021/1207/891 +f 2026/1212/8 2023/1209/8 2025/1211/8 +f 2023/1209/8 2026/1212/8 2027/1213/8 +f 2028/1214/12 2029/1216/12 2030/1215/12 +f 2029/1216/12 2028/1214/12 2031/1217/12 +f 2028/1214/12 2032/1218/12 2031/1217/12 +f 2032/1218/12 2028/1214/12 2033/1219/12 +f 2034/1221/61 2035/1220/61 2036/1222/61 +f 2035/1220/61 2034/1221/61 2037/1223/61 +f 2034/1221/61 2038/1224/61 2037/1223/61 +f 2034/1221/61 2039/1225/61 2038/1224/61 +f 2040/1226/29 2041/1228/29 2042/1227/29 +f 2041/1228/29 2040/1226/29 2043/1229/29 +f 2040/1226/29 2044/1230/29 2043/1229/29 +f 2040/1226/29 2045/1231/29 2044/1230/29 +f 2046/1232/125 2047/1233/125 2048/1234/9 +f 2047/1233/125 2046/1232/125 2049/1235/9 +f 2050/1236/9 2047/1233/125 2049/1235/9 +f 2046/1232/125 2051/1237/9 2049/1235/9 +f 2052/1238/9 2049/1235/9 2051/1237/9 +f 2050/1236/9 2049/1235/9 2053/1239/125 +f 2049/1235/9 2052/1238/9 2054/1240/125 +f 2053/1239/125 2049/1235/9 2055/1241/9 +f 2054/1240/125 2055/1241/9 2049/1235/9 +f 2055/1241/9 2056/1242/125 2053/1239/125 +f 2057/1243/9 2055/1241/9 2054/1240/125 +f 2058/1244/9 2056/1242/125 2055/1241/9 +f 2055/1241/9 2057/1243/9 2058/1244/9 +f 2056/1242/125 2058/1244/9 2059/1245/9 +f 2058/1244/9 2060/1246/125 2059/1245/9 +f 2057/1243/9 2061/1247/9 2058/1244/9 +f 2060/1246/125 2058/1244/9 2061/1247/9 +f 2061/1247/9 2057/1243/9 2062/1248/125 +f 2061/1247/9 2063/1249/125 2060/1246/125 +f 2062/1248/125 2064/1250/9 2061/1247/9 +f 2061/1247/9 2064/1250/9 2063/1249/125 +f 2065/1251/9 2064/1250/9 2062/1248/125 +f 2066/1252/9 2063/1249/125 2064/1250/9 +f 2064/1250/9 2065/1251/9 2067/1253/9 +f 2066/1252/9 2064/1250/9 2068/1254/125 +f 2069/1255/125 2064/1250/9 2067/1253/9 +f 2069/1255/125 2068/1254/125 2064/1250/9 +f 2068/1254/125 2069/1255/125 2070/1256/9 +f 2071/1257/892 2072/1258/893 2073/1259/894 +f 2071/1257/892 2074/1260/892 2072/1258/893 +f 2074/1260/892 2071/1257/892 2075/1261/895 +f 2074/1260/892 2076/1262/896 2072/1258/893 +f 2075/1261/895 2077/1263/897 2074/1260/892 +f 2078/1264/898 2077/1263/897 2075/1261/895 +f 2076/1262/896 2074/1260/892 2079/1265/892 +f 2077/1263/897 2079/1265/892 2074/1260/892 +f 2080/1266/892 2076/1262/896 2079/1265/892 +f 2079/1265/892 2077/1263/897 2081/1267/899 +f 2079/1265/892 2081/1267/899 2080/1266/892 +f 2077/1263/897 2078/1264/898 2082/1268/900 +f 2077/1263/897 2083/1269/901 2081/1267/899 +f 2083/1269/901 2077/1263/897 2082/1268/900 +f 2081/1267/899 2084/1270/902 2080/1266/892 +f 2083/1269/901 2084/1270/902 2081/1267/899 +f 2076/1262/896 2080/1266/892 2085/1271/344 +f 2076/1262/896 2085/1271/344 2086/1272/345 +f 2080/1266/892 2084/1270/902 2087/1273/903 +f 2087/1273/903 2085/1271/344 2080/1266/892 +f 2087/1273/903 2084/1270/902 2088/1274/904 +f 2088/1274/904 2089/1275/905 2087/1273/903 +f 2090/1276/906 2088/1274/904 2084/1270/902 +f 2084/1270/902 2083/1269/901 2090/1276/906 +f 2088/1274/904 2090/1276/906 2091/1277/907 +f 2089/1275/905 2092/1278/908 2087/1273/903 +f 2085/1271/344 2087/1273/903 2092/1278/908 +f 2092/1278/908 2089/1275/905 2093/1279/909 +f 2093/1279/909 2094/1280/910 2092/1278/908 +f 2085/1271/344 2092/1278/908 2094/1280/910 +f 2093/1279/909 2095/1281/911 2094/1280/910 +f 2096/1282/912 2094/1280/910 2095/1281/911 +f 2085/1271/344 2094/1280/910 2097/1283/345 +f 2085/1271/344 2097/1283/345 2086/1272/345 +f 2094/1280/910 2096/1282/912 2098/1284/913 +f 2098/1284/913 2097/1283/345 2094/1280/910 +f 2099/1285/914 2098/1284/913 2096/1282/912 +f 2100/1286/915 2086/1272/345 2097/1283/345 +f 2097/1283/345 2098/1284/913 2100/1286/915 +f 2086/1272/345 2100/1286/915 2101/1287/916 +f 2098/1284/913 2099/1285/914 2102/1288/917 +f 2100/1286/915 2098/1284/913 2102/1288/917 +f 2101/1287/916 2100/1286/915 2103/1289/918 +f 2100/1286/915 2102/1288/917 2103/1289/918 +f 2103/1289/918 2104/1290/431 2101/1287/916 +f 2105/1291/919 2102/1288/917 2099/1285/914 +f 2105/1291/919 2103/1289/918 2102/1288/917 +f 2105/1291/919 2099/1285/914 2106/1292/920 +f 2104/1290/431 2103/1289/918 2107/1293/921 +f 2103/1289/918 2105/1291/919 2107/1293/921 +f 2107/1293/921 2108/1294/922 2104/1290/431 +f 2106/1292/920 2109/1295/923 2105/1291/919 +f 2109/1295/923 2107/1293/921 2105/1291/919 +f 2109/1295/923 2106/1292/920 2110/1296/924 +f 2111/1297/925 2108/1294/922 2107/1293/921 +f 2107/1293/921 2109/1295/923 2111/1297/925 +f 2108/1294/922 2111/1297/925 2112/1298/926 +f 2113/1299/927 2109/1295/923 2110/1296/924 +f 2113/1299/927 2111/1297/925 2109/1295/923 +f 2113/1299/927 2110/1296/924 2114/1300/928 +f 2115/1301/929 2112/1298/926 2111/1297/925 +f 2112/1298/926 2115/1301/929 2116/1302/930 +f 2115/1301/929 2117/1303/930 2116/1302/930 +f 2111/1297/925 2113/1299/927 2118/1304/931 +f 2118/1304/931 2115/1301/929 2111/1297/925 +f 2119/1305/932 2113/1299/927 2114/1300/928 +f 2119/1305/932 2118/1304/931 2113/1299/927 +f 2119/1305/932 2114/1300/928 2120/1306/933 +f 2117/1303/930 2115/1301/929 2121/1307/934 +f 2122/1308/930 2117/1303/930 2121/1307/934 +f 2115/1301/929 2118/1304/931 2123/1309/935 +f 2123/1309/935 2121/1307/934 2115/1301/929 +f 2118/1304/931 2119/1305/932 2124/1310/519 +f 2124/1310/519 2123/1309/935 2118/1304/931 +f 2120/1306/933 2125/1311/936 2119/1305/932 +f 2125/1311/936 2124/1310/519 2119/1305/932 +f 2125/1311/936 2120/1306/933 2126/1312/937 +f 2127/1313/938 2125/1311/936 2126/1312/937 +f 2123/1309/935 2124/1310/519 2128/1314/939 +f 2125/1311/936 2127/1313/938 2129/1315/940 +f 2130/1316/941 2129/1315/940 2127/1313/938 +f 2129/1315/940 2130/1316/941 2131/1317/942 +f 2124/1310/519 2125/1311/936 2132/1318/943 +f 2132/1318/943 2125/1311/936 2129/1315/940 +f 2132/1318/943 2128/1314/939 2124/1310/519 +f 2131/1317/942 2133/1319/944 2129/1315/940 +f 2129/1315/940 2133/1319/944 2132/1318/943 +f 2133/1319/944 2131/1317/942 2134/1320/44 +f 2133/1319/944 2135/1321/945 2132/1318/943 +f 2128/1314/939 2132/1318/943 2135/1321/945 +f 2134/1320/44 2136/1322/946 2133/1319/944 +f 2135/1321/945 2133/1319/944 2136/1322/946 +f 2136/1322/946 2134/1320/44 2137/1323/44 +f 2135/1321/945 2138/1324/947 2128/1314/939 +f 2137/1323/44 2139/1325/948 2136/1322/946 +f 2139/1325/948 2137/1323/44 2140/1326/949 +f 2136/1322/946 2141/1327/945 2135/1321/945 +f 2141/1327/945 2136/1322/946 2139/1325/948 +f 2138/1324/947 2135/1321/945 2141/1327/945 +f 2140/1326/949 2142/1328/950 2139/1325/948 +f 2142/1328/950 2140/1326/949 2143/1329/951 +f 2139/1325/948 2144/1330/952 2141/1327/945 +f 2144/1330/952 2139/1325/948 2142/1328/950 +f 2141/1327/945 2145/1331/947 2138/1324/947 +f 2145/1331/947 2141/1327/945 2144/1330/952 +f 2143/1329/951 2146/1332/953 2142/1328/950 +f 2146/1332/953 2143/1329/951 2147/1333/949 +f 2148/1334/954 2147/1333/949 2149/1335/955 +f 2147/1333/949 2148/1334/954 2146/1332/953 +f 2150/1336/945 2146/1332/953 2148/1334/954 +f 2151/1337/945 2142/1328/950 2146/1332/953 +f 2146/1332/953 2150/1336/945 2151/1337/945 +f 2142/1328/950 2151/1337/945 2144/1330/952 +f 2152/1338/956 2151/1337/945 2150/1336/945 +f 2153/1339/956 2144/1330/952 2151/1337/945 +f 2151/1337/945 2152/1338/956 2153/1339/956 +f 2144/1330/952 2153/1339/956 2145/1331/947 +f 2154/1340/418 2153/1339/956 2152/1338/956 +f 2153/1339/956 2154/1340/418 2155/1341/957 +f 2155/1341/957 2145/1331/947 2153/1339/956 +f 2156/1342/929 2155/1341/957 2154/1340/418 +f 2145/1331/947 2155/1341/957 2157/1343/419 +f 2157/1343/419 2138/1324/947 2145/1331/947 +f 2156/1342/929 2158/1344/958 2155/1341/957 +f 2158/1344/958 2157/1343/419 2155/1341/957 +f 2159/1345/930 2156/1342/929 2160/1346/930 +f 2156/1342/929 2159/1345/930 2158/1344/958 +f 2138/1324/947 2157/1343/419 2161/1347/419 +f 2161/1347/419 2128/1314/939 2138/1324/947 +f 2128/1314/939 2161/1347/419 2123/1309/935 +f 2121/1307/934 2123/1309/935 2161/1347/419 +f 2158/1344/958 2162/1348/934 2157/1343/419 +f 2162/1348/934 2161/1347/419 2157/1343/419 +f 2159/1345/930 2162/1348/934 2158/1344/958 +f 2162/1348/934 2121/1307/934 2161/1347/419 +f 2159/1345/930 2122/1308/930 2162/1348/934 +f 2122/1308/930 2121/1307/934 2162/1348/934 +f 2163/1349/959 2164/1350/960 2165/1351/961 +f 2164/1350/960 2163/1349/959 2166/1352/960 +f 2166/1352/960 2167/1353/962 2164/1350/960 +f 2168/1354/963 2166/1352/960 2163/1349/959 +f 2167/1353/962 2166/1352/960 2169/1355/964 +f 2169/1355/964 2170/1356/965 2167/1353/962 +f 2166/1352/960 2168/1354/963 2171/1357/960 +f 2171/1357/960 2169/1355/964 2166/1352/960 +f 2168/1354/963 2172/1358/966 2171/1357/960 +f 2169/1355/964 2171/1357/960 2173/1359/967 +f 2171/1357/960 2172/1358/966 2173/1359/967 +f 2170/1356/965 2169/1355/964 2174/1360/968 +f 2175/1361/969 2169/1355/964 2173/1359/967 +f 2169/1355/964 2175/1361/969 2174/1360/968 +f 2176/1362/970 2173/1359/967 2172/1358/966 +f 2176/1362/970 2175/1361/969 2173/1359/967 +f 2172/1358/966 2168/1354/963 2177/1363/225 +f 2168/1354/963 2178/1364/233 2177/1363/225 +f 2176/1362/970 2172/1358/966 2179/1365/971 +f 2179/1365/971 2172/1358/966 2177/1363/225 +f 2179/1365/971 2180/1366/972 2176/1362/970 +f 2180/1366/972 2179/1365/971 2181/1367/973 +f 2180/1366/972 2182/1368/974 2176/1362/970 +f 2175/1361/969 2176/1362/970 2182/1368/974 +f 2182/1368/974 2180/1366/972 2183/1369/975 +f 2184/1370/976 2181/1367/973 2179/1365/971 +f 2179/1365/971 2177/1363/225 2184/1370/976 +f 2181/1367/973 2184/1370/976 2185/1371/977 +f 2184/1370/976 2186/1372/978 2185/1371/977 +f 2184/1370/976 2177/1363/225 2186/1372/978 +f 2185/1371/977 2186/1372/978 2187/1373/979 +f 2186/1372/978 2188/1374/980 2187/1373/979 +f 2189/1375/233 2186/1372/978 2177/1363/225 +f 2177/1363/225 2178/1364/233 2189/1375/233 +f 2188/1374/980 2186/1372/978 2190/1376/981 +f 2189/1375/233 2190/1376/981 2186/1372/978 +f 2190/1376/981 2191/1377/982 2188/1374/980 +f 2189/1375/233 2178/1364/233 2192/1378/230 +f 2190/1376/981 2189/1375/233 2192/1378/230 +f 2178/1364/233 2193/1379/983 2192/1378/230 +f 2191/1377/982 2190/1376/981 2194/1380/984 +f 2192/1378/230 2194/1380/984 2190/1376/981 +f 2193/1379/983 2195/1381/985 2192/1378/230 +f 2194/1380/984 2192/1378/230 2195/1381/985 +f 2195/1381/985 2193/1379/983 2196/1382/290 +f 2194/1380/984 2197/1383/986 2191/1377/982 +f 2195/1381/985 2197/1383/986 2194/1380/984 +f 2191/1377/982 2197/1383/986 2198/1384/987 +f 2195/1381/985 2196/1382/290 2199/1385/59 +f 2197/1383/986 2195/1381/985 2199/1385/59 +f 2199/1385/59 2196/1382/290 2200/1386/988 +f 2197/1383/986 2201/1387/989 2198/1384/987 +f 2199/1385/59 2201/1387/989 2197/1383/986 +f 2201/1387/989 2202/1388/990 2198/1384/987 +f 2200/1386/988 2203/1389/991 2199/1385/59 +f 2201/1387/989 2199/1385/59 2203/1389/991 +f 2203/1389/991 2200/1386/988 2204/1390/992 +f 2201/1387/989 2205/1391/993 2202/1388/990 +f 2203/1389/991 2205/1391/993 2201/1387/989 +f 2206/1392/994 2202/1388/990 2205/1391/993 +f 2204/1390/992 2207/1393/995 2203/1389/991 +f 2207/1393/995 2204/1390/992 2208/1394/996 +f 2209/1395/996 2207/1393/995 2208/1394/996 +f 2205/1391/993 2203/1389/991 2210/1396/164 +f 2207/1393/995 2210/1396/164 2203/1389/991 +f 2205/1391/993 2211/1397/997 2206/1392/994 +f 2210/1396/164 2211/1397/997 2205/1391/993 +f 2212/1398/998 2206/1392/994 2211/1397/997 +f 2207/1393/995 2209/1395/996 2213/1399/999 +f 2214/1400/996 2213/1399/999 2209/1395/996 +f 2210/1396/164 2207/1393/995 2215/1401/163 +f 2213/1399/999 2215/1401/163 2207/1393/995 +f 2216/1402/1000 2211/1397/997 2210/1396/164 +f 2215/1401/163 2216/1402/1000 2210/1396/164 +f 2217/1403/1001 2212/1398/998 2211/1397/997 +f 2216/1402/1000 2217/1403/1001 2211/1397/997 +f 2218/1404/1002 2212/1398/998 2217/1403/1001 +f 2217/1403/1001 2219/1405/1003 2218/1404/1002 +f 2216/1402/1000 2215/1401/163 2220/1406/1004 +f 2219/1405/1003 2217/1403/1001 2221/1407/1005 +f 2221/1407/1005 2222/1408/941 2219/1405/1003 +f 2222/1408/941 2221/1407/1005 2223/1409/1006 +f 2217/1403/1001 2216/1402/1000 2224/1410/1007 +f 2224/1410/1007 2221/1407/1005 2217/1403/1001 +f 2220/1406/1004 2224/1410/1007 2216/1402/1000 +f 2225/1411/1008 2223/1409/1006 2221/1407/1005 +f 2225/1411/1008 2221/1407/1005 2224/1410/1007 +f 2223/1409/1006 2225/1411/1008 2226/1412/847 +f 2227/1413/1009 2225/1411/1008 2224/1410/1007 +f 2224/1410/1007 2220/1406/1004 2227/1413/1009 +f 2228/1414/1008 2226/1412/847 2225/1411/1008 +f 2225/1411/1008 2227/1413/1009 2228/1414/1008 +f 2226/1412/847 2228/1414/1008 2229/1415/43 +f 2230/1416/1010 2227/1413/1009 2220/1406/1004 +f 2231/1417/1011 2229/1415/43 2228/1414/1008 +f 2229/1415/43 2231/1417/1011 2232/1418/951 +f 2233/1419/1012 2228/1414/1008 2227/1413/1009 +f 2228/1414/1008 2233/1419/1012 2231/1417/1011 +f 2227/1413/1009 2230/1416/1010 2233/1419/1012 +f 2234/1420/1011 2232/1418/951 2231/1417/1011 +f 2235/1421/951 2232/1418/951 2234/1420/1011 +f 2236/1422/1012 2231/1417/1011 2233/1419/1012 +f 2234/1420/1011 2231/1417/1011 2236/1422/1012 +f 2237/1423/1013 2235/1421/951 2234/1420/1011 +f 2238/1424/951 2235/1421/951 2237/1423/1013 +f 2239/1425/951 2238/1424/951 2240/1426/1013 +f 2240/1426/1013 2238/1424/951 2237/1423/1013 +f 2240/1426/1013 2237/1423/1013 2241/1427/1012 +f 2237/1423/1013 2234/1420/1011 2242/1428/1012 +f 2241/1427/1012 2237/1423/1013 2242/1428/1012 +f 2242/1428/1012 2234/1420/1011 2236/1422/1012 +f 2241/1427/1012 2242/1428/1012 2243/1429/1014 +f 2243/1429/1014 2242/1428/1012 2244/1430/1015 +f 2242/1428/1012 2236/1422/1012 2244/1430/1015 +f 2243/1429/1014 2244/1430/1015 2245/1431/61 +f 2236/1422/1012 2233/1419/1012 2246/1432/1010 +f 2244/1430/1015 2236/1422/1012 2246/1432/1010 +f 2246/1432/1010 2233/1419/1012 2230/1416/1010 +f 2245/1431/61 2244/1430/1015 2247/1433/1016 +f 2244/1430/1015 2246/1432/1010 2247/1433/1016 +f 2247/1433/1016 2248/1434/995 2245/1431/61 +f 2246/1432/1010 2230/1416/1010 2249/1435/281 +f 2247/1433/1016 2246/1432/1010 2249/1435/281 +f 2248/1434/995 2247/1433/1016 2250/1436/1017 +f 2249/1435/281 2250/1436/1017 2247/1433/1016 +f 2248/1434/995 2251/1437/996 2252/1438/996 +f 2251/1437/996 2248/1434/995 2250/1436/1017 +f 2253/1439/999 2251/1437/996 2250/1436/1017 +f 2250/1436/1017 2249/1435/281 2253/1439/999 +f 2251/1437/996 2253/1439/999 2214/1400/996 +f 2213/1399/999 2214/1400/996 2253/1439/999 +f 2254/1440/1018 2253/1439/999 2249/1435/281 +f 2253/1439/999 2254/1440/1018 2213/1399/999 +f 2249/1435/281 2230/1416/1010 2254/1440/1018 +f 2215/1401/163 2213/1399/999 2254/1440/1018 +f 2220/1406/1004 2254/1440/1018 2230/1416/1010 +f 2254/1440/1018 2220/1406/1004 2215/1401/163 +f 2255/1441/1019 2256/1442/1020 2257/1443/1021 +f 2256/1442/1020 2255/1441/1019 2258/1444/1022 +f 2259/1445/1023 2256/1442/1020 2258/1444/1022 +f 2260/1446/1024 2258/1444/1022 2255/1441/1019 +f 2261/1447/1022 2259/1445/1023 2258/1444/1022 +f 2259/1445/1023 2261/1447/1022 2262/1448/1025 +f 2258/1444/1022 2260/1446/1024 2263/1449/1026 +f 2263/1449/1026 2261/1447/1022 2258/1444/1022 +f 2263/1449/1026 2260/1446/1024 2264/1450/1024 +f 2261/1447/1022 2265/1451/1027 2262/1448/1025 +f 2263/1449/1026 2264/1450/1024 2266/1452/1028 +f 2265/1451/1027 2261/1447/1022 2267/1453/1029 +f 2267/1453/1029 2268/1454/1030 2265/1451/1027 +f 2269/1455/1031 2263/1449/1026 2266/1452/1028 +f 2269/1455/1031 2266/1452/1028 2270/1456/1032 +f 2271/1457/1033 2269/1455/1031 2270/1456/1032 +f 2268/1454/1030 2267/1453/1029 2272/1458/1034 +f 2273/1459/1035 2268/1454/1030 2272/1458/1034 +f 2269/1455/1031 2271/1457/1033 2274/1460/1036 +f 2275/1461/1037 2274/1460/1036 2271/1457/1033 +f 2269/1455/1031 2276/1462/1026 2263/1449/1026 +f 2261/1447/1022 2263/1449/1026 2276/1462/1026 +f 2274/1460/1036 2277/1463/1038 2269/1455/1031 +f 2276/1462/1026 2269/1455/1031 2277/1463/1038 +f 2277/1463/1038 2274/1460/1036 2278/1464/1039 +f 2274/1460/1036 2279/1465/893 2278/1464/1039 +f 2280/1466/1040 2276/1462/1026 2277/1463/1038 +f 2281/1467/1041 2280/1466/1040 2277/1463/1038 +f 2280/1466/1040 2281/1467/1041 2282/1468/1042 +f 2279/1465/893 2274/1460/1036 2283/1469/1043 +f 2274/1460/1036 2275/1461/1037 2283/1469/1043 +f 2283/1469/1043 2284/1470/1044 2279/1465/893 +f 2285/1471/1036 2283/1469/1043 2275/1461/1037 +f 2284/1470/1044 2283/1469/1043 2286/1472/1045 +f 2283/1469/1043 2285/1471/1036 2286/1472/1045 +f 2287/1473/1046 2284/1470/1044 2286/1472/1045 +f 2284/1470/1044 2287/1473/1046 2288/1474/1047 +f 2287/1473/1046 2289/1475/1048 2288/1474/1047 +f 2285/1471/1036 2290/1476/1032 2286/1472/1045 +f 2285/1471/1036 2291/1477/1049 2290/1476/1032 +f 2291/1477/1049 2292/1478/1050 2290/1476/1032 +f 2287/1473/1046 2286/1472/1045 2293/1479/1051 +f 2286/1472/1045 2290/1476/1032 2293/1479/1051 +f 2289/1475/1048 2287/1473/1046 2294/1480/1052 +f 2293/1479/1051 2294/1480/1052 2287/1473/1046 +f 2289/1475/1048 2294/1480/1052 2295/1481/1053 +f 2295/1481/1053 2294/1480/1052 2296/1482/1054 +f 2294/1480/1052 2293/1479/1051 2296/1482/1054 +f 2295/1481/1053 2296/1482/1054 2297/1483/1055 +f 2296/1482/1054 2298/1484/1056 2297/1483/1055 +f 2299/1485/1057 2296/1482/1054 2293/1479/1051 +f 2298/1484/1056 2296/1482/1054 2299/1485/1057 +f 2290/1476/1032 2299/1485/1057 2293/1479/1051 +f 2300/1486/1058 2298/1484/1056 2299/1485/1057 +f 2299/1485/1057 2290/1476/1032 2300/1486/1058 +f 2300/1486/1058 2290/1476/1032 2292/1478/1050 +f 2298/1484/1056 2300/1486/1058 2301/1487/1059 +f 2292/1478/1050 2301/1487/1059 2300/1486/1058 +f 2301/1487/1059 2292/1478/1050 2302/1488/1060 +f 2261/1447/1022 2276/1462/1026 2303/1489/893 +f 2261/1447/1022 2303/1489/893 2267/1453/1029 +f 2276/1462/1026 2280/1466/1040 2303/1489/893 +f 2303/1489/893 2272/1458/1034 2267/1453/1029 +f 2304/1490/1061 2303/1489/893 2280/1466/1040 +f 2282/1468/1042 2304/1490/1061 2280/1466/1040 +f 2304/1490/1061 2282/1468/1042 2305/1491/1062 +f 2272/1458/1034 2303/1489/893 2306/1492/1063 +f 2303/1489/893 2304/1490/1061 2306/1492/1063 +f 2306/1492/1063 2307/1493/1064 2272/1458/1034 +f 2272/1458/1034 2307/1493/1064 2273/1459/1035 +f 2306/1492/1063 2304/1490/1061 2308/1494/1065 +f 2307/1493/1064 2306/1492/1063 2308/1494/1065 +f 2305/1491/1062 2309/1495/1066 2304/1490/1061 +f 2309/1495/1066 2308/1494/1065 2304/1490/1061 +f 2309/1495/1066 2305/1491/1062 2310/1496/1067 +f 2311/1497/1068 2273/1459/1035 2307/1493/1064 +f 2308/1494/1065 2311/1497/1068 2307/1493/1064 +f 2273/1459/1035 2311/1497/1068 2312/1498/1069 +f 2310/1496/1067 2313/1499/1070 2309/1495/1066 +f 2313/1499/1070 2308/1494/1065 2309/1495/1066 +f 2313/1499/1070 2310/1496/1067 2314/1500/1071 +f 2312/1498/1069 2315/1501/1072 2316/1502/1073 +f 2315/1501/1072 2312/1498/1069 2311/1497/1068 +f 2315/1501/1072 2311/1497/1068 2317/1503/44 +f 2314/1500/1071 2318/1504/1074 2313/1499/1070 +f 2318/1504/1074 2314/1500/1071 2319/1505/1075 +f 2320/1506/1076 2313/1499/1070 2318/1504/1074 +f 2318/1504/1074 2317/1503/44 2320/1506/1076 +f 2308/1494/1065 2313/1499/1070 2320/1506/1076 +f 2320/1506/1076 2317/1503/44 2311/1497/1068 +f 2311/1497/1068 2308/1494/1065 2320/1506/1076 +f 2321/1507/1077 2322/1508/1078 2323/1509/1079 +f 2324/1510/1080 2323/1509/1079 2322/1508/1078 +f 2324/1510/1080 2322/1508/1078 2325/1511/1081 +f 2323/1509/1079 2324/1510/1080 2326/1512/1082 +f 2324/1510/1080 2325/1511/1081 2327/1513/1083 +f 2328/1514/1084 2326/1512/1082 2324/1510/1080 +f 2327/1513/1083 2328/1514/1084 2324/1510/1080 +f 2326/1512/1082 2328/1514/1084 2329/1515/1085 +f 2328/1514/1084 2327/1513/1083 2330/1516/1086 +f 2331/1517/1087 2329/1515/1085 2328/1514/1084 +f 2330/1516/1086 2331/1517/1087 2328/1514/1084 +f 2329/1515/1085 2331/1517/1087 2332/1518/1088 +f 2331/1517/1087 2330/1516/1086 2333/1519/1089 +f 2332/1518/1088 2331/1517/1087 2334/1520/1090 +f 2333/1519/1089 2334/1520/1090 2331/1517/1087 +f 2334/1520/1090 2335/1521/1007 2332/1518/1088 +f 2334/1520/1090 2333/1519/1089 2336/1522/1091 +f 2335/1521/1007 2334/1520/1090 2337/1523/1092 +f 2336/1522/1091 2337/1523/1092 2334/1520/1090 +f 2337/1523/1092 2338/1524/1093 2335/1521/1007 +f 2337/1523/1092 2336/1522/1091 2339/1525/1094 +f 2338/1524/1093 2337/1523/1092 2340/1526/1095 +f 2339/1525/1094 2340/1526/1095 2337/1523/1092 +f 2339/1525/1094 2341/1527/1096 2340/1526/1095 +f 2340/1526/1095 2342/1528/1097 2338/1524/1093 +f 2343/1529/1098 2340/1526/1095 2341/1527/1096 +f 2342/1528/1097 2340/1526/1095 2344/1530/1099 +f 2340/1526/1095 2343/1529/1098 2344/1530/1099 +f 2342/1528/1097 2344/1530/1099 2345/1531/946 +f 2346/1532/1100 2344/1530/1099 2343/1529/1098 +f 2345/1531/946 2344/1530/1099 2347/1533/1101 +f 2344/1530/1099 2346/1532/1100 2347/1533/1101 +f 2348/1534/1102 2349/1535/1103 2350/1536/1104 +f 2349/1535/1103 2348/1534/1102 2351/1537/1105 +f 2351/1537/1105 2352/1538/1106 2349/1535/1103 +f 2352/1538/1106 2351/1537/1105 2353/1539/1107 +f 2354/1540/69 2351/1537/1105 2348/1534/1102 +f 2351/1537/1105 2355/1541/1108 2353/1539/1107 +f 2354/1540/69 2356/1542/1109 2351/1537/1105 +f 2355/1541/1108 2351/1537/1105 2356/1542/1109 +f 2357/1543/52 2356/1542/1109 2354/1540/69 +f 2358/1544/1110 2355/1541/1108 2356/1542/1109 +f 2356/1542/1109 2357/1543/52 2358/1544/1110 +f 2355/1541/1108 2358/1544/1110 2359/1545/1111 +f 2357/1543/52 2360/1546/1112 2358/1544/1110 +f 2360/1546/1112 2359/1545/1111 2358/1544/1110 +f 2360/1546/1112 2357/1543/52 2361/1547/930 +f 2359/1545/1111 2360/1546/1112 2362/1548/1113 +f 2363/1549/1114 2360/1546/1112 2361/1547/930 +f 2360/1546/1112 2364/1550/1115 2362/1548/1113 +f 2363/1549/1114 2365/1551/1116 2360/1546/1112 +f 2360/1546/1112 2365/1551/1116 2364/1550/1115 +f 2366/1552/1117 2367/1553/1118 2368/1554/1119 +f 2367/1553/1118 2366/1552/1117 2369/1555/1120 +f 2369/1555/1120 2370/1556/1121 2367/1553/1118 +f 2371/1557/1122 2369/1555/1120 2366/1552/1117 +f 2370/1556/1121 2369/1555/1120 2372/1558/1123 +f 2373/1559/1124 2372/1558/1123 2369/1555/1120 +f 2369/1555/1120 2371/1557/1122 2373/1559/1124 +f 2372/1558/1123 2373/1559/1124 2374/1560/1125 +f 2373/1559/1124 2371/1557/1122 2375/1561/1126 +f 2375/1561/1126 2374/1560/1125 2373/1559/1124 +f 2375/1561/1126 2371/1557/1122 2376/1562/1127 +f 2374/1560/1125 2375/1561/1126 2377/1563/1128 +f 2378/1564/1129 2375/1561/1126 2376/1562/1127 +f 2379/1565/1130 2377/1563/1128 2375/1561/1126 +f 2375/1561/1126 2378/1564/1129 2379/1565/1130 +f 2377/1563/1128 2379/1565/1130 2380/1566/1131 +f 2381/1567/1132 2379/1565/1130 2378/1564/1129 +f 2379/1565/1130 2382/1568/1133 2380/1566/1131 +f 2379/1565/1130 2381/1567/1132 2383/1569/1134 +f 2382/1568/1133 2379/1565/1130 2383/1569/1134 +f 2384/1570/1135 2383/1569/1134 2381/1567/1132 +f 2383/1569/1134 2385/1571/1136 2382/1568/1133 +f 2383/1569/1134 2384/1570/1135 2386/1572/1137 +f 2385/1571/1136 2383/1569/1134 2386/1572/1137 +f 2386/1572/1137 2384/1570/1135 2387/1573/1138 +f 2386/1572/1137 2388/1574/1139 2385/1571/1136 +f 2387/1573/1138 2389/1575/1140 2386/1572/1137 +f 2386/1572/1137 2389/1575/1140 2388/1574/1139 +f 2389/1575/1140 2387/1573/1138 2390/1576/1141 +f 2390/1576/1141 2388/1574/1139 2389/1575/1140 +f 2390/1576/1141 2387/1573/1138 2391/1577/1142 +f 2388/1574/1139 2390/1576/1141 2392/1578/1143 +f 2390/1576/1141 2391/1577/1142 2393/1579/1144 +f 2393/1579/1144 2392/1578/1143 2390/1576/1141 +f 2393/1579/1144 2391/1577/1142 2394/1580/1145 +f 2392/1578/1143 2393/1579/1144 2395/1581/1146 +f 2396/1582/678 2393/1579/1144 2394/1580/1145 +f 2397/1583/1147 2395/1581/1146 2393/1579/1144 +f 2393/1579/1144 2396/1582/678 2398/1584/1148 +f 2393/1579/1144 2398/1584/1148 2397/1583/1147 +f 2399/1442/1149 2400/1441/1150 2401/1443/1151 +f 2400/1441/1150 2399/1442/1149 2402/1444/1152 +f 2402/1444/1152 2403/1446/1153 2400/1441/1150 +f 2404/1445/1154 2402/1444/1152 2399/1442/1149 +f 2403/1446/1153 2402/1444/1152 2405/1449/1153 +f 2405/1449/1153 2406/1450/1153 2403/1446/1153 +f 2405/1449/1153 2407/1452/1155 2406/1450/1153 +f 2408/1447/1156 2402/1444/1152 2404/1445/1154 +f 2408/1447/1156 2405/1449/1153 2402/1444/1152 +f 2404/1445/1154 2409/1448/1157 2408/1447/1156 +f 2409/1448/1157 2410/1451/1158 2408/1447/1156 +f 2411/1455/1159 2407/1452/1155 2405/1449/1153 +f 2411/1455/1159 2412/1456/1160 2407/1452/1155 +f 2411/1455/1159 2413/1457/1161 2412/1456/1160 +f 2405/1449/1153 2408/1447/1156 2414/1462/1153 +f 2414/1462/1153 2411/1455/1159 2405/1449/1153 +f 2415/1453/1162 2408/1447/1156 2410/1451/1158 +f 2416/1454/1163 2415/1453/1162 2410/1451/1158 +f 2408/1447/1156 2417/1489/1164 2414/1462/1153 +f 2417/1489/1164 2408/1447/1156 2415/1453/1162 +f 2415/1453/1162 2416/1454/1163 2418/1458/1165 +f 2418/1458/1165 2417/1489/1164 2415/1453/1162 +f 2419/1459/1166 2418/1458/1165 2416/1454/1163 +f 2420/1466/1167 2414/1462/1153 2417/1489/1164 +f 2421/1493/1168 2418/1458/1165 2419/1459/1166 +f 2414/1462/1153 2420/1466/1167 2422/1463/1169 +f 2411/1455/1159 2414/1462/1153 2422/1463/1169 +f 2420/1466/1167 2423/1467/1170 2422/1463/1169 +f 2423/1467/1170 2420/1466/1167 2424/1468/1171 +f 2422/1463/1169 2425/1460/1161 2411/1455/1159 +f 2413/1457/1161 2411/1455/1159 2425/1460/1161 +f 2425/1460/1161 2422/1463/1169 2426/1464/1172 +f 2425/1460/1161 2427/1461/1173 2413/1457/1161 +f 2426/1464/1172 2428/1465/1164 2425/1460/1161 +f 2427/1461/1173 2425/1460/1161 2429/1469/1174 +f 2429/1469/1174 2425/1460/1161 2428/1465/1164 +f 2429/1469/1174 2430/1471/1173 2427/1461/1173 +f 2428/1465/1164 2431/1470/1175 2429/1469/1174 +f 2430/1471/1173 2429/1469/1174 2432/1472/1176 +f 2432/1472/1176 2429/1469/1174 2431/1470/1175 +f 2433/1476/1177 2430/1471/1173 2432/1472/1176 +f 2430/1471/1173 2433/1476/1177 2434/1477/1178 +f 2435/1478/1179 2434/1477/1178 2433/1476/1177 +f 2431/1470/1175 2436/1473/1180 2432/1472/1176 +f 2436/1473/1180 2431/1470/1175 2437/1474/1181 +f 2438/1475/1182 2436/1473/1180 2437/1474/1181 +f 2435/1478/1179 2439/1487/1183 2440/1488/1184 +f 2436/1473/1180 2438/1475/1182 2441/1480/1185 +f 2439/1487/1183 2435/1478/1179 2442/1486/1186 +f 2435/1478/1179 2433/1476/1177 2442/1486/1186 +f 2442/1486/1186 2443/1484/1187 2439/1487/1183 +f 2438/1475/1182 2444/1481/1188 2441/1480/1185 +f 2443/1484/1187 2442/1486/1186 2445/1485/1189 +f 2433/1476/1177 2445/1485/1189 2442/1486/1186 +f 2446/1482/1190 2443/1484/1187 2445/1485/1189 +f 2444/1481/1188 2446/1482/1190 2441/1480/1185 +f 2443/1484/1187 2446/1482/1190 2447/1483/1191 +f 2447/1483/1191 2446/1482/1190 2444/1481/1188 +f 2445/1485/1189 2433/1476/1177 2448/1479/1192 +f 2445/1485/1189 2448/1479/1192 2446/1482/1190 +f 2448/1479/1192 2441/1480/1185 2446/1482/1190 +f 2441/1480/1185 2448/1479/1192 2436/1473/1180 +f 2449/1490/1193 2424/1468/1171 2420/1466/1167 +f 2424/1468/1171 2449/1490/1193 2450/1491/1194 +f 2417/1489/1164 2449/1490/1193 2420/1466/1167 +f 2451/1495/1195 2450/1491/1194 2449/1490/1193 +f 2450/1491/1194 2451/1495/1195 2452/1496/1196 +f 2449/1490/1193 2417/1489/1164 2453/1492/1197 +f 2417/1489/1164 2418/1458/1165 2453/1492/1197 +f 2421/1493/1168 2453/1492/1197 2418/1458/1165 +f 2454/1494/1198 2449/1490/1193 2453/1492/1197 +f 2453/1492/1197 2421/1493/1168 2454/1494/1198 +f 2449/1490/1193 2454/1494/1198 2451/1495/1195 +f 2455/1499/1199 2452/1496/1196 2451/1495/1195 +f 2454/1494/1198 2455/1499/1199 2451/1495/1195 +f 2452/1496/1196 2455/1499/1199 2456/1500/1200 +f 2456/1500/1200 2457/1504/1201 2458/1505/1202 +f 2457/1504/1201 2456/1500/1200 2455/1499/1199 +f 2459/1506/1203 2457/1504/1201 2455/1499/1199 +f 2455/1499/1199 2454/1494/1198 2459/1506/1203 +f 2460/1503/44 2457/1504/1201 2459/1506/1203 +f 2454/1494/1198 2461/1497/1204 2459/1506/1203 +f 2461/1497/1204 2460/1503/44 2459/1506/1203 +f 2461/1497/1204 2454/1494/1198 2421/1493/1168 +f 2419/1459/1166 2461/1497/1204 2421/1493/1168 +f 2461/1497/1204 2462/1501/1072 2460/1503/44 +f 2461/1497/1204 2419/1459/1166 2463/1498/1205 +f 2462/1501/1072 2461/1497/1204 2463/1498/1205 +f 2463/1498/1205 2464/1502/1073 2462/1501/1072 +f 2465/1585/1206 2466/1586/1207 2467/1587/1208 +f 2467/1587/1208 2468/1588/1209 2465/1585/1206 +f 2468/1588/1209 2469/1589/1210 2465/1585/1206 +f 2468/1588/1209 2467/1587/1208 2470/1590/1211 +f 2469/1589/1210 2468/1588/1209 2471/1591/1212 +f 2471/1591/1212 2472/1592/1213 2469/1589/1210 +f 2473/1593/1214 2468/1588/1209 2470/1590/1211 +f 2473/1593/1214 2471/1591/1212 2468/1588/1209 +f 2474/1594/1215 2470/1590/1211 2475/1595/1216 +f 2473/1593/1214 2470/1590/1211 2474/1594/1215 +f 2476/1596/1217 2473/1593/1214 2474/1594/1215 +f 2473/1593/1214 2476/1596/1217 2477/1597/1218 +f 2471/1591/1212 2473/1593/1214 2477/1597/1218 +f 2478/1598/1219 2477/1597/1218 2476/1596/1217 +f 2479/1599/1220 2471/1591/1212 2477/1597/1218 +f 2477/1597/1218 2478/1598/1219 2479/1599/1220 +f 2472/1592/1213 2471/1591/1212 2480/1600/1221 +f 2479/1599/1220 2480/1600/1221 2471/1591/1212 +f 2481/1601/1222 2472/1592/1213 2480/1600/1221 +f 2479/1599/1220 2481/1601/1222 2480/1600/1221 +f 2472/1592/1213 2481/1601/1222 2482/1602/1223 +f 2481/1601/1222 2483/1603/1224 2482/1602/1223 +f 2478/1598/1219 2484/1604/1225 2479/1599/1220 +f 2481/1601/1222 2479/1599/1220 2484/1604/1225 +f 2484/1604/1225 2478/1598/1219 2485/1605/1226 +f 2486/1606/1227 2484/1604/1225 2485/1605/1226 +f 2483/1603/1224 2481/1601/1222 2487/1607/1228 +f 2481/1601/1222 2484/1604/1225 2487/1607/1228 +f 2484/1604/1225 2486/1606/1227 2488/1608/1229 +f 2488/1608/1229 2487/1607/1228 2484/1604/1225 +f 2487/1607/1228 2489/1609/1230 2483/1603/1224 +f 2487/1607/1228 2488/1608/1229 2489/1609/1230 +f 2490/1610/1231 2483/1603/1224 2489/1609/1230 +f 2489/1609/1230 2491/1611/1232 2490/1610/1231 +f 2486/1606/1227 2492/1612/1233 2488/1608/1229 +f 2492/1612/1233 2489/1609/1230 2488/1608/1229 +f 2492/1612/1233 2486/1606/1227 2493/1613/1234 +f 2494/1614/1235 2492/1612/1233 2493/1613/1234 +f 2491/1611/1232 2489/1609/1230 2495/1615/1236 +f 2489/1609/1230 2492/1612/1233 2495/1615/1236 +f 2491/1611/1232 2496/1616/1237 2497/1617/1238 +f 2496/1616/1237 2491/1611/1232 2495/1615/1236 +f 2492/1612/1233 2498/1618/1239 2495/1615/1236 +f 2498/1618/1239 2496/1616/1237 2495/1615/1236 +f 2492/1612/1233 2494/1614/1235 2498/1618/1239 +f 2496/1616/1237 2498/1618/1239 2499/1619/1240 +f 2494/1614/1235 2499/1619/1240 2498/1618/1239 +f 2499/1619/1240 2494/1614/1235 2500/1620/1241 +f 2501/1621/1242 2502/1622/1243 2503/1623/1244 +f 2502/1622/1243 2501/1621/1242 2504/1624/1245 +f 2504/1624/1245 2505/1625/1246 2502/1622/1243 +f 2506/1626/1247 2504/1624/1245 2501/1621/1242 +f 2505/1625/1246 2504/1624/1245 2507/1627/1248 +f 2508/1628/1249 2505/1625/1246 2507/1627/1248 +f 2504/1624/1245 2506/1626/1247 2509/1629/1250 +f 2509/1629/1250 2507/1627/1248 2504/1624/1245 +f 2510/1630/1251 2509/1629/1250 2506/1626/1247 +f 2511/1631/1252 2508/1628/1249 2507/1627/1248 +f 2508/1628/1249 2511/1631/1252 2512/1632/1253 +f 2513/1633/1254 2512/1632/1253 2511/1631/1252 +f 2511/1631/1252 2514/1634/1255 2513/1633/1254 +f 2507/1627/1248 2509/1629/1250 2515/1635/1256 +f 2509/1629/1250 2510/1630/1251 2515/1635/1256 +f 2515/1635/1256 2511/1631/1252 2507/1627/1248 +f 2516/1636/1257 2515/1635/1256 2510/1630/1251 +f 2514/1634/1255 2511/1631/1252 2517/1637/1258 +f 2511/1631/1252 2515/1635/1256 2517/1637/1258 +f 2515/1635/1256 2516/1636/1257 2517/1637/1258 +f 2517/1637/1258 2518/1638/1259 2514/1634/1255 +f 2518/1638/1259 2517/1637/1258 2516/1636/1257 +f 2519/1622/1260 2520/1621/1261 2521/1623/1262 +f 2520/1621/1261 2519/1622/1260 2522/1624/1263 +f 2522/1624/1263 2523/1626/1264 2520/1621/1261 +f 2524/1625/1265 2522/1624/1263 2519/1622/1260 +f 2523/1626/1264 2522/1624/1263 2525/1629/1266 +f 2525/1629/1266 2526/1630/1267 2523/1626/1264 +f 2522/1624/1263 2524/1625/1265 2527/1627/1268 +f 2527/1627/1268 2525/1629/1266 2522/1624/1263 +f 2528/1628/1269 2527/1627/1268 2524/1625/1265 +f 2526/1630/1267 2525/1629/1266 2529/1635/1270 +f 2525/1629/1266 2527/1627/1268 2529/1635/1270 +f 2529/1635/1270 2530/1636/1271 2526/1630/1267 +f 2531/1631/1272 2527/1627/1268 2528/1628/1269 +f 2531/1631/1272 2529/1635/1270 2527/1627/1268 +f 2532/1632/1273 2531/1631/1272 2528/1628/1269 +f 2531/1631/1272 2532/1632/1273 2533/1633/1274 +f 2534/1634/1275 2531/1631/1272 2533/1633/1274 +f 2530/1636/1271 2529/1635/1270 2535/1637/1276 +f 2531/1631/1272 2535/1637/1276 2529/1635/1270 +f 2531/1631/1272 2534/1634/1275 2535/1637/1276 +f 2535/1637/1276 2536/1638/1277 2530/1636/1271 +f 2536/1638/1277 2535/1637/1276 2534/1634/1275 +f 2537/1639/1278 2538/1640/1279 2539/1641/1280 +f 2538/1640/1279 2537/1639/1278 2540/1642/1281 +f 2538/1640/1279 2540/1642/1281 2541/1643/1282 +f 2542/1644/1283 2540/1642/1281 2537/1639/1278 +f 2543/1645/1284 2541/1643/1282 2540/1642/1281 +f 2540/1642/1281 2542/1644/1283 2544/1646/1017 +f 2540/1642/1281 2544/1646/1017 2543/1645/1284 +f 2545/1647/1285 2543/1645/1284 2544/1646/1017 +f 2546/1648/1286 2547/1649/1287 2548/1650/1288 +f 2547/1649/1287 2549/1651/1289 2548/1650/1288 +f 2550/1652/1290 2549/1651/1289 2547/1649/1287 +f 2548/1650/1288 2549/1651/1289 2551/1653/1291 +f 2549/1651/1289 2550/1652/1290 2552/1654/1292 +f 2551/1653/1291 2553/1655/1293 2554/1656/1294 +f 2552/1654/1292 2555/1657/1295 2549/1651/1289 +f 2549/1651/1289 2555/1657/1295 2551/1653/1291 +f 2553/1655/1293 2551/1653/1291 2555/1657/1295 +f 2555/1657/1295 2552/1654/1292 2556/1658/1296 +f 2555/1657/1295 2557/1659/649 2553/1655/1293 +f 2555/1657/1295 2556/1658/1296 2557/1659/649 +f 2558/1660/1297 2559/1661/1298 2560/1662/1299 +f 2559/1661/1298 2558/1660/1297 2561/1663/1300 +f 2561/1663/1300 2562/1664/1301 2559/1661/1298 +f 2563/1665/1302 2561/1663/1300 2558/1660/1297 +f 2564/1666/1299 2562/1664/1301 2565/1667/1297 +f 2565/1667/1297 2562/1664/1301 2566/1668/1303 +f 2562/1664/1301 2561/1663/1300 2566/1668/1303 +f 2565/1667/1297 2566/1668/1303 2567/1669/1015 +f 2561/1663/1300 2563/1665/1302 2568/1670/1304 +f 2568/1670/1304 2566/1668/1303 2561/1663/1300 +f 2567/1669/1015 2569/1671/1305 2570/1672/136 +f 2567/1669/1015 2566/1668/1303 2571/1673/1306 +f 2569/1671/1305 2567/1669/1015 2571/1673/1306 +f 2566/1668/1303 2568/1670/1304 2571/1673/1306 +f 2571/1673/1306 2572/1674/1307 2569/1671/1305 +f 2572/1674/1307 2571/1673/1306 2568/1670/1304 +f 2573/1675/1308 2572/1674/1307 2568/1670/1304 +f 2568/1670/1304 2563/1665/1302 2573/1675/1308 +f 2563/1665/1302 2574/1676/1309 2573/1675/1308 +f 2575/1677/1310 2573/1675/1308 2574/1676/1309 +f 2573/1675/1308 2575/1677/1310 2576/1678/1311 +f 2575/1677/1310 2577/1679/1312 2576/1678/1311 +f 2577/1679/1312 2575/1677/1310 2578/1680/1313 +f 2578/1680/1313 2579/1681/223 2577/1679/1312 +f 2580/1682/1314 2577/1679/1312 2579/1681/223 +f 2577/1679/1312 2580/1682/1314 2581/1683/1315 +f 2582/1684/1316 2580/1682/1314 2579/1681/223 +f 2583/1685/1317 2581/1683/1315 2580/1682/1314 +f 2581/1683/1315 2583/1685/1317 2584/1686/1318 +f 2580/1682/1314 2582/1684/1316 2585/1687/1319 +f 2585/1687/1319 2583/1685/1317 2580/1682/1314 +f 2584/1686/1318 2586/1688/571 2587/1689/1320 +f 2586/1688/571 2584/1686/1318 2583/1685/1317 +f 2583/1685/1317 2588/1690/1181 2586/1688/571 +f 2588/1690/1181 2583/1685/1317 2589/1691/1321 +f 2583/1685/1317 2585/1687/1319 2589/1691/1321 +f 2589/1691/1321 2590/1692/1322 2588/1690/1181 +f 2590/1692/1322 2589/1691/1321 2591/1693/1323 +f 2589/1691/1321 2592/1694/1324 2591/1693/1323 +f 2592/1694/1324 2589/1691/1321 2585/1687/1319 +f 2593/1695/1325 2592/1694/1324 2585/1687/1319 +f 2585/1687/1319 2582/1684/1316 2593/1695/1325 +f 2582/1684/1316 2594/1696/1326 2593/1695/1325 +f 2595/1697/1327 2593/1695/1325 2594/1696/1326 +f 2593/1695/1325 2595/1697/1327 2596/1698/813 +f 2595/1697/1327 2597/1699/1328 2596/1698/813 +f 2597/1699/1328 2595/1697/1327 2598/1700/1329 +f 2598/1700/1329 2599/1701/1330 2597/1699/1328 +f 2600/1702/1331 2599/1701/1330 2598/1700/1329 +f 2600/1702/1331 2601/1703/1332 2599/1701/1330 +f 2602/1704/1333 2599/1701/1330 2601/1703/1332 +f 2599/1701/1330 2602/1704/1333 2603/1705/1334 +f 2602/1704/1333 2601/1703/1332 2604/1706/1142 +f 2602/1704/1333 2605/1707/1335 2603/1705/1334 +f 2603/1705/1334 2605/1707/1335 2606/1708/1336 +f 2605/1707/1335 2607/1709/189 2606/1708/1336 +f 2607/1709/189 2605/1707/1335 2608/1710/1337 +f 2605/1707/1335 2609/1711/1142 2608/1710/1337 +f 2604/1706/1142 2610/1712/1338 2602/1704/1333 +f 2610/1712/1338 2605/1707/1335 2602/1704/1333 +f 2610/1712/1338 2604/1706/1142 2611/1713/1339 +f 2609/1711/1142 2605/1707/1335 2612/1714/1340 +f 2605/1707/1335 2610/1712/1338 2612/1714/1340 +f 2612/1714/1340 2613/1715/1339 2609/1711/1142 +f 2611/1713/1339 2614/1716/1341 2610/1712/1338 +f 2614/1716/1341 2612/1714/1340 2610/1712/1338 +f 2614/1716/1341 2611/1713/1339 2615/1717/899 +f 2613/1715/1339 2612/1714/1340 2616/1718/1342 +f 2612/1714/1340 2614/1716/1341 2616/1718/1342 +f 2616/1718/1342 2617/1719/1343 2613/1715/1339 +f 2615/1717/899 2618/1720/1344 2614/1716/1341 +f 2618/1720/1344 2616/1718/1342 2614/1716/1341 +f 2619/1721/1345 2617/1719/1343 2616/1718/1342 +f 2616/1718/1342 2618/1720/1344 2619/1721/1345 +f 2620/1722/1346 2617/1719/1343 2619/1721/1345 +f 2617/1719/1343 2620/1722/1346 2621/1723/1347 +f 2619/1721/1345 2618/1720/1344 2620/1722/1346 +f 2618/1720/1344 2622/1724/1348 2620/1722/1346 +f 2618/1720/1344 2623/1725/892 2622/1724/1348 +f 2618/1720/1344 2615/1717/899 2623/1725/892 +f 2615/1717/899 2624/1726/894 2623/1725/892 +f 2625/1727/1349 2623/1725/892 2624/1726/894 +f 2623/1725/892 2625/1727/1349 2626/1728/1349 +f 2625/1727/1349 2627/1729/1350 2626/1728/1349 +f 2627/1729/1350 2625/1727/1349 2628/1730/1350 +f 2627/1729/1350 2628/1730/1350 2629/1731/1351 +f 2630/1732/1352 2629/1731/1351 2628/1730/1350 +f 2630/1732/1352 2631/1733/1353 2629/1731/1351 +f 2632/1734/1354 2629/1731/1351 2631/1733/1353 +f 2629/1731/1351 2632/1734/1354 2633/1735/1355 +f 2634/1736/185 2632/1734/1354 2631/1733/1353 +f 2632/1734/1354 2635/1737/1356 2633/1735/1355 +f 2636/1738/1357 2635/1737/1356 2637/1739/1358 +f 2638/1740/1359 2637/1739/1358 2635/1737/1356 +f 2635/1737/1356 2632/1734/1354 2638/1740/1359 +f 2637/1739/1358 2638/1740/1359 2639/1741/185 +f 2639/1741/185 2638/1740/1359 2640/1742/1360 +f 2640/1742/1360 2638/1740/1359 2632/1734/1354 +f 2639/1741/185 2640/1742/1360 2641/1743/1361 +f 2632/1734/1354 2634/1736/185 2642/1744/1362 +f 2632/1734/1354 2642/1744/1362 2640/1742/1360 +f 2643/1745/1363 2642/1744/1362 2634/1736/185 +f 2641/1743/1361 2640/1742/1360 2644/1746/1364 +f 2644/1746/1364 2640/1742/1360 2642/1744/1362 +f 2641/1743/1361 2644/1746/1364 2645/1747/1365 +f 2645/1747/1365 2644/1746/1364 2646/1748/1366 +f 2642/1744/1362 2643/1745/1363 2647/1749/1367 +f 2642/1744/1362 2647/1749/1367 2644/1746/1364 +f 2646/1748/1366 2644/1746/1364 2647/1749/1367 +f 2648/1750/1365 2647/1749/1367 2643/1745/1363 +f 2646/1748/1366 2647/1749/1367 2649/1751/1368 +f 2647/1749/1367 2648/1750/1365 2649/1751/1368 +f 2650/1752/8 2651/1753/8 2652/1754/8 +f 2650/1752/8 2652/1754/8 2653/1755/8 +f 2652/1754/8 2654/1756/8 2653/1755/8 +f 2655/1757/8 2653/1755/8 2654/1756/8 +f 2656/1758/8 2650/1752/8 2653/1755/8 +f 2653/1755/8 2655/1757/8 2657/1759/8 +f 2658/1760/8 2656/1758/8 2659/1761/8 +f 2659/1761/8 2656/1758/8 2653/1755/8 +f 2660/1762/8 2661/1763/8 2657/1759/8 +f 2657/1759/8 2661/1763/8 2653/1755/8 +f 2661/1763/8 2662/1764/8 2653/1755/8 +f 2662/1764/8 2663/1765/8 2653/1755/8 +f 2664/1766/8 2659/1761/8 2653/1755/8 +f 2663/1765/8 2665/1767/8 2653/1755/8 +f 2666/1768/8 2667/1769/8 2664/1766/8 +f 2666/1768/8 2664/1766/8 2653/1755/8 +f 2668/1770/8 2666/1768/8 2653/1755/8 +f 2669/1771/8 2668/1770/8 2653/1755/8 +f 2670/1772/8 2669/1771/8 2653/1755/8 +f 2671/1773/8 2670/1772/8 2653/1755/8 +f 2672/1774/8 2671/1773/8 2653/1755/8 +f 2673/1775/8 2672/1774/8 2674/1776/8 +f 2674/1776/8 2672/1774/8 2653/1755/8 +f 2653/1755/8 2675/1777/8 2674/1776/8 +f 2675/1777/8 2653/1755/8 2676/1778/8 +f 2677/1779/8 2676/1778/8 2653/1755/8 +f 2665/1767/8 2677/1779/8 2653/1755/8 +f 2665/1767/8 2678/1780/8 2677/1779/8 +f 2679/1781/1369 2680/1782/1370 2681/1783/1371 +f 2680/1782/1370 2679/1781/1369 2682/1784/1372 +f 2679/1781/1369 2683/1785/1299 2682/1784/1372 +f 2682/1784/1372 2684/1786/1373 2680/1782/1370 +f 2682/1784/1372 2683/1785/1299 2685/1787/1374 +f 2682/1784/1372 2685/1787/1374 2686/1788/1375 +f 2684/1786/1373 2682/1784/1372 2686/1788/1375 +f 2686/1788/1375 2685/1787/1374 2687/1789/136 +f 2688/1790/1376 2684/1786/1373 2686/1788/1375 +f 2686/1788/1375 2687/1789/136 2688/1790/1376 +f 2688/1790/1376 2689/1791/1377 2684/1786/1373 +f 2690/1792/1378 2688/1790/1376 2687/1789/136 +f 2691/1793/554 2689/1791/1377 2688/1790/1376 +f 2688/1790/1376 2690/1792/1378 2691/1793/554 +f 2691/1793/554 2692/1794/1379 2689/1791/1377 +f 2693/1795/29 2691/1793/554 2690/1792/1378 +f 2691/1793/554 2694/1796/1380 2692/1794/1379 +f 2691/1793/554 2693/1795/29 2695/1797/1381 +f 2694/1796/1380 2691/1793/554 2695/1797/1381 +f 2696/1798/1382 2695/1797/1381 2693/1795/29 +f 2695/1797/1381 2697/1799/1383 2694/1796/1380 +f 2695/1797/1381 2696/1798/1382 2698/1800/1384 +f 2697/1799/1383 2695/1797/1381 2698/1800/1384 +f 2699/1801/649 2698/1800/1384 2696/1798/1382 +f 2697/1799/1383 2698/1800/1384 2700/1802/1385 +f 2699/1801/649 2700/1802/1385 2698/1800/1384 +f 2700/1802/1385 2701/1803/1386 2697/1799/1383 +f 2702/1804/1129 2700/1802/1385 2699/1801/649 +f 2701/1803/1386 2700/1802/1385 2703/1805/1387 +f 2702/1804/1129 2703/1805/1387 2700/1802/1385 +f 2703/1805/1387 2704/1806/1388 2701/1803/1386 +f 2705/1807/12 2703/1805/1387 2702/1804/1129 +f 2703/1805/1387 2706/1808/1389 2704/1806/1388 +f 2705/1807/12 2707/1809/1390 2703/1805/1387 +f 2706/1808/1389 2703/1805/1387 2707/1809/1390 +f 2708/1810/1391 2707/1809/1390 2705/1807/12 +f 2707/1809/1390 2709/1811/1392 2706/1808/1389 +f 2708/1810/1391 2710/1812/1393 2707/1809/1390 +f 2709/1811/1392 2707/1809/1390 2710/1812/1393 +f 2711/1813/678 2710/1812/1393 2708/1810/1391 +f 2709/1811/1392 2710/1812/1393 2712/1814/1394 +f 2711/1813/678 2712/1814/1394 2710/1812/1393 +f 2709/1811/1392 2712/1814/1394 2713/1815/1395 +f 2712/1814/1394 2711/1813/678 2714/1816/1396 +f 2713/1815/1395 2712/1814/1394 2715/1817/1397 +f 2714/1816/1396 2715/1817/1397 2712/1814/1394 +f 2713/1815/1395 2715/1817/1397 2716/1818/1398 +f 2715/1817/1397 2714/1816/1396 2717/1819/66 +f 2715/1817/1397 2718/1820/1399 2716/1818/1398 +f 2717/1819/66 2719/1821/1400 2715/1817/1397 +f 2718/1820/1399 2715/1817/1397 2719/1821/1400 +f 2719/1821/1400 2717/1819/66 2720/1822/1401 +f 2719/1821/1400 2721/1823/1402 2718/1820/1399 +f 2720/1822/1401 2722/1824/1403 2719/1821/1400 +f 2721/1823/1402 2719/1821/1400 2722/1824/1403 +f 2722/1824/1403 2720/1822/1401 2723/1825/424 +f 2724/1826/1404 2721/1823/1402 2722/1824/1403 +f 2722/1824/1403 2723/1825/424 2724/1826/1404 +f 2721/1823/1402 2724/1826/1404 2725/1827/1405 +f 2724/1826/1404 2723/1825/424 2726/1828/1406 +f 2727/1829/1407 2725/1827/1405 2724/1826/1404 +f 2726/1828/1406 2727/1829/1407 2724/1826/1404 +f 2725/1827/1405 2727/1829/1407 2728/1830/1408 +f 2727/1829/1407 2726/1828/1406 2729/1831/1365 +f 2730/1832/1409 2731/1833/1410 2732/1834/1411 +f 2732/1834/1411 2733/1835/1412 2730/1832/1409 +f 2734/1836/1413 2733/1835/1412 2732/1834/1411 +f 2730/1832/1409 2733/1835/1412 2735/1837/1414 +f 2733/1835/1412 2734/1836/1413 2736/1838/1415 +f 2733/1835/1412 2736/1838/1415 2735/1837/1414 +f 2737/1839/1416 2736/1838/1415 2734/1836/1413 +f 2738/1840/1417 2735/1837/1414 2736/1838/1415 +f 2737/1839/1416 2738/1840/1417 2736/1838/1415 +f 2735/1837/1414 2738/1840/1417 2739/1841/1418 +f 2738/1840/1417 2737/1839/1416 2740/1842/1419 +f 2741/1843/1420 2739/1841/1418 2738/1840/1417 +f 2741/1843/1420 2738/1840/1417 2740/1842/1419 +f 2740/1842/1419 2742/1844/1421 2741/1843/1420 +f 2739/1841/1418 2741/1843/1420 2743/1845/1422 +f 2744/1846/1423 2741/1843/1420 2742/1844/1421 +f 2745/1847/1424 2743/1845/1422 2741/1843/1420 +f 2741/1843/1420 2744/1846/1423 2745/1847/1424 +f 2743/1845/1422 2745/1847/1424 2746/1848/1425 +f 2746/1848/1425 2745/1847/1424 2747/1849/1426 +f 2745/1847/1424 2744/1846/1423 2748/1850/1427 +f 2745/1847/1424 2748/1850/1427 2747/1849/1426 +f 2749/1851/1428 2748/1850/1427 2744/1846/1423 +f 2747/1849/1426 2748/1850/1427 2750/1852/1429 +f 2751/1853/1430 2748/1850/1427 2749/1851/1428 +f 2748/1850/1427 2752/1854/1431 2750/1852/1429 +f 2748/1850/1427 2751/1853/1430 2752/1854/1431 +f 2750/1852/1429 2752/1854/1431 2753/1855/1432 +f 2751/1853/1430 2754/1856/1433 2752/1854/1431 +f 2752/1854/1431 2754/1856/1433 2753/1855/1432 +f 2754/1856/1433 2751/1853/1430 2755/1857/1434 +f 2753/1855/1432 2754/1856/1433 2756/1858/1435 +f 2755/1857/1434 2757/1859/1436 2754/1856/1433 +f 2754/1856/1433 2757/1859/1436 2756/1858/1435 +f 2757/1859/1436 2755/1857/1434 2758/1860/1437 +f 2758/1860/1437 2759/1861/1438 2757/1859/1436 +f 2759/1861/1438 2756/1858/1435 2757/1859/1436 +f 2756/1858/1435 2759/1861/1438 2760/1862/1439 +f 2761/1863/1440 2762/1864/1441 2763/1865/1442 +f 2762/1864/1441 2761/1863/1440 2764/1866/1443 +f 2765/1867/1444 2762/1864/1441 2764/1866/1443 +f 2766/1868/1445 2764/1866/1443 2761/1863/1440 +f 2764/1866/1443 2767/1869/1446 2765/1867/1444 +f 2764/1866/1443 2766/1868/1445 2767/1869/1446 +f 2767/1869/1446 2768/1870/1447 2765/1867/1444 +f 2769/1871/1448 2767/1869/1446 2766/1868/1445 +f 2767/1869/1446 2769/1871/1448 2770/1872/1449 +f 2768/1870/1447 2767/1869/1446 2770/1872/1449 +f 2771/1873/1450 2770/1872/1449 2769/1871/1448 +f 2772/1874/1451 2768/1870/1447 2770/1872/1449 +f 2770/1872/1449 2771/1873/1450 2772/1874/1451 +f 2768/1870/1447 2772/1874/1451 2773/1875/1452 +f 2774/1876/1453 2772/1874/1451 2771/1873/1450 +f 2775/1877/1454 2773/1875/1452 2772/1874/1451 +f 2772/1874/1451 2774/1876/1453 2775/1877/1454 +f 2773/1875/1452 2775/1877/1454 2776/1878/1455 +f 2777/1879/1456 2775/1877/1454 2774/1876/1453 +f 2777/1879/1456 2776/1878/1455 2775/1877/1454 +f 2774/1876/1453 2778/1880/1457 2777/1879/1456 +f 2776/1878/1455 2777/1879/1456 2779/1881/1458 +f 2780/1882/1459 2777/1879/1456 2778/1880/1457 +f 2780/1882/1459 2779/1881/1458 2777/1879/1456 +f 2778/1880/1457 2781/1883/1460 2780/1882/1459 +f 2779/1881/1458 2780/1882/1459 2782/1884/1461 +f 2783/1885/1462 2780/1882/1459 2781/1883/1460 +f 2780/1882/1459 2783/1885/1462 2782/1884/1461 +f 2781/1883/1460 2784/1886/1463 2783/1885/1462 +f 2782/1884/1461 2783/1885/1462 2785/1887/1464 +f 2786/1888/1465 2783/1885/1462 2784/1886/1463 +f 2783/1885/1462 2786/1888/1465 2785/1887/1464 +f 2787/1889/1466 2788/1890/1467 2789/1891/1468 +f 2788/1890/1467 2787/1889/1466 2790/1892/1469 +f 2790/1892/1469 2791/1893/1470 2788/1890/1467 +f 2792/1894/1471 2790/1892/1469 2787/1889/1466 +f 2791/1893/1470 2790/1892/1469 2793/1895/1472 +f 2793/1895/1472 2794/1896/1473 2791/1893/1470 +f 2790/1892/1469 2792/1894/1471 2795/1897/1474 +f 2795/1897/1474 2793/1895/1472 2790/1892/1469 +f 2794/1896/1473 2793/1895/1472 2796/1898/1475 +f 2795/1897/1474 2796/1898/1475 2793/1895/1472 +f 2796/1898/1475 2797/1899/1476 2794/1896/1473 +f 2792/1894/1471 2798/1900/1477 2795/1897/1474 +f 2796/1898/1475 2795/1897/1474 2798/1900/1477 +f 2798/1900/1477 2792/1894/1471 2799/1901/1478 +f 2797/1899/1476 2796/1898/1475 2800/1902/1479 +f 2798/1900/1477 2800/1902/1479 2796/1898/1475 +f 2800/1902/1479 2801/1903/1480 2797/1899/1476 +f 2799/1901/1478 2802/1904/1481 2798/1900/1477 +f 2800/1902/1479 2798/1900/1477 2802/1904/1481 +f 2802/1904/1481 2799/1901/1478 2803/1905/1482 +f 2801/1903/1480 2800/1902/1479 2804/1906/1483 +f 2802/1904/1481 2804/1906/1483 2800/1902/1479 +f 2804/1906/1483 2805/1907/1484 2801/1903/1480 +f 2803/1905/1482 2806/1908/1485 2802/1904/1481 +f 2802/1904/1481 2806/1908/1485 2804/1906/1483 +f 2806/1908/1485 2803/1905/1482 2807/1909/1486 +f 2807/1909/1486 2808/1910/1487 2806/1908/1485 +f 2808/1910/1487 2804/1906/1483 2806/1908/1485 +f 2807/1909/1486 2809/1911/1488 2808/1910/1487 +f 2805/1907/1484 2804/1906/1483 2810/1912/1489 +f 2804/1906/1483 2808/1910/1487 2810/1912/1489 +f 2809/1911/1488 2811/1913/1490 2808/1910/1487 +f 2811/1913/1490 2810/1912/1489 2808/1910/1487 +f 2809/1911/1488 2812/1914/1491 2811/1913/1490 +f 2813/1915/1492 2805/1907/1484 2810/1912/1489 +f 2810/1912/1489 2811/1913/1490 2813/1915/1492 +f 2805/1907/1484 2813/1915/1492 2814/1916/1493 +f 2812/1914/1491 2815/1917/1494 2811/1913/1490 +f 2811/1913/1490 2815/1917/1494 2813/1915/1492 +f 2813/1915/1492 2815/1917/1494 2814/1916/1493 +f 2812/1914/1491 2816/1918/1495 2815/1917/1494 +f 2814/1916/1493 2815/1917/1494 2817/1919/1496 +f 2816/1918/1495 2817/1919/1496 2815/1917/1494 +f 2816/1918/1495 2818/1920/1497 2817/1919/1496 +f 2819/1833/1498 2820/1832/1499 2821/1834/1500 +f 2821/1834/1500 2820/1832/1499 2822/1835/1501 +f 2823/1836/1502 2821/1834/1500 2822/1835/1501 +f 2820/1832/1499 2824/1837/1414 2822/1835/1501 +f 2823/1836/1502 2822/1835/1501 2825/1838/1503 +f 2822/1835/1501 2824/1837/1414 2825/1838/1503 +f 2826/1839/1504 2823/1836/1502 2825/1838/1503 +f 2824/1837/1414 2827/1840/1505 2825/1838/1503 +f 2827/1840/1505 2826/1839/1504 2825/1838/1503 +f 2827/1840/1505 2824/1837/1414 2828/1841/1506 +f 2827/1840/1505 2829/1842/1507 2826/1839/1504 +f 2828/1841/1506 2830/1843/1508 2827/1840/1505 +f 2830/1843/1508 2829/1842/1507 2827/1840/1505 +f 2829/1842/1507 2830/1843/1508 2831/1844/1509 +f 2830/1843/1508 2828/1841/1506 2832/1845/1510 +f 2830/1843/1508 2833/1846/1511 2831/1844/1509 +f 2832/1845/1510 2834/1847/1512 2830/1843/1508 +f 2833/1846/1511 2830/1843/1508 2834/1847/1512 +f 2834/1847/1512 2832/1845/1510 2835/1848/1513 +f 2835/1848/1513 2836/1849/1514 2834/1847/1512 +f 2837/1850/1515 2833/1846/1511 2834/1847/1512 +f 2834/1847/1512 2836/1849/1514 2837/1850/1515 +f 2833/1846/1511 2837/1850/1515 2838/1851/1516 +f 2836/1849/1514 2839/1852/1517 2837/1850/1515 +f 2837/1850/1515 2840/1853/1518 2838/1851/1516 +f 2837/1850/1515 2839/1852/1517 2841/1854/1519 +f 2840/1853/1518 2837/1850/1515 2841/1854/1519 +f 2839/1852/1517 2842/1855/1432 2841/1854/1519 +f 2840/1853/1518 2841/1854/1519 2843/1856/1520 +f 2841/1854/1519 2842/1855/1432 2843/1856/1520 +f 2843/1856/1520 2844/1857/1521 2840/1853/1518 +f 2842/1855/1432 2845/1858/1522 2843/1856/1520 +f 2844/1857/1521 2843/1856/1520 2846/1859/1523 +f 2843/1856/1520 2845/1858/1522 2846/1859/1523 +f 2846/1859/1523 2847/1860/1524 2844/1857/1521 +f 2847/1860/1524 2846/1859/1523 2848/1861/1525 +f 2845/1858/1522 2848/1861/1525 2846/1859/1523 +f 2848/1861/1525 2845/1858/1522 2849/1862/1526 +f 2850/1864/1527 2851/1863/1528 2852/1865/1529 +f 2851/1863/1528 2850/1864/1527 2853/1866/1530 +f 2853/1866/1530 2854/1868/1531 2851/1863/1528 +f 2850/1864/1527 2855/1867/1532 2853/1866/1530 +f 2854/1868/1531 2853/1866/1530 2856/1869/1533 +f 2853/1866/1530 2855/1867/1532 2856/1869/1533 +f 2856/1869/1533 2857/1871/1534 2854/1868/1531 +f 2856/1869/1533 2855/1867/1532 2858/1870/1535 +f 2857/1871/1534 2856/1869/1533 2859/1872/1536 +f 2858/1870/1535 2859/1872/1536 2856/1869/1533 +f 2859/1872/1536 2860/1873/1537 2857/1871/1534 +f 2858/1870/1535 2861/1874/1538 2859/1872/1536 +f 2860/1873/1537 2859/1872/1536 2861/1874/1538 +f 2861/1874/1538 2858/1870/1535 2862/1875/1539 +f 2861/1874/1538 2863/1876/1540 2860/1873/1537 +f 2862/1875/1539 2864/1877/1541 2861/1874/1538 +f 2863/1876/1540 2861/1874/1538 2864/1877/1541 +f 2864/1877/1541 2862/1875/1539 2865/1878/1542 +f 2864/1877/1541 2866/1879/1543 2863/1876/1540 +f 2865/1878/1542 2866/1879/1543 2864/1877/1541 +f 2867/1880/1544 2863/1876/1540 2866/1879/1543 +f 2866/1879/1543 2865/1878/1542 2868/1881/1545 +f 2866/1879/1543 2869/1882/1546 2867/1880/1544 +f 2868/1881/1545 2869/1882/1546 2866/1879/1543 +f 2870/1883/1547 2867/1880/1544 2869/1882/1546 +f 2869/1882/1546 2868/1881/1545 2871/1884/1548 +f 2872/1885/1549 2870/1883/1547 2869/1882/1546 +f 2869/1882/1546 2871/1884/1548 2872/1885/1549 +f 2873/1886/1550 2870/1883/1547 2872/1885/1549 +f 2872/1885/1549 2871/1884/1548 2874/1887/1551 +f 2872/1885/1549 2875/1888/1552 2873/1886/1550 +f 2875/1888/1552 2872/1885/1549 2874/1887/1551 +f 2876/1890/1467 2877/1889/1553 2878/1891/1554 +f 2877/1889/1553 2876/1890/1467 2879/1892/1555 +f 2880/1893/1470 2879/1892/1555 2876/1890/1467 +f 2879/1892/1555 2881/1894/1556 2877/1889/1553 +f 2879/1892/1555 2880/1893/1470 2882/1895/1557 +f 2880/1893/1470 2883/1896/1558 2882/1895/1557 +f 2881/1894/1556 2879/1892/1555 2884/1897/1559 +f 2884/1897/1559 2879/1892/1555 2882/1895/1557 +f 2882/1895/1557 2883/1896/1558 2885/1898/1560 +f 2885/1898/1560 2884/1897/1559 2882/1895/1557 +f 2886/1899/1484 2885/1898/1560 2883/1896/1558 +f 2884/1897/1559 2887/1900/1561 2881/1894/1556 +f 2884/1897/1559 2885/1898/1560 2887/1900/1561 +f 2881/1894/1556 2887/1900/1561 2888/1901/1562 +f 2885/1898/1560 2886/1899/1484 2889/1902/1563 +f 2889/1902/1563 2887/1900/1561 2885/1898/1560 +f 2890/1903/1564 2889/1902/1563 2886/1899/1484 +f 2887/1900/1561 2891/1904/1565 2888/1901/1562 +f 2887/1900/1561 2889/1902/1563 2891/1904/1565 +f 2888/1901/1562 2891/1904/1565 2892/1905/1313 +f 2889/1902/1563 2890/1903/1564 2893/1906/1566 +f 2889/1902/1563 2893/1906/1566 2891/1904/1565 +f 2894/1907/1484 2893/1906/1566 2890/1903/1564 +f 2891/1904/1565 2895/1908/1567 2892/1905/1313 +f 2891/1904/1565 2893/1906/1566 2895/1908/1567 +f 2892/1905/1313 2895/1908/1567 2896/1909/1568 +f 2897/1910/1569 2896/1909/1568 2895/1908/1567 +f 2893/1906/1566 2897/1910/1569 2895/1908/1567 +f 2896/1909/1568 2897/1910/1569 2898/1911/1570 +f 2893/1906/1566 2894/1907/1484 2899/1912/1571 +f 2897/1910/1569 2893/1906/1566 2899/1912/1571 +f 2900/1913/1572 2898/1911/1570 2897/1910/1569 +f 2899/1912/1571 2900/1913/1572 2897/1910/1569 +f 2898/1911/1570 2900/1913/1572 2901/1914/1573 +f 2894/1907/1484 2902/1915/1574 2899/1912/1571 +f 2900/1913/1572 2899/1912/1571 2902/1915/1574 +f 2902/1915/1574 2894/1907/1484 2903/1916/1575 +f 2904/1917/1576 2901/1914/1573 2900/1913/1572 +f 2900/1913/1572 2902/1915/1574 2904/1917/1576 +f 2903/1916/1575 2904/1917/1576 2902/1915/1574 +f 2901/1914/1573 2904/1917/1576 2905/1918/1577 +f 2904/1917/1576 2903/1916/1575 2906/1919/1578 +f 2904/1917/1576 2906/1919/1578 2905/1918/1577 +f 2907/1920/1579 2905/1918/1577 2906/1919/1578 +f 2908/1921/1580 2909/1922/1581 2910/1923/1582 +f 2909/1922/1581 2908/1921/1580 2911/1924/1583 +f 2912/1925/1584 2909/1922/1581 2911/1924/1583 +f 2913/1926/1585 2911/1924/1583 2908/1921/1580 +f 2912/1925/1584 2911/1924/1583 2914/1927/1586 +f 2914/1927/1586 2911/1924/1583 2915/1928/1587 +f 2911/1924/1583 2913/1926/1585 2915/1928/1587 +f 2914/1927/1586 2915/1928/1587 2916/1929/1588 +f 2915/1928/1587 2917/1930/1589 2916/1929/1588 +f 2915/1928/1587 2913/1926/1585 2918/1931/1590 +f 2917/1930/1589 2915/1928/1587 2918/1931/1590 +f 2918/1931/1590 2913/1926/1585 2919/1932/1591 +f 2917/1930/1589 2918/1931/1590 2920/1933/1592 +f 2919/1932/1591 2920/1933/1592 2918/1931/1590 +f 2920/1933/1592 2919/1932/1591 2921/1934/1593 +f 2917/1930/1589 2920/1933/1592 2922/1935/1594 +f 2921/1934/1593 2923/1936/1595 2920/1933/1592 +f 2923/1936/1595 2922/1935/1594 2920/1933/1592 +f 2922/1935/1594 2923/1936/1595 2924/1937/1596 +f 2925/1938/1597 2924/1937/1596 2923/1936/1595 +f 2924/1937/1596 2925/1938/1597 2926/1939/1598 +f 2926/1939/1598 2925/1938/1597 2927/1940/1599 +f 2925/1938/1597 2928/1941/1599 2927/1940/1599 +f 2927/1940/1599 2928/1941/1599 2929/1942/1600 +f 2927/1940/1599 2929/1942/1600 2930/1943/1600 +f 2930/1943/1600 2929/1942/1600 2931/1944/1601 +f 2930/1943/1600 2931/1944/1601 2932/1945/1601 +f 2932/1945/1601 2931/1944/1601 2933/1946/1602 +f 2932/1945/1601 2933/1946/1602 2934/1947/1602 +f 2934/1947/1602 2933/1946/1602 2935/1948/1603 +f 2934/1947/1602 2935/1948/1603 2936/1949/1603 +f 2936/1949/1603 2935/1948/1603 2937/1950/1604 +f 2936/1949/1603 2937/1950/1604 2938/1951/1604 +f 2938/1951/1604 2937/1950/1604 2939/1952/43 +f 2938/1951/1604 2939/1952/43 2940/1953/43 +f 2941/1954/1605 2940/1953/43 2939/1952/43 +f 2939/1952/43 2942/1955/1606 2941/1954/1605 +f 2943/1956/1607 2941/1954/1605 2942/1955/1606 +f 2941/1954/1605 2943/1956/1607 2944/1957/1608 +f 2942/1955/1606 2945/1958/1609 2943/1956/1607 +f 2944/1957/1608 2943/1956/1607 2946/1959/1610 +f 2943/1956/1607 2945/1958/1609 2947/1960/1611 +f 2947/1960/1611 2946/1959/1610 2943/1956/1607 +f 2945/1958/1609 2948/1961/1612 2947/1960/1611 +f 2947/1960/1611 2948/1961/1612 2949/1962/1613 +f 2950/1963/1614 2946/1959/1610 2947/1960/1611 +f 2947/1960/1611 2949/1962/1613 2950/1963/1614 +f 2946/1959/1610 2950/1963/1614 2951/1964/1615 +f 2951/1964/1615 2950/1963/1614 2952/1965/1602 +f 2950/1963/1614 2949/1962/1613 2953/1966/1616 +f 2953/1966/1616 2952/1965/1602 2950/1963/1614 +f 2949/1962/1613 2954/1967/1617 2953/1966/1616 +f 2952/1965/1602 2953/1966/1616 2955/1968/1618 +f 2954/1967/1617 2956/1969/1619 2953/1966/1616 +f 2956/1969/1619 2955/1968/1618 2953/1966/1616 +f 2956/1969/1619 2954/1967/1617 2957/1970/1620 +f 2958/1971/1621 2955/1968/1618 2956/1969/1619 +f 2956/1969/1619 2957/1970/1620 2958/1971/1621 +f 2959/1972/1622 2958/1971/1621 2957/1970/1620 +f 2955/1968/1618 2958/1971/1621 2960/1973/1623 +f 2958/1971/1621 2959/1972/1622 2961/1974/1624 +f 2962/1975/1625 2960/1973/1623 2958/1971/1621 +f 2958/1971/1621 2961/1974/1624 2962/1975/1625 +f 2960/1973/1623 2962/1975/1625 2963/1976/1626 +f 2964/1977/1627 2962/1975/1625 2961/1974/1624 +f 2965/1978/1628 2963/1976/1626 2962/1975/1625 +f 2962/1975/1625 2964/1977/1627 2965/1978/1628 +f 2963/1976/1626 2965/1978/1628 2966/1979/1629 +f 2964/1977/1627 2967/1980/1630 2965/1978/1628 +f 2968/1981/1631 2966/1979/1629 2965/1978/1628 +f 2965/1978/1628 2967/1980/1630 2968/1981/1631 +f 2966/1979/1629 2968/1981/1631 2969/1982/1632 +f 2969/1982/1632 2968/1981/1631 2970/1983/1633 +f 2967/1980/1630 2971/1984/1634 2968/1981/1631 +f 2968/1981/1631 2971/1984/1634 2970/1983/1633 +f 2971/1984/1634 2967/1980/1630 2972/1985/1635 +f 2970/1983/1633 2971/1984/1634 2973/1986/1636 +f 2972/1985/1635 2974/1987/1637 2971/1984/1634 +f 2971/1984/1634 2974/1987/1637 2973/1986/1636 +f 2974/1987/1637 2972/1985/1635 2975/1988/1638 +f 2973/1986/1636 2974/1987/1637 2976/1989/1639 +f 2974/1987/1637 2975/1988/1638 2977/1990/1640 +f 2974/1987/1637 2977/1990/1640 2976/1989/1639 +f 2978/1991/1641 2977/1990/1640 2975/1988/1638 +f 2979/1992/1642 2977/1990/1640 2978/1991/1641 +f 2977/1990/1640 2979/1992/1642 2980/1993/1643 +f 2980/1993/1643 2976/1989/1639 2977/1990/1640 +f 2976/1989/1639 2980/1993/1643 2981/1994/1644 +f 2982/1995/1645 2983/1996/1646 2984/1997/1647 +f 2983/1996/1646 2982/1995/1645 2985/1998/1648 +f 2985/1998/1648 2986/1999/1649 2983/1996/1646 +f 2982/1995/1645 2987/2000/1650 2985/1998/1648 +f 2986/1999/1649 2985/1998/1648 2988/2001/1651 +f 2988/2001/1651 2989/2002/1652 2986/1999/1649 +f 2990/2003/1653 2985/1998/1648 2987/2000/1650 +f 2990/2003/1653 2988/2001/1651 2985/1998/1648 +f 2991/2004/1654 2990/2003/1653 2987/2000/1650 +f 2992/2005/1655 2989/2002/1652 2988/2001/1651 +f 2990/2003/1653 2991/2004/1654 2993/2006/1656 +f 2994/2007/1657 2988/2001/1651 2990/2003/1653 +f 2993/2006/1656 2994/2007/1657 2990/2003/1653 +f 2994/2007/1657 2992/2005/1655 2988/2001/1651 +f 2991/2004/1654 2995/2008/1658 2993/2006/1656 +f 2995/2008/1658 2991/2004/1654 2996/2009/1659 +f 2994/2007/1657 2993/2006/1656 2997/2010/1660 +f 2995/2008/1658 2997/2010/1660 2993/2006/1656 +f 2998/2011/1661 2992/2005/1655 2994/2007/1657 +f 2997/2010/1660 2998/2011/1661 2994/2007/1657 +f 2992/2005/1655 2999/2012/1662 2989/2002/1652 +f 2999/2012/1662 3000/2013/1663 2989/2002/1652 +f 2992/2005/1655 2998/2011/1661 3001/2014/1664 +f 3001/2014/1664 2999/2012/1662 2992/2005/1655 +f 3002/2015/1665 3000/2013/1663 2999/2012/1662 +f 3000/2013/1663 3002/2015/1665 3003/2016/1666 +f 3003/2016/1666 3004/2017/1667 3005/2018/1668 +f 3004/2017/1667 3003/2016/1666 3002/2015/1665 +f 3006/2019/1669 3004/2017/1667 3002/2015/1665 +f 3007/2020/1670 3002/2015/1665 2999/2012/1662 +f 3002/2015/1665 3007/2020/1670 3006/2019/1669 +f 2999/2012/1662 3001/2014/1664 3007/2020/1670 +f 3007/2020/1670 3008/2021/1671 3006/2019/1669 +f 3001/2014/1664 3009/2022/1672 3007/2020/1670 +f 3008/2021/1671 3007/2020/1670 3009/2022/1672 +f 3009/2022/1672 3001/2014/1664 3010/2023/1673 +f 3010/2023/1673 3001/2014/1664 2998/2011/1661 +f 3011/2024/1674 3008/2021/1671 3009/2022/1672 +f 3010/2023/1673 3011/2024/1674 3009/2022/1672 +f 3008/2021/1671 3011/2024/1674 3012/2025/1675 +f 3013/2026/1676 3010/2023/1673 2998/2011/1661 +f 3013/2026/1676 2998/2011/1661 2997/2010/1660 +f 3011/2024/1674 3010/2023/1673 3014/2027/1677 +f 3014/2027/1677 3010/2023/1673 3013/2026/1676 +f 3015/2028/1678 3012/2025/1675 3011/2024/1674 +f 3016/2029/1679 3012/2025/1675 3015/2028/1678 +f 3017/2030/1680 3011/2024/1674 3014/2027/1677 +f 3017/2030/1680 3015/2028/1678 3011/2024/1674 +f 3018/2031/1681 3014/2027/1677 3013/2026/1676 +f 3019/2032/1682 3016/2029/1679 3015/2028/1678 +f 3016/2029/1679 3019/2032/1682 3020/2033/1683 +f 3021/2034/1684 3014/2027/1677 3018/2031/1681 +f 3014/2027/1677 3021/2034/1684 3017/2030/1680 +f 3013/2026/1676 3022/2035/1685 3018/2031/1681 +f 3022/2035/1685 3021/2034/1684 3018/2031/1681 +f 3022/2035/1685 3013/2026/1676 2997/2010/1660 +f 2997/2010/1660 2995/2008/1658 3022/2035/1685 +f 3021/2034/1684 3022/2035/1685 3023/2036/1686 +f 2995/2008/1658 3023/2036/1686 3022/2035/1685 +f 3024/2037/1687 3017/2030/1680 3021/2034/1684 +f 3023/2036/1686 3024/2037/1687 3021/2034/1684 +f 3025/2038/1688 3015/2028/1678 3017/2030/1680 +f 3017/2030/1680 3024/2037/1687 3025/2038/1688 +f 3025/2038/1688 3019/2032/1682 3015/2028/1678 +f 3023/2036/1686 2995/2008/1658 3026/2039/1689 +f 3026/2039/1689 2995/2008/1658 2996/2009/1659 +f 3027/2040/1690 3026/2039/1689 2996/2009/1659 +f 3026/2039/1689 3028/2041/1691 3023/2036/1686 +f 3024/2037/1687 3023/2036/1686 3028/2041/1691 +f 3027/2040/1690 3029/2042/1692 3026/2039/1689 +f 3028/2041/1691 3026/2039/1689 3029/2042/1692 +f 3029/2042/1692 3027/2040/1690 3030/2043/1693 +f 3028/2041/1691 3031/2044/1694 3024/2037/1687 +f 3031/2044/1694 3025/2038/1688 3024/2037/1687 +f 3029/2042/1692 3032/2045/1695 3028/2041/1691 +f 3031/2044/1694 3028/2041/1691 3032/2045/1695 +f 3030/2043/1693 3033/2046/1696 3029/2042/1692 +f 3032/2045/1695 3029/2042/1692 3033/2046/1696 +f 3033/2046/1696 3030/2043/1693 3034/2047/1697 +f 3034/2047/1697 3035/2048/1698 3033/2046/1696 +f 3035/2048/1698 3032/2045/1695 3033/2046/1696 +f 3035/2048/1698 3034/2047/1697 3036/2049/1699 +f 3035/2048/1698 3036/2049/1699 3037/2050/1700 +f 3032/2045/1695 3035/2048/1698 3038/2051/1701 +f 3031/2044/1694 3032/2045/1695 3038/2051/1701 +f 3037/2050/1700 3039/2052/1702 3035/2048/1698 +f 3039/2052/1702 3038/2051/1701 3035/2048/1698 +f 3037/2050/1700 3040/2053/1703 3039/2052/1702 +f 3038/2051/1701 3039/2052/1702 3041/2054/1704 +f 3040/2053/1703 3042/2055/1705 3039/2052/1702 +f 3042/2055/1705 3041/2054/1704 3039/2052/1702 +f 3040/2053/1703 3043/2056/1706 3042/2055/1705 +f 3043/2056/1706 3040/2053/1703 3044/2057/1707 +f 3041/2054/1704 3042/2055/1705 3045/2058/1708 +f 3043/2056/1706 3045/2058/1708 3042/2055/1705 +f 3046/2059/1709 3038/2051/1701 3041/2054/1704 +f 3031/2044/1694 3038/2051/1701 3046/2059/1709 +f 3047/2060/1710 3041/2054/1704 3045/2058/1708 +f 3046/2059/1709 3041/2054/1704 3047/2060/1710 +f 3045/2058/1708 3043/2056/1706 3048/2061/1711 +f 3049/2062/1712 3031/2044/1694 3046/2059/1709 +f 3050/2063/1713 3045/2058/1708 3048/2061/1711 +f 3047/2060/1710 3045/2058/1708 3050/2063/1713 +f 3051/2064/1714 3046/2059/1709 3047/2060/1710 +f 3046/2059/1709 3051/2064/1714 3049/2062/1712 +f 3052/2065/1715 3047/2060/1710 3050/2063/1713 +f 3047/2060/1710 3052/2065/1715 3051/2064/1714 +f 3050/2063/1713 3048/2061/1711 3053/2066/1716 +f 3050/2063/1713 3054/2067/1717 3052/2065/1715 +f 3054/2067/1717 3050/2063/1713 3053/2066/1716 +f 3055/2068/1718 3051/2064/1714 3052/2065/1715 +f 3056/2069/1719 3052/2065/1715 3054/2067/1717 +f 3052/2065/1715 3056/2069/1719 3055/2068/1718 +f 3051/2064/1714 3055/2068/1718 3057/2070/1720 +f 3057/2070/1720 3049/2062/1712 3051/2064/1714 +f 3056/2069/1719 3058/2071/1721 3055/2068/1718 +f 3058/2071/1721 3057/2070/1720 3055/2068/1718 +f 3058/2071/1721 3056/2069/1719 3059/2072/1722 +f 3057/2070/1720 3058/2071/1721 3060/2073/1723 +f 3061/2074/1724 3059/2072/1722 3056/2069/1719 +f 3059/2072/1722 3061/2074/1724 3062/2075/1725 +f 3061/2074/1724 3063/2076/1726 3062/2075/1725 +f 3060/2073/1723 3064/2077/1727 3057/2070/1720 +f 3049/2062/1712 3057/2070/1720 3064/2077/1727 +f 3064/2077/1727 3060/2073/1723 3065/2078/1728 +f 3064/2077/1727 3065/2078/1728 3066/2079/1729 +f 3064/2077/1727 3067/2080/1730 3049/2062/1712 +f 3031/2044/1694 3049/2062/1712 3067/2080/1730 +f 3025/2038/1688 3031/2044/1694 3067/2080/1730 +f 3067/2080/1730 3019/2032/1682 3025/2038/1688 +f 3066/2079/1729 3068/2081/1731 3064/2077/1727 +f 3067/2080/1730 3064/2077/1727 3068/2081/1731 +f 3067/2080/1730 3068/2081/1731 3019/2032/1682 +f 3020/2033/1683 3068/2081/1731 3066/2079/1729 +f 3068/2081/1731 3020/2033/1683 3019/2032/1682 +f 3063/2076/1726 3061/2074/1724 3069/2082/1732 +f 3070/2083/1733 3063/2076/1726 3069/2082/1732 +f 3071/2084/1734 3069/2082/1732 3061/2074/1724 +f 3069/2082/1732 3072/2085/1735 3070/2083/1733 +f 3071/2084/1734 3072/2085/1735 3069/2082/1732 +f 3073/2086/1736 3070/2083/1733 3072/2085/1735 +f 3070/2083/1733 3073/2086/1736 3074/2087/1737 +f 3072/2085/1735 3071/2084/1734 3075/2088/1738 +f 3076/2089/1739 3074/2087/1737 3073/2086/1736 +f 3074/2087/1737 3076/2089/1739 3077/2090/1740 +f 3076/2089/1739 3044/2057/1707 3077/2090/1740 +f 3044/2057/1707 3076/2089/1739 3043/2056/1706 +f 3072/2085/1735 3078/2091/1741 3073/2086/1736 +f 3078/2091/1741 3076/2089/1739 3073/2086/1736 +f 3078/2091/1741 3072/2085/1735 3075/2088/1738 +f 3043/2056/1706 3076/2089/1739 3079/2092/1742 +f 3076/2089/1739 3078/2091/1741 3079/2092/1742 +f 3043/2056/1706 3079/2092/1742 3048/2061/1711 +f 3053/2066/1716 3048/2061/1711 3079/2092/1742 +f 3080/2093/1743 3078/2091/1741 3075/2088/1738 +f 3078/2091/1741 3080/2093/1743 3079/2092/1742 +f 3053/2066/1716 3079/2092/1742 3080/2093/1743 +f 3071/2084/1734 3080/2093/1743 3075/2088/1738 +f 3081/2094/1744 3053/2066/1716 3080/2093/1743 +f 3080/2093/1743 3071/2084/1734 3081/2094/1744 +f 3061/2074/1724 3081/2094/1744 3071/2084/1734 +f 3053/2066/1716 3081/2094/1744 3054/2067/1717 +f 3056/2069/1719 3081/2094/1744 3061/2074/1724 +f 3081/2094/1744 3056/2069/1719 3054/2067/1717 +f 3082/1922/1745 3083/1921/1746 3084/1923/1747 +f 3083/1921/1746 3082/1922/1745 3085/1924/1748 +f 3086/1925/1584 3085/1924/1748 3082/1922/1745 +f 3085/1924/1748 3087/1926/1749 3083/1921/1746 +f 3085/1924/1748 3086/1925/1584 3088/1927/1586 +f 3088/1927/1586 3089/1928/1750 3085/1924/1748 +f 3087/1926/1749 3085/1924/1748 3089/1928/1750 +f 3089/1928/1750 3088/1927/1586 3090/1929/1588 +f 3089/1928/1750 3090/1929/1588 3091/1930/1589 +f 3092/1931/1751 3087/1926/1749 3089/1928/1750 +f 3089/1928/1750 3091/1930/1589 3092/1931/1751 +f 3092/1931/1751 3093/1932/1752 3087/1926/1749 +f 3091/1930/1589 3094/1933/1753 3092/1931/1751 +f 3092/1931/1751 3094/1933/1753 3093/1932/1752 +f 3094/1933/1753 3095/1934/1754 3093/1932/1752 +f 3094/1933/1753 3091/1930/1589 3096/1935/1755 +f 3095/1934/1754 3094/1933/1753 3097/1936/1756 +f 3096/1935/1755 3097/1936/1756 3094/1933/1753 +f 3097/1936/1756 3096/1935/1755 3098/1937/1596 +f 3098/1937/1596 3099/1938/1597 3097/1936/1756 +f 3099/1938/1597 3098/1937/1596 3100/1939/1598 +f 3100/1939/1598 3101/1940/1599 3099/1938/1597 +f 3099/1938/1597 3101/1940/1599 3102/1941/1599 +f 3102/1941/1599 3101/1940/1599 3103/1942/1600 +f 3104/1943/1600 3103/1942/1600 3101/1940/1599 +f 3104/1943/1600 3105/1944/1601 3103/1942/1600 +f 3105/1944/1601 3104/1943/1600 3106/1945/1601 +f 3105/1944/1601 3106/1945/1601 3107/1946/1602 +f 3108/1947/1602 3107/1946/1602 3106/1945/1601 +f 3107/1946/1602 3108/1947/1602 3109/1949/1603 +f 3107/1946/1602 3109/1949/1603 3110/1948/1603 +f 3110/1948/1603 3109/1949/1603 3111/1950/1757 +f 3112/1951/1758 3111/1950/1757 3109/1949/1603 +f 3111/1950/1757 3112/1951/1758 3113/1953/44 +f 3111/1950/1757 3113/1953/44 3114/1952/44 +f 3113/1953/44 3115/1954/1759 3114/1952/44 +f 3114/1952/44 3115/1954/1759 3116/1955/1760 +f 3115/1954/1759 3117/1956/1761 3116/1955/1760 +f 3117/1956/1761 3115/1954/1759 3118/1957/1608 +f 3116/1955/1760 3117/1956/1761 3119/1958/1762 +f 3117/1956/1761 3118/1957/1608 3120/1959/1610 +f 3117/1956/1761 3121/1960/1763 3119/1958/1762 +f 3117/1956/1761 3120/1959/1610 3121/1960/1763 +f 3119/1958/1762 3121/1960/1763 3122/1961/1764 +f 3122/1961/1764 3121/1960/1763 3123/1962/1765 +f 3120/1959/1610 3124/1963/1766 3121/1960/1763 +f 3124/1963/1766 3123/1962/1765 3121/1960/1763 +f 3124/1963/1766 3120/1959/1610 3125/1964/1767 +f 3126/1965/1602 3124/1963/1766 3125/1964/1767 +f 3127/1966/1768 3123/1962/1765 3124/1963/1766 +f 3124/1963/1766 3126/1965/1602 3127/1966/1768 +f 3123/1962/1765 3127/1966/1768 3128/1967/1769 +f 3127/1966/1768 3126/1965/1602 3129/1968/1770 +f 3130/1969/1771 3128/1967/1769 3127/1966/1768 +f 3127/1966/1768 3129/1968/1770 3130/1969/1771 +f 3128/1967/1769 3130/1969/1771 3131/1970/1772 +f 3129/1968/1770 3132/1971/1773 3130/1969/1771 +f 3131/1970/1772 3130/1969/1771 3132/1971/1773 +f 3131/1970/1772 3132/1971/1773 3133/1972/1774 +f 3132/1971/1773 3129/1968/1770 3134/1973/1775 +f 3133/1972/1774 3132/1971/1773 3135/1974/1776 +f 3134/1973/1775 3136/1975/1777 3132/1971/1773 +f 3136/1975/1777 3135/1974/1776 3132/1971/1773 +f 3136/1975/1777 3134/1973/1775 3137/1976/1778 +f 3136/1975/1777 3138/1977/1779 3135/1974/1776 +f 3137/1976/1778 3139/1978/1780 3136/1975/1777 +f 3138/1977/1779 3136/1975/1777 3139/1978/1780 +f 3139/1978/1780 3137/1976/1778 3140/1979/1781 +f 3141/1980/1782 3138/1977/1779 3139/1978/1780 +f 3140/1979/1781 3142/1981/1783 3139/1978/1780 +f 3139/1978/1780 3142/1981/1783 3141/1980/1782 +f 3142/1981/1783 3140/1979/1781 3143/1982/1784 +f 3144/1983/1785 3142/1981/1783 3143/1982/1784 +f 3145/1984/1786 3141/1980/1782 3142/1981/1783 +f 3142/1981/1783 3144/1983/1785 3145/1984/1786 +f 3141/1980/1782 3145/1984/1786 3146/1985/1787 +f 3144/1983/1785 3147/1986/1788 3145/1984/1786 +f 3148/1987/1789 3146/1985/1787 3145/1984/1786 +f 3145/1984/1786 3147/1986/1788 3148/1987/1789 +f 3146/1985/1787 3148/1987/1789 3149/1988/1790 +f 3147/1986/1788 3150/1989/1791 3148/1987/1789 +f 3149/1988/1790 3148/1987/1789 3151/1990/1792 +f 3148/1987/1789 3150/1989/1791 3151/1990/1792 +f 3149/1988/1790 3151/1990/1792 3152/1991/1793 +f 3151/1990/1792 3153/1992/1794 3152/1991/1793 +f 3153/1992/1794 3151/1990/1792 3154/1993/1795 +f 3150/1989/1791 3154/1993/1795 3151/1990/1792 +f 3154/1993/1795 3150/1989/1791 3155/1994/1796 +f 3156/2095/1102 3157/2096/1797 3158/2097/1798 +f 3156/2095/1102 3158/2097/1798 3159/2098/343 +f 3160/2099/1799 3156/2095/1102 3159/2098/343 +f 3160/2099/1799 3159/2098/343 3161/2100/343 +f 3162/2101/1800 3156/2095/1102 3160/2099/1799 +f 3163/2102/1801 3160/2099/1799 3161/2100/343 +f 3162/2101/1800 3164/2103/1802 3156/2095/1102 +f 3165/2104/1803 3164/2103/1802 3162/2101/1800 +f 3164/2103/1802 3165/2104/1803 3166/2105/1803 +f 3166/2105/1803 3165/2104/1803 3167/2106/12 +f 3168/2107/12 3166/2105/1803 3167/2106/12 +f 3168/2107/12 3167/2106/12 3169/2108/1804 +f 3169/2108/1804 3167/2106/12 3170/2109/1805 +f 3169/2108/1804 3170/2109/1805 3171/2110/1806 +f 3171/2110/1806 3170/2109/1805 3172/2111/1807 +f 3172/2111/1807 3173/2112/1808 3171/2110/1806 +f 3174/2113/1809 3173/2112/1808 3172/2111/1807 +f 3173/2112/1808 3175/2114/1810 3176/2115/1811 +f 3175/2114/1810 3173/2112/1808 3177/2116/167 +f 3174/2113/1809 3177/2116/167 3173/2112/1808 +f 3177/2116/167 3174/2113/1809 3178/2117/169 +f 3179/2118/639 3178/2117/169 3174/2113/1809 +f 3180/2119/1812 3178/2117/169 3179/2118/639 +f 3180/2119/1812 3179/2118/639 3181/2120/1813 +f 3182/2121/1814 3181/2120/1813 3179/2118/639 +f 3181/2120/1813 3182/2121/1814 3183/2122/1815 +f 3182/2121/1814 3184/2123/1805 3183/2122/1815 +f 3185/2124/234 3180/2119/1812 3181/2120/1813 +f 3186/2125/1804 3184/2123/1805 3182/2121/1814 +f 3185/2124/234 3187/2126/1816 3180/2119/1812 +f 3186/2125/1804 3188/2127/12 3184/2123/1805 +f 3189/2128/12 3188/2127/12 3186/2125/1804 +f 3189/2128/12 3190/2129/1803 3188/2127/12 +f 3190/2129/1803 3191/2130/1803 3188/2127/12 +f 3192/2131/1800 3191/2130/1803 3190/2129/1803 +f 3191/2130/1803 3192/2131/1800 3193/2132/1817 +f 3192/2131/1800 3194/2133/1818 3193/2132/1817 +f 3194/2133/1818 3192/2131/1800 3163/2102/1801 +f 3195/2134/347 3194/2133/1818 3163/2102/1801 +f 3161/2100/343 3195/2134/347 3163/2102/1801 +f 3196/2135/1819 3194/2133/1818 3195/2134/347 +f 3196/2135/1819 3195/2134/347 3197/2136/1820 +f 3197/2136/1820 3198/2137/1818 3196/2135/1819 +f 3199/2138/1821 3198/2137/1818 3197/2136/1820 +f 3200/2139/1800 3196/2135/1819 3198/2137/1818 +f 3197/2136/1820 3201/2140/346 3199/2138/1821 +f 3196/2135/1819 3200/2139/1800 3202/2141/1802 +f 3202/2141/1802 3200/2139/1800 3203/2142/1822 +f 3203/2142/1822 3200/2139/1800 3204/2143/1822 +f 3203/2142/1822 3204/2143/1822 3205/2144/12 +f 3206/2145/12 3203/2142/1822 3205/2144/12 +f 3206/2145/12 3205/2144/12 3207/2146/1805 +f 3207/2146/1805 3205/2144/12 3208/2147/1805 +f 3209/2148/1807 3207/2146/1805 3208/2147/1805 +f 3207/2146/1805 3209/2148/1807 3210/2149/1806 +f 3209/2148/1807 3185/2124/234 3210/2149/1806 +f 3185/2124/234 3209/2148/1807 3211/2150/1813 +f 3187/2126/1816 3185/2124/234 3211/2150/1813 +f 3211/2150/1813 3212/2151/1823 3187/2126/1816 +f 3213/2152/1824 3187/2126/1816 3212/2151/1823 +f 3214/2153/1825 3213/2152/1824 3212/2151/1823 +f 3215/2154/1826 3214/2153/1825 3212/2151/1823 +f 3216/2155/233 3213/2152/1824 3214/2153/1825 +f 3215/2154/1826 3217/2156/1815 3214/2153/1825 +f 3218/2157/1827 3213/2152/1824 3216/2155/233 +f 3217/2156/1815 3215/2154/1826 3219/2158/1805 +f 3219/2158/1805 3220/2159/1805 3217/2156/1815 +f 3219/2158/1805 3221/2160/12 3220/2159/1805 +f 3222/2161/12 3221/2160/12 3219/2158/1805 +f 3222/2161/12 3223/2162/1822 3221/2160/12 +f 3223/2162/1822 3224/2163/1822 3221/2160/12 +f 3223/2162/1822 3225/2164/1828 3224/2163/1822 +f 3226/2165/1800 3225/2164/1828 3223/2162/1822 +f 3226/2165/1800 3227/2166/1829 3225/2164/1828 +f 3199/2138/1821 3227/2166/1829 3226/2165/1800 +f 3227/2166/1829 3199/2138/1821 3201/2140/346 +f 3201/2140/346 3228/2167/345 3227/2166/1829 +f 3201/2140/346 3229/2168/1830 3228/2167/345 +f 3229/2168/1830 3230/2169/1831 3228/2167/345 +f 3230/2169/1831 3231/2170/589 3232/2171/589 +f 3230/2169/1831 3229/2168/1830 3233/2172/1832 +f 3231/2170/589 3230/2169/1831 3233/2172/1832 +f 3234/2173/1831 3233/2172/1832 3229/2168/1830 +f 3234/2173/1831 3229/2168/1830 3235/2174/1820 +f 3236/2175/589 3231/2170/589 3233/2172/1832 +f 3236/2175/589 3233/2172/1832 3234/2173/1831 +f 3231/2170/589 3236/2175/589 3237/2176/1833 +f 3237/2176/1833 3236/2175/589 3238/2177/1833 +f 3236/2175/589 3234/2173/1831 3239/2178/589 +f 3235/2174/1820 3240/2179/1834 3234/2173/1831 +f 3234/2173/1831 3240/2179/1834 3239/2178/589 +f 3240/2179/1834 3235/2174/1820 3241/2180/346 +f 3239/2178/589 3240/2179/1834 3242/2181/589 +f 3243/2182/1835 3218/2157/1827 3216/2155/233 +f 3244/2183/599 3243/2182/1835 3245/2184/599 +f 3218/2157/1827 3243/2182/1835 3246/2185/1325 +f 3243/2182/1835 3244/2183/599 3246/2185/1325 +f 3246/2185/1325 3247/2186/1836 3218/2157/1827 +f 3248/2187/178 3218/2157/1827 3247/2186/1836 +f 3244/2183/599 3249/2188/599 3246/2185/1325 +f 3247/2186/1836 3246/2185/1325 3249/2188/599 +f 3249/2188/599 3244/2183/599 3250/2189/1837 +f 3250/2189/1837 3251/2190/1838 3249/2188/599 +f 3249/2188/599 3252/2191/599 3247/2186/1836 +f 3253/2192/1839 3248/2187/178 3247/2186/1836 +f 3252/2191/599 3253/2192/1839 3247/2186/1836 +f 3248/2187/178 3253/2192/1839 3254/2193/180 +f 3252/2191/599 3255/2194/599 3253/2192/1839 +f 3256/2195/8 3257/2196/8 3258/2197/8 +f 3257/2196/8 3259/2198/8 3258/2197/8 +f 3258/2197/8 3259/2198/8 3260/2199/8 +f 3261/2200/8 3258/2197/8 3260/2199/8 +f 3261/2200/8 3262/2201/8 3258/2197/8 +f 3263/2202/12 3264/2203/12 3265/2204/12 +f 3266/2205/12 3263/2202/12 3265/2204/12 +f 3267/2206/12 3263/2202/12 3266/2205/12 +f 3268/2207/12 3263/2202/12 3267/2206/12 +f 3268/2207/12 3269/2208/12 3263/2202/12 +f 3270/2201/8 3271/2200/8 3272/2197/8 +f 3273/2199/8 3272/2197/8 3271/2200/8 +f 3272/2197/8 3273/2199/8 3274/2198/8 +f 3275/2196/8 3272/2197/8 3274/2198/8 +f 3272/2197/8 3275/2196/8 3276/2195/8 +f 3277/2209/9 3278/2210/9 3279/2211/9 +f 3278/2210/9 3277/2209/9 3280/2212/9 +f 3281/2213/125 3280/2212/9 3277/2209/9 +f 3281/2213/125 3282/2214/125 3280/2212/9 +f 3283/2215/125 3281/2213/125 3277/2209/9 +f 3282/2214/125 3284/2216/125 3280/2212/9 +f 3285/2217/125 3283/2215/125 3277/2209/9 +f 3284/2216/125 3282/2214/125 3286/2218/9 +f 3283/2215/125 3285/2217/125 3287/2219/125 +f 3286/2218/9 3288/2220/9 3284/2216/125 +f 3289/2221/125 3287/2219/125 3285/2217/125 +f 3286/2218/9 3290/2222/125 3288/2220/9 +f 3287/2219/125 3289/2221/125 3291/2223/125 +f 3290/2222/125 3286/2218/9 3292/2224/125 +f 3291/2223/125 3289/2221/125 3293/2225/125 +f 3292/2224/125 3294/2226/125 3290/2222/125 +f 3291/2223/125 3293/2225/125 3295/2227/9 +f 3296/2228/125 3294/2226/125 3292/2224/125 +f 3295/2227/9 3293/2225/125 3297/2229/9 +f 3294/2226/125 3296/2228/125 3298/2230/9 +f 3299/2231/125 3295/2227/9 3297/2229/9 +f 3295/2227/9 3299/2231/125 3300/2232/125 +f 3300/2232/125 3299/2231/125 3301/2233/125 +f 3302/2234/125 3300/2232/125 3301/2233/125 +f 3302/2234/125 3301/2233/125 3303/2235/125 +f 3303/2235/125 3304/2236/9 3302/2234/125 +f 3304/2236/9 3303/2235/125 3305/2237/9 +f 3306/2238/125 3304/2236/9 3305/2237/9 +f 3304/2236/9 3306/2238/125 3307/2239/125 +f 3307/2239/125 3306/2238/125 3308/2240/9 +f 3309/2241/125 3307/2239/125 3308/2240/9 +f 3310/2242/125 3298/2230/9 3296/2228/125 +f 3311/2243/9 3309/2241/125 3308/2240/9 +f 3309/2241/125 3311/2243/9 3312/2244/9 +f 3313/2245/125 3308/2240/9 3314/2246/9 +f 3308/2240/9 3313/2245/125 3311/2243/9 +f 3315/2247/125 3312/2244/9 3311/2243/9 +f 3311/2243/9 3313/2245/125 3316/2248/125 +f 3311/2243/9 3317/2249/9 3315/2247/125 +f 3316/2248/125 3317/2249/9 3311/2243/9 +f 3317/2249/9 3316/2248/125 3318/2250/9 +f 3317/2249/9 3319/2251/125 3315/2247/125 +f 3317/2249/9 3320/2252/125 3319/2251/125 +f 3319/2251/125 3320/2252/125 3321/2253/9 +f 3320/2252/125 3322/2254/9 3321/2253/9 +f 3322/2254/9 3323/2255/125 3321/2253/9 +f 3323/2255/125 3324/2256/125 3321/2253/9 +f 3324/2256/125 3323/2255/125 3325/2257/125 +f 3326/2258/9 3324/2256/125 3325/2257/125 +f 3326/2258/9 3325/2257/125 3327/2259/9 +f 3326/2258/9 3327/2259/9 3328/2260/125 +f 3326/2258/9 3328/2260/125 3329/2261/9 +f 3328/2260/125 3330/2262/9 3329/2261/9 +f 3331/2263/9 3329/2261/9 3330/2262/9 +f 3329/2261/9 3331/2263/9 3332/2264/9 +f 3333/2265/125 3332/2264/9 3331/2263/9 +f 3334/2266/125 3331/2263/9 3335/2267/9 +f 3333/2265/125 3331/2263/9 3336/2268/9 +f 3331/2263/9 3334/2266/125 3336/2268/9 +f 3310/2242/125 3333/2265/125 3336/2268/9 +f 3336/2268/9 3334/2266/125 3337/2269/9 +f 3298/2230/9 3310/2242/125 3336/2268/9 +f 3336/2268/9 3337/2269/9 3338/2270/9 +f 3336/2268/9 3338/2270/9 3339/2271/125 +f 3336/2268/9 3339/2271/125 3298/2230/9 +f 3298/2230/9 3339/2271/125 3340/2272/9 +f 3341/2207/12 3342/2202/12 3343/2208/12 +f 3341/2207/12 3344/2206/12 3342/2202/12 +f 3344/2206/12 3345/2205/12 3342/2202/12 +f 3346/2204/12 3342/2202/12 3345/2205/12 +f 3342/2202/12 3346/2204/12 3347/2203/12 +f 3348/2273/9 3349/2274/9 3350/2275/9 +f 3351/2276/9 3348/2273/9 3350/2275/9 +f 3348/2273/9 3351/2276/9 3352/2277/9 +f 3353/2278/125 3348/2273/9 3352/2277/9 +f 3348/2273/9 3353/2278/125 3354/2279/9 +f 3354/2279/9 3355/2280/9 3348/2273/9 +f 3356/2281/9 3357/2282/9 3358/2283/9 +f 3356/2281/9 3359/2284/125 3357/2282/9 +f 3359/2284/125 3360/2285/125 3357/2282/9 +f 3360/2285/125 3361/2286/9 3357/2282/9 +f 3362/2287/9 3357/2282/9 3361/2286/9 +f 3357/2282/9 3362/2287/9 3363/2288/125 +f 3364/2289/9 3363/2288/125 3362/2287/9 +f 3364/2289/9 3365/2290/9 3363/2288/125 +f 3365/2290/9 3364/2289/9 3366/2291/9 +f 3367/2292/125 3365/2290/9 3366/2291/9 +f 3368/2293/125 3365/2290/9 3367/2292/125 +f 3369/2294/9 3365/2290/9 3368/2293/125 +f 3369/2294/9 3370/2295/9 3365/2290/9 +f 3371/2296/8 3372/2297/8 3373/2298/8 +f 3374/2299/8 3371/2296/8 3373/2298/8 +f 3375/2300/8 3374/2299/8 3373/2298/8 +f 3376/2301/8 3375/2300/8 3373/2298/8 +f 3377/2302/8 3376/2301/8 3373/2298/8 +f 3373/2298/8 3378/2303/8 3377/2302/8 +f 3378/2303/8 3379/2304/8 3377/2302/8 +f 3378/2303/8 3380/2305/8 3379/2304/8 +f 3379/2304/8 3380/2305/8 3381/2306/8 +f 3381/2306/8 3380/2305/8 3382/2307/8 +f 3382/2307/8 3380/2305/8 3383/2308/8 +f 3383/2308/8 3380/2305/8 3384/2309/8 +f 3384/2309/8 3380/2305/8 3385/2310/8 +f 3386/2311/12 3387/2312/12 3388/2313/1840 +f 3386/2311/12 3389/2314/1841 3390/2315/12 +f 3386/2311/12 3388/2313/1840 3391/2316/1842 +f 3389/2314/1841 3386/2311/12 3391/2316/1842 +f 3392/2317/1843 3391/2316/1842 3388/2313/1840 +f 3391/2316/1842 3393/2318/1843 3389/2314/1841 +f 3391/2316/1842 3392/2317/1843 3394/2319/1844 +f 3393/2318/1843 3391/2316/1842 3394/2319/1844 +f 3394/2319/1844 3392/2317/1843 3395/2320/12 +f 3394/2319/1844 3396/2321/12 3393/2318/1843 +f 3394/2319/1844 3395/2320/12 3397/2322/12 +f 3396/2321/12 3394/2319/1844 3397/2322/12 +f 3398/2323/125 3399/2324/9 3400/2325/9 +f 3400/2325/9 3401/2326/9 3398/2323/125 +f 3401/2326/9 3402/2327/125 3398/2323/125 +f 3401/2326/9 3400/2325/9 3403/2328/125 +f 3404/2329/9 3402/2327/125 3401/2326/9 +f 3405/2330/9 3403/2328/125 3400/2325/9 +f 3402/2327/125 3404/2329/9 3406/2331/9 +f 3403/2328/125 3405/2330/9 3407/2332/9 +f 3406/2331/9 3404/2329/9 3408/2333/9 +f 3409/2334/125 3407/2332/9 3405/2330/9 +f 3410/2335/125 3408/2333/9 3404/2329/9 +f 3405/2330/9 3411/2336/125 3409/2334/125 +f 3411/2336/125 3412/2337/9 3409/2334/125 +f 3412/2337/9 3411/2336/125 3413/2338/9 +f 3414/2339/125 3412/2337/9 3413/2338/9 +f 3412/2337/9 3414/2339/125 3415/2340/125 +f 3416/2341/9 3415/2340/125 3414/2339/125 +f 3415/2340/125 3416/2341/9 3417/2342/9 +f 3416/2341/9 3418/2343/9 3417/2342/9 +f 3419/2344/125 3416/2341/9 3420/2345/9 +f 3416/2341/9 3419/2344/125 3418/2343/9 +f 3418/2343/9 3419/2344/125 3421/2346/125 +f 3421/2346/125 3422/2347/125 3418/2343/9 +f 3423/2348/125 3422/2347/125 3421/2346/125 +f 3422/2347/125 3423/2348/125 3424/2349/125 +f 3425/2350/125 3424/2349/125 3423/2348/125 +f 3424/2349/125 3425/2350/125 3426/2351/125 +f 3427/2352/125 3426/2351/125 3425/2350/125 +f 3426/2351/125 3427/2352/125 3428/2353/125 +f 3429/2354/125 3428/2353/125 3427/2352/125 +f 3430/2355/125 3428/2353/125 3429/2354/125 +f 3431/2356/125 3430/2355/125 3429/2354/125 +f 3432/2357/9 3430/2355/125 3431/2356/125 +f 3433/2358/9 3432/2357/9 3431/2356/125 +f 3432/2357/9 3433/2358/9 3434/2359/125 +f 3435/2360/125 3432/2357/9 3434/2359/125 +f 3434/2359/125 3436/2361/125 3435/2360/125 +f 3437/2362/125 3435/2360/125 3436/2361/125 +f 3438/2363/125 3437/2362/125 3436/2361/125 +f 3437/2362/125 3438/2363/125 3439/2364/125 +f 3440/2365/9 3439/2364/125 3438/2363/125 +f 3439/2364/125 3440/2365/9 3441/2366/9 +f 3442/2367/125 3441/2366/9 3440/2365/9 +f 3442/2367/125 3440/2365/9 3443/2368/9 +f 3440/2365/9 3444/2369/9 3443/2368/9 +f 3442/2367/125 3443/2368/9 3445/2370/125 +f 3445/2370/125 3443/2368/9 3446/2371/125 +f 3446/2371/125 3447/2372/125 3445/2370/125 +f 3447/2372/125 3446/2371/125 3448/2373/125 +f 3448/2373/125 3449/2374/125 3447/2372/125 +f 3449/2374/125 3448/2373/125 3450/2375/125 +f 3450/2375/125 3451/2376/9 3449/2374/125 +f 3451/2376/9 3450/2375/125 3452/2377/9 +f 3453/2378/125 3451/2376/9 3452/2377/9 +f 3451/2376/9 3453/2378/125 3454/2379/125 +f 3455/2380/125 3454/2379/125 3453/2378/125 +f 3454/2379/125 3455/2380/125 3456/2381/125 +f 3457/2382/125 3456/2381/125 3455/2380/125 +f 3456/2381/125 3457/2382/125 3458/2383/125 +f 3458/2383/125 3457/2382/125 3459/2384/1845 +f 3458/2383/125 3459/2384/1845 3460/2385/125 +f 3459/2384/1845 3461/2386/9 3460/2385/125 +f 3461/2386/9 3459/2384/1845 3462/2387/9 +f 3463/2388/9 3460/2385/125 3461/2386/9 +f 3464/2389/9 3463/2388/9 3461/2386/9 +f 3465/2390/125 3464/2389/9 3461/2386/9 +f 3465/2390/125 3461/2386/9 3466/2391/9 +f 3410/2335/125 3465/2390/125 3466/2391/9 +f 3466/2391/9 3408/2333/9 3410/2335/125 +f 3408/2333/9 3466/2391/9 3467/2392/9 +f 3468/2393/1846 3469/2394/1847 3470/2395/1848 +f 3470/2395/1848 3471/2396/1849 3468/2393/1846 +f 3470/2395/1848 3472/2397/1850 3471/2396/1849 +f 3473/2398/1851 3471/2396/1849 3472/2397/1850 +f 3474/2399/1852 3468/2393/1846 3471/2396/1849 +f 3471/2396/1849 3473/2398/1851 3474/2399/1852 +f 3468/2393/1846 3474/2399/1852 3475/2400/1853 +f 3476/2401/1854 3474/2399/1852 3473/2398/1851 +f 3477/2402/1855 3475/2400/1853 3474/2399/1852 +f 3474/2399/1852 3476/2401/1854 3477/2402/1855 +f 3475/2400/1853 3477/2402/1855 3478/2403/1856 +f 3479/2404/1857 3477/2402/1855 3476/2401/1854 +f 3480/2405/1858 3481/2406/1859 3482/2407/1353 +f 3481/2406/1859 3480/2405/1858 3483/2408/1860 +f 3484/2409/1861 3483/2408/1860 3480/2405/1858 +f 3481/2406/1859 3485/2410/1862 3486/2411/1863 +f 3481/2406/1859 3483/2408/1860 3485/2410/1862 +f 3483/2408/1860 3484/2409/1861 3487/2412/1864 +f 3487/2412/1864 3485/2410/1862 3483/2408/1860 +f 3488/2413/1865 3487/2412/1864 3484/2409/1861 +f 3485/2410/1862 3487/2412/1864 3489/2414/1866 +f 3487/2412/1864 3488/2413/1865 3490/2415/1867 +f 3490/2415/1867 3489/2414/1866 3487/2412/1864 +f 3489/2414/1866 3490/2415/1867 3491/2416/1868 +f 3492/2417/1869 3490/2415/1867 3488/2413/1865 +f 3493/2418/1870 3491/2416/1868 3490/2415/1867 +f 3490/2415/1867 3492/2417/1869 3494/2419/1871 +f 3490/2415/1867 3494/2419/1871 3493/2418/1870 +f 3492/2417/1869 3495/2420/1872 3494/2419/1871 +f 3495/2420/1872 3493/2418/1870 3494/2419/1871 +f 3496/2421/1873 3495/2420/1872 3492/2417/1869 +f 3493/2418/1870 3495/2420/1872 3497/2422/1874 +f 3498/2423/1875 3499/2424/1876 3500/2425/1877 +f 3499/2424/1876 3498/2423/1875 3501/2426/1878 +f 3498/2423/1875 3502/2427/1879 3501/2426/1878 +f 3503/2428/1880 3499/2424/1876 3501/2426/1878 +f 3499/2424/1876 3503/2428/1880 3504/2429/1881 +f 3503/2428/1880 3505/2430/1882 3504/2429/1881 +f 3506/2431/1883 3501/2426/1878 3502/2427/1879 +f 3505/2430/1882 3503/2428/1880 3507/2432/1884 +f 3508/2433/1885 3506/2431/1883 3502/2427/1879 +f 3508/2433/1885 3502/2427/1879 3509/2434/1886 +f 3507/2432/1884 3510/2435/1887 3505/2430/1882 +f 3508/2433/1885 3511/2436/1888 3506/2431/1883 +f 3511/2436/1888 3501/2426/1878 3506/2431/1883 +f 3501/2426/1878 3511/2436/1888 3503/2428/1880 +f 3503/2428/1880 3511/2436/1888 3507/2432/1884 +f 3511/2436/1888 3508/2433/1885 3512/2437/1889 +f 3513/2438/1890 3511/2436/1888 3512/2437/1889 +f 3513/2438/1890 3514/2439/1891 3511/2436/1888 +f 3514/2439/1891 3507/2432/1884 3511/2436/1888 +f 3515/2440/1892 3514/2439/1891 3513/2438/1890 +f 3507/2432/1884 3514/2439/1891 3516/2441/1893 +f 3510/2435/1887 3507/2432/1884 3516/2441/1893 +f 3515/2440/1892 3517/2442/1894 3514/2439/1891 +f 3517/2442/1894 3516/2441/1893 3514/2439/1891 +f 3518/2443/1895 3510/2435/1887 3516/2441/1893 +f 3517/2442/1894 3518/2443/1895 3516/2441/1893 +f 3510/2435/1887 3518/2443/1895 3519/2444/1896 +f 3519/2444/1896 3518/2443/1895 3520/2445/1897 +f 3515/2440/1892 3521/2446/1898 3517/2442/1894 +f 3518/2443/1895 3517/2442/1894 3521/2446/1898 +f 3521/2446/1898 3515/2440/1892 3522/2447/1899 +f 3523/2448/1900 3521/2446/1898 3522/2447/1899 +f 3518/2443/1895 3524/2449/1901 3520/2445/1897 +f 3521/2446/1898 3524/2449/1901 3518/2443/1895 +f 3521/2446/1898 3523/2448/1900 3525/2450/1902 +f 3524/2449/1901 3521/2446/1898 3525/2450/1902 +f 3523/2448/1900 3526/2451/1903 3525/2450/1902 +f 3526/2451/1903 3524/2449/1901 3525/2450/1902 +f 3526/2451/1903 3523/2448/1900 3527/2452/1904 +f 3528/2453/1905 3520/2445/1897 3524/2449/1901 +f 3528/2453/1905 3524/2449/1901 3526/2451/1903 +f 3520/2445/1897 3528/2453/1905 3529/2454/1906 +f 3527/2452/1904 3530/2455/1907 3526/2451/1903 +f 3530/2455/1907 3527/2452/1904 3531/2456/1908 +f 3531/2456/1908 3532/2457/1909 3530/2455/1907 +f 3528/2453/1905 3526/2451/1903 3533/2458/1910 +f 3533/2458/1910 3529/2454/1906 3528/2453/1905 +f 3530/2455/1907 3533/2458/1910 3526/2451/1903 +f 3529/2454/1906 3533/2458/1910 3534/2459/1911 +f 3535/2460/1912 3534/2459/1911 3533/2458/1910 +f 3533/2458/1910 3536/2461/1913 3535/2460/1912 +f 3530/2455/1907 3536/2461/1913 3533/2458/1910 +f 3537/2462/1914 3535/2460/1912 3536/2461/1913 +f 3530/2455/1907 3532/2457/1909 3538/2463/1915 +f 3536/2461/1913 3530/2455/1907 3538/2463/1915 +f 3532/2457/1909 3539/2464/1916 3538/2463/1915 +f 3536/2461/1913 3540/2465/1917 3537/2462/1914 +f 3538/2463/1915 3540/2465/1917 3536/2461/1913 +f 3541/2466/1918 3537/2462/1914 3540/2465/1917 +f 3540/2465/1917 3542/2467/1919 3541/2466/1918 +f 3540/2465/1917 3543/2468/1920 3542/2467/1919 +f 3538/2463/1915 3539/2464/1916 3544/2469/1921 +f 3540/2465/1917 3538/2463/1915 3544/2469/1921 +f 3540/2465/1917 3544/2469/1921 3543/2468/1920 +f 3539/2464/1916 3545/2470/1922 3544/2469/1921 +f 3543/2468/1920 3544/2469/1921 3545/2470/1922 +f 3546/2471/1923 3547/2472/1924 3548/2473/1925 +f 3547/2472/1924 3546/2471/1923 3549/2474/1926 +f 3550/2475/1927 3549/2474/1926 3546/2471/1923 +f 3551/2476/1928 3547/2472/1924 3549/2474/1926 +f 3547/2472/1924 3551/2476/1928 3552/2477/1929 +f 3549/2474/1926 3550/2475/1927 3553/2478/1930 +f 3554/2479/1931 3555/2480/1932 3550/2475/1927 +f 3553/2478/1930 3550/2475/1927 3555/2480/1932 +f 3549/2474/1926 3553/2478/1930 3556/2481/1933 +f 3555/2480/1932 3556/2481/1933 3553/2478/1930 +f 3549/2474/1926 3556/2481/1933 3551/2476/1928 +f 3556/2481/1933 3555/2480/1932 3557/2482/1934 +f 3557/2482/1934 3558/2483/1935 3556/2481/1933 +f 3551/2476/1928 3556/2481/1933 3558/2483/1935 +f 3558/2483/1935 3557/2482/1934 3559/2484/1936 +f 3551/2476/1928 3560/2485/1937 3552/2477/1929 +f 3551/2476/1928 3558/2483/1935 3560/2485/1937 +f 3560/2485/1937 3561/2486/1938 3552/2477/1929 +f 3559/2484/1936 3562/2487/1939 3558/2483/1935 +f 3560/2485/1937 3558/2483/1935 3562/2487/1939 +f 3562/2487/1939 3559/2484/1936 3563/2488/1940 +f 3564/2489/1941 3562/2487/1939 3563/2488/1940 +f 3560/2485/1937 3565/2490/1942 3561/2486/1938 +f 3560/2485/1937 3562/2487/1939 3565/2490/1942 +f 3561/2486/1938 3565/2490/1942 3566/2491/1943 +f 3565/2490/1942 3567/2492/1944 3566/2491/1943 +f 3562/2487/1939 3564/2489/1941 3568/2493/1945 +f 3565/2490/1942 3562/2487/1939 3568/2493/1945 +f 3569/2494/1946 3568/2493/1945 3564/2489/1941 +f 3567/2492/1944 3565/2490/1942 3570/2495/1947 +f 3565/2490/1942 3568/2493/1945 3570/2495/1947 +f 3570/2495/1947 3571/2496/1948 3567/2492/1944 +f 3568/2493/1945 3569/2494/1946 3572/2497/1949 +f 3569/2494/1946 3573/2498/1950 3572/2497/1949 +f 3574/2499/1951 3572/2497/1949 3573/2498/1950 +f 3575/2500/1952 3572/2497/1949 3574/2499/1951 +f 3568/2493/1945 3576/2501/1953 3570/2495/1947 +f 3576/2501/1953 3568/2493/1945 3572/2497/1949 +f 3571/2496/1948 3570/2495/1947 3576/2501/1953 +f 3572/2497/1949 3575/2500/1952 3576/2501/1953 +f 3577/2502/1954 3571/2496/1948 3576/2501/1953 +f 3577/2502/1954 3576/2501/1953 3575/2500/1952 +f 3578/2503/1955 3579/2504/1956 3580/2505/1957 +f 3579/2504/1956 3578/2503/1955 3581/2506/1958 +f 3582/2507/1959 3581/2506/1958 3578/2503/1955 +f 3581/2506/1958 3583/2508/1960 3579/2504/1956 +f 3579/2504/1956 3583/2508/1960 3584/2509/1961 +f 3583/2508/1960 3585/2510/1962 3584/2509/1961 +f 3581/2506/1958 3582/2507/1959 3586/2511/1963 +f 3586/2511/1963 3583/2508/1960 3581/2506/1958 +f 3587/2512/1964 3582/2507/1959 3588/2513/1965 +f 3582/2507/1959 3587/2512/1964 3586/2511/1963 +f 3585/2510/1962 3583/2508/1960 3589/2514/1966 +f 3583/2508/1960 3586/2511/1963 3589/2514/1966 +f 3589/2514/1966 3590/2515/1967 3585/2510/1962 +f 3589/2514/1966 3591/2516/1968 3590/2515/1967 +f 3592/2517/1969 3591/2516/1968 3589/2514/1966 +f 3586/2511/1963 3592/2517/1969 3589/2514/1966 +f 3587/2512/1964 3592/2517/1969 3586/2511/1963 +f 3587/2512/1964 3593/2518/1970 3592/2517/1969 +f 3594/2519/12 3595/2520/12 3596/2521/1971 +f 3597/2522/1972 3595/2520/12 3598/2523/12 +f 3599/2524/1973 3596/2521/1971 3595/2520/12 +f 3597/2522/1972 3599/2524/1973 3595/2520/12 +f 3596/2521/1971 3599/2524/1973 3600/2525/1974 +f 3601/2526/1974 3599/2524/1973 3597/2522/1972 +f 3602/2527/1975 3600/2525/1974 3599/2524/1973 +f 3601/2526/1974 3602/2527/1975 3599/2524/1973 +f 3603/2528/1976 3604/2529/1976 3605/2530/1977 +f 3606/2531/579 3603/2528/1976 3607/2532/103 +f 3608/2533/544 3604/2529/1976 3603/2528/1976 +f 3603/2528/1976 3606/2531/579 3608/2533/544 +f 3604/2529/1976 3608/2533/544 3609/2534/544 +f 3608/2533/544 3610/2535/1978 3609/2534/544 +f 3606/2531/579 3611/2536/1978 3608/2533/544 +f 3610/2535/1978 3608/2533/544 3611/2536/1978 +f 3611/2536/1978 3606/2531/579 3612/2537/1979 +f 3611/2536/1978 3613/2538/1980 3610/2535/1978 +f 3614/2539/1981 3615/2540/1982 3616/2541/1983 +f 3617/2542/1984 3615/2540/1982 3618/2543/1985 +f 3619/2544/1986 3616/2541/1983 3615/2540/1982 +f 3617/2542/1984 3619/2544/1986 3615/2540/1982 +f 3619/2544/1986 3620/2545/44 3616/2541/1983 +f 3621/2546/44 3619/2544/1986 3617/2542/1984 +f 3620/2545/44 3619/2544/1986 3622/2547/44 +f 3619/2544/1986 3621/2546/44 3622/2547/44 +f 3622/2547/44 3623/2548/44 3620/2545/44 +f 3624/2549/43 3622/2547/44 3621/2546/44 +f 3623/2548/44 3622/2547/44 3625/2550/43 +f 3622/2547/44 3624/2549/43 3625/2550/43 +f 3626/2551/43 3623/2548/44 3625/2550/43 +f 3627/2552/43 3625/2550/43 3624/2549/43 +f 3625/2550/43 3628/2553/44 3626/2551/43 +f 3625/2550/43 3627/2552/43 3628/2553/44 +f 3629/2505/1987 3630/2504/1988 3631/2503/1989 +f 3631/2503/1989 3630/2504/1988 3632/2506/1990 +f 3632/2506/1990 3633/2507/1991 3631/2503/1989 +f 3634/2508/1992 3632/2506/1990 3630/2504/1988 +f 3630/2504/1988 3635/2509/1993 3634/2508/1992 +f 3636/2510/1994 3634/2508/1992 3635/2509/1993 +f 3633/2507/1991 3632/2506/1990 3637/2511/1995 +f 3634/2508/1992 3637/2511/1995 3632/2506/1990 +f 3633/2507/1991 3638/2512/1996 3639/2513/1997 +f 3638/2512/1996 3633/2507/1991 3637/2511/1995 +f 3634/2508/1992 3636/2510/1994 3640/2514/1998 +f 3637/2511/1995 3634/2508/1992 3640/2514/1998 +f 3636/2510/1994 3641/2515/1967 3640/2514/1998 +f 3642/2516/1968 3640/2514/1998 3641/2515/1967 +f 3643/2517/1999 3640/2514/1998 3642/2516/1968 +f 3637/2511/1995 3640/2514/1998 3643/2517/1999 +f 3637/2511/1995 3643/2517/1999 3638/2512/1996 +f 3644/2518/2000 3638/2512/1996 3643/2517/1999 +f 3645/2554/2001 3646/2555/2001 3647/2556/2002 +f 3647/2556/2002 3648/2557/2003 3645/2554/2001 +f 3649/2558/2001 3645/2554/2001 3648/2557/2003 +f 3648/2557/2003 3650/2559/2004 3649/2558/2001 +f 3647/2556/2002 3651/2560/2005 3648/2557/2003 +f 3648/2557/2003 3651/2560/2005 3650/2559/2004 +f 3651/2560/2005 3647/2556/2002 3652/2561/2006 +f 3651/2560/2005 3653/2562/2007 3650/2559/2004 +f 3652/2561/2006 3654/2563/2008 3651/2560/2005 +f 3654/2563/2008 3653/2562/2007 3651/2560/2005 +f 3654/2563/2008 3652/2561/2006 3655/2564/2009 +f 3653/2562/2007 3654/2563/2008 3656/2565/2010 +f 3657/2566/2011 3654/2563/2008 3655/2564/2009 +f 3654/2563/2008 3658/2567/2012 3656/2565/2010 +f 3654/2563/2008 3657/2566/2011 3658/2567/2012 +f 3658/2567/2012 3659/2568/2013 3656/2565/2010 +f 3660/2569/2014 3658/2567/2012 3657/2566/2011 +f 3661/2570/2015 3659/2568/2013 3658/2567/2012 +f 3659/2568/2013 3661/2570/2015 3662/2571/2016 +f 3661/2570/2015 3663/2572/2017 3662/2571/2016 +f 3661/2570/2015 3664/2573/2018 3663/2572/2017 +f 3658/2567/2012 3660/2569/2014 3665/2574/2019 +f 3661/2570/2015 3658/2567/2012 3665/2574/2019 +f 3666/2575/2020 3665/2574/2019 3660/2569/2014 +f 3661/2570/2015 3667/2576/2021 3664/2573/2018 +f 3667/2576/2021 3668/2577/2022 3664/2573/2018 +f 3667/2576/2021 3669/2578/2023 3668/2577/2022 +f 3665/2574/2019 3670/2579/66 3661/2570/2015 +f 3667/2576/2021 3661/2570/2015 3670/2579/66 +f 3665/2574/2019 3666/2575/2020 3671/2580/2020 +f 3671/2580/2020 3670/2579/66 3665/2574/2019 +f 3672/2581/2024 3671/2580/2020 3666/2575/2020 +f 3669/2578/2023 3667/2576/2021 3673/2582/2025 +f 3673/2582/2025 3674/2583/2026 3669/2578/2023 +f 3671/2580/2020 3672/2581/2024 3675/2584/2027 +f 3676/2585/2028 3675/2584/2027 3672/2581/2024 +f 3670/2579/66 3671/2580/2020 3677/2586/2029 +f 3677/2586/2029 3671/2580/2020 3675/2584/2027 +f 3678/2587/2030 3676/2585/2028 3679/2588/2031 +f 3676/2585/2028 3678/2587/2030 3680/2589/2028 +f 3675/2584/2027 3676/2585/2028 3680/2589/2028 +f 3681/2590/2032 3680/2589/2028 3678/2587/2030 +f 3682/2591/2033 3675/2584/2027 3680/2589/2028 +f 3675/2584/2027 3682/2591/2033 3677/2586/2029 +f 3680/2589/2028 3681/2590/2032 3683/2592/2034 +f 3680/2589/2028 3683/2592/2034 3682/2591/2033 +f 3684/2593/2031 3683/2592/2034 3681/2590/2032 +f 3685/2594/2035 3677/2586/2029 3682/2591/2033 +f 3683/2592/2034 3684/2593/2031 3686/2595/2036 +f 3687/2596/2032 3686/2595/2036 3684/2593/2031 +f 3686/2595/2036 3687/2596/2032 3688/2597/2037 +f 3686/2595/2036 3688/2597/2037 3689/2598/2038 +f 3690/2599/2039 3682/2591/2033 3683/2592/2034 +f 3683/2592/2034 3686/2595/2036 3690/2599/2039 +f 3689/2598/2038 3690/2599/2039 3686/2595/2036 +f 3682/2591/2033 3690/2599/2039 3685/2594/2035 +f 3690/2599/2039 3689/2598/2038 3691/2600/2040 +f 3691/2600/2040 3685/2594/2035 3690/2599/2039 +f 3692/2601/2041 3685/2594/2035 3691/2600/2040 +f 3685/2594/2035 3692/2601/2041 3693/2602/2042 +f 3693/2602/2042 3677/2586/2029 3685/2594/2035 +f 3677/2586/2029 3693/2602/2042 3670/2579/66 +f 3670/2579/66 3693/2602/2042 3667/2576/2021 +f 3694/2603/2043 3693/2602/2042 3692/2601/2041 +f 3694/2603/2043 3667/2576/2021 3693/2602/2042 +f 3694/2603/2043 3673/2582/2025 3667/2576/2021 +f 3673/2582/2025 3694/2603/2043 3695/2604/2044 +f 3673/2582/2025 3695/2604/2044 3696/2605/2045 +f 3696/2605/2045 3695/2604/2044 3697/2606/2046 +f 3674/2583/2026 3673/2582/2025 3696/2605/2045 +f 3698/2607/2047 3696/2605/2045 3697/2606/2046 +f 3699/2608/2048 3674/2583/2026 3696/2605/2045 +f 3696/2605/2045 3698/2607/2047 3699/2608/2048 +f 3674/2583/2026 3699/2608/2048 3700/2609/2049 +f 3699/2608/2048 3698/2607/2047 3701/2610/2050 +f 3699/2608/2048 3702/2611/2051 3700/2609/2049 +f 3701/2610/2050 3703/2612/2052 3699/2608/2048 +f 3702/2611/2051 3699/2608/2048 3703/2612/2052 +f 3704/2555/2053 3705/2554/2053 3706/2556/2054 +f 3706/2556/2054 3705/2554/2053 3707/2557/2055 +f 3705/2554/2053 3708/2558/2053 3707/2557/2055 +f 3707/2557/2055 3708/2558/2053 3709/2559/2056 +f 3710/2560/2057 3706/2556/2054 3707/2557/2055 +f 3707/2557/2055 3709/2559/2056 3710/2560/2057 +f 3706/2556/2054 3710/2560/2057 3711/2561/2058 +f 3710/2560/2057 3709/2559/2056 3712/2562/2059 +f 3713/2563/2060 3711/2561/2058 3710/2560/2057 +f 3712/2562/2059 3713/2563/2060 3710/2560/2057 +f 3711/2561/2058 3713/2563/2060 3714/2564/2061 +f 3713/2563/2060 3712/2562/2059 3715/2565/2062 +f 3713/2563/2060 3716/2566/2063 3714/2564/2061 +f 3715/2565/2062 3717/2567/2064 3713/2563/2060 +f 3716/2566/2063 3713/2563/2060 3717/2567/2064 +f 3718/2568/2065 3717/2567/2064 3715/2565/2062 +f 3717/2567/2064 3719/2569/2066 3716/2566/2063 +f 3718/2568/2065 3720/2570/2067 3717/2567/2064 +f 3720/2570/2067 3718/2568/2065 3721/2571/2068 +f 3720/2570/2067 3721/2571/2068 3722/2572/2069 +f 3720/2570/2067 3722/2572/2069 3723/2573/2070 +f 3719/2569/2066 3717/2567/2064 3724/2574/2071 +f 3717/2567/2064 3720/2570/2067 3724/2574/2071 +f 3724/2574/2071 3725/2575/2072 3719/2569/2066 +f 3720/2570/2067 3723/2573/2070 3726/2576/2073 +f 3726/2576/2073 3723/2573/2070 3727/2577/2074 +f 3726/2576/2073 3727/2577/2074 3728/2578/2075 +f 3724/2574/2071 3720/2570/2067 3729/2579/29 +f 3720/2570/2067 3726/2576/2073 3729/2579/29 +f 3725/2575/2072 3724/2574/2071 3730/2580/2072 +f 3729/2579/29 3730/2580/2072 3724/2574/2071 +f 3730/2580/2072 3731/2581/2076 3725/2575/2072 +f 3731/2581/2076 3730/2580/2072 3732/2584/2077 +f 3732/2584/2077 3733/2585/2078 3731/2581/2076 +f 3730/2580/2072 3729/2579/29 3734/2586/2079 +f 3730/2580/2072 3734/2586/2079 3732/2584/2077 +f 3733/2585/2078 3735/2587/2080 3736/2588/2080 +f 3735/2587/2080 3733/2585/2078 3737/2589/2081 +f 3733/2585/2078 3732/2584/2077 3737/2589/2081 +f 3737/2589/2081 3738/2590/2080 3735/2587/2080 +f 3732/2584/2077 3739/2591/2082 3737/2589/2081 +f 3732/2584/2077 3734/2586/2079 3739/2591/2082 +f 3738/2590/2080 3737/2589/2081 3740/2592/2083 +f 3737/2589/2081 3739/2591/2082 3740/2592/2083 +f 3740/2592/2083 3741/2593/2084 3738/2590/2080 +f 3734/2586/2079 3742/2594/2085 3739/2591/2082 +f 3741/2593/2084 3740/2592/2083 3743/2595/2086 +f 3743/2595/2086 3744/2596/2080 3741/2593/2084 +f 3744/2596/2080 3743/2595/2086 3745/2597/2087 +f 3743/2595/2086 3746/2598/2088 3745/2597/2087 +f 3739/2591/2082 3747/2599/2082 3740/2592/2083 +f 3740/2592/2083 3747/2599/2082 3743/2595/2086 +f 3747/2599/2082 3746/2598/2088 3743/2595/2086 +f 3739/2591/2082 3742/2594/2085 3747/2599/2082 +f 3747/2599/2082 3748/2600/2089 3746/2598/2088 +f 3742/2594/2085 3748/2600/2089 3747/2599/2082 +f 3742/2594/2085 3749/2601/2090 3748/2600/2089 +f 3749/2601/2090 3742/2594/2085 3750/2602/2090 +f 3734/2586/2079 3750/2602/2090 3742/2594/2085 +f 3750/2602/2090 3734/2586/2079 3729/2579/29 +f 3750/2602/2090 3751/2603/2091 3749/2601/2090 +f 3729/2579/29 3726/2576/2073 3750/2602/2090 +f 3726/2576/2073 3751/2603/2091 3750/2602/2090 +f 3752/2582/2092 3751/2603/2091 3726/2576/2073 +f 3728/2578/2075 3752/2582/2092 3726/2576/2073 +f 3751/2603/2091 3752/2582/2092 3753/2604/2093 +f 3754/2583/2094 3752/2582/2092 3728/2578/2075 +f 3755/2605/2095 3753/2604/2093 3752/2582/2092 +f 3754/2583/2094 3755/2605/2095 3752/2582/2092 +f 3755/2605/2095 3756/2606/2096 3753/2604/2093 +f 3756/2606/2096 3755/2605/2095 3757/2607/2097 +f 3754/2583/2094 3758/2608/2098 3755/2605/2095 +f 3758/2608/2098 3757/2607/2097 3755/2605/2095 +f 3754/2583/2094 3759/2609/2099 3758/2608/2098 +f 3758/2608/2098 3760/2610/2100 3757/2607/2097 +f 3761/2611/2101 3758/2608/2098 3759/2609/2099 +f 3762/2612/2102 3760/2610/2100 3758/2608/2098 +f 3758/2608/2098 3761/2611/2101 3762/2612/2102 +f 3763/2613/2103 3764/2614/2104 3765/2615/718 +f 3764/2614/2104 3763/2613/2103 3766/2616/2105 +f 3766/2616/2105 3767/2617/2106 3764/2614/2104 +f 3768/2618/2107 3763/2613/2103 3769/2619/2108 +f 3763/2613/2103 3768/2618/2107 3766/2616/2105 +f 3767/2617/2106 3766/2616/2105 3770/2620/2109 +f 3768/2618/2107 3770/2620/2109 3766/2616/2105 +f 3770/2620/2109 3768/2618/2107 3771/2621/2110 +f 3770/2620/2109 3772/2622/2111 3767/2617/2106 +f 3771/2621/2110 3773/2623/2112 3770/2620/2109 +f 3772/2622/2111 3770/2620/2109 3773/2623/2112 +f 3773/2623/2112 3771/2621/2110 3774/2624/2113 +f 3774/2624/2113 3775/2625/2114 3773/2623/2112 +f 3776/2626/2115 3772/2622/2111 3773/2623/2112 +f 3776/2626/2115 3773/2623/2112 3775/2625/2114 +f 3777/2627/2116 3772/2622/2111 3776/2626/2115 +f 3777/2627/2116 3778/2628/2117 3772/2622/2111 +f 3775/2625/2114 3779/2629/2118 3776/2626/2115 +f 3779/2629/2118 3777/2627/2116 3776/2626/2115 +f 3779/2629/2118 3775/2625/2114 3780/2630/2119 +f 3781/2631/2120 3779/2629/2118 3780/2630/2119 +f 3782/2632/2121 3779/2629/2118 3781/2631/2120 +f 3782/2632/2121 3781/2631/2120 3783/2633/2122 +f 3777/2627/2116 3779/2629/2118 3784/2634/2123 +f 3782/2632/2121 3784/2634/2123 3779/2629/2118 +f 3785/2635/2124 3782/2632/2121 3783/2633/2122 +f 3782/2632/2121 3785/2635/2124 3784/2634/2123 +f 3783/2633/2122 3786/2636/2125 3785/2635/2124 +f 3784/2634/2123 3787/2637/2117 3777/2627/2116 +f 3778/2628/2117 3777/2627/2116 3787/2637/2117 +f 3785/2635/2124 3788/2638/2126 3784/2634/2123 +f 3787/2637/2117 3784/2634/2123 3788/2638/2126 +f 3789/2639/2127 3785/2635/2124 3786/2636/2125 +f 3788/2638/2126 3785/2635/2124 3789/2639/2127 +f 3786/2636/2125 3790/2640/2128 3789/2639/2127 +f 3790/2640/2128 3788/2638/2126 3789/2639/2127 +f 3790/2640/2128 3786/2636/2125 3791/2641/2129 +f 3792/2642/2123 3787/2637/2117 3788/2638/2126 +f 3788/2638/2126 3790/2640/2128 3792/2642/2123 +f 3791/2641/2129 3793/2643/2130 3790/2640/2128 +f 3793/2643/2130 3792/2642/2123 3790/2640/2128 +f 3793/2643/2130 3791/2641/2129 3794/2644/2131 +f 3787/2637/2117 3792/2642/2123 3795/2645/2116 +f 3795/2645/2116 3778/2628/2117 3787/2637/2117 +f 3793/2643/2130 3796/2646/2132 3792/2642/2123 +f 3796/2646/2132 3793/2643/2130 3794/2644/2131 +f 3792/2642/2123 3796/2646/2132 3795/2645/2116 +f 3794/2644/2131 3797/2647/2133 3796/2646/2132 +f 3778/2628/2117 3795/2645/2116 3798/2648/2134 +f 3799/2649/2135 3796/2646/2132 3797/2647/2133 +f 3796/2646/2132 3800/2650/2136 3795/2645/2116 +f 3796/2646/2132 3799/2649/2135 3800/2650/2136 +f 3795/2645/2116 3800/2650/2136 3798/2648/2134 +f 3799/2649/2135 3801/2651/2137 3800/2650/2136 +f 3800/2650/2136 3801/2651/2137 3798/2648/2134 +f 3801/2651/2137 3799/2649/2135 3802/2652/2138 +f 3803/2653/2139 3801/2651/2137 3802/2652/2138 +f 3804/2654/2140 3798/2648/2134 3801/2651/2137 +f 3801/2651/2137 3803/2653/2139 3804/2654/2140 +f 3798/2648/2134 3804/2654/2140 3805/2655/2106 +f 3806/2656/2141 3804/2654/2140 3803/2653/2139 +f 3807/2657/2142 3805/2655/2106 3804/2654/2140 +f 3804/2654/2140 3806/2656/2141 3807/2657/2142 +f 3805/2655/2106 3807/2657/2142 3808/2658/2143 +f 3806/2656/2141 3809/2659/2144 3807/2657/2142 +f 3809/2659/2144 3808/2658/2143 3807/2657/2142 +f 3809/2659/2144 3806/2656/2141 3810/2660/2145 +f 3808/2658/2143 3809/2659/2144 3811/2661/718 +f 3812/2662/2146 3813/2663/2147 3814/2664/2148 +f 3813/2663/2147 3812/2662/2146 3815/2665/2149 +f 3816/2666/2150 3815/2665/2149 3812/2662/2146 +f 3815/2665/2149 3816/2666/2150 3817/2667/2151 +f 3818/2668/2152 3813/2663/2147 3815/2665/2149 +f 3817/2667/2151 3818/2668/2152 3815/2665/2149 +f 3819/2669/2153 3813/2663/2147 3818/2668/2152 +f 3818/2668/2152 3817/2667/2151 3820/2670/2154 +f 3821/2671/2155 3822/2672/2156 3823/2673/2157 +f 3822/2672/2156 3821/2671/2155 3824/2674/2158 +f 3824/2674/2158 3825/2675/2159 3822/2672/2156 +f 3826/2676/2160 3827/2677/2161 3821/2671/2155 +f 3824/2674/2158 3821/2671/2155 3827/2677/2161 +f 3825/2675/2159 3824/2674/2158 3828/2678/2162 +f 3827/2677/2161 3828/2678/2162 3824/2674/2158 +f 3828/2678/2162 3827/2677/2161 3829/2679/2163 +f 3828/2678/2162 3830/2680/2164 3825/2675/2159 +f 3829/2679/2163 3831/2681/2165 3828/2678/2162 +f 3828/2678/2162 3832/2682/2166 3830/2680/2164 +f 3832/2682/2166 3828/2678/2162 3831/2681/2165 +f 3830/2680/2164 3833/2683/2167 3834/2684/2168 +f 3833/2683/2167 3830/2680/2164 3832/2682/2166 +f 3831/2681/2165 3835/2685/2169 3832/2682/2166 +f 3833/2683/2167 3832/2682/2166 3835/2685/2169 +f 3835/2685/2169 3831/2681/2165 3836/2686/2170 +f 3837/2687/2171 3835/2685/2169 3836/2686/2170 +f 3833/2683/2167 3835/2685/2169 3838/2688/2172 +f 3835/2685/2169 3837/2687/2171 3838/2688/2172 +f 3839/2689/2173 3833/2683/2167 3838/2688/2172 +f 3840/2690/2174 3838/2688/2172 3837/2687/2171 +f 3838/2688/2172 3840/2690/2174 3839/2689/2173 +f 3841/2663/2175 3842/2662/2176 3843/2664/2177 +f 3842/2662/2176 3841/2663/2175 3844/2665/2178 +f 3844/2665/2178 3845/2666/2179 3842/2662/2176 +f 3845/2666/2179 3844/2665/2178 3846/2667/2180 +f 3841/2663/2175 3847/2668/2181 3844/2665/2178 +f 3847/2668/2181 3846/2667/2180 3844/2665/2178 +f 3847/2668/2181 3841/2663/2175 3848/2669/2153 +f 3846/2667/2180 3847/2668/2181 3849/2670/2182 +f 3850/2671/2183 3851/2673/2184 3852/2672/2185 +f 3853/2674/2186 3850/2671/2183 3852/2672/2185 +f 3854/2675/2187 3853/2674/2186 3852/2672/2185 +f 3855/2677/2188 3856/2676/2189 3850/2671/2183 +f 3855/2677/2188 3850/2671/2183 3853/2674/2186 +f 3853/2674/2186 3854/2675/2187 3857/2678/2190 +f 3855/2677/2188 3853/2674/2186 3857/2678/2190 +f 3858/2679/2191 3855/2677/2188 3857/2678/2190 +f 3859/2680/1575 3857/2678/2190 3854/2675/2187 +f 3857/2678/2190 3860/2681/2192 3858/2679/2191 +f 3861/2682/2193 3857/2678/2190 3859/2680/1575 +f 3860/2681/2192 3857/2678/2190 3861/2682/2193 +f 3862/2683/2194 3859/2680/1575 3863/2684/1575 +f 3859/2680/1575 3862/2683/2194 3861/2682/2193 +f 3861/2682/2193 3864/2685/2195 3860/2681/2192 +f 3862/2683/2194 3864/2685/2195 3861/2682/2193 +f 3864/2685/2195 3865/2686/2196 3860/2681/2192 +f 3864/2685/2195 3866/2687/2197 3865/2686/2196 +f 3862/2683/2194 3867/2688/2198 3864/2685/2195 +f 3866/2687/2197 3864/2685/2195 3867/2688/2198 +f 3868/2689/2199 3867/2688/2198 3862/2683/2194 +f 3867/2688/2198 3869/2690/2200 3866/2687/2197 +f 3869/2690/2200 3867/2688/2198 3868/2689/2199 +f 3870/2691/8 3871/2692/8 3872/2693/8 +f 3872/2693/8 3873/2694/8 3870/2691/8 +f 3870/2691/8 3873/2694/8 3874/2695/8 +f 3870/2691/8 3874/2695/8 3875/2696/8 +f 3870/2691/8 3875/2696/8 3876/2697/8 +f 3870/2691/8 3876/2697/8 3877/2698/8 +f 3878/2699/8 3870/2691/8 3877/2698/8 +f 3878/2699/8 3879/2700/8 3870/2691/8 +f 3879/2700/8 3878/2699/8 3880/2701/8 +f 3880/2701/8 3881/2702/8 3879/2700/8 +f 3879/2700/8 3881/2702/8 3882/2703/8 +f 3879/2700/8 3882/2703/8 3883/2704/8 +f 3879/2700/8 3883/2704/8 3884/2705/8 +f 3879/2700/8 3884/2705/8 3885/2706/8 +f 3886/2707/8 3879/2700/8 3885/2706/8 +f 3879/2700/8 3886/2707/8 3887/2708/8 +f 3888/2709/9 3889/2710/9 3890/2711/9 +f 3891/2712/9 3888/2709/9 3890/2711/9 +f 3892/2713/9 3891/2712/9 3890/2711/9 +f 3893/2714/9 3892/2713/9 3890/2711/9 +f 3894/2715/9 3893/2714/9 3890/2711/9 +f 3895/2716/9 3894/2715/9 3890/2711/9 +f 3896/2717/9 3895/2716/9 3890/2711/9 +f 3896/2717/9 3890/2711/9 3897/2718/125 +f 3898/2719/9 3897/2718/125 3890/2711/9 +f 3899/2720/9 3897/2718/125 3898/2719/9 +f 3900/2721/9 3899/2720/9 3898/2719/9 +f 3900/2721/9 3898/2719/9 3901/2722/9 +f 3901/2722/9 3898/2719/9 3902/2723/9 +f 3902/2723/9 3898/2719/9 3903/2724/9 +f 3903/2724/9 3898/2719/9 3904/2725/9 +f 3904/2725/9 3898/2719/9 3905/2726/9 +f 3905/2726/9 3898/2719/9 3906/2727/9 +f 3906/2727/9 3898/2719/9 3907/2728/9 +f 3908/2729/12 3909/2730/12 3910/2731/12 +f 3908/2729/12 3911/2732/12 3912/2733/12 +f 3909/2730/12 3908/2729/12 3913/2734/12 +f 3908/2729/12 3912/2733/12 3913/2734/12 +f 3914/2735/2201 3909/2730/12 3913/2734/12 +f 3912/2733/12 3914/2735/2201 3913/2734/12 +f 3909/2730/12 3914/2735/2201 3915/2736/2202 +f 3914/2735/2201 3912/2733/12 3916/2737/2202 +f 3914/2735/2201 3917/2738/2203 3915/2736/2202 +f 3918/2739/2203 3914/2735/2201 3916/2737/2202 +f 3917/2738/2203 3914/2735/2201 3919/2740/2204 +f 3914/2735/2201 3918/2739/2203 3919/2740/2204 +f 3920/2741/2205 3917/2738/2203 3919/2740/2204 +f 3921/2742/2206 3919/2740/2204 3918/2739/2203 +f 3922/2743/2207 3920/2741/2205 3919/2740/2204 +f 3923/2744/2208 3919/2740/2204 3921/2742/2206 +f 3919/2740/2204 3924/2745/2209 3922/2743/2207 +f 3919/2740/2204 3923/2744/2208 3925/2746/2210 +f 3926/2747/2211 3924/2745/2209 3919/2740/2204 +f 3927/2748/2212 3919/2740/2204 3925/2746/2210 +f 3928/2749/2213 3926/2747/2211 3919/2740/2204 +f 3928/2749/2213 3919/2740/2204 3927/2748/2212 +f 3929/2750/2214 3930/2751/2215 3931/2752/864 +f 3932/2753/864 3929/2750/2214 3931/2752/864 +f 3930/2751/2215 3929/2750/2214 3933/2754/2216 +f 3929/2750/2214 3932/2753/864 3934/2755/2216 +f 3933/2754/2216 3929/2750/2214 3935/2756/2217 +f 3929/2750/2214 3934/2755/2216 3935/2756/2217 +f 3933/2754/2216 3935/2756/2217 3936/2757/2218 +f 3937/2758/2218 3935/2756/2217 3934/2755/2216 +f 3938/2759/2219 3936/2757/2218 3935/2756/2217 +f 3937/2758/2218 3938/2759/2219 3935/2756/2217 +f 3938/2759/2219 3939/2760/2220 3936/2757/2218 +f 3938/2759/2219 3937/2758/2218 3940/2761/2220 +f 3941/2762/2221 3939/2760/2220 3938/2759/2219 +f 3940/2761/2220 3941/2762/2221 3938/2759/2219 +f 3941/2762/2221 3942/2763/2222 3939/2760/2220 +f 3941/2762/2221 3940/2761/2220 3943/2764/2222 +f 3941/2762/2221 3944/2765/8 3942/2763/2222 +f 3941/2762/2221 3943/2764/2222 3945/2766/8 +f 3944/2765/8 3941/2762/2221 3946/2767/8 +f 3945/2766/8 3946/2767/8 3941/2762/2221 +f 3947/2768/2223 3948/2769/2224 3949/2770/2223 +f 3950/2771/2225 3947/2768/2223 3949/2770/2223 +f 3948/2769/2224 3947/2768/2223 3951/2772/2224 +f 3947/2768/2223 3950/2771/2225 3952/2773/2225 +f 3951/2772/2224 3947/2768/2223 3953/2774/2226 +f 3947/2768/2223 3952/2773/2225 3953/2774/2226 +f 3951/2772/2224 3953/2774/2226 3954/2775/2227 +f 3955/2776/2228 3953/2774/2226 3952/2773/2225 +f 3954/2775/2227 3953/2774/2226 3956/2777/2229 +f 3953/2774/2226 3955/2776/2228 3956/2777/2229 +f 3954/2775/2227 3956/2777/2229 3957/2778/2230 +f 3958/2779/2231 3956/2777/2229 3955/2776/2228 +f 3959/2780/2232 3957/2778/2230 3956/2777/2229 +f 3958/2779/2231 3959/2780/2232 3956/2777/2229 +f 3957/2778/2230 3959/2780/2232 3960/2781/2233 +f 3959/2780/2232 3958/2779/2231 3961/2782/2233 +f 3959/2780/2232 3962/2783/2234 3960/2781/2233 +f 3963/2784/2234 3959/2780/2232 3961/2782/2233 +f 3962/2783/2234 3959/2780/2232 3964/2785/2235 +f 3959/2780/2232 3963/2784/2234 3964/2785/2235 +f 3964/2785/2235 3965/2786/9 3962/2783/2234 +f 3966/2787/9 3964/2785/2235 3963/2784/2234 +f 3965/2786/9 3964/2785/2235 3967/2788/9 +f 3964/2785/2235 3966/2787/9 3967/2788/9 +f 3968/2765/9 3969/2762/2235 3970/2767/9 +f 3969/2762/2235 3971/2766/9 3970/2767/9 +f 3969/2762/2235 3968/2765/9 3972/2763/2234 +f 3971/2766/9 3969/2762/2235 3973/2764/2234 +f 3972/2763/2234 3974/2759/2236 3969/2762/2235 +f 3974/2759/2236 3973/2764/2234 3969/2762/2235 +f 3974/2759/2236 3972/2763/2234 3975/2760/2237 +f 3973/2764/2234 3974/2759/2236 3976/2761/2237 +f 3977/2757/2230 3974/2759/2236 3975/2760/2237 +f 3974/2759/2236 3978/2758/2238 3976/2761/2237 +f 3974/2759/2236 3977/2757/2230 3979/2756/2239 +f 3978/2758/2238 3974/2759/2236 3979/2756/2239 +f 3980/2754/2240 3979/2756/2239 3977/2757/2230 +f 3978/2758/2238 3979/2756/2239 3981/2755/2240 +f 3980/2754/2240 3982/2750/2221 3979/2756/2239 +f 3982/2750/2221 3981/2755/2240 3979/2756/2239 +f 3982/2750/2221 3980/2754/2240 3983/2751/8 +f 3982/2750/2221 3984/2753/8 3981/2755/2240 +f 3983/2751/8 3985/2752/8 3982/2750/2221 +f 3984/2753/8 3982/2750/2221 3985/2752/8 +f 3986/2789/2241 3987/2790/2242 3988/2791/2243 +f 3987/2790/2242 3989/2792/2244 3988/2791/2243 +f 3987/2790/2242 3986/2789/2241 3990/2793/2245 +f 3989/2792/2244 3987/2790/2242 3991/2794/2246 +f 3990/2793/2245 3992/2795/2247 3987/2790/2242 +f 3992/2795/2247 3991/2794/2246 3987/2790/2242 +f 3992/2795/2247 3990/2793/2245 3993/2796/2248 +f 3991/2794/2246 3992/2795/2247 3994/2797/2249 +f 3992/2795/2247 3993/2796/2248 3995/2798/2250 +f 3992/2795/2247 3996/2799/2251 3994/2797/2249 +f 3995/2798/2250 3997/2800/2252 3992/2795/2247 +f 3996/2799/2251 3992/2795/2247 3997/2800/2252 +f 3998/2801/8 3999/2802/8 4000/2803/8 +f 3998/2801/8 4001/2804/8 3999/2802/8 +f 3998/2801/8 4000/2803/8 4002/2805/8 +f 4003/2806/8 4001/2804/8 3998/2801/8 +f 4003/2806/8 4004/2807/8 4001/2804/8 +f 4003/2806/8 4005/2808/8 4004/2807/8 +f 4003/2806/8 4006/2809/8 4005/2808/8 +f 4005/2808/8 4006/2809/8 4007/2810/8 +f 4006/2809/8 4008/2811/8 4007/2810/8 +f 4006/2809/8 4009/2812/8 4008/2811/8 +f 4007/2810/8 4008/2811/8 4010/2813/8 +f 4008/2811/8 4009/2812/8 4011/2814/8 +f 4011/2814/8 4012/2815/8 4008/2811/8 +f 4008/2811/8 4012/2815/8 4010/2813/8 +f 4012/2815/8 4011/2814/8 4013/2816/8 +f 4014/2817/8 4012/2815/8 4013/2816/8 +f 4015/2818/8 4010/2813/8 4012/2815/8 +f 4012/2815/8 4014/2817/8 4015/2818/8 +f 4010/2813/8 4015/2818/8 4016/2819/8 +f 4014/2817/8 4017/2820/8 4015/2818/8 +f 4015/2818/8 4018/2821/8 4016/2819/8 +f 4015/2818/8 4017/2820/8 4018/2821/8 +f 4016/2819/8 4018/2821/8 4019/2822/8 +f 4018/2821/8 4020/2823/8 4019/2822/8 +f 4017/2820/8 4021/2824/8 4018/2821/8 +f 4021/2824/8 4020/2823/8 4018/2821/8 +f 4017/2820/8 4022/2825/8 4021/2824/8 +f 4021/2824/8 4023/2826/8 4020/2823/8 +f 4022/2825/8 4024/2827/8 4021/2824/8 +f 4023/2826/8 4021/2824/8 4024/2827/8 +f 4024/2827/8 4022/2825/8 4025/2828/8 +f 4024/2827/8 4025/2828/8 4026/2829/8 +f 4027/2830/8 4023/2826/8 4024/2827/8 +f 4026/2829/8 4027/2830/8 4024/2827/8 +f 4028/2831/8 4027/2830/8 4026/2829/8 +f 4023/2826/8 4027/2830/8 4029/2832/8 +f 4027/2830/8 4028/2831/8 4030/2833/8 +f 4030/2833/8 4029/2832/8 4027/2830/8 +f 4029/2832/8 4030/2833/8 4031/2834/8 +f 4032/2835/8 4031/2834/8 4030/2833/8 +f 4031/2834/8 4032/2835/8 4033/2836/8 +f 4032/2835/8 4034/2837/8 4033/2836/8 +f 4032/2835/8 4035/2838/8 4034/2837/8 +f 4035/2838/8 4036/2839/8 4034/2837/8 +f 4035/2838/8 4037/2840/8 4036/2839/8 +f 4035/2838/8 4038/2841/8 4037/2840/8 +f 4035/2838/8 4039/2842/8 4038/2841/8 +f 4039/2842/8 4035/2838/8 4040/2843/8 +f 4039/2842/8 4041/2844/8 4038/2841/8 +f 4042/2845/8 4039/2842/8 4040/2843/8 +f 4039/2842/8 4043/2846/8 4041/2844/8 +f 4039/2842/8 4042/2845/8 4044/2847/8 +f 4045/2848/8 4043/2846/8 4039/2842/8 +f 4045/2848/8 4039/2842/8 4044/2847/8 +f 4043/2846/8 4045/2848/8 4046/2849/8 +f 4046/2849/8 4045/2848/8 4047/2850/8 +f 4044/2847/8 4048/2851/8 4045/2848/8 +f 4045/2848/8 4048/2851/8 4047/2850/8 +f 4044/2847/8 4049/2852/8 4048/2851/8 +f 4048/2851/8 4050/2853/8 4047/2850/8 +f 4049/2852/8 4051/2854/8 4048/2851/8 +f 4048/2851/8 4002/2805/8 4050/2853/8 +f 3998/2801/8 4048/2851/8 4051/2854/8 +f 4048/2851/8 3998/2801/8 4002/2805/8 +f 4052/2855/2253 4053/2856/2254 4054/2857/2255 +f 4053/2856/2254 4055/2858/2256 4054/2857/2255 +f 4052/2855/2253 4056/2859/2257 4053/2856/2254 +f 4055/2858/2256 4053/2856/2254 4057/2860/2258 +f 4056/2859/2257 4058/2861/2259 4053/2856/2254 +f 4058/2861/2259 4057/2860/2258 4053/2856/2254 +f 4056/2859/2257 4059/2862/2260 4058/2861/2259 +f 4057/2860/2258 4058/2861/2259 4060/2863/2261 +f 4061/2864/2262 4058/2861/2259 4059/2862/2260 +f 4061/2864/2262 4060/2863/2261 4058/2861/2259 +f 4059/2862/2260 4062/2865/2263 4061/2864/2262 +f 4060/2863/2261 4061/2864/2262 4063/2866/649 +f 4064/2867/2264 4061/2864/2262 4062/2865/2263 +f 4065/2868/2265 4063/2866/649 4061/2864/2262 +f 4061/2864/2262 4064/2867/2264 4065/2868/2265 +f 4065/2868/2265 4066/2869/1325 4063/2866/649 +f 4067/2870/2266 4065/2868/2265 4064/2867/2264 +f 4068/2871/2267 4066/2869/1325 4065/2868/2265 +f 4065/2868/2265 4067/2870/2266 4068/2871/2267 +f 4068/2871/2267 4069/2872/1316 4066/2869/1325 +f 4070/2873/2268 4068/2871/2267 4067/2870/2266 +f 4071/2874/2269 4069/2872/1316 4068/2871/2267 +f 4068/2871/2267 4070/2873/2268 4071/2874/2269 +f 4071/2874/2269 4072/2875/29 4069/2872/1316 +f 4073/2876/2270 4071/2874/2269 4070/2873/2268 +f 4073/2876/2270 4072/2875/29 4071/2874/2269 +f 4070/2873/2268 4074/2877/2271 4073/2876/2270 +f 4073/2876/2270 4075/2878/2272 4072/2875/29 +f 4076/2879/2273 4073/2876/2270 4074/2877/2271 +f 4076/2879/2273 4075/2878/2272 4073/2876/2270 +f 4074/2877/2271 4077/2880/2274 4076/2879/2273 +f 4076/2879/2273 4078/2881/2275 4075/2878/2272 +f 4079/2882/2276 4076/2879/2273 4077/2880/2274 +f 4079/2882/2276 4078/2881/2275 4076/2879/2273 +f 4080/2883/2277 4079/2882/2276 4077/2880/2274 +f 4079/2882/2276 4081/2884/136 4078/2881/2275 +f 4082/2885/2278 4079/2882/2276 4080/2883/2277 +f 4081/2884/136 4079/2882/2276 4083/2886/2279 +f 4079/2882/2276 4082/2885/2278 4083/2886/2279 +f 4083/2886/2279 4084/2887/2280 4081/2884/136 +f 4085/2888/2281 4083/2886/2279 4082/2885/2278 +f 4084/2887/2280 4083/2886/2279 4086/2889/2282 +f 4083/2886/2279 4085/2888/2281 4086/2889/2282 +f 4086/2889/2282 4087/2890/64 4084/2887/2280 +f 4088/2891/2283 4086/2889/2282 4085/2888/2281 +f 4086/2889/2282 4089/2892/2284 4087/2890/64 +f 4086/2889/2282 4088/2891/2283 4090/2893/2285 +f 4089/2892/2284 4086/2889/2282 4090/2893/2285 +f 4091/2856/2286 4092/2855/2287 4093/2857/2288 +f 4094/2858/1138 4091/2856/2286 4093/2857/2288 +f 4092/2855/2287 4091/2856/2286 4095/2859/2289 +f 4091/2856/2286 4094/2858/1138 4096/2860/2290 +f 4097/2861/2291 4095/2859/2289 4091/2856/2286 +f 4091/2856/2286 4096/2860/2290 4097/2861/2291 +f 4095/2859/2289 4097/2861/2291 4098/2862/2292 +f 4097/2861/2291 4096/2860/2290 4099/2863/2293 +f 4100/2864/2294 4098/2862/2292 4097/2861/2291 +f 4099/2863/2293 4100/2864/2294 4097/2861/2291 +f 4101/2865/2295 4098/2862/2292 4100/2864/2294 +f 4100/2864/2294 4099/2863/2293 4102/2866/678 +f 4100/2864/2294 4103/2867/2296 4101/2865/2295 +f 4100/2864/2294 4102/2866/678 4104/2868/2297 +f 4103/2867/2296 4100/2864/2294 4104/2868/2297 +f 4105/2869/1832 4104/2868/2297 4102/2866/678 +f 4104/2868/2297 4106/2870/2298 4103/2867/2296 +f 4104/2868/2297 4105/2869/1832 4107/2871/2299 +f 4106/2870/2298 4104/2868/2297 4107/2871/2299 +f 4108/2872/2300 4107/2871/2299 4105/2869/1832 +f 4107/2871/2299 4109/2873/2301 4106/2870/2298 +f 4107/2871/2299 4108/2872/2300 4110/2874/2302 +f 4109/2873/2301 4107/2871/2299 4110/2874/2302 +f 4111/2875/66 4110/2874/2302 4108/2872/2300 +f 4112/2876/2303 4109/2873/2301 4110/2874/2302 +f 4110/2874/2302 4111/2875/66 4112/2876/2303 +f 4113/2877/2304 4109/2873/2301 4112/2876/2303 +f 4114/2878/2305 4112/2876/2303 4111/2875/66 +f 4115/2879/2306 4113/2877/2304 4112/2876/2303 +f 4112/2876/2303 4114/2878/2305 4115/2879/2306 +f 4116/2880/2307 4113/2877/2304 4115/2879/2306 +f 4117/2881/2308 4115/2879/2306 4114/2878/2305 +f 4118/2882/2309 4116/2880/2307 4115/2879/2306 +f 4115/2879/2306 4117/2881/2308 4118/2882/2309 +f 4119/2883/2310 4116/2880/2307 4118/2882/2309 +f 4120/2884/424 4118/2882/2309 4117/2881/2308 +f 4118/2882/2309 4121/2885/2311 4119/2883/2310 +f 4120/2884/424 4122/2886/2312 4118/2882/2309 +f 4121/2885/2311 4118/2882/2309 4122/2886/2312 +f 4123/2887/2313 4122/2886/2312 4120/2884/424 +f 4122/2886/2312 4124/2888/2314 4121/2885/2311 +f 4123/2887/2313 4125/2889/2315 4122/2886/2312 +f 4124/2888/2314 4122/2886/2312 4125/2889/2315 +f 4126/2890/2316 4125/2889/2315 4123/2887/2313 +f 4125/2889/2315 4127/2891/2317 4124/2888/2314 +f 4125/2889/2315 4126/2890/2316 4128/2892/2318 +f 4127/2891/2317 4125/2889/2315 4129/2893/2319 +f 4128/2892/2318 4129/2893/2319 4125/2889/2315 +f 4130/2894/2320 4131/2895/2321 4132/2896/2321 +f 4133/2897/2322 4130/2894/2320 4132/2896/2321 +f 4131/2895/2321 4130/2894/2320 4134/2898/2323 +f 4135/2899/2324 4130/2894/2320 4133/2897/2322 +f 4130/2894/2320 4136/2900/2325 4134/2898/2323 +f 4135/2899/2324 4136/2900/2325 4130/2894/2320 +f 4136/2900/2325 4137/2901/2326 4134/2898/2323 +f 4136/2900/2325 4135/2899/2324 4138/2902/2327 +f 4136/2900/2325 4139/2903/2328 4137/2901/2326 +f 4140/2904/2328 4136/2900/2325 4138/2902/2327 +f 4139/2903/2328 4136/2900/2325 4141/2905/2328 +f 4136/2900/2325 4140/2904/2328 4141/2905/2328 +f 4142/2906/2329 4143/2907/2330 4144/2908/2331 +f 4145/2909/55 4142/2906/2329 4144/2908/2331 +f 4142/2906/2329 4146/2910/2332 4143/2907/2330 +f 4142/2906/2329 4145/2909/55 4147/2911/2333 +f 4148/2912/2334 4146/2910/2332 4142/2906/2329 +f 4147/2911/2333 4148/2912/2334 4142/2906/2329 +f 4148/2912/2334 4149/2913/2335 4146/2910/2332 +f 4148/2912/2334 4147/2911/2333 4150/2914/2336 +f 4148/2912/2334 4151/2915/2337 4149/2913/2335 +f 4152/2916/2338 4148/2912/2334 4150/2914/2336 +f 4151/2915/2337 4148/2912/2334 4153/2917/2339 +f 4152/2916/2338 4153/2917/2339 4148/2912/2334 +f 4154/2918/2340 4155/2919/2341 4156/2920/2342 +f 4156/2920/2342 4157/2921/2343 4154/2918/2340 +f 4154/2918/2340 4158/2922/593 4155/2919/2341 +f 4157/2921/2343 4159/2923/2344 4154/2918/2340 +f 4159/2923/2344 4157/2921/2343 4160/2924/2345 +f 4158/2922/593 4154/2918/2340 4161/2925/12 +f 4161/2925/12 4154/2918/2340 4159/2923/2344 +f 4162/2926/2346 4158/2922/593 4161/2925/12 +f 4158/2922/593 4162/2926/2346 4163/2927/2347 +f 4163/2927/2347 4162/2926/2346 4164/2928/2348 +f 4164/2928/2348 4162/2926/2346 4165/2929/2349 +f 4161/2925/12 4159/2923/2344 4166/2930/2350 +f 4162/2926/2346 4161/2925/12 4166/2930/2350 +f 4167/2931/2351 4165/2929/2349 4162/2926/2346 +f 4162/2926/2346 4166/2930/2350 4167/2931/2351 +f 4165/2929/2349 4167/2931/2351 4168/2932/2352 +f 4168/2932/2352 4167/2931/2351 4169/2933/2353 +f 4166/2930/2350 4169/2933/2353 4167/2931/2351 +f 4168/2932/2352 4169/2933/2353 4170/2934/2354 +f 4166/2930/2350 4159/2923/2344 4171/2935/2355 +f 4160/2924/2345 4171/2935/2355 4159/2923/2344 +f 4171/2935/2355 4160/2924/2345 4172/2936/2356 +f 4166/2930/2350 4171/2935/2355 4173/2937/2357 +f 4169/2933/2353 4166/2930/2350 4173/2937/2357 +f 4172/2936/2356 4174/2938/2358 4171/2935/2355 +f 4173/2937/2357 4171/2935/2355 4174/2938/2358 +f 4174/2938/2358 4172/2936/2356 4175/2939/2359 +f 4169/2933/2353 4173/2937/2357 4176/2940/2360 +f 4173/2937/2357 4174/2938/2358 4176/2940/2360 +f 4177/2941/2361 4170/2934/2354 4169/2933/2353 +f 4169/2933/2353 4176/2940/2360 4177/2941/2361 +f 4170/2934/2354 4177/2941/2361 4178/2942/2362 +f 4175/2939/2359 4179/2943/2363 4174/2938/2358 +f 4176/2940/2360 4174/2938/2358 4179/2943/2363 +f 4179/2943/2363 4175/2939/2359 4180/2944/2364 +f 4180/2944/2364 4181/2945/2365 4179/2943/2363 +f 4182/2946/2366 4178/2942/2362 4177/2941/2361 +f 4176/2940/2360 4182/2946/2366 4177/2941/2361 +f 4178/2942/2362 4182/2946/2366 4183/2947/2367 +f 4184/2948/2368 4183/2947/2367 4182/2946/2366 +f 4176/2940/2360 4179/2943/2363 4185/2949/2369 +f 4182/2946/2366 4176/2940/2360 4185/2949/2369 +f 4181/2945/2365 4186/2950/2370 4179/2943/2363 +f 4186/2950/2370 4185/2949/2369 4179/2943/2363 +f 4181/2945/2365 4187/2951/2371 4186/2950/2370 +f 4188/2952/2372 4182/2946/2366 4185/2949/2369 +f 4186/2950/2370 4188/2952/2372 4185/2949/2369 +f 4184/2948/2368 4182/2946/2366 4189/2953/2373 +f 4188/2952/2372 4189/2953/2373 4182/2946/2366 +f 4190/2954/2374 4184/2948/2368 4189/2953/2373 +f 4187/2951/2371 4191/2955/2375 4186/2950/2370 +f 4191/2955/2375 4188/2952/2372 4186/2950/2370 +f 4192/2956/2376 4191/2955/2375 4187/2951/2371 +f 4190/2954/2374 4189/2953/2373 4193/2957/2377 +f 4189/2953/2373 4188/2952/2372 4193/2957/2377 +f 4193/2957/2377 4194/2958/2378 4190/2954/2374 +f 4191/2955/2375 4195/2959/2379 4188/2952/2372 +f 4195/2959/2379 4193/2957/2377 4188/2952/2372 +f 4196/2960/2380 4195/2959/2379 4191/2955/2375 +f 4196/2960/2380 4193/2957/2377 4195/2959/2379 +f 4191/2955/2375 4192/2956/2376 4197/2961/2381 +f 4197/2961/2381 4196/2960/2380 4191/2955/2375 +f 4194/2958/2378 4193/2957/2377 4198/2962/2382 +f 4198/2962/2382 4193/2957/2377 4196/2960/2380 +f 4192/2956/2376 4199/2963/2383 4197/2961/2381 +f 4192/2956/2376 4200/2964/2384 4199/2963/2383 +f 4201/2965/2385 4196/2960/2380 4197/2961/2381 +f 4201/2965/2385 4198/2962/2382 4196/2960/2380 +f 4199/2963/2383 4201/2965/2385 4197/2961/2381 +f 4198/2962/2382 4202/2966/2386 4194/2958/2378 +f 4202/2966/2386 4198/2962/2382 4201/2965/2385 +f 4203/2967/2387 4194/2958/2378 4202/2966/2386 +f 4201/2965/2385 4199/2963/2383 4204/2968/2388 +f 4204/2968/2388 4202/2966/2386 4201/2965/2385 +f 4202/2966/2386 4205/2969/2389 4203/2967/2387 +f 4202/2966/2386 4204/2968/2388 4205/2969/2389 +f 4206/2970/2390 4203/2967/2387 4205/2969/2389 +f 4205/2969/2389 4207/2971/2391 4206/2970/2390 +f 4208/2972/2392 4204/2968/2388 4199/2963/2383 +f 4200/2964/2384 4208/2972/2392 4199/2963/2383 +f 4200/2964/2384 4209/2973/2393 4208/2972/2392 +f 4210/2974/2394 4208/2972/2392 4209/2973/2393 +f 4211/2975/2395 4205/2969/2389 4204/2968/2388 +f 4204/2968/2388 4208/2972/2392 4211/2975/2395 +f 4207/2971/2391 4205/2969/2389 4212/2976/2396 +f 4211/2975/2395 4212/2976/2396 4205/2969/2389 +f 4208/2972/2392 4210/2974/2394 4213/2977/2397 +f 4213/2977/2397 4211/2975/2395 4208/2972/2392 +f 4214/2978/2398 4207/2971/2391 4212/2976/2396 +f 4214/2978/2398 4215/2979/2399 4207/2971/2391 +f 4214/2978/2398 4216/2980/2400 4215/2979/2399 +f 4217/2981/2401 4212/2976/2396 4211/2975/2395 +f 4212/2976/2396 4217/2981/2401 4214/2978/2398 +f 4211/2975/2395 4213/2977/2397 4217/2981/2401 +f 4216/2980/2400 4214/2978/2398 4218/2982/2402 +f 4218/2982/2402 4219/2983/2403 4216/2980/2400 +f 4214/2978/2398 4217/2981/2401 4220/2984/2404 +f 4214/2978/2398 4220/2984/2404 4218/2982/2402 +f 4221/2985/2405 4217/2981/2401 4213/2977/2397 +f 4221/2985/2405 4220/2984/2404 4217/2981/2401 +f 4210/2974/2394 4221/2985/2405 4213/2977/2397 +f 4221/2985/2405 4210/2974/2394 4222/2986/2406 +f 4223/2987/2407 4221/2985/2405 4222/2986/2406 +f 4221/2985/2405 4223/2987/2407 4224/2988/2408 +f 4220/2984/2404 4221/2985/2405 4224/2988/2408 +f 4225/2989/2409 4224/2988/2408 4223/2987/2407 +f 4224/2988/2408 4226/2990/848 4220/2984/2404 +f 4218/2982/2402 4220/2984/2404 4226/2990/848 +f 4224/2988/2408 4225/2989/2409 4227/2991/2410 +f 4226/2990/848 4224/2988/2408 4227/2991/2410 +f 4225/2989/2409 4228/2992/2411 4227/2991/2410 +f 4226/2990/848 4227/2991/2410 4228/2992/2411 +f 4225/2989/2409 4229/2993/2412 4228/2992/2411 +f 4230/2994/2413 4228/2992/2411 4229/2993/2412 +f 4218/2982/2402 4226/2990/848 4231/2995/2414 +f 4219/2983/2403 4218/2982/2402 4231/2995/2414 +f 4231/2995/2414 4232/2996/2415 4219/2983/2403 +f 4226/2990/848 4232/2996/2415 4231/2995/2414 +f 4233/2997/2416 4219/2983/2403 4232/2996/2415 +f 4232/2996/2415 4234/2998/2417 4233/2997/2416 +f 4226/2990/848 4228/2992/2411 4235/2999/43 +f 4232/2996/2415 4226/2990/848 4235/2999/43 +f 4228/2992/2411 4230/2994/2413 4236/3000/2418 +f 4236/3000/2418 4235/2999/43 4228/2992/2411 +f 4234/2998/2417 4232/2996/2415 4237/3001/2419 +f 4235/2999/43 4237/3001/2419 4232/2996/2415 +f 4235/2999/43 4236/3000/2418 4238/3002/2420 +f 4237/3001/2419 4235/2999/43 4238/3002/2420 +f 4230/2994/2413 4239/3003/2421 4236/3000/2418 +f 4239/3003/2421 4230/2994/2413 4240/3004/2422 +f 4236/3000/2418 4241/3005/2423 4238/3002/2420 +f 4237/3001/2419 4238/3002/2420 4241/3005/2423 +f 4241/3005/2423 4236/3000/2418 4239/3003/2421 +f 4242/3006/2424 4234/2998/2417 4237/3001/2419 +f 4237/3001/2419 4241/3005/2423 4242/3006/2424 +f 4234/2998/2417 4242/3006/2424 4243/3007/2425 +f 4239/3003/2421 4244/3008/1767 4241/3005/2423 +f 4244/3008/1767 4242/3006/2424 4241/3005/2423 +f 4240/3004/2422 4245/3009/2426 4239/3003/2421 +f 4244/3008/1767 4239/3003/2421 4245/3009/2426 +f 4245/3009/2426 4240/3004/2422 4246/3010/2427 +f 4243/3007/2425 4242/3006/2424 4247/3011/2428 +f 4242/3006/2424 4244/3008/1767 4247/3011/2428 +f 4248/3012/2429 4243/3007/2425 4247/3011/2428 +f 4245/3009/2426 4249/3013/2430 4244/3008/1767 +f 4247/3011/2428 4244/3008/1767 4249/3013/2430 +f 4246/3010/2427 4250/3014/2431 4245/3009/2426 +f 4249/3013/2430 4245/3009/2426 4250/3014/2431 +f 4250/3014/2431 4246/3010/2427 4251/3015/2432 +f 4251/3015/2432 4252/3016/2433 4250/3014/2431 +f 4253/3017/2434 4248/3012/2429 4247/3011/2428 +f 4247/3011/2428 4249/3013/2430 4253/3017/2434 +f 4248/3012/2429 4253/3017/2434 4254/3018/2435 +f 4253/3017/2434 4255/3019/2436 4254/3018/2435 +f 4250/3014/2431 4252/3016/2433 4256/3020/2437 +f 4256/3020/2437 4249/3013/2430 4250/3014/2431 +f 4252/3016/2433 4257/3021/2438 4256/3020/2437 +f 4253/3017/2434 4258/3022/2439 4255/3019/2436 +f 4249/3013/2430 4258/3022/2439 4253/3017/2434 +f 4255/3019/2436 4258/3022/2439 4259/3023/2440 +f 4249/3013/2430 4256/3020/2437 4260/3024/2441 +f 4258/3022/2439 4249/3013/2430 4260/3024/2441 +f 4256/3020/2437 4257/3021/2438 4261/3025/2442 +f 4261/3025/2442 4260/3024/2441 4256/3020/2437 +f 4257/3021/2438 4262/3026/2443 4261/3025/2442 +f 4258/3022/2439 4263/3027/2444 4259/3023/2440 +f 4260/3024/2441 4263/3027/2444 4258/3022/2439 +f 4264/3028/2445 4259/3023/2440 4263/3027/2444 +f 4260/3024/2441 4261/3025/2442 4265/3029/2446 +f 4263/3027/2444 4260/3024/2441 4265/3029/2446 +f 4261/3025/2442 4262/3026/2443 4266/3030/2447 +f 4267/3031/2448 4266/3030/2447 4262/3026/2443 +f 4265/3029/2446 4261/3025/2442 4268/3032/2449 +f 4263/3027/2444 4265/3029/2446 4268/3032/2449 +f 4266/3030/2447 4268/3032/2449 4261/3025/2442 +f 4263/3027/2444 4269/3033/2450 4264/3028/2445 +f 4263/3027/2444 4268/3032/2449 4269/3033/2450 +f 4270/3034/2451 4264/3028/2445 4269/3033/2450 +f 4266/3030/2447 4271/3035/2452 4268/3032/2449 +f 4269/3033/2450 4268/3032/2449 4271/3035/2452 +f 4266/3030/2447 4267/3031/2448 4272/3036/2453 +f 4271/3035/2452 4266/3030/2447 4272/3036/2453 +f 4273/3037/2454 4272/3036/2453 4267/3031/2448 +f 4270/3034/2451 4269/3033/2450 4274/3038/2455 +f 4269/3033/2450 4271/3035/2452 4274/3038/2455 +f 4274/3038/2455 4275/3039/2456 4270/3034/2451 +f 4273/3037/2454 4276/3040/2457 4272/3036/2453 +f 4276/3040/2457 4271/3035/2452 4272/3036/2453 +f 4276/3040/2457 4273/3037/2454 4277/3041/2458 +f 4275/3039/2456 4274/3038/2455 4278/3042/2459 +f 4271/3035/2452 4278/3042/2459 4274/3038/2455 +f 4278/3042/2459 4279/3043/2460 4275/3039/2456 +f 4271/3035/2452 4276/3040/2457 4280/3044/2461 +f 4278/3042/2459 4271/3035/2452 4280/3044/2461 +f 4281/3045/2462 4276/3040/2457 4277/3041/2458 +f 4281/3045/2462 4280/3044/2461 4276/3040/2457 +f 4282/3046/2463 4281/3045/2462 4277/3041/2458 +f 4279/3043/2460 4278/3042/2459 4283/3047/2464 +f 4280/3044/2461 4283/3047/2464 4278/3042/2459 +f 4283/3047/2464 4284/3048/2465 4279/3043/2460 +f 4280/3044/2461 4281/3045/2462 4285/3049/2466 +f 4283/3047/2464 4280/3044/2461 4285/3049/2466 +f 4281/3045/2462 4282/3046/2463 4286/3050/2467 +f 4286/3050/2467 4285/3049/2466 4281/3045/2462 +f 4287/3051/2468 4286/3050/2467 4282/3046/2463 +f 4284/3048/2465 4283/3047/2464 4288/3052/2469 +f 4285/3049/2466 4288/3052/2469 4283/3047/2464 +f 4288/3052/2469 4289/3053/2470 4284/3048/2465 +f 4285/3049/2466 4286/3050/2467 4290/3054/1388 +f 4288/3052/2469 4285/3049/2466 4290/3054/1388 +f 4286/3050/2467 4287/3051/2468 4291/3055/2471 +f 4291/3055/2471 4290/3054/1388 4286/3050/2467 +f 4287/3051/2468 4292/3056/2472 4291/3055/2471 +f 4293/3057/2473 4291/3055/2471 4292/3056/2472 +f 4289/3053/2470 4288/3052/2469 4294/3058/2474 +f 4290/3054/1388 4294/3058/2474 4288/3052/2469 +f 4295/3059/2475 4289/3053/2470 4294/3058/2474 +f 4295/3059/2475 4294/3058/2474 4296/3060/2476 +f 4290/3054/1388 4291/3055/2471 4297/3061/2477 +f 4294/3058/2474 4290/3054/1388 4297/3061/2477 +f 4293/3057/2473 4297/3061/2477 4291/3055/2471 +f 4297/3061/2477 4296/3060/2476 4294/3058/2474 +f 4297/3061/2477 4293/3057/2473 4298/3062/593 +f 4296/3060/2476 4297/3061/2477 4298/3062/593 +f 4299/3063/2478 4300/3064/2479 2170/1356/965 +f 2170/1356/965 2174/1360/968 4299/3063/2478 +f 4299/3063/2478 4301/3065/12 4300/3064/2479 +f 2174/1360/968 4302/3066/2480 4299/3063/2478 +f 2175/1361/969 4302/3066/2480 2174/1360/968 +f 4301/3065/12 4299/3063/2478 4303/3067/2481 +f 4302/3066/2480 2175/1361/969 4304/3068/2482 +f 2182/1368/974 4304/3068/2482 2175/1361/969 +f 4299/3063/2478 4302/3066/2480 4305/3069/2483 +f 4305/3069/2483 4303/3067/2481 4299/3063/2478 +f 4304/3068/2482 2182/1368/974 4306/3070/2484 +f 2183/1369/975 4306/3070/2484 2182/1368/974 +f 4306/3070/2484 2183/1369/975 4307/3071/2485 +f 4304/3068/2482 4308/3072/2486 4302/3066/2480 +f 4302/3066/2480 4308/3072/2486 4305/3069/2483 +f 4306/3070/2484 4309/3073/189 4304/3068/2482 +f 4308/3072/2486 4304/3068/2482 4309/3073/189 +f 4307/3071/2485 4310/3074/2487 4306/3070/2484 +f 4310/3074/2487 4309/3073/189 4306/3070/2484 +f 4310/3074/2487 4307/3071/2485 4311/3075/2488 +f 4311/3075/2488 4312/3076/2489 4310/3074/2487 +f 4310/3074/2487 4313/3077/12 4309/3073/189 +f 4314/3078/2490 4310/3074/2487 4312/3076/2489 +f 4313/3077/12 4310/3074/2487 4314/3078/2490 +f 4315/3079/2491 4314/3078/2490 4312/3076/2489 +f 4315/3079/2491 4313/3077/12 4314/3078/2490 +f 4315/3079/2491 4312/3076/2489 4316/3080/2492 +f 4317/3081/2493 4315/3079/2491 4316/3080/2492 +f 4318/3082/593 4309/3073/189 4313/3077/12 +f 4309/3073/189 4318/3082/593 4308/3072/2486 +f 4313/3077/12 4315/3079/2491 4319/3083/195 +f 4319/3083/195 4318/3082/593 4313/3077/12 +f 4315/3079/2491 4317/3081/2493 4320/3084/2494 +f 4319/3083/195 4315/3079/2491 4320/3084/2494 +f 2091/1277/907 4320/3084/2494 4317/3081/2493 +f 4320/3084/2494 2091/1277/907 2090/1276/906 +f 2090/1276/906 4321/3085/2495 4320/3084/2494 +f 4320/3084/2494 4321/3085/2495 4319/3083/195 +f 4321/3085/2495 2090/1276/906 2083/1269/901 +f 4318/3082/593 4319/3083/195 4322/3086/2496 +f 4321/3085/2495 4322/3086/2496 4319/3083/195 +f 2083/1269/901 4323/3087/2497 4321/3085/2495 +f 4322/3086/2496 4321/3085/2495 4323/3087/2497 +f 4323/3087/2497 2083/1269/901 2082/1268/900 +f 4322/3086/2496 4324/3088/2498 4318/3082/593 +f 4324/3088/2498 4308/3072/2486 4318/3082/593 +f 4325/3089/2499 4323/3087/2497 2082/1268/900 +f 2082/1268/900 2078/1264/898 4325/3089/2499 +f 4325/3089/2499 2078/1264/898 4326/3090/2500 +f 4301/3065/12 4325/3089/2499 4326/3090/2500 +f 4325/3089/2499 4301/3065/12 4303/3067/2481 +f 4325/3089/2499 4327/3091/2501 4323/3087/2497 +f 4303/3067/2481 4327/3091/2501 4325/3089/2499 +f 4322/3086/2496 4323/3087/2497 4327/3091/2501 +f 4327/3091/2501 4303/3067/2481 4328/3092/2502 +f 4327/3091/2501 4329/3093/2503 4322/3086/2496 +f 4327/3091/2501 4328/3092/2502 4329/3093/2503 +f 4324/3088/2498 4322/3086/2496 4329/3093/2503 +f 4324/3088/2498 4329/3093/2503 4328/3092/2502 +f 4303/3067/2481 4305/3069/2483 4328/3092/2502 +f 4328/3092/2502 4330/3094/2504 4324/3088/2498 +f 4330/3094/2504 4328/3092/2502 4305/3069/2483 +f 4308/3072/2486 4324/3088/2498 4330/3094/2504 +f 4305/3069/2483 4308/3072/2486 4330/3094/2504 +f 4331/3095/2505 4332/3096/2506 4333/3097/2507 +f 4331/3095/2505 4334/3098/2508 4332/3096/2506 +f 4333/3097/2507 4332/3096/2506 4335/3099/2509 +f 4334/3098/2508 4336/3100/2510 4332/3096/2506 +f 4333/3097/2507 4335/3099/2509 4337/3101/2511 +f 4334/3098/2508 4338/3102/2512 4336/3100/2510 +f 4337/3101/2511 4335/3099/2509 4339/3103/2513 +f 4338/3102/2512 4340/3104/2514 4336/3100/2510 +f 4341/3105/2515 4337/3101/2511 4339/3103/2513 +f 4338/3102/2512 4342/3106/2516 4340/3104/2514 +f 4337/3101/2511 4341/3105/2515 4343/3107/2517 +f 4342/3106/2516 4338/3102/2512 4344/3108/2518 +f 4341/3105/2515 4345/3109/2519 4343/3107/2517 +f 4342/3106/2516 4344/3108/2518 4346/3110/2520 +f 4345/3109/2519 4341/3105/2515 4347/3111/2521 +f 4342/3106/2516 4346/3110/2520 4348/3112/2522 +f 4347/3111/2521 4349/3113/2523 4345/3109/2519 +f 4348/3112/2522 4346/3110/2520 4350/3114/2524 +f 4349/3113/2523 4347/3111/2521 4351/3115/2525 +f 4348/3112/2522 4350/3114/2524 4352/3116/2526 +f 4351/3115/2525 4353/3117/2527 4349/3113/2523 +f 4352/3116/2526 4350/3114/2524 4354/3118/2528 +f 4353/3117/2527 4351/3115/2525 4355/3119/2529 +f 4352/3116/2526 4354/3118/2528 4356/3120/2530 +f 4357/3121/2531 4353/3117/2527 4355/3119/2529 +f 4354/3118/2528 4358/3122/2532 4356/3120/2530 +f 4353/3117/2527 4357/3121/2531 4359/3123/2533 +f 4358/3122/2532 4354/3118/2528 4360/3124/2534 +f 4361/3125/2535 4359/3123/2533 4357/3121/2531 +f 4360/3124/2534 4362/3126/2536 4358/3122/2532 +f 4359/3123/2533 4361/3125/2535 4363/3127/2537 +f 4362/3126/2536 4360/3124/2534 4364/3128/2538 +f 4365/3129/2539 4363/3127/2537 4361/3125/2535 +f 4364/3128/2538 4366/3130/2540 4362/3126/2536 +f 4363/3127/2537 4365/3129/2539 4367/3131/2541 +f 4366/3130/2540 4364/3128/2538 4368/3132/2542 +f 4369/3133/2543 4367/3131/2541 4365/3129/2539 +f 4368/3132/2542 4370/3134/2544 4366/3130/2540 +f 4367/3131/2541 4369/3133/2543 4371/3135/2545 +f 4370/3134/2544 4368/3132/2542 4372/3136/2546 +f 4373/3137/2547 4371/3135/2545 4369/3133/2543 +f 4374/3138/2548 4370/3134/2544 4372/3136/2546 +f 4375/3139/2549 4373/3137/2547 4369/3133/2543 +f 4370/3134/2544 4374/3138/2548 4376/3140/2550 +f 4377/3141/2551 4373/3137/2547 4375/3139/2549 +f 4378/3142/2552 4376/3140/2550 4374/3138/2548 +f 4379/3143/2553 4377/3141/2551 4375/3139/2549 +f 4376/3140/2550 4378/3142/2552 4380/3144/2554 +f 4379/3143/2553 4381/3145/793 4377/3141/2551 +f 4381/3145/793 4380/3144/2554 4378/3142/2552 +f 4381/3145/793 4379/3143/2553 4382/3146/2555 +f 4380/3144/2554 4381/3145/793 4382/3146/2555 +f 4383/2766/9 4384/2762/1661 4385/2764/2556 +f 4384/2762/1661 4383/2766/9 4386/2767/9 +f 4387/2765/9 4384/2762/1661 4386/2767/9 +f 4384/2762/1661 4387/2765/9 4388/2763/2556 +f 4384/2762/1661 4389/2761/2237 4385/2764/2556 +f 4384/2762/1661 4388/2763/2556 4390/2760/2237 +f 4389/2761/2237 4384/2762/1661 4391/2759/2236 +f 4384/2762/1661 4390/2760/2237 4391/2759/2236 +f 4391/2759/2236 4392/2758/2238 4389/2761/2237 +f 4393/2757/2238 4391/2759/2236 4390/2760/2237 +f 4392/2758/2238 4391/2759/2236 4394/2756/2238 +f 4391/2759/2236 4393/2757/2238 4394/2756/2238 +f 4395/2750/2557 4392/2758/2238 4394/2756/2238 +f 4393/2757/2238 4395/2750/2557 4394/2756/2238 +f 4392/2758/2238 4395/2750/2557 4396/2755/2240 +f 4395/2750/2557 4393/2757/2238 4397/2754/2240 +f 4395/2750/2557 4398/2753/8 4396/2755/2240 +f 4395/2750/2557 4397/2754/2240 4399/2751/8 +f 4398/2753/8 4395/2750/2557 4400/2752/8 +f 4399/2751/8 4400/2752/8 4395/2750/2557 +f 4401/2762/2221 4402/2765/8 4403/2763/2222 +f 4402/2765/8 4401/2762/2221 4404/2767/8 +f 4405/2766/8 4404/2767/8 4401/2762/2221 +f 4401/2762/2221 4406/2764/2222 4405/2766/8 +f 4407/2760/2238 4401/2762/2221 4403/2763/2222 +f 4401/2762/2221 4408/2761/2238 4406/2764/2222 +f 4401/2762/2221 4407/2760/2238 4409/2759/2238 +f 4408/2761/2238 4401/2762/2221 4409/2759/2238 +f 4407/2760/2238 4410/2756/2236 4409/2759/2238 +f 4410/2756/2236 4408/2761/2238 4409/2759/2238 +f 4410/2756/2236 4407/2760/2238 4411/2757/2558 +f 4408/2761/2238 4410/2756/2236 4412/2758/2558 +f 4411/2757/2558 4413/2750/2235 4410/2756/2236 +f 4413/2750/2235 4412/2758/2558 4410/2756/2236 +f 4413/2750/2235 4411/2757/2558 4414/2754/2559 +f 4413/2750/2235 4415/2755/2559 4412/2758/2558 +f 4416/2751/9 4413/2750/2235 4414/2754/2559 +f 4413/2750/2235 4417/2753/9 4415/2755/2559 +f 4413/2750/2235 4416/2751/9 4418/2752/9 +f 4417/2753/9 4413/2750/2235 4418/2752/9 +f 4419/3147/2560 4420/3148/2561 4421/3149/2562 +f 4420/3148/2561 4419/3147/2560 4422/3150/2563 +f 4421/3149/2562 4423/3151/2562 4419/3147/2560 +f 4424/3152/2564 4422/3150/2563 4419/3147/2560 +f 4424/3152/2564 4419/3147/2560 4423/3151/2562 +f 4422/3150/2563 4424/3152/2564 4425/3153/2565 +f 4423/3151/2562 4421/3149/2562 4426/3154/2566 +f 4427/3155/2567 4425/3153/2565 4424/3152/2564 +f 4424/3152/2564 4423/3151/2562 4427/3155/2567 +f 4425/3153/2565 4427/3155/2567 4428/3156/2568 +f 4427/3155/2567 4429/3157/2569 4428/3156/2568 +f 4426/3154/2566 4430/3158/2570 4423/3151/2562 +f 4429/3157/2569 4427/3155/2567 4431/3159/2571 +f 4432/3160/2566 4430/3158/2570 4426/3154/2566 +f 4433/3161/2572 4432/3160/2566 4426/3154/2566 +f 4430/3158/2570 4434/3162/2573 4423/3151/2562 +f 4434/3162/2573 4427/3155/2567 4423/3151/2562 +f 4432/3160/2566 4434/3162/2573 4430/3158/2570 +f 4427/3155/2567 4434/3162/2573 4431/3159/2571 +f 4433/3161/2572 4435/3163/2573 4432/3160/2566 +f 4432/3160/2566 4435/3163/2573 4434/3162/2573 +f 4433/3161/2572 4436/3164/2574 4435/3163/2573 +f 4436/3164/2574 4434/3162/2573 4435/3163/2573 +f 4433/3161/2572 4437/3165/2572 4436/3164/2574 +f 4436/3164/2574 4438/3166/2575 4434/3162/2573 +f 4437/3165/2572 4438/3166/2575 4436/3164/2574 +f 4437/3165/2572 4439/3167/2576 4438/3166/2575 +f 4438/3166/2575 4439/3167/2576 4434/3162/2573 +f 4440/3168/2576 4439/3167/2576 4437/3165/2572 +f 4434/3162/2573 4441/3169/2577 4431/3159/2571 +f 4441/3169/2577 4434/3162/2573 4439/3167/2576 +f 4441/3169/2577 4429/3157/2569 4431/3159/2571 +f 4429/3157/2569 4441/3169/2577 4442/3170/2578 +f 4441/3169/2577 4443/3171/2579 4442/3170/2578 +f 4443/3171/2579 4441/3169/2577 4444/3172/2580 +f 4444/3172/2580 4441/3169/2577 4439/3167/2576 +f 4444/3172/2580 4445/3173/2581 4443/3171/2579 +f 4444/3172/2580 4439/3167/2576 4446/3174/2582 +f 4444/3172/2580 4446/3174/2582 4445/3173/2581 +f 4439/3167/2576 4440/3168/2576 4446/3174/2582 +f 4446/3174/2582 4447/3175/2583 4445/3173/2581 +f 4447/3175/2583 4446/3174/2582 4440/3168/2576 +f 4448/3176/2584 4449/3177/2585 4450/3178/2586 +f 4451/3179/2587 4448/3176/2584 4450/3178/2586 +f 4449/3177/2585 4448/3176/2584 4452/3180/2588 +f 4452/3180/2588 4453/3181/2589 4449/3177/2585 +f 4448/3176/2584 4451/3179/2587 4454/3182/2590 +f 4453/3181/2589 4452/3180/2588 4455/3183/2591 +f 4456/3184/2592 4453/3181/2589 4455/3183/2591 +f 4452/3180/2588 4448/3176/2584 4457/3185/8 +f 4455/3183/2591 4452/3180/2588 4457/3185/8 +f 4448/3176/2584 4454/3182/2590 4457/3185/8 +f 4456/3184/2592 4455/3183/2591 4458/3186/2593 +f 4458/3186/2593 4455/3183/2591 4457/3185/8 +f 4459/3187/2594 4456/3184/2592 4458/3186/2593 +f 4459/3187/2594 4458/3186/2593 4457/3185/8 +f 4456/3184/2592 4459/3187/2594 4460/3188/2595 +f 4459/3187/2594 4461/3189/2596 4460/3188/2595 +f 4461/3189/2596 4459/3187/2594 4462/3190/2597 +f 4462/3190/2597 4459/3187/2594 4457/3185/8 +f 4463/3191/2598 4461/3189/2596 4462/3190/2597 +f 4463/3191/2598 4462/3190/2597 4457/3185/8 +f 4461/3189/2596 4463/3191/2598 4464/3192/2599 +f 4463/3191/2598 4465/3193/2600 4464/3192/2599 +f 4465/3193/2600 4463/3191/2598 4466/3194/2601 +f 4466/3194/2601 4463/3191/2598 4457/3185/8 +f 4467/3195/2602 4465/3193/2600 4466/3194/2601 +f 4467/3195/2602 4466/3194/2601 4457/3185/8 +f 4465/3193/2600 4467/3195/2602 4468/3196/2603 +f 4469/3197/2604 4468/3196/2603 4467/3195/2602 +f 4467/3195/2602 4470/3198/2605 4469/3197/2604 +f 4470/3198/2605 4467/3195/2602 4457/3185/8 +f 4471/3199/2606 4469/3197/2604 4470/3198/2605 +f 4471/3199/2606 4470/3198/2605 4457/3185/8 +f 4469/3197/2604 4471/3199/2606 4472/3200/2607 +f 4471/3199/2606 4473/3201/2608 4472/3200/2607 +f 4473/3201/2608 4471/3199/2606 4474/3202/2609 +f 4474/3202/2609 4471/3199/2606 4457/3185/8 +f 4475/3203/2610 4473/3201/2608 4474/3202/2609 +f 4475/3203/2610 4474/3202/2609 4457/3185/8 +f 4473/3201/2608 4475/3203/2610 4476/3204/2611 +f 4477/3205/2612 4476/3204/2611 4475/3203/2610 +f 4477/3205/2612 4475/3203/2610 4457/3185/8 +f 4476/3204/2611 4477/3205/2612 4478/3206/2613 +f 4479/3207/2614 4477/3205/2612 4457/3185/8 +f 4479/3207/2614 4478/3206/2613 4477/3205/2612 +f 4454/3182/2590 4479/3207/2614 4457/3185/8 +f 4478/3206/2613 4479/3207/2614 4480/3208/2615 +f 4479/3207/2614 4454/3182/2590 4451/3179/2587 +f 4451/3179/2587 4480/3208/2615 4479/3207/2614 +f 4481/3209/2616 4482/3210/2617 4483/3211/924 +f 4484/3212/2618 4482/3210/2617 4481/3209/2616 +f 4485/3213/2619 4483/3211/924 4482/3210/2617 +f 4486/3214/2620 4483/3211/924 4485/3213/2619 +f 4482/3210/2617 4484/3212/2618 4487/3215/2621 +f 4488/3216/2622 4486/3214/2620 4485/3213/2619 +f 4488/3216/2622 4489/3217/2623 4486/3214/2620 +f 4485/3213/2619 4482/3210/2617 4490/3218/2624 +f 4487/3215/2621 4490/3218/2624 4482/3210/2617 +f 4488/3216/2622 4485/3213/2619 4491/3219/2625 +f 4485/3213/2619 4490/3218/2624 4491/3219/2625 +f 4484/3212/2618 4492/3220/2626 4487/3215/2621 +f 4492/3220/2626 4484/3212/2618 4493/3221/2627 +f 4490/3218/2624 4487/3215/2621 4494/3222/2628 +f 4492/3220/2626 4494/3222/2628 4487/3215/2621 +f 4495/3223/66 4491/3219/2625 4490/3218/2624 +f 4495/3223/66 4490/3218/2624 4494/3222/2628 +f 4488/3216/2622 4491/3219/2625 4496/3224/2629 +f 4495/3223/66 4496/3224/2629 4491/3219/2625 +f 4497/3225/2630 4488/3216/2622 4496/3224/2629 +f 4495/3223/66 4497/3225/2630 4496/3224/2629 +f 4488/3216/2622 4497/3225/2630 4498/3226/2631 +f 4489/3217/2623 4488/3216/2622 4498/3226/2631 +f 4499/3227/2632 4498/3226/2631 4497/3225/2630 +f 4495/3223/66 4499/3227/2632 4497/3225/2630 +f 4500/3228/2633 4489/3217/2623 4498/3226/2631 +f 4498/3226/2631 4499/3227/2632 4500/3228/2633 +f 4500/3228/2633 4501/3229/2634 4489/3217/2623 +f 4502/3230/2635 4500/3228/2633 4499/3227/2632 +f 4495/3223/66 4502/3230/2635 4499/3227/2632 +f 4503/3231/2636 4501/3229/2634 4500/3228/2633 +f 4500/3228/2633 4502/3230/2635 4503/3231/2636 +f 4503/3231/2636 4504/3232/2637 4501/3229/2634 +f 4503/3231/2636 4505/3233/2638 4504/3232/2637 +f 4506/3234/2639 4503/3231/2636 4502/3230/2635 +f 4495/3223/66 4506/3234/2639 4502/3230/2635 +f 4505/3233/2638 4503/3231/2636 4507/3235/2640 +f 4503/3231/2636 4506/3234/2639 4507/3235/2640 +f 4507/3235/2640 4508/3236/2641 4505/3233/2638 +f 4509/3237/2642 4507/3235/2640 4506/3234/2639 +f 4508/3236/2641 4507/3235/2640 4509/3237/2642 +f 4509/3237/2642 4506/3234/2639 4510/3238/2643 +f 4510/3238/2643 4506/3234/2639 4495/3223/66 +f 4511/3239/2644 4508/3236/2641 4509/3237/2642 +f 4511/3239/2644 4509/3237/2642 4510/3238/2643 +f 4508/3236/2641 4511/3239/2644 4512/3240/2645 +f 4511/3239/2644 4513/3241/2646 4512/3240/2645 +f 4514/3242/2647 4510/3238/2643 4495/3223/66 +f 4511/3239/2644 4510/3238/2643 4514/3242/2647 +f 4513/3241/2646 4511/3239/2644 4515/3243/2648 +f 4515/3243/2648 4516/3244/2649 4513/3241/2646 +f 4517/3245/2650 4511/3239/2644 4514/3242/2647 +f 4511/3239/2644 4517/3245/2650 4515/3243/2648 +f 4518/3246/24 4514/3242/2647 4495/3223/66 +f 4518/3246/24 4517/3245/2650 4514/3242/2647 +f 4495/3223/66 4519/3247/2651 4518/3246/24 +f 4519/3247/2651 4495/3223/66 4494/3222/2628 +f 4494/3222/2628 4492/3220/2626 4519/3247/2651 +f 4518/3246/24 4520/3248/2652 4517/3245/2650 +f 4520/3248/2652 4515/3243/2648 4517/3245/2650 +f 4519/3247/2651 4521/3249/2653 4518/3246/24 +f 4518/3246/24 4521/3249/2653 4520/3248/2652 +f 4492/3220/2626 4521/3249/2653 4519/3247/2651 +f 4515/3243/2648 4520/3248/2652 4522/3250/2654 +f 4516/3244/2649 4515/3243/2648 4522/3250/2654 +f 4523/3251/2655 4520/3248/2652 4521/3249/2653 +f 4523/3251/2655 4522/3250/2654 4520/3248/2652 +f 4492/3220/2626 4523/3251/2655 4521/3249/2653 +f 4523/3251/2655 4516/3244/2649 4522/3250/2654 +f 4493/3221/2627 4523/3251/2655 4492/3220/2626 +f 4516/3244/2649 4523/3251/2655 4524/3252/2656 +f 4523/3251/2655 4493/3221/2627 4524/3252/2656 +f 4525/3209/2657 4526/3211/2658 4527/3210/2659 +f 4527/3210/2659 4528/3212/2660 4525/3209/2657 +f 4526/3211/2658 4529/3213/2661 4527/3210/2659 +f 4530/3214/2662 4529/3213/2661 4526/3211/2658 +f 4528/3212/2660 4527/3210/2659 4531/3215/2663 +f 4532/3216/2664 4529/3213/2661 4530/3214/2662 +f 4533/3217/2665 4532/3216/2664 4530/3214/2662 +f 4529/3213/2661 4534/3218/2666 4527/3210/2659 +f 4534/3218/2666 4531/3215/2663 4527/3210/2659 +f 4532/3216/2664 4535/3219/2667 4529/3213/2661 +f 4534/3218/2666 4529/3213/2661 4535/3219/2667 +f 4536/3220/2668 4528/3212/2660 4531/3215/2663 +f 4528/3212/2660 4536/3220/2668 4537/3221/2669 +f 4531/3215/2663 4534/3218/2666 4538/3222/2670 +f 4538/3222/2670 4536/3220/2668 4531/3215/2663 +f 4539/3223/29 4534/3218/2666 4535/3219/2667 +f 4539/3223/29 4538/3222/2670 4534/3218/2666 +f 4535/3219/2667 4532/3216/2664 4540/3224/2671 +f 4539/3223/29 4535/3219/2667 4540/3224/2671 +f 4532/3216/2664 4541/3225/2672 4540/3224/2671 +f 4539/3223/29 4540/3224/2671 4541/3225/2672 +f 4541/3225/2672 4532/3216/2664 4542/3226/2673 +f 4532/3216/2664 4533/3217/2665 4542/3226/2673 +f 4542/3226/2673 4543/3227/2674 4541/3225/2672 +f 4539/3223/29 4541/3225/2672 4543/3227/2674 +f 4544/3228/2675 4542/3226/2673 4533/3217/2665 +f 4543/3227/2674 4542/3226/2673 4544/3228/2675 +f 4545/3229/2676 4544/3228/2675 4533/3217/2665 +f 4544/3228/2675 4546/3230/2677 4543/3227/2674 +f 4539/3223/29 4543/3227/2674 4546/3230/2677 +f 4547/3231/2678 4544/3228/2675 4545/3229/2676 +f 4546/3230/2677 4544/3228/2675 4547/3231/2678 +f 4548/3232/2679 4547/3231/2678 4545/3229/2676 +f 4549/3233/2680 4547/3231/2678 4548/3232/2679 +f 4547/3231/2678 4550/3234/2681 4546/3230/2677 +f 4539/3223/29 4546/3230/2677 4550/3234/2681 +f 4547/3231/2678 4549/3233/2680 4551/3235/2682 +f 4550/3234/2681 4547/3231/2678 4551/3235/2682 +f 4552/3236/2683 4551/3235/2682 4549/3233/2680 +f 4551/3235/2682 4553/3237/2684 4550/3234/2681 +f 4551/3235/2682 4552/3236/2683 4553/3237/2684 +f 4550/3234/2681 4553/3237/2684 4554/3238/2685 +f 4554/3238/2685 4539/3223/29 4550/3234/2681 +f 4552/3236/2683 4555/3239/2686 4553/3237/2684 +f 4555/3239/2686 4554/3238/2685 4553/3237/2684 +f 4555/3239/2686 4552/3236/2683 4556/3240/2687 +f 4557/3241/2688 4555/3239/2686 4556/3240/2687 +f 4558/3242/2689 4539/3223/29 4554/3238/2685 +f 4558/3242/2689 4554/3238/2685 4555/3239/2686 +f 4555/3239/2686 4557/3241/2688 4559/3243/2690 +f 4560/3244/2691 4559/3243/2690 4557/3241/2688 +f 4555/3239/2686 4561/3245/2692 4558/3242/2689 +f 4561/3245/2692 4555/3239/2686 4559/3243/2690 +f 4562/3246/29 4539/3223/29 4558/3242/2689 +f 4562/3246/29 4558/3242/2689 4561/3245/2692 +f 4563/3247/2693 4539/3223/29 4562/3246/29 +f 4539/3223/29 4563/3247/2693 4538/3222/2670 +f 4536/3220/2668 4538/3222/2670 4563/3247/2693 +f 4562/3246/29 4561/3245/2692 4564/3248/2694 +f 4559/3243/2690 4564/3248/2694 4561/3245/2692 +f 4563/3247/2693 4562/3246/29 4565/3249/2695 +f 4563/3247/2693 4565/3249/2695 4536/3220/2668 +f 4562/3246/29 4564/3248/2694 4565/3249/2695 +f 4536/3220/2668 4565/3249/2695 4566/3251/2696 +f 4564/3248/2694 4566/3251/2696 4565/3249/2695 +f 4566/3251/2696 4537/3221/2669 4536/3220/2668 +f 4566/3251/2696 4567/3252/2697 4537/3221/2669 +f 4566/3251/2696 4560/3244/2691 4567/3252/2697 +f 4566/3251/2696 4564/3248/2694 4568/3250/2698 +f 4560/3244/2691 4566/3251/2696 4568/3250/2698 +f 4564/3248/2694 4559/3243/2690 4568/3250/2698 +f 4559/3243/2690 4560/3244/2691 4568/3250/2698 +f 4569/3253/8 4570/3254/8 4571/3255/8 +f 4572/3256/8 4569/3253/8 4571/3255/8 +f 4573/3257/8 4571/3255/8 4570/3254/8 +f 4574/3258/8 4572/3256/8 4571/3255/8 +f 4575/3259/8 4571/3255/8 4573/3257/8 +f 4576/3260/8 4574/3258/8 4571/3255/8 +f 4577/3261/8 4571/3255/8 4575/3259/8 +f 4578/3262/8 4576/3260/8 4571/3255/8 +f 4579/3263/8 4571/3255/8 4577/3261/8 +f 4580/3264/8 4578/3262/8 4571/3255/8 +f 4581/3265/8 4571/3255/8 4579/3263/8 +f 4582/3266/8 4580/3264/8 4571/3255/8 +f 4583/3267/8 4571/3255/8 4581/3265/8 +f 4584/3268/8 4582/3266/8 4571/3255/8 +f 4585/3269/8 4571/3255/8 4583/3267/8 +f 4586/3270/8 4584/3268/8 4571/3255/8 +f 4587/3271/8 4571/3255/8 4585/3269/8 +f 4588/3272/8 4586/3270/8 4571/3255/8 +f 4589/3273/8 4571/3255/8 4587/3271/8 +f 4590/3274/8 4588/3272/8 4571/3255/8 +f 4591/3275/8 4571/3255/8 4589/3273/8 +f 4592/3276/8 4590/3274/8 4571/3255/8 +f 4593/3277/8 4571/3255/8 4591/3275/8 +f 4594/3278/8 4592/3276/8 4571/3255/8 +f 4595/3279/8 4571/3255/8 4593/3277/8 +f 4594/3278/8 4571/3255/8 4595/3279/8 +f 4597/1473/2699 4596/1479/1175 4599/1472/1176 +f 4599/1472/1176 4596/1479/1175 4598/1476/1177 diff --git a/3Design/frontend/src/components/GalleryPost/Page/GalleryPost.tsx b/3Design/frontend/src/components/GalleryPost/Page/GalleryPost.tsx index 4f94c895..95192335 100644 --- a/3Design/frontend/src/components/GalleryPost/Page/GalleryPost.tsx +++ b/3Design/frontend/src/components/GalleryPost/Page/GalleryPost.tsx @@ -21,7 +21,7 @@ const GalleryPost = ({postData, publishedAnnotationsProps} : Props) => { const [data, setData] = useState(postData); const [modelAppearence, setModelAppearence] = useState(false); const bodyRef = useRef(null); - const [annotationData, setAnnotationData] = useState({content: "", endIndex: null, postId: 1, startIndex: null, userId: parseInt(localStorage.getItem("user_id") ?? "-1")}); + const [annotationData, setAnnotationData] = useState({content: "", endIndex: null, postId: postData.postId, startIndex: null, userId: parseInt(localStorage.getItem("user_id") ?? "-1")}); const [anchorEl, setAnchorEl] = React.useState(null); const [downloadStatus, setDownloadStatus] = useState(false); @@ -218,7 +218,7 @@ const dislikeClicked = async (event:any) =>{ message.success("Annotation published successfully."); postPhase = true; setAnnotatedText(""); - const refreshedAnnotations = await axios.get(`${process.env.REACT_APP_API_URL}/api/v1/annotations/get?postId=${1}`, + const refreshedAnnotations = await axios.get(`${process.env.REACT_APP_API_URL}/api/v1/annotations/get?postId=${postData.postId}`, {headers: {Authorization: `Bearer ${localStorage.getItem("jwt_token")}`}} ); setPublishedAnnotations(refreshedAnnotations.data); From 6b555bce9bfa2f74f4f5447735888b2435ff6e33 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ersel=20=C3=87anak=C3=A7=C4=B1l=C4=B1?= <73749586+erselcanakcili@users.noreply.github.com> Date: Mon, 25 Nov 2024 06:52:38 +0300 Subject: [PATCH 14/28] Post like dislike fix --- .../Clickable/DiscussionPost.tsx | 2 +- .../DiscussionPost/Page/DiscussionPost.tsx | 7 +- .../GalleryPost/Clickable/GalleryPost.tsx | 144 +++++++++++++++--- .../GalleryPost/Page/GalleryPost.tsx | 40 ++--- 4 files changed, 147 insertions(+), 46 deletions(-) diff --git a/3Design/frontend/src/components/DiscussionPost/Clickable/DiscussionPost.tsx b/3Design/frontend/src/components/DiscussionPost/Clickable/DiscussionPost.tsx index 2a1b32c4..64fdcf8c 100644 --- a/3Design/frontend/src/components/DiscussionPost/Clickable/DiscussionPost.tsx +++ b/3Design/frontend/src/components/DiscussionPost/Clickable/DiscussionPost.tsx @@ -19,7 +19,7 @@ const DiscussionPost = ({postData} : Props) => { const handleBookmark = async (event:any) => { event.stopPropagation(); try{ - const commentData = {reactionType:"DISLIKE",bookmark: !data.bookmark}; + const commentData = {reactionType:data.reactionType,bookmark: !data.bookmark}; const res = await axios.post( `${process.env.REACT_APP_API_URL}/api/v1/posts/${data.postId}/react`, commentData, diff --git a/3Design/frontend/src/components/DiscussionPost/Page/DiscussionPost.tsx b/3Design/frontend/src/components/DiscussionPost/Page/DiscussionPost.tsx index 4576d643..b4e9023d 100644 --- a/3Design/frontend/src/components/DiscussionPost/Page/DiscussionPost.tsx +++ b/3Design/frontend/src/components/DiscussionPost/Page/DiscussionPost.tsx @@ -17,6 +17,7 @@ interface Props{ const DiscussionPost = ({postData, publishedAnnotationsProps} : Props) => { const [data, setData] = useState(postData); + console.log(data); const bodyRef = useRef(null); const [annotationData, setAnnotationData] = useState({content: "", endIndex: null, postId: postData.postId, startIndex: null, userId: parseInt(localStorage.getItem("user_id") ?? "-1")}); @@ -219,14 +220,16 @@ const DiscussionPost = ({postData, publishedAnnotationsProps} : Props) => { } useEffect(() => { + if (comment === ""){ fetchCommentData(); - }, [comment]) + } + }, [comment]); const handleBookmark = async (event:any) => { event.stopPropagation(); try{ - const commentData = {reactionType:"DISLIKE",bookmark: !data.bookmark}; + const commentData = {reactionType:data.reactionType,bookmark: !data.bookmark}; const res = await axios.post( `${process.env.REACT_APP_API_URL}/api/v1/posts/${data.postId}/react`, commentData, diff --git a/3Design/frontend/src/components/GalleryPost/Clickable/GalleryPost.tsx b/3Design/frontend/src/components/GalleryPost/Clickable/GalleryPost.tsx index 3d2e7708..f67f44b8 100644 --- a/3Design/frontend/src/components/GalleryPost/Clickable/GalleryPost.tsx +++ b/3Design/frontend/src/components/GalleryPost/Clickable/GalleryPost.tsx @@ -6,6 +6,7 @@ import { ChevronRight,Bookmark, BookmarkBorderOutlined, BorderColor, Download, M import { IconButton, Menu, MenuItem } from '@mui/material' import { grey } from '@mui/material/colors'; import { formatInteractions,getCategoryById } from '../../tsfunctions' +import axios from 'axios' interface Props{ postData: DPost, } @@ -18,31 +19,127 @@ const GalleryPost = ({postData} : Props) => { const [downloadStatus, setDownloadStatus] = useState(false); - const likeClicked = async (event:any) =>{ + const handleBookmark = async (event:any) => { event.stopPropagation(); - if (data.disliked){ - setData((prev) => ({...prev, disliked: false, liked: true, likeCount: prev.likes + 1, dislikes: prev.dislikes - 1})); - return; + try{ + const commentData = {reactionType:data.reactionType,bookmark: !data.bookmark}; + const res = await axios.post( + `${process.env.REACT_APP_API_URL}/api/v1/posts/${data.postId}/react`, + commentData, + {headers: { + Authorization: `Bearer ${localStorage.getItem("jwt_token")}` + }} + ); + console.log(res.data); } - if (data.liked){ - setData((prev) => ({...prev, liked: false, likes: prev.likes - 1})); - return; + catch(e){ + console.log(e); } - setData((prev) => ({...prev, disliked: false, liked: true, likes: prev.likes + 1})); - } + setData((prev) => ({...prev, bookmark: !prev.bookmark})); +} +const likeClicked = async (event:any) =>{ + event.stopPropagation(); + if (data.reactionType === "DISLIKE"){ + try{ + const res = await axios.post( + `${process.env.REACT_APP_API_URL}/api/v1/posts/${data.postId}/react`, + {reactionType:"LIKE",bookmark: data.bookmark }, + {headers: { + Authorization: `Bearer ${localStorage.getItem("jwt_token")}` + }} + ); + console.log(res.data); + } + catch(e){ + console.log(e); + } + setData((prev) => ({...prev,reactionType:"LIKE", likes: prev.likes + 1, dislikes: prev.dislikes - 1})); + return; + } + if (data.reactionType === "LIKE"){ + try{ + const res = await axios.post( + `${process.env.REACT_APP_API_URL}/api/v1/posts/${data.postId}/react`, + {reactionType:"NONE",bookmark: data.bookmark }, + {headers: { + Authorization: `Bearer ${localStorage.getItem("jwt_token")}` + }} + ); + console.log(res.data); + } + catch(e){ + console.log(e); + } + setData((prev) => ({...prev, reactionType:"NONE" , liked: false, likes: prev.likes - 1})); + return; + } + try{ + const res = await axios.post( + `${process.env.REACT_APP_API_URL}/api/v1/posts/${data.postId}/react`, + {reactionType:"LIKE",bookmark: data.bookmark }, + {headers: { + Authorization: `Bearer ${localStorage.getItem("jwt_token")}` + }} + ); + console.log(res.data); + } + catch(e){ + console.log(e); + } + setData((prev) => ({...prev, reactionType:"LIKE" ,liked: true, likes: prev.likes + 1})); +} - const dislikeClicked = async (event:any) =>{ +const dislikeClicked = async (event:any) =>{ event.stopPropagation(); - if (data.liked){ - setData((prev) => ({...prev, liked: false, disliked: true, dislikes: prev.dislikes + 1, likes: prev.likes - 1})); - return; + if (data.reactionType === "LIKE"){ + try{ + const res = await axios.post( + `${process.env.REACT_APP_API_URL}/api/v1/posts/${data.postId}/react`, + {reactionType:"DISLIKE",bookmark: data.bookmark }, + {headers: { + Authorization: `Bearer ${localStorage.getItem("jwt_token")}` + }} + ); + console.log(res.data); + } + catch(e){ + console.log(e); + } + setData((prev) => ({...prev, reactionType:"DISLIKE",likes: prev.likes - 1, dislikes: prev.dislikes + 1})); + return; } - if (data.disliked){ - setData((prev) => ({...prev, disliked: false, dislikes: prev.dislikes - 1})); - return; + if (data.reactionType === "DISLIKE"){ + try{ + const res = await axios.post( + `${process.env.REACT_APP_API_URL}/api/v1/posts/${data.postId}/react`, + {reactionType:"NONE",bookmark: data.bookmark }, + {headers: { + Authorization: `Bearer ${localStorage.getItem("jwt_token")}` + }} + ); + console.log(res.data); + } + catch(e){ + console.log(e); + } + setData((prev) => ({...prev,reactionType:"NONE",dislikes: prev.dislikes - 1})); + return; } - setData((prev) => ({...prev, liked: false, disliked: true, dislikes: prev.dislikes + 1})); - } + try{ + const res = await axios.post( + `${process.env.REACT_APP_API_URL}/api/v1/posts/${data.postId}/react`, + {reactionType:"DISLIKE",bookmark: data.bookmark }, + {headers: { + Authorization: `Bearer ${localStorage.getItem("jwt_token")}` + }} + ); + console.log(res.data); + } + catch(e){ + console.log(e); + } + setData((prev) => ({...prev,reactionType:"DISLIKE",dislikes: prev.dislikes + 1})); +} const downloadModel = (event:any) => { event.stopPropagation(); @@ -60,7 +157,7 @@ const GalleryPost = ({postData} : Props) => { return (
{window.location.href = `/post/${postData.postId}`}}>
- +

{data.user?.nickName}

@@ -94,7 +191,7 @@ const GalleryPost = ({postData} : Props) => {
@@ -354,7 +358,7 @@ const fetchCommentData = async () => {
) : postData.length == 0 ? -

There are currently no posts here.

+

Follow categories or users to get recommended posts.

: (postData.map((item, index) => ( item.isVisualPost ? From 8a701bf05a50457a6870e4fdd1c665458908d3ee Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ersel=20=C3=87anak=C3=A7=C4=B1l=C4=B1?= <73749586+erselcanakcili@users.noreply.github.com> Date: Mon, 25 Nov 2024 15:50:18 +0300 Subject: [PATCH 16/28] small ui fix --- .../src/components/GalleryPost/Clickable/GalleryPost.tsx | 2 +- .../frontend/src/components/GalleryPost/Page/GalleryPost.tsx | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/3Design/frontend/src/components/GalleryPost/Clickable/GalleryPost.tsx b/3Design/frontend/src/components/GalleryPost/Clickable/GalleryPost.tsx index f67f44b8..5f9cf12f 100644 --- a/3Design/frontend/src/components/GalleryPost/Clickable/GalleryPost.tsx +++ b/3Design/frontend/src/components/GalleryPost/Clickable/GalleryPost.tsx @@ -166,7 +166,7 @@ const dislikeClicked = async (event:any) =>{
{ data.isVisualPost && data.challengedPostId !== null ?
- +

Challenged to post

: null } diff --git a/3Design/frontend/src/components/GalleryPost/Page/GalleryPost.tsx b/3Design/frontend/src/components/GalleryPost/Page/GalleryPost.tsx index c38d6d5d..5850a6c8 100644 --- a/3Design/frontend/src/components/GalleryPost/Page/GalleryPost.tsx +++ b/3Design/frontend/src/components/GalleryPost/Page/GalleryPost.tsx @@ -304,7 +304,7 @@ const fetchCommentData = async () => {
{data.isVisualPost && data.challengedPostId !== null ?
- +

Challenged to post

From a0a5174c0fa3332c54bcb32c6712fb016eac93d7 Mon Sep 17 00:00:00 2001 From: Deniz <160037328+deniz6221@users.noreply.github.com> Date: Mon, 25 Nov 2024 16:29:17 +0300 Subject: [PATCH 17/28] Change Profile Picture connected to backend --- 3Design/frontend/.env | 2 +- .../src/components/PageHeader/PageHeader.tsx | 27 ++++++++++++++++--- 2 files changed, 25 insertions(+), 4 deletions(-) diff --git a/3Design/frontend/.env b/3Design/frontend/.env index 5195d900..cd9724ee 100644 --- a/3Design/frontend/.env +++ b/3Design/frontend/.env @@ -1 +1 @@ -REACT_APP_API_URL= "http://34.32.62.223:8080" \ No newline at end of file +REACT_APP_API_URL= "http://34.32.44.43:8080" \ No newline at end of file diff --git a/3Design/frontend/src/components/PageHeader/PageHeader.tsx b/3Design/frontend/src/components/PageHeader/PageHeader.tsx index 64a3f456..3d290242 100644 --- a/3Design/frontend/src/components/PageHeader/PageHeader.tsx +++ b/3Design/frontend/src/components/PageHeader/PageHeader.tsx @@ -49,12 +49,33 @@ const PageHeader = () => { } } - const changeProfilePicture = async (e:any) => { + const changeProfilePicture = async (e:React.ChangeEvent) => { if (!e.target.files || !e.target.files[0]){ return; } - const newUrl = URL.createObjectURL(e.target.files[0]); - setProfileInfo((prev) =>{ return {...prev!, profilePictureUrl: newUrl}}); + const fileExtension = e.target.files[0].name.split(".").pop(); + if (fileExtension != "png" && fileExtension != "jpg" && fileExtension != "jpeg"){ + e.target.files = null; + message.error("Only png, jpg and jpeg extensions are allowed."); + return; + } + setProfileInfo(null); + try{ + const fd = new FormData(); + fd.append("file", e.target.files[0]); + await axios.post(`${process.env.REACT_APP_API_URL}/api/v1/users/profile-picture/upload`, + fd, + { + headers: {Authorization: `Bearer ${localStorage.getItem("jwt_token")}`} + }); + message.success("Profile photo successfully changed."); + await fetchProfileInfo(); + } + catch(e){ + message.error("Unable to change the profile photo."); + await fetchProfileInfo(); + } + } const changePassword = async () => { From 3e8b09ee5a7486b0d754db7743e05bf6702b06d1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ersel=20=C3=87anak=C3=A7=C4=B1l=C4=B1?= <73749586+erselcanakcili@users.noreply.github.com> Date: Mon, 25 Nov 2024 18:50:20 +0300 Subject: [PATCH 18/28] links from profile picture and username to profile page, and category name to category added --- .../Clickable/DiscussionPost.tsx | 18 +++++++++++ .../DiscussionPost/Page/DiscussionPost.tsx | 18 +++++++++++ .../GalleryPost/Clickable/GalleryPost.tsx | 28 ++++++++++++++-- .../GalleryPost/Page/GalleryPost.tsx | 32 ++++++++++++++++--- 4 files changed, 89 insertions(+), 7 deletions(-) diff --git a/3Design/frontend/src/components/DiscussionPost/Clickable/DiscussionPost.tsx b/3Design/frontend/src/components/DiscussionPost/Clickable/DiscussionPost.tsx index 64fdcf8c..7090c298 100644 --- a/3Design/frontend/src/components/DiscussionPost/Clickable/DiscussionPost.tsx +++ b/3Design/frontend/src/components/DiscussionPost/Clickable/DiscussionPost.tsx @@ -142,12 +142,30 @@ const DiscussionPost = ({postData} : Props) => { return (
{window.location.href = `/post/${postData.postId}`}} >
+
+ +
{ data.isVisualPost && data.challengedPostId !== null ?
diff --git a/3Design/frontend/src/components/DiscussionPost/Page/DiscussionPost.tsx b/3Design/frontend/src/components/DiscussionPost/Page/DiscussionPost.tsx index b4e9023d..0ac9565e 100644 --- a/3Design/frontend/src/components/DiscussionPost/Page/DiscussionPost.tsx +++ b/3Design/frontend/src/components/DiscussionPost/Page/DiscussionPost.tsx @@ -279,12 +279,30 @@ const DiscussionPost = ({postData, publishedAnnotationsProps} : Props) => {
(null)} className="w-full flex gap-2">
+
+ +
{ data.isVisualPost ?
diff --git a/3Design/frontend/src/components/GalleryPost/Clickable/GalleryPost.tsx b/3Design/frontend/src/components/GalleryPost/Clickable/GalleryPost.tsx index 5f9cf12f..04f98f2b 100644 --- a/3Design/frontend/src/components/GalleryPost/Clickable/GalleryPost.tsx +++ b/3Design/frontend/src/components/GalleryPost/Clickable/GalleryPost.tsx @@ -157,17 +157,41 @@ const dislikeClicked = async (event:any) =>{ return (
{window.location.href = `/post/${postData.postId}`}}>
+
+ +
{ data.isVisualPost && data.challengedPostId !== null ? -
+
+
: null }
diff --git a/3Design/frontend/src/components/GalleryPost/Page/GalleryPost.tsx b/3Design/frontend/src/components/GalleryPost/Page/GalleryPost.tsx index 5850a6c8..dd2a2262 100644 --- a/3Design/frontend/src/components/GalleryPost/Page/GalleryPost.tsx +++ b/3Design/frontend/src/components/GalleryPost/Page/GalleryPost.tsx @@ -295,19 +295,41 @@ const fetchCommentData = async () => {
(null)} className="w-full flex gap-2">
- +
+ +
{data.isVisualPost && data.challengedPostId !== null ? -
+
+
: null }
From 95c43ecc6a6aeced647ade70d6e3c518605a495c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?H=C3=BCseyin=20T=C3=BCrker=20Erdem?= Date: Sat, 23 Nov 2024 20:04:09 +0300 Subject: [PATCH 19/28] profile page merge --- 3Design/frontend/src/App.tsx | 7 +++ .../ProfilePage/ProfilePage.module.css | 6 +++ .../components/ProfilePage/ProfilePage.tsx | 43 +++++++++++++++++++ 3Design/frontend/src/components/interfaces.ts | 7 +++ .../frontend/src/components/tsfunctions.ts | 16 +++++++ .../resources/json-files/MockProfiles.json | 14 ++++++ 6 files changed, 93 insertions(+) create mode 100644 3Design/frontend/src/components/ProfilePage/ProfilePage.module.css create mode 100644 3Design/frontend/src/components/ProfilePage/ProfilePage.tsx create mode 100644 3Design/frontend/src/resources/json-files/MockProfiles.json diff --git a/3Design/frontend/src/App.tsx b/3Design/frontend/src/App.tsx index cf92b7bc..e59ded65 100644 --- a/3Design/frontend/src/App.tsx +++ b/3Design/frontend/src/App.tsx @@ -8,6 +8,7 @@ import RegisterPage from './components/RegisterPage/RegisterPage'; import PostPage from './components/PostPage/PostPage'; import SearchResults from './components/SearchResults/SearchResults'; import LeaderboardPage from './components/TournamentLeaderboard/LeaderboardPage'; +import ProfilePage from './components/ProfilePage/ProfilePage'; function App() { return ( @@ -57,9 +58,15 @@ function App() { } /> +======= + path="/profile/:id" + element={ + +>>>>>>> 784fcb7 (profile page merge) } /> diff --git a/3Design/frontend/src/components/ProfilePage/ProfilePage.module.css b/3Design/frontend/src/components/ProfilePage/ProfilePage.module.css new file mode 100644 index 00000000..40b1ebff --- /dev/null +++ b/3Design/frontend/src/components/ProfilePage/ProfilePage.module.css @@ -0,0 +1,6 @@ +.mainContainer{ + width: 60%; + padding: 1rem; + display: flex; + flex-direction: column; +} diff --git a/3Design/frontend/src/components/ProfilePage/ProfilePage.tsx b/3Design/frontend/src/components/ProfilePage/ProfilePage.tsx new file mode 100644 index 00000000..6b858177 --- /dev/null +++ b/3Design/frontend/src/components/ProfilePage/ProfilePage.tsx @@ -0,0 +1,43 @@ +import React, { useEffect } from "react"; +import { useParams } from "react-router-dom"; +import { getProfileFromId } from "../tsfunctions"; +import { useState } from "react"; +import SideBar from "../SideBar/SideBar"; +import PageHeader from "../PageHeader/PageHeader"; +import styles from "./ProfilePage.module.css" +import { Profile } from '../interfaces' + +const ProfilePage = () => { + + const { id } = useParams(); + const [profile, setProfile] = useState(null); + + useEffect(() => { + setProfile(getProfileFromId(id)); + }, []); + + + if (!id){ + return
404
; + } + if(!profile){ + return
Loading
; + } + + + return ( + <> + +
+ +
+ testing +
+ +
+ + + ); +} + +export default ProfilePage; \ No newline at end of file diff --git a/3Design/frontend/src/components/interfaces.ts b/3Design/frontend/src/components/interfaces.ts index aefc2db8..b73ac750 100644 --- a/3Design/frontend/src/components/interfaces.ts +++ b/3Design/frontend/src/components/interfaces.ts @@ -4,6 +4,13 @@ export interface CustomProfile{ tournamentPoints : string } +export interface Profile{ + id: number, + username: string, + avatarUrl: string, + tournamentPoints: number +} + export interface Category{ name: string, id: string, diff --git a/3Design/frontend/src/components/tsfunctions.ts b/3Design/frontend/src/components/tsfunctions.ts index ccc7204a..957dcb53 100644 --- a/3Design/frontend/src/components/tsfunctions.ts +++ b/3Design/frontend/src/components/tsfunctions.ts @@ -50,4 +50,20 @@ export function limitPostBodies(x:string){ count++; } return count > 1024; +} + +export function getProfileFromId(id: string | undefined){ + if (!id){ + return null; + } + const intId = parseInt(id); + const posts = require("../resources/json-files/MockProfiles.json"); + for (let i = 0; i < posts.length; i++) { + const element: DPost = posts[i]; + if (element.postId == intId){ + return element; + } + + } + return null; } \ No newline at end of file diff --git a/3Design/frontend/src/resources/json-files/MockProfiles.json b/3Design/frontend/src/resources/json-files/MockProfiles.json new file mode 100644 index 00000000..c460461d --- /dev/null +++ b/3Design/frontend/src/resources/json-files/MockProfiles.json @@ -0,0 +1,14 @@ +[ + { + "id": 231, + "username": "turkerdm", + "avatarUrl": "/avatar.png", + "tournamentPoints": "231" + }, + { + "id": 232, + "username": "turkerdm", + "avatarUrl": "/avatar.png", + "tournamentPoints": "232" + } +] \ No newline at end of file From 68108cc3465f1e5d3494409406825dd2ab74c31d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?H=C3=BCseyin=20T=C3=BCrker=20Erdem?= Date: Sat, 23 Nov 2024 23:08:28 +0300 Subject: [PATCH 20/28] profile page self check and bugfix --- .../ProfilePage/ProfilePage.module.css | 7 +++ .../components/ProfilePage/ProfilePage.tsx | 47 +++++++++++++++---- .../frontend/src/components/tsfunctions.ts | 10 ++-- .../resources/json-files/MockProfiles.json | 14 ++++-- 4 files changed, 60 insertions(+), 18 deletions(-) diff --git a/3Design/frontend/src/components/ProfilePage/ProfilePage.module.css b/3Design/frontend/src/components/ProfilePage/ProfilePage.module.css index 40b1ebff..bee587db 100644 --- a/3Design/frontend/src/components/ProfilePage/ProfilePage.module.css +++ b/3Design/frontend/src/components/ProfilePage/ProfilePage.module.css @@ -4,3 +4,10 @@ display: flex; flex-direction: column; } +.profileAvatar { + width: 100px; /* Adjust as needed */ + height: 100px; /* Same as width for a square */ + object-fit: cover; /* Crop and fill */ + border-radius: 50%; /* Circular shape */ + } + \ No newline at end of file diff --git a/3Design/frontend/src/components/ProfilePage/ProfilePage.tsx b/3Design/frontend/src/components/ProfilePage/ProfilePage.tsx index 6b858177..d9391dd8 100644 --- a/3Design/frontend/src/components/ProfilePage/ProfilePage.tsx +++ b/3Design/frontend/src/components/ProfilePage/ProfilePage.tsx @@ -11,18 +11,41 @@ const ProfilePage = () => { const { id } = useParams(); const [profile, setProfile] = useState(null); + const [isCurrentUserProfile, setIsCurrentUserProfile] = useState(false); + + const currentUserId = localStorage.getItem("user_id"); - useEffect(() => { - setProfile(getProfileFromId(id)); - }, []); + useEffect(() => { + const fetchedProfile = getProfileFromId(id); // Fetch profile based on `id` + if (fetchedProfile) { + setProfile(fetchedProfile); + } else { + setProfile(null); // Set to null if profile not found + } + // Check if the profile belongs to the current user + if (id === currentUserId) { + setIsCurrentUserProfile(true); + } else { + setIsCurrentUserProfile(false); + } + }, [id]); // Re-run effect if `id` changes if (!id){ return
404
; } if(!profile){ - return
Loading
; - } + return ( + <> + +
+ +
+ not a valid user +
+
+ ); + } return ( @@ -31,12 +54,18 @@ const ProfilePage = () => {
- testing + Profile Avatar +

{profile.username}

+

Tournament Points: {profile.tournamentPoints}

+ {/* Check if this is the current user's profile */} + {isCurrentUserProfile &&

This is your profile!

} +
-
- - ); } diff --git a/3Design/frontend/src/components/tsfunctions.ts b/3Design/frontend/src/components/tsfunctions.ts index 957dcb53..6893c7b2 100644 --- a/3Design/frontend/src/components/tsfunctions.ts +++ b/3Design/frontend/src/components/tsfunctions.ts @@ -1,4 +1,4 @@ -import { Category, DPost } from "./interfaces"; +import { Category, DPost, Profile } from "./interfaces"; export function getCategoryById(id: string){ const categories = require("../resources/json-files/Categories.json") as Category[]; @@ -57,10 +57,10 @@ export function getProfileFromId(id: string | undefined){ return null; } const intId = parseInt(id); - const posts = require("../resources/json-files/MockProfiles.json"); - for (let i = 0; i < posts.length; i++) { - const element: DPost = posts[i]; - if (element.postId == intId){ + const profiles = require("../resources/json-files/MockProfiles.json"); + for (let i = 0; i < profiles.length; i++) { + const element: Profile = profiles[i]; + if (element.id == intId){ return element; } diff --git a/3Design/frontend/src/resources/json-files/MockProfiles.json b/3Design/frontend/src/resources/json-files/MockProfiles.json index c460461d..da6b0463 100644 --- a/3Design/frontend/src/resources/json-files/MockProfiles.json +++ b/3Design/frontend/src/resources/json-files/MockProfiles.json @@ -1,14 +1,20 @@ [ + { + "id": 1, + "username": "turkerdm1", + "avatarUrl": "/default_pp.png", + "tournamentPoints": "231" + }, { "id": 231, - "username": "turkerdm", - "avatarUrl": "/avatar.png", + "username": "turkerdm231", + "avatarUrl": "/default_pp.png", "tournamentPoints": "231" }, { "id": 232, - "username": "turkerdm", - "avatarUrl": "/avatar.png", + "username": "turkerdm232", + "avatarUrl": "/default_pp.png", "tournamentPoints": "232" } ] \ No newline at end of file From 57366627a2c4ae1666f2903bc47738eab3e24e94 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?H=C3=BCseyin=20T=C3=BCrker=20Erdem?= Date: Mon, 25 Nov 2024 08:28:50 +0300 Subject: [PATCH 21/28] necessary components are added in profile page --- .../src/components/PageHeader/PageHeader.tsx | 2 +- .../ProfilePage/ProfilePage.module.css | 101 +++++++++++ .../components/ProfilePage/ProfilePage.tsx | 171 +++++++++++++++--- 3Design/frontend/src/components/interfaces.ts | 6 - .../frontend/src/components/tsfunctions.ts | 12 +- .../resources/json-files/MockProfiles.json | 26 ++- 6 files changed, 276 insertions(+), 42 deletions(-) diff --git a/3Design/frontend/src/components/PageHeader/PageHeader.tsx b/3Design/frontend/src/components/PageHeader/PageHeader.tsx index 3d290242..82cc4189 100644 --- a/3Design/frontend/src/components/PageHeader/PageHeader.tsx +++ b/3Design/frontend/src/components/PageHeader/PageHeader.tsx @@ -2,7 +2,7 @@ import { Logout, Person } from '@mui/icons-material' import React, { useEffect, useRef, useState } from 'react' import styles from "./PageHeader.module.css"; import { Avatar, CircularProgress, Dialog, TextField } from '@mui/material'; -import { CustomProfile, CustomUser } from '../interfaces'; +import { CustomUser } from '../interfaces'; import Search from 'antd/es/input/Search'; import { message } from 'antd'; import axios from 'axios'; diff --git a/3Design/frontend/src/components/ProfilePage/ProfilePage.module.css b/3Design/frontend/src/components/ProfilePage/ProfilePage.module.css index bee587db..9c46ae4b 100644 --- a/3Design/frontend/src/components/ProfilePage/ProfilePage.module.css +++ b/3Design/frontend/src/components/ProfilePage/ProfilePage.module.css @@ -10,4 +10,105 @@ object-fit: cover; /* Crop and fill */ border-radius: 50%; /* Circular shape */ } +.profileFollowButton { + margin-top: 3px; + width: 150px; + height: 40px; + background-color: #383434; + color: white; + border: none; + border-radius: 5px; + cursor: pointer; + font-size: 16px; + transition: background-color 0.3s ease; +} + +.profileFollowButton:hover { + background-color: #181414; +} + +.profileDialogButton{ + margin-top: 3px; + width: 200px; + height: 40px; + background-color: #383434; + color: white; + border: none; + border-radius: 5px; + cursor: pointer; + font-size: 16px; + transition: background-color 0.3s ease; +} + +.profileDialogButton:hover { + background-color: #181414; +} + +/* Add a backdrop for the dialog */ +.dialogBackdrop { + position: fixed; + top: 0; + left: 0; + right: 0; + bottom: 0; + background: rgba(0, 0, 0, 0.5); + display: flex; + justify-content: center; + align-items: center; + z-index: 1000; /* Ensure the dialog is on top */ + } + + /* Style for dialog content */ + .dialogContent { + background-color: white; + padding: 20px; + border-radius: 8px; + box-shadow: 0 4px 10px rgba(0, 0, 0, 0.1); + width: 300px; + max-width: 80%; + } + + /* Dialog header and body styling */ + .dialogHeader { + font-size: 18px; + font-weight: bold; + margin-bottom: 10px; + } + + .dialogBody { + font-size: 16px; + margin-bottom: 20px; + } + + /* Dialog footer styling */ + .dialogFooter { + text-align: right; + } + + /* Scrollable List Container */ + .scrollableList { + max-height: 300px; /* Set maximum height */ + overflow-y: auto; /* Enable vertical scrolling */ + margin-bottom: 15px; + } + + .profileItem { + display: flex; + align-items: center; + padding: 10px; + border-bottom: 1px solid #ddd; + } + + .profileAvatar { + width: 40px; + height: 40px; + border-radius: 50%; + margin-right: 10px; + } + + .profileItem span { + font-size: 16px; + color: #333; + } + \ No newline at end of file diff --git a/3Design/frontend/src/components/ProfilePage/ProfilePage.tsx b/3Design/frontend/src/components/ProfilePage/ProfilePage.tsx index d9391dd8..a1443184 100644 --- a/3Design/frontend/src/components/ProfilePage/ProfilePage.tsx +++ b/3Design/frontend/src/components/ProfilePage/ProfilePage.tsx @@ -1,6 +1,6 @@ import React, { useEffect } from "react"; import { useParams } from "react-router-dom"; -import { getProfileFromId } from "../tsfunctions"; +import { getProfileFromId, getProfilesList } from "../tsfunctions"; import { useState } from "react"; import SideBar from "../SideBar/SideBar"; import PageHeader from "../PageHeader/PageHeader"; @@ -12,9 +12,13 @@ const ProfilePage = () => { const { id } = useParams(); const [profile, setProfile] = useState(null); const [isCurrentUserProfile, setIsCurrentUserProfile] = useState(false); + const [activeTab, setActiveTab] = useState(0); + const [isDialogOpen, setIsDialogOpen] = useState(false); // State to control dialog visibility + const [profilesList, setProfilesList] = useState([]); // Store the list of profiles - const currentUserId = localStorage.getItem("user_id"); + const currentUserId = localStorage.getItem("user_id"); + useEffect(() => { const fetchedProfile = getProfileFromId(id); // Fetch profile based on `id` @@ -29,6 +33,11 @@ const ProfilePage = () => { } else { setIsCurrentUserProfile(false); } + + // Fetch the list of profiles (you can replace this with actual API call or mock data) + const fetchedProfiles = getProfilesList(); + setProfilesList(fetchedProfiles); + }, [id]); // Re-run effect if `id` changes if (!id){ @@ -37,36 +46,144 @@ const ProfilePage = () => { if(!profile){ return ( <> - -
- -
- not a valid user -
-
+ +
+ +
+ not a valid user +
+
); - } + } + const defaultTabs = [ +
Content for Public Tab 1
, +
Content for Public Tab 2
, + ]; + + const currentUserTabs = [ +
Content for Current User Tab 1
, +
Content for Current User Tab 2
, +
Content for Current User Tab 3
, + ]; + + const tabContents = isCurrentUserProfile ? currentUserTabs : defaultTabs; + return ( - <> - -
- -
- Profile Avatar -

{profile.username}

-

Tournament Points: {profile.tournamentPoints}

- {/* Check if this is the current user's profile */} - {isCurrentUserProfile &&

This is your profile!

} - -
+ <> + +
+ +
+ + {/* Profile page minor header */} +
+ + Profile Avatar + +

{profile.username}

+ +

Exp Points: {profile.tournamentPoints}

+ + {!isCurrentUserProfile && ( + + ) + } + + + + + {/* Dialog button section */} +
+ +
+ + {/* Dialog section */} + {isDialogOpen && ( +
+ {profilesList.length > 0 ? ( + profilesList.map((profile) => ( +
+ {profile.username} +
+ {profile.username} +
+ Tournament Points: {profile.tournamentPoints} +
+
+
+ )) + ) : ( +

No profiles available

+ )} +
+ + ) + } +
- ); + + {/* Content section */} + {/* Tab Buttons */} +
+
+ {tabContents.map((content, index) => ( + + ))} +
+ + {/* Tab Content */} +
+ {tabContents[activeTab]} +
+
+ +
+
+ + ); } export default ProfilePage; \ No newline at end of file diff --git a/3Design/frontend/src/components/interfaces.ts b/3Design/frontend/src/components/interfaces.ts index b73ac750..44886c44 100644 --- a/3Design/frontend/src/components/interfaces.ts +++ b/3Design/frontend/src/components/interfaces.ts @@ -1,9 +1,3 @@ -export interface CustomProfile{ - username: string, - profilePhoto: string, - tournamentPoints : string -} - export interface Profile{ id: number, username: string, diff --git a/3Design/frontend/src/components/tsfunctions.ts b/3Design/frontend/src/components/tsfunctions.ts index 6893c7b2..f4663bb5 100644 --- a/3Design/frontend/src/components/tsfunctions.ts +++ b/3Design/frontend/src/components/tsfunctions.ts @@ -66,4 +66,14 @@ export function getProfileFromId(id: string | undefined){ } return null; -} \ No newline at end of file +} + +export function getProfilesList(){ + return [ + { id: 1, username: "profile1", avatarUrl: "/profile1.png", tournamentPoints: 100 }, + { id: 2, username: "profile2", avatarUrl: "/profile2.png", tournamentPoints: 150 }, + { id: 3, username: "profile3", avatarUrl: "/profile3.png", tournamentPoints: 200 }, + { id: 4, username: "profile4", avatarUrl: "/profile4.png", tournamentPoints: 250 }, + // Add more profiles as needed + ]; + }; diff --git a/3Design/frontend/src/resources/json-files/MockProfiles.json b/3Design/frontend/src/resources/json-files/MockProfiles.json index da6b0463..f08ed65c 100644 --- a/3Design/frontend/src/resources/json-files/MockProfiles.json +++ b/3Design/frontend/src/resources/json-files/MockProfiles.json @@ -3,18 +3,30 @@ "id": 1, "username": "turkerdm1", "avatarUrl": "/default_pp.png", - "tournamentPoints": "231" + "tournamentPoints": "1111" }, { - "id": 231, - "username": "turkerdm231", + "id": 2, + "username": "turkerdm2", "avatarUrl": "/default_pp.png", - "tournamentPoints": "231" + "tournamentPoints": "2222" }, { - "id": 232, - "username": "turkerdm232", + "id": 3, + "username": "turkerdm3", "avatarUrl": "/default_pp.png", - "tournamentPoints": "232" + "tournamentPoints": "3333" + }, + { + "id": 4, + "username": "turkerdm4", + "avatarUrl": "/default_pp.png", + "tournamentPoints": "4444" + }, + { + "id": 5, + "username": "turkerdm5", + "avatarUrl": "/default_pp.png", + "tournamentPoints": "5555" } ] \ No newline at end of file From 635d14eade39699e9b03f7129a0f0f46e857eb04 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?H=C3=BCseyin=20T=C3=BCrker=20Erdem?= Date: Mon, 25 Nov 2024 16:10:48 +0300 Subject: [PATCH 22/28] dialog elements are added --- .../ProfilePage/ProfilePage.module.css | 177 +++++++++------- .../components/ProfilePage/ProfilePage.tsx | 192 +++++++++++------- .../ProfilePageDialogDisplayer.module.css | 0 .../ProfilePageDialogDisplayer.tsx | 47 +++++ .../frontend/src/components/tsfunctions.ts | 6 +- 5 files changed, 271 insertions(+), 151 deletions(-) create mode 100644 3Design/frontend/src/components/ProfilePage/ProfilePageDialogDisplayer/ProfilePageDialogDisplayer.module.css create mode 100644 3Design/frontend/src/components/ProfilePage/ProfilePageDialogDisplayer/ProfilePageDialogDisplayer.tsx diff --git a/3Design/frontend/src/components/ProfilePage/ProfilePage.module.css b/3Design/frontend/src/components/ProfilePage/ProfilePage.module.css index 9c46ae4b..370567b7 100644 --- a/3Design/frontend/src/components/ProfilePage/ProfilePage.module.css +++ b/3Design/frontend/src/components/ProfilePage/ProfilePage.module.css @@ -1,17 +1,80 @@ +/* Main container */ .mainContainer{ - width: 60%; + width: 80%; padding: 1rem; display: flex; flex-direction: column; } -.profileAvatar { + + + +/* Profile Page Parent Containers */ +.profileHeaderContainer { + width: 100%; /* Adjust as needed */ + height: 20%; /* Same as width for a square */ + padding: 1px; + object-fit: cover; /* Crop and fill */ + border: 2px solid black; /* Define the border style */ + border-radius: 0; /* This ensures it stays as a rectangle (default) */ + flex-direction: column; +} +.profileContentContainer { + width: 100%; /* Adjust as needed */ + height: 80%; /* Same as width for a square */ + padding: 1px; + border: 2px solid blue; /* Define the border style */ + border-radius: 0; /* This ensures it stays as a rectangle (default) */ + flex-direction: column; +} + + + +/* Profile Page Sub Containers */ +.profileHeaderDetailsContainer { + width: 100%; /* Adjust as needed */ + height: 60%; /* Same as width for a square */ + padding: 1px; + border: 1px solid black; /* Define the border style */ + border-radius: 0; /* This ensures it stays as a rectangle (default) */ + flex-direction: column; +} +.profileHeaderButtonsContainer{ + width: 100%; /* Adjust as needed */ + height: 40%; /* Same as width for a square */ + padding: 1px; + border: 1px solid black; /* Define the border style */ + border-radius: 0; /* This ensures it stays as a rectangle (default) */ + flex-direction: row; +} +.profileContentTabsContainer { + width: 100%; /* Adjust as needed */ + height: 80%; /* Same as width for a square */ + padding: 1px; + border: 1px solid blue; /* Define the border style */ + border-radius: 0; /* This ensures it stays as a rectangle (default) */ + flex-direction: row; +} +.profileContentTabContentContainer { + width: 100%; /* Adjust as needed */ + height: 80%; /* Same as width for a square */ + padding: 1px; + border: 1px solid blue; /* Define the border style */ + border-radius: 0; /* This ensures it stays as a rectangle (default) */ + flex-direction: row; +} + + + +/* Profile Page Elements */ +.profileHeaderDetailsAvatar { width: 100px; /* Adjust as needed */ height: 100px; /* Same as width for a square */ + padding: 1px; object-fit: cover; /* Crop and fill */ border-radius: 50%; /* Circular shape */ - } -.profileFollowButton { - margin-top: 3px; +} +.profileHeaderButtonsFollowButton { + padding: 3px; width: 150px; height: 40px; background-color: #383434; @@ -22,14 +85,12 @@ font-size: 16px; transition: background-color 0.3s ease; } - -.profileFollowButton:hover { +.profileHeaderButtonsFollowButton:hover { background-color: #181414; } - -.profileDialogButton{ +.profileHeaderButtonsFollowingButton { margin-top: 3px; - width: 200px; + width: 150px; height: 40px; background-color: #383434; color: white; @@ -39,76 +100,34 @@ font-size: 16px; transition: background-color 0.3s ease; } - -.profileDialogButton:hover { +.profileHeaderButtonsFollowingButton:hover { background-color: #181414; } - -/* Add a backdrop for the dialog */ -.dialogBackdrop { - position: fixed; - top: 0; - left: 0; - right: 0; - bottom: 0; - background: rgba(0, 0, 0, 0.5); - display: flex; - justify-content: center; - align-items: center; - z-index: 1000; /* Ensure the dialog is on top */ - } - - /* Style for dialog content */ - .dialogContent { - background-color: white; - padding: 20px; - border-radius: 8px; - box-shadow: 0 4px 10px rgba(0, 0, 0, 0.1); - width: 300px; - max-width: 80%; - } - - /* Dialog header and body styling */ - .dialogHeader { - font-size: 18px; - font-weight: bold; - margin-bottom: 10px; - } - - .dialogBody { - font-size: 16px; - margin-bottom: 20px; - } - - /* Dialog footer styling */ - .dialogFooter { - text-align: right; - } - - /* Scrollable List Container */ - .scrollableList { - max-height: 300px; /* Set maximum height */ - overflow-y: auto; /* Enable vertical scrolling */ - margin-bottom: 15px; - } - - .profileItem { - display: flex; - align-items: center; - padding: 10px; - border-bottom: 1px solid #ddd; - } - - .profileAvatar { - width: 40px; +.profileHeaderButtonsFollowersButton { + margin-top: 3px; + width: 150px; height: 40px; - border-radius: 50%; - margin-right: 10px; - } - - .profileItem span { + background-color: #383434; + color: white; + border: none; + border-radius: 5px; + cursor: pointer; font-size: 16px; - color: #333; - } - - \ No newline at end of file + transition: background-color 0.3s ease; +} +.profileHeaderButtonsFollowersButton:hover { + background-color: #181414; +} + +/* Dialog Parent Containers */ + +/* Dialog Sub Containers */ + +/* Dialog Elements */ + + + + + + + diff --git a/3Design/frontend/src/components/ProfilePage/ProfilePage.tsx b/3Design/frontend/src/components/ProfilePage/ProfilePage.tsx index a1443184..088e40a1 100644 --- a/3Design/frontend/src/components/ProfilePage/ProfilePage.tsx +++ b/3Design/frontend/src/components/ProfilePage/ProfilePage.tsx @@ -6,6 +6,8 @@ import SideBar from "../SideBar/SideBar"; import PageHeader from "../PageHeader/PageHeader"; import styles from "./ProfilePage.module.css" import { Profile } from '../interfaces' +import { Dialog } from "@mui/material"; +import ProfileDisplayer from "./ProfilePageDialogDisplayer/ProfilePageDialogDisplayer"; const ProfilePage = () => { @@ -14,19 +16,77 @@ const ProfilePage = () => { const [isCurrentUserProfile, setIsCurrentUserProfile] = useState(false); const [activeTab, setActiveTab] = useState(0); const [isDialogOpen, setIsDialogOpen] = useState(false); // State to control dialog visibility - const [profilesList, setProfilesList] = useState([]); // Store the list of profiles + const [followerProfilesList, setFollowerProfilesList] = useState([]); // Store the list of profiles + const [followingProfilesList, setFollowingProfilesList] = useState([]); // Store the list of profiles const currentUserId = localStorage.getItem("user_id"); + const getProfileInfo = async () => { + /* Request TODO + try{ + const res = await axios.get(`${process.env.REACT_APP_API_URL}/api/v1/annotations/get?postId=${profileId}`, + { + headers: {Authorization: `Bearer ${localStorage.getItem("jwt_token")}`} + } + ); + setProfileInfo(res.data); + } + catch(e){ + + } + */ + + setProfile({"id": 5, + "username": "turkerdm5", + "avatarUrl": "/default_pp.png", + "tournamentPoints": 5555}); + }; + + + const getFollowerUserIds = async () => { + /* Request TODO + try{ + const res = await axios.get(`${process.env.REACT_APP_API_URL}/api/v1/annotations/get?postId=${profileId}`, + { + headers: {Authorization: `Bearer ${localStorage.getItem("jwt_token")}`} + } + ); + setProfileInfo(res.data); + } + catch(e){ + + } + */ + + setFollowerProfilesList([1,2,3,4]); + }; + + const getFollowingUserIds = async () => { + /* Request TODO + try{ + const res = await axios.get(`${process.env.REACT_APP_API_URL}/api/v1/annotations/get?postId=${profileId}`, + { + headers: {Authorization: `Bearer ${localStorage.getItem("jwt_token")}`} + } + ); + setProfileInfo(res.data); + } + catch(e){ + + } + */ + + setFollowingProfilesList([1,2,3]); + }; + + useEffect(() => { - const fetchedProfile = getProfileFromId(id); // Fetch profile based on `id` - if (fetchedProfile) { - setProfile(fetchedProfile); - } else { - setProfile(null); // Set to null if profile not found - } + getFollowerUserIds(); + getFollowingUserIds(); + + // Check if the profile belongs to the current user if (id === currentUserId) { setIsCurrentUserProfile(true); @@ -35,8 +95,6 @@ const ProfilePage = () => { } // Fetch the list of profiles (you can replace this with actual API call or mock data) - const fetchedProfiles = getProfilesList(); - setProfilesList(fetchedProfiles); }, [id]); // Re-run effect if `id` changes @@ -77,82 +135,80 @@ const ProfilePage = () => {
- {/* Profile page minor header */} -
+ {/* Profile Header Container*/} +
- Profile Avatar + {/* Profile Header Details Container */} +
+ + {/* Profile Header Details Avatar */} + Profile Avatar -

{profile.username}

+ {/* Profile Header Details Nickname */} +

{profile.username}

-

Exp Points: {profile.tournamentPoints}

+ {/* Profile Header Details Exp Points */} +

Exp Points: {profile.tournamentPoints}

- {!isCurrentUserProfile && ( - - ) - } - - - - - {/* Dialog button section */} -
+
+ + {/* Profile Header Buttons Container */} +
+ + {/* Profile Header Buttons Follow */} + {!isCurrentUserProfile && ( + + ) + } + + {/* Profile Header Buttons Following */} + + + {/* Profile Header Buttons Followers */}
- - {/* Dialog section */} - {isDialogOpen && ( -
- {profilesList.length > 0 ? ( - profilesList.map((profile) => ( -
- {profile.username} -
- {profile.username} -
- Tournament Points: {profile.tournamentPoints} -
-
-
+ + {/* Dialog section TODO */} + +
+ {followerProfilesList.length > 0 ? ( + followerProfilesList.map((profile) => ( + )) ) : (

No profiles available

)}
- - ) - } +
- {/* Content section */} + {/* Profile Content Container */} +
+ + {/* Profile Content Container */} + + +
{/* Tab Buttons */}
diff --git a/3Design/frontend/src/components/ProfilePage/ProfilePageDialogDisplayer/ProfilePageDialogDisplayer.module.css b/3Design/frontend/src/components/ProfilePage/ProfilePageDialogDisplayer/ProfilePageDialogDisplayer.module.css new file mode 100644 index 00000000..e69de29b diff --git a/3Design/frontend/src/components/ProfilePage/ProfilePageDialogDisplayer/ProfilePageDialogDisplayer.tsx b/3Design/frontend/src/components/ProfilePage/ProfilePageDialogDisplayer/ProfilePageDialogDisplayer.tsx new file mode 100644 index 00000000..dc8cc64d --- /dev/null +++ b/3Design/frontend/src/components/ProfilePage/ProfilePageDialogDisplayer/ProfilePageDialogDisplayer.tsx @@ -0,0 +1,47 @@ +import { Avatar } from '@mui/material' +import React, { useEffect, useState } from 'react' +import { Profile } from '../../interfaces' +import axios from 'axios' +import { Skeleton } from 'antd' +import { getProfileFromId } from "../../tsfunctions"; + + +interface Props{ + profileId : number +} +const ProfileDisplayer = ({profileId}: Props) => { + const [profileInfo,setProfileInfo] = useState(null); + useEffect(() => { + fetchUserData(); + }, []); + + const fetchUserData = async () => { + /* Request to be + try{ + const res = await axios.get(`${process.env.REACT_APP_API_URL}/api/v1/annotations/get?postId=${profileId}`, + { + headers: {Authorization: `Bearer ${localStorage.getItem("jwt_token")}`} + } + ); + setProfileInfo(res.data); + } + catch(e){ + + } + */ + setProfileInfo(getProfileFromId(profileId)); + } + if (!profileInfo){ + return( + + ) + } + return ( +
+ +

{profileInfo.username}

+
+ ) +} + +export default ProfileDisplayer \ No newline at end of file diff --git a/3Design/frontend/src/components/tsfunctions.ts b/3Design/frontend/src/components/tsfunctions.ts index f4663bb5..f90c8915 100644 --- a/3Design/frontend/src/components/tsfunctions.ts +++ b/3Design/frontend/src/components/tsfunctions.ts @@ -52,18 +52,16 @@ export function limitPostBodies(x:string){ return count > 1024; } -export function getProfileFromId(id: string | undefined){ +export function getProfileFromId(id: number | undefined){ if (!id){ return null; } - const intId = parseInt(id); const profiles = require("../resources/json-files/MockProfiles.json"); for (let i = 0; i < profiles.length; i++) { const element: Profile = profiles[i]; - if (element.id == intId){ + if (element.id == id){ return element; } - } return null; } From 68e81fb8140e33bf69a832f6345b2d317c977738 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?H=C3=BCseyin=20T=C3=BCrker=20Erdem?= Date: Mon, 25 Nov 2024 19:58:25 +0300 Subject: [PATCH 23/28] dialogs in profile page are added --- .../ProfilePage/ProfilePage.module.css | 229 +++---- .../components/ProfilePage/ProfilePage.tsx | 634 +++++++++++------- .../ProfilePageDialogDisplayer.module.css | 12 + .../ProfilePageDialogDisplayer.tsx | 91 ++- 4 files changed, 543 insertions(+), 423 deletions(-) diff --git a/3Design/frontend/src/components/ProfilePage/ProfilePage.module.css b/3Design/frontend/src/components/ProfilePage/ProfilePage.module.css index 370567b7..697b2f79 100644 --- a/3Design/frontend/src/components/ProfilePage/ProfilePage.module.css +++ b/3Design/frontend/src/components/ProfilePage/ProfilePage.module.css @@ -1,133 +1,96 @@ -/* Main container */ -.mainContainer{ - width: 80%; - padding: 1rem; - display: flex; - flex-direction: column; -} - - - -/* Profile Page Parent Containers */ -.profileHeaderContainer { - width: 100%; /* Adjust as needed */ - height: 20%; /* Same as width for a square */ - padding: 1px; - object-fit: cover; /* Crop and fill */ - border: 2px solid black; /* Define the border style */ - border-radius: 0; /* This ensures it stays as a rectangle (default) */ - flex-direction: column; -} -.profileContentContainer { - width: 100%; /* Adjust as needed */ - height: 80%; /* Same as width for a square */ - padding: 1px; - border: 2px solid blue; /* Define the border style */ - border-radius: 0; /* This ensures it stays as a rectangle (default) */ - flex-direction: column; -} - - - -/* Profile Page Sub Containers */ -.profileHeaderDetailsContainer { - width: 100%; /* Adjust as needed */ - height: 60%; /* Same as width for a square */ - padding: 1px; - border: 1px solid black; /* Define the border style */ - border-radius: 0; /* This ensures it stays as a rectangle (default) */ - flex-direction: column; -} -.profileHeaderButtonsContainer{ - width: 100%; /* Adjust as needed */ - height: 40%; /* Same as width for a square */ - padding: 1px; - border: 1px solid black; /* Define the border style */ - border-radius: 0; /* This ensures it stays as a rectangle (default) */ - flex-direction: row; -} -.profileContentTabsContainer { - width: 100%; /* Adjust as needed */ - height: 80%; /* Same as width for a square */ - padding: 1px; - border: 1px solid blue; /* Define the border style */ - border-radius: 0; /* This ensures it stays as a rectangle (default) */ - flex-direction: row; -} -.profileContentTabContentContainer { - width: 100%; /* Adjust as needed */ - height: 80%; /* Same as width for a square */ - padding: 1px; - border: 1px solid blue; /* Define the border style */ - border-radius: 0; /* This ensures it stays as a rectangle (default) */ - flex-direction: row; -} - - - -/* Profile Page Elements */ -.profileHeaderDetailsAvatar { - width: 100px; /* Adjust as needed */ - height: 100px; /* Same as width for a square */ - padding: 1px; - object-fit: cover; /* Crop and fill */ - border-radius: 50%; /* Circular shape */ -} -.profileHeaderButtonsFollowButton { - padding: 3px; - width: 150px; - height: 40px; - background-color: #383434; - color: white; - border: none; - border-radius: 5px; - cursor: pointer; - font-size: 16px; - transition: background-color 0.3s ease; -} -.profileHeaderButtonsFollowButton:hover { - background-color: #181414; -} -.profileHeaderButtonsFollowingButton { - margin-top: 3px; - width: 150px; - height: 40px; - background-color: #383434; - color: white; - border: none; - border-radius: 5px; - cursor: pointer; - font-size: 16px; - transition: background-color 0.3s ease; -} -.profileHeaderButtonsFollowingButton:hover { - background-color: #181414; -} -.profileHeaderButtonsFollowersButton { - margin-top: 3px; - width: 150px; - height: 40px; - background-color: #383434; - color: white; - border: none; - border-radius: 5px; - cursor: pointer; - font-size: 16px; - transition: background-color 0.3s ease; -} -.profileHeaderButtonsFollowersButton:hover { - background-color: #181414; -} - -/* Dialog Parent Containers */ - -/* Dialog Sub Containers */ - -/* Dialog Elements */ - - - - - - - +/* Main container */ +.mainContainer{ + width: 70%; + padding: 1rem; + display: flex; + flex-direction: column; +} + +.postContainer{ + display: flex; + flex-direction: column; + gap: 1rem; + height: 740px; + overflow-y: scroll; +} + + + + + +.profileHeaderButtonsContainer{ + width: 100%; /* Adjust as needed */ + height: 40%; /* Same as width for a square */ + padding: 1px; + border: 1px solid black; /* Define the border style */ + border-radius: 0; /* This ensures it stays as a rectangle (default) */ + flex-direction: row; +} + +.scrollableList{ + display: flex; + flex-direction: column; + gap: 20px; + padding: 10px; + height: 400px; + overflow-y: scroll; +} + +.profileHeaderDetailsAvatar { + width: 100px; /* Adjust as needed */ + height: 100px; /* Same as width for a square */ + padding: 1px; + object-fit: cover; /* Crop and fill */ + border-radius: 50%; /* Circular shape */ +} +.profileHeaderButtonsFollowButton { + padding: 3px; + width: 150px; + height: 40px; + background-color: #383434; + color: white; + border: none; + border-radius: 5px; + cursor: pointer; + font-size: 16px; + transition: background-color 0.3s ease; +} +.profileHeaderButtonsFollowButton:hover { + background-color: #181414; +} +.profileHeaderButtonsFollowingButton { + margin-top: 3px; + width: 150px; + height: 40px; + background-color: #383434; + color: white; + border: none; + border-radius: 5px; + cursor: pointer; + font-size: 16px; + transition: background-color 0.3s ease; +} +.profileHeaderButtonsFollowingButton:hover { + background-color: #181414; +} +.profileHeaderButtonsFollowersButton { + margin-top: 3px; + width: 150px; + height: 40px; + background-color: #383434; + color: white; + border: none; + border-radius: 5px; + cursor: pointer; + font-size: 16px; + transition: background-color 0.3s ease; +} +.profileHeaderButtonsFollowersButton:hover { + background-color: #181414; +} + +/* Dialog Parent Containers */ + +/* Dialog Sub Containers */ + +/* Dialog Elements */ \ No newline at end of file diff --git a/3Design/frontend/src/components/ProfilePage/ProfilePage.tsx b/3Design/frontend/src/components/ProfilePage/ProfilePage.tsx index 088e40a1..55de7015 100644 --- a/3Design/frontend/src/components/ProfilePage/ProfilePage.tsx +++ b/3Design/frontend/src/components/ProfilePage/ProfilePage.tsx @@ -1,245 +1,391 @@ -import React, { useEffect } from "react"; -import { useParams } from "react-router-dom"; -import { getProfileFromId, getProfilesList } from "../tsfunctions"; -import { useState } from "react"; -import SideBar from "../SideBar/SideBar"; -import PageHeader from "../PageHeader/PageHeader"; -import styles from "./ProfilePage.module.css" -import { Profile } from '../interfaces' -import { Dialog } from "@mui/material"; -import ProfileDisplayer from "./ProfilePageDialogDisplayer/ProfilePageDialogDisplayer"; - -const ProfilePage = () => { - - const { id } = useParams(); - const [profile, setProfile] = useState(null); - const [isCurrentUserProfile, setIsCurrentUserProfile] = useState(false); - const [activeTab, setActiveTab] = useState(0); - const [isDialogOpen, setIsDialogOpen] = useState(false); // State to control dialog visibility - const [followerProfilesList, setFollowerProfilesList] = useState([]); // Store the list of profiles - const [followingProfilesList, setFollowingProfilesList] = useState([]); // Store the list of profiles - - - const currentUserId = localStorage.getItem("user_id"); - - - const getProfileInfo = async () => { - /* Request TODO - try{ - const res = await axios.get(`${process.env.REACT_APP_API_URL}/api/v1/annotations/get?postId=${profileId}`, - { - headers: {Authorization: `Bearer ${localStorage.getItem("jwt_token")}`} - } - ); - setProfileInfo(res.data); - } - catch(e){ - - } - */ - - setProfile({"id": 5, - "username": "turkerdm5", - "avatarUrl": "/default_pp.png", - "tournamentPoints": 5555}); - }; - - - const getFollowerUserIds = async () => { - /* Request TODO - try{ - const res = await axios.get(`${process.env.REACT_APP_API_URL}/api/v1/annotations/get?postId=${profileId}`, - { - headers: {Authorization: `Bearer ${localStorage.getItem("jwt_token")}`} - } - ); - setProfileInfo(res.data); - } - catch(e){ - - } - */ - - setFollowerProfilesList([1,2,3,4]); - }; - - const getFollowingUserIds = async () => { - /* Request TODO - try{ - const res = await axios.get(`${process.env.REACT_APP_API_URL}/api/v1/annotations/get?postId=${profileId}`, - { - headers: {Authorization: `Bearer ${localStorage.getItem("jwt_token")}`} - } - ); - setProfileInfo(res.data); - } - catch(e){ - - } - */ - - setFollowingProfilesList([1,2,3]); - }; - - - useEffect(() => { - getFollowerUserIds(); - getFollowingUserIds(); - - - // Check if the profile belongs to the current user - if (id === currentUserId) { - setIsCurrentUserProfile(true); - } else { - setIsCurrentUserProfile(false); - } - - // Fetch the list of profiles (you can replace this with actual API call or mock data) - - }, [id]); // Re-run effect if `id` changes - - if (!id){ - return
404
; - } - if(!profile){ - return ( - <> - -
- -
- not a valid user -
-
- ); - } - - const defaultTabs = [ -
Content for Public Tab 1
, -
Content for Public Tab 2
, - ]; - - const currentUserTabs = [ -
Content for Current User Tab 1
, -
Content for Current User Tab 2
, -
Content for Current User Tab 3
, - ]; - - const tabContents = isCurrentUserProfile ? currentUserTabs : defaultTabs; - - - return ( - <> - -
- -
- - {/* Profile Header Container*/} -
- - {/* Profile Header Details Container */} -
- - {/* Profile Header Details Avatar */} - Profile Avatar - - {/* Profile Header Details Nickname */} -

{profile.username}

- - {/* Profile Header Details Exp Points */} -

Exp Points: {profile.tournamentPoints}

- -
- - {/* Profile Header Buttons Container */} -
- - {/* Profile Header Buttons Follow */} - {!isCurrentUserProfile && ( - - ) - } - - {/* Profile Header Buttons Following */} - - - {/* Profile Header Buttons Followers */} - -
- - {/* Dialog section TODO */} - -
- {followerProfilesList.length > 0 ? ( - followerProfilesList.map((profile) => ( - - )) - ) : ( -

No profiles available

- )} -
-
- -
- - {/* Profile Content Container */} -
- - {/* Profile Content Container */} - - -
- {/* Tab Buttons */} -
-
- {tabContents.map((content, index) => ( - - ))} -
- - {/* Tab Content */} -
- {tabContents[activeTab]} -
-
- -
-
- - ); -} - +import React, { useEffect } from "react"; +import { useParams } from "react-router-dom"; +import { useState } from "react"; +import SideBar from "../SideBar/SideBar"; +import PageHeader from "../PageHeader/PageHeader"; +import styles from "./ProfilePage.module.css" +import { CustomUser, DPost } from '../interfaces' +import { CircularProgress, Dialog } from "@mui/material"; +import ProfileDisplayer from "./ProfilePageDialogDisplayer/ProfilePageDialogDisplayer" +import axios, { AxiosError } from "axios"; +import { message, Skeleton } from "antd"; +import GalleryPost from "../GalleryPost/Clickable/GalleryPost"; +import DiscussionPost from "../DiscussionPost/Clickable/DiscussionPost"; + +const ProfilePage = () => { + + const { id } = useParams(); + const [profile, setProfile] = useState(null); + const [profileLoading, setProfileLoading] = useState(true); + const [isCurrentUserProfile, setIsCurrentUserProfile] = useState(false); + const [activeTab, setActiveTab] = useState(0); + + const [followingDialog, setFollowingDialog] = useState(false); + const [followersDialog, setFollowersDialog] = useState(false); + + const [followerProfilesList, setFollowerProfilesList] = useState([]); // Store the list of profiles + const [followingProfilesList, setFollowingProfilesList] = useState([]); // Store the list of profiles + + const [displayedPosts, setDisplayedPosts] = useState(null); + + const [currentlyFollowing, setCurrentlyFollowing] = useState(null); + + const currentUserId = localStorage.getItem("user_id"); + + const fetchPosts = async () => { + setDisplayedPosts(null); + if (activeTab == 0){ + try{ + const res = await axios.get(`${process.env.REACT_APP_API_URL}/api/v1/posts/user/${id}`, + { + headers: {Authorization: `Bearer ${localStorage.getItem("jwt_token")}`} + } + ); + setDisplayedPosts(res.data); + } + catch(e){ + setDisplayedPosts([]); + } + } + else if(activeTab == 1){ + try{ + const res = await axios.get(`${process.env.REACT_APP_API_URL}/api/v1/posts/user/${id}/reacted`, + { + headers: {Authorization: `Bearer ${localStorage.getItem("jwt_token")}`} + } + ); + setDisplayedPosts(res.data); + } + catch(e){ + setDisplayedPosts([]); + } + } + else{ + try{ + const res = await axios.get(`${process.env.REACT_APP_API_URL}/api/v1/posts/user/${id}/bookmarked`, + { + headers: {Authorization: `Bearer ${localStorage.getItem("jwt_token")}`} + } + ); + setDisplayedPosts(res.data); + } + catch(e){ + setDisplayedPosts([]); + } + } + + } + + + const getProfileInfo = async () => { + try{ + const res = await axios.get(`${process.env.REACT_APP_API_URL}/api/v1/users/${id}`, + { + headers: {Authorization: `Bearer ${localStorage.getItem("jwt_token")}`} + } + ); + setProfile(res.data); + } + catch(e){ + + } + finally{ + setProfileLoading(false); + } + } + + + const getFollowerUserIds = async () => { + try{ + const res = await axios.get(`${process.env.REACT_APP_API_URL}/api/v1/users/followers/${id}`, + { + headers: {Authorization: `Bearer ${localStorage.getItem("jwt_token")}`} + } + ); + const idList : number[] = res.data; + setFollowerProfilesList(idList); + let checked = false; + for (let cid of idList){ + if (cid == parseInt(currentUserId ?? "-1")){ + setCurrentlyFollowing(true); + return; + } + } + setCurrentlyFollowing(false); + + } + catch(e){ + if (e instanceof AxiosError && e.status == 404){ + setCurrentlyFollowing(false); + } + } + + }; + + const getFollowingUserIds = async () => { + try{ + const res = await axios.get(`${process.env.REACT_APP_API_URL}/api/v1/users/following/${id}`, + { + headers: {Authorization: `Bearer ${localStorage.getItem("jwt_token")}`} + } + ); + setFollowingProfilesList(res.data); + } + catch(e){ + + } + + }; + + + + const handleFollowLogic = async(x:boolean) => { + setCurrentlyFollowing(null); + if (x){ + try{ + await axios.post(`${process.env.REACT_APP_API_URL}/api/v1/users/follow`, + null, + { + headers: {Authorization: `Bearer ${localStorage.getItem("jwt_token")}`}, + params: {followedUserId: id} + } + ); + setCurrentlyFollowing(true); + } + catch(e){ + message.error("Couldn't follow user."); + setCurrentlyFollowing(false); + } + finally{ + getFollowerUserIds(); + getFollowingUserIds(); + return; + } + } + try{ + await axios.delete(`${process.env.REACT_APP_API_URL}/api/v1/users/unfollow`, + { + headers: {Authorization: `Bearer ${localStorage.getItem("jwt_token")}`}, + params: {followedUserId: id} + } + ); + setCurrentlyFollowing(false); + } + catch(e){ + message.error("Couldn't unfollow user."); + setCurrentlyFollowing(true); + } + finally{ + getFollowerUserIds(); + getFollowingUserIds(); + return; + } + } + + + useEffect(() => { + getFollowerUserIds(); + getFollowingUserIds(); + getProfileInfo(); + + if (id === currentUserId) { + setIsCurrentUserProfile(true); + } else { + setIsCurrentUserProfile(false); + } + + }, [id]); + + useEffect(()=> { + fetchPosts(); + }, [activeTab]) + + + if (id == undefined || id == null){ + window.location.href = "/home"; + return null; + } + + if(!/^\d+$/.test(id)){ + window.location.href = "/home"; + return null; + } + + + + if(!profile){ + return ( + <> + +
+ + {profileLoading ? +
+ +
+ : +
+ + not a valid user +
+ } + + +
+ ); + } + + const defaultTabs = [ + "Published Posts", + "Reacted Posts" + ]; + + const currentUserTabs = [ + "Published Posts", + "Reacted Posts", + "Bookmarked Posts" + ]; + + const tabContents = isCurrentUserProfile ? currentUserTabs : defaultTabs; + + + + return ( + <> + +
+ +
+ + {/* Profile Header Container*/} +
+ + {/* Profile Header Details Container */} +
+ + {/* Profile Header Details Avatar */} + Profile Avatar + + {/* Profile Header Details Nickname */} +

{profile.nickName}

+ + {/* Profile Header Details Exp Points */} +

Exp Points: {profile.experience}

+ +
+ + {/* Profile Header Buttons Container */} +
+ + {/* Profile Header Buttons Follow */} + {!isCurrentUserProfile && ( + + ) + } + + {/* Profile Header Buttons Following */} + + + {/* Profile Header Buttons Followers */} + +
+ + {/* Dialog section TODO */} + setFollowersDialog(false)} open={followersDialog}> +
+

Followers

+ {followerProfilesList.length > 0 ? ( + followerProfilesList.map((profile) => ( + + )) + ) : ( +

No profiles available

+ )} +
+
+ + setFollowingDialog(false)} open={followingDialog}> +
+

Following

+ {followingProfilesList.length > 0 ? ( + followingProfilesList.map((profile) => ( + + )) + ) : ( +

No profiles available

+ )} +
+
+ +
+ {/* Tab Buttons */} +
+
+ {tabContents.map((content, index) => ( + + ))} +
+ + {/* Tab Content */} +
+ {displayedPosts == null ? + : + (displayedPosts.length == 0 ? +

There are currently no posts here.

: +
+ {displayedPosts.map((item) => ( + item.isVisualPost ? + : + + ))} +
) + + } +
+
+ +
+
+ + ); +} + export default ProfilePage; \ No newline at end of file diff --git a/3Design/frontend/src/components/ProfilePage/ProfilePageDialogDisplayer/ProfilePageDialogDisplayer.module.css b/3Design/frontend/src/components/ProfilePage/ProfilePageDialogDisplayer/ProfilePageDialogDisplayer.module.css index e69de29b..90759260 100644 --- a/3Design/frontend/src/components/ProfilePage/ProfilePageDialogDisplayer/ProfilePageDialogDisplayer.module.css +++ b/3Design/frontend/src/components/ProfilePage/ProfilePageDialogDisplayer/ProfilePageDialogDisplayer.module.css @@ -0,0 +1,12 @@ +.profileContainer { + display: flex; + gap: 1rem; + background-color: white; + color: black; + cursor: pointer; + transition: background-color 0.3s; + } + + .profileContainer:hover { + background-color: #f0f0f0; /* Grayish background on hover */ + } \ No newline at end of file diff --git a/3Design/frontend/src/components/ProfilePage/ProfilePageDialogDisplayer/ProfilePageDialogDisplayer.tsx b/3Design/frontend/src/components/ProfilePage/ProfilePageDialogDisplayer/ProfilePageDialogDisplayer.tsx index dc8cc64d..545c7cf0 100644 --- a/3Design/frontend/src/components/ProfilePage/ProfilePageDialogDisplayer/ProfilePageDialogDisplayer.tsx +++ b/3Design/frontend/src/components/ProfilePage/ProfilePageDialogDisplayer/ProfilePageDialogDisplayer.tsx @@ -1,47 +1,46 @@ -import { Avatar } from '@mui/material' -import React, { useEffect, useState } from 'react' -import { Profile } from '../../interfaces' -import axios from 'axios' -import { Skeleton } from 'antd' -import { getProfileFromId } from "../../tsfunctions"; - - -interface Props{ - profileId : number -} -const ProfileDisplayer = ({profileId}: Props) => { - const [profileInfo,setProfileInfo] = useState(null); - useEffect(() => { - fetchUserData(); - }, []); - - const fetchUserData = async () => { - /* Request to be - try{ - const res = await axios.get(`${process.env.REACT_APP_API_URL}/api/v1/annotations/get?postId=${profileId}`, - { - headers: {Authorization: `Bearer ${localStorage.getItem("jwt_token")}`} - } - ); - setProfileInfo(res.data); - } - catch(e){ - - } - */ - setProfileInfo(getProfileFromId(profileId)); - } - if (!profileInfo){ - return( - - ) - } - return ( -
- -

{profileInfo.username}

-
- ) -} - +import { Avatar } from '@mui/material' +import React, { useEffect, useState } from 'react' +import { CustomUser } from '../../interfaces' +import axios from 'axios' +import { Skeleton } from 'antd' +import styles from "./ProfilePageDialogDisplayer.module.css" + +interface Props{ + profileId : number +} +const ProfileDisplayer = ({profileId}: Props) => { + const [profileInfo,setProfileInfo] = useState(null); + useEffect(() => { + fetchUserData(); + }, []); + + const fetchUserData = async () => { + try{ + const res = await axios.get(`${process.env.REACT_APP_API_URL}/api/v1/users/${profileId}`, + { + headers: {Authorization: `Bearer ${localStorage.getItem("jwt_token")}`} + } + ); + setProfileInfo(res.data); + } + catch(e){ + + } + } + if (!profileInfo){ + return( +
+ + +
+ ) + } + return ( +
window.location.href = `/profile/${profileId}`} className={styles.profileContainer}> + +

{profileInfo.nickName}

+
+ ) +} + export default ProfileDisplayer \ No newline at end of file From 439ffab6c3adefc1dd48f00027abd7af0eaee80b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?H=C3=BCseyin=20T=C3=BCrker=20Erdem?= Date: Mon, 25 Nov 2024 20:04:33 +0300 Subject: [PATCH 24/28] conflict resolution fix --- 3Design/frontend/src/App.tsx | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/3Design/frontend/src/App.tsx b/3Design/frontend/src/App.tsx index e59ded65..1cb91f96 100644 --- a/3Design/frontend/src/App.tsx +++ b/3Design/frontend/src/App.tsx @@ -58,15 +58,15 @@ function App() { } /> -======= + } + /> + ->>>>>>> 784fcb7 (profile page merge) } /> From 504f0806a4afe956d691cddaa761ba2e1aec52a4 Mon Sep 17 00:00:00 2001 From: Deniz <160037328+deniz6221@users.noreply.github.com> Date: Mon, 25 Nov 2024 20:56:56 +0300 Subject: [PATCH 25/28] Categories implemented, change password function --- .../src/components/GalleryPost/Page/GalleryPost.tsx | 2 +- .../src/components/PageHeader/PageHeader.tsx | 13 +++++++++---- .../src/resources/json-files/Categories.json | 13 +++++++++++-- 3 files changed, 21 insertions(+), 7 deletions(-) diff --git a/3Design/frontend/src/components/GalleryPost/Page/GalleryPost.tsx b/3Design/frontend/src/components/GalleryPost/Page/GalleryPost.tsx index dd2a2262..a713d9fa 100644 --- a/3Design/frontend/src/components/GalleryPost/Page/GalleryPost.tsx +++ b/3Design/frontend/src/components/GalleryPost/Page/GalleryPost.tsx @@ -446,7 +446,7 @@ const fetchCommentData = async () => {
{currentAnnotations.map((item, index) => (
- {item.username} + {item.username}
Annotated text: "{item.annotatedText}"

{item.annotation}

diff --git a/3Design/frontend/src/components/PageHeader/PageHeader.tsx b/3Design/frontend/src/components/PageHeader/PageHeader.tsx index 82cc4189..7847c244 100644 --- a/3Design/frontend/src/components/PageHeader/PageHeader.tsx +++ b/3Design/frontend/src/components/PageHeader/PageHeader.tsx @@ -86,10 +86,15 @@ const PageHeader = () => { } try{ setChangePasswordConfig(prev => ({...prev, sending: true})); - - // PUT Request + await axios.put(`${process.env.REACT_APP_API_URL}/${localStorage.getItem("user_id")}/change-password`, + null, + {headers: {Authorization: `Bearer ${localStorage.getItem("jwt_token")}`}, + params: {password : changePasswordConfig.newPassword} + } + ); + message.success("Password successfully changed."); - setChangePasswordConfig({dialog: false, newPassword: "", sending: false}) + setChangePasswordConfig({dialog: false, newPassword: "", sending: false}); }catch(e){ message.error("Something went wrong.") } @@ -131,7 +136,7 @@ const PageHeader = () => { - +

User Experience Points: {profileInfo.experience}

diff --git a/3Design/frontend/src/resources/json-files/Categories.json b/3Design/frontend/src/resources/json-files/Categories.json index afd05582..c09de28e 100644 --- a/3Design/frontend/src/resources/json-files/Categories.json +++ b/3Design/frontend/src/resources/json-files/Categories.json @@ -1,4 +1,13 @@ [ - {"name": "Testing", "id": "1", "description": "This is a test category1", "followerCount": 0}, - {"name": "Testing2", "id": "4", "description": "This is a test category2", "followerCount": 0} + {"name": "Characters", "id": "1", "description": "Models of humans, animals, and fantastical creatures for storytelling or design.", "followerCount": 0}, + {"name": "Nature", "id": "2", "description": "Organic models like trees, plants, rocks, and natural landscapes.", "followerCount": 0}, + {"name": "Architecture", "id": "3", "description": "Designs of buildings, structures, interiors, and urban settings.", "followerCount": 0}, + {"name": "Vehicles and Machines", "id": "4", "description": "Cars, planes, robots, and mechanical objects in intricate detail.", "followerCount": 0}, + {"name": "Furniture and Home Decor", "id": "5", "description": "Household items like chairs, tables, lamps, and other interior designs.", "followerCount": 0}, + {"name": "Minimalist and Abstract", "id": "6", "description": "Simplistic or experimental models emphasizing form and creativity.", "followerCount": 0}, + {"name": "3D Printing Models", "id": "7", "description": "Models optimized and prepared for 3D printing purposes.", "followerCount": 0}, + {"name": "Statues and Sculptures", "id": "8", "description": "Artistic creations, including busts, figurines, and decorative models.", "followerCount": 0}, + {"name": "Props and Accessories", "id": "9", "description": "Everyday objects, tools, weapons, and standalone design elements.", "followerCount": 0}, + {"name": "Fantasy and Sci-Fi", "id": "10", "description": "Models inspired by futuristic, mythical, or imaginative themes.", "followerCount": 0} + ] \ No newline at end of file From 294b9fb93d0de9b2c0f2a7d8105add1ee212399c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ersel=20=C3=87anak=C3=A7=C4=B1l=C4=B1?= <73749586+erselcanakcili@users.noreply.github.com> Date: Mon, 25 Nov 2024 21:14:44 +0300 Subject: [PATCH 26/28] links from comment's pp and username to comment author's page added --- 3Design/frontend/src/components/Comment/Comment.tsx | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/3Design/frontend/src/components/Comment/Comment.tsx b/3Design/frontend/src/components/Comment/Comment.tsx index 2702d20b..c0ce0320 100644 --- a/3Design/frontend/src/components/Comment/Comment.tsx +++ b/3Design/frontend/src/components/Comment/Comment.tsx @@ -120,8 +120,21 @@ const Comment = ({commentData} : Props) => { return (
+ + +

{data.text}

From 742ee81b9b9741765a6923d4b00aef4e44c6e0ff Mon Sep 17 00:00:00 2001 From: Deniz <160037328+deniz6221@users.noreply.github.com> Date: Mon, 25 Nov 2024 21:32:11 +0300 Subject: [PATCH 27/28] Achievements for profiles --- .../components/ProfilePage/ProfilePage.tsx | 62 ++++++++++++++++++- 3Design/frontend/src/components/interfaces.ts | 8 +++ 2 files changed, 68 insertions(+), 2 deletions(-) diff --git a/3Design/frontend/src/components/ProfilePage/ProfilePage.tsx b/3Design/frontend/src/components/ProfilePage/ProfilePage.tsx index 55de7015..9552305f 100644 --- a/3Design/frontend/src/components/ProfilePage/ProfilePage.tsx +++ b/3Design/frontend/src/components/ProfilePage/ProfilePage.tsx @@ -4,13 +4,14 @@ import { useState } from "react"; import SideBar from "../SideBar/SideBar"; import PageHeader from "../PageHeader/PageHeader"; import styles from "./ProfilePage.module.css" -import { CustomUser, DPost } from '../interfaces' -import { CircularProgress, Dialog } from "@mui/material"; +import { Achievement, CustomUser, DPost } from '../interfaces' +import { CircularProgress, Dialog, TableContainer, Table, TableHead, TableRow, TableCell, TableBody, Paper } from "@mui/material"; import ProfileDisplayer from "./ProfilePageDialogDisplayer/ProfilePageDialogDisplayer" import axios, { AxiosError } from "axios"; import { message, Skeleton } from "antd"; import GalleryPost from "../GalleryPost/Clickable/GalleryPost"; import DiscussionPost from "../DiscussionPost/Clickable/DiscussionPost"; +import StarsIcon from '@mui/icons-material/Stars'; const ProfilePage = () => { @@ -30,6 +31,9 @@ const ProfilePage = () => { const [currentlyFollowing, setCurrentlyFollowing] = useState(null); + const [achievements, setAchievements] = useState(null); + const [achievementDialog, setAchievementDialog] = useState(false); + const currentUserId = localStorage.getItem("user_id"); const fetchPosts = async () => { @@ -182,11 +186,26 @@ const ProfilePage = () => { } } + const fetchAchievements = async () => { + try{ + const res = await axios.get(`${process.env.REACT_APP_API_URL}/api/v1/achievements/user/${id}`, + { + headers: {Authorization: `Bearer ${localStorage.getItem("jwt_token")}`}, + } + ); + setAchievements(res.data); + } + catch(e){ + + } + } + useEffect(() => { getFollowerUserIds(); getFollowingUserIds(); getProfileInfo(); + fetchAchievements(); if (id === currentUserId) { setIsCurrentUserProfile(true); @@ -313,6 +332,7 @@ const ProfilePage = () => { > Followers +
{/* Dialog section TODO */} @@ -362,6 +382,10 @@ const ProfilePage = () => { {content} ))} + +
{/* Tab Content */} @@ -384,6 +408,40 @@ const ProfilePage = () => {
+ setAchievementDialog(false)}> +
+

Achievements

+ {achievements ? + +
+ + + Title + Description + Rewards + Earned At + + + + {achievements.map((row) => ( + + {row.name} + {row.description} + {row.point} + { new Intl.DateTimeFormat('en-GB').format(new Date(row.earnedAt))} + + ))} + +
+ + : +

No achievements earned.

+ } +
+ ); } diff --git a/3Design/frontend/src/components/interfaces.ts b/3Design/frontend/src/components/interfaces.ts index 44886c44..477c42b4 100644 --- a/3Design/frontend/src/components/interfaces.ts +++ b/3Design/frontend/src/components/interfaces.ts @@ -114,4 +114,12 @@ export interface TournamentEntry{ tournament: Tournament, score : number, finishedPosition : number +} + +export interface Achievement{ + id: number, + name: string, + description: string, + point: number, + earnedAt: string } \ No newline at end of file From a4050d7199f400689e379a211f37e22b5804b367 Mon Sep 17 00:00:00 2001 From: Deniz <160037328+deniz6221@users.noreply.github.com> Date: Mon, 25 Nov 2024 21:40:49 +0300 Subject: [PATCH 28/28] Change password minor fix --- 3Design/frontend/src/components/PageHeader/PageHeader.tsx | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/3Design/frontend/src/components/PageHeader/PageHeader.tsx b/3Design/frontend/src/components/PageHeader/PageHeader.tsx index 7847c244..a42da523 100644 --- a/3Design/frontend/src/components/PageHeader/PageHeader.tsx +++ b/3Design/frontend/src/components/PageHeader/PageHeader.tsx @@ -86,7 +86,7 @@ const PageHeader = () => { } try{ setChangePasswordConfig(prev => ({...prev, sending: true})); - await axios.put(`${process.env.REACT_APP_API_URL}/${localStorage.getItem("user_id")}/change-password`, + await axios.put(`${process.env.REACT_APP_API_URL}/api/v1/users/${localStorage.getItem("user_id")}/change-password`, null, {headers: {Authorization: `Bearer ${localStorage.getItem("jwt_token")}`}, params: {password : changePasswordConfig.newPassword} @@ -96,7 +96,8 @@ const PageHeader = () => { message.success("Password successfully changed."); setChangePasswordConfig({dialog: false, newPassword: "", sending: false}); }catch(e){ - message.error("Something went wrong.") + message.error("Something went wrong."); + setChangePasswordConfig(prev => ({...prev, sending: false})); } } @@ -155,6 +156,7 @@ const PageHeader = () => {

Change Your Password

setChangePasswordConfig(prev => ({...prev, newPassword: e.target.value}))} />