-
-
Notifications
You must be signed in to change notification settings - Fork 18
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #54 from coreyhu/googlefonts-template-integration
Googlefonts template integration
- Loading branch information
Showing
75 changed files
with
5,666 additions
and
40 deletions.
There are no files selected for viewing
This file was deleted.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,101 @@ | ||
name: Build font and specimen | ||
|
||
on: [push, release] | ||
|
||
jobs: | ||
build: | ||
runs-on: ubuntu-latest | ||
steps: | ||
- uses: actions/checkout@v2 | ||
- name: Set up Python 3.8 | ||
uses: actions/setup-python@v2 | ||
with: | ||
python-version: 3.8 | ||
- name: Install sys tools/deps | ||
run: | | ||
sudo apt-get update | ||
sudo apt-get install ttfautohint | ||
sudo snap install yq | ||
- uses: actions/cache@v2 | ||
with: | ||
path: ./venv/ | ||
key: ${{ runner.os }}-venv-${{ hashFiles('**/requirements*.txt') }} | ||
restore-keys: | | ||
${{ runner.os }}-venv- | ||
- name: Do first-run script if necessary | ||
run: make .init.stamp | ||
if: github.repository != 'googlefonts/googlefonts-project-template' | ||
- uses: stefanzweifel/git-auto-commit-action@v4 | ||
name: First-run setup | ||
if: github.repository != 'googlefonts/googlefonts-project-template' | ||
with: | ||
file_pattern: .init.stamp README.md requirements.txt OFL.txt | ||
commit_message: "Personalize for this repo" | ||
- name: gen zip file name | ||
id: zip-name | ||
shell: bash | ||
# Set the archive name to repo name + "-assets" e.g "MavenPro-assets" | ||
run: echo "ZIP_NAME=$(echo '${{ github.repository }}' | awk -F '/' '{print $2}')-fonts" >> $GITHUB_ENV | ||
# If a new release is cut, use the release tag to auto-bump the source files | ||
- name: Bump release | ||
if: github.event_name == 'release' | ||
run: | | ||
. venv/bin/activate | ||
SRCS=$(yq e ".sources[]" sources/config.yaml) | ||
TAG_NAME=${GITHUB_REF/refs\/tags\//} | ||
echo "Bumping $SRCS to $TAG_NAME" | ||
for src in $SRCS | ||
do | ||
bumpfontversion sources/$src --new-version $TAG_NAME; | ||
done | ||
- name: Build font | ||
run: make build | ||
- name: Check with fontbakery | ||
run: make test | ||
continue-on-error: true | ||
- name: proof | ||
run: make proof | ||
- name: setup site | ||
run: cp scripts/index.html out/index.html | ||
- name: Deploy | ||
uses: peaceiris/actions-gh-pages@v3 | ||
if: ${{ github.ref == 'refs/heads/main' }} | ||
with: | ||
github_token: ${{ secrets.GITHUB_TOKEN }} | ||
publish_dir: ./out | ||
- name: Archive artifacts | ||
uses: actions/upload-artifact@v2 | ||
with: | ||
name: ${{ env.ZIP_NAME }} | ||
path: | | ||
fonts | ||
out | ||
outputs: | ||
zip_name: ${{ env.ZIP_NAME }} | ||
release: | ||
# only run if the commit is tagged... | ||
if: github.event_name == 'release' | ||
# ... and it builds successfully | ||
needs: | ||
- build | ||
runs-on: ubuntu-latest | ||
env: | ||
ZIP_NAME: ${{ needs.build.outputs.zip_name }} | ||
steps: | ||
- uses: actions/checkout@v2 | ||
- name: Download artefact files | ||
uses: actions/download-artifact@v2 | ||
with: | ||
name: ${{ env.ZIP_NAME }} | ||
path: ${{ env.ZIP_NAME }} | ||
- name: Zip files | ||
run: zip -r ${{ env.ZIP_NAME }}.zip ${{ env.ZIP_NAME }} | ||
- name: Upload binaries to release | ||
uses: svenstaro/upload-release-action@v2 | ||
with: | ||
repo_token: ${{ secrets.GITHUB_TOKEN }} | ||
file: ${{ env.ZIP_NAME }}.zip | ||
asset_name: ${{ env.ZIP_NAME }}.zip | ||
tag: ${{ github.ref }} | ||
overwrite: true | ||
body: "Production ready fonts" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,5 +1,21 @@ | ||
.DS_Store | ||
*~ | ||
venv | ||
build.stamp | ||
proof | ||
fonts | ||
node_modules | ||
package-lock.json | ||
package.json | ||
sources/master_ufo | ||
sources/instance_ufo | ||
.vscode/* | ||
venv/ | ||
.vscode | ||
|
||
# OS generated files # | ||
###################### | ||
.DS_Store | ||
.DS_Store? | ||
._* | ||
.Spotlight-V100 | ||
.Trashes | ||
ehthumbs.db | ||
Thumbs.db |
Empty file.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,55 @@ | ||
SOURCES=$(shell python3 scripts/read-config.py --sources ) | ||
FAMILY=$(shell python3 scripts/read-config.py --family ) | ||
DRAWBOT_SCRIPTS=$(shell ls documentation/*.py) | ||
DRAWBOT_OUTPUT=$(shell ls documentation/*.py | sed 's/\.py/.png/g') | ||
|
||
help: | ||
@echo "###" | ||
@echo "# Build targets for $(FAMILY)" | ||
@echo "###" | ||
@echo | ||
@echo " make build: Builds the fonts and places them in the fonts/ directory" | ||
@echo " make test: Tests the fonts with fontbakery" | ||
@echo " make proof: Creates HTML proof documents in the proof/ directory" | ||
@echo " make images: Creates PNG specimen images in the documentation/ directory" | ||
@echo | ||
|
||
build: build.stamp | ||
|
||
venv: venv/touchfile | ||
|
||
build.stamp: venv .init.stamp sources/config.yaml $(SOURCES) | ||
. venv/bin/activate; rm -rf fonts/; gftools builder sources/config.yaml | ||
. venv/bin/activate; fonttools varLib.instancer fonts/variable/Urbanist\[ital,wght\].ttf ital=0 -o fonts/variable/Urbanist\[wght\].ttf --update-name-table | ||
. venv/bin/activate; fonttools varLib.instancer fonts/variable/Urbanist\[ital,wght\].ttf ital=1 -o fonts/variable/Urbanist-Italic\[wght\].ttf --update-name-table | ||
touch build.stamp | ||
|
||
.init.stamp: venv | ||
. venv/bin/activate; python3 scripts/first-run.py | ||
|
||
venv/touchfile: requirements.txt | ||
test -d venv || python3 -m venv venv | ||
. venv/bin/activate; pip install -Ur requirements.txt | ||
touch venv/touchfile | ||
|
||
test: venv build.stamp | ||
. venv/bin/activate; mkdir -p out/ out/fontbakery; fontbakery check-googlefonts -l WARN --succinct --badges out/badges --html out/fontbakery/fontbakery-report.html --ghmarkdown out/fontbakery/fontbakery-report.md $(shell find fonts/ttf -type f) | ||
|
||
proof: venv build.stamp | ||
. venv/bin/activate; mkdir -p out/ out/proof; gftools gen-html proof $(shell find fonts/ttf -type f) -o out/proof | ||
|
||
images: venv build.stamp $(DRAWBOT_OUTPUT) | ||
git add documentation/*.png && git commit -m "Rebuild images" documentation/*.png | ||
|
||
%.png: %.py build.stamp | ||
python3 $< --output $@ | ||
|
||
clean: | ||
rm -rf venv | ||
find . -name "*.pyc" | xargs rm delete | ||
|
||
update-ufr: | ||
npx update-template https://github.com/googlefonts/Unified-Font-Repository/ | ||
|
||
update: | ||
pip install --upgrade $(dependency); pip freeze > requirements.txt |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,135 @@ | ||
# This script is meant to be run from the root level | ||
# of your font's git repository. For example, from a Unix terminal: | ||
# $ git clone my-font | ||
# $ cd my-font | ||
# $ python3 documentation/image1.py --output documentation/image1.png | ||
|
||
# Import moduels from external python packages: https://pypi.org/ | ||
from drawbot_skia.drawbot import * | ||
from fontTools.ttLib import TTFont | ||
from fontTools.misc.fixedTools import floatToFixedToStr | ||
|
||
# Import moduels from the Python Standard Library: https://docs.python.org/3/library/ | ||
import subprocess | ||
import sys | ||
import argparse | ||
|
||
# Constants, these are the main "settings" for the image | ||
WIDTH, HEIGHT, MARGIN, FRAMES = 2048, 2048, 128, 1 | ||
FONT_PATH = "fonts/ttf/Rubik-Regular.ttf" | ||
FONT_LICENSE = "OFL v1.1" | ||
AUXILIARY_FONT = "Helvetica" | ||
AUXILIARY_FONT_SIZE = 48 | ||
BIG_TEXT = "Aa" | ||
BIG_TEXT_FONT_SIZE = 1024 | ||
BIG_TEXT_SIDE_MARGIN = MARGIN * 3.1 | ||
BIG_TEXT_BOTTOM_MARGIN = MARGIN * 5.5 | ||
GRID_VIEW = False # Change this to "True" for a grid overlay | ||
|
||
# Handel the "--output" flag | ||
# For example: $ python3 documentation/image1.py --output documentation/image1.png | ||
parser = argparse.ArgumentParser() | ||
parser.add_argument("--output", metavar="PNG", help="where to write the PNG file") | ||
args = parser.parse_args() | ||
|
||
# Load the font with the parts of fonttools that are imported with the line: | ||
# from fontTools.ttLib import TTFont | ||
# Docs Link: https://fonttools.readthedocs.io/en/latest/ttLib/ttFont.html | ||
ttFont = TTFont(FONT_PATH) | ||
|
||
# Constants that are worked out dynamically | ||
MY_URL = subprocess.check_output("git remote get-url origin", shell=True).decode() | ||
MY_HASH = subprocess.check_output("git rev-parse --short HEAD", shell=True).decode() | ||
FONT_NAME = ttFont["name"].getDebugName(4) | ||
FONT_VERSION = "v%s" % floatToFixedToStr(ttFont["head"].fontRevision, 16) | ||
|
||
|
||
# Draws a grid | ||
def grid(): | ||
stroke(1, 0, 0, 0.75) | ||
strokeWidth(2) | ||
STEP_X, STEP_Y = 0, 0 | ||
INCREMENT_X, INCREMENT_Y = MARGIN / 2, MARGIN / 2 | ||
rect(MARGIN, MARGIN, WIDTH - (MARGIN * 2), HEIGHT - (MARGIN * 2)) | ||
for x in range(29): | ||
polygon((MARGIN + STEP_X, MARGIN), (MARGIN + STEP_X, HEIGHT - MARGIN)) | ||
STEP_X += INCREMENT_X | ||
for y in range(29): | ||
polygon((MARGIN, MARGIN + STEP_Y), (WIDTH - MARGIN, MARGIN + STEP_Y)) | ||
STEP_Y += INCREMENT_Y | ||
polygon((WIDTH / 2, 0), (WIDTH / 2, HEIGHT)) | ||
polygon((0, HEIGHT / 2), (WIDTH, HEIGHT / 2)) | ||
|
||
|
||
# Remap input range to VF axis range | ||
# This is useful for animation | ||
# (E.g. sinewave(-1,1) to wght(100,900)) | ||
def remap(value, inputMin, inputMax, outputMin, outputMax): | ||
inputSpan = inputMax - inputMin # FIND INPUT RANGE SPAN | ||
outputSpan = outputMax - outputMin # FIND OUTPUT RANGE SPAN | ||
valueScaled = float(value - inputMin) / float(inputSpan) | ||
return outputMin + (valueScaled * outputSpan) | ||
|
||
|
||
# Draw the page/frame and a grid if "GRID_VIEW" is set to "True" | ||
def draw_background(): | ||
newPage(WIDTH, HEIGHT) | ||
fill(0) | ||
rect(-2, -2, WIDTH + 2, HEIGHT + 2) | ||
if GRID_VIEW: | ||
grid() | ||
else: | ||
pass | ||
|
||
|
||
# Draw main text | ||
def draw_main_text(): | ||
fill(1) | ||
stroke(None) | ||
font(FONT_PATH) | ||
fontSize(BIG_TEXT_FONT_SIZE) | ||
# Adjust this line to center main text manually. | ||
# TODO: This should be done automatically when drawbot-skia | ||
# has support for textBox() and FormattedString | ||
#text(BIG_TEXT, ((WIDTH / 2) - MARGIN * 4.75, (HEIGHT / 2) - MARGIN * 2.5)) | ||
text(BIG_TEXT, (BIG_TEXT_SIDE_MARGIN, BIG_TEXT_BOTTOM_MARGIN)) | ||
|
||
|
||
# Divider lines | ||
def draw_divider_lines(): | ||
stroke(1) | ||
strokeWidth(4) | ||
lineCap("round") | ||
line((MARGIN, HEIGHT - MARGIN), (WIDTH - MARGIN, HEIGHT - MARGIN)) | ||
line((MARGIN, MARGIN + (MARGIN / 2)), (WIDTH - MARGIN, MARGIN + (MARGIN / 2))) | ||
stroke(None) | ||
|
||
|
||
# Draw text describing the font and it's git status & repo URL | ||
def draw_auxiliary_text(): | ||
# Setup | ||
font(AUXILIARY_FONT) | ||
fontSize(AUXILIARY_FONT_SIZE) | ||
POS_TOP_LEFT = (MARGIN, HEIGHT - MARGIN * 1.5) | ||
POS_TOP_RIGHT = (WIDTH - MARGIN, HEIGHT - MARGIN * 1.5) | ||
POS_BOTTOM_LEFT = (MARGIN, MARGIN) | ||
POS_BOTTOM_RIGHT = (WIDTH - MARGIN * 0.95, MARGIN) | ||
URL_AND_HASH = MY_URL + "at commit " + MY_HASH | ||
URL_AND_HASH = URL_AND_HASH.replace("\n", " ") | ||
# Draw Text | ||
text(FONT_NAME, POS_TOP_LEFT, align="left") | ||
text(FONT_VERSION, POS_TOP_RIGHT, align="right") | ||
text(URL_AND_HASH, POS_BOTTOM_LEFT, align="left") | ||
text(FONT_LICENSE, POS_BOTTOM_RIGHT, align="right") | ||
|
||
|
||
# Build and save the image | ||
if __name__ == "__main__": | ||
draw_background() | ||
draw_main_text() | ||
draw_divider_lines() | ||
draw_auxiliary_text() | ||
# Save output, using the "--output" flag location | ||
saveImage(args.output) | ||
# Print done in the terminal | ||
print("DrawBot: Done") |
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.
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.
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.
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.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,7 @@ | ||
{ | ||
"color": "green", | ||
"label": "Google Fonts", | ||
"logoSvg": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 294 294\"><style>.a{fill:#333;}</style><path d=\"M147 0C228 0 294 66 294 147 294 228 228 294 147 294 66 294 0 228 0 147 0 66 66 0 147 0Z\" fill=\"#b3eeff\"/><path d=\"M102 90C30 56 28 161 92 148L98 236C132 234 162 233 184 235L189 162C189 153 177 166 142 146 169 151 185 150 195 145 227 155 253 141 246 111 240 88 217 81 185 76 138 70 138 113 102 90Z\" fill=\"#fff\"/><path d=\"M105 162L91 162 93 238 146 237 146 224 106 225 106 207 142 206 141 194 106 195Z\" class=\"a\"/><path d=\"M196 162L195 195 159 194 158 206 194 207 193 226 154 224 154 236 206 239 209 163Z\" class=\"a\"/><path d=\"M204 72L203 84 205 85C212 86 218 88 223 90 227 92 230 95 233 98 236 101 238 104 239 107 240 110 240 114 240 117 240 120 239 124 237 127 236 130 234 133 231 135 228 137 225 138 222 139 218 140 214 140 210 140 206 139 202 138 197 136 192 133 187 130 183 125L182 124 173 131 174 133C180 139 186 144 194 148 200 151 206 153 211 154 217 154 222 154 227 152 232 151 236 148 240 145 244 142 247 138 249 133 252 128 253 123 254 118 254 113 254 108 252 103 250 99 247 94 243 90 239 86 234 82 228 79 221 75 214 73 206 72Z\" class=\"a\"/><path d=\"M78 77C76 77 74 78 72 78 68 79 63 80 60 82 56 84 53 86 50 89 47 92 45 95 43 99 42 102 41 106 40 110 39 114 39 117 40 121 40 125 41 129 43 132 44 136 47 139 50 142 52 145 56 148 61 150 65 152 70 154 76 155 90 157 101 155 109 148L114 117 77 111 76 123 99 127 97 141C92 143 87 144 80 143 74 142 69 140 65 137 60 134 57 130 55 126 53 121 53 116 53 111 54 107 55 104 57 101 60 98 62 96 65 94 68 92 72 91 75 91 79 90 83 90 86 90 90 91 94 92 98 94 101 95 104 97 106 99L108 100 115 90 114 89C106 83 98 80 88 78 84 78 81 77 78 77Z\" class=\"a\"/><path d=\"M175 69C173 69 171 69 170 70 168 70 166 71 164 71 163 72 161 73 159 74L116 96 123 108 166 86C166 85 167 85 168 85 168 84 169 84 170 84 172 83 173 83 174 83 175 83 176 83 177 84 178 84 180 84 181 85 182 86 183 87 185 89 186 90 187 92 188 94 189 96 190 98 191 101L191 103 203 99 202 97C201 94 200 90 198 87 197 84 195 81 193 78 191 76 189 74 187 73 185 72 183 71 181 70 179 69 177 69 175 69Z\" class=\"a\"/></svg>", | ||
"message": "88%", | ||
"schemaVersion": 1 | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,7 @@ | ||
{ | ||
"color": "yellow", | ||
"label": "Outline Correctness Checks", | ||
"logoSvg": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 294 294\"><style>.a{fill:#333;}</style><path d=\"M147 0C228 0 294 66 294 147 294 228 228 294 147 294 66 294 0 228 0 147 0 66 66 0 147 0Z\" fill=\"#b3eeff\"/><path d=\"M102 90C30 56 28 161 92 148L98 236C132 234 162 233 184 235L189 162C189 153 177 166 142 146 169 151 185 150 195 145 227 155 253 141 246 111 240 88 217 81 185 76 138 70 138 113 102 90Z\" fill=\"#fff\"/><path d=\"M105 162L91 162 93 238 146 237 146 224 106 225 106 207 142 206 141 194 106 195Z\" class=\"a\"/><path d=\"M196 162L195 195 159 194 158 206 194 207 193 226 154 224 154 236 206 239 209 163Z\" class=\"a\"/><path d=\"M204 72L203 84 205 85C212 86 218 88 223 90 227 92 230 95 233 98 236 101 238 104 239 107 240 110 240 114 240 117 240 120 239 124 237 127 236 130 234 133 231 135 228 137 225 138 222 139 218 140 214 140 210 140 206 139 202 138 197 136 192 133 187 130 183 125L182 124 173 131 174 133C180 139 186 144 194 148 200 151 206 153 211 154 217 154 222 154 227 152 232 151 236 148 240 145 244 142 247 138 249 133 252 128 253 123 254 118 254 113 254 108 252 103 250 99 247 94 243 90 239 86 234 82 228 79 221 75 214 73 206 72Z\" class=\"a\"/><path d=\"M78 77C76 77 74 78 72 78 68 79 63 80 60 82 56 84 53 86 50 89 47 92 45 95 43 99 42 102 41 106 40 110 39 114 39 117 40 121 40 125 41 129 43 132 44 136 47 139 50 142 52 145 56 148 61 150 65 152 70 154 76 155 90 157 101 155 109 148L114 117 77 111 76 123 99 127 97 141C92 143 87 144 80 143 74 142 69 140 65 137 60 134 57 130 55 126 53 121 53 116 53 111 54 107 55 104 57 101 60 98 62 96 65 94 68 92 72 91 75 91 79 90 83 90 86 90 90 91 94 92 98 94 101 95 104 97 106 99L108 100 115 90 114 89C106 83 98 80 88 78 84 78 81 77 78 77Z\" class=\"a\"/><path d=\"M175 69C173 69 171 69 170 70 168 70 166 71 164 71 163 72 161 73 159 74L116 96 123 108 166 86C166 85 167 85 168 85 168 84 169 84 170 84 172 83 173 83 174 83 175 83 176 83 177 84 178 84 180 84 181 85 182 86 183 87 185 89 186 90 187 92 188 94 189 96 190 98 191 101L191 103 203 99 202 97C201 94 200 90 198 87 197 84 195 81 193 78 191 76 189 74 187 73 185 72 183 71 181 70 179 69 177 69 175 69Z\" class=\"a\"/></svg>", | ||
"message": "66%", | ||
"schemaVersion": 1 | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,7 @@ | ||
{ | ||
"color": "inactive", | ||
"label": "Shaping Checks", | ||
"logoSvg": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 294 294\"><style>.a{fill:#333;}</style><path d=\"M147 0C228 0 294 66 294 147 294 228 228 294 147 294 66 294 0 228 0 147 0 66 66 0 147 0Z\" fill=\"#b3eeff\"/><path d=\"M102 90C30 56 28 161 92 148L98 236C132 234 162 233 184 235L189 162C189 153 177 166 142 146 169 151 185 150 195 145 227 155 253 141 246 111 240 88 217 81 185 76 138 70 138 113 102 90Z\" fill=\"#fff\"/><path d=\"M105 162L91 162 93 238 146 237 146 224 106 225 106 207 142 206 141 194 106 195Z\" class=\"a\"/><path d=\"M196 162L195 195 159 194 158 206 194 207 193 226 154 224 154 236 206 239 209 163Z\" class=\"a\"/><path d=\"M204 72L203 84 205 85C212 86 218 88 223 90 227 92 230 95 233 98 236 101 238 104 239 107 240 110 240 114 240 117 240 120 239 124 237 127 236 130 234 133 231 135 228 137 225 138 222 139 218 140 214 140 210 140 206 139 202 138 197 136 192 133 187 130 183 125L182 124 173 131 174 133C180 139 186 144 194 148 200 151 206 153 211 154 217 154 222 154 227 152 232 151 236 148 240 145 244 142 247 138 249 133 252 128 253 123 254 118 254 113 254 108 252 103 250 99 247 94 243 90 239 86 234 82 228 79 221 75 214 73 206 72Z\" class=\"a\"/><path d=\"M78 77C76 77 74 78 72 78 68 79 63 80 60 82 56 84 53 86 50 89 47 92 45 95 43 99 42 102 41 106 40 110 39 114 39 117 40 121 40 125 41 129 43 132 44 136 47 139 50 142 52 145 56 148 61 150 65 152 70 154 76 155 90 157 101 155 109 148L114 117 77 111 76 123 99 127 97 141C92 143 87 144 80 143 74 142 69 140 65 137 60 134 57 130 55 126 53 121 53 116 53 111 54 107 55 104 57 101 60 98 62 96 65 94 68 92 72 91 75 91 79 90 83 90 86 90 90 91 94 92 98 94 101 95 104 97 106 99L108 100 115 90 114 89C106 83 98 80 88 78 84 78 81 77 78 77Z\" class=\"a\"/><path d=\"M175 69C173 69 171 69 170 70 168 70 166 71 164 71 163 72 161 73 159 74L116 96 123 108 166 86C166 85 167 85 168 85 168 84 169 84 170 84 172 83 173 83 174 83 175 83 176 83 177 84 178 84 180 84 181 85 182 86 183 87 185 89 186 90 187 92 188 94 189 96 190 98 191 101L191 103 203 99 202 97C201 94 200 90 198 87 197 84 195 81 193 78 191 76 189 74 187 73 185 72 183 71 181 70 179 69 177 69 175 69Z\" class=\"a\"/></svg>", | ||
"message": "SKIP", | ||
"schemaVersion": 1 | ||
} |
Oops, something went wrong.