Compare commits

..

14 Commits

Author SHA1 Message Date
9969572358 intro text! 2025-04-19 12:23:57 +02:00
2bd968cfba linting things 2025-04-13 10:24:24 +02:00
9b8474efb9 word count 2025-04-13 09:03:57 +02:00
f6d44f88ca remove big files 2025-04-12 11:11:25 +02:00
56ab16c018 include loads of icons 2025-04-12 11:07:56 +02:00
58e03fd344 thesis before sending it to 2nd reader 2025-04-08 11:21:21 +02:00
fd0c53940e some rewrites and new pics 2025-03-14 20:04:30 +01:00
390a6af594 change citation 2025-03-13 14:06:43 +01:00
af73a7c7ec more rewrites 2025-03-13 13:51:28 +01:00
cde23aea5a rewrite 2025-03-13 12:22:03 +01:00
034859d38e more words 2025-03-13 09:24:22 +01:00
51858c5ded more words 2025-03-11 22:04:31 +01:00
b1864c83a5 include feedback 2025-03-11 22:04:07 +01:00
9f16ea2e76 no more events on this repo 2025-03-11 21:50:26 +01:00
230 changed files with 2580 additions and 2347 deletions

9
.fleet/run.json Normal file
View File

@ -0,0 +1,9 @@
{
"configurations": [
{
"type": "command",
"name": "Command configuration",
"command":
}
]
}

5
.gitignore vendored
View File

@ -1,4 +1,7 @@
venv
dist
feedback
backup
backup
*.sh
*.zip
*.JPG

279
app.py
View File

@ -1,23 +1,19 @@
import os
from pathlib import Path
import shutil
import csv
import os
import re
from datetime import datetime
from jinja2 import Environment, PackageLoader, select_autoescape
import frontmatter
from slugify import slugify
import pypandoc
import shutil
import subprocess
import xml.etree.ElementTree as ET
from datetime import datetime
from pathlib import Path
import frontmatter
import pypandoc
from jinja2 import Environment, PackageLoader, select_autoescape
from slugify import slugify
# TODO make newsletter URL's absolute to klank.school
env = Environment(
loader=PackageLoader("src"),
autoescape=select_autoescape()
)
env = Environment(loader=PackageLoader("src"), autoescape=select_autoescape())
CONTENT_D = os.path.abspath("src/content")
OUTPUT_D = "dist"
@ -25,14 +21,21 @@ OUT_ASSETS = "dist/assets"
SRC_ASSETS = "src/assets"
documents = {}
now = datetime.now()
word_count = 0
# Utils
def getParam(params, index):
if len(params) > index:
return params[index]
else:
return False
def imageSpread(params):
global documents
param = params.split(" ")
print(param[1])
for item in documents[param[0]]:
print(item.get("filename"))
d = [item for item in documents[param[0]] if item.get("filename") == param[1]]
print(d)
template = env.select_template(["snippets/spread-images.jinja"])
html = template.render(documents=documents, content=d[0], type=param[1])
return html
# jinja filter that can list documents
def listDocuments(params):
@ -42,43 +45,47 @@ def listDocuments(params):
return html
# jinja filter that can list events
def listEvents(params):
param = params.split(" ")
tag = getParam(param, 1)
if "events" not in documents:
return ""
# Source: https://github.com/gandreadis/markdown-word-count
def count_words_in_markdown(text):
events = []
if tag:
for event in documents["events"]:
if tag in event["tags"]:
events.append(event)
else:
events = documents["events"]
# Comments
text = re.sub(r"<!--(.*?)-->", "", text, flags=re.MULTILINE)
# Tabs to spaces
text = text.replace("\t", " ")
# More than 1 space to 4 spaces
text = re.sub(r"[ ]{2,}", " ", text)
# Footnotes
text = re.sub(r"^\[[^]]*\][^(].*", "", text, flags=re.MULTILINE)
# Indented blocks of code
text = re.sub(r"^( {4,}[^-*]).*", "", text, flags=re.MULTILINE)
# Replace newlines with spaces for uniform handling
text = text.replace("\n", " ")
# Custom header IDs
text = re.sub(r"{#.*}", "", text)
# Remove images
text = re.sub(r"!\[[^\]]*\]\([^)]*\)", "", text)
# Remove HTML tags
text = re.sub(r"</?[^>]*>", "", text)
# Remove special characters
text = re.sub(r"[#*`~\-^=<>+|/:]", "", text)
# Remove footnote references
text = re.sub(r"\[[0-9]*\]", "", text)
# Remove enumerations
text = re.sub(r"[0-9#]*\.", "", text)
template = env.select_template(["snippets/list-events.jinja"])
html = template.render(events=events, filter=param[0], tag=getParam(param, 1))
return len(text.split())
return html
# jinja filter to make a slug out of a stirng
def slugify_filter(value):
return slugify(value)
# jinja filter for date formatting
def prettydate(value, format='%d/%m/%Y'):
def prettydate(value, format="%d/%m/%Y"):
return datetime.fromtimestamp(int(value)).strftime(format)
# jinja filter to replace shortcodes in HTML
def shortcode_filter(value):
shortcode_callbacks = {
"show": listDocuments,
"events": listEvents
}
shortcode_callbacks = {"show": listDocuments, "showImages": imageSpread}
def shortcode_replacer(match):
@ -95,13 +102,15 @@ def shortcode_filter(value):
env.filters["shortcode"] = shortcode_filter
env.filters["slugify"] = slugify_filter
env.filters["slugify"] = slugify
env.filters["prettydate"] = prettydate
# translate a single file into HTML
def render_single_file(page, path, dist, name = False):
def render_single_file(path, dist, name=False):
name = Path(path).stem
template = env.select_template([f"{name}.jinja", "post.jinja"])
page = get_page_data(path)
html = template.render(documents=documents, page=page, name=name)
if not os.path.exists(dist):
@ -113,76 +122,67 @@ def render_single_file(page, path, dist, name = False):
# find a pre-rendered page
def get_existing_page(path, slug):
stem = Path(path).stem;
folder = os.path.basename(os.path.dirname(path))
stem = Path(path).stem
folder = os.path.basename(os.path.dirname(path))
if stem == "index" and folder != "content":
folder = Path(path).parent.parent.name
if slug in documents:
return documents[slug]
if folder == "content":
return False
for doc in documents[folder]:
if doc:
if doc["slug"] == slug:
return doc
return [item for item in documents[folder] if item.get("slug") == slug]
return False
# build a slug including the folder
def get_slug(path, folder, filename):
if folder == "content":
return slugify(filename)
else:
return slugify(f"{folder}/{filename}")
# compile markdown into cited HTML
def get_page_data(path, isPreload=False):
def get_page_data(path):
global word_count
filename = Path(path).stem
folder = os.path.basename(os.path.dirname(path))
slug = get_slug(path, folder, filename)
prerendered = get_existing_page(path, slug)
folder = Path(path).parent.name
slug = slugify(filename) if folder == "content" else slugify(f"{folder}/{filename}")
if prerendered:
if prerendered := get_existing_page(path, slug):
return prerendered
page = frontmatter.load(path)
page['slug'] = slug
page.filename = filename
page.folder = folder
latex = page.content
page["slug"] = slug
page["filename"] = filename
page["folder"] = folder
if "start_datetime" in page:
page["has_passed"] = datetime.fromtimestamp(page["start_datetime"]) < now
if "`include" in page.content:
latex = pypandoc.convert_text(
content = page.content
if ".include" in page.content:
print("doing an include!")
content = pypandoc.convert_text(
page.content,
to='md',
format='md',
extra_args=[
"--lua-filter=include-files.lua"
])
to="md",
format="md",
extra_args=["--lua-filter=include-files.lua"],
)
page.body = pypandoc.convert_text(
latex,
content,
to="html",
format="md",
extra_args=[
"--citeproc",
"--bibliography=library.bib",
"--csl=apa.csl",
])
"--csl=harvard-cite-them-right.csl",
],
)
return page
# Do stuff to the circuit's pcb
def save_circuit_svg(filepath, outpath, name):
@ -193,18 +193,11 @@ def save_circuit_svg(filepath, outpath, name):
width_px = float(root.get("width", 0))
height_px = float(root.get("height", 0))
DPI = 300
# Convert px to mm
width_mm = (width_px * 25.4) / DPI > 15
height_mm = (height_px * 25.4) / DPI
# Set new width/height in mm
root.set("width", f"{width_px}mm")
root.set("height", f"{height_px}mm")
os.makedirs(outpath, exist_ok = True)
os.makedirs(outpath, exist_ok=True)
tree.write(f"{outpath}/{name}")
@ -212,28 +205,32 @@ def save_circuit_svg(filepath, outpath, name):
# combine HTML & data with Jinja templates
def render_posts(path, output_path=OUTPUT_D):
name = Path(path).stem
for filename in sorted(os.listdir(path)):
file_path = os.path.join(path, filename)
if filename.endswith(".md"):
print("is md", filename)
page = get_page_data(file_path)
render_single_file(page, file_path, f"{output_path}/{name}", name)
elif os.path.isdir(file_path):
for filename in sorted(os.listdir(path)):
file_path = Path(path) / filename
if file_path.suffix == ".md":
render_single_file(file_path, f"{output_path}/{name}")
elif file_path.is_dir():
render_posts(file_path, f"{output_path}/{name}")
elif filename.endswith(".svg"):
elif file_path.suffix == ".svg":
save_circuit_svg(file_path, f"{output_path}/{name}", filename)
elif Path(filename).suffix in [".jpeg", ".mp3", ".jpg", ".png"]:
os.makedirs(f"{output_path}/{name}", exist_ok = True)
elif file_path.suffix in {".jpeg", ".mp3", ".jpg", ".png", ".JPG", ".webp"}:
os.makedirs(f"{output_path}/{name}", exist_ok=True)
shutil.copyfile(file_path, f"{output_path}/{name}/{filename}")
else:
print("doing nothing with", filename)
# Pre-load before compiling
def preload_documents():
print("preload any needed data")
documents["meta"] = {"now": now.strftime("%d %B %Y")}
global documents
version = (
subprocess.check_output(["git", "rev-list", "--count", "HEAD"])
.decode("utf-8")
.strip()
)
documents["meta"] = {"now": now.strftime("%d %B %Y - %H:%M:%S"), "version": version}
for subdir in os.listdir(CONTENT_D):
path = os.path.join(CONTENT_D, subdir)
@ -243,57 +240,67 @@ def preload_documents():
documents.setdefault(name, [])
for filename in sorted(os.listdir(path)):
print(filename)
cpath = os.path.join(path, filename)
if filename.endswith(".md"):
documents[name].append(get_page_data(cpath, isPreload=True))
documents[name].append(get_page_data(cpath))
elif os.path.isdir(cpath):
documents[name].append(get_page_data(os.path.join(cpath, "index.md"), isPreload=True))
documents[name].append(
get_page_data(os.path.join(cpath, "index.md"))
)
elif Path(path).suffix == '.md':
documents[Path(path).stem] = get_page_data(path, isPreload=True)
def copy_assets():
if os.path.exists(OUT_ASSETS):
shutil.rmtree(OUT_ASSETS)
shutil.copytree(SRC_ASSETS, OUT_ASSETS)
elif Path(path).suffix == ".md":
documents[Path(path).stem] = get_page_data(path)
def get_inventory():
global documents
with open("src/content/component-inventory.csv") as f:
documents['inventory'] = []
for line in csv.DictReader(
f,
fieldnames=(
'ID',
'Amount',
'Name',
'Value',
'type',
'Date',
'Where',
'Mounting type')):
for line in csv.DictReader(f, fieldnames=('ID', 'Amount', 'Name', 'Value', 'type', 'Date', 'Where', 'Mounting type')):
documents['inventory'].append(line)
def get_wordcount():
global word_count
word_count += count_words_in_markdown(documents["thesis"].body)
for section in ["chapters", "components", "recipes"]:
for c in documents[section]:
if section == "recipes" or c["filename"] != "index":
count = count_words_in_markdown(c.body)
print(f"{c['filename']}: has {count} words")
word_count += count
print(f"word count: { word_count} ")
documents["meta"]["count"] = word_count
def main():
print("....Start putting together a new document....")
get_inventory()
preload_documents()
get_wordcount()
for subdir in os.listdir(CONTENT_D):
path = os.path.join(CONTENT_D, subdir)
if os.path.isdir(path):
print("rendering posts", path)
print("Compile: an entire directory", Path(path).name)
render_posts(path)
elif Path(path).suffix == '.md':
print("rendering single", path);
render_single_file(get_page_data(path), path, OUTPUT_D)
elif Path(path).suffix == ".md":
print("Compile: single page", Path(path).name)
render_single_file(path, OUTPUT_D)
elif Path(path).suffix in [".csv"]:
print("not compiling this file!")
print("Compile: not compiling ", Path(path).name)
if os.path.exists(OUT_ASSETS):
shutil.rmtree(OUT_ASSETS)
shutil.copytree(SRC_ASSETS, OUT_ASSETS)
print(f"total words: {word_count}")
copy_assets()
main()

