merge from upstream

This commit is contained in:
viehlieb 2022-12-23 12:10:17 +01:00
commit e8242587b3
561 changed files with 80561 additions and 2169 deletions

1081
.drone.yml

File diff suppressed because it is too large Load Diff

View File

@ -10,7 +10,7 @@ charset = utf-8
trim_trailing_whitespace = false
insert_final_newline = false
[*.go]
[*.vue]
indent_style = tab
[*.{yaml,yml}]
@ -19,4 +19,11 @@ indent_size = 2
[*.json]
indent_style = space
indent_size = 4
indent_size = 2
[*.{scss,css}]
indent_style = space
indent_size = 2
[.nvmrc]
insert_final_newline = false

1
.envrc Normal file
View File

@ -0,0 +1 @@
use flake

58
.eslintrc.cjs Normal file
View File

@ -0,0 +1,58 @@
/* eslint-env node */
require("@rushstack/eslint-patch/modern-module-resolution")
module.exports = {
'root': true,
'env': {
'browser': true,
'es2022': true,
'node': true,
'vue/setup-compiler-macros': true,
},
'extends': [
'eslint:recommended',
'plugin:vue/vue3-essential',
'@vue/eslint-config-typescript/recommended',
],
'rules': {
'vue/html-quotes': [
'error',
'double',
],
'quotes': [
'error',
'single',
],
'comma-dangle': [
'error',
'always-multiline',
],
'semi': [
'error',
'never',
],
// see https://segmentfault.com/q/1010000040813116/a-1020000041134455 (original in chinese)
'no-unused-vars': 'off',
'@typescript-eslint/no-unused-vars': ['error', { vars: 'all', args: 'after-used', ignoreRestSiblings: true }],
'vue/multi-word-component-names': 0,
// disabled until we have support for reactivityTransform
// See https://github.com/vuejs/eslint-plugin-vue/issues/1948
// see also setting in `vite.config`
'vue/no-setup-props-destructure': 0,
},
'parser': 'vue-eslint-parser',
'parserOptions': {
'parser': '@typescript-eslint/parser',
'ecmaVersion': 2022,
'sourceType': 'module',
},
'ignorePatterns': [
'*.test.*',
'cypress/*',
],
'globals': {
'defineProps': 'readonly',
},
}

44
.gitea/issue_template.md Normal file
View File

@ -0,0 +1,44 @@
<!--
Please fill out this issue template to report a bug.
If you want to propose a new feature, please open a discussion thread in the forum: https://community.vikunja.io
-->
**Version information:**
Frontend Version:
API Version:
Browser and OS Version:
**Steps to reproduce:**
<!--
Add clear steps to reproduce the bug. Provide screenshots where applicable.
-->
1.
2.
...
**Expected behavior:**
<!--
Describe what happened.
-->
**Actual behavior:**
<!--
Describe what happened instead.
-->
**Checklist:**
* [ ] I have provided all required information
* [ ] I am using the latest release or the latest unstable build
* [ ] I was able to reproduce the bug on [try](https://try.vikunja.io)

View File

@ -1,6 +1,7 @@
name: Bug Report
description: Found something you weren't expecting? Report it here!
labels: kind/bug
labels:
- kind/bug
body:
- type: markdown
attributes:

View File

@ -1,8 +1,8 @@
blank_issues_enabled: false
contact_links:
- name: Frontend issues
url: https://code.vikunja.io/frontend/issues
about: This is the API repo. Please open frontend-related bug reports and discussions in the frontend repo. Not sure if you issue is frontend or api? Ask in Matrix or the forum first.
- name: API issues
url: https://code.vikunja.io/api/issues
about: This is the frontend repo. Please open api-related bug reports and discussions in the api 0repo. Not sure if your issue is frontend or api? Ask in Matrix or the forum first.
- name: Forum
url: https://community.vikunja.io/
about: Feature Requests, Questions, configuration or deployment problems should be discussed in the forum.

65
.gitignore vendored
View File

@ -1,29 +1,36 @@
.idea/
.idea/*/*
.idea/httpRequests
config.yml
config.yaml
!docs/config.yml
!.github/ISSUE_TEMPLATE/config.yml
!.gitea/ISSUE_TEMPLATE/config.yml
docs/themes/
*.db
Run
dist/
cover.*
/vikunja
Test_*
bin/
secrets
*.deb
debian/
logs/
docs/public/
docs/resources/
pkg/static/templates_vfsdata.go
files/
!pkg/files/
vikunja-dump*
vendor/
os-packages/
mage_output_file.go
.DS_Store
node_modules
/dist*
*.zip
.direnv/
# local env files
.env.local
.env.*.local
# Log files
logs
*.log
npm-debug.log*
yarn-debug.log*
yarn-error.log*
stats.html
pnpm-debug.log*
lerna-debug.log*
# Editor directories and files
.idea
.vscode
*.suo
*.ntvs*
*.njsproj
*.sln
*.sw*
!rollup.sw.js
# Test files
cypress/screenshots
cypress/videos
# Local Netlify folder
.netlify

2
.npmrc Normal file
View File

@ -0,0 +1,2 @@
auto-install-peers=true
fetch-timeout=100000

1
.nvmrc Normal file
View File

@ -0,0 +1 @@
v18

View File

@ -0,0 +1,13 @@
{
"recommendations": [
"codezombiech.gitignore",
"dbaeumer.vscode-eslint",
"editorconfig.editorconfig",
"vue.volar",
"vue.vscode-typescript-vue-plugin",
"lokalise.i18n-ally",
"mgmcdermott.vscode-language-babel",
"mikestead.dotenv",
"Syler.sass-indented"
]
}

View File

@ -0,0 +1,28 @@
{
"eslint.packageManager": "pnpm",
"editor.formatOnSave": false,
"editor.codeActionsOnSave": {
"source.fixAll": true
},
"eslint.format.enable": true,
"[javascript]": {
"editor.defaultFormatter": "dbaeumer.vscode-eslint"
},
"[typescript]": {
"editor.defaultFormatter": "dbaeumer.vscode-eslint"
},
// https://eslint.vuejs.org/user-guide/#editor-integrations
"eslint.validate": [
"javascript",
"javascriptreact",
"vue"
],
// i18n ally
"i18n-ally.localesPaths": [
"src/i18n/lang"
],
"i18n-ally.sortKeys": true,
"i18n-ally.keepFulfilled": true,
"i18n-ally.keystyle": "nested"
}

File diff suppressed because it is too large Load Diff

View File

@ -1,49 +1,49 @@
# Stage 1: Build application
FROM --platform=$BUILDPLATFORM node:18-alpine AS compile-image
##############
# Build stage
FROM golang:1.19-alpine AS build-env
WORKDIR /build
RUN apk --no-cache add build-base git && \
go install github.com/magefile/mage@latest && \
mv /go/bin/mage /usr/local/go/bin
ARG USE_RELEASE=false
ARG RELEASE_VERSION=main
ARG VIKUNJA_VERSION
ENV PNPM_CACHE_FOLDER .cache/pnpm/
ADD . ./
# Setup repo
COPY . /go/src/code.vikunja.io/api
WORKDIR /go/src/code.vikunja.io/api
RUN \
if [ $USE_RELEASE = true ]; then \
wget https://dl.vikunja.io/frontend/vikunja-frontend-$RELEASE_VERSION.zip -O frontend-release.zip && \
unzip frontend-release.zip -d dist/ && \
exit 0; \
fi && \
# https://pnpm.io/installation#using-corepack
corepack enable && \
# we don't use corepack prepare here by intend since
# we have renovate to keep our dependencies up to date
# Build the frontend
pnpm install && \
apk add --no-cache git && \
echo '{"VERSION": "'$(git describe --tags --always --abbrev=10 | sed 's/-/+/' | sed 's/^v//' | sed 's/-g/-/')'"}' > src/version.json && \
pnpm run build
# Checkout version if set
RUN if [ -n "${VIKUNJA_VERSION}" ]; then git checkout "${VIKUNJA_VERSION}"; fi \
&& mage build:clean build
# Stage 2: copy
FROM nginx:alpine
###################
# The actual image
# Note: I wanted to use the scratch image here, but unfortunatly the go-sqlite bindings require cgo and
# because of this, the container would not start when I compiled the image without cgo.
FROM alpine:3.16
LABEL maintainer="maintainers@vikunja.io"
COPY nginx.conf /etc/nginx/nginx.conf
COPY scripts/run.sh /run.sh
WORKDIR /app/vikunja/
COPY --from=build-env /go/src/code.vikunja.io/api/vikunja .
ENV VIKUNJA_SERVICE_ROOTPATH=/app/vikunja/
# copy compiled files from stage 1
COPY --from=compile-image /build/dist /usr/share/nginx/html
# Dynamic permission changing stuff
# Unprivileged user
ENV PUID 1000
ENV PGID 1000
RUN apk --no-cache add shadow && \
addgroup -g ${PGID} vikunja && \
adduser -s /bin/sh -D -G vikunja -u ${PUID} vikunja -h /app/vikunja -H && \
chown vikunja -R /app/vikunja
COPY run.sh /run.sh
# Add time zone data
RUN apk --no-cache add tzdata
LABEL maintainer="maintainers@vikunja.io"
# Files permissions
RUN mkdir /app/vikunja/files && \
chown -R vikunja /app/vikunja/files
VOLUME /app/vikunja/files
RUN apk add --no-cache \
# for sh file
bash \
# installs usermod and groupmod
shadow
CMD ["/run.sh"]
EXPOSE 3456
CMD "/run.sh"

View File

@ -1,65 +1,48 @@
<img src="https://vikunja.io/images/vikunja-logo.svg" alt="" style="display: block;width: 50%;margin: 0 auto;" width="50%"/>
# Web frontend for Vikunja
[![Build Status](https://drone.kolaente.de/api/badges/vikunja/api/status.svg)](https://drone.kolaente.de/vikunja/api)
> The todo app to organize your life.
[![Build Status](https://drone.kolaente.de/api/badges/vikunja/frontend/status.svg)](https://drone.kolaente.de/vikunja/frontend)
[![License: AGPL v3](https://img.shields.io/badge/License-AGPL%20v3-blue.svg)](LICENSE)
[![Download](https://img.shields.io/badge/download-v0.19.2-brightgreen.svg)](https://dl.vikunja.io)
[![Docker Pulls](https://img.shields.io/docker/pulls/vikunja/api.svg)](https://hub.docker.com/r/vikunja/api/)
[![Swagger Docs](https://img.shields.io/badge/swagger-docs-brightgreen.svg)](https://try.vikunja.io/api/v1/docs)
[![Go Report Card](https://goreportcard.com/badge/kolaente.dev/vikunja/api)](https://goreportcard.com/report/kolaente.dev/vikunja/api)
[![Download](https://img.shields.io/badge/download-v0.20.2-brightgreen.svg)](https://dl.vikunja.io)
[![Translation](https://badges.crowdin.net/vikunja/localized.svg)](https://crowdin.com/project/vikunja)
# Vikunja API
This is the web frontend for Vikunja, written in Vue.js.
> The Todo-app to organize your life.
# Table of contents
* [Security Reports](#security-reports)
* [Features](#features)
* [Docs](#docs)
* [Roadmap](#roadmap)
* [Contributing](#contributing)
* [License](#license)
Take a look at [our roadmap](https://my.vikunja.cloud/share/UrdhKPqumxDXUbYpEGJLSIyNTwAnbBzVlwdDpRbv/auth) (hosted on Vikunja!) for a list of things we're currently working on!
## Security Reports
If you find any security-related issues you don't want to disclose publicly, please use [the contact information on our website](https://vikunja.io/contact/#security).
## Features
## Docker
* Create TODO lists with tasks
* Reminder for tasks
* Namespaces: A "group" which bundles multiple lists
* Share lists and namespaces with teams and users with granular permissions
* Plenty of details for tasks
There is a [docker image available](https://hub.docker.com/r/vikunja/api) with support for http/2 and aggressive caching enabled.
See [the features page](https://vikunja.io/en/features/) on our website for a more exaustive list or
try it on [try.vikunja.io](https://try.vikunja.io)!
## Project setup
## Docs
```shell
pnpm install
```
* [Installing](https://vikunja.io/docs/installing/)
* [Build from source](https://vikunja.io/docs/build-from-sources/)
* [Development setup](https://vikunja.io/docs/development/)
* [Magefile](https://vikunja.io/docs/magefile/)
* [Testing](https://vikunja.io/docs/testing/)
### Compiles and hot-reloads for development
All docs can be found on [the Vikunja home page](https://vikunja.io/docs/).
```shell
pnpm run serve
```
### Roadmap
### Compiles and minifies for production
See [the roadmap](https://my.vikunja.cloud/share/QFyzYEmEYfSyQfTOmIRSwLUpkFjboaBqQCnaPmWd/auth) (hosted on Vikunja!) for more!
```shell
pnpm run build
```
* [ ] [Mobile apps](https://code.vikunja.io/app) (separate repo) *In Progress*
* [ ] [Webapp](https://code.vikunja.io/frontend) (separate repo) *In Progress*
### Lints and fixes files
## Contributing
Fork -> Push -> Pull-Request. Also see the [dev docs](https://vikunja.io/docs/development/) for more info.
```shell
pnpm run lint
```
## Sponsors
[![Relm](https://vikunja.io/images/sponsors/relm.png)](https://relm.us)
## License
This project is licensed under the AGPLv3 License. See the [LICENSE](LICENSE) file for the full license text.

0
crowdin.cli Normal file
View File

25
cypress.config.ts Normal file
View File

@ -0,0 +1,25 @@
import {defineConfig} from 'cypress'
export default defineConfig({
env: {
API_URL: 'http://localhost:3456/api/v1',
TEST_SECRET: 'averyLongSecretToSe33dtheDB',
},
video: false,
retries: {
runMode: 2,
},
projectId: '181c7x',
e2e: {
baseUrl: 'http://localhost:4173',
specPattern: 'cypress/e2e/**/*.{js,jsx,ts,tsx}',
},
component: {
devServer: {
framework: 'vue',
bundler: 'vite',
},
},
viewportWidth: 1600,
viewportHeight: 900,
})

48
cypress/README.md Normal file
View File

@ -0,0 +1,48 @@
# Frontend Testing With Cypress
## Setup
* Enable the [seeder api endpoint](https://vikunja.io/docs/config-options/#testingtoken). You'll then need to add the testingtoken in `cypress.json` or set the `CYPRESS_TEST_SECRET` environment variable.
* Basic configuration happens in the `cypress.json` file
* Overridable with [env](https://docs.cypress.io/guides/guides/environment-variables.html#Option-3-CYPRESS)
* Override base url with `CYPRESS_BASE_URL`
## Fixtures
We're using the [test endpoint](https://vikunja.io/docs/config-options/#testingtoken) of the vikunja api to
seed the database with test data before running the tests.
This ensures better reproducability of tests.
## Running The Tests Locally
### Using Docker
The easiest way to run all frontend tests locally is by using the `docker-compose` file in this repository.
It uses the same configuration as the CI.
To use it, run
```shell
docker-compose up -d
```
Then, once all containers are started, run
```shell
docker-compose run cypress bash
```
to get a shell inside the cypress container.
In that shell you can then execute the tests with
```shell
pnpm run test:frontend
```
### Using The Cypress Dashboard
To open the Cypress Dashboard and run tests from there, run
```shell
pnpm run cypress:open
```

View File

@ -0,0 +1,20 @@
version: '3'
services:
api:
image: vikunja/api:unstable
environment:
VIKUNJA_LOG_LEVEL: DEBUG
VIKUNJA_SERVICE_TESTINGTOKEN: averyLongSecretToSe33dtheDB
ports:
- 3456:3456
cypress:
image: cypress/browsers:node16.14.0-chrome99-ff97
volumes:
- ..:/project
- $HOME/.cache:/home/node/.cache/
user: node
working_dir: /project
environment:
CYPRESS_API_URL: http://api:3456/api/v1
CYPRESS_TEST_SECRET: averyLongSecretToSe33dtheDB

View File

@ -0,0 +1,56 @@
import {ListFactory} from '../../factories/list'
import '../../support/authenticateUser'
import {prepareLists} from './prepareLists'
describe('List History', () => {
prepareLists()
it('should show a list history on the home page', () => {
cy.intercept(Cypress.env('API_URL') + '/namespaces*').as('loadNamespaces')
cy.intercept(Cypress.env('API_URL') + '/lists/*').as('loadList')
const lists = ListFactory.create(6)
cy.visit('/')
cy.wait('@loadNamespaces')
cy.get('body')
.should('not.contain', 'Last viewed')
cy.visit(`/lists/${lists[0].id}`)
cy.wait('@loadNamespaces')
cy.wait('@loadList')
cy.visit(`/lists/${lists[1].id}`)
cy.wait('@loadNamespaces')
cy.wait('@loadList')
cy.visit(`/lists/${lists[2].id}`)
cy.wait('@loadNamespaces')
cy.wait('@loadList')
cy.visit(`/lists/${lists[3].id}`)
cy.wait('@loadNamespaces')
cy.wait('@loadList')
cy.visit(`/lists/${lists[4].id}`)
cy.wait('@loadNamespaces')
cy.wait('@loadList')
cy.visit(`/lists/${lists[5].id}`)
cy.wait('@loadNamespaces')
cy.wait('@loadList')
// cy.visit('/')
// cy.wait('@loadNamespaces')
// Not using cy.visit here to work around the redirect issue fixed in #1337
cy.get('nav.menu.top-menu a')
.contains('Overview')
.click()
cy.get('body')
.should('contain', 'Last viewed')
cy.get('[data-cy="listCardGrid"]')
.should('not.contain', lists[0].title)
.should('contain', lists[1].title)
.should('contain', lists[2].title)
.should('contain', lists[3].title)
.should('contain', lists[4].title)
.should('contain', lists[5].title)
})
})

View File

@ -0,0 +1,125 @@
import {formatISO, format} from 'date-fns'
import {TaskFactory} from '../../factories/task'
import {prepareLists} from './prepareLists'
import '../../support/authenticateUser'
describe('List View Gantt', () => {
prepareLists()
it('Hides tasks with no dates', () => {
const tasks = TaskFactory.create(1)
cy.visit('/lists/1/gantt')
cy.get('.g-gantt-rows-container')
.should('not.contain', tasks[0].title)
})
it('Shows tasks from the current and next month', () => {
const now = Date.UTC(2022, 8, 25)
cy.clock(now, ['Date'])
const nextMonth = new Date(now)
nextMonth.setDate(1)
nextMonth.setMonth(9)
cy.visit('/lists/1/gantt')
cy.get('.g-timeunits-container')
.should('contain', format(now, 'MMMM'))
.should('contain', format(nextMonth, 'MMMM'))
})
it('Shows tasks with dates', () => {
const now = new Date()
const tasks = TaskFactory.create(1, {
start_date: formatISO(now),
end_date: formatISO(now.setDate(now.getDate() + 4)),
})
cy.visit('/lists/1/gantt')
cy.get('.g-gantt-rows-container')
.should('not.be.empty')
.should('contain', tasks[0].title)
})
it('Shows tasks with no dates after enabling them', () => {
const tasks = TaskFactory.create(1, {
start_date: null,
end_date: null,
})
cy.visit('/lists/1/gantt')
cy.get('.gantt-options .fancycheckbox')
.contains('Show tasks which don\'t have dates set')
.click()
cy.get('.g-gantt-rows-container')
.should('not.be.empty')
.should('contain', tasks[0].title)
})
it('Drags a task around', () => {
cy.intercept('**/api/v1/tasks/*')
.as('taskUpdate')
const now = new Date()
TaskFactory.create(1, {
start_date: formatISO(now),
end_date: formatISO(now.setDate(now.getDate() + 4)),
})
cy.visit('/lists/1/gantt')
cy.get('.g-gantt-rows-container .g-gantt-row .g-gantt-row-bars-container div .g-gantt-bar')
.first()
.trigger('mousedown', {which: 1})
.trigger('mousemove', {clientX: 500, clientY: 0})
.trigger('mouseup', {force: true})
cy.wait('@taskUpdate')
})
it('Should change the query parameters when selecting a date range', () => {
const now = Date.UTC(2022, 10, 9)
cy.clock(now, ['Date'])
cy.visit('/lists/1/gantt')
cy.get('.list-gantt .gantt-options .field .control input.input.form-control')
.click()
cy.get('.flatpickr-calendar .flatpickr-innerContainer .dayContainer .flatpickr-day')
.first()
.click()
cy.get('.flatpickr-calendar .flatpickr-innerContainer .dayContainer .flatpickr-day')
.last()
.click()
cy.url().should('contain', 'dateFrom=2022-09-25')
cy.url().should('contain', 'dateTo=2022-11-05')
})
it('Should change the date range based on date query parameters', () => {
cy.visit('/lists/1/gantt?dateFrom=2022-09-25&dateTo=2022-11-05')
cy.get('.g-timeunits-container')
.should('contain', 'September 2022')
.should('contain', 'October 2022')
.should('contain', 'November 2022')
cy.get('.list-gantt .gantt-options .field .control input.input.form-control')
.should('have.value', '25 Sep 2022 to 5 Nov 2022')
})
it('Should open a task when double clicked on it', () => {
const now = new Date()
const tasks = TaskFactory.create(1, {
start_date: formatISO(now),
end_date: formatISO(now.setDate(now.getDate() + 4)),
})
cy.visit('/lists/1/gantt')
cy.get('.gantt-container .g-gantt-chart .g-gantt-row-bars-container .g-gantt-bar')
.dblclick()
cy.url()
.should('contain', `/tasks/${tasks[0].id}`)
})
})

View File

@ -0,0 +1,240 @@
import {BucketFactory} from '../../factories/bucket'
import {ListFactory} from '../../factories/list'
import {TaskFactory} from '../../factories/task'
import {prepareLists} from './prepareLists'
import '../../support/authenticateUser'
describe('List View Kanban', () => {
let buckets
prepareLists()
beforeEach(() => {
buckets = BucketFactory.create(2)
})
it('Shows all buckets with their tasks', () => {
const data = TaskFactory.create(10, {
list_id: 1,
bucket_id: 1,
})
cy.visit('/lists/1/kanban')
cy.get('.kanban .bucket .title')
.contains(buckets[0].title)
.should('exist')
cy.get('.kanban .bucket .title')
.contains(buckets[1].title)
.should('exist')
cy.get('.kanban .bucket')
.first()
.should('contain', data[0].title)
})
it('Can add a new task to a bucket', () => {
TaskFactory.create(2, {
list_id: 1,
bucket_id: 1,
})
cy.visit('/lists/1/kanban')
cy.getSettled('.kanban .bucket')
.contains(buckets[0].title)
.get('.bucket-footer .button')
.contains('Add another task')
.click()
cy.get('.kanban .bucket')
.contains(buckets[0].title)
.get('.bucket-footer .field .control input.input')
.type('New Task{enter}')
cy.get('.kanban .bucket')
.first()
.should('contain', 'New Task')
})
it('Can create a new bucket', () => {
cy.visit('/lists/1/kanban')
cy.get('.kanban .bucket.new-bucket .button')
.click()
cy.get('.kanban .bucket.new-bucket input.input')
.type('New Bucket{enter}')
cy.wait(1000) // Wait for the request to finish
cy.get('.kanban .bucket .title')
.contains('New Bucket')
.should('exist')
})
it('Can set a bucket limit', () => {
cy.visit('/lists/1/kanban')
cy.getSettled('.kanban .bucket .bucket-header .dropdown.options .dropdown-trigger')
.first()
.click()
cy.get('.kanban .bucket .bucket-header .dropdown.options .dropdown-menu .dropdown-item')
.contains('Limit: Not Set')
.click()
cy.get('.kanban .bucket .bucket-header .dropdown.options .dropdown-menu .dropdown-item .field input.input')
.first()
.type(3)
cy.get('[data-cy="setBucketLimit"]')
.first()
.click()
cy.get('.kanban .bucket .bucket-header span.limit')
.contains('0/3')
.should('exist')
})
it('Can rename a bucket', () => {
cy.visit('/lists/1/kanban')
cy.getSettled('.kanban .bucket .bucket-header .title')
.first()
.type('{selectall}New Bucket Title{enter}')
cy.get('.kanban .bucket .bucket-header .title')
.first()
.should('contain', 'New Bucket Title')
})
it('Can delete a bucket', () => {
cy.visit('/lists/1/kanban')
cy.getSettled('.kanban .bucket .bucket-header .dropdown.options .dropdown-trigger')
.first()
.click()
cy.get('.kanban .bucket .bucket-header .dropdown.options .dropdown-menu .dropdown-item')
.contains('Delete')
.click()
cy.get('.modal-mask .modal-container .modal-content .header')
.should('contain', 'Delete the bucket')
cy.get('.modal-mask .modal-container .modal-content .actions .button')
.contains('Do it!')
.click()
cy.get('.kanban .bucket .title')
.contains(buckets[0].title)
.should('not.exist')
cy.get('.kanban .bucket .title')
.contains(buckets[1].title)
.should('exist')
})
it('Can drag tasks around', () => {
const tasks = TaskFactory.create(2, {
list_id: 1,
bucket_id: 1,
})
cy.visit('/lists/1/kanban')
cy.getSettled('.kanban .bucket .tasks .task')
.contains(tasks[0].title)
.first()
.drag('.kanban .bucket:nth-child(2) .tasks')
cy.get('.kanban .bucket:nth-child(2) .tasks')
.should('contain', tasks[0].title)
cy.get('.kanban .bucket:nth-child(1) .tasks')
.should('not.contain', tasks[0].title)
})
it('Should navigate to the task when the task card is clicked', () => {
const tasks = TaskFactory.create(5, {
id: '{increment}',
list_id: 1,
bucket_id: 1,
})
cy.visit('/lists/1/kanban')
cy.getSettled('.kanban .bucket .tasks .task')
.contains(tasks[0].title)
.should('be.visible')
.click()
cy.url()
.should('contain', `/tasks/${tasks[0].id}`, { timeout: 1000 })
})
it('Should remove a task from the kanban board when moving it to another list', () => {
const lists = ListFactory.create(2)
BucketFactory.create(2, {
list_id: '{increment}',
})
const tasks = TaskFactory.create(5, {
id: '{increment}',
list_id: 1,
bucket_id: 1,
})
const task = tasks[0]
cy.visit('/lists/1/kanban')
cy.getSettled('.kanban .bucket .tasks .task')
.contains(task.title)
.should('be.visible')
.click()
cy.get('.task-view .action-buttons .button', { timeout: 3000 })
.contains('Move')
.click()
cy.get('.task-view .content.details .field .multiselect.control .input-wrapper input')
.type(`${lists[1].title}{enter}`)
// The requests happen with a 200ms timeout. Because of that, the results are not yet there when cypress
// presses enter and we can't simulate pressing on enter to select the item.
cy.get('.task-view .content.details .field .multiselect.control .search-results')
.children()
.first()
.click()
cy.get('.global-notification', { timeout: 1000 })
.should('contain', 'Success')
cy.go('back')
cy.get('.kanban .bucket')
.should('not.contain', task.title)
})
it('Shows a button to filter the kanban board', () => {
const data = TaskFactory.create(10, {
list_id: 1,
bucket_id: 1,
})
cy.visit('/lists/1/kanban')
cy.get('.list-kanban .filter-container .base-button')
.should('exist')
})
it('Should remove a task from the board when deleting it', () => {
const lists = ListFactory.create(1)
const buckets = BucketFactory.create(2, {
list_id: lists[0].id,
})
const tasks = TaskFactory.create(5, {
list_id: 1,
bucket_id: buckets[0].id,
})
const task = tasks[0]
cy.visit('/lists/1/kanban')
cy.getSettled('.kanban .bucket .tasks .task')
.contains(task.title)
.should('be.visible')
.click()
cy.get('.task-view .action-buttons .button')
.should('be.visible')
.contains('Delete')
.click()
cy.get('.modal-mask .modal-container .modal-content .header')
.should('contain', 'Delete this task')
cy.get('.modal-mask .modal-container .modal-content .actions .button')
.contains('Do it!')
.click()
cy.get('.global-notification')
.should('contain', 'Success')
cy.getSettled('.kanban .bucket .tasks')
.should('not.contain', task.title)
})
})

View File

@ -0,0 +1,109 @@
import {UserListFactory} from '../../factories/users_list'
import {TaskFactory} from '../../factories/task'
import {UserFactory} from '../../factories/user'
import {ListFactory} from '../../factories/list'
import {prepareLists} from './prepareLists'
import '../../support/authenticateUser'
describe('List View List', () => {
prepareLists()
it('Should be an empty list', () => {
cy.visit('/lists/1')
cy.url()
.should('contain', '/lists/1/list')
cy.get('.list-title h1')
.should('contain', 'First List')
cy.get('.list-title .dropdown')
.should('exist')
cy.get('p')
.contains('This list is currently empty.')
.should('exist')
})
it('Should create a new task', () => {
const newTaskTitle = 'New task'
cy.visit('/lists/1')
cy.get('.task-add textarea')
.type(newTaskTitle+'{enter}')
cy.get('.tasks')
.should('contain.text', newTaskTitle)
})
it('Should navigate to the task when the title is clicked', () => {
const tasks = TaskFactory.create(5, {
id: '{increment}',
list_id: 1,
})
cy.visit('/lists/1/list')
cy.get('.tasks .task .tasktext')
.contains(tasks[0].title)
.first()
.click()
cy.url()
.should('contain', `/tasks/${tasks[0].id}`)
})
it('Should not see any elements for a list which is shared read only', () => {
UserFactory.create(2)
UserListFactory.create(1, {
list_id: 2,
user_id: 1,
right: 0,
})
const lists = ListFactory.create(2, {
owner_id: '{increment}',
namespace_id: '{increment}',
})
cy.visit(`/lists/${lists[1].id}/`)
cy.get('.list-title .icon')
.should('not.exist')
cy.get('input.input[placeholder="Add a new task..."')
.should('not.exist')
})
it('Should only show the color of a list in the navigation and not in the list view', () => {
const lists = ListFactory.create(1, {
hex_color: '00db60',
})
TaskFactory.create(10, {
list_id: lists[0].id,
})
cy.visit(`/lists/${lists[0].id}/`)
cy.get('.menu-list li .list-menu-link .color-bubble')
.should('have.css', 'background-color', 'rgb(0, 219, 96)')
cy.get('.tasks .color-bubble')
.should('not.exist')
})
it('Should paginate for > 50 tasks', () => {
const tasks = TaskFactory.create(100, {
id: '{increment}',
title: i => `task${i}`,
list_id: 1,
})
cy.visit('/lists/1/list')
cy.get('.tasks')
.should('contain', tasks[1].title)
cy.get('.tasks')
.should('not.contain', tasks[99].title)
cy.get('.card-content .pagination .pagination-link')
.contains('2')
.click()
cy.url()
.should('contain', '?page=2')
cy.get('.tasks')
.should('contain', tasks[99].title)
cy.get('.tasks')
.should('not.contain', tasks[1].title)
})
})

View File

@ -0,0 +1,52 @@
import {TaskFactory} from '../../factories/task'
import '../../support/authenticateUser'
describe('List View Table', () => {
it('Should show a table with tasks', () => {
const tasks = TaskFactory.create(1)
cy.visit('/lists/1/table')
cy.get('.list-table table.table')
.should('exist')
cy.get('.list-table table.table')
.should('contain', tasks[0].title)
})
it('Should have working column switches', () => {
TaskFactory.create(1)
cy.visit('/lists/1/table')
cy.get('.list-table .filter-container .items .button')
.contains('Columns')
.click()
cy.get('.list-table .filter-container .card.columns-filter .card-content .fancycheckbox .check')
.contains('Priority')
.click()
cy.get('.list-table .filter-container .card.columns-filter .card-content .fancycheckbox .check')
.contains('Done')
.click()
cy.get('.list-table table.table th')
.contains('Priority')
.should('exist')
cy.get('.list-table table.table th')
.contains('Done')
.should('not.exist')
})
it('Should navigate to the task when the title is clicked', () => {
const tasks = TaskFactory.create(5, {
id: '{increment}',
list_id: 1,
})
cy.visit('/lists/1/table')
cy.get('.list-table table.table')
.contains(tasks[0].title)
.click()
cy.url()
.should('contain', `/tasks/${tasks[0].id}`)
})
})

View File

@ -0,0 +1,120 @@
import {TaskFactory} from '../../factories/task'
import {prepareLists} from './prepareLists'
import '../../support/authenticateUser'
describe('Lists', () => {
let lists
prepareLists((newLists) => (lists = newLists))
it('Should create a new list', () => {
cy.visit('/')
cy.get('.namespace-title .dropdown-trigger')
.click()
cy.get('.namespace-title .dropdown .dropdown-item')
.contains('New list')
.click()
cy.url()
.should('contain', '/lists/new/1')
cy.get('.card-header-title')
.contains('New list')
cy.get('input.input')
.type('New List')
cy.get('.button')
.contains('Create')
.click()
cy.get('.global-notification', { timeout: 1000 }) // Waiting until the request to create the new list is done
.should('contain', 'Success')
cy.url()
.should('contain', '/lists/')
cy.get('.list-title h1')
.should('contain', 'New List')
})
it('Should redirect to a specific list view after visited', () => {
cy.visit('/lists/1/kanban')
cy.url()
.should('contain', '/lists/1/kanban')
cy.visit('/lists/1')
cy.url()
.should('contain', '/lists/1/kanban')
})
it('Should rename the list in all places', () => {
TaskFactory.create(5, {
id: '{increment}',
list_id: 1,
})
const newListName = 'New list name'
cy.visit('/lists/1')
cy.get('.list-title h1')
.should('contain', 'First List')
cy.get('.namespace-container .menu.namespaces-lists .menu-list li:first-child .dropdown .menu-list-dropdown-trigger')
.click()
cy.get('.namespace-container .menu.namespaces-lists .menu-list li:first-child .dropdown .dropdown-content')
.contains('Edit')
.click()
cy.get('#title')
.type(`{selectall}${newListName}`)
cy.get('footer.card-footer .button')
.contains('Save')
.click()
cy.get('.global-notification')
.should('contain', 'Success')
cy.get('.list-title h1')
.should('contain', newListName)
.should('not.contain', lists[0].title)
cy.get('.namespace-container .menu.namespaces-lists .menu-list li:first-child')
.should('contain', newListName)
.should('not.contain', lists[0].title)
cy.visit('/')
cy.get('.card-content')
.should('contain', newListName)
.should('not.contain', lists[0].title)
})
it('Should remove a list', () => {
cy.visit(`/lists/${lists[0].id}`)
cy.get('.namespace-container .menu.namespaces-lists .menu-list li:first-child .dropdown .menu-list-dropdown-trigger')
.click()
cy.get('.namespace-container .menu.namespaces-lists .menu-list li:first-child .dropdown .dropdown-content')
.contains('Delete')
.click()
cy.url()
.should('contain', '/settings/delete')
cy.get('[data-cy="modalPrimary"]')
.contains('Do it')
.click()
cy.get('.global-notification')
.should('contain', 'Success')
cy.get('.namespace-container .menu.namespaces-lists .menu-list')
.should('not.contain', lists[0].title)
cy.location('pathname')
.should('equal', '/')
})
it('Should archive a list', () => {
cy.visit(`/lists/${lists[0].id}`)
cy.get('.list-title .dropdown')
.click()
cy.get('.list-title .dropdown .dropdown-menu .dropdown-item')
.contains('Archive')
.click()
cy.get('.modal-content')
.should('contain.text', 'Archive this list')
cy.get('.modal-content [data-cy=modalPrimary]')
.click()
cy.get('.namespace-container .menu.namespaces-lists .menu-list')
.should('not.contain', lists[0].title)
cy.get('main.app-content')
.should('contain.text', 'This list is archived. It is not possible to create new or edit tasks for it.')
})
})

View File

@ -0,0 +1,145 @@
import {UserFactory} from '../../factories/user'
import '../../support/authenticateUser'
import {ListFactory} from '../../factories/list'
import {NamespaceFactory} from '../../factories/namespace'
describe('Namepaces', () => {
let namespaces
beforeEach(() => {
UserFactory.create(1)
namespaces = NamespaceFactory.create(1)
ListFactory.create(1)
})
it('Should be all there', () => {
cy.visit('/namespaces')
cy.get('[data-cy="namespace-title"]')
.should('contain', namespaces[0].title)
})
it('Should create a new Namespace', () => {
const newNamespaceTitle = 'New Namespace'
cy.visit('/namespaces')
cy.get('[data-cy="new-namespace"]')
.should('contain', 'New namespace')
.click()
cy.url()
.should('contain', '/namespaces/new')
cy.get('.card-header-title')
.should('contain', 'New namespace')
cy.get('input.input')
.type(newNamespaceTitle)
cy.get('.button')
.contains('Create')
.click()
cy.get('.global-notification')
.should('contain', 'Success')
cy.get('.namespace-container')
.should('contain', newNamespaceTitle)
cy.url()
.should('contain', '/namespaces')
})
it('Should rename the namespace all places', () => {
const newNamespaces = NamespaceFactory.create(5)
const newNamespaceName = 'New namespace name'
cy.visit('/namespaces')
cy.get(`.namespace-container .menu.namespaces-lists .namespace-title:contains(${newNamespaces[0].title}) .dropdown .dropdown-trigger`)
.click()
cy.get('.namespace-container .menu.namespaces-lists .namespace-title .dropdown .dropdown-content')
.contains('Edit')
.click()
cy.url()
.should('contain', '/settings/edit')
cy.get('#namespacetext')
.invoke('val')
.should('equal', newNamespaces[0].title) // wait until the namespace data is loaded
cy.get('#namespacetext')
.type(`{selectall}${newNamespaceName}`)
cy.get('footer.card-footer .button')
.contains('Save')
.click()
cy.get('.global-notification', { timeout: 1000 })
.should('contain', 'Success')
cy.get('.namespace-container .menu.namespaces-lists')
.should('contain', newNamespaceName)
.should('not.contain', newNamespaces[0].title)
cy.get('[data-cy="namespaces-list"]')
.should('contain', newNamespaceName)
.should('not.contain', newNamespaces[0].title)
})
it('Should remove a namespace when deleting it', () => {
const newNamespaces = NamespaceFactory.create(5)
cy.visit('/')
cy.get(`.namespace-container .menu.namespaces-lists .namespace-title:contains(${newNamespaces[0].title}) .dropdown .dropdown-trigger`)
.click()
cy.get('.namespace-container .menu.namespaces-lists .namespace-title .dropdown .dropdown-content')
.contains('Delete')
.click()
cy.url()
.should('contain', '/settings/delete')
cy.get('[data-cy="modalPrimary"]')
.contains('Do it')
.click()
cy.get('.global-notification')
.should('contain', 'Success')
cy.get('.namespace-container .menu.namespaces-lists')
.should('not.contain', newNamespaces[0].title)
})
it('Should not show archived lists & namespaces if the filter is not checked', () => {
const n = NamespaceFactory.create(1, {
id: 2,
is_archived: true,
}, false)
ListFactory.create(1, {
id: 2,
namespace_id: n[0].id,
}, false)
ListFactory.create(1, {
id: 3,
is_archived: true,
}, false)
// Initial
cy.visit('/namespaces')
cy.get('.namespace')
.should('not.contain', 'Archived')
// Show archived
cy.get('[data-cy="show-archived-check"] label.check span')
.should('be.visible')
.click()
cy.get('[data-cy="show-archived-check"] input')
.should('be.checked')
cy.get('.namespace')
.should('contain', 'Archived')
// Don't show archived
cy.get('[data-cy="show-archived-check"] label.check span')
.should('be.visible')
.click()
cy.get('[data-cy="show-archived-check"] input')
.should('not.be.checked')
// Second time visiting after unchecking
cy.visit('/namespaces')
cy.get('[data-cy="show-archived-check"] input')
.should('not.be.checked')
cy.get('.namespace')
.should('not.contain', 'Archived')
})
})

View File

@ -0,0 +1,21 @@
import {ListFactory} from '../../factories/list'
import {UserFactory} from '../../factories/user'
import {NamespaceFactory} from '../../factories/namespace'
import {TaskFactory} from '../../factories/task'
export function createLists() {
UserFactory.create(1)
NamespaceFactory.create(1)
const lists = ListFactory.create(1, {
title: 'First List'
})
TaskFactory.truncate()
return lists
}
export function prepareLists(setLists = () => {}) {
beforeEach(() => {
const lists = createLists()
setLists(lists)
})
}

View File

@ -0,0 +1,37 @@
import {TaskFactory} from '../../factories/task'
import {ListFactory} from '../../factories/list'
import {NamespaceFactory} from '../../factories/namespace'
import {UserListFactory} from '../../factories/users_list'
import '../../support/authenticateUser'
describe('Editor', () => {
beforeEach(() => {
NamespaceFactory.create(1)
const lists = ListFactory.create(1)
TaskFactory.truncate()
UserListFactory.truncate()
})
it('Has a preview with checkable checkboxes', () => {
const tasks = TaskFactory.create(1, {
description: `# Test Heading
* Bullet 1
* Bullet 2
* [ ] Checklist
* [x] Checklist checked
`,
})
cy.visit(`/tasks/${tasks[0].id}`)
cy.get('input[type=checkbox][data-checkbox-num=0]')
.click()
cy.get('.task-view .details.content.description h3 span.is-small.has-text-success')
.contains('Saved!')
.should('exist')
cy.get('.preview.content')
.should('contain', 'Test Heading')
})
})

View File

@ -0,0 +1,29 @@
import '../../support/authenticateUser'
describe('The Menu', () => {
it('Is visible by default on desktop', () => {
cy.get('.namespace-container')
.should('have.class', 'is-active')
})
it('Can be hidden on desktop', () => {
cy.get('button.menu-show-button:visible')
.click()
cy.get('.namespace-container')
.should('not.have.class', 'is-active')
})
it('Is hidden by default on mobile', () => {
cy.viewport('iphone-8')
cy.get('.namespace-container')
.should('not.have.class', 'is-active')
})
it('Is can be shown on mobile', () => {
cy.viewport('iphone-8')
cy.get('button.menu-show-button:visible')
.click()
cy.get('.namespace-container')
.should('have.class', 'is-active')
})
})

View File

@ -0,0 +1,25 @@
import {LinkShareFactory} from '../../factories/link_sharing'
import {ListFactory} from '../../factories/list'
import {TaskFactory} from '../../factories/task'
describe('Link shares', () => {
it('Can view a link share', () => {
const lists = ListFactory.create(1)
const tasks = TaskFactory.create(10, {
list_id: lists[0].id
})
const linkShares = LinkShareFactory.create(1, {
list_id: lists[0].id,
right: 0,
})
cy.visit(`/share/${linkShares[0].hash}/auth`)
cy.get('h1.title')
.should('contain', lists[0].title)
cy.get('input.input[placeholder="Add a new task..."')
.should('not.exist')
cy.get('.tasks')
.should('contain', tasks[0].title)
})
})

View File

@ -0,0 +1,128 @@
import {TeamFactory} from '../../factories/team'
import {TeamMemberFactory} from '../../factories/team_member'
import {UserFactory} from '../../factories/user'
import '../../support/authenticateUser'
describe('Team', () => {
it('Creates a new team', () => {
TeamFactory.truncate()
cy.visit('/teams')
const newTeamName = 'New Team'
cy.get('a.button')
.contains('Create a new team')
.click()
cy.url()
.should('contain', '/teams/new')
cy.get('.card-header-title')
.contains('Create a new team')
cy.get('input.input')
.type(newTeamName)
cy.get('.button')
.contains('Create')
.click()
cy.url()
.should('contain', '/edit')
cy.get('input#teamtext')
.should('have.value', newTeamName)
})
it('Shows all teams', () => {
TeamMemberFactory.create(10, {
team_id: '{increment}',
})
const teams = TeamFactory.create(10, {
id: '{increment}',
})
cy.visit('/teams')
cy.get('.teams.box')
.should('not.be.empty')
teams.forEach(t => {
cy.get('.teams.box')
.should('contain', t.name)
})
})
it('Allows an admin to edit the team', () => {
TeamMemberFactory.create(1, {
team_id: 1,
admin: true,
})
const teams = TeamFactory.create(1, {
id: 1,
})
cy.visit('/teams/1/edit')
cy.get('.card input.input')
.first()
.type('{selectall}New Team Name')
cy.get('.card .button')
.contains('Save')
.click()
cy.get('table.table td')
.contains('Admin')
.should('exist')
cy.get('.global-notification')
.should('contain', 'Success')
})
it('Does not allow a normal user to edit the team', () => {
TeamMemberFactory.create(1, {
team_id: 1,
admin: false,
})
const teams = TeamFactory.create(1, {
id: 1,
})
cy.visit('/teams/1/edit')
cy.get('.card input.input')
.should('not.exist')
cy.get('table.table td')
.contains('Member')
.should('exist')
})
it('Allows an admin to add members to the team', () => {
TeamMemberFactory.create(1, {
team_id: 1,
admin: true,
})
TeamFactory.create(1, {
id: 1,
})
const users = UserFactory.create(5)
cy.visit('/teams/1/edit')
cy.get('.card')
.contains('Team Members')
.get('.card-content .multiselect .input-wrapper input')
.type(users[1].username)
cy.get('.card')
.contains('Team Members')
.get('.card-content .multiselect .search-results')
.children()
.first()
.click()
cy.get('.card')
.contains('Team Members')
.get('.card-content .button')
.contains('Add to team')
.click()
cy.get('table.table td')
.contains('Admin')
.should('exist')
cy.get('table.table tr')
.should('contain', users[1].username)
.should('contain', 'Member')
cy.get('.global-notification')
.should('contain', 'Success')
})
})

View File

@ -0,0 +1,151 @@
import {ListFactory} from '../../factories/list'
import {seed} from '../../support/seed'
import {TaskFactory} from '../../factories/task'
import {formatISO} from 'date-fns'
import {UserFactory} from '../../factories/user'
import {NamespaceFactory} from '../../factories/namespace'
import {BucketFactory} from '../../factories/bucket'
import {updateUserSettings} from '../../support/updateUserSettings'
import '../../support/authenticateUser'
function seedTasks(numberOfTasks = 100, startDueDate = new Date()) {
UserFactory.create(1)
NamespaceFactory.create(1)
const list = ListFactory.create()[0]
BucketFactory.create(1, {
list_id: list.id,
})
const tasks = []
let dueDate = startDueDate
for (let i = 0; i < numberOfTasks; i++) {
const now = new Date()
dueDate = (new Date(dueDate.valueOf())).setDate((new Date(dueDate.valueOf())).getDate() + 2)
tasks.push({
id: i + 1,
list_id: list.id,
done: false,
created_by_id: 1,
title: 'Test Task ' + i,
index: i + 1,
due_date: formatISO(dueDate),
created: formatISO(now),
updated: formatISO(now),
})
}
seed(TaskFactory.table, tasks)
return {tasks, list}
}
describe('Home Page Task Overview', () => {
it('Should show tasks with a near due date first on the home page overview', () => {
const {tasks} = seedTasks()
cy.visit('/')
cy.get('[data-cy="showTasks"] .card .task')
.each(([task], index) => {
expect(task.innerText).to.contain(tasks[index].title)
})
})
it('Should show overdue tasks first, then show other tasks', () => {
const oldDate = (new Date()).setDate((new Date()).getDate() - 14)
const {tasks} = seedTasks(100, oldDate)
cy.visit('/')
cy.get('[data-cy="showTasks"] .card .task')
.each(([task], index) => {
expect(task.innerText).to.contain(tasks[index].title)
})
})
it('Should show a new task with a very soon due date at the top', () => {
const {tasks} = seedTasks()
const newTaskTitle = 'New Task'
cy.visit('/')
TaskFactory.create(1, {
id: 999,
title: newTaskTitle,
due_date: formatISO(new Date()),
}, false)
cy.visit(`/lists/${tasks[0].list_id}/list`)
cy.get('.tasks .task')
.first()
.should('contain.text', newTaskTitle)
cy.visit('/')
cy.get('[data-cy="showTasks"] .card .task')
.first()
.should('contain.text', newTaskTitle)
})
it('Should not show a new task without a date at the bottom when there are > 50 tasks', () => {
// We're not using the api here to create the task in order to verify the flow
const {tasks} = seedTasks()
const newTaskTitle = 'New Task'
cy.visit('/')
cy.visit(`/lists/${tasks[0].list_id}/list`)
cy.get('.task-add textarea')
.type(newTaskTitle+'{enter}')
cy.visit('/')
cy.get('[data-cy="showTasks"] .card .task')
.last()
.should('not.contain.text', newTaskTitle)
})
it('Should show a new task without a date at the bottom when there are < 50 tasks', () => {
seedTasks(40)
const newTaskTitle = 'New Task'
TaskFactory.create(1, {
id: 999,
title: newTaskTitle,
}, false)
cy.visit('/')
cy.get('[data-cy="showTasks"] .card .task')
.last()
.should('contain.text', newTaskTitle)
})
it('Should show a task without a due date added via default list at the bottom', () => {
const {list} = seedTasks(40)
updateUserSettings({
default_list_id: list.id,
overdue_tasks_reminders_time: '9:00',
})
const newTaskTitle = 'New Task'
cy.visit('/')
cy.get('.add-task-textarea')
.type(`${newTaskTitle}{enter}`)
cy.get('[data-cy="showTasks"] .card .task')
.last()
.should('contain.text', newTaskTitle)
})
it('Should show the cta buttons for new list when there are no tasks', () => {
TaskFactory.truncate()
cy.visit('/')
cy.get('.home.app-content .content')
.should('contain.text', 'You can create a new list for your new tasks:')
.should('contain.text', 'Or import your lists and tasks from other services into Vikunja:')
})
it('Should not show the cta buttons for new list when there are tasks', () => {
seedTasks()
cy.visit('/')
cy.get('.home.app-content .content')
.should('not.contain.text', 'You can create a new list for your new tasks:')
.should('not.contain.text', 'Or import your lists and tasks from other services into Vikunja:')
})
})

View File

@ -0,0 +1,580 @@
import {formatISO} from 'date-fns'
import {TaskFactory} from '../../factories/task'
import {ListFactory} from '../../factories/list'
import {TaskCommentFactory} from '../../factories/task_comment'
import {UserFactory} from '../../factories/user'
import {NamespaceFactory} from '../../factories/namespace'
import {UserListFactory} from '../../factories/users_list'
import {TaskAssigneeFactory} from '../../factories/task_assignee'
import {LabelFactory} from '../../factories/labels'
import {LabelTaskFactory} from '../../factories/label_task'
import {BucketFactory} from '../../factories/bucket'
import '../../support/authenticateUser'
import {TaskAttachmentFactory} from '../../factories/task_attachments'
function addLabelToTaskAndVerify(labelTitle: string) {
cy.get('.task-view .action-buttons .button')
.contains('Add Labels')
.click()
cy.get('.task-view .details.labels-list .multiselect input')
.type(labelTitle)
cy.get('.task-view .details.labels-list .multiselect .search-results')
.children()
.first()
.click()
cy.get('.global-notification', { timeout: 4000 })
.should('contain', 'Success')
cy.get('.task-view .details.labels-list .multiselect .input-wrapper span.tag')
.should('exist')
.should('contain', labelTitle)
}
function uploadAttachmentAndVerify(taskId: number) {
cy.intercept(`${Cypress.env('API_URL')}/tasks/${taskId}/attachments`).as('uploadAttachment')
cy.get('.task-view .action-buttons .button')
.contains('Add Attachments')
.click()
cy.get('input[type=file]', {timeout: 1000})
.selectFile('cypress/fixtures/image.jpg', {force: true}) // The input is not visible, but on purpose
cy.wait('@uploadAttachment')
cy.get('.attachments .attachments .files a.attachment')
.should('exist')
}
describe('Task', () => {
let namespaces
let lists
let buckets
beforeEach(() => {
UserFactory.create(1)
namespaces = NamespaceFactory.create(1)
lists = ListFactory.create(1)
buckets = BucketFactory.create(1, {
list_id: lists[0].id,
})
TaskFactory.truncate()
UserListFactory.truncate()
})
it('Should be created new', () => {
cy.visit('/lists/1/list')
cy.get('.input[placeholder="Add a new task…"')
.type('New Task')
cy.get('.button')
.contains('Add')
.click()
cy.get('.tasks .task .tasktext')
.first()
.should('contain', 'New Task')
})
it('Inserts new tasks at the top of the list', () => {
TaskFactory.create(1)
cy.visit('/lists/1/list')
cy.get('.list-is-empty-notice')
.should('not.exist')
cy.get('.input[placeholder="Add a new task…"')
.type('New Task')
cy.get('.button')
.contains('Add')
.click()
cy.wait(1000) // Wait for the request
cy.get('.tasks .task .tasktext')
.first()
.should('contain', 'New Task')
})
it('Marks a task as done', () => {
TaskFactory.create(1)
cy.visit('/lists/1/list')
cy.get('.tasks .task .fancycheckbox label.check')
.first()
.click()
cy.get('.global-notification')
.should('contain', 'Success')
})
it('Can add a task to favorites', () => {
TaskFactory.create(1)
cy.visit('/lists/1/list')
cy.get('.tasks .task .favorite')
.first()
.click()
cy.get('.menu.namespaces-lists')
.should('contain', 'Favorites')
})
describe('Task Detail View', () => {
beforeEach(() => {
TaskCommentFactory.truncate()
LabelTaskFactory.truncate()
})
it('Shows all task details', () => {
const tasks = TaskFactory.create(1, {
id: 1,
index: 1,
description: 'Lorem ipsum dolor sit amet.'
})
cy.visit(`/tasks/${tasks[0].id}`)
cy.get('.task-view h1.title.input')
.should('contain', tasks[0].title)
cy.get('.task-view h1.title.task-id')
.should('contain', '#1')
cy.get('.task-view h6.subtitle')
.should('contain', namespaces[0].title)
.should('contain', lists[0].title)
cy.get('.task-view .details.content.description')
.should('contain', tasks[0].description)
cy.get('.task-view .action-buttons p.created')
.should('contain', 'Created')
})
it('Shows a done label for done tasks', () => {
const tasks = TaskFactory.create(1, {
id: 1,
index: 1,
done: true,
done_at: formatISO(new Date())
})
cy.visit(`/tasks/${tasks[0].id}`)
cy.get('.task-view .heading .is-done')
.should('be.visible')
.should('contain', 'Done')
cy.get('.task-view .action-buttons p.created')
.scrollIntoView()
.should('be.visible')
.should('contain', 'Done')
})
it('Can mark a task as done', () => {
const tasks = TaskFactory.create(1, {
id: 1,
done: false,
})
cy.visit(`/tasks/${tasks[0].id}`)
cy.get('.task-view .action-buttons .button')
.contains('Mark task done!')
.click()
cy.get('.task-view .heading .is-done')
.should('exist')
.should('contain', 'Done')
cy.get('.global-notification')
.should('contain', 'Success')
cy.get('.task-view .action-buttons .button')
.should('contain', 'Mark as undone')
})
it('Shows a task identifier since the list has one', () => {
const lists = ListFactory.create(1, {
id: 1,
identifier: 'TEST',
})
const tasks = TaskFactory.create(1, {
id: 1,
list_id: lists[0].id,
index: 1,
})
cy.visit(`/tasks/${tasks[0].id}`)
cy.get('.task-view h1.title.task-id')
.should('contain', `${lists[0].identifier}-${tasks[0].index}`)
})
it('Can edit the description', () => {
const tasks = TaskFactory.create(1, {
id: 1,
description: 'Lorem ipsum dolor sit amet.'
})
cy.visit(`/tasks/${tasks[0].id}`)
cy.get('.task-view .details.content.description .editor button')
.click()
cy.get('.task-view .details.content.description .editor .vue-easymde .EasyMDEContainer .CodeMirror-scroll')
.type('{selectall}New Description')
cy.get('[data-cy="saveEditor"]')
.contains('Save')
.click()
cy.get('.task-view .details.content.description h3 span.is-small.has-text-success')
.contains('Saved!')
.should('exist')
})
it('Can add a new comment', () => {
const tasks = TaskFactory.create(1, {
id: 1,
})
cy.visit(`/tasks/${tasks[0].id}`)
cy.get('.task-view .comments .media.comment .editor .vue-easymde .EasyMDEContainer .CodeMirror-scroll')
.should('be.visible')
.type('{selectall}New Comment')
cy.get('.task-view .comments .media.comment .button:not([disabled])')
.contains('Comment')
.should('be.visible')
.click()
cy.get('.task-view .comments .media.comment .editor')
.should('contain', 'New Comment')
cy.get('.global-notification')
.should('contain', 'Success')
})
it('Can move a task to another list', () => {
const lists = ListFactory.create(2)
BucketFactory.create(2, {
list_id: '{increment}'
})
const tasks = TaskFactory.create(1, {
id: 1,
list_id: lists[0].id,
})
cy.visit(`/tasks/${tasks[0].id}`)
cy.get('.task-view .action-buttons .button')
.contains('Move')
.click()
cy.get('.task-view .content.details .field .multiselect.control .input-wrapper input')
.type(`${lists[1].title}{enter}`)
// The requests happen with a 200ms timeout. Because of that, the results are not yet there when cypress
// presses enter and we can't simulate pressing on enter to select the item.
cy.get('.task-view .content.details .field .multiselect.control .search-results')
.children()
.first()
.click()
cy.get('.task-view h6.subtitle')
.should('contain', namespaces[0].title)
.should('contain', lists[1].title)
cy.get('.global-notification')
.should('contain', 'Success')
})
it('Can delete a task', () => {
const tasks = TaskFactory.create(1, {
id: 1,
list_id: 1,
})
cy.visit(`/tasks/${tasks[0].id}`)
cy.get('.task-view .action-buttons .button')
.should('be.visible')
.contains('Delete')
.click()
cy.get('.modal-mask .modal-container .modal-content .header')
.should('contain', 'Delete this task')
cy.get('.modal-mask .modal-container .modal-content .actions .button')
.contains('Do it!')
.click()
cy.get('.global-notification')
.should('contain', 'Success')
cy.url()
.should('contain', `/lists/${tasks[0].list_id}/`)
})
it('Can add an assignee to a task', () => {
const users = UserFactory.create(5)
const tasks = TaskFactory.create(1, {
id: 1,
list_id: 1,
})
UserListFactory.create(5, {
list_id: 1,
user_id: '{increment}',
})
cy.visit(`/tasks/${tasks[0].id}`)
cy.get('[data-cy="taskDetail.assign"]')
.click()
cy.get('.task-view .column.assignees .multiselect input')
.type(users[1].username)
cy.get('.task-view .column.assignees .multiselect .search-results')
.children()
.first()
.click()
cy.get('.global-notification')
.should('contain', 'Success')
cy.get('.task-view .column.assignees .multiselect .input-wrapper span.assignee')
.should('exist')
})
it('Can remove an assignee from a task', () => {
const users = UserFactory.create(2)
const tasks = TaskFactory.create(1, {
id: 1,
list_id: 1,
})
UserListFactory.create(5, {
list_id: 1,
user_id: '{increment}',
})
TaskAssigneeFactory.create(1, {
task_id: tasks[0].id,
user_id: users[1].id,
})
cy.visit(`/tasks/${tasks[0].id}`)
cy.get('.task-view .column.assignees .multiselect .input-wrapper span.assignee')
.get('.remove-assignee')
.click()
cy.get('.global-notification')
.should('contain', 'Success')
cy.get('.task-view .column.assignees .multiselect .input-wrapper span.assignee')
.should('not.exist')
})
it('Can add a new label to a task', () => {
const tasks = TaskFactory.create(1, {
id: 1,
list_id: 1,
})
LabelFactory.truncate()
const newLabelText = 'some new label'
cy.visit(`/tasks/${tasks[0].id}`)
cy.get('.task-view .action-buttons .button')
.contains('Add Labels')
.should('be.visible')
.click()
cy.get('.task-view .details.labels-list .multiselect input')
.type(newLabelText)
cy.get('.task-view .details.labels-list .multiselect .search-results')
.children()
.first()
.click()
cy.get('.global-notification')
.should('contain', 'Success')
cy.get('.task-view .details.labels-list .multiselect .input-wrapper span.tag')
.should('exist')
.should('contain', newLabelText)
})
it('Can add an existing label to a task', () => {
const tasks = TaskFactory.create(1, {
id: 1,
list_id: 1,
})
const labels = LabelFactory.create(1)
LabelTaskFactory.truncate()
cy.visit(`/tasks/${tasks[0].id}`)
addLabelToTaskAndVerify(labels[0].title)
})
it('Can add a label to a task and it shows up on the kanban board afterwards', () => {
const tasks = TaskFactory.create(1, {
id: 1,
list_id: lists[0].id,
bucket_id: buckets[0].id,
})
const labels = LabelFactory.create(1)
LabelTaskFactory.truncate()
cy.visit(`/lists/${lists[0].id}/kanban`)
cy.get('.bucket .task')
.contains(tasks[0].title)
.click()
addLabelToTaskAndVerify(labels[0].title)
cy.get('.modal-content .close')
.click()
cy.get('.bucket .task')
.should('contain.text', labels[0].title)
})
it('Can remove a label from a task', () => {
const tasks = TaskFactory.create(1, {
id: 1,
list_id: 1,
})
const labels = LabelFactory.create(1)
LabelTaskFactory.create(1, {
task_id: tasks[0].id,
label_id: labels[0].id,
})
cy.visit(`/tasks/${tasks[0].id}`)
cy.getSettled('.task-view .details.labels-list .multiselect .input-wrapper')
.should('be.visible')
.should('contain', labels[0].title)
cy.getSettled('.task-view .details.labels-list .multiselect .input-wrapper')
.children()
.first()
.get('[data-cy="taskDetail.removeLabel"]')
.click()
cy.get('.global-notification')
.should('contain', 'Success')
cy.get('.task-view .details.labels-list .multiselect .input-wrapper')
.should('not.contain', labels[0].title)
})
it('Can set a due date for a task', () => {
const tasks = TaskFactory.create(1, {
id: 1,
done: false,
})
cy.visit(`/tasks/${tasks[0].id}`)
cy.get('.task-view .action-buttons .button')
.contains('Set Due Date')
.click()
cy.get('.task-view .columns.details .column')
.contains('Due Date')
.get('.date-input .datepicker .show')
.click()
cy.get('.datepicker .datepicker-popup button')
.contains('Tomorrow')
.click()
cy.get('[data-cy="closeDatepicker"]')
.contains('Confirm')
.click()
cy.get('.task-view .columns.details .column')
.contains('Due Date')
.get('.date-input .datepicker-popup')
.should('not.exist')
cy.get('.global-notification')
.should('contain', 'Success')
})
it('Can set a priority for a task', () => {
const tasks = TaskFactory.create(1, {
id: 1,
})
cy.visit(`/tasks/${tasks[0].id}`)
cy.get('.task-view .action-buttons .button')
.contains('Set Priority')
.click()
cy.get('.task-view .columns.details .column')
.contains('Priority')
.get('.select select')
.select('Urgent')
cy.get('.global-notification')
.should('contain', 'Success')
cy.get('.task-view .columns.details .column')
.contains('Priority')
.get('.select select')
.should('have.value', '4')
})
it('Can set the progress for a task', () => {
const tasks = TaskFactory.create(1, {
id: 1,
})
cy.visit(`/tasks/${tasks[0].id}`)
cy.get('.task-view .action-buttons .button')
.contains('Set Progress')
.click()
cy.get('.task-view .columns.details .column')
.contains('Progress')
.get('.select select')
.select('50%')
cy.get('.global-notification')
.should('contain', 'Success')
cy.wait(200)
cy.get('.task-view .columns.details .column')
.contains('Progress')
.get('.select select')
.should('be.visible')
.should('have.value', '0.5')
})
it('Can add an attachment to a task', () => {
TaskAttachmentFactory.truncate()
const tasks = TaskFactory.create(1, {
id: 1,
})
cy.visit(`/tasks/${tasks[0].id}`)
uploadAttachmentAndVerify(tasks[0].id)
})
it('Can add an attachment to a task and see it appearing on kanban', () => {
TaskAttachmentFactory.truncate()
const tasks = TaskFactory.create(1, {
id: 1,
list_id: lists[0].id,
bucket_id: buckets[0].id,
})
const labels = LabelFactory.create(1)
LabelTaskFactory.truncate()
cy.visit(`/lists/${lists[0].id}/kanban`)
cy.get('.bucket .task')
.contains(tasks[0].title)
.click()
uploadAttachmentAndVerify(tasks[0].id)
cy.get('.modal-content .close')
.click()
cy.get('.bucket .task .footer .icon svg.fa-paperclip')
.should('exist')
})
it('Can check items off a checklist', () => {
const tasks = TaskFactory.create(1, {
id: 1,
description: `
This is a checklist:
* [ ] one item
* [ ] another item
* [ ] third item
* [ ] fourth item
* [x] and this one is already done
`,
})
cy.visit(`/tasks/${tasks[0].id}`)
cy.get('.task-view .checklist-summary')
.should('contain.text', '1 of 5 tasks')
cy.get('.editor .content ul > li input[type=checkbox]')
.eq(2)
.click()
cy.get('.editor .content ul > li input[type=checkbox]')
.eq(2)
.should('be.checked')
cy.get('.editor .content input[type=checkbox]')
.should('have.length', 5)
cy.get('.task-view .checklist-summary')
.should('contain.text', '2 of 5 tasks')
})
})
})

View File

@ -0,0 +1,63 @@
import {UserFactory} from '../../factories/user'
const testAndAssertFailed = fixture => {
cy.visit('/login')
cy.get('input[id=username]').type(fixture.username)
cy.get('input[id=password]').type(fixture.password)
cy.get('.button').contains('Login').click()
cy.wait(5000) // It can take waaaayy too long to log the user in
cy.url().should('include', '/')
cy.get('div.message.danger').contains('Wrong username or password.')
}
context('Login', () => {
beforeEach(() => {
UserFactory.create(1, {
username: 'test',
})
cy.visit('/', {
onBeforeLoad(win) {
win.localStorage.removeItem('token')
},
})
})
it('Should log in with the right credentials', () => {
const fixture = {
username: 'test',
password: '1234',
}
cy.visit('/login')
cy.get('input[id=username]').type(fixture.username)
cy.get('input[id=password]').type(fixture.password)
cy.get('.button').contains('Login').click()
cy.url().should('include', '/')
cy.clock(1625656161057) // 13:00
cy.get('h2').should('contain', `Hi ${fixture.username}!`)
})
it('Should fail with a bad password', () => {
const fixture = {
username: 'test',
password: '123456',
}
testAndAssertFailed(fixture)
})
it('Should fail with a bad username', () => {
const fixture = {
username: 'loremipsum',
password: '1234',
}
testAndAssertFailed(fixture)
})
it('Should redirect to /login when no user is logged in', () => {
cy.visit('/')
cy.url().should('include', '/login')
})
})

View File

@ -0,0 +1,44 @@
import '../../support/authenticateUser'
import {createLists} from '../list/prepareLists'
function logout() {
cy.get('.navbar .user .username')
.click()
cy.get('.navbar .user .dropdown-menu .dropdown-item')
.contains('Logout')
.click()
}
describe('Log out', () => {
it('Logs the user out', () => {
cy.visit('/')
expect(localStorage.getItem('token')).to.not.eq(null)
logout()
cy.url()
.should('contain', '/login')
.then(() => {
expect(localStorage.getItem('token')).to.eq(null)
})
})
it.skip('Should clear the list history after logging the user out', () => {
const lists = createLists()
cy.visit(`/lists/${lists[0].id}`)
.then(() => {
expect(localStorage.getItem('listHistory')).to.not.eq(null)
})
logout()
cy.wait(1000) // This makes re-loading of the list and associated entities (and the resulting error) visible
cy.url()
.should('contain', '/login')
.then(() => {
expect(localStorage.getItem('listHistory')).to.eq(null)
})
})
})

View File

@ -0,0 +1,48 @@
// This test assumes no mailer is set up and all users are activated immediately.
import {UserFactory} from '../../factories/user'
context('Registration', () => {
beforeEach(() => {
UserFactory.create(1, {
username: 'test',
})
cy.visit('/', {
onBeforeLoad(win) {
win.localStorage.removeItem('token')
},
})
})
it('Should work without issues', () => {
const fixture = {
username: 'testuser',
password: '123456',
email: 'testuser@example.com',
}
cy.visit('/register')
cy.get('#username').type(fixture.username)
cy.get('#email').type(fixture.email)
cy.get('#password').type(fixture.password)
cy.get('#register-submit').click()
cy.url().should('include', '/')
cy.clock(1625656161057) // 13:00
cy.get('h2').should('contain', `Hi ${fixture.username}!`)
})
it.only('Should fail', () => {
const fixture = {
username: 'test',
password: '123456',
email: 'testuser@example.com',
}
cy.visit('/register')
cy.get('#username').type(fixture.username)
cy.get('#email').type(fixture.email)
cy.get('#password').type(fixture.password)
cy.get('#register-submit').click()
cy.get('div.message.danger').contains('A user with this username already exists.')
})
})

View File

@ -0,0 +1,47 @@
import {UserFactory} from '../../factories/user'
import '../../support/authenticateUser'
describe('User Settings', () => {
beforeEach(() => {
UserFactory.create(1)
})
it('Changes the user avatar', () => {
cy.intercept(`${Cypress.env('API_URL')}/user/settings/avatar/upload`).as('uploadAvatar')
cy.visit('/user/settings/avatar')
cy.get('input[name=avatarProvider][value=upload]')
.click()
cy.get('input[type=file]', {timeout: 1000})
.selectFile('cypress/fixtures/image.jpg', {force: true}) // The input is not visible, but on purpose
cy.get('.vue-handler-wrapper.vue-handler-wrapper--south .vue-simple-handler.vue-simple-handler--south')
.trigger('mousedown', {which: 1})
.trigger('mousemove', {clientY: 100})
.trigger('mouseup')
cy.get('[data-cy="uploadAvatar"]')
.contains('Upload Avatar')
.click()
cy.wait('@uploadAvatar')
cy.get('.global-notification')
.should('contain', 'Success')
})
it('Updates the name', () => {
cy.visit('/user/settings/general')
cy.get('.general-settings .control input.input')
.first()
.type('Lorem Ipsum')
cy.get('[data-cy="saveGeneralSettings"]')
.contains('Save')
.click()
cy.get('.global-notification')
.should('contain', 'Success')
cy.get('.navbar .user .username')
.should('contain', 'Lorem Ipsum')
})
})

View File

@ -0,0 +1,20 @@
import {faker} from '@faker-js/faker'
import {Factory} from '../support/factory'
import {formatISO} from 'date-fns'
export class BucketFactory extends Factory {
static table = 'buckets'
static factory() {
const now = new Date()
return {
id: '{increment}',
title: faker.lorem.words(3),
list_id: 1,
created_by_id: 1,
created: formatISO(now),
updated: formatISO(now)
}
}
}

View File

@ -0,0 +1,17 @@
import {Factory} from '../support/factory'
import {formatISO} from 'date-fns'
export class LabelTaskFactory extends Factory {
static table = 'label_tasks'
static factory() {
const now = new Date()
return {
id: '{increment}',
task_id: 1,
label_id: 1,
created: formatISO(now),
}
}
}

View File

@ -0,0 +1,22 @@
import {faker} from '@faker-js/faker'
import {Factory} from '../support/factory'
import {formatISO} from 'date-fns'
export class LabelFactory extends Factory {
static table = 'labels'
static factory() {
const now = new Date()
return {
id: '{increment}',
title: faker.lorem.words(2),
description: faker.lorem.text(10),
hex_color: (Math.random()*0xFFFFFF<<0).toString(16), // random 6-digit hex number
created_by_id: 1,
created: formatISO(now),
updated: formatISO(now),
}
}
}

View File

@ -0,0 +1,22 @@
import {Factory} from '../support/factory'
import {formatISO} from "date-fns"
import {faker} from '@faker-js/faker'
export class LinkShareFactory extends Factory {
static table = 'link_shares'
static factory() {
const now = new Date()
return {
id: '{increment}',
hash: faker.random.word(32),
list_id: 1,
right: 0,
sharing_type: 0,
shared_by_id: 1,
created: formatISO(now),
updated: formatISO(now)
}
}
}

20
cypress/factories/list.ts Normal file
View File

@ -0,0 +1,20 @@
import {Factory} from '../support/factory'
import {formatISO} from "date-fns"
import {faker} from '@faker-js/faker'
export class ListFactory extends Factory {
static table = 'lists'
static factory() {
const now = new Date()
return {
id: '{increment}',
title: faker.lorem.words(3),
owner_id: 1,
namespace_id: 1,
created: formatISO(now),
updated: formatISO(now)
}
}
}

View File

@ -0,0 +1,19 @@
import {faker} from '@faker-js/faker'
import {Factory} from '../support/factory'
import {formatISO} from 'date-fns'
export class NamespaceFactory extends Factory {
static table = 'namespaces'
static factory() {
const now = new Date()
return {
id: '{increment}',
title: faker.lorem.words(3),
owner_id: 1,
created: formatISO(now),
updated: formatISO(now)
}
}
}

23
cypress/factories/task.ts Normal file
View File

@ -0,0 +1,23 @@
import {faker} from '@faker-js/faker'
import {Factory} from '../support/factory'
import {formatISO} from 'date-fns'
export class TaskFactory extends Factory {
static table = 'tasks'
static factory() {
const now = new Date()
return {
id: '{increment}',
title: faker.lorem.words(3),
done: false,
list_id: 1,
created_by_id: 1,
index: '{increment}',
position: '{increment}',
created: formatISO(now),
updated: formatISO(now)
}
}
}

View File

@ -0,0 +1,17 @@
import {Factory} from '../support/factory'
import {formatISO} from 'date-fns'
export class TaskAssigneeFactory extends Factory {
static table = 'task_assignees'
static factory() {
const now = new Date()
return {
id: '{increment}',
task_id: 1,
user_id: 1,
created: formatISO(now),
}
}
}

View File

@ -0,0 +1,17 @@
import {Factory} from '../support/factory'
import {formatISO} from 'date-fns'
export class TaskAttachmentFactory extends Factory {
static table = 'task_attachments'
static factory() {
const now = new Date()
return {
id: '{increment}',
task_id: 1,
file_id: 1,
created: formatISO(now),
}
}
}

View File

@ -0,0 +1,21 @@
import {faker} from '@faker-js/faker'
import {Factory} from '../support/factory'
import {formatISO} from "date-fns"
export class TaskCommentFactory extends Factory {
static table = 'task_comments'
static factory() {
const now = new Date()
return {
id: '{increment}',
comment: faker.lorem.text(3),
author_id: 1,
task_id: 1,
created: formatISO(now),
updated: formatISO(now)
}
}
}

18
cypress/factories/team.ts Normal file
View File

@ -0,0 +1,18 @@
import {faker} from '@faker-js/faker'
import {Factory} from '../support/factory'
import {formatISO} from 'date-fns'
export class TeamFactory extends Factory {
static table = 'teams'
static factory() {
const now = new Date()
return {
name: faker.lorem.words(3),
created_by_id: 1,
created: formatISO(now),
updated: formatISO(now)
}
}
}

View File

@ -0,0 +1,15 @@
import {Factory} from '../support/factory'
import {formatISO} from 'date-fns'
export class TeamMemberFactory extends Factory {
static table = 'team_members'
static factory() {
return {
team_id: 1,
user_id: 1,
admin: false,
created: formatISO(new Date()),
}
}
}

22
cypress/factories/user.ts Normal file
View File

@ -0,0 +1,22 @@
import {faker} from '@faker-js/faker'
import {Factory} from '../support/factory'
import {formatISO} from "date-fns"
export class UserFactory extends Factory {
static table = 'users'
static factory() {
const now = new Date()
return {
id: '{increment}',
username: faker.lorem.word(10) + faker.datatype.uuid(),
password: '$2a$14$dcadBoMBL9jQoOcZK8Fju.cy0Ptx2oZECkKLnaa8ekRoTFe1w7To.', // 1234
status: 0,
issuer: 'local',
created: formatISO(now),
updated: formatISO(now)
}
}
}

View File

@ -0,0 +1,19 @@
import {Factory} from '../support/factory'
import {formatISO} from "date-fns"
export class UserListFactory extends Factory {
static table = 'users_lists'
static factory() {
const now = new Date()
return {
id: '{increment}',
list_id: 1,
user_id: 1,
right: 0,
created: formatISO(now),
updated: formatISO(now)
}
}
}

BIN
cypress/fixtures/image.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 872 KiB

View File

@ -0,0 +1,29 @@
// This authenticates a user and puts the token in local storage which allows us to perform authenticated requests.
// Built after https://github.com/cypress-io/cypress-example-recipes/tree/bd2d6ffb33214884cab343d38e7f9e6ebffb323f/examples/logging-in__jwt
import {UserFactory} from '../factories/user'
let token
before(() => {
const users = UserFactory.create(1)
cy.request('POST', `${Cypress.env('API_URL')}/login`, {
username: users[0].username,
password: '1234',
})
.its('body')
.then(r => {
token = r.token
})
})
beforeEach(() => {
cy.log(`Using token ${token} to make authenticated requests`)
cy.visit('/', {
onBeforeLoad(win) {
win.localStorage.setItem('token', token)
},
})
})

View File

@ -0,0 +1,71 @@
/// <reference types="cypress" />
// ***********************************************
// This example commands.ts shows you how to
// create various custom commands and overwrite
// existing commands.
//
// For more comprehensive examples of custom
// commands please read more here:
// https://on.cypress.io/custom-commands
// ***********************************************
//
//
// -- This is a parent command --
// Cypress.Commands.add('login', (email, password) => { ... })
//
//
// -- This is a child command --
// Cypress.Commands.add('drag', { prevSubject: 'element'}, (subject, options) => { ... })
//
//
// -- This is a dual command --
// Cypress.Commands.add('dismiss', { prevSubject: 'optional'}, (subject, options) => { ... })
//
//
// -- This will overwrite an existing command --
// Cypress.Commands.overwrite('visit', (originalFn, url, options) => { ... })
//
// declare global {
// namespace Cypress {
// interface Chainable {
// login(email: string, password: string): Chainable<void>
// drag(subject: string, options?: Partial<TypeOptions>): Chainable<Element>
// dismiss(subject: string, options?: Partial<TypeOptions>): Chainable<Element>
// visit(originalFn: CommandOriginalFn, url: string, options: Partial<VisitOptions>): Chainable<Element>
// }
// }
// }
/**
* Recursively gets an element, returning only after it's determined to be attached to the DOM for good.
*
* Source: https://github.com/cypress-io/cypress/issues/7306#issuecomment-850621378
*/
Cypress.Commands.add('getSettled', (selector, opts = {}) => {
const retries = opts.retries || 3
const delay = opts.delay || 100
const isAttached = (resolve, count = 0) => {
const el = Cypress.$(selector)
// is element attached to the DOM?
count = Cypress.dom.isAttached(el) ? count + 1 : 0
// hit our base case, return the element
if (count >= retries) {
return resolve(el)
}
// retry after a bit of a delay
setTimeout(() => isAttached(resolve, count), delay)
}
// wrap, so we can chain cypress commands off the result
return cy.wrap(null).then(() => {
return new Cypress.Promise((resolve) => {
return isAttached(resolve, 0)
}).then((el) => {
return cy.wrap(el)
})
})
})

View File

@ -0,0 +1,12 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width,initial-scale=1.0">
<title>Components App</title>
</head>
<body>
<div data-cy-root></div>
</body>
</html>

View File

@ -0,0 +1,29 @@
// ***********************************************************
// This example support/component.ts is processed and
// loaded automatically before your test files.
//
// This is a great place to put global configuration and
// behavior that modifies Cypress.
//
// You can change the location of this file or turn off
// automatically serving support files with the
// 'supportFile' configuration option.
//
// You can read more here:
// https://on.cypress.io/configuration
// ***********************************************************
// Import commands.js using ES2015 syntax:
import './commands'
// Alternatively you can use CommonJS syntax:
// require('./commands')
import { mount } from 'cypress/vue'
// Ensure global styles are loaded
import '../../src/styles/global.scss';
Cypress.Commands.add('mount', mount)
// Example use:
// cy.mount(MyComponent)

10
cypress/support/e2e.ts Normal file
View File

@ -0,0 +1,10 @@
import './commands'
import '@4tw/cypress-drag-drop'
// see https://github.com/cypress-io/cypress/issues/702#issuecomment-587127275
Cypress.on('window:before:load', (win) => {
// disable service workers
// @ts-ignore
delete win.navigator.__proto__.ServiceWorker
})

View File

@ -0,0 +1,52 @@
import {seed} from './seed'
/**
* A factory makes it easy to seed the database with data.
*/
export class Factory {
static table = null
static factory() {
return {}
}
/**
* Seeds a bunch of fake data into the database.
*
* Takes an override object as its single argument which will override the data from the factory.
* If the value of one of the override fields is `{increment}` that value will be replaced with an incrementing
* number through all created entities.
*
* @param override
* @returns {[]}
*/
static create(count = 1, override = {}, truncate = true) {
const data = []
for (let i = 1; i <= count; i++) {
const entry = {
...this.factory(),
...override,
}
for (const e in entry) {
if(typeof entry[e] === 'function') {
entry[e] = entry[e](i)
continue
}
if (entry[e] === '{increment}') {
entry[e] = i
}
}
data.push(entry)
}
seed(this.table, data, truncate)
return data
}
static truncate() {
seed(this.table, null)
}
}

24
cypress/support/seed.ts Normal file
View File

@ -0,0 +1,24 @@
/**
* Seeds a db table with data. If a data object is provided as the second argument, it will load the fixtures
* file for the table and merge the data from it with the passed data. This allows you to override specific
* fields of the fixtures without having to redeclare the whole fixture.
*
* Passing null as the second argument empties the table.
*
* @param table
* @param data
*/
export function seed(table, data = {}, truncate = true) {
if (data === null) {
data = []
}
cy.request({
method: 'PATCH',
url: `${Cypress.env('API_URL')}/test/${table}?truncate=${truncate ? 'true' : 'false'}`,
headers: {
'Authorization': Cypress.env('TEST_SECRET'),
},
body: data,
})
}

View File

@ -0,0 +1,26 @@
export function updateUserSettings(settings) {
const token = `Bearer ${window.localStorage.getItem('token')}`
return cy.request({
method: 'GET',
url: `${Cypress.env('API_URL')}/user`,
headers: {
'Authorization': token,
},
})
.its('body')
.then(oldSettings => {
return cy.request({
method: 'POST',
url: `${Cypress.env('API_URL')}/user/settings/general`,
headers: {
'Authorization': token,
},
body: {
...oldSettings,
...settings,
},
})
})
}

10
cypress/tsconfig.json Normal file
View File

@ -0,0 +1,10 @@
{
"extends": "@vue/tsconfig/tsconfig.web.json",
"include": ["./integration/**/*", "./support/**/*"],
"compilerOptions": {
"isolatedModules": false,
"target": "es5",
"lib": ["es5", "dom"],
"types": ["cypress"]
}
}

184
docs/models-services.md Normal file
View File

@ -0,0 +1,184 @@
# Models and services
The architecture of this web app is in general divided in two parts:
Models and services.
Services handle all "raw" requests, models contain data and methods to work with it.
A service takes (in most cases) a model and returns one.
## Table of Contents
* [Services](#services)
* [Requests](#requests)
* [Loading](#loading)
* [Factories](#factories)
* [Before Request](#before-request)
* [After Request?](#after-request-)
* [Models](#models)
* [Default Values](#default-values)
* [Constructor](#constructor)
* [Access Model Data](#access-to-the-data)
## Services
Services are located in `src/services`.
All services must inherit `AbstractService` which holds most of the methods.
A basic service can look like this:
```javascript
import AbstractService from './abstractService'
import ListModel from '../models/list'
export default class ListService extends AbstractService {
constructor() {
super({
getAll: '/lists',
get: '/lists/{id}',
create: '/namespaces/{namespaceID}/lists',
update: '/lists/{id}',
delete: '/lists/{id}',
})
}
modelFactory(data) {
return new ListModel(data)
}
}
```
The `constructor` calls its parent constructor and provides the paths to make the requests.
The parent constructor will take these and save them in the service.
All paths are optional. Calling a method which doesn't have a path defined will fail.
The placeholder values in the urls are replaced with the contens of variables with the same name in the
corresponding model (the one you pass to the functions).
#### Requests
Several request types are possible:
| Name | HTTP Method |
|------|-------------|
| `get` | `GET` |
| `getAll` | `GET` |
| `create` | `PUT` |
| `update` | `POST` |
| `delete` | `DELETE` |
Each method can take a model and optional url parameters as function parameters.
With the exception of `getAll()`, a model is always mandatory while parameters are not.
Each method returns a promise, so you can access a request result like so:
```javascript
service.getAll().then(result => {
// Do something with result
})
```
The result is a ready-to-use model returned by the model factory.
##### Loading
Each service has a `loading` property, provided by `AbstractModel`.
This property is a `boolean`, it is automatically set to `true` (with a 100ms delay to avoid flickering)
once the request is started and set to `false` once the request is finished.
You can use this to show and hide a loading animation in the frontend.
#### Factories
The `modelFactory` takes data, and returns a model. The result of all requests (with the exception
of the `delete` method) is run through this factory. The factory should return the appropriate model, see
[models](#models) down below on how to handle data in models.
`getAll()` checks if the response is an array, if that's the case, it will run each entry in it through
the `modelFactory`.
It is possible to define a different factory for each request. This is done by implementing a method called
`model{TYPE}Factory(data)` in your service. As a fallback if the specific factory is not defined,
`modelFactory` will be used.
#### Before Request
For each request exists a `before{TYPE}(model)` method. It recieves the model, can alter it and should return
the modified version.
This is useful to make unix timestamps from javascript dates, for example.
#### After Request ?
There is no `after{TYPE}` method which would be called after a request is done.
Processing raw api data should be done in the constructor of the model, see more on that below.
## Models
Models are a bit simpler than services.
They usually consist of a declaration of defaults and an optional constructor.
Models are located in `src/models`.
Each model should extend the `AbstractModel`.
This handles the default value parsing.
A model _does not_ handle any http requests, that's what services are for.
A simple model can look like this:
```javascript
import AbstractModel from './abstractModel'
import TaskModel from './task'
import UserModel from './user'
export default class ListModel extends AbstractModel {
constructor(data) {
// The constructor of AbstractModel handles all the default parsing.
super(data)
// Make all tasks to task models
this.tasks = this.tasks.map(t => {
return new TaskModel(t)
})
this.owner = new UserModel(this.owner)
}
// Default attributes that define the "empty" state.
defaults() {
return {
id: 0,
title: '',
description: '',
owner: UserModel,
tasks: [],
namespaceID: 0,
created: 0,
updated: 0,
}
}
}
```
#### Default values
The `defaults()` functions provides all default values.
The `AbstractModel` constructor will take all the data provided to it, and fill any non-existent,
`undefined` or `null` value with the default provided by the function.
#### Constructor
The `AbstractModel` constructor handles all the default value parsing.
In your model, the constructor can do additional parsing, like making js date object from unix timestamps
or parsing the contents of a child-array into a model.
If the model does nothing like this, you don't need to define a constructor at all.
The parent will handle it all.
#### Access to the data
After initializing a model, it is possible to access all properties via `model.property`.
To make sure the property actually exists, provide it as a default.

3
env.d.ts vendored Normal file
View File

@ -0,0 +1,3 @@
/// <reference types="vite/client" />
/// <reference types="vite-svg-loader" />
/// <reference types="cypress" />

25
flake.lock Normal file
View File

@ -0,0 +1,25 @@
{
"nodes": {
"nixpkgs": {
"locked": {
"lastModified": 1664753041,
"narHash": "sha256-0ogaD8PaGHluARFeupofvk1Nq9gpVeZdlFM0Kcwguys=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "a62844b302507c7531ad68a86cb7aa54704c9cb4",
"type": "github"
},
"original": {
"id": "nixpkgs",
"type": "indirect"
}
},
"root": {
"inputs": {
"nixpkgs": "nixpkgs"
}
}
},
"root": "root",
"version": 7
}

10
flake.nix Normal file
View File

@ -0,0 +1,10 @@
{
description = "Vikunja frontend dev environment";
outputs = { self, nixpkgs }:
let pkgs = nixpkgs.legacyPackages.x86_64-linux;
in {
defaultPackage.x86_64-linux =
pkgs.mkShell { buildInputs = [ pkgs.nodePackages.pnpm pkgs.cypress pkgs.git-cliff ]; };
};
}

34
index.html Normal file
View File

@ -0,0 +1,34 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1.0">
<title>Vikunja</title>
<meta name="description" content="Vikunja (/vɪˈkuːnjə/) - The to-do app to organize your life.">
<meta name="theme-color" content="#1973ff"/>
<link rel="icon" href="/favicon.ico">
<link rel="apple-touch-icon" href="/images/icons/apple-touch-icon-180x180.png"/>
<link rel="preload" crossorigin="anonymous" href="/src/assets/fonts/OpenSans[wght].woff2" as="font">
<link rel="preload" crossorigin="anonymous" href="/src/assets/fonts/OpenSans-Italic[wght].woff2" as="font">
<link rel="preload" crossorigin="anonymous" href="/src/assets/fonts/Quicksand[wght].woff2" as="font">
</head>
<body>
<noscript>
<strong>We're sorry but Vikunja doesn't work properly without JavaScript enabled. Please enable it to continue.</strong>
</noscript>
<div id="app"></div>
<script type="module" src="/src/main.ts"></script>
<script>
//
// This variable points the frontend to the api.
// It has to be the full url, including the last /api/v1 part and port.
// You can change this if your api is not reachable on the same port as the frontend.
window.API_URL = 'http://localhost:3456/api/v1'
// Enable error tracking with sentry. If this is set to true, will send anonymized data to
// our sentry instance to notify us of potential problems.
window.SENTRY_ENABLED = false
window.SENTRY_DSN = 'https://85694a2d757547cbbc90cd4b55c5a18d@o1047380.ingest.sentry.io/6024480'
</script>
</body>
</html>

15
netlify.toml Normal file
View File

@ -0,0 +1,15 @@
[build]
command = "pnpm run build"
publish = "dist-preview"
[[redirects]]
from = "/*"
to = "/index.html"
status = 200
[[headers]]
for = "/*"
[headers.values]
X-Frame-Options = "DENY"
X-XSS-Protection = "1; mode=block"
X-Robots-Tag = "noindex"

115
nginx.conf Normal file
View File

@ -0,0 +1,115 @@
user nginx;
worker_processes 1;
error_log /var/log/nginx/error.log warn;
pid /var/run/nginx.pid;
events {
worker_connections 1024;
}
http {
include /etc/nginx/mime.types;
default_type application/octet-stream;
types {
application/manifest+json webmanifest;
}
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
access_log /var/log/nginx/access.log main;
sendfile on;
#tcp_nopush on;
keepalive_timeout 65;
gzip on;
gzip_vary on;
gzip_proxied any;
gzip_comp_level 6;
gzip_buffers 16 8k;
gzip_http_version 1.1;
gzip_min_length 256;
gzip_types
text/plain
text/css
application/json
application/x-javascript
application/javascript
text/xml
application/xml
application/xml+rss
text/javascript
application/vnd.ms-fontobject
application/x-font-ttf
font/opentype
image/svg+xml
image/x-icon
audio/wav;
map_hash_max_size 128;
map_hash_bucket_size 128;
# Expires map
map $sent_http_content_type $expires {
default off;
text/css max;
application/javascript max;
text/javascript max;
application/vnd.ms-fontobject max;
application/x-font-ttf max;
font/opentype max;
font/woff2 max;
image/svg+xml max;
image/x-icon max;
audio/wav max;
~images/ max;
~font/ max;
}
server {
listen 80;
listen 81 default_server http2 proxy_protocol; ## Needed when behind HAProxy with SSL termination + HTTP/2 support
server_name _;
expires $expires;
root /usr/share/nginx/html;
# all assets contain hash in filename, cache forever
location ^~ /assets/ {
add_header Cache-Control "public, max-age=31536000, s-maxage=31536000, immutable";
try_files $uri =404;
}
# all workbox scripts are compiled with hash in filename, cache forever3
location ^~ /workbox- {
add_header Cache-Control "public, max-age=31536000, s-maxage=31536000, immutable";
try_files $uri =404;
}
# assume that everything else is handled by the application router, by injecting the index.html.
location / {
autoindex off;
expires off;
add_header Cache-Control "public, max-age=0, s-maxage=0, must-revalidate" always;
try_files $uri /index.html =404;
}
location ~* .(txt|webmanifest|css|js|mjs|map|svg|jpg|jpeg|png|ico|ttf|woff|woff2|wav)$ {
try_files $uri $uri/ =404;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
}
}
}

BIN
originalMedia/audio/pop.mp3 Normal file

Binary file not shown.

BIN
originalMedia/audio/pop.wav Normal file

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 36 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 37 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

View File

@ -0,0 +1,149 @@
<?xml version="1.0" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 20010904//EN"
"http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">
<svg version="1.0" xmlns="http://www.w3.org/2000/svg"
width="16.000000pt" height="16.000000pt" viewBox="0 0 16.000000 16.000000"
preserveAspectRatio="xMidYMid meet">
<metadata>
Created by potrace 1.11, written by Peter Selinger 2001-2013
</metadata>
<g transform="translate(0.000000,16.000000) scale(0.000320,-0.000320)"
fill="#000000" stroke="none">
<path d="M18 46618 c45 -75 122 -207 122 -211 0 -2 25 -45 55 -95 30 -50 55
-96 55 -102 0 -5 5 -10 10 -10 6 0 10 -4 10 -9 0 -5 73 -135 161 -288 89 -153
173 -298 187 -323 14 -25 32 -57 41 -72 88 -149 187 -324 189 -335 2 -7 8 -13
13 -13 5 0 9 -4 9 -10 0 -5 46 -89 103 -187 175 -302 490 -846 507 -876 8 -16
20 -36 25 -45 28 -46 290 -498 339 -585 13 -23 74 -129 136 -236 61 -107 123
-215 137 -240 14 -25 29 -50 33 -56 5 -5 23 -37 40 -70 18 -33 38 -67 44 -75
11 -16 21 -33 63 -109 14 -25 29 -50 33 -56 4 -5 21 -35 38 -65 55 -100 261
-455 269 -465 4 -5 14 -21 20 -35 15 -29 41 -75 103 -180 24 -41 52 -88 60
-105 9 -16 57 -100 107 -185 112 -193 362 -626 380 -660 8 -14 23 -38 33 -55
11 -16 23 -37 27 -45 4 -8 26 -46 48 -85 23 -38 53 -90 67 -115 46 -81 64
-113 178 -310 62 -107 121 -210 132 -227 37 -67 56 -99 85 -148 16 -27 32 -57
36 -65 4 -8 15 -27 25 -42 9 -15 53 -89 96 -165 44 -76 177 -307 296 -513 120
-206 268 -463 330 -570 131 -227 117 -203 200 -348 36 -62 73 -125 82 -140 10
-15 21 -34 25 -42 4 -8 20 -37 36 -65 17 -27 38 -65 48 -82 49 -85 64 -111 87
-153 13 -25 28 -49 32 -55 4 -5 78 -134 165 -285 87 -151 166 -288 176 -305
10 -16 26 -43 35 -59 9 -17 125 -217 257 -445 132 -229 253 -441 270 -471 17
-30 45 -79 64 -108 18 -29 33 -54 33 -57 0 -2 20 -37 44 -77 24 -40 123 -212
221 -383 97 -170 190 -330 205 -355 16 -25 39 -65 53 -90 13 -25 81 -144 152
-265 70 -121 137 -238 150 -260 12 -22 37 -65 55 -95 18 -30 43 -73 55 -95 12
-22 48 -85 80 -140 77 -132 163 -280 190 -330 13 -22 71 -123 130 -225 59
-102 116 -199 126 -217 10 -17 29 -50 43 -72 15 -22 26 -43 26 -45 0 -2 27
-50 60 -106 33 -56 60 -103 60 -105 0 -2 55 -98 90 -155 8 -14 182 -316 239
-414 13 -22 45 -79 72 -124 27 -46 49 -86 49 -89 0 -2 14 -24 30 -48 16 -24
30 -46 30 -49 0 -5 74 -135 100 -176 5 -8 24 -42 43 -75 50 -88 58 -101 262
-455 104 -179 199 -345 213 -370 14 -25 28 -49 32 -55 4 -5 17 -26 28 -45 10
-19 62 -109 114 -200 114 -197 133 -230 170 -295 16 -27 33 -57 38 -65 17 -28
96 -165 103 -180 4 -8 16 -28 26 -45 10 -16 77 -131 148 -255 72 -124 181
-313 243 -420 62 -107 121 -209 131 -227 35 -62 323 -560 392 -678 38 -66 83
-145 100 -175 16 -30 33 -59 37 -65 4 -5 17 -27 29 -47 34 -61 56 -100 90
-156 17 -29 31 -55 31 -57 0 -2 17 -32 39 -67 21 -35 134 -229 251 -433 117
-203 235 -407 261 -451 27 -45 49 -85 49 -88 0 -4 8 -19 19 -34 15 -21 200
-341 309 -533 10 -19 33 -58 51 -87 17 -29 31 -54 31 -56 0 -2 25 -44 55 -94
30 -50 55 -95 55 -98 0 -4 6 -15 14 -23 7 -9 27 -41 43 -71 17 -30 170 -297
342 -594 171 -296 311 -542 311 -547 0 -5 5 -9 10 -9 6 0 10 -4 10 -10 0 -5
22 -47 49 -92 27 -46 58 -99 68 -118 24 -43 81 -140 93 -160 5 -8 66 -114 135
-235 69 -121 130 -227 135 -235 12 -21 259 -447 283 -490 10 -19 28 -47 38
-62 11 -14 19 -29 19 -32 0 -3 37 -69 83 -148 99 -170 305 -526 337 -583 13
-22 31 -53 41 -70 11 -16 22 -37 26 -45 7 -14 82 -146 103 -180 14 -24 181
-311 205 -355 13 -22 46 -80 75 -130 29 -49 64 -110 78 -135 14 -25 51 -88 82
-140 31 -52 59 -102 63 -110 4 -8 18 -33 31 -55 205 -353 284 -489 309 -535
17 -30 45 -78 62 -106 18 -28 36 -60 39 -72 4 -12 12 -22 17 -22 5 0 9 -4 9
-10 0 -5 109 -197 241 -427 133 -230 250 -431 259 -448 51 -90 222 -385 280
-485 37 -63 78 -135 92 -160 14 -25 67 -117 118 -205 51 -88 101 -175 111
-193 34 -58 55 -95 149 -257 51 -88 101 -173 110 -190 9 -16 76 -131 147 -255
72 -124 140 -241 151 -260 61 -108 281 -489 355 -615 38 -66 77 -133 87 -150
35 -63 91 -161 100 -175 14 -23 99 -169 128 -220 54 -97 135 -235 142 -245 4
-5 20 -32 35 -60 26 -48 238 -416 276 -480 10 -16 26 -46 37 -65 30 -53 382
-661 403 -695 10 -16 22 -37 26 -45 4 -8 26 -48 50 -88 24 -41 43 -75 43 -77
0 -2 22 -40 50 -85 27 -45 50 -84 50 -86 0 -3 38 -69 83 -147 84 -142 302
-520 340 -587 10 -19 34 -60 52 -90 18 -30 44 -75 57 -100 14 -25 45 -79 70
-120 25 -41 56 -96 70 -121 14 -25 77 -133 138 -240 62 -107 122 -210 132
-229 25 -43 310 -535 337 -581 11 -19 26 -45 34 -59 17 -32 238 -414 266 -460
11 -19 24 -41 28 -49 3 -7 75 -133 160 -278 84 -146 153 -269 153 -274 0 -5 5
-9 10 -9 6 0 10 -4 10 -10 0 -5 82 -150 181 -322 182 -314 201 -346 240 -415
12 -21 80 -139 152 -263 71 -124 141 -245 155 -270 14 -25 28 -49 32 -55 6 -8
145 -248 220 -380 37 -66 209 -362 229 -395 11 -19 24 -42 28 -49 4 -8 67
-118 140 -243 73 -125 133 -230 133 -233 0 -2 15 -28 33 -57 19 -29 47 -78 64
-108 17 -30 53 -93 79 -139 53 -90 82 -141 157 -272 82 -142 115 -199 381
-659 142 -245 268 -463 281 -485 12 -22 71 -125 132 -230 60 -104 172 -298
248 -430 76 -132 146 -253 156 -270 11 -16 22 -36 26 -44 3 -8 30 -54 60 -103
29 -49 53 -91 53 -93 0 -3 18 -34 40 -70 22 -36 40 -67 40 -69 0 -2 37 -66 81
-142 45 -77 98 -168 119 -204 20 -36 47 -81 58 -100 12 -19 27 -47 33 -62 6
-16 15 -28 20 -28 5 0 9 -4 9 -9 0 -6 63 -118 140 -251 77 -133 140 -243 140
-245 0 -2 18 -33 41 -70 22 -37 49 -83 60 -101 10 -19 29 -51 40 -71 25 -45
109 -189 126 -218 7 -11 17 -29 22 -40 6 -11 22 -38 35 -60 14 -22 37 -62 52
-90 14 -27 35 -62 45 -77 11 -14 19 -29 19 -32 0 -3 18 -35 40 -71 22 -36 40
-67 40 -69 0 -2 19 -35 42 -72 23 -38 55 -94 72 -124 26 -47 139 -244 171
-298 6 -9 21 -36 34 -60 28 -48 37 -51 51 -19 6 12 19 36 29 52 10 17 27 46
38 65 11 19 104 181 208 360 103 179 199 345 213 370 14 25 42 74 64 109 21
34 38 65 38 67 0 2 18 33 40 69 22 36 40 67 40 69 0 3 177 310 199 346 16 26
136 234 140 244 2 5 25 44 52 88 27 44 49 81 49 84 0 2 18 34 40 70 22 36 40
67 40 69 0 2 20 36 43 77 35 58 169 289 297 513 9 17 50 86 90 155 40 69 86
150 103 180 16 30 35 62 41 70 6 8 16 24 22 35 35 64 72 129 167 293 59 100
116 199 127 220 11 20 30 53 41 72 43 72 1070 1850 1121 1940 14 25 65 113
113 195 48 83 96 166 107 185 10 19 28 50 38 68 11 18 73 124 137 235 64 111
175 303 246 427 71 124 173 299 225 390 52 91 116 202 143 248 27 45 49 85 49
89 0 4 6 14 14 22 7 9 28 43 46 76 26 47 251 436 378 655 11 19 29 51 40 70
11 19 101 176 201 348 99 172 181 317 181 323 0 5 5 9 10 9 6 0 10 5 10 11 0
6 8 23 18 37 11 15 32 52 49 82 16 30 130 228 253 440 122 212 234 405 248
430 13 25 39 70 57 100 39 65 69 117 130 225 25 44 50 87 55 95 12 19 78 134
220 380 61 107 129 224 150 260 161 277 222 382 246 425 15 28 47 83 71 123
24 41 43 78 43 83 0 5 4 9 8 9 4 0 13 12 19 28 7 15 23 45 36 67 66 110 277
478 277 483 0 3 6 13 14 21 7 9 27 41 43 71 17 30 45 80 63 110 34 57 375 649
394 685 6 11 16 27 22 35 6 8 26 42 44 75 18 33 41 74 51 90 10 17 24 41 32
55 54 97 72 128 88 152 11 14 19 28 19 30 0 3 79 141 175 308 96 167 175 305
175 308 0 3 6 13 14 21 7 9 26 39 41 66 33 60 276 483 338 587 24 40 46 80 50
88 4 8 13 24 20 35 14 23 95 163 125 215 11 19 52 91 92 160 40 69 80 139 90
155 9 17 103 179 207 360 105 182 200 346 211 365 103 181 463 802 489 845 7
11 15 27 19 35 4 8 29 51 55 95 64 110 828 1433 848 1470 9 17 24 41 33 55 9
14 29 48 45 77 15 28 52 93 82 145 30 51 62 107 71 123 17 30 231 398 400 690
51 88 103 179 115 202 12 23 26 48 32 55 6 7 24 38 40 68 17 30 61 107 98 170
37 63 84 144 103 180 19 36 41 72 48 81 8 8 14 18 14 21 0 4 27 51 59 106 32
55 72 124 89 154 16 29 71 125 122 213 51 88 104 180 118 205 13 25 28 50 32
55 4 6 17 26 28 45 11 19 45 80 77 135 31 55 66 116 77 135 11 19 88 152 171
295 401 694 620 1072 650 1125 11 19 87 152 170 295 83 143 158 273 166 288 9
16 21 36 26 45 6 9 31 52 55 96 25 43 54 94 66 115 11 20 95 164 186 321 91
157 173 299 182 315 9 17 26 46 37 65 12 19 66 114 121 210 56 96 108 186 117
200 8 14 24 40 34 59 24 45 383 664 412 713 5 9 17 29 26 45 15 28 120 210
241 419 36 61 68 117 72 125 4 8 12 23 19 34 35 57 245 420 262 453 11 20 35
61 53 90 17 29 32 54 32 56 0 3 28 51 62 108 33 57 70 119 80 138 10 19 23 42
28 50 5 8 32 53 59 100 27 47 149 258 271 470 122 212 234 405 248 430 30 53
62 108 80 135 6 11 15 27 19 35 4 8 85 150 181 315 96 165 187 323 202 350 31
56 116 202 130 225 5 8 25 42 43 75 19 33 92 159 162 280 149 257 157 271 202
350 19 33 38 67 43 75 9 14 228 392 275 475 12 22 55 96 95 165 40 69 80 139
90 155 24 42 202 350 221 383 9 15 27 47 41 72 14 25 75 131 136 236 61 106
121 210 134 232 99 172 271 470 279 482 5 8 23 40 40 70 18 30 81 141 142 245
60 105 121 210 135 235 14 25 71 124 127 220 56 96 143 247 194 335 51 88 96
167 102 175 14 24 180 311 204 355 23 43 340 590 356 615 5 8 50 87 101 175
171 301 517 898 582 1008 25 43 46 81 46 83 0 2 12 23 27 47 14 23 40 67 56
97 16 30 35 62 42 70 7 8 15 22 18 30 4 8 20 38 37 65 16 28 33 57 37 65 6 12
111 196 143 250 5 8 55 95 112 193 57 98 113 195 126 215 12 20 27 46 32 57 6
11 14 27 20 35 5 8 76 130 156 270 80 140 165 287 187 325 23 39 52 90 66 115
13 25 30 52 37 61 8 8 14 18 14 21 0 4 41 77 92 165 50 87 175 302 276 478
101 176 208 360 236 408 28 49 67 117 86 152 19 35 41 70 48 77 6 6 12 15 12
19 0 7 124 224 167 291 12 21 23 40 23 42 0 2 21 40 46 83 26 43 55 92 64 109
54 95 327 568 354 614 19 30 45 75 59 100 71 128 82 145 89 148 4 2 8 8 8 13
0 5 42 82 94 172 311 538 496 858 518 897 14 25 40 70 58 100 18 30 42 71 53
90 10 19 79 139 152 265 73 127 142 246 153 265 10 19 43 76 72 125 29 50 63
108 75 130 65 116 80 140 87 143 4 2 8 8 8 12 0 8 114 212 140 250 6 8 14 24
20 35 5 11 54 97 108 190 l100 170 -9611 3 c-5286 1 -9614 -1 -9618 -5 -5 -6
-419 -719 -619 -1068 -89 -155 -267 -463 -323 -560 -38 -66 -81 -140 -95 -165
-31 -56 -263 -457 -526 -910 -110 -190 -224 -388 -254 -440 -29 -52 -61 -109
-71 -125 -23 -39 -243 -420 -268 -465 -11 -19 -204 -352 -428 -740 -224 -388
-477 -826 -563 -975 -85 -148 -185 -322 -222 -385 -37 -63 -120 -207 -185
-320 -65 -113 -177 -306 -248 -430 -72 -124 -172 -297 -222 -385 -51 -88 -142
-245 -202 -350 -131 -226 -247 -427 -408 -705 -65 -113 -249 -432 -410 -710
-160 -278 -388 -673 -506 -877 -118 -205 -216 -373 -219 -373 -3 0 -52 82
-109 183 -58 100 -144 250 -192 332 -95 164 -402 696 -647 1120 -85 149 -228
396 -317 550 -212 365 -982 1700 -1008 1745 -10 19 -43 76 -72 125 -29 50 -64
110 -77 135 -14 25 -63 110 -110 190 -47 80 -96 165 -110 190 -14 25 -99 171
-188 325 -89 154 -174 300 -188 325 -13 25 -64 113 -112 195 -48 83 -140 242
-205 355 -65 113 -183 317 -263 454 -79 137 -152 264 -163 282 -50 89 -335
583 -354 614 -12 19 -34 58 -50 85 -15 28 -129 226 -253 440 -124 215 -235
408 -247 430 -12 22 -69 121 -127 220 -58 99 -226 389 -373 645 -148 256 -324
561 -392 678 -67 117 -134 232 -147 255 -13 23 -33 59 -46 80 l-22 37 -9615 0
-9615 0 20 -32z"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 10 KiB

View File

@ -0,0 +1,188 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
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:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
version="1.1"
id="svg2"
xml:space="preserve"
width="300"
height="312.63113"
viewBox="0 0 299.99999 312.63112"
sodipodi:docname="cool.svg"
inkscape:version="0.92.2 2405546, 2018-03-11"><metadata
id="metadata8"><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><defs
id="defs6" /><sodipodi:namedview
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1"
objecttolerance="10"
gridtolerance="10"
guidetolerance="10"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:window-width="1920"
inkscape:window-height="1017"
id="namedview4"
showgrid="false"
inkscape:zoom="0.62578945"
inkscape:cx="141.42138"
inkscape:cy="460.48107"
inkscape:window-x="0"
inkscape:window-y="32"
inkscape:window-maximized="1"
inkscape:current-layer="layer1"
fit-margin-top="0"
fit-margin-left="0"
fit-margin-right="0"
fit-margin-bottom="0" /><g
inkscape:groupmode="layer"
id="layer1"
inkscape:label="ink_ext_XXXXXX 1"
style="display:inline"
transform="translate(-92.67749,-674.48297)"><circle
style="fill:#196aff;fill-opacity:1;stroke:none;stroke-width:2.88757133;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;paint-order:normal"
id="path920"
cx="242.67749"
cy="828.77881"
r="150" /></g><g
id="g10"
inkscape:groupmode="layer"
inkscape:label="ink_ext_XXXXXX"
transform="matrix(1.3333333,0,0,-1.3333333,-92.67749,392.18373)"><path
inkscape:connector-curvature="0"
id="path16"
style="fill:#efeddd;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.03557041"
d="m 107.053,126.71912 c 0,0 0.11133,-6.73668 3.44641,-16.28697 0.86116,-2.46752 2.30923,-3.51613 3.66909,-5.53511 1.39507,-2.07091 1.07707,-6.840904 2.46183,-8.782689 7.80486,-10.945015 7.41998,-5.890107 9.59511,-11.696264 2.32381,-6.203476 1.41641,-16.403609 1.6028,-18.660551 0.0722,-0.870764 10.4641,-1.545926 10.67645,-1.546317 0.69434,-9.93e-4 1.27699,16.258557 1.27699,19.454912 0,3.195645 -1.93646,11.092628 -1.93646,16.543799 0,5.45222 -30.79222,26.50919 -30.79222,26.50919" /><path
inkscape:connector-curvature="0"
id="path18"
style="fill:#efeddd;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.03557041"
d="m 204.18972,122.95293 c 0,0 -2.0791,-7.78742 -0.57339,-15.18002 0.38095,-1.86532 0.98921,-3.70609 1.91653,-5.38998 0.53711,-0.97534 1.18093,-1.89769 1.94961,-2.742488 0.64133,-0.705007 1.2752,-1.402539 1.8991,-2.092251 6.53713,-7.22755 11.98474,-13.658675 13.39937,-19.151458 1.55016,-6.016414 2.25517,-9.817432 2.32737,-11.628357 0.0164,-0.422541 9.55386,0.71685 9.55386,0.71685 0,0 1.06568,17.967249 -0.8423,22.755385 -1.90764,4.78884 -5.42165,12.218789 -5.61586,17.107579 -0.19421,4.88915 2.90361,21.80822 0.96787,21.2455 -1.93575,-0.56486 -24.98216,-5.64076 -24.98216,-5.64076" /><path
inkscape:connector-curvature="0"
id="path20"
style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.03557041"
d="m 269.26008,162.63456 c 1.16173,-0.37597 5.03605,0.75231 6.9718,9.02421 0.75551,3.2273 -0.19954,5.71083 -2.2886,7.83012 -1.79239,1.81728 -2.0204,3.06012 -5.11894,4.58146 -2.54755,1.24995 -7.81233,2.78837 -10.79633,4.13257 -10.24214,4.61598 -20.30749,6.56025 -29.82684,6.08255 -0.75161,-0.0377 -7.55516,-1.87742 -8.32953,-1.75292 -10.62487,1.71984 -10.2055,-0.4674 -12.02351,-0.39767 -3.64561,0.13801 -8.69803,1.83508 -12.67942,1.68852 -4.80058,-0.17572 -9.39664,-2.48566 -11.20219,-2.00724 -1.51067,0.3991 -3.18782,0.84979 -6.23691,0.55668 -1.30437,-0.12521 -4.18984,-1.52881 -5.51911,-1.67216 -3.58834,-0.38737 -5.29359,1.85179 -10.929,0.25433 -1.55301,-0.44001 -2.63115,1.96348 -3.6698,3.72315 1.28729,8.74179 -3.88429,15.66129 -3.88429,15.66129 2.13422,4.95815 1.65829,15.72638 0,17.70126 -0.0349,0.70962 3.9661,9.88644 2.02609,16.69638 -0.68224,2.39745 -1.53629,5.95556 -1.79061,6.28637 0.25895,0.79535 1.79061,3.64134 -0.64596,9.30841 -1.68106,3.90884 -4.51069,6.72672 -4.51069,6.72672 8.36652,2.5312 -0.75764,32.55724 -3.74236,26.19689 -1.24034,-2.64145 -3.89318,-17.12643 -4.29584,-18.15157 -0.2874,-0.73239 -18.06834,1.73867 -23.77276,0.85511 -9.35502,-1.44842 -14.53407,-6.7662 -14.8261,-6.21699 -0.99562,1.88451 -4.353109,13.38407 -5.301769,17.87163 -2.540087,12.01604 -15.331914,-17.0745 -1.383338,-23.25237 0.491584,-0.21769 0.967162,-1.69956 1.355591,-3.95898 -2.12462,-4.5203 -0.164339,-10.61884 -0.164339,-10.61884 -8.781619,-3.53819 -0.995255,-16.14185 -0.995255,-16.14185 -1.949616,-2.04956 -5.710474,-4.55905 -4.442745,-14.20077 0.871116,-6.63423 3.657703,-8.52552 3.657703,-8.52552 -4.776751,-2.46858 -4.039375,-9.4073 -2.631141,-12.01426 0.887483,-1.64228 2.111105,-1.69848 2.111105,-1.69848 -4.266669,-6.12095 0.663028,-10.49149 0.801398,-10.61208 -0.06937,-0.0868 -1.693861,-2.14702 -2.119993,-6.39199 -0.185321,-1.84433 0.919495,-5.28897 0.746263,-7.22329 -0.286337,-3.20062 -1.407161,-6.83271 0.177145,-12.61468 0.380956,-1.3901 3.005339,-4.44275 3.005339,-4.44275 0,0 -2.009727,-4.85607 -0.830564,-11.01295 0.701445,-3.65735 4.69351,-6.76656 5.82678,-10.47655 0.99633,-3.26216 2.3071,-8.82217 3.70146,-11.47217 2.46183,-4.67893 10.49612,-7.54306 10.49612,-7.54306 0,0 2.74496,-7.8888 6.72067,-9.64207 5.71225,-2.52052 3.7452,1.35879 13.67291,-6.729915 0.60042,-0.488383 10.13401,-18.246908 11.28435,-22.665108 1.38405,-5.317063 2.13387,-11.147408 2.13387,-11.147408 0,0 7.97239,-1.511315 10.58681,1.307924 1.28304,1.384044 0.57411,19.572967 -2.23275,23.428088 -2.22777,3.059413 -0.3436,14.483909 -0.3436,14.483909 3.6e-4,0 2.75848,-1.52348 5.20252,-1.38333 1.73939,0.0996 4.73905,1.64905 6.89355,1.67324 0.67085,0.007 5.13707,-0.62925 7.05788,-0.31978 1.55157,0.25041 7.05751,2.74958 9.27355,3.82452 3.00429,1.45875 10.95569,1.2151 13.41822,2.33094 3.4265,1.55193 9.34507,2.3046 12.92558,3.40514 5.59558,1.72055 7.81659,2.98792 7.81659,2.98792 0,0 -0.20594,-0.52039 -0.1846,-3.42578 0.0125,-1.67359 3.50332,-5.20645 3.77544,-7.52883 0.82025,-7.010221 12.93269,-14.065611 17.58102,-20.458319 4.64728,-6.392004 3.04874,-19.935755 3.04874,-19.935755 l 10.26883,1.408944 c 0,0 1.01233,6.494764 2.17442,18.151539 1.16243,11.657137 -5.03464,5.264063 -2.71047,11.280086 1.93006,4.997645 4.9297,8.178355 8.77593,14.931385 0.78362,1.37658 1.6028,2.90148 2.45543,4.62025 5.03499,10.15214 5.42306,11.65606 6.58514,19.92938 1.16209,8.2719 -1.54909,18.42298 -2.32416,20.30359 -0.77473,1.88025 -1.93646,6.76762 -0.77473,6.39093" /><path
inkscape:connector-curvature="0"
id="path22"
style="fill:#fef2e2;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.03557041"
d="m 146.25763,259.77698 c -5.4003,5.24521 -21.24869,3.72707 -21.24869,3.72707 0,0 -15.84876,1.51814 -21.25048,-3.72707 0,0 -16.784959,-37.87644 21.25048,-38.13681 38.03543,0.26037 21.24869,38.13681 21.24869,38.13681" /><path
inkscape:connector-curvature="0"
id="path24"
style="fill:#eedbcc;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.03557041"
d="m 140.83883,235.8292 c 0,4.36627 -6.99599,9.40233 -14.38112,9.40233 -7.38263,0 -13.96031,-4.89875 -13.96031,-9.26502 0,-2.32809 2.18544,-3.45745 4.74331,-5.11396 2.59877,-1.68355 5.35548,-5.50737 9.42794,-5.50737 4.08917,0 6.84552,3.85655 9.45533,5.53831 2.52763,1.62877 4.71485,2.68486 4.71485,4.94571" /><path
inkscape:connector-curvature="0"
id="path26"
style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.03557041"
d="m 147.28312,267.51958 c -0.18105,1.4936 -1.34491,2.74746 -2.76809,2.66281 0.72493,1.24354 1.16707,4.04649 -1.3442,5.24521 -1.55301,0.74342 -3.34896,-0.67939 -3.34896,-0.67939 0,0 -0.33899,3.20062 -3.70394,3.76405 -3.57198,0.60186 -5.43267,-3.04411 -5.43267,-3.04411 0,2.88049 -4.78458,4.51246 -7.41359,3.99385 -3.23263,-0.63636 -4.74153,-3.09036 -4.74153,-3.09036 -6.44535,3.91452 -8.76633,-2.41274 -8.76633,-2.41274 -1.46549,3.52432 -6.53747,2.34907 -8.08977,0.17998 -1.990876,-2.78054 0.43538,-5.07128 0.43538,-5.07128 0,0 -4.343862,-3.14833 -2.364721,-6.69043 2.233471,-3.99953 6.345041,-1.447 6.345041,-1.447 1.78137,-8.52516 8.12571,-0.96645 8.12571,-0.96645 0.5268,-3.97961 2.27401,-7.38548 7.12653,-6.15546 3.34006,0.84658 4.31256,5.39319 4.31256,5.39319 1.24248,-4.63696 4.73513,-3.92128 6.04767,-2.55324 0.82666,0.86115 0.85477,2.04885 0.85477,2.04885 3.12521,-4.20051 5.3448,0.78433 5.3448,0.78433 2.72078,-1.66861 5.39034,-1.50819 6.72458,0.38558 0.75481,1.06995 0.95827,2.26263 0.53391,4.21296 1.11727,0.34574 2.37646,1.34633 2.12285,3.43965" /><path
inkscape:connector-curvature="0"
id="path28"
style="fill:#58595b;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.03557041"
d="m 126.72165,240.60738 c -2.47428,0 -7.20301,-0.10422 -6.3166,-1.92685 0.4923,-1.01091 3.05159,-2.32986 6.3166,-2.37432 v 0 0 0 0 c 3.265,0.0444 5.8243,1.36341 6.3173,2.37432 0.88499,1.82263 -3.84338,1.92685 -6.3173,1.92685" /><path
inkscape:connector-curvature="0"
id="path30"
style="fill:#fef2e2;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.03557041"
d="m 107.74448,270.07745 c -0.15687,-0.0484 -0.31053,-0.10849 -0.41653,-0.1718 -0.11596,-0.0758 -0.21876,-0.1526 -0.28847,-0.25113 -0.0736,-0.0939 -0.1302,-0.1928 -0.16043,-0.30697 -0.0356,-0.10778 -0.0547,-0.22588 -0.0641,-0.34503 -0.007,-0.24188 0.0156,-0.49692 0.0882,-0.74484 0.0352,-0.12379 0.0708,-0.24794 0.11667,-0.36923 0.0495,-0.12058 0.10529,-0.23726 0.16683,-0.35072 0.24721,-0.44855 0.52822,-0.87611 0.96182,-1.12474 0.1092,-0.058 0.22837,-0.10387 0.35713,-0.12984 0.1284,-0.0171 0.26536,-0.0295 0.40195,-0.007 0.13445,0.027 0.27709,0.053 0.40692,0.11774 0.13552,0.0491 0.25397,0.13837 0.37811,0.21449 l 0.32369,0.19884 -0.0477,-0.37421 c -0.0277,-0.21662 -0.0665,-0.43182 -0.0818,-0.64809 -0.005,-0.21769 0.0321,-0.43289 0.0506,-0.64346 0.0505,-0.20702 0.12592,-0.40657 0.18674,-0.60044 0.10778,-0.17998 0.18639,-0.36637 0.30413,-0.52572 0.13375,-0.15011 0.22161,-0.32334 0.37741,-0.44499 0.0708,-0.0654 0.13979,-0.1309 0.20559,-0.19919 0.0754,-0.0587 0.16077,-0.10636 0.23832,-0.16114 0.14727,-0.12058 0.33614,-0.18248 0.50794,-0.26536 0.16754,-0.0904 0.37385,-0.10671 0.55419,-0.16931 0.18995,-0.0423 0.39056,-0.0533 0.58371,-0.0942 0.20097,-0.003 0.40266,-0.011 0.60612,-0.0231 0.20595,0.0171 0.4112,0.0345 0.62213,0.0409 l 0.62889,0.10814 c 0.21306,0.0335 0.41759,0.10991 0.63208,0.16113 0.21983,0.0409 0.4208,0.1341 0.63457,0.20524 0.21414,0.0726 0.4329,0.14229 0.63992,0.24117 0.20986,0.0914 0.42862,0.17714 0.65449,0.26144 l 0.0715,-0.09 c -0.15473,-0.17643 -0.31729,-0.35036 -0.48838,-0.51826 -0.16256,-0.17893 -0.35819,-0.31836 -0.55205,-0.4642 -0.19635,-0.14228 -0.39057,-0.2931 -0.61217,-0.40372 -0.22018,-0.11027 -0.43467,-0.23832 -0.66802,-0.3308 -0.23653,-0.0857 -0.47663,-0.16826 -0.72029,-0.24366 -0.25148,-0.0537 -0.50688,-0.0978 -0.76299,-0.14228 -0.2625,-0.009 -0.52679,-0.0185 -0.79144,-0.0103 -0.26429,0.0395 -0.53177,0.0701 -0.79144,0.13978 -0.25291,0.10032 -0.51755,0.15865 -0.7516,0.30235 -0.23797,0.13233 -0.47593,0.26002 -0.67442,0.44962 -0.10173,0.0882 -0.20773,0.17145 -0.3027,0.26678 l -0.25149,0.31336 c -0.18283,0.19706 -0.27068,0.45424 -0.38664,0.68545 -0.10032,0.23832 -0.13162,0.49905 -0.1928,0.7388 -0.0114,0.25184 -0.031,0.49834 -0.0241,0.73915 0.0281,0.24081 0.0441,0.47984 0.074,0.71247 0.0576,0.23014 0.0929,0.46064 0.13873,0.69079 l 0.27567,-0.17538 c -0.26962,-0.18353 -0.55099,-0.36245 -0.88214,-0.48019 -0.16684,-0.0544 -0.34148,-0.10173 -0.5261,-0.11987 -0.18461,-0.0146 -0.37526,-0.0121 -0.56414,0.0217 -0.37918,0.0676 -0.7324,0.24615 -1.01731,0.48163 -0.14015,0.12129 -0.26856,0.25219 -0.38132,0.39376 -0.11063,0.14264 -0.20311,0.29595 -0.28457,0.45317 -0.15081,0.31942 -0.25753,0.65485 -0.30518,1.0038 -0.0192,0.175 -0.0252,0.35214 -0.0178,0.53107 0.009,0.17856 0.0405,0.35854 0.0949,0.53568 0.0609,0.17572 0.12983,0.35286 0.24756,0.51009 0.10991,0.15793 0.25966,0.29593 0.42542,0.39696 0.16932,0.0985 0.35322,0.15296 0.53356,0.17358 0.0942,0.002 0.18781,0.006 0.27211,3.6e-4 l 0.23832,-0.0473 0.008,-0.11312" /><path
inkscape:connector-curvature="0"
id="path32"
style="fill:#fef2e2;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.03557041"
d="m 98.794614,219.39248 c -0.156508,-0.0488 -0.310177,-0.10778 -0.416177,-0.17217 -0.116313,-0.0762 -0.218753,-0.15223 -0.288472,-0.25041 -0.07328,-0.094 -0.129834,-0.19386 -0.160068,-0.30733 -0.03555,-0.10778 -0.05547,-0.22587 -0.06438,-0.34538 -0.0068,-0.24117 0.01563,-0.49658 0.08857,-0.7445 0.03519,-0.12414 0.07078,-0.24828 0.116671,-0.36887 0.04944,-0.12129 0.104933,-0.23796 0.166468,-0.35142 0.247215,-0.44784 0.528225,-0.87575 0.961472,-1.12474 0.109913,-0.0584 0.229071,-0.10316 0.357838,-0.12948 0.128051,-0.0171 0.265003,-0.0295 0.401596,-0.008 0.134818,0.0277 0.277088,0.0537 0.406568,0.11811 0.13588,0.0495 0.25468,0.13907 0.37882,0.21484 l 0.32369,0.1992 -0.0477,-0.37421 c -0.0277,-0.21733 -0.0665,-0.43289 -0.0821,-0.6488 -0.005,-0.21626 0.0324,-0.43218 0.0505,-0.64276 0.0508,-0.20808 0.12628,-0.40621 0.18674,-0.60078 0.1078,-0.17963 0.18641,-0.36602 0.30449,-0.52608 0.1334,-0.14941 0.22161,-0.32299 0.37741,-0.44463 0.0701,-0.0665 0.13979,-0.13162 0.20524,-0.1992 0.0758,-0.0587 0.16077,-0.10707 0.23867,-0.16078 0.14728,-0.12165 0.33615,-0.18283 0.50759,-0.26536 0.16755,-0.0907 0.3742,-0.10742 0.55456,-0.16966 0.18994,-0.0424 0.39055,-0.0537 0.58369,-0.0936 0.20099,-0.003 0.40266,-0.0117 0.60614,-0.0238 0.2056,0.0167 0.41082,0.0342 0.62176,0.0409 l 0.62889,0.10743 c 0.21343,0.0338 0.41795,0.11027 0.63208,0.16185 0.22018,0.0402 0.42081,0.13445 0.63494,0.20559 0.21378,0.0722 0.43254,0.14192 0.63992,0.23975 0.2095,0.0928 0.42826,0.1782 0.65412,0.26251 l 0.0719,-0.0897 c -0.15508,-0.17644 -0.31729,-0.35108 -0.48874,-0.51826 -0.16256,-0.17892 -0.35819,-0.31835 -0.55205,-0.4642 -0.19635,-0.14299 -0.39057,-0.29345 -0.61146,-0.40443 -0.22053,-0.10955 -0.43466,-0.23832 -0.66872,-0.3301 -0.2369,-0.0854 -0.47664,-0.16788 -0.7203,-0.24401 -0.25148,-0.0544 -0.50652,-0.0978 -0.763,-0.14157 -0.26214,-0.009 -0.52678,-0.0189 -0.79143,-0.011 -0.26428,0.0398 -0.53142,0.0704 -0.79108,0.14015 -0.25256,0.0992 -0.51791,0.15864 -0.75197,0.30163 -0.23796,0.13268 -0.47592,0.26073 -0.67442,0.44926 -0.10172,0.0893 -0.20808,0.17251 -0.30234,0.26677 l -0.25183,0.31373 c -0.18284,0.19742 -0.2707,0.45459 -0.38666,0.68616 -0.10031,0.23761 -0.13126,0.49834 -0.19279,0.73951 -0.011,0.25112 -0.031,0.49798 -0.0242,0.73844 0.0281,0.24045 0.0441,0.47913 0.0744,0.71211 0.0576,0.22979 0.0924,0.461 0.13837,0.69078 l 0.27567,-0.17536 c -0.26962,-0.18283 -0.55098,-0.36246 -0.88214,-0.48055 -0.166465,-0.054 -0.341113,-0.10031 -0.525725,-0.11952 -0.184612,-0.0143 -0.375624,-0.0121 -0.564501,0.0217 -0.378827,0.0672 -0.732043,0.24615 -1.017317,0.48162 -0.139789,0.12166 -0.268198,0.25184 -0.380956,0.39341 -0.110981,0.14299 -0.203109,0.29559 -0.284917,0.45317 -0.151175,0.32013 -0.257533,0.6545 -0.304844,1.00416 -0.01921,0.17499 -0.02523,0.35214 -0.01778,0.5307 0.0085,0.17963 0.0402,0.35926 0.09426,0.5364 0.06154,0.17643 0.129835,0.35286 0.247931,0.51008 0.110266,0.15758 0.259663,0.29595 0.425422,0.39626 0.169313,0.0992 0.353568,0.15366 0.533909,0.17465 0.0939,0.002 0.187457,0.006 0.271758,6e-4 l 0.238681,-0.0491 0.0074,-0.11239" /><path
inkscape:connector-curvature="0"
id="path34"
style="fill:#fef2e2;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.03557041"
d="m 130.93034,271.56039 -0.1494,0.18674 c -0.0434,0.0701 -0.0804,0.15366 -0.12022,0.23547 -0.0609,0.16719 -0.0918,0.35073 -0.0762,0.54245 0.0203,0.18817 0.0811,0.38025 0.1782,0.54565 0.0925,0.17252 0.22623,0.31018 0.36104,0.44179 0.1398,0.12557 0.29204,0.23298 0.45316,0.31942 0.1615,0.0857 0.32796,0.159 0.49799,0.22019 0.34397,0.11204 0.70075,0.16931 1.06249,0.1782 0.18176,-9.9e-4 0.36353,-0.0135 0.54458,-0.0466 0.18106,-0.0356 0.35891,-0.09 0.53285,-0.15757 0.3429,-0.14477 0.66516,-0.37277 0.89424,-0.67299 0.11525,-0.14975 0.20168,-0.3148 0.26997,-0.48127 0.0647,-0.16931 0.0992,-0.34182 0.12272,-0.51079 0.0369,-0.34041 -0.004,-0.66445 -0.0533,-0.98067 l -0.2842,0.16184 c 0.19172,0.14228 0.39021,0.27496 0.57695,0.42684 0.20168,0.13019 0.41474,0.2497 0.62426,0.38097 0.22017,0.1124 0.45672,0.20417 0.69326,0.30661 0.24971,0.0523 0.50403,0.14122 0.76904,0.159 0.26393,0.002 0.54066,0.0387 0.80424,-0.0324 l 0.40089,-0.0804 c 0.12911,-0.0402 0.25361,-0.096 0.38095,-0.14512 0.26144,-0.0893 0.48554,-0.23975 0.71283,-0.38843 0.23618,-0.13979 0.40835,-0.34396 0.61287,-0.52075 0.17928,-0.19457 0.32619,-0.41333 0.4795,-0.62639 0.12449,-0.22695 0.23227,-0.461 0.34041,-0.69363 0.0726,-0.24259 0.14583,-0.48447 0.20737,-0.72706 0.0369,-0.24544 0.0676,-0.49087 0.0939,-0.73453 0.0182,-0.24401 -0.006,-0.48767 -0.01,-0.72848 -0.004,-0.24153 -0.0573,-0.477 -0.10208,-0.71105 -0.0488,-0.23405 -0.09,-0.46526 -0.18391,-0.6865 -0.0789,-0.22304 -0.1686,-0.4418 -0.26286,-0.65521 l -0.11383,0.0238 c -0.0227,0.23334 -0.0405,0.46171 -0.0473,0.68544 -0.002,0.22303 -0.0339,0.44463 -0.0623,0.66304 -0.0295,0.21732 -0.0317,0.43396 -0.0918,0.64346 -0.0466,0.20951 -0.0679,0.4208 -0.13054,0.62177 l -0.17892,0.5951 c -0.0872,0.18567 -0.16256,0.37312 -0.23832,0.55952 -0.1,0.17145 -0.19778,0.34325 -0.28954,0.51754 -0.12272,0.15011 -0.22161,0.31908 -0.3454,0.46633 -0.13801,0.12877 -0.24436,0.30165 -0.40265,0.40729 -0.15118,0.11276 -0.29168,0.2497 -0.46918,0.32475 -0.0854,0.0431 -0.16718,0.0964 -0.25432,0.13553 l -0.27531,0.0911 c -0.18071,0.0814 -0.3799,0.0814 -0.57839,0.1309 -0.19884,0.032 -0.40621,0.0178 -0.61963,0.032 -0.20666,-0.0324 -0.42364,-0.0551 -0.63813,-0.10422 -0.20239,-0.0762 -0.41831,-0.14014 -0.61608,-0.24081 -0.19314,-0.10849 -0.37491,-0.23868 -0.56273,-0.35819 l -0.32439,-0.20702 0.0402,0.36957 c 0.0156,0.14122 0.0452,0.28492 0.0303,0.424 0.003,0.14193 -0.0362,0.27709 -0.0708,0.40657 -0.0398,0.12912 -0.11169,0.24259 -0.18461,0.34646 -0.0804,0.10101 -0.17536,0.18426 -0.27816,0.25397 -0.4208,0.26714 -0.94013,0.32227 -1.46372,0.33899 -0.13162,0.004 -0.26429,3.5e-4 -0.39697,-0.0103 -0.13304,-0.0132 -0.26251,-0.0362 -0.3927,-0.0616 -0.26214,-0.0459 -0.50723,-0.14015 -0.72776,-0.25255 -0.10565,-0.0612 -0.20596,-0.12983 -0.29026,-0.20916 -0.0911,-0.0765 -0.15794,-0.16931 -0.212,-0.2746 -0.0605,-0.10494 -0.0854,-0.22801 -0.10387,-0.36211 -0.0125,-0.12166 0,-0.28172 0.0256,-0.43893 l -0.10813,-0.0431" /><path
inkscape:connector-curvature="0"
id="path36"
style="fill:#fef2e2;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.03557041"
d="m 147.06579,205.09139 0.14406,0.19173 c 0.0576,0.0601 0.13018,0.11809 0.20025,0.17857 0.14833,0.10208 0.32156,0.18211 0.51506,0.22088 0.19173,0.0339 0.39839,0.031 0.59012,-0.0132 0.19528,-0.0391 0.36922,-0.1245 0.53711,-0.2152 0.16292,-0.0939 0.31125,-0.20596 0.4425,-0.33294 0.12911,-0.12699 0.24792,-0.26073 0.35535,-0.40301 0.20701,-0.28883 0.36246,-0.60684 0.47308,-0.9412 0.0495,-0.16895 0.0879,-0.34325 0.10493,-0.52075 0.0149,-0.1782 0.0114,-0.3589 -0.008,-0.5396 -0.0466,-0.36104 -0.18319,-0.72492 -0.41618,-1.02193 -0.11596,-0.14941 -0.25503,-0.27532 -0.40159,-0.38595 -0.14975,-0.10778 -0.31016,-0.1871 -0.4713,-0.25575 -0.32618,-0.13054 -0.65841,-0.18211 -0.98459,-0.22373 l 0.0811,0.30981 c 0.19385,-0.14015 0.38095,-0.28705 0.583,-0.41937 0.1839,-0.15189 0.36175,-0.31694 0.55028,-0.47629 0.17251,-0.17287 0.32974,-0.36815 0.49584,-0.56094 0.12165,-0.2177 0.28102,-0.43005 0.37171,-0.67228 0.0762,-0.2458 0.18888,-0.49337 0.19244,-0.75801 l 0.0324,-0.39768 c -0.005,-0.13089 -0.0249,-0.26144 -0.0384,-0.39483 -0.0142,-0.26891 -0.10138,-0.51897 -0.18497,-0.7733 -0.0726,-0.25824 -0.22729,-0.47628 -0.34432,-0.71603 -0.14334,-0.2216 -0.31871,-0.41795 -0.4866,-0.62141 -0.18924,-0.17857 -0.39199,-0.34468 -0.5919,-0.50973 -0.22017,-0.13552 -0.43893,-0.27212 -0.6616,-0.3959 -0.23228,-0.10386 -0.46668,-0.20062 -0.70003,-0.2931 -0.23619,-0.0847 -0.48412,-0.13019 -0.72457,-0.19314 -0.23939,-0.0634 -0.48803,-0.0796 -0.73098,-0.10245 -0.24614,-0.0203 -0.48588,-0.0459 -0.73061,-0.0203 -0.24222,0.0125 -0.48447,0.0338 -0.72172,0.0626 l -0.009,0.11311 c 0.2248,0.0864 0.44605,0.16611 0.66553,0.23548 0.22088,0.063 0.43003,0.15508 0.63813,0.24187 0.20772,0.0875 0.42115,0.15011 0.61145,0.26465 0.1935,0.10173 0.39803,0.18069 0.57944,0.29523 l 0.53925,0.33223 c 0.15936,0.13339 0.32334,0.25575 0.4866,0.3774 0.14157,0.14157 0.28456,0.28136 0.43147,0.4151 0.11418,0.1558 0.25326,0.29489 0.36531,0.45175 0.0893,0.16398 0.22978,0.31089 0.29061,0.48732 0.0697,0.17393 0.1654,0.3429 0.19101,0.52928 0.0192,0.0907 0.0484,0.18248 0.0634,0.27461 l 0.0125,0.28171 c 0.0303,0.19244 -0.0242,0.37776 -0.031,0.57589 -0.0238,0.19528 -0.0946,0.3838 -0.14051,0.58655 -0.0904,0.18426 -0.17323,0.37955 -0.2803,0.56629 -0.13267,0.16718 -0.25539,0.35108 -0.41011,0.50758 -0.16221,0.14869 -0.34042,0.28315 -0.51186,0.42436 l -0.29417,0.24509 0.37526,0.0658 c 0.14478,0.0246 0.29488,0.0362 0.42969,0.0897 0.14015,0.0362 0.26393,0.11168 0.38132,0.17856 0.11738,0.0737 0.20951,0.17215 0.29238,0.26962 0.0765,0.10315 0.13269,0.2152 0.1743,0.32974 0.14584,0.46704 0.0558,0.96681 -0.0722,1.4591 -0.0345,0.12414 -0.074,0.24685 -0.12129,0.36779 -0.0498,0.11987 -0.11027,0.23405 -0.17074,0.34895 -0.11845,0.23085 -0.27959,0.43325 -0.45246,0.60789 -0.09,0.0811 -0.18603,0.15545 -0.28776,0.21237 -0.10137,0.064 -0.21128,0.10065 -0.33116,0.12093 -0.11987,0.027 -0.24899,0.0167 -0.38736,-0.004 -0.12343,-0.0221 -0.27816,-0.0787 -0.42756,-0.14584 l -0.0729,0.0882" /><path
inkscape:connector-curvature="0"
id="path38"
style="fill:#fef2e2;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.03557041"
d="m 223.80537,175.76253 0.1437,0.19172 c 0.0576,0.0601 0.13055,0.1181 0.20062,0.17857 0.14798,0.10209 0.32157,0.18176 0.51506,0.22018 0.19137,0.0346 0.39839,0.031 0.58976,-0.0125 0.196,-0.0391 0.36923,-0.12486 0.53747,-0.21556 0.16291,-0.0935 0.31124,-0.20596 0.4425,-0.33258 0.12911,-0.12699 0.24792,-0.26181 0.3557,-0.40338 0.20667,-0.28847 0.36211,-0.60683 0.47238,-0.94119 0.0495,-0.16931 0.0879,-0.3429 0.10528,-0.52075 0.015,-0.17786 0.011,-0.35926 -0.007,-0.5396 -0.0473,-0.36175 -0.18353,-0.72457 -0.41688,-1.02194 -0.11525,-0.14904 -0.25469,-0.27567 -0.40123,-0.38594 -0.1494,-0.10742 -0.31018,-0.18674 -0.47131,-0.25575 -0.32619,-0.13019 -0.65841,-0.18213 -0.98458,-0.22373 l 0.0811,0.30945 c 0.1935,-0.13978 0.3806,-0.28669 0.58229,-0.41866 0.18496,-0.15118 0.36282,-0.31764 0.55063,-0.47628 0.17323,-0.17323 0.33009,-0.36851 0.4962,-0.5606 0.12166,-0.2184 0.28101,-0.43039 0.37172,-0.67264 0.0758,-0.24579 0.18887,-0.49371 0.19243,-0.75836 l 0.0324,-0.39731 c -0.005,-0.13126 -0.0248,-0.2618 -0.0384,-0.39484 -0.0143,-0.26891 -0.10102,-0.51932 -0.18462,-0.77366 -0.0733,-0.25823 -0.228,-0.47629 -0.34432,-0.71567 -0.1437,-0.22161 -0.31942,-0.41831 -0.48696,-0.62212 -0.18958,-0.17857 -0.39233,-0.34433 -0.59188,-0.50937 -0.21983,-0.13518 -0.43859,-0.27176 -0.66162,-0.3959 -0.23263,-0.10387 -0.46596,-0.20062 -0.70001,-0.29274 -0.23655,-0.0847 -0.48412,-0.13019 -0.72458,-0.19351 -0.23938,-0.0641 -0.48802,-0.0793 -0.73133,-0.10244 -0.24615,-0.0203 -0.48589,-0.0455 -0.73025,-0.0203 -0.2426,0.0121 -0.48412,0.0339 -0.72102,0.0626 l -0.009,0.11348 c 0.2248,0.0861 0.4457,0.1654 0.66516,0.23511 0.2209,0.063 0.43076,0.15474 0.6385,0.24224 0.20737,0.0872 0.42115,0.15011 0.61145,0.26429 0.1935,0.10172 0.39803,0.18033 0.57944,0.29487 l 0.53888,0.33259 c 0.15972,0.13304 0.3237,0.25575 0.48662,0.37776 0.14156,0.14157 0.28456,0.28136 0.43182,0.41511 0.11382,0.1558 0.25326,0.29452 0.36495,0.45174 0.0893,0.16362 0.23014,0.31089 0.29061,0.48803 0.0704,0.17251 0.16612,0.34182 0.19137,0.52786 0.0192,0.0911 0.0488,0.18283 0.0634,0.27603 l 0.0125,0.28028 c 0.0303,0.19351 -0.0242,0.37813 -0.0313,0.57625 -0.0235,0.19528 -0.0946,0.38452 -0.1398,0.58691 -0.0911,0.1839 -0.17359,0.37918 -0.28065,0.56557 -0.13304,0.16753 -0.2554,0.35144 -0.41048,0.50795 -0.16185,0.14904 -0.34041,0.28314 -0.5115,0.42471 l -0.29417,0.24508 0.37562,0.0654 c 0.14478,0.0256 0.29488,0.0367 0.42934,0.0897 0.14014,0.0367 0.26393,0.1117 0.38131,0.17964 0.11702,0.0726 0.20951,0.17109 0.29204,0.26855 0.0765,0.10315 0.13303,0.21556 0.17429,0.32939 0.14583,0.46774 0.0565,0.96751 -0.0726,1.45909 -0.0338,0.1245 -0.0733,0.24758 -0.12093,0.36815 -0.0491,0.12023 -0.10992,0.23441 -0.17039,0.34931 -0.11845,0.23085 -0.27958,0.43324 -0.4528,0.60754 -0.0897,0.0814 -0.18604,0.1558 -0.28742,0.21271 -0.10137,0.0637 -0.21128,0.1 -0.33187,0.12094 -0.11987,0.027 -0.24828,0.0163 -0.387,-0.004 -0.12272,-0.0227 -0.27781,-0.0787 -0.42721,-0.14584 l -0.0729,0.0882" /><path
inkscape:connector-curvature="0"
id="path40"
style="fill:#fef2e2;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.03557041"
d="m 254.323,124.00225 0.1437,0.19173 c 0.0573,0.0601 0.13055,0.11809 0.20098,0.17857 0.14833,0.10173 0.3212,0.18211 0.5147,0.21982 0.19137,0.0352 0.39875,0.0317 0.58976,-0.0125 0.19599,-0.0387 0.36957,-0.1245 0.53747,-0.21449 0.16292,-0.0942 0.31124,-0.20666 0.4425,-0.3333 0.12911,-0.12663 0.24792,-0.26144 0.3557,-0.40301 0.20702,-0.28918 0.3621,-0.60718 0.47237,-0.94155 0.0495,-0.16932 0.0886,-0.3429 0.10565,-0.52039 0.0146,-0.17857 0.0106,-0.35962 -0.008,-0.54031 -0.047,-0.36104 -0.18318,-0.72458 -0.41689,-1.02123 -0.11524,-0.1494 -0.25467,-0.27639 -0.40123,-0.3863 -0.14939,-0.10742 -0.31017,-0.18674 -0.47131,-0.2554 -0.32582,-0.13053 -0.65805,-0.18211 -0.98423,-0.22337 l 0.0807,0.3091 c 0.19351,-0.14015 0.38096,-0.28705 0.58265,-0.41866 0.18461,-0.15224 0.36246,-0.318 0.55064,-0.47665 0.17251,-0.17358 0.32973,-0.36815 0.49584,-0.56094 0.12129,-0.21769 0.281,-0.43041 0.37171,-0.67228 0.0754,-0.24579 0.18923,-0.49372 0.19243,-0.75836 l 0.0321,-0.39732 c -0.004,-0.13162 -0.0245,-0.26179 -0.038,-0.39483 -0.0143,-0.26891 -0.10102,-0.51898 -0.18497,-0.77366 -0.0729,-0.25789 -0.22766,-0.47629 -0.34396,-0.71568 -0.14371,-0.2216 -0.31943,-0.41795 -0.48696,-0.62177 -0.18959,-0.17892 -0.39164,-0.34397 -0.59225,-0.50937 -0.21947,-0.13587 -0.43823,-0.27246 -0.66125,-0.39626 -0.23192,-0.10421 -0.46597,-0.20061 -0.69967,-0.29274 -0.2369,-0.0847 -0.48447,-0.13018 -0.72493,-0.1935 -0.23939,-0.0637 -0.48803,-0.079 -0.73097,-0.10316 -0.24579,-0.0192 -0.48624,-0.0448 -0.73062,-0.0192 -0.24259,0.0114 -0.48411,0.0335 -0.72101,0.0627 l -0.009,0.11275 c 0.22481,0.0865 0.4457,0.16611 0.66516,0.23584 0.22161,0.063 0.43077,0.15436 0.63885,0.24151 0.20702,0.0872 0.4208,0.15047 0.6111,0.26537 0.1935,0.10137 0.39803,0.17998 0.57944,0.29451 l 0.5389,0.33258 c 0.16007,0.13304 0.32404,0.25541 0.48696,0.37741 0.14157,0.14157 0.28455,0.28066 0.43147,0.41475 0.11418,0.15615 0.25325,0.29524 0.36495,0.4521 0.0893,0.16362 0.23014,0.31088 0.2906,0.48732 0.0704,0.17393 0.16612,0.34254 0.19137,0.52892 0.0192,0.0904 0.0488,0.18284 0.0634,0.27497 l 0.0124,0.281 c 0.0303,0.19315 -0.0241,0.37847 -0.031,0.57624 -0.0238,0.19493 -0.0946,0.38416 -0.14015,0.58691 -0.0907,0.1839 -0.17358,0.37955 -0.28065,0.56593 -0.13303,0.16754 -0.25539,0.35108 -0.41049,0.50759 -0.16183,0.14869 -0.34039,0.28279 -0.5115,0.42507 l -0.29381,0.24401 0.37492,0.0661 c 0.14548,0.0249 0.29523,0.0366 0.42969,0.09 0.14015,0.0362 0.26393,0.11134 0.38131,0.17892 0.11738,0.0733 0.20987,0.17145 0.29203,0.26892 0.0765,0.10315 0.13304,0.21519 0.1743,0.32937 0.1462,0.46704 0.0562,0.96752 -0.0722,1.45946 -0.0338,0.12413 -0.0733,0.24685 -0.12094,0.36816 -0.0494,0.11987 -0.11026,0.23405 -0.17073,0.34858 -0.11845,0.23121 -0.27924,0.43361 -0.45281,0.60791 -0.0897,0.0814 -0.18532,0.15543 -0.28706,0.21235 -0.10138,0.0647 -0.21165,0.10031 -0.33116,0.12129 -0.12023,0.0266 -0.24934,0.0167 -0.38807,-0.004 -0.12272,-0.022 -0.27781,-0.0789 -0.42685,-0.14584 l -0.0733,0.0882" /><path
inkscape:connector-curvature="0"
id="path42"
style="fill:#fef2e2;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.03557041"
d="m 119.6563,128.27141 -0.22623,0.0897 c -0.0818,0.0203 -0.17501,0.0321 -0.26713,0.0473 -0.18141,0.0107 -0.37207,-0.0103 -0.55739,-0.0772 -0.18141,-0.0693 -0.35535,-0.1782 -0.49372,-0.31443 -0.14512,-0.13375 -0.24579,-0.29559 -0.33863,-0.4578 -0.0868,-0.16398 -0.15153,-0.33506 -0.19421,-0.51078 -0.0398,-0.17394 -0.0679,-0.34895 -0.0814,-0.52396 -0.0182,-0.35143 0.0235,-0.70144 0.11169,-1.0415 0.0502,-0.16895 0.1124,-0.33649 0.19457,-0.49585 0.0847,-0.15972 0.18639,-0.31089 0.30093,-0.45388 0.2369,-0.28243 0.55062,-0.52146 0.91024,-0.65378 0.17964,-0.0669 0.36674,-0.1028 0.55134,-0.12058 0.18568,-0.0149 0.36496,3.5e-4 0.53926,0.0252 0.34751,0.0569 0.65805,0.18319 0.95719,0.31551 l -0.23796,0.22161 c -0.0879,-0.2184 -0.16647,-0.43929 -0.26572,-0.6552 -0.0736,-0.2234 -0.13409,-0.45567 -0.20737,-0.68759 -0.0519,-0.23547 -0.0787,-0.48161 -0.11525,-0.73061 0.0156,-0.24722 -0.004,-0.50902 0.0515,-0.76085 0.0694,-0.24757 0.10849,-0.51613 0.25042,-0.74307 l 0.18888,-0.3525 c 0.0754,-0.10991 0.16326,-0.20986 0.24757,-0.31587 0.15864,-0.22089 0.36887,-0.38878 0.57873,-0.5613 0.20239,-0.18212 0.45245,-0.2874 0.68224,-0.4304 0.24258,-0.1149 0.4987,-0.19101 0.75195,-0.2778 0.25824,-0.0541 0.5204,-0.0908 0.78006,-0.12841 0.26038,-0.002 0.52075,-0.005 0.77722,0.004 0.25361,0.031 0.50509,0.069 0.75338,0.11134 0.2465,0.0491 0.48198,0.1373 0.72031,0.20809 0.2376,0.0686 0.45742,0.18284 0.67618,0.28812 0.21947,0.1092 0.43716,0.21129 0.63066,0.35891 0.1992,0.1341 0.3927,0.27709 0.57803,0.42328 l -0.0544,0.10031 c -0.23725,-0.0423 -0.46847,-0.0886 -0.69221,-0.14157 -0.22231,-0.0601 -0.44961,-0.0904 -0.6737,-0.12308 -0.22337,-0.0321 -0.43929,-0.0893 -0.66303,-0.0893 -0.21982,-0.0132 -0.43645,-0.0516 -0.65237,-0.048 l -0.63883,0.006 c -0.20809,0.0306 -0.41404,0.0509 -0.61822,0.0704 -0.19778,0.0477 -0.39484,0.0918 -0.59296,0.13019 -0.18176,0.0733 -0.37598,0.12023 -0.55597,0.19564 -0.1654,0.0924 -0.36494,0.14584 -0.51292,0.26429 -0.15331,0.11098 -0.32689,0.20594 -0.44996,0.35072 -0.0654,0.0668 -0.14051,0.13019 -0.20417,0.20062 l -0.16363,0.23263 c -0.13054,0.14797 -0.18532,0.33329 -0.28777,0.50438 -0.0857,0.17822 -0.12876,0.37492 -0.20062,0.5702 -0.0235,0.20311 -0.0598,0.41083 -0.0704,0.62426 0.0213,0.21022 0.0248,0.42862 0.0715,0.64204 0.0558,0.2088 0.13444,0.41404 0.20203,0.62249 l 0.11632,0.3589 -0.35464,-0.13694 c -0.13588,-0.0533 -0.26962,-0.12094 -0.41262,-0.14442 -0.13943,-0.0416 -0.28527,-0.0416 -0.42151,-0.0445 -0.13943,0.002 -0.27175,0.0384 -0.39482,0.0779 -0.12095,0.0484 -0.22979,0.11453 -0.3269,0.19065 -0.37918,0.32121 -0.57552,0.79145 -0.73452,1.2745 -0.0391,0.12378 -0.0722,0.24792 -0.0978,0.37491 -0.0235,0.1277 -0.0345,0.25575 -0.0455,0.38379 -0.0256,0.25718 6e-4,0.51151 0.0526,0.74841 0.0321,0.11524 0.0733,0.22765 0.12807,0.32795 0.0508,0.10707 0.12484,0.19387 0.21519,0.27248 0.0875,0.0854 0.2024,0.14264 0.33116,0.19634 0.11633,0.0441 0.27852,0.0762 0.44179,0.0957 l 0.0135,0.1124" /><path
inkscape:connector-curvature="0"
id="path44"
style="fill:#fef2e2;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.03557041"
d="m 128.53254,264.43884 c 0,0 0.0897,-0.0744 0.24543,-0.20276 0.0751,-0.0729 0.18034,-0.13089 0.29417,-0.18674 0.0554,-0.0299 0.11453,-0.0616 0.17678,-0.0953 0.0711,-0.0227 0.14513,-0.0459 0.22303,-0.0711 0.14798,-0.0601 0.32476,-0.0811 0.50403,-0.10636 0.17964,-0.0277 0.37812,-0.0192 0.57304,-0.0203 0.20027,0.0242 0.40159,0.0324 0.60434,0.0839 0.20418,0.0328 0.4023,0.10493 0.5983,0.16931 0.18781,0.0822 0.37882,0.16505 0.53711,0.28208 0.0796,0.0565 0.15793,0.11275 0.23761,0.16185 0.069,0.0626 0.14193,0.11488 0.21271,0.16753 0.14868,0.0946 0.26465,0.20702 0.39839,0.29452 0.10173,0.10743 0.24615,0.18995 0.32227,0.29807 0.0434,0.0523 0.0946,0.10032 0.14477,0.14834 0.0405,0.0501 0.0648,0.10529 0.10386,0.15366 0.0751,0.0992 0.14478,0.19493 0.17644,0.28243 0.0832,0.17251 0.15331,0.2931 0.15331,0.2931 l 0.11489,0.0121 c 0,0 0.0683,-0.10493 0.14904,-0.32618 0.0516,-0.11276 0.0668,-0.25042 0.0676,-0.4176 0.0142,-0.17038 -0.009,-0.35926 -0.0796,-0.5581 -0.047,-0.21307 -0.17002,-0.39874 -0.2995,-0.60611 -0.14548,-0.18426 -0.318,-0.38097 -0.53,-0.52076 -0.10742,-0.0676 -0.21662,-0.13765 -0.33258,-0.19813 -0.11881,-0.0526 -0.24402,-0.0949 -0.36709,-0.13908 -0.24508,-0.0911 -0.50475,-0.13837 -0.75445,-0.19777 -0.2554,-0.0413 -0.50759,-0.0854 -0.76191,-0.0846 -0.24935,-0.0235 -0.49977,0.0171 -0.73454,0.0373 -0.23547,0.0497 -0.46312,0.0821 -0.66587,0.16576 -0.20417,0.0796 -0.39377,0.15189 -0.55098,0.26073 -0.0786,0.0491 -0.15474,0.0956 -0.22695,0.14015 -0.0651,0.0591 -0.12734,0.11382 -0.18568,0.16612 -0.11845,0.10137 -0.20844,0.19064 -0.25574,0.27779 -0.11383,0.16612 -0.17856,0.26074 -0.17856,0.26074 l 0.0864,0.0754" /><path
inkscape:connector-curvature="0"
id="path46"
style="fill:#fef2e2;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.03557041"
d="m 93.085922,285.02307 c -0.17501,3.49515 -5.318133,-11.55682 2.356179,-18.59834 1.881318,-1.72623 -0.05547,0.39732 -1.37017,8.92141 -0.449964,2.92211 -0.864364,7.24818 -0.986009,9.67693" /><path
inkscape:connector-curvature="0"
id="path48"
style="fill:#fef2e2;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.03557041"
d="m 147.14795,288.45135 c -0.37562,3.47878 7.07105,-10.63627 0.59083,-18.73102 -1.58858,-1.98269 -0.008,0.40195 -0.0473,9.02029 -0.0135,2.95484 -0.2835,7.29229 -0.54352,9.71073" /><path
inkscape:connector-curvature="0"
id="path50"
style="fill:#58595b;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.03557041"
d="m 125.83595,237.24953 c 0.0349,-1.72695 0.71923,-4.17917 -0.94653,-5.39141 -1.79524,-1.30686 -4.75755,-0.007 -5.86627,1.5651 -0.46776,0.66375 -1.58929,0.0366 -1.11655,-0.63351 1.46514,-2.07731 4.27412,-3.15154 6.7854,-2.41522 3.15332,0.92518 2.4846,4.45411 2.43729,6.87504 -0.016,0.80887 -1.30971,0.81065 -1.29334,0 v 0" /><path
inkscape:connector-curvature="0"
id="path52"
style="fill:#58595b;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.03557041"
d="m 126.05399,233.48013 c 1.7401,-3.99598 7.93469,-3.49798 9.3287,0.4642 0.27068,0.76796 -0.97925,1.09557 -1.24675,0.33364 -1.07636,-3.05833 -5.70157,-3.06509 -6.96539,-0.16326 -0.32405,0.74236 -1.4374,0.10244 -1.11656,-0.63458 v 0" /><path
inkscape:connector-curvature="0"
id="path54"
style="fill:#fef2e2;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.03557041"
d="m 99.836118,184.07035 c 0,0 0.05124,-0.10386 0.141568,-0.28171 0.03803,-0.0967 0.110614,-0.1896 0.192434,-0.28563 0.0384,-0.048 0.0796,-0.1 0.12342,-0.15544 0.0551,-0.0477 0.11348,-0.0985 0.17466,-0.15189 0.10991,-0.11205 0.26429,-0.19991 0.41867,-0.2931 0.15331,-0.0946 0.33827,-0.16362 0.51647,-0.24117 0.19315,-0.0544 0.38168,-0.12556 0.58905,-0.15616 0.20062,-0.0501 0.4112,-0.0605 0.61715,-0.0776 0.20702,0.003 0.41582,0.004 0.60932,0.0505 0.0967,0.021 0.19137,0.0423 0.28456,0.0565 0.0886,0.0313 0.17679,0.0495 0.26322,0.0708 0.17608,0.0295 0.32796,0.0875 0.48732,0.11595 0.13694,0.058 0.30341,0.0776 0.41795,0.14727 0.0612,0.0313 0.1277,0.0558 0.19315,0.0804 0.0583,0.0303 0.10279,0.0711 0.159,0.1003 0.10955,0.0623 0.21271,0.12344 0.2778,0.19102 0.14727,0.12592 0.26073,0.21022 0.26073,0.21022 l 0.11099,-0.0342 c 0,0 0.0189,-0.12308 0.002,-0.35748 6e-4,-0.12379 -0.0416,-0.2554 -0.1092,-0.40906 -0.058,-0.16185 -0.15722,-0.32547 -0.30342,-0.4802 -0.13089,-0.17678 -0.32048,-0.30021 -0.52395,-0.44001 -0.20915,-0.1124 -0.44819,-0.22587 -0.69967,-0.27211 -0.12769,-0.0192 -0.25575,-0.0423 -0.38771,-0.053 -0.13019,-9.9e-4 -0.2618,0.009 -0.39306,0.0153 -0.26215,0.0117 -0.51968,0.0697 -0.77295,0.1117 -0.25148,0.0616 -0.50082,0.1188 -0.73346,0.21769 -0.23903,0.0758 -0.45103,0.20951 -0.65805,0.31978 -0.19527,0.13659 -0.39056,0.25504 -0.5421,0.40906 -0.15436,0.15295 -0.29843,0.29167 -0.39731,0.45316 -0.0523,0.0758 -0.1028,0.14763 -0.15047,0.21628 -0.03595,0.0793 -0.07011,0.15402 -0.102085,0.22444 -0.06653,0.13872 -0.11276,0.25575 -0.120224,0.35428 -0.03591,0.196 -0.0569,0.30805 -0.0569,0.30805 l 0.110979,0.0359" /><path
inkscape:connector-curvature="0"
id="path56"
style="fill:#fef2e2;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.03557041"
d="m 111.6462,136.30891 c 0,0 0.0516,-0.10351 0.14228,-0.28172 0.038,-0.0967 0.11063,-0.18959 0.19208,-0.28527 0.0387,-0.0491 0.0796,-0.10031 0.12308,-0.1558 0.0558,-0.0477 0.11382,-0.0985 0.175,-0.15189 0.11027,-0.11204 0.26429,-0.19991 0.41902,-0.29311 0.1526,-0.0946 0.33792,-0.16362 0.51613,-0.2408 0.19279,-0.0547 0.38167,-0.12593 0.58869,-0.15651 0.20061,-0.0502 0.4119,-0.0605 0.61785,-0.0772 0.20667,0.002 0.41511,0.003 0.60862,0.0498 0.0971,0.0207 0.19172,0.0424 0.28491,0.0565 0.0886,0.0317 0.17714,0.0498 0.26323,0.0708 0.17678,0.0299 0.3276,0.0879 0.48695,0.11631 0.13731,0.058 0.30377,0.0776 0.41795,0.14762 0.0612,0.0313 0.12806,0.0551 0.19351,0.08 0.0587,0.0303 0.10244,0.0715 0.159,0.1 0.10956,0.0626 0.21235,0.12378 0.27781,0.19172 0.14725,0.12521 0.26072,0.20952 0.26072,0.20952 l 0.11099,-0.0339 c 0,0 0.0192,-0.12306 0.002,-0.35819 0.001,-0.12308 -0.0413,-0.25503 -0.10885,-0.40835 -0.0583,-0.16184 -0.15721,-0.32547 -0.30341,-0.48091 -0.13125,-0.17643 -0.32049,-0.30056 -0.52395,-0.43929 -0.20916,-0.11276 -0.44818,-0.22623 -0.69967,-0.27176 -0.12734,-0.02 -0.25611,-0.0427 -0.38737,-0.0533 -0.13053,-5.9e-4 -0.2625,0.008 -0.39339,0.0153 -0.26252,0.0117 -0.51969,0.0697 -0.77332,0.11169 -0.25148,0.0616 -0.50012,0.1188 -0.73274,0.21734 -0.23903,0.0758 -0.45139,0.20916 -0.65806,0.32013 -0.19564,0.13659 -0.39056,0.2554 -0.5428,0.40906 -0.15438,0.15295 -0.29808,0.29133 -0.39697,0.45353 -0.0526,0.0754 -0.1028,0.14725 -0.15081,0.21591 -0.0356,0.0796 -0.0697,0.15438 -0.10174,0.22445 -0.0665,0.13872 -0.11275,0.25574 -0.12022,0.35427 -0.0362,0.19636 -0.0569,0.30769 -0.0569,0.30769 l 0.11062,0.0362" /><path
inkscape:connector-curvature="0"
id="path58"
style="fill:#fef2e2;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.03557041"
d="m 215.51142,173.95698 c 0,0 0.0665,0.0942 0.18106,0.25859 0.0672,0.08 0.11524,0.18675 0.16077,0.30377 0.0245,0.0562 0.0498,0.11632 0.0779,0.18071 0.0153,0.0708 0.0317,0.1444 0.0495,0.22267 0.0459,0.14833 0.0477,0.32191 0.0551,0.49834 0.009,0.17571 -0.0214,0.36637 -0.0406,0.55489 -0.0466,0.18995 -0.0765,0.38416 -0.15082,0.57411 -0.0551,0.19385 -0.15082,0.37669 -0.2369,0.55952 -0.10528,0.17251 -0.20915,0.34789 -0.34645,0.48803 -0.0668,0.0711 -0.13304,0.14014 -0.19137,0.21306 -0.0722,0.0587 -0.13233,0.12343 -0.19421,0.1864 -0.11419,0.13444 -0.24083,0.23333 -0.34504,0.35285 -0.11952,0.0879 -0.22053,0.21734 -0.33863,0.27994 -0.0583,0.0362 -0.11347,0.0804 -0.16754,0.12307 -0.0565,0.0349 -0.11489,0.0508 -0.16896,0.0839 -0.10991,0.0619 -0.2152,0.11879 -0.30839,0.14049 -0.18568,0.0619 -0.31658,0.11596 -0.31658,0.11596 l -0.0248,0.11028 c 0,0 0.10031,0.0769 0.31943,0.1782 0.10919,0.0623 0.24828,0.0918 0.41973,0.11133 0.17394,0.0313 0.36922,0.0284 0.58015,-0.0185 0.22266,-0.0224 0.4272,-0.122 0.65307,-0.22445 0.20417,-0.12022 0.424,-0.26571 0.58976,-0.45459 0.0807,-0.0985 0.16433,-0.19528 0.23939,-0.30128 0.0658,-0.10884 0.122,-0.22516 0.18176,-0.33934 0.11917,-0.22587 0.19421,-0.47167 0.28243,-0.70678 0.0697,-0.24295 0.14121,-0.48127 0.1679,-0.72671 0.0508,-0.23903 0.0362,-0.48375 0.0395,-0.71318 -0.0252,-0.23156 -0.0345,-0.45495 -0.0975,-0.65948 -0.0601,-0.2063 -0.11276,-0.39661 -0.20809,-0.55916 -0.0427,-0.0822 -0.0814,-0.16078 -0.11986,-0.23441 -0.0526,-0.0697 -0.10245,-0.13516 -0.14976,-0.19742 -0.0918,-0.1252 -0.17359,-0.22196 -0.25789,-0.27638 -0.15757,-0.1277 -0.2472,-0.20062 -0.2472,-0.20062 l -0.0868,0.0762" /><path
inkscape:connector-curvature="0"
id="path60"
style="fill:#fef2e2;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.03557041"
d="m 260.46743,127.33129 c 0,0 0.11703,0.0196 0.31872,0.0526 0.10564,0.008 0.21768,0.0491 0.33649,0.0975 0.0587,0.0227 0.12165,0.0459 0.18852,0.0715 0.063,0.0369 0.12913,0.0771 0.19991,0.11845 0.14193,0.0715 0.27247,0.18923 0.40834,0.30661 0.13695,0.11561 0.25754,0.26856 0.38487,0.41156 0.10885,0.16504 0.23299,0.32012 0.32263,0.50403 0.10565,0.17216 0.17607,0.36637 0.25184,0.55277 0.0558,0.19314 0.11382,0.38735 0.12236,0.58157 0.008,0.0953 0.0132,0.18958 0.0259,0.28029 -0.006,0.0918 6.1e-4,0.17857 0.004,0.26536 0.021,0.17251 0.008,0.33009 0.0242,0.48625 -0.0178,0.14441 0.009,0.30483 -0.0266,0.43111 -0.0135,0.0658 -0.0182,0.13481 -0.0245,0.20276 -0.0124,0.063 -0.0409,0.11594 -0.053,0.17642 -0.0313,0.11951 -0.0616,0.23263 -0.11028,0.31266 -0.0818,0.17323 -0.13303,0.30271 -0.13303,0.30271 l 0.0654,0.0939 c 0,0 0.12662,-0.0178 0.35356,-0.10066 0.12237,-0.0342 0.24011,-0.11027 0.37314,-0.2177 0.14299,-0.0996 0.27639,-0.23868 0.38736,-0.4183 0.13766,-0.17252 0.20596,-0.38381 0.28599,-0.61323 0.0519,-0.22659 0.0953,-0.48127 0.0693,-0.72778 -0.0167,-0.1252 -0.031,-0.25077 -0.058,-0.37668 -0.036,-0.1213 -0.0832,-0.24153 -0.12664,-0.3614 -0.0864,-0.24046 -0.21626,-0.46312 -0.33044,-0.68758 -0.13197,-0.21733 -0.25932,-0.43218 -0.4233,-0.62035 -0.14263,-0.20132 -0.33506,-0.36068 -0.5026,-0.52146 -0.19066,-0.14335 -0.36317,-0.29132 -0.55846,-0.38843 -0.19492,-0.1003 -0.37278,-0.19492 -0.56094,-0.24117 -0.0893,-0.0274 -0.17536,-0.0541 -0.25646,-0.0782 -0.0879,-0.011 -0.17145,-0.0217 -0.25007,-0.0313 -0.15651,-0.0224 -0.28456,-0.0328 -0.38415,-0.0114 -0.20418,0.0224 -0.32085,0.0349 -0.32085,0.0349 l -0.004,0.11276" /><path
inkscape:connector-curvature="0"
id="path62"
style="fill:#fef2e2;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.03557041"
d="m 269.67056,175.71557 c 0,0 0.063,0.0975 0.1718,0.26501 0.0648,0.0818 0.10815,0.19137 0.15011,0.3091 0.0217,0.0576 0.0459,0.11775 0.0711,0.18319 0.0132,0.0711 0.0266,0.14548 0.0416,0.22445 0.0398,0.15011 0.0367,0.32263 0.0373,0.49976 0.002,0.17608 -0.0342,0.36495 -0.0598,0.55348 -0.0541,0.18745 -0.0904,0.38131 -0.17181,0.56841 -0.0619,0.19137 -0.16398,0.37136 -0.25645,0.55135 -0.11098,0.16896 -0.22125,0.34041 -0.36425,0.47557 -0.0686,0.0697 -0.1373,0.13624 -0.19884,0.20632 -0.0736,0.0569 -0.13659,0.11951 -0.20061,0.17997 -0.11809,0.13055 -0.24828,0.22553 -0.35677,0.34184 -0.12343,0.0825 -0.22765,0.20986 -0.34895,0.2682 -0.0594,0.0338 -0.1156,0.0765 -0.17215,0.11702 -0.0569,0.0324 -0.11561,0.048 -0.17111,0.0787 -0.1124,0.0576 -0.21946,0.11169 -0.31337,0.12948 -0.1871,0.0558 -0.32049,0.10564 -0.32049,0.10564 l -0.0288,0.1092 c 0,0 0.0975,0.08 0.31231,0.18958 0.10777,0.0654 0.24579,0.0996 0.41616,0.12486 0.17217,0.0369 0.36745,0.0409 0.57945,5.9e-4 0.22444,-0.0153 0.43254,-0.10706 0.66125,-0.20203 0.2088,-0.11311 0.43325,-0.25148 0.60577,-0.43467 0.0843,-0.0953 0.17109,-0.18959 0.25006,-0.29275 0.0693,-0.10741 0.12983,-0.22089 0.19385,-0.33329 0.12664,-0.22232 0.21129,-0.46455 0.30734,-0.69718 0.0783,-0.24046 0.15864,-0.47558 0.1935,-0.71995 0.0591,-0.2369 0.0534,-0.48233 0.0658,-0.71141 -0.0171,-0.23297 -0.0185,-0.45707 -0.0744,-0.66303 -0.0526,-0.20773 -0.0992,-0.39945 -0.18887,-0.56628 -0.0387,-0.0829 -0.0754,-0.16255 -0.11063,-0.23796 -0.0508,-0.0708 -0.0982,-0.13873 -0.14264,-0.20169 -0.0872,-0.12841 -0.1654,-0.2273 -0.24756,-0.28527 -0.15332,-0.13232 -0.24046,-0.20915 -0.24046,-0.20915 l -0.0897,0.0729" /><path
inkscape:connector-curvature="0"
id="path64"
style="fill:#fef2e2;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.03557041"
d="m 186.5532,180.22768 c 0,0 0.003,0.11561 0.009,0.31337 0.0124,0.10245 -0.008,0.2177 -0.0334,0.3397 -0.0114,0.0601 -0.0227,0.12414 -0.0353,0.19351 -0.0263,0.0672 -0.0533,0.13801 -0.0821,0.21378 -0.0438,0.14797 -0.13837,0.29559 -0.2305,0.44783 -0.0904,0.15188 -0.22161,0.29666 -0.34254,0.44605 -0.14478,0.13623 -0.27781,0.28314 -0.4464,0.40372 -0.15367,0.13482 -0.33579,0.23868 -0.51009,0.34717 -0.18461,0.0904 -0.36957,0.18354 -0.56379,0.23014 -0.0949,0.0246 -0.18959,0.0484 -0.27887,0.0776 -0.0935,0.0128 -0.18034,0.0351 -0.26714,0.0562 -0.17038,0.0533 -0.33187,0.0704 -0.48659,0.11632 -0.14941,0.011 -0.30663,0.0675 -0.44108,0.0583 -0.0686,0 -0.13979,0.008 -0.20915,0.0156 -0.0665,0 -0.12521,-0.0171 -0.18923,-0.0174 -0.12664,-0.006 -0.24686,-0.0132 -0.33721,-0.0438 -0.19067,-0.0452 -0.33152,-0.0683 -0.33152,-0.0683 l -0.0818,0.08 c 0,0 0.0416,0.11737 0.16897,0.31764 0.058,0.10991 0.159,0.20738 0.29238,0.31302 0.12877,0.11738 0.29489,0.21698 0.4987,0.28918 0.19991,0.0967 0.42755,0.1213 0.67406,0.15296 0.23938,0.006 0.50546,-0.002 0.74983,-0.0744 0.12236,-0.0402 0.24685,-0.0779 0.36851,-0.1277 0.1163,-0.0576 0.228,-0.12592 0.34148,-0.19101 0.22622,-0.1277 0.42648,-0.29559 0.63101,-0.44712 0.1935,-0.1679 0.38665,-0.33116 0.5453,-0.52289 0.17535,-0.17465 0.29985,-0.38914 0.43004,-0.58015 0.10742,-0.20844 0.2241,-0.40194 0.28456,-0.60683 0.0637,-0.20488 0.1245,-0.39234 0.13517,-0.58016 0.0103,-0.0907 0.0206,-0.17749 0.0299,-0.25967 -0.006,-0.0857 -0.0114,-0.16717 -0.0167,-0.24471 -0.007,-0.15296 -0.0224,-0.27745 -0.0633,-0.36781 -0.0619,-0.18958 -0.0964,-0.29843 -0.0964,-0.29843 l -0.11525,0.0182" /><path
inkscape:connector-curvature="0"
id="path66"
style="fill:#281f1f;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.03557041"
d="m 144.78358,255.28799 c -4.18343,0.38167 -19.2539,-1.73441 -19.2539,-1.73441 0,-0.002 9.9e-4,-0.005 9.9e-4,-0.006 h -1.04506 c 0,10e-4 6.1e-4,0.004 0.001,0.006 0,0 -15.07047,2.11608 -19.25392,1.73441 -1.18128,-0.10814 -2.99608,-1.73441 -2.99608,-1.73441 0,0 0.53,-9.15156 9.67408,-9.73491 8.71368,-0.55703 11.37541,4.71308 12.2444,8.07413 h 1.7056 c 0.86863,-3.36105 3.53107,-8.63116 12.24369,-8.07413 9.14408,0.58335 9.67408,9.73491 9.67408,9.73491 0,0 -1.8148,1.62627 -2.99574,1.73441" /><path
inkscape:connector-curvature="0"
id="path68"
style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.03557041"
d="m 103.41129,253.21957 c 1.38013,-2.53972 3.29987,-4.77212 4.92722,-7.01164 -3.04092,0.76619 -4.3997,4.45733 -4.92722,7.01164" /><path
inkscape:connector-curvature="0"
id="path70"
style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.03557041"
d="m 128.12775,252.20191 c 1.38048,-2.53938 3.30021,-4.77178 4.92757,-7.012 -3.04163,0.76689 -4.39935,4.45769 -4.92757,7.012" /><path
inkscape:connector-curvature="0"
id="path72"
style="fill:#58595b;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.03557041"
d="m 127.82824,65.757536 c 0,0 -2.96729,-4.16284 -1.49004,-5.596363 1.47723,-1.434483 10.19661,1.060461 10.19661,1.060461 l 2.09438,3.161462 -10.80095,1.37444" /><path
inkscape:connector-curvature="0"
id="path74"
style="fill:#58595b;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.03557041"
d="m 225.10831,66.768376 c 0,0 -2.0332,-4.66111 -0.28633,-5.773788 1.74721,-1.111576 9.339,3.152996 9.339,3.152996 l 0.50119,3.337642 -9.55386,-0.71685" /><path
inkscape:connector-curvature="0"
id="path76"
style="fill:#58595b;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.03557041"
d="m 149.70084,65.706706 c 0,0 -2.12746,-4.62209 -0.40373,-5.767421 1.72339,-1.145047 9.72105,2.494944 9.72105,2.494944 l 1.55939,4.102264 -10.87671,-0.829787" /><path
inkscape:connector-curvature="0"
id="path78"
style="fill:#58595b;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.03557041"
d="m 244.8065,65.617354 c 0,0 -1.8486,-4.734741 -0.0591,-5.781294 1.78883,-1.046838 9.55599,3.037783 9.55599,3.037783 l 0.77508,4.153557 -10.27202,-1.410046" /></g></svg>

After

Width:  |  Height:  |  Size: 47 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 126 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 174 KiB

View File

@ -0,0 +1,130 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
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:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
version="1.1"
id="svg2"
xml:space="preserve"
width="145.37993"
height="204.53957"
viewBox="0 0 145.37992 204.53957"
sodipodi:docname="llama-upside-down.svg"
inkscape:version="0.92.2 2405546, 2018-03-11"><metadata
id="metadata8"><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 /></cc:Work></rdf:RDF></metadata><defs
id="defs6"><clipPath
clipPathUnits="userSpaceOnUse"
id="clipPath58"><path
d="m 5210.02,5148.46 c -111.47,0 -201.85,62.7 -201.85,140.04 0,77.34 90.38,140.04 201.85,140.04 111.49,0 201.87,-62.7 201.87,-140.04 0,-77.34 -90.38,-140.04 -201.87,-140.04"
id="path56"
inkscape:connector-curvature="0" /></clipPath></defs><sodipodi:namedview
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1"
objecttolerance="10"
gridtolerance="10"
guidetolerance="10"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:window-width="1920"
inkscape:window-height="1017"
id="namedview4"
showgrid="false"
inkscape:zoom="2.506291"
inkscape:cx="-17.664601"
inkscape:cy="31.690825"
inkscape:window-x="0"
inkscape:window-y="32"
inkscape:window-maximized="1"
inkscape:current-layer="g12"
fit-margin-left="30"
fit-margin-top="0"
fit-margin-right="0"
fit-margin-bottom="0" /><g
id="g10"
inkscape:groupmode="layer"
inkscape:label="ink_ext_XXXXXX"
transform="matrix(1.3333333,0,0,-1.3333333,-389.82001,456.75206)"><g
id="g12"
transform="scale(0.1)"><g
id="g934"
transform="matrix(0.33096386,0,0,-0.33096386,1653.9483,4535.995)"><path
inkscape:connector-curvature="0"
id="path44"
style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none"
d="m 7120.99,6297.14 c -33.68,263.91 -141.27,339.14 -141.27,339.14 184.45,98.16 155.97,374.2 101.59,477.89 -34.26,65.34 -81.51,67.58 -81.51,67.58 167.1,246.94 -31.21,422.35 -31.21,422.35 43.13,139.67 55.37,277.44 38.1,385.9 H 4535.67 c -14.3,-39.21 -29.97,-109.86 -9.99,-234.71 41.47,-259.2 124.99,-364.58 143.14,-384.52 0.15,-0.93 -157.72,-232.39 -143.14,-439.44 23.31,-331.26 109.87,-379.53 109.87,-379.53 -166.47,-226.39 -54.03,-460.77 9.98,-539.32 1.37,-28.23 -88.55,-335.44 -24.97,-609.24 21.15,-91.08 68.39,-349.23 78.23,-362.38 -9.99,-31.64 -69.14,-144.83 24.96,-370.26 39.13,-93.73 94.22,-171.45 131.91,-218.55 16.44,-39.6 27.38,-63.94 27.38,-63.94 -158.41,-511.94 -70.23,-1040.11 16.44,-1033.13 163.96,13.22 389.98,619.48 406.15,660 6.27,15.67 177.15,28.5 367.55,42.01 176.7,-13.53 358.19,-23.16 453.13,-8.02 118.39,18.89 219.1,54.31 301.85,92.61 113.73,16.27 156.16,19.5 162.81,6.08 37.29,-75.51 156.81,-604.79 371.31,-735.45 114.61,-69.81 260.28,825.01 -25.35,1102.71 0,0 -20.75,83.7 -32.32,152.85 82.07,179.84 6.37,422.4 6.37,422.4 339.1,140.77 38.42,642.11 38.42,642.11 75.3,81.52 220.5,181.35 171.59,564.86" /><path
inkscape:connector-curvature="0"
id="path46"
style="fill:#fef2e2;fill-opacity:1;fill-rule:nonzero;stroke:none"
d="m 6930.63,3617.98 c 69.17,-120.79 222.95,452.24 -73.4,732.36 -72.64,68.66 -74.73,-48.85 -23.97,-387.94 17.38,-116.24 47.34,-257.08 97.37,-344.42" /><path
inkscape:connector-curvature="0"
id="path48"
style="fill:#fef2e2;fill-opacity:1;fill-rule:nonzero;stroke:none"
d="m 4967.59,3559.34 c -75.73,-116.77 -197.69,463.85 113.64,727.21 76.33,64.55 71.92,-52.9 2.56,-388.66 -23.76,-115.11 -61.45,-254.07 -116.2,-338.55" /><path
inkscape:connector-curvature="0"
id="path50"
style="fill:#fef2e2;fill-opacity:1;fill-rule:nonzero;stroke:none"
d="m 5044.21,4722.96 c 190.89,-197.02 760.78,-149.78 760.78,-149.78 0,0 568.13,-64.99 765.13,125.98 0,0 624.48,1391.42 -740.95,1422.38 -1365.78,11.66 -784.96,-1398.58 -784.96,-1398.58" /><g
id="g52"><g
clip-path="url(#clipPath58)"
id="g54"><path
inkscape:connector-curvature="0"
id="path60"
style="fill:#fee8de;fill-opacity:1;fill-rule:nonzero;stroke:none"
d="m 5008.17,5148.46 h 403.719 v 280.078 H 5008.17 Z" /></g></g><path
inkscape:connector-curvature="0"
id="path62"
style="fill:#fee8de;fill-opacity:1;fill-rule:nonzero;stroke:none"
d="m 6389.08,5172.12 c -111.45,0 -201.82,62.69 -201.82,140.04 0,77.35 90.37,140.04 201.82,140.04 111.51,0 201.89,-62.69 201.89,-140.04 0,-77.35 -90.38,-140.04 -201.89,-140.04" /><path
inkscape:connector-curvature="0"
id="path64"
style="fill:#231f20;fill-opacity:1;fill-rule:nonzero;stroke:none"
d="m 5385.11,5039.99 c 0.58,37.09 30.86,66.79 68.16,66.2 37.04,-0.58 66.79,-31.21 66.22,-68.29 -0.56,-37.13 -31.74,-94.9 -68.76,-94.34 -37.29,0.57 -66.21,59.32 -65.62,96.43" /><path
inkscape:connector-curvature="0"
id="path66"
style="fill:#231f20;fill-opacity:1;fill-rule:nonzero;stroke:none"
d="m 6110.71,5055.78 c 0.56,37.11 31,66.72 68.13,66.13 37.12,-0.56 66.84,-31.13 66.29,-68.23 -0.59,-37.18 -31.71,-94.89 -68.82,-94.32 -37.14,0.57 -66.21,59.24 -65.6,96.42" /><path
inkscape:connector-curvature="0"
id="path68"
style="fill:#eedbcc;fill-opacity:1;fill-rule:nonzero;stroke:none"
d="m 5230.04,5625.36 c -2.72,-173.65 264.28,-378.16 549.42,-382.61 285.03,-4.44 542.05,186.43 544.77,360.1 1.42,92.58 -82.23,138.83 -180,206.25 -99.28,68.51 -203.35,222.28 -360.56,224.74 -157.91,2.43 -266.72,-149.26 -368.51,-214.58 -98.62,-63.26 -183.72,-103.97 -185.12,-193.9" /><path
inkscape:connector-curvature="0"
id="path70"
style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none"
d="m 4941.64,4368.85 c 6.49,-59.53 53.48,-110.16 111.92,-107.68 -30.49,-49 -50.38,-160.19 51.94,-209.5 63.24,-30.55 137.82,24.87 137.82,24.87 0,0 11.93,-127.5 149.64,-152.12 146.17,-26.17 224.81,117.65 224.81,117.65 -1.79,-114.55 193.55,-182.57 301.74,-163.6 132.99,23.25 196.44,119.87 196.44,119.87 262.08,-159.82 361.21,90.36 361.21,90.36 57.96,-141.1 266.81,-97.6 331.86,-12.31 83.44,109.31 -14.76,201.95 -14.76,201.95 0,0 180.24,122.43 101.2,264.61 -89.16,160.5 -259.46,61.6 -259.46,61.6 -67.81,340.22 -332.82,43.64 -332.82,43.64 -19.14,158.61 -88.7,295.17 -288.6,249.37 -137.55,-31.52 -180.31,-211.76 -180.31,-211.76 -48.06,185.24 -191.87,159 -246.55,105.47 -34.46,-33.75 -36.35,-80.98 -36.35,-80.98 -125.63,169.08 -219.81,-27.75 -219.81,-27.75 -110.6,68.11 -220.24,63.44 -276.17,-11.02 -31.63,-42.08 -40.69,-89.4 -24.48,-167.23 -46.06,-13.04 -98.36,-52.03 -89.27,-135.44" /><path
inkscape:connector-curvature="0"
id="path72"
style="fill:#fef2e2;fill-opacity:1;fill-rule:nonzero;stroke:none"
d="m 6739.36,4325.68 c 6.1,1.83 12.07,4.1 16.21,6.6 4.52,2.94 8.52,5.93 11.3,9.83 2.88,3.67 5.13,7.56 6.34,12.07 1.45,4.29 2.29,8.95 2.72,13.7 0.41,9.59 -0.3,19.76 -2.94,29.68 -1.29,4.96 -2.58,9.9 -4.3,14.75 -1.82,4.82 -3.9,9.5 -6.2,14.05 -9.29,17.96 -19.86,35.15 -36.44,45.33 -4.17,2.36 -8.76,4.23 -13.72,5.35 -4.93,0.78 -10.2,1.34 -15.5,0.52 -5.23,-0.99 -10.74,-1.93 -15.77,-4.43 -5.3,-1.87 -9.93,-5.36 -14.76,-8.31 l -12.63,-7.7 2.07,14.82 c 1.22,8.63 2.85,17.17 3.6,25.79 0.31,8.61 -0.98,17.21 -1.57,25.6 -1.83,8.27 -4.6,16.23 -6.84,24 -4.04,7.21 -6.97,14.68 -11.43,21.07 -5.06,6.05 -8.36,13 -14.29,17.93 -2.67,2.65 -5.32,5.31 -7.81,8.04 -2.89,2.38 -6.13,4.35 -9.1,6.57 -5.61,4.9 -12.87,7.45 -19.44,10.83 -6.42,3.72 -14.39,4.48 -21.3,7.08 -7.32,1.79 -15.04,2.36 -22.5,4.08 -7.77,0.25 -15.52,0.72 -23.36,1.3 -7.97,-0.54 -15.92,-1.11 -24.04,-1.24 l -24.36,-3.91 c -8.25,-1.22 -16.21,-4.13 -24.52,-6.04 -8.51,-1.49 -16.31,-5.1 -24.62,-7.79 -8.31,-2.73 -16.81,-5.4 -24.85,-9.17 -8.15,-3.55 -16.65,-6.82 -25.43,-10.02 l -2.72,3.59 c 6.09,6.93 12.46,13.77 19.17,20.33 6.4,7.03 14.05,12.44 21.62,18.12 7.69,5.56 15.26,11.45 23.87,15.7 8.59,4.25 16.94,9.25 26.03,12.75 9.19,3.26 18.48,6.38 27.95,9.27 9.73,2.01 19.64,3.55 29.56,5.17 10.12,0.2 20.36,0.41 30.54,-0.04 10.21,-1.73 20.49,-3.12 30.47,-6.02 9.7,-4.14 19.89,-6.65 28.83,-12.49 9.13,-5.4 18.24,-10.63 25.77,-18.27 3.88,-3.6 7.94,-6.97 11.53,-10.8 l 9.52,-12.61 c 6.95,-7.97 10.18,-18.26 14.5,-27.49 3.74,-9.56 4.75,-19.94 7,-29.53 0.27,-10.01 0.87,-19.82 0.46,-29.4 -1.24,-9.58 -1.98,-19.04 -3.31,-28.3 -2.38,-9.12 -3.87,-18.28 -5.77,-27.37 l -10.54,7.12 c 10.54,7.14 21.49,14.08 34.37,18.57 6.45,2.07 13.23,3.82 20.37,4.44 7.13,0.45 14.51,0.24 21.78,-1.22 14.58,-2.89 28.12,-10.23 38.98,-19.76 5.33,-4.9 10.2,-10.19 14.47,-15.87 4.2,-5.75 7.67,-11.87 10.7,-18.2 5.63,-12.79 9.53,-26.21 11.18,-40.12 0.61,-6.98 0.76,-14.02 0.34,-21.11 -0.42,-7.11 -1.77,-14.28 -3.98,-21.26 -2.48,-6.98 -5.24,-13.97 -9.91,-20.13 -4.33,-6.24 -10.2,-11.62 -16.66,-15.53 -6.59,-3.82 -13.73,-5.89 -20.71,-6.61 -3.63,-0.02 -7.26,-0.14 -10.5,0.16 l -9.16,2.04 -0.27,4.49" /><path
inkscape:connector-curvature="0"
id="path74"
style="fill:#fef2e2;fill-opacity:1;fill-rule:nonzero;stroke:none"
d="m 5865.09,4113.39 5.66,-7.51 c 1.62,-2.81 3,-6.16 4.48,-9.48 2.23,-6.65 3.32,-14.01 2.6,-21.6 -0.88,-7.49 -3.37,-15.07 -7.23,-21.59 -3.67,-6.79 -8.9,-12.21 -14.2,-17.36 -5.46,-4.92 -11.39,-9.09 -17.72,-12.45 -6.28,-3.31 -12.73,-6.11 -19.34,-8.42 -13.35,-4.28 -27.15,-6.3 -41.17,-6.48 -6.99,0.16 -14.01,0.78 -20.98,2.18 -6.96,1.55 -13.78,3.81 -20.45,6.61 -13.19,5.96 -25.46,15.22 -34.14,27.3 -4.32,6.04 -7.57,12.64 -10.12,19.31 -2.4,6.79 -3.59,13.67 -4.38,20.41 -1.25,13.57 0.53,26.41 2.64,38.97 l 10.87,-6.63 c -7.49,-5.55 -15.22,-10.69 -22.53,-16.63 -7.87,-5.02 -16.17,-9.65 -24.34,-14.76 -8.57,-4.35 -17.76,-7.86 -26.96,-11.76 -9.68,-1.95 -19.56,-5.35 -29.77,-5.89 -10.23,0.1 -20.91,-1.23 -31.06,1.79 l -15.43,3.41 c -4.98,1.7 -9.71,3.98 -14.61,6.03 -10.06,3.67 -18.61,9.79 -27.31,15.84 -9,5.72 -15.52,13.97 -23.33,21.07 -6.78,7.88 -12.29,16.66 -18.12,25.24 -4.63,9.07 -8.68,18.49 -12.7,27.78 -2.66,9.69 -5.35,19.35 -7.55,29.02 -1.31,9.82 -2.32,19.59 -3.17,29.3 -0.55,9.72 0.49,19.41 0.83,28.97 0.3,9.6 2.52,18.94 4.38,28.23 2.04,9.26 3.79,18.43 7.54,27.19 3.18,8.84 6.75,17.48 10.54,25.88 l 4.4,-0.97 c 0.72,-9.32 1.27,-18.41 1.41,-27.31 -0.08,-8.89 1,-17.71 1.97,-26.41 1,-8.68 0.96,-17.28 3.14,-25.65 1.68,-8.35 2.34,-16.8 4.63,-24.82 l 6.57,-23.77 c 3.25,-7.45 6.02,-14.95 8.83,-22.4 3.78,-6.88 7.44,-13.79 10.86,-20.73 4.64,-6.05 8.39,-12.86 13.06,-18.77 5.23,-5.23 9.22,-12.17 15.27,-16.46 5.8,-4.59 11.16,-10.11 17.95,-13.19 3.24,-1.79 6.37,-3.94 9.75,-5.56 l 10.56,-3.79 c 6.92,-3.33 14.64,-3.44 22.21,-5.55 7.69,-1.41 15.68,-0.96 23.94,-1.64 8.01,1.17 16.4,1.95 24.68,3.75 7.87,2.92 16.25,5.32 23.94,9.2 7.53,4.25 14.64,9.27 21.97,13.93 l 12.64,8.03 -1.78,-14.66 c -0.68,-5.62 -1.93,-11.28 -1.46,-16.86 -0.18,-5.62 1.25,-11.04 2.52,-16.19 1.44,-5.19 4.16,-9.73 6.88,-13.93 3.09,-4.03 6.69,-7.41 10.58,-10.26 16.11,-10.88 36.13,-13.38 56.33,-14.38 5.09,-0.21 10.2,-0.17 15.34,0.19 5.15,0.44 10.18,1.32 15.21,2.22 10.14,1.67 19.67,5.27 28.26,9.6 4.1,2.35 8,5.06 11.32,8.15 3.6,2.96 6.2,6.63 8.37,10.81 2.39,4.13 3.43,9.01 4.23,14.35 0.57,4.8 0.16,11.16 -0.72,17.46 l 4.21,1.64" /><path
inkscape:connector-curvature="0"
id="path76"
style="fill:#fef2e2;fill-opacity:1;fill-rule:nonzero;stroke:none"
d="m 5271.78,4582.82 c 0,0 -4.4,1.07 -12.08,2.99 -3.9,1.3 -8.55,1.53 -13.48,1.57 -2.46,0.1 -5.03,0.24 -7.8,0.33 -2.83,-0.4 -5.84,-0.84 -8.96,-1.28 -6.18,-0.39 -12.65,-2.73 -19.34,-4.92 -6.68,-2.11 -13.39,-5.81 -20.16,-9.1 -6.45,-4.33 -13.28,-8.1 -19.34,-13.45 -6.52,-4.64 -12.08,-10.63 -17.7,-16.3 -5.05,-6.17 -10.17,-12.41 -13.55,-19.3 -1.8,-3.39 -3.48,-6.74 -5.36,-9.87 -1.27,-3.41 -2.86,-6.53 -4.36,-9.61 -3.47,-5.96 -5.51,-11.92 -8.57,-17.36 -1.58,-5.56 -5.14,-10.98 -5.86,-16.15 -0.57,-2.62 -1.47,-5.21 -2.33,-7.79 -0.53,-2.5 -0.38,-4.86 -0.9,-7.26 -0.81,-4.83 -1.52,-9.42 -1.09,-13.09 0.2,-7.58 -0.04,-13.08 -0.04,-13.08 l -3.8,-2.41 c 0,0 -4.22,2.56 -10.93,9.06 -3.8,3.12 -6.76,7.74 -9.78,13.67 -3.5,5.85 -6.01,13 -7.1,21.24 -2.18,8.42 -1.21,17.17 -0.43,26.79 1.76,9.05 4.24,19.01 9.09,27.66 2.54,4.25 5.04,8.62 7.99,12.81 3.16,3.89 6.76,7.51 10.18,11.26 6.87,7.45 15,13.6 22.6,20.01 8.11,5.89 16.05,11.79 24.82,16.12 8.24,5.14 17.57,8.01 26.06,11.33 8.99,2.28 17.46,5.05 25.95,5.58 8.49,0.68 16.29,1.36 23.66,0.18 3.6,-0.37 7.05,-0.73 10.32,-1.08 3.31,-0.94 6.44,-1.85 9.38,-2.69 5.89,-1.56 10.58,-3.2 13.78,-5.5 6.86,-3.96 10.8,-6.21 10.8,-6.21 l -1.67,-4.15" /><path
inkscape:connector-curvature="0"
id="path78"
style="fill:#fef2e2;fill-opacity:1;fill-rule:nonzero;stroke:none"
d="m 6369.15,4263.8 c 0,0 1.45,-4.27 3.98,-11.78 1.64,-3.78 2.26,-8.38 2.71,-13.3 0.31,-2.44 0.65,-4.99 0.98,-7.75 -0.16,-2.86 -0.35,-5.89 -0.53,-9.03 0.13,-6.18 -1.68,-12.83 -3.28,-19.7 -1.54,-6.81 -4.68,-13.81 -7.39,-20.83 -3.78,-6.79 -6.95,-13.91 -11.78,-20.42 -4.08,-6.87 -9.57,-12.89 -14.77,-18.99 -5.72,-5.55 -11.51,-11.15 -18.09,-15.11 -3.23,-2.09 -6.45,-4.02 -9.4,-6.15 -3.29,-1.56 -6.26,-3.41 -9.21,-5.17 -5.63,-3.93 -11.42,-6.47 -16.59,-9.98 -5.41,-2.03 -10.52,-6.05 -15.6,-7.18 -2.54,-0.8 -5.07,-1.92 -7.55,-2.99 -2.44,-0.74 -4.82,-0.78 -7.17,-1.5 -4.74,-1.21 -9.26,-2.3 -12.95,-2.16 -7.57,-0.45 -13.03,-1.15 -13.03,-1.15 l -2.09,-4 c 0,0 2.91,-3.98 9.93,-10.13 3.43,-3.53 8.29,-6.08 14.47,-8.6 6.1,-3.01 13.43,-4.92 21.76,-5.31 8.54,-1.46 17.2,0.24 26.72,1.81 8.86,2.52 18.59,5.84 26.8,11.38 4.02,2.89 8.16,5.75 12.1,9.03 3.61,3.47 6.92,7.35 10.37,11.1 6.86,7.47 12.3,16.07 18.06,24.19 5.18,8.56 10.39,16.97 13.97,26.08 4.44,8.63 6.52,18.18 9.11,26.92 1.53,9.15 3.58,17.83 3.4,26.33 -0.04,8.49 0,16.33 -1.81,23.59 -0.67,3.55 -1.31,6.96 -1.94,10.18 -1.21,3.24 -2.38,6.26 -3.45,9.13 -2.05,5.74 -4.08,10.28 -6.65,13.27 -4.51,6.51 -7.09,10.25 -7.09,10.25 l -3.99,-2.03" /><path
inkscape:connector-curvature="0"
id="path80"
style="fill:#231f20;fill-opacity:1;fill-rule:nonzero;stroke:none"
d="m 5769.92,5366.76 c 95.55,-0.97 278.19,1.35 244.67,74.19 -18.61,40.39 -116.92,93.83 -242.97,96.85 -126.07,-0.51 -225.44,-51.97 -244.85,-91.99 -34.88,-72.14 147.62,-78.11 243.15,-79.05" /><path
inkscape:connector-curvature="0"
id="path82"
style="fill:#231f20;fill-opacity:1;fill-rule:nonzero;stroke:none"
d="m 5735.72,5520.16 c -10.07,82.73 12.09,161.3 85.42,207 80.86,50.42 187.23,18.01 263.41,-23.73 28.24,-15.47 3.04,-58.59 -25.2,-43.11 -60.87,33.33 -127.19,53.65 -195.43,31.99 -73.89,-23.44 -86.25,-106.33 -78.26,-172.15 3.89,-31.92 -46.09,-31.54 -49.94,0" /><path
inkscape:connector-curvature="0"
id="path84"
style="fill:#231f20;fill-opacity:1;fill-rule:nonzero;stroke:none"
d="m 5723.46,5537.13 c 1.54,57.24 -22.39,111.21 -69.34,145.16 -69.71,50.41 -140.71,-6.31 -184.18,-61.67 -19.88,-25.32 -54.94,10.29 -35.3,35.31 52.39,66.75 136.72,124.18 223.06,81.37 75.02,-37.19 117.92,-117.58 115.7,-200.17 -0.87,-32.13 -50.8,-32.22 -49.94,0" /></g></g></g></svg>

After

Width:  |  Height:  |  Size: 15 KiB

View File

@ -0,0 +1,203 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
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:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
version="1.1"
id="svg2"
xml:space="preserve"
width="854.99921"
height="250.33229"
viewBox="0 0 854.9992 250.33229"
sodipodi:docname="logo-full-pride.svg"
inkscape:version="0.92.4 (5da689c313, 2019-01-14)"
inkscape:export-xdpi="382.35129"
inkscape:export-ydpi="382.35129"><metadata
id="metadata8"><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><defs
id="defs6"><clipPath
clipPathUnits="userSpaceOnUse"
id="clipPath4673"><path
d="m -494.56809,2401.2217 c -4.09651,22.9357 -8.38485,45.1976 -12.88198,66.6479 -46.57735,222.2017 -109.92915,344.5814 -178.38369,344.5814 -66.13415,0 -128.30782,-117.0181 -175.07036,-329.484 -5.76784,-26.2111 -11.21446,-53.4994 -16.33419,-81.7453 -36.38654,-200.7081 -56.18173,-450.2885 -56.18173,-713.7039 0,-300.4742 25.75435,-582.9663 72.51592,-795.44502 46.76254,-212.4658 108.93621,-329.47968 175.07036,-329.47968 66.13322,0 128.3069,117.01388 175.07039,329.47968 46.76251,212.47872 72.5142,494.97082 72.5142,795.44502 0,256.8692 -20.33815,512.3389 -56.31892,713.7039"
style="fill:#196aff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.20138533"
id="path4675"
inkscape:connector-curvature="0" /></clipPath></defs><sodipodi:namedview
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1"
objecttolerance="10"
gridtolerance="10"
guidetolerance="10"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:window-width="1916"
inkscape:window-height="1018"
id="namedview4"
showgrid="true"
fit-margin-top="0"
fit-margin-left="10"
fit-margin-right="10"
fit-margin-bottom="0"
inkscape:zoom="16"
inkscape:cx="154.80338"
inkscape:cy="2.3103017"
inkscape:window-x="1920"
inkscape:window-y="60"
inkscape:window-maximized="0"
inkscape:current-layer="g12"><inkscape:grid
type="xygrid"
id="grid868"
originx="-12.58708"
originy="0.35364203" /></sodipodi:namedview><g
id="g10"
inkscape:groupmode="layer"
inkscape:label="ink_ext_XXXXXX"
transform="matrix(1.3333333,0,0,-1.3333333,-100.86197,369.33978)"><g
id="g12"
transform="matrix(0.1,0,0,0.1,9.5479652,-4.2435374)"><g
id="g4627"
transform="matrix(3.7753253,0,0,0.83091105,4259.9494,475.58715)"
clip-path="url(#clipPath4673)"><rect
transform="scale(1,-1)"
y="-2812.6438"
x="-933.41803"
height="374.99991"
width="495.10489"
id="rect851"
style="opacity:1;fill:#e40303;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:31.49272537;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /><rect
transform="scale(1,-1)"
y="-2437.644"
x="-933.41803"
height="374.99991"
width="495.10489"
id="rect851-6"
style="opacity:1;fill:#ff8c00;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:31.49272537;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /><rect
transform="scale(1,-1)"
y="-2062.6438"
x="-933.41803"
height="374.99991"
width="495.10489"
id="rect851-7"
style="opacity:1;fill:#ffed00;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:31.49272537;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /><rect
transform="scale(1,-1)"
y="-1687.6438"
x="-933.41803"
height="374.99991"
width="495.10489"
id="rect851-5"
style="opacity:1;fill:#008026;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:31.49272537;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /><rect
transform="scale(1,-1)"
y="-1312.6438"
x="-933.41803"
height="374.99991"
width="495.10489"
id="rect851-3"
style="opacity:1;fill:#004dff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:31.49272537;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /><rect
transform="scale(1,-1)"
y="-937.6438"
x="-933.41803"
height="374.99991"
width="495.10489"
id="rect851-3-5"
style="opacity:1;fill:#750787;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:31.49272537;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" /></g><path
d="m 1960.0237,1629.0569 c 34.748,101.8719 92.1383,133.0607 99.2719,290.2631 2.5075,55.2445 -14.2745,230.7172 -14.2745,230.7172 0,0 27.2756,70.3569 -25.1425,148.7323 -81.2774,121.5222 -248.6722,129.7845 -336.5838,129.7845 -87.9117,0 -253.3518,-8.2623 -334.6328,-129.7845 -52.4216,-78.3754 -25.146,-148.7323 -25.146,-148.7323 0,0 -9.2845,-90.2472 -16.3111,-169.8449 -1.6551,-18.6789 0.1533,-92.5664 2.3897,-110.4174 4.0198,-31.9882 14.0997,-63.4172 25.1283,-94.011 13.9642,-38.738 35.8502,-78.0457 52.5608,-117.7907 50.4349,-119.9916 8.2287,-268.6092 10.8075,-398.0029 2.1793,-91.846 -19.4855,-185.0145 -27.9746,-274.83178 95.5446,-32.50114 196.764,-49.45194 300.5873,-49.45194 116.6781,0 230.0819,21.34937 335.8169,62.18766 -19.8566,112.45356 -42.9303,219.11416 -46.49,259.80906 -10.3653,123.0277 -40.2161,253.5112 -0.01,371.3736"
style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.35756606"
id="path46"
inkscape:connector-curvature="0" /><path
d="m 1316.582,2345.7001 c 1.12,-18.2371 2.9177,-36.931 8.054,-54.6795 1.6121,-5.5321 3.9948,-19.1645 11.1142,-21.1904 8.8528,-2.5218 25.2282,8.0396 31.438,12.6158 12.0309,8.8564 23.295,17.9732 35.3294,26.9224 7.6759,5.707 16.0579,10.194 23.5732,16.0615 8.1787,6.3738 14.3315,14.0925 21.137,21.5935 8.2608,9.1132 14.4563,18.5475 20.8089,28.7202 4.9686,7.9397 36.0928,13.108 41.0756,20.477 5.4395,8.0576 0.8917,18.0233 0.8917,27.9426 0,72.2105 4.3373,143.679 6.0244,214.4877 1.7406,48.5731 20.816,106.2522 -52.0329,83.4852 -156.0915,-48.5731 -154.3509,-264.1129 -147.4135,-376.436"
style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.35668287"
id="path48"
inkscape:connector-curvature="0" /><path
d="m 2004.2059,2244.2845 c -1.5693,1.705 -4.084,3.1531 -6.0957,4.644 -8.7423,6.4738 -16.9852,13.2472 -24.4934,20.9159 -9.1632,9.3593 -18.6866,18.4584 -27.4218,28.1672 -7.6829,8.5318 -16.8568,16.1649 -24.3472,24.9001 -4.9935,5.8032 -9.8159,11.9809 -14.2245,18.0731 -2.2506,3.0924 -3.4277,6.8126 -5.1968,10.1227 -2.6359,4.8794 -38.8321,9.8515 -35.2368,14.6097 6.135,8.111 19.7924,14.9913 23.0775,24.2829 16.789,47.3853 24.1189,238.0858 26.1448,286.7552 5.2111,124.4644 114.4738,-6.0743 133.5563,-56.1633 55.507,-145.7156 22.5352,-251.9643 -45.0953,-376.4323"
style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.35668287"
id="path50"
inkscape:connector-curvature="0" /><path
d="m 1855.5904,1765.3985 c -0.079,71.8609 -9.0098,100.9341 -49.0795,136.071 -25.0641,21.9716 -54.3656,30.3537 -101.009,29.2016 -46.6399,1.1521 -80.2536,-13.0261 -104.4902,-38.19 -36.5601,-37.9653 -46.1869,-60.4185 -46.2903,-132.2795 -0.057,-38.8427 41.8246,-124.789 54.2871,-144.6241 20.684,-34.9835 58.9668,-47.5637 96.4934,-44.9385 37.5302,-2.6252 75.8165,9.955 96.4863,44.9385 12.4732,19.8351 53.6558,104.1371 53.6022,149.821"
style="fill:#f1e6d3;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.35668287"
id="path52"
inkscape:connector-curvature="0" /><path
d="m 1378.6235,2279.7067 c -9.363,83.8204 -37.5659,233.6558 59.8692,322.5162 10.7468,9.8088 13.6324,-23.5625 15.4301,-37.0629 2.4717,-18.5369 -0.05,-71.4829 0.3281,-90.1445 0.6955,-35.1368 8.0575,-53.5167 4.6262,-69.5782 -9.3737,-43.9041 -16.8961,-41.072 -25.8595,-67.7697 -17.7771,-52.946 -51.8332,-80.8778 -54.3941,-57.9609"
style="fill:#f1d7d4;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.35668287"
id="path54"
inkscape:connector-curvature="0" /><path
d="m 1987.2991,2296.2674 c 9.9729,-17.8484 36.0214,78.1421 44.1859,119.8312 7.6866,39.2458 17.4525,91.3964 3.9521,130.3855 -7.2406,20.9158 -51.6799,82.3401 -56.923,61.2352 -2.0438,-8.1966 -3.0996,-69.2249 -8.1252,-98.4266 -6.2207,-36.1319 -17.4383,-71.8608 -17.5061,-108.6064 -0.1462,-82.3402 24.6682,-85.7358 34.4163,-104.4189"
style="fill:#f1d7d4;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.35668287"
id="path56"
inkscape:connector-curvature="0" /><path
d="m 1666.2525,1309.6114 c -2.1116,-6.4096 -18.1053,-11.1036 -24.1118,-13.0404 -14.517,-4.6903 -27.4039,6.7556 -35.5149,16.4003 -11.2783,13.3685 -10.9787,34.691 -15.7012,50.2816 -2.857,9.4271 -19.0183,10.7076 -23.8727,1.9867 -16.1899,-29.1125 -79.0231,25.6705 -64.4205,43.9077 9.6268,12.0273 -13.4184,22.6493 -22.9205,10.786 -28.1851,-35.2081 47.6315,-100.77 91.1146,-83 1.9368,-8.7959 3.9663,-17.5809 7.7008,-25.9345 7.3263,-16.4073 23.3485,-27.008 39.9307,-35.918 22.5851,-12.1093 66.4607,9.1597 73.1628,29.4585 4.6654,14.1211 -20.7197,19.1182 -25.3673,5.0721"
style="fill:#faeee0;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.35668287"
id="path58"
inkscape:connector-curvature="0" /><path
d="m 1866.4514,1522.3406 c 2.3327,-9.7803 2.7001,-42.9125 -15.5157,-24.7859 -7.3905,7.3548 -22.0679,3.0139 -22.6671,-6.8234 -1.409,-22.7706 -24.2438,-23.2735 -43.9469,-16.3895 -15.6334,5.4536 -23.8871,-16.1507 -8.3785,-21.5615 28.9305,-10.0942 60.3293,-4.5013 72.8061,17.3669 9.8158,-4.619 20.9194,-5.8782 29.8223,2.5003 15.5477,14.6454 17.8911,35.2723 13.3684,54.2407 -3.4348,14.3744 -28.9163,9.8302 -25.4886,-4.5476"
style="fill:#faeee0;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.35668287"
id="path60"
inkscape:connector-curvature="0" /><path
d="m 1912.6169,1046.2368 c -6.8198,-13.9393 -19.3322,-13.0689 -32.7507,-7.2157 -9.8408,4.2837 -22.0109,-2.8 -19.0432,-12.7621 5.9745,-19.9814 -19.2644,-25.8168 -36.3317,-18.6902 -15.0199,6.274 -28.0745,-13.43272 -12.8941,-19.77811 30.7497,-12.83345 69.8385,-1.60507 75.5098,25.44571 19.778,-3.1351 38.6644,2.4183 48.0951,21.7221 6.5272,13.3221 -15.9723,24.8001 -22.5852,11.2783"
style="fill:#faeee0;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.35668287"
id="path62"
inkscape:connector-curvature="0" /><path
d="m 1712.7461,2121.1754 c -3.1673,-19.6496 -40.0127,3.2315 -49.1616,9.4342 -8.0539,5.4502 -18.4726,2.1401 -19.457,-7.048 -1.3162,-12.3804 -17.9947,-8.7851 -25.617,-7.2299 -14.4171,2.9318 -26.6442,11.9167 -26.9867,25.4172 -0.3352,13.1187 7.9898,26.8938 12.3306,39.2102 2.7785,7.8648 -8.4926,16.5179 -16.732,11.2569 -14.838,-9.4736 -86.3779,-17.9947 -57.8861,13.1901 9.0776,9.9335 -6.9446,24.1439 -16.1185,14.0997 -13.1615,-14.4101 -22.0643,-47.4175 6.4097,-54.4049 15.0306,-3.6845 36.7811,-3.499 55.3179,0.7276 -7.74,-24.8073 -9.3629,-47.5137 22.5459,-63.4538 21.5615,-10.7754 51.1733,-10.7006 63.7214,5.9459 26.4016,-14.1996 67.8731,-27.9747 73.6087,7.5581 2.033,12.5659 -19.9244,17.991 -21.9753,5.2967"
style="fill:#faeee0;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.35668287"
id="path64"
inkscape:connector-curvature="0" /><path
d="m 1589.3446,1665.802 c 38.3291,-3.2422 76.6725,-11.9489 115.3583,-10.5507 24.7289,0.8989 50.3315,4.3623 74.7286,7.979 17.7236,2.6252 39.4527,5.7248 51.3088,18.8649 1.1129,-43.8327 -90.0767,-57.5507 -125.4453,-58.4425 -41.0328,-1.0379 -87.1519,16.7678 -115.9504,42.1493"
style="fill:#494949;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.35668287"
id="path66"
inkscape:connector-curvature="0" /><path
d="m 1692.9645,1757.2483 c -4.3837,-28.1351 -5.2896,-56.6661 -2.6502,-84.9689 0.6991,-7.3976 -1.2734,-25.032 8.5639,-28.7452 7.9755,-3.0139 17.8342,2.6502 19.1361,9.8445 2.2008,12.1273 -2.9604,27.4218 -3.3991,39.8415 -0.5173,14.5455 0,29.1125 1.5373,43.5902 0.9202,8.5818 5.7354,20.1597 -4.0877,26.2055 -7.2086,4.4336 -17.7771,2.7964 -19.1003,-5.7676"
style="fill:#494949;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.35668287"
id="path68"
inkscape:connector-curvature="0" /><path
d="m 1767.4791,1825.6458 c -23.0381,-0.9952 -44.4284,-13.8857 -61.7276,-26.3125 -15.6583,10.3937 -39.3671,19.9458 -59.0951,14.3851 -11.7599,-3.3029 -1.0808,-6.909 3.8235,-10.0442 9.0634,-6.028 16.4503,-13.7751 23.1167,-21.7791 10.1155,-12.2663 19.1075,-25.1461 29.9007,-36.9773 7.4726,5.3788 14.6062,10.811 21.1014,17.0958 3.014,2.9141 27.6857,35.9536 31.4736,41.5429 2.4184,3.5597 4.8581,7.2371 7.6295,10.5863 2.8142,3.3885 10.779,8.7779 3.7773,11.503"
style="fill:#494949;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.35668287"
id="path70"
inkscape:connector-curvature="0" /><path
d="m 1475.9087,1981.716 c 11.3746,29.5047 23.6017,66.5855 54.7829,60.686 23.6052,-5.0578 55.2038,-83.849 34.9799,-76.0662 -10.9573,4.2125 -19.6746,40.0234 -40.2445,44.6674 -13.0689,2.9533 -31.1884,-42.3561 -48.6765,-46.9894 -8.4784,-2.24 -4.2125,10.1155 -0.8418,17.7022"
style="fill:#2c3844;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.35668287"
id="path72"
inkscape:connector-curvature="0" /><path
d="m 1810.9195,1981.716 c 11.3782,29.5047 23.6053,66.5855 54.7865,60.686 23.6017,-5.0578 55.2002,-83.849 34.9763,-76.0662 -10.9573,4.2125 -19.671,40.0234 -40.2445,44.6674 -13.0689,2.9533 -31.1883,-42.3561 -48.673,-46.9894 -8.4783,-2.24 -4.2159,10.1155 -0.8453,17.7022"
style="fill:#2c3844;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.35668287"
id="path74"
inkscape:connector-curvature="0" /><g
aria-label="Vikunja"
transform="matrix(0.97366203,0,0,-0.97366203,184.32573,24.625779)"
style="font-style:normal;font-weight:normal;font-size:1163.38110352px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:29.08452606"
id="text831"><path
d="m 3302.2541,-1549.4053 c 3.4901,2.3268 8.1436,5.8169 10.4704,6.9803 1.1634,0 1.1634,0 1.1634,0 0,0 1.1633,0 1.1633,1.1634 2.3268,0 6.9803,1.1634 9.3071,2.3267 1.1634,0 2.3268,0 2.3268,0 3.4901,1.1634 8.1436,1.1634 11.6338,1.1634 3.4901,0 6.9803,0 11.6338,-1.1634 1.1634,0 2.3267,0 2.3267,0 3.4902,-1.1633 5.8169,-2.3267 9.3071,-2.3267 1.1634,-1.1634 1.1634,-1.1634 2.3268,-1.1634 0,0 0,0 0,0 3.4901,-1.1634 6.9802,-4.6535 9.307,-5.8169 2.3268,-1.1634 2.3268,-1.1634 2.3268,-1.1634 2.3267,-2.3268 4.6535,-3.4901 6.9802,-5.8169 1.1634,-1.1634 1.1634,-1.1634 2.3268,-3.4901 1.1634,-2.3268 4.6535,-4.6536 5.8169,-6.9803 1.1634,0 1.1634,0 1.1634,-1.1634 2.3268,-2.3268 3.4901,-6.9803 4.6535,-9.3071 l 287.3552,-679.4145 c 12.7971,-31.4113 -2.3268,-69.8029 -34.9015,-82.6001 -31.4113,-13.9606 -69.8028,1.1634 -83.7634,33.7381 l -226.8593,538.6454 -226.8593,-538.6454 c -13.9606,-32.5747 -51.1888,-47.6987 -82.6001,-33.7381 -33.7381,12.7972 -48.862,51.1888 -34.9014,82.6001 l 285.0283,679.4145 c 2.3268,2.3268 4.6536,6.9803 5.8169,9.3071 0,1.1634 1.1634,1.1634 1.1634,1.1634 1.1634,2.3267 3.4902,4.6535 5.8169,6.9803 0,2.3267 1.1634,2.3267 1.1634,3.4901 3.4901,2.3268 5.8169,3.4901 8.1437,5.8169 1.1634,0 1.1634,0 1.1634,0 z"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-family:Quicksand;-inkscape-font-specification:'Quicksand Bold';fill:#252626;fill-opacity:1;stroke-width:29.08452606"
id="path834"
inkscape:connector-curvature="0" /><path
d="m 3936.8421,-2118.2987 c -34.9014,0 -62.8226,26.7578 -62.8226,63.986 v 453.7186 c 0,34.9015 27.9212,62.8226 62.8226,62.8226 36.0648,0 62.8226,-27.9211 62.8226,-62.8226 v -453.7186 c 0,-37.2282 -26.7578,-63.986 -62.8226,-63.986 z m 62.8226,-171.017 c 0,-34.9014 -26.7578,-62.8226 -62.8226,-62.8226 -34.9014,0 -62.8226,27.9212 -62.8226,62.8226 v 24.431 c 0,34.9015 27.9212,63.986 62.8226,63.986 36.0648,0 62.8226,-29.0845 62.8226,-63.986 z"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-family:Quicksand;-inkscape-font-specification:'Quicksand Bold';fill:#252626;fill-opacity:1;stroke-width:29.08452606"
id="path836"
inkscape:connector-curvature="0" /><path
d="m 4264.043,-1537.7715 c 36.0648,0 65.1493,-29.0845 65.1493,-63.9859 v -102.3776 l 63.986,-63.9859 171.017,207.0818 c 11.6338,15.1239 30.2479,23.2676 48.862,23.2676 13.9606,0 29.0845,-4.6535 40.7183,-15.1239 27.9212,-22.1043 31.4113,-62.8226 9.3071,-90.7438 l -179.1607,-215.2255 174.5071,-174.5071 c 25.5944,-24.431 25.5944,-65.1494 0,-90.7438 -24.431,-24.431 -66.3127,-24.431 -90.7437,0 l -238.4931,238.4932 v -402.5299 c 0,-34.9014 -29.0845,-63.986 -65.1493,-63.986 -36.0649,0 -63.986,29.0846 -63.986,63.986 v 686.3949 c 0,34.9014 27.9211,63.9859 63.986,63.9859 z"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-family:Quicksand;-inkscape-font-specification:'Quicksand Bold';fill:#252626;fill-opacity:1;stroke-width:29.08452606"
id="path838"
inkscape:connector-curvature="0" /><path
d="m 5316.6484,-1779.7548 v -278.048 c 0,-32.5747 -30.2479,-61.6592 -62.8226,-61.6592 -34.9014,0 -60.4958,29.0845 -60.4958,61.6592 v 278.048 c -1.1634,66.3128 -54.6789,118.6649 -122.155,118.6649 -66.3127,0 -118.6649,-52.3521 -118.6649,-118.6649 v -278.048 c 0,-32.5747 -26.7577,-61.6592 -61.6592,-61.6592 -33.738,0 -61.6592,29.0845 -61.6592,61.6592 v 278.048 c 0,132.6255 109.3579,241.9833 241.9833,241.9833 133.7888,0 245.4734,-109.3578 245.4734,-241.9833 z"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-family:Quicksand;-inkscape-font-specification:'Quicksand Bold';fill:#252626;fill-opacity:1;stroke-width:29.08452606"
id="path840"
inkscape:connector-curvature="0" /><path
d="m 5769.022,-2119.462 c -45.3719,0 -88.417,13.9605 -123.3184,36.0648 -10.4705,-22.1043 -32.5747,-36.0648 -57.0057,-36.0648 -34.9015,0 -61.6592,27.9211 -61.6592,61.6592 v 180.324 c 0,0 0,0 0,0 v 278.0481 c 0,33.7381 26.7577,61.6592 61.6592,61.6592 30.2479,0 55.8423,-22.1042 61.6592,-50.0254 2.3267,-4.6535 2.3267,-8.1436 2.3267,-11.6338 v -278.0481 c 0,-65.1493 51.1888,-117.5015 116.3382,-117.5015 66.3127,0 120.9916,52.3522 120.9916,117.5015 v 278.0481 c 0,33.7381 29.0845,61.6592 61.6592,61.6592 33.738,0 60.4958,-27.9211 60.4958,-61.6592 v -278.0481 c 0,-131.462 -108.1944,-241.9832 -243.1466,-241.9832 z"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-family:Quicksand;-inkscape-font-specification:'Quicksand Bold';fill:#252626;fill-opacity:1;stroke-width:29.08452606"
id="path842"
inkscape:connector-curvature="0" /><path
d="m 6255.6424,-2199.7353 c 34.9014,0 62.8226,-30.2479 62.8226,-63.986 v -23.2676 c 0,-37.2282 -27.9212,-63.986 -62.8226,-63.986 -34.9015,0 -63.986,26.7578 -63.986,63.986 v 23.2676 c 0,33.7381 29.0845,63.986 63.986,63.986 z m -65.1494,867.8823 c 69.8029,0 125.6452,-57.0057 125.6452,-125.6452 v -597.9779 c 0,-36.0648 -26.7578,-63.9859 -62.8226,-63.9859 -33.738,0 -62.8226,27.9211 -62.8226,63.9859 v 597.9779 c 0,0 0,0 0,0 -37.2282,0 -63.9859,27.9212 -63.9859,61.6592 0,37.2282 26.7577,63.986 63.9859,63.986 z"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-family:Quicksand;-inkscape-font-specification:'Quicksand Bold';fill:#252626;fill-opacity:1;stroke-width:29.08452606"
id="path844"
inkscape:connector-curvature="0" /><path
d="m 6998.4795,-2056.6395 c 0,-34.9014 -27.9212,-62.8225 -61.6592,-62.8225 -30.248,0 -53.5156,22.1042 -60.4959,51.1887 -44.2084,-31.4113 -96.5606,-51.1887 -154.7296,-51.1887 -79.11,0 -147.7494,33.738 -197.7748,87.2535 -50.0254,52.3522 -79.11,124.4818 -79.11,204.7551 0,79.1099 29.0846,151.2396 79.11,204.7551 50.0254,52.3521 118.6648,84.9268 197.7748,84.9268 0,0 0,0 0,0 58.169,0 110.5212,-18.6141 154.7296,-50.0254 6.9803,27.9212 30.2479,50.0254 60.4959,50.0254 33.738,0 61.6592,-27.9211 61.6592,-61.6592 v -228.0227 c 0,0 0,0 0,0 0,0 0,0 0,0 z m -168.6903,349.0144 c -27.9212,29.0845 -67.4761,45.3718 -108.1944,45.3718 -41.8818,0 -81.4367,-16.2873 -108.1945,-45.3718 -27.9211,-30.2479 -44.2085,-72.1297 -44.2085,-119.8283 0,-48.862 16.2874,-90.7437 44.2085,-119.8282 26.7578,-31.4113 66.3127,-47.6987 108.1945,-47.6987 40.7183,0 80.2732,16.2874 108.1944,47.6987 27.9211,29.0845 45.3719,70.9662 45.3719,119.8282 0,47.6986 -17.4508,89.5804 -45.3719,119.8283 z"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-family:Quicksand;-inkscape-font-specification:'Quicksand Bold';fill:#252626;fill-opacity:1;stroke-width:29.08452606"
id="path846"
inkscape:connector-curvature="0" /></g>
</g></g></svg>

After

Width:  |  Height:  |  Size: 20 KiB

View File

@ -0,0 +1,143 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
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:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
version="1.1"
id="svg2"
xml:space="preserve"
width="872.58948"
height="256.75024"
viewBox="0 0 872.58947 256.75024"
sodipodi:docname="logo-full-white.svg"
inkscape:version="0.92.4 (5da689c313, 2019-01-14)"><metadata
id="metadata8"><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 /></cc:Work></rdf:RDF></metadata><defs
id="defs6" /><sodipodi:namedview
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1"
objecttolerance="10"
gridtolerance="10"
guidetolerance="10"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:window-width="1916"
inkscape:window-height="998"
id="namedview4"
showgrid="false"
fit-margin-top="0"
fit-margin-left="0"
fit-margin-right="0"
fit-margin-bottom="0"
inkscape:zoom="0.99978818"
inkscape:cx="296.8896"
inkscape:cy="94.913088"
inkscape:window-x="1920"
inkscape:window-y="80"
inkscape:window-maximized="0"
inkscape:current-layer="g12" /><g
id="g10"
inkscape:groupmode="layer"
inkscape:label="ink_ext_XXXXXX"
transform="matrix(1.3333333,0,0,-1.3333333,-88.274885,376.11138)"><g
id="g12"
transform="matrix(0.1,0,0,0.1,9.5479652,-4.2435374)"><path
d="m 2268.2083,2512.3328 c -15.8841,19.573 -32.5119,38.571 -49.9493,56.8765 -180.6013,189.6241 -426.2447,294.0615 -691.6737,294.0615 -256.4319,0 -497.5071,-99.8619 -678.82647,-281.1776 -22.36452,-22.3682 -43.48352,-45.6558 -63.33501,-69.7604 C 643.33683,2341.0509 566.582,2128.0622 566.582,1903.2667 c 0,-256.4209 99.86117,-497.4961 281.17683,-678.8228 C 1029.0782,1043.1282 1270.1534,943.27 1526.5853,943.27 c 256.4282,0 497.5035,99.8582 678.8265,281.1739 181.3193,181.3267 281.1702,422.4019 281.1702,678.8228 0,219.209 -78.8601,437.2237 -218.3737,609.0661"
style="fill:#196aff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.36633128"
id="path44"
inkscape:connector-curvature="0" /><path
d="m 1823.7313,1648.8698 c 35.688,104.4952 94.6307,136.4873 101.9573,297.738 2.5753,56.6671 -14.6606,236.6586 -14.6606,236.6586 0,0 28.0134,72.1687 -25.8227,152.5624 -83.4759,124.6516 -255.3988,133.1267 -345.6885,133.1267 -90.2897,0 -260.2051,-8.4751 -343.6847,-133.1267 -53.8397,-80.3937 -25.8263,-152.5624 -25.8263,-152.5624 0,0 -9.5356,-92.5713 -16.7523,-174.2188 -1.6998,-19.1599 0.1575,-94.9503 2.4544,-113.2609 4.1285,-32.8119 14.4811,-65.0503 25.808,-96.432 14.3419,-39.7354 36.82,-80.0554 53.9826,-120.824 51.7992,-123.0816 8.4513,-275.5263 11.0998,-408.2522 2.2383,-94.2112 -20.0126,-189.7791 -28.7313,-281.90926 98.1291,-33.33811 202.0866,-50.72543 308.7183,-50.72543 119.8343,0 236.3057,21.89915 344.9009,63.78919 -20.3937,115.3493 -44.0916,224.7568 -47.7476,266.4997 -10.6456,126.1959 -41.3039,260.0395 -0.01,380.9371"
style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.36700612"
id="path46"
inkscape:connector-curvature="0" /><path
d="m 1162.8843,2383.8604 c 1.1503,-18.7305 2.9966,-37.93 8.2718,-56.1586 1.6558,-5.6818 4.1029,-19.683 11.4149,-21.7637 9.0923,-2.59 25.9106,8.2571 32.2884,12.9571 12.3563,9.096 23.9251,18.4594 36.2851,27.6507 7.8835,5.8613 16.4922,10.4697 24.2108,16.4959 8.4,6.5463 14.7192,14.4737 21.7088,22.1777 8.4843,9.3597 14.8474,19.0492 21.3718,29.497 5.103,8.1545 37.0691,13.4626 42.1867,21.031 5.5866,8.2755 0.9158,18.5108 0.9158,28.6984 0,74.1638 4.4546,147.5656 6.1874,220.2897 1.7877,49.887 21.3791,109.1264 -53.4404,85.7435 -160.3139,-49.887 -158.5262,-271.2573 -151.4011,-386.6187"
style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.36633128"
id="path48"
inkscape:connector-curvature="0" /><path
d="m 1869.1087,2279.7014 c -1.6118,1.7511 -4.1945,3.2384 -6.2606,4.7696 -8.9788,6.649 -17.4447,13.6056 -25.156,21.4817 -9.411,9.6125 -19.192,18.9577 -28.1635,28.9292 -7.8908,8.7626 -17.3128,16.6021 -25.0058,25.5736 -5.1286,5.9602 -10.0814,12.305 -14.6093,18.562 -2.3115,3.1761 -3.5204,6.9969 -5.3374,10.3965 -2.7072,5.0114 -39.8825,10.118 -36.1899,15.0049 6.3009,8.3304 20.3277,15.3969 23.7017,24.9398 17.2432,48.6671 24.7713,244.5261 26.852,294.512 5.3521,127.8313 117.5704,-6.2386 137.1691,-57.6825 57.0085,-149.6573 23.1448,-258.78 -46.3152,-386.615"
style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.36633128"
id="path50"
inkscape:connector-curvature="0" /><path
d="m 1716.4731,1787.8614 c -0.081,73.8047 -9.2535,103.6644 -50.4071,139.7517 -25.7421,22.566 -55.8363,31.1748 -103.7414,29.9915 -47.9015,1.1833 -82.4245,-13.3784 -107.3167,-39.223 -37.549,-38.9923 -47.4363,-62.0529 -47.5425,-135.8577 -0.059,-39.8934 42.956,-128.1646 55.7556,-148.5363 21.2436,-35.9298 60.5619,-48.8503 99.1036,-46.1541 38.5454,-2.6962 77.8674,10.2243 99.0963,46.1541 12.8106,20.3717 55.1072,106.9541 55.0522,153.8738"
style="fill:#f1e6d3;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.36633128"
id="path52"
inkscape:connector-curvature="0" /><path
d="m 1226.604,2316.0818 c -9.6162,86.0878 -38.582,239.9763 61.4887,331.2404 11.0375,10.0741 14.0012,-24.1999 15.8475,-38.0655 2.5386,-19.0383 -0.051,-73.4165 0.337,-92.5829 0.7143,-36.0873 8.2754,-54.9644 4.7513,-71.4603 -9.6272,-45.0917 -17.3531,-42.183 -26.559,-69.6029 -18.258,-54.3782 -53.2353,-83.0656 -55.8655,-59.5288"
style="fill:#f1d7d4;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.36633128"
id="path54"
inkscape:connector-curvature="0" /><path
d="m 1851.7446,2333.0905 c 10.2426,-18.3312 36.9958,80.2559 45.3811,123.0727 7.8945,40.3074 17.9246,93.8687 4.059,133.9124 -7.4365,21.4816 -53.0778,84.5675 -58.4628,62.8917 -2.0991,-8.4183 -3.1834,-71.0975 -8.345,-101.0891 -6.3889,-37.1093 -17.91,-73.8047 -17.9796,-111.5442 -0.1502,-84.5676 25.3355,-88.055 35.3473,-107.2435"
style="fill:#f1d7d4;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.36633128"
id="path56"
inkscape:connector-curvature="0" /><path
d="m 1522.0135,1319.745 c -2.1687,-6.583 -18.595,-11.4039 -24.764,-13.3931 -14.9097,-4.8172 -28.1452,6.9383 -36.4756,16.8439 -11.5834,13.7301 -11.2757,35.6294 -16.1259,51.6417 -2.9343,9.6822 -19.5328,10.9973 -24.5185,2.0405 -16.6278,-29.9 -81.1607,26.3649 -66.1631,45.0954 9.8872,12.3527 -13.7814,23.262 -23.5405,11.0778 -28.9475,-36.1605 48.9199,-103.4959 93.5793,-85.2452 1.9892,-9.0338 4.0736,-18.0565 7.9091,-26.636 7.5245,-16.8512 23.9801,-27.7386 41.0108,-36.8896 23.1961,-12.4369 68.2585,9.4074 75.1419,30.2553 4.7916,14.5031 -21.2802,19.6354 -26.0535,5.2093"
style="fill:#faeee0;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.36633128"
id="path58"
inkscape:connector-curvature="0" /><path
d="m 1727.6279,1538.2286 c 2.3958,-10.0448 2.7731,-44.0733 -15.9354,-25.4563 -7.5904,7.5537 -22.6649,3.0954 -23.2803,-7.008 -1.4471,-23.3866 -24.8996,-23.9031 -45.1357,-16.8329 -16.0563,5.6012 -24.5332,-16.5875 -8.6051,-22.1447 29.7131,-10.3672 61.9612,-4.6231 74.7755,17.8367 10.0814,-4.744 21.4853,-6.0372 30.629,2.5679 15.9683,15.0416 18.3751,36.2265 13.7301,55.708 -3.5278,14.7632 -29.6985,10.0961 -26.1781,-4.6707"
style="fill:#faeee0;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.36633128"
id="path60"
inkscape:connector-curvature="0" /><path
d="m 1775.0422,1049.246 c -7.0043,-14.3163 -19.8552,-13.4224 -33.6366,-7.4109 -10.107,4.3996 -22.6063,-2.8757 -19.5584,-13.1073 6.1361,-20.5219 -19.7855,-26.5151 -37.3145,-19.1958 -15.4262,6.4438 -28.8339,-13.79604 -13.2429,-20.31307 31.5815,-13.1806 71.7277,-1.64849 77.5524,26.13407 20.313,-3.22 39.7103,2.4837 49.3961,22.3096 6.7038,13.6825 -16.4043,25.471 -23.1961,11.5834"
style="fill:#faeee0;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.36633128"
id="path62"
inkscape:connector-curvature="0" /><path
d="m 1569.7648,2153.2622 c -3.253,-20.1812 -41.0951,3.3189 -50.4915,9.6894 -8.2717,5.5976 -18.9722,2.198 -19.9833,-7.2387 -1.3518,-12.7153 -18.4814,-9.0227 -26.3099,-7.4255 -14.8071,3.0112 -27.365,12.2391 -27.7167,26.1048 -0.3443,13.4736 8.2059,27.6213 12.6641,40.2708 2.8537,8.0776 -8.7223,16.9648 -17.1846,11.5614 -15.2394,-9.7298 -88.7144,-18.4814 -59.4519,13.5469 9.3231,10.2023 -7.1325,24.797 -16.5545,14.4811 -13.5176,-14.7998 -22.6612,-48.7001 6.583,-55.8765 15.4372,-3.7842 37.7761,-3.5937 56.8143,0.7473 -7.9494,-25.4784 -9.6162,-48.799 23.1558,-65.1703 22.1447,-11.0669 52.5575,-10.99 65.4451,6.1067 27.1158,-14.5837 69.7091,-28.7314 75.5998,7.7626 2.088,12.9058 -20.4633,18.4777 -22.5697,5.44"
style="fill:#faeee0;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.36633128"
id="path64"
inkscape:connector-curvature="0" /><path
d="m 1443.0252,1685.5707 c 39.3659,-3.3299 78.7465,-12.2721 118.4788,-10.8361 25.3978,0.9232 51.693,4.4803 76.7501,8.1949 18.203,2.6962 40.5199,5.8796 52.6967,19.3752 1.143,-45.0184 -92.5133,-59.1075 -128.8387,-60.0234 -42.1427,-1.066 -89.5094,17.2213 -119.0869,43.2894"
style="fill:#494949;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.36633128"
id="path66"
inkscape:connector-curvature="0" /><path
d="m 1549.4481,1779.4907 c -4.5023,-28.8962 -5.4327,-58.199 -2.7219,-87.2674 0.718,-7.5977 -1.3078,-25.7091 8.7956,-29.5227 8.1912,-3.0955 18.3166,2.7219 19.6537,10.1108 2.2603,12.4553 -3.0405,28.1635 -3.4911,40.9192 -0.5312,14.939 0,29.9 1.5789,44.7693 0.9451,8.814 5.8906,20.7051 -4.1982,26.9144 -7.4036,4.5535 -18.258,2.872 -19.617,-5.9236"
style="fill:#494949;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.36633128"
id="path68"
inkscape:connector-curvature="0" /><path
d="m 1625.9783,1849.7384 c -23.6613,-1.0221 -45.6302,-14.2613 -63.3973,-27.0243 -16.0819,10.6749 -40.432,20.4853 -60.6937,14.7742 -12.078,-3.3922 -1.11,-7.0959 3.927,-10.3159 9.3085,-6.191 16.8952,-14.1477 23.742,-22.3682 10.3891,-12.5981 19.6243,-25.8263 30.7095,-37.9776 7.6747,5.5243 15.0013,11.1035 21.6722,17.5583 3.0955,2.9929 28.4346,36.9262 32.325,42.6666 2.4838,3.656 4.9895,7.4329 7.8359,10.8727 2.8903,3.4802 11.0705,9.0154 3.8794,11.8142"
style="fill:#494949;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.36633128"
id="path70"
inkscape:connector-curvature="0" /><path
d="m 1326.5208,2010.0303 c 11.6823,30.3029 24.2402,68.3867 56.2648,62.3276 24.2438,-5.1946 56.6971,-86.1171 35.9262,-78.1238 -11.2537,4.3264 -20.2069,41.106 -41.3332,45.8757 -13.4224,3.0332 -32.032,-43.5019 -49.9932,-48.2605 -8.7077,-2.3006 -4.3264,10.3891 -0.8646,18.181"
style="fill:#2c3844;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.36633128"
id="path72"
inkscape:connector-curvature="0" /><path
d="m 1670.5938,2010.0303 c 11.686,30.3029 24.2438,68.3867 56.2685,62.3276 24.2401,-5.1946 56.6934,-86.1171 35.9224,-78.1238 -11.2537,4.3264 -20.2031,41.106 -41.3331,45.8757 -13.4224,3.0332 -32.032,-43.5019 -49.9896,-48.2605 -8.7077,-2.3006 -4.33,10.3891 -0.8682,18.181"
style="fill:#2c3844;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.36633128"
id="path74"
inkscape:connector-curvature="0" /><g
aria-label="Vikunja"
transform="scale(1,-1)"
style="font-style:normal;font-weight:normal;font-size:1163.38110352px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:29.08452606"
id="text831"><path
d="m 3302.2541,-1549.4053 c 3.4901,2.3268 8.1436,5.8169 10.4704,6.9803 1.1634,0 1.1634,0 1.1634,0 0,0 1.1633,0 1.1633,1.1634 2.3268,0 6.9803,1.1634 9.3071,2.3267 1.1634,0 2.3268,0 2.3268,0 3.4901,1.1634 8.1436,1.1634 11.6338,1.1634 3.4901,0 6.9803,0 11.6338,-1.1634 1.1634,0 2.3267,0 2.3267,0 3.4902,-1.1633 5.8169,-2.3267 9.3071,-2.3267 1.1634,-1.1634 1.1634,-1.1634 2.3268,-1.1634 0,0 0,0 0,0 3.4901,-1.1634 6.9802,-4.6535 9.307,-5.8169 2.3268,-1.1634 2.3268,-1.1634 2.3268,-1.1634 2.3267,-2.3268 4.6535,-3.4901 6.9802,-5.8169 1.1634,-1.1634 1.1634,-1.1634 2.3268,-3.4901 1.1634,-2.3268 4.6535,-4.6536 5.8169,-6.9803 1.1634,0 1.1634,0 1.1634,-1.1634 2.3268,-2.3268 3.4901,-6.9803 4.6535,-9.3071 l 287.3552,-679.4145 c 12.7971,-31.4113 -2.3268,-69.8029 -34.9015,-82.6001 -31.4113,-13.9606 -69.8028,1.1634 -83.7634,33.7381 l -226.8593,538.6454 -226.8593,-538.6454 c -13.9606,-32.5747 -51.1888,-47.6987 -82.6001,-33.7381 -33.7381,12.7972 -48.862,51.1888 -34.9014,82.6001 l 285.0283,679.4145 c 2.3268,2.3268 4.6536,6.9803 5.8169,9.3071 0,1.1634 1.1634,1.1634 1.1634,1.1634 1.1634,2.3267 3.4902,4.6535 5.8169,6.9803 0,2.3267 1.1634,2.3267 1.1634,3.4901 3.4901,2.3268 5.8169,3.4901 8.1437,5.8169 1.1634,0 1.1634,0 1.1634,0 z"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-family:Quicksand;-inkscape-font-specification:'Quicksand Bold';stroke-width:29.08452606;fill-opacity:1;fill:#ffffff"
id="path834" /><path
d="m 3936.8421,-2118.2987 c -34.9014,0 -62.8226,26.7578 -62.8226,63.986 v 453.7186 c 0,34.9015 27.9212,62.8226 62.8226,62.8226 36.0648,0 62.8226,-27.9211 62.8226,-62.8226 v -453.7186 c 0,-37.2282 -26.7578,-63.986 -62.8226,-63.986 z m 62.8226,-171.017 c 0,-34.9014 -26.7578,-62.8226 -62.8226,-62.8226 -34.9014,0 -62.8226,27.9212 -62.8226,62.8226 v 24.431 c 0,34.9015 27.9212,63.986 62.8226,63.986 36.0648,0 62.8226,-29.0845 62.8226,-63.986 z"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-family:Quicksand;-inkscape-font-specification:'Quicksand Bold';stroke-width:29.08452606;fill-opacity:1;fill:#ffffff"
id="path836" /><path
d="m 4264.043,-1537.7715 c 36.0648,0 65.1493,-29.0845 65.1493,-63.9859 v -102.3776 l 63.986,-63.9859 171.017,207.0818 c 11.6338,15.1239 30.2479,23.2676 48.862,23.2676 13.9606,0 29.0845,-4.6535 40.7183,-15.1239 27.9212,-22.1043 31.4113,-62.8226 9.3071,-90.7438 l -179.1607,-215.2255 174.5071,-174.5071 c 25.5944,-24.431 25.5944,-65.1494 0,-90.7438 -24.431,-24.431 -66.3127,-24.431 -90.7437,0 l -238.4931,238.4932 v -402.5299 c 0,-34.9014 -29.0845,-63.986 -65.1493,-63.986 -36.0649,0 -63.986,29.0846 -63.986,63.986 v 686.3949 c 0,34.9014 27.9211,63.9859 63.986,63.9859 z"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-family:Quicksand;-inkscape-font-specification:'Quicksand Bold';stroke-width:29.08452606;fill-opacity:1;fill:#ffffff"
id="path838" /><path
d="m 5316.6484,-1779.7548 v -278.048 c 0,-32.5747 -30.2479,-61.6592 -62.8226,-61.6592 -34.9014,0 -60.4958,29.0845 -60.4958,61.6592 v 278.048 c -1.1634,66.3128 -54.6789,118.6649 -122.155,118.6649 -66.3127,0 -118.6649,-52.3521 -118.6649,-118.6649 v -278.048 c 0,-32.5747 -26.7577,-61.6592 -61.6592,-61.6592 -33.738,0 -61.6592,29.0845 -61.6592,61.6592 v 278.048 c 0,132.6255 109.3579,241.9833 241.9833,241.9833 133.7888,0 245.4734,-109.3578 245.4734,-241.9833 z"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-family:Quicksand;-inkscape-font-specification:'Quicksand Bold';stroke-width:29.08452606;fill-opacity:1;fill:#ffffff"
id="path840" /><path
d="m 5769.022,-2119.462 c -45.3719,0 -88.417,13.9605 -123.3184,36.0648 -10.4705,-22.1043 -32.5747,-36.0648 -57.0057,-36.0648 -34.9015,0 -61.6592,27.9211 -61.6592,61.6592 v 180.324 c 0,0 0,0 0,0 v 278.0481 c 0,33.7381 26.7577,61.6592 61.6592,61.6592 30.2479,0 55.8423,-22.1042 61.6592,-50.0254 2.3267,-4.6535 2.3267,-8.1436 2.3267,-11.6338 v -278.0481 c 0,-65.1493 51.1888,-117.5015 116.3382,-117.5015 66.3127,0 120.9916,52.3522 120.9916,117.5015 v 278.0481 c 0,33.7381 29.0845,61.6592 61.6592,61.6592 33.738,0 60.4958,-27.9211 60.4958,-61.6592 v -278.0481 c 0,-131.462 -108.1944,-241.9832 -243.1466,-241.9832 z"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-family:Quicksand;-inkscape-font-specification:'Quicksand Bold';stroke-width:29.08452606;fill-opacity:1;fill:#ffffff"
id="path842" /><path
d="m 6255.6424,-2199.7353 c 34.9014,0 62.8226,-30.2479 62.8226,-63.986 v -23.2676 c 0,-37.2282 -27.9212,-63.986 -62.8226,-63.986 -34.9015,0 -63.986,26.7578 -63.986,63.986 v 23.2676 c 0,33.7381 29.0845,63.986 63.986,63.986 z m -65.1494,867.8823 c 69.8029,0 125.6452,-57.0057 125.6452,-125.6452 v -597.9779 c 0,-36.0648 -26.7578,-63.9859 -62.8226,-63.9859 -33.738,0 -62.8226,27.9211 -62.8226,63.9859 v 597.9779 c 0,0 0,0 0,0 -37.2282,0 -63.9859,27.9212 -63.9859,61.6592 0,37.2282 26.7577,63.986 63.9859,63.986 z"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-family:Quicksand;-inkscape-font-specification:'Quicksand Bold';stroke-width:29.08452606;fill-opacity:1;fill:#ffffff"
id="path844" /><path
d="m 6998.4795,-2056.6395 c 0,-34.9014 -27.9212,-62.8225 -61.6592,-62.8225 -30.248,0 -53.5156,22.1042 -60.4959,51.1887 -44.2084,-31.4113 -96.5606,-51.1887 -154.7296,-51.1887 -79.11,0 -147.7494,33.738 -197.7748,87.2535 -50.0254,52.3522 -79.11,124.4818 -79.11,204.7551 0,79.1099 29.0846,151.2396 79.11,204.7551 50.0254,52.3521 118.6648,84.9268 197.7748,84.9268 0,0 0,0 0,0 58.169,0 110.5212,-18.6141 154.7296,-50.0254 6.9803,27.9212 30.2479,50.0254 60.4959,50.0254 33.738,0 61.6592,-27.9211 61.6592,-61.6592 v -228.0227 c 0,0 0,0 0,0 0,0 0,0 0,0 z m -168.6903,349.0144 c -27.9212,29.0845 -67.4761,45.3718 -108.1944,45.3718 -41.8818,0 -81.4367,-16.2873 -108.1945,-45.3718 -27.9211,-30.2479 -44.2085,-72.1297 -44.2085,-119.8283 0,-48.862 16.2874,-90.7437 44.2085,-119.8282 26.7578,-31.4113 66.3127,-47.6987 108.1945,-47.6987 40.7183,0 80.2732,16.2874 108.1944,47.6987 27.9211,29.0845 45.3719,70.9662 45.3719,119.8282 0,47.6986 -17.4508,89.5804 -45.3719,119.8283 z"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-family:Quicksand;-inkscape-font-specification:'Quicksand Bold';stroke-width:29.08452606;fill-opacity:1;fill:#ffffff"
id="path846" /></g>
</g></g></svg>

After

Width:  |  Height:  |  Size: 18 KiB

View File

@ -0,0 +1,143 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
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:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
version="1.1"
id="svg2"
xml:space="preserve"
width="872.58948"
height="256.75024"
viewBox="0 0 872.58947 256.75024"
sodipodi:docname="logo-full.svg"
inkscape:version="0.92.4 (5da689c313, 2019-01-14)"><metadata
id="metadata8"><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 /></cc:Work></rdf:RDF></metadata><defs
id="defs6" /><sodipodi:namedview
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1"
objecttolerance="10"
gridtolerance="10"
guidetolerance="10"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:window-width="1916"
inkscape:window-height="1018"
id="namedview4"
showgrid="false"
fit-margin-top="0"
fit-margin-left="0"
fit-margin-right="0"
fit-margin-bottom="0"
inkscape:zoom="11.311312"
inkscape:cx="117.02808"
inkscape:cy="19.265176"
inkscape:window-x="1920"
inkscape:window-y="60"
inkscape:window-maximized="0"
inkscape:current-layer="g12" /><g
id="g10"
inkscape:groupmode="layer"
inkscape:label="ink_ext_XXXXXX"
transform="matrix(1.3333333,0,0,-1.3333333,-88.274885,376.11138)"><g
id="g12"
transform="matrix(0.1,0,0,0.1,9.5479652,-4.2435374)"><path
d="m 2268.2083,2512.3328 c -15.8841,19.573 -32.5119,38.571 -49.9493,56.8765 -180.6013,189.6241 -426.2447,294.0615 -691.6737,294.0615 -256.4319,0 -497.5071,-99.8619 -678.82647,-281.1776 -22.36452,-22.3682 -43.48352,-45.6558 -63.33501,-69.7604 C 643.33683,2341.0509 566.582,2128.0622 566.582,1903.2667 c 0,-256.4209 99.86117,-497.4961 281.17683,-678.8228 C 1029.0782,1043.1282 1270.1534,943.27 1526.5853,943.27 c 256.4282,0 497.5035,99.8582 678.8265,281.1739 181.3193,181.3267 281.1702,422.4019 281.1702,678.8228 0,219.209 -78.8601,437.2237 -218.3737,609.0661"
style="fill:#196aff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.36633128"
id="path44"
inkscape:connector-curvature="0" /><path
d="m 1823.7313,1647.4494 c 35.688,104.6762 94.6307,136.7237 101.9573,298.2537 2.5753,56.7652 -14.6606,237.0685 -14.6606,237.0685 0,0 28.0134,72.2937 -25.8227,152.8266 -83.4759,124.8675 -255.3988,133.3573 -345.6885,133.3573 -90.2897,0 -260.2051,-8.4898 -343.6847,-133.3573 -53.8397,-80.5329 -25.8263,-152.8266 -25.8263,-152.8266 0,0 -9.5356,-92.7316 -16.7523,-174.5206 -1.6998,-19.193 0.1575,-95.1147 2.4544,-113.457 4.1285,-32.8688 14.4811,-65.163 25.808,-96.599 14.3419,-39.8043 36.82,-80.1941 53.9826,-121.0333 51.7992,-123.2948 8.4513,-276.0035 11.0998,-408.9593 2.2383,-94.3744 -20.0126,-190.1078 -28.7313,-282.39752 98.1291,-33.39585 202.0866,-50.81328 308.7183,-50.81328 119.8343,0 236.3057,21.93708 344.9009,63.89967 -20.3937,115.54913 -44.0916,225.14603 -47.7476,266.96123 -10.6456,126.4145 -41.3039,260.4899 -0.01,381.5969"
style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.36732382"
id="path46"
inkscape:connector-curvature="0" /><path
d="m 1162.8843,2383.8604 c 1.1503,-18.7305 2.9966,-37.93 8.2718,-56.1586 1.6558,-5.6818 4.1029,-19.683 11.4149,-21.7637 9.0923,-2.59 25.9106,8.2571 32.2884,12.9571 12.3563,9.096 23.9251,18.4594 36.2851,27.6507 7.8835,5.8613 16.4922,10.4697 24.2108,16.4959 8.4,6.5463 14.7192,14.4737 21.7088,22.1777 8.4843,9.3597 14.8474,19.0492 21.3718,29.497 5.103,8.1545 37.0691,13.4626 42.1867,21.031 5.5866,8.2755 0.9158,18.5108 0.9158,28.6984 0,74.1638 4.4546,147.5656 6.1874,220.2897 1.7877,49.887 21.3791,109.1264 -53.4404,85.7435 -160.3139,-49.887 -158.5262,-271.2573 -151.4011,-386.6187"
style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.36633128"
id="path48"
inkscape:connector-curvature="0" /><path
d="m 1869.1087,2279.7014 c -1.6118,1.7511 -4.1945,3.2384 -6.2606,4.7696 -8.9788,6.649 -17.4447,13.6056 -25.156,21.4817 -9.411,9.6125 -19.192,18.9577 -28.1635,28.9292 -7.8908,8.7626 -17.3128,16.6021 -25.0058,25.5736 -5.1286,5.9602 -10.0814,12.305 -14.6093,18.562 -2.3115,3.1761 -3.5204,6.9969 -5.3374,10.3965 -2.7072,5.0114 -39.8825,10.118 -36.1899,15.0049 6.3009,8.3304 20.3277,15.3969 23.7017,24.9398 17.2432,48.6671 24.7713,244.5261 26.852,294.512 5.3521,127.8313 117.5704,-6.2386 137.1691,-57.6825 57.0085,-149.6573 23.1448,-258.78 -46.3152,-386.615"
style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.36633128"
id="path50"
inkscape:connector-curvature="0" /><path
d="m 1716.4731,1787.8614 c -0.081,73.8047 -9.2535,103.6644 -50.4071,139.7517 -25.7421,22.566 -55.8363,31.1748 -103.7414,29.9915 -47.9015,1.1833 -82.4245,-13.3784 -107.3167,-39.223 -37.549,-38.9923 -47.4363,-62.0529 -47.5425,-135.8577 -0.059,-39.8934 42.956,-128.1646 55.7556,-148.5363 21.2436,-35.9298 60.5619,-48.8503 99.1036,-46.1541 38.5454,-2.6962 77.8674,10.2243 99.0963,46.1541 12.8106,20.3717 55.1072,106.9541 55.0522,153.8738"
style="fill:#f1e6d3;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.36633128"
id="path52"
inkscape:connector-curvature="0" /><path
d="m 1226.604,2316.0818 c -9.6162,86.0878 -38.582,239.9763 61.4887,331.2404 11.0375,10.0741 14.0012,-24.1999 15.8475,-38.0655 2.5386,-19.0383 -0.051,-73.4165 0.337,-92.5829 0.7143,-36.0873 8.2754,-54.9644 4.7513,-71.4603 -9.6272,-45.0917 -17.3531,-42.183 -26.559,-69.6029 -18.258,-54.3782 -53.2353,-83.0656 -55.8655,-59.5288"
style="fill:#f1d7d4;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.36633128"
id="path54"
inkscape:connector-curvature="0" /><path
d="m 1851.7446,2333.0905 c 10.2426,-18.3312 36.9958,80.2559 45.3811,123.0727 7.8945,40.3074 17.9246,93.8687 4.059,133.9124 -7.4365,21.4816 -53.0778,84.5675 -58.4628,62.8917 -2.0991,-8.4183 -3.1834,-71.0975 -8.345,-101.0891 -6.3889,-37.1093 -17.91,-73.8047 -17.9796,-111.5442 -0.1502,-84.5676 25.3355,-88.055 35.3473,-107.2435"
style="fill:#f1d7d4;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.36633128"
id="path56"
inkscape:connector-curvature="0" /><path
d="m 1522.0135,1319.745 c -2.1687,-6.583 -18.595,-11.4039 -24.764,-13.3931 -14.9097,-4.8172 -28.1452,6.9383 -36.4756,16.8439 -11.5834,13.7301 -11.2757,35.6294 -16.1259,51.6417 -2.9343,9.6822 -19.5328,10.9973 -24.5185,2.0405 -16.6278,-29.9 -81.1607,26.3649 -66.1631,45.0954 9.8872,12.3527 -13.7814,23.262 -23.5405,11.0778 -28.9475,-36.1605 48.9199,-103.4959 93.5793,-85.2452 1.9892,-9.0338 4.0736,-18.0565 7.9091,-26.636 7.5245,-16.8512 23.9801,-27.7386 41.0108,-36.8896 23.1961,-12.4369 68.2585,9.4074 75.1419,30.2553 4.7916,14.5031 -21.2802,19.6354 -26.0535,5.2093"
style="fill:#faeee0;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.36633128"
id="path58"
inkscape:connector-curvature="0" /><path
d="m 1727.6279,1538.2286 c 2.3958,-10.0448 2.7731,-44.0733 -15.9354,-25.4563 -7.5904,7.5537 -22.6649,3.0954 -23.2803,-7.008 -1.4471,-23.3866 -24.8996,-23.9031 -45.1357,-16.8329 -16.0563,5.6012 -24.5332,-16.5875 -8.6051,-22.1447 29.7131,-10.3672 61.9612,-4.6231 74.7755,17.8367 10.0814,-4.744 21.4853,-6.0372 30.629,2.5679 15.9683,15.0416 18.3751,36.2265 13.7301,55.708 -3.5278,14.7632 -29.6985,10.0961 -26.1781,-4.6707"
style="fill:#faeee0;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.36633128"
id="path60"
inkscape:connector-curvature="0" /><path
d="m 1775.0422,1049.246 c -7.0043,-14.3163 -19.8552,-13.4224 -33.6366,-7.4109 -10.107,4.3996 -22.6063,-2.8757 -19.5584,-13.1073 6.1361,-20.5219 -19.7855,-26.5151 -37.3145,-19.1958 -15.4262,6.4438 -28.8339,-13.79604 -13.2429,-20.31307 31.5815,-13.1806 71.7277,-1.64849 77.5524,26.13407 20.313,-3.22 39.7103,2.4837 49.3961,22.3096 6.7038,13.6825 -16.4043,25.471 -23.1961,11.5834"
style="fill:#faeee0;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.36633128"
id="path62"
inkscape:connector-curvature="0" /><path
d="m 1569.7648,2153.2622 c -3.253,-20.1812 -41.0951,3.3189 -50.4915,9.6894 -8.2717,5.5976 -18.9722,2.198 -19.9833,-7.2387 -1.3518,-12.7153 -18.4814,-9.0227 -26.3099,-7.4255 -14.8071,3.0112 -27.365,12.2391 -27.7167,26.1048 -0.3443,13.4736 8.2059,27.6213 12.6641,40.2708 2.8537,8.0776 -8.7223,16.9648 -17.1846,11.5614 -15.2394,-9.7298 -88.7144,-18.4814 -59.4519,13.5469 9.3231,10.2023 -7.1325,24.797 -16.5545,14.4811 -13.5176,-14.7998 -22.6612,-48.7001 6.583,-55.8765 15.4372,-3.7842 37.7761,-3.5937 56.8143,0.7473 -7.9494,-25.4784 -9.6162,-48.799 23.1558,-65.1703 22.1447,-11.0669 52.5575,-10.99 65.4451,6.1067 27.1158,-14.5837 69.7091,-28.7314 75.5998,7.7626 2.088,12.9058 -20.4633,18.4777 -22.5697,5.44"
style="fill:#faeee0;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.36633128"
id="path64"
inkscape:connector-curvature="0" /><path
d="m 1443.0252,1685.5707 c 39.3659,-3.3299 78.7465,-12.2721 118.4788,-10.8361 25.3978,0.9232 51.693,4.4803 76.7501,8.1949 18.203,2.6962 40.5199,5.8796 52.6967,19.3752 1.143,-45.0184 -92.5133,-59.1075 -128.8387,-60.0234 -42.1427,-1.066 -89.5094,17.2213 -119.0869,43.2894"
style="fill:#494949;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.36633128"
id="path66"
inkscape:connector-curvature="0" /><path
d="m 1549.4481,1779.4907 c -4.5023,-28.8962 -5.4327,-58.199 -2.7219,-87.2674 0.718,-7.5977 -1.3078,-25.7091 8.7956,-29.5227 8.1912,-3.0955 18.3166,2.7219 19.6537,10.1108 2.2603,12.4553 -3.0405,28.1635 -3.4911,40.9192 -0.5312,14.939 0,29.9 1.5789,44.7693 0.9451,8.814 5.8906,20.7051 -4.1982,26.9144 -7.4036,4.5535 -18.258,2.872 -19.617,-5.9236"
style="fill:#494949;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.36633128"
id="path68"
inkscape:connector-curvature="0" /><path
d="m 1625.9783,1849.7384 c -23.6613,-1.0221 -45.6302,-14.2613 -63.3973,-27.0243 -16.0819,10.6749 -40.432,20.4853 -60.6937,14.7742 -12.078,-3.3922 -1.11,-7.0959 3.927,-10.3159 9.3085,-6.191 16.8952,-14.1477 23.742,-22.3682 10.3891,-12.5981 19.6243,-25.8263 30.7095,-37.9776 7.6747,5.5243 15.0013,11.1035 21.6722,17.5583 3.0955,2.9929 28.4346,36.9262 32.325,42.6666 2.4838,3.656 4.9895,7.4329 7.8359,10.8727 2.8903,3.4802 11.0705,9.0154 3.8794,11.8142"
style="fill:#494949;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.36633128"
id="path70"
inkscape:connector-curvature="0" /><path
d="m 1326.5208,2010.0303 c 11.6823,30.3029 24.2402,68.3867 56.2648,62.3276 24.2438,-5.1946 56.6971,-86.1171 35.9262,-78.1238 -11.2537,4.3264 -20.2069,41.106 -41.3332,45.8757 -13.4224,3.0332 -32.032,-43.5019 -49.9932,-48.2605 -8.7077,-2.3006 -4.3264,10.3891 -0.8646,18.181"
style="fill:#2c3844;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.36633128"
id="path72"
inkscape:connector-curvature="0" /><path
d="m 1670.5938,2010.0303 c 11.686,30.3029 24.2438,68.3867 56.2685,62.3276 24.2401,-5.1946 56.6934,-86.1171 35.9224,-78.1238 -11.2537,4.3264 -20.2031,41.106 -41.3331,45.8757 -13.4224,3.0332 -32.032,-43.5019 -49.9896,-48.2605 -8.7077,-2.3006 -4.33,10.3891 -0.8682,18.181"
style="fill:#2c3844;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.36633128"
id="path74"
inkscape:connector-curvature="0" /><g
aria-label="Vikunja"
transform="scale(1,-1)"
style="font-style:normal;font-weight:normal;font-size:1163.38110352px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:29.08452606"
id="text831"><path
d="m 3302.2541,-1549.4053 c 3.4901,2.3268 8.1436,5.8169 10.4704,6.9803 1.1634,0 1.1634,0 1.1634,0 0,0 1.1633,0 1.1633,1.1634 2.3268,0 6.9803,1.1634 9.3071,2.3267 1.1634,0 2.3268,0 2.3268,0 3.4901,1.1634 8.1436,1.1634 11.6338,1.1634 3.4901,0 6.9803,0 11.6338,-1.1634 1.1634,0 2.3267,0 2.3267,0 3.4902,-1.1633 5.8169,-2.3267 9.3071,-2.3267 1.1634,-1.1634 1.1634,-1.1634 2.3268,-1.1634 0,0 0,0 0,0 3.4901,-1.1634 6.9802,-4.6535 9.307,-5.8169 2.3268,-1.1634 2.3268,-1.1634 2.3268,-1.1634 2.3267,-2.3268 4.6535,-3.4901 6.9802,-5.8169 1.1634,-1.1634 1.1634,-1.1634 2.3268,-3.4901 1.1634,-2.3268 4.6535,-4.6536 5.8169,-6.9803 1.1634,0 1.1634,0 1.1634,-1.1634 2.3268,-2.3268 3.4901,-6.9803 4.6535,-9.3071 l 287.3552,-679.4145 c 12.7971,-31.4113 -2.3268,-69.8029 -34.9015,-82.6001 -31.4113,-13.9606 -69.8028,1.1634 -83.7634,33.7381 l -226.8593,538.6454 -226.8593,-538.6454 c -13.9606,-32.5747 -51.1888,-47.6987 -82.6001,-33.7381 -33.7381,12.7972 -48.862,51.1888 -34.9014,82.6001 l 285.0283,679.4145 c 2.3268,2.3268 4.6536,6.9803 5.8169,9.3071 0,1.1634 1.1634,1.1634 1.1634,1.1634 1.1634,2.3267 3.4902,4.6535 5.8169,6.9803 0,2.3267 1.1634,2.3267 1.1634,3.4901 3.4901,2.3268 5.8169,3.4901 8.1437,5.8169 1.1634,0 1.1634,0 1.1634,0 z"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-family:Quicksand;-inkscape-font-specification:'Quicksand Bold';stroke-width:29.08452606;fill-opacity:1;fill:#252626"
id="path834" /><path
d="m 3936.8421,-2118.2987 c -34.9014,0 -62.8226,26.7578 -62.8226,63.986 v 453.7186 c 0,34.9015 27.9212,62.8226 62.8226,62.8226 36.0648,0 62.8226,-27.9211 62.8226,-62.8226 v -453.7186 c 0,-37.2282 -26.7578,-63.986 -62.8226,-63.986 z m 62.8226,-171.017 c 0,-34.9014 -26.7578,-62.8226 -62.8226,-62.8226 -34.9014,0 -62.8226,27.9212 -62.8226,62.8226 v 24.431 c 0,34.9015 27.9212,63.986 62.8226,63.986 36.0648,0 62.8226,-29.0845 62.8226,-63.986 z"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-family:Quicksand;-inkscape-font-specification:'Quicksand Bold';stroke-width:29.08452606;fill-opacity:1;fill:#252626"
id="path836" /><path
d="m 4264.043,-1537.7715 c 36.0648,0 65.1493,-29.0845 65.1493,-63.9859 v -102.3776 l 63.986,-63.9859 171.017,207.0818 c 11.6338,15.1239 30.2479,23.2676 48.862,23.2676 13.9606,0 29.0845,-4.6535 40.7183,-15.1239 27.9212,-22.1043 31.4113,-62.8226 9.3071,-90.7438 l -179.1607,-215.2255 174.5071,-174.5071 c 25.5944,-24.431 25.5944,-65.1494 0,-90.7438 -24.431,-24.431 -66.3127,-24.431 -90.7437,0 l -238.4931,238.4932 v -402.5299 c 0,-34.9014 -29.0845,-63.986 -65.1493,-63.986 -36.0649,0 -63.986,29.0846 -63.986,63.986 v 686.3949 c 0,34.9014 27.9211,63.9859 63.986,63.9859 z"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-family:Quicksand;-inkscape-font-specification:'Quicksand Bold';stroke-width:29.08452606;fill-opacity:1;fill:#252626"
id="path838" /><path
d="m 5316.6484,-1779.7548 v -278.048 c 0,-32.5747 -30.2479,-61.6592 -62.8226,-61.6592 -34.9014,0 -60.4958,29.0845 -60.4958,61.6592 v 278.048 c -1.1634,66.3128 -54.6789,118.6649 -122.155,118.6649 -66.3127,0 -118.6649,-52.3521 -118.6649,-118.6649 v -278.048 c 0,-32.5747 -26.7577,-61.6592 -61.6592,-61.6592 -33.738,0 -61.6592,29.0845 -61.6592,61.6592 v 278.048 c 0,132.6255 109.3579,241.9833 241.9833,241.9833 133.7888,0 245.4734,-109.3578 245.4734,-241.9833 z"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-family:Quicksand;-inkscape-font-specification:'Quicksand Bold';stroke-width:29.08452606;fill-opacity:1;fill:#252626"
id="path840" /><path
d="m 5769.022,-2119.462 c -45.3719,0 -88.417,13.9605 -123.3184,36.0648 -10.4705,-22.1043 -32.5747,-36.0648 -57.0057,-36.0648 -34.9015,0 -61.6592,27.9211 -61.6592,61.6592 v 180.324 c 0,0 0,0 0,0 v 278.0481 c 0,33.7381 26.7577,61.6592 61.6592,61.6592 30.2479,0 55.8423,-22.1042 61.6592,-50.0254 2.3267,-4.6535 2.3267,-8.1436 2.3267,-11.6338 v -278.0481 c 0,-65.1493 51.1888,-117.5015 116.3382,-117.5015 66.3127,0 120.9916,52.3522 120.9916,117.5015 v 278.0481 c 0,33.7381 29.0845,61.6592 61.6592,61.6592 33.738,0 60.4958,-27.9211 60.4958,-61.6592 v -278.0481 c 0,-131.462 -108.1944,-241.9832 -243.1466,-241.9832 z"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-family:Quicksand;-inkscape-font-specification:'Quicksand Bold';stroke-width:29.08452606;fill-opacity:1;fill:#252626"
id="path842" /><path
d="m 6255.6424,-2199.7353 c 34.9014,0 62.8226,-30.2479 62.8226,-63.986 v -23.2676 c 0,-37.2282 -27.9212,-63.986 -62.8226,-63.986 -34.9015,0 -63.986,26.7578 -63.986,63.986 v 23.2676 c 0,33.7381 29.0845,63.986 63.986,63.986 z m -65.1494,867.8823 c 69.8029,0 125.6452,-57.0057 125.6452,-125.6452 v -597.9779 c 0,-36.0648 -26.7578,-63.9859 -62.8226,-63.9859 -33.738,0 -62.8226,27.9211 -62.8226,63.9859 v 597.9779 c 0,0 0,0 0,0 -37.2282,0 -63.9859,27.9212 -63.9859,61.6592 0,37.2282 26.7577,63.986 63.9859,63.986 z"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-family:Quicksand;-inkscape-font-specification:'Quicksand Bold';stroke-width:29.08452606;fill-opacity:1;fill:#252626"
id="path844" /><path
d="m 6998.4795,-2056.6395 c 0,-34.9014 -27.9212,-62.8225 -61.6592,-62.8225 -30.248,0 -53.5156,22.1042 -60.4959,51.1887 -44.2084,-31.4113 -96.5606,-51.1887 -154.7296,-51.1887 -79.11,0 -147.7494,33.738 -197.7748,87.2535 -50.0254,52.3522 -79.11,124.4818 -79.11,204.7551 0,79.1099 29.0846,151.2396 79.11,204.7551 50.0254,52.3521 118.6648,84.9268 197.7748,84.9268 0,0 0,0 0,0 58.169,0 110.5212,-18.6141 154.7296,-50.0254 6.9803,27.9212 30.2479,50.0254 60.4959,50.0254 33.738,0 61.6592,-27.9211 61.6592,-61.6592 v -228.0227 c 0,0 0,0 0,0 0,0 0,0 0,0 z m -168.6903,349.0144 c -27.9212,29.0845 -67.4761,45.3718 -108.1944,45.3718 -41.8818,0 -81.4367,-16.2873 -108.1945,-45.3718 -27.9211,-30.2479 -44.2085,-72.1297 -44.2085,-119.8283 0,-48.862 16.2874,-90.7437 44.2085,-119.8282 26.7578,-31.4113 66.3127,-47.6987 108.1945,-47.6987 40.7183,0 80.2732,16.2874 108.1944,47.6987 27.9211,29.0845 45.3719,70.9662 45.3719,119.8282 0,47.6986 -17.4508,89.5804 -45.3719,119.8283 z"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-family:Quicksand;-inkscape-font-specification:'Quicksand Bold';stroke-width:29.08452606;fill-opacity:1;fill:#252626"
id="path846" /></g>
</g></g></svg>

After

Width:  |  Height:  |  Size: 18 KiB

View File

@ -0,0 +1,116 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
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:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
version="1.1"
id="svg2"
xml:space="preserve"
width="256"
height="256.00009"
viewBox="0 0 256 256.00009"
sodipodi:docname="logo.svg"
inkscape:version="0.92.4 (5da689c313, 2019-01-14)"><metadata
id="metadata8"><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 /></cc:Work></rdf:RDF></metadata><defs
id="defs6" /><sodipodi:namedview
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1"
objecttolerance="10"
gridtolerance="10"
guidetolerance="10"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:window-width="1916"
inkscape:window-height="1018"
id="namedview4"
showgrid="false"
fit-margin-top="0"
fit-margin-left="0"
fit-margin-right="0"
fit-margin-bottom="0"
inkscape:zoom="7.9983054"
inkscape:cx="113.27701"
inkscape:cy="25.385925"
inkscape:window-x="1920"
inkscape:window-y="60"
inkscape:window-maximized="0"
inkscape:current-layer="g12" /><g
id="g10"
inkscape:groupmode="layer"
inkscape:label="ink_ext_XXXXXX"
transform="matrix(1.3333333,0,0,-1.3333333,-88.274885,376.11138)"><g
id="g12"
transform="matrix(0.1,0,0,0.1,9.5479652,-4.2435374)"><path
d="m 2268.2083,2512.3328 c -15.8841,19.573 -32.5119,38.571 -49.9493,56.8765 -180.6013,189.6241 -426.2447,294.0615 -691.6737,294.0615 -256.4319,0 -497.5071,-99.8619 -678.82647,-281.1776 -22.36452,-22.3682 -43.48352,-45.6558 -63.33501,-69.7604 C 643.33683,2341.0509 566.582,2128.0622 566.582,1903.2667 c 0,-256.4209 99.86117,-497.4961 281.17683,-678.8228 C 1029.0782,1043.1282 1270.1534,943.27 1526.5853,943.27 c 256.4282,0 497.5035,99.8582 678.8265,281.1739 181.3193,181.3267 281.1702,422.4019 281.1702,678.8228 0,219.209 -78.8601,437.2237 -218.3737,609.0661"
style="fill:#196aff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.36633128"
id="path44"
inkscape:connector-curvature="0" /><path
d="m 1823.7313,1650.8785 c 35.688,104.2393 94.6307,136.153 101.9573,297.0088 2.5753,56.5283 -14.6606,236.0789 -14.6606,236.0789 0,0 28.0134,71.9919 -25.8227,152.1887 -83.4759,124.3463 -255.3988,132.8006 -345.6885,132.8006 -90.2897,0 -260.2051,-8.4543 -343.6847,-132.8006 -53.8397,-80.1968 -25.8263,-152.1887 -25.8263,-152.1887 0,0 -9.5356,-92.3445 -16.7523,-173.7921 -1.6998,-19.113 0.1575,-94.7177 2.4544,-112.9835 4.1285,-32.7316 14.4811,-64.891 25.808,-96.1958 14.3419,-39.638 36.82,-79.8593 53.9826,-120.5281 51.7992,-122.78 8.4513,-274.8514 11.0998,-407.2521 2.2383,-93.9805 -20.0126,-189.3143 -28.7313,-281.21881 98.1291,-33.25646 202.0866,-50.60118 308.7183,-50.60118 119.8343,0 236.3057,21.84551 344.9009,63.63289 -20.3937,115.0668 -44.0916,224.2063 -47.7476,265.847 -10.6456,125.8867 -41.3039,259.4025 -0.01,380.004"
style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.36655635"
id="path46"
inkscape:connector-curvature="0" /><path
d="m 1162.8843,2383.8604 c 1.1503,-18.7305 2.9966,-37.93 8.2718,-56.1586 1.6558,-5.6818 4.1029,-19.683 11.4149,-21.7637 9.0923,-2.59 25.9106,8.2571 32.2884,12.9571 12.3563,9.096 23.9251,18.4594 36.2851,27.6507 7.8835,5.8613 16.4922,10.4697 24.2108,16.4959 8.4,6.5463 14.7192,14.4737 21.7088,22.1777 8.4843,9.3597 14.8474,19.0492 21.3718,29.497 5.103,8.1545 37.0691,13.4626 42.1867,21.031 5.5866,8.2755 0.9158,18.5108 0.9158,28.6984 0,74.1638 4.4546,147.5656 6.1874,220.2897 1.7877,49.887 21.3791,109.1264 -53.4404,85.7435 -160.3139,-49.887 -158.5262,-271.2573 -151.4011,-386.6187"
style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.36633128"
id="path48"
inkscape:connector-curvature="0" /><path
d="m 1869.1087,2279.7014 c -1.6118,1.7511 -4.1945,3.2384 -6.2606,4.7696 -8.9788,6.649 -17.4447,13.6056 -25.156,21.4817 -9.411,9.6125 -19.192,18.9577 -28.1635,28.9292 -7.8908,8.7626 -17.3128,16.6021 -25.0058,25.5736 -5.1286,5.9602 -10.0814,12.305 -14.6093,18.562 -2.3115,3.1761 -3.5204,6.9969 -5.3374,10.3965 -2.7072,5.0114 -39.8825,10.118 -36.1899,15.0049 6.3009,8.3304 20.3277,15.3969 23.7017,24.9398 17.2432,48.6671 24.7713,244.5261 26.852,294.512 5.3521,127.8313 117.5704,-6.2386 137.1691,-57.6825 57.0085,-149.6573 23.1448,-258.78 -46.3152,-386.615"
style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.36633128"
id="path50"
inkscape:connector-curvature="0" /><path
d="m 1716.4731,1787.8614 c -0.081,73.8047 -9.2535,103.6644 -50.4071,139.7517 -25.7421,22.566 -55.8363,31.1748 -103.7414,29.9915 -47.9015,1.1833 -82.4245,-13.3784 -107.3167,-39.223 -37.549,-38.9923 -47.4363,-62.0529 -47.5425,-135.8577 -0.059,-39.8934 42.956,-128.1646 55.7556,-148.5363 21.2436,-35.9298 60.5619,-48.8503 99.1036,-46.1541 38.5454,-2.6962 77.8674,10.2243 99.0963,46.1541 12.8106,20.3717 55.1072,106.9541 55.0522,153.8738"
style="fill:#f1e6d3;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.36633128"
id="path52"
inkscape:connector-curvature="0" /><path
d="m 1226.604,2316.0818 c -9.6162,86.0878 -38.582,239.9763 61.4887,331.2404 11.0375,10.0741 14.0012,-24.1999 15.8475,-38.0655 2.5386,-19.0383 -0.051,-73.4165 0.337,-92.5829 0.7143,-36.0873 8.2754,-54.9644 4.7513,-71.4603 -9.6272,-45.0917 -17.3531,-42.183 -26.559,-69.6029 -18.258,-54.3782 -53.2353,-83.0656 -55.8655,-59.5288"
style="fill:#f1d7d4;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.36633128"
id="path54"
inkscape:connector-curvature="0" /><path
d="m 1851.7446,2333.0905 c 10.2426,-18.3312 36.9958,80.2559 45.3811,123.0727 7.8945,40.3074 17.9246,93.8687 4.059,133.9124 -7.4365,21.4816 -53.0778,84.5675 -58.4628,62.8917 -2.0991,-8.4183 -3.1834,-71.0975 -8.345,-101.0891 -6.3889,-37.1093 -17.91,-73.8047 -17.9796,-111.5442 -0.1502,-84.5676 25.3355,-88.055 35.3473,-107.2435"
style="fill:#f1d7d4;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.36633128"
id="path56"
inkscape:connector-curvature="0" /><path
d="m 1522.0135,1319.745 c -2.1687,-6.583 -18.595,-11.4039 -24.764,-13.3931 -14.9097,-4.8172 -28.1452,6.9383 -36.4756,16.8439 -11.5834,13.7301 -11.2757,35.6294 -16.1259,51.6417 -2.9343,9.6822 -19.5328,10.9973 -24.5185,2.0405 -16.6278,-29.9 -81.1607,26.3649 -66.1631,45.0954 9.8872,12.3527 -13.7814,23.262 -23.5405,11.0778 -28.9475,-36.1605 48.9199,-103.4959 93.5793,-85.2452 1.9892,-9.0338 4.0736,-18.0565 7.9091,-26.636 7.5245,-16.8512 23.9801,-27.7386 41.0108,-36.8896 23.1961,-12.4369 68.2585,9.4074 75.1419,30.2553 4.7916,14.5031 -21.2802,19.6354 -26.0535,5.2093"
style="fill:#faeee0;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.36633128"
id="path58"
inkscape:connector-curvature="0" /><path
d="m 1727.6279,1538.2286 c 2.3958,-10.0448 2.7731,-44.0733 -15.9354,-25.4563 -7.5904,7.5537 -22.6649,3.0954 -23.2803,-7.008 -1.4471,-23.3866 -24.8996,-23.9031 -45.1357,-16.8329 -16.0563,5.6012 -24.5332,-16.5875 -8.6051,-22.1447 29.7131,-10.3672 61.9612,-4.6231 74.7755,17.8367 10.0814,-4.744 21.4853,-6.0372 30.629,2.5679 15.9683,15.0416 18.3751,36.2265 13.7301,55.708 -3.5278,14.7632 -29.6985,10.0961 -26.1781,-4.6707"
style="fill:#faeee0;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.36633128"
id="path60"
inkscape:connector-curvature="0" /><path
d="m 1775.0422,1049.246 c -7.0043,-14.3163 -19.8552,-13.4224 -33.6366,-7.4109 -10.107,4.3996 -22.6063,-2.8757 -19.5584,-13.1073 6.1361,-20.5219 -19.7855,-26.5151 -37.3145,-19.1958 -15.4262,6.4438 -28.8339,-13.79604 -13.2429,-20.31307 31.5815,-13.1806 71.7277,-1.64849 77.5524,26.13407 20.313,-3.22 39.7103,2.4837 49.3961,22.3096 6.7038,13.6825 -16.4043,25.471 -23.1961,11.5834"
style="fill:#faeee0;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.36633128"
id="path62"
inkscape:connector-curvature="0" /><path
d="m 1569.7648,2153.2622 c -3.253,-20.1812 -41.0951,3.3189 -50.4915,9.6894 -8.2717,5.5976 -18.9722,2.198 -19.9833,-7.2387 -1.3518,-12.7153 -18.4814,-9.0227 -26.3099,-7.4255 -14.8071,3.0112 -27.365,12.2391 -27.7167,26.1048 -0.3443,13.4736 8.2059,27.6213 12.6641,40.2708 2.8537,8.0776 -8.7223,16.9648 -17.1846,11.5614 -15.2394,-9.7298 -88.7144,-18.4814 -59.4519,13.5469 9.3231,10.2023 -7.1325,24.797 -16.5545,14.4811 -13.5176,-14.7998 -22.6612,-48.7001 6.583,-55.8765 15.4372,-3.7842 37.7761,-3.5937 56.8143,0.7473 -7.9494,-25.4784 -9.6162,-48.799 23.1558,-65.1703 22.1447,-11.0669 52.5575,-10.99 65.4451,6.1067 27.1158,-14.5837 69.7091,-28.7314 75.5998,7.7626 2.088,12.9058 -20.4633,18.4777 -22.5697,5.44"
style="fill:#faeee0;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.36633128"
id="path64"
inkscape:connector-curvature="0" /><path
d="m 1443.0252,1685.5707 c 39.3659,-3.3299 78.7465,-12.2721 118.4788,-10.8361 25.3978,0.9232 51.693,4.4803 76.7501,8.1949 18.203,2.6962 40.5199,5.8796 52.6967,19.3752 1.143,-45.0184 -92.5133,-59.1075 -128.8387,-60.0234 -42.1427,-1.066 -89.5094,17.2213 -119.0869,43.2894"
style="fill:#494949;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.36633128"
id="path66"
inkscape:connector-curvature="0" /><path
d="m 1549.4481,1779.4907 c -4.5023,-28.8962 -5.4327,-58.199 -2.7219,-87.2674 0.718,-7.5977 -1.3078,-25.7091 8.7956,-29.5227 8.1912,-3.0955 18.3166,2.7219 19.6537,10.1108 2.2603,12.4553 -3.0405,28.1635 -3.4911,40.9192 -0.5312,14.939 0,29.9 1.5789,44.7693 0.9451,8.814 5.8906,20.7051 -4.1982,26.9144 -7.4036,4.5535 -18.258,2.872 -19.617,-5.9236"
style="fill:#494949;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.36633128"
id="path68"
inkscape:connector-curvature="0" /><path
d="m 1625.9783,1849.7384 c -23.6613,-1.0221 -45.6302,-14.2613 -63.3973,-27.0243 -16.0819,10.6749 -40.432,20.4853 -60.6937,14.7742 -12.078,-3.3922 -1.11,-7.0959 3.927,-10.3159 9.3085,-6.191 16.8952,-14.1477 23.742,-22.3682 10.3891,-12.5981 19.6243,-25.8263 30.7095,-37.9776 7.6747,5.5243 15.0013,11.1035 21.6722,17.5583 3.0955,2.9929 28.4346,36.9262 32.325,42.6666 2.4838,3.656 4.9895,7.4329 7.8359,10.8727 2.8903,3.4802 11.0705,9.0154 3.8794,11.8142"
style="fill:#494949;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.36633128"
id="path70"
inkscape:connector-curvature="0" /><path
d="m 1326.5208,2010.0303 c 11.6823,30.3029 24.2402,68.3867 56.2648,62.3276 24.2438,-5.1946 56.6971,-86.1171 35.9262,-78.1238 -11.2537,4.3264 -20.2069,41.106 -41.3332,45.8757 -13.4224,3.0332 -32.032,-43.5019 -49.9932,-48.2605 -8.7077,-2.3006 -4.3264,10.3891 -0.8646,18.181"
style="fill:#2c3844;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.36633128"
id="path72"
inkscape:connector-curvature="0" /><path
d="m 1670.5938,2010.0303 c 11.686,30.3029 24.2438,68.3867 56.2685,62.3276 24.2401,-5.1946 56.6934,-86.1171 35.9224,-78.1238 -11.2537,4.3264 -20.2031,41.106 -41.3331,45.8757 -13.4224,3.0332 -32.032,-43.5019 -49.9896,-48.2605 -8.7077,-2.3006 -4.33,10.3891 -0.8682,18.181"
style="fill:#2c3844;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.36633128"
id="path74"
inkscape:connector-curvature="0" /></g></g></svg>

After

Width:  |  Height:  |  Size: 12 KiB

View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 1007.922 821.827"><defs><style>.a{fill:#fff;}.b{fill:url(#a);}.c{mask:url(#b);}.d{fill:url(#c);}.e{mask:url(#d);}.f{fill:url(#e);}.g{fill:url(#f);}.h{mask:url(#g);}.i{fill:url(#h);}.j{fill:#195abd;}.k{fill:url(#i);}</style><linearGradient id="a" x1="700.766" y1="597.024" x2="749.765" y2="597.024" gradientTransform="translate(86.603 -142.296) scale(0.867 1.307)" gradientUnits="userSpaceOnUse"><stop offset="0" stop-opacity="0.13"/><stop offset="0.994" stop-opacity="0"/></linearGradient><mask id="b" x="317.137" y="651.827" width="170" height="205.208" maskUnits="userSpaceOnUse"><g transform="translate(-8.064 -116.521)"><rect class="a" x="367.701" y="870.953" width="85" height="85" transform="translate(766.054 -22.512) rotate(45)"/></g></mask><radialGradient id="c" cx="410.201" cy="853.349" r="85" gradientTransform="translate(715.49 -156.637) rotate(45)" gradientUnits="userSpaceOnUse"><stop offset="0.5" stop-opacity="0.13"/><stop offset="0.994" stop-opacity="0"/></radialGradient><mask id="d" x="837.922" y="95.835" width="205.208" height="205.208" maskUnits="userSpaceOnUse"><g transform="translate(-8.064 -116.521)"><rect class="a" x="876.038" y="260.012" width="170" height="85" transform="translate(1426.685 1195.977) rotate(-135)"/></g></mask><radialGradient id="e" cx="1051.126" cy="1265.852" r="85" gradientTransform="translate(771.087 1854.394) rotate(-135)" xlink:href="#c"/><linearGradient id="f" x1="1880.8" y1="34.286" x2="1929.799" y2="34.286" gradientTransform="matrix(0.867, 0, 0, -0.796, -1446.031, 767.147)" xlink:href="#a"/><mask id="g" x="-35.208" y="299.482" width="205.208" height="205.208" maskUnits="userSpaceOnUse"><g transform="translate(-8.064 -116.521)"><rect class="a" x="-21.988" y="463.659" width="170" height="85" transform="translate(-339.453 192.807) rotate(-45)"/></g></mask><radialGradient id="h" cx="27.608" cy="2001.37" r="85" gradientTransform="matrix(0.707, -0.707, -0.707, -0.707, 1480.66, 1854.394)" xlink:href="#c"/><linearGradient id="i" x1="308.378" y1="811.629" x2="919.318" y2="200.689" gradientTransform="translate(-178.117 582.307) rotate(-45)" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#2987e6"/><stop offset="0.994" stop-color="#58c1f5"/></linearGradient></defs><title>Todo</title><rect class="b" x="694.422" y="269.785" width="42.5" height="736.5" transform="translate(652.71 -435.701) rotate(45)"/><g class="c"><circle class="d" cx="402.137" cy="736.827" r="85"/></g><g class="e"><circle class="f" cx="922.922" cy="216.043" r="85"/></g><rect class="g" x="185.305" y="515.608" width="42.5" height="448.5" transform="translate(867.705 1000.439) rotate(135)"/><g class="h"><circle class="i" cx="85" cy="419.69" r="85"/></g><rect class="j" x="164.378" y="319.982" width="288" height="576" rx="42.5" transform="translate(-347.651 279.609) rotate(-45)"/><rect class="k" x="469.848" y="74.159" width="288" height="864" rx="42.5" transform="translate(529.636 -402.327) rotate(45)"/></svg>

After

Width:  |  Height:  |  Size: 3.0 KiB

View File

@ -0,0 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg width="256px" height="256px" viewBox="0 0 256 256" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" preserveAspectRatio="xMidYMid">
<g>
<path d="M224.001997,0 L31.9980026,0 C14.3579381,0.0394964443 0.0614809418,14.336846 0,32 L0,224 C0,241.6 14.3971038,256 31.9980026,256 L224.001997,256 C241.602896,256 256,241.6 256,224 L256,32 C256,14.4 241.602896,0 224.001997,0" fill="#E44332"></path>
<path d="M54.132778,120.802491 C58.5960224,118.196275 154.476075,62.477451 156.667847,61.1862981 C158.859619,59.9110855 158.97917,55.9898065 156.508446,54.5711324 C154.053661,53.1604284 149.391165,50.4824817 147.661658,49.4543415 C145.192242,48.0957707 142.191169,48.132074 139.755339,49.5499825 C138.527947,50.2672896 56.6035026,97.8486625 53.8697654,99.4107981 C50.5781227,101.291737 46.5372925,101.323617 43.2695601,99.4107981 L0,74.0181257 L0,95.6011002 C10.5205046,101.801822 36.7181549,117.200015 43.062338,120.826401 C46.8481256,122.978322 50.4745117,122.930502 54.1407481,120.802491" fill="#FFFFFF"></path>
<path d="M54.132778,161.609296 C58.5960224,159.00308 154.476075,103.284257 156.667847,101.993104 C158.859619,100.717891 158.97917,96.7966121 156.508446,95.377938 C154.053661,93.9672339 149.391165,91.2892873 147.661658,90.2611471 C145.192242,88.9025763 142.191169,88.9388796 139.755339,90.3567881 C138.527947,91.0740952 56.6035026,138.655468 53.8697654,140.217604 C50.5781227,142.098542 46.5372925,142.130423 43.2695601,140.217604 L0,114.824931 L0,136.407906 C10.5205046,142.608627 36.7181549,158.00682 43.062338,161.633206 C46.8481256,163.785128 50.4745117,163.737307 54.1407481,161.609296" fill="#FFFFFF"></path>
<path d="M54.132778,204.966527 C58.5960224,202.360311 154.476075,146.641487 156.667847,145.350335 C158.859619,144.075122 158.97917,140.153843 156.508446,138.735169 C154.053661,137.324465 149.391165,134.646518 147.661658,133.618378 C145.192242,132.259807 142.191169,132.29611 139.755339,133.714019 C138.527947,134.431326 56.6035026,182.012699 53.8697654,183.574835 C50.5781227,185.455773 46.5372925,185.487654 43.2695601,183.574835 L0,158.182162 L0,179.765137 C10.5205046,185.965858 36.7181549,201.364051 43.062338,204.990437 C46.8481256,207.142359 50.4745117,207.094538 54.1407481,204.966527" fill="#FFFFFF"></path>
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.3 KiB

View File

@ -0,0 +1,16 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg width="256px" height="256px" viewBox="0 0 256 256" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" preserveAspectRatio="xMidYMid">
<defs>
<linearGradient x1="50%" y1="0%" x2="50%" y2="100%" id="linearGradient-1">
<stop stop-color="#0091E6" offset="0%"></stop>
<stop stop-color="#0079BF" offset="100%"></stop>
</linearGradient>
</defs>
<g>
<g>
<rect fill="url(#linearGradient-1)" x="0" y="0" width="256" height="256" rx="25"></rect>
<rect fill="#FFFFFF" x="144.64" y="33.28" width="78.08" height="112" rx="12"></rect>
<rect fill="#FFFFFF" x="33.28" y="33.28" width="78.08" height="176" rx="12"></rect>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 829 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 85 KiB

Some files were not shown because too many files have changed in this diff Show More