@ -1,4 +1,4 @@ | |||
PATH_add bin | |||
PATH_add _out/bin | |||
PATH_add .out/bin | |||
PATH_add .env/bin | |||
export NIX_PATH="nixpkgs=$PWD/nix/nixpkgs.nix" | |||
export NIX_PATH="nixpkgs=$PWD/nix/nixpkgs.nix" |
@ -1 +1,2 @@ | |||
*.golden -text | |||
/data/golden/*/*.pro -text | |||
/data/golden/*/*.json -text |
@ -1,18 +1,18 @@ | |||
{ | |||
"files.exclude": { | |||
"_out/**": true, | |||
".out/**": true, | |||
"dist/**": true, | |||
"dist-newstyle/**": true, | |||
".ghc.environment.*": true, | |||
".gitattributes": true, | |||
".ghc/**": true | |||
".env/**": true | |||
}, | |||
"files.watcherExclude": { | |||
"_out/**": true, | |||
"**/.out/**": true, | |||
"**/.git/objects/**": true, | |||
"**/.git/subtree-cache/**": true, | |||
".ghc/**": true, | |||
"dist/**": true, | |||
"dist-newstyle/**": true | |||
"**/.env/**": true, | |||
"**/dist/**": true, | |||
"**/dist-newstyle/**": true | |||
} | |||
} | |||
} |
@ -0,0 +1,15 @@ | |||
#!/bin/bash | |||
set -euo pipefail | |||
cd "$(git rev-parse --show-toplevel)" | |||
source ./bin/mkenv | |||
mkdir -p .out/doc | |||
warp --docroot .out/doc --host 127.0.0.1 & | |||
trap "kill $!" EXIT | |||
fswatch --recursive --one-per-batch --event Created --event Updated ./doc |\ | |||
while read -r event | |||
do | |||
echo "Triggering update (event: ${event})" >&2 | |||
m v2-run prosidy-manual || true | |||
done |
@ -1,16 +1,23 @@ | |||
#!/bin/bash | |||
command -v nix >/dev/null 2>&1 || exit 0 | |||
[ -z "${_MKENV:-}" ] || return 0 | |||
command -v nix >/dev/null 2>&1 || return 0 | |||
[ -n "${DIRENV_DIR:-}" ] || eval "$(direnv export bash)" | |||
export NIX_PATH="nixpkgs=$PWD/nix/nixpkgs.nix" | |||
nix_substituters=( | |||
'https://cache.nixos.org' | |||
'https://static-haskell-nix.cachix.org' | |||
) | |||
nix_keys=( | |||
'cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=' | |||
'static-haskell-nix.cachix.org-1:Q17HawmAwaM1/BfIxaEDKAxwTOyRVhPG5Ji9K3+FvUU=' | |||
) | |||
nix-build ./nix/default.nix -A env \ | |||
--substituters "$nix_substituters" \ | |||
--trusted-public-keys "$nix_keys" \ | |||
--out-link .env | |||
function setup_nix | |||
{ | |||
local nix_substituters=( | |||
'https://cache.nixos.org' | |||
'https://static-haskell-nix.cachix.org' | |||
) | |||
local nix_keys=( | |||
'cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=' | |||
'static-haskell-nix.cachix.org-1:Q17HawmAwaM1/BfIxaEDKAxwTOyRVhPG5Ji9K3+FvUU=' | |||
) | |||
nix-build ./nix/default.nix -A env \ | |||
--substituters "$nix_substituters" \ | |||
--trusted-public-keys "$nix_keys" \ | |||
--out-link .env | |||
} | |||
setup_nix | |||
export _MKENV=1 |
@ -1,3 +1,4 @@ | |||
packages: prosidy.cabal | |||
optimization: True | |||
split-sections: True |
@ -0,0 +1,127 @@ | |||
case: Comments | |||
## Empty line in header | |||
## Empty line after spaces in header | |||
prop ## After a property | |||
empty = ## After an empty setting | |||
nonempty = yes ## After a non-empty setting | |||
--- | |||
## Empty line in the body | |||
## Empty line after spaces in the body | |||
#-tag ## Immediately after an empty block-tag | |||
## On the line preceeding an empty block tag | |||
#-tag | |||
#-tag | |||
## On the line proceeding an empty block tag | |||
#-tag[prop, setting=''] ## Immediately after an empty block-tag with metadata | |||
## On the line preceeding an empty block tag with metadata | |||
#-tag[prop, setting=''] | |||
#-tag[prop, setting=''] | |||
## On the line proceeding an empty block tag with metadata | |||
#-tag[ ## After the metadata open bracket | |||
prop ## After a property in the metadata | |||
, ## After a metadata separator | |||
setting ## After a setting key in the metadata | |||
= ## After the association operator | |||
"foo" ## After a quoted value | |||
] ## After a metadata close bracket | |||
#-tag[ ## After the metadata open bracket | |||
prop ## After a property in the metadata | |||
, ## After a metadata separator | |||
setting ## After a setting key in the metadata | |||
= ## After the association operator | |||
"foo" ## After a quoted value | |||
]: ## After the block open colon | |||
## Within a block | |||
Inner contents | |||
Another paragraph | |||
## Within a block | |||
#: ## After a named block close | |||
#-tag[ ## After the metadata open bracket | |||
prop ## After a property in the metadata | |||
, ## After a metadata separator | |||
setting ## After a setting key in the metadata | |||
= ## After the association operator | |||
"foo" ## After a quoted value | |||
]:end ## After the block open colon | |||
## Within a block | |||
Inner contents | |||
Another paragraph | |||
## Within a block | |||
#:end ## After a named block close | |||
#-tag[ ## After the metadata open bracket | |||
prop ## After a property in the metadata | |||
, ## After a metadata separator | |||
setting ## After a setting key in the metadata | |||
= ## After the association operator | |||
"foo" ## After a quoted value | |||
]{ ## After the inline brace | |||
## Within the brace | |||
Inner contents | |||
## Within the brace | |||
} ## After the inline brace | |||
## Before a paragraph | |||
Blah blah ## After a line in a paragraph | |||
blah blah. ## After a line in a paragraph | |||
#inline[ ## After a dangling inline meta open | |||
prop ## After a property in the metadata | |||
, ## After a metadata separator | |||
setting ## After a setting key in the metadata | |||
= ## After the association operator | |||
"foo" ## After a quoted value | |||
] ## After the inline meta close | |||
#inline[ ## After a dangling inline meta open | |||
prop ## After a property in the metadata | |||
, ## After a metadata separator | |||
setting ## After a setting key in the metadata | |||
= ## After the association operator | |||
"foo" ## After a quoted value | |||
]{ ## Within the brace | |||
## Within the brace | |||
look ma ## After a paragraph in a brace | |||
## Within the brace | |||
## Within the brace | |||
} ## After a brace closes | |||
#inline[ ## After a dangling inline meta open | |||
prop ## After a property in the metadata | |||
, ## After a metadata separator | |||
setting ## After a setting key in the metadata | |||
= ## After the association operator | |||
"foo" ## After a quoted value | |||
]{ ## Within the brace | |||
## Within the brace | |||
no hands ## After a paragraph in a brace | |||
## Within the brace | |||
## Within the brace | |||
} content ## After a brace closes with trailing content | |||
## After a paragraph | |||
#=src:end ## After a literal tag's opening line | |||
## This is _not_ a comment; it's part of the tag around it | |||
#:end ## After a literal tag's closing line | |||
## As the last line of a document, without a trailing newline | |||
## This is a direct remediation of a bug I found |
@ -0,0 +1,317 @@ | |||
{ | |||
"content": [ | |||
{ | |||
"value": { | |||
"content": [], | |||
"name": "tag", | |||
"metadata": { | |||
"settings": {}, | |||
"properties": [] | |||
} | |||
}, | |||
"subtype": "block", | |||
"type": "tag" | |||
}, | |||
{ | |||
"value": { | |||
"content": [], | |||
"name": "tag", | |||
"metadata": { | |||
"settings": {}, | |||
"properties": [] | |||
} | |||
}, | |||
"subtype": "block", | |||
"type": "tag" | |||
}, | |||
{ | |||
"value": { | |||
"content": [], | |||
"name": "tag", | |||
"metadata": { | |||
"settings": {}, | |||
"properties": [] | |||
} | |||
}, | |||
"subtype": "block", | |||
"type": "tag" | |||
}, | |||
{ | |||
"value": { | |||
"content": [], | |||
"name": "tag", | |||
"metadata": { | |||
"settings": { | |||
"setting": "" | |||
}, | |||
"properties": [ | |||
"prop" | |||
] | |||
} | |||
}, | |||
"subtype": "block", | |||
"type": "tag" | |||
}, | |||
{ | |||
"value": { | |||
"content": [], | |||
"name": "tag", | |||
"metadata": { | |||
"settings": { | |||
"setting": "" | |||
}, | |||
"properties": [ | |||
"prop" | |||
] | |||
} | |||
}, | |||
"subtype": "block", | |||
"type": "tag" | |||
}, | |||
{ | |||
"value": { | |||
"content": [], | |||
"name": "tag", | |||
"metadata": { | |||
"settings": { | |||
"setting": "" | |||
}, | |||
"properties": [ | |||
"prop" | |||
] | |||
} | |||
}, | |||
"subtype": "block", | |||
"type": "tag" | |||
}, | |||
{ | |||
"value": { | |||
"content": [], | |||
"name": "tag", | |||
"metadata": { | |||
"settings": { | |||
"setting": "foo" | |||
}, | |||
"properties": [ | |||
"prop" | |||
] | |||
} | |||
}, | |||
"subtype": "block", | |||
"type": "tag" | |||
}, | |||
{ | |||
"value": { | |||
"content": [ | |||
{ | |||
"value": [ | |||
{ | |||
"value": "Inner contents", | |||
"type": "text" | |||
} | |||
], | |||
"type": "paragraph" | |||
}, | |||
{ | |||
"value": [ | |||
{ | |||
"value": "Another paragraph", | |||
"type": "text" | |||
} | |||
], | |||
"type": "paragraph" | |||
} | |||
], | |||
"name": "tag", | |||
"metadata": { | |||
"settings": { | |||
"setting": "foo" | |||
}, | |||
"properties": [ | |||
"prop" | |||
] | |||
} | |||
}, | |||
"subtype": "block", | |||
"type": "tag" | |||
}, | |||
{ | |||
"value": { | |||
"content": [ | |||
{ | |||
"value": [ | |||
{ | |||
"value": "Inner contents", | |||
"type": "text" | |||
} | |||
], | |||
"type": "paragraph" | |||
}, | |||
{ | |||
"value": [ | |||
{ | |||
"value": "Another paragraph", | |||
"type": "text" | |||
} | |||
], | |||
"type": "paragraph" | |||
} | |||
], | |||
"name": "tag", | |||
"metadata": { | |||
"settings": { | |||
"setting": "foo" | |||
}, | |||
"properties": [ | |||
"prop" | |||
] | |||
} | |||
}, | |||
"subtype": "block", | |||
"type": "tag" | |||
}, | |||
{ | |||
"value": { | |||
"content": [ | |||
{ | |||
"value": [ | |||
{ | |||
"value": "Inner contents", | |||
"type": "text" | |||
} | |||
], | |||
"type": "paragraph" | |||
} | |||
], | |||
"name": "tag", | |||
"metadata": { | |||
"settings": { | |||
"setting": "foo" | |||
}, | |||
"properties": [ | |||
"prop" | |||
] | |||
} | |||
}, | |||
"subtype": "block", | |||
"type": "tag" | |||
}, | |||
{ | |||
"value": [ | |||
{ | |||
"value": "Blah blah", | |||
"type": "text" | |||
}, | |||
{ | |||
"value": [], | |||
"type": "break" | |||
}, | |||
{ | |||
"value": "blah blah.", | |||
"type": "text" | |||
}, | |||
{ | |||
"value": [], | |||
"type": "break" | |||
}, | |||
{ | |||
"value": { | |||
"content": [], | |||
"name": "inline", | |||
"metadata": { | |||
"settings": { | |||
"setting": "foo" | |||
}, | |||
"properties": [ | |||
"prop" | |||
] | |||
} | |||
}, | |||
"subtype": "inline", | |||
"type": "tag" | |||
}, | |||
{ | |||
"value": [], | |||
"type": "break" | |||
}, | |||
{ | |||
"value": { | |||
"content": [ | |||
{ | |||
"value": "look ma", | |||
"type": "text" | |||
} | |||
], | |||
"name": "inline", | |||
"metadata": { | |||
"settings": { | |||
"setting": "foo" | |||
}, | |||
"properties": [ | |||
"prop" | |||
] | |||
} | |||
}, | |||
"subtype": "inline", | |||
"type": "tag" | |||
}, | |||
{ | |||
"value": [], | |||
"type": "break" | |||
}, | |||
{ | |||
"value": { | |||
"content": [ | |||
{ | |||
"value": "no hands", | |||
"type": "text" | |||
} | |||
], | |||
"name": "inline", | |||
"metadata": { | |||
"settings": { | |||
"setting": "foo" | |||
}, | |||
"properties": [ | |||
"prop" | |||
] | |||
} | |||
}, | |||
"subtype": "inline", | |||
"type": "tag" | |||
}, | |||
{ | |||
"value": [], | |||
"type": "break" | |||
}, | |||
{ | |||
"value": "content", | |||
"type": "text" | |||
} | |||
], | |||
"type": "paragraph" | |||
}, | |||
{ | |||
"value": { | |||
"content": " ## This is _not_ a comment; it's part of the tag around it", | |||
"name": "src", | |||
"metadata": { | |||
"settings": {}, | |||
"properties": [] | |||
} | |||
}, | |||
"subtype": "literal", | |||
"type": "tag" | |||
} | |||
], | |||
"metadata": { | |||
"settings": { | |||
"empty": "", | |||
"case": "Comments", | |||
"nonempty": "yes" | |||
}, | |||
"properties": [ | |||
"prop" | |||
] | |||
} | |||
} |
@ -0,0 +1 @@ | |||
--- |
@ -0,0 +1,7 @@ | |||
{ | |||
"metadata": { | |||
"properties": [], | |||
"settings": {} | |||
}, | |||
"content": [] | |||
} |
@ -0,0 +1,164 @@ | |||
## This is an example document which enumerates many valid syntaxes. It is | |||
## probably not exhaustive, but should serve as a good document to implement | |||
## against. | |||
## Properties | |||
prop | |||
prop-with-comment ## this has a trailing comment | |||
prop-with-leading-spaces ## arbitrary leading spaces are permitted | |||
## Settings | |||
set-a1:42 | |||
set-a2=42 | |||
set-a3: 42 | |||
set-a4= 42 | |||
set-a5 :42 | |||
set-a6 =42 | |||
set-a7 = 42 | |||
set-a8 : 42 | |||
set-a9 = 42 ## arbitrary leading spaces are permitted | |||
## Settings with trailing comments | |||
set-b1:42 ## this has a trailing comment | |||
set-b2=42 ## this has a trailing comment | |||
set-b3: 42 ## this has a trailing comment | |||
set-b4= 42 ## this has a trailing comment | |||
set-b5 :42 ## this has a trailing comment | |||
set-b6 =42 ## this has a trailing comment | |||
set-b7 = 42 ## this has a trailing comment | |||
set-b8 : 42 ## this has a trailing comment | |||
## Settings with escaped values | |||
set-c1 = foo \# bar | |||
set-c2 = \#\# not a comment ## is a comment | |||
## Settings with null values | |||
set-d1 = | |||
set-d2 : | |||
set-d3 = ## Just a comment, not a value | |||
set-d4 : ## Just a comment, not a value | |||
--- | |||
Paragraph with only one line. | |||
Paragraph trailed by comment. ## This is the comment | |||
Paragraph split | |||
over multiple lines. | |||
Paragraph split ## with an indent! | |||
over multiple lines ## Another sneaky comment | |||
with a comment trailing some. | |||
#tag{This} paragraph starts with a simple tag. | |||
This paragraph ends with a simple #tag{tag.} | |||
This #tag{paragraph} has a few #tag{tags}. | |||
#a{}b#c{}#d{} | |||
This paragraph has a number of inline tag styles. | |||
#tag ## no meta, no children | |||
#tag[] ## no meta, no children | |||
#tag[]{} ## no meta, no children | |||
#tag[prop] ## 1 prop, no children | |||
#tag[prop1,prop2] ## 2 props, no children | |||
#tag[set = '42'] ## 1 setting (equal, single quote), no children | |||
#tag[set = "42"] ## 1 setting (equal, double quote), no children | |||
#tag[set: '42'] ## 1 setting (colon, single quote), no children | |||
#tag[set: "42"] ## 1 setting (colon, double quote), no children | |||
#tag[prop, foo: 'bar', baz = "quz"] ## complicated, no children | |||
#tag{content} ## no meta, children | |||
#tag[]{content} ## no meta, children | |||
#tag{#tag{ok}} ## no meta, children containing tags | |||
#tag[prop, foo: 'bar', baz = "quz"]{#tag{ok}} ## ok wow | |||
#tag[ | |||
] ## Meta blocks can span multiple lines | |||
#tag[ ## Comments can go here | |||
## Because items in the metadata block are relatively structured | |||
## compared to the rest of the document, you can go wild with | |||
## how properties are laid out | |||
prop1, prop2 ## Comments can go here | |||
, set ## Comments can go here | |||
= '42', prop3 ## Comments can go here | |||
]{This one is pathological} | |||
This paragraph has some tags that are awfuly close to one another. | |||
#tag{}text#tag{}text#tag#tag{}. | |||
#tag{This is a paragraph in an #kind{inline} tag.} | |||
#tag{This is a paragraph in an #kind{inline} tag. | |||
It spans many lines. | |||
Content may follow.} This follows! | |||
#tag{This is a paragraph in an #kind{inline} tag. ## Comments can go here | |||
It spans many lines . ## Comments can go here | |||
Content may follow.} This follows! ## Comments can go here | |||
#-tag{This is a paragraph in a #kind{block} tag. ## Comments can go here | |||
Content may not follow.} ## Comments can go here | |||
#-block: ## Comments can go here | |||
This is the other kind of block tag. | |||
It can have #italic{nested} block children. | |||
#-block: ## Empty blocks are fine too | |||
#: | |||
#-block[prop]:label ## Comments can go here | |||
Block starts/ends can have aribtrary labels attached. | |||
#:label ## Comments can go here | |||
#-block[set='42']:label ## Comments can go here | |||
Block starts/ends can have aribtrary labels attached. | |||
#:label ## Comments can go here | |||
#-block[prop1, set: '42', prop2]:label ## Comments can go here | |||
Block starts/ends can have aribtrary labels attached. | |||
#:label ## Comments can go here | |||
#: ## Comments can go here | |||
#-block[ ## Comments can go here | |||
## Because items in the metadata block are relatively structured | |||
## compared to the rest of the document, you can go wild with | |||
## how properties are laid out | |||
prop1, prop2 ## Comments can go here | |||
, set ## Comments can go here | |||
= '42', prop3 ## Comments can go here | |||
]:end ## Comments can go here | |||
This is another pathological tag, just a block this time. | |||
#:end | |||
## This is a literal tag | |||
## The label is once again optional like block tags, | |||
## but a label is _very_ helpful for quoting prosidy | |||
#=lit:eof ## Comments can go here, but not on the next line | |||
#-block: ## this is treated literally! | |||
This is the other kind of block tag. | |||
It can have #italic{nested} block children. | |||
#-block: ## this is treated literally! | |||
#: | |||
#-block[prop]:label ## this is treated literally! | |||
Block starts/ends can have aribtrary labels attached. | |||
#:label ## this is treated literally! | |||
#-block[set='42']:label ## this is treated literally! | |||
Block starts/ends can have aribtrary labels attached. | |||
#:label ## this is treated literally! | |||
#-block[prop1, set: '42', prop2]:label ## this is treated literally! | |||
Block starts/ends can have aribtrary labels attached. | |||
#:label ## this is treated literally! | |||
#: ## this is treated literally! | |||
#:eof ## Comments can go here again | |||
Some unicode escapes: | |||
"\u1F638" is a smiling cat face, | |||
and "\uB" is a vertical tab. |
@ -0,0 +1,6 @@ | |||
case: Invalid Utf-8 | |||
--- | |||
The next paragraph contains the character #lit{0xC0}, which is not valid UTF-8. | |||
Invalid:ร |
@ -0,0 +1,53 @@ | |||
{ | |||
"content": [ | |||
{ | |||
"value": [ | |||
{ | |||
"value": "The next paragraph contains the character", | |||
"type": "text" | |||
}, | |||
{ | |||
"value": [], | |||
"type": "break" | |||
}, | |||
{ | |||
"value": { | |||
"content": [ | |||
{ | |||
"value": "0xC0", | |||
"type": "text" | |||
} | |||
], | |||
"name": "lit", | |||
"metadata": { | |||
"settings": {}, | |||
"properties": [] | |||
} | |||
}, | |||
"subtype": "inline", | |||
"type": "tag" | |||
}, | |||
{ | |||
"value": ", which is not valid UTF-8.", | |||
"type": "text" | |||
} | |||
], | |||
"type": "paragraph" | |||
}, | |||
{ | |||
"value": [ | |||
{ | |||
"value": "Invalid:๏ฟฝ", | |||
"type": "text" | |||
} | |||
], | |||
"type": "paragraph" | |||
} | |||
], | |||
"metadata": { | |||
"settings": { | |||
"case": "Invalid Utf-8" | |||
}, | |||
"properties": [] | |||
} | |||
} |
@ -0,0 +1,7 @@ | |||
case: Line breaks | |||
--- | |||
This is a paragraph ending in a Unix break. | |||
This is a paragraph ending in a Windows break. | |||
This is a paragraph ending in a classic Mac OS break. |
@ -0,0 +1,37 @@ | |||
{ | |||
"content": [ | |||
{ | |||
"value": [ | |||
{ | |||
"value": "This is a paragraph ending in a Unix break.", | |||
"type": "text" | |||
} | |||
], | |||
"type": "paragraph" | |||
}, | |||
{ | |||
"value": [ | |||
{ | |||
"value": "This is a paragraph ending in a Windows break.", | |||
"type": "text" | |||
} | |||
], | |||
"type": "paragraph" | |||
}, | |||
{ | |||
"value": [ | |||
{ | |||
"value": "This is a paragraph ending in a classic Mac OS break.", | |||
"type": "text" | |||
} | |||
], | |||
"type": "paragraph" | |||
} | |||
], | |||
"metadata": { | |||
"settings": { | |||
"case": "Line breaks" | |||
}, | |||
"properties": [] | |||
} | |||
} |
@ -1,4 +1,56 @@ | |||
<?xml version="1.0" encoding="UTF-8" standalone="no"?> | |||
<!-- Generated by IcoMoon.io --> | |||
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" width="768" height="768" viewBox="0 0 768 768"> | |||
<path d="M736 384c0-97.184-39.424-185.248-103.104-248.896s-151.712-103.104-248.896-103.104-185.248 39.424-248.896 103.104-103.104 151.712-103.104 248.896 39.424 185.248 103.104 248.896 151.712 103.104 248.896 103.104 185.248-39.424 248.896-103.104 103.104-151.712 103.104-248.896zM672 384c0 79.552-32.192 151.488-84.352 203.648s-124.096 84.352-203.648 84.352-151.488-32.192-203.648-84.352-84.352-124.096-84.352-203.648 32.192-151.488 84.352-203.648 124.096-84.352 203.648-84.352 151.488 32.192 203.648 84.352 84.352 124.096 84.352 203.648zM416 512v-128c0-17.664-14.336-32-32-32s-32 14.336-32 32v128c0 17.664 14.336 32 32 32s32-14.336 32-32zM384 288c17.664 0 32-14.336 32-32s-14.336-32-32-32-32 14.336-32 32 14.336 32 32 32z"></path> | |||
<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" | |||
width="768" | |||
height="768" | |||
viewBox="0 0 768 768" | |||
id="svg4" | |||
sodipodi:docname="info.svg" | |||
inkscape:version="0.92.4 (unknown)"> | |||
<metadata | |||
id="metadata10"> | |||
<rdf:RDF> | |||
<cc:Work | |||
rdf:about=""> | |||
<dc:format>image/svg+xml</dc:format> | |||
<dc:type | |||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> | |||
</cc:Work> | |||
</rdf:RDF> | |||
</metadata> | |||
<defs | |||
id="defs8" /> | |||
<sodipodi:namedview | |||
pagecolor="#ffffff" | |||
bordercolor="#666666" | |||
borderopacity="1" | |||
objecttolerance="10" | |||
gridtolerance="10" | |||
guidetolerance="10" | |||
inkscape:pageopacity="0" | |||
inkscape:pageshadow="2" | |||
inkscape:window-width="841" | |||
inkscape:window-height="480" | |||
id="namedview6" | |||
showgrid="false" | |||
inkscape:zoom="0.30729167" | |||
inkscape:cx="384" | |||
inkscape:cy="384" | |||
inkscape:window-x="0" | |||
inkscape:window-y="48" | |||
inkscape:window-maximized="0" | |||
inkscape:current-layer="svg4" /> | |||
<path | |||
d="M736 384c0-97.184-39.424-185.248-103.104-248.896s-151.712-103.104-248.896-103.104-185.248 39.424-248.896 103.104-103.104 151.712-103.104 248.896 39.424 185.248 103.104 248.896 151.712 103.104 248.896 103.104 185.248-39.424 248.896-103.104 103.104-151.712 103.104-248.896zM672 384c0 79.552-32.192 151.488-84.352 203.648s-124.096 84.352-203.648 84.352-151.488-32.192-203.648-84.352-84.352-124.096-84.352-203.648 32.192-151.488 84.352-203.648 124.096-84.352 203.648-84.352 151.488 32.192 203.648 84.352 84.352 124.096 84.352 203.648zM416 512v-128c0-17.664-14.336-32-32-32s-32 14.336-32 32v128c0 17.664 14.336 32 32 32s32-14.336 32-32zM384 288c17.664 0 32-14.336 32-32s-14.336-32-32-32-32 14.336-32 32 14.336 32 32 32z" | |||
id="path2" | |||
style="fill:#23c6a8;fill-opacity:1" /> | |||
</svg> |