321
harvard-cite-them-right.csl Normal file
View File

@ -0,0 +1,321 @@
<?xml version="1.0" encoding="utf-8"?>
<style xmlns="http://purl.org/net/xbiblio/csl" class="in-text" version="1.0" demote-non-dropping-particle="sort-only" default-locale="en-GB">
<info>
<title>Cite Them Right 12th edition - Harvard</title>
<id>http://www.zotero.org/styles/harvard-cite-them-right</id>
<link href="http://www.zotero.org/styles/harvard-cite-them-right" rel="self"/>
<link href="http://www.zotero.org/styles/harvard-cite-them-right-11th-edition" rel="template"/>
<link href="http://www.citethemrightonline.com/" rel="documentation"/>
<author>
<name>Patrick O'Brien</name>
</author>
<category citation-format="author-date"/>
<category field="generic-base"/>
<summary>Harvard according to Cite Them Right, 11th edition.</summary>
<updated>2022-06-27T11:10:37+00:00</updated>
<rights license="http://creativecommons.org/licenses/by-sa/3.0/">This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 License</rights>
</info>
<locale xml:lang="en-GB">
<terms>
<term name="editor" form="short">
<single>ed.</single>
<multiple>eds</multiple>
</term>
<term name="editortranslator" form="verb">edited and translated by</term>
<term name="edition" form="short">edn.</term>
</terms>
</locale>
<macro name="editor">
<choose>
<if type="chapter paper-conference" match="any">
<names variable="container-author" delimiter=", " suffix=", ">
<name and="text" initialize-with=". " delimiter=", " sort-separator=", " name-as-sort-order="all"/>
</names>
<choose>
<if variable="container-author" match="none">
<names variable="editor translator" delimiter=", ">
<name and="text" initialize-with="."/>
<label form="short" prefix=" (" suffix=")"/>
</names>
</if>
</choose>
</if>
</choose>
</macro>
<macro name="secondary-contributors">
<choose>
<if type="chapter paper-conference" match="none">
<names variable="editor translator" delimiter=". ">
<label form="verb" text-case="capitalize-first" suffix=" "/>
<name and="text" initialize-with="."/>
</names>
</if>
<else-if variable="container-author" match="any">
<names variable="editor translator" delimiter=". ">
<label form="verb" text-case="capitalize-first" suffix=" "/>
<name and="text" initialize-with=". " delimiter=", "/>
</names>
</else-if>
</choose>
</macro>
<macro name="author">
<names variable="author">
<name and="text" delimiter-precedes-last="never" initialize-with="." name-as-sort-order="all"/>
<label form="short" prefix=" (" suffix=")"/>
<et-al font-style="italic"/>
<substitute>
<names variable="editor"/>
<names variable="translator"/>
<choose>
<if type="article-newspaper article-magazine" match="any">
<text variable="container-title" text-case="title" font-style="italic"/>
</if>
<else>
<text macro="title"/>
</else>
</choose>
</substitute>
</names>
</macro>
<macro name="author-short">
<names variable="author">
<name form="short" and="text" delimiter=", " delimiter-precedes-last="never" initialize-with=". "/>
<et-al font-style="italic"/>
<substitute>
<names variable="editor"/>
<names variable="translator"/>
<choose>
<if type="article-newspaper article-magazine" match="any">
<text variable="container-title" text-case="title" font-style="italic"/>
</if>
<else>
<text macro="title"/>
</else>
</choose>
</substitute>
</names>
</macro>
<macro name="access">
<choose>
<if variable="DOI">
<group delimiter=": ">
<text term="available at" text-case="capitalize-first"/>
<text variable="DOI" prefix="https://doi.org/"/>
</group>
</if>
<else-if variable="URL">
<text term="available at" suffix=": " text-case="capitalize-first"/>
<text variable="URL"/>
<group prefix=" (" delimiter=": " suffix=")">
<text term="accessed" text-case="capitalize-first"/>
<date form="text" variable="accessed">
<date-part name="day"/>
<date-part name="month"/>
<date-part name="year"/>
</date>
</group>
</else-if>
</choose>
</macro>
<macro name="number-volumes">
<choose>
<if variable="volume" match="none">
<group delimiter=" " prefix="(" suffix=")">
<text variable="number-of-volumes"/>
<label variable="volume" form="short" strip-periods="true"/>
</group>
</if>
</choose>
</macro>
<macro name="title">
<choose>
<if type="bill book legal_case legislation motion_picture report song thesis webpage graphic" match="any">
<group delimiter=". ">
<group delimiter=" ">
<group delimiter=" ">
<text variable="title" font-style="italic"/>
<text variable="medium" prefix="[" suffix="]"/>
</group>
<text macro="number-volumes"/>
</group>
<text macro="edition"/>
</group>
</if>
<else>
<text variable="title" form="long" quotes="true"/>
</else>
</choose>
</macro>
<macro name="publisher">
<choose>
<if type="thesis">
<group delimiter=". ">
<text variable="genre"/>
<text variable="publisher"/>
</group>
</if>
<else-if type="report">
<group delimiter=". ">
<group delimiter=" ">
<text variable="genre"/>
<text variable="number"/>
</group>
<group delimiter=": ">
<text variable="publisher-place"/>
<text variable="publisher"/>
</group>
</group>
</else-if>
<else-if type="article-journal article-newspaper article-magazine" match="none">
<group delimiter=" ">
<group delimiter=", ">
<choose>
<if type="speech" variable="event" match="any">
<text variable="event" font-style="italic"/>
</if>
</choose>
<group delimiter=": ">
<text variable="publisher-place"/>
<text variable="publisher"/>
</group>
</group>
<group prefix="(" suffix=")" delimiter=", ">
<text variable="collection-title"/>
<text variable="collection-number"/>
</group>
</group>
</else-if>
</choose>
</macro>
<macro name="year-date">
<choose>
<if variable="issued">
<date variable="issued">
<date-part name="year"/>
</date>
<text variable="year-suffix"/>
</if>
<else>
<text term="no date"/>
<text variable="year-suffix" prefix=" "/>
</else>
</choose>
</macro>
<macro name="locator">
<choose>
<if type="article-journal">
<text variable="volume"/>
<text variable="issue" prefix="(" suffix=")"/>
</if>
</choose>
</macro>
<macro name="published-date">
<choose>
<if type="article-newspaper article-magazine post-weblog speech" match="any">
<date variable="issued">
<date-part name="day" suffix=" "/>
<date-part name="month" form="long"/>
</date>
</if>
</choose>
</macro>
<macro name="pages">
<choose>
<if type="chapter paper-conference article-journal article article-magazine article-newspaper book review review-book report" match="any">
<group delimiter=" ">
<label variable="page" form="short"/>
<text variable="page"/>
</group>
</if>
</choose>
</macro>
<macro name="container-title">
<choose>
<if variable="container-title">
<group delimiter=". ">
<group delimiter=" ">
<text variable="container-title" font-style="italic"/>
<choose>
<if type="article article-journal" match="any">
<choose>
<if match="none" variable="page volume">
<text value="Preprint" prefix="[" suffix="]"/>
</if>
</choose>
</if>
</choose>
</group>
<text macro="edition"/>
</group>
</if>
</choose>
</macro>
<macro name="edition">
<choose>
<if is-numeric="edition">
<group delimiter=" ">
<number variable="edition" form="ordinal"/>
<text term="edition" form="short" strip-periods="true"/>
</group>
</if>
<else>
<text variable="edition"/>
</else>
</choose>
</macro>
<macro name="container-prefix">
<choose>
<if type="chapter paper-conference" match="any">
<text term="in"/>
</if>
</choose>
</macro>
<citation et-al-min="4" et-al-use-first="1" disambiguate-add-year-suffix="true" disambiguate-add-names="true" disambiguate-add-givenname="true" collapse="year">
<sort>
<key macro="year-date"/>
</sort>
<layout prefix="(" suffix=")" delimiter="; ">
<group delimiter=", ">
<group delimiter=", ">
<text macro="author-short"/>
<text macro="year-date"/>
</group>
<group>
<label variable="locator" form="short" suffix=" "/>
<text variable="locator"/>
</group>
</group>
</layout>
</citation>
<bibliography and="text" et-al-min="4" et-al-use-first="1">
<sort>
<key macro="author"/>
<key macro="year-date"/>
<key variable="title"/>
</sort>
<layout suffix=".">
<group delimiter=". ">
<group delimiter=" ">
<text macro="author"/>
<text macro="year-date" prefix="(" suffix=")"/>
<group delimiter=", ">
<text macro="title"/>
<group delimiter=" ">
<text macro="container-prefix"/>
<text macro="editor"/>
<text macro="container-title"/>
</group>
</group>
</group>
<text macro="secondary-contributors"/>
<text macro="publisher"/>
</group>
<group delimiter=", " prefix=", ">
<text macro="locator"/>
<text macro="published-date"/>
<text macro="pages"/>
</group>
<text macro="access" prefix=". "/>
</layout>
</bibliography>
</style>

File diff suppressed because it is too large Load Diff

1
run.sh Normal file
View File

@ -0,0 +1 @@
php -S localhost:8080

View File

@ -1,12 +1,12 @@
const dialog = document.querySelector("dialog");
const closeDialog = (e) => {
e.stopPropagation();
console.log("close")
dialog.close();
document.body.removeEventListener("click", closeDialog);
}
const showLightbox = (e) => {
e.preventDefault();
e.stopPropagation();
@ -18,7 +18,5 @@ const showLightbox = (e) => {
document.body.addEventListener("click", closeDialog, false);
}
document.querySelectorAll("article img").forEach((img) => {
console.log(img);
img.addEventListener("click", showLightbox);
})

Binary file not shown.

After

Width:  |  Height:  |  Size: 78 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 897 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 210 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 946 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 309 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 445 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 840 KiB

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,3 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 150 150">
<path fill="none" stroke="#000" stroke-miterlimit="10" stroke-width="5" d="M74.88 150V12.5m.12 50 37.5-50M75 62.5l-37.5-50"/>
</svg>

After

Width:  |  Height:  |  Size: 200 B

View File

@ -0,0 +1,3 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 150 150">
<path fill="none" stroke="#000" stroke-miterlimit="10" stroke-width="5" d="M49.5 150 50 50H12.5m87.25 100L100 50h37.5"/>
</svg>

After

Width:  |  Height:  |  Size: 195 B

View File

@ -0,0 +1,3 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 150 150">
<path fill="none" stroke="#000" stroke-miterlimit="10" stroke-width="5" d="M50 150v-37.5L12.5 75 75 12.5 137.5 75 100 112.5V150"/>
</svg>

After

Width:  |  Height:  |  Size: 205 B

View File

@ -0,0 +1,6 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 150 150">
<g fill="none" stroke="#000" stroke-miterlimit="10" stroke-width="5">
<path d="M25 12.5h100s0 50-50 50-50-50-50-50Z"/>
<path d="M0 74.69h50V56.25m50 0V75h50"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 259 B

View File

@ -0,0 +1,3 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 150 150">
<path fill="none" stroke="#000" stroke-miterlimit="10" stroke-width="5" d="M37.5 37.5H75l50-31.25v137.5L75 112.5H37.5v-75zm37.5 0v75M0 49.94h37.5M0 100h37.5"/>
</svg>

After

Width:  |  Height:  |  Size: 234 B

View File

@ -0,0 +1,6 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 150 150">
<g fill="none" stroke="#000" stroke-miterlimit="10" stroke-width="5">
<circle cx="75" cy="75" r="50"/>
<path d="M0 49.94h31.25M0 100h31.25M125 18.75v112.5"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 257 B

View File

@ -0,0 +1,3 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 150 150">
<path fill="none" stroke="#000" stroke-miterlimit="10" stroke-width="5" d="M118.75 12.5v125S50 137.5 50 75s68.75-62.5 68.75-62.5ZM0 49.66l56.25.34M0 100.28l56.25-.28"/>
</svg>

After

Width:  |  Height:  |  Size: 243 B

View File

@ -0,0 +1,3 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 150 150">
<path fill="none" stroke="#000" stroke-miterlimit="10" stroke-width="5" d="M0 74.5h150M25 50s25 12.5 50 12.5S125 50 125 50M25 100s25-12.5 50-12.5 50 12.5 50 12.5M75 87.5V150"/>
</svg>

After

Width:  |  Height:  |  Size: 251 B

View File

@ -0,0 +1,3 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 150 150">
<path fill="none" stroke="#000" stroke-miterlimit="10" stroke-width="5" d="M0 74.97h65.5m84.5.28H84.5m0-31.25v62m-19-62v62"/>
</svg>

After

Width:  |  Height:  |  Size: 200 B

View File

@ -0,0 +1,3 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 150 150">
<path fill="none" stroke="#000" stroke-miterlimit="10" stroke-width="5" d="M0 74.97h65.5m84.5.28H84.5m0-31.25v62m-19-62v62m65.75-56h-25m12.5-12.5v25"/>
</svg>

After

Width:  |  Height:  |  Size: 226 B

View File

@ -0,0 +1,3 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 150 150">
<path fill="none" stroke="#000" stroke-miterlimit="10" stroke-width="5" d="M0 74.97h65.5m84.5.28H84.5m0-31.25v62m-19-62v62M25 104.25l98-57.5m8.25 15.75L112.5 31.25"/>
</svg>

After

Width:  |  Height:  |  Size: 241 B

View File

@ -0,0 +1,4 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 150 150">
<path fill="none" stroke="#000" stroke-miterlimit="10" stroke-width="5" d="M0 74.97h65.5m84.5.28H84.5m0-31.25v62m-19-62v62m-40.5.25 84.79-52.99"/>
<path d="M113.3 65.76 125 43.75l-24.91.87 13.21 21.14z"/>
</svg>

After

Width:  |  Height:  |  Size: 283 B

View File

@ -0,0 +1,3 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 150 150">
<path fill="none" stroke="#000" stroke-miterlimit="10" stroke-width="5" d="M150 74.97H84.5M0 75.25h66.5M54 44s12.5 12.25 12.5 31S54 106 54 106m30.5-62v62"/>
</svg>

After

Width:  |  Height:  |  Size: 231 B

View File

@ -0,0 +1,3 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 150 150">
<path fill="none" stroke="#000" stroke-miterlimit="10" stroke-width="5" d="M150 74.97H84.5M0 75.25h66.5M54 44s12.5 12.25 12.5 31S54 106 54 106m30.5-62v62m46.75-56h-25m12.5-12.5v25"/>
</svg>

After

Width:  |  Height:  |  Size: 257 B

View File

@ -0,0 +1,6 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 150 150">
<path fill="none" stroke="#000" stroke-miterlimit="10" stroke-width="5" d="m100 75-50 31.25v-62.5L100 75zm0-34.25v68.5M50 75H0m100 0h50m-50-43.75 18.75-18.75"/>
<path d="m122.49 19.34 3.87-14.45-14.45 3.87 10.58 10.58z"/>
<path fill="none" stroke="#000" stroke-miterlimit="10" stroke-width="5" d="m118.75 50 18.75-18.75"/>
<path d="m141.24 38.09 3.87-14.45-14.45 3.87 10.58 10.58z"/>
</svg>

After

Width:  |  Height:  |  Size: 470 B

View File

@ -0,0 +1,7 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 150 150">
<path fill="none" stroke="#000" stroke-miterlimit="10" stroke-width="5" d="m100 75-50 31.25v-62.5L100 75zm0-34.25v68.5M50 75H0m100 0h50M62.5 40.5V13.98"/>
<path d="M69.98 16.17 62.5 3.22l-7.48 12.95h14.96z"/>
<path fill="none" stroke="#000" stroke-miterlimit="10" stroke-width="5" d="M87.5 40.5V13.98"/>
<path d="M94.98 16.17 87.5 3.22l-7.48 12.95h14.96z"/>
<path fill="none" stroke="#000" stroke-miterlimit="10" stroke-width="5" d="M112.5 40.75v68.5"/>
</svg>

After

Width:  |  Height:  |  Size: 544 B

View File

@ -0,0 +1,6 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 150 150">
<path fill="none" stroke="#000" stroke-miterlimit="10" stroke-width="5" d="m100 75-50 31.25v-62.5L100 75zm0-34.25v68.5M50 75H0m100 0h50m-12.5-43.75L118.75 50"/>
<path d="m115.01 43.16-3.87 14.45 14.45-3.87-10.58-10.58z"/>
<path fill="none" stroke="#000" stroke-miterlimit="10" stroke-width="5" d="M118.75 12.5 100 31.25"/>
<path d="m96.26 24.41-3.87 14.45 14.45-3.87-10.58-10.58z"/>
</svg>

After

Width:  |  Height:  |  Size: 469 B

View File

@ -0,0 +1,3 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 150 150">
<path fill="none" stroke="#000" stroke-miterlimit="10" stroke-width="5" d="M100 37.5v75m0-37.5L43.75 40.75v71.75M0 75h150"/>
</svg>

After

Width:  |  Height:  |  Size: 199 B

View File

@ -0,0 +1,6 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 150 150">
<g fill="none" stroke="#000" stroke-miterlimit="10" stroke-width="5">
<path d="m100 75-50 31.25v-62.5L100 75zm-50 0H0m100 0h50"/>
<path d="M87.5 97v12.5H100v-69h12.5V53"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 271 B

View File

@ -0,0 +1,3 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 150 150">
<path fill="none" stroke="#000" stroke-miterlimit="10" stroke-width="5" d="m100 75-50 31.25v-62.5L100 75zm0-34.25v68.5M50 75H0m100 0h50"/>
</svg>

After

Width:  |  Height:  |  Size: 213 B

View File

@ -0,0 +1,6 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 150 150">
<g fill="none" stroke="#000" stroke-miterlimit="10" stroke-width="5">
<path d="m100 75-50 31.25v-62.5L100 75zm-50 0H0m100 0h50"/>
<path d="M87.5 109.25H100v-68.5H87.5"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 269 B

View File

@ -0,0 +1,3 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 150 150">
<path fill="none" stroke="#000" stroke-miterlimit="10" stroke-width="5" d="m92.75 75-50 31.25v-62.5l50 31.25zm-50 0H0m108.25 0H150m-54.25 37.5v-75m12.5 75v-75"/>
</svg>

After

Width:  |  Height:  |  Size: 236 B

View File

@ -0,0 +1,6 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 150 150">
<g fill="none" stroke="#000" stroke-miterlimit="10" stroke-width="5">
<path d="m100 75-50 31.25v-62.5L100 75zm-50 0H0m100 0h50"/>
<path d="M112.5 109.5 100 100V50l-12.5-9.5"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 275 B

View File

@ -0,0 +1,3 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 150 150">
<path fill="none" stroke="#000" stroke-miterlimit="10" stroke-width="5" d="M0 74.88 25 75m0-25h100v50H25zm100 25h25M43.75 50v50m62.5-50v50"/>
</svg>

After

Width:  |  Height:  |  Size: 216 B

View File

@ -0,0 +1,3 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 150 150">
<path fill="none" stroke="#000" stroke-miterlimit="10" stroke-width="5" d="M0 75.25 25 75s0-25 25-25 25 25 25 25 0 25 25 25 25-25 25-25h25"/>
</svg>

After

Width:  |  Height:  |  Size: 216 B

View File

@ -0,0 +1,3 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 150 150">
<path fill="none" stroke="#000" stroke-miterlimit="10" stroke-width="5" d="M0 74.88h150M25 50h100v50H25z"/>
</svg>

After

Width:  |  Height:  |  Size: 182 B

View File

@ -0,0 +1,6 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 150 150">
<g fill="none" stroke="#000" stroke-miterlimit="10" stroke-width="5">
<path d="M56.25 125 75 75h-.31V0"/>
<path d="m25 125 18.75-50h62.5L87.5 125"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 248 B

View File

@ -0,0 +1,3 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 150 150">
<path fill="none" stroke="#000" stroke-miterlimit="10" stroke-width="5" d="M75 0v75m-50 0h100m-56.25 50h12.5M50 100h50"/>
</svg>

After

Width:  |  Height:  |  Size: 196 B

View File

@ -0,0 +1,3 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 150 150">
<path fill="none" stroke="#000" stroke-miterlimit="10" stroke-width="5" d="M75 0v62.5m-50 0h100L75 125 25 62.5z"/>
</svg>

After

Width:  |  Height:  |  Size: 189 B

View File

@ -0,0 +1,3 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 150 150">
<path fill="none" stroke="#000" stroke-miterlimit="10" stroke-width="5" d="M25 25v100l100-50L25 25zm0 25H0m125 25h25M0 100h25m9.5-47H53m-9.25-9.25v18.5M34.5 97H53"/>
</svg>

After

Width:  |  Height:  |  Size: 240 B

View File

@ -0,0 +1,8 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 150 150">
<path fill="none" stroke="#000" stroke-miterlimit="10" stroke-width="5" d="M25 12.5h100v125H25zM25 50H0m25 50H0m125-50h25m-25 50h25"/>
<path d="m111.57 53.9 2 1.29-1.36 3.16-2-1.44a4.78 4.78 0 0 1-4 2.34 5.08 5.08 0 0 1-4.48-2.46 12.52 12.52 0 0 1-1.73-6.91 12.5 12.5 0 0 1 1.62-6.88 5.15 5.15 0 0 1 8.79 0 12.5 12.5 0 0 1 1.59 6.88c0 3.18-.43 4.02-.43 4.02Zm-2.37-1.33a13.51 13.51 0 0 0 .24-2.69 9.25 9.25 0 0 0-.94-4.7 2.76 2.76 0 0 0-5 0 9.22 9.22 0 0 0-1 4.69 9.44 9.44 0 0 0 1 4.75 2.84 2.84 0 0 0 2.41 1.58 2.41 2.41 0 0 0 1.9-.85l-2-1.44 1.52-2.66m4.24 52.65 2 1.29-1.36 3.16-2-1.44a4.78 4.78 0 0 1-4 2.34 5.08 5.08 0 0 1-4.48-2.46 12.52 12.52 0 0 1-1.73-6.91 12.5 12.5 0 0 1 1.62-6.88 5.15 5.15 0 0 1 8.79 0 12.5 12.5 0 0 1 1.59 6.88c0 3.18-.43 4.02-.43 4.02Zm-2.37-1.33a13.51 13.51 0 0 0 .24-2.69 9.25 9.25 0 0 0-.94-4.7 2.76 2.76 0 0 0-5 0 9.22 9.22 0 0 0-1 4.69 9.44 9.44 0 0 0 1 4.75 2.84 2.84 0 0 0 2.41 1.58 2.41 2.41 0 0 0 1.9-.85l-2-1.44 1.52-2.66"/>
<path fill="none" stroke="#000" stroke-miterlimit="10" stroke-width="5" d="M97 84.25h18.75"/>
<path d="M37.5 40.79H43a8.67 8.67 0 0 1 2.84.35 5 5 0 0 1 2.25 1.7 8.56 8.56 0 0 1 1.42 3 16.43 16.43 0 0 1 .49 4.35 14.62 14.62 0 0 1-.46 3.93A8.69 8.69 0 0 1 48 57.39a5.17 5.17 0 0 1-2.12 1.47 7.44 7.44 0 0 1-2.66.39H37.5Zm3 3.12v12.23h2.25a6.53 6.53 0 0 0 1.83-.14 2.53 2.53 0 0 0 1.21-.77 4.06 4.06 0 0 0 .79-1.78 14.31 14.31 0 0 0 .31-3.45 13.2 13.2 0 0 0-.31-3.29 4.48 4.48 0 0 0-.85-1.71 2.7 2.7 0 0 0-1.4-.87 10.82 10.82 0 0 0-2.47-.18Zm27.75-6.38 3.14-.34a4.57 4.57 0 0 0 1.15 2.63 3.23 3.23 0 0 0 2.34.84 3.3 3.3 0 0 0 2.35-.75 2.32 2.32 0 0 0 .77-1.75 1.79 1.79 0 0 0-.33-1.09 2.7 2.7 0 0 0-1.16-.79c-.38-.14-1.24-.41-2.59-.79a8.24 8.24 0 0 1-3.62-1.79 5 5 0 0 1-1.47-3.64 5.1 5.1 0 0 1 .69-2.59 4.49 4.49 0 0 1 2-1.84 7.19 7.19 0 0 1 3.14-.63 6.19 6.19 0 0 1 4.53 1.5 5.55 5.55 0 0 1 1.6 4l-3.23.16a3.2 3.2 0 0 0-.89-2 2.94 2.94 0 0 0-2-.61 3.39 3.39 0 0 0-2.2.65 1.37 1.37 0 0 0-.52 1.13 1.47 1.47 0 0 0 .48 1.1 7.91 7.91 0 0 0 3 1.21 14.32 14.32 0 0 1 3.48 1.3 4.74 4.74 0 0 1 1.77 1.84 5.94 5.94 0 0 1 .64 2.89 5.86 5.86 0 0 1-.76 2.92 4.8 4.8 0 0 1-2.16 2 8.12 8.12 0 0 1-3.48.66 6.39 6.39 0 0 1-4.66-1.59 7.31 7.31 0 0 1-2.01-4.63Zm.5 87.47v-18.46h5.91a7.88 7.88 0 0 1 3.24.49 3.65 3.65 0 0 1 1.61 1.77 6.62 6.62 0 0 1 .61 2.91 6 6 0 0 1-.92 3.43 4 4 0 0 1-2.75 1.71A7.06 7.06 0 0 1 78 118.4a21.07 21.07 0 0 1 1.6 3l1.7 3.6h-3.41l-2-4a25.94 25.94 0 0 0-1.48-2.71 2.14 2.14 0 0 0-.84-.77 3.53 3.53 0 0 0-1.41-.21h-.57V125Zm2.81-10.66h2.07a8.35 8.35 0 0 0 2.53-.22 1.64 1.64 0 0 0 .78-.78 3 3 0 0 0 .29-1.39 2.69 2.69 0 0 0-.38-1.5 1.61 1.61 0 0 0-1-.73 18.74 18.74 0 0 0-2-.06h-2.29Z"/>
<path fill="none" stroke="#000" stroke-width="5" d="M75.28 0v12.5M74.72 150v-12.5"/>
<path fill="none" stroke="#000" stroke-miterlimit="10" stroke-width="5" d="M25 87.5 50 100l-25 12.5v-25z"/>
</svg>

After

Width:  |  Height:  |  Size: 2.9 KiB

View File

@ -0,0 +1,6 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 150 150">
<path fill="none" stroke="#000" stroke-miterlimit="10" stroke-width="5" d="M25 12.5h100v125H25zM25 50H0m25 50H0m125-50h25m-25 50h25"/>
<path d="m111.57 53.9 2 1.29-1.36 3.16-2-1.44a4.78 4.78 0 0 1-4 2.34 5.08 5.08 0 0 1-4.48-2.46 12.52 12.52 0 0 1-1.73-6.91 12.5 12.5 0 0 1 1.62-6.88 5.15 5.15 0 0 1 8.79 0 12.5 12.5 0 0 1 1.59 6.88c0 3.18-.43 4.02-.43 4.02Zm-2.37-1.33a13.51 13.51 0 0 0 .24-2.69 9.25 9.25 0 0 0-.94-4.7 2.76 2.76 0 0 0-5 0 9.22 9.22 0 0 0-1 4.69 9.44 9.44 0 0 0 1 4.75 2.84 2.84 0 0 0 2.41 1.58 2.41 2.41 0 0 0 1.9-.85l-2-1.44 1.52-2.66m4.24 52.65 2 1.29-1.36 3.16-2-1.44a4.78 4.78 0 0 1-4 2.34 5.08 5.08 0 0 1-4.48-2.46 12.52 12.52 0 0 1-1.73-6.91 12.5 12.5 0 0 1 1.62-6.88 5.15 5.15 0 0 1 8.79 0 12.5 12.5 0 0 1 1.59 6.88c0 3.18-.43 4.02-.43 4.02Zm-2.37-1.33a13.51 13.51 0 0 0 .24-2.69 9.25 9.25 0 0 0-.94-4.7 2.76 2.76 0 0 0-5 0 9.22 9.22 0 0 0-1 4.69 9.44 9.44 0 0 0 1 4.75 2.84 2.84 0 0 0 2.41 1.58 2.41 2.41 0 0 0 1.9-.85l-2-1.44 1.52-2.66"/>
<path fill="none" stroke="#000" stroke-miterlimit="10" stroke-width="5" d="M97 84.25h18.75M25 62.5 50 75 25 87.5v-25zM0 74.53h25.06"/>
<path d="M46.13 40.5h3.93v11.67a11.4 11.4 0 0 1-.42 3.52 5.12 5.12 0 0 1-2.08 2.59 7.23 7.23 0 0 1-4 1 6.11 6.11 0 0 1-4.46-1.53c-1-1-1.56-3.75-1.57-5.72h3.72a9.46 9.46 0 0 0 .49 3.07 2.16 2.16 0 0 0 1.95 1 2.21 2.21 0 0 0 1.86-.71 5.29 5.29 0 0 0 .55-3ZM37.56 109V90.5h2.8v8.2L46 90.5h3.76l-5.22 7.19L50.06 109h-3.62l-3.81-8.66-2.27 3.08V109Z"/>
</svg>

After

Width:  |  Height:  |  Size: 1.5 KiB

View File

@ -0,0 +1,6 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 150 150">
<path fill="none" stroke="#000" stroke-miterlimit="10" stroke-width="5" d="M25 12.5h100v125H25zM25 50H0m25 50H0m125-50h25m-25 50h25"/>
<path d="m111.57 53.9 2 1.29-1.36 3.16-2-1.44a4.78 4.78 0 0 1-4 2.34 5.08 5.08 0 0 1-4.48-2.46 12.52 12.52 0 0 1-1.73-6.91 12.5 12.5 0 0 1 1.62-6.88 5.15 5.15 0 0 1 8.79 0 12.5 12.5 0 0 1 1.59 6.88c0 3.18-.43 4.02-.43 4.02Zm-2.37-1.33a13.51 13.51 0 0 0 .24-2.69 9.25 9.25 0 0 0-.94-4.7 2.76 2.76 0 0 0-5 0 9.22 9.22 0 0 0-1 4.69 9.44 9.44 0 0 0 1 4.75 2.84 2.84 0 0 0 2.41 1.58 2.41 2.41 0 0 0 1.9-.85l-2-1.44 1.52-2.66m4.24 52.65 2 1.29-1.36 3.16-2-1.44a4.78 4.78 0 0 1-4 2.34 5.08 5.08 0 0 1-4.48-2.46 12.52 12.52 0 0 1-1.73-6.91 12.5 12.5 0 0 1 1.62-6.88 5.15 5.15 0 0 1 8.79 0 12.5 12.5 0 0 1 1.59 6.88c0 3.18-.43 4.02-.43 4.02Zm-2.37-1.33a13.51 13.51 0 0 0 .24-2.69 9.25 9.25 0 0 0-.94-4.7 2.76 2.76 0 0 0-5 0 9.22 9.22 0 0 0-1 4.69 9.44 9.44 0 0 0 1 4.75 2.84 2.84 0 0 0 2.41 1.58 2.41 2.41 0 0 0 1.9-.85l-2-1.44 1.52-2.66"/>
<path fill="none" stroke="#000" stroke-miterlimit="10" stroke-width="5" d="M97 84.25h18.75M25 87.5 50 100l-25 12.5v-25z"/>
<path d="M42.17 59.25V43.67H37.5V40.5H50v3.17h-4.66v15.58Z"/>
</svg>

After

Width:  |  Height:  |  Size: 1.2 KiB

View File

@ -0,0 +1,6 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 150 150">
<path fill="none" stroke="#000" stroke-miterlimit="10" stroke-width="5" d="M25 12.5h100v125H25zM25 50H0m25 50H0m125-50h25m-25 50h25"/>
<path d="m111.57 53.9 2 1.29-1.36 3.16-2-1.44a4.78 4.78 0 0 1-4 2.34 5.08 5.08 0 0 1-4.48-2.46 12.52 12.52 0 0 1-1.73-6.91 12.5 12.5 0 0 1 1.62-6.88 5.15 5.15 0 0 1 8.79 0 12.5 12.5 0 0 1 1.59 6.88c0 3.18-.43 4.02-.43 4.02Zm-2.37-1.33a13.51 13.51 0 0 0 .24-2.69 9.25 9.25 0 0 0-.94-4.7 2.76 2.76 0 0 0-5 0 9.22 9.22 0 0 0-1 4.69 9.44 9.44 0 0 0 1 4.75 2.84 2.84 0 0 0 2.41 1.58 2.41 2.41 0 0 0 1.9-.85l-2-1.44 1.52-2.66m4.24 52.65 2 1.29-1.36 3.16-2-1.44a4.78 4.78 0 0 1-4 2.34 5.08 5.08 0 0 1-4.48-2.46 12.52 12.52 0 0 1-1.73-6.91 12.5 12.5 0 0 1 1.62-6.88 5.15 5.15 0 0 1 8.79 0 12.5 12.5 0 0 1 1.59 6.88c0 3.18-.43 4.02-.43 4.02Zm-2.37-1.33a13.51 13.51 0 0 0 .24-2.69 9.25 9.25 0 0 0-.94-4.7 2.76 2.76 0 0 0-5 0 9.22 9.22 0 0 0-1 4.69 9.44 9.44 0 0 0 1 4.75 2.84 2.84 0 0 0 2.41 1.58 2.41 2.41 0 0 0 1.9-.85l-2-1.44 1.52-2.66"/>
<path fill="none" stroke="#000" stroke-miterlimit="10" stroke-width="5" d="M97 84.25h18.75"/>
<path d="M37.5 109.21V90.75h12.19v3.12h-8.87V98h8.25v3.11h-8.25v5H50v3.11Zm0-68.42H43a8.67 8.67 0 0 1 2.84.35 5 5 0 0 1 2.25 1.7 8.56 8.56 0 0 1 1.42 3 16.43 16.43 0 0 1 .49 4.35 14.62 14.62 0 0 1-.46 3.93A8.69 8.69 0 0 1 48 57.39a5.17 5.17 0 0 1-2.12 1.47 7.44 7.44 0 0 1-2.66.39H37.5Zm3 3.12v12.23h2.25a6.53 6.53 0 0 0 1.83-.14 2.53 2.53 0 0 0 1.21-.77 4.06 4.06 0 0 0 .79-1.78 14.31 14.31 0 0 0 .31-3.45 13.2 13.2 0 0 0-.31-3.29 4.48 4.48 0 0 0-.85-1.71 2.7 2.7 0 0 0-1.4-.87 10.82 10.82 0 0 0-2.47-.18Z"/>
</svg>

After

Width:  |  Height:  |  Size: 1.6 KiB

View File

@ -0,0 +1,6 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 150 150">
<path fill="none" stroke="#000" stroke-miterlimit="10" stroke-width="5" d="M25 12.5h100v125H25zM25 50H0m25 50H0m125-50h25m-25 50h25"/>
<path d="m111.57 53.9 2 1.29-1.36 3.16-2-1.44a4.78 4.78 0 0 1-4 2.34 5.08 5.08 0 0 1-4.48-2.46 12.52 12.52 0 0 1-1.73-6.91 12.5 12.5 0 0 1 1.62-6.88 5.15 5.15 0 0 1 8.79 0 12.5 12.5 0 0 1 1.59 6.88c0 3.18-.43 4.02-.43 4.02Zm-2.37-1.33a13.51 13.51 0 0 0 .24-2.69 9.25 9.25 0 0 0-.94-4.7 2.76 2.76 0 0 0-5 0 9.22 9.22 0 0 0-1 4.69 9.44 9.44 0 0 0 1 4.75 2.84 2.84 0 0 0 2.41 1.58 2.41 2.41 0 0 0 1.9-.85l-2-1.44 1.52-2.66M37 53.05l3.14-.35a4.54 4.54 0 0 0 1.15 2.63 3.23 3.23 0 0 0 2.34.84 3.3 3.3 0 0 0 2.37-.75 2.32 2.32 0 0 0 .79-1.74 1.79 1.79 0 0 0-.33-1.09 2.7 2.7 0 0 0-1.16-.79c-.38-.14-1.24-.41-2.59-.79a8.35 8.35 0 0 1-3.64-1.78 5 5 0 0 1-1.47-3.64 5.09 5.09 0 0 1 .67-2.59 4.47 4.47 0 0 1 2-1.83 7.19 7.19 0 0 1 3.15-.63A6.19 6.19 0 0 1 47.94 42a5.54 5.54 0 0 1 1.6 4l-3.23.16a3.15 3.15 0 0 0-.89-2 2.94 2.94 0 0 0-2-.61 3.39 3.39 0 0 0-2.2.65 1.35 1.35 0 0 0-.52 1.12 1.46 1.46 0 0 0 .48 1.1 7.91 7.91 0 0 0 3 1.21A14.32 14.32 0 0 1 47.59 49a4.67 4.67 0 0 1 1.77 1.84 6.32 6.32 0 0 1-.12 5.78 4.74 4.74 0 0 1-2.16 2 8.12 8.12 0 0 1-3.48.66 6.43 6.43 0 0 1-4.66-1.58A7.3 7.3 0 0 1 37 53.05Zm.5 56.2V90.79h5.91a7.88 7.88 0 0 1 3.24.49 3.65 3.65 0 0 1 1.61 1.77 6.62 6.62 0 0 1 .61 2.95 6 6 0 0 1-.87 3.39 4 4 0 0 1-2.75 1.71 7.06 7.06 0 0 1 1.5 1.55 21.07 21.07 0 0 1 1.6 3l1.7 3.6h-3.41l-2-4a25.94 25.94 0 0 0-1.48-2.71 2.14 2.14 0 0 0-.84-.77 3.53 3.53 0 0 0-1.41-.21h-.57v7.71Zm2.81-10.66h2.07a8.35 8.35 0 0 0 2.53-.22 1.64 1.64 0 0 0 .78-.78A3 3 0 0 0 46 96.2a2.69 2.69 0 0 0-.38-1.5 1.61 1.61 0 0 0-1.07-.7 18.74 18.74 0 0 0-2-.06h-2.24Zm71.26 5.31 2 1.29-1.36 3.16-2-1.44a4.78 4.78 0 0 1-4 2.34 5.08 5.08 0 0 1-4.48-2.46 12.52 12.52 0 0 1-1.73-6.91 12.5 12.5 0 0 1 1.62-6.88 5.15 5.15 0 0 1 8.79 0 12.5 12.5 0 0 1 1.59 6.88c0 3.18-.43 4.02-.43 4.02Zm-2.37-1.33a13.51 13.51 0 0 0 .24-2.69 9.25 9.25 0 0 0-.94-4.7 2.76 2.76 0 0 0-5 0 9.22 9.22 0 0 0-1 4.69 9.44 9.44 0 0 0 1 4.75 2.84 2.84 0 0 0 2.41 1.58 2.41 2.41 0 0 0 1.9-.85l-2-1.44 1.52-2.66"/>
<path fill="none" stroke="#000" stroke-miterlimit="10" stroke-width="5" d="M97 84.25h18.75M25 75H0"/>
<path d="M37.48 84.31V65.85h12.19V69H40.8v4.09h8.25v3.11H40.8v5H50v3.11Z"/>
</svg>

After

Width:  |  Height:  |  Size: 2.3 KiB

View File

@ -0,0 +1,9 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 150 150">
<path fill="none" stroke="#000" stroke-miterlimit="10" stroke-width="5" d="M25 12.5h100v125H25zM25 50H0m25 50H0m125-50h25m-25 50h25"/>
<path d="m111.57 53.9 2 1.29-1.36 3.16-2-1.44a4.78 4.78 0 0 1-4 2.34 5.08 5.08 0 0 1-4.48-2.46 12.52 12.52 0 0 1-1.73-6.91 12.5 12.5 0 0 1 1.62-6.88 5.15 5.15 0 0 1 8.79 0 12.5 12.5 0 0 1 1.59 6.88c0 3.18-.43 4.02-.43 4.02Zm-2.37-1.33a13.51 13.51 0 0 0 .24-2.69 9.25 9.25 0 0 0-.94-4.7 2.76 2.76 0 0 0-5 0 9.22 9.22 0 0 0-1 4.69 9.44 9.44 0 0 0 1 4.75 2.84 2.84 0 0 0 2.41 1.58 2.41 2.41 0 0 0 1.9-.85l-2-1.44 1.52-2.66M37 53l3.14-.34a4.57 4.57 0 0 0 1.15 2.63 3.23 3.23 0 0 0 2.34.84 3.3 3.3 0 0 0 2.37-.72 2.32 2.32 0 0 0 .79-1.75 1.79 1.79 0 0 0-.33-1.09 2.7 2.7 0 0 0-1.16-.79c-.38-.14-1.24-.41-2.59-.79a8.24 8.24 0 0 1-3.64-1.79 5 5 0 0 1-1.47-3.64 5.1 5.1 0 0 1 .67-2.56 4.49 4.49 0 0 1 2-1.84 7.19 7.19 0 0 1 3.15-.63A6.19 6.19 0 0 1 47.94 42a5.55 5.55 0 0 1 1.6 4l-3.23.16a3.2 3.2 0 0 0-.89-2 2.94 2.94 0 0 0-2-.61 3.39 3.39 0 0 0-2.2.65 1.37 1.37 0 0 0-.52 1.13 1.47 1.47 0 0 0 .48 1.1 7.91 7.91 0 0 0 3 1.21 14.32 14.32 0 0 1 3.48 1.3 4.74 4.74 0 0 1 1.77 1.84 5.94 5.94 0 0 1 .57 2.87 5.86 5.86 0 0 1-.76 2.92 4.8 4.8 0 0 1-2.16 2 8.12 8.12 0 0 1-3.48.66 6.39 6.39 0 0 1-4.66-1.59A7.31 7.31 0 0 1 37 53Z"/>
<path fill="none" stroke="#000" stroke-miterlimit="10" stroke-width="5" d="M34.5 34.25h18.75"/>
<path d="M37.5 109.25V90.79h5.91a7.88 7.88 0 0 1 3.24.49 3.65 3.65 0 0 1 1.61 1.77 6.62 6.62 0 0 1 .61 2.95 6 6 0 0 1-.87 3.39 4 4 0 0 1-2.75 1.71 7.06 7.06 0 0 1 1.5 1.55 21.07 21.07 0 0 1 1.6 3l1.7 3.6h-3.41l-2-4a25.94 25.94 0 0 0-1.48-2.71 2.14 2.14 0 0 0-.84-.77 3.53 3.53 0 0 0-1.41-.21h-.57v7.71Zm2.81-10.66h2.07a8.35 8.35 0 0 0 2.53-.22 1.64 1.64 0 0 0 .78-.78A3 3 0 0 0 46 96.2a2.69 2.69 0 0 0-.38-1.5 1.61 1.61 0 0 0-1.07-.7 18.74 18.74 0 0 0-2-.06h-2.24Z"/>
<path fill="none" stroke="#000" stroke-miterlimit="10" stroke-width="5" d="M34.5 84.25h18.75"/>
<path d="m111.57 103.9 2 1.29-1.36 3.16-2-1.44a4.78 4.78 0 0 1-4 2.34 5.08 5.08 0 0 1-4.48-2.46 12.52 12.52 0 0 1-1.73-6.91 12.5 12.5 0 0 1 1.62-6.88 5.15 5.15 0 0 1 8.79 0 12.5 12.5 0 0 1 1.59 6.88c0 3.18-.43 4.02-.43 4.02Zm-2.37-1.33a13.51 13.51 0 0 0 .24-2.69 9.25 9.25 0 0 0-.94-4.7 2.76 2.76 0 0 0-5 0 9.22 9.22 0 0 0-1 4.69 9.44 9.44 0 0 0 1 4.75 2.84 2.84 0 0 0 2.41 1.58 2.41 2.41 0 0 0 1.9-.85l-2-1.44 1.52-2.66"/>
<path fill="none" stroke="#000" stroke-miterlimit="10" stroke-width="5" d="M97 84.25h18.75"/>
</svg>

After

Width:  |  Height:  |  Size: 2.5 KiB

View File

@ -0,0 +1,3 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 150 150">
<path fill="none" stroke="#000" stroke-miterlimit="10" stroke-width="5" d="M31.25 37.5h25c18.75 0 56.25 0 56.25 37.5S75 112.5 56.25 112.5h-25ZM0 49.81h31.25M0 100.06h31.25M112.5 75H150"/>
</svg>

After

Width:  |  Height:  |  Size: 262 B

View File

@ -0,0 +1,3 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 150 150">
<path fill="none" stroke="#000" stroke-miterlimit="10" stroke-width="5" d="M25 37.5v75L112.5 75 25 37.5zM25 75H0m112.5 0H150"/>
</svg>

After

Width:  |  Height:  |  Size: 202 B

View File

@ -0,0 +1,6 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 150 150">
<g fill="none" stroke="#000" stroke-miterlimit="10" stroke-width="5">
<path d="M22 37.5v75L112.5 75 22 37.5zM22 75H0m137.75 0H150"/>
<circle cx="128.13" cy="74.88" r="9.38"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 274 B

View File

@ -0,0 +1,6 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 150 150">
<g fill="none" stroke="#000" stroke-miterlimit="10" stroke-width="5">
<path d="M31.25 37.5h25c18.75 0 56.25 0 56.25 37.5S75 112.5 56.25 112.5h-25ZM0 49.81h31.25M0 100.06h31.25M134.5 75H150"/>
<circle cx="124.88" cy="74.88" r="9.38"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 333 B

View File

@ -0,0 +1,6 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 150 150">
<g fill="none" stroke="#000" stroke-miterlimit="10" stroke-width="5">
<path d="M31.25 37.5h25c37.5 0 56.25 37.5 56.25 37.5s-18.75 37.5-56.25 37.5h-25s12.5-18.75 12.5-37.5-12.5-37.5-12.5-37.5ZM0 49.81h37.5M0 100.06h37.5m97-24.93H150"/>
<circle cx="124.88" cy="75" r="9.38"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 373 B

View File

@ -0,0 +1,3 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 150 150">
<path fill="none" stroke="#000" stroke-miterlimit="10" stroke-width="5" d="M31.25 37.5h25c37.5 0 56.25 37.5 56.25 37.5s-18.75 37.5-56.25 37.5h-25s12.5-18.75 12.5-37.5-12.5-37.5-12.5-37.5ZM0 49.81h37.5M0 100.06h37.5m75-25.06H150"/>
</svg>

After

Width:  |  Height:  |  Size: 305 B

View File

@ -0,0 +1,7 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 150 150">
<g fill="none" stroke="#000" stroke-miterlimit="10" stroke-width="5">
<path d="M31.25 37.5h25c37.5 0 56.25 37.5 56.25 37.5s-18.75 37.5-56.25 37.5h-25s12.5-18.75 12.5-37.5-12.5-37.5-12.5-37.5ZM0 49.81h37.5M0 100.06h37.5m97-24.93H150"/>
<circle cx="124.88" cy="75" r="9.38"/>
<path d="M18.75 112.5s12.5-18.75 12.5-37.5-12.5-37.95-12.5-37.95"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 449 B

View File

@ -0,0 +1,6 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 150 150">
<g fill="none" stroke="#000" stroke-miterlimit="10" stroke-width="5">
<path d="M31.25 37.5h25c37.5 0 56.25 37.5 56.25 37.5s-18.75 37.5-56.25 37.5h-25s12.5-18.75 12.5-37.5-12.5-37.5-12.5-37.5ZM0 49.81h37.5M0 100.06h37.5m75-25.06H150"/>
<path d="M18.75 113s12.5-18.75 12.5-37.5-12.5-38-12.5-38"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 394 B

View File

@ -0,0 +1,3 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 150 150">
<path fill="none" stroke="#000" stroke-miterlimit="10" stroke-width="5" d="M25 25v100l100-50L25 25zm0 25H0m125 25h25M0 100h25m9.5-47H53m-9.25-9.25v18.5M34.5 97H53M74.69 0v50m.37 100v-50"/>
</svg>

After

Width:  |  Height:  |  Size: 263 B

View File

@ -0,0 +1,8 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 150 150">
<g fill="none" stroke="#000" stroke-miterlimit="10" stroke-width="5">
<path d="M19 25v100l100-50L19 25zm0 50H0m137.5 0H150"/>
<path d="M31.5 65.75h31.25V84.5"/>
<path d="M78.5 84.5H47V65.75"/>
<circle cx="131.5" cy="75" r="6.25"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 346 B

View File

@ -0,0 +1,7 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 150 150">
<g fill="none" stroke="#000" stroke-miterlimit="10" stroke-width="5">
<path d="M25 25v100l100-50L25 25zm0 50H0m125 0h25"/>
<path d="M37.5 84.5h31.25V65.75"/>
<path d="M84.5 65.75H53V84.5"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 297 B

View File

@ -0,0 +1,3 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 150 150">
<path fill="none" stroke="#000" stroke-linejoin="round" stroke-width="5" d="M0 75.13h12.5s0-18.82 15.63-18.82S43.75 75 43.75 75s0-18.75 15.63-18.75S75 75 75 75s0-18.75 15.63-18.75S106.25 75 106.25 75s0-18.75 15.63-18.75S137.5 75 137.5 75H150"/>
</svg>

After

Width:  |  Height:  |  Size: 319 B

View File

@ -0,0 +1,3 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 150 150">
<path fill="none" stroke="#000" stroke-miterlimit="10" stroke-width="5" d="m78.35 19.2 43.3 25-50 86.6-43.3-25zM0 75.13 45.75 75M150 75h-45.75"/>
</svg>

After

Width:  |  Height:  |  Size: 220 B

View File

@ -0,0 +1,3 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 150 150">
<path fill="none" stroke="#000" stroke-linejoin="round" stroke-width="5" d="M0 75.13h12.5s0-18.82 15.63-18.82S43.75 75 43.75 75s0-18.75 15.63-18.75S75 75 75 75s0-18.75 15.63-18.75S106.25 75 106.25 75s0-18.75 15.63-18.75S137.5 75 137.5 75H150M12.5 43.75h125m-125-12.5h125"/>
</svg>

After

Width:  |  Height:  |  Size: 348 B

View File

@ -0,0 +1,6 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 150 150">
<g fill="none" stroke="#000" stroke-width="5">
<path stroke-linejoin="round" d="M0 75.13h12.5s0-18.82 15.63-18.82S43.75 75 43.75 75s0-18.75 15.63-18.75S75 75 75 75s0-18.75 15.63-18.75S106.25 75 106.25 75s0-18.75 15.63-18.75S137.5 75 137.5 75H150"/>
<path stroke-miterlimit="10" d="M75 75v75m31.25-75v75"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 405 B

View File

@ -0,0 +1,5 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 150 150">
<path fill="none" stroke="#000" stroke-linejoin="round" stroke-width="5" d="M0 75.13h12.5s0-18.82 15.63-18.82S43.75 75 43.75 75s0-18.75 15.63-18.75S75 75 75 75s0-18.75 15.63-18.75S106.25 75 106.25 75s0-18.75 15.63-18.75S137.5 75 137.5 75H150"/>
<path fill="none" stroke="#000" stroke-miterlimit="10" stroke-width="5" d="m25 100 85.65-64.24"/>
<path d="M115.21 47.92 125 25l-24.75 2.98 14.96 19.94z"/>
</svg>

After

Width:  |  Height:  |  Size: 483 B

View File

@ -0,0 +1,3 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 150 150">
<path fill="none" stroke="#000" stroke-miterlimit="10" stroke-width="5" d="m25 75.06 37.5-37.5H125v75H62.5L25 75.06zm-25-.37h25m100 .37h25"/>
</svg>

After

Width:  |  Height:  |  Size: 216 B

View File

@ -0,0 +1,3 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 150 150">
<path fill="none" stroke="#000" stroke-miterlimit="10" stroke-width="5" d="M50 25h50v100H50zM37.5 43.75v62.5m75-62.5v62.5M0 74.63h37.5m75 .37H150"/>
</svg>

After

Width:  |  Height:  |  Size: 223 B

View File

@ -0,0 +1,3 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 150 150">
<path fill="none" stroke="#000" stroke-miterlimit="10" stroke-width="5" d="m125 75.06-37.5-37.5H25v75h62.5l37.5-37.5zM0 74.69h25m100 .37h25"/>
</svg>

After

Width:  |  Height:  |  Size: 217 B

View File

@ -0,0 +1,6 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 150 150">
<g fill="none" stroke="#000" stroke-miterlimit="10" stroke-width="5">
<circle cx="75" cy="75" r="50"/>
<path d="M0 75h50s0-25 25-25 25 25 25 25h50"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 249 B

View File

@ -0,0 +1,6 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 150 150">
<g fill="none" stroke="#000" stroke-miterlimit="10" stroke-width="5">
<circle cx="75" cy="75" r="50"/>
<path d="M0 75.25h25M125 75h25M39.5 39.5l71 71m-71 0 71-71"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 264 B

View File

@ -0,0 +1,18 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 150 150">
<path fill="none" stroke="#000" stroke-miterlimit="10" stroke-width="5" d="M25 62.5h25l-12.5 25-12.5-25zm-3 25h31M0 24.56l37.5.44v37.5M0 124.69l37.5.31V87.5M93.75 50v50M150 24.94l-37.5.06v25L93.75 62.5M150 124.88l-37.5.12v-25L93.75 87.5"/>
<path d="m106.58 87.84-7.67 11.27 13.62.91-5.95-12.18z"/>
<path fill="none" stroke="#000" stroke-miterlimit="10" stroke-width="5" d="M58.44 62.5h18.3"/>
<path d="M74.55 69.98 87.5 62.5l-12.95-7.48v14.96z"/>
<path fill="none" stroke="#000" stroke-miterlimit="10" stroke-width="5" d="M58.44 87.5h18.3"/>
<path d="M74.55 94.98 87.5 87.5l-12.95-7.48v14.96z"/>
<g fill="none" stroke="#000" stroke-miterlimit="10" stroke-width="5">
<path d="M137.5 138.75v5h-5"/>
<path stroke-dasharray="10.45 10.45" d="M122.05 143.75H22.73"/>
<path d="M17.5 143.75h-5v-5"/>
<path stroke-dasharray="9.81 9.81" d="M12.5 128.94V16.15"/>
<path d="M12.5 11.25v-5h5"/>
<path stroke-dasharray="10.45 10.45" d="M27.95 6.25h99.32"/>
<path d="M132.5 6.25h5v5"/>
<path stroke-dasharray="9.81 9.81" d="M137.5 21.06v112.79"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 1.2 KiB

View File

@ -0,0 +1,6 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 150 150">
<g fill="none" stroke="#000" stroke-miterlimit="10" stroke-width="5">
<circle cx="75" cy="75" r="18.75"/>
<path d="M0 75.19h56.25m37.5-.19H150"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 245 B

View File

@ -0,0 +1,14 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 150 150">
<path fill="none" stroke="#000" stroke-miterlimit="10" stroke-width="5" d="M25 12.5h100v25H25zM125 25h25M0 24.81h25M0 99.69h25"/>
<circle cx="31.25" cy="100" r="6.25" fill="none" stroke="#000" stroke-miterlimit="10" stroke-width="5"/>
<path fill="none" stroke="#000" stroke-miterlimit="10" stroke-width="5" d="M150 75.63H93.75"/>
<path d="M93.75 78h12.5L100 87.5 93.75 78z"/>
<path fill="none" stroke="#000" stroke-miterlimit="10" stroke-width="5" d="m37.25 104 75.25 8.5"/>
<g fill="none" stroke="#000" stroke-miterlimit="10" stroke-width="5">
<path d="M74.88 37.5V40"/>
<path stroke-dasharray="4.9 4.9" d="M74.88 44.9v56.4"/>
<path d="M74.88 103.75v2.5"/>
</g>
<path fill="none" stroke="#000" stroke-miterlimit="10" stroke-width="5" d="M150 124.38H93.75"/>
<path d="M93.75 122h12.5l-6.25-9.5-6.25 9.5z"/>
</svg>

After

Width:  |  Height:  |  Size: 937 B

View File

@ -0,0 +1,11 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 150 150">
<path fill="none" stroke="#000" stroke-miterlimit="10" stroke-width="5" d="M25 37.5h100v25H25zM125 50h25M0 49.81h25m125 50.07H93.75M0 99.69h25"/>
<circle cx="31.25" cy="100" r="6.25" fill="none" stroke="#000" stroke-miterlimit="10" stroke-width="5"/>
<path d="M93.75 102.25h12.5l-6.25 9.5-6.25-9.5z"/>
<path fill="none" stroke="#000" stroke-miterlimit="10" stroke-width="5" d="m37.25 102 75.25 10.5"/>
<g fill="none" stroke="#000" stroke-miterlimit="10" stroke-width="5">
<path d="M75 62.5V65"/>
<path stroke-dasharray="5.5 5.5" d="M75 70.5v30.25"/>
<path d="M75 103.5v2.5"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 699 B

View File

@ -0,0 +1,11 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 150 150">
<path fill="none" stroke="#000" stroke-miterlimit="10" stroke-width="5" d="M25 37.5h100v25H25zM125 50h25M0 49.81h25m125 50.07H93.75M0 99.69h25"/>
<circle cx="31.25" cy="100" r="6.25" fill="none" stroke="#000" stroke-miterlimit="10" stroke-width="5"/>
<path d="M93.75 102.25h12.5l-6.25 9.5-6.25-9.5z"/>
<path fill="none" stroke="#000" stroke-miterlimit="10" stroke-width="5" d="M37.25 104 100 137.5"/>
<g fill="none" stroke="#000" stroke-miterlimit="10" stroke-width="5">
<path d="M74.88 62.5V65"/>
<path stroke-dasharray="5 5" d="M74.88 70v47.5"/>
<path d="M74.88 120v2.5"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 698 B

View File

@ -0,0 +1,7 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 150 150">
<g fill="none" stroke="#000" stroke-miterlimit="10" stroke-width="5">
<path d="M62.5 6.25h25v37.5h-25zm0 18.75H0m150 0H87.5M0 99.88l50-.13 62.5 18.75"/>
<path stroke-dasharray="5" d="M75 43.75v62.5"/>
<path d="M100 106v18.75h50M150 75h-50"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 349 B

View File

@ -0,0 +1,7 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 150 150">
<g fill="none" stroke="#000" stroke-miterlimit="10" stroke-width="5">
<path d="M62.5 31.25h25v37.5h-25zm0 18.75H0m150 0H87.5M0 99.88l50 .12 62.5 12.5"/>
<path stroke-dasharray="5" d="M75 68.75v37.5"/>
<path d="M100 118.75V100h50"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 339 B

View File

@ -0,0 +1,6 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 150 150">
<g fill="none" stroke="#000" stroke-miterlimit="10" stroke-width="5">
<path d="M62.5 31.25h25v37.5h-25zm0 18.75H0m150 0H87.5M0 99.88l50 .12 50-18.75m0 18.75h50"/>
<path stroke-dasharray="5" d="M75 68.75V87.5"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 310 B

View File

@ -0,0 +1,18 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 150 150">
<g fill="none" stroke="#000" stroke-width="5">
<path stroke-linejoin="round" d="M0 25h12.5s0 18.81 15.63 18.81 15.62-18.68 15.62-18.68 0 18.75 15.63 18.75S75 25.13 75 25.13s0 18.75 15.63 18.75 15.62-18.75 15.62-18.75 0 18.75 15.63 18.75 15.62-18.75 15.62-18.75H150M12.5 56.25h125"/>
<g stroke-miterlimit="10">
<circle cx="37.5" cy="99" r="6.25"/>
<path d="M0 99.06h31.25"/>
</g>
<g stroke-miterlimit="10">
<circle cx="112.5" cy="75" r="6.25"/>
<path d="M150 74.94h-31.25"/>
</g>
<path stroke-miterlimit="10" d="m43.75 102.25 87.5 16.5"/>
<g stroke-miterlimit="10">
<circle cx="112.5" cy="125" r="6.25"/>
<path d="M150 124.94h-31.25"/>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 859 B

View File

@ -0,0 +1,11 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 150 150">
<g fill="none" stroke="#000" stroke-width="5">
<path stroke-linejoin="round" d="M0 25h12.5s0 18.81 15.63 18.81 15.62-18.68 15.62-18.68 0 18.75 15.63 18.75S75 25.13 75 25.13s0 18.75 15.63 18.75 15.62-18.75 15.62-18.75 0 18.75 15.63 18.75 15.62-18.75 15.62-18.75H150M12.5 56.25h125"/>
<g stroke-miterlimit="10">
<circle cx="37.5" cy="99" r="6.25"/>
<path d="M0 99.06h31.25"/>
<circle cx="112.5" cy="99" r="6.25"/>
<path d="M150 98.94h-31.25m-75 3.31 81.25 4"/>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 619 B

View File

@ -0,0 +1,11 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 150 150">
<g fill="none" stroke="#000" stroke-width="5">
<path stroke-linejoin="round" d="M0 25h12.5s0 18.81 15.63 18.81 15.62-18.68 15.62-18.68 0 18.75 15.63 18.75S75 25.13 75 25.13s0 18.75 15.63 18.75 15.62-18.75 15.62-18.75 0 18.75 15.63 18.75 15.62-18.75 15.62-18.75H150M12.5 56.25h125"/>
<g stroke-miterlimit="10">
<circle cx="37.5" cy="99" r="6.25"/>
<path d="M0 99.06h31.25"/>
<circle cx="112.5" cy="99" r="6.25"/>
<path d="M150 98.94h-31.25m-75 3.31 81.25 29"/>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 620 B

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