From 128b56da28f40d8d398ebb2f08dff47c51385063 Mon Sep 17 00:00:00 2001 From: syuilo <syuilotan@yahoo.co.jp> Date: Sat, 17 Mar 2018 03:33:36 +0900 Subject: [PATCH] :v: --- src/api/endpoints/posts.ts | 9 + src/web/app/common/views/components/index.ts | 2 + .../views/components/welcome-timeline.vue | 115 ++++++ src/web/app/desktop/views/pages/welcome.vue | 127 ++++--- src/web/app/mobile/views/pages/welcome.vue | 48 ++- src/web/assets/welcome.svg | 358 ++++++++++++++++++ 6 files changed, 601 insertions(+), 58 deletions(-) create mode 100644 src/web/app/common/views/components/welcome-timeline.vue create mode 100644 src/web/assets/welcome.svg diff --git a/src/api/endpoints/posts.ts b/src/api/endpoints/posts.ts index 3b29425927..7df744d2a3 100644 --- a/src/api/endpoints/posts.ts +++ b/src/api/endpoints/posts.ts @@ -27,6 +27,10 @@ module.exports = (params) => new Promise(async (res, rej) => { const [poll, pollErr] = $(params.poll).optional.boolean().$; if (pollErr) return rej('invalid poll param'); + // Get 'bot' parameter + //const [bot, botErr] = $(params.bot).optional.boolean().$; + //if (botErr) return rej('invalid bot param'); + // Get 'limit' parameter const [limit = 10, limitErr] = $(params.limit).optional.number().range(1, 100).$; if (limitErr) return rej('invalid limit param'); @@ -76,6 +80,11 @@ module.exports = (params) => new Promise(async (res, rej) => { query.poll = poll ? { $exists: true, $ne: null } : null; } + // TODO + //if (bot != undefined) { + // query.is_bot = bot; + //} + // Issue query const posts = await Post .find(query, { diff --git a/src/web/app/common/views/components/index.ts b/src/web/app/common/views/components/index.ts index 25f4e461df..fbf9d22a0b 100644 --- a/src/web/app/common/views/components/index.ts +++ b/src/web/app/common/views/components/index.ts @@ -23,6 +23,7 @@ import twitterSetting from './twitter-setting.vue'; import fileTypeIcon from './file-type-icon.vue'; import Switch from './switch.vue'; import Othello from './othello.vue'; +import welcomeTimeline from './welcome-timeline.vue'; Vue.component('mk-signin', signin); Vue.component('mk-signup', signup); @@ -47,3 +48,4 @@ Vue.component('mk-twitter-setting', twitterSetting); Vue.component('mk-file-type-icon', fileTypeIcon); Vue.component('mk-switch', Switch); Vue.component('mk-othello', Othello); +Vue.component('mk-welcome-timeline', welcomeTimeline); diff --git a/src/web/app/common/views/components/welcome-timeline.vue b/src/web/app/common/views/components/welcome-timeline.vue new file mode 100644 index 0000000000..ab402f126a --- /dev/null +++ b/src/web/app/common/views/components/welcome-timeline.vue @@ -0,0 +1,115 @@ +<template> +<div class="mk-welcome-timeline"> + <div v-for="post in posts"> + <router-link class="avatar-anchor" :to="`/${post.user.username}`"> + <img class="avatar" :src="`${post.user.avatar_url}?thumbnail&size=96`" alt="avatar"/> + </router-link> + <div class="body"> + <header> + <router-link class="name" :to="`/${post.user.username}`">{{ post.user.name }}</router-link> + <span class="username">@{{ post.user.username }}</span> + <div class="info"> + <router-link class="created-at" :to="`/${post.user.username}/${post.id}`"> + <mk-time :time="post.created_at"/> + </router-link> + </div> + </header> + <div class="text"> + <mk-post-html :ast="post.ast"/> + </div> + </div> + </div> +</div> +</template> + +<script lang="ts"> +import Vue from 'vue'; + +export default Vue.extend({ + data() { + return { + fetching: true, + posts: [] + }; + }, + mounted() { + this.fetch(); + }, + methods: { + fetch(cb?) { + this.fetching = true; + (this as any).api('posts', { + reply: false, + repost: false, + media: false, + poll: false, + bot: false + }).then(posts => { + this.posts = posts; + this.fetching = false; + }); + } + } +}); +</script> + +<style lang="stylus" scoped> +.mk-welcome-timeline + background #fff + + > div + padding 16px + overflow-wrap break-word + font-size .9em + color #4C4C4C + border-bottom 1px solid rgba(0, 0, 0, 0.05) + + &:after + content "" + display block + clear both + + > .avatar-anchor + display block + float left + position -webkit-sticky + position sticky + top 16px + + > img + display block + width 36px + height 36px + border-radius 6px + + > .body + float right + width calc(100% - 36px) + padding-left 8px + + > header + display flex + align-items center + margin-bottom 4px + white-space nowrap + + > .name + display block + margin 0 .5em 0 0 + padding 0 + overflow hidden + font-weight bold + text-overflow ellipsis + + > .username + margin 0 .5em 0 0 + color #ccc + + > .info + margin-left auto + font-size 0.9em + + > .created-at + color #c0c0c0 + +</style> diff --git a/src/web/app/desktop/views/pages/welcome.vue b/src/web/app/desktop/views/pages/welcome.vue index 9f69305204..53ea99598d 100644 --- a/src/web/app/desktop/views/pages/welcome.vue +++ b/src/web/app/desktop/views/pages/welcome.vue @@ -1,13 +1,20 @@ <template> <div class="mk-welcome"> <main> - <div> - <h1>Share<br>Everything!</h1> - <p>ようこそ! <b>Misskey</b>はTwitter風ミニブログSNSです――思ったこと、共有したいことをシンプルに書き残せます。タイムラインを見れば、皆の反応や皆がどう思っているのかもすぐにわかります。<a>詳しく...</a></p> - <p><button class="signup" @click="signup">はじめる</button><button class="signin" @click="signin">ログイン</button></p> - </div> - <div> - + <div class="top"> + <div> + <div> + <h1>Share<br>Everything!</h1> + <p>ようこそ! <b>Misskey</b>はTwitter風ミニブログSNSです。思ったことや皆と共有したいことを投稿しましょう。タイムラインを見れば、皆の関心事をすぐにチェックすることもできます。<a>詳しく...</a></p> + <p><button class="signup" @click="signup">はじめる</button><button class="signin" @click="signin">ログイン</button></p> + </div> + <div> + <div> + <header>%fa:comments R% タイムライン</header> + <mk-welcome-timeline/> + </div> + </div> + </div> </div> </main> <mk-forkit/> @@ -69,61 +76,85 @@ export default Vue.extend({ > main display flex flex 1 - max-width $width - margin 0 auto - padding 80px 0 0 0 - > div:first-child - margin 0 auto 0 0 - width calc(100% - 500px) - color #777 + > .top + display flex + width 100% + background-image url('/assets/welcome.svg') + background-size cover + background-position top center - > h1 - margin 0 - font-weight normal - font-variant small-caps - letter-spacing 12px + > div + display flex + max-width $width + margin 0 auto + padding 80px 0 0 0 - > p - margin 0.5em 0 - line-height 2em + > div:first-child + margin 0 48px 0 0 + color #777 - button - padding 8px 16px - font-size inherit + > h1 + margin 0 + font-weight normal + font-variant small-caps + letter-spacing 12px - .signup - color $theme-color - border solid 2px $theme-color - border-radius 4px + > p + margin 0.5em 0 + line-height 2em - &:focus - box-shadow 0 0 0 3px rgba($theme-color, 0.2) + button + padding 8px 16px + font-size inherit - &:hover - color $theme-color-foreground - background $theme-color + .signup + color $theme-color + border solid 2px $theme-color + border-radius 4px - &:active - color $theme-color-foreground - background darken($theme-color, 10%) - border-color darken($theme-color, 10%) + &:focus + box-shadow 0 0 0 3px rgba($theme-color, 0.2) - .signin - &:focus - color #444 + &:hover + color $theme-color-foreground + background $theme-color - &:hover - color #444 + &:active + color $theme-color-foreground + background darken($theme-color, 10%) + border-color darken($theme-color, 10%) - &:active - color #333 + .signin + &:focus + color #444 - > div:last-child - margin 0 0 0 auto + &:hover + color #444 + + &:active + color #333 + + > div:last-child + + > div + width 410px + background #fff + border-radius 8px + overflow hidden + + > header + z-index 1 + padding 12px 16px + color #888d94 + box-shadow 0 1px 0px rgba(0, 0, 0, 0.1) + + > .mk-welcome-timeline + max-height 350px + overflow auto > footer - color #666 + color #949ea5 background #fff > div diff --git a/src/web/app/mobile/views/pages/welcome.vue b/src/web/app/mobile/views/pages/welcome.vue index 84e5ae5507..cb8756f3b6 100644 --- a/src/web/app/mobile/views/pages/welcome.vue +++ b/src/web/app/mobile/views/pages/welcome.vue @@ -1,9 +1,9 @@ <template> <div class="welcome"> <h1><b>Misskey</b>へようこそ</h1> - <p>Twitter風ミニブログSNS、Misskeyへようこそ。思ったことを投稿したり、タイムラインでみんなの投稿を読むこともできます。</p> + <p>Twitter風ミニブログSNS、Misskeyへようこそ。思ったことを投稿したり、タイムラインでみんなの投稿を読むこともできます。<a href="/signup">アカウントを作成する</a></p> <div class="form"> - <p>ログイン</p> + <p>%fa:lock% ログイン</p> <div> <form @submit.prevent="onSubmit"> <input v-model="username" type="text" pattern="^[a-zA-Z0-9-]+$" placeholder="ユーザー名" autofocus required @change="onUsernameChange"/> @@ -16,13 +16,19 @@ </div> </div> </div> - <a href="/signup">アカウントを作成する</a> + <div class="tl"> + <p>%fa:comments R% タイムラインを見てみる</p> + <mk-welcome-timeline/> + </div> + <footer> + <small>{{ copyright }}</small> + </footer> </div> </template> <script lang="ts"> import Vue from 'vue'; -import { apiUrl } from '../../../config'; +import { apiUrl, copyright } from '../../../config'; export default Vue.extend({ data() { @@ -32,7 +38,8 @@ export default Vue.extend({ username: '', password: '', token: '', - apiUrl + apiUrl, + copyright }; }, mounted() { @@ -83,16 +90,12 @@ export default Vue.extend({ color #949fa9 .form + margin-bottom 16px background #fff border solid 1px rgba(0, 0, 0, 0.2) border-radius 8px overflow hidden - & + a - display block - margin-top 16px - text-align center - > p margin 0 padding 12px 20px @@ -143,4 +146,29 @@ export default Vue.extend({ padding 16px text-align center + .tl + background #fff + border solid 1px rgba(0, 0, 0, 0.2) + border-radius 8px + overflow hidden + + > p + margin 0 + padding 12px 20px + color #555 + background #f5f5f5 + border-bottom solid 1px #ddd + + > .mk-welcome-timeline + max-height 300px + overflow auto + + > footer + text-align center + color #949fa9 + + > small + display block + margin 16px 0 0 0 + </style> diff --git a/src/web/assets/welcome.svg b/src/web/assets/welcome.svg new file mode 100644 index 0000000000..fce566dd96 --- /dev/null +++ b/src/web/assets/welcome.svg @@ -0,0 +1,358 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Created with Inkscape (http://www.inkscape.org/) --> + +<svg + xmlns:osb="http://www.openswatchbook.org/uri/2009/osb" + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:xlink="http://www.w3.org/1999/xlink" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + width="1920" + height="1080" + viewBox="0 0 507.99999 285.75001" + version="1.1" + id="svg8" + inkscape:version="0.92.1 r15371" + sodipodi:docname="描画.svg"> + <defs + id="defs2"> + <linearGradient + inkscape:collect="always" + id="linearGradient7044"> + <stop + style="stop-color:#000000;stop-opacity:1;" + offset="0" + id="stop7040" /> + <stop + style="stop-color:#ffffff;stop-opacity:1" + offset="1" + id="stop7042" /> + </linearGradient> + <pattern + inkscape:collect="always" + xlink:href="#Checkerboard" + id="pattern7010" + patternTransform="matrix(1.673813,0,0,1.673813,-177.6001,-146.38611)" /> + <pattern + inkscape:stockid="Checkerboard" + id="Checkerboard" + patternTransform="translate(0,0) scale(10,10)" + height="2" + width="2" + patternUnits="userSpaceOnUse" + inkscape:collect="always"> + <rect + id="rect6201" + height="1" + width="1" + y="0" + x="0" + style="fill:black;stroke:none" /> + <rect + id="rect6203" + height="1" + width="1" + y="1" + x="1" + style="fill:black;stroke:none" /> + </pattern> + <linearGradient + id="linearGradient5406" + osb:paint="solid"> + <stop + style="stop-color:#000000;stop-opacity:1;" + offset="0" + id="stop5404" /> + </linearGradient> + <linearGradient + inkscape:collect="always" + xlink:href="#linearGradient7044" + id="linearGradient7064" + gradientUnits="userSpaceOnUse" + gradientTransform="matrix(3.223659,0,0,2.5556636,-579.27357,808.39)" + x1="86.490868" + y1="-216.62756" + x2="176.77992" + y2="-216.62756" /> + <mask + maskUnits="userSpaceOnUse" + id="mask7060"> + <rect + style="opacity:1;fill:url(#linearGradient7064);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.92238116;stroke-miterlimit:4;stroke-dasharray:none" + id="rect7062" + width="291.06116" + height="511.36566" + x="-300.45657" + y="-0.91986513" + transform="rotate(-90)" /> + </mask> + </defs> + <sodipodi:namedview + id="base" + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1.0" + inkscape:pageopacity="0.84705882" + inkscape:pageshadow="2" + inkscape:zoom="0.51" + inkscape:cx="895.96593" + inkscape:cy="599.48775" + inkscape:document-units="mm" + inkscape:current-layer="layer1" + showgrid="false" + units="px" + inkscape:pagecheckerboard="true" + inkscape:window-width="1920" + inkscape:window-height="1017" + inkscape:window-x="-8" + inkscape:window-y="1072" + inkscape:window-maximized="1" + objecttolerance="1" + guidetolerance="10000" + gridtolerance="10000" + inkscape:snap-bbox="true" + inkscape:bbox-paths="true" + inkscape:bbox-nodes="true" + inkscape:snap-bbox-edge-midpoints="true" + inkscape:snap-bbox-midpoints="true" /> + <metadata + id="metadata5"> + <rdf:RDF> + <cc:Work + rdf:about=""> + <dc:format>image/svg+xml</dc:format> + <dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> + <dc:title></dc:title> + </cc:Work> + </rdf:RDF> + </metadata> + <g + inkscape:label="レイヤー 1" + inkscape:groupmode="layer" + id="layer1" + transform="translate(0,-11.249983)"> + <rect + style="opacity:0.05;fill:url(#pattern7010);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.15551688;stroke-miterlimit:4;stroke-dasharray:none" + id="rect6987" + width="754.9812" + height="469.89072" + x="-83.816063" + y="-63.078693" + ry="0" + mask="url(#mask7060)" /> + <path + style="fill:#000000;fill-opacity:0.09661835;stroke:none;stroke-width:0.26499999;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" + d="m 149.59224,187.51883 -30.48108,6.4476 18.58548,61.14441 32.06774,-5.02079 2.27916,-39.16205 -20.18463,5.72179 z m -19.28212,12.50282 11.30447,-2.22985 0.81973,12.45223 -7.5888,1.65389 z m 15.28477,16.59486 0.74067,11.65353 -7.42226,2.02029 -3.70369,-10.82413 z m 1.61836,17.96698 1.20153,11.02325 -5.56723,1.37628 -3.18232,-10.49349 z m 14.34445,-2.69044 0.26461,11.20806 -5.86133,1.29523 -1.20102,-11.02336 z" + id="path5398" + inkscape:connector-curvature="0" /> + <ellipse + style="fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.35368672" + id="path5309" + cx="19.684303" + cy="2.3963881" + rx="115.17702" + ry="51.621048" + transform="matrix(0.99853597,-0.05409175,0,1,0,0)" /> + <ellipse + style="fill:#ffffff;fill-opacity:0.56038663;stroke:none;stroke-width:0.26458332" + id="path5313" + cx="146.58771" + cy="21.961346" + rx="60.384743" + ry="31.365929" /> + <ellipse + style="fill:#ffffff;fill-opacity:0.56038663;stroke:none;stroke-width:0.22788492" + id="path5313-3" + cx="227.88307" + cy="9.7990417" + rx="51.849796" + ry="27.098455" /> + <ellipse + style="fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.18895671" + id="path5309-5" + cx="158.05429" + cy="9.211237" + rx="67.707047" + ry="25.06374" + transform="matrix(0.99900149,0.04467679,0,-1,0,0)" /> + <ellipse + style="fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.19881381" + id="path5309-5-5" + cx="-320.59222" + cy="-18.961536" + rx="71.337646" + ry="26.334759" + transform="matrix(-0.99900701,0.04455336,0,-1,0,0)" /> + <ellipse + style="fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:0.2416939" + id="path5309-0" + cx="-474.55038" + cy="-20.052439" + rx="74.602745" + ry="37.216171" + transform="matrix(-0.99818591,-0.06020699,0,1,0,0)" /> + <ellipse + style="fill:#ffffff;fill-opacity:0.56038663;stroke:none;stroke-width:0.26458332" + id="path5313-5" + cx="382.79236" + cy="16.200251" + rx="60.384743" + ry="31.365929" /> + <circle + style="fill:#000000;fill-opacity:0.09661835;stroke:none;stroke-width:1.99730551" + id="path5392" + cx="253.06117" + cy="887.61829" + r="642.68146" /> + <path + style="fill:#000000;fill-opacity:0.09661835;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + d="m 329.51477,199.15082 -32.04286,18.26817 12.8142,1.28619 -6.02656,28.18505 32.94792,3.49531 0.51681,-27.76301 11.91226,1.00737 z m -14.10711,25.93826 6.27123,0.90288 -1.15019,5.4805 -6.00929,-0.898 z m 13.58524,2.09643 0.42171,5.50053 -6.35262,-0.44337 1.22618,-5.67857 z m -15.04127,5.73678 6.21844,0.90138 -1.87301,4.94347 -5.07899,-0.81761 z m 8.80707,1.53673 6.3403,1.10313 0.43128,4.98637 -7.83808,-1.19409 z" + id="path6874" + inkscape:connector-curvature="0" + sodipodi:nodetypes="cccccccccccccccccccccccccccc" /> + <path + style="fill:#000000;fill-opacity:0.09661835;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + d="m 366.28967,254.78298 7.49431,-30.40441 -7.41388,-2.66046 1.18763,-3.36104 7.21205,2.27141 1.38362,-5.73044 -7.20912,-2.66047 1.28561,-3.65794 7.01313,2.7643 2.17341,-7.01022 3.35519,1.48161 -2.1734,6.51147 6.70747,2.66046 -1.28564,3.16213 -6.31255,-2.46154 -1.68638,6.02735 6.80837,2.46447 -0.9887,3.84808 -6.90052,-2.47031 -6.71038,30.41026 z" + id="path6891" + inkscape:connector-curvature="0" + sodipodi:nodetypes="ccccccccccccccccccccc" /> + <path + style="fill:#000000;fill-opacity:0.09661835;fill-rule:nonzero;stroke:none;stroke-width:0.26499999;stroke-miterlimit:4;stroke-dasharray:none" + d="m 377.25876,69.781182 a 18.234796,18.234796 0 0 1 8.1747,15.19442 18.234796,18.234796 0 0 1 -18.23455,18.235058 18.234796,18.234796 0 0 1 -10.14098,-3.08921 20.380066,20.380066 0 0 0 17.64905,10.2402 20.380066,20.380066 0 0 0 20.38015,-20.380152 20.380066,20.380066 0 0 0 -17.82837,-20.200316 z" + id="path6914" + inkscape:connector-curvature="0" /> + <path + sodipodi:type="star" + style="fill:#000000;fill-opacity:0.09661835;fill-rule:nonzero;stroke:none;stroke-width:0.26499999;stroke-miterlimit:4;stroke-dasharray:none" + id="path6921" + sodipodi:sides="4" + sodipodi:cx="117.63232" + sodipodi:cy="102.13793" + sodipodi:r1="5.7652407" + sodipodi:r2="2.8826203" + sodipodi:arg1="1.4464413" + sodipodi:arg2="2.2318395" + inkscape:flatsided="false" + inkscape:rounded="0" + inkscape:randomized="0" + d="m 118.34741,107.85865 -2.48485,-3.44532 -3.95096,-1.56031 3.44531,-2.48485 1.56032,-3.950959 2.48484,3.445318 3.95097,1.560311 -3.44532,2.48485 z" + inkscape:transform-center-x="1.481982e-006" + inkscape:transform-center-y="-1.1450451e-006" /> + <path + sodipodi:type="star" + style="fill:#000000;fill-opacity:0.09661835;fill-rule:nonzero;stroke:none;stroke-width:0.26499999;stroke-miterlimit:4;stroke-dasharray:none" + id="path6923" + sodipodi:sides="4" + sodipodi:cx="317.5" + sodipodi:cy="75.679596" + sodipodi:r1="3.949214" + sodipodi:r2="1.974607" + sodipodi:arg1="1.6614562" + sodipodi:arg2="2.4468544" + inkscape:flatsided="false" + inkscape:rounded="0" + inkscape:randomized="0" + d="m 317.14246,79.612591 -1.1594,-2.668882 -2.41606,-1.621658 2.66889,-1.15939 1.62165,-2.41606 1.1594,2.668882 2.41606,1.621658 -2.66889,1.15939 z" + inkscape:transform-center-x="4.0000001e-006" /> + <path + sodipodi:type="star" + style="fill:#000000;fill-opacity:0.09661835;fill-rule:nonzero;stroke:none;stroke-width:0.26499999;stroke-miterlimit:4;stroke-dasharray:none" + id="path6925" + sodipodi:sides="4" + sodipodi:cx="230.97409" + sodipodi:cy="57.802349" + sodipodi:r1="2.2613134" + sodipodi:r2="1.1306567" + sodipodi:arg1="1.2490458" + sodipodi:arg2="2.0344439" + inkscape:flatsided="false" + inkscape:rounded="0" + inkscape:randomized="0" + d="m 231.68918,59.947619 -1.22073,-1.13398 -1.63963,-0.2962 1.13398,-1.220735 0.2962,-1.639625 1.22074,1.13398 1.63962,0.2962 -1.13398,1.220735 z" + inkscape:transform-center-x="2.9099099e-006" /> + <path + sodipodi:type="star" + style="fill:#000000;fill-opacity:0.09661835;fill-rule:nonzero;stroke:none;stroke-width:0.26499999;stroke-miterlimit:4;stroke-dasharray:none" + id="path6927" + sodipodi:sides="4" + sodipodi:cx="260.65033" + sodipodi:cy="106.42847" + sodipodi:r1="1.59899" + sodipodi:r2="0.79949504" + sodipodi:arg1="2.0344439" + sodipodi:arg2="2.8198421" + inkscape:flatsided="false" + inkscape:rounded="0" + inkscape:randomized="0" + d="m 259.93524,107.85865 -0.0434,-1.17736 -0.67171,-0.96791 1.17736,-0.0434 0.96791,-0.67171 0.0434,1.17735 0.67171,0.96792 -1.17736,0.0434 z" + inkscape:transform-center-x="3.2837838e-006" + inkscape:transform-center-y="-1.1990991e-006" /> + <path + sodipodi:type="star" + style="fill:#000000;fill-opacity:0.09661835;fill-rule:nonzero;stroke:none;stroke-width:0.26499999;stroke-miterlimit:4;stroke-dasharray:none" + id="path6925-2" + sodipodi:sides="4" + sodipodi:cx="87.956078" + sodipodi:cy="127.16609" + sodipodi:r1="2.2613134" + sodipodi:r2="1.1306567" + sodipodi:arg1="1.2490458" + sodipodi:arg2="2.0344439" + inkscape:flatsided="false" + inkscape:rounded="0" + inkscape:randomized="0" + d="m 88.671168,129.31136 -1.220735,-1.13398 -1.639626,-0.2962 1.13398,-1.22073 0.296201,-1.63963 1.220735,1.13398 1.639625,0.2962 -1.13398,1.22074 z" + inkscape:transform-center-x="2.4830149e-006" + transform="matrix(0.91666667,0,0,1,7.1509005,0)" /> + <path + style="fill:#000000;fill-opacity:0.09661835;stroke:none;stroke-width:0.99999994px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + d="M 278.09961 779.17383 L 273.55469 781.65234 L 282.30273 807.51562 L 265.05078 812.48633 L 316.54688 967.83984 L 396.62305 947.04297 L 369.47266 782.39453 L 286.1543 806.4043 L 278.09961 779.17383 z M 341.34766 817.19922 L 346.93555 855.88672 L 315.41797 863.33008 L 300.96094 827.68945 L 341.34766 817.19922 z M 355.63477 872.21094 L 358.58984 909.34961 L 332.12891 916.2207 L 318.54883 881.09766 L 355.63477 872.21094 z " + transform="matrix(0.26458333,0,0,0.26458333,0,11.249983)" + id="path6944" /> + <path + style="fill:#000000;fill-opacity:0.09661835;stroke:none;stroke-width:0.24600939px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + d="m 43.603475,280.06036 -10.564819,-28.58824 -6.574764,2.28618 -0.916385,-3.37337 6.23111,-2.47535 -2.011396,-5.37101 -6.431418,2.16468 -1.002197,-3.66725 6.348194,-1.96596 -2.123972,-6.85578 3.11982,-0.81419 1.86458,6.45975 6.080155,-1.86705 0.744318,3.27357 -5.700174,1.79072 1.953823,5.78639 6.048884,-2.08256 1.308957,3.64208 -6.116434,2.13257 11.116753,28.12778 z" + id="path6891-8" + inkscape:connector-curvature="0" + sodipodi:nodetypes="ccccccccccccccccccccc" /> + <path + style="fill:#000000;fill-opacity:0.09661835;stroke:none;stroke-width:0.26458332px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" + d="m 411.98753,264.70523 3.91734,-12.57157 -7.13355,-3.53259 -1.396,-8.02014 5.81668,-6.93436 10.92618,-0.52461 7.35863,5.88054 0.0806,8.11138 -5.67524,6.95564 -7.37536,-0.96565 -1.04168,4.03744 5.21293,-1.96321 1.42492,-6.58308 5.61592,-1.7579 5.33002,3.98422 -1.35343,5.14755 -3.67857,2.33882 -4.89966,-2.03926 -7.52592,2.91667 -1.60892,6.84465 z" + id="path6985" + inkscape:connector-curvature="0" + sodipodi:nodetypes="ccccccccccccccccccccc" /> + <ellipse + style="fill:#ffffff;fill-opacity:0.56038663;stroke:none;stroke-width:0.26458332" + id="path5313-36" + cx="12.969777" + cy="40.717304" + rx="60.384743" + ry="31.365929" /> + <ellipse + style="fill:#ffffff;fill-opacity:0.56038663;stroke:none;stroke-width:0.28271547" + id="path5313-36-0" + cx="525.27576" + cy="33.454243" + rx="68.944794" + ry="31.365929" /> + <ellipse + style="fill:#ffffff;fill-opacity:0.56038663;stroke:none;stroke-width:0.26458332" + id="path5313-367" + cx="91.30719" + cy="8.5522709" + rx="60.384743" + ry="31.365929" /> + <ellipse + style="fill:#ffffff;fill-opacity:0.56038663;stroke:none;stroke-width:0.33264157" + id="path5313-5-9" + cx="445.12253" + cy="3.1049659" + rx="78.023628" + ry="38.369606" /> + </g> +</svg>