@urmzd/github-insights 2.0.0 → 2.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.github/workflows/release.yml +5 -1
- package/CHANGELOG.md +40 -0
- package/README.md +0 -2
- package/assets/insights/index.svg +14 -0
- package/assets/insights/metrics-calendar.svg +14 -0
- package/{metrics → assets/insights}/metrics-complexity.svg +1 -1
- package/{metrics → assets/insights}/metrics-contributions.svg +1 -1
- package/assets/insights/metrics-expertise.svg +14 -0
- package/assets/insights/metrics-languages.svg +14 -0
- package/{metrics → assets/insights}/metrics-pulse.svg +1 -1
- package/examples/classic/README.md +2 -2
- package/examples/classic/index.svg +2 -2
- package/examples/classic/metrics-calendar.svg +1 -1
- package/examples/classic/metrics-complexity.svg +1 -1
- package/examples/classic/metrics-contributions.svg +1 -1
- package/examples/classic/metrics-expertise.svg +2 -2
- package/examples/classic/metrics-languages.svg +1 -1
- package/examples/classic/metrics-pulse.svg +1 -1
- package/examples/ecosystem/README.md +23 -24
- package/examples/ecosystem/index.svg +2 -2
- package/examples/ecosystem/metrics-calendar.svg +1 -1
- package/examples/ecosystem/metrics-complexity.svg +1 -1
- package/examples/ecosystem/metrics-contributions.svg +1 -1
- package/examples/ecosystem/metrics-expertise.svg +2 -2
- package/examples/ecosystem/metrics-languages.svg +1 -1
- package/examples/ecosystem/metrics-pulse.svg +1 -1
- package/examples/minimal/README.md +2 -2
- package/examples/minimal/index.svg +2 -2
- package/examples/minimal/metrics-calendar.svg +1 -1
- package/examples/minimal/metrics-complexity.svg +1 -1
- package/examples/minimal/metrics-contributions.svg +1 -1
- package/examples/minimal/metrics-expertise.svg +2 -2
- package/examples/minimal/metrics-languages.svg +1 -1
- package/examples/minimal/metrics-pulse.svg +1 -1
- package/examples/modern/README.md +36 -38
- package/examples/modern/index.svg +2 -2
- package/examples/modern/metrics-calendar.svg +1 -1
- package/examples/modern/metrics-complexity.svg +1 -1
- package/examples/modern/metrics-contributions.svg +1 -1
- package/examples/modern/metrics-expertise.svg +2 -2
- package/examples/modern/metrics-languages.svg +1 -1
- package/examples/modern/metrics-pulse.svg +1 -1
- package/package.json +5 -5
- package/src/api.ts +1 -1
- package/src/config.ts +6 -12
- package/src/index.ts +6 -0
- package/src/metrics.ts +16 -2
- package/src/readme.test.ts +31 -25
- package/src/templates.test.ts +110 -13
- package/src/templates.ts +38 -11
- package/src/types.ts +3 -0
- package/metrics/index.svg +0 -14
- package/metrics/metrics-calendar.svg +0 -14
- package/metrics/metrics-expertise.svg +0 -14
- package/metrics/metrics-languages.svg +0 -14
- /package/{metrics → assets/insights}/metrics-domains.svg +0 -0
- /package/{metrics → assets/insights}/metrics-tech-stack.svg +0 -0
|
@@ -55,5 +55,9 @@ jobs:
|
|
|
55
55
|
- name: Publish to npm
|
|
56
56
|
if: steps.sr.outputs.released == 'true'
|
|
57
57
|
run: |
|
|
58
|
-
|
|
58
|
+
CURRENT=$(node -p "require('./package.json').version")
|
|
59
|
+
TARGET="${{ steps.sr.outputs.version }}"
|
|
60
|
+
if [ "$CURRENT" != "$TARGET" ]; then
|
|
61
|
+
npm version "$TARGET" --no-git-tag-version
|
|
62
|
+
fi
|
|
59
63
|
npm publish --provenance --access public
|
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,45 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 2.1.0 (2026-03-18)
|
|
4
|
+
|
|
5
|
+
### Features
|
|
6
|
+
|
|
7
|
+
- separate archived/legacy projects into dedicated sections across all templates ([6327c64](https://github.com/urmzd/github-insights/commit/6327c64e568b5f25affc7a2f2a90a01c49c37ee6))
|
|
8
|
+
|
|
9
|
+
[Full Changelog](https://github.com/urmzd/github-insights/compare/v2.0.1...v2.1.0)
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
## 2.0.1 (2026-03-17)
|
|
13
|
+
|
|
14
|
+
### Bug Fixes
|
|
15
|
+
|
|
16
|
+
- **ci**: apply biome formatting to readme test assertions ([1b69cc1](https://github.com/urmzd/github-insights/commit/1b69cc1eb806f17e44d8ca04c11cc48afb19d1da))
|
|
17
|
+
|
|
18
|
+
### Refactoring
|
|
19
|
+
|
|
20
|
+
- remove legacy metrics/ path references and migrate to assets/insights ([cd2c961](https://github.com/urmzd/github-insights/commit/cd2c961f5ea3032e5676ad070d4960c0a4232b54))
|
|
21
|
+
|
|
22
|
+
[Full Changelog](https://github.com/urmzd/github-insights/compare/v2.0.0...v2.0.1)
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
## 2.0.0 (2026-03-16)
|
|
26
|
+
|
|
27
|
+
### Breaking Changes
|
|
28
|
+
|
|
29
|
+
- rename project to github-insights with YAML config and new output dir ([9dbca28](https://github.com/urmzd/github-insights/commit/9dbca28f23f8ab8984b1d389f26f32dffa6c579a))
|
|
30
|
+
|
|
31
|
+
### Bug Fixes
|
|
32
|
+
|
|
33
|
+
- **ci**: apply biome formatting to config.ts ([4bc0821](https://github.com/urmzd/github-insights/commit/4bc08217885522ee7503dcc526b02315ca42da5e))
|
|
34
|
+
|
|
35
|
+
### Miscellaneous
|
|
36
|
+
|
|
37
|
+
- bump version to 2.0.0 after npm publish ([a4eb533](https://github.com/urmzd/github-insights/commit/a4eb533728cf27e0acb55eda1e3cdf4c99031f83))
|
|
38
|
+
- rebuild dist bundle for github-insights rename ([d9e563b](https://github.com/urmzd/github-insights/commit/d9e563bb81a85e33dc1a882402189743cdec83a8))
|
|
39
|
+
|
|
40
|
+
[Full Changelog](https://github.com/urmzd/github-insights/compare/v1.2.4...v2.0.0)
|
|
41
|
+
|
|
42
|
+
|
|
3
43
|
## 1.1.0 (2026-03-15)
|
|
4
44
|
|
|
5
45
|
### Features
|
package/README.md
CHANGED
|
@@ -90,8 +90,6 @@ preamble: PREAMBLE.md # path to custom preamble (optional)
|
|
|
90
90
|
|
|
91
91
|
All fields are optional. The `UserConfig` type in `src/types.ts` defines the full schema.
|
|
92
92
|
|
|
93
|
-
> **Note:** The legacy config filename `.github-metrics.toml` (TOML format) is still supported but deprecated. Please migrate to `github-insights.yml`.
|
|
94
|
-
|
|
95
93
|
## AI Features
|
|
96
94
|
|
|
97
95
|
### Expertise Analysis
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="808" height="1775" viewBox="0 0 808 1775"><defs><style>
|
|
2
|
+
.t { font-family: -apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif; }
|
|
3
|
+
.t-h { font-size: 13px; fill: #c9d1d9; letter-spacing: 1.5px; font-weight: 600; }
|
|
4
|
+
.t-sub { font-size: 11px; fill: #6e7681; }
|
|
5
|
+
.t-label { font-size: 12px; fill: #8b949e; }
|
|
6
|
+
.t-value { font-size: 11px; fill: #6e7681; }
|
|
7
|
+
.t-subhdr { font-size: 11px; fill: #8b949e; letter-spacing: 1px; font-weight: 600; }
|
|
8
|
+
.t-stat-label { font-size: 10px; fill: #8b949e; font-weight: 600; }
|
|
9
|
+
.t-stat-value { font-size: 22px; font-weight: 700; }
|
|
10
|
+
.t-card-title { font-size: 12px; fill: #58a6ff; font-weight: 700; }
|
|
11
|
+
.t-card-detail { font-size: 11px; fill: #8b949e; }
|
|
12
|
+
.t-pill { font-size: 11px; font-weight: 600; }
|
|
13
|
+
.t-bullet { font-size: 12px; fill: #c9d1d9; }
|
|
14
|
+
</style></defs><rect width="808" height="1775" rx="12" fill="#0d1117"/><text x="24" y="40" class="t t-h">AT A GLANCE</text><text x="24" y="56" class="t t-sub">Contribution activity over the past year</text><rect x="24" y="66" width="140" height="72" rx="8" fill="#161b22" stroke="#30363d" stroke-width="1"/><circle cx="38" cy="82" r="4" fill="#58a6ff"/><text x="48" y="86" class="t t-stat-label">COMMITS</text><text x="94" y="118" fill="#58a6ff" class="t t-stat-value" text-anchor="middle">1,117</text><rect x="179" y="66" width="140" height="72" rx="8" fill="#161b22" stroke="#30363d" stroke-width="1"/><circle cx="193" cy="82" r="4" fill="#3fb950"/><text x="203" y="86" class="t t-stat-label">PRS</text><text x="249" y="118" fill="#3fb950" class="t t-stat-value" text-anchor="middle">3</text><rect x="334" y="66" width="140" height="72" rx="8" fill="#161b22" stroke="#30363d" stroke-width="1"/><circle cx="348" cy="82" r="4" fill="#d29922"/><text x="358" y="86" class="t t-stat-label">REVIEWS</text><text x="404" y="118" fill="#d29922" class="t t-stat-value" text-anchor="middle">5</text><rect x="489" y="66" width="140" height="72" rx="8" fill="#161b22" stroke="#30363d" stroke-width="1"/><circle cx="503" cy="82" r="4" fill="#bc8cff"/><text x="513" y="86" class="t t-stat-label">REPOS</text><text x="559" y="118" fill="#bc8cff" class="t t-stat-value" text-anchor="middle">26</text><text x="24" y="184" class="t t-h">LANGUAGES</text><text x="24" y="200" class="t t-sub">By bytes of code across all public repos</text><circle cx="114" cy="300" r="70" fill="none" stroke="#00ADD8" stroke-width="28" stroke-dasharray="120.51149419170444 319.31147731086656" stroke-dashoffset="0" transform="rotate(-90 114 300)" opacity="0.85"/><circle cx="114" cy="300" r="70" fill="none" stroke="#3178c6" stroke-width="28" stroke-dasharray="110.8353888186479 328.9875826839231" stroke-dashoffset="-120.51149419170444" transform="rotate(-90 114 300)" opacity="0.85"/><circle cx="114" cy="300" r="70" fill="none" stroke="#dea584" stroke-width="28" stroke-dasharray="108.63627396113505 331.186697541436" stroke-dashoffset="-231.34688301035234" transform="rotate(-90 114 300)" opacity="0.85"/><circle cx="114" cy="300" r="70" fill="none" stroke="#3D6117" stroke-width="28" stroke-dasharray="19.792033717615695 420.0309377849553" stroke-dashoffset="-339.9831569714874" transform="rotate(-90 114 300)" opacity="0.85"/><circle cx="114" cy="300" r="70" fill="none" stroke="#89e051" stroke-width="28" stroke-dasharray="15.833626974092558 423.98934452847845" stroke-dashoffset="-359.7751906891031" transform="rotate(-90 114 300)" opacity="0.85"/><circle cx="114" cy="300" r="70" fill="none" stroke="#3572A5" stroke-width="28" stroke-dasharray="13.634512116579701 426.18845938599134" stroke-dashoffset="-375.6088176631957" transform="rotate(-90 114 300)" opacity="0.85"/><circle cx="114" cy="300" r="70" fill="none" stroke="#a52a22" stroke-width="28" stroke-dasharray="7.916813487046279 431.90615801552474" stroke-dashoffset="-389.24332977977537" transform="rotate(-90 114 300)" opacity="0.85"/><circle cx="114" cy="300" r="70" fill="none" stroke="#b07219" stroke-width="28" stroke-dasharray="6.597344572538565 433.22562693003243" stroke-dashoffset="-397.16014326682165" transform="rotate(-90 114 300)" opacity="0.85"/><circle cx="114" cy="300" r="70" fill="none" stroke="#663399" stroke-width="28" stroke-dasharray="5.717698629533424 434.1052728730376" stroke-dashoffset="-403.75748783936024" transform="rotate(-90 114 300)" opacity="0.85"/><circle cx="114" cy="300" r="70" fill="none" stroke="#000080" stroke-width="28" stroke-dasharray="5.717698629533424 434.1052728730376" stroke-dashoffset="-409.47518646889364" transform="rotate(-90 114 300)" opacity="0.85"/><text x="114" y="305" class="t" fill="#c9d1d9" font-size="14" font-weight="700" text-anchor="middle">10</text><text x="114" y="320" class="t" fill="#6e7681" font-size="10" text-anchor="middle">languages</text><rect x="244" y="220" width="12" height="12" rx="2" fill="#00ADD8" opacity="0.85"/><text x="264" y="230" class="t t-label">Go</text><text x="444" y="230" class="t t-value" text-anchor="end">27.4%</text><rect x="244" y="244" width="12" height="12" rx="2" fill="#3178c6" opacity="0.85"/><text x="264" y="254" class="t t-label">TypeScript</text><text x="444" y="254" class="t t-value" text-anchor="end">25.2%</text><rect x="244" y="268" width="12" height="12" rx="2" fill="#dea584" opacity="0.85"/><text x="264" y="278" class="t t-label">Rust</text><text x="444" y="278" class="t t-value" text-anchor="end">24.7%</text><rect x="244" y="292" width="12" height="12" rx="2" fill="#3D6117" opacity="0.85"/><text x="264" y="302" class="t t-label">TeX</text><text x="444" y="302" class="t t-value" text-anchor="end">4.5%</text><rect x="244" y="316" width="12" height="12" rx="2" fill="#89e051" opacity="0.85"/><text x="264" y="326" class="t t-label">Shell</text><text x="444" y="326" class="t t-value" text-anchor="end">3.6%</text><rect x="244" y="340" width="12" height="12" rx="2" fill="#3572A5" opacity="0.85"/><text x="264" y="350" class="t t-label">Python</text><text x="444" y="350" class="t t-value" text-anchor="end">3.1%</text><rect x="244" y="364" width="12" height="12" rx="2" fill="#a52a22" opacity="0.85"/><text x="264" y="374" class="t t-label">Jinja</text><text x="444" y="374" class="t t-value" text-anchor="end">1.8%</text><rect x="244" y="388" width="12" height="12" rx="2" fill="#b07219" opacity="0.85"/><text x="264" y="398" class="t t-label">Java</text><text x="444" y="398" class="t t-value" text-anchor="end">1.5%</text><rect x="244" y="412" width="12" height="12" rx="2" fill="#663399" opacity="0.85"/><text x="264" y="422" class="t t-label">CSS</text><text x="444" y="422" class="t t-value" text-anchor="end">1.3%</text><rect x="244" y="436" width="12" height="12" rx="2" fill="#000080" opacity="0.85"/><text x="264" y="446" class="t t-label">Lua</text><text x="444" y="446" class="t t-value" text-anchor="end">1.3%</text><text x="24" y="516" class="t t-h">EXPERTISE</text><text x="24" y="532" class="t t-sub">Curated from dependencies, topics, and languages via AI analysis</text><text x="24" y="556" class="t t-subhdr">AI & MACHINE LEARNING</text><rect x="24" y="568" width="700" height="18" rx="4" fill="#58a6ff" fill-opacity="0.15"/><rect x="24" y="568" width="630" height="18" rx="4" fill="#58a6ff" fill-opacity="0.85"/><text x="734" y="581" class="t t-value">90%</text><text x="24" y="602" class="t t-card-detail">PyTorch · PyTorch Lightning · Rust (Linear Genetic Programm… · Retrieval-Augmented Generatio… · Knowledge Graphs</text><text x="24" y="618" class="t t-card-detail">(SurrealDB) · Q-Learning</text><text x="24" y="646" class="t t-subhdr">WEB DEVELOPMENT & STATIC SITES</text><rect x="24" y="658" width="700" height="18" rx="4" fill="#3fb950" fill-opacity="0.15"/><rect x="24" y="658" width="595" height="18" rx="4" fill="#3fb950" fill-opacity="0.85"/><text x="734" y="671" class="t t-value">85%</text><text x="24" y="692" class="t t-card-detail">Astro · React · TypeScript · Tailwind CSS · MDX</text><text x="24" y="720" class="t t-subhdr">BACKEND & APIS</text><rect x="24" y="732" width="700" height="18" rx="4" fill="#d29922" fill-opacity="0.15"/><rect x="24" y="732" width="560" height="18" rx="4" fill="#d29922" fill-opacity="0.85"/><text x="734" y="745" class="t t-value">80%</text><text x="24" y="766" class="t t-card-detail">Go · FastAPI · OpenAPI · SurrealDB · Graph-enhanced Retrieval</text><text x="24" y="794" class="t t-subhdr">DEVOPS & AUTOMATION</text><rect x="24" y="806" width="700" height="18" rx="4" fill="#f85149" fill-opacity="0.15"/><rect x="24" y="806" width="525" height="18" rx="4" fill="#f85149" fill-opacity="0.85"/><text x="734" y="819" class="t t-value">75%</text><text x="24" y="840" class="t t-card-detail">GitHub Actions · CI/CD · Chezmoi · Nix · Docker</text><text x="24" y="868" class="t t-subhdr">DESKTOP & CLI APPLICATIONS</text><rect x="24" y="880" width="700" height="18" rx="4" fill="#bc8cff" fill-opacity="0.15"/><rect x="24" y="880" width="489.99999999999994" height="18" rx="4" fill="#bc8cff" fill-opacity="0.85"/><text x="734" y="893" class="t t-value">70%</text><text x="24" y="914" class="t t-card-detail">Rust · Go · JavaFX · Wails · Textual</text><text x="24" y="942" class="t t-subhdr">DOCUMENTATION & PUBLISHING</text><rect x="24" y="954" width="700" height="18" rx="4" fill="#39d2c0" fill-opacity="0.15"/><rect x="24" y="954" width="420" height="18" rx="4" fill="#39d2c0" fill-opacity="0.85"/><text x="734" y="967" class="t t-value">60%</text><text x="24" y="988" class="t t-card-detail">TeX/LaTeX · Pandoc · Markdown · PDF Generation</text><text x="24" y="1048" class="t t-h">SIGNATURE PROJECTS</text><text x="24" y="1064" class="t t-sub">Top projects by technical complexity</text><rect x="24" y="1074" width="760" height="52" rx="6" fill="#161b22" stroke="#30363d" stroke-width="1"/><rect x="24" y="1074" width="4" height="52" rx="2" fill="#58a6ff"/><text x="40" y="1092" class="t t-card-title">resume-generator</text><text x="768" y="1092" class="t t-value" text-anchor="end">★ 10</text><text x="40" y="1108" class="t t-card-detail">A data-driven CLI tool that converts YAML/JSON/TOML resume data into polished PDFs, DOCX,…</text><rect x="24" y="1136" width="760" height="52" rx="6" fill="#161b22" stroke="#30363d" stroke-width="1"/><rect x="24" y="1136" width="4" height="52" rx="2" fill="#3fb950"/><text x="40" y="1154" class="t t-card-title">linear-gp</text><text x="768" y="1154" class="t t-value" text-anchor="end">★ 2</text><text x="40" y="1170" class="t t-card-detail">A production-grade Rust framework for Linear Genetic Programming research, featuring modu…</text><rect x="24" y="1198" width="760" height="52" rx="6" fill="#161b22" stroke="#30363d" stroke-width="1"/><rect x="24" y="1198" width="4" height="52" rx="2" fill="#d29922"/><text x="40" y="1216" class="t t-card-title">zigbee-rest</text><text x="768" y="1216" class="t t-value" text-anchor="end">★ 0</text><text x="40" y="1232" class="t t-card-detail">Local-first, privacy-focused smart home control system. Manage Zigbee devices through a R…</text><rect x="24" y="1260" width="760" height="52" rx="6" fill="#161b22" stroke="#30363d" stroke-width="1"/><rect x="24" y="1260" width="4" height="52" rx="2" fill="#f85149"/><text x="40" y="1278" class="t t-card-title">urmzd.com</text><text x="768" y="1278" class="t t-value" text-anchor="end">★ 0</text><text x="40" y="1294" class="t t-card-detail">Personal website and blog built with Astro, TypeScript, and MDX—featuring fast static sit…</text><rect x="24" y="1322" width="760" height="52" rx="6" fill="#161b22" stroke="#30363d" stroke-width="1"/><rect x="24" y="1322" width="4" height="52" rx="2" fill="#bc8cff"/><text x="40" y="1340" class="t t-card-title">resume-generator-app</text><text x="768" y="1340" class="t t-value" text-anchor="end">★ 0</text><text x="40" y="1356" class="t t-card-detail">A native desktop app for building polished resumes with live PDF preview, template galler…</text><text x="24" y="1420" class="t t-h">CONTRIBUTION CALENDAR</text><text x="24" y="1436" class="t t-sub">1,217 contributions in the last year</text><text x="54" y="1457" class="t t-value">Mar</text><text x="93" y="1457" class="t t-value">Apr</text><text x="145" y="1457" class="t t-value">May</text><text x="210" y="1457" class="t t-value">Jun</text><text x="262" y="1457" class="t t-value">Jul</text><text x="314" y="1457" class="t t-value">Aug</text><text x="379" y="1457" class="t t-value">Sep</text><text x="431" y="1457" class="t t-value">Oct</text><text x="483" y="1457" class="t t-value">Nov</text><text x="548" y="1457" class="t t-value">Dec</text><text x="600" y="1457" class="t t-value">Jan</text><text x="665" y="1457" class="t t-value">Feb</text><text x="717" y="1457" class="t t-value">Mar</text><text x="24" y="1485" class="t t-value">Mon</text><text x="24" y="1511" class="t t-value">Wed</text><text x="24" y="1537" class="t t-value">Fri</text><rect x="54" y="1462" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="54" y="1475" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="54" y="1488" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="54" y="1501" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="54" y="1514" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="54" y="1527" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="67" y="1462" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="67" y="1475" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="67" y="1488" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="67" y="1501" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="67" y="1514" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="67" y="1527" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="67" y="1540" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="80" y="1462" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="80" y="1475" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="80" y="1488" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="80" y="1501" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="80" y="1514" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="80" y="1527" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="80" y="1540" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="93" y="1462" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="93" y="1475" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="93" y="1488" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="93" y="1501" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="93" y="1514" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="93" y="1527" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="93" y="1540" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="106" y="1462" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="106" y="1475" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="106" y="1488" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="106" y="1501" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="106" y="1514" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="106" y="1527" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="106" y="1540" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="119" y="1462" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="119" y="1475" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="119" y="1488" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="119" y="1501" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="119" y="1514" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="119" y="1527" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="119" y="1540" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="132" y="1462" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="132" y="1475" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="132" y="1488" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="132" y="1501" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="132" y="1514" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="132" y="1527" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="132" y="1540" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="145" y="1462" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="145" y="1475" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="145" y="1488" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="145" y="1501" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="145" y="1514" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="145" y="1527" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="145" y="1540" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="158" y="1462" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="158" y="1475" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="158" y="1488" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="158" y="1501" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="158" y="1514" width="11" height="11" rx="2" fill="#9be9a8"/><rect x="158" y="1527" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="158" y="1540" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="171" y="1462" width="11" height="11" rx="2" fill="#9be9a8"/><rect x="171" y="1475" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="171" y="1488" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="171" y="1501" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="171" y="1514" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="171" y="1527" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="171" y="1540" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="184" y="1462" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="184" y="1475" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="184" y="1488" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="184" y="1501" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="184" y="1514" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="184" y="1527" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="184" y="1540" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="197" y="1462" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="197" y="1475" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="197" y="1488" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="197" y="1501" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="197" y="1514" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="197" y="1527" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="197" y="1540" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="210" y="1462" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="210" y="1475" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="210" y="1488" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="210" y="1501" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="210" y="1514" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="210" y="1527" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="210" y="1540" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="223" y="1462" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="223" y="1475" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="223" y="1488" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="223" y="1501" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="223" y="1514" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="223" y="1527" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="223" y="1540" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="236" y="1462" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="236" y="1475" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="236" y="1488" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="236" y="1501" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="236" y="1514" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="236" y="1527" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="236" y="1540" width="11" height="11" rx="2" fill="#9be9a8"/><rect x="249" y="1462" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="249" y="1475" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="249" y="1488" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="249" y="1501" width="11" height="11" rx="2" fill="#9be9a8"/><rect x="249" y="1514" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="249" y="1527" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="249" y="1540" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="262" y="1462" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="262" y="1475" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="262" y="1488" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="262" y="1501" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="262" y="1514" width="11" height="11" rx="2" fill="#9be9a8"/><rect x="262" y="1527" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="262" y="1540" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="275" y="1462" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="275" y="1475" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="275" y="1488" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="275" y="1501" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="275" y="1514" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="275" y="1527" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="275" y="1540" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="288" y="1462" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="288" y="1475" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="288" y="1488" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="288" y="1501" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="288" y="1514" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="288" y="1527" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="288" y="1540" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="301" y="1462" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="301" y="1475" width="11" height="11" rx="2" fill="#9be9a8"/><rect x="301" y="1488" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="301" y="1501" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="301" y="1514" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="301" y="1527" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="301" y="1540" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="314" y="1462" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="314" y="1475" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="314" y="1488" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="314" y="1501" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="314" y="1514" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="314" y="1527" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="314" y="1540" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="327" y="1462" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="327" y="1475" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="327" y="1488" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="327" y="1501" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="327" y="1514" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="327" y="1527" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="327" y="1540" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="340" y="1462" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="340" y="1475" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="340" y="1488" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="340" y="1501" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="340" y="1514" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="340" y="1527" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="340" y="1540" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="353" y="1462" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="353" y="1475" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="353" y="1488" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="353" y="1501" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="353" y="1514" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="353" y="1527" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="353" y="1540" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="366" y="1462" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="366" y="1475" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="366" y="1488" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="366" y="1501" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="366" y="1514" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="366" y="1527" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="366" y="1540" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="379" y="1462" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="379" y="1475" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="379" y="1488" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="379" y="1501" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="379" y="1514" width="11" height="11" rx="2" fill="#9be9a8"/><rect x="379" y="1527" width="11" height="11" rx="2" fill="#9be9a8"/><rect x="379" y="1540" width="11" height="11" rx="2" fill="#9be9a8"/><rect x="392" y="1462" width="11" height="11" rx="2" fill="#9be9a8"/><rect x="392" y="1475" width="11" height="11" rx="2" fill="#9be9a8"/><rect x="392" y="1488" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="392" y="1501" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="392" y="1514" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="392" y="1527" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="392" y="1540" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="405" y="1462" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="405" y="1475" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="405" y="1488" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="405" y="1501" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="405" y="1514" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="405" y="1527" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="405" y="1540" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="418" y="1462" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="418" y="1475" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="418" y="1488" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="418" y="1501" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="418" y="1514" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="418" y="1527" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="418" y="1540" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="431" y="1462" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="431" y="1475" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="431" y="1488" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="431" y="1501" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="431" y="1514" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="431" y="1527" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="431" y="1540" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="444" y="1462" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="444" y="1475" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="444" y="1488" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="444" y="1501" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="444" y="1514" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="444" y="1527" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="444" y="1540" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="457" y="1462" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="457" y="1475" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="457" y="1488" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="457" y="1501" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="457" y="1514" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="457" y="1527" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="457" y="1540" width="11" height="11" rx="2" fill="#9be9a8"/><rect x="470" y="1462" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="470" y="1475" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="470" y="1488" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="470" y="1501" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="470" y="1514" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="470" y="1527" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="470" y="1540" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="483" y="1462" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="483" y="1475" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="483" y="1488" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="483" y="1501" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="483" y="1514" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="483" y="1527" width="11" height="11" rx="2" fill="#9be9a8"/><rect x="483" y="1540" width="11" height="11" rx="2" fill="#9be9a8"/><rect x="496" y="1462" width="11" height="11" rx="2" fill="#9be9a8"/><rect x="496" y="1475" width="11" height="11" rx="2" fill="#9be9a8"/><rect x="496" y="1488" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="496" y="1501" width="11" height="11" rx="2" fill="#9be9a8"/><rect x="496" y="1514" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="496" y="1527" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="496" y="1540" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="509" y="1462" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="509" y="1475" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="509" y="1488" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="509" y="1501" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="509" y="1514" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="509" y="1527" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="509" y="1540" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="522" y="1462" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="522" y="1475" width="11" height="11" rx="2" fill="#9be9a8"/><rect x="522" y="1488" width="11" height="11" rx="2" fill="#9be9a8"/><rect x="522" y="1501" width="11" height="11" rx="2" fill="#9be9a8"/><rect x="522" y="1514" width="11" height="11" rx="2" fill="#9be9a8"/><rect x="522" y="1527" width="11" height="11" rx="2" fill="#9be9a8"/><rect x="522" y="1540" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="535" y="1462" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="535" y="1475" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="535" y="1488" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="535" y="1501" width="11" height="11" rx="2" fill="#9be9a8"/><rect x="535" y="1514" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="535" y="1527" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="535" y="1540" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="548" y="1462" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="548" y="1475" width="11" height="11" rx="2" fill="#9be9a8"/><rect x="548" y="1488" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="548" y="1501" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="548" y="1514" width="11" height="11" rx="2" fill="#9be9a8"/><rect x="548" y="1527" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="548" y="1540" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="561" y="1462" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="561" y="1475" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="561" y="1488" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="561" y="1501" width="11" height="11" rx="2" fill="#9be9a8"/><rect x="561" y="1514" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="561" y="1527" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="561" y="1540" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="574" y="1462" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="574" y="1475" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="574" y="1488" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="574" y="1501" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="574" y="1514" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="574" y="1527" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="574" y="1540" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="587" y="1462" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="587" y="1475" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="587" y="1488" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="587" y="1501" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="587" y="1514" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="587" y="1527" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="587" y="1540" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="600" y="1462" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="600" y="1475" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="600" y="1488" width="11" height="11" rx="2" fill="#9be9a8"/><rect x="600" y="1501" width="11" height="11" rx="2" fill="#9be9a8"/><rect x="600" y="1514" width="11" height="11" rx="2" fill="#9be9a8"/><rect x="600" y="1527" width="11" height="11" rx="2" fill="#9be9a8"/><rect x="600" y="1540" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="613" y="1462" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="613" y="1475" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="613" y="1488" width="11" height="11" rx="2" fill="#9be9a8"/><rect x="613" y="1501" width="11" height="11" rx="2" fill="#9be9a8"/><rect x="613" y="1514" width="11" height="11" rx="2" fill="#9be9a8"/><rect x="613" y="1527" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="613" y="1540" width="11" height="11" rx="2" fill="#9be9a8"/><rect x="626" y="1462" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="626" y="1475" width="11" height="11" rx="2" fill="#9be9a8"/><rect x="626" y="1488" width="11" height="11" rx="2" fill="#9be9a8"/><rect x="626" y="1501" width="11" height="11" rx="2" fill="#9be9a8"/><rect x="626" y="1514" width="11" height="11" rx="2" fill="#9be9a8"/><rect x="626" y="1527" width="11" height="11" rx="2" fill="#9be9a8"/><rect x="626" y="1540" width="11" height="11" rx="2" fill="#9be9a8"/><rect x="639" y="1462" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="639" y="1475" width="11" height="11" rx="2" fill="#9be9a8"/><rect x="639" y="1488" width="11" height="11" rx="2" fill="#9be9a8"/><rect x="639" y="1501" width="11" height="11" rx="2" fill="#9be9a8"/><rect x="639" y="1514" width="11" height="11" rx="2" fill="#9be9a8"/><rect x="639" y="1527" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="639" y="1540" width="11" height="11" rx="2" fill="#216e39"/><rect x="652" y="1462" width="11" height="11" rx="2" fill="#9be9a8"/><rect x="652" y="1475" width="11" height="11" rx="2" fill="#9be9a8"/><rect x="652" y="1488" width="11" height="11" rx="2" fill="#9be9a8"/><rect x="652" y="1501" width="11" height="11" rx="2" fill="#9be9a8"/><rect x="652" y="1514" width="11" height="11" rx="2" fill="#9be9a8"/><rect x="652" y="1527" width="11" height="11" rx="2" fill="#9be9a8"/><rect x="652" y="1540" width="11" height="11" rx="2" fill="#9be9a8"/><rect x="665" y="1462" width="11" height="11" rx="2" fill="#216e39"/><rect x="665" y="1475" width="11" height="11" rx="2" fill="#9be9a8"/><rect x="665" y="1488" width="11" height="11" rx="2" fill="#40c463"/><rect x="665" y="1501" width="11" height="11" rx="2" fill="#216e39"/><rect x="665" y="1514" width="11" height="11" rx="2" fill="#9be9a8"/><rect x="665" y="1527" width="11" height="11" rx="2" fill="#40c463"/><rect x="665" y="1540" width="11" height="11" rx="2" fill="#9be9a8"/><rect x="678" y="1462" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="678" y="1475" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="678" y="1488" width="11" height="11" rx="2" fill="#9be9a8"/><rect x="678" y="1501" width="11" height="11" rx="2" fill="#9be9a8"/><rect x="678" y="1514" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="678" y="1527" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="678" y="1540" width="11" height="11" rx="2" fill="#40c463"/><rect x="691" y="1462" width="11" height="11" rx="2" fill="#9be9a8"/><rect x="691" y="1475" width="11" height="11" rx="2" fill="#9be9a8"/><rect x="691" y="1488" width="11" height="11" rx="2" fill="#30a14e"/><rect x="691" y="1501" width="11" height="11" rx="2" fill="#9be9a8"/><rect x="691" y="1514" width="11" height="11" rx="2" fill="#40c463"/><rect x="691" y="1527" width="11" height="11" rx="2" fill="#9be9a8"/><rect x="691" y="1540" width="11" height="11" rx="2" fill="#9be9a8"/><rect x="704" y="1462" width="11" height="11" rx="2" fill="#40c463"/><rect x="704" y="1475" width="11" height="11" rx="2" fill="#9be9a8"/><rect x="704" y="1488" width="11" height="11" rx="2" fill="#30a14e"/><rect x="704" y="1501" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="704" y="1514" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="704" y="1527" width="11" height="11" rx="2" fill="#9be9a8"/><rect x="704" y="1540" width="11" height="11" rx="2" fill="#9be9a8"/><rect x="717" y="1462" width="11" height="11" rx="2" fill="#9be9a8"/><rect x="717" y="1475" width="11" height="11" rx="2" fill="#40c463"/><rect x="717" y="1488" width="11" height="11" rx="2" fill="#40c463"/><rect x="717" y="1501" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="717" y="1514" width="11" height="11" rx="2" fill="#9be9a8"/><rect x="717" y="1527" width="11" height="11" rx="2" fill="#9be9a8"/><rect x="717" y="1540" width="11" height="11" rx="2" fill="#216e39"/><rect x="730" y="1462" width="11" height="11" rx="2" fill="#216e39"/><rect x="730" y="1475" width="11" height="11" rx="2" fill="#9be9a8"/><rect x="730" y="1488" width="11" height="11" rx="2" fill="#ebedf0"/><text x="24" y="1599" class="t t-h">OPEN SOURCE CONTRIBUTIONS</text><text x="24" y="1615" class="t t-sub">External repositories contributed to (all time)</text><rect x="24" y="1625" width="760" height="44" rx="6" fill="#161b22" stroke="#30363d" stroke-width="1"/><rect x="24" y="1625" width="4" height="44" rx="2" fill="#58a6ff"/><text x="40" y="1643" class="t t-card-title">MathisWellmann/gym-rs</text><text x="40" y="1659" class="t t-card-detail">★ 127 · Rust</text><rect x="24" y="1677" width="760" height="44" rx="6" fill="#161b22" stroke="#30363d" stroke-width="1"/><rect x="24" y="1677" width="4" height="44" rx="2" fill="#3fb950"/><text x="40" y="1695" class="t t-card-title">getzep/graphiti</text><text x="40" y="1711" class="t t-card-detail">★ 23,825 · Python</text></svg>
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="808" height="197" viewBox="0 0 808 197"><defs><style>
|
|
2
|
+
.t { font-family: -apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif; }
|
|
3
|
+
.t-h { font-size: 13px; fill: #c9d1d9; letter-spacing: 1.5px; font-weight: 600; }
|
|
4
|
+
.t-sub { font-size: 11px; fill: #6e7681; }
|
|
5
|
+
.t-label { font-size: 12px; fill: #8b949e; }
|
|
6
|
+
.t-value { font-size: 11px; fill: #6e7681; }
|
|
7
|
+
.t-subhdr { font-size: 11px; fill: #8b949e; letter-spacing: 1px; font-weight: 600; }
|
|
8
|
+
.t-stat-label { font-size: 10px; fill: #8b949e; font-weight: 600; }
|
|
9
|
+
.t-stat-value { font-size: 22px; font-weight: 700; }
|
|
10
|
+
.t-card-title { font-size: 12px; fill: #58a6ff; font-weight: 700; }
|
|
11
|
+
.t-card-detail { font-size: 11px; fill: #8b949e; }
|
|
12
|
+
.t-pill { font-size: 11px; font-weight: 600; }
|
|
13
|
+
.t-bullet { font-size: 12px; fill: #c9d1d9; }
|
|
14
|
+
</style></defs><rect width="808" height="197" rx="12" fill="#0d1117"/><text x="24" y="40" class="t t-h">CONTRIBUTION CALENDAR</text><text x="24" y="56" class="t t-sub">1,217 contributions in the last year</text><text x="54" y="77" class="t t-value">Mar</text><text x="93" y="77" class="t t-value">Apr</text><text x="145" y="77" class="t t-value">May</text><text x="210" y="77" class="t t-value">Jun</text><text x="262" y="77" class="t t-value">Jul</text><text x="314" y="77" class="t t-value">Aug</text><text x="379" y="77" class="t t-value">Sep</text><text x="431" y="77" class="t t-value">Oct</text><text x="483" y="77" class="t t-value">Nov</text><text x="548" y="77" class="t t-value">Dec</text><text x="600" y="77" class="t t-value">Jan</text><text x="665" y="77" class="t t-value">Feb</text><text x="717" y="77" class="t t-value">Mar</text><text x="24" y="105" class="t t-value">Mon</text><text x="24" y="131" class="t t-value">Wed</text><text x="24" y="157" class="t t-value">Fri</text><rect x="54" y="82" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="54" y="95" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="54" y="108" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="54" y="121" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="54" y="134" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="54" y="147" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="67" y="82" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="67" y="95" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="67" y="108" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="67" y="121" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="67" y="134" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="67" y="147" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="67" y="160" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="80" y="82" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="80" y="95" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="80" y="108" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="80" y="121" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="80" y="134" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="80" y="147" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="80" y="160" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="93" y="82" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="93" y="95" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="93" y="108" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="93" y="121" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="93" y="134" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="93" y="147" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="93" y="160" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="106" y="82" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="106" y="95" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="106" y="108" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="106" y="121" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="106" y="134" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="106" y="147" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="106" y="160" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="119" y="82" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="119" y="95" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="119" y="108" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="119" y="121" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="119" y="134" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="119" y="147" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="119" y="160" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="132" y="82" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="132" y="95" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="132" y="108" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="132" y="121" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="132" y="134" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="132" y="147" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="132" y="160" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="145" y="82" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="145" y="95" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="145" y="108" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="145" y="121" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="145" y="134" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="145" y="147" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="145" y="160" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="158" y="82" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="158" y="95" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="158" y="108" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="158" y="121" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="158" y="134" width="11" height="11" rx="2" fill="#9be9a8"/><rect x="158" y="147" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="158" y="160" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="171" y="82" width="11" height="11" rx="2" fill="#9be9a8"/><rect x="171" y="95" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="171" y="108" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="171" y="121" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="171" y="134" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="171" y="147" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="171" y="160" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="184" y="82" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="184" y="95" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="184" y="108" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="184" y="121" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="184" y="134" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="184" y="147" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="184" y="160" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="197" y="82" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="197" y="95" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="197" y="108" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="197" y="121" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="197" y="134" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="197" y="147" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="197" y="160" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="210" y="82" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="210" y="95" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="210" y="108" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="210" y="121" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="210" y="134" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="210" y="147" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="210" y="160" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="223" y="82" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="223" y="95" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="223" y="108" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="223" y="121" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="223" y="134" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="223" y="147" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="223" y="160" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="236" y="82" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="236" y="95" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="236" y="108" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="236" y="121" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="236" y="134" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="236" y="147" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="236" y="160" width="11" height="11" rx="2" fill="#9be9a8"/><rect x="249" y="82" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="249" y="95" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="249" y="108" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="249" y="121" width="11" height="11" rx="2" fill="#9be9a8"/><rect x="249" y="134" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="249" y="147" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="249" y="160" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="262" y="82" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="262" y="95" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="262" y="108" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="262" y="121" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="262" y="134" width="11" height="11" rx="2" fill="#9be9a8"/><rect x="262" y="147" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="262" y="160" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="275" y="82" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="275" y="95" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="275" y="108" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="275" y="121" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="275" y="134" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="275" y="147" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="275" y="160" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="288" y="82" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="288" y="95" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="288" y="108" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="288" y="121" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="288" y="134" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="288" y="147" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="288" y="160" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="301" y="82" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="301" y="95" width="11" height="11" rx="2" fill="#9be9a8"/><rect x="301" y="108" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="301" y="121" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="301" y="134" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="301" y="147" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="301" y="160" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="314" y="82" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="314" y="95" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="314" y="108" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="314" y="121" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="314" y="134" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="314" y="147" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="314" y="160" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="327" y="82" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="327" y="95" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="327" y="108" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="327" y="121" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="327" y="134" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="327" y="147" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="327" y="160" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="340" y="82" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="340" y="95" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="340" y="108" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="340" y="121" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="340" y="134" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="340" y="147" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="340" y="160" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="353" y="82" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="353" y="95" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="353" y="108" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="353" y="121" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="353" y="134" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="353" y="147" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="353" y="160" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="366" y="82" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="366" y="95" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="366" y="108" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="366" y="121" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="366" y="134" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="366" y="147" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="366" y="160" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="379" y="82" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="379" y="95" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="379" y="108" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="379" y="121" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="379" y="134" width="11" height="11" rx="2" fill="#9be9a8"/><rect x="379" y="147" width="11" height="11" rx="2" fill="#9be9a8"/><rect x="379" y="160" width="11" height="11" rx="2" fill="#9be9a8"/><rect x="392" y="82" width="11" height="11" rx="2" fill="#9be9a8"/><rect x="392" y="95" width="11" height="11" rx="2" fill="#9be9a8"/><rect x="392" y="108" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="392" y="121" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="392" y="134" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="392" y="147" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="392" y="160" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="405" y="82" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="405" y="95" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="405" y="108" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="405" y="121" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="405" y="134" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="405" y="147" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="405" y="160" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="418" y="82" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="418" y="95" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="418" y="108" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="418" y="121" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="418" y="134" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="418" y="147" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="418" y="160" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="431" y="82" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="431" y="95" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="431" y="108" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="431" y="121" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="431" y="134" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="431" y="147" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="431" y="160" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="444" y="82" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="444" y="95" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="444" y="108" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="444" y="121" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="444" y="134" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="444" y="147" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="444" y="160" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="457" y="82" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="457" y="95" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="457" y="108" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="457" y="121" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="457" y="134" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="457" y="147" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="457" y="160" width="11" height="11" rx="2" fill="#9be9a8"/><rect x="470" y="82" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="470" y="95" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="470" y="108" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="470" y="121" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="470" y="134" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="470" y="147" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="470" y="160" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="483" y="82" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="483" y="95" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="483" y="108" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="483" y="121" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="483" y="134" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="483" y="147" width="11" height="11" rx="2" fill="#9be9a8"/><rect x="483" y="160" width="11" height="11" rx="2" fill="#9be9a8"/><rect x="496" y="82" width="11" height="11" rx="2" fill="#9be9a8"/><rect x="496" y="95" width="11" height="11" rx="2" fill="#9be9a8"/><rect x="496" y="108" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="496" y="121" width="11" height="11" rx="2" fill="#9be9a8"/><rect x="496" y="134" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="496" y="147" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="496" y="160" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="509" y="82" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="509" y="95" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="509" y="108" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="509" y="121" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="509" y="134" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="509" y="147" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="509" y="160" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="522" y="82" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="522" y="95" width="11" height="11" rx="2" fill="#9be9a8"/><rect x="522" y="108" width="11" height="11" rx="2" fill="#9be9a8"/><rect x="522" y="121" width="11" height="11" rx="2" fill="#9be9a8"/><rect x="522" y="134" width="11" height="11" rx="2" fill="#9be9a8"/><rect x="522" y="147" width="11" height="11" rx="2" fill="#9be9a8"/><rect x="522" y="160" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="535" y="82" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="535" y="95" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="535" y="108" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="535" y="121" width="11" height="11" rx="2" fill="#9be9a8"/><rect x="535" y="134" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="535" y="147" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="535" y="160" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="548" y="82" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="548" y="95" width="11" height="11" rx="2" fill="#9be9a8"/><rect x="548" y="108" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="548" y="121" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="548" y="134" width="11" height="11" rx="2" fill="#9be9a8"/><rect x="548" y="147" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="548" y="160" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="561" y="82" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="561" y="95" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="561" y="108" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="561" y="121" width="11" height="11" rx="2" fill="#9be9a8"/><rect x="561" y="134" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="561" y="147" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="561" y="160" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="574" y="82" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="574" y="95" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="574" y="108" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="574" y="121" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="574" y="134" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="574" y="147" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="574" y="160" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="587" y="82" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="587" y="95" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="587" y="108" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="587" y="121" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="587" y="134" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="587" y="147" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="587" y="160" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="600" y="82" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="600" y="95" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="600" y="108" width="11" height="11" rx="2" fill="#9be9a8"/><rect x="600" y="121" width="11" height="11" rx="2" fill="#9be9a8"/><rect x="600" y="134" width="11" height="11" rx="2" fill="#9be9a8"/><rect x="600" y="147" width="11" height="11" rx="2" fill="#9be9a8"/><rect x="600" y="160" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="613" y="82" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="613" y="95" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="613" y="108" width="11" height="11" rx="2" fill="#9be9a8"/><rect x="613" y="121" width="11" height="11" rx="2" fill="#9be9a8"/><rect x="613" y="134" width="11" height="11" rx="2" fill="#9be9a8"/><rect x="613" y="147" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="613" y="160" width="11" height="11" rx="2" fill="#9be9a8"/><rect x="626" y="82" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="626" y="95" width="11" height="11" rx="2" fill="#9be9a8"/><rect x="626" y="108" width="11" height="11" rx="2" fill="#9be9a8"/><rect x="626" y="121" width="11" height="11" rx="2" fill="#9be9a8"/><rect x="626" y="134" width="11" height="11" rx="2" fill="#9be9a8"/><rect x="626" y="147" width="11" height="11" rx="2" fill="#9be9a8"/><rect x="626" y="160" width="11" height="11" rx="2" fill="#9be9a8"/><rect x="639" y="82" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="639" y="95" width="11" height="11" rx="2" fill="#9be9a8"/><rect x="639" y="108" width="11" height="11" rx="2" fill="#9be9a8"/><rect x="639" y="121" width="11" height="11" rx="2" fill="#9be9a8"/><rect x="639" y="134" width="11" height="11" rx="2" fill="#9be9a8"/><rect x="639" y="147" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="639" y="160" width="11" height="11" rx="2" fill="#216e39"/><rect x="652" y="82" width="11" height="11" rx="2" fill="#9be9a8"/><rect x="652" y="95" width="11" height="11" rx="2" fill="#9be9a8"/><rect x="652" y="108" width="11" height="11" rx="2" fill="#9be9a8"/><rect x="652" y="121" width="11" height="11" rx="2" fill="#9be9a8"/><rect x="652" y="134" width="11" height="11" rx="2" fill="#9be9a8"/><rect x="652" y="147" width="11" height="11" rx="2" fill="#9be9a8"/><rect x="652" y="160" width="11" height="11" rx="2" fill="#9be9a8"/><rect x="665" y="82" width="11" height="11" rx="2" fill="#216e39"/><rect x="665" y="95" width="11" height="11" rx="2" fill="#9be9a8"/><rect x="665" y="108" width="11" height="11" rx="2" fill="#40c463"/><rect x="665" y="121" width="11" height="11" rx="2" fill="#216e39"/><rect x="665" y="134" width="11" height="11" rx="2" fill="#9be9a8"/><rect x="665" y="147" width="11" height="11" rx="2" fill="#40c463"/><rect x="665" y="160" width="11" height="11" rx="2" fill="#9be9a8"/><rect x="678" y="82" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="678" y="95" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="678" y="108" width="11" height="11" rx="2" fill="#9be9a8"/><rect x="678" y="121" width="11" height="11" rx="2" fill="#9be9a8"/><rect x="678" y="134" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="678" y="147" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="678" y="160" width="11" height="11" rx="2" fill="#40c463"/><rect x="691" y="82" width="11" height="11" rx="2" fill="#9be9a8"/><rect x="691" y="95" width="11" height="11" rx="2" fill="#9be9a8"/><rect x="691" y="108" width="11" height="11" rx="2" fill="#30a14e"/><rect x="691" y="121" width="11" height="11" rx="2" fill="#9be9a8"/><rect x="691" y="134" width="11" height="11" rx="2" fill="#40c463"/><rect x="691" y="147" width="11" height="11" rx="2" fill="#9be9a8"/><rect x="691" y="160" width="11" height="11" rx="2" fill="#9be9a8"/><rect x="704" y="82" width="11" height="11" rx="2" fill="#40c463"/><rect x="704" y="95" width="11" height="11" rx="2" fill="#9be9a8"/><rect x="704" y="108" width="11" height="11" rx="2" fill="#30a14e"/><rect x="704" y="121" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="704" y="134" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="704" y="147" width="11" height="11" rx="2" fill="#9be9a8"/><rect x="704" y="160" width="11" height="11" rx="2" fill="#9be9a8"/><rect x="717" y="82" width="11" height="11" rx="2" fill="#9be9a8"/><rect x="717" y="95" width="11" height="11" rx="2" fill="#40c463"/><rect x="717" y="108" width="11" height="11" rx="2" fill="#40c463"/><rect x="717" y="121" width="11" height="11" rx="2" fill="#ebedf0"/><rect x="717" y="134" width="11" height="11" rx="2" fill="#9be9a8"/><rect x="717" y="147" width="11" height="11" rx="2" fill="#9be9a8"/><rect x="717" y="160" width="11" height="11" rx="2" fill="#216e39"/><rect x="730" y="82" width="11" height="11" rx="2" fill="#216e39"/><rect x="730" y="95" width="11" height="11" rx="2" fill="#9be9a8"/><rect x="730" y="108" width="11" height="11" rx="2" fill="#ebedf0"/></svg>
|
|
@@ -11,4 +11,4 @@
|
|
|
11
11
|
.t-card-detail { font-size: 11px; fill: #8b949e; }
|
|
12
12
|
.t-pill { font-size: 11px; font-weight: 600; }
|
|
13
13
|
.t-bullet { font-size: 12px; fill: #c9d1d9; }
|
|
14
|
-
</style></defs><rect width="808" height="390" rx="12" fill="#0d1117"/><text x="24" y="40" class="t t-h">SIGNATURE PROJECTS</text><text x="24" y="56" class="t t-sub">Top projects by technical complexity</text><rect x="24" y="66" width="760" height="52" rx="6" fill="#161b22" stroke="#30363d" stroke-width="1"/><rect x="24" y="66" width="4" height="52" rx="2" fill="#58a6ff"/><text x="40" y="84" class="t t-card-title">resume-generator</text><text x="768" y="84" class="t t-value" text-anchor="end">★ 10</text><text x="40" y="100" class="t t-card-detail">A data-driven CLI tool that converts YAML/JSON/TOML resume data into polished PDFs, DOCX,…</text><rect x="24" y="128" width="760" height="52" rx="6" fill="#161b22" stroke="#30363d" stroke-width="1"/><rect x="24" y="128" width="4" height="52" rx="2" fill="#3fb950"/><text x="40" y="146" class="t t-card-title">
|
|
14
|
+
</style></defs><rect width="808" height="390" rx="12" fill="#0d1117"/><text x="24" y="40" class="t t-h">SIGNATURE PROJECTS</text><text x="24" y="56" class="t t-sub">Top projects by technical complexity</text><rect x="24" y="66" width="760" height="52" rx="6" fill="#161b22" stroke="#30363d" stroke-width="1"/><rect x="24" y="66" width="4" height="52" rx="2" fill="#58a6ff"/><text x="40" y="84" class="t t-card-title">resume-generator</text><text x="768" y="84" class="t t-value" text-anchor="end">★ 10</text><text x="40" y="100" class="t t-card-detail">A data-driven CLI tool that converts YAML/JSON/TOML resume data into polished PDFs, DOCX,…</text><rect x="24" y="128" width="760" height="52" rx="6" fill="#161b22" stroke="#30363d" stroke-width="1"/><rect x="24" y="128" width="4" height="52" rx="2" fill="#3fb950"/><text x="40" y="146" class="t t-card-title">linear-gp</text><text x="768" y="146" class="t t-value" text-anchor="end">★ 2</text><text x="40" y="162" class="t t-card-detail">A production-grade Rust framework for Linear Genetic Programming research, featuring modu…</text><rect x="24" y="190" width="760" height="52" rx="6" fill="#161b22" stroke="#30363d" stroke-width="1"/><rect x="24" y="190" width="4" height="52" rx="2" fill="#d29922"/><text x="40" y="208" class="t t-card-title">zigbee-rest</text><text x="768" y="208" class="t t-value" text-anchor="end">★ 0</text><text x="40" y="224" class="t t-card-detail">Local-first, privacy-focused smart home control system. Manage Zigbee devices through a R…</text><rect x="24" y="252" width="760" height="52" rx="6" fill="#161b22" stroke="#30363d" stroke-width="1"/><rect x="24" y="252" width="4" height="52" rx="2" fill="#f85149"/><text x="40" y="270" class="t t-card-title">urmzd.com</text><text x="768" y="270" class="t t-value" text-anchor="end">★ 0</text><text x="40" y="286" class="t t-card-detail">Personal website and blog built with Astro, TypeScript, and MDX—featuring fast static sit…</text><rect x="24" y="314" width="760" height="52" rx="6" fill="#161b22" stroke="#30363d" stroke-width="1"/><rect x="24" y="314" width="4" height="52" rx="2" fill="#bc8cff"/><text x="40" y="332" class="t t-card-title">resume-generator-app</text><text x="768" y="332" class="t t-value" text-anchor="end">★ 0</text><text x="40" y="348" class="t t-card-detail">A native desktop app for building polished resumes with live PDF preview, template galler…</text></svg>
|
|
@@ -11,4 +11,4 @@
|
|
|
11
11
|
.t-card-detail { font-size: 11px; fill: #8b949e; }
|
|
12
12
|
.t-pill { font-size: 11px; font-weight: 600; }
|
|
13
13
|
.t-bullet { font-size: 12px; fill: #c9d1d9; }
|
|
14
|
-
</style></defs><rect width="808" height="186" rx="12" fill="#0d1117"/><text x="24" y="40" class="t t-h">OPEN SOURCE CONTRIBUTIONS</text><text x="24" y="56" class="t t-sub">External repositories contributed to (all time)</text><rect x="24" y="66" width="760" height="44" rx="6" fill="#161b22" stroke="#30363d" stroke-width="1"/><rect x="24" y="66" width="4" height="44" rx="2" fill="#58a6ff"/><text x="40" y="84" class="t t-card-title">MathisWellmann/gym-rs</text><text x="40" y="100" class="t t-card-detail">★
|
|
14
|
+
</style></defs><rect width="808" height="186" rx="12" fill="#0d1117"/><text x="24" y="40" class="t t-h">OPEN SOURCE CONTRIBUTIONS</text><text x="24" y="56" class="t t-sub">External repositories contributed to (all time)</text><rect x="24" y="66" width="760" height="44" rx="6" fill="#161b22" stroke="#30363d" stroke-width="1"/><rect x="24" y="66" width="4" height="44" rx="2" fill="#58a6ff"/><text x="40" y="84" class="t t-card-title">MathisWellmann/gym-rs</text><text x="40" y="100" class="t t-card-detail">★ 127 · Rust</text><rect x="24" y="118" width="760" height="44" rx="6" fill="#161b22" stroke="#30363d" stroke-width="1"/><rect x="24" y="118" width="4" height="44" rx="2" fill="#3fb950"/><text x="40" y="136" class="t t-card-title">getzep/graphiti</text><text x="40" y="152" class="t t-card-detail">★ 23,825 · Python</text></svg>
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="808" height="550" viewBox="0 0 808 550"><defs><style>
|
|
2
|
+
.t { font-family: -apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif; }
|
|
3
|
+
.t-h { font-size: 13px; fill: #c9d1d9; letter-spacing: 1.5px; font-weight: 600; }
|
|
4
|
+
.t-sub { font-size: 11px; fill: #6e7681; }
|
|
5
|
+
.t-label { font-size: 12px; fill: #8b949e; }
|
|
6
|
+
.t-value { font-size: 11px; fill: #6e7681; }
|
|
7
|
+
.t-subhdr { font-size: 11px; fill: #8b949e; letter-spacing: 1px; font-weight: 600; }
|
|
8
|
+
.t-stat-label { font-size: 10px; fill: #8b949e; font-weight: 600; }
|
|
9
|
+
.t-stat-value { font-size: 22px; font-weight: 700; }
|
|
10
|
+
.t-card-title { font-size: 12px; fill: #58a6ff; font-weight: 700; }
|
|
11
|
+
.t-card-detail { font-size: 11px; fill: #8b949e; }
|
|
12
|
+
.t-pill { font-size: 11px; font-weight: 600; }
|
|
13
|
+
.t-bullet { font-size: 12px; fill: #c9d1d9; }
|
|
14
|
+
</style></defs><rect width="808" height="550" rx="12" fill="#0d1117"/><text x="24" y="40" class="t t-h">EXPERTISE</text><text x="24" y="56" class="t t-sub">Curated from dependencies, topics, and languages via AI analysis</text><text x="24" y="80" class="t t-subhdr">AI & MACHINE LEARNING</text><rect x="24" y="92" width="700" height="18" rx="4" fill="#58a6ff" fill-opacity="0.15"/><rect x="24" y="92" width="630" height="18" rx="4" fill="#58a6ff" fill-opacity="0.85"/><text x="734" y="105" class="t t-value">90%</text><text x="24" y="126" class="t t-card-detail">PyTorch · PyTorch Lightning · Rust (Linear Genetic Programm… · Retrieval-Augmented Generatio… · Knowledge Graphs</text><text x="24" y="142" class="t t-card-detail">(SurrealDB) · Q-Learning</text><text x="24" y="170" class="t t-subhdr">WEB DEVELOPMENT & STATIC SITES</text><rect x="24" y="182" width="700" height="18" rx="4" fill="#3fb950" fill-opacity="0.15"/><rect x="24" y="182" width="595" height="18" rx="4" fill="#3fb950" fill-opacity="0.85"/><text x="734" y="195" class="t t-value">85%</text><text x="24" y="216" class="t t-card-detail">Astro · React · TypeScript · Tailwind CSS · MDX</text><text x="24" y="244" class="t t-subhdr">BACKEND & APIS</text><rect x="24" y="256" width="700" height="18" rx="4" fill="#d29922" fill-opacity="0.15"/><rect x="24" y="256" width="560" height="18" rx="4" fill="#d29922" fill-opacity="0.85"/><text x="734" y="269" class="t t-value">80%</text><text x="24" y="290" class="t t-card-detail">Go · FastAPI · OpenAPI · SurrealDB · Graph-enhanced Retrieval</text><text x="24" y="318" class="t t-subhdr">DEVOPS & AUTOMATION</text><rect x="24" y="330" width="700" height="18" rx="4" fill="#f85149" fill-opacity="0.15"/><rect x="24" y="330" width="525" height="18" rx="4" fill="#f85149" fill-opacity="0.85"/><text x="734" y="343" class="t t-value">75%</text><text x="24" y="364" class="t t-card-detail">GitHub Actions · CI/CD · Chezmoi · Nix · Docker</text><text x="24" y="392" class="t t-subhdr">DESKTOP & CLI APPLICATIONS</text><rect x="24" y="404" width="700" height="18" rx="4" fill="#bc8cff" fill-opacity="0.15"/><rect x="24" y="404" width="489.99999999999994" height="18" rx="4" fill="#bc8cff" fill-opacity="0.85"/><text x="734" y="417" class="t t-value">70%</text><text x="24" y="438" class="t t-card-detail">Rust · Go · JavaFX · Wails · Textual</text><text x="24" y="466" class="t t-subhdr">DOCUMENTATION & PUBLISHING</text><rect x="24" y="478" width="700" height="18" rx="4" fill="#39d2c0" fill-opacity="0.15"/><rect x="24" y="478" width="420" height="18" rx="4" fill="#39d2c0" fill-opacity="0.85"/><text x="734" y="491" class="t t-value">60%</text><text x="24" y="512" class="t t-card-detail">TeX/LaTeX · Pandoc · Markdown · PDF Generation</text></svg>
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="808" height="350" viewBox="0 0 808 350"><defs><style>
|
|
2
|
+
.t { font-family: -apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif; }
|
|
3
|
+
.t-h { font-size: 13px; fill: #c9d1d9; letter-spacing: 1.5px; font-weight: 600; }
|
|
4
|
+
.t-sub { font-size: 11px; fill: #6e7681; }
|
|
5
|
+
.t-label { font-size: 12px; fill: #8b949e; }
|
|
6
|
+
.t-value { font-size: 11px; fill: #6e7681; }
|
|
7
|
+
.t-subhdr { font-size: 11px; fill: #8b949e; letter-spacing: 1px; font-weight: 600; }
|
|
8
|
+
.t-stat-label { font-size: 10px; fill: #8b949e; font-weight: 600; }
|
|
9
|
+
.t-stat-value { font-size: 22px; font-weight: 700; }
|
|
10
|
+
.t-card-title { font-size: 12px; fill: #58a6ff; font-weight: 700; }
|
|
11
|
+
.t-card-detail { font-size: 11px; fill: #8b949e; }
|
|
12
|
+
.t-pill { font-size: 11px; font-weight: 600; }
|
|
13
|
+
.t-bullet { font-size: 12px; fill: #c9d1d9; }
|
|
14
|
+
</style></defs><rect width="808" height="350" rx="12" fill="#0d1117"/><text x="24" y="40" class="t t-h">LANGUAGES</text><text x="24" y="56" class="t t-sub">By bytes of code across all public repos</text><circle cx="114" cy="156" r="70" fill="none" stroke="#00ADD8" stroke-width="28" stroke-dasharray="120.51149419170444 319.31147731086656" stroke-dashoffset="0" transform="rotate(-90 114 156)" opacity="0.85"/><circle cx="114" cy="156" r="70" fill="none" stroke="#3178c6" stroke-width="28" stroke-dasharray="110.8353888186479 328.9875826839231" stroke-dashoffset="-120.51149419170444" transform="rotate(-90 114 156)" opacity="0.85"/><circle cx="114" cy="156" r="70" fill="none" stroke="#dea584" stroke-width="28" stroke-dasharray="108.63627396113505 331.186697541436" stroke-dashoffset="-231.34688301035234" transform="rotate(-90 114 156)" opacity="0.85"/><circle cx="114" cy="156" r="70" fill="none" stroke="#3D6117" stroke-width="28" stroke-dasharray="19.792033717615695 420.0309377849553" stroke-dashoffset="-339.9831569714874" transform="rotate(-90 114 156)" opacity="0.85"/><circle cx="114" cy="156" r="70" fill="none" stroke="#89e051" stroke-width="28" stroke-dasharray="15.833626974092558 423.98934452847845" stroke-dashoffset="-359.7751906891031" transform="rotate(-90 114 156)" opacity="0.85"/><circle cx="114" cy="156" r="70" fill="none" stroke="#3572A5" stroke-width="28" stroke-dasharray="13.634512116579701 426.18845938599134" stroke-dashoffset="-375.6088176631957" transform="rotate(-90 114 156)" opacity="0.85"/><circle cx="114" cy="156" r="70" fill="none" stroke="#a52a22" stroke-width="28" stroke-dasharray="7.916813487046279 431.90615801552474" stroke-dashoffset="-389.24332977977537" transform="rotate(-90 114 156)" opacity="0.85"/><circle cx="114" cy="156" r="70" fill="none" stroke="#b07219" stroke-width="28" stroke-dasharray="6.597344572538565 433.22562693003243" stroke-dashoffset="-397.16014326682165" transform="rotate(-90 114 156)" opacity="0.85"/><circle cx="114" cy="156" r="70" fill="none" stroke="#663399" stroke-width="28" stroke-dasharray="5.717698629533424 434.1052728730376" stroke-dashoffset="-403.75748783936024" transform="rotate(-90 114 156)" opacity="0.85"/><circle cx="114" cy="156" r="70" fill="none" stroke="#000080" stroke-width="28" stroke-dasharray="5.717698629533424 434.1052728730376" stroke-dashoffset="-409.47518646889364" transform="rotate(-90 114 156)" opacity="0.85"/><text x="114" y="161" class="t" fill="#c9d1d9" font-size="14" font-weight="700" text-anchor="middle">10</text><text x="114" y="176" class="t" fill="#6e7681" font-size="10" text-anchor="middle">languages</text><rect x="244" y="76" width="12" height="12" rx="2" fill="#00ADD8" opacity="0.85"/><text x="264" y="86" class="t t-label">Go</text><text x="444" y="86" class="t t-value" text-anchor="end">27.4%</text><rect x="244" y="100" width="12" height="12" rx="2" fill="#3178c6" opacity="0.85"/><text x="264" y="110" class="t t-label">TypeScript</text><text x="444" y="110" class="t t-value" text-anchor="end">25.2%</text><rect x="244" y="124" width="12" height="12" rx="2" fill="#dea584" opacity="0.85"/><text x="264" y="134" class="t t-label">Rust</text><text x="444" y="134" class="t t-value" text-anchor="end">24.7%</text><rect x="244" y="148" width="12" height="12" rx="2" fill="#3D6117" opacity="0.85"/><text x="264" y="158" class="t t-label">TeX</text><text x="444" y="158" class="t t-value" text-anchor="end">4.5%</text><rect x="244" y="172" width="12" height="12" rx="2" fill="#89e051" opacity="0.85"/><text x="264" y="182" class="t t-label">Shell</text><text x="444" y="182" class="t t-value" text-anchor="end">3.6%</text><rect x="244" y="196" width="12" height="12" rx="2" fill="#3572A5" opacity="0.85"/><text x="264" y="206" class="t t-label">Python</text><text x="444" y="206" class="t t-value" text-anchor="end">3.1%</text><rect x="244" y="220" width="12" height="12" rx="2" fill="#a52a22" opacity="0.85"/><text x="264" y="230" class="t t-label">Jinja</text><text x="444" y="230" class="t t-value" text-anchor="end">1.8%</text><rect x="244" y="244" width="12" height="12" rx="2" fill="#b07219" opacity="0.85"/><text x="264" y="254" class="t t-label">Java</text><text x="444" y="254" class="t t-value" text-anchor="end">1.5%</text><rect x="244" y="268" width="12" height="12" rx="2" fill="#663399" opacity="0.85"/><text x="264" y="278" class="t t-label">CSS</text><text x="444" y="278" class="t t-value" text-anchor="end">1.3%</text><rect x="244" y="292" width="12" height="12" rx="2" fill="#000080" opacity="0.85"/><text x="264" y="302" class="t t-label">Lua</text><text x="444" y="302" class="t t-value" text-anchor="end">1.3%</text></svg>
|
|
@@ -11,4 +11,4 @@
|
|
|
11
11
|
.t-card-detail { font-size: 11px; fill: #8b949e; }
|
|
12
12
|
.t-pill { font-size: 11px; font-weight: 600; }
|
|
13
13
|
.t-bullet { font-size: 12px; fill: #c9d1d9; }
|
|
14
|
-
</style></defs><rect width="808" height="162" rx="12" fill="#0d1117"/><text x="24" y="40" class="t t-h">AT A GLANCE</text><text x="24" y="56" class="t t-sub">Contribution activity over the past year</text><rect x="24" y="66" width="140" height="72" rx="8" fill="#161b22" stroke="#30363d" stroke-width="1"/><circle cx="38" cy="82" r="4" fill="#58a6ff"/><text x="48" y="86" class="t t-stat-label">COMMITS</text><text x="94" y="118" fill="#58a6ff" class="t t-stat-value" text-anchor="middle">1,
|
|
14
|
+
</style></defs><rect width="808" height="162" rx="12" fill="#0d1117"/><text x="24" y="40" class="t t-h">AT A GLANCE</text><text x="24" y="56" class="t t-sub">Contribution activity over the past year</text><rect x="24" y="66" width="140" height="72" rx="8" fill="#161b22" stroke="#30363d" stroke-width="1"/><circle cx="38" cy="82" r="4" fill="#58a6ff"/><text x="48" y="86" class="t t-stat-label">COMMITS</text><text x="94" y="118" fill="#58a6ff" class="t t-stat-value" text-anchor="middle">1,117</text><rect x="179" y="66" width="140" height="72" rx="8" fill="#161b22" stroke="#30363d" stroke-width="1"/><circle cx="193" cy="82" r="4" fill="#3fb950"/><text x="203" y="86" class="t t-stat-label">PRS</text><text x="249" y="118" fill="#3fb950" class="t t-stat-value" text-anchor="middle">3</text><rect x="334" y="66" width="140" height="72" rx="8" fill="#161b22" stroke="#30363d" stroke-width="1"/><circle cx="348" cy="82" r="4" fill="#d29922"/><text x="358" y="86" class="t t-stat-label">REVIEWS</text><text x="404" y="118" fill="#d29922" class="t t-stat-value" text-anchor="middle">5</text><rect x="489" y="66" width="140" height="72" rx="8" fill="#161b22" stroke="#30363d" stroke-width="1"/><circle cx="503" cy="82" r="4" fill="#bc8cff"/><text x="513" y="86" class="t t-stat-label">REPOS</text><text x="559" y="118" fill="#bc8cff" class="t t-stat-value" text-anchor="middle">26</text></svg>
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
# Urmzd Mukhammadnaim
|
|
2
2
|
|
|
3
|
-
I build robust, multi-language systems—from AI-powered
|
|
3
|
+
I build robust, multi-language systems in Go, TypeScript, and Rust—from AI-powered resume generators and privacy-first agents to modular frameworks for genetic programming and knowledge graphs. My work empowers people through automation, local-first apps, and scalable backend solutions.
|
|
4
4
|
|
|
5
5
|
[](https://urmzd.com) [](https://x.com/urmzd_) [](https://linkedin.com/in/urmzd)
|
|
6
6
|
|
|
7
7
|

|
|
8
8
|
|
|
9
|
-
<sub>Last generated on 2026-03-
|
|
9
|
+
<sub>Last generated on 2026-03-17 using [@urmzd/github-insights](https://github.com/urmzd/github-insights)</sub>
|