Compare commits

..

55 commits

Author SHA1 Message Date
github-actions[bot]
0738bd4406 chore: nightly telemetry refresh 2026-09-19 06:17:07 +00:00
github-actions[bot]
ced842ec38 chore: nightly telemetry refresh 2026-09-18 06:17:07 +00:00
github-actions[bot]
9f9beb201e chore: nightly telemetry refresh 2026-09-17 06:17:07 +00:00
github-actions[bot]
218ffc98b2 chore: nightly telemetry refresh 2026-09-16 06:17:07 +00:00
github-actions[bot]
6122ccc7f1 chore: nightly telemetry refresh 2026-09-15 06:17:07 +00:00
github-actions[bot]
310e3af4f5 chore: nightly telemetry refresh 2026-09-14 06:17:07 +00:00
github-actions[bot]
cdedabf617 chore: nightly telemetry refresh 2026-09-13 06:17:07 +00:00
github-actions[bot]
fd4ff16c80 chore: nightly telemetry refresh 2026-09-12 06:17:07 +00:00
github-actions[bot]
ec51fcbfb4 chore: nightly telemetry refresh 2026-09-11 06:17:04 +00:00
github-actions[bot]
ca980e7bc8 chore: nightly telemetry refresh 2026-09-10 06:17:04 +00:00
github-actions[bot]
ffbda27c4d chore: nightly telemetry refresh 2026-09-09 06:17:04 +00:00
github-actions[bot]
a7e4cbf6d9 chore: nightly telemetry refresh 2026-09-08 06:17:04 +00:00
github-actions[bot]
1854ab8482 chore: nightly telemetry refresh 2026-09-07 06:17:04 +00:00
github-actions[bot]
2725ceb26b chore: nightly telemetry refresh 2026-09-06 06:17:04 +00:00
github-actions[bot]
43f000e929 chore: nightly telemetry refresh 2026-09-05 06:17:04 +00:00
github-actions[bot]
a9a9e0a160 chore: nightly telemetry refresh 2026-09-04 06:17:04 +00:00
github-actions[bot]
97937a1b3a chore: nightly telemetry refresh 2026-09-03 06:17:04 +00:00
github-actions[bot]
4bd53c7560 chore: nightly telemetry refresh 2026-09-02 06:17:04 +00:00
github-actions[bot]
b0aac60bd6 chore: nightly telemetry refresh 2026-09-01 06:17:04 +00:00
github-actions[bot]
2bdb89a21e chore: nightly telemetry refresh 2026-08-31 06:17:04 +00:00
github-actions[bot]
f47579637d chore: nightly telemetry refresh 2026-08-30 06:17:04 +00:00
github-actions[bot]
65ba1099c4 chore: nightly telemetry refresh 2026-08-29 06:17:04 +00:00
github-actions[bot]
db708d97e8 chore: nightly telemetry refresh 2026-08-28 06:17:04 +00:00
github-actions[bot]
d253efee2d chore: nightly telemetry refresh 2026-08-27 06:17:04 +00:00
github-actions[bot]
b5ea1163aa chore: nightly telemetry refresh 2026-08-26 06:17:04 +00:00
github-actions[bot]
972e459db9 chore: nightly telemetry refresh 2026-08-25 06:17:04 +00:00
github-actions[bot]
25b8b16f2f chore: nightly telemetry refresh 2026-08-24 06:17:04 +00:00
github-actions[bot]
b305532c9a chore: nightly telemetry refresh 2026-08-23 06:17:04 +00:00
github-actions[bot]
853ec815b3 chore: nightly telemetry refresh 2026-08-22 06:17:04 +00:00
github-actions[bot]
353f10e95d chore: nightly telemetry refresh 2026-08-21 06:17:04 +00:00
github-actions[bot]
0244714b82 chore: nightly telemetry refresh 2026-08-20 06:17:04 +00:00
github-actions[bot]
0f380f8989 chore: nightly telemetry refresh 2026-08-19 06:17:04 +00:00
github-actions[bot]
0a461f922e chore: nightly telemetry refresh 2026-08-18 06:17:04 +00:00
github-actions[bot]
898e542923 chore: nightly telemetry refresh 2026-08-17 06:17:04 +00:00
github-actions[bot]
147996499b chore: nightly telemetry refresh 2026-08-16 06:17:04 +00:00
developtheweb@protonmail.com
dca6780143 chore: drop a stray __pycache__ artifact, ignore it
Committed by accident when the repaired scraper was exercised against the
live site — importing engine/nightly.py leaves a .pyc behind. Untracked and
ignored so the next test run cannot repeat it.
2026-08-15 04:58:33 -04:00
developtheweb@protonmail.com
0b31ebf801 fix(nightly): repoint feed to rss.xml, parse read-time, repair scraper
The FEED table had been frozen since 2026-07-08 — 37 nightly runs that all
went green while updating nothing. Both paths were dead at once, which is why
it left no trace: FEED_URL requested /feed.xml, which 404s (the site serves
/rss.xml), and the HTML fallback then matched zero articles because it looks
for a thumbnail alt= attribute and a Title-Case date, and the redesign has
neither — no feature images on the index, and uppercase abbreviated months.
It looked current only because no post has been published since July 2025, so
the four titles it froze with are still the four newest.

FEED_URL now points at the real feed, which also carries read-time in the
site's own namespace — so the meta column comes from the publisher instead of
being scraped back out of a page. The fallback is rewritten against the
markup the index actually emits: one `row` div holding an anchor and a `meta`
span.

Failures stay fail-safe and stop being invisible. A skipped section now emits
a GitHub Actions ::warning annotation that shows up in the run summary, plus
a count of how many sections did not update. A silent skip and a successful
run looked identical, and that is the whole reason this went unnoticed.

Verified against the live site: the fallback parses all 25 articles with
dates and read-times, and the feed path yields the same four rows the table
already shows.
2026-08-15 04:35:09 -04:00
github-actions[bot]
b9ffcc2456 chore: nightly telemetry refresh 2026-07-21 07:10:11 +00:00
github-actions[bot]
3ac4f5ed9f chore: nightly telemetry refresh 2026-07-20 07:22:30 +00:00
github-actions[bot]
c2ed58bb1e chore: nightly telemetry refresh 2026-07-19 07:08:30 +00:00
github-actions[bot]
79a0bdd76c chore: nightly telemetry refresh 2026-07-18 06:56:45 +00:00
github-actions[bot]
38644e546b chore: nightly telemetry refresh 2026-07-17 07:03:37 +00:00
github-actions[bot]
baa709f5e3 chore: nightly telemetry refresh 2026-07-16 07:06:31 +00:00
github-actions[bot]
722648490e chore: nightly telemetry refresh 2026-07-15 07:01:25 +00:00
github-actions[bot]
7d03b190ba chore: nightly telemetry refresh 2026-07-14 06:59:07 +00:00
github-actions[bot]
d7bcfff3f0 chore: nightly telemetry refresh 2026-07-13 07:25:03 +00:00
github-actions[bot]
6a2586d6f4 chore: nightly telemetry refresh 2026-07-12 07:08:47 +00:00
github-actions[bot]
d22d855481 chore: nightly telemetry refresh 2026-07-11 07:00:37 +00:00
github-actions[bot]
728826af78 chore: nightly telemetry refresh 2026-07-10 07:27:31 +00:00
github-actions[bot]
fc019b7fe4 chore: nightly telemetry refresh 2026-07-09 07:27:54 +00:00
github-actions[bot]
ee7edc426a chore: nightly telemetry refresh 2026-07-08 07:08:41 +00:00
github-actions[bot]
ba1f22cd14 chore: nightly telemetry refresh 2026-07-08 02:03:33 +00:00
github-actions[bot]
a48d1c2437 chore: demon sorted 12 bits (S lowered by @developtheweb) 2026-07-08 02:02:03 +00:00
developtheweb
c7b0d4ff3b feat: moonshot v2 profile redesign 2026-07-07 22:01:23 -04:00
developtheweb
7d68a667a2 feat: moonshot README — entropy engine, mission board, verified inventory 2026-07-07 22:01:12 -04:00
6 changed files with 341 additions and 337 deletions

2
.gitignore vendored
View file

@ -1 +1,3 @@
.DS_Store
__pycache__/
*.pyc

View file

@ -4,23 +4,33 @@ This file provides guidance to Claude Code (claude.ai/code) when working with co
## Repository Overview
This is a GitHub profile repository containing only a README.md file that displays on the @developtheweb GitHub profile page. There is no source code, build configuration, or tests in this repository.
This is the GitHub profile repository for @developtheweb. Its README renders on the profile page and is a live system, not a static page: an animated entropy-reversal SVG whose state is lowered by visitors ("Maxwell's demon"), plus nightly-refreshed telemetry. Do not reintroduce third-party rendering services (capsule-render, readme-typing-svg, komarev, vercel stats/quotes apps) — everything renders from this repo, GitHub, or stevenmilanese.com assets.
## Repository Structure
## Architecture
```
/home/aurelius/git/developtheweb/
└── README.md
README.md profile page; contains marker-fenced generated sections
engine/generate_entropy_svg.py SMIL-animated assets/entropy.svg from state/demon.json (stdlib only)
engine/nightly.py refreshes README marker sections + bumps entropy generation (stdlib only)
state/demon.json bits_sorted / generation / demons / last_sorted_at
assets/entropy.svg generated — never hand-edit; regenerate via the engine
.github/workflows/demon.yml issues:opened, title "demon: sort 12 bits" → +12 bits, regen SVG, commit, comment, close
.github/workflows/nightly.yml cron 17 6 * * * → engine/nightly.py, commit if changed
.github/workflows/snake.yml cron every 12h → contribution snake SVGs on the `output` branch
```
## Working with this Repository
## README marker sections (machine-written — edit the generators, not the sections)
Since this is a profile repository with only a README.md file:
- `<!-- FEED:START/END -->` — 4 newest Strange Quarks articles (RSS `/feed.xml` if populated, else parsed from https://stevenmilanese.com/blog HTML)
- `<!-- STATS:START/END -->` — telemetry row with live star/repo totals
- `<!-- FEATURED:START/END -->` — featured cards (anthropic-certs, slTrain, meowchi-releases, mpl) with live star counts
- Any changes should maintain the professional formatting and structure of the profile README
- The README uses GitHub-flavored markdown with centered content, badges, and images
- External image assets are referenced from `https://github.com/developtheweb/stevenmilanese-com/blob/main/public/`
`engine/nightly.py` is fail-safe per section: on fetch/parse failure it leaves that section untouched and exits 0.
## Note
## Conventions
This is not a development project - it's a GitHub profile repository used for personal branding and showcasing work. There are no build commands, tests, or development workflows associated with this repository.
- Conventional commit messages (`feat:`, `fix:`, `chore:`, `ci:`). No attribution footers of any kind.
- Contact is `rev@moonfactory.dev` only — the old Telegram link and the old level-host email address are retired and must not reappear.
- Entropy formula: `S = max(12.7, 100 0.0002·bits_sorted)`; 12 bits per demon click = 34.4 zJ (12 × kT ln 2 at 300 K).
- SVG regeneration is deterministic for a given `generation` — diffs stay reviewable.
- Test locally with `python3 engine/generate_entropy_svg.py` and `GITHUB_TOKEN=$(gh auth token) python3 engine/nightly.py` (both stdlib-only; no pip installs).

277
README.md
View file

@ -1,191 +1,120 @@
<div align="center">
<!-- Animated Wave -->
<img src="https://capsule-render.vercel.app/api?type=waving&color=gradient&customColorList=14,15,16,17,18,19&height=100&section=header&fontSize=0" width="100%" />
# Reversing the irreversible
<!-- Logo with Animation -->
<img src="https://stevenmilanese.com/StevenMilanese-full-logo.png" alt="Steven Milanese" width="400"/>
*Rev. Steven Milanese — the second law is statistical, not sacred. The demon pays its bills in bits.*
<!-- Animated Typing Header -->
[![Typing SVG](https://readme-typing-svg.demolab.com?font=Fira+Code&size=32&duration=2800&pause=2000&color=06B6D4&center=true&vCenter=true&width=600&lines=Steven+Milanese;Autodidactic+Polymath;Systems+Alchemist;Physicist+%26+Reverend;Arch+Linux+User+BTW)](https://git.io/typing-svg)
<!-- Profile Views Counter -->
<br>
<img src="https://komarev.com/ghpvc/?username=developtheweb&color=0891b2&style=for-the-badge&label=PROFILE+VIEWS" alt="Profile Views"/>
<!-- Social Badges with Custom Colors -->
<br><br>
[![Website](https://img.shields.io/badge/Website-stevenmilanese.com-1F2937?style=for-the-badge&logo=googlechrome&logoColor=white&labelColor=374151&color=06B6D4)](https://stevenmilanese.com)
[![LinkedIn](https://img.shields.io/badge/LinkedIn-Connect-0A66C2?style=for-the-badge&logo=linkedin&logoColor=white&labelColor=084C91&color=0A66C2)](https://www.linkedin.com/in/stevenmilanese/)
[![Blog](https://img.shields.io/badge/Blog-Strange_Quarks-14B8A6?style=for-the-badge&logo=hashnode&logoColor=white&labelColor=047857&color=14B8A6)](https://stevenmilanese.com/strange-quarks)
<br>
[![X](https://img.shields.io/badge/X-@developtheweb-000000?style=for-the-badge&logo=x&logoColor=white&labelColor=171717&color=000000)](https://x.com/developtheweb)
[![Telegram](https://img.shields.io/badge/Telegram-@CodeAndVerse-26A5E4?style=for-the-badge&logo=telegram&logoColor=white&labelColor=0088CC&color=26A5E4)](https://t.me/CodeAndVerse)
[![Email](https://img.shields.io/badge/Email-Contact_Me-EA4335?style=for-the-badge&logo=gmail&logoColor=white&labelColor=C23B2C&color=EA4335)](mailto:dev@level.host)
<br>
[![ORCID](https://img.shields.io/badge/ORCID-Research_Profile-A6CE39?style=for-the-badge&logo=orcid&logoColor=white&labelColor=87A330&color=A6CE39)](https://orcid.org/0009-0008-0442-208X)
[![OSF](https://img.shields.io/badge/OSF-Open_Science-2077B4?style=for-the-badge&logo=osf&logoColor=white&labelColor=1A5F8F&color=2077B4)](https://osf.io/3tsd4/)
</div>
<!-- Animated Banner -->
<div align="center">
<img src="https://stevenmilanese.com/StevenMilanese-hero-stars.webp" alt="Hero Banner" width="100%"/>
<img src="assets/entropy.svg" width="100%" alt="Entropy-reversal field: particles converging from chaos into a (2,5) torus-knot lattice"/>
[⚡ Be the demon — sort 12 bits](https://github.com/developtheweb/developtheweb/issues/new?title=demon%3A+sort+12+bits&body=One+tap.+Submit+to+sort.)
<sub>Each click opens a one-tap issue; an Action sorts the field, recommits the SVG, closes the issue. This README's state is community-lowered entropy.</sub>
</div>
<!-- Quote Section -->
<div align="center">
<br>
<img src="https://quotes-github-readme.vercel.app/api?type=horizontal&theme=tokyonight&quote=Transforming%20complexity%20into%20elegance%2C%20one%20algorithm%20at%20a%20time.&author=Steven%20Milanese" alt="Quote"/>
<br>
</div>
## About the Reverend
## 🎯 About Me
```python
class StevenMilanese:
def __init__(self):
self.title = "Autodidactic Polymath | Systems Alchemist"
self.location = "🌍 Earth"
self.os = "Arch Linux BTW 🐧"
self.current_focus = ["AI Architecture", "Quantum Computing", "WebGL", "Spiritual Tech"]
self.philosophy = "Bridge technical excellence with human experience"
def transform_challenges(self, problem):
return f"✨ Inspired solution for {problem}"
```
Reverend ≔ Physicist ⊗ Minister ⊗ Systems_Alchemist
domain : ℝ³·¹ ⊗ CY₃(χ = ±6)
axiom : complexity ⟼ elegance
method : ∀ p ∈ Inconceivable — solve(p) pose(better_p)
runtime : Arch Linux, btw
```
I transform complex challenges into inspired technological solutions. By seamlessly integrating Artificial Intelligence with cutting-edge development practices, I create systems that push the boundaries of what's possible. My expertise spans multiple domains including theoretical physics, mathematics, AI systems architecture, and spiritual technology.
*Written in MPL — the author's own language. Ordained minister, autodidactic polymath, natural philosopher. The ministry and the physics are the same inquiry conducted at different energy scales.*
## 🚀 Tech Arsenal
## The mission — goals inconceivable by design
<table>
<tr>
<td width="50%" valign="top">
**Reverse the irreversible**
Maxwell's demon on GitHub's own infrastructure, funded in Landauer's currency. *(running above)*
</td>
<td width="50%" valign="top">
**Derive the three generations**
CalabiYau compactifications, χ = ±6. [ORCID](https://orcid.org/0009-0008-0442-208X) · [OSF](https://osf.io/3tsd4/) · [companion essays](https://stevenmilanese.com/blog/tag/calabi-yau-manifolds)
</td>
</tr>
<tr>
<td width="50%" valign="top">
**Cognitive universality**
[MPL](https://github.com/developtheweb/mpl): if you can write the equation, you can run it.
</td>
<td width="50%" valign="top">
**Planetary intelligence**
Earth as information processor, argued in full on [Strange Quarks](https://stevenmilanese.com/blog/planetary-intelligence-earth-as-information-processor).
</td>
</tr>
</table>
<!-- STATS:START -->
<div align="center">
### Languages & Frameworks
![TypeScript](https://img.shields.io/badge/TypeScript-3178C6?style=for-the-badge&logo=typescript&logoColor=white)
![JavaScript](https://img.shields.io/badge/JavaScript-F7DF1E?style=for-the-badge&logo=javascript&logoColor=black)
![Python](https://img.shields.io/badge/Python-3776AB?style=for-the-badge&logo=python&logoColor=white)
![React](https://img.shields.io/badge/React-61DAFB?style=for-the-badge&logo=react&logoColor=black)
![Next.js](https://img.shields.io/badge/Next.js-000000?style=for-the-badge&logo=nextdotjs&logoColor=white)
![Node.js](https://img.shields.io/badge/Node.js-339933?style=for-the-badge&logo=nodedotjs&logoColor=white)
![Three.js](https://img.shields.io/badge/Three.js-000000?style=for-the-badge&logo=threedotjs&logoColor=white)
### Operating System & Environment
![Arch Linux](https://img.shields.io/badge/Arch_Linux-1793D1?style=for-the-badge&logo=arch-linux&logoColor=white)
![BTW I Use Arch](https://img.shields.io/badge/BTW_I_Use_Arch-1793D1?style=for-the-badge&logo=arch-linux&logoColor=white)
![Neovim](https://img.shields.io/badge/Neovim-57A143?style=for-the-badge&logo=neovim&logoColor=white)
![Terminal](https://img.shields.io/badge/Terminal-4D4D4D?style=for-the-badge&logo=windows-terminal&logoColor=white)
### Tools & Technologies
![Docker](https://img.shields.io/badge/Docker-2496ED?style=for-the-badge&logo=docker&logoColor=white)
![AWS](https://img.shields.io/badge/AWS-232F3E?style=for-the-badge&logo=amazonaws&logoColor=white)
![PostgreSQL](https://img.shields.io/badge/PostgreSQL-336791?style=for-the-badge&logo=postgresql&logoColor=white)
![Git](https://img.shields.io/badge/Git-F05032?style=for-the-badge&logo=git&logoColor=white)
![Tailwind CSS](https://img.shields.io/badge/Tailwind_CSS-38B2AC?style=for-the-badge&logo=tailwind-css&logoColor=white)
![WebGL](https://img.shields.io/badge/WebGL-990000?style=for-the-badge&logo=webgl&logoColor=white)
![AI/ML](https://img.shields.io/badge/AI/ML-FF6F61?style=for-the-badge&logo=tensorflow&logoColor=white)
`10¹⁰⁶ yr until heat death — the deadline` · `2.9 zJ of order per bit sorted (kT ln 2, 300 K)` · `★ 27 stars across 14 public repos`
</div>
<!-- STATS:END -->
## 📊 GitHub Analytics
## Beneath the physics — the verified inventory
<!-- FEATURED:START -->
<div align="center">
<img width="49%" height="195px" src="https://github-readme-stats.vercel.app/api?username=developtheweb&show_icons=true&count_private=true&hide_border=true&title_color=06B6D4&icon_color=06B6D4&text_color=c9d1d9&bg_color=0d1117" alt="Steven Milanese github stats" />
<img width="41%" height="195px" src="https://github-readme-stats.vercel.app/api/top-langs/?username=developtheweb&layout=compact&hide_border=true&title_color=06B6D4&text_color=c9d1d9&bg_color=0d1117" />
<table>
<tr>
<td width="50%" valign="top">
<h3 align="center"><a href="https://github.com/developtheweb/anthropic-certs">anthropic-certs</a></h3>
<p align="center"><code>★ 11</code></p>
<p align="center">Verified Anthropic certifications — Claude, API, Claude Code CLI, MCP.</p>
</td>
<td width="50%" valign="top">
<h3 align="center"><a href="https://github.com/developtheweb/slTrain">slTrain</a></h3>
<p align="center"><code>★ 4</code></p>
<p align="center">A steam locomotive for your terminal, smoke trail included.</p>
</td>
</tr>
<tr>
<td width="50%" valign="top">
<h3 align="center"><a href="https://github.com/developtheweb/meowchi-releases">meowchi-releases</a></h3>
<p align="center"><code>★ 4</code></p>
<p align="center">A desktop pet that evolves when you actually get work done.</p>
</td>
<td width="50%" valign="top">
<h3 align="center"><a href="https://github.com/developtheweb/mpl">mpl</a></h3>
<p align="center"><code>★ 2</code></p>
<p align="center">Mathematics Programming Language — write the equation, run the equation.</p>
</td>
</tr>
</table>
</div>
<!-- FEATURED:END -->
<div align="center">
<img src="https://github-readme-activity-graph.vercel.app/graph?username=developtheweb&custom_title=Contribution%20Graph&bg_color=0d1117&color=06B6D4&line=06B6D4&point=06B6D4&area_color=1a1b27&title_color=06B6D4&area=true" alt="Steven Milanese's Activity Graph" width="100%"/>
</div>
## Latest from Strange Quarks
## 🎨 Featured Projects
<!-- FEED:START -->
| Article | |
|:---|---:|
| [THE MAJORITY THAT VOTED FOR HEMLOCK - Plato's Republic, Exegesis and Judgment](https://stevenmilanese.com/blog/the-majority-that-voted-for-hemlock-platos-republic-exegesis-and-judgment) | Sep 15, 2026 · 204 min read |
| [What Survives the Reset](https://stevenmilanese.com/blog/what-survives-the-reset) | Aug 31, 2026 · 12 min read |
| [The Invisible Hand's Blind Spot: A Demand Externality in Competitive Automation](https://stevenmilanese.com/blog/the-invisible-hands-blind-spot-a-demand-externality-in-competitive-automation) | Aug 19, 2026 · 61 min read |
| [Mathematical Programming Language: A Vision for Cognitive Universality Through Unicode-Based Syntax](https://stevenmilanese.com/blog/mathematical-programming-language-a-vision-for-cognitive-universality-through-unicode-based-syntax) | Jul 28, 2025 · 19 min read |
<!-- FEED:END -->
<div align="center">
<table>
<tr>
<td width="50%">
<h3 align="center">stevenmilanese.com</h3>
<div align="center">
<a href="https://stevenmilanese.com" target="_blank"><img src="https://stevenmilanese.com/projects/calabi-yau.webp" width="100%" alt="Portfolio"/></a>
<br><br>
<p><strong>Immersive Portfolio Experience</strong></p>
<p>Three.js visualizations • Server-side rendering • Headless CMS</p>
<p>
<a href="https://stevenmilanese.com" target="_blank"><img src="https://img.shields.io/badge/Visit-Live_Site-06B6D4?style=for-the-badge&logo=vercel&logoColor=white" alt="Visit Live Site"/></a>
</p>
</div>
</td>
<td width="50%">
<h3 align="center">Emergence Intelligence</h3>
<div align="center">
<a href="https://stevenmilanese.com/#projects" target="_blank"><img src="https://stevenmilanese.com/projects/emergence-intelligence.webp" width="100%" alt="Emergence Intelligence"/></a>
<br><br>
<p><strong>Advanced AI System</strong></p>
<p>Cognitive architecture • Semantic processing • Episodic memory</p>
<p>
<a href="https://stevenmilanese.com/#projects" target="_blank"><img src="https://img.shields.io/badge/Learn-More-14B8A6?style=for-the-badge&logo=openai&logoColor=white" alt="Learn More"/></a>
</p>
</div>
</td>
</tr>
</table>
</div>
## 📚 Latest Articles
<div align="center">
| 📝 Article | 🏷️ Topics |
|:---|:---|
| [The Intersection of Physics and AI](https://stevenmilanese.com/strange-quarks) | `Quantum Computing` `Machine Learning` `Physics` |
| [Building Resilient Distributed Systems](https://stevenmilanese.com/strange-quarks) | `Architecture` `Scalability` `DevOps` |
| [WebGL Performance Optimization Techniques](https://stevenmilanese.com/strange-quarks) | `WebGL` `Three.js` `Performance` |
| [Quantum Computing: Practical Applications](https://stevenmilanese.com/strange-quarks) | `Quantum` `Algorithms` `Future Tech` |
</div>
## 🔭 Current Focus
<div align="center">
```mermaid
graph LR
A[Advanced 3D Visualizations] --> B{Current Projects}
C[Serverless Architecture] --> B
D[Quantum Computing + AI] --> B
E[Spiritual Technology] --> B
B --> F[🚀 Innovation]
```
</div>
## 🏆 Achievements & Certifications
<div align="center">
<img src="https://img.shields.io/badge/Physics-Research_Publications-FF6B6B?style=for-the-badge"/>
<img src="https://img.shields.io/badge/AI/ML-Advanced_Practitioner-4ECDC4?style=for-the-badge"/>
<img src="https://img.shields.io/badge/Architecture-Systems_Design-95E1D3?style=for-the-badge"/>
<img src="https://img.shields.io/badge/Leadership-Technical_Strategy-F38181?style=for-the-badge"/>
<br>
<img src="https://img.shields.io/badge/🐧_Arch_Linux-Full_Time_BTW-1793D1?style=for-the-badge"/>
<img src="https://img.shields.io/badge/pacman-Package_Manager-1793D1?style=for-the-badge"/>
<img src="https://img.shields.io/badge/AUR-Helper_yay-1793D1?style=for-the-badge"/>
</div>
## 💫 Connect & Collaborate
<div align="center">
<img src="https://readme-typing-svg.demolab.com?font=Fira+Code&size=22&duration=3000&pause=1000&color=06B6D4&center=true&vCenter=true&width=435&lines=Let's+build+something+amazing!;Open+to+collaborations;Reach+out+anytime!" alt="Typing SVG" />
<br><br>
[![🌐 Website](https://img.shields.io/badge/🌐_Website-stevenmilanese.com-06B6D4?style=for-the-badge)](https://stevenmilanese.com)
[![💼 LinkedIn](https://img.shields.io/badge/💼_LinkedIn-Connect-0A66C2?style=for-the-badge)](https://www.linkedin.com/in/stevenmilanese/)
[![📧 Email](https://img.shields.io/badge/📧_Email-Contact-EA4335?style=for-the-badge)](mailto:dev@level.host)
[![📝 Blog](https://img.shields.io/badge/📝_Blog-Read-14B8A6?style=for-the-badge)](https://stevenmilanese.com/strange-quarks)
</div>
<!-- Snake Animation -->
<div align="center">
<br>
<picture>
@ -197,13 +126,17 @@ graph LR
---
<div align="center">
<img src="https://stevenmilanese.com/StevenMilanese-ghost-logo.png" alt="Steven Milanese Logo" width="80"/>
<br>
<img src="https://readme-typing-svg.demolab.com?font=Fira+Code&size=14&duration=3000&pause=1000&color=718096&center=true&vCenter=true&width=435&lines=Systems+Alchemist;Transforming+Complexity+into+Elegance" alt="Typing SVG" />
<br>
<sub>⚡ Powered by curiosity, driven by innovation</sub>
</div>
<table width="100%">
<tr>
<td align="left">
<!-- Wave Footer -->
<img src="https://capsule-render.vercel.app/api?type=waving&color=gradient&customColorList=14,15,16,17,18,19&height=80&section=footer&fontSize=0" width="100%" />
*Founder, [MoonFactory](https://moonfactory.dev) — development and consulting.*
</td>
<td align="right">
[stevenmilanese.com](https://stevenmilanese.com) · [Strange Quarks](https://stevenmilanese.com/blog) · [X](https://x.com/developtheweb) · [LinkedIn](https://www.linkedin.com/in/stevenmilanese/) · [ORCID](https://orcid.org/0009-0008-0442-208X) · [OSF](https://osf.io/3tsd4/) · [rev@moonfactory.dev](mailto:rev@moonfactory.dev)
</td>
</tr>
</table>

View file

@ -1,126 +1,126 @@
<svg xmlns="http://www.w3.org/2000/svg" width="880" height="260" viewBox="0 0 880 260" role="img" aria-label="Entropy-reversal field: S = 100.0 k-bits">
<rect x="0.5" y="0.5" width="879" height="259" rx="8" fill="#010409" stroke="#21262d"/>
<circle r="3" fill="#4dd4e8" cx="804.6" cy="218.8"><animate attributeName="cx" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="804.6;612.1;612.1;804.6"/><animate attributeName="cy" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="218.8;130.0;130.0;218.8"/></circle>
<circle r="3" fill="#4dd4e8" cx="204.6" cy="189.8"><animate attributeName="cx" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="204.6;609.3;609.3;204.6"/><animate attributeName="cy" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="189.8;141.8;141.8;189.8"/></circle>
<circle r="3" fill="#4dd4e8" cx="24.2" cy="137.1"><animate attributeName="cx" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="24.2;601.4;601.4;24.2"/><animate attributeName="cy" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="137.1;152.7;152.7;137.1"/></circle>
<circle r="3" fill="#4dd4e8" cx="598.7" cy="51.9"><animate attributeName="cx" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="598.7;588.9;588.9;598.7"/><animate attributeName="cy" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="51.9;162.2;162.2;51.9"/></circle>
<circle r="3" fill="#4dd4e8" cx="78.1" cy="45.0"><animate attributeName="cx" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="78.1;572.9;572.9;78.1"/><animate attributeName="cy" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="45.0;169.7;169.7;45.0"/></circle>
<circle r="3" fill="#4dd4e8" cx="602.2" cy="172.6"><animate attributeName="cx" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="602.2;554.8;554.8;602.2"/><animate attributeName="cy" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="172.6;175.0;175.0;172.6"/></circle>
<circle r="3" fill="#4dd4e8" cx="679.8" cy="119.5"><animate attributeName="cx" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="679.8;535.8;535.8;679.8"/><animate attributeName="cy" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="119.5;178.1;178.1;119.5"/></circle>
<circle r="3" fill="#4dd4e8" cx="305.8" cy="148.5"><animate attributeName="cx" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="305.8;517.3;517.3;305.8"/><animate attributeName="cy" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="148.5;179.3;179.3;148.5"/></circle>
<circle r="3" fill="#1d6f7d" cx="594.6" cy="188.3"><animate attributeName="cx" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="594.6;500.2;500.2;594.6"/><animate attributeName="cy" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="188.3;179.1;179.1;188.3"/></circle>
<circle r="3" fill="#1d6f7d" cx="249.7" cy="103.8"><animate attributeName="cx" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="249.7;485.4;485.4;249.7"/><animate attributeName="cy" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="103.8;178.1;178.1;103.8"/></circle>
<circle r="3" fill="#4dd4e8" cx="524.1" cy="98.2"><animate attributeName="cx" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="524.1;472.9;472.9;524.1"/><animate attributeName="cy" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="98.2;177.2;177.2;98.2"/></circle>
<circle r="3" fill="#1d6f7d" cx="539.8" cy="234.5"><animate attributeName="cx" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="539.8;462.6;462.6;539.8"/><animate attributeName="cy" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="234.5;176.9;176.9;234.5"/></circle>
<circle r="3" fill="#1d6f7d" cx="66.6" cy="77.6"><animate attributeName="cx" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="66.6;454.0;454.0;66.6"/><animate attributeName="cy" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="77.6;177.8;177.8;77.6"/></circle>
<circle r="3" fill="#1d6f7d" cx="653.4" cy="59.9"><animate attributeName="cx" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="653.4;446.2;446.2;653.4"/><animate attributeName="cy" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="59.9;180.2;180.2;59.9"/></circle>
<circle r="3" fill="#4dd4e8" cx="245.6" cy="211.1"><animate attributeName="cx" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="245.6;438.1;438.1;245.6"/><animate attributeName="cy" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="211.1;184.2;184.2;211.1"/></circle>
<circle r="3" fill="#1d6f7d" cx="421.1" cy="86.8"><animate attributeName="cx" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="421.1;429.0;429.0;421.1"/><animate attributeName="cy" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="86.8;189.5;189.5;86.8"/></circle>
<circle r="3" fill="#4dd4e8" cx="47.9" cy="35.3"><animate attributeName="cx" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="47.9;417.8;417.8;47.9"/><animate attributeName="cy" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="35.3;195.7;195.7;35.3"/></circle>
<circle r="3" fill="#1d6f7d" cx="689.7" cy="78.3"><animate attributeName="cx" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="689.7;404.3;404.3;689.7"/><animate attributeName="cy" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="78.3;202.1;202.1;78.3"/></circle>
<circle r="3" fill="#4dd4e8" cx="254.7" cy="103.8"><animate attributeName="cx" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="254.7;388.2;388.2;254.7"/><animate attributeName="cy" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="103.8;207.9;207.9;103.8"/></circle>
<circle r="3" fill="#4dd4e8" cx="206.3" cy="216.3"><animate attributeName="cx" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="206.3;369.9;369.9;206.3"/><animate attributeName="cy" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="216.3;212.3;212.3;216.3"/></circle>
<circle r="3" fill="#1d6f7d" cx="464.3" cy="187.2"><animate attributeName="cx" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="464.3;350.2;350.2;464.3"/><animate attributeName="cy" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="187.2;214.6;214.6;187.2"/></circle>
<circle r="3" fill="#1d6f7d" cx="157.3" cy="85.8"><animate attributeName="cx" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="157.3;330.1;330.1;157.3"/><animate attributeName="cy" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="85.8;214.4;214.4;85.8"/></circle>
<circle r="3" fill="#4dd4e8" cx="126.4" cy="213.2"><animate attributeName="cx" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="126.4;311.0;311.0;126.4"/><animate attributeName="cy" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="213.2;211.2;211.2;213.2"/></circle>
<circle r="3" fill="#4dd4e8" cx="392.6" cy="146.1"><animate attributeName="cx" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="392.6;294.2;294.2;392.6"/><animate attributeName="cy" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="146.1;205.2;205.2;146.1"/></circle>
<circle r="3" fill="#4dd4e8" cx="829.3" cy="105.1"><animate attributeName="cx" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="829.3;280.8;280.8;829.3"/><animate attributeName="cy" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="105.1;196.7;196.7;105.1"/></circle>
<circle r="3" fill="#1d6f7d" cx="391.3" cy="238.5"><animate attributeName="cx" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="391.3;271.9;271.9;391.3"/><animate attributeName="cy" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="238.5;186.2;186.2;238.5"/></circle>
<circle r="3" fill="#4dd4e8" cx="370.7" cy="167.9"><animate attributeName="cx" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="370.7;267.9;267.9;370.7"/><animate attributeName="cy" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="167.9;174.5;174.5;167.9"/></circle>
<circle r="3" fill="#4dd4e8" cx="592.3" cy="146.0"><animate attributeName="cx" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="592.3;269.0;269.0;592.3"/><animate attributeName="cy" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="146.0;162.2;162.2;146.0"/></circle>
<circle r="3" fill="#1d6f7d" cx="271.8" cy="52.5"><animate attributeName="cx" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="271.8;274.8;274.8;271.8"/><animate attributeName="cy" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="52.5;150.3;150.3;52.5"/></circle>
<circle r="3" fill="#4dd4e8" cx="110.8" cy="195.3"><animate attributeName="cx" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="110.8;284.5;284.5;110.8"/><animate attributeName="cy" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="195.3;139.4;139.4;195.3"/></circle>
<circle r="3" fill="#4dd4e8" cx="138.2" cy="70.9"><animate attributeName="cx" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="138.2;296.9;296.9;138.2"/><animate attributeName="cy" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="70.9;130.0;130.0;70.9"/></circle>
<circle r="3" fill="#4dd4e8" cx="214.6" cy="86.3"><animate attributeName="cx" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="214.6;310.8;310.8;214.6"/><animate attributeName="cy" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="86.3;122.3;122.3;86.3"/></circle>
<circle r="3" fill="#1d6f7d" cx="405.1" cy="28.7"><animate attributeName="cx" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="405.1;324.8;324.8;405.1"/><animate attributeName="cy" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="28.7;116.3;116.3;28.7"/></circle>
<circle r="3" fill="#4dd4e8" cx="681.0" cy="195.2"><animate attributeName="cx" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="681.0;337.7;337.7;681.0"/><animate attributeName="cy" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="195.2;111.6;111.6;195.2"/></circle>
<circle r="3" fill="#1d6f7d" cx="259.8" cy="111.8"><animate attributeName="cx" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="259.8;348.7;348.7;259.8"/><animate attributeName="cy" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="111.8;107.8;107.8;111.8"/></circle>
<circle r="3" fill="#1d6f7d" cx="202.4" cy="148.7"><animate attributeName="cx" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="202.4;357.3;357.3;202.4"/><animate attributeName="cy" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="148.7;104.4;104.4;148.7"/></circle>
<circle r="3" fill="#4dd4e8" cx="621.0" cy="82.7"><animate attributeName="cx" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="621.0;363.4;363.4;621.0"/><animate attributeName="cy" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="82.7;100.5;100.5;82.7"/></circle>
<circle r="3" fill="#1d6f7d" cx="551.0" cy="42.8"><animate attributeName="cx" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="551.0;367.5;367.5;551.0"/><animate attributeName="cy" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="42.8;95.7;95.7;42.8"/></circle>
<circle r="3" fill="#1d6f7d" cx="206.4" cy="69.2"><animate attributeName="cx" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="206.4;370.2;370.2;206.4"/><animate attributeName="cy" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="69.2;89.5;89.5;69.2"/></circle>
<circle r="3" fill="#4dd4e8" cx="748.3" cy="229.0"><animate attributeName="cx" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="748.3;372.6;372.6;748.3"/><animate attributeName="cy" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="229.0;81.9;81.9;229.0"/></circle>
<circle r="3" fill="#4dd4e8" cx="251.9" cy="193.8"><animate attributeName="cx" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="251.9;375.7;375.7;251.9"/><animate attributeName="cy" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="193.8;72.8;72.8;193.8"/></circle>
<circle r="3" fill="#4dd4e8" cx="568.3" cy="163.5"><animate attributeName="cx" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="568.3;380.6;380.6;568.3"/><animate attributeName="cy" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="163.5;62.7;62.7;163.5"/></circle>
<circle r="3" fill="#4dd4e8" cx="178.4" cy="219.5"><animate attributeName="cx" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="178.4;388.2;388.2;178.4"/><animate attributeName="cy" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="219.5;52.1;52.1;219.5"/></circle>
<circle r="3" fill="#4dd4e8" cx="770.5" cy="143.1"><animate attributeName="cx" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="770.5;398.8;398.8;770.5"/><animate attributeName="cy" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="143.1;41.9;41.9;143.1"/></circle>
<circle r="3" fill="#4dd4e8" cx="200.2" cy="135.2"><animate attributeName="cx" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="200.2;412.5;412.5;200.2"/><animate attributeName="cy" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="135.2;32.8;32.8;135.2"/></circle>
<circle r="3" fill="#4dd4e8" cx="531.9" cy="213.6"><animate attributeName="cx" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="531.9;429.0;429.0;531.9"/><animate attributeName="cy" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="213.6;25.7;25.7;213.6"/></circle>
<circle r="3" fill="#4dd4e8" cx="619.2" cy="226.1"><animate attributeName="cx" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="619.2;447.4;447.4;619.2"/><animate attributeName="cy" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="226.1;21.3;21.3;226.1"/></circle>
<circle r="3" fill="#4dd4e8" cx="688.8" cy="97.1"><animate attributeName="cx" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="688.8;466.7;466.7;688.8"/><animate attributeName="cy" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="97.1;20.0;20.0;97.1"/></circle>
<circle r="3" fill="#4dd4e8" cx="532.6" cy="94.9"><animate attributeName="cx" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="532.6;485.5;485.5;532.6"/><animate attributeName="cy" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="94.9;22.0;22.0;94.9"/></circle>
<circle r="3" fill="#1d6f7d" cx="495.7" cy="117.5"><animate attributeName="cx" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="495.7;502.7;502.7;495.7"/><animate attributeName="cy" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="117.5;27.3;27.3;117.5"/></circle>
<circle r="3" fill="#4dd4e8" cx="633.1" cy="176.5"><animate attributeName="cx" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="633.1;517.1;517.1;633.1"/><animate attributeName="cy" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="176.5;35.3;35.3;176.5"/></circle>
<circle r="3" fill="#4dd4e8" cx="390.3" cy="83.3"><animate attributeName="cx" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="390.3;527.8;527.8;390.3"/><animate attributeName="cy" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="83.3;45.6;45.6;83.3"/></circle>
<circle r="3" fill="#4dd4e8" cx="812.5" cy="190.6"><animate attributeName="cx" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="812.5;534.4;534.4;812.5"/><animate attributeName="cy" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="190.6;57.4;57.4;190.6"/></circle>
<circle r="3" fill="#1d6f7d" cx="328.7" cy="205.5"><animate attributeName="cx" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="328.7;536.9;536.9;328.7"/><animate attributeName="cy" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="205.5;69.7;69.7;205.5"/></circle>
<circle r="3" fill="#4dd4e8" cx="525.4" cy="70.0"><animate attributeName="cx" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="525.4;535.8;535.8;525.4"/><animate attributeName="cy" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="70.0;81.9;81.9;70.0"/></circle>
<circle r="3" fill="#4dd4e8" cx="102.5" cy="53.4"><animate attributeName="cx" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="102.5;531.9;531.9;102.5"/><animate attributeName="cy" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="53.4;93.2;93.2;53.4"/></circle>
<circle r="3" fill="#4dd4e8" cx="764.0" cy="166.9"><animate attributeName="cx" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="764.0;526.3;526.3;764.0"/><animate attributeName="cy" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="166.9;103.1;103.1;166.9"/></circle>
<circle r="3" fill="#4dd4e8" cx="584.9" cy="24.3"><animate attributeName="cx" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="584.9;520.2;520.2;584.9"/><animate attributeName="cy" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="24.3;111.6;111.6;24.3"/></circle>
<circle r="3" fill="#4dd4e8" cx="478.8" cy="96.1"><animate attributeName="cx" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="478.8;514.9;514.9;478.8"/><animate attributeName="cy" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="96.1;118.7;118.7;96.1"/></circle>
<circle r="3" fill="#1d6f7d" cx="694.1" cy="164.0"><animate attributeName="cx" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="694.1;511.2;511.2;694.1"/><animate attributeName="cy" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="164.0;124.6;124.6;164.0"/></circle>
<circle r="3" fill="#1d6f7d" cx="66.0" cy="206.4"><animate attributeName="cx" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="66.0;510.0;510.0;66.0"/><animate attributeName="cy" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="206.4;130.0;130.0;206.4"/></circle>
<circle r="3" fill="#4dd4e8" cx="721.8" cy="138.9"><animate attributeName="cx" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="721.8;511.2;511.2;721.8"/><animate attributeName="cy" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="138.9;135.4;135.4;138.9"/></circle>
<circle r="3" fill="#4dd4e8" cx="595.1" cy="49.8"><animate attributeName="cx" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="595.1;514.9;514.9;595.1"/><animate attributeName="cy" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="49.8;141.3;141.3;49.8"/></circle>
<circle r="3" fill="#4dd4e8" cx="777.0" cy="45.0"><animate attributeName="cx" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="777.0;520.2;520.2;777.0"/><animate attributeName="cy" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="45.0;148.4;148.4;45.0"/></circle>
<circle r="3" fill="#4dd4e8" cx="725.3" cy="151.0"><animate attributeName="cx" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="725.3;526.3;526.3;725.3"/><animate attributeName="cy" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="151.0;156.9;156.9;151.0"/></circle>
<circle r="3" fill="#4dd4e8" cx="631.4" cy="98.8"><animate attributeName="cx" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="631.4;531.9;531.9;631.4"/><animate attributeName="cy" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="98.8;166.8;166.8;98.8"/></circle>
<circle r="3" fill="#1d6f7d" cx="414.2" cy="229.7"><animate attributeName="cx" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="414.2;535.8;535.8;414.2"/><animate attributeName="cy" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="229.7;178.1;178.1;229.7"/></circle>
<circle r="3" fill="#1d6f7d" cx="454.9" cy="148.6"><animate attributeName="cx" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="454.9;536.9;536.9;454.9"/><animate attributeName="cy" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="148.6;190.3;190.3;148.6"/></circle>
<circle r="3" fill="#1d6f7d" cx="288.9" cy="240.0"><animate attributeName="cx" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="288.9;534.4;534.4;288.9"/><animate attributeName="cy" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="240.0;202.6;202.6;240.0"/></circle>
<circle r="3" fill="#4dd4e8" cx="160.7" cy="136.7"><animate attributeName="cx" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="160.7;527.8;527.8;160.7"/><animate attributeName="cy" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="136.7;214.4;214.4;136.7"/></circle>
<circle r="3" fill="#1d6f7d" cx="522.2" cy="163.9"><animate attributeName="cx" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="522.2;517.1;517.1;522.2"/><animate attributeName="cy" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="163.9;224.7;224.7;163.9"/></circle>
<circle r="3" fill="#4dd4e8" cx="464.2" cy="167.6"><animate attributeName="cx" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="464.2;502.7;502.7;464.2"/><animate attributeName="cy" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="167.6;232.7;232.7;167.6"/></circle>
<circle r="3" fill="#4dd4e8" cx="773.0" cy="135.3"><animate attributeName="cx" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="773.0;485.5;485.5;773.0"/><animate attributeName="cy" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="135.3;238.0;238.0;135.3"/></circle>
<circle r="3" fill="#4dd4e8" cx="79.2" cy="80.8"><animate attributeName="cx" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="79.2;466.7;466.7;79.2"/><animate attributeName="cy" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="80.8;240.0;240.0;80.8"/></circle>
<circle r="3" fill="#4dd4e8" cx="206.8" cy="223.4"><animate attributeName="cx" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="206.8;447.4;447.4;206.8"/><animate attributeName="cy" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="223.4;238.7;238.7;223.4"/></circle>
<circle r="3" fill="#4dd4e8" cx="748.3" cy="150.3"><animate attributeName="cx" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="748.3;429.0;429.0;748.3"/><animate attributeName="cy" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="150.3;234.3;234.3;150.3"/></circle>
<circle r="3" fill="#4dd4e8" cx="61.6" cy="239.8"><animate attributeName="cx" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="61.6;412.5;412.5;61.6"/><animate attributeName="cy" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="239.8;227.2;227.2;239.8"/></circle>
<circle r="3" fill="#4dd4e8" cx="282.5" cy="89.4"><animate attributeName="cx" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="282.5;398.8;398.8;282.5"/><animate attributeName="cy" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="89.4;218.1;218.1;89.4"/></circle>
<circle r="3" fill="#4dd4e8" cx="768.8" cy="96.4"><animate attributeName="cx" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="768.8;388.2;388.2;768.8"/><animate attributeName="cy" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="96.4;207.9;207.9;96.4"/></circle>
<circle r="3" fill="#1d6f7d" cx="187.3" cy="179.1"><animate attributeName="cx" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="187.3;380.6;380.6;187.3"/><animate attributeName="cy" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="179.1;197.3;197.3;179.1"/></circle>
<circle r="3" fill="#4dd4e8" cx="838.0" cy="70.7"><animate attributeName="cx" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="838.0;375.7;375.7;838.0"/><animate attributeName="cy" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="70.7;187.2;187.2;70.7"/></circle>
<circle r="3" fill="#4dd4e8" cx="357.5" cy="217.5"><animate attributeName="cx" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="357.5;372.6;372.6;357.5"/><animate attributeName="cy" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="217.5;178.1;178.1;217.5"/></circle>
<circle r="3" fill="#1d6f7d" cx="327.3" cy="235.2"><animate attributeName="cx" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="327.3;370.2;370.2;327.3"/><animate attributeName="cy" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="235.2;170.5;170.5;235.2"/></circle>
<circle r="3" fill="#1d6f7d" cx="737.9" cy="158.1"><animate attributeName="cx" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="737.9;367.5;367.5;737.9"/><animate attributeName="cy" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="158.1;164.3;164.3;158.1"/></circle>
<circle r="3" fill="#1d6f7d" cx="223.7" cy="54.9"><animate attributeName="cx" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="223.7;363.4;363.4;223.7"/><animate attributeName="cy" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="54.9;159.5;159.5;54.9"/></circle>
<circle r="3" fill="#4dd4e8" cx="637.0" cy="51.2"><animate attributeName="cx" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="637.0;357.3;357.3;637.0"/><animate attributeName="cy" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="51.2;155.6;155.6;51.2"/></circle>
<circle r="3" fill="#4dd4e8" cx="195.3" cy="79.4"><animate attributeName="cx" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="195.3;348.7;348.7;195.3"/><animate attributeName="cy" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="79.4;152.2;152.2;79.4"/></circle>
<circle r="3" fill="#1d6f7d" cx="558.5" cy="214.5"><animate attributeName="cx" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="558.5;337.7;337.7;558.5"/><animate attributeName="cy" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="214.5;148.4;148.4;214.5"/></circle>
<circle r="3" fill="#4dd4e8" cx="147.9" cy="194.4"><animate attributeName="cx" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="147.9;324.8;324.8;147.9"/><animate attributeName="cy" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="194.4;143.7;143.7;194.4"/></circle>
<circle r="3" fill="#4dd4e8" cx="175.8" cy="200.1"><animate attributeName="cx" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="175.8;310.8;310.8;175.8"/><animate attributeName="cy" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="200.1;137.7;137.7;200.1"/></circle>
<circle r="3" fill="#4dd4e8" cx="151.9" cy="48.1"><animate attributeName="cx" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="151.9;296.9;296.9;151.9"/><animate attributeName="cy" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="48.1;130.0;130.0;48.1"/></circle>
<circle r="3" fill="#4dd4e8" cx="672.3" cy="51.6"><animate attributeName="cx" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="672.3;284.5;284.5;672.3"/><animate attributeName="cy" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="51.6;120.6;120.6;51.6"/></circle>
<circle r="3" fill="#4dd4e8" cx="427.4" cy="47.6"><animate attributeName="cx" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="427.4;274.8;274.8;427.4"/><animate attributeName="cy" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="47.6;109.7;109.7;47.6"/></circle>
<circle r="3" fill="#1d6f7d" cx="392.7" cy="154.9"><animate attributeName="cx" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="392.7;269.0;269.0;392.7"/><animate attributeName="cy" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="154.9;97.8;97.8;154.9"/></circle>
<circle r="3" fill="#4dd4e8" cx="462.2" cy="120.6"><animate attributeName="cx" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="462.2;267.9;267.9;462.2"/><animate attributeName="cy" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="120.6;85.5;85.5;120.6"/></circle>
<circle r="3" fill="#1d6f7d" cx="655.6" cy="142.1"><animate attributeName="cx" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="655.6;271.9;271.9;655.6"/><animate attributeName="cy" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="142.1;73.8;73.8;142.1"/></circle>
<circle r="3" fill="#4dd4e8" cx="844.0" cy="95.7"><animate attributeName="cx" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="844.0;280.8;280.8;844.0"/><animate attributeName="cy" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="95.7;63.3;63.3;95.7"/></circle>
<circle r="3" fill="#4dd4e8" cx="94.0" cy="50.2"><animate attributeName="cx" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="94.0;294.2;294.2;94.0"/><animate attributeName="cy" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="50.2;54.8;54.8;50.2"/></circle>
<circle r="3" fill="#1d6f7d" cx="184.1" cy="22.3"><animate attributeName="cx" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="184.1;311.0;311.0;184.1"/><animate attributeName="cy" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="22.3;48.8;48.8;22.3"/></circle>
<circle r="3" fill="#4dd4e8" cx="206.0" cy="76.0"><animate attributeName="cx" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="206.0;330.1;330.1;206.0"/><animate attributeName="cy" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="76.0;45.6;45.6;76.0"/></circle>
<circle r="3" fill="#4dd4e8" cx="287.7" cy="184.9"><animate attributeName="cx" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="287.7;350.2;350.2;287.7"/><animate attributeName="cy" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="184.9;45.4;45.4;184.9"/></circle>
<circle r="3" fill="#4dd4e8" cx="628.6" cy="124.5"><animate attributeName="cx" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="628.6;369.9;369.9;628.6"/><animate attributeName="cy" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="124.5;47.7;47.7;124.5"/></circle>
<circle r="3" fill="#4dd4e8" cx="573.6" cy="192.2"><animate attributeName="cx" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="573.6;388.2;388.2;573.6"/><animate attributeName="cy" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="192.2;52.1;52.1;192.2"/></circle>
<circle r="3" fill="#4dd4e8" cx="646.1" cy="22.2"><animate attributeName="cx" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="646.1;404.3;404.3;646.1"/><animate attributeName="cy" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="22.2;57.9;57.9;22.2"/></circle>
<circle r="3" fill="#4dd4e8" cx="298.3" cy="24.4"><animate attributeName="cx" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="298.3;417.8;417.8;298.3"/><animate attributeName="cy" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="24.4;64.3;64.3;24.4"/></circle>
<circle r="3" fill="#4dd4e8" cx="759.3" cy="177.4"><animate attributeName="cx" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="759.3;429.0;429.0;759.3"/><animate attributeName="cy" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="177.4;70.5;70.5;177.4"/></circle>
<circle r="3" fill="#4dd4e8" cx="529.4" cy="95.1"><animate attributeName="cx" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="529.4;438.1;438.1;529.4"/><animate attributeName="cy" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="95.1;75.8;75.8;95.1"/></circle>
<circle r="3" fill="#1d6f7d" cx="690.2" cy="47.3"><animate attributeName="cx" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="690.2;446.2;446.2;690.2"/><animate attributeName="cy" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="47.3;79.8;79.8;47.3"/></circle>
<circle r="3" fill="#4dd4e8" cx="300.1" cy="147.8"><animate attributeName="cx" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="300.1;454.0;454.0;300.1"/><animate attributeName="cy" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="147.8;82.2;82.2;147.8"/></circle>
<circle r="3" fill="#1d6f7d" cx="337.4" cy="159.0"><animate attributeName="cx" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="337.4;462.6;462.6;337.4"/><animate attributeName="cy" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="159.0;83.1;83.1;159.0"/></circle>
<circle r="3" fill="#4dd4e8" cx="779.5" cy="111.9"><animate attributeName="cx" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="779.5;472.9;472.9;779.5"/><animate attributeName="cy" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="111.9;82.8;82.8;111.9"/></circle>
<circle r="3" fill="#4dd4e8" cx="371.8" cy="24.2"><animate attributeName="cx" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="371.8;485.4;485.4;371.8"/><animate attributeName="cy" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="24.2;81.9;81.9;24.2"/></circle>
<circle r="3" fill="#4dd4e8" cx="264.0" cy="220.4"><animate attributeName="cx" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="264.0;500.2;500.2;264.0"/><animate attributeName="cy" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="220.4;80.9;80.9;220.4"/></circle>
<circle r="3" fill="#1d6f7d" cx="848.7" cy="76.0"><animate attributeName="cx" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="848.7;517.3;517.3;848.7"/><animate attributeName="cy" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="76.0;80.7;80.7;76.0"/></circle>
<circle r="3" fill="#4dd4e8" cx="605.9" cy="170.0"><animate attributeName="cx" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="605.9;535.8;535.8;605.9"/><animate attributeName="cy" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="170.0;81.9;81.9;170.0"/></circle>
<circle r="3" fill="#1d6f7d" cx="411.9" cy="225.1"><animate attributeName="cx" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="411.9;554.8;554.8;411.9"/><animate attributeName="cy" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="225.1;85.0;85.0;225.1"/></circle>
<circle r="3" fill="#1d6f7d" cx="185.4" cy="129.0"><animate attributeName="cx" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="185.4;572.9;572.9;185.4"/><animate attributeName="cy" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="129.0;90.3;90.3;129.0"/></circle>
<circle r="3" fill="#1d6f7d" cx="218.4" cy="29.1"><animate attributeName="cx" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="218.4;588.9;588.9;218.4"/><animate attributeName="cy" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="29.1;97.8;97.8;29.1"/></circle>
<circle r="3" fill="#1d6f7d" cx="736.4" cy="110.3"><animate attributeName="cx" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="736.4;601.4;601.4;736.4"/><animate attributeName="cy" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="110.3;107.3;107.3;110.3"/></circle>
<circle r="3" fill="#4dd4e8" cx="670.8" cy="115.2"><animate attributeName="cx" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="670.8;609.3;609.3;670.8"/><animate attributeName="cy" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="115.2;118.2;118.2;115.2"/></circle>
<circle r="3" fill="#1d6f7d" cx="691.1" cy="231.0"><animate attributeName="cx" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="691.1;612.1;612.1;691.1"/><animate attributeName="cy" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="231.0;130.0;130.0;231.0"/></circle>
<circle r="3" fill="#4dd4e8" cx="789.6" cy="108.5"><animate attributeName="cx" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="789.6;609.3;609.3;789.6"/><animate attributeName="cy" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="108.5;141.8;141.8;108.5"/></circle>
<circle r="3" fill="#4dd4e8" cx="464.3" cy="124.2"><animate attributeName="cx" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="464.3;601.4;601.4;464.3"/><animate attributeName="cy" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="124.2;152.7;152.7;124.2"/></circle>
<circle r="3" fill="#4dd4e8" cx="731.8" cy="234.3"><animate attributeName="cx" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="731.8;588.9;588.9;731.8"/><animate attributeName="cy" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="234.3;162.2;162.2;234.3"/></circle>
<circle r="3" fill="#4dd4e8" cx="644.6" cy="78.1"><animate attributeName="cx" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="644.6;572.9;572.9;644.6"/><animate attributeName="cy" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="78.1;169.7;169.7;78.1"/></circle>
<circle r="3" fill="#4dd4e8" cx="220.0" cy="111.4"><animate attributeName="cx" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="220.0;554.8;554.8;220.0"/><animate attributeName="cy" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="111.4;175.0;175.0;111.4"/></circle>
<circle r="3" fill="#1d6f7d" cx="358.2" cy="21.3"><animate attributeName="cx" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="358.2;535.8;535.8;358.2"/><animate attributeName="cy" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="21.3;178.1;178.1;21.3"/></circle>
<circle r="3" fill="#1d6f7d" cx="376.1" cy="98.2"><animate attributeName="cx" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="376.1;517.3;517.3;376.1"/><animate attributeName="cy" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="98.2;179.3;179.3;98.2"/></circle>
<circle r="3" fill="#1d6f7d" cx="787.8" cy="225.6"><animate attributeName="cx" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="787.8;500.2;500.2;787.8"/><animate attributeName="cy" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="225.6;179.1;179.1;225.6"/></circle>
<circle r="3" fill="#1d6f7d" cx="269.4" cy="145.9"><animate attributeName="cx" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="269.4;485.4;485.4;269.4"/><animate attributeName="cy" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="145.9;178.1;178.1;145.9"/></circle>
<circle r="3" fill="#4dd4e8" cx="367.4" cy="166.9"><animate attributeName="cx" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="367.4;472.9;472.9;367.4"/><animate attributeName="cy" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="166.9;177.2;177.2;166.9"/></circle>
<circle r="3" fill="#4dd4e8" cx="385.9" cy="183.5"><animate attributeName="cx" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="385.9;462.6;462.6;385.9"/><animate attributeName="cy" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="183.5;176.9;176.9;183.5"/></circle>
<circle r="3" fill="#4dd4e8" cx="145.6" cy="175.2"><animate attributeName="cx" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="145.6;454.0;454.0;145.6"/><animate attributeName="cy" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="175.2;177.8;177.8;175.2"/></circle>
<circle r="3" fill="#1d6f7d" cx="328.5" cy="200.5"><animate attributeName="cx" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="328.5;446.2;446.2;328.5"/><animate attributeName="cy" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="200.5;180.2;180.2;200.5"/></circle>
<circle r="3" fill="#4dd4e8" cx="89.7" cy="26.7"><animate attributeName="cx" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="89.7;438.1;438.1;89.7"/><animate attributeName="cy" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="26.7;184.2;184.2;26.7"/></circle>
<circle r="3" fill="#1d6f7d" cx="686.4" cy="198.7"><animate attributeName="cx" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="686.4;429.0;429.0;686.4"/><animate attributeName="cy" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="198.7;189.5;189.5;198.7"/></circle>
<circle r="3" fill="#4dd4e8" cx="709.8" cy="217.3"><animate attributeName="cx" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="709.8;417.8;417.8;709.8"/><animate attributeName="cy" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="217.3;195.7;195.7;217.3"/></circle>
<circle r="3" fill="#4dd4e8" cx="790.1" cy="189.9"><animate attributeName="cx" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="790.1;404.3;404.3;790.1"/><animate attributeName="cy" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="189.9;202.1;202.1;189.9"/></circle>
<circle r="3" fill="#4dd4e8" cx="569.2" cy="40.2"><animate attributeName="cx" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="569.2;388.2;388.2;569.2"/><animate attributeName="cy" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="40.2;207.9;207.9;40.2"/></circle>
<circle r="3" fill="#4dd4e8" cx="779.1" cy="226.0"><animate attributeName="cx" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="779.1;369.9;369.9;779.1"/><animate attributeName="cy" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="226.0;212.3;212.3;226.0"/></circle>
<circle r="3" fill="#1d6f7d" cx="564.2" cy="57.0"><animate attributeName="cx" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="564.2;350.2;350.2;564.2"/><animate attributeName="cy" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="57.0;214.6;214.6;57.0"/></circle>
<circle r="3" fill="#4dd4e8" cx="356.1" cy="109.4"><animate attributeName="cx" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="356.1;330.1;330.1;356.1"/><animate attributeName="cy" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="109.4;214.4;214.4;109.4"/></circle>
<circle r="3" fill="#4dd4e8" cx="74.9" cy="28.5"><animate attributeName="cx" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="74.9;311.0;311.0;74.9"/><animate attributeName="cy" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="28.5;211.2;211.2;28.5"/></circle>
<circle r="3" fill="#4dd4e8" cx="155.7" cy="149.1"><animate attributeName="cx" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="155.7;294.2;294.2;155.7"/><animate attributeName="cy" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="149.1;205.2;205.2;149.1"/></circle>
<circle r="3" fill="#1d6f7d" cx="737.4" cy="218.1"><animate attributeName="cx" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="737.4;280.8;280.8;737.4"/><animate attributeName="cy" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="218.1;196.7;196.7;218.1"/></circle>
<circle r="3" fill="#4dd4e8" cx="845.7" cy="127.9"><animate attributeName="cx" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="845.7;271.9;271.9;845.7"/><animate attributeName="cy" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="127.9;186.2;186.2;127.9"/></circle>
<circle r="3" fill="#4dd4e8" cx="154.7" cy="137.0"><animate attributeName="cx" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="154.7;267.9;267.9;154.7"/><animate attributeName="cy" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="137.0;174.5;174.5;137.0"/></circle>
<circle r="3" fill="#1d6f7d" cx="511.5" cy="46.1"><animate attributeName="cx" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="511.5;269.0;269.0;511.5"/><animate attributeName="cy" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="46.1;162.2;162.2;46.1"/></circle>
<circle r="3" fill="#4dd4e8" cx="519.7" cy="77.6"><animate attributeName="cx" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="519.7;274.8;274.8;519.7"/><animate attributeName="cy" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="77.6;150.3;150.3;77.6"/></circle>
<circle r="3" fill="#4dd4e8" cx="854.4" cy="188.9"><animate attributeName="cx" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="854.4;284.5;284.5;854.4"/><animate attributeName="cy" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="188.9;139.4;139.4;188.9"/></circle>
<circle r="3" fill="#4dd4e8" cx="240.5" cy="171.4"><animate attributeName="cx" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="240.5;296.9;296.9;240.5"/><animate attributeName="cy" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="171.4;130.0;130.0;171.4"/></circle>
<circle r="3" fill="#4dd4e8" cx="437.8" cy="34.6"><animate attributeName="cx" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="437.8;310.8;310.8;437.8"/><animate attributeName="cy" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="34.6;122.3;122.3;34.6"/></circle>
<circle r="3" fill="#4dd4e8" cx="848.3" cy="83.3"><animate attributeName="cx" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="848.3;324.8;324.8;848.3"/><animate attributeName="cy" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="83.3;116.3;116.3;83.3"/></circle>
<circle r="3" fill="#4dd4e8" cx="637.9" cy="237.2"><animate attributeName="cx" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="637.9;337.7;337.7;637.9"/><animate attributeName="cy" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="237.2;111.6;111.6;237.2"/></circle>
<circle r="3" fill="#1d6f7d" cx="498.6" cy="138.4"><animate attributeName="cx" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="498.6;348.7;348.7;498.6"/><animate attributeName="cy" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="138.4;107.8;107.8;138.4"/></circle>
<circle r="3" fill="#4dd4e8" cx="125.3" cy="90.2"><animate attributeName="cx" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="125.3;357.3;357.3;125.3"/><animate attributeName="cy" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="90.2;104.4;104.4;90.2"/></circle>
<circle r="3" fill="#4dd4e8" cx="696.1" cy="86.6"><animate attributeName="cx" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="696.1;363.4;363.4;696.1"/><animate attributeName="cy" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="86.6;100.5;100.5;86.6"/></circle>
<circle r="3" fill="#1d6f7d" cx="434.6" cy="173.6"><animate attributeName="cx" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="434.6;367.5;367.5;434.6"/><animate attributeName="cy" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="173.6;95.7;95.7;173.6"/></circle>
<circle r="3" fill="#4dd4e8" cx="147.4" cy="184.1"><animate attributeName="cx" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="147.4;370.2;370.2;147.4"/><animate attributeName="cy" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="184.1;89.5;89.5;184.1"/></circle>
<circle r="3" fill="#4dd4e8" cx="479.5" cy="116.7"><animate attributeName="cx" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="479.5;372.6;372.6;479.5"/><animate attributeName="cy" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="116.7;81.9;81.9;116.7"/></circle>
<circle r="3" fill="#1d6f7d" cx="674.4" cy="71.8"><animate attributeName="cx" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="674.4;375.7;375.7;674.4"/><animate attributeName="cy" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="71.8;72.8;72.8;71.8"/></circle>
<circle r="3" fill="#4dd4e8" cx="249.3" cy="230.1"><animate attributeName="cx" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="249.3;380.6;380.6;249.3"/><animate attributeName="cy" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="230.1;62.7;62.7;230.1"/></circle>
<circle r="3" fill="#4dd4e8" cx="113.6" cy="201.1"><animate attributeName="cx" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="113.6;388.2;388.2;113.6"/><animate attributeName="cy" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="201.1;52.1;52.1;201.1"/></circle>
<circle r="3" fill="#4dd4e8" cx="491.6" cy="167.8"><animate attributeName="cx" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="491.6;398.8;398.8;491.6"/><animate attributeName="cy" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="167.8;41.9;41.9;167.8"/></circle>
<circle r="3" fill="#4dd4e8" cx="221.1" cy="172.9"><animate attributeName="cx" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="221.1;412.5;412.5;221.1"/><animate attributeName="cy" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="172.9;32.8;32.8;172.9"/></circle>
<circle r="3" fill="#4dd4e8" cx="552.7" cy="237.5"><animate attributeName="cx" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="552.7;429.0;429.0;552.7"/><animate attributeName="cy" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="237.5;25.7;25.7;237.5"/></circle>
<circle r="3" fill="#1d6f7d" cx="823.9" cy="24.3"><animate attributeName="cx" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="823.9;447.4;447.4;823.9"/><animate attributeName="cy" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="24.3;21.3;21.3;24.3"/></circle>
<circle r="3" fill="#1d6f7d" cx="740.7" cy="139.3"><animate attributeName="cx" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="740.7;466.7;466.7;740.7"/><animate attributeName="cy" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="139.3;20.0;20.0;139.3"/></circle>
<circle r="3" fill="#4dd4e8" cx="854.5" cy="33.5"><animate attributeName="cx" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="854.5;485.5;485.5;854.5"/><animate attributeName="cy" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="33.5;22.0;22.0;33.5"/></circle>
<circle r="3" fill="#4dd4e8" cx="157.3" cy="133.2"><animate attributeName="cx" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="157.3;502.7;502.7;157.3"/><animate attributeName="cy" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="133.2;27.3;27.3;133.2"/></circle>
<circle r="3" fill="#4dd4e8" cx="377.0" cy="122.4"><animate attributeName="cx" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="377.0;517.1;517.1;377.0"/><animate attributeName="cy" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="122.4;35.3;35.3;122.4"/></circle>
<circle r="3" fill="#4dd4e8" cx="90.0" cy="162.8"><animate attributeName="cx" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="90.0;527.8;527.8;90.0"/><animate attributeName="cy" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="162.8;45.6;45.6;162.8"/></circle>
<circle r="3" fill="#1d6f7d" cx="334.0" cy="114.0"><animate attributeName="cx" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="334.0;534.4;534.4;334.0"/><animate attributeName="cy" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="114.0;57.4;57.4;114.0"/></circle>
<circle r="3" fill="#4dd4e8" cx="805.7" cy="180.7"><animate attributeName="cx" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="805.7;536.9;536.9;805.7"/><animate attributeName="cy" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="180.7;69.7;69.7;180.7"/></circle>
<circle r="3" fill="#4dd4e8" cx="784.1" cy="118.7"><animate attributeName="cx" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="784.1;535.8;535.8;784.1"/><animate attributeName="cy" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="118.7;81.9;81.9;118.7"/></circle>
<circle r="3" fill="#4dd4e8" cx="357.5" cy="140.2"><animate attributeName="cx" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="357.5;531.9;531.9;357.5"/><animate attributeName="cy" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="140.2;93.2;93.2;140.2"/></circle>
<circle r="3" fill="#4dd4e8" cx="442.0" cy="158.7"><animate attributeName="cx" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="442.0;526.3;526.3;442.0"/><animate attributeName="cy" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="158.7;103.1;103.1;158.7"/></circle>
<circle r="3" fill="#4dd4e8" cx="472.8" cy="225.2"><animate attributeName="cx" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="472.8;520.2;520.2;472.8"/><animate attributeName="cy" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="225.2;111.6;111.6;225.2"/></circle>
<circle r="3" fill="#4dd4e8" cx="551.2" cy="215.0"><animate attributeName="cx" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="551.2;514.9;514.9;551.2"/><animate attributeName="cy" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="215.0;118.7;118.7;215.0"/></circle>
<circle r="3" fill="#4dd4e8" cx="517.4" cy="138.4"><animate attributeName="cx" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="517.4;511.2;511.2;517.4"/><animate attributeName="cy" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="138.4;124.6;124.6;138.4"/></circle>
<circle r="3" fill="#4dd4e8" cx="71.4" cy="122.1"><animate attributeName="cx" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="71.4;510.0;510.0;71.4"/><animate attributeName="cy" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="122.1;130.0;130.0;122.1"/></circle>
<circle r="3" fill="#1d6f7d" cx="854.9" cy="77.1"><animate attributeName="cx" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="854.9;511.2;511.2;854.9"/><animate attributeName="cy" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="77.1;135.4;135.4;77.1"/></circle>
<circle r="3" fill="#4dd4e8" cx="792.3" cy="201.6"><animate attributeName="cx" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="792.3;514.9;514.9;792.3"/><animate attributeName="cy" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="201.6;141.3;141.3;201.6"/></circle>
<circle r="3" fill="#4dd4e8" cx="111.5" cy="70.1"><animate attributeName="cx" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="111.5;520.2;520.2;111.5"/><animate attributeName="cy" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="70.1;148.4;148.4;70.1"/></circle>
<circle r="3" fill="#4dd4e8" cx="550.8" cy="94.3"><animate attributeName="cx" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="550.8;526.3;526.3;550.8"/><animate attributeName="cy" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="94.3;156.9;156.9;94.3"/></circle>
<circle r="3" fill="#4dd4e8" cx="729.7" cy="88.8"><animate attributeName="cx" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="729.7;531.9;531.9;729.7"/><animate attributeName="cy" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="88.8;166.8;166.8;88.8"/></circle>
<circle r="3" fill="#4dd4e8" cx="375.5" cy="160.3"><animate attributeName="cx" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="375.5;535.8;535.8;375.5"/><animate attributeName="cy" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="160.3;178.1;178.1;160.3"/></circle>
<circle r="3" fill="#1d6f7d" cx="123.8" cy="96.4"><animate attributeName="cx" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="123.8;536.9;536.9;123.8"/><animate attributeName="cy" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="96.4;190.3;190.3;96.4"/></circle>
<circle r="3" fill="#4dd4e8" cx="674.1" cy="144.3"><animate attributeName="cx" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="674.1;534.4;534.4;674.1"/><animate attributeName="cy" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="144.3;202.6;202.6;144.3"/></circle>
<circle r="3" fill="#4dd4e8" cx="748.8" cy="128.8"><animate attributeName="cx" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="748.8;527.8;527.8;748.8"/><animate attributeName="cy" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="128.8;214.4;214.4;128.8"/></circle>
<circle r="3" fill="#4dd4e8" cx="508.4" cy="104.9"><animate attributeName="cx" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="508.4;517.1;517.1;508.4"/><animate attributeName="cy" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="104.9;224.7;224.7;104.9"/></circle>
<circle r="3" fill="#1d6f7d" cx="706.3" cy="63.4"><animate attributeName="cx" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="706.3;502.7;502.7;706.3"/><animate attributeName="cy" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="63.4;232.7;232.7;63.4"/></circle>
<circle r="3" fill="#4dd4e8" cx="796.1" cy="88.0"><animate attributeName="cx" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="796.1;485.5;485.5;796.1"/><animate attributeName="cy" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="88.0;238.0;238.0;88.0"/></circle>
<circle r="3" fill="#1d6f7d" cx="218.8" cy="177.0"><animate attributeName="cx" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="218.8;466.7;466.7;218.8"/><animate attributeName="cy" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="177.0;240.0;240.0;177.0"/></circle>
<circle r="3" fill="#4dd4e8" cx="489.1" cy="109.9"><animate attributeName="cx" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="489.1;447.4;447.4;489.1"/><animate attributeName="cy" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="109.9;238.7;238.7;109.9"/></circle>
<circle r="3" fill="#1d6f7d" cx="343.9" cy="181.5"><animate attributeName="cx" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="343.9;429.0;429.0;343.9"/><animate attributeName="cy" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="181.5;234.3;234.3;181.5"/></circle>
<circle r="3" fill="#4dd4e8" cx="465.7" cy="114.9"><animate attributeName="cx" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="465.7;412.5;412.5;465.7"/><animate attributeName="cy" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="114.9;227.2;227.2;114.9"/></circle>
<circle r="3" fill="#1d6f7d" cx="20.8" cy="120.4"><animate attributeName="cx" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="20.8;398.8;398.8;20.8"/><animate attributeName="cy" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="120.4;218.1;218.1;120.4"/></circle>
<circle r="3" fill="#4dd4e8" cx="241.2" cy="231.5"><animate attributeName="cx" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="241.2;388.2;388.2;241.2"/><animate attributeName="cy" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="231.5;207.9;207.9;231.5"/></circle>
<circle r="3" fill="#1d6f7d" cx="96.5" cy="43.4"><animate attributeName="cx" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="96.5;380.6;380.6;96.5"/><animate attributeName="cy" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="43.4;197.3;197.3;43.4"/></circle>
<circle r="3" fill="#4dd4e8" cx="847.5" cy="208.0"><animate attributeName="cx" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="847.5;375.7;375.7;847.5"/><animate attributeName="cy" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="208.0;187.2;187.2;208.0"/></circle>
<circle r="3" fill="#4dd4e8" cx="658.2" cy="160.3"><animate attributeName="cx" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="658.2;372.6;372.6;658.2"/><animate attributeName="cy" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="160.3;178.1;178.1;160.3"/></circle>
<circle r="3" fill="#4dd4e8" cx="690.1" cy="225.5"><animate attributeName="cx" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="690.1;370.2;370.2;690.1"/><animate attributeName="cy" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="225.5;170.5;170.5;225.5"/></circle>
<circle r="3" fill="#1d6f7d" cx="386.4" cy="45.2"><animate attributeName="cx" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="386.4;367.5;367.5;386.4"/><animate attributeName="cy" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="45.2;164.3;164.3;45.2"/></circle>
<circle r="3" fill="#1d6f7d" cx="251.3" cy="190.7"><animate attributeName="cx" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="251.3;363.4;363.4;251.3"/><animate attributeName="cy" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="190.7;159.5;159.5;190.7"/></circle>
<circle r="3" fill="#4dd4e8" cx="422.4" cy="96.1"><animate attributeName="cx" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="422.4;357.3;357.3;422.4"/><animate attributeName="cy" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="96.1;155.6;155.6;96.1"/></circle>
<circle r="3" fill="#4dd4e8" cx="445.9" cy="60.3"><animate attributeName="cx" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="445.9;348.7;348.7;445.9"/><animate attributeName="cy" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="60.3;152.2;152.2;60.3"/></circle>
<circle r="3" fill="#4dd4e8" cx="635.6" cy="216.1"><animate attributeName="cx" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="635.6;337.7;337.7;635.6"/><animate attributeName="cy" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="216.1;148.4;148.4;216.1"/></circle>
<circle r="3" fill="#4dd4e8" cx="743.3" cy="40.1"><animate attributeName="cx" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="743.3;324.8;324.8;743.3"/><animate attributeName="cy" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="40.1;143.7;143.7;40.1"/></circle>
<circle r="3" fill="#4dd4e8" cx="222.3" cy="158.1"><animate attributeName="cx" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="222.3;310.8;310.8;222.3"/><animate attributeName="cy" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="158.1;137.7;137.7;158.1"/></circle>
<circle r="3" fill="#4dd4e8" cx="849.5" cy="222.8"><animate attributeName="cx" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="849.5;296.9;296.9;849.5"/><animate attributeName="cy" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="222.8;130.0;130.0;222.8"/></circle>
<circle r="3" fill="#4dd4e8" cx="353.8" cy="163.5"><animate attributeName="cx" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="353.8;284.5;284.5;353.8"/><animate attributeName="cy" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="163.5;120.6;120.6;163.5"/></circle>
<circle r="3" fill="#4dd4e8" cx="258.8" cy="238.9"><animate attributeName="cx" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="258.8;274.8;274.8;258.8"/><animate attributeName="cy" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="238.9;109.7;109.7;238.9"/></circle>
<circle r="3" fill="#4dd4e8" cx="399.2" cy="60.9"><animate attributeName="cx" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="399.2;269.0;269.0;399.2"/><animate attributeName="cy" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="60.9;97.8;97.8;60.9"/></circle>
<circle r="3" fill="#1d6f7d" cx="540.7" cy="204.7"><animate attributeName="cx" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="540.7;267.9;267.9;540.7"/><animate attributeName="cy" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="204.7;85.5;85.5;204.7"/></circle>
<circle r="3" fill="#1d6f7d" cx="811.5" cy="44.3"><animate attributeName="cx" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="811.5;271.9;271.9;811.5"/><animate attributeName="cy" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="44.3;73.8;73.8;44.3"/></circle>
<circle r="3" fill="#1d6f7d" cx="451.7" cy="41.4"><animate attributeName="cx" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="451.7;280.8;280.8;451.7"/><animate attributeName="cy" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="41.4;63.3;63.3;41.4"/></circle>
<circle r="3" fill="#1d6f7d" cx="78.6" cy="85.2"><animate attributeName="cx" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="78.6;294.2;294.2;78.6"/><animate attributeName="cy" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="85.2;54.8;54.8;85.2"/></circle>
<circle r="3" fill="#4dd4e8" cx="686.2" cy="214.6"><animate attributeName="cx" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="686.2;311.0;311.0;686.2"/><animate attributeName="cy" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="214.6;48.8;48.8;214.6"/></circle>
<circle r="3" fill="#1d6f7d" cx="337.9" cy="33.4"><animate attributeName="cx" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="337.9;330.1;330.1;337.9"/><animate attributeName="cy" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="33.4;45.6;45.6;33.4"/></circle>
<circle r="3" fill="#4dd4e8" cx="402.8" cy="163.6"><animate attributeName="cx" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="402.8;350.2;350.2;402.8"/><animate attributeName="cy" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="163.6;45.4;45.4;163.6"/></circle>
<circle r="3" fill="#4dd4e8" cx="667.8" cy="25.6"><animate attributeName="cx" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="667.8;369.9;369.9;667.8"/><animate attributeName="cy" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="25.6;47.7;47.7;25.6"/></circle>
<circle r="3" fill="#1d6f7d" cx="137.7" cy="207.0"><animate attributeName="cx" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="137.7;388.2;388.2;137.7"/><animate attributeName="cy" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="207.0;52.1;52.1;207.0"/></circle>
<circle r="3" fill="#1d6f7d" cx="400.4" cy="156.5"><animate attributeName="cx" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="400.4;404.3;404.3;400.4"/><animate attributeName="cy" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="156.5;57.9;57.9;156.5"/></circle>
<circle r="3" fill="#4dd4e8" cx="712.5" cy="106.9"><animate attributeName="cx" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="712.5;417.8;417.8;712.5"/><animate attributeName="cy" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="106.9;64.3;64.3;106.9"/></circle>
<circle r="3" fill="#4dd4e8" cx="759.1" cy="54.6"><animate attributeName="cx" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="759.1;429.0;429.0;759.1"/><animate attributeName="cy" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="54.6;70.5;70.5;54.6"/></circle>
<circle r="3" fill="#4dd4e8" cx="103.4" cy="217.1"><animate attributeName="cx" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="103.4;438.1;438.1;103.4"/><animate attributeName="cy" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="217.1;75.8;75.8;217.1"/></circle>
<circle r="3" fill="#1d6f7d" cx="567.0" cy="51.6"><animate attributeName="cx" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="567.0;446.2;446.2;567.0"/><animate attributeName="cy" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="51.6;79.8;79.8;51.6"/></circle>
<circle r="3" fill="#4dd4e8" cx="175.4" cy="141.8"><animate attributeName="cx" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="175.4;454.0;454.0;175.4"/><animate attributeName="cy" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="141.8;82.2;82.2;141.8"/></circle>
<circle r="3" fill="#4dd4e8" cx="633.2" cy="84.7"><animate attributeName="cx" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="633.2;462.6;462.6;633.2"/><animate attributeName="cy" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="84.7;83.1;83.1;84.7"/></circle>
<circle r="3" fill="#4dd4e8" cx="354.3" cy="60.1"><animate attributeName="cx" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="354.3;472.9;472.9;354.3"/><animate attributeName="cy" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="60.1;82.8;82.8;60.1"/></circle>
<circle r="3" fill="#4dd4e8" cx="611.7" cy="221.6"><animate attributeName="cx" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="611.7;485.4;485.4;611.7"/><animate attributeName="cy" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="221.6;81.9;81.9;221.6"/></circle>
<circle r="3" fill="#4dd4e8" cx="402.8" cy="21.0"><animate attributeName="cx" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="402.8;500.2;500.2;402.8"/><animate attributeName="cy" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="21.0;80.9;80.9;21.0"/></circle>
<circle r="3" fill="#4dd4e8" cx="641.6" cy="72.6"><animate attributeName="cx" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="641.6;517.3;517.3;641.6"/><animate attributeName="cy" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="72.6;80.7;80.7;72.6"/></circle>
<circle r="3" fill="#1d6f7d" cx="713.0" cy="118.4"><animate attributeName="cx" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="713.0;535.8;535.8;713.0"/><animate attributeName="cy" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="118.4;81.9;81.9;118.4"/></circle>
<circle r="3" fill="#4dd4e8" cx="91.0" cy="216.2"><animate attributeName="cx" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="91.0;554.8;554.8;91.0"/><animate attributeName="cy" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="216.2;85.0;85.0;216.2"/></circle>
<circle r="3" fill="#4dd4e8" cx="629.6" cy="74.6"><animate attributeName="cx" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="629.6;572.9;572.9;629.6"/><animate attributeName="cy" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="74.6;90.3;90.3;74.6"/></circle>
<circle r="3" fill="#4dd4e8" cx="732.4" cy="43.3"><animate attributeName="cx" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="732.4;588.9;588.9;732.4"/><animate attributeName="cy" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="43.3;97.8;97.8;43.3"/></circle>
<circle r="3" fill="#1d6f7d" cx="610.6" cy="158.3"><animate attributeName="cx" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="610.6;601.4;601.4;610.6"/><animate attributeName="cy" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="158.3;107.3;107.3;158.3"/></circle>
<circle r="3" fill="#1d6f7d" cx="305.1" cy="169.0"><animate attributeName="cx" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="305.1;609.3;609.3;305.1"/><animate attributeName="cy" dur="11s" repeatCount="indefinite" calcMode="spline" keyTimes="0;0.64;0.82;1" keySplines="0.25 0.1 0.25 1;0 0 1 1;0.55 0 0.45 1" values="169.0;118.2;118.2;169.0"/></circle>
<text x="16" y="26" font-family="ui-monospace,SFMono-Regular,Menlo,monospace" font-size="14" fill="#4dd4e8">S = 100.0 k·bits</text>
<text x="864" y="26" text-anchor="end" font-family="ui-monospace,SFMono-Regular,Menlo,monospace" font-size="14" fill="#7ee2a8">dS/dt &lt; 0</text>
<text x="864" y="246" text-anchor="end" font-family="ui-monospace,SFMono-Regular,Menlo,monospace" font-size="11" fill="#8b949e">bits sorted by visitors: 0</text>
<text x="864" y="246" text-anchor="end" font-family="ui-monospace,SFMono-Regular,Menlo,monospace" font-size="11" fill="#8b949e">bits sorted by visitors: 12</text>
</svg>

Before

Width:  |  Height:  |  Size: 52 KiB

After

Width:  |  Height:  |  Size: 52 KiB

Before After
Before After

View file

@ -27,8 +27,14 @@ README = os.path.join(ROOT, "README.md")
STATE_PATH = os.path.join(ROOT, "state", "demon.json")
SITE = "https://stevenmilanese.com"
FEED_URL = f"{SITE}/feed.xml"
# The real feed. /feed.xml was a guess that 404'd for weeks while the HTML
# fallback silently matched nothing, so the FEED table quietly froze; it now
# also 301s here, but point at the canonical URL rather than lean on that.
FEED_URL = f"{SITE}/rss.xml"
BLOG_URL = f"{SITE}/blog"
# The site publishes read-time in its own namespace — valid for strict parsers,
# unambiguous for this one.
MANUSCRIPT_NS = "https://stevenmilanese.com/ns/manuscript"
FEATURED_REPOS = [
("anthropic-certs", "Verified Anthropic certifications — Claude, API, Claude Code CLI, MCP."),
@ -63,6 +69,11 @@ def replace_section(text, marker, body):
def articles_from_rss():
"""Primary source: the site's real feed.
The feed carries read-time in the site's own namespace, so the meta column
comes from the publisher rather than being scraped back out of a page.
"""
root = ET.fromstring(fetch(FEED_URL))
items = []
for item in root.iter("item"):
@ -74,47 +85,70 @@ def articles_from_rss():
date = datetime.datetime.strptime(pub[:16].strip(), "%a, %d %b %Y")
except ValueError:
pass
mins = (item.findtext(f"{{{MANUSCRIPT_NS}}}readingMinutes") or "").strip()
meta = f"{mins} min read" if mins.isdigit() else ""
if title and link:
items.append({"title": title, "url": link, "date": date, "meta": ""})
items.append({"title": title, "url": link, "date": date, "meta": meta})
return items
def articles_from_html():
"""Fallback: parse the blog index.
Written against the Manuscript's markup, which is regular enough not to
need heuristics each entry is a `row` div holding one anchor and one
`meta` span:
<div class="row">
<a href="/blog/<slug>">Title</a>
<span class="meta"> JUL 28, 2025 · 19 MIN </span>
</div>
The previous version looked for a thumbnail `alt=` attribute and a
Title-Case date. The redesign has neither no feature images on the index
and uppercase abbreviated months so it matched nothing and silently
returned an empty list for weeks.
"""
page = fetch(BLOG_URL)
skip = ("/blog/tag/", "/blog/author/")
anchors = [
m for m in re.finditer(r'<a[^>]+href="(/blog/[a-z0-9][a-z0-9-]*)"', page)
if not m.group(1).startswith(skip)
]
seen, articles = set(), []
for idx, m in enumerate(anchors):
slug = m.group(1)
if slug in seen:
articles, seen = [], set()
row_re = re.compile(
r'<a[^>]+href="(/blog/[a-z0-9][a-z0-9-]*)"[^>]*>(.*?)</a>'
r'.{0,400}?<span[^>]*class="meta"[^>]*>(.*?)</span>',
re.S,
)
for m in row_re.finditer(page):
slug, raw_title, raw_meta = m.group(1), m.group(2), m.group(3)
if slug.startswith(skip) or slug in seen:
continue
seen.add(slug)
stop = len(page)
for nxt in anchors[idx + 1:]:
if nxt.group(1) != slug:
stop = nxt.start()
title = htmllib.unescape(re.sub(r"<[^>]+>", "", raw_title)).strip()
meta_text = htmllib.unescape(re.sub(r"<[^>]+>", " ", raw_meta))
meta_text = re.sub(r"\s+", " ", meta_text).strip()
# "JUL 28, 2025" — uppercase, abbreviated month.
date_m = re.search(r"([A-Za-z]{3,}) (\d{1,2}), (\d{4})", meta_text)
if not (title and date_m):
continue
month, day, year = date_m.groups()
date = None
for fmt in ("%b %d %Y", "%B %d %Y"):
try:
date = datetime.datetime.strptime(f"{month.title()} {day} {year}", fmt)
break
window = page[m.start():stop]
title_m = re.search(r'alt="([^"]+)"', window)
stripped = re.sub(r"<[^>]+>", " ", window)
stripped = htmllib.unescape(re.sub(r"<!--.*?-->", "", stripped))
date_m = re.search(r"([A-Z][a-z]+ \d{1,2}, \d{4})", stripped)
mins_m = re.search(r"(\d+)\s*min", stripped)
views_m = re.search(r"([\d,]+)\s*views", stripped)
if not (title_m and date_m):
except ValueError:
continue
if date is None:
continue
date = datetime.datetime.strptime(date_m.group(1), "%B %d, %Y")
meta = f"{mins_m.group(1)} min read" if mins_m else (
f"{views_m.group(1)} views" if views_m else ""
)
mins_m = re.search(r"(\d+)\s*MIN", meta_text, re.I)
seen.add(slug)
articles.append({
"title": htmllib.unescape(title_m.group(1)),
"title": title,
"url": f"{SITE}{slug}",
"date": date,
"meta": meta,
"meta": f"{mins_m.group(1)} min read" if mins_m else "",
})
return articles
@ -124,8 +158,9 @@ def update_feed(text):
try:
articles = articles_from_rss()
except Exception as exc:
print(f"feed: rss unusable ({exc}); falling back to html")
print(f"::warning title=nightly FEED rss::rss unusable ({exc}); falling back to html")
if not articles:
print("::warning title=nightly FEED fallback::rss yielded nothing; scraping /blog")
articles = articles_from_html()
dated = [a for a in articles if a["date"]]
dated.sort(key=lambda a: a["date"], reverse=True)
@ -188,22 +223,41 @@ def bump_entropy():
)
def warn(label, exc):
"""Fail-safe, but never quiet.
Every section still degrades to 'leave it alone and exit 0' a broken
fetch must not wedge the profile. What changed is visibility: a section
that stops updating now announces itself as a GitHub Actions warning
annotation, which surfaces in the run summary instead of scrolling past in
a log nobody opens. The FEED table sat frozen for 37 days precisely
because a silent skip and a successful run looked identical.
"""
print(f"::warning title=nightly {label} skipped::{label} left untouched — {exc}")
print(f"{label}: left untouched ({exc})", file=sys.stderr)
def main():
with open(README) as fh:
text = fh.read()
failures = 0
for label, fn in (("FEED", update_feed), ("STATS", update_stats), ("FEATURED", update_featured)):
try:
text = fn(text)
print(f"{label}: updated")
except Exception as exc:
print(f"{label}: left untouched ({exc})")
failures += 1
warn(label, exc)
with open(README, "w") as fh:
fh.write(text)
try:
bump_entropy()
print("ENTROPY: regenerated")
except Exception as exc:
print(f"ENTROPY: left untouched ({exc})")
failures += 1
warn("ENTROPY", exc)
if failures:
print(f"::warning title=nightly incomplete::{failures} of 4 sections did not update")
if __name__ == "__main__":

View file

@ -1 +1,6 @@
{ "bits_sorted": 0, "generation": 0, "demons": 0, "last_sorted_at": null }
{
"bits_sorted": 12,
"generation": 52,
"demons": 1,
"last_sorted_at": "2026-07-08T02:02:03+00:00"
}