phantom-orbits-in-static-ghoj/exploration.html

73 lines
No EOL
84 KiB
HTML

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Phantom Orbits in Static — exploration</title>
<style>
* { margin: 0; padding: 0; box-sizing: border-box; }
body { background: #0a0a0f; color: #3a3a4a; font-family: ui-monospace, monospace; overflow: hidden; }
#grid { padding: 20px; font-size: 12px; line-height: 1.4; white-space: pre; }
.c { display: inline-block; transition: all 0.3s; }
.c.active { color: #fde68a; text-shadow: 0 0 6px rgba(253,230,138,0.5); }
.c.strong { color: #34d399; text-shadow: 0 0 10px rgba(52,211,153,0.6); font-weight: bold; }
.c.dead { color: #1a1a2a; }
#info { position: fixed; bottom: 10px; left: 20px; color: #3a3a4a; font-size: 11px; }
#controls { position: fixed; top: 10px; right: 20px; color: #666; font-size: 11px; }
#controls span { cursor: pointer; margin-left: 12px; color: #fde68a; }
</style>
</head>
<body>
<div id="grid"></div>
<div id="info">neurameba · physarum exploration</div>
<div id="controls"><span id="play-btn">play</span><span id="reset-btn">reset</span></div>
<script>
const text = "# API Reference\n\nmotd is API-first. Every feature is an endpoint. Build clients, bots, integrations — whatever you want.\n\n## Base URL\n\n```\nhttps://motd.social/api\n```\n\nLocal dev: `http://localhost:3006/api`\n\n## Response Format\n\nEvery endpoint returns the same envelope:\n\n**Success:**\n```json\n{ \"ok\": true, \"data\": { ... } }\n```\n\n**Error:**\n```json\n{ \"ok\": false, \"error\": \"Something went wrong.\" }\n```\n\nHTTP status codes are standard: 200 success, 400 bad request, 401 unauthorized, 404 not found, 409 conflict.\n\n## Authentication\n\nMost endpoints require authentication. Get a token by registering or logging in, then send it as a Bearer token or let the browser handle it via cookies.\n\n**Header auth (for scripts and clients):**\n```\nAuthorization: Bearer <token>\n```\n\n**Cookie auth (for the web client):**\nThe login endpoints set an `motd_session` httpOnly cookie automatically.\n\nSessions expire after 7 days. Use `/login-permanently` in the web client to persist across tabs (stored in localStorage instead of sessionStorage — the token is the same).\n\n---\n\n## Auth\n\n### POST /api/auth/register\n\nCreate a new account.\n\n**Auth:** none\n\n**Body:**\n```json\n{ \"username\": \"alice\", \"password\": \"hunter2pwd\" }\n```\n\n**Rules:**\n- Username: 3-20 characters, letters, numbers, underscore only\n- Password: minimum 8 characters\n\n**Response:**\n```json\n{\n \"ok\": true,\n \"data\": {\n \"token\": \"a1b2c3d4-e5f6-7890-abcd-ef1234567890\",\n \"user\": {\n \"username\": \"alice\",\n \"display_name\": \"alice\"\n }\n }\n}\n```\n\n**Errors:**\n- `400` — username or password missing, invalid format\n- `409` — username taken\n\n**Example:**\n```bash\ncurl -X POST http://localhost:3006/api/auth/register \\\n -H \"Content-Type: application/json\" \\\n -d '{\"username\":\"alice\",\"password\":\"hunter2pwd\"}'\n```\n\n### POST /api/auth/login\n\nLog in to an existing account.\n\n**Auth:** none\n\n**Body:**\n```json\n{ \"username\": \"alice\", \"password\": \"hunter2pwd\" }\n```\n\n**Response:**\n```json\n{\n \"ok\": true,\n \"data\": {\n \"token\": \"a1b2c3d4-e5f6-7890-abcd-ef1234567890\",\n \"user\": {\n \"username\": \"alice\",\n \"display_name\": \"Alice\"\n }\n }\n}\n```\n\n**Errors:**\n- `400` — missing fields\n- `401` — invalid username or password\n\n**Example:**\n```bash\ncurl -X POST http://localhost:3006/api/auth/login \\\n -H \"Content-Type: application/json\" \\\n -d '{\"username\":\"alice\",\"password\":\"hunter2pwd\"}'\n```\n\n### GET /api/auth/me\n\nGet the current authenticated user.\n\n**Auth:** required\n\n**Response:**\n```json\n{\n \"ok\": true,\n \"data\": {\n \"user\": {\n \"username\": \"alice\",\n \"display_name\": \"Alice\",\n \"bio\": \"building things\",\n \"created_at\": \"2026-03-15T10:30:00.000Z\"\n }\n }\n}\n```\n\n**Example:**\n```bash\ncurl http://localhost:3006/api/auth/me \\\n -H \"Authorization: Bearer YOUR_TOKEN\"\n```\n\n### POST /api/auth/logout\n\nEnd the current session.\n\n**Auth:** required\n\n**Response:**\n```json\n{ \"ok\": true, \"data\": { \"message\": \"Logged out.\" } }\n```\n\n**Example:**\n```bash\ncurl -X POST http://localhost:3006/api/auth/logout \\\n -H \"Authorization: Bearer YOUR_TOKEN\"\n```\n\n---\n\n## Profile\n\n### GET /api/profile/:username\n\nView a user's profile.\n\n**Auth:** none\n\n**Response:**\n```json\n{\n \"ok\": true,\n \"data\": {\n \"username\": \"alice\",\n \"display_name\": \"Alice\",\n \"bio\": \"building things\",\n \"created_at\": \"2026-03-15T10:30:00.000Z\",\n \"posts\": 42,\n \"avatar\": [\n \"████ ████\",\n \" ████████ \",\n \"████████████\",\n \" ████████ \",\n \"██ ████ ██\"\n ]\n }\n}\n```\n\n**Errors:**\n- `404` — user not found\n\n**Example:**\n```bash\ncurl http://localhost:3006/api/profile/alice\n```\n\n### PUT /api/profile\n\nUpdate your display name and/or bio.\n\n**Auth:** required\n\n**Body:**\n```json\n{ \"display_name\": \"Alice W.\", \"bio\": \"shipping code\" }\n```\n\nBoth fields are optional. Send only what you want to change.\n\n**Response:**\n```json\n{\n \"ok\": true,\n \"data\": {\n \"username\": \"alice\",\n \"display_name\": \"Alice W.\",\n \"bio\": \"shipping code\",\n \"created_at\": \"2026-03-15T10:30:00.000Z\"\n }\n}\n```\n\n**Errors:**\n- `400` — nothing to update\n\n**Example:**\n```bash\ncurl -X PUT http://localhost:3006/api/profile \\\n -H \"Authorization: Bearer YOUR_TOKEN\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\"bio\":\"shipping code\"}'\n```\n\n### GET /api/profile/search?q=\n\nSearch users by username or display name.\n\n**Auth:** none\n\n**Params:**\n- `q` — search query (required, min 1 character)\n\n**Response:**\n```json\n{\n \"ok\": true,\n \"data\": {\n \"users\": [\n { \"username\": \"alice\", \"display_name\": \"Alice\", \"bio\": \"building things\" },\n { \"username\": \"alice2\", \"display_name\": \"Alice Too\", \"bio\": null }\n ]\n }\n}\n```\n\n**Example:**\n```bash\ncurl \"http://localhost:3006/api/profile/search?q=alice\"\n```\n\n---\n\n## Posts\n\n### POST /api/posts\n\nPublish a post.\n\n**Auth:** required\n\n**Body:**\n```json\n{ \"content\": \"just shipped the wasm compiler [rust] [wasm]\" }\n```\n\n**Optional fields:**\n- `reply_to` — post ID to reply to\n\n**Inline commands:**\n- `/attach <media_id>` — attach previously uploaded media to the post. The `/attach` command is stripped from the displayed content.\n\n**Rules:**\n- Content: 1-500 characters\n- Tags use [brackets]: `[rust]`, `[music]`, `[coding]`\n- Tags are auto-extracted and stored\n- New tags are auto-assigned to the \"general\" category\n\n**Response:**\n```json\n{\n \"ok\": true,\n \"data\": {\n \"id\": \"a3kf9x\",\n \"content\": \"just shipped the wasm compiler [rust] [wasm]\",\n \"reply_to\": null,\n \"tags\": [\"rust\", \"wasm\"],\n \"media_id\": null,\n \"username\": \"alice\",\n \"display_name\": \"Alice\",\n \"created_at\": \"2026-03-22T14:00:00.000Z\"\n }\n}\n```\n\n**Errors:**\n- `400` — empty content, too long, media not found/not yours\n- `404` — reply_to post not found\n\n**Examples:**\n\nSimple post:\n```bash\ncurl -X POST http://localhost:3006/api/posts \\\n -H \"Authorization: Bearer YOUR_TOKEN\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\"content\":\"just shipped the wasm compiler [rust] [wasm]\"}'\n```\n\nReply to a post:\n```bash\ncurl -X POST http://localhost:3006/api/posts \\\n -H \"Authorization: Bearer YOUR_TOKEN\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\"content\":\"nice work!\",\"reply_to\":\"a3kf9x\"}'\n```\n\nPost with media attachment:\n```bash\ncurl -X POST http://localhost:3006/api/posts \\\n -H \"Authorization: Bearer YOUR_TOKEN\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\"content\":\"screenshot of the new UI /attach x7km2p [showcase]\"}'\n```\n\n### GET /api/posts/feed\n\nGet the chronological feed. Public — works without auth. Authenticated users get kill-filtered results; guests get unfiltered posts (still subject to system-level filter_score suppression).\n\n**Auth:** optional\n\n**Params:**\n- `limit` — max posts to return (default 50, max 100)\n- `offset` — pagination offset (default 0)\n\n**Response:**\n```json\n{\n \"ok\": true,\n \"data\": {\n \"posts\": [\n {\n \"id\": \"a3kf9x\",\n \"content\": \"just shipped the wasm compiler [rust] [wasm]\",\n \"reply_to\": null,\n \"tags\": [\"rust\", \"wasm\"],\n \"media_id\": null,\n \"username\": \"alice\",\n \"display_name\": \"Alice\",\n \"created_at\": \"2026-03-22T14:00:00.000Z\"\n }\n ]\n }\n}\n```\n\n**Examples:**\n```bash\n# Guest (unfiltered)\ncurl \"http://localhost:3006/api/posts/feed?limit=20\"\n\n# Authenticated (kill-filtered)\ncurl \"http://localhost:3006/api/posts/feed?limit=20\" \\\n -H \"Authorization: Bearer YOUR_TOKEN\"\n```\n\n### GET /api/posts/:id\n\nGet a single post by ID.\n\n**Auth:** none\n\n**Response:**\n```json\n{\n \"ok\": true,\n \"data\": {\n \"id\": \"a3kf9x\",\n \"content\": \"just shipped the wasm compiler [rust] [wasm]\",\n \"reply_to\": null,\n \"tags\": [\"rust\", \"wasm\"],\n \"media_id\": null,\n \"username\": \"alice\",\n \"display_name\": \"Alice\",\n \"created_at\": \"2026-03-22T14:00:00.000Z\"\n }\n}\n```\n\n**Example:**\n```bash\ncurl http://localhost:3006/api/posts/a3kf9x\n```\n\n### GET /api/posts/:id/thread\n\nGet a post and all its replies.\n\n**Auth:** none\n\n**Response:**\n```json\n{\n \"ok\": true,\n \"data\": {\n \"post\": {\n \"id\": \"a3kf9x\",\n \"content\": \"just shipped the wasm compiler [rust] [wasm]\",\n \"reply_to\": null,\n \"tags\": [\"rust\", \"wasm\"],\n \"username\": \"alice\",\n \"display_name\": \"Alice\",\n \"created_at\": \"2026-03-22T14:00:00.000Z\"\n },\n \"replies\": [\n {\n \"id\": \"b7xm2k\",\n \"content\": \"nice work!\",\n \"reply_to\": \"a3kf9x\",\n \"tags\": [],\n \"username\": \"bob\",\n \"display_name\": \"Bob\",\n \"created_at\": \"2026-03-22T14:05:00.000Z\"\n }\n ]\n }\n}\n```\n\n**Example:**\n```bash\ncurl http://localhost:3006/api/posts/a3kf9x/thread\n```\n\n### GET /api/posts/search\n\nSearch posts by content. Searches active posts by default, or archived posts with the `archive` flag.\n\n**Auth:** none\n\n**Params:**\n- `q` — search query (required)\n- `archive` — set to `true` to search archived posts instead\n\n**Response (active):**\n```json\n{\n \"ok\": true,\n \"data\": {\n \"posts\": [\n {\n \"id\": \"a3kf9x\",\n \"content\": \"just shipped the wasm compiler [rust] [wasm]\",\n \"tags\": [\"rust\", \"wasm\"],\n \"media_id\": null,\n \"username\": \"alice\",\n \"display_name\": \"Alice\",\n \"created_at\": \"2026-03-22T14:00:00.000Z\",\n \"archived\": false\n }\n ]\n }\n}\n```\n\n**Response (archive):**\n```json\n{\n \"ok\": true,\n \"data\": {\n \"posts\": [\n {\n \"id\": \"b7xm2k\",\n \"content\": \"old post about [rust]\",\n \"tags\": [\"rust\"],\n \"username\": \"alice\",\n \"display_name\": \"Alice\",\n \"created_at\": \"2025-12-01T08:00:00.000Z\",\n \"archived\": true\n }\n ]\n }\n}\n```\n\n**Examples:**\n```bash\n# Search active posts\ncurl \"http://localhost:3006/api/posts/search?q=rust\"\n\n# Search archived posts\ncurl \"http://localhost:3006/api/posts/search?q=rust&archive=true\"\n```\n\n---\n\n## Filter (Kill)\n\nThe `/kill` command maps to the filter API. The word \"kill\" never appears in the database or API.\n\n### POST /api/filter\n\nAdd a filter. Hides a user or post from your feed.\n\n**Auth:** required\n\n**Body:**\n```json\n{ \"target_type\": \"user\", \"target_id\": \"bob\" }\n```\n\n- `target_type` — `\"user\"` or `\"post\"`\n- `target_id` — username (for users) or post ID (for posts)\n\nFiltering a user also increments their hidden `filter_score`. Users filtered by enough people get suppressed from everyone's feed silently (threshold: ~5 active filters, with 7-day half-life decay).\n\n**Response:**\n```json\n{ \"ok\": true, \"data\": { \"message\": \"Filtered.\" } }\n```\n\n**Errors:**\n- `400` — missing fields, invalid type, can't filter yourself\n- `404` — user not found\n\n**Example:**\n```bash\ncurl -X POST http://localhost:3006/api/filter \\\n -H \"Authorization: Bearer YOUR_TOKEN\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\"target_type\":\"user\",\"target_id\":\"spammer\"}'\n```\n\n### GET /api/filter\n\nGet your current filter list.\n\n**Auth:** required\n\n**Response:**\n```json\n{\n \"ok\": true,\n \"data\": {\n \"filters\": [\n { \"type\": \"user\", \"id\": \"uuid-of-filtered-user\" },\n { \"type\": \"post\", \"id\": \"b7xm2k\" }\n ]\n }\n}\n```\n\n**Example:**\n```bash\ncurl http://localhost:3006/api/filter \\\n -H \"Authorization: Bearer YOUR_TOKEN\"\n```\n\n---\n\n## Media\n\nSupported formats: PNG (max 5MB), MP3 (max 10MB), MP4 (max 25MB).\n\nPNG uploads are processed into multiple variants: original (downscaled to max 1MB), thumbnail (80px wide), large (800px wide), and ASCII art.\n\n### POST /api/media/upload\n\nUpload a file.\n\n**Auth:** required\n\n**Body:** multipart/form-data with `file` field\n\n**Response:**\n```json\n{\n \"ok\": true,\n \"data\": {\n \"media_id\": \"x7km2p\",\n \"type\": \"png\"\n }\n}\n```\n\n**Errors:**\n- `400` — no file, unsupported type, file too large\n\n**Example:**\n```bash\ncurl -X POST http://localhost:3006/api/media/upload \\\n -H \"Authorization: Bearer YOUR_TOKEN\" \\\n -F \"file=@screenshot.png\"\n```\n\n### GET /api/media/:id\n\nServe the original file.\n\n**Auth:** none\n\n**Response:** raw file with appropriate Content-Type header (`image/png`, `audio/mpeg`, `video/mp4`)\n\n**Example:**\n```bash\ncurl http://localhost:3006/api/media/x7km2p -o image.png\n```\n\n### GET /api/media/:id/thumb\n\nServe the thumbnail (PNG only, max 80px wide).\n\n**Auth:** none\n\n**Example:**\n```bash\ncurl http://localhost:3006/api/media/x7km2p/thumb -o thumb.png\n```\n\n### GET /api/media/:id/large\n\nServe the large version (PNG only, max 800px wide).\n\n**Auth:** none\n\n**Example:**\n```bash\ncurl http://localhost:3006/api/media/x7km2p/large -o large.png\n```\n\n### GET /api/media/:id/ascii\n\nGet the ASCII art representation (PNG only).\n\n**Auth:** none\n\n**Response:**\n```json\n{\n \"ok\": true,\n \"data\": {\n \"ascii\": \" @@@@ \\n @ @ \\n @ @ \\n @@@@ \\n\"\n }\n}\n```\n\n**Example:**\n```bash\ncurl http://localhost:3006/api/media/x7km2p/ascii\n```\n\n---\n\n## Avatar\n\n### POST /api/avatar\n\nUpload a profile picture. PNG only, max 5MB. Processes into thumb, large, and ASCII art versions. Sets as your avatar immediately.\n\n**Auth:** required\n\n**Body:** multipart/form-data with `file` field\n\n**Response:**\n```json\n{ \"ok\": true, \"data\": { \"avatar_id\": \"x7km2p\" } }\n```\n\n**Example:**\n```bash\ncurl -X POST http://localhost:3006/api/avatar \\\n -H \"Authorization: Bearer YOUR_TOKEN\" \\\n -F \"file=@photo.png\"\n```\n\n### GET /api/avatar/:username\n\nGet a user's avatar image (large version, 800px max).\n\n**Auth:** none\n\n**Response:** raw PNG with `Content-Type: image/png`\n\n**Example:**\n```bash\ncurl http://localhost:3006/api/avatar/alice -o avatar.png\n```\n\nReturns 404 if the user has no uploaded avatar.\n\n---\n\n## Bookmarks\n\nBookmarks are private. Nobody sees your bookmarks. No counts, no notifications. One concept for everything: users, tags, posts, docs.\n\n### POST /api/bookmarks\n\nAdd a bookmark.\n\n**Auth:** required\n\n**Body:**\n```json\n{ \"target_type\": \"user\", \"target_id\": \"alice\" }\n```\n\n- `target_type` — `\"user\"`, `\"tag\"`, `\"post\"`, or `\"doc\"`\n- `target_id` — username, tag name, post ID, or doc name\n\nBookmarking the same thing twice is a no-op, not an error.\n\n**Response:**\n```json\n{ \"ok\": true, \"data\": { \"message\": \"Bookmarked.\" } }\n```\n\n**Errors:**\n- `400` — missing fields, invalid type\n\n**Example:**\n```bash\n# Bookmark a user\ncurl -X POST http://localhost:3006/api/bookmarks \\\n -H \"Authorization: Bearer YOUR_TOKEN\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\"target_type\":\"user\",\"target_id\":\"alice\"}'\n\n# Bookmark a tag\ncurl -X POST http://localhost:3006/api/bookmarks \\\n -H \"Authorization: Bearer YOUR_TOKEN\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\"target_type\":\"tag\",\"target_id\":\"rust\"}'\n\n# Bookmark a post\ncurl -X POST http://localhost:3006/api/bookmarks \\\n -H \"Authorization: Bearer YOUR_TOKEN\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\"target_type\":\"post\",\"target_id\":\"a3kf9x\"}'\n\n# Bookmark a doc\ncurl -X POST http://localhost:3006/api/bookmarks \\\n -H \"Authorization: Bearer YOUR_TOKEN\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\"target_type\":\"doc\",\"target_id\":\"api\"}'\n```\n\n### DELETE /api/bookmarks\n\nRemove a bookmark.\n\n**Auth:** required\n\n**Body:**\n```json\n{ \"target_type\": \"user\", \"target_id\": \"alice\" }\n```\n\n**Response:**\n```json\n{ \"ok\": true, \"data\": { \"message\": \"Unbookmarked.\" } }\n```\n\n**Example:**\n```bash\ncurl -X DELETE http://localhost:3006/api/bookmarks \\\n -H \"Authorization: Bearer YOUR_TOKEN\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\"target_type\":\"user\",\"target_id\":\"alice\"}'\n```\n\n### GET /api/bookmarks\n\nList your bookmarks. Optionally filter by type.\n\n**Auth:** required\n\n**Params:**\n- `type` — optional: `user`, `tag`, `post`, or `doc`\n\n**Response:**\n```json\n{\n \"ok\": true,\n \"data\": {\n \"bookmarks\": [\n { \"type\": \"user\", \"id\": \"alice\" },\n { \"type\": \"tag\", \"id\": \"rust\" },\n {\n \"type\": \"post\",\n \"id\": \"a3kf9x\",\n \"preview\": \"just shipped the wasm compiler...\",\n \"username\": \"alice\"\n },\n {\n \"type\": \"post\",\n \"id\": \"old123\",\n \"preview\": \"this was archived...\",\n \"archived\": true\n },\n {\n \"type\": \"post\",\n \"id\": \"gone99\",\n \"expired\": true\n },\n { \"type\": \"doc\", \"id\": \"api\" }\n ]\n }\n}\n```\n\nPost bookmarks are enriched with a content preview (60 chars), the author's username, and status flags (`archived`, `expired`) when applicable.\n\n**Examples:**\n```bash\n# All bookmarks\ncurl http://localhost:3006/api/bookmarks \\\n -H \"Authorization: Bearer YOUR_TOKEN\"\n\n# Only bookmarked tags\ncurl \"http://localhost:3006/api/bookmarks?type=tag\" \\\n -H \"Authorization: Bearer YOUR_TOKEN\"\n```\n\n---\n\n## Docs\n\n### GET /api/docs\n\nList all available documentation files.\n\n**Auth:** none\n\n**Response:**\n```json\n{\n \"ok\": true,\n \"data\": {\n \"docs\": [\n { \"name\": \"about\", \"path\": \"docs/about.md\" },\n { \"name\": \"api\", \"path\": \"docs/api.md\" },\n { \"name\": \"commands\", \"path\": \"docs/commands.md\" },\n { \"name\": \"changelog\", \"path\": \"docs/changelog.md\" }\n ]\n }\n}\n```\n\n**Example:**\n```bash\ncurl http://localhost:3006/api/docs\n```\n\n### GET /api/docs/:name\n\nGet the contents of a specific document. The `.md` extension is optional.\n\n**Auth:** none\n\n**Response:**\n```json\n{\n \"ok\": true,\n \"data\": {\n \"name\": \"api\",\n \"content\": \"# API Reference\\n\\n...\"\n }\n}\n```\n\n**Errors:**\n- `400` — path traversal attempt\n- `404` — document not found\n\n**Example:**\n```bash\ncurl http://localhost:3006/api/docs/api\n```\n\n---\n\n## Categories\n\n### GET /api/categories\n\nGet the category tree with tags. Used by `/tree -cat` in the client.\n\n**Auth:** none\n\n**Response:**\n```json\n{\n \"ok\": true,\n \"data\": {\n \"categories\": [\n {\n \"id\": \"coding\",\n \"name\": \"coding\",\n \"tags\": [\"rust\", \"python\", \"wasm\", \"js\", \"frontend\", \"backend\"]\n },\n {\n \"id\": \"creative\",\n \"name\": \"creative\",\n \"tags\": [\"music\", \"art\", \"writing\", \"gamedev\"]\n },\n {\n \"id\": \"meta\",\n \"name\": \"meta\",\n \"tags\": [\"motd\", \"bugs\", \"ideas\", \"feedback\"]\n },\n {\n \"id\": \"general\",\n \"name\": \"general\",\n \"tags\": [\"offtopic\", \"introductions\", \"showcase\"]\n }\n ]\n }\n}\n```\n\n**Example:**\n```bash\ncurl http://localhost:3006/api/categories\n```\n\n---\n\n## Commands\n\n### GET /api/commands\n\nGet the full command list grouped by category. Used by `/help` and `/menu` in the client.\n\n**Auth:** none\n\n**Response:**\n```json\n{\n \"ok\": true,\n \"data\": {\n \"categories\": [\n {\n \"name\": \"General\",\n \"commands\": [\n { \"command\": \"/help\", \"description\": \"Show all available commands\" },\n { \"command\": \"/menu\", \"description\": \"Toggle the command menu\" },\n { \"command\": \"/clear\", \"description\": \"Clear the terminal\" },\n { \"command\": \"/read [path]\", \"description\": \"Read a document\" },\n { \"command\": \"/tree -cat\", \"description\": \"Browse categories and tags\" },\n { \"command\": \"/link [target]\", \"description\": \"Navigate to user, tag, post, or doc\" }\n ]\n }\n ]\n }\n}\n```\n\n**Example:**\n```bash\ncurl http://localhost:3006/api/commands\n```\n\n---\n\n## Telegram Connect\n\n### POST /api/connect/telegram\n\nGenerate a Telegram deep link to connect your account.\n\n**Auth:** required\n\n**Response:**\n```json\n{\n \"ok\": true,\n \"data\": {\n \"link\": \"https://t.me/motdsocial_bot?start=alice_a8f3k2\",\n \"expires_in\": 600\n }\n}\n```\n\nIf already connected:\n```json\n{\n \"ok\": true,\n \"data\": {\n \"already_connected\": true,\n \"message\": \"Telegram already connected.\"\n }\n}\n```\n\n**Example:**\n```bash\ncurl -X POST http://localhost:3006/api/connect/telegram \\\n -H \"Authorization: Bearer YOUR_TOKEN\"\n```\n\n### DELETE /api/connect/telegram\n\nDisconnect your Telegram account.\n\n**Auth:** required\n\n**Response:**\n```json\n{ \"ok\": true, \"data\": { \"message\": \"Telegram disconnected.\" } }\n```\n\n**Example:**\n```bash\ncurl -X DELETE http://localhost:3006/api/connect/telegram \\\n -H \"Authorization: Bearer YOUR_TOKEN\"\n```\n\n### POST /api/connect/email\n\nSend a verification email to connect your email address.\n\n**Auth:** required\n\n**Body:**\n```json\n{ \"email\": \"you@gmail.com\" }\n```\n\n**Response:**\n```json\n{\n \"ok\": true,\n \"data\": {\n \"message\": \"Verification email sent to you@gmail.com\",\n \"tip\": \"Tip: add noreply@motd.social to your contacts so notifications don't go to spam.\"\n }\n}\n```\n\n**Example:**\n```bash\ncurl -X POST http://localhost:3006/api/connect/email \\\n -H \"Authorization: Bearer YOUR_TOKEN\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\"email\":\"you@gmail.com\"}'\n```\n\n### GET /api/connect/email/verify\n\nVerify email address from link in verification email.\n\n**Auth:** none (link from email)\n\n**Params:**\n- `code` — verification code from the email link\n\nReturns an HTML confirmation page on success.\n\n### DELETE /api/connect/email\n\nDisconnect your email address.\n\n**Auth:** required\n\n**Response:**\n```json\n{ \"ok\": true, \"data\": { \"message\": \"Email disconnected.\" } }\n```\n\n**Example:**\n```bash\ncurl -X DELETE http://localhost:3006/api/connect/email \\\n -H \"Authorization: Bearer YOUR_TOKEN\"\n```\n\n### GET /api/connect/status\n\nCheck your Telegram and email connection status and notification settings.\n\n**Auth:** required\n\n**Response:**\n```json\n{\n \"ok\": true,\n \"data\": {\n \"telegram\": {\n \"connected\": true,\n \"username\": \"alice_tg\",\n \"notify\": true,\n \"notify_bookmarks\": true,\n \"notify_mentions\": true\n },\n \"email\": {\n \"connected\": true,\n \"address\": \"alice@gmail.com\",\n \"notify\": true,\n \"notify_bookmarks\": true,\n \"notify_mentions\": true\n }\n }\n}\n```\n\n**Example:**\n```bash\ncurl http://localhost:3006/api/connect/status \\\n -H \"Authorization: Bearer YOUR_TOKEN\"\n```\n\n---\n\n## Account\n\n### DELETE /api/account\n\nPermanently delete your account. This is irreversible. Deletes all posts, media, sessions, and user data.\n\n**Auth:** required\n\n**Body:**\n```json\n{ \"confirm_username\": \"alice\" }\n```\n\nThe `confirm_username` must match your actual username.\n\n**Response:**\n```json\n{ \"ok\": true, \"data\": { \"message\": \"Account terminated.\" } }\n```\n\n**Errors:**\n- `400` — username confirmation doesn't match\n\n**Example:**\n```bash\ncurl -X DELETE http://localhost:3006/api/account \\\n -H \"Authorization: Bearer YOUR_TOKEN\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\"confirm_username\":\"alice\"}'\n```\n";
const passes = [{"t":0,"r":933,"c":2,"a":"extend","s":0.3342649022789557,"ps":9,"e":70.92688345276214,"pr":1.1},{"t":0,"r":1068,"c":36,"a":"extend","s":0.42489483628409375,"ps":9,"e":71.43441108319092,"pr":1.1},{"t":0,"r":167,"c":0,"a":"died","s":0,"ps":8,"e":100,"pr":1},{"t":0,"r":796,"c":15,"a":"extend","s":0.5047026872698157,"ps":9,"e":71.88133504871097,"pr":1.1},{"t":0,"r":42,"c":0,"a":"extend","s":0.383792709876249,"ps":9,"e":71.204239175307,"pr":1.1},{"t":1,"r":933,"c":2,"a":"hold","s":0.3222095567986939,"ps":9,"e":72.1545599071517,"pr":1.1},{"t":1,"r":1068,"c":36,"a":"extend","s":0.37998119565270183,"ps":9,"e":51.18698245388878,"pr":1.1},{"t":1,"r":796,"c":15,"a":"extend","s":0.3416263512621576,"ps":10,"e":51.18004210116575,"pr":1.2000000000000002},{"t":1,"r":42,"c":0,"a":"extend","s":0.41806219108332804,"ps":9,"e":25.619557846390766,"pr":1.1},{"t":1,"r":933,"c":3,"a":"hold","s":0.2815146132652264,"ps":5,"e":31.899352671591302,"pr":1.2000000000000002},{"t":1,"r":933,"c":1,"a":"hold","s":0.12986527896017314,"ps":5,"e":30.68615799715088,"pr":1.2000000000000002},{"t":1,"r":796,"c":14,"a":"extend","s":0.33654540623891993,"ps":5,"e":22.92405478955124,"pr":1.2000000000000002},{"t":2,"r":933,"c":2,"a":"hold","s":0.3222095567986939,"ps":8,"e":73.53223636154125,"pr":1.05},{"t":2,"r":1068,"c":36,"a":"extend","s":0.37998119565270183,"ps":8,"e":37.118782413377275,"pr":1.05},{"t":2,"r":796,"c":15,"a":"hold","s":0.34078215032677683,"ps":9,"e":52.556299303779966,"pr":1.1500000000000001},{"t":2,"r":42,"c":0,"a":"extend","s":0.4050944130355655,"ps":8,"e":19.3622192054727,"pr":1.05},{"t":2,"r":933,"c":3,"a":"hold","s":0.26810544967086697,"ps":4,"e":33.44419626895824,"pr":1.1500000000000001},{"t":2,"r":933,"c":1,"a":"hold","s":0.09286814280896474,"ps":4,"e":30.829103139622596,"pr":1.1500000000000001},{"t":2,"r":796,"c":14,"a":"hold","s":0.2805223952549474,"ps":6,"e":24.26823395159082,"pr":1.3000000000000003},{"t":2,"r":1068,"c":35,"a":"hold","s":0.22299545757357694,"ps":5,"e":22.97124185511238,"pr":1.2000000000000002},{"t":2,"r":42,"c":1,"a":"hold","s":0.17771292604557706,"ps":5,"e":22.631324419556705,"pr":1.2000000000000002},{"t":2,"r":44,"c":4,"a":"extend","s":0.7519107702884005,"ps":10,"e":21.094390806088576,"pr":1.2000000000000002},{"t":3,"r":933,"c":2,"a":"retracted","s":0.3342649022789557,"ps":8,"e":75.0063555797729,"pr":1.05},{"t":3,"r":1068,"c":36,"a":"extend","s":0.42489483628409375,"ps":8,"e":27.52255877255502,"pr":1.05},{"t":3,"r":796,"c":15,"a":"hold","s":0.3416263512621576,"ps":8,"e":54.089310113877225,"pr":1.1},{"t":3,"r":42,"c":0,"a":"hold","s":0.35037510394443666,"ps":8,"e":10.482610018514098,"pr":1.05},{"t":3,"r":933,"c":3,"a":"retracted","s":0.2815146132652264,"ps":4,"e":35.09631317508005,"pr":1.1},{"t":3,"r":933,"c":1,"a":"retracted","s":0.12747240942759655,"ps":4,"e":31.24888241504337,"pr":1.1},{"t":3,"r":796,"c":14,"a":"hold","s":0.2709430332848964,"ps":6,"e":25.53577821786999,"pr":1.3000000000000003},{"t":3,"r":1068,"c":35,"a":"hold","s":0.3453403400607489,"ps":5,"e":24.98396457559837,"pr":1.2000000000000002},{"t":3,"r":42,"c":1,"a":"hold","s":0.21276595382066046,"ps":5,"e":23.583452050121988,"pr":1.2000000000000002},{"t":3,"r":44,"c":4,"a":"extend","s":0.7156337234891638,"ps":9,"e":17.82862241580132,"pr":1.1500000000000001},{"t":3,"r":1068,"c":37,"a":"hold","s":0.21738898844021318,"ps":5,"e":16.897161513254822,"pr":1.1500000000000001},{"t":3,"r":44,"c":3,"a":"hold","s":0.22940956991022937,"ps":6,"e":9.975729761891225,"pr":1.3000000000000003},{"t":4,"r":1068,"c":36,"a":"extend","s":0.42489483628409375,"ps":7,"e":20.910202223979436,"pr":1},{"t":4,"r":796,"c":15,"a":"extend","s":0.5047026872698157,"ps":9,"e":39.743852128425026,"pr":1.2000000000000002},{"t":4,"r":42,"c":0,"a":"hold","s":0.3406740361231411,"ps":7,"e":12.158002307499228,"pr":1},{"t":4,"r":796,"c":14,"a":"retracted","s":0.2709430332848964,"ps":5,"e":26.95332248414916,"pr":1.2500000000000002},{"t":4,"r":1068,"c":35,"a":"retracted","s":0.3453403400607489,"ps":4,"e":27.146687296084362,"pr":1.1500000000000001},{"t":4,"r":42,"c":1,"a":"retracted","s":0.20991026003138485,"ps":4,"e":24.662734130373067,"pr":1.1500000000000001},{"t":4,"r":44,"c":4,"a":"extend","s":0.6857030196434731,"ps":8,"e":15.479972601064373,"pr":1.1},{"t":4,"r":1068,"c":37,"a":"hold","s":0.2299000555874057,"ps":4,"e":18.13636195795407,"pr":1.1},{"t":4,"r":44,"c":3,"a":"hold","s":0.344275725657459,"ps":7,"e":11.679935567150897,"pr":1.4000000000000004},{"t":4,"r":44,"c":2,"a":"hold","s":0.32627741042068314,"ps":9,"e":11.742829301879564,"pr":1.1500000000000001},{"t":5,"r":1068,"c":36,"a":"extend","s":0.401124774909063,"ps":7,"e":16.148440296276355,"pr":1},{"t":5,"r":796,"c":15,"a":"extend","s":0.5441364625583038,"ps":8,"e":30.02786068022402,"pr":1.1500000000000001},{"t":5,"r":42,"c":0,"a":"retracted","s":0.3060040408214771,"ps":7,"e":13.556034634071045,"pr":1},{"t":5,"r":44,"c":4,"a":"extend","s":0.6440183096223653,"ps":7,"e":13.707483354630305,"pr":1.05},{"t":5,"r":1068,"c":37,"a":"retracted","s":0.21738898844021318,"ps":4,"e":19.275473865475774,"pr":1.05},{"t":5,"r":44,"c":3,"a":"retracted","s":0.2647475975088515,"ps":10,"e":24.04074564910127,"pr":1.5000000000000004},{"t":5,"r":796,"c":16,"a":"hold","s":0.3987510852814839,"ps":5,"e":19.473088165862595,"pr":1.3000000000000003},{"t":5,"r":44,"c":5,"a":"hold","s":0.22269132189908655,"ps":5,"e":7.665804547077425,"pr":1.2000000000000002},{"t":6,"r":1068,"c":36,"a":"extend","s":0.401124774909063,"ps":6,"e":12.920206946884202,"pr":0.95},{"t":6,"r":796,"c":15,"a":"extend","s":0.5047026872698157,"ps":7,"e":23.110837524867783,"pr":1.1},{"t":6,"r":44,"c":4,"a":"extend","s":0.5865087279106962,"ps":6,"e":12.24968722454111,"pr":1},{"t":6,"r":796,"c":16,"a":"extend","s":0.45389086699659703,"ps":5,"e":15.64795057128476,"pr":1.3000000000000003},{"t":6,"r":44,"c":5,"a":"hold","s":0.1858238669778675,"ps":5,"e":8.402395482900365,"pr":1.2000000000000002},{"t":6,"r":796,"c":14,"a":"hold","s":0.1832795243569493,"ps":5,"e":13.585319343523032,"pr":1.2500000000000002},{"t":7,"r":1068,"c":36,"a":"hold","s":0.3474974071802458,"ps":6,"e":14.800186204326168,"pr":0.95},{"t":7,"r":796,"c":15,"a":"extend","s":0.4570563055921287,"ps":6,"e":18.10710157872337,"pr":1.05},{"t":7,"r":44,"c":4,"a":"extend","s":0.5483116902780272,"ps":5,"e":11.120326522735729,"pr":0.95},{"t":7,"r":796,"c":16,"a":"extend","s":0.45389086699659703,"ps":4,"e":13.075354255080274,"pr":1.2500000000000002},{"t":7,"r":44,"c":5,"a":"retracted","s":0.18372397879300742,"ps":4,"e":9.272187313244425,"pr":1.1500000000000001},{"t":7,"r":796,"c":14,"a":"hold","s":0.21986532772471415,"ps":6,"e":14.444241965320746,"pr":1.3500000000000003},{"t":7,"r":1068,"c":37,"a":"hold","s":0.22583590304126822,"ps":5,"e":6.593918772994804,"pr":1.05},{"t":8,"r":1068,"c":36,"a":"hold","s":0.3474974071802458,"ps":5,"e":16.830165461768136,"pr":0.8999999999999999},{"t":8,"r":796,"c":15,"a":"extend","s":0.4539280143106903,"ps":5,"e":14.691967985246224,"pr":1},{"t":8,"r":44,"c":4,"a":"extend","s":0.5285374337585171,"ps":4,"e":10.324038194962705,"pr":0.8999999999999999},{"t":8,"r":796,"c":16,"a":"extend","s":0.3987510852814839,"ps":4,"e":10.9657540561325,"pr":1.2500000000000002},{"t":8,"r":796,"c":14,"a":"retracted","s":0.21879328404273532,"ps":5,"e":15.444588237662629,"pr":1.3000000000000003},{"t":8,"r":1068,"c":37,"a":"hold","s":0.19690693928595476,"ps":4,"e":7.569174287282442,"pr":1},{"t":8,"r":44,"c":3,"a":"hold","s":0.3135674298792591,"ps":5,"e":6.524393663063671,"pr":1.05},{"t":9,"r":1068,"c":36,"a":"retracted","s":0.3205297295326896,"ps":5,"e":18.64440329802965,"pr":0.8999999999999999},{"t":9,"r":796,"c":15,"a":"extend","s":0.389636039630232,"ps":5,"e":11.941339411601655,"pr":1},{"t":9,"r":44,"c":4,"a":"extend","s":0.3804278419069696,"ps":4,"e":8.937222651152922,"pr":0.8999999999999999},{"t":9,"r":796,"c":16,"a":"extend","s":0.3987510852814839,"ps":4,"e":9.489033916869058,"pr":1.2000000000000002},{"t":9,"r":1068,"c":37,"a":"retracted","s":0.22583590304126822,"ps":4,"e":8.775861511612588,"pr":0.95},{"t":9,"r":44,"c":3,"a":"hold","s":0.2755838985074057,"ps":4,"e":8.129064851122918,"pr":1},{"t":10,"r":796,"c":15,"a":"extend","s":0.389636039630232,"ps":4,"e":10.120899410050457,"pr":0.95},{"t":10,"r":44,"c":4,"a":"extend","s":0.36857098190764875,"ps":4,"e":7.900053354489878,"pr":0.8499999999999999},{"t":10,"r":796,"c":16,"a":"extend","s":0.3987510852814839,"ps":4,"e":8.45532981938465,"pr":1.1500000000000001},{"t":10,"r":44,"c":3,"a":"retracted","s":0.3011184156473473,"ps":4,"e":9.938012176301696,"pr":0.95},{"t":10,"r":796,"c":14,"a":"hold","s":0.22283426059055753,"ps":5,"e":6.150390975410884,"pr":1.1},{"t":10,"r":796,"c":17,"a":"extend","s":0.3348230348413571,"ps":5,"e":4.196719170172318,"pr":1.3000000000000003},{"t":11,"r":796,"c":16,"a":"extend","s":0.3987510852814839,"ps":4,"e":7.731736951145565,"pr":1.1},{"t":12,"r":796,"c":14,"a":"retracted","s":0.20549316474840673,"ps":4,"e":8.088281611385392,"pr":1.05},{"t":13,"r":44,"c":4,"a":"extend","s":0.36361700718854734,"ps":4,"e":6.2493172767503715,"pr":0.6999999999999997},{"t":14,"r":796,"c":18,"a":"extend","s":0.4230031950711312,"ps":5,"e":4.3047863109879625,"pr":1.3000000000000003},{"t":15,"r":796,"c":15,"a":"extend","s":0.392959960736897,"ps":4,"e":6.638734259716318,"pr":0.6999999999999997},{"t":16,"r":796,"c":15,"a":"extend","s":0.392959960736897,"ps":4,"e":6.427689761928045,"pr":0.6499999999999997},{"t":16,"r":796,"c":16,"a":"extend","s":0.3987510852814839,"ps":4,"e":6.327120183105898,"pr":0.8499999999999999},{"t":16,"r":796,"c":14,"a":"extend","s":0.41506334950247914,"ps":5,"e":4.031607113713662,"pr":0.8499999999999998},{"t":17,"r":44,"c":4,"a":"extend","s":0.36361700718854734,"ps":4,"e":5.59443560171587,"pr":0.4999999999999996},{"t":17,"r":44,"c":3,"a":"hold","s":0.17487502021876322,"ps":4,"e":4.082549626343519,"pr":0.7499999999999997},{"t":17,"r":796,"c":13,"a":"extend","s":0.2325668433751259,"ps":5,"e":1.9868564570148035,"pr":0.9499999999999997},{"t":18,"r":796,"c":17,"a":"extend","s":0.3348230348413571,"ps":4,"e":4.816356397920934,"pr":0.8999999999999999},{"t":19,"r":796,"c":13,"a":"hold","s":0.2325668433751259,"ps":4,"e":3.6350938300095974,"pr":0.8499999999999996},{"t":20,"r":44,"c":4,"a":"extend","s":0.36361700718854734,"ps":4,"e":5.4584903875488875,"pr":0.34999999999999964},{"t":20,"r":796,"c":17,"a":"extend","s":0.3348230348413571,"ps":4,"e":4.833529926670977,"pr":0.7999999999999998},{"t":20,"r":796,"c":13,"a":"hold","s":0.2325668433751259,"ps":4,"e":4.895628577010605,"pr":0.7999999999999996},{"t":21,"r":796,"c":15,"a":"extend","s":0.392959960736897,"ps":4,"e":6.0180165141563835,"pr":0.39999999999999963},{"t":21,"r":796,"c":17,"a":"extend","s":0.3348230348413571,"ps":4,"e":4.838479943781283,"pr":0.7499999999999998},{"t":21,"r":796,"c":14,"a":"hold","s":0.29140428893440573,"ps":4,"e":6.006399060693809,"pr":0.6499999999999996},{"t":21,"r":796,"c":20,"a":"hold","s":0.2480828387209081,"ps":4,"e":4.792194823212299,"pr":1.3000000000000003},{"t":21,"r":796,"c":12,"a":"retracted","s":0.1872804433886922,"ps":4,"e":3.6371213653796484,"pr":0.8999999999999996},{"t":22,"r":796,"c":15,"a":"extend","s":0.392959960736897,"ps":4,"e":5.993187340036091,"pr":0.34999999999999964},{"t":22,"r":44,"c":5,"a":"hold","s":0.3016053727216319,"ps":4,"e":5.642236100613589,"pr":0.39999999999999963},{"t":23,"r":796,"c":17,"a":"hold","s":0.3348230348413571,"ps":4,"e":6.920529234489354,"pr":0.6499999999999997},{"t":24,"r":796,"c":16,"a":"extend","s":0.3987510852814839,"ps":4,"e":6.059712171207321,"pr":0.4499999999999996},{"t":24,"r":796,"c":17,"a":"hold","s":0.3348230348413571,"ps":4,"e":8.99911351322021,"pr":0.5999999999999996},{"t":24,"r":796,"c":18,"a":"extend","s":0.4770582859392183,"ps":4,"e":7.4024720222301115,"pr":0.8499999999999999},{"t":25,"r":796,"c":17,"a":"retracted","s":0.3348230348413571,"ps":4,"e":11.077697791951067,"pr":0.5499999999999996},{"t":26,"r":796,"c":15,"a":"hold","s":0.392959960736897,"ps":4,"e":11.050999994623295,"pr":0.3},{"t":27,"r":796,"c":19,"a":"extend","s":0.44975426954259734,"ps":4,"e":5.496826076431365,"pr":0.8999999999999998},{"t":27,"r":796,"c":20,"a":"hold","s":0.36804989613446903,"ps":5,"e":4.274931108050948,"pr":1.0499999999999998},{"t":28,"r":796,"c":18,"a":"extend","s":0.4770582859392183,"ps":4,"e":7.480449906928072,"pr":0.6499999999999997},{"t":29,"r":796,"c":17,"a":"hold","s":0.25636665802260267,"ps":5,"e":6.208784886830809,"pr":0.4},{"t":31,"r":796,"c":21,"a":"extend","s":0.4795770204926351,"ps":4,"e":5.06227471389018,"pr":0.9999999999999998},{"t":31,"r":796,"c":22,"a":"hold","s":0.14937249705574973,"ps":5,"e":2.157210628975441,"pr":1.15},{"t":32,"r":796,"c":17,"a":"hold","s":0.13378598669619984,"ps":5,"e":3.0976797171302657,"pr":0.4},{"t":33,"r":796,"c":18,"a":"extend","s":0.4770582859392183,"ps":4,"e":7.500947079190459,"pr":0.39999999999999963},{"t":35,"r":796,"c":21,"a":"extend","s":0.4682164885752674,"ps":4,"e":6.793149405947483,"pr":0.7999999999999996},{"t":36,"r":796,"c":21,"a":"extend","s":0.4682164885752674,"ps":4,"e":6.957216920184735,"pr":0.7499999999999996},{"t":38,"r":796,"c":19,"a":"extend","s":0.42702333932872155,"ps":4,"e":6.549860382398839,"pr":0.3999999999999995},{"t":38,"r":796,"c":17,"a":"extend","s":0.2141802787090835,"ps":4,"e":2.950909477720403,"pr":0.39999999999999963},{"t":38,"r":796,"c":22,"a":"extend","s":0.21921747567856595,"ps":4,"e":3.781679437674951,"pr":0.8999999999999996},{"t":38,"r":796,"c":14,"a":"extend","s":0.23345712449019776,"ps":4,"e":2.2029812136645432,"pr":0.45},{"t":39,"r":796,"c":19,"a":"extend","s":0.42702333932872155,"ps":4,"e":6.556232967920027,"pr":0.34999999999999953},{"t":39,"r":796,"c":20,"a":"extend","s":0.36804989613446903,"ps":4,"e":5.494474090301803,"pr":0.4499999999999994},{"t":39,"r":796,"c":21,"a":"extend","s":0.4682164885752674,"ps":4,"e":7.208732419510444,"pr":0.5999999999999994},{"t":40,"r":796,"c":21,"a":"extend","s":0.4682164885752674,"ps":4,"e":7.248125029678807,"pr":0.5499999999999994},{"t":40,"r":796,"c":17,"a":"hold","s":0.2141802787090835,"ps":4,"e":5.177793937065738,"pr":0.3},{"t":40,"r":796,"c":22,"a":"hold","s":0.21921747567856595,"ps":4,"e":6.0891590485320055,"pr":0.7999999999999995},{"t":40,"r":796,"c":13,"a":"hold","s":0.08028911076596247,"ps":5,"e":1.4533367661839351,"pr":0.55},{"t":41,"r":796,"c":21,"a":"extend","s":0.4682164885752674,"ps":4,"e":7.2756998567966615,"pr":0.4999999999999994},{"t":41,"r":796,"c":22,"a":"retracted","s":0.21921747567856595,"ps":4,"e":7.242898853960533,"pr":0.7499999999999994},{"t":42,"r":796,"c":21,"a":"extend","s":0.4682164885752674,"ps":4,"e":7.29500223577916,"pr":0.4499999999999994},{"t":43,"r":796,"c":18,"a":"extend","s":0.4770582859392183,"ps":4,"e":7.504971033316458,"pr":0.3},{"t":43,"r":796,"c":20,"a":"extend","s":0.36804989613446903,"ps":4,"e":5.4760773957696784,"pr":0.3},{"t":44,"r":796,"c":19,"a":"extend","s":0.42702333932872155,"ps":4,"e":6.568603239756192,"pr":0.3},{"t":44,"r":796,"c":20,"a":"extend","s":0.36804989613446903,"ps":4,"e":5.4743335953918,"pr":0.3},{"t":45,"r":796,"c":19,"a":"extend","s":0.42702333932872155,"ps":4,"e":6.569352968070175,"pr":0.3},{"t":45,"r":796,"c":21,"a":"extend","s":0.4682164885752674,"ps":4,"e":7.324592782759329,"pr":0.3},{"t":45,"r":796,"c":15,"a":"retracted","s":0.3130049342557409,"ps":4,"e":9.93741216316505,"pr":0.3},{"t":46,"r":796,"c":18,"a":"extend","s":0.4770582859392183,"ps":4,"e":7.505047883186117,"pr":0.3},{"t":46,"r":796,"c":19,"a":"extend","s":0.42702333932872155,"ps":4,"e":6.569877777889963,"pr":0.3},{"t":46,"r":796,"c":21,"a":"extend","s":0.4682164885752674,"ps":4,"e":7.329227283953028,"pr":0.3},{"t":47,"r":796,"c":16,"a":"hold","s":0.3987510852814839,"ps":4,"e":8.635438037814579,"pr":0.3},{"t":47,"r":796,"c":21,"a":"extend","s":0.4682164885752674,"ps":4,"e":7.332471434788616,"pr":0.3},{"t":48,"r":796,"c":16,"a":"extend","s":0.3987510852814839,"ps":4,"e":7.857812704046515,"pr":0.3},{"t":50,"r":796,"c":20,"a":"extend","s":0.38366907163588476,"ps":6,"e":4.073559365205544,"pr":0.5},{"t":51,"r":796,"c":20,"a":"extend","s":0.3951021862366887,"ps":5,"e":4.539063798569337,"pr":0.45},{"t":52,"r":796,"c":18,"a":"extend","s":0.4770582859392183,"ps":4,"e":7.505083284001724,"pr":0.3},{"t":53,"r":796,"c":21,"a":"extend","s":0.4682164885752674,"ps":4,"e":7.339150554167792,"pr":0.3},{"t":54,"r":796,"c":16,"a":"extend","s":0.3987510852814839,"ps":4,"e":6.2568228920034805,"pr":0.3},{"t":54,"r":796,"c":18,"a":"extend","s":0.4770582859392183,"ps":4,"e":7.505085691302202,"pr":0.3},{"t":54,"r":796,"c":19,"a":"extend","s":0.42702333932872155,"ps":4,"e":6.5710317409054095,"pr":0.3},{"t":54,"r":796,"c":21,"a":"extend","s":0.4682164885752674,"ps":4,"e":7.3394177239389515,"pr":0.3},{"t":54,"r":796,"c":22,"a":"hold","s":0.08763864481203697,"ps":5,"e":3.0964593959967783,"pr":0.4},{"t":55,"r":796,"c":18,"a":"extend","s":0.4770582859392183,"ps":4,"e":7.505086385171164,"pr":0.3},{"t":55,"r":796,"c":15,"a":"extend","s":0.32984165701568124,"ps":4,"e":4.049634826967403,"pr":0.30000000000000004},{"t":56,"r":796,"c":20,"a":"extend","s":0.3935477246718705,"ps":4,"e":5.194975887769325,"pr":0.45},{"t":56,"r":796,"c":13,"a":"extend","s":0.2309909187109709,"ps":5,"e":1.5027478469969733,"pr":0.6},{"t":57,"r":796,"c":21,"a":"extend","s":0.4682164885752674,"ps":4,"e":7.339827295198138,"pr":0.3},{"t":57,"r":796,"c":17,"a":"extend","s":0.3695009048367769,"ps":4,"e":5.496942011153262,"pr":0.3},{"t":58,"r":796,"c":17,"a":"extend","s":0.3695009048367769,"ps":4,"e":5.497064474893233,"pr":0.3},{"t":58,"r":796,"c":15,"a":"extend","s":0.32984165701568124,"ps":4,"e":4.514402827290133,"pr":0.3},{"t":58,"r":796,"c":13,"a":"extend","s":0.2596374474569441,"ps":4,"e":2.4205949448186246,"pr":0.5499999999999999},{"t":59,"r":796,"c":14,"a":"retracted","s":0.17059845411157074,"ps":4,"e":5.14972641419445,"pr":0.35000000000000003},{"t":60,"r":796,"c":21,"a":"extend","s":0.4682164885752674,"ps":4,"e":7.339967778140038,"pr":0.3},{"t":60,"r":796,"c":17,"a":"extend","s":0.3695009048367769,"ps":4,"e":5.4972102067438,"pr":0.3},{"t":61,"r":796,"c":18,"a":"extend","s":0.4770582859392183,"ps":4,"e":7.505087813721764,"pr":0.3},{"t":61,"r":796,"c":17,"a":"extend","s":0.3695009048367769,"ps":4,"e":5.49725221180661,"pr":0.3},{"t":62,"r":796,"c":15,"a":"extend","s":0.32984165701568124,"ps":4,"e":4.698786055268395,"pr":0.3},{"t":62,"r":796,"c":13,"a":"hold","s":0.2309909187109709,"ps":4,"e":5.166979768465104,"pr":0.39999999999999997},{"t":63,"r":796,"c":20,"a":"extend","s":0.3935477246718705,"ps":4,"e":5.884355665499403,"pr":0.3},{"t":64,"r":796,"c":16,"a":"extend","s":0.3987510852814839,"ps":4,"e":6.049383571290495,"pr":0.3},{"t":64,"r":796,"c":19,"a":"extend","s":0.42702333932872155,"ps":4,"e":6.571100340052092,"pr":0.3},{"t":64,"r":796,"c":17,"a":"extend","s":0.3695009048367769,"ps":4,"e":5.4973166055678995,"pr":0.3},{"t":65,"r":796,"c":19,"a":"extend","s":0.42702333932872155,"ps":4,"e":6.571100938277304,"pr":0.3},{"t":65,"r":796,"c":21,"a":"extend","s":0.4682164885752674,"ps":4,"e":7.340028793493209,"pr":0.3},{"t":65,"r":796,"c":17,"a":"extend","s":0.3695009048367769,"ps":4,"e":5.4973266909834795,"pr":0.3},{"t":65,"r":796,"c":15,"a":"hold","s":0.32984165701568124,"ps":4,"e":8.793730030226591,"pr":0.3},{"t":66,"r":796,"c":19,"a":"extend","s":0.42702333932872155,"ps":4,"e":6.571101357034953,"pr":0.3},{"t":66,"r":796,"c":20,"a":"extend","s":0.3935477246718705,"ps":4,"e":5.925003288642115,"pr":0.3},{"t":66,"r":796,"c":15,"a":"retracted","s":0.32984165701568124,"ps":4,"e":10.832463286352041,"pr":0.3},{"t":67,"r":796,"c":22,"a":"hold","s":0.14567700482378226,"ps":5,"e":3.529868320938085,"pr":0.4},{"t":68,"r":796,"c":16,"a":"hold","s":0.3987510852814839,"ps":4,"e":8.635430557096628,"pr":0.3},{"t":68,"r":796,"c":18,"a":"extend","s":0.4770582859392183,"ps":4,"e":7.505087988512142,"pr":0.3},{"t":68,"r":796,"c":20,"a":"hold","s":0.3935477246718705,"ps":4,"e":11.021766883392042,"pr":0.3},{"t":68,"r":796,"c":22,"a":"retracted","s":0.14567700482378226,"ps":4,"e":4.0952843595283435,"pr":0.35000000000000003},{"t":69,"r":796,"c":19,"a":"extend","s":0.42702333932872155,"ps":4,"e":6.57110199899043,"pr":0.3},{"t":70,"r":796,"c":21,"a":"extend","s":0.4682164885752674,"ps":4,"e":7.340039048343615,"pr":0.3},{"t":71,"r":796,"c":16,"a":"extend","s":0.3987510852814839,"ps":4,"e":6.932435990976261,"pr":0.3},{"t":71,"r":796,"c":21,"a":"extend","s":0.4682164885752674,"ps":4,"e":7.340039669862027,"pr":0.3},{"t":71,"r":796,"c":17,"a":"hold","s":0.1894229652461889,"ps":4,"e":5.087176895897152,"pr":0.35000000000000003},{"t":72,"r":796,"c":18,"a":"extend","s":0.4770582859392183,"ps":4,"e":7.505088000432388,"pr":0.3},{"t":72,"r":796,"c":19,"a":"extend","s":0.42702333932872155,"ps":4,"e":6.571102219181157,"pr":0.3},{"t":74,"r":796,"c":19,"a":"extend","s":0.42702333932872155,"ps":4,"e":6.571102277808196,"pr":0.3},{"t":75,"r":796,"c":21,"a":"extend","s":0.4682164885752674,"ps":4,"e":7.340040771876323,"pr":0.3},{"t":75,"r":796,"c":20,"a":"extend","s":0.41726538353844134,"ps":4,"e":6.172659461329285,"pr":0.35000000000000003},{"t":76,"r":796,"c":16,"a":"extend","s":0.3987510852814839,"ps":4,"e":6.192781670730244,"pr":0.3},{"t":76,"r":796,"c":20,"a":"extend","s":0.41726538353844134,"ps":4,"e":6.2375477707457705,"pr":0.30000000000000004},{"t":77,"r":796,"c":17,"a":"extend","s":0.32354396113353723,"ps":4,"e":4.191772536595128,"pr":0.35000000000000003},{"t":78,"r":796,"c":21,"a":"extend","s":0.4682164885752674,"ps":4,"e":7.340041000640656,"pr":0.3},{"t":79,"r":796,"c":16,"a":"extend","s":0.3987510852814839,"ps":4,"e":6.094607422952591,"pr":0.3},{"t":79,"r":796,"c":17,"a":"hold","s":0.17616468013001943,"ps":4,"e":5.810407418675439,"pr":0.30000000000000004},{"t":80,"r":796,"c":16,"a":"extend","s":0.3987510852814839,"ps":4,"e":6.079231273643123,"pr":0.3},{"t":81,"r":796,"c":21,"a":"extend","s":0.4682164885752674,"ps":4,"e":7.340041079106823,"pr":0.3},{"t":81,"r":796,"c":15,"a":"extend","s":0.22900938187746261,"ps":4,"e":3.0089596194241084,"pr":0.3},{"t":82,"r":796,"c":16,"a":"extend","s":0.3987510852814839,"ps":4,"e":6.060933655964856,"pr":0.3},{"t":82,"r":796,"c":21,"a":"extend","s":0.4682164885752674,"ps":4,"e":7.340041091396273,"pr":0.3},{"t":82,"r":796,"c":20,"a":"extend","s":0.41726538353844134,"ps":4,"e":6.37114105505031,"pr":0.3},{"t":83,"r":796,"c":19,"a":"extend","s":0.42702333932872155,"ps":4,"e":6.5711023318630986,"pr":0.3},{"t":84,"r":796,"c":16,"a":"extend","s":0.3987510852814839,"ps":4,"e":6.051967823302506,"pr":0.3},{"t":84,"r":796,"c":18,"a":"extend","s":0.4770582859392183,"ps":4,"e":7.505088004146608,"pr":0.3},{"t":84,"r":796,"c":20,"a":"extend","s":0.41726538353844134,"ps":4,"e":6.380225568260613,"pr":0.3},{"t":84,"r":796,"c":17,"a":"hold","s":0.24405504711490408,"ps":5,"e":4.900750901032183,"pr":0.4},{"t":85,"r":796,"c":16,"a":"extend","s":0.3987510852814839,"ps":4,"e":6.049383553888063,"pr":0.3},{"t":86,"r":796,"c":19,"a":"extend","s":0.42702333932872155,"ps":4,"e":6.5711023333564835,"pr":0.3},{"t":87,"r":796,"c":17,"a":"extend","s":0.39968483877421107,"ps":5,"e":3.527507466724968,"pr":0.4},{"t":91,"r":796,"c":19,"a":"extend","s":0.42702333932872155,"ps":4,"e":6.571102334005098,"pr":0.3},{"t":92,"r":796,"c":16,"a":"extend","s":0.3987510852814839,"ps":4,"e":6.932435988928883,"pr":0.3},{"t":92,"r":796,"c":19,"a":"extend","s":0.42702333932872155,"ps":4,"e":6.571102334044408,"pr":0.3},{"t":92,"r":796,"c":21,"a":"extend","s":0.4682164885752674,"ps":4,"e":7.340041119261647,"pr":0.3},{"t":92,"r":796,"c":15,"a":"hold","s":0.24946225386047843,"ps":6,"e":4.878060366924073,"pr":0.5},{"t":93,"r":796,"c":16,"a":"extend","s":0.3987510852814839,"ps":4,"e":6.665711269826527,"pr":0.3},{"t":93,"r":796,"c":21,"a":"extend","s":0.4682164885752674,"ps":4,"e":7.34004111950465,"pr":0.3},{"t":93,"r":796,"c":20,"a":"extend","s":0.41726538353844134,"ps":4,"e":6.388601609366239,"pr":0.3},{"t":94,"r":796,"c":21,"a":"extend","s":0.4682164885752674,"ps":4,"e":7.340041119674751,"pr":0.3},{"t":94,"r":796,"c":22,"a":"hold","s":0.1201164061836897,"ps":5,"e":3.356663157828653,"pr":0.4},{"t":95,"r":796,"c":16,"a":"extend","s":0.3987510852814839,"ps":4,"e":6.348308854094724,"pr":0.3},{"t":95,"r":796,"c":15,"a":"hold","s":0.24946225386047843,"ps":5,"e":6.088705662069952,"pr":0.45},{"t":96,"r":796,"c":17,"a":"extend","s":0.39968483877421107,"ps":4,"e":6.228818245552905,"pr":0.3},{"t":97,"r":796,"c":16,"a":"extend","s":0.3987510852814839,"ps":4,"e":6.19278167038614,"pr":0.3},{"t":97,"r":796,"c":15,"a":"retracted","s":0.14559132075330083,"ps":5,"e":7.899134258980186,"pr":0.5},{"t":98,"r":796,"c":16,"a":"extend","s":0.3987510852814839,"ps":4,"e":6.1479532468466065,"pr":0.3},{"t":98,"r":796,"c":21,"a":"extend","s":0.4682164885752674,"ps":4,"e":7.34004111997636,"pr":0.3},{"t":98,"r":796,"c":20,"a":"extend","s":0.41726538353844134,"ps":4,"e":6.388894628992713,"pr":0.3},{"t":98,"r":796,"c":22,"a":"hold","s":0.14239111581620362,"ps":5,"e":3.534860835073422,"pr":0.4},{"t":99,"r":796,"c":18,"a":"extend","s":0.4770582859392183,"ps":4,"e":7.505088004198491,"pr":0.3},{"t":99,"r":796,"c":21,"a":"extend","s":0.4682164885752674,"ps":4,"e":7.340041120004949,"pr":0.3},{"t":99,"r":796,"c":22,"a":"hold","s":0.18037838077135054,"ps":5,"e":4.227887881244227,"pr":0.4},{"t":102,"r":796,"c":18,"a":"extend","s":0.4770582859392183,"ps":4,"e":7.5050880041986545,"pr":0.3},{"t":102,"r":796,"c":21,"a":"extend","s":0.4682164885752674,"ps":4,"e":7.340041120048776,"pr":0.3},{"t":103,"r":796,"c":19,"a":"extend","s":0.42702333932872155,"ps":4,"e":6.57110233413432,"pr":0.3},{"t":103,"r":796,"c":15,"a":"hold","s":0.20416515525100415,"ps":5,"e":3.484093228751745,"pr":0.4},{"t":104,"r":796,"c":16,"a":"extend","s":0.3987510852814839,"ps":4,"e":6.0556596367233695,"pr":0.3},{"t":104,"r":796,"c":20,"a":"extend","s":0.41726538353844134,"ps":4,"e":6.388946861576204,"pr":0.3},{"t":105,"r":796,"c":21,"a":"extend","s":0.4682164885752674,"ps":4,"e":7.340041120063808,"pr":0.3},{"t":106,"r":796,"c":21,"a":"extend","s":0.4682164885752674,"ps":4,"e":7.340041120066162,"pr":0.3},{"t":107,"r":796,"c":20,"a":"extend","s":0.41726538353844134,"ps":4,"e":6.388951437236082,"pr":0.3},{"t":109,"r":796,"c":21,"a":"extend","s":0.4682164885752674,"ps":4,"e":7.340041120069773,"pr":0.3},{"t":109,"r":796,"c":20,"a":"extend","s":0.41726538353844134,"ps":4,"e":6.388952655531641,"pr":0.3},{"t":110,"r":796,"c":19,"a":"extend","s":0.42702333932872155,"ps":4,"e":6.571102334135986,"pr":0.3},{"t":112,"r":796,"c":19,"a":"extend","s":0.42702333932872155,"ps":4,"e":6.571102334136062,"pr":0.3},{"t":112,"r":796,"c":20,"a":"extend","s":0.41726538353844134,"ps":4,"e":6.388953424562796,"pr":0.3},{"t":113,"r":796,"c":16,"a":"extend","s":0.3987510852814839,"ps":4,"e":6.932435988927248,"pr":0.3},{"t":113,"r":796,"c":15,"a":"extend","s":0.3927691552164213,"ps":4,"e":6.707878571709288,"pr":0.3},{"t":114,"r":796,"c":16,"a":"extend","s":0.3987510852814839,"ps":4,"e":6.665711269825383,"pr":0.3},{"t":114,"r":796,"c":18,"a":"extend","s":0.4770582859392183,"ps":4,"e":7.505088004198737,"pr":0.3},{"t":114,"r":796,"c":14,"a":"extend","s":0.3489172226833197,"ps":5,"e":3.4413000185393767,"pr":0.4},{"t":115,"r":796,"c":19,"a":"extend","s":0.42702333932872155,"ps":4,"e":6.571102334136109,"pr":0.3},{"t":115,"r":796,"c":22,"a":"retracted","s":0.17688166412478074,"ps":4,"e":5.202734111807859,"pr":0.35000000000000003},{"t":116,"r":796,"c":15,"a":"extend","s":0.3927691552164213,"ps":4,"e":6.197923269670476,"pr":0.3},{"t":116,"r":796,"c":14,"a":"extend","s":0.40026950959529384,"ps":4,"e":4.709302740431492,"pr":0.35000000000000003},{"t":118,"r":796,"c":16,"a":"extend","s":0.3987510852814839,"ps":4,"e":6.192781670385866,"pr":0.3},{"t":118,"r":796,"c":18,"a":"extend","s":0.4770582859392183,"ps":4,"e":7.505088004198737,"pr":0.3},{"t":118,"r":796,"c":17,"a":"extend","s":0.39968483877421107,"ps":4,"e":6.2106169908030315,"pr":0.3},{"t":118,"r":796,"c":15,"a":"extend","s":0.3927691552164213,"ps":4,"e":6.062144759798862,"pr":0.3},{"t":118,"r":796,"c":14,"a":"extend","s":0.3489172226833197,"ps":4,"e":4.915250302756633,"pr":0.30000000000000004},{"t":119,"r":796,"c":22,"a":"extend","s":0.2523376052572564,"ps":4,"e":3.5300193425125914,"pr":0.35000000000000003},{"t":119,"r":796,"c":13,"a":"extend","s":0.22165294046791853,"ps":5,"e":2.1908315574473334,"pr":0.4},{"t":120,"r":796,"c":13,"a":"hold","s":0.1702286686967835,"ps":5,"e":2.8026609070216013,"pr":0.4},{"t":121,"r":796,"c":16,"a":"extend","s":0.3987510852814839,"ps":4,"e":6.0946074228344695,"pr":0.3},{"t":121,"r":796,"c":18,"a":"extend","s":0.4770582859392183,"ps":4,"e":7.505088004198737,"pr":0.3},{"t":121,"r":796,"c":19,"a":"extend","s":0.42702333932872155,"ps":4,"e":6.571102334136131,"pr":0.3},{"t":121,"r":796,"c":21,"a":"extend","s":0.4682164885752674,"ps":4,"e":7.340041120071629,"pr":0.3},{"t":122,"r":796,"c":14,"a":"extend","s":0.3489172226833197,"ps":4,"e":5.065612618010221,"pr":0.3},{"t":123,"r":796,"c":13,"a":"hold","s":0.22165294046791853,"ps":4,"e":4.489623169980801,"pr":0.30000000000000004},{"t":124,"r":796,"c":21,"a":"extend","s":0.4682164885752674,"ps":4,"e":7.340041120071646,"pr":0.3},{"t":125,"r":796,"c":16,"a":"extend","s":0.3987510852814839,"ps":4,"e":6.055659636723347,"pr":0.3},{"t":125,"r":796,"c":18,"a":"extend","s":0.4770582859392183,"ps":4,"e":7.505088004198737,"pr":0.3},{"t":125,"r":796,"c":17,"a":"extend","s":0.39968483877421107,"ps":4,"e":6.0731230764308535,"pr":0.3},{"t":125,"r":796,"c":14,"a":"extend","s":0.3489172226833197,"ps":4,"e":5.096825946965738,"pr":0.3},{"t":126,"r":796,"c":16,"a":"extend","s":0.3987510852814839,"ps":4,"e":6.051967823282652,"pr":0.3},{"t":126,"r":796,"c":18,"a":"extend","s":0.4770582859392183,"ps":4,"e":7.505088004198737,"pr":0.3},{"t":126,"r":796,"c":22,"a":"retracted","s":0.1549300311792046,"ps":4,"e":4.540541658574446,"pr":0.35000000000000003},{"t":129,"r":796,"c":16,"a":"extend","s":0.3987510852814839,"ps":4,"e":6.046308273278067,"pr":0.3},{"t":129,"r":796,"c":21,"a":"extend","s":0.4682164885752674,"ps":4,"e":7.340041120071652,"pr":0.3},{"t":129,"r":796,"c":20,"a":"extend","s":0.41726538353844134,"ps":4,"e":6.38895382511692,"pr":0.3},{"t":129,"r":796,"c":15,"a":"extend","s":0.3927691552164213,"ps":4,"e":5.934270396482215,"pr":0.3},{"t":130,"r":796,"c":18,"a":"extend","s":0.4770582859392183,"ps":4,"e":7.505088004198737,"pr":0.3},{"t":130,"r":796,"c":21,"a":"extend","s":0.4682164885752674,"ps":4,"e":7.340041120071652,"pr":0.3},{"t":130,"r":796,"c":20,"a":"extend","s":0.41726538353844134,"ps":4,"e":6.388953825397114,"pr":0.3},{"t":130,"r":796,"c":14,"a":"retracted","s":0.3489172226833197,"ps":4,"e":11.679150018358088,"pr":0.3},{"t":131,"r":796,"c":18,"a":"extend","s":0.4770582859392183,"ps":4,"e":7.505088004198737,"pr":0.3},{"t":131,"r":796,"c":17,"a":"hold","s":0.39968483877421107,"ps":4,"e":8.660336253516103,"pr":0.3},{"t":131,"r":796,"c":15,"a":"hold","s":0.3927691552164213,"ps":4,"e":11.018576879944955,"pr":0.3},{"t":133,"r":796,"c":22,"a":"hold","s":0.15579969354664308,"ps":5,"e":4.478976168731677,"pr":0.4},{"t":134,"r":796,"c":16,"a":"extend","s":0.3987510852814839,"ps":4,"e":6.9324359889272475,"pr":0.3},{"t":134,"r":796,"c":18,"a":"extend","s":0.4770582859392183,"ps":4,"e":7.505088004198737,"pr":0.3},{"t":134,"r":796,"c":19,"a":"extend","s":0.42702333932872155,"ps":4,"e":6.571102334136133,"pr":0.3},{"t":134,"r":796,"c":21,"a":"extend","s":0.4682164885752674,"ps":4,"e":7.340041120071652,"pr":0.3},{"t":136,"r":796,"c":21,"a":"extend","s":0.4682164885752674,"ps":4,"e":7.340041120071652,"pr":0.3},{"t":136,"r":796,"c":17,"a":"extend","s":0.39968483877421107,"ps":4,"e":6.497690461995132,"pr":0.3},{"t":138,"r":796,"c":17,"a":"extend","s":0.39968483877421107,"ps":4,"e":6.2748679915081045,"pr":0.3},{"t":138,"r":796,"c":15,"a":"retracted","s":0.2146791729197177,"ps":4,"e":5.705414021988787,"pr":0.35000000000000003},{"t":138,"r":796,"c":22,"a":"hold","s":0.16223039771435563,"ps":5,"e":3.6935750903169824,"pr":0.4},{"t":139,"r":796,"c":19,"a":"extend","s":0.42702333932872155,"ps":4,"e":6.571102334136133,"pr":0.3},{"t":139,"r":796,"c":20,"a":"extend","s":0.41726538353844134,"ps":4,"e":6.388953826024521,"pr":0.3},{"t":139,"r":796,"c":22,"a":"hold","s":0.20114728973335344,"ps":4,"e":4.70275340818381,"pr":0.35000000000000003},{"t":140,"r":796,"c":18,"a":"extend","s":0.4770582859392183,"ps":4,"e":7.505088004198737,"pr":0.3},{"t":142,"r":796,"c":19,"a":"extend","s":0.42702333932872155,"ps":4,"e":6.571102334136133,"pr":0.3},{"t":142,"r":796,"c":20,"a":"extend","s":0.41726538353844134,"ps":4,"e":6.388953826041854,"pr":0.3},{"t":142,"r":796,"c":17,"a":"extend","s":0.39968483877421107,"ps":4,"e":6.112185305805525,"pr":0.3},{"t":143,"r":796,"c":16,"a":"extend","s":0.3987510852814839,"ps":4,"e":6.079231273560438,"pr":0.3},{"t":143,"r":796,"c":19,"a":"extend","s":0.42702333932872155,"ps":4,"e":6.571102334136133,"pr":0.3},{"t":143,"r":796,"c":21,"a":"extend","s":0.4682164885752674,"ps":4,"e":7.340041120071652,"pr":0.3},{"t":143,"r":796,"c":22,"a":"hold","s":0.14469400274224808,"ps":5,"e":3.553283930540122,"pr":0.4},{"t":144,"r":796,"c":16,"a":"extend","s":0.3987510852814839,"ps":4,"e":6.068467969068616,"pr":0.3},{"t":144,"r":796,"c":20,"a":"extend","s":0.41726538353844134,"ps":4,"e":6.388953826046468,"pr":0.3},{"t":145,"r":796,"c":20,"a":"extend","s":0.41726538353844134,"ps":4,"e":6.388953826047799,"pr":0.3},{"t":145,"r":796,"c":15,"a":"extend","s":0.3899548328935062,"ps":5,"e":4.09211412998057,"pr":0.4},{"t":146,"r":796,"c":19,"a":"extend","s":0.42702333932872155,"ps":4,"e":6.571102334136133,"pr":0.3},{"t":146,"r":796,"c":21,"a":"extend","s":0.4682164885752674,"ps":4,"e":7.340041120071652,"pr":0.3},{"t":146,"r":796,"c":14,"a":"hold","s":0.27295709555973907,"ps":5,"e":3.187419963041014,"pr":0.5},{"t":147,"r":796,"c":14,"a":"hold","s":0.2316435922115159,"ps":5,"e":4.290568700733141,"pr":0.5},{"t":148,"r":796,"c":14,"a":"retracted","s":0.2316435922115159,"ps":4,"e":5.5437174384252685,"pr":0.45},{"t":149,"r":796,"c":19,"a":"extend","s":0.42702333932872155,"ps":4,"e":6.571102334136133,"pr":0.3},{"t":149,"r":796,"c":15,"a":"extend","s":0.3888338005941947,"ps":4,"e":5.436339576117384,"pr":0.3},{"t":150,"r":796,"c":18,"a":"extend","s":0.4770582859392183,"ps":4,"e":7.505088004198737,"pr":0.3},{"t":150,"r":796,"c":22,"a":"retracted","s":0.15355874374679002,"ps":4,"e":4.895343897847043,"pr":0.35000000000000003},{"t":151,"r":796,"c":15,"a":"hold","s":0.3888338005941947,"ps":4,"e":8.073577391363216,"pr":0.3},{"t":152,"r":796,"c":19,"a":"extend","s":0.42702333932872155,"ps":4,"e":6.571102334136133,"pr":0.3},{"t":152,"r":796,"c":17,"a":"hold","s":0.39968483877421107,"ps":4,"e":8.660336609242558,"pr":0.3},{"t":154,"r":796,"c":18,"a":"extend","s":0.4770582859392183,"ps":4,"e":7.505088004198737,"pr":0.3},{"t":154,"r":796,"c":19,"a":"extend","s":0.42702333932872155,"ps":4,"e":6.571102334136133,"pr":0.3},{"t":154,"r":796,"c":20,"a":"extend","s":0.41726538353844134,"ps":4,"e":6.388953826050779,"pr":0.3},{"t":155,"r":796,"c":16,"a":"extend","s":0.3987510852814839,"ps":4,"e":6.9324359889272475,"pr":0.3},{"t":155,"r":796,"c":21,"a":"extend","s":0.4682164885752674,"ps":4,"e":7.340041120071652,"pr":0.3},{"t":155,"r":796,"c":17,"a":"extend","s":0.39968483877421107,"ps":4,"e":6.952430319697121,"pr":0.3},{"t":155,"r":796,"c":15,"a":"hold","s":0.24000137943457275,"ps":5,"e":4.30435587916083,"pr":0.4},{"t":156,"r":796,"c":15,"a":"hold","s":0.24119865471490723,"ps":4,"e":5.633945116880088,"pr":0.35000000000000003},{"t":157,"r":796,"c":17,"a":"extend","s":0.39968483877421107,"ps":4,"e":6.497690521782078,"pr":0.3},{"t":158,"r":796,"c":16,"a":"extend","s":0.3987510852814839,"ps":4,"e":6.348308854094164,"pr":0.3},{"t":158,"r":796,"c":18,"a":"extend","s":0.4770582859392183,"ps":4,"e":7.505088004198737,"pr":0.3},{"t":159,"r":796,"c":21,"a":"extend","s":0.4682164885752674,"ps":4,"e":7.340041120071652,"pr":0.3},{"t":159,"r":796,"c":22,"a":"retracted","s":0.14946627821471262,"ps":4,"e":4.892622243233455,"pr":0.30000000000000004},{"t":160,"r":796,"c":21,"a":"extend","s":0.4682164885752674,"ps":4,"e":7.340041120071652,"pr":0.3},{"t":160,"r":796,"c":17,"a":"extend","s":0.39968483877421107,"ps":4,"e":6.210642711698177,"pr":0.3},{"t":160,"r":796,"c":15,"a":"extend","s":0.46459675676152545,"ps":5,"e":4.53695932694461,"pr":0.4},{"t":161,"r":796,"c":16,"a":"extend","s":0.3987510852814839,"ps":4,"e":6.147953246846415,"pr":0.3},{"t":161,"r":796,"c":18,"a":"extend","s":0.4770582859392183,"ps":4,"e":7.505088004198737,"pr":0.3},{"t":161,"r":796,"c":19,"a":"extend","s":0.42702333932872155,"ps":4,"e":6.571102334136133,"pr":0.3},{"t":163,"r":796,"c":14,"a":"extend","s":0.3129563989318982,"ps":4,"e":3.751688339094087,"pr":0.35000000000000003},{"t":166,"r":796,"c":16,"a":"extend","s":0.3987510852814839,"ps":4,"e":6.060933655924341,"pr":0.3},{"t":169,"r":796,"c":17,"a":"extend","s":0.39968483877421107,"ps":4,"e":6.0668310105125,"pr":0.3},{"t":170,"r":796,"c":16,"a":"extend","s":0.3987510852814839,"ps":4,"e":6.047574565288224,"pr":0.3},{"t":170,"r":796,"c":20,"a":"extend","s":0.41726538353844134,"ps":4,"e":6.388953826050901,"pr":0.3},{"t":174,"r":796,"c":19,"a":"extend","s":0.42702333932872155,"ps":4,"e":6.571102334136133,"pr":0.3},{"t":174,"r":796,"c":20,"a":"extend","s":0.41726538353844134,"ps":4,"e":6.388953826050901,"pr":0.3},{"t":176,"r":796,"c":20,"a":"extend","s":0.41726538353844134,"ps":4,"e":6.388953826050901,"pr":0.3},{"t":177,"r":796,"c":19,"a":"extend","s":0.42702333932872155,"ps":4,"e":6.571102334136133,"pr":0.3},{"t":178,"r":796,"c":19,"a":"extend","s":0.42702333932872155,"ps":4,"e":6.571102334136133,"pr":0.3},{"t":178,"r":796,"c":21,"a":"extend","s":0.4682164885752674,"ps":4,"e":7.340041120071652,"pr":0.3},{"t":178,"r":796,"c":22,"a":"hold","s":0.11261780086694419,"ps":5,"e":3.399726364095713,"pr":0.4},{"t":179,"r":796,"c":16,"a":"extend","s":0.3987510852814839,"ps":4,"e":6.348308854094164,"pr":0.3},{"t":179,"r":796,"c":17,"a":"extend","s":0.39968483877421107,"ps":4,"e":6.36661846241643,"pr":0.3},{"t":179,"r":796,"c":22,"a":"retracted","s":0.11261780086694419,"ps":4,"e":3.7006687710312667,"pr":0.35000000000000003},{"t":180,"r":796,"c":18,"a":"extend","s":0.4770582859392183,"ps":4,"e":7.505088004198737,"pr":0.3},{"t":180,"r":796,"c":19,"a":"extend","s":0.42702333932872155,"ps":4,"e":6.571102334136133,"pr":0.3},{"t":180,"r":796,"c":17,"a":"extend","s":0.39968483877421107,"ps":4,"e":6.274868020827083,"pr":0.3},{"t":181,"r":796,"c":16,"a":"extend","s":0.3987510852814839,"ps":4,"e":6.192781670385866,"pr":0.3},{"t":181,"r":796,"c":18,"a":"extend","s":0.4770582859392183,"ps":4,"e":7.505088004198737,"pr":0.3},{"t":182,"r":796,"c":18,"a":"extend","s":0.4770582859392183,"ps":4,"e":7.505088004198737,"pr":0.3},{"t":182,"r":796,"c":20,"a":"extend","s":0.41726538353844134,"ps":4,"e":6.388953826050901,"pr":0.3},{"t":183,"r":796,"c":19,"a":"extend","s":0.42702333932872155,"ps":4,"e":6.571102334136133,"pr":0.3},{"t":184,"r":796,"c":18,"a":"extend","s":0.4770582859392183,"ps":4,"e":7.505088004198737,"pr":0.3},{"t":184,"r":796,"c":17,"a":"extend","s":0.39968483877421107,"ps":4,"e":6.112185312845011,"pr":0.3},{"t":184,"r":796,"c":15,"a":"extend","s":0.3456984806743894,"ps":5,"e":3.2458834968872203,"pr":0.4},{"t":185,"r":796,"c":18,"a":"extend","s":0.4770582859392183,"ps":4,"e":7.505088004198737,"pr":0.3},{"t":185,"r":796,"c":17,"a":"extend","s":0.39968483877421107,"ps":4,"e":6.09676481612709,"pr":0.3},{"t":186,"r":796,"c":18,"a":"extend","s":0.4770582859392183,"ps":4,"e":7.505088004198737,"pr":0.3},{"t":186,"r":796,"c":19,"a":"extend","s":0.42702333932872155,"ps":4,"e":6.571102334136133,"pr":0.3},{"t":186,"r":796,"c":15,"a":"extend","s":0.4130234382236717,"ps":4,"e":4.734966045364092,"pr":0.35000000000000003},{"t":186,"r":796,"c":14,"a":"hold","s":0.23157058542702627,"ps":4,"e":3.1020792061547877,"pr":0.45},{"t":187,"r":796,"c":18,"a":"extend","s":0.4770582859392183,"ps":4,"e":7.505088004198737,"pr":0.3},{"t":187,"r":796,"c":19,"a":"extend","s":0.42702333932872155,"ps":4,"e":6.571102334136133,"pr":0.3},{"t":189,"r":796,"c":16,"a":"extend","s":0.3987510852814839,"ps":4,"e":6.051967823282652,"pr":0.3},{"t":189,"r":796,"c":15,"a":"extend","s":0.3456984806743894,"ps":4,"e":4.943939520550595,"pr":0.3},{"t":190,"r":796,"c":18,"a":"extend","s":0.4770582859392183,"ps":4,"e":7.505088004198737,"pr":0.3},{"t":190,"r":796,"c":22,"a":"hold","s":0.08999881600259735,"ps":4,"e":3.269334167881072,"pr":0.35000000000000003},{"t":194,"r":796,"c":18,"a":"extend","s":0.4770582859392183,"ps":4,"e":7.505088004198737,"pr":0.3},{"t":196,"r":796,"c":16,"a":"extend","s":0.3987510852814839,"ps":4,"e":7.31347130192991,"pr":0.3},{"t":196,"r":796,"c":18,"a":"extend","s":0.4770582859392183,"ps":4,"e":7.505088004198737,"pr":0.3},{"t":196,"r":796,"c":19,"a":"extend","s":0.42702333932872155,"ps":4,"e":6.571102334136133,"pr":0.3},{"t":196,"r":796,"c":17,"a":"extend","s":0.39968483877421107,"ps":4,"e":6.061495122198122,"pr":0.3},{"t":197,"r":796,"c":20,"a":"extend","s":0.41726538353844134,"ps":4,"e":6.388953826050901,"pr":0.3},{"t":198,"r":796,"c":18,"a":"extend","s":0.4770582859392183,"ps":4,"e":7.505088004198737,"pr":0.3},{"t":198,"r":796,"c":20,"a":"extend","s":0.41726538353844134,"ps":4,"e":6.388953826050901,"pr":0.3},{"t":199,"r":796,"c":19,"a":"extend","s":0.42702333932872155,"ps":4,"e":6.571102334136133,"pr":0.3},{"t":200,"r":796,"c":16,"a":"extend","s":0.3987510852814839,"ps":4,"e":6.348308854094164,"pr":0.3},{"t":202,"r":796,"c":22,"a":"hold","s":0.0937811111093316,"ps":5,"e":3.14598079747679,"pr":0.4},{"t":203,"r":796,"c":22,"a":"hold","s":0.1567837035246969,"ps":6,"e":3.5002504256743654,"pr":0.5},{"t":204,"r":796,"c":21,"a":"extend","s":0.4682164885752674,"ps":4,"e":7.340041120071652,"pr":0.3},{"t":204,"r":796,"c":15,"a":"extend","s":0.30709168898233385,"ps":4,"e":3.9465250866967643,"pr":0.3},{"t":204,"r":796,"c":13,"a":"hold","s":0.1784129623953186,"ps":5,"e":2.1574029865233575,"pr":0.6},{"t":205,"r":796,"c":21,"a":"extend","s":0.4682164885752674,"ps":4,"e":7.340041120071652,"pr":0.3},{"t":205,"r":796,"c":20,"a":"extend","s":0.41726538353844134,"ps":4,"e":6.388953826050901,"pr":0.3},{"t":205,"r":796,"c":15,"a":"extend","s":0.30709168898233385,"ps":4,"e":4.062281018988804,"pr":0.3},{"t":205,"r":796,"c":14,"a":"extend","s":0.29455471933312893,"ps":4,"e":3.425070127568313,"pr":0.35000000000000003},{"t":205,"r":796,"c":13,"a":"retracted","s":0.1784129623953186,"ps":4,"e":2.9847066856859064,"pr":0.5499999999999999},{"t":206,"r":796,"c":19,"a":"extend","s":0.42702333932872155,"ps":4,"e":6.571102334136133,"pr":0.3},{"t":206,"r":796,"c":14,"a":"extend","s":0.29455471933312893,"ps":4,"e":3.6270555175633405,"pr":0.30000000000000004},{"t":207,"r":796,"c":19,"a":"extend","s":0.42702333932872155,"ps":4,"e":6.571102334136133,"pr":0.3},{"t":207,"r":796,"c":21,"a":"extend","s":0.4682164885752674,"ps":4,"e":7.340041120071652,"pr":0.3},{"t":207,"r":796,"c":20,"a":"extend","s":0.41726538353844134,"ps":4,"e":6.388953826050901,"pr":0.3},{"t":208,"r":796,"c":16,"a":"extend","s":0.3987510852814839,"ps":4,"e":6.060933655924341,"pr":0.3},{"t":208,"r":796,"c":20,"a":"extend","s":0.41726538353844134,"ps":4,"e":6.388953826050901,"pr":0.3},{"t":209,"r":796,"c":18,"a":"extend","s":0.4770582859392183,"ps":4,"e":7.505088004198737,"pr":0.3},{"t":209,"r":796,"c":21,"a":"extend","s":0.4682164885752674,"ps":4,"e":7.340041120071652,"pr":0.3},{"t":210,"r":796,"c":19,"a":"extend","s":0.42702333932872155,"ps":4,"e":6.571102334136133,"pr":0.3},{"t":210,"r":796,"c":17,"a":"extend","s":0.39968483877421107,"ps":4,"e":6.060788482438928,"pr":0.3},{"t":211,"r":796,"c":18,"a":"extend","s":0.4770582859392183,"ps":4,"e":7.505088004198737,"pr":0.3},{"t":212,"r":796,"c":18,"a":"extend","s":0.4770582859392183,"ps":4,"e":7.505088004198737,"pr":0.3},{"t":212,"r":796,"c":17,"a":"extend","s":0.39968483877421107,"ps":4,"e":6.060786021525564,"pr":0.3},{"t":212,"r":796,"c":15,"a":"retracted","s":0.30709168898233385,"ps":4,"e":9.837728398111834,"pr":0.3},{"t":213,"r":796,"c":17,"a":"extend","s":0.39968483877421107,"ps":4,"e":6.0607853122034765,"pr":0.3},{"t":214,"r":796,"c":17,"a":"extend","s":0.39968483877421107,"ps":4,"e":6.060784815678016,"pr":0.3},{"t":215,"r":796,"c":16,"a":"hold","s":0.3987510852814839,"ps":4,"e":8.635430551122827,"pr":0.3},{"t":215,"r":796,"c":18,"a":"extend","s":0.4770582859392183,"ps":4,"e":7.505088004198737,"pr":0.3},{"t":215,"r":796,"c":17,"a":"extend","s":0.39968483877421107,"ps":4,"e":6.060784468110192,"pr":0.3},{"t":216,"r":796,"c":21,"a":"extend","s":0.4682164885752674,"ps":4,"e":7.340041120071652,"pr":0.3},{"t":216,"r":796,"c":17,"a":"extend","s":0.39968483877421107,"ps":4,"e":6.060784224812716,"pr":0.3},{"t":216,"r":796,"c":15,"a":"retracted","s":0.3366303922770598,"ps":4,"e":8.665500825007886,"pr":0.30000000000000004},{"t":217,"r":796,"c":16,"a":"extend","s":0.3987510852814839,"ps":4,"e":7.31347130192991,"pr":0.3},{"t":219,"r":796,"c":17,"a":"extend","s":0.39968483877421107,"ps":4,"e":6.060783851837686,"pr":0.3},{"t":220,"r":796,"c":21,"a":"extend","s":0.4682164885752674,"ps":4,"e":7.340041120071652,"pr":0.3},{"t":220,"r":796,"c":20,"a":"extend","s":0.41726538353844134,"ps":4,"e":6.388953826050901,"pr":0.3},{"t":221,"r":796,"c":16,"a":"extend","s":0.3987510852814839,"ps":4,"e":6.348308854094164,"pr":0.3},{"t":221,"r":796,"c":18,"a":"extend","s":0.4770582859392183,"ps":4,"e":7.505088004198737,"pr":0.3},{"t":221,"r":796,"c":22,"a":"hold","s":0.1416234664657922,"ps":4,"e":4.242482988589069,"pr":0.35000000000000003},{"t":223,"r":796,"c":19,"a":"extend","s":0.42702333932872155,"ps":4,"e":6.571102334136133,"pr":0.3},{"t":223,"r":796,"c":20,"a":"extend","s":0.41726538353844134,"ps":4,"e":6.388953826050901,"pr":0.3},{"t":223,"r":796,"c":17,"a":"extend","s":0.39968483877421107,"ps":4,"e":6.060783703870656,"pr":0.3},{"t":224,"r":796,"c":15,"a":"extend","s":0.35274160225809353,"ps":4,"e":5.23262755024965,"pr":0.3},{"t":225,"r":796,"c":16,"a":"extend","s":0.3987510852814839,"ps":4,"e":6.1165733503688005,"pr":0.3},{"t":225,"r":796,"c":18,"a":"extend","s":0.4770582859392183,"ps":4,"e":7.505088004198737,"pr":0.3},{"t":226,"r":796,"c":17,"a":"extend","s":0.39968483877421107,"ps":4,"e":6.060783673154559,"pr":0.3},{"t":227,"r":796,"c":17,"a":"extend","s":0.39968483877421107,"ps":4,"e":6.060783668343773,"pr":0.3},{"t":228,"r":796,"c":13,"a":"hold","s":0.1860383572041412,"ps":5,"e":2.367762722102882,"pr":0.4},{"t":229,"r":796,"c":17,"a":"extend","s":0.39968483877421107,"ps":4,"e":6.060783662618938,"pr":0.3},{"t":229,"r":796,"c":15,"a":"extend","s":0.35274160225809353,"ps":4,"e":5.192597040813205,"pr":0.3},{"t":231,"r":796,"c":16,"a":"extend","s":0.3987510852814839,"ps":4,"e":6.051967823282652,"pr":0.3},{"t":231,"r":796,"c":21,"a":"extend","s":0.4682164885752674,"ps":4,"e":7.340041120071652,"pr":0.3},{"t":232,"r":796,"c":21,"a":"extend","s":0.4682164885752674,"ps":4,"e":7.340041120071652,"pr":0.3},{"t":233,"r":796,"c":16,"a":"extend","s":0.3987510852814839,"ps":4,"e":6.047574565288224,"pr":0.3},{"t":233,"r":796,"c":21,"a":"extend","s":0.4682164885752674,"ps":4,"e":7.340041120071652,"pr":0.3},{"t":233,"r":796,"c":13,"a":"hold","s":0.20991480282490796,"ps":4,"e":3.8995196651970567,"pr":0.35000000000000003},{"t":234,"r":796,"c":13,"a":"retracted","s":0.20628524464979403,"ps":4,"e":4.949801622395409,"pr":0.30000000000000004},{"t":235,"r":796,"c":18,"a":"extend","s":0.4770582859392183,"ps":4,"e":7.505088004198737,"pr":0.3},{"t":236,"r":796,"c":22,"a":"hold","s":0.21777333695360349,"ps":4,"e":5.184621834959429,"pr":0.35000000000000003},{"t":238,"r":796,"c":16,"a":"extend","s":0.3987510852814839,"ps":4,"e":7.31347130192991,"pr":0.3},{"t":238,"r":796,"c":18,"a":"extend","s":0.4770582859392183,"ps":4,"e":7.505088004198737,"pr":0.3},{"t":238,"r":796,"c":15,"a":"hold","s":0.19600412793936278,"ps":5,"e":4.1856647935273115,"pr":0.4},{"t":239,"r":796,"c":18,"a":"extend","s":0.4770582859392183,"ps":4,"e":7.505088004198737,"pr":0.3},{"t":239,"r":796,"c":15,"a":"hold","s":0.2552234552129663,"ps":5,"e":5.477452435231042,"pr":0.4},{"t":242,"r":796,"c":18,"a":"extend","s":0.4770582859392183,"ps":4,"e":7.505088004198737,"pr":0.3},{"t":242,"r":796,"c":20,"a":"extend","s":0.41726538353844134,"ps":4,"e":6.388953826050901,"pr":0.3},{"t":243,"r":796,"c":19,"a":"extend","s":0.42702333932872155,"ps":4,"e":6.571102334136133,"pr":0.3},{"t":244,"r":796,"c":16,"a":"extend","s":0.3987510852814839,"ps":4,"e":6.192781670385866,"pr":0.3},{"t":244,"r":796,"c":21,"a":"extend","s":0.4682164885752674,"ps":4,"e":7.340041120071652,"pr":0.3},{"t":244,"r":796,"c":17,"a":"extend","s":0.39968483877421107,"ps":4,"e":6.060783657144717,"pr":0.3},{"t":244,"r":796,"c":22,"a":"hold","s":0.10659944924988542,"ps":5,"e":3.209357984547274,"pr":0.4},{"t":245,"r":796,"c":18,"a":"extend","s":0.4770582859392183,"ps":4,"e":7.505088004198737,"pr":0.3},{"t":245,"r":796,"c":13,"a":"hold","s":0.09567406501382615,"ps":5,"e":1.181203480524529,"pr":0.6},{"t":246,"r":796,"c":20,"a":"extend","s":0.41726538353844134,"ps":4,"e":6.388953826050901,"pr":0.3},{"t":246,"r":796,"c":14,"a":"extend","s":0.396005711652734,"ps":4,"e":4.494985489199946,"pr":0.4},{"t":248,"r":796,"c":21,"a":"extend","s":0.4682164885752674,"ps":4,"e":7.340041120071652,"pr":0.3},{"t":249,"r":796,"c":19,"a":"extend","s":0.42702333932872155,"ps":4,"e":6.571102334136133,"pr":0.3},{"t":249,"r":796,"c":17,"a":"extend","s":0.39968483877421107,"ps":4,"e":6.060783657122994,"pr":0.3},{"t":250,"r":796,"c":18,"a":"extend","s":0.4770582859392183,"ps":4,"e":7.505088004198737,"pr":0.3},{"t":250,"r":796,"c":20,"a":"extend","s":0.41726538353844134,"ps":4,"e":6.388953826050901,"pr":0.3},{"t":250,"r":796,"c":13,"a":"retracted","s":0.09789110084557333,"ps":4,"e":2.9319018617831567,"pr":0.6499999999999998},{"t":251,"r":796,"c":21,"a":"extend","s":0.4682164885752674,"ps":4,"e":7.340041120071652,"pr":0.3},{"t":251,"r":796,"c":20,"a":"extend","s":0.41726538353844134,"ps":4,"e":6.388953826050901,"pr":0.3},{"t":251,"r":796,"c":17,"a":"extend","s":0.39968483877421107,"ps":4,"e":6.060783657120756,"pr":0.3},{"t":252,"r":796,"c":16,"a":"extend","s":0.3987510852814839,"ps":4,"e":6.051967823282652,"pr":0.3},{"t":252,"r":796,"c":19,"a":"extend","s":0.42702333932872155,"ps":4,"e":6.571102334136133,"pr":0.3},{"t":253,"r":796,"c":18,"a":"extend","s":0.4770582859392183,"ps":4,"e":7.505088004198737,"pr":0.3},{"t":253,"r":796,"c":21,"a":"extend","s":0.4682164885752674,"ps":4,"e":7.340041120071652,"pr":0.3},{"t":254,"r":796,"c":19,"a":"extend","s":0.42702333932872155,"ps":4,"e":6.571102334136133,"pr":0.3},{"t":254,"r":796,"c":21,"a":"extend","s":0.4682164885752674,"ps":4,"e":7.340041120071652,"pr":0.3},{"t":254,"r":796,"c":22,"a":"retracted","s":0.14196683598191723,"ps":4,"e":4.658283062179554,"pr":0.30000000000000004},{"t":254,"r":796,"c":13,"a":"hold","s":0.15619930506781413,"ps":5,"e":3.014799692676748,"pr":0.4},{"t":257,"r":796,"c":21,"a":"extend","s":0.4682164885752674,"ps":4,"e":7.340041120071652,"pr":0.3},{"t":257,"r":796,"c":17,"a":"extend","s":0.39968483877421107,"ps":4,"e":6.060783657118859,"pr":0.3},{"t":258,"r":796,"c":16,"a":"extend","s":0.3987510852814839,"ps":4,"e":7.857807463362287,"pr":0.3},{"t":259,"r":796,"c":20,"a":"extend","s":0.41726538353844134,"ps":4,"e":6.388953826050901,"pr":0.3},{"t":259,"r":796,"c":17,"a":"extend","s":0.39968483877421107,"ps":4,"e":6.060783657118729,"pr":0.3},{"t":260,"r":796,"c":18,"a":"extend","s":0.4770582859392183,"ps":4,"e":7.505088004198737,"pr":0.3},{"t":260,"r":796,"c":17,"a":"extend","s":0.39968483877421107,"ps":4,"e":6.060783657118692,"pr":0.3},{"t":260,"r":796,"c":14,"a":"extend","s":0.396005711652734,"ps":4,"e":7.733063879556174,"pr":0.3},{"t":262,"r":796,"c":16,"a":"extend","s":0.3987510852814839,"ps":4,"e":6.479003966454077,"pr":0.3},{"t":262,"r":796,"c":22,"a":"hold","s":0.04472903098141539,"ps":6,"e":3.4400253227180864,"pr":0.5},{"t":263,"r":796,"c":22,"a":"retracted","s":0.12261804100252072,"ps":6,"e":3.520969650738252,"pr":0.5},{"t":264,"r":796,"c":19,"a":"extend","s":0.42702333932872155,"ps":4,"e":6.571102334136133,"pr":0.3},{"t":265,"r":796,"c":19,"a":"extend","s":0.42702333932872155,"ps":4,"e":6.571102334136133,"pr":0.3},{"t":265,"r":796,"c":15,"a":"hold","s":0.1852677380348192,"ps":4,"e":4.27919744407937,"pr":0.35000000000000003},{"t":266,"r":796,"c":14,"a":"extend","s":0.396005711652734,"ps":4,"e":6.196928498439265,"pr":0.3},{"t":266,"r":796,"c":22,"a":"extend","s":0.2503221984433143,"ps":6,"e":3.5291193919197945,"pr":0.5},{"t":267,"r":796,"c":14,"a":"extend","s":0.396005711652734,"ps":4,"e":6.1354819341627955,"pr":0.3},{"t":268,"r":796,"c":15,"a":"extend","s":0.3412539187868047,"ps":5,"e":3.220993950316746,"pr":0.4},{"t":269,"r":796,"c":23,"a":"extend","s":0.4110682277386584,"ps":5,"e":3.236260729434347,"pr":0.55},{"t":270,"r":796,"c":20,"a":"extend","s":0.41726538353844134,"ps":4,"e":6.388953826050901,"pr":0.3},{"t":270,"r":796,"c":22,"a":"hold","s":0.1703308984387184,"ps":5,"e":4.737584925041279,"pr":0.5},{"t":270,"r":796,"c":15,"a":"extend","s":0.31655080669879504,"ps":4,"e":3.8043507154277334,"pr":0.35000000000000003},{"t":271,"r":796,"c":18,"a":"extend","s":0.4770582859392183,"ps":4,"e":7.505088004198737,"pr":0.3},{"t":271,"r":796,"c":22,"a":"retracted","s":0.1703308984387184,"ps":4,"e":5.500232112551027,"pr":0.45},{"t":272,"r":796,"c":18,"a":"extend","s":0.4770582859392183,"ps":4,"e":7.505088004198737,"pr":0.3},{"t":272,"r":796,"c":20,"a":"extend","s":0.41726538353844134,"ps":4,"e":6.388953826050901,"pr":0.3},{"t":272,"r":796,"c":17,"a":"extend","s":0.39968483877421107,"ps":4,"e":6.060783657118607,"pr":0.3},{"t":272,"r":796,"c":24,"a":"extend","s":0.3122552919808545,"ps":4,"e":3.180934330917084,"pr":0.5499999999999999},{"t":273,"r":796,"c":17,"a":"extend","s":0.39968483877421107,"ps":4,"e":6.060783657118607,"pr":0.3},{"t":273,"r":796,"c":15,"a":"extend","s":0.3412539187868047,"ps":4,"e":4.570230355393085,"pr":0.3},{"t":274,"r":796,"c":21,"a":"extend","s":0.4682164885752674,"ps":4,"e":7.340041120071652,"pr":0.3},{"t":274,"r":796,"c":14,"a":"extend","s":0.396005711652734,"ps":4,"e":6.0039141913572855,"pr":0.3},{"t":274,"r":796,"c":24,"a":"hold","s":0.2971119286927107,"ps":4,"e":6.794545872539941,"pr":0.44999999999999996},{"t":275,"r":796,"c":17,"a":"extend","s":0.39968483877421107,"ps":4,"e":6.060783657118607,"pr":0.3},{"t":276,"r":796,"c":21,"a":"extend","s":0.4682164885752674,"ps":4,"e":7.340041120071652,"pr":0.3},{"t":276,"r":796,"c":15,"a":"retracted","s":0.3412539187868047,"ps":4,"e":10.9603244062764,"pr":0.3},{"t":277,"r":796,"c":20,"a":"extend","s":0.41726538353844134,"ps":4,"e":6.388953826050901,"pr":0.3},{"t":277,"r":796,"c":14,"a":"hold","s":0.396005711652734,"ps":4,"e":8.565938021920969,"pr":0.3},{"t":278,"r":796,"c":18,"a":"extend","s":0.4770582859392183,"ps":4,"e":7.505088004198737,"pr":0.3},{"t":281,"r":796,"c":14,"a":"extend","s":0.396005711652734,"ps":4,"e":7.755770462003124,"pr":0.3},{"t":282,"r":796,"c":21,"a":"extend","s":0.4682164885752674,"ps":4,"e":7.340041120071652,"pr":0.3},{"t":282,"r":796,"c":20,"a":"extend","s":0.41726538353844134,"ps":4,"e":6.388953826050901,"pr":0.3},{"t":282,"r":796,"c":17,"a":"extend","s":0.39968483877421107,"ps":4,"e":6.060783657118607,"pr":0.3},{"t":282,"r":796,"c":14,"a":"extend","s":0.396005711652734,"ps":4,"e":7.2266713086574965,"pr":0.3},{"t":282,"r":796,"c":15,"a":"extend","s":0.35794502857288396,"ps":4,"e":5.856935787500835,"pr":0.30000000000000004},{"t":282,"r":796,"c":22,"a":"hold","s":0.1146818556452503,"ps":5,"e":3.3131867537641395,"pr":0.4},{"t":283,"r":796,"c":16,"a":"extend","s":0.3987510852814839,"ps":4,"e":6.914455703668851,"pr":0.3},{"t":283,"r":796,"c":15,"a":"extend","s":0.35794502857288396,"ps":4,"e":5.684347211258735,"pr":0.3},{"t":283,"r":796,"c":22,"a":"hold","s":0.11281887149286518,"ps":5,"e":3.465737725707061,"pr":0.4},{"t":284,"r":796,"c":20,"a":"extend","s":0.41726538353844134,"ps":4,"e":6.388953826050901,"pr":0.3},{"t":284,"r":796,"c":17,"a":"extend","s":0.39968483877421107,"ps":4,"e":6.060783657118607,"pr":0.3},{"t":284,"r":796,"c":22,"a":"retracted","s":0.11281887149286518,"ps":4,"e":3.7682886976499823,"pr":0.35000000000000003},{"t":286,"r":796,"c":19,"a":"extend","s":0.42702333932872155,"ps":4,"e":6.571102334136133,"pr":0.3},{"t":286,"r":796,"c":15,"a":"extend","s":0.35794502857288396,"ps":4,"e":5.4197689238795945,"pr":0.3},{"t":286,"r":796,"c":22,"a":"hold","s":0.13992205169925023,"ps":5,"e":3.515108322196139,"pr":0.4},{"t":287,"r":796,"c":20,"a":"extend","s":0.41726538353844134,"ps":4,"e":6.388953826050901,"pr":0.3},{"t":288,"r":796,"c":17,"a":"extend","s":0.39968483877421107,"ps":4,"e":6.060783657118607,"pr":0.3},{"t":288,"r":796,"c":15,"a":"extend","s":0.35794502857288396,"ps":4,"e":5.349323444714856,"pr":0.3},{"t":289,"r":796,"c":16,"a":"extend","s":0.3987510852814839,"ps":4,"e":6.145837884266051,"pr":0.3},{"t":290,"r":796,"c":18,"a":"extend","s":0.4770582859392183,"ps":4,"e":7.505088004198737,"pr":0.3},{"t":290,"r":796,"c":19,"a":"extend","s":0.42702333932872155,"ps":4,"e":6.571102334136133,"pr":0.3},{"t":290,"r":796,"c":13,"a":"hold","s":0.20672658229473898,"ps":5,"e":3.515431941984155,"pr":0.4},{"t":291,"r":796,"c":17,"a":"extend","s":0.39968483877421107,"ps":4,"e":6.060783657118607,"pr":0.3},{"t":291,"r":796,"c":22,"a":"hold","s":0.10984930273097268,"ps":5,"e":3.274526330449919,"pr":0.4},{"t":292,"r":796,"c":16,"a":"extend","s":0.3987510852814839,"ps":4,"e":6.078505704195372,"pr":0.3},{"t":292,"r":796,"c":18,"a":"extend","s":0.4770582859392183,"ps":4,"e":7.505088004198737,"pr":0.3},{"t":292,"r":796,"c":21,"a":"extend","s":0.4682164885752674,"ps":4,"e":7.340041120071652,"pr":0.3},{"t":292,"r":796,"c":22,"a":"hold","s":0.16553581673306986,"ps":5,"e":3.8488128643144774,"pr":0.4},{"t":293,"r":796,"c":16,"a":"extend","s":0.3987510852814839,"ps":4,"e":6.067960070513069,"pr":0.3},{"t":293,"r":796,"c":19,"a":"extend","s":0.42702333932872155,"ps":4,"e":6.571102334136133,"pr":0.3},{"t":294,"r":796,"c":16,"a":"extend","s":0.3987510852814839,"ps":4,"e":6.060578126935458,"pr":0.3},{"t":294,"r":796,"c":20,"a":"extend","s":0.41726538353844134,"ps":4,"e":6.388953826050901,"pr":0.3},{"t":295,"r":796,"c":16,"a":"extend","s":0.3987510852814839,"ps":4,"e":6.05541076643113,"pr":0.3},{"t":295,"r":796,"c":17,"a":"extend","s":0.39968483877421107,"ps":4,"e":6.060783657118607,"pr":0.3},{"t":295,"r":796,"c":13,"a":"retracted","s":0.20672658229473898,"ps":4,"e":6.792889780544845,"pr":0.3},{"t":296,"r":796,"c":17,"a":"extend","s":0.39968483877421107,"ps":4,"e":6.060783657118607,"pr":0.3},{"t":297,"r":796,"c":17,"a":"extend","s":0.39968483877421107,"ps":4,"e":6.060783657118607,"pr":0.3},{"t":297,"r":796,"c":14,"a":"extend","s":0.396005711652734,"ps":4,"e":5.99796778932689,"pr":0.3},{"t":298,"r":796,"c":18,"a":"extend","s":0.4770582859392183,"ps":4,"e":7.505088004198737,"pr":0.3},{"t":298,"r":796,"c":19,"a":"extend","s":0.42702333932872155,"ps":4,"e":6.571102334136133,"pr":0.3},{"t":298,"r":796,"c":14,"a":"hold","s":0.396005711652734,"ps":4,"e":8.566013482548762,"pr":0.3},{"t":299,"r":796,"c":20,"a":"extend","s":0.41726538353844134,"ps":4,"e":6.388953826050901,"pr":0.3}];
const lines = text.split('\n');
const gridEl = document.getElementById('grid');
const charEls = [];
for (let r = 0; r < lines.length; r++) {
const row = [];
for (let c = 0; c < lines[r].length; c++) {
const s = document.createElement('span');
s.className = 'c';
s.textContent = lines[r][c];
row.push(s);
gridEl.appendChild(s);
}
charEls.push(row);
gridEl.appendChild(document.createTextNode('\n'));
}
let tick = -1, playing = false, iv;
function apply(t) {
for (const r of charEls) for (const e of r) e.className = 'c';
const active = new Map();
for (const p of passes) {
if (p.t > t) break;
const k = p.r+','+p.c;
if (p.a === 'died' || p.a === 'retracted') active.set(k, 'dead');
else if (p.ps > 16) active.set(k, 'strong');
else active.set(k, 'active');
}
for (const [k, cls] of active) {
const [r, c] = k.split(',').map(Number);
if (charEls[r]?.[c]) charEls[r][c].className = 'c ' + cls;
}
document.getElementById('info').textContent = 'tick ' + t + ' · ' + [...active.values()].filter(v=>v!=='dead').length + ' alive';
}
function play() {
if (playing) return;
playing = true;
document.getElementById('play-btn').textContent = 'pause';
const max = passes.length > 0 ? passes[passes.length-1].t : 0;
iv = setInterval(() => { tick++; if (tick > max) { pause(); return; } apply(tick); }, 900);
}
function pause() { playing = false; clearInterval(iv); document.getElementById('play-btn').textContent = 'play'; }
function reset() { pause(); tick = -1; for (const r of charEls) for (const e of r) e.className = 'c'; document.getElementById('info').textContent = 'neurameba'; }
document.getElementById('play-btn').addEventListener('click', () => playing ? pause() : play());
document.getElementById('reset-btn').addEventListener('click', reset);
setTimeout(play, 1000);
</script>
</body>
</html>