@live-change/survey-frontend 0.8.126

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (42) hide show
  1. package/Dockerfile +71 -0
  2. package/LICENSE +21 -0
  3. package/data/.placeholder +0 -0
  4. package/dev.Dockerfile +35 -0
  5. package/docker/app.initd.sh +73 -0
  6. package/docker/build-and-upload.sh +30 -0
  7. package/docker/build-docker-and-upload.sh +39 -0
  8. package/docker/commit-new-version.sh +17 -0
  9. package/docker/k8s-rsync-helper.sh +4 -0
  10. package/docker/onlyDependencies.js +12 -0
  11. package/docker/parse-args-and-config.sh +20 -0
  12. package/docker/restore-backup-with-service.sh +14 -0
  13. package/docker/restore-backup.sh +22 -0
  14. package/docker/start-service.sh +4 -0
  15. package/docker/upload-backup-and-restore.sh +12 -0
  16. package/front/index.html +78 -0
  17. package/front/locales/en.js +29 -0
  18. package/front/locales/en.json +7 -0
  19. package/front/public/favicon.ico +0 -0
  20. package/front/public/images/empty-photo.svg +38 -0
  21. package/front/public/images/empty-user-photo.svg +33 -0
  22. package/front/public/images/logo.svg +34 -0
  23. package/front/public/images/logo128.png +0 -0
  24. package/front/src/App.vue +61 -0
  25. package/front/src/Index.vue +16 -0
  26. package/front/src/analytics/index.js +15 -0
  27. package/front/src/config.js +28 -0
  28. package/front/src/entry-client.js +8 -0
  29. package/front/src/entry-server.js +8 -0
  30. package/front/src/router.js +76 -0
  31. package/front/tsconfig.json +26 -0
  32. package/front/tsconfig.node.json +11 -0
  33. package/front/vite.config.ts +53 -0
  34. package/index.js +2 -0
  35. package/package.json +107 -0
  36. package/server/app.config.js +115 -0
  37. package/server/init.js +10 -0
  38. package/server/page.documentType.js +103 -0
  39. package/server/security.config.js +53 -0
  40. package/server/services.list.js +57 -0
  41. package/server/start.js +11 -0
  42. package/start-dev-docker.sh +4 -0
package/Dockerfile ADDED
@@ -0,0 +1,71 @@
1
+ FROM --platform=amd64 debian:buster
2
+
3
+ # SYSTEM
4
+ RUN echo no cache 3
5
+ RUN apt-get -qq update
6
+ RUN apt-get install -qq -y wget curl apt-utils git openssh-server locales gnupg2 make cmake gcc g++ unzip nano \
7
+ alpine-pico fish rsync
8
+
9
+ ENV LANG en_US.UTF-8
10
+ ENV LANGUAGE en_US.UTF-8
11
+ ENV LC_ALL en_US.UTF-8
12
+ RUN echo "LC_ALL=en_US.UTF-8" >> /etc/environment
13
+ RUN echo "en_US.UTF-8 UTF-8" >> /etc/locale.gen
14
+ RUN echo "LANG=en_US.UTF-8" > /etc/locale.conf
15
+ RUN locale-gen en_US.UTF-8
16
+
17
+ # NODE
18
+ RUN curl -sL https://deb.nodesource.com/setup_20.x | bash -
19
+ RUN apt-get install -y nodejs
20
+
21
+ #NPM, PM2
22
+ RUN npm install cross-env yarn -g
23
+
24
+ # APP
25
+ RUN mkdir -p /app
26
+ WORKDIR /app
27
+ COPY package-deps.json package.json
28
+ RUN --mount=type=secret,id=npmrc,target=/root/.npmrc yarn install
29
+
30
+ COPY /data data
31
+ RUN mkdir -p /app/docker
32
+ COPY docker/restore-backup-with-service.sh /app/docker/restore-backup-with-service.sh
33
+ COPY docker/restore-backup.sh /app/docker/restore-backup.sh
34
+ COPY /front front
35
+ COPY /server server
36
+ COPY package.json package.json
37
+
38
+ ARG VERSION='unknown'
39
+ ARG BASE_HREF='http://localhost:8001/'
40
+ ARG BRAND_DOMAIN='example.com'
41
+ ARG BRAND_NAME='Example App'
42
+ ARG BRAND_SMS_FROM='Example App'
43
+ ARG GOOGLE_CLIENT_ID='unknown'
44
+ ARG LINKEDIN_CLIENT_ID='unknown'
45
+
46
+ ENV VERSION=$VERSION
47
+ ENV BASE_HREF=$BASE_HREF
48
+ ENV BRAND_DOMANIN=$BRAND_DOMANIN
49
+ ENV BRAND_NAME=$BRAND_NAME
50
+ ENV BRAND_SMS_FROM=$BRAND_SMS_FROM
51
+ ENV GOOGLE_CLIENT_ID=$GOOGLE_CLIENT_ID
52
+ ENV LINKEDIN_CLIENT_ID=$LINKEDIN_CLIENT_ID
53
+
54
+ RUN echo "VERSION=$VERSION" >> /etc/environment
55
+ RUN echo "BASE_HREF=$BASE_HREF" >> /etc/environment
56
+ RUN echo "BRAND_DOMAIN=$BRAND_DOMAIN" >> /etc/environment
57
+ RUN echo "BRAND_NAME=$BRAND_NAME" >> /etc/environment
58
+ RUN echo "BRAND_SMS_FROM=$BRAND_SMS_FROM" >> /etc/environment
59
+ RUN echo "GOOGLE_CLIENT_ID=$GOOGLE_CLIENT_ID" >> /etc/environment
60
+ RUN echo "LINKEDIN_CLIENT_ID=$LINKEDIN_CLIENT_ID" >> /etc/environment
61
+
62
+ RUN npm run build
63
+
64
+ # START
65
+ EXPOSE 8001
66
+ EXPOSE 8007
67
+ COPY docker/start-service.sh /start-service.sh
68
+ COPY docker/app.initd.sh /etc/init.d/app
69
+
70
+ #CMD /start-service.sh
71
+ CMD node server/start.js ssrServer --withApi --withServices --updateServices --enableSessions --createDb
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2021-2024 Michał Łaszczewski
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
File without changes
package/dev.Dockerfile ADDED
@@ -0,0 +1,35 @@
1
+ FROM --platform=amd64 debian:buster
2
+
3
+ # SYSTEM
4
+ RUN echo no cache 3
5
+ RUN apt-get -qq update
6
+ RUN apt-get install -qq -y wget curl apt-utils git openssh-server locales gnupg2 make cmake gcc g++ unzip nano \
7
+ alpine-pico fish rsync zip
8
+
9
+ ENV LANG en_US.UTF-8
10
+ ENV LANGUAGE en_US.UTF-8
11
+ ENV LC_ALL en_US.UTF-8
12
+ RUN echo "LC_ALL=en_US.UTF-8" >> /etc/environment
13
+ RUN echo "en_US.UTF-8 UTF-8" >> /etc/locale.gen
14
+ RUN echo "LANG=en_US.UTF-8" > /etc/locale.conf
15
+ RUN locale-gen en_US.UTF-8
16
+
17
+ # NODE
18
+ RUN curl -sL https://deb.nodesource.com/setup_20.x | bash -
19
+ RUN apt-get install -y nodejs
20
+
21
+ # NPM YARN
22
+ RUN npm install cross-env yarn -g
23
+
24
+ # PATH
25
+ ENV PATH="${PATH}:/app/node_modules/.bin"
26
+ RUN echo 'export PATH="/app/node_modules/.bin:$PATH"' >> /root/.bashrc
27
+ RUN echo 'export HMR_PORT=9001' >> /root/.bashrc
28
+
29
+ EXPOSE 8001
30
+ EXPOSE 9001
31
+
32
+ WORKDIR /app
33
+
34
+ # APP
35
+ CMD bash -c "sleep infinity"
@@ -0,0 +1,73 @@
1
+ #!/bin/bash -e
2
+
3
+ # Quick start-stop-daemon example, derived from Debian /etc/init.d/ssh
4
+
5
+ NAME=app
6
+ DIR=/app
7
+ PIDFILE=/var/run/$NAME.pid
8
+ DAEMON=/usr/bin/node
9
+ DAEMON_ARGS="server/start.js server ssrServer --withApi --withServices --updateServices --enableSessions --createDb"
10
+ STOP_SIGNAL=INT
11
+ USER=root
12
+ LOG=/var/log/$NAME.log
13
+
14
+ export NODE_ENV=production
15
+ export PATH="${PATH:+$PATH:}/usr/sbin:/sbin"
16
+
17
+ common_opts="--quiet --chuid $USER --pidfile $PIDFILE"
18
+
19
+ do_start(){
20
+ start-stop-daemon --start $common_opts --chdir $DIR --make-pidfile --background --startas \
21
+ /bin/bash -- -c "exec $DAEMON $DAEMON_ARGS > $LOG 2>&1"
22
+ }
23
+
24
+ do_stop(){
25
+ opt=${@:-}
26
+ start-stop-daemon --stop $common_opts --signal $STOP_SIGNAL --oknodo $opt --remove-pidfile
27
+ }
28
+
29
+ do_status(){
30
+ start-stop-daemon --status $common_opts && exit_status=$? || exit_status=$?
31
+ echo asdf $exit_status
32
+ case "$exit_status" in
33
+ 0)
34
+ echo "Program '$NAME' is running."
35
+ ;;
36
+ 1)
37
+ echo "Program '$NAME' is not running and the pid file exists."
38
+ ;;
39
+ 3)
40
+ echo "Program '$NAME' is not running."
41
+ ;;
42
+ 4)
43
+ echo "Unable to determine program '$NAME' status."
44
+ ;;
45
+ esac
46
+ }
47
+
48
+ case "$1" in
49
+ status)
50
+ do_status
51
+ ;;
52
+ start)
53
+ echo -n "Starting daemon: "$NAME
54
+ do_start
55
+ echo "."
56
+ ;;
57
+ stop)
58
+ echo -n "Stopping daemon: "$NAME
59
+ do_stop
60
+ echo "."
61
+ ;;
62
+ restart)
63
+ echo -n "Restarting daemon: "$NAME
64
+ do_stop --retry 30
65
+ do_start
66
+ echo "."
67
+ ;;
68
+ *)
69
+ echo "Usage: "$1" {status|start|stop|restart}"
70
+ exit 1
71
+ esac
72
+
73
+ exit 0
@@ -0,0 +1,30 @@
1
+ #!/usr/bin/env bash
2
+
3
+ DIR="$( dirname -- "$( readlink -f -- "$0"; )"; )"
4
+ pushd "$DIR/.."
5
+
6
+ source ./docker/parse-args-and-config.sh
7
+
8
+ POD_NAME="${POD_NAME="$DEPLOYMENT-$PROJECT_NAME"}"
9
+ echo POD_NAME=$POD_NAME
10
+
11
+ echo Compiling
12
+
13
+ npm run build
14
+
15
+ echo Uploading
16
+
17
+ rsync -av --progress --stats --delete -e 'docker/k8s-rsync-helper.sh' \
18
+ front server package.json package-lock.json \
19
+ $POD_NAME:/app
20
+
21
+ echo Updating deps
22
+ kubectl exec $POD_NAME -- yarn install
23
+
24
+ echo Restarting
25
+
26
+ kubectl exec $POD_NAME -- /etc/init.d/app restart
27
+
28
+ echo Done
29
+
30
+ popd
@@ -0,0 +1,39 @@
1
+ #!/usr/bin/env bash
2
+ set -e
3
+
4
+ DIR="$( dirname -- "$( readlink -f -- "$0"; )"; )"
5
+
6
+ pushd "$DIR/.."
7
+
8
+ source ./docker/parse-args-and-config.sh
9
+
10
+ echo "Building \"${BRAND_NAME}\" (${BRAND_DOMAIN}) ${NAME}:${VERSION}-${DEPLOYMENT}"
11
+
12
+ set -ex
13
+
14
+ ./docker/onlyDependencies.js > package-deps.json
15
+
16
+ docker build \
17
+ -t ${NAME}:${VERSION}-${DEPLOYMENT}\
18
+ -t ${NAME}:${DEPLOYMENT}\
19
+ -t ${REPO}/${NAME}:${VERSION}-${DEPLOYMENT}\
20
+ -t ${REPO}/${NAME}:${DEPLOYMENT}\
21
+ --secret id=npmrc,src=$HOME/.npmrc\
22
+ --build-arg VERSION=${VERSION}-${DEPLOYMENT}\
23
+ --build-arg BASE_HREF=${BASE_HREF}\
24
+ --build-arg GOOGLE_CLIENT_ID="${GOOGLE_CLIENT_ID}"\
25
+ --build-arg LINKEDIN_CLIENT_ID="${LINKEDIN_CLIENT_ID}"\
26
+ --build-arg BRAND_NAME="${BRAND_NAME}"\
27
+ --build-arg BRAND_DOMAIN="${BRAND_DOMAIN}"\
28
+ --build-arg BRAND_SMS_FROM="${BRAND_SMS_FROM}"\
29
+ --build-arg PROJECT_NAME="${PROJECT_NAME}"\
30
+ .
31
+
32
+ docker push ${REPO}/${NAME}:${VERSION}-${DEPLOYMENT}
33
+ docker push ${REPO}/${NAME}:${DEPLOYMENT}
34
+
35
+ set +x
36
+
37
+ echo "Done building ${NAME}:${VERSION}-${DEPLOYMENT}"
38
+
39
+ popd
@@ -0,0 +1,17 @@
1
+ #!/usr/bin/env bash
2
+
3
+ DIR="$( dirname -- "$( readlink -f -- "$0"; )"; )"
4
+ pushd "$DIR/.."
5
+
6
+ source ./docker/parse-args-and-config.sh
7
+
8
+ set +ex
9
+
10
+ git commit -a
11
+ npm version patch
12
+ git push
13
+ ./docker/build-docker-and-upload.sh $DEPLOYMENT
14
+
15
+ set -e
16
+
17
+ popd
@@ -0,0 +1,4 @@
1
+ #!/bin/bash
2
+ pod=$1
3
+ shift
4
+ kubectl exec -i $pod -- "$@"
@@ -0,0 +1,12 @@
1
+ #!/usr/bin/env node
2
+
3
+ import fs from "fs/promises"
4
+
5
+ const packageData = JSON.parse(await fs.readFile(process.argv[2] || "package.json"))
6
+
7
+ const { dependencies, devDependencies } = packageData
8
+
9
+ console.log(JSON.stringify({
10
+ dependencies,
11
+ devDependencies
12
+ }, null, 2))
@@ -0,0 +1,20 @@
1
+ REPO=docker.chaosu.pl
2
+
3
+ VERSION=`echo "console.log(require('./package.json').version)" | node`
4
+ NAME=`echo "console.log(require('./package.json').name.split('/').pop())" | node`
5
+
6
+ BRANCH=$(git symbolic-ref --short HEAD)
7
+ DEPLOYMENT=${1:-$BRANCH}
8
+ echo "DEPLOYMENT=${DEPLOYMENT}"
9
+
10
+ #BASE_HREF="https://$DEPLOYMENT.example.com/"
11
+
12
+ #if [ "$DEPLOYMENT" == "master" ]; then
13
+ BASE_HREF='https://www.example.com/'
14
+ #fi
15
+
16
+ PROJECT_NAME=${NAME}
17
+
18
+ if [ "$DEPLOYMENT" == "master" ]; then
19
+ echo ok
20
+ fi
@@ -0,0 +1,14 @@
1
+ #!/usr/bin/env bash
2
+
3
+ BACKUP_PATH=${1:-../backup.tar.gz}
4
+
5
+ DIR="$( dirname -- "$( readlink -f -- "$0"; )"; )"
6
+ pushd "$DIR/.."
7
+
8
+ /etc/init.d/app stop
9
+ sleep 1
10
+ ./docker/restore-backup.sh $BACKUP_PATH
11
+ sleep 1
12
+ /etc/init.d/app start
13
+
14
+ popd
@@ -0,0 +1,22 @@
1
+ #!/usr/bin/env bash
2
+
3
+ BACKUP_PATH=${1:-../backup.tar.gz}
4
+ DB_NAME=${DB_NAME:-laszczewski-pl}
5
+
6
+ DIR="$( dirname -- "$( readlink -f -- "$0"; )"; )"
7
+ pushd "$DIR/.."
8
+
9
+ rm -rf backup
10
+ mkdir -p backup
11
+ pushd backup
12
+ tar -zxf $BACKUP_PATH
13
+ ../node_modules/.bin/lcdbc --serverUrl $DB_URL --verbose request database.deleteDatabase $DB_NAME
14
+ echo uploading data to database...
15
+ ../node_modules/.bin/lcdbc --serverUrl $DB_URL --verbose exec --targetDb $DB_NAME db.json
16
+ echo data uploaded
17
+ rm -rf ../storage/*
18
+ mv storage/* ../storage
19
+ echo backup restored
20
+ popd
21
+
22
+ popd
@@ -0,0 +1,4 @@
1
+ #!/usr/bin/env bash
2
+ touch /var/log/app.log
3
+ /etc/init.d/app start
4
+ tail -f /var/log/app.log
@@ -0,0 +1,12 @@
1
+ #!/usr/bin/env bash
2
+
3
+ POD_NAME=$1
4
+ BACKUP_PATH=${2:-../backup.tar.gz}
5
+
6
+ DIR="$( dirname -- "$( readlink -f -- "$0"; )"; )"
7
+ pushd "$DIR/.."
8
+
9
+ kubectl cp $BACKUP_PATH $POD_NAME:/app/backup.tar.gz
10
+ kubectl exec -it $POD_NAME -- /app/docker/restore-backup-with-service.sh /app/backup.tar.gz
11
+
12
+ popd
@@ -0,0 +1,78 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <!--head-->
5
+ </head>
6
+ <body>
7
+ <!--body-tags-open-->
8
+ <div id="app"><!--app-html--></div>
9
+ <!--app-data-->
10
+ <!--body-tags-->
11
+ <script type="module" src="/src/entry-client.js"></script>
12
+
13
+ <div>
14
+ <div id="not-supported" style="display: none; position: fixed; top: 0; left: 0; right: 0; bottom: 0;
15
+ z-index: 1000; background-color: black; color: white; font-size: 20px; font-family: sans-serif;
16
+ align-items: center; justify-content: center; overflow-y: auto">
17
+ <div style="padding: 2em;">
18
+ <h1 style="margin-bottom: 1.23em">Your browser is not supported.</h1>
19
+ <p>We apologize for the inconvenience, but it seems that your current web browser version does not support
20
+ our web application.</p>
21
+ <p>In order to use our service, you would need to upgrade to, or install, one of the following browsers:</p>
22
+ <ul>
23
+ <li>Microsoft Edge 99 or later</li>
24
+ <li>Mozilla Firefox 97 or later</li>
25
+ <li>Google Chrome 99 or later</li>
26
+ <li>Apple Safari 15 or later</li>
27
+ </ul>
28
+ <p>Please note that our application does not function with older browser versions. We've optimized our service
29
+ for the above-mentioned browsers to ensure robust functionality and a smooth user experience.</p>
30
+ <p>If you need assistance with updating your browser or installing a new one, please consult your browser's
31
+ help documentation or contact your IT support.</p>
32
+ <p>Thank you for your understanding and cooperation. We're eager to deliver a great experience with our
33
+ web application.</p>
34
+ </div>
35
+ </div>
36
+ </div>
37
+ <script>
38
+ const oses = ['Windows', 'Android', 'Linux', 'iPhone', 'iPad', 'iPod', 'Mac OS']
39
+ const browsers = ['Edg', 'Edge', 'CriOS', 'OPR', 'Chrome', 'SamsungBrowser', 'Firefox', 'Opera', 'Safari']
40
+ const ua = window.navigator.userAgent
41
+ const detected = {}
42
+ for(const browser of browsers) {
43
+ const match = ua.match(new RegExp(`(${browser})/([^ ;)]*)`,'i'))
44
+ if(match) {
45
+ detected.browser = match[1]
46
+ detected.browserVersion = match[2]
47
+ break
48
+ }
49
+ }
50
+ const match = ua.match(new RegExp(`Version/([^ ;)]*)`,'i'))
51
+ if(match) detected.browser = match[1]
52
+ for(const os of oses) {
53
+ const match = ua.match(new RegExp(`(${os}) ?([^;)]*)`,'i'))
54
+ if(match) {
55
+ detected.os = match[1]
56
+ detected.osVersion = match[2]
57
+ break
58
+ }
59
+ }
60
+
61
+ if(!(typeof CSSLayerBlockRule === 'function')) {
62
+ document.getElementById('not-supported').style.display = 'flex'
63
+ console.error("CSS Layers not supported!")
64
+ }
65
+
66
+ detected.browserVersionMajor = +detected.browserVersion.split('.')[0]
67
+ document.body.classList.add('on-browser-' + detected.browser.toLowerCase())
68
+ document.body.classList.add('on-os-' + detected.os.replace(' ','-').toLowerCase())
69
+ window.onload = function() { setTimeout(function() {
70
+ if(!window.appStarted) {
71
+ document.getElementById('not-supported').style.display = 'flex'
72
+ console.error("App not started!")
73
+ }
74
+ }, 1000) }
75
+ </script>
76
+
77
+ </body>
78
+ </html>
@@ -0,0 +1,29 @@
1
+ import messages from "./en.json"
2
+
3
+ import { locales as autoFormLocales } from "@live-change/frontend-auto-form"
4
+
5
+ export { messages }
6
+
7
+ export const numberFormats ={
8
+ "usd": {
9
+ "style": "currency",
10
+ "currency": "USD",
11
+ "notation": "standard"
12
+ }
13
+ }
14
+
15
+ export const datetimeFormats = {
16
+ "short": {
17
+ "year": "numeric", "month": "short", "day": "numeric"
18
+ },
19
+ "shortTime": {
20
+ "dateStyle": "short", "timeStyle": "short", "hour12": false
21
+ },
22
+ "shortestTime": {
23
+ "month": "numeric", "day": "numeric", "hour": "numeric", "minute": "numeric", "hour12": false
24
+ },
25
+ "long": {
26
+ "year": "numeric", "month": "short", "day": "numeric",
27
+ "weekday": "short", "hour": "numeric", "minute": "numeric"
28
+ }
29
+ }
@@ -0,0 +1,7 @@
1
+ {
2
+ "app": {
3
+ "updateAvailable": "Update available!",
4
+ "newVersions": "New version of app is available!",
5
+ "reload": "Reload"
6
+ }
7
+ }
Binary file
@@ -0,0 +1,38 @@
1
+ <?xml version="1.0" encoding="UTF-8" standalone="no"?>
2
+ <!-- Generator: Adobe Illustrator 16.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
3
+
4
+ <svg
5
+ version="1.1"
6
+ id="Layer_1"
7
+ x="0px"
8
+ y="0px"
9
+ width="512px"
10
+ height="512px"
11
+ viewBox="0 0 512 512"
12
+ enable-background="new 0 0 512 512"
13
+ xml:space="preserve"
14
+ xmlns="http://www.w3.org/2000/svg"
15
+ xmlns:svg="http://www.w3.org/2000/svg"
16
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
17
+ xmlns:cc="http://creativecommons.org/ns#"
18
+ xmlns:dc="http://purl.org/dc/elements/1.1/"><metadata
19
+ id="metadata9"><rdf:RDF><cc:Work
20
+ rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
21
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" /></cc:Work></rdf:RDF></metadata><defs
22
+ id="defs7" />
23
+ <rect
24
+ style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:1.88976383;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
25
+ id="rect821"
26
+ width="512.54236"
27
+ height="512.54236"
28
+ x="0.54237288"
29
+ y="0.54237235" />
30
+ <path
31
+ style="fill:#f6f6f6;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
32
+ d="M 0.54237288,470.23729 125.83051,306.44068 l 60.20339,70.50847 130.71186,-174.10169 195.79661,261.42373 0.54235,48.81353 H 0.54237288 Z"
33
+ id="path816" /><circle
34
+ style="fill:#f6f6f6;fill-opacity:1;stroke:none;stroke-width:4.80000019;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
35
+ id="path818"
36
+ cx="118.50848"
37
+ cy="106.57627"
38
+ r="57.762711" /></svg>
@@ -0,0 +1,33 @@
1
+ <?xml version="1.0" encoding="UTF-8" standalone="no"?>
2
+ <!-- Generator: Adobe Illustrator 16.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
3
+
4
+ <svg
5
+ version="1.1"
6
+ id="Layer_1"
7
+ x="0px"
8
+ y="0px"
9
+ width="512px"
10
+ height="512px"
11
+ viewBox="0 0 512 512"
12
+ enable-background="new 0 0 512 512"
13
+ xml:space="preserve"
14
+ xmlns="http://www.w3.org/2000/svg"
15
+ xmlns:svg="http://www.w3.org/2000/svg"
16
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
17
+ xmlns:cc="http://creativecommons.org/ns#"
18
+ xmlns:dc="http://purl.org/dc/elements/1.1/"><metadata
19
+ id="metadata9"><rdf:RDF><cc:Work
20
+ rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
21
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" /></cc:Work></rdf:RDF></metadata><defs
22
+ id="defs7" />
23
+ <rect
24
+ style="fill:#dbdbdb;fill-opacity:1;stroke:none;stroke-width:1.88976383;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
25
+ id="rect821"
26
+ width="512.54236"
27
+ height="512.54236"
28
+ x="0.54237288"
29
+ y="0.54237235" /><path
30
+ d="m 313.14122,310.64877 c 9.02181,-8.85097 12.15686,-31.23733 20.41627,-39.3056 11.69771,-11.43183 24.39381,-25.50218 27.98588,-43.06851 4.82003,-23.34203 -4.96846,-26.30516 -4.96846,-34.3713 0,-16.90002 -0.15376,-44.65739 -5.43081,-62.68607 -0.30326,-23.7809 -4.20499,-34.123578 -12.38858,-43.031138 -7.72017,-8.33522 -26.68637,-6.366203 -36.59125,-11.85361 C 286.83605,67.825407 274.23818,64.594254 258.15823,64.17461 v -0.09503 c -0.47624,0 -0.93539,0.05659 -1.41162,0.05659 -0.78484,0 -1.53123,-0.05659 -2.35343,-0.05659 l 0.0395,0.151627 c -39.17105,1.472492 -80.84608,26.170627 -95.16524,65.895863 -5.31335,14.71958 -3.28881,46.87521 -3.28881,63.77522 0,8.06721 -9.78742,11.02927 -4.96846,34.37131 3.61129,17.56632 16.28817,31.63668 27.98588,43.06851 8.26048,8.06827 11.39446,30.45462 20.39705,39.30559 1.96902,13.0378 2.1986,9.31012 2.12278,21.23954 -0.0203,4.03307 0.11426,10.28502 -6.32669,16.4398 -12.17822,11.6614 -40.14595,36.95324 -63.08756,46.79832 -30.24,12.98014 -79.41203,33.74237 -90.746691,39.59069 -11.334661,5.84833 -41.2532541,21.69763 -41.2532541,31.79045 0,10.11417 0,47.33542 0,47.33542 h 253.3742451 5.79494 253.37318 c 0,0 0,-37.22125 0,-47.33542 0,-10.09282 -29.89723,-25.94212 -41.25645,-31.79045 -11.35389,-5.84938 -60.48321,-26.61055 -90.72641,-39.59069 -22.32976,-9.57707 -49.43685,-33.81712 -62.09344,-45.84158 -4.2808,-4.05228 -7.3016,-8.29784 -7.3411,-18.62023 -0.0737,-12.00417 0.23278,-7.41692 2.14306,-20.01478"
31
+ id="path2"
32
+ style="clip-rule:evenodd;fill-rule:evenodd;stroke-width:1.06779659;fill:#f6f6f6;fill-opacity:1" />
33
+ </svg>
@@ -0,0 +1,34 @@
1
+ <?xml version="1.0" encoding="UTF-8" standalone="no"?>
2
+ <svg
3
+ width="512"
4
+ height="512"
5
+ viewBox="0 0 135.46667 135.46667"
6
+ version="1.1"
7
+ id="svg977"
8
+ xmlns="http://www.w3.org/2000/svg"
9
+ xmlns:svg="http://www.w3.org/2000/svg"
10
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
11
+ xmlns:cc="http://creativecommons.org/ns#"
12
+ xmlns:dc="http://purl.org/dc/elements/1.1/">
13
+ <defs
14
+ id="defs971" />
15
+ <metadata
16
+ id="metadata974">
17
+ <rdf:RDF>
18
+ <cc:Work
19
+ rdf:about="">
20
+ <dc:format>image/svg+xml</dc:format>
21
+ <dc:type
22
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
23
+ </cc:Work>
24
+ </rdf:RDF>
25
+ </metadata>
26
+ <g
27
+ id="layer1"
28
+ style="fill:#666666">
29
+ <path
30
+ style="fill:#666666;fill-opacity:1;stroke:none;stroke-width:2.70907px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
31
+ d="M 54.181439,13.558436 67.726801,0.01304296 135.45359,67.739804 67.726801,135.46667 29.799793,97.539626 V 65.030766 L 13.545362,81.285197 0,67.739804 40.636077,27.103727 81.272154,67.739804 67.726801,81.285197 51.472371,65.030766 V 92.12155 l 16.25443,16.25433 40.636069,-40.636076 z"
32
+ id="path892" />
33
+ </g>
34
+ </svg>
Binary